/* Visit Oxford — Honey Stone. Lit stone against night. */
:root{
  --paper:#0B1526;
  --paper-deep:#060D19;
  --paper-lift:#132038;
  --ink:#EAE0C6;
  --ink-soft:rgba(234,224,198,.72);
  --ink-faint:rgba(234,224,198,.5);
  --gold:#C89B57;
  --gold-soft:rgba(200,155,87,.42);
  --gold-faint:rgba(200,155,87,.16);
  --rule:rgba(234,224,198,.18);
  --display:"Cormorant Garamond",Garamond,Georgia,serif;
  --body:"Crimson Pro",Georgia,serif;
  --sans:"Archivo",system-ui,-apple-system,sans-serif;
  --measure:72ch;
  --gutter:clamp(20px,5vw,64px);
  --band:clamp(48px,7vw,96px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:19px;line-height:1.7;
  overflow-x:hidden;text-wrap:pretty;
  font-variant-ligatures:common-ligatures;
}
img{max-width:100%;display:block;height:auto}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--gold)}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.08;margin:0;letter-spacing:.002em}
p{margin:0 0 1.15em}
hr{border:0;border-top:1px solid var(--rule);margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{width:100%;max-width:1360px;margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--sans);font-size:11.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:0}
.rule-gold{border:0;border-top:1px solid var(--gold-soft)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:99;background:var(--gold);color:#0B1526;padding:10px 14px;font-family:var(--sans);font-size:13px}

/* ---------- masthead ---------- */
.site-head{position:relative;z-index:40;background:var(--paper-deep);border-bottom:1px solid var(--rule)}
.head-top{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:16px}
.wordmark{font-family:var(--display);font-size:clamp(28px,3.4vw,40px);font-weight:500;letter-spacing:.03em;line-height:1;white-space:nowrap}
.wordmark span{color:var(--gold)}
.head-tag{font-family:var(--sans);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);text-align:right;line-height:1.6}
.nav{display:flex;align-items:stretch;gap:clamp(10px,2vw,28px);border-top:1px solid var(--rule)}
.nav-item{position:relative;display:flex}
.nav-link{display:flex;align-items:center;gap:8px;padding:14px 0;font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.nav-link .no{color:var(--gold);font-size:10.5px;letter-spacing:.1em}
.nav-item:hover>.nav-link,.nav-link[aria-current="page"]{color:var(--gold)}
.nav-link[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--gold)}
.nav-panel{position:absolute;top:100%;left:-18px;min-width:310px;background:var(--paper-lift);border:1px solid var(--gold-faint);border-top:2px solid var(--gold);padding:14px 18px 16px;
  opacity:0;visibility:hidden;transform:translateY(2px);transition:opacity .14s ease,transform .14s ease;box-shadow:0 22px 50px rgba(0,0,0,.55)}
.nav-item:hover .nav-panel,.nav-item:focus-within .nav-panel{opacity:1;visibility:visible;transform:none}
.nav-panel::before{content:"";position:absolute;left:0;right:0;top:-10px;height:10px}
.nav-panel li{list-style:none}
.nav-panel ul{margin:0;padding:0;display:grid;gap:9px}
.nav-panel a{font-family:var(--body);font-size:16.5px;line-height:1.35;display:block}
.nav-panel .panel-all{display:inline-block;margin-top:12px;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.nav-desk{display:flex}
.menu{display:none}
.menu>summary{list-style:none;cursor:pointer;font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding:13px 0;display:flex;align-items:center;gap:10px}
.menu>summary::-webkit-details-marker{display:none}
.menu-body{padding-bottom:18px;display:grid;gap:18px}
.menu-body h3{font-family:var(--sans);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600}
.menu-body ul{margin:8px 0 0;padding:0;display:grid;gap:7px}
.menu-body li{list-style:none}
.menu-body a{font-size:17px}
.icn{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6}

/* ---------- hero ---------- */
.hero{position:relative;isolation:isolate;min-height:min(86vh,780px);display:flex;align-items:flex-end;overflow:hidden}
.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(178deg,rgba(6,13,25,.86) 0%,rgba(6,13,25,.35) 34%,rgba(6,13,25,.8) 68%,rgba(6,13,25,.94) 88%,var(--paper) 100%)}
.hero-inner{padding-block:clamp(40px,9vw,110px);width:100%}
.hero h1{font-size:clamp(42px,7.2vw,104px);max-width:19ch;text-shadow:0 2px 18px rgba(6,13,25,.85),0 6px 44px rgba(6,13,25,.6)}
.hero .lead{font-size:clamp(19px,2vw,26px);max-width:46ch;color:var(--ink);margin-top:22px;text-shadow:0 1px 14px rgba(6,13,25,.9),0 4px 30px rgba(6,13,25,.55)}
.hero .eyebrow,.hero .hero-meta a,.hero .credit{text-shadow:0 1px 12px rgba(6,13,25,.9)}
.hero-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:26px;font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.credit{font-family:var(--sans);font-size:10px;letter-spacing:.06em;color:var(--ink-faint)}

/* ---------- generic band ---------- */
.band{padding-block:var(--band)}
.band-deep{background:var(--paper-deep)}
.band-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 28px;border-top:1px solid var(--gold-soft);padding-top:20px;margin-bottom:34px}
.band-head h2{font-size:clamp(30px,4vw,52px)}
.band-head p{margin:0;max-width:52ch;color:var(--ink-soft);font-size:17.5px}
.more{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);min-width:0;max-width:100%;overflow-wrap:break-word}
.band-head>*{min-width:0}

/* ---------- cards (even height) ---------- */
.card-grid{display:grid;gap:26px;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.card{display:flex;flex-direction:column;background:var(--paper-lift);border:1px solid var(--rule);height:100%;transition:border-color .16s ease,transform .16s ease}
.card:hover{border-color:var(--gold-soft);transform:translateY(-2px)}
.card>.card-img{aspect-ratio:3/2;overflow:hidden;background:var(--paper-deep)}
.card>.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{display:flex;flex-direction:column;gap:10px;padding:20px 22px 22px;flex:1}
.card h3{font-size:26px;min-height:2.1em}
.card p{margin:0;font-size:16.5px;color:var(--ink-soft)}
.card .meta{margin-top:auto;padding-top:14px;font-family:var(--sans);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);display:flex;flex-wrap:wrap;gap:6px 10px}
.card .meta b{color:var(--gold);font-weight:600}

/* ---------- stone & light signature ---------- */
.stone-lead{position:relative}
.stone-lead img{width:100%;aspect-ratio:21/9;object-fit:cover}
.stone-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;padding-top:12px;border-top:1px solid var(--gold-soft);margin-top:14px;
  font-family:var(--sans);font-size:12.5px;letter-spacing:.02em;color:var(--ink-soft)}
.stone-grid{display:grid;gap:22px;margin-top:34px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.stone-fig{display:flex;flex-direction:column;gap:12px;margin:0}
.stone-fig img{aspect-ratio:4/5;object-fit:cover;width:100%}
.stone-fig.wide img{aspect-ratio:4/3}
.stone-fig figcaption{font-family:var(--sans);font-size:13px;line-height:1.55;color:var(--ink-soft)}
.stone-fig figcaption b{display:block;font-family:var(--display);font-size:22px;font-weight:500;color:var(--ink);letter-spacing:.01em;margin-bottom:4px}

/* ---------- access key ---------- */
.key-grid{display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule)}
.key-row{background:var(--paper);display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr) minmax(0,1fr);gap:22px;padding:26px 24px}
.key-tier{display:flex;align-items:flex-start;gap:12px}
.key-dot{flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--gold);margin-top:7px}
.key-dot.t1{background:var(--gold)}
.key-dot.t2{background:linear-gradient(90deg,var(--gold) 50%,transparent 50%)}
.key-dot.t3{background:radial-gradient(circle,var(--gold) 0 34%,transparent 35%)}
.key-dot.t4{border-color:var(--ink-faint)}
.key-tier b{font-family:var(--display);font-size:25px;font-weight:500;line-height:1.15;display:block}
.key-row h4{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:7px}
.key-row p{margin:0;font-size:16.5px;color:var(--ink-soft)}
.standing{display:flex;gap:16px;align-items:flex-start;border:1px solid var(--gold-soft);background:rgba(200,155,87,.07);padding:22px 24px;margin-top:22px}
.standing b{color:var(--gold);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:6px}
.standing p{margin:0;font-size:18px}

/* ---------- walk route ---------- */
.route{display:grid;gap:0 clamp(28px,4vw,56px);border-top:1px solid var(--rule);grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.route-stop{display:grid;grid-template-columns:minmax(0,40px) minmax(0,1fr);gap:0 18px;border-bottom:1px solid var(--rule);padding:15px 0;align-items:baseline}
.route-no{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--gold);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gold-soft);border-radius:50%;position:relative;top:2px}
.route-stop h3{font-size:23px;margin-bottom:3px}
.route-stop p{margin:0;font-size:16px;line-height:1.55;color:var(--ink-soft);max-width:52ch}
.route-facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:24px;font-family:var(--sans);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint)}
.route-facts span{display:flex;flex-direction:column;gap:3px}
.route-facts b{color:var(--gold)}

/* ---------- sections hub strip ---------- */
.sect-strip{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.sect-card{display:flex;flex-direction:column;gap:8px;border-top:2px solid var(--gold);padding-top:14px;height:100%}
.sect-card .no{font-family:var(--sans);font-size:11px;letter-spacing:.2em;color:var(--gold)}
.sect-card h3{font-size:27px}
.sect-card p{margin:0;font-size:16px;color:var(--ink-soft)}
.sect-card .n{margin-top:auto;padding-top:12px;font-family:var(--sans);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}

/* ---------- sponsors ---------- */
.sponsors{background:var(--paper-deep);border-top:1px solid var(--gold-faint);border-bottom:1px solid var(--gold-faint)}
.sponsor-note{max-width:60ch;color:var(--ink-soft);font-size:17px;margin:0}
.sponsor-row{display:grid;gap:18px;margin-top:26px}
.sponsor-row.featured{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.sponsor-row.rest{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
.sponsor{display:flex;flex-direction:column;gap:10px;background:#050A14;border:1px solid var(--rule);padding:18px;min-height:120px;justify-content:center;align-items:center;text-align:center}
.sponsor:hover{border-color:var(--gold-soft)}
.sponsor img{width:100%;max-width:180px;aspect-ratio:5/2;object-fit:contain;opacity:.5}
.sponsor-row.featured .sponsor{min-height:170px;border-color:var(--gold-soft)}
.sponsor-row.featured .sponsor img{max-width:230px}
.sponsor-blurb{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--ink-soft);max-width:34ch;overflow-wrap:anywhere}
.sponsor-blurb:empty{display:none}
.tier-label{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:28px 0 0}

/* ---------- footer ---------- */
.site-foot{background:var(--paper-deep);border-top:1px solid var(--gold-soft);padding-block:46px 34px}
.foot-top{display:grid;gap:32px;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr)}
.foot-cols{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
.foot-cols h4{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.foot-cols ul{margin:0;padding:0;display:grid;gap:6px}
.foot-cols li{list-style:none}
.foot-cols a{font-size:16px;color:var(--ink-soft)}
.disclaimer{border-top:1px solid var(--rule);margin-top:34px;padding-top:18px;font-family:var(--sans);font-size:12.5px;line-height:1.65;color:var(--ink-faint);max-width:92ch}
.disclaimer b{color:var(--ink-soft);font-weight:600}

/* ---------- article ---------- */
.art-head{padding-block:clamp(36px,6vw,74px) 0}
.art-head .kicker{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin-bottom:18px}
.art-head h1{font-size:clamp(34px,5.4vw,74px);max-width:26ch}
.byline{font-family:var(--sans);font-size:13.5px;letter-spacing:.06em;color:var(--ink-soft);margin-top:22px;display:flex;flex-wrap:wrap;gap:6px 14px}
.byline b{color:var(--ink);font-weight:600}
.art-hero{margin-top:34px}
.art-hero img{width:100%;aspect-ratio:16/7;object-fit:cover}
.art-hero figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 20px;padding-top:10px;font-family:var(--sans);font-size:12.5px;color:var(--ink-soft)}
.art-body{display:grid;grid-template-columns:minmax(0,var(--measure));justify-content:center;gap:0 clamp(28px,4vw,64px);padding-block:clamp(34px,5vw,60px) 0}
.art-body>*{grid-column:1}
.art-body h2{font-size:clamp(27px,3.4vw,40px);margin:1.5em 0 .5em;max-width:34ch}
.art-body h2:first-child{margin-top:0}
.art-body p{font-size:20.5px;line-height:1.75}
.art-body>p>a,.art-body li>a{color:var(--gold);box-shadow:inset 0 -1px 0 var(--gold-soft)}
.art-body>p>a:hover,.art-body li>a:hover{box-shadow:inset 0 -2px 0 var(--gold)}
.lead{font-family:var(--display);font-size:clamp(22px,2.5vw,30px);line-height:1.4;color:var(--ink);margin-bottom:1em}
.art-foot{padding-bottom:var(--band)}

/* components */
.pullquote{margin:1.6em 0;padding:0;border:0}
.pullquote p{font-family:var(--display);font-size:clamp(27px,3.6vw,40px);line-height:1.3;color:var(--gold);margin:0;text-align:left}
.blockquote{margin:1.6em 0;padding:0 0 0 24px;border-left:2px solid var(--gold-soft)}
.blockquote p{font-size:20px;font-style:italic;margin:0 0 .5em}
.blockquote cite{font-family:var(--sans);font-size:13px;font-style:normal;color:var(--ink-faint)}
.callout{margin:1.8em 0;background:var(--paper-lift);border:1px solid var(--gold-faint);border-left:3px solid var(--gold);padding:22px 26px}
.callout p{font-size:18.5px;margin:0}
.callout p+p{margin-top:.7em}
.note{font-family:var(--sans);font-size:15px;line-height:1.65;color:var(--ink-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0;margin:1.6em 0}
.keyfacts{margin:2em 0;border:1px solid var(--gold-soft);background:rgba(200,155,87,.05);padding:26px 28px}
.keyfacts>h3{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.keyfacts dl{margin:0;display:grid;gap:14px}
.keyfacts dt{font-family:var(--display);font-size:22px;color:var(--ink);line-height:1.2}
.keyfacts dd{margin:3px 0 0;font-size:17px;color:var(--ink-soft)}
.statrow{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));margin:1.8em 0}
.statblock{display:flex;flex-direction:column;gap:6px;border-top:2px solid var(--gold);padding-top:12px;min-width:0}
.stat-num{font-family:var(--display);font-size:clamp(34px,4.4vw,50px);line-height:1;color:var(--gold)}
.stat-label{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-soft);overflow-wrap:anywhere}
.timeline{list-style:none;margin:1.8em 0;padding:0;display:grid;gap:0}
.timeline li{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:6px 24px;padding:16px 0;border-top:1px solid var(--rule)}
.timeline li:last-child{border-bottom:1px solid var(--rule)}
.t-when{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);line-height:1.5}
.t-what{font-size:18px;color:var(--ink-soft)}
.datatable,.versus{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:17px;display:block;overflow-x:auto}
.datatable th,.datatable td,.versus th,.versus td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--rule);vertical-align:top}
.datatable thead th,.versus thead th{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold-soft)}
.versus tbody th{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink);width:26%}
.article-figure{margin:2em 0}
.article-figure img{width:100%;object-fit:cover}
.article-figure figcaption,.gallery figcaption{font-family:var(--sans);font-size:13.5px;line-height:1.6;color:var(--ink-soft);padding-top:10px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 18px}
.gallery{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin:2em 0}
.gallery figure{margin:0}
.gallery img{aspect-ratio:1/1;object-fit:cover;width:100%}
.map-figure{margin:2em 0}
.map-slot{aspect-ratio:16/9;border:1px dashed var(--gold-soft);background:
  repeating-linear-gradient(135deg,rgba(200,155,87,.05) 0 12px,transparent 12px 24px),var(--paper-lift)}
.map-figure figcaption{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);padding-top:10px}
.chart{margin:2em 0}
.chart svg{width:100%;height:auto;overflow:visible}
.chart .c-bar{fill:var(--gold)}
.chart .c-lab,.chart .c-val{font-family:"Archivo",sans-serif;font-size:12px;fill:var(--ink-soft)}
.chart .c-val{fill:var(--gold)}
.chart .c-axis{stroke:var(--rule)}
.chart .c-line{fill:none;stroke:var(--gold);stroke-width:2}
.chart figcaption{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);padding-top:10px}
.profile-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));margin:2em 0}
.profile-card{display:flex;flex-direction:column;gap:10px;background:var(--paper-lift);border:1px solid var(--rule);padding:20px;height:100%}
.profile-card .p-photo{width:74px;height:74px;object-fit:cover;border-radius:50%}
.profile-card h3{font-size:24px}
.profile-card .p-role{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0}
.profile-card p{font-size:16.5px;color:var(--ink-soft);margin:0}
.profile-card .p-links{margin-top:auto;padding-top:12px}
.profile-card .p-links a{color:var(--gold);font-family:var(--sans);font-size:13px}
.profile-card .p-attr{font-family:var(--sans);font-size:11.5px;color:var(--ink-faint)}
.profile-card.no-photo{border-left:3px solid var(--gold-soft)}
.org-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));margin:2em 0}
.org-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--rule);padding:16px;background:var(--paper-lift);min-width:0}
.org-card .org-logo{width:40px;height:40px;object-fit:contain;opacity:.6}
.org-name{font-family:var(--display);font-size:21px}
.org-host{font-family:var(--sans);font-size:12px;color:var(--ink-faint);overflow-wrap:anywhere}
.entity-ref{color:var(--gold);white-space:nowrap}
.further-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));margin:1.6em 0}
.further-grid a{display:flex;flex-direction:column;justify-content:space-between;gap:10px;border-top:2px solid var(--gold-soft);padding-top:12px;font-family:var(--display);font-size:23px;line-height:1.2;min-height:96px}
.related-links{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.related-links:empty{display:none}
.related-links li{border-top:1px solid var(--rule);padding-top:12px}
.related-links a{font-family:var(--display);font-size:24px;line-height:1.2}
.related-links .rl-dek{display:block;font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin-top:5px}
.cat-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.cat-list li{border-top:1px solid var(--rule)}
.cat-list li:last-child{border-bottom:1px solid var(--rule)}
.cat-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;align-items:baseline;padding:18px 0}
.cat-list .cl-title{font-family:var(--display);font-size:clamp(23px,2.6vw,30px);line-height:1.2}
.cat-list .cl-dek{grid-column:1;font-size:17px;color:var(--ink-soft)}
.cat-list .cl-meta{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.expander{margin-top:18px}
.expander>summary{list-style:none;cursor:pointer;font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding:12px 0;border-top:1px solid var(--gold-soft)}
.expander>summary::-webkit-details-marker{display:none}
.expander>summary::after{content:" +"}
.expander[open]>summary::after{content:" –"}

/* article side notes on wide screens */
@media (min-width:1180px){
  .art-body{grid-template-columns:minmax(0,var(--measure)) minmax(0,300px)}
  .art-body>.side{grid-column:2;margin-top:0;align-self:start}
  .art-body>.keyfacts.side,.art-body>.note.side,.art-body>.callout.side{margin-block:.4em 1.2em}
  .art-body>.keyfacts.side dt{font-size:19px}
  .art-body>.keyfacts.side dd{font-size:15.5px}
}
@media (max-width:1179px){
  .art-body>.side{grid-column:1}
}
@media (max-width:1060px){
  .nav-desk{display:none}
  .menu{display:block;border-top:1px solid var(--rule)}
  .key-row{grid-template-columns:minmax(0,1fr);gap:14px}
  .foot-top{grid-template-columns:minmax(0,1fr)}
  .timeline li{grid-template-columns:minmax(0,1fr)}
  .head-tag{display:none}
}
@media (max-width:640px){
  body{font-size:18px}
  .art-body p{font-size:19px}
  .card h3{min-height:0}
  .route-stop{grid-template-columns:minmax(0,32px) minmax(0,1fr);gap:0 14px}
  .route-no{width:28px;height:28px;font-size:10.5px}
  .cat-list a{grid-template-columns:minmax(0,1fr)}
  .cat-list .cl-meta{grid-column:1}
  .stone-fig img{aspect-ratio:4/3}
  .cl-meta,.band-head{row-gap:8px}
  .route-facts{gap:14px 22px}
}
@media print{
  body{background:#fff;color:#111}
  .site-head,.sponsors,.nav,.menu{display:none}
}

/* ---------- glossary ---------- */
.gloss-jump{display:flex;flex-wrap:wrap;gap:8px 10px;margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--rule)}
.gloss-jump a{font-family:var(--sans);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);padding:7px 11px}
.gloss-jump a:hover{border-color:var(--gold-soft);color:var(--gold)}
.gloss-grid{margin:0;display:grid;gap:1px;background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}
.gloss-card{background:var(--paper);padding:24px 26px;display:flex;flex-direction:column;gap:8px;scroll-margin-top:24px;min-width:0}
.gloss-grid dt{font-family:var(--display);font-size:30px;font-weight:500;line-height:1.1;color:var(--gold)}
.gloss-grid dd{margin:0;font-size:17.5px;line-height:1.6;color:var(--ink-soft)}
.gloss-where{margin-top:auto!important;padding-top:12px;border-top:1px solid var(--rule);font-family:var(--sans);font-size:12.5px!important;line-height:1.6!important;color:var(--ink-faint)!important}
.gloss-where a{color:var(--ink-soft);box-shadow:inset 0 -1px 0 var(--gold-faint)}
.gloss-where a:hover{color:var(--gold)}
.gloss-grid.compact .gloss-card{background:var(--paper-lift);padding:20px 22px}
.gloss-grid.compact dt{font-size:26px}
.gloss-grid.compact dd{font-size:16.5px}



/* 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:100%!important;max-width:100%;height:auto;max-height:none;margin:0 auto}
.map-slot{width:100%}
.map-slot{aspect-ratio:auto!important;height:auto!important}
.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:#0B1526;stroke-width:3px;stroke-linejoin:round}
.mapkit__pin:hover circle{r:12.2}
.mapkit__pin:hover text{font-weight:700}

/* sp-blurb-link: the blurb sentence is part of the money link — inherit styling so the design is unchanged */
.sponsor-blurb a{color:inherit;text-decoration:none}
.sponsor-blurb a:hover{text-decoration:underline}

/* op-undim-5up: operator: remove the darken filter, limit the bottom rows to five items. The
   "filter" is opacity:.5 on the mark — the estate's rule is real logos at full strength. The rest
   row's auto-fit at minmax(150px,1fr) was fitting seven across; five above 900px. */
.sponsor img{opacity:1}
@media (min-width:900px){
  .sponsor-row.rest{grid-template-columns:repeat(5,minmax(0,1fr))}
}

/* op-money-columns: the supporters block ran one tile per row — 12 tiles,
   1718px at 390, 11% of the whole page. Two columns bring it to
   1477px (14% shorter). Checked before writing: no new overflow, smallest mark still
   128px wide, longest blurb 6 lines, tile heights 170-212px.
   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.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.sponsor-row.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-row.featured{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:18px!important}
    .sponsor-row.featured > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-row.featured > * *{min-width:0!important;max-width:100%}
    .sponsor-row.featured img,.sponsor-row.featured svg{max-width:100%;height:auto}
  .sponsor-row.featured .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-blurb-rows: money blurbs ran to 6 rows at 390, 1076px of tier across
   9 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-row.rest .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;max-height:57px!important;min-height:0!important;overflow:hidden!important}
}

/* op-odd-tier-lead: .sponsor-row.featured (3 tiles), .sponsor-row.rest (9 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .sponsor-row.featured:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
  .sponsor-row.rest:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-blurb-two-rows: money blurbs ran FIVE rows or more (desk: .sponsor-row.rest 7 rows at 900). Operator: "we should probably limit that to display only 2" — held to two rows in that width band only; the copy stays in the markup. */
@media (min-width:641px){
  .sponsor-row.rest .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;max-height:2lh!important;min-height:0!important;overflow:hidden!important}
}
/* op-blurb-two-rows:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--display); font-weight: 500; line-height: 1.08; margin: 0px; letter-spacing: 0.002em;}
h3:where(.rt-h4){font-family: var(--display); font-weight: 500; line-height: 1.08; margin: 0px; letter-spacing: 0.002em;}
.menu-body h2:where(.rt-h3){font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); font-weight: 600;}
.key-row h3:where(.rt-h4){font-family: var(--sans); font-size: 10.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 7px;}
.sect-card h2:where(.rt-h3){font-size: 27px;}
.foot-cols h3:where(.rt-h4){font-family: var(--sans); font-size: 10.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px;}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > div.card-img > img,
  div.art-body > figure.article-figure > img,
  div.art-hero.wrap > figure > img,
  div.stone-grid > figure.stone-fig > img,
  div.wrap > figure > img,
  div.wrap > figure.stone-lead > img,
  main > section.hero > img){height:auto}
/* op-img-dims:end */
