/* ============================================================
   Study in Debrecen — The Companion
   Independent guide. Warm-academic: Debrecen crimson/burgundy,
   aged gold, ink, warm parchment.
   ============================================================ */
@import url('fonts.css');

:root{
  --crimson:#6b1220;
  --burgundy:#7d1b2e;
  --crimson-dark:#4e0d17;
  --gold:#a97e2f;
  --gold-bright:#c6a24c;
  --ink:#241c18;
  --ink-soft:#3d2f24;
  --ink-mute:#6a5842;
  --paper:#f4ecda;
  --paper-2:#fbf4e4;
  --paper-card:#fff8ea;
  --paper-deep:#ece0c4;
  --line:rgba(107,18,32,.16);
  --line-strong:rgba(107,18,32,.3);
  --dark:#201512;
  --dark-2:#2c1e19;
  --dark-3:#17100d;
  --gold-on-dark:#cba24a;

  --serif-display:'Newsreader','Palatino Linotype',Georgia,'Times New Roman',serif;
  --serif-body:'Spectral','Iowan Old Style',Georgia,serif;
  --sans:'Archivo','Helvetica Neue','Segoe UI',system-ui,sans-serif;

  --wrap:1200px;
  --measure:70ch;
  --gutter:clamp(20px,5vw,48px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--serif-body);
  font-size:19px;
  line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block;}
a{color:var(--crimson);text-decoration-color:rgba(107,18,32,.35);text-underline-offset:3px;}
a:hover{color:var(--burgundy);text-decoration-color:var(--burgundy);}
::selection{background:var(--crimson);color:var(--paper);}
h1,h2,h3,h4{font-family:var(--serif-display);font-weight:700;line-height:1.1;letter-spacing:-.012em;color:var(--ink);}
p{text-wrap:pretty;}

.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter);}
.wrap-wide{max-width:1360px;margin-inline:auto;padding-inline:var(--gutter);}
.kicker{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}

/* icons (inline svg, currentColor) */
.ico{width:1em;height:1em;display:inline-block;vertical-align:-.12em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}

/* ---------- top strip ---------- */
.topstrip{background:var(--dark);color:#d9c6a3;font-family:var(--serif-body);font-style:italic;font-size:14.5px;letter-spacing:.01em;text-align:center;padding:10px 20px;}

/* ---------- header / nav ---------- */
.site-header{position:sticky;top:0;z-index:60;background:rgba(244,236,218,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-strong);overflow-x:clip;}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:14px;}
.brand{display:flex;align-items:baseline;gap:11px;text-decoration:none;}
.brand .mark{font-family:var(--serif-display);font-size:23px;font-weight:700;color:var(--crimson);letter-spacing:-.01em;}
.brand .sub{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);}
.mainnav{display:flex;align-items:center;gap:1px;font-family:var(--sans);font-size:14.5px;list-style:none;margin:0;padding:0;}
.mainnav > li{position:relative;}
.mainnav > li > a{display:block;font-family:var(--serif-display);font-size:16.5px;font-weight:600;color:var(--ink-soft);text-decoration:none;padding:10px 11px;border-radius:3px;white-space:nowrap;}
.mainnav > li > a:hover{color:var(--crimson);background:rgba(107,18,32,.06);}
.mainnav .nav-cta{font-family:var(--serif-display);font-size:16px;font-weight:700;background:var(--crimson);color:var(--paper)!important;padding:9px 16px!important;border-radius:2px;letter-spacing:.005em;margin-left:4px;}
.mainnav .nav-cta:hover{background:var(--burgundy);}
.subnav{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;background:var(--dark);border:1px solid rgba(203,162,74,.25);border-radius:4px;padding:8px;list-style:none;margin:0;box-shadow:0 24px 46px -24px rgba(0,0,0,.6);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s;}
.mainnav > li:hover .subnav,.mainnav > li:focus-within .subnav{opacity:1;visibility:visible;transform:none;}
.mainnav > li:nth-last-child(2) .subnav,.mainnav > li:nth-last-child(3) .subnav{left:auto;right:0;}
.subnav a{display:block;font-family:var(--serif-display);color:#e6d8bb;text-decoration:none;font-size:16px;padding:9px 12px;border-radius:3px;}
.subnav a:hover{background:rgba(203,162,74,.14);color:#fff;}
.nav-toggle{display:none;background:none;border:1px solid var(--line-strong);border-radius:3px;padding:8px 10px;color:var(--crimson);cursor:pointer;}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--dark);}
.hero-media{position:absolute;inset:0;}
.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.42;animation:kenburns 18s ease-out forwards;}
@keyframes kenburns{from{transform:scale(1.07);}to{transform:scale(1);}}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(23,16,13,.94) 0%,rgba(23,16,13,.72) 46%,rgba(107,18,32,.32) 100%);}
.hero-inner{position:relative;padding-block:clamp(56px,8vw,96px);}
.hero-copy{position:relative;max-width:640px;}
.hero h1{font-size:clamp(40px,6vw,66px);color:#f6ecd6;margin:.35em 0 .3em;max-width:14ch;}
.hero .standfirst{font-size:clamp(18px,2.1vw,22px);color:#e6d6bb;max-width:34ch;margin:0 0 30px;line-height:1.5;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;}
.hero-facts{display:flex;flex-wrap:wrap;gap:14px 40px;margin:44px 0 0;padding-top:24px;border-top:1px solid rgba(203,162,74,.28);}
.hero-fact{margin:0;}
.hero-fact .hf-num{font-family:var(--serif-display);font-size:clamp(24px,3vw,30px);font-weight:700;color:var(--gold-bright);line-height:1;margin:0;}
.hero-fact .hf-lab{font-family:var(--sans);font-size:13px;color:#c4ae86;margin:7px 0 0;letter-spacing:.01em;}
.hero-caption{position:absolute;right:var(--gutter);bottom:22px;margin:0;font-family:var(--sans);font-size:12.5px;color:#a68a5c;letter-spacing:.02em;max-width:24ch;text-align:right;}
.btn{font-family:var(--sans);display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:600;text-decoration:none;padding:14px 24px;border-radius:2px;cursor:pointer;border:1px solid transparent;transition:transform .15s ease,background .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-gold{background:var(--gold-bright);color:var(--dark);}
.btn-gold:hover{background:#d8b45c;color:var(--dark);}
.btn-ghost{border-color:rgba(233,220,196,.42);color:#e9dcc4;}
.btn-ghost:hover{border-color:var(--gold-bright);color:#fff;}
.btn-crimson{background:var(--crimson);color:var(--paper);}
.btn-crimson:hover{background:var(--burgundy);color:var(--paper);}

/* ---------- section furniture ---------- */
.band{padding-block:clamp(56px,7vw,88px);}
.band-tint{background:var(--paper-2);}
.section-head{max-width:46ch;margin-bottom:42px;}
.section-head.center{margin-inline:auto;text-align:center;}
.section-head h2{font-size:clamp(30px,4vw,42px);margin:.4em 0 .35em;}
.section-head p{font-size:19px;color:var(--ink-soft);margin:0;}

/* ---------- explorer (signature) ---------- */
.explorer{background:var(--paper-deep);color:var(--ink);}
.explorer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(28px,4vw,56px);align-items:start;}
.explorer-intro .kicker{color:var(--gold);}
.explorer-intro h2{color:var(--ink);font-size:clamp(28px,3.6vw,40px);margin:.35em 0 .5em;}
.explorer-intro p{color:var(--ink-soft);font-size:19px;max-width:32ch;}
.explorer-note{font-family:var(--serif-body);font-style:italic;font-size:15px;color:var(--ink-mute);margin-top:20px;display:flex;align-items:center;gap:8px;}
.field-tabs{list-style:none;margin:0 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
.field-tab{width:100%;text-align:left;cursor:pointer;background:var(--paper-card);border:1px solid var(--line);color:var(--ink);border-radius:3px;padding:14px 18px;font-family:var(--serif-display);font-size:19px;font-weight:700;transition:background .16s ease,color .16s ease,border-color .16s ease;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.field-tab .ft-len{font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink-mute);}
.field-tab:hover{border-color:var(--gold);}
.field-tab[aria-selected="true"]{background:var(--crimson);color:var(--paper);border-color:var(--crimson);}
.field-tab[aria-selected="true"] .ft-len{color:#e6c48f;}
.field-panel{background:var(--paper-card);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:clamp(24px,3vw,36px);box-shadow:0 30px 60px -40px rgba(78,13,23,.5);}
.field-panel h3{color:var(--crimson);font-size:clamp(24px,3vw,30px);margin:0;}
.fp-head{display:flex;justify-content:space-between;align-items:baseline;gap:14px;border-bottom:2px solid var(--crimson);padding-bottom:14px;margin-bottom:20px;flex-wrap:wrap;}
.fp-head .tagline{font-family:var(--serif-body);font-style:italic;color:var(--ink-mute);font-size:16px;width:100%;margin-top:4px;}
.fp-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:22px;}
.fp-col h4{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin:0 0 8px;}
.fp-col p{margin:0;font-size:17px;color:var(--ink-soft);}
.fp-next{background:var(--paper-deep);border-left:3px solid var(--gold-bright);border-radius:0 3px 3px 0;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.fp-next .nx-label{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-mute);display:block;margin-bottom:4px;}
.fp-next p{margin:0;font-size:16.5px;}
/* static crawlable fallback list */
.field-static{margin-top:16px;}
.field-static summary{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);cursor:pointer;display:inline-flex;align-items:center;gap:7px;}
.field-static ul{margin:14px 0 0;padding-left:20px;color:var(--ink-soft);font-size:16px;}
.field-static li{margin-bottom:6px;}

/* ---------- chapters ---------- */
.chapter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}
.chapter-card{display:flex;flex-direction:column;background:var(--paper-card);border:1px solid var(--line);border-radius:5px;padding:28px 26px;text-decoration:none;color:var(--ink);min-height:100%;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.chapter-card:hover{transform:translateY(-4px);box-shadow:0 24px 44px -28px rgba(78,13,23,.5);border-color:var(--line-strong);}
.chapter-card .cc-num{font-family:var(--serif-display);font-size:30px;color:var(--gold);line-height:1;}
.chapter-card h3{font-size:24px;margin:14px 0 8px;color:var(--crimson);}
.chapter-card p{font-size:16.5px;color:var(--ink-soft);margin:0 0 18px;}
.chapter-card .cc-go{margin-top:auto;font-family:var(--sans);font-size:14px;font-weight:600;color:var(--crimson);display:inline-flex;align-items:center;gap:7px;}

/* generic even-height post cards (feed) */
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px;}
.post-card{display:flex;flex-direction:column;background:var(--paper-card);border:1px solid var(--line);border-radius:5px;overflow:hidden;text-decoration:none;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease;}
.post-card:hover{transform:translateY(-4px);box-shadow:0 24px 44px -28px rgba(78,13,23,.5);}
.post-card .pc-media{aspect-ratio:16/10;overflow:hidden;background:var(--dark-2);}
.post-card .pc-media img{width:100%;height:100%;object-fit:cover;}
.post-card .pc-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.post-card .pc-cat{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;}
.post-card h3{font-size:22px;margin:0 0 10px;color:var(--crimson);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.post-card p{font-size:16px;color:var(--ink-soft);margin:0 0 16px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.post-card .pc-meta{margin-top:auto;font-family:var(--sans);font-size:13.5px;color:var(--ink-mute);}

/* ---------- supporters ---------- */
.supporters{background:var(--dark);color:#e9dcc4;}
.supporters .kicker{color:var(--gold-on-dark);}
.supporters h2{color:#f6ecd6;font-size:clamp(28px,3.5vw,36px);margin:.35em 0 .4em;}
.supporters .lede{color:#d3c2a4;font-size:18px;max-width:52ch;margin:0 0 40px;}
.sponsor-featured{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:14px;}
.sponsor{display:flex;text-decoration:none;color:inherit;background:var(--dark-2);border:1px solid rgba(203,162,74,.24);border-radius:4px;transition:border-color .16s ease,transform .16s ease;}
.sponsor:hover{border-color:rgba(203,162,74,.5);transform:translateY(-3px);}
.sponsor img{opacity:1;}
.sponsor-featured .sponsor{flex-direction:column;gap:16px;padding:24px;min-height:150px;justify-content:space-between;}
.sponsor-featured .sponsor img{height:38px;width:auto;object-fit:contain;align-self:flex-start;}
.sponsor-featured .sponsor:first-child{grid-column:span 1;}
.sponsor-blurb{font-family:var(--sans);font-size:14px;color:#c4ae86;line-height:1.5;}
.sponsors-divider{border-top:1px solid rgba(203,162,74,.18);margin-top:36px;padding-top:26px;}
.sponsors-divider .roll-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8a7350;margin:0 0 18px;}
.sponsor-roll{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;}
.sponsor-roll .sponsor{align-items:center;gap:10px;padding:12px 20px;}
.sponsor-roll .sponsor img{height:22px;opacity:1;}
.sponsor-roll .sponsor-blurb{font-size:12.5px;color:#9c8460;}

/* ---------- footer ---------- */
.site-footer{background:var(--dark-3);color:#b79a6a;font-family:var(--sans);padding-block:52px;}
.footer-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr;gap:40px;}
.site-footer .f-brand{font-family:var(--serif-display);font-size:21px;color:#e9dcc4;margin:0 0 12px;}
.site-footer .disclaimer{font-size:14.5px;line-height:1.6;max-width:40ch;margin:0;color:#a68d63;}
.site-footer h4{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8a7350;margin:0 0 14px;}
.site-footer .f-links{display:flex;flex-direction:column;gap:9px;}
.site-footer a{color:#c9b48f;text-decoration:none;font-size:14.5px;}
.site-footer a:hover{color:#fff;}
.footer-base{border-top:1px solid rgba(203,162,74,.15);margin-top:36px;padding-top:22px;font-size:13px;color:#7d6849;}

/* ============================================================
   ARTICLE (guide) pages
   ============================================================ */
.article-hero{background:var(--dark);color:var(--paper);position:relative;overflow:hidden;}
.article-hero .ah-media{position:absolute;inset:0;}
.article-hero .ah-media img{width:100%;height:100%;object-fit:cover;opacity:.34;}
.article-hero .ah-media::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(23,16,13,.92),rgba(78,13,23,.6));}
.article-hero .ah-inner{position:relative;padding-block:clamp(44px,6vw,76px);max-width:960px;}
.article-crumb{font-family:var(--sans);font-size:13.5px;color:var(--gold-on-dark);margin:0 0 18px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.article-crumb a{color:var(--gold-on-dark);text-decoration:none;}
.article-crumb a:hover{color:#fff;}
.article-hero h1{font-size:clamp(32px,5vw,54px);color:#f6ecd6;margin:0 0 20px;max-width:20ch;}
.article-hero .dek{font-family:var(--serif-body);font-style:italic;font-size:clamp(18px,2.2vw,23px);color:#e6d6bb;max-width:44ch;line-height:1.45;margin:0 0 22px;}
.article-byline{font-family:var(--sans);font-size:14px;color:#b79a6a;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.article-byline .dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6;}

/* step nav (guided) */
.step-nav{background:var(--paper-2);border-bottom:1px solid var(--line);position:sticky;top:66px;z-index:40;}
.step-nav ol{list-style:none;margin:0;padding-block:12px;display:flex;gap:6px;overflow-x:auto;font-family:var(--sans);font-size:13.5px;-ms-overflow-style:none;scrollbar-width:none;}
.step-nav ol::-webkit-scrollbar{display:none;}
.step-nav a{white-space:nowrap;text-decoration:none;color:var(--ink-mute);padding:6px 12px;border-radius:20px;display:inline-flex;gap:7px;align-items:center;}
.step-nav a:hover{background:rgba(107,18,32,.08);color:var(--crimson);}
.step-nav a .sn-num{font-family:var(--serif-display);color:var(--gold);font-size:14px;}

/* article body — wide, asymmetric, breakout-friendly */
.article-shell{padding-block:clamp(40px,5vw,64px);}
.article-body{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gutter);font-size:20px;line-height:1.72;}
.article-body > p,.article-body > h2,.article-body > h3,.article-body > .note,.article-body > .callout{}
.article-body h2{font-size:clamp(26px,3.2vw,34px);color:var(--crimson);margin:2em 0 .5em;display:flex;gap:16px;align-items:baseline;scroll-margin-top:120px;}
.article-body h2 .sec-num{font-family:var(--serif-display);font-size:.72em;color:var(--gold);flex:none;}
.article-body h3{font-size:23px;color:var(--ink);margin:1.6em 0 .4em;}
.article-body p{margin:0 0 1.1em;}
.article-body a{font-weight:500;}
.article-body strong{color:var(--ink);}
.article-body .lead{font-size:23px;line-height:1.55;color:var(--ink-soft);font-family:var(--serif-body);margin-bottom:1.1em;}
.article-body .lead:first-letter,.dropcap:first-letter{float:left;font-family:var(--serif-display);font-size:3.6em;line-height:.72;font-weight:700;color:var(--crimson);padding:.06em .12em 0 0;}

/* breakouts extend beyond the reading measure */
.breakout{max-width:1080px;margin-inline:auto;padding-inline:var(--gutter);}
.breakout-wide{max-width:1240px;margin-inline:auto;padding-inline:var(--gutter);}

/* PALETTE components */
.lead{font-size:22px;color:var(--ink-soft);}
.pullquote{margin:1.6em 0;padding:0 0 0 26px;border-left:4px solid var(--gold-bright);}
.pullquote p{font-family:var(--serif-display);font-style:italic;font-size:clamp(24px,3.2vw,32px);line-height:1.28;color:var(--crimson);margin:0;}
.blockquote{margin:1.6em 0;padding:24px 28px;background:var(--paper-card);border-radius:5px;border:1px solid var(--line);}
.blockquote p{font-family:var(--serif-body);font-style:italic;font-size:21px;color:var(--ink-soft);margin:0 0 10px;}
.blockquote cite{font-family:var(--sans);font-style:normal;font-size:14px;color:var(--ink-mute);}
.callout{margin:1.6em 0;background:var(--crimson);color:var(--paper);border-radius:5px;padding:24px 28px;}
.callout p{margin:0;font-size:19px;line-height:1.55;}
.callout .co-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-on-dark);display:block;margin-bottom:8px;}
.note{margin:1.4em 0;background:var(--paper-deep);border-left:3px solid var(--gold);border-radius:0 4px 4px 0;padding:16px 20px;font-size:17px;color:var(--ink-soft);}
.note .note-label{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:5px;}

/* by-the-numbers rail (contextual aside — figures only) */
.by-numbers{margin:2em 0;background:var(--dark);color:var(--paper);border-radius:6px;padding:26px 30px;}
.by-numbers .bn-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-on-dark);margin:0 0 18px;}
.bn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;}
.bn-item .bn-num{font-family:var(--serif-display);font-size:clamp(22px,2.7vw,32px);font-weight:700;color:#f6ecd6;line-height:1.08;display:block;overflow-wrap:anywhere;}
.bn-item .bn-cap{font-family:var(--sans);font-size:13.5px;color:#c4ae86;margin-top:8px;display:block;line-height:1.4;}

/* statblock */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px;margin:1.6em 0;}
.statblock{background:var(--paper-card);border:1px solid var(--line);border-radius:5px;padding:20px;text-align:center;}
.stat-num{font-family:var(--serif-display);font-size:clamp(20px,2.4vw,30px);font-weight:700;color:var(--crimson);display:block;line-height:1.08;overflow-wrap:anywhere;}
.stat-label{font-family:var(--sans);font-size:13.5px;color:var(--ink-mute);display:block;margin-top:8px;}

/* tables */
.versus,.datatable{width:100%;border-collapse:collapse;margin:1.6em 0;font-size:17px;}
.versus th,.versus td,.datatable th,.datatable td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);vertical-align:top;}
.versus thead th,.datatable thead th{font-family:var(--sans);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--paper);background:var(--crimson);border-bottom:none;}
.versus tbody tr:nth-child(even),.datatable tbody tr:nth-child(even){background:var(--paper-card);}
.versus td:first-child{font-weight:600;color:var(--ink);width:26%;}
.datatable caption,.versus caption{font-family:var(--sans);font-size:13.5px;color:var(--ink-mute);text-align:left;margin-bottom:8px;}

/* timeline */
.timeline{list-style:none;margin:1.8em 0;padding:0;position:relative;}
.timeline::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--line-strong);}
.timeline li{position:relative;padding:0 0 22px 40px;}
.timeline li::before{content:"";position:absolute;left:3px;top:6px;width:14px;height:14px;border-radius:50%;background:var(--gold-bright);border:2px solid var(--paper);}
.timeline .t-when{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:3px;}
.timeline .t-what{font-size:17.5px;color:var(--ink-soft);}

/* charts */
.chart{margin:1.8em 0;}
.chart svg{width:100%;height:auto;display:block;overflow:visible;}
.chart figcaption{font-family:var(--sans);font-size:13.5px;color:var(--ink-mute);margin-top:12px;}
.chart .bar-rect{fill:var(--crimson);}
.chart .bar-rect.alt{fill:var(--gold);}
.chart .bar-label{font-family:var(--sans);font-size:12.5px;fill:var(--ink-soft);}
.chart .bar-val{font-family:var(--sans);font-size:12.5px;font-weight:600;fill:var(--ink);}
.chart .axis{stroke:var(--line-strong);stroke-width:1;}

/* figures & galleries */
.article-figure{margin:1.8em 0;}
.article-figure img{width:100%;border-radius:5px;background:var(--dark-2);}
.article-figure figcaption,.gallery figcaption{font-family:var(--sans);font-size:14px;color:var(--ink-mute);margin-top:10px;font-style:normal;}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:1.8em 0;}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:5px;}

/* map figure — FRAME ONLY (geodata injected later) */
.map-figure{margin:1.8em 0;}
.map-figure .map-slot{aspect-ratio:16/10;background:var(--dark);border:1px solid rgba(203,162,74,.22);border-radius:6px;position:relative;display:flex;align-items:center;justify-content:center;background-image:radial-gradient(rgba(203,162,74,.1) 1px,transparent 1px);background-size:22px 22px;}
.map-figure .map-slot::after{display:none}
.map-figure figcaption{font-family:var(--sans);font-size:14px;color:var(--ink-mute);margin-top:10px;}

/* profile / org / entity / further cards */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:1.8em 0;}
.profile-card{background:var(--paper-card);border:1px solid var(--line);border-radius:6px;padding:22px;}
.profile-card .p-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;background:var(--dark-2);margin-bottom:14px;}
.profile-card.no-photo{border-top:4px solid var(--gold);}
.profile-card h3{font-size:20px;margin:0 0 4px;color:var(--crimson);}
.profile-card .p-role{font-family:var(--sans);font-size:13px;color:var(--gold);margin:0 0 12px;font-weight:600;letter-spacing:.03em;}
.profile-card p{font-size:16px;color:var(--ink-soft);margin:0 0 10px;}
.profile-card .p-links a,.profile-card .p-attr{font-family:var(--sans);font-size:13.5px;}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:1.8em 0;}
.org-card{display:flex;flex-direction:column;gap:6px;background:var(--paper-card);border:1px solid var(--line);border-radius:5px;padding:18px 20px;text-decoration:none;color:var(--ink);transition:border-color .16s,transform .16s;}
.org-card:hover{border-color:var(--line-strong);transform:translateY(-2px);}
.org-card .org-logo{width:40px;height:40px;object-fit:contain;background:var(--dark-2);border-radius:6px;padding:6px;}
.org-card.no-logo .org-logo{display:none;}
.org-card .org-name{font-family:var(--serif-display);font-size:18px;font-weight:700;color:var(--crimson);}
.org-card .org-host{font-family:var(--sans);font-size:13px;color:var(--ink-mute);}
.entity-ref{font-family:var(--sans);font-size:.94em;font-weight:600;white-space:nowrap;}

/* related / further reading */
.related{background:var(--paper-2);border-top:1px solid var(--line);}
.related h2{font-size:26px;color:var(--ink);margin:0 0 6px;}
.related .rel-kicker{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 24px;}
.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;list-style:none;margin:0;padding:0;}
.further-grid a,.related-links a{display:flex;flex-direction:column;gap:8px;background:var(--paper-card);border:1px solid var(--line);border-radius:5px;padding:22px 24px;text-decoration:none;color:var(--ink);transition:transform .16s,box-shadow .16s;min-height:100%;}
.further-grid a:hover,.related-links a:hover{transform:translateY(-3px);box-shadow:0 20px 40px -26px rgba(78,13,23,.5);}
.related-links .rl-cat{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);}
.related-links .rl-title{font-family:var(--serif-display);font-size:20px;font-weight:700;color:var(--crimson);}

/* next-chapter hand-off */
.next-chapter{background:var(--crimson);color:var(--paper);}
.next-chapter .nc-inner{padding-block:44px;display:flex;justify-content:space-between;align-items:center;gap:26px;flex-wrap:wrap;text-decoration:none;color:inherit;}
.next-chapter .nc-label{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-on-dark);margin:0 0 8px;}
.next-chapter h3{font-size:clamp(24px,3vw,32px);color:#f6ecd6;margin:0;max-width:20ch;}
.next-chapter .nc-arrow{font-size:34px;color:var(--gold-on-dark);}

/* ---------- category / archive pages ---------- */
.cat-hero{background:var(--dark);color:var(--paper);}
.cat-hero .ch-inner{padding-block:clamp(48px,6vw,80px);max-width:52ch;}
.cat-hero .ch-num{font-family:var(--serif-display);font-size:20px;color:var(--gold-on-dark);}
.cat-hero h1{font-size:clamp(34px,5vw,54px);color:#f6ecd6;margin:.2em 0 .35em;}
.cat-hero p{font-size:20px;color:#e0cfaf;line-height:1.5;margin:0;}
.cat-list{list-style:none;margin:0;padding:0;}
.cat-list li{border-bottom:1px solid var(--line);}
.cat-list a{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:baseline;padding:26px 0;text-decoration:none;color:var(--ink);}
.cat-list a:hover .cl-title{color:var(--burgundy);}
.cat-list .cl-idx{font-family:var(--serif-display);font-size:26px;color:var(--gold);}
.cat-list .cl-title{display:block;font-family:var(--serif-display);font-size:26px;font-weight:700;color:var(--crimson);margin:0 0 6px;}
.cat-list .cl-brief{display:block;font-size:16.5px;color:var(--ink-soft);margin:0;max-width:56ch;}
.cat-list .cl-meta{font-family:var(--sans);font-size:13.5px;color:var(--ink-mute);white-space:nowrap;}
.cat-list .cl-arrow{font-size:22px;color:var(--gold);align-self:center;}

/* sections hub */
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;}

/* simple prose page (about/contact/404) */
.page-hero{background:var(--dark);color:var(--paper);}
.page-hero .ph-inner{padding-block:clamp(44px,6vw,72px);max-width:44ch;}
.page-hero h1{font-size:clamp(34px,5vw,50px);color:#f6ecd6;margin:0;}
.prose{max-width:var(--measure);margin-inline:auto;padding-inline:var(--gutter);padding-block:clamp(40px,5vw,60px);font-size:20px;line-height:1.7;}
.prose h2{font-size:28px;color:var(--crimson);margin:1.6em 0 .4em;}
.prose p{margin:0 0 1.1em;}
.contact-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:1.6em 0;}
.contact-methods .cm{background:var(--paper-card);border:1px solid var(--line);border-radius:6px;padding:22px;}
.contact-methods .cm .ico{color:var(--crimson);width:24px;height:24px;margin-bottom:10px;}
.contact-methods .cm h3{font-size:18px;margin:0 0 6px;color:var(--crimson);}
.contact-methods .cm p{font-size:15.5px;color:var(--ink-soft);margin:0;}

/* 404 */
.big-404{font-family:var(--serif-display);font-size:clamp(90px,20vw,190px);color:var(--crimson);line-height:.9;margin:0;}

/* ---------- styleguide ---------- */
.sg-section{border-top:1px solid var(--line);padding-block:40px;}
.sg-section > h2{font-size:26px;color:var(--crimson);margin:0 0 6px;}
.sg-section > .sg-note{font-family:var(--sans);font-size:14px;color:var(--ink-mute);margin:0 0 26px;}
.sg-swatches{display:flex;flex-wrap:wrap;gap:12px;}
.sg-swatch{width:120px;border-radius:6px;overflow:hidden;border:1px solid var(--line);font-family:var(--sans);font-size:12px;}
.sg-swatch .chip{height:64px;}
.sg-swatch .lbl{padding:8px 10px;color:var(--ink-soft);background:var(--paper-card);}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:960px){
  body{font-size:18px;}
  .header-inner{flex-wrap:wrap;}
  .nav-toggle{display:block;}
  .mainnav{display:none;flex-direction:column;width:100%;gap:2px;padding-top:8px;}
  .mainnav.open{display:flex;}
  .mainnav > li > a{padding:12px 6px;border-radius:0;border-bottom:1px solid var(--line);}
  .mainnav .nav-cta{text-align:center;margin-top:6px;}
  .subnav{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:transparent;border:none;padding:0 0 8px 14px;min-width:0;}
  .subnav a{color:var(--ink-soft);}
  .subnav a:hover{background:rgba(107,18,32,.06);color:var(--crimson);}
  .explorer-grid{grid-template-columns:1fr;}
  .fp-cols{grid-template-columns:1fr;gap:18px;}
  .footer-grid{grid-template-columns:1fr;gap:28px;}
  .step-nav{position:static;}
  .next-chapter .nc-arrow{display:none;}
}
@media(max-width:640px){
  body{font-size:17px;}
  .article-body{font-size:18px;}
  .cat-list a{grid-template-columns:auto 1fr;}
  .cat-list .cl-meta{grid-column:2;}
  .cat-list .cl-arrow{display:none;}
  .article-body h2{gap:10px;}
  .bn-grid{grid-template-columns:1fr 1fr;}
}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img{object-fit:contain!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 .sponsor .sp-logo.sp-logo{display:block!important;width:100%!important}
.sponsor-featured .sponsor.sponsor img{height:38px!important;display:block!important;width:100%!important}

/* op-overflow-wide: table.versus overhung the viewport by 79px at 320 on
   applying-and-scholarships.html — width 359px reaching x=399, white-space:normal,
   min-width:0px, inside div.breakout (block/nowrap,
   tracks none). Closed at the element that causes it, phone
   widths only. */
@media (max-width:640px){
  .versus{min-width:0;max-width:100%;overflow-wrap:anywhere}
}

/* op-blurb-rows: money blurbs ran to 4 rows at 390, 836px 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-roll .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-article-width: the article column was capped at 604px (68 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .article-body) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.article-body{--measure:min(100.100ch, 100%)!important}
}
@media (min-width:1600px){
  div.article-body{--measure:min(clamp(100.100ch, 69.514vw, calc(100.100ch * 1.2)), 100%)!important}
  div.article-body > :is(p.dropcap, p:not([class])), div.article-body > :is(ol.timeline.breakout) > li{font-size:clamp(20px,1.3889vw,24.0px)!important}
}
/* op-article-width:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--serif-display); font-weight: 700; line-height: 1.1; letter-spacing: -0.012em; color: var(--ink);}
.next-chapter h2:where(.rt-h3){font-size: clamp(24px, 3vw, 32px); color: rgb(246, 236, 214); margin: 0px; max-width: 20ch;}
.contact-methods .cm h2:where(.rt-h3){font-size: 18px; margin: 0px 0px 6px; color: var(--crimson);}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(div.article-body > figure.article-figure.breakout > img,
  header.article-hero > div.ah-media > img,
  section.hero > div.hero-media > img){height:auto}
/* op-img-dims:end */
