/* Claritas v2.2.0 — independent editorial publication. Newspaper/journal aesthetic.
   System-font (no web-font fetch), WCAG-AA, fast. Client-neutral (shared multi-client publication). */
:root{
  --ink:#16130f; --soft:#4a443c; --faint:#8a8276; --line:#d8d2c6; --hair:#e8e3d8;
  --paper:#fbfaf6; --paper-2:#f4f1e9; --paper-3:#ede9de;
  --accent:#8a1c10; --accent-ink:#6f160c; --accent-faint:#f5ebe9;
  --ink-deep:#0c0a07;
  --paper-on-ink:#f4ede1;
  --sage:#5e6c4e;
  --sage-tint:#d6dac0;
  --sage-line:#a8b294;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua","URW Palladio L",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --measure:680px;
  --wide:1080px;
  --gutter:28px;
}

/* ===== Full-width section + boxed content scaffold (v2.2.0) ===== */
.hl-section{ width:100%; padding:5rem 0; }
.hl-section--cream{ background:var(--paper); color:var(--ink); }
.hl-section--cream-alt{ background:var(--paper-2); color:var(--ink); }
.hl-section--sage-tint{ background:var(--sage-tint); color:var(--ink); border-top:1px solid var(--sage-line); border-bottom:1px solid var(--sage-line); }
.hl-section--sage{ background:var(--sage); color:var(--paper-on-ink); }
.hl-section--charcoal-head{ background:var(--ink-deep); color:var(--paper-on-ink); padding:4rem 0; }
.hl-section--charcoal-head a{ color:var(--paper-on-ink); text-decoration-thickness:1px; text-underline-offset:3px; }
.hl-section--charcoal-head a:hover{ color:#fff; }

.hl-box{ margin:0 auto; padding:0 1.5rem; }
.hl-box--reading{ max-width:720px; }
.hl-box--breakout{ max-width:960px; }
.hl-box--wide{ max-width:1200px; }

@media (max-width:768px){
  .hl-section{ padding:2.75rem 0; }
  .hl-section--charcoal-head{ padding:2.5rem 0; }
  .hl-box{ padding:0 1.125rem; }
}
*{box-sizing:border-box}
html{font-size:18px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);
  line-height:1.7;font-feature-settings:"kern" 1,"liga" 1,"onum" 1;text-rendering:optimizeLegibility}
.wrap{max-width:var(--wide);margin:0 auto;padding:0 var(--gutter)}
a{color:var(--accent-ink);text-underline-offset:2px;text-decoration-thickness:1px}
a:hover{color:var(--accent)}
img{max-width:100%;height:auto;display:block}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:10}

/* ===== Masthead (newspaper nameplate) ===== */
.masthead{background:var(--paper);border-bottom:3px double var(--ink);padding:20px 0 0}
.masthead-top{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.masthead-rule{flex:1;height:1px;background:var(--line)}
.masthead-date{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--soft);white-space:nowrap}
.masthead-title{display:block;text-align:center;font-family:var(--serif);font-weight:800;
  font-size:clamp(2.4rem,7vw,4.2rem);letter-spacing:-.02em;color:var(--ink);
  text-decoration:none;line-height:1.0}
.masthead-tagline{text-align:center;font-family:var(--sans);font-size:.78rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:.6em 0 0}
.section-nav{margin-top:14px;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.section-nav .nav{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;
  gap:0;margin:0;padding:0}
.section-nav .nav li{padding:0}
.section-nav a{display:inline-block;padding:10px 20px;font-family:var(--sans);
  font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);text-decoration:none}
.section-nav a:hover{background:var(--paper-2);color:var(--accent)}

/* ===== Article / Post ===== */
.post{max-width:var(--measure);margin:0 auto;padding:48px 0 24px}
.post-head{margin-bottom:30px}
.eyebrow{display:inline-block;font-family:var(--sans);font-size:.72rem;font-weight:700;
  letter-spacing:.2em;text-transform:uppercase;color:var(--accent);text-decoration:none;
  margin-bottom:12px;border-bottom:1px solid currentColor;padding-bottom:1px}
.post-title{font-family:var(--serif);font-weight:800;font-size:clamp(2rem,5.2vw,3.1rem);
  line-height:1.1;letter-spacing:-.018em;margin:0 0 .35em}
.post-standfirst{font-family:var(--serif);font-size:1.22rem;line-height:1.55;
  color:var(--soft);font-style:italic;margin:.4em 0 0}
.post-meta{margin-top:20px;font-family:var(--sans);font-size:.78rem;color:var(--faint);
  display:flex;flex-wrap:wrap;gap:18px;align-items:center}
.post-meta a{color:var(--soft);font-weight:600}
.byline{color:var(--soft)}
.head-rule{display:block;height:2px;background:var(--ink);margin-top:24px}

.post-image{margin:30px 0}
.post-image img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.post-image figcaption,.gh-content figcaption{font-family:var(--sans);font-size:.78rem;
  color:var(--faint);margin-top:8px;padding-bottom:4px;border-bottom:1px solid var(--hair)}

.post-content{font-size:1.16rem}
.gh-content > p:first-of-type::first-letter{font-family:var(--serif);float:left;
  font-size:3.4em;line-height:.82;font-weight:800;padding:.04em .08em 0 0;color:var(--ink)}
.gh-content p,.gh-content ul,.gh-content ol,.gh-content blockquote{margin:0 0 1.2em}
.gh-content h2{font-family:var(--serif);font-weight:800;font-size:1.7rem;line-height:1.2;
  margin:1.8em 0 .5em;padding-top:.4em;border-top:1px solid var(--hair)}
.gh-content h3{font-family:var(--sans);font-weight:700;font-size:1.12rem;letter-spacing:.01em;margin:1.6em 0 .4em}
.gh-content a{text-decoration:underline}
.gh-content blockquote{border-left:3px solid var(--accent);margin-left:0;padding:.2em 0 .2em 22px;
  font-style:italic;color:var(--soft);font-size:1.22rem}
.gh-content img,.gh-content figure{margin:1.9em 0}
.gh-content pre{background:var(--paper-2);padding:16px;overflow:auto;font-size:.92rem;
  border-left:3px solid var(--line)}
.gh-content code{background:var(--paper-2);padding:2px 5px;font-size:.92em;font-family:ui-monospace,Menlo,Consolas,monospace}
.gh-content hr{border:0;text-align:center;margin:2.4em 0}
.gh-content hr::before{content:"* * *";letter-spacing:.5em;color:var(--faint)}
/* Koenig card widths */
.gh-content .kg-width-wide{width:min(100vw,1000px);margin-left:50%;transform:translateX(-50%)}
.gh-content .kg-width-full{width:100vw;margin-left:50%;transform:translateX(-50%)}
.gh-content .kg-width-full img{width:100%}
.kg-embed-card,.kg-bookmark-card{margin:1.9em auto;max-width:var(--measure)}
.post-content iframe,.gh-content iframe,.kg-card iframe{
  width:100%!important;max-width:100%!important;aspect-ratio:16/9;height:auto!important;
  border:0;display:block;margin:1.9em auto}
.post-content figure,.gh-content figure,.post-content .kg-card,.gh-content .kg-card{
  max-width:var(--measure);margin-inline:auto}
.kg-embed-card > div{position:relative;width:100%;max-width:100%}
.kg-bookmark-container{display:flex;border:1px solid var(--line);text-decoration:none;color:inherit;overflow:hidden}
.kg-bookmark-content{padding:16px;flex:1}.kg-bookmark-title{font-weight:700;color:var(--ink)}
.kg-bookmark-description{color:var(--soft);font-size:.9rem;margin-top:4px;font-family:var(--sans)}

.post-foot{margin-top:40px;text-align:center}
.end-mark{display:block;font-size:1.4rem;color:var(--accent);margin-bottom:18px}
.filed-under{font-family:var(--sans);font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint)}
.filed-under a{color:var(--soft);font-weight:600}
.author-bio{margin-top:26px;padding-top:20px;border-top:1px solid var(--hair);
  font-family:var(--sans);font-size:.92rem;color:var(--soft);text-align:left}
.author-bio strong{color:var(--ink);display:block;margin-bottom:4px}

.related{max-width:var(--measure);margin:36px auto 0;padding-top:22px;border-top:3px double var(--ink)}
.related h2{font-family:var(--sans);font-size:.82rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--soft);margin:0 0 14px}
.related ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.related a{font-family:var(--serif);font-size:1.18rem;color:var(--ink);text-decoration:none}
.related a:hover{color:var(--accent)}

/* ===== Archive / tag / author pages ===== */
.archive-head{max-width:var(--measure);margin:0 auto;padding:46px 0 0;text-align:center}
.archive-head h1{font-family:var(--serif);font-weight:800;font-size:2.4rem;margin:0 0 .2em}
.archive-head p{font-family:var(--sans);color:var(--soft);margin:0}
.post-feed{display:grid;grid-template-columns:1fr;gap:0;padding:36px 0 10px}
@media(min-width:740px){.post-feed{grid-template-columns:1fr 1fr;gap:0 44px}}
.card{padding:28px 0;border-bottom:1px solid var(--line)}
.card-img{display:block;margin-bottom:14px}
.card-img img{width:100%;aspect-ratio:3/2;object-fit:cover}
.card-title{font-family:var(--serif);font-weight:800;font-size:1.5rem;line-height:1.18;margin:0 0 .3em}
.card-title a{color:var(--ink);text-decoration:none}.card-title a:hover{color:var(--accent)}
.card-excerpt{color:var(--soft);font-size:1.02rem;margin:0 0 .7em}
.card-meta{font-family:var(--sans);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--faint);display:flex;gap:14px}
@media(min-width:740px){
  .post-feed > .card:first-child{grid-column:1 / -1;border-bottom:3px double var(--ink);
    display:grid;grid-template-columns:1.1fr 1fr;gap:34px;align-items:start;padding-top:8px}
  .post-feed > .card:first-child .card-title{font-size:2.4rem}
  .post-feed > .card:first-child .card-excerpt{font-size:1.12rem}
}

.pagination{max-width:var(--measure);margin:0 auto;display:flex;justify-content:space-between;
  padding:26px 0 64px;font-family:var(--sans);font-size:.85rem}
.pagination a{text-decoration:none;font-weight:600}

/* ===== Colophon / footer ===== */
.colophon{border-top:3px double var(--ink);margin-top:64px;padding:30px 0 46px;
  background:var(--paper-2);text-align:center}
.colophon-name{font-family:var(--serif);font-weight:800;font-size:1.3rem;margin:0 0 .3em}
.colophon-line{font-family:var(--sans);font-size:.8rem;color:var(--soft);margin:0;letter-spacing:.04em}
.colophon-nav{margin-top:12px;font-family:var(--sans);font-size:.76rem;letter-spacing:.04em}
.colophon-nav a{color:var(--soft);text-decoration:none;margin:0 4px}
.colophon-nav a:hover{color:var(--accent)}
.colophon-disclaimer{font-family:var(--sans);font-size:.7rem;line-height:1.5;color:var(--faint);
  max-width:var(--measure);margin:14px auto 0}

/* ─────────────────────────────────────────────────────────────────────────────
   HOMEPAGE — claritas v2.2 redesign
   Design vocabulary: editorial newspaper, restrained luxury, image-forward.
   DESIGN_VARIANCE 7 / MOTION_INTENSITY 2 / VISUAL_DENSITY 6
   ───────────────────────────────────────────────────────────────────────── */

/* --- Editorial Intro Strip (v2.2.0 scaffold-based) --- */
.pub-intro{
  border-bottom:1px solid var(--ink);
  padding:20px 0;
  margin-bottom:0;
}
.pub-intro p{
  max-width:var(--measure);
  margin:0 auto;
  font-family:var(--serif);
  font-size:1.08rem;
  line-height:1.62;
  color:var(--soft);
  font-style:italic;
  text-align:center;
}

/* .editorial-intro — rendered inside .hl-section--sage-tint > .hl-box--reading */
.editorial-intro{ font-size:1.05rem; line-height:1.55; color:var(--ink); }

/* --- Masthead trust line (A8) --- */
.masthead-trustline{
  font-family:var(--sans);
  font-size:.7rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--soft);
  margin:.4em 0 0;
  text-align:center;
}

/* --- Featured pick (A7 s-featured-pick) --- */
.featured-strip-label{
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--soft);
  margin:0 0 22px;
  padding-bottom:8px;
  border-bottom:2px solid var(--ink);
  display:flex;
  align-items:center;
  gap:10px;
}
.featured-strip-label::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--line);
}
.featured-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
@media(max-width:768px){
  .featured-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .featured-grid .card{
    padding:18px 0;
    border-bottom:1px solid var(--hair);
  }
  .featured-grid .card:last-child{border-bottom:0}
}

/* --- Recent promo strip (growth-gated) --- */
.recent-strip-head{
  margin:0 0 22px;
}
.recent-strip-head h2{
  font-family:var(--serif);
  font-size:clamp(1.25rem,2.6vw,1.55rem);
  font-weight:800;
  color:var(--ink);
  margin:0 0 .3em;
}
.recent-strip-lede{
  font-family:var(--serif);
  font-size:1rem;
  color:var(--soft);
  margin:0 0 1.5rem;
  font-style:italic;
}
.recent-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}
@media(max-width:768px){
  .recent-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .recent-grid .card{
    padding:18px 0;
    border-bottom:1px solid var(--hair);
  }
  .recent-grid .card:last-child{border-bottom:0}
}

/* --- How We Report section (A9 s-resources-howwereport) --- */
.howwereport-head{
  font-family:var(--serif);
  font-weight:800;
  font-size:clamp(1.55rem,3.5vw,2rem);
  color:var(--paper-on-ink);
  margin:0 0 .5em;
}
.howwereport-lede{
  font-family:var(--serif);
  font-size:1.04rem;
  line-height:1.65;
  color:var(--paper-on-ink);
  margin:0 0 1.8rem;
}
.resource-list--dark{
  list-style:none;
  margin:0;
  padding:0;
  font-family:var(--serif);
  font-size:.98rem;
  line-height:1.5;
}
.resource-list--dark li{
  padding:10px 0;
  border-bottom:1px solid rgba(244,237,225,.2);
  color:var(--paper-on-ink);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 8px;
  align-items:baseline;
}
.resource-list--dark li:first-child{border-top:1px solid rgba(244,237,225,.2)}
.resource-list--dark li::before{
  content:"›";
  color:var(--sage-tint);
  font-weight:700;
  font-size:1rem;
}
.resource-list--dark a{
  font-weight:700;
  color:var(--paper-on-ink);
}
.resource-list--dark a:hover{color:#fff}
.res-disclaimer--dark{
  font-family:var(--sans);
  font-size:.74rem;
  line-height:1.55;
  color:rgba(244,237,225,.55);
  margin:20px 0 0;
  font-style:italic;
}

/* --- Tag page (v2.2.0) --- */
.tag-hero-name{
  font-family:var(--serif);
  font-weight:800;
  font-size:clamp(1.85rem,4.5vw,2.75rem);
  line-height:1.08;
  letter-spacing:-.018em;
  margin:0 0 .3em;
  color:var(--ink);
}
.tag-hero-desc{
  font-family:var(--serif);
  font-size:1.05rem;
  color:var(--soft);
  font-style:italic;
  margin:0 0 .6em;
}
.tag-hero-count{
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--soft); /* v2.2.0 fix: was --faint (3.4:1 on --paper-2 = WCAG AA fail at .72rem). --soft = 7.5:1 ✓ */
}

/* Subtopic clusters */
.subtopic-clusters-head{
  margin:0 0 1.4rem;
}
.subtopic-clusters-head h2{
  font-family:var(--serif);
  font-weight:800;
  font-size:clamp(1.25rem,2.6vw,1.55rem);
  color:var(--ink);
  margin:0;
}
.subtopic-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}
.subtopic-list li a{
  font-family:var(--sans);
  font-size:.88rem;
  font-weight:700;
  color:var(--ink);
  text-decoration:none;
  letter-spacing:.04em;
}
.subtopic-list li a:hover{color:var(--accent)}
.subtopic-count{
  font-family:var(--sans);
  font-size:.72rem;
  color:var(--soft);
  margin-left:4px;
  font-variant-numeric:tabular-nums;
}
@media(max-width:768px){
  .subtopic-list{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
}
@media(max-width:400px){
  .subtopic-list{
    grid-template-columns:1fr;
  }
}

/* --- Lead Story Wrapper --- */
.lead-wrap{
  padding:0;
  border-bottom:3px double var(--ink);
  margin-bottom:0;
}

/* --- Lead Story (hero article) — v2.5.0 cover-mode editorial-magazine ---
   Single column: full-width image (21:9 on desktop, 16:9 on mobile) then body below.
   Headline gets the full breakout width and a real display-grade size.
   Previous two-column flex (image-left / text-right) is REPLACED — it broke
   the headline at viewport scale (~480px wrap column choked the type clamp). */
.lead{
  display:grid;
  grid-template-columns:1fr;
  gap:0;
  background:var(--paper);
  border:1px solid var(--line);
  /* Override .post defaults — Ghost {{post_class}} adds .post which has max-width:var(--measure) (680px) */
  max-width:none;
  margin:0;
  padding:0;
  width:100%;
}

.lead-img-link{
  display:block;
  overflow:hidden;
  position:relative;
  background:var(--hair);
}
.lead-img{
  width:100%;
  height:auto;
  object-fit:cover;
  aspect-ratio:16/9;
  display:block;
  border:0;
}
@media(min-width:800px){
  .lead-img{
    aspect-ratio:21/9;
  }
}

.lead-body{
  padding:36px 40px 40px;
  display:flex;
  flex-direction:column;
  background:var(--paper);
}
@media(min-width:800px){
  .lead-body{
    padding:48px 64px 52px;
  }
}
@media(max-width:799px){
  .lead-body{
    padding:24px 22px 28px;
  }
}
.lead.no-image .lead-body{
  padding:48px 40px 52px;
}

/* Lead eyebrow — accent red, uppercase small-caps */
.lead-body .eyebrow,
.lead-eyebrow{
  font-family:var(--sans);
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--accent);
  text-decoration:none;
  margin:0 0 18px;
  display:block;
}
.lead-eyebrow a{
  color:var(--accent);
  text-decoration:none;
}
.lead-eyebrow a:hover{
  color:var(--accent-ink);
  text-decoration:underline;
}
.lead-eyebrow-sep{
  display:inline-block;
  margin:0 .5em;
  color:var(--faint);
}
.lead-body .eyebrow::before{
  content:"";
  display:inline-block;
  width:22px;
  height:2px;
  background:var(--accent);
  vertical-align:middle;
  margin-right:10px;
  margin-bottom:3px;
}

/* Lead title — display-grade scale (v2.5.0 cover-mode, full breakout width) */
.lead-title{
  font-family:var(--serif);
  font-weight:800;
  font-size:clamp(2.25rem,5.2vw,4rem);
  line-height:1.04;
  letter-spacing:-.022em;
  margin:0 0 .35em;
  max-width:18ch;
}
@media(max-width:799px){
  .lead-title{
    max-width:none;
  }
}
.lead-title a{color:var(--ink);text-decoration:none}
.lead-title a:hover{color:var(--accent)}

.lead-standfirst{
  font-family:var(--serif);
  font-size:1.12rem;
  line-height:1.58;
  color:var(--soft);
  font-style:italic;
  margin:0 0 18px;
}

.lead-body .card-meta{
  margin-top:auto;
  font-family:var(--sans);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--faint);
  display:flex;
  gap:14px;
  padding-top:16px;
  border-top:1px solid var(--hair);
}
.byline-name{color:var(--soft);font-weight:600}

/* --- Latest Strip (posts 2-4) --- */
.latest-strip{
  /* v2.5.3 fix: removed background:var(--paper-3) + border-bottom.
     The legacy block-level bg created a boxed "column of different color"
     inside the cream section. Section provides bg via .hl-section--cream now. */
  padding:0;
}

.rail-label{
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--faint);
  margin:0 0 18px;
  padding-bottom:8px;
  border-bottom:1px solid var(--ink);
  display:flex;
  align-items:center;
  gap:10px;
}
/* em-dash line ornament beside the label */
.rail-label::after{
  content:"";
  flex:1;
  height:1px;
  background:var(--hair);
}

/* Latest grid — 3-up on desktop, single-col on mobile */
.latest-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
.latest-grid .card{
  padding:0 24px 0 0;
  border-bottom:0;
  border-right:1px solid var(--line);
  margin-right:0;
}
.latest-grid .card:last-child{
  padding-right:0;
  border-right:0;
}
.latest-grid .card-img img{
  aspect-ratio:3/2;
  object-fit:cover;
  border:0;
}
.latest-grid .card-title{
  font-size:1.05rem;
  line-height:1.22;
  font-weight:700;
  margin:.4em 0 .2em;
}
.latest-grid .card-excerpt{
  font-size:.9rem;
  line-height:1.48;
  color:var(--soft);
  margin:0 0 .5em;
}
.latest-grid .card-meta{
  font-size:.68rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--faint);
  display:flex;
  gap:10px;
  margin-top:6px;
}

@media(max-width:760px){
  .latest-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .latest-grid .card{
    padding:16px 0;
    border-right:0;
    border-bottom:1px solid var(--hair);
  }
  .latest-grid .card:last-child{border-bottom:0}
}

/* --- Department Sections --- */
.departments{
  padding:0;
  margin-bottom:0;
}

.dept{
  padding:32px 0 28px;
  border-bottom:1px solid var(--line);
}
.dept:last-child{
  border-bottom:0;
}

/* Dept header: bold section label + hairline rule + "All X ›" link */
.dept-head{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin-bottom:22px;
  padding-bottom:10px;
  border-bottom:2px solid var(--ink);
}
.dept-title{
  font-family:var(--sans);
  font-weight:800;
  font-size:.82rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  margin:0;
  white-space:nowrap;
  color:var(--ink);
}
.dept-title a{
  color:var(--ink);
  text-decoration:none;
}
.dept-title a:hover{color:var(--accent)}

.dept-rule{
  flex:1;
  height:1px;
  background:var(--line);
  position:relative;
  top:-1px;
}

.dept-more{
  font-family:var(--sans);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent-ink);
  text-decoration:none;
  white-space:nowrap;
}
.dept-more:hover{color:var(--accent)}

/* Department card grid — 3-up at desktop */
.dept-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
}

/* When only 1-2 cards (sparse dept): constrain so it doesn't look broken */
.dept-grid .card{
  padding:0;
  border-bottom:0;
  display:flex;
  flex-direction:column;
}

.dept-grid .card-img{
  display:block;
  margin-bottom:12px;
  overflow:hidden;
}
.dept-grid .card-img img{
  width:100%;
  aspect-ratio:3/2;
  object-fit:cover;
  border:0;
  transition:transform .35s ease;
}
.dept-grid .card-img:hover img{
  transform:scale(1.02);
}

.dept-grid .card-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:2px 0 0;
  border-top:1px solid var(--line);
}

.dept-grid .card-title{
  font-family:var(--serif);
  font-weight:700;
  font-size:1.08rem;
  line-height:1.2;
  margin:.5em 0 .3em;
  color:var(--ink);
}
.dept-grid .card-title a{
  color:var(--ink);
  text-decoration:none;
}
.dept-grid .card-title a:hover{color:var(--accent)}

.dept-grid .card-excerpt{
  font-family:var(--serif);
  font-size:.9rem;
  line-height:1.5;
  color:var(--soft);
  margin:0 0 auto;
  flex:1;
}

.dept-grid .card-meta{
  margin-top:10px;
  font-family:var(--sans);
  font-size:.68rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--faint);
  display:flex;
  gap:10px;
  padding-top:8px;
  border-top:1px solid var(--hair);
}

@media(max-width:760px){
  .dept-grid{
    grid-template-columns:1fr;
    gap:0;
  }
  .dept-grid .card{
    padding:18px 0;
    border-bottom:1px solid var(--hair);
  }
  .dept-grid .card:last-child{border-bottom:0}
  .dept-grid .card-body{border-top:0;padding-top:0}
}
@media(min-width:561px) and (max-width:760px){
  .dept-grid{
    grid-template-columns:1fr 1fr;
    gap:22px;
  }
  .dept-grid .card{
    border-bottom:0;
    padding:0;
  }
}

/* Dept section — no-image fallback keeps left border accent */
.dept-grid .card.no-image .card-body{
  border-top:2px solid var(--accent);
  padding-top:12px;
}

/* --- Featured Video --- */
.home-video{max-width:var(--measure);margin:0 auto;padding:34px 0 30px;border-top:1px solid var(--hair)}
.video-frame{position:relative;width:100%;aspect-ratio:16/9;background:var(--ink);
  border:1px solid var(--line);overflow:hidden}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.video-credit{font-family:var(--sans);font-size:.78rem;line-height:1.5;color:var(--faint);margin:12px 0 0}

/* --- Resources Section --- */
.resources{
  margin:8px 0;
  background:var(--paper-2);
  border-top:3px double var(--ink);
  border-bottom:1px solid var(--line);
}
.res-inner{
  max-width:var(--measure);
  margin:0 auto;
  padding:34px 0 38px;
}
.res-intro{
  font-family:var(--serif);
  font-size:1rem;
  line-height:1.58;
  color:var(--soft);
  margin:.2em 0 1.2em;
  font-style:italic;
}
.resource-list{
  list-style:none;
  margin:0;
  padding:0;
  font-family:var(--serif);
  font-size:.98rem;
  line-height:1.5;
}
.resource-list li{
  padding:10px 0;
  border-bottom:1px solid var(--hair);
  color:var(--soft);
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0 8px;
  align-items:baseline;
}
.resource-list li:first-child{border-top:1px solid var(--hair)}
.resource-list li::before{
  content:"›";
  color:var(--accent);
  font-weight:700;
  font-size:1rem;
}
.resource-list a{
  font-weight:700;
  color:var(--accent-ink);
}
.resource-list a:hover{color:var(--accent)}
.res-disclaimer{
  font-family:var(--sans);
  font-size:.74rem;
  line-height:1.55;
  color:var(--faint);
  margin:20px 0 0;
  font-style:italic;
}

/* --- Archive/More Link --- */
.archive-more{
  max-width:var(--measure);
  margin:0 auto;
  padding:28px 0 52px;
  text-align:center;
}
.archive-more a{
  font-family:var(--sans);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent-ink);
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-bottom:2px;
}
.archive-more a:hover{color:var(--accent)}

/* ===== Koenig card required classes (gscan gate) ===== */
.kg-gallery-container{ display:flex; flex-direction:column; }
.kg-gallery-row{ display:flex; flex-direction:row; justify-content:center; gap:4px; }
.kg-gallery-image{ flex:1; overflow:hidden; }
.kg-gallery-image img{ width:100%; height:100%; object-fit:cover; }
.kg-bookmark-metadata{ display:flex; flex-direction:row; align-items:center; gap:8px; font-family:var(--sans); font-size:.78rem; color:var(--soft); margin-top:8px; }
.kg-bookmark-icon{ width:16px; height:16px; flex-shrink:0; }
.kg-bookmark-author{ font-weight:600; }
.kg-bookmark-publisher{ color:var(--faint); }
.kg-bookmark-thumbnail{ flex-shrink:0; }
.kg-bookmark-thumbnail img{ max-height:120px; width:auto; object-fit:cover; }

/* ===== Reduced-motion (respect prefers-reduced-motion) ===== */
@media(prefers-reduced-motion:reduce){
  .dept-grid .card-img img{transition:none}
}

/* ===== Small-screen overrides ===== */
@media(max-width:560px){
  :root{--gutter:18px}
  html{font-size:17px}
  .gh-content > p:first-of-type::first-letter{font-size:2.8em}
  .masthead-date{font-size:.62rem}
  .section-nav a{padding:9px 12px;font-size:.68rem}
  .lead-title{font-size:clamp(1.6rem,6vw,2.2rem)}
  .pub-intro p{font-size:.98rem}
  .dept-head{flex-wrap:wrap;gap:6px}
  .dept-rule{display:none}
  .featured-grid{grid-template-columns:1fr;gap:0;}
  .recent-grid{grid-template-columns:1fr;gap:0;}
  .subtopic-list{grid-template-columns:1fr;gap:10px;}
}
