:root { font-family:var(--font-body); color:var(--text-primary); background:var(--surface-page); }
* { box-sizing:border-box; }
body { min-width:320px; margin:0; background:radial-gradient(circle at 88% 7%,rgba(184,201,186,.42),transparent 25%),var(--surface-page); }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { cursor:pointer; }
img { display:block; max-width:100%; }
.skip-link { position:fixed; z-index:10; top:1rem; left:1rem; padding:.7rem 1rem; border-radius:999px; color:var(--surface-page); background:var(--surface-strong); transform:translateY(-200%); }.skip-link:focus { transform:translateY(0); }
:focus-visible { outline:3px solid var(--inertial-focus-400); outline-offset:4px; }
.booking-header { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; width:min(calc(100% - 40px),1280px); min-height:72px; margin:20px auto 0; padding:6px 9px 6px 16px; border:1px solid var(--border-subtle); border-radius:var(--radius-control); background:rgb(255 255 255 / 86%); box-shadow:inset 0 1px rgb(255 255 255 / 92%),0 12px 36px rgb(2 24 19 / 9%); backdrop-filter:var(--glass-blur); }
.brand { display:grid; place-items:center; width:88px; height:58px; overflow:visible; }.brand img { width:auto; height:58px; max-width:none; filter:drop-shadow(0 0 8px rgb(169 188 66 / 35%)); }
.secure-note { margin:0; color:var(--text-secondary); font:.61rem var(--font-utility); letter-spacing:.09em; text-transform:uppercase; }.secure-note span { margin-right:.45rem; color:var(--action-accent); }
.help-link { justify-self:end; padding:.72rem 1rem; border:1px solid rgb(20 60 53 / 18%); border-radius:var(--radius-control); color:var(--surface-page); background:var(--surface-strong); font-size:.8rem; font-weight:600; }
.booking-page { display:grid; grid-template-columns:minmax(240px,.76fr) minmax(560px,1.5fr); gap:clamp(50px,8vw,130px); width:min(calc(100% - 44px),1240px); min-height:calc(100svh - 158px); margin:0 auto; padding:clamp(60px,9vh,120px) 0 clamp(50px,8vh,100px); }
.booking-intro { align-self:start; padding-top:clamp(24px,6vh,80px); }.eyebrow { margin:0 0 1rem; color:var(--inertial-forest-500); font:.66rem var(--font-utility); letter-spacing:.11em; text-transform:uppercase; }.booking-intro h1,.panel-heading h2,.summary-content h2 { margin:0; font-family:var(--font-display); font-weight:500; letter-spacing:-.055em; }.booking-intro h1 { font-size:clamp(3.15rem,5vw,5.4rem); line-height:.9; }.booking-intro > p:not(.eyebrow) { max-width:280px; margin:1.6rem 0 0; color:var(--text-secondary); line-height:1.55; }
.progress { display:grid; gap:13px; margin:clamp(46px,7vh,82px) 0 0; padding:0; list-style:none; color:#72877f; font-size:.82rem; }.progress li { display:flex; gap:.8rem; align-items:center; }.progress span { display:grid; place-items:center; width:25px; height:25px; border:1px solid currentColor; border-radius:50%; font:.58rem var(--font-utility); }.progress .is-current { color:var(--surface-strong); font-weight:600; }.progress .is-current span { color:var(--surface-page); border-color:var(--surface-strong); background:var(--surface-strong); }
.booking-workspace { display:grid; grid-template-columns:minmax(0,1.14fr) minmax(250px,.7fr); align-items:start; border:1px solid rgb(20 60 53 / 14%); border-radius:var(--radius-card); background:rgb(255 255 255 / 48%); box-shadow:0 22px 60px rgb(4 33 26 / 9%); overflow:hidden; }.booking-flow { min-width:0; padding:clamp(28px,4vw,56px); }.flow-panel { min-height:580px; }.panel-heading { max-width:445px; }.panel-heading h2 { font-size:clamp(2.25rem,3.7vw,4.2rem); line-height:.92; }.panel-heading > p:last-child { margin:1.3rem 0 0; color:var(--text-secondary); line-height:1.55; }
.date-grid,.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:clamp(34px,5vw,58px); }.field { display:grid; gap:.55rem; min-width:0; padding:0 4px 10px; border-bottom:1px solid rgb(20 60 53 / 25%); }.field span { color:var(--inertial-forest-500); font:.62rem var(--font-utility); letter-spacing:.08em; text-transform:uppercase; }.field input,.field select { width:100%; min-width:0; border:0; outline:0; color:var(--surface-strong); background:transparent; font-size:.94rem; }.field--full { grid-column:1/-1; }
.availability-result { display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; margin-top:24px; padding:14px; border:1px solid rgb(92 124 91 / 25%); border-radius:14px; background:rgb(218 239 206 / 42%); }.result-mark { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; color:var(--surface-page); background:var(--surface-strong); font-size:.8rem; }.availability-result strong { font-size:.84rem; }.availability-result p { margin:.18rem 0 0; color:var(--text-secondary); font-size:.76rem; }.result-price { color:var(--surface-strong); font:.69rem var(--font-utility); white-space:nowrap; }
.panel-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:clamp(34px,7vh,96px); }.panel-actions > span { color:var(--text-secondary); font-size:.72rem; }.button { display:inline-flex; align-items:center; justify-content:center; gap:.7rem; min-height:48px; border:0; border-radius:var(--radius-control); padding:.8rem 1.18rem; font-size:.84rem; font-weight:600; }.button--forest { color:var(--surface-page); background:var(--surface-strong); box-shadow:inset 0 1px rgb(255 255 255 / 14%); }.button:hover { transform:translateY(-2px); }.text-button { padding:0; border:0; color:var(--inertial-forest-500); background:transparent; font-size:.82rem; font-weight:600; }.form-error { min-height:1.1em; margin:14px 0 -14px; color:#9b3b30; font-size:.79rem; }.summary-bond { margin:0 20px 20px; color:#c4d4c9; font-size:.72rem; }[hidden] { display:none!important; }
.check-field { display:flex; gap:.7rem; align-items:center; margin-top:28px; color:var(--text-secondary); font-size:.83rem; }.check-field input { width:17px; height:17px; accent-color:var(--surface-strong); }
.addon-picker { min-width:0; margin:var(--space-6) 0 0; padding:0; border:0; }.addon-picker > legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }.addon-picker__heading { display:flex; align-items:end; justify-content:space-between; gap:var(--space-4); padding-top:var(--space-5); border-top:1px solid var(--border-subtle); }.addon-picker__heading .eyebrow { margin-bottom:var(--space-2); }.addon-picker__heading h3 { margin:0; color:var(--text-primary); font-family:var(--font-display); font-size:1.45rem; font-weight:500; letter-spacing:-.03em; }.addon-picker__heading > p { max-width:13rem; margin:0; color:var(--text-secondary); font-size:.76rem; line-height:var(--line-height-body); }.addon-list { display:grid; gap:var(--space-3); margin-top:var(--space-4); }.addon-state { margin:0; padding:var(--space-4); border:1px dashed var(--border-strong); border-radius:var(--radius-medium); color:var(--text-secondary); font-size:.8rem; }.addon-option { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--space-3); align-items:center; min-height:var(--control-height); padding:var(--space-3) var(--space-4); border:1px solid var(--border-subtle); border-radius:var(--radius-medium); background:var(--surface-raised); transition:border-color var(--duration-micro) var(--ease-quiet),background var(--duration-micro) var(--ease-quiet); }.addon-option:has(input:checked) { border-color:var(--border-strong); background:var(--surface-muted); }.addon-option > input[type="checkbox"] { width:1.15rem; height:1.15rem; margin:0; accent-color:var(--action-primary); }.addon-option__copy { display:grid; gap:var(--space-1); min-width:0; }.addon-option__copy strong { color:var(--text-primary); font-size:.84rem; }.addon-option__copy small { color:var(--text-secondary); font-size:.72rem; line-height:1.4; }.addon-option__price { display:grid; justify-items:end; gap:var(--space-1); color:var(--text-primary); font:.65rem var(--font-utility); white-space:nowrap; }.addon-option__price input { width:4.2rem; min-height:var(--control-height-compact); padding:var(--space-1) var(--space-2); border:1px solid var(--border-strong); border-radius:var(--radius-small); color:var(--text-primary); background:var(--surface-page); text-align:center; }.addon-option__required { color:var(--text-tertiary); font-size:.62rem; }.review-card { display:grid; gap:1px; margin-top:clamp(34px,5vw,58px); border:1px solid rgb(20 60 53 / 17%); border-radius:14px; overflow:hidden; }.review-card > div { padding:20px; background:rgb(245 247 243 / 76%); }.review-card .eyebrow { margin-bottom:.55rem; }.review-card strong { font-family:var(--font-display); font-size:1.28rem; font-weight:500; }.review-card p:not(.eyebrow) { margin:.4rem 0 0; color:var(--text-secondary); font-size:.82rem; }.prototype-note { display:flex; gap:.75rem; margin-top:20px; padding:14px; border-radius:12px; color:var(--text-secondary); background:rgb(184 201 186 / 28%); font-size:.75rem; line-height:1.45; }.prototype-note span { display:grid; place-items:center; flex:none; width:18px; height:18px; border:1px solid currentColor; border-radius:50%; font:.63rem var(--font-utility); }.prototype-note p { margin:0; }.prototype-note strong { display:block; color:var(--surface-strong); }
.trip-summary { position:sticky; top:22px; min-height:580px; color:var(--surface-page); background:var(--surface-strong); }.summary-photo { height:230px; overflow:hidden; }.summary-photo img { width:100%; height:100%; object-fit:cover; }.summary-content { padding:28px; }.summary-content .eyebrow { color:#c2d4c8; }.summary-content h2 { font-size:clamp(1.9rem,2.7vw,3rem); line-height:.94; }.summary-content ul { display:grid; gap:.65rem; margin:2rem 0 0; padding:0; color:#d7e2d9; font-size:.8rem; list-style:none; }.summary-content li::before { margin-right:.55rem; color:var(--action-accent); content:"✦"; font-size:.6rem; }.summary-meta { display:flex; align-items:end; justify-content:space-between; gap:.8rem; margin:0 28px; padding:18px 0 0; border-top:1px solid rgb(231 238 232 / 25%); color:#c4d4c9; font-size:.72rem; line-height:1.4; }.summary-meta strong { color:var(--surface-page); font:.71rem var(--font-utility); white-space:nowrap; }
.booking-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; width:min(calc(100% - 44px),1240px); margin:0 auto; padding:0 0 24px; color:var(--inertial-forest-500); font:.6rem var(--font-utility); letter-spacing:.06em; text-transform:uppercase; }
@media (max-width:980px) { .booking-page { grid-template-columns:1fr; gap:0; padding-top:50px; }.booking-intro { display:grid; grid-template-columns:1fr 1fr; column-gap:38px; padding:0 0 46px; }.booking-intro h1 { grid-column:1; }.booking-intro > p:not(.eyebrow) { grid-column:2; grid-row:2; align-self:end; margin:0; }.booking-intro .eyebrow { grid-column:1/-1; }.progress { grid-column:1/-1; grid-template-columns:repeat(3,1fr); margin-top:38px; }.booking-workspace { grid-template-columns:minmax(0,1fr) minmax(260px,.55fr); }.trip-summary { min-height:100%; }.summary-photo { height:190px; } }
@media (max-width:700px) { .booking-header { grid-template-columns:1fr auto; width:calc(100% - 24px); min-height:62px; margin-top:12px; padding-left:12px; }.brand { width:76px; height:50px; }.brand img { height:50px; }.secure-note { display:none; }.help-link { padding:.66rem .82rem; font-size:.75rem; }.booking-page { width:calc(100% - 24px); padding:40px 0 34px; }.booking-intro { display:block; padding-bottom:38px; }.booking-intro h1 { font-size:clamp(3rem,13vw,4.3rem); }.booking-intro > p:not(.eyebrow) { margin-top:1.3rem; }.progress { margin-top:32px; font-size:.7rem; }.progress li { gap:.45rem; }.booking-workspace { grid-template-columns:1fr; }.booking-flow { padding:26px 20px; }.flow-panel { min-height:0; }.date-grid,.detail-grid { grid-template-columns:1fr; margin-top:32px; }.field--full { grid-column:auto; }.panel-actions { align-items:stretch; flex-direction:column-reverse; margin-top:38px; }.panel-actions .button { width:100%; }.panel-actions > span { text-align:center; }.availability-result { grid-template-columns:auto 1fr; }.result-price { grid-column:2; }.trip-summary { position:relative; top:auto; min-height:0; }.summary-photo { height:240px; }.summary-content { padding:26px 20px; }.summary-meta { margin:0 20px; padding-bottom:22px; }.booking-footer { width:calc(100% - 24px); padding-bottom:20px; }.addon-picker__heading { align-items:start; flex-direction:column; }.addon-picker__heading > p { max-width:none; }.addon-option { grid-template-columns:auto minmax(0,1fr); }.addon-option__price { grid-column:2; justify-items:start; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; } }

.live-price-note { display:block; margin-top:var(--space-2); color:var(--text-secondary); font-size:var(--text-label); line-height:1.45; }
