/* Visit McLean County — The Two-Lane. Static site stylesheet. */
:root{
  --paper:#F2EBDB; --card:#F7F2E6; --ink:#241F17; --footer:#2B2A26;
  --muted:#6B5E48; --muted2:#524A3B; --amber:#E4A929; --amber-dk:#8A6A1B;
  --line:rgba(36,31,23,.16); --line-strong:#241F17;
  --disp:'Overpass',system-ui,sans-serif;
  --ui:'Archivo',system-ui,sans-serif;
  --serif:'Source Serif 4',Georgia,serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --wrap:1180px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:18px;line-height:1.6;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--disp);font-weight:900;letter-spacing:-.01em;line-height:1.04;margin:0}
a{color:var(--amber-dk);text-decoration:none}
a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.wrap-wide{max-width:1320px;margin:0 auto;padding-inline:clamp(20px,5vw,56px)}
.kicker{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--amber-dk)}
.mono{font-family:var(--mono)}
.center{text-align:center}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:12px;background:var(--ink);color:#fff;padding:8px 14px;z-index:200;border-radius:6px}

/* ---------- Route shields ---------- */
.shield{display:inline-flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:900;letter-spacing:.02em;border:3px solid var(--ink);border-radius:7px;padding:5px 11px 3px;line-height:1;background:var(--card);color:var(--ink);white-space:nowrap;font-size:15px}
.shield.sm{border-width:2px;padding:3px 8px 1px;font-size:12.5px;border-radius:5px}

/* ---------- Header / nav ---------- */
.site-head{background:var(--paper);border-bottom:4px solid var(--line-strong);position:relative;z-index:60}
.head-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0 16px}
.brand{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand b{font-family:var(--disp);font-weight:900;font-size:26px;letter-spacing:-.015em;line-height:.98}
.brand .stand{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase}
.brand .stand i{font-style:normal;height:11px;border-left:2px solid var(--line-strong)}
nav.primary>ul{list-style:none;margin:0;padding:0;display:flex;gap:4px}
nav.primary a{color:var(--ink)}
.nav-item{position:relative}
.nav-item>a{display:block;font-family:var(--ui);font-weight:700;font-size:13px;letter-spacing:.05em;text-transform:uppercase;padding:12px 14px;border-radius:6px}
.nav-item>a:hover,.nav-item:focus-within>a{background:var(--ink);color:var(--card);text-decoration:none}
.dropdown{position:absolute;top:100%;left:0;min-width:280px;background:var(--card);border:3px solid var(--ink);border-radius:10px;box-shadow:0 18px 40px rgba(36,31,23,.22);padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.14s ease;list-style:none;margin:0;z-index:80}
.nav-item::after{content:"";position:absolute;top:100%;left:0;width:100%;height:14px} /* hover bridge */
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{opacity:1;visibility:visible;transform:translateY(4px)}
nav.primary>ul>li:nth-last-child(1) .dropdown,nav.primary>ul>li:nth-last-child(2) .dropdown{left:auto;right:0}
.dropdown li a{display:block;padding:9px 12px;border-radius:6px;font-family:var(--ui);font-size:14px;font-weight:600;color:var(--ink)}
.dropdown li a:hover{background:var(--paper);text-decoration:none}
.dropdown .dd-head{display:block;padding:6px 12px 8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--amber-dk);border-bottom:1px solid var(--line);margin-bottom:4px}
.menu-toggle,.menu-btn{display:none}
.tagline{display:none}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:clamp(380px,56vw,640px);display:flex;align-items:flex-end;overflow:hidden;border-bottom:4px solid var(--line-strong)}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,16,10,.15) 0%,rgba(20,16,10,0) 30%,rgba(20,16,10,.62) 100%)}
.hero .hero-body{position:relative;padding-block:0 clamp(28px,5vw,56px);color:#fff}
.hero .kicker{color:var(--amber);margin-bottom:14px;text-shadow:0 1px 10px rgba(20,16,10,.6)}
.hero h1{font-size:clamp(38px,6.4vw,84px);color:#fff;text-shadow:0 2px 24px rgba(20,16,10,.55),0 1px 3px rgba(20,16,10,.6);max-width:16ch}
.hero p.sub{margin:16px 0 0;font-family:var(--serif);font-size:clamp(18px,2.2vw,24px);max-width:52ch;text-shadow:0 1px 14px rgba(20,16,10,.7)}

/* ---------- Section shell ---------- */
.band{padding-block:clamp(48px,6vw,88px)}
.band+.band{border-top:1px solid var(--line)}
.band-head{max-width:70ch}
.band-head h2{font-size:clamp(28px,4vw,46px)}
.band-head p{color:var(--muted2);font-size:19px;margin:14px 0 0}
.eyebrow{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.eyebrow::after{content:"";flex:1;height:2px;background:var(--line)}

/* ---------- Road strip (signature) ---------- */
.roadstrip{position:relative;margin-top:40px}
.roadstrip .stops{margin-left:104px}
.road{position:absolute;left:24px;top:0;bottom:0;width:60px;background:linear-gradient(90deg,#211f1c,#33302b 50%,#211f1c);border-radius:34px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.35)}
.road::before{content:"";position:absolute;left:50%;top:26px;bottom:26px;transform:translateX(-2px);border-left:5px dashed var(--amber)}
.stop{position:relative;padding:24px 0;border-bottom:2px solid var(--line)}
.stop:last-child{border-bottom:0}
.stop::before{content:"";position:absolute;left:-72px;top:30px;width:20px;height:20px;background:var(--amber);border:4px solid #211f1c;border-radius:50%;box-shadow:0 0 0 3px var(--paper)}
.stop .st-top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.stop h3{font-size:27px}
.stop h3 a{color:var(--ink)}
.stop .time{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-dk)}
.stop p{margin:8px 0 0;color:var(--muted2);font-size:17px;max-width:60ch}
.road-cap{margin-left:104px;margin-top:14px;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--muted)}

/* ---------- Route cards ---------- */
.route-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px}
.route-card{border:3px solid var(--ink);background:var(--card);border-radius:12px;padding:26px 26px 28px;display:flex;flex-direction:column}
.route-card .shield{align-self:flex-start;margin-bottom:16px}
.route-card h3{font-size:23px;margin-bottom:8px}
.route-card p{margin:0;color:var(--muted2);font-size:16.5px}

/* ---------- Cards / guide grid (even height) ---------- */
.card-grid{display:grid;gap:30px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:stretch}
.gcard{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.gcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(36,31,23,.14);border-color:var(--ink);text-decoration:none}
.gcard .thumb{aspect-ratio:3/2;background:#ddd6c4;overflow:hidden}
.gcard .thumb img{width:100%;height:100%;object-fit:cover}
.gcard .body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.gcard .tag{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--amber-dk);margin-bottom:10px;display:inline-flex;align-items:center;gap:8px}
.gcard .tag::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--tagc,var(--amber))}
.gcard h3{font-size:22px;line-height:1.12;min-height:2.24em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.gcard p{margin:10px 0 0;color:var(--muted2);font-size:15.5px;line-height:1.5}
.gcard .meta{margin-top:auto;padding-top:16px;font-family:var(--ui);font-size:12.5px;color:var(--muted);letter-spacing:.02em}

.feature{display:grid;grid-template-columns:1.15fr .85fr;gap:0;border:3px solid var(--ink);border-radius:14px;overflow:hidden;background:var(--card);text-decoration:none;color:var(--ink)}
.feature:hover{text-decoration:none;box-shadow:0 18px 40px rgba(36,31,23,.16)}
.feature .thumb{min-height:340px;background:#ddd6c4}
.feature .thumb img{width:100%;height:100%;object-fit:cover}
.feature .body{padding:clamp(26px,3vw,44px);display:flex;flex-direction:column;justify-content:center}
.feature .tag{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--amber-dk);margin-bottom:14px}
.feature h3{font-size:clamp(28px,3.4vw,42px);line-height:1.03}
.feature p{color:var(--muted2);font-size:18px;margin:14px 0 0;max-width:46ch}
.feature .meta{font-family:var(--ui);font-size:13px;color:var(--muted);margin-top:22px}

/* ---------- Map figure / slot ---------- */
.map-figure{margin:0}
.map-slot{border:3px dashed rgba(36,31,23,.42);background:repeating-linear-gradient(45deg,#e9dfc6,#e9dfc6 14px,#efe7d2 14px,#efe7d2 28px);border-radius:12px;min-height:clamp(300px,44vw,560px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}
.map-slot::before{content:"MAP";font-family:var(--mono);font-weight:600;letter-spacing:.34em;font-size:14px;color:var(--ink)}
.map-slot::after{content:attr(data-hint);font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--muted);max-width:44ch}
.map-figure figcaption{margin-top:14px;font-family:var(--ui);font-size:13.5px;color:var(--muted)}

/* ---------- Sponsors ---------- */
.sponsor-band{background:var(--footer);color:#d8d2c4;border-top:4px solid var(--line-strong)}
.sponsor-band .eyebrow::after{background:rgba(255,255,255,.18)}
.sponsor-band .kicker{color:var(--amber)}
.sponsor-band h2{color:#fff;font-size:clamp(24px,3vw,36px)}
.sponsor-band p.intro{color:rgba(255,255,255,.72);max-width:64ch;margin:12px 0 0;font-size:17px}
.sponsor-featured{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:34px}
.sponsor-row{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:22px}
.sponsor{position:relative;display:flex;align-items:center;justify-content:center;background:#1c1b18;border:1px solid rgba(255,255,255,.14);border-radius:10px;min-height:120px;overflow:hidden;text-decoration:none}
.sponsor.feat{min-height:180px;border-color:rgba(228,169,41,.5)}
.sponsor img{width:70%;max-height:56%;object-fit:contain;opacity:.9}

.sponsor.feat::before{content:"Featured";position:absolute;top:8px;left:8px;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);border:1px solid rgba(228,169,41,.5);border-radius:20px;padding:3px 8px}
.sponsor-blurb{display:none}

/* ---------- Footer ---------- */
.site-foot{background:var(--footer);color:rgba(255,255,255,.8);padding-block:48px 40px;font-size:15px;line-height:1.7}
.foot-top{display:grid;grid-template-columns:1.2fr 2fr;gap:40px;padding-bottom:30px;border-bottom:1px solid rgba(255,255,255,.14)}
.foot-brand b{font-family:var(--disp);font-weight:900;font-size:22px;color:#fff;display:block;letter-spacing:-.01em}
.foot-brand .stand{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:8px}
.foot-brand p{color:rgba(255,255,255,.62);margin:16px 0 0;max-width:38ch;font-size:14.5px}
.foot-map{display:grid;grid-template-columns:repeat(5,1fr);gap:22px}
.foot-map h4{font-family:var(--mono);font-weight:600;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:12px}
.foot-map ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.foot-map a{color:rgba(255,255,255,.8);font-family:var(--ui);font-size:13.5px}
.foot-map a:hover{color:#fff}
.foot-legal{padding-top:26px;color:rgba(255,255,255,.6);font-size:13.5px;max-width:92ch}
.foot-legal .disc{font-style:italic;color:rgba(255,255,255,.78);margin:0 0 8px}
.foot-legal .gf{margin:0}

/* ---------- Article ---------- */
.post-head{padding-block:clamp(36px,5vw,64px) 26px}
.post-head .kicker{display:inline-block;margin-bottom:16px}
.post-head h1{font-size:clamp(34px,5.2vw,64px);max-width:20ch}
.post-head .dek{font-family:var(--serif);font-size:clamp(19px,2.3vw,26px);line-height:1.4;color:var(--muted2);margin:18px 0 0;max-width:52ch}
.post-head .byline{font-family:var(--ui);font-size:14px;color:var(--muted);margin:22px 0 0;letter-spacing:.02em}
.post-hero{margin:0 auto clamp(32px,4vw,52px)}
.post-hero img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:4px}
.post-hero figcaption{font-family:var(--ui);font-size:13.5px;color:var(--muted);margin-top:10px}
.post-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(32px,4vw,64px);padding-bottom:64px;align-items:start}
.post-main{min-width:0}
.post-main>*{max-width:70ch}
.post-main .lead{font-family:var(--serif);font-size:clamp(20px,2.3vw,24px);line-height:1.5;color:var(--ink);font-weight:500;margin:0 0 26px}
.post-main p{font-size:19px;line-height:1.75;margin:0 0 24px}
.post-main h2{font-size:clamp(24px,3vw,32px);margin:40px 0 16px}
.post-main h3{font-size:21px;margin:30px 0 12px}
.post-main .body-list{padding-left:22px;margin:0 0 24px;font-size:19px;line-height:1.7}
.post-main .body-list li{margin-bottom:8px}
.post-main a{color:var(--amber-dk);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.post-main a:hover{color:var(--ink)}
.article-figure{margin:34px 0;max-width:none}
.article-figure img{width:100%;border-radius:4px}
.article-figure figcaption{font-family:var(--ui);font-size:13.5px;color:var(--muted);margin-top:10px}
.article-figure .credit{display:block;font-size:12px;color:var(--muted);opacity:.8;margin-top:2px}

.post-side{position:sticky;top:20px;display:flex;flex-direction:column;gap:26px}
.side-box{border:2px solid var(--line);border-radius:12px;background:var(--card);padding:20px 20px 22px}
.side-box h4{font-family:var(--mono);font-weight:600;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--amber-dk);margin-bottom:14px}
.rail{position:relative;padding-left:34px}
.rail::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:14px;background:#211f1c;border-radius:8px}
.rail::after{content:"";position:absolute;left:15px;top:16px;bottom:16px;border-left:3px dashed var(--amber)}
.rail li{position:relative;list-style:none;padding:7px 0}
.rail li::before{content:"";position:absolute;left:-31px;top:12px;width:12px;height:12px;background:var(--amber);border:3px solid #211f1c;border-radius:50%}
.rail ul{margin:0;padding:0}
.rail a{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink)}
.related-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.related-links a{font-family:var(--ui);font-weight:600;font-size:15px;color:var(--ink);line-height:1.25;display:block}
.related-links .rl-tag{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--amber-dk);margin-bottom:3px}

/* ---------- Editorial components ---------- */
.lead{font-size:1.15em}
.pullquote{border:0;margin:36px 0;padding:0}
.pullquote p{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(22px,2.8vw,30px);line-height:1.35;color:var(--ink);margin:0;border-left:5px solid var(--amber);padding-left:24px}
.blockquote{margin:30px 0;padding:20px 24px;background:var(--card);border-left:5px solid var(--ink);border-radius:0 8px 8px 0}
.blockquote p{margin:0;font-size:19px;line-height:1.6}
.blockquote cite{display:block;margin-top:12px;font-family:var(--ui);font-style:normal;font-size:14px;color:var(--muted)}
.callout{margin:30px 0;padding:22px 26px;background:rgba(228,169,41,.12);border:2px solid var(--amber);border-radius:10px}
.callout p{margin:0;font-size:17.5px;line-height:1.6}
.callout p+p{margin-top:10px}
.callout strong{font-family:var(--ui)}
p.note{font-family:var(--ui);font-size:15px;color:var(--muted2);background:var(--card);border:1px dashed var(--line-strong);border-radius:8px;padding:14px 18px}

.versus{border-collapse:collapse;width:100%;margin:26px 0;font-family:var(--ui);font-size:15px}
.versus th,.versus td{border:2px solid var(--ink);padding:12px 14px;text-align:left;vertical-align:top}
.versus thead th{background:var(--ink);color:var(--card);font-family:var(--disp);letter-spacing:.01em}
.versus tbody th{background:var(--card);font-weight:700}
.datatable{border-collapse:collapse;width:100%;margin:26px 0;font-family:var(--ui);font-size:14.5px}
.datatable th,.datatable td{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left}
.datatable thead th{border-bottom:2px solid var(--ink);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.datatable tbody tr:hover{background:var(--card)}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:26px 0}
.statblock{border:2px solid var(--line);border-radius:10px;background:var(--card);padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.stat-num{font-family:var(--disp);font-weight:900;font-size:clamp(26px,3vw,36px);line-height:1;color:var(--ink)}
.stat-label{font-family:var(--ui);font-size:13px;color:var(--muted2);line-height:1.35}
.side-box .statrow{grid-template-columns:1fr;gap:12px;margin:0}
.side-box .statblock{padding:14px 16px}

.timeline{list-style:none;margin:26px 0;padding:0}
.timeline li{display:grid;grid-template-columns:180px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}
.timeline .t-when{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.04em;color:var(--amber-dk);text-transform:uppercase}
.timeline .t-what{font-family:var(--ui);font-size:15.5px;color:var(--muted2);line-height:1.45}

.chart{margin:26px 0;font-family:var(--ui)}
.chart svg{width:100%;height:auto;overflow:visible}
.chart figcaption{font-size:13.5px;color:var(--muted);margin-top:10px}
.chart .bar-lbl{font-size:11px;fill:var(--muted2);font-family:var(--ui)}
.chart .bar-val{font-size:11px;fill:var(--ink);font-family:var(--mono)}

.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:26px 0}
.gallery figure{margin:0}
.gallery img{aspect-ratio:3/2;object-fit:cover;border-radius:4px}
.gallery figcaption{font-family:var(--ui);font-size:12.5px;color:var(--muted);margin-top:6px}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin:26px 0}
.profile-card{border:2px solid var(--line);border-radius:12px;background:var(--card);padding:22px;display:flex;flex-direction:column;gap:8px}
.profile-card .p-photo{width:76px;height:76px;border-radius:50%;object-fit:cover;background:#ddd6c4}
.profile-card.no-photo::before{content:attr(data-mono);width:76px;height:76px;border-radius:50%;background:var(--ink);color:var(--card);display:flex;align-items:center;justify-content:center;font-family:var(--disp);font-weight:900;font-size:26px}
.profile-card h3{font-size:20px}
.profile-card .p-role{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amber-dk);margin:0}
.profile-card p{font-family:var(--serif);font-size:15.5px;color:var(--muted2);line-height:1.5;margin:0}
.profile-card .p-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:6px}
.profile-card .p-links a{font-family:var(--ui);font-size:13px;font-weight:600}
.profile-card .p-attr{font-family:var(--ui);font-size:11.5px;color:var(--muted)}

.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:26px 0}
.org-card{display:flex;align-items:center;gap:14px;border:2px solid var(--line);border-radius:10px;background:var(--card);padding:14px 16px;text-decoration:none;color:var(--ink)}
.org-card:hover{border-color:var(--ink);text-decoration:none}
.org-logo{width:42px;height:42px;border-radius:8px;object-fit:cover;background:var(--ink)}
.org-card .org-name{font-family:var(--ui);font-weight:700;font-size:15px;display:block}
.org-card .org-host{font-family:var(--mono);font-size:11.5px;color:var(--muted);display:block}
.entity-ref{font-family:var(--ui);font-weight:600;color:var(--amber-dk);white-space:nowrap}

.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:26px 0}
.further-grid a{display:block;border:2px solid var(--line);border-radius:10px;background:var(--card);padding:18px 20px;text-decoration:none;color:var(--ink);font-family:var(--disp);font-weight:800;font-size:18px;line-height:1.15}
.further-grid a:hover{border-color:var(--ink);text-decoration:none;transform:translateY(-2px)}

/* ---------- End-notes ---------- */
.note-ref{font-family:var(--mono);font-size:.62em;font-weight:600;line-height:0;vertical-align:super}
.note-ref a{display:inline-block;min-width:20px;min-height:20px;padding:1px 4px;margin-left:1px;text-align:center;color:var(--ink);background:var(--amber);border-radius:5px;text-decoration:none}
.note-ref a:hover{background:var(--ink);color:var(--amber);text-decoration:none}
.endnotes{margin:52px 0 0;padding-top:26px;border-top:3px solid var(--ink);max-width:70ch}
.endnotes h2{font-size:22px;margin:0 0 4px}
.endnotes>p{font-family:var(--ui);font-size:14px;color:var(--muted);margin:0 0 20px}
.endnotes ol{list-style:none;counter-reset:en;margin:0;padding:0}
.endnotes li{counter-increment:en;position:relative;padding:14px 0 14px 44px;border-bottom:1px solid var(--line)}
.endnotes li:last-child{border-bottom:0}
.endnotes li::before{content:counter(en);position:absolute;left:0;top:14px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:600;background:var(--card);border:2px solid var(--ink);border-radius:7px}
.endnotes li:target{background:rgba(228,169,41,.14)}
.endnotes li:target::before{background:var(--amber)}
.endnotes p{margin:0;font-size:17px;line-height:1.6;color:var(--muted2)}
.endnotes .back{font-family:var(--mono);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;margin-left:6px;white-space:nowrap}

/* ---------- Grain-elevator index ---------- */
.eidx{margin-top:34px;border-top:3px solid var(--ink)}
.eidx-row{display:grid;grid-template-columns:64px 1fr 1.25fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line);align-items:start}
.eidx-row:hover{background:var(--card)}
.eidx-no{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--amber-dk);padding-top:6px}
.eidx-town{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.eidx-town h3{font-size:26px;line-height:1.05}
.eidx-town h3 a{color:var(--ink)}
.eidx-reads{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.eidx-what p{margin:0;font-size:17px;line-height:1.6;color:var(--muted2);max-width:62ch}
.eidx-what p+p{margin-top:8px}
.eidx-foot{margin:22px 0 0;font-family:var(--ui);font-size:15.5px;color:var(--muted2);max-width:80ch}
.eidx-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:32px}
.eidx-legend div{border:2px solid var(--line);border-radius:10px;background:var(--card);padding:18px 20px}
.eidx-legend dt{font-family:var(--disp);font-weight:800;font-size:18px;margin-bottom:6px}
.eidx-legend dd{margin:0;font-size:16px;line-height:1.55;color:var(--muted2)}
@media(max-width:860px){
  .eidx-row{grid-template-columns:44px 1fr;gap:14px 16px}
  .eidx-what{grid-column:2}
}

/* ---------- Season band ---------- */
.season-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:34px;align-items:stretch}
.season{display:flex;flex-direction:column;background:var(--card);border:2px solid var(--line);border-radius:12px;padding:22px 22px 24px;position:relative}
.season.best{border-color:var(--amber);border-width:3px;background:rgba(228,169,41,.09)}
.season h3{font-size:24px;display:flex;align-items:baseline;gap:10px}
.season .verdict{display:inline-block;align-self:flex-start;margin:12px 0 12px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:20px;padding:5px 11px 4px}
.season.best .verdict{background:var(--amber);border-color:var(--amber)}
.season p{margin:0;font-size:16.5px;line-height:1.55;color:var(--muted2)}
.season .pick{position:absolute;top:-11px;right:14px;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;background:var(--amber);color:var(--ink);border-radius:20px;padding:3px 10px}
.season-note{margin:26px 0 0;font-family:var(--ui);font-size:15.5px;color:var(--muted2);border-left:4px solid var(--ink);padding-left:16px;max-width:80ch}
@media(max-width:1000px){.season-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.season-grid{grid-template-columns:1fr}}

/* ---------- Category page hero ---------- */
.cat-hero{position:relative;border-bottom:4px solid var(--line-strong);overflow:hidden;min-height:clamp(280px,34vw,420px);display:flex;align-items:flex-end}
.cat-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-hero .scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(20,16,10,.7),rgba(20,16,10,.05) 62%)}
.cat-hero .inner{position:relative;color:#fff;padding-block:0 clamp(26px,4vw,44px)}
.cat-hero .kicker{color:var(--amber)}
.cat-hero h1{color:#fff;font-size:clamp(40px,6vw,72px);margin-top:12px;text-shadow:0 2px 20px rgba(20,16,10,.5)}
.cat-hero p{color:rgba(255,255,255,.9);max-width:56ch;margin:14px 0 0;font-size:19px;text-shadow:0 1px 12px rgba(20,16,10,.6)}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.crumb{font-family:var(--ui);font-size:13px;color:var(--muted);padding-block:22px 0}
.crumb a{color:var(--muted)}

/* ---------- Styleguide ---------- */
.sg-section{padding-block:40px;border-top:1px solid var(--line)}
.sg-section>h2{font-size:26px;margin-bottom:6px}
.sg-section>.sg-note{font-family:var(--ui);font-size:13.5px;color:var(--muted);margin:0 0 22px}

/* ---------- Responsive ---------- */
@media(max-width:1000px){
  .post-body{grid-template-columns:1fr}
  .post-side{position:static;flex-direction:row;flex-wrap:wrap}
  .post-side .side-box{flex:1 1 240px}
  .foot-top{grid-template-columns:1fr}
  .foot-map{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:860px){
  .menu-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--ui);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;border:3px solid var(--ink);border-radius:8px;padding:9px 14px;background:var(--card);color:var(--ink);cursor:pointer}
  nav.primary{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:4px solid var(--line-strong);box-shadow:0 20px 40px rgba(36,31,23,.16);display:none;z-index:70}
  .menu-toggle:checked ~ nav.primary{display:block}
  nav.primary>ul{flex-direction:column;gap:0;padding:8px 0}
  .nav-item>a{border-radius:0}
  nav.primary>ul>li:nth-last-child(1) .dropdown,nav.primary>ul>li:nth-last-child(2) .dropdown{right:auto}
  .dropdown{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;border-left:3px solid var(--amber);border-radius:0;margin:0 0 8px 14px;padding:4px 0 4px 6px;min-width:0}
  .nav-item::after{display:none}
  .route-cards{grid-template-columns:1fr}
  .sponsor-featured{grid-template-columns:1fr}
  .sponsor-row{grid-template-columns:repeat(2,1fr)}
  .feature{grid-template-columns:1fr}
  .feature .thumb{min-height:220px}
  .timeline li{grid-template-columns:1fr;gap:2px}
}
@media(max-width:700px){
  /* Wide charts stay legible: swipe instead of shrinking labels to nothing */
  .chart.bar,.chart.line{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .chart.bar svg,.chart.line svg{min-width:560px}
  .chart.bar figcaption,.chart.line figcaption{position:sticky;left:0}
}
@media(max-width:560px){
  body{font-size:17px}
  .stop h3{font-size:23px}
  .stop p{font-size:16.5px}
  .roadstrip .stops,.road-cap{margin-left:76px}
  .road{left:12px;width:44px}
  .stop::before{left:-58px;width:16px;height:16px}
  .foot-map{grid-template-columns:repeat(2,1fr)}
  .sponsor-row{grid-template-columns:repeat(2,1fr)}
}

/* mapkit: injected real geodata — pins are links */
.map-slot{padding:0;background:none!important;border:0!important;display:flex;align-items:center;justify-content:center;min-height:0!important}
.map-slot>svg.mapkit{width:auto!important;max-width:100%;max-height:640px;margin:0 auto}
.map-slot::after,.map-slot::before{content:none!important;display:none!important}
.map-figure figcaption{}
.mapkit__pin{cursor:pointer}
.mapkit__pin text{paint-order:stroke;stroke:#F2EBDB;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:9.1}
.mapkit__pin:hover text{font-weight:700}


/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* sp-feat-stack: featured slots stack — logo centred, blurb UNDER it at full width.
   Design ships .sponsor-blurb{display:none} and .sponsor as a centred flex ROW, so forcing a
   blurb visible squeezed it into a ~15ch gutter beside the logo and clipped it mid-word. */
.sponsor.feat{flex-direction:column;justify-content:flex-start;gap:10px;padding:20px 22px 22px;min-height:210px}
.sponsor.feat img{max-width:min(78%,240px);max-height:74px;margin:6px auto 2px}
.sponsor.feat .sponsor-blurb{display:block!important;position:static;width:100%;text-align:center;
  font-size:14px;line-height:1.5;color:rgba(255,255,255,.72);max-width:42ch;margin:0 auto}
/* roll slots stay logo-only */
.sponsor:not(.feat) .sponsor-blurb{display:none!important}

/* sp-logo-center: every logo box centres its wordmark, featured and roll alike.
   .sponsor is a flex row; a wordmark with intrinsic width otherwise sits left in the box. */
.sponsor{align-items:center;justify-content:center}
.sponsor img{display:block;margin-left:auto;margin-right:auto;object-position:center}
.sponsor.feat img{align-self:center}
.sponsor:not(.feat){padding:14px 12px}
/* sp-text-contrast: sponsor copy measured against its OWN ground as a WCAG contrast RATIO, not as a
   luminance subtraction. The subtraction passed capitanalatriste's blurbs at a 75-point gap
   while they sat at 2.8:1 and could not be read. Bar is 4.5:1 for body copy, 3:1 for large or
   bold; opacity is folded in, because it compounds down the tree and computed colour ignores
   it. The lift keeps Design's hue and saturation and moves lightness only, by the smallest
   step that clears the bar, so a warm blurb on near-black stays warm. Colour only — size,
   weight, family and spacing are exactly as delivered. */
.sponsor-blurb.sponsor-blurb{color:rgb(162,125,32)!important;opacity:1!important}

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.sponsor-featured .feat.sponsor.feat.sponsor img{height:74px!important}
.sponsor-row .sponsor.sponsor img{height:38px!important}

/* op-wrap-gutter: these elements carry the build's own gutter class but their own
   rule sets a padding SHORTHAND, which resets left/right to 0 — every line of type
   then sits against the screen edge at phone width. Design's own token is restated
   for the inline axis, on the exact element that lost it. Measured, not guessed:
   each selector below had TEXT within 2px of a viewport edge at 390. */
@media (max-width:900px){
  .wrap-wide.head-inner{padding-inline:clamp(20px,5vw,56px)}
}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1114px at 390, 11% of the whole page. Two columns bring it to
   934px (16% shorter). Checked before writing: no new overflow, smallest mark still
   84px wide, longest blurb 6 lines, tile heights 120-262px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   Only the tier(s) that were one-per-row are touched (.sponsor-featured), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .sponsor-featured{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:22px!important}
    .sponsor-featured > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-featured > * *{min-width:0!important;max-width:100%}
    .sponsor-featured img,.sponsor-featured svg{max-width:100%;height:auto}
}

/* op-blurb-rows: money blurbs ran to 6 rows at 390, 262px of tier across
   2 tiles. Operator: blurbs should show "2-3 rows max" on mobile —
   a blurb that long eats the screen and, in a two-column grid, rewraps into more height than
   the columns save. Held to three rows at phone width; the copy stays in the markup and
   desktop is untouched. Only the tier(s) measured past three rows are clamped. */
@media (max-width:640px){
  .sponsor-featured .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;max-height:63px!important;min-height:0!important;overflow:hidden!important}
}

/* op-article-width: the article column was capped at 671px (79 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through max-width 70ch (declared in .post-main > *) to ~100 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. The layout has no room to grow above 1600, so this width holds there. Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.wrap-wide div.post-main > :is(p:not([class])){max-width:min(864px, 100%)!important}
}
/* op-article-width:end */

/* op-hover-pad */
.eidx-row{padding-left:clamp(12px,3.5vw,22px)!important;padding-right:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--disp); font-weight: 900; letter-spacing: -0.01em; line-height: 1.04; margin: 0px;}
.stop h2:where(.rt-h3){font-size: 27px;}
.stop h2:where(.rt-h3) a{color: var(--ink);}
.gcard h2:where(.rt-h3){font-size: 22px; line-height: 1.12; min-height: 2.24em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;}
.season h2:where(.rt-h3){font-size: 24px; display: flex; align-items: baseline; gap: 10px;}
@media (max-width: 560px){.stop h2:where(.rt-h3){font-size: 23px;}}
/* op-heading-levels:end */

/* op-tablet-gutter — text never sits on the screen edge between the mobile guard and the max-width */
@media (min-width:901px) and (max-width:1399px){
  div.wrap-wide.head-inner{padding-left:max(clamp(20px,5vw,56px), 18px);padding-right:max(clamp(20px,5vw,56px), 18px)}
}
/* op-tablet-gutter:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.gcard > div.thumb > img,
  div.feature > div.thumb > img,
  div.post-main > figure.article-figure > img,
  div.wrap-wide > figure.post-hero > img,
  main > section.cat-hero > img,
  main > section.hero > img){height:auto}
/* op-img-dims:end */
@media (min-width:700px) and (max-width:879px){.sponsor-featured:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--sp-gap,16px)!important}.sponsor-featured:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}
/* op-heading-levels:h1-mirror */
h1.rt-h2 { font-family:var(--disp);font-weight:900;letter-spacing:-.01em;line-height:1.04;margin:0 }
.band-head h1.rt-h2 { font-size:clamp(28px,4vw,46px) }
/* op-heading-levels:h1-mirror:end */
