.booking-flow{max-width:1100px;margin:auto;min-height:65vh}.booking-flow h1{font-size:clamp(32px,5vw,54px)}.booking-steps{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:30px 0}.booking-steps li{padding:9px 13px;border-radius:20px;background:#eef3f2;font-size:13px}.booking-steps .current{background:#103943;color:white}.booking-flow label{display:grid;gap:8px;margin:14px 0;font-size:15px}.booking-flow select,.booking-flow input:not([type=checkbox]){width:100%;box-sizing:border-box;padding:13px;border:1px solid #aebfbe;border-radius:6px;background:white;color:#103943;font:inherit;min-height:48px}.booking-flow input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.booking-flow .check-line{display:flex;align-items:flex-start;gap:12px}.booking-flow .button{margin:10px 10px 10px 0;cursor:pointer}.booking-flow .button:disabled{opacity:.5;cursor:not-allowed}.booking-flow [hidden]{display:none!important}.booking-flow .participant-form{padding:24px;background:#f4f7f5;border:1px solid #d8e2de;border-radius:12px;margin:24px 0}.booking-flow .tri-fields{margin-top:24px}.booking-summary{padding:24px;border-radius:12px;background:#f4f7f5;margin:20px 0}.booking-summary dl{margin:0}.booking-summary dl>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #dce4e0}.booking-summary dd{margin:0;text-align:right;font-weight:600}#booking-error{border:1px solid #b84a3d;background:#fff4f0;color:#802f24;padding:18px;margin:18px 0}#room-list,#distance-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-camp{padding:24px;margin:20px 0;border:1px solid #cbd9d3;border-radius:10px}.admin-booking{padding:16px;border-bottom:1px solid #dce4e0}.booking-flow :focus-visible{outline:3px solid #b68739;outline-offset:3px}@media(max-width:650px){#room-list,#distance-list{grid-template-columns:1fr}.booking-flow .participant-form{padding:16px}.booking-summary dl>div{display:block}.booking-summary dd{text-align:left;margin-top:6px}.booking-steps{gap:5px}.booking-steps li{font-size:11px;padding:7px 9px}}

.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:28px;align-items:start}.checkout-layout h3{font-size:24px;margin:0 0 18px}.card-payment{border:1px solid #cbd9d3;border-radius:12px;padding:28px;margin-top:0;background:#fff}.card-payment .eyebrow{margin:0 0 14px}.card-method{display:flex;gap:14px;padding:18px;border:1px solid #103943;border-radius:8px;background:#f4f7f5}.card-method>span{font-size:28px}.card-method p{font-size:15px;line-height:1.5;margin:6px 0 0}.checkout-amount{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;padding-top:26px}.checkout-amount strong{font-size:30px}.card-payment #checkout-plan,.checkout-security,.checkout-notice{font-size:14px;line-height:1.6}.checkout-notice{background:#eef3f2;padding:14px;border-radius:6px}.card-payment .button{display:block;width:100%;margin:20px 0 14px}.card-payment .button:disabled{opacity:1;background:#dce5e3;color:#506761;border-color:#dce5e3}.card-payment .legal-links{font-size:14px;gap:12px}.checkout-layout .booking-summary{margin-top:0}.checkout-security{color:#506761}@media(max-width:800px){.checkout-layout{grid-template-columns:1fr}.card-payment{padding:20px}.checkout-layout{gap:16px}}

/* Compact, top-aligned fields: long phone groups must not stretch email inputs. */
.booking-flow .participant-grid{align-items:start;gap:16px 24px}
.booking-flow .participant-grid>label,.booking-flow .birth-field{margin:0;align-content:start;align-self:start}
.booking-flow .participant-grid input,.booking-flow .participant-grid select{margin:0;min-height:46px;height:46px;padding:10px 12px}
.booking-flow .birth-selects{align-items:start}
.booking-flow .international-phone{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 24px;align-items:start}
.booking-flow .international-phone label{margin:0}
.booking-flow .international-phone small{grid-column:1/-1}
.booking-flow .participant-grid>label:has(input[name="email"]){grid-column:1/-1;width:min(100%,430px)}
.booking-flow [data-step]>h2:focus{outline:none}
.booking-flow :focus-visible{outline:2px solid #376c77;outline-offset:3px}
.booking-flow .button.is-loading:disabled{cursor:wait;opacity:.8}
@media(max-width:650px){.booking-flow .international-phone{grid-template-columns:1fr;gap:10px}.booking-flow .participant-grid{gap:16px}.booking-flow .participant-grid>label:has(input[name="email"]){width:100%}}
