:root { color-scheme:dark; --navy:#080f16; --surface:#101b23; --ivory:#f0ede4; --muted:#a5b2b5; --jade:#a2c6b4; --jade-dark:#152d29; --line:#2b3940; --error:#f1b5a7; --display:"Cormorant Garamond","Iowan Old Style","Palatino Linotype",Georgia,serif; --body:"Avenir Next","Trebuchet MS",sans-serif; --gutter:clamp(22px,6vw,96px); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; }
body { margin:0; background:var(--navy); color:var(--ivory); font:16px/1.7 var(--body); -webkit-font-smoothing:antialiased; }
[hidden],.gate[hidden],.site[hidden] { display:none !important; }
::selection { background:var(--jade); color:var(--navy); }
a { color:inherit; text-underline-offset:5px; }
button,input { font:inherit; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--jade); outline-offset:5px; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--display); font-weight:400; line-height:1.04; text-wrap:balance; }
h1 { font-size:clamp(4rem,8.7vw,9rem); letter-spacing:-.055em; }
h2 { font-size:clamp(2.8rem,5.6vw,5.6rem); letter-spacing:-.045em; }
h3 { font-size:clamp(1.9rem,3vw,2.65rem); letter-spacing:-.025em; }
h1 em,h2 em { color:var(--jade); font-weight:400; }
p { margin-bottom:1.3em; }
.wrap { width:min(100%,1440px); margin-inline:auto; padding-inline:var(--gutter); }
section.wrap { padding-block:clamp(80px,10vw,150px); }
.eyebrow,.kicker { display:block; margin-bottom:24px; color:var(--jade); font:600 .68rem/1.7 var(--body); letter-spacing:.22em; text-transform:uppercase; }
.nav { position:absolute; z-index:10; inset:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:27px var(--gutter); border-bottom:1px solid var(--line); background:linear-gradient(var(--navy),transparent); }
.brand,.nav__brand { font-size:.88rem; font-weight:600; letter-spacing:.2em; text-decoration:none; text-transform:uppercase; }
.nav nav,.nav-links,.nav__links { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(18px,3vw,42px); }
.nav nav a,.nav-links a,.nav__links a { padding-block:8px; font-size:.72rem; letter-spacing:.08em; text-decoration:none; }
.nav a:hover { color:var(--jade); }
.nav a[aria-current="true"] { color:var(--jade); text-decoration:underline; text-underline-offset:7px; }
.hero-actions a[aria-current="true"] { box-shadow:0 0 0 2px var(--jade); }
.route-group-label { margin-block:0 24px; color:var(--jade); font-size:.85rem; }
.hero { position:relative; isolation:isolate; display:flex; align-items:center; min-height:850px; min-height:max(760px,100svh); padding:170px var(--gutter) 150px; background:var(--surface); }
.hero > img,.hero > picture,.hero > picture img { position:absolute; z-index:-3; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; }
.hero::before { content:""; position:absolute; z-index:-2; inset:0; background:linear-gradient(90deg,rgba(8,15,22,.82),rgba(8,15,22,.32) 65%,rgba(8,15,22,.18)); }
.hero::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(8,15,22,.28),transparent 35%,rgba(8,15,22,.2) 65%,var(--navy)); }
.hero-copy { width:min(100%,1000px); }
.hero-copy h1 { margin-bottom:28px; }
.hero-copy > p:not(.eyebrow) { max-width:490px; color:var(--ivory); font-size:.96rem; line-height:1.85; }
.actions,.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.btn,.button,.detail-button,.gate-form button { display:inline-flex; justify-content:center; align-items:center; gap:12px; min-height:48px; padding:14px 25px; border:1px solid var(--jade); border-radius:0; background:var(--jade); color:var(--navy); font-size:.7rem; font-weight:600; line-height:1.5; letter-spacing:.12em; text-align:center; text-decoration:none; text-transform:uppercase; transition:background .2s,color .2s,border-color .2s; }
.btn-outline { display:inline-flex; align-items:center; min-height:48px; padding:14px 25px; border:1px solid var(--muted); color:var(--ivory); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; text-decoration:none; }
.btn:hover,.button:hover,.detail-button:hover,.gate-form button:hover { background:var(--ivory); border-color:var(--ivory); color:var(--navy); }
.hero-bottom { position:absolute; right:var(--gutter); bottom:38px; left:var(--gutter); display:flex; justify-content:space-between; gap:24px; padding-top:22px; border-top:1px solid var(--line); color:var(--muted); font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; }
.stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); width:min(100%,1440px); margin-inline:auto; padding:46px var(--gutter); border-bottom:1px solid var(--line); }
.stats > div { padding-inline:24px; border-right:1px solid var(--line); text-align:center; }
.stats > div:last-child { border:0; }
.stats b { display:block; color:var(--ivory); font:400 clamp(2rem,3.3vw,3.5rem)/1.2 var(--display); }
.stats span { display:block; margin-top:10px; color:var(--muted); font-size:.62rem; letter-spacing:.13em; text-transform:uppercase; }
.section-head { max-width:820px; margin-bottom:46px; }
.section-head h2 { margin-bottom:22px; }
.section-head p:not(.eyebrow) { max-width:600px; color:var(--muted); }
.selector { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:40px; }
.selector button { min-height:44px; padding:11px 20px; border:1px solid var(--line); border-radius:0; background:transparent; color:var(--muted); font-size:.74rem; }
.selector button:hover { border-color:var(--jade); color:var(--ivory); }
.selector button[aria-pressed="true"],.selector button[aria-selected="true"] { background:var(--jade-dark); border-color:var(--jade); color:var(--jade); }
.route-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; align-items:stretch; }
.route-card { min-width:0; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); }
.route-card > img { width:100%; aspect-ratio:1.48; object-fit:cover; transition:filter .2s, object-position .2s; }
.route-card:nth-child(1) { border-top:3px solid var(--jade); }
.route-card:nth-child(2) { border-top:3px solid #d5b48a; }
.route-card:nth-child(1) > img { object-position:center 38%; filter:saturate(.82) contrast(1.05); }
.route-card:nth-child(2) > img { object-position:center 68%; filter:saturate(1.12) contrast(.96); }
.route-card:nth-child(1)::before,.route-card:nth-child(2)::before { position:absolute; z-index:1; margin:18px; padding:5px 9px; background:rgba(8,15,22,.78); color:var(--ivory); font-size:.6rem; letter-spacing:.14em; text-transform:uppercase; }
.route-card:nth-child(1)::before { content:"Route study 01"; }
.route-card:nth-child(2)::before { content:"Route study 02"; }
.route-card { position:relative; }
.route-card-body { display:flex; flex:1; flex-direction:column; gap:21px; padding:clamp(23px,3vw,40px); }
.route-card header { display:block; }
.route-card h3 { margin:0; }
.plan-id { color:var(--jade); font-size:.64rem; letter-spacing:.15em; }
.description { margin:0; color:var(--muted); font-size:.9rem; }
.route-line { display:flex; flex-wrap:wrap; align-items:center; gap:8px; color:var(--jade); font-size:.72rem; line-height:1.8; }
.route-stop:not(:last-child)::after { content:" /"; margin-left:8px; color:var(--muted); }
.budget { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:10px 20px; padding-top:22px; border-top:1px solid var(--line); }
.budget strong { color:var(--ivory); font:400 2.2rem var(--display); }
.budget small { display:block; margin-top:8px; color:var(--muted); font-size:.7rem; }
.detail-button { align-self:flex-start; margin-top:auto; background:transparent; color:var(--jade); border-color:var(--line); }
.note { padding:14px 18px; border-left:2px solid var(--jade); background:var(--jade-dark); color:var(--ivory); font-size:.8rem; }
.route-detail { border-top:1px solid var(--line); scroll-margin-top:32px; }
.route-detail:focus { outline:3px solid var(--jade); outline-offset:8px; }
.route-tools { display:flex; flex-wrap:wrap; gap:8px; margin:34px 0 24px; border-bottom:1px solid var(--line); }
.route-tools button { padding:13px 16px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font:500 .68rem var(--body); letter-spacing:.08em; text-transform:uppercase; }
.route-tools button:hover,.route-tools button.is-active { border-bottom-color:var(--jade); color:var(--jade); }
.planning-view { min-height:180px; margin-bottom:48px; }
.daily-grid,.things-grid,.checklist-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.day-card,.things-card,.check-row { border:1px solid var(--line); background:var(--surface); }
.day-card { padding:0; overflow:hidden; }
.day-body { padding:24px; }
.day-photo { margin:0; position:relative; }
.day-photo img { width:100%; height:210px; object-fit:cover; }
.day-photo figcaption { padding:12px 18px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 14px; border-bottom:1px solid var(--line); color:var(--muted); font-size:.65rem; line-height:1.6; }
.day-photo figcaption span { max-width:100%; }
.day-outing { border-block:1px solid var(--line); padding-block:16px; margin-block:16px; }
.day-outing h4 { margin:0 0 10px; font-family:var(--display); font-size:1.35rem; font-weight:400; }
.day-outing p,.day-context { font-size:.85rem; }
.day-outing small,.day-unpriced,.day-practical,.day-weather { font-size:.76rem; color:var(--muted); }
.day-practical { margin-block:18px; }
summary { cursor:pointer; color:var(--jade); padding-block:8px; }
.day-practical p { margin-block:12px; }
.day-weather { padding:14px; background:var(--jade-dark); border-left:2px solid var(--jade); }
.map-style-tools { display:flex; gap:8px; padding:18px 22px 0; }
.map-style-tools button,.weather-refresh { border:1px solid var(--line); background:var(--surface); color:var(--ivory); padding:7px 14px; font-size:.76rem; }
.map-style-tools button[aria-pressed="true"] { background:var(--jade); color:var(--navy); border-color:var(--jade); }
.leaflet-control-zoom a { background:var(--ivory); color:var(--navy); }
.route-weather { padding-top:52px; }
.route-weather header > p:not(.eyebrow) { max-width:760px; color:var(--muted); font-size:.86rem; }
.weather-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:24px; }
.weather-card { min-width:0; border:1px solid var(--line); background:var(--surface); padding:22px; }
.weather-card .eyebrow { letter-spacing:.12em; margin-bottom:12px; }
.weather-now { display:flex; align-items:center; flex-wrap:wrap; gap:14px; }
.weather-now strong { font-family:var(--display); font-size:3rem; font-weight:400; line-height:1.2; color:var(--jade); }
.weather-now strong span { font-size:1.1rem; }
.weather-now p { font-size:.86rem; margin:0; }
.weather-now small,.weather-days small { display:block; color:var(--muted); font-size:.65rem; font-weight:400; }
.weather-card details { margin-top:14px; font-size:.78rem; border-top:1px solid var(--line); }
.weather-days { margin:0; padding:0; list-style:none; }
.weather-days li { display:flex; justify-content:space-between; gap:12px; padding-block:10px; border-top:1px solid var(--line); }
.weather-days b { text-align:right; white-space:nowrap; font-weight:400; }
.weather-credit { color:var(--muted); font-size:.7rem; padding-top:20px; }
.flight-planning { padding-block:34px; border-bottom:1px solid var(--line); }
.flight-planning header > p:not(.eyebrow) { max-width:900px; color:var(--muted); font-size:.83rem; }
.flight-leg-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-block:24px; }
.flight-leg { min-width:0; padding:22px; background:var(--surface); border:1px solid var(--line); }
.flight-leg h4 { font-family:var(--display); font-size:1.7rem; font-weight:400; line-height:1.2; margin-block:0 14px; }
.flight-leg p,.flight-leg label,.flight-leg details,.flight-extras { font-size:.8rem; }
.flight-leg .eyebrow { margin-bottom:10px; }
.flight-leg input,.flight-extras input { display:block; width:100%; margin-block:8px 16px; padding:10px 12px; border:1px solid var(--line); color:var(--ivory); background:var(--navy); }
.flight-leg small { display:block; margin-top:8px; color:var(--muted); }
.flight-extras { display:block; max-width:560px; }
.flight-total { color:var(--jade); font-size:.92rem; }
.legacy-target { color:var(--muted); font-size:.75rem; }
.combined-budget { border-left:2px solid var(--jade); padding:18px 22px; margin-block:28px; background:var(--surface); }
.combined-budget > div { padding-top:18px; }
.combined-budget p,.legacy-references { color:var(--muted); font-size:.8rem; }
.budget-jumps { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.budget-jumps a { padding:8px 14px; border:1px solid var(--line); font-size:.8rem; text-decoration:none; }
.budget-jumps a:hover { color:var(--jade); }
@media(max-width:900px) { .flight-leg-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .flight-leg-grid { grid-template-columns:minmax(0,1fr); } }
@media (max-width:600px) { .weather-grid { grid-template-columns:minmax(0,1fr); } .day-body { padding:20px; } .day-photo img { height:185px; } }
.day-card-top { display:flex; align-items:center; gap:12px; }
.day-number { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--jade); color:var(--navy); font:1rem var(--display); }
.day-card h3,.things-card h3 { margin:18px 0 8px; font-size:1.55rem; }
.day-note { color:var(--muted); font-size:.82rem; }
.day-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.day-columns small { color:var(--jade); font-size:.58rem; letter-spacing:.1em; }
.day-columns p { margin-top:7px; color:var(--muted); font-size:.74rem; line-height:1.55; }
.things-card { padding:0; }
.things-card ul { margin:14px 0 0; padding-left:18px; color:var(--muted); font-size:.82rem; }
.things-card li + li { margin-top:9px; }
.attraction-list { display:grid; gap:14px; margin-top:22px; padding-top:18px; border-top:1px solid var(--line); }
.planning-intro { max-width:760px; margin-bottom:24px; color:var(--muted); font-size:.88rem; }
.destination-activities { margin-bottom:40px; }
.destination-activities > header { margin-bottom:20px; }
.destination-activities > header h3 { font-size:2rem; }
.attraction { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--line); background:var(--surface); }
.attraction figure { margin:0; }
.attraction img { display:block; width:100%; height:auto; aspect-ratio:3 / 2; object-fit:cover; }
.attraction figcaption { padding:8px 20px; border-bottom:1px solid var(--line); font-size:.65rem; }
.attraction-copy { display:grid; gap:14px; padding:24px; }
.attraction-copy h4 { margin:0; font:1.85rem var(--display); color:var(--ivory); }
.attraction-copy > p { margin:0; }
.activity-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:0; padding-block:18px; border-block:1px solid var(--line); }
.activity-facts dt { color:var(--muted); font-size:.7rem; }
.activity-facts dd { margin:6px 0 0; color:var(--jade); font:1.35rem var(--display); }
.activity-links { display:flex; flex-wrap:wrap; gap:8px 18px; }
.activity-links a { padding-block:10px; }
.attraction b { color:var(--ivory); font-size:.8rem; }
.attraction span,.attraction small,.attraction a { color:var(--muted); font-size:.66rem; }
.attraction span { color:var(--jade); }
.attraction p { color:var(--muted); font-size:.88rem; line-height:1.65; }
.attraction a { margin-right:12px; color:var(--jade); text-decoration:underline; }
.attraction figcaption a { margin:0; overflow-wrap:anywhere; }
.checklist-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.check-row { display:flex; align-items:flex-start; gap:14px; padding:18px; cursor:pointer; }
.check-row input { accent-color:var(--jade); margin-top:3px; }
.check-row span { display:grid; gap:6px; }
.check-row b { color:var(--ivory); font-size:.82rem; font-weight:500; }
.check-row small { color:var(--muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.08em; }
.detail-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(30px,6vw,90px); align-items:start; }
.timeline { min-width:0; }
.timeline-stop { position:relative; min-height:120px; margin-left:18px; padding:0 0 36px 44px; border-left:1px solid var(--line); }
.timeline-stop:last-child { border-left-color:transparent; padding-bottom:0; }
.timeline-number { position:absolute; top:0; left:-19px; display:grid; place-items:center; width:37px; height:37px; border:1px solid var(--line); border-radius:50%; background:var(--navy); color:var(--jade); font:1.05rem var(--display); }
.timeline-stop h3 { margin-bottom:12px; padding-top:4px; font-size:1.85rem; }
.timeline-stop p,.timeline-stop small { color:var(--muted); font-size:.85rem; }
.map-panel { min-width:0; border:1px solid var(--line); background:var(--surface); }
#route-map { isolation:isolate; width:100%; height:430px; background:var(--surface); color-scheme:light; }
.map-caption { padding:22px 26px; color:var(--muted); font-size:.76rem; }
.map-caption p:last-child { margin-bottom:0; }
.map-caption a,.map-cta { color:var(--jade); }
.detail-footer { display:grid; grid-template-columns:1fr 2fr; gap:30px; margin-top:45px; padding-top:28px; border-top:1px solid var(--line); }
.detail-footer strong { display:block; color:var(--jade); font:2rem var(--display); }
.detail-footer small { color:var(--muted); }
.price-section { border-top:1px solid var(--line); padding-block:100px; background:var(--surface); }
.route-card.is-selected { border-color:var(--jade); }
.budget-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.budget-summary h3 { color:var(--ivory); margin-bottom:12px; }
.budget-summary p { font-size:.8rem; }
.stop-actions { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; font-size:.72rem; color:var(--jade); }
.stop-actions button { background:none; border:0; color:var(--jade); padding:10px 0; font-size:inherit; }
.timeline-stop .eyebrow { margin-bottom:8px; color:var(--jade); font-size:.6rem; }
.map-panel > .eyebrow { padding:22px 24px 0; }
.route-pin span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; border:2px solid var(--ivory); background:var(--navy); color:var(--ivory); font:bold 12px var(--body); }
.leaflet-popup-content { color:var(--navy); }
.price-table caption { padding:18px 24px; text-align:left; color:var(--muted); }
.price-table-intro { margin:0 0 10px; color:var(--jade); font-size:.72rem; letter-spacing:.04em; }
.price-table-wrap:focus-visible { outline:3px solid var(--jade); outline-offset:5px; }
.price-table td small { display:block; }
@media (max-width:760px) { .budget-summary { grid-template-columns:1fr; } .price-section { padding-block:70px; } }
.budget-summary { gap:32px; margin-bottom:30px; padding:26px 0; border-block:1px solid var(--line); color:var(--muted); }
.budget-summary strong,.budget-summary b { color:var(--jade); }
.price-table-wrap { max-width:100%; overflow-x:auto; border:1px solid var(--line); scrollbar-color:var(--jade) var(--surface); }
.price-table-wrap table,.price-table { width:100%; min-width:660px; border-collapse:collapse; text-align:left; font-size:.82rem; }
.price-table-wrap th,.price-table-wrap td { padding:21px 24px; border-bottom:1px solid var(--line); vertical-align:top; }
.price-table-wrap th { background:var(--surface); color:var(--jade); font-size:.63rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.price-table-wrap tr:last-child td { border-bottom:0; }
.price-table-wrap td small { color:var(--muted); }
.price-table-wrap td strong { color:var(--ivory); }
.status { display:inline-block; padding:4px 9px; border:1px solid var(--line); color:var(--jade); font-size:.65rem; }
.status-provisional,.status-conditional,.status-unverified { color:var(--error); }
.details { border-top:1px solid var(--line); }
.notes-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 40px; }
.notes-grid > * { min-width:0; padding-top:28px; border-top:1px solid var(--line); }
.notes-grid h3 { margin-bottom:18px; font-size:1.8rem; }
.notes-grid p,.notes-grid li { color:var(--muted); font-size:.88rem; }
.notes-grid ul { padding-left:20px; }
.notes-grid li + li { margin-top:10px; }
.footer,.site > footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; padding:32px var(--gutter); border-top:1px solid var(--line); color:var(--muted); font-size:.72rem; }
.gate { position:fixed; z-index:100; inset:0; display:grid; place-items:center; overflow-y:auto; padding:40px 22px; background:linear-gradient(90deg,rgba(8,15,22,.88),rgba(8,15,22,.64)),url("assets/route-hero.png") center / cover; }
.gate-card { width:min(100%,510px); margin-block:auto; padding:clamp(28px,5vw,58px); border:1px solid var(--line); background:rgba(8,15,22,.94); box-shadow:0 28px 90px rgba(0,0,0,.3); }
.gate-card h1 { margin-bottom:24px; font-size:clamp(3rem,7vw,4.7rem); }
.gate-card > p:not(.eyebrow) { color:var(--muted); font-size:.88rem; }
.gate-form { display:grid; gap:12px; margin-top:30px; }
.gate-form label { color:var(--jade); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.gate-form input { width:100%; min-width:0; min-height:50px; padding:13px 16px; border:1px solid var(--line); border-radius:0; background:var(--surface); color:var(--ivory); }
.gate-form input::placeholder { color:var(--muted); }
.gate-form button { width:100%; margin-top:5px; }
.error { min-height:1.7em; margin:12px 0 0; color:var(--error); font-size:.8rem; }
@media (max-width:760px) {
    html { scroll-padding-top:24px; }
    .nav { align-items:flex-start; gap:14px; padding-block:22px; }
    .brand,.nav__brand { max-width:150px; font-size:.73rem; }
    .nav nav,.nav-links,.nav__links { justify-content:flex-end; gap:6px 15px; }
    .nav nav a,.nav-links a,.nav__links a { font-size:.62rem; }
    .hero { min-height:790px; min-height:max(740px,100svh); padding-top:160px; padding-bottom:140px; }
    .hero > img,.hero > picture img { object-position:62% center; }
    .hero-copy h1 { font-size:clamp(3.5rem,12vw,5.8rem); }
    .hero-copy > p:not(.eyebrow) { font-size:.88rem; }
    .hero-bottom { flex-wrap:wrap; gap:10px; font-size:.56rem; }
    .stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 0; padding-block:32px; }
    .stats > div { padding-inline:12px; }
    .stats > div:nth-child(2) { border:0; }
    .stats span { font-size:.56rem; }
    .route-grid,.detail-layout,.notes-grid,.detail-footer { grid-template-columns:minmax(0,1fr); }
    .route-grid { gap:26px; }
    .section-head { margin-bottom:30px; }
    .eyebrow { font-size:.61rem; }
    .route-card header { flex-wrap:wrap; }
    .route-card > img { aspect-ratio:1.3; }
    .detail-layout { gap:36px; }
    .daily-grid,.things-grid,.checklist-grid { grid-template-columns:minmax(0,1fr); }
    .day-columns { grid-template-columns:minmax(0,1fr); gap:10px; }
    .selector { gap:8px; }
    .selector button { padding:10px 14px; }
    .map-caption { padding:20px; }
    .footer,.site > footer { flex-direction:column; gap:12px; }
}
@media (max-width:420px) {
    .nav { flex-direction:column; gap:8px; }
    .brand,.nav__brand { max-width:none; }
    .nav nav,.nav-links,.nav__links { justify-content:flex-start; }
    .hero-copy h1 { font-size:3.5rem; }
    .hero-copy .btn { padding-inline:17px; }
    .hero-bottom { bottom:26px; }
    .route-card-body { padding:23px; }
    .gate-card { padding:28px 23px; }
}
@media (prefers-reduced-motion:reduce) {
    html,.price-table-wrap { scroll-behavior:auto !important; }
    *,*::before,*::after { animation:none !important; transition:none !important; }
    .route-card > img { filter:none; }
}

/* Couple planning uses the existing navy, ivory and jade editorial tokens. */
.gate-note { color:var(--muted); font-size:.75rem; }
.couple-pace { padding:26px; border:1px solid var(--line); margin-bottom:32px; background:var(--surface); }
.couple-pace h3 { font-size:1.7rem; }
.couple-pace li { margin-bottom:8px; }
.couple-budget-block { border-block:1px solid var(--line); padding-block:32px; margin-bottom:32px; }
.couple-controls { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; margin-block:24px; }
.couple-controls label { font-size:.8rem; }
.couple-controls input { display:block; width:100%; margin-top:8px; padding:12px; background:var(--surface); color:var(--ivory); border:1px solid var(--line); }
.couple-total { color:var(--jade); font-weight:600; font-size:1.1rem; }
.evidence-note { font-size:.7rem; color:var(--muted); }
.notes-grid small { display:block; color:var(--muted); }
@media(max-width:900px) { .couple-controls { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:420px) { .couple-controls { grid-template-columns:1fr; } .couple-pace { padding:18px; } }
