
:root{--paper:#F7F2E8;--paper2:#FFFDF8;--paper3:#EFE7D8;--ink:#1A1714;--ink2:#443C33;--muted:#6B6055;--rule:#DACFBB;--red:#A32126;--river:#2F5A6B;--serif:"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
@media(prefers-color-scheme:dark){:root{--paper:#14120F;--paper2:#1C1916;--paper3:#241F1A;--ink:#F2EADC;--ink2:#D6CBBA;--muted:#A29685;--rule:#38312A;--red:#E4595C;--river:#7FB3C6;color-scheme:dark}}
:root[data-theme="light"]{--paper:#F7F2E8;--paper2:#FFFDF8;--paper3:#EFE7D8;--ink:#1A1714;--ink2:#443C33;--muted:#6B6055;--rule:#DACFBB;--red:#A32126;--river:#2F5A6B;color-scheme:light}
:root[data-theme="dark"]{--paper:#14120F;--paper2:#1C1916;--paper3:#241F1A;--ink:#F2EADC;--ink2:#D6CBBA;--muted:#A29685;--rule:#38312A;--red:#E4595C;--river:#7FB3C6;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:78px;overflow-x:clip}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit}.wrap{width:min(100% - 36px,1120px);margin:auto}.skip{position:absolute;top:-80px;left:0;padding:10px 16px;background:var(--red);color:#fff;z-index:100}.skip:focus{top:0}:focus-visible{outline:3px solid var(--river);outline-offset:0}
.site{position:sticky;top:0;z-index:30;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper2) 92%,transparent);backdrop-filter:blur(12px)}.bar{min-height:64px;display:flex;gap:12px;align-items:center}.mark{width:38px;height:38px;display:grid;place-items:center;border-radius:9px;background:var(--red);color:#fff7ec;text-decoration:none;font:700 21px var(--serif)}.bar strong{font:600 16px var(--serif)}.bar nav{margin-left:auto;display:flex;gap:16px;align-items:center;font-size:14px}.bar nav a{text-decoration:none;color:var(--ink2)}.theme-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--rule);background:var(--paper2);color:var(--ink);cursor:pointer}.theme-btn svg{grid-area:1/1;width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.theme-btn .theme-sun{display:none}.theme-btn[data-current-theme="dark"] .theme-sun{display:block}.theme-btn[data-current-theme="dark"] .theme-moon{display:none}
.hero{padding:clamp(38px,7vw,78px) 0;border-bottom:1px solid var(--rule);background:var(--paper2)}.hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,5vw,48px)}.hero-grid>div{max-width:820px}.eyebrow{margin:0 0 12px;color:var(--red);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}h1,h2{font-family:var(--serif);letter-spacing:-.025em;line-height:1.1}h1{margin:0;font-size:clamp(38px,7vw,72px);text-wrap:balance}.lede{max-width:58ch;font-size:clamp(18px,2.2vw,22px);color:var(--ink2)}aside{border-left:4px solid var(--red);background:var(--paper3);padding:14px 17px;border-radius:0 9px 9px 0;font-size:14.5px;color:var(--ink2)}figure{margin:0}figure img{width:100%;border:1px solid var(--rule);border-radius:13px}figcaption{margin-top:7px;color:var(--muted);font-size:12.5px}.hero figure img{aspect-ratio:2406/409;object-fit:contain;background:#efe8d9}
.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:clamp(32px,6vw,64px) 0}.route-card{border:1px solid var(--rule);border-radius:14px;background:var(--paper2);padding:22px}.route-card h2{font-size:28px;margin:0}.route-card>p{margin:4px 0 14px;color:var(--muted)}.route-card ol{list-style:none;margin:0;padding:0;columns:2;column-gap:18px}.route-card li{break-inside:avoid;margin:0 0 7px}.route-card a{text-decoration:none;color:var(--ink2);font-size:14px}.route-card a:hover{color:var(--red)}.route-card b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--paper3);margin-right:4px;color:var(--red)}
.tour-layout{display:grid;grid-template-columns:minmax(290px,350px) minmax(0,1fr);gap:clamp(28px,4vw,52px);align-items:start}.routes{min-width:0}/* The map is a wide strip panned inside .map-window; without min-width:0 its
   min-content pushes the whole tour column past the phone viewport and body's
   overflow-x:clip cuts the stops off with no way to scroll to them. */
.tour-map-card{min-width:0;position:sticky;top:82px;z-index:15;border:1px solid var(--rule);border-left:4px solid var(--red);border-radius:14px;padding:16px;background:var(--paper2);box-shadow:0 12px 30px -22px rgba(0,0,0,.5)}.tour-map-card h2{font-size:20px;margin:0 0 13px}.map-window{height:205px;overflow:hidden;border:1px solid var(--rule);border-radius:10px;background:#eee6d7}.map-track{width:1200px;position:relative}.map-track img{width:100%;height:auto;border:0;border-radius:0}.active-marker{position:absolute;left:35.557%;top:38.02%;transform:translate(-50%,-50%);width:24px;height:24px;border:4px solid #fff;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 52%,transparent),0 4px 10px rgba(0,0,0,.35);transition:left .35s ease,top .35s ease}.active-marker b{position:absolute;left:50%;top:-31px;transform:translateX(-50%);padding:3px 6px;border-radius:6px;background:var(--ink);color:var(--paper);font:700 10px/1 var(--sans);white-space:nowrap}.map-help{margin:10px 0 0;color:var(--muted);font-size:12.5px;line-height:1.45}
.route{padding:10px 0 70px}.route+.route{border-top:1px solid var(--rule);padding-top:60px}.route-head{margin:0 0 24px}.route-head h2{margin:0;font-size:clamp(32px,5vw,50px)}.stop{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,1.28fr);gap:clamp(22px,4vw,40px);align-items:start;padding:clamp(28px,5vw,52px) 0;border-top:1px solid var(--rule);scroll-margin-top:82px}.stop figure{position:sticky;top:90px}.stop figure img{aspect-ratio:4/3;object-fit:cover;background:var(--paper3)}.stop.is-active .stop-number{color:var(--river)}.stop-number{margin:0 0 7px;color:var(--red);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700}.stop h2{font-size:clamp(27px,4vw,40px);margin:0 0 18px}.stop-copy>p:not(.stop-number){max-width:68ch;color:var(--ink2);margin:0 0 1em}.stop-nav{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--rule);padding-top:17px;margin-top:24px;font-size:14px}.stop-nav a{color:var(--red);text-decoration:none}footer{border-top:1px solid var(--rule);background:var(--paper2);padding:28px 0;color:var(--muted);font-size:13px}
@media(max-width:900px){.tour-layout{grid-template-columns:1fr}.tour-map-card{top:72px}.map-window{height:154px}.map-track{width:900px}}
@media(max-width:720px){.stop{grid-template-columns:1fr}.route-grid{grid-template-columns:1fr}.route-card ol{columns:1}.stop figure{position:static}.bar strong{max-width:132px;line-height:1.15}.bar nav{gap:11px}.bar nav a:first-child{display:none}.stop{gap:20px}.stop figure img{max-height:360px}.route+.route{padding-top:42px}.tour-map-card{margin-inline:-10px;padding:11px 11px 9px}.tour-map-card .eyebrow{display:none}.tour-map-card h2{font-size:15px;margin-bottom:8px}.map-window{height:133px}.map-track{width:780px}.map-help{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
