/* Shared booking field structure: captions above controls, consistent flow gaps.
   Mixed-height date/identity fields form a full-width group instead of competing
   with a short input in a flex row. Applies to the four current entry points. */
body.hn-official #booking label:not(.inline-check):not(.date-select-part) {
  display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;
  min-width:0;margin:0 0 1.25rem;
}
body.hn-official #booking .field-caption {
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .4rem;
  min-width:0;line-height:1.5;overflow-wrap:anywhere;
}
body.hn-official #booking .field-requirement {font-size:.8rem;color:#465361;line-height:1.5;letter-spacing:0;}
body.hn-official #booking label > :is(input,select,textarea) {margin-top:0;width:100%;min-width:0;box-sizing:border-box;}
body.hn-official #booking .row {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:0 1rem;min-width:0;}
body.hn-official #booking .row:has(>.date-select-field) {grid-template-columns:minmax(0,1fr);}
body.hn-official #booking .date-select-field {gap:.6rem;margin-bottom:1.25rem;}
body.hn-official #booking .date-select-field>label {margin:0;}
body.hn-official #booking .date-select-part {display:grid;gap:.35rem;margin:0;align-content:start;}
body.hn-official #booking .date-select-part select {margin:0;}
body.hn-official #booking .date-select-unit {line-height:1.4;}
body.hn-official #booking .inline-check {display:grid;grid-template-columns:24px minmax(0,1fr);gap:.6rem;align-items:start;margin:1.25rem 0 .65rem;min-width:0;}
body.hn-official #booking .inline-check>input {width:20px;height:20px;margin:.2rem 0 0;}
body.hn-official #booking .inline-check .field-caption {display:block;}
body.hn-official #booking .inline-check .field-requirement {margin-left:.4rem;}
body.hn-official #booking .participant {min-width:0;margin:1.5rem 0;padding:clamp(16px,2vw,24px);}
body.hn-official #booking .participant h3 {margin:0 0 1.25rem;line-height:1.5;overflow-wrap:anywhere;}
body.hn-official #booking .participant .row:empty {display:none;}
body.hn-official #booking [id^=protector-help-] {margin:.5rem 0 0;line-height:1.7;}
body.hn-official #booking .field-error {margin:0;line-height:1.5;}
body.hn-official #booking .step-controls {display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;}
body.hn-official #booking .step-controls button {min-width:0;max-width:100%;overflow-wrap:anywhere;}
body.hn-official #booking #booking-next {margin-left:auto;}
body.hn-official #booking+button {margin-top:1rem;max-width:100%;white-space:normal;}
body.hn-official #booking-review :is(p,h3,button) {overflow-wrap:anywhere;max-width:100%;box-sizing:border-box;}
body.hn-official .booking-layout :is(.card,.policy,.price-aside,section) {min-width:0;}
body.hn-official .group-price-table {width:100%;table-layout:fixed;}
body.hn-official .group-price-table :is(th,td) {overflow-wrap:anywhere;}
@media(max-width:600px) {
 body.hn-official #booking .row {grid-template-columns:minmax(0,1fr);}
 body.hn-official #booking .step-controls button {flex:1 1 115px;}
 body.hn-official #booking .copy-button {margin:0 0 1.25rem;}
}
