:root{--paper:#f3f0e8;--ink:#17212a;--muted:#5b6466;--line:#cbd0c9;--accent:#b6502d;--dark:#10202b}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit}button{font:inherit}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 3.5vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(243,240,232,.96);backdrop-filter:blur(18px);z-index:1000}.brand{text-decoration:none;font-weight:800;letter-spacing:-.08em;font-size:1.7rem}.brand-mark{color:var(--accent);margin:0 .13em}.topbar-caption,.topbar nav,.eyebrow,.hero-meta,.map-note,.side-top,.card-index,.card-kind,.photo-credit,.thesis-foot,.source-note,footer{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.topbar-caption{color:var(--muted)}nav{display:flex;align-items:center;gap:2rem}nav a{text-decoration:none}nav a:hover,.conclusion a:hover{color:var(--accent)}.hero{min-height:calc(100svh - 72px);padding:4vw 3.5vw 3.5vw;position:relative;overflow:hidden;display:flex;flex-direction:column}.hero-meta{display:flex;justify-content:space-between;border-top:1px solid var(--ink);padding-top:1rem}.hero h1{font-family:Georgia,Times,serif;font-size:clamp(5.2rem,12.5vw,13.8rem);font-weight:400;line-height:.86;letter-spacing:-.085em;margin:auto 0;position:relative;z-index:1}.hero h1 em{font-weight:400;color:var(--accent)}.hero-bottom{display:flex;align-items:end;justify-content:space-between;position:relative;z-index:1}.hero-bottom p{max-width:500px;font-family:Georgia,serif;font-size:clamp(1.1rem,1.5vw,1.5rem);line-height:1.5}.circle-link{width:72px;height:72px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;text-decoration:none;font-size:2.1rem;transition:.2s}.circle-link:hover{background:var(--ink);color:var(--paper)}.hero-number{position:absolute;right:-1vw;top:6vw;font-size:38vw;font-weight:800;letter-spacing:-.12em;color:#e4e4da;line-height:1;pointer-events:none}.thesis,.route,.chapters,.sources{padding:7rem 3.5vw}.thesis{background:var(--dark);color:var(--paper);display:grid;grid-template-columns:1fr 2fr;gap:5vw}.eyebrow{display:block;font-weight:700}.thesis h2,.section-head h2,.conclusion h2{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em;line-height:1.03;font-size:clamp(3.2rem,6.5vw,7.4rem);margin:0 0 2rem}.thesis p{max-width:800px;font-family:Georgia,serif;font-size:clamp(1.35rem,2.1vw,2.2rem);line-height:1.45}.thesis-foot{display:flex;gap:2rem;margin-top:4rem;padding-top:1rem;border-top:1px solid #60707a}.section-head{display:flex;justify-content:space-between;gap:5vw;align-items:end;margin-bottom:3rem}.section-head .eyebrow{margin-bottom:2rem}.section-head h2{margin:0}.section-head p{max-width:360px;line-height:1.55;color:var(--muted)}.map-shell{display:grid;grid-template-columns:2fr 1fr;border:1px solid var(--ink);height:min(72vh,720px);min-height:520px}.map-shell #map{position:relative;background:#dbe5e4}.map-fallback{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}.leaflet-container{z-index:1;font:inherit}.leaflet-control-attribution{font-size:10px!important}.map-side{min-height:0;display:flex;flex-direction:column;background:var(--paper);border-left:1px solid var(--ink)}.side-top{display:flex;justify-content:space-between;padding:1.3rem;border-bottom:1px solid var(--line);font-weight:700}.stop-list{overflow:auto}.stop-jump{width:100%;border:0;border-bottom:1px solid var(--line);text-align:left;display:grid;grid-template-columns:3rem 1fr auto;gap:.7rem;align-items:center;background:transparent;padding:1rem 1.3rem;cursor:pointer}.stop-jump:hover,.stop-jump.active{background:var(--ink);color:var(--paper)}.stop-jump strong{font-size:1rem;font-weight:500}.stop-jump span{font-size:.72rem}.stop-jump small{opacity:.5}.map-note{display:flex;justify-content:space-between;gap:2rem;margin-top:1rem;color:var(--muted);line-height:1.5}.route-marker{background:var(--paper);border:2px solid var(--ink);color:var(--ink);border-radius:50%;width:33px;height:33px;display:grid;place-items:center;font-size:12px;font-weight:800;box-shadow:0 0 0 3px #f3f0e8}.route-marker.active{background:var(--accent);border-color:var(--accent);color:white;transform:scale(1.25)}.chapters{padding-top:2rem}.card{display:grid;grid-template-columns:1fr 1.05fr;gap:5vw;border-top:1px solid var(--ink);padding:5rem 0;scroll-margin-top:90px}.card.reverse .card-media{order:2}.card-top{display:flex;justify-content:space-between;margin-bottom:3rem}.card-index{font-weight:800;color:var(--accent)}.card-kind{color:var(--muted)}.card h3{font-family:Georgia,serif;font-weight:400;letter-spacing:-.06em;line-height:.98;font-size:clamp(3.4rem,6vw,7rem);margin:0 0 1rem}.card-place{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2rem}.card-lead{font-family:Georgia,serif;font-size:clamp(1.3rem,1.7vw,1.9rem);line-height:1.4}.card-story{font-size:1rem;line-height:1.7;max-width:650px}.card-value{border-left:3px solid var(--accent);padding-left:1.2rem;line-height:1.5;margin:2rem 0}.card-next{border-top:1px solid var(--line);padding-top:1rem;color:var(--muted);font-size:.88rem;line-height:1.6}.card-source{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;text-underline-offset:4px}.card-media{margin:0;align-self:start;position:relative}.card-media img{display:block;width:100%;height:min(65vh,650px);min-height:400px;object-fit:cover;background:#d0d4cf;filter:saturate(.7);transition:filter .25s}.card-media:hover img{filter:saturate(1)}.photo-credit{color:var(--muted);line-height:1.5;margin-top:.8rem}.photo-credit a{text-underline-offset:3px}.conclusion{background:var(--accent);color:white;padding:8rem 3.5vw;display:grid;grid-template-columns:1fr 2fr;gap:5vw}.conclusion h2{grid-column:2;margin:0}.conclusion p{grid-column:2;font-family:Georgia,serif;font-size:clamp(1.3rem,2vw,2rem);line-height:1.5;max-width:850px}.conclusion a{grid-column:2;justify-self:start;text-underline-offset:5px}.sources ol{padding:0;list-style:none;border-top:1px solid var(--ink)}.sources li{display:grid;grid-template-columns:3rem 1fr 1.5fr;border-bottom:1px solid var(--line);padding:1.1rem 0;gap:1rem;line-height:1.5}.sources li span:first-child{color:var(--accent);font-weight:700}.sources li a{overflow-wrap:anywhere;text-underline-offset:3px}.source-note{margin-top:2rem;color:var(--muted);line-height:1.6}footer{display:flex;justify-content:space-between;padding:2rem 3.5vw}footer a{text-decoration:none}.leaflet-popup-content-wrapper{border-radius:0!important;background:var(--paper)!important;color:var(--ink)!important}.leaflet-popup-content a{font-size:.8rem;color:var(--accent)}@media(max-width:850px){.topbar-caption{display:none}.topbar{padding:0 5vw}nav{gap:.8rem}nav a{display:none}.hero{padding:6vw 5vw}.hero h1{font-size:clamp(4.4rem,14vw,8rem)}.hero-number{font-size:65vw;top:25vw}.hero-bottom p{max-width:75%}.thesis,.route,.chapters,.sources,.conclusion{padding:5rem 5vw}.thesis,.conclusion{display:block}.thesis-foot{flex-wrap:wrap}.section-head{display:block}.map-shell{grid-template-columns:1fr;height:auto}.map-shell #map{height:480px}.map-side{border-left:0;border-top:1px solid var(--ink);max-height:350px}.card,.card.reverse{display:flex;flex-direction:column;gap:2rem}.card.reverse .card-media{order:0}.card-media img{height:450px}.conclusion h2,.conclusion p,.conclusion a{margin-top:2rem}.sources li{grid-template-columns:2rem 1fr}.sources li a{grid-column:2}.map-note{display:block}}@media(max-width:550px){.hero h1{font-size:18vw}.hero-bottom p{max-width:80%;font-size:1rem}.circle-link{width:50px;height:50px}.map-shell #map{height:370px}.card{padding:3rem 0}.card-media img{min-height:300px;height:350px}.card h3{font-size:3.4rem}.sources li{font-size:.85rem}}

/* Page-based journey */
[hidden]{display:none!important}
html{scroll-padding-top:72px}.view{min-height:calc(100svh - 72px)}.hero h1{font-size:clamp(4.5rem,10.5vw,11rem);max-width:96vw}.hero h1 em{font-size:.8em}.hero-number{right:1vw;top:5vw;opacity:.72}.route,.practical,.sources{scroll-margin-top:72px}.route-marker{width:36px;height:36px;font-size:12px;transition:transform .3s,background .3s}.route-marker.active{transform:scale(1.28);box-shadow:0 0 0 5px rgba(182,80,45,.2)}.stop-jump.active{background:var(--accent);color:white}.stop-jump:hover{background:var(--ink);color:white}.stop-jump.active:hover{background:var(--accent)}
.practical{padding:7rem 3.5vw;background:#e8e9df}.day-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-left:1px solid var(--ink);margin-bottom:4rem}.day{min-height:190px;padding:1.4rem;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column}.day span{font-size:.68rem;letter-spacing:.12em;font-weight:700;color:var(--accent)}.day strong{font-family:Georgia,serif;font-size:1.6rem;font-weight:400;margin-top:1.7rem}.day p{font-size:.88rem;line-height:1.5;color:var(--muted);margin:auto 0 0}.logistics{display:grid;grid-template-columns:1fr 1fr;gap:5vw;border-top:1px solid var(--ink);padding:2rem 0 5rem}.logistics p{font-family:Georgia,serif;font-size:clamp(1.15rem,1.5vw,1.5rem);line-height:1.5;max-width:670px}.budget{display:grid;grid-template-columns:1fr 1.55fr;gap:6vw;background:var(--dark);color:var(--paper);padding:4rem}.budget h3{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em;line-height:1.03;font-size:clamp(2.8rem,4.5vw,5.3rem);margin:2rem 0}.budget-intro p{line-height:1.65;max-width:500px}.budget-link{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.budget-link a{text-underline-offset:4px}.budget-calculator{border-top:1px solid #73818a}.budget-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:1.4rem 0}.budget-inputs label{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:#bac7ca;display:block}.budget-inputs input{display:block;margin-top:.5rem;border:1px solid #718087;background:transparent;color:white;padding:.75rem .85rem;width:100%;font-size:1rem;border-radius:0}.budget-inputs input:focus{outline:2px solid var(--accent)}.budget-result{border-top:1px solid #73818a;padding-top:1rem}.budget-result #budget-lines>div{display:flex;justify-content:space-between;gap:1rem;padding:.45rem 0;font-size:.88rem}.budget-result #budget-lines strong{font-weight:400}.budget-total{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-top:1px solid white;margin-top:1rem;padding-top:1.2rem}.budget-total span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.budget-total strong{font-family:Georgia,serif;font-size:clamp(2.1rem,3vw,3.3rem);font-weight:400;color:#f2a788}.budget-result p{color:#bdc8ca;font-size:.75rem;line-height:1.5;margin-top:1.3rem}
.place-page{padding:2.2rem 3.5vw 6rem;animation:pageEnter .45s ease both}.place-heading{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--ink);padding-top:1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.back-link{text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.2rem}.back-link:hover{color:var(--accent)}.place-title{display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:4vw;padding:7vh 0 3rem}.place-title h1{font-family:Georgia,serif;font-size:clamp(4.7rem,9.5vw,11rem);line-height:.92;letter-spacing:-.075em;font-weight:400;margin:1rem 0 0}.place-title p{font-family:Georgia,serif;font-size:clamp(1.2rem,1.9vw,2rem);line-height:1.45;max-width:620px;margin:0}.place-media{margin:0}.place-media img{display:block;width:100%;height:min(67vh,780px);min-height:380px;object-fit:cover;filter:saturate(.77);animation:imageEnter .7s ease .08s both}.place-media figcaption{margin:.7rem 0 0;text-transform:uppercase;letter-spacing:.09em;font-size:.68rem;color:var(--muted)}.place-media figcaption a{text-underline-offset:3px}.place-story{display:grid;grid-template-columns:1fr 1fr;gap:6vw;border-top:1px solid var(--ink);margin-top:6rem;padding:2rem 0 6rem}.place-story p{font-size:clamp(1.1rem,1.4vw,1.5rem);line-height:1.65}.place-story .story-lead{font-family:Georgia,serif;font-size:clamp(1.4rem,2.2vw,2.5rem);line-height:1.4;max-width:700px}.source-link{display:inline-block;margin-top:1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;text-underline-offset:4px}.place-next{display:flex;justify-content:space-between;align-items:end;gap:5vw;border-top:1px solid var(--ink);padding:3rem 0}.place-next h2{font-family:Georgia,serif;font-size:clamp(3rem,5vw,6rem);font-weight:400;letter-spacing:-.05em;line-height:1;margin:1rem 0}.place-next p{max-width:650px;line-height:1.55;color:var(--muted)}.action-button{appearance:none;border:1px solid var(--ink);background:var(--ink);color:var(--paper);text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:1.35rem 1.6rem;font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;transition:background .2s,color .2s,transform .2s}.action-button:hover{background:var(--accent);border-color:var(--accent);transform:translateY(-3px)}.finish-page{min-height:calc(100svh - 72px);background:var(--accent);color:white;padding:8vh 3.5vw;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;animation:pageEnter .45s ease both}.finish-page h2{font-family:Georgia,serif;font-size:clamp(5rem,11vw,13rem);line-height:.9;letter-spacing:-.08em;font-weight:400;margin:3rem 0}.finish-page h2 em{font-weight:400}.finish-page p{font-family:Georgia,serif;font-size:clamp(1.2rem,2vw,2rem);line-height:1.5;max-width:850px}.finish-actions{display:flex;align-items:center;gap:2rem;margin-top:2rem}.finish-actions .action-button{background:white;color:var(--ink);border-color:white}.finish-actions .action-button:hover{background:var(--ink);color:white;border-color:var(--ink)}.text-action{text-underline-offset:4px;text-transform:uppercase;font-size:.72rem;letter-spacing:.09em}
@keyframes pageEnter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes imageEnter{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.place-page,.place-media img,.finish-page{animation:none}.action-button,.route-marker{transition:none}}

@media(max-width:850px){.hero h1{font-size:clamp(4rem,12vw,7rem)}.hero h1 em{font-size:.78em}.practical{padding:5rem 5vw}.day-grid{grid-template-columns:repeat(2,1fr)}.budget{display:block;padding:2rem}.budget-calculator{margin-top:3rem}.place-page{padding:2rem 5vw 4rem}.place-title{grid-template-columns:1fr;padding:4rem 0 2rem}.place-title h1{font-size:clamp(4rem,12vw,7rem)}.place-story{grid-template-columns:1fr;gap:1rem;margin-top:4rem;padding-bottom:4rem}.place-next{display:block}.place-next .action-button{margin-top:2rem}.finish-page{padding:5rem 5vw}}@media(max-width:550px){.hero h1{font-size:17vw}.hero h1 em{font-size:.72em}.hero-number{top:40vw}.day-grid{grid-template-columns:1fr}.day{min-height:155px}.logistics{grid-template-columns:1fr;gap:2rem}.budget-inputs{grid-template-columns:1fr}.budget-total{display:block}.budget-total strong{display:block;margin-top:.5rem}.place-title h1{font-size:13vw}.place-media img{height:360px;min-height:0}.place-heading span{max-width:50%;text-align:right;line-height:1.5}.place-next h2{font-size:3rem}.finish-page h2{font-size:15vw}.finish-actions{align-items:flex-start;flex-direction:column}.topbar nav{gap:.5rem}}

/* Evidence-led price study */
.price-study{border-top:1px solid var(--ink);padding:3rem 0 4rem}.price-study h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(2.6rem,4vw,4.5rem);letter-spacing:-.05em;margin:1rem 0}.price-study>p{max-width:880px;line-height:1.65}.price-table-wrap{overflow-x:auto;margin-top:2rem;border-top:1px solid var(--ink)}.price-study table{border-collapse:collapse;width:100%;min-width:690px}.price-study th,.price-study td{padding:1rem .65rem;text-align:right;border-bottom:1px solid #abb5ae;font-size:.88rem}.price-study th:first-child{text-align:left}.price-study thead th{font-size:.67rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.price-study tbody th{font-weight:600}.price-study tbody small{display:block;font-size:.7rem;font-weight:400;color:var(--muted);padding-top:.2rem}.price-method,.price-sources{font-size:.82rem;color:var(--muted)}.price-sources a{display:inline-block;text-underline-offset:3px}.budget-options{display:grid;gap:1rem;padding:1.5rem 0}.budget-options label{display:flex;gap:1rem;align-items:flex-start;border-bottom:1px solid #556872;padding-bottom:1rem;cursor:pointer}.budget-options input{accent-color:#f2a788;width:1.1rem;height:1.1rem;flex:none;margin:.2rem 0}.budget-options span{font-size:.95rem}.budget-options small{display:block;color:#bdc8ca;font-size:.75rem;margin-top:.35rem;line-height:1.5}.budget-options a{text-underline-offset:3px}.budget-result .budget-total:first-of-type{margin-top:1.4rem}.budget-result .budget-total+.budget-total{border-top:1px solid #647580;margin-top:1rem;padding-top:1rem}.budget-result #budget-group{color:white}.place-story p+p{margin-top:1.4rem}.place-media img{filter:none}.place-media figcaption{line-height:1.5}
.story-media{margin:0 0 5rem}.story-media img{display:block;width:100%;max-height:650px;object-fit:cover}.story-media figcaption{font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);line-height:1.5;margin-top:.7rem}.story-media a{text-underline-offset:3px}
@media(max-width:850px){.price-study{padding:2rem 0 3rem}}
