/* ================================================================
   The Gateway Health Review
   Design: a serious intellectual health quarterly for the
   St. Louis metro. High-contrast Bodoni Moda nameplate, oxblood
   signature, brass fine detail, cool-bone paper, Newsreader body,
   Space Grotesk utility. Recurring Gateway Arch catenary motif.
   ================================================================ */

:root{
  --paper:#f1eee4;
  --paper-2:#e9e4d6;
  --paper-3:#e2dccb;
  --ink:#181418;
  --ink-2:#2c262b;
  --ink-soft:#4c4549;
  --muted:#7b736f;
  --oxblood:#6c1d2c;
  --oxblood-deep:#4a1220;
  --brass:#9a7b3f;
  --brass-soft:#b79a5e;
  --rule:#cec5b2;
  --rule-soft:#dcd4c3;
  --field:#fbfaf5;

  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --display:"Bodoni Moda","Newsreader",Georgia,serif;
  --util:"Space Grotesk","Helvetica Neue",Arial,sans-serif;

  --wrap:1220px;
  --gutter:clamp(18px,4.2vw,60px);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.62;
  font-optical-sizing:auto;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}

/* subtle paper grain across the whole page */
body::before{
  content:"";
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(circle at 20% 12%, rgba(154,123,63,.05), transparent 60%),
    radial-gradient(circle at 82% 78%, rgba(108,29,44,.045), transparent 55%);
}
.wrap{position:relative;z-index:1;max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}

/* ---------- crisis strip ---------- */
.crisis{
  position:relative;z-index:3;
  background:var(--ink);
  color:#f3ede1;
  font-family:var(--util);
  font-size:12.5px;
  letter-spacing:.04em;
  text-align:center;
  padding:9px 16px;
}
.crisis a{color:var(--brass-soft);text-decoration:none;border-bottom:1px solid rgba(183,154,94,.5);font-weight:600}
.crisis a:hover{color:#fff}

/* ---------- masthead ---------- */
.masthead{
  position:relative;z-index:1;
  border-bottom:1px solid var(--ink);
  padding-top:22px;
}
.masthead-top{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--util);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);
  padding-bottom:16px;
}
.masthead-top span{white-space:nowrap}
.masthead-top .mid{color:var(--oxblood);font-weight:600}

.nameplate{
  text-align:center;
  border-top:1px solid var(--rule);
  border-bottom:3px double var(--ink);
  padding:26px 0 22px;
}
.nameplate .the{
  display:block;
  font-family:var(--util);
  font-size:12px;letter-spacing:.5em;text-transform:uppercase;
  color:var(--brass);
  margin-bottom:12px;padding-left:.5em;
}
.nameplate h1{
  margin:0;
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(2.5rem,8.3vw,5.6rem);
  line-height:.92;
  letter-spacing:-.01em;
  color:var(--ink);
}
.nameplate h1 em{font-style:italic;font-weight:500;color:var(--oxblood)}
.arch{display:block;margin:16px auto 10px;width:min(264px,58vw);height:auto}
.arch path{fill:none;stroke-linecap:round}
.nameplate .creed{
  font-family:var(--serif);
  font-style:italic;
  font-size:15px;
  color:var(--ink-soft);
  margin:2px 0 0;
}

/* ---------- desk nav ---------- */
.desknav{
  position:relative;z-index:2;
  border-bottom:1px solid var(--ink);
  background:var(--paper);
}
.desknav .wrap{
  display:flex;flex-wrap:wrap;justify-content:center;gap:0;
}
.desknav a{
  font-family:var(--util);
  font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;
  font-weight:500;
  color:var(--ink-2);
  text-decoration:none;
  padding:14px clamp(12px,2vw,22px);
  border-left:1px solid var(--rule-soft);
  transition:color .18s ease, background .18s ease;
}
.desknav a:first-child{border-left:none}
.desknav a:hover,.desknav a[aria-current="page"]{color:var(--oxblood);background:var(--paper-2)}
.desknav a[aria-current="page"]{font-weight:600}

/* ================================================================
   HOMEPAGE
   ================================================================ */
main{position:relative;z-index:1;padding-bottom:64px}
.section-rule{
  display:flex;align-items:center;gap:16px;
  margin:52px 0 26px;
}
.section-rule::before,.section-rule::after{content:"";flex:1;height:1px;background:var(--rule)}
.section-rule span{
  font-family:var(--util);
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--oxblood);font-weight:600;
}

/* lead feature */
.lead{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:clamp(24px,3.5vw,54px);
  align-items:stretch;
  padding-top:40px;
}
.lead-plate{
  position:relative;
  border-radius:2px;
  min-height:440px;
  overflow:hidden;
  background:
    linear-gradient(150deg, var(--oxblood-deep) 0%, var(--oxblood) 46%, #7d2634 100%);
  color:#f2e7d8;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:30px;
}
.lead-plate::before{
  content:"";position:absolute;inset:0;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.05) 0 1px, transparent 1px 6px),
    linear-gradient(180deg, transparent 40%, rgba(28,8,14,.55) 100%);
}
.lead-plate .plate-arch{position:absolute;top:-4%;left:50%;transform:translateX(-50%);width:120%;height:auto;opacity:1}
.lead-plate .plate-arch path{fill:none;stroke:rgba(196,166,102,.7);stroke-width:1.4}
.lead-plate .plate-over{
  position:relative;
  font-family:var(--util);
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;
  color:var(--brass-soft);
  border-top:1px solid rgba(183,154,94,.4);
  padding-top:12px;
}
.lead-plate .plate-title{
  position:relative;
  font-family:var(--display);
  font-weight:500;font-style:italic;
  font-size:clamp(1.5rem,3vw,2.2rem);
  line-height:1.08;
  margin:10px 0 0;
  color:#f6ecdd;
}
.lead-body{display:flex;flex-direction:column;justify-content:center}
.kicker{
  font-family:var(--util);
  font-size:12px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--oxblood);font-weight:600;
  display:inline-block;margin-bottom:14px;
}
.kicker::before{content:"";display:inline-block;width:26px;height:2px;background:var(--brass);vertical-align:middle;margin-right:10px;margin-bottom:4px}
.lead-body h2{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(2rem,4.4vw,3.35rem);
  line-height:1.03;
  letter-spacing:-.015em;
  margin:0 0 18px;
}
.lead-body h2 a{text-decoration:none}
.lead-body h2 a:hover{color:var(--oxblood)}
.standfirst{
  font-size:1.18rem;
  line-height:1.5;
  color:var(--ink-soft);
  margin:0 0 20px;
  max-width:40ch;
}
.dateline{
  font-family:var(--util);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
}
.dateline b{color:var(--ink-2);font-weight:600}

/* body grid: stories + rail */
.grid-2{
  display:grid;
  grid-template-columns:1fr 320px;
  gap:clamp(28px,4vw,58px);
  align-items:start;
}
.story-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
}
.card{
  padding:6px 24px 30px 0;
  border-right:1px solid var(--rule-soft);
  border-top:2px solid var(--ink);
  margin-top:22px;
}
.card:nth-child(3n){border-right:none;padding-right:0}
.card .seclabel{
  font-family:var(--util);
  font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);font-weight:600;
  padding-top:12px;display:block;
}
.card h3{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.42rem;
  line-height:1.14;
  letter-spacing:-.01em;
  margin:10px 0 10px;
}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--oxblood)}
.card p{font-size:.98rem;color:var(--ink-soft);margin:0 0 14px;line-height:1.5}
.card .dateline{font-size:10.5px}

/* rail */
.rail{
  border-top:2px solid var(--ink);
  padding-top:0;
}
.rail-head{
  font-family:var(--util);
  font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--oxblood);font-weight:600;
  padding:14px 0 6px;
  border-bottom:1px solid var(--rule);
}
.rail ol{list-style:none;margin:0;padding:0;counter-reset:r}
.rail li{
  counter-increment:r;
  display:grid;grid-template-columns:auto 1fr;gap:16px;
  padding:18px 0;
  border-bottom:1px solid var(--rule-soft);
}
.rail li::before{
  content:counter(r,decimal-leading-zero);
  font-family:var(--display);
  font-size:1.7rem;font-weight:600;font-style:italic;
  color:var(--brass);
  line-height:1;
}
.rail li a{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.05rem;line-height:1.22;
  text-decoration:none;
  letter-spacing:-.005em;
}
.rail li a:hover{color:var(--oxblood)}
.rail li span{display:block;font-family:var(--util);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.rail .note{
  font-size:.92rem;color:var(--ink-soft);font-style:italic;
  padding:16px 0 4px;line-height:1.45;
}

/* ================================================================
   SPONSORED / RECOMMENDED PROVIDER (BRC)
   ================================================================ */
.sponsor{
  border:1px solid var(--ink);
  background:var(--paper-2);
  margin:56px 0 0;
  position:relative;
}
.sponsor-tag{
  font-family:var(--util);
  font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;
  color:var(--paper);background:var(--ink);
  padding:7px 16px;font-weight:600;
  display:flex;justify-content:space-between;align-items:center;
}
.sponsor-tag .lede{color:var(--brass-soft)}
.sponsor-inner{
  display:grid;grid-template-columns:1fr 300px;gap:clamp(20px,3vw,42px);
  padding:clamp(22px,3vw,38px);align-items:center;
}
.sponsor-inner h3{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(1.5rem,2.6vw,2.1rem);
  line-height:1.04;letter-spacing:-.01em;
  margin:0 0 6px;
}
.sponsor-inner .locale{
  font-family:var(--util);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--oxblood);font-weight:600;margin:0 0 14px;
}
.sponsor-inner p{margin:0 0 16px;color:var(--ink-soft);font-size:1rem}
.sponsor-tags{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 4px}
.sponsor-tags span{
  font-family:var(--util);font-size:11px;letter-spacing:.04em;
  border:1px solid var(--rule);background:var(--field);
  color:var(--ink-2);padding:5px 11px;border-radius:2px;
}
.sponsor-cta{text-align:center}
.sponsor-cta .arch{width:120px;margin:0 auto 16px}
.sponsor-cta .arch path{stroke:var(--brass);stroke-width:1.4}
.btn{
  display:inline-block;
  font-family:var(--util);
  font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
  background:var(--oxblood);color:#f6ecdd;
  text-decoration:none;
  padding:15px 26px;border:1px solid var(--oxblood-deep);border-radius:2px;
  transition:background .18s ease,transform .18s ease;
}
.btn:hover{background:var(--oxblood-deep);transform:translateY(-1px)}
.btn.small{padding:12px 20px;font-size:11.5px}
.sponsor-cta .sub{
  font-family:var(--util);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-top:12px;
}
.disclosure{
  border-top:1px solid var(--rule);
  padding:16px clamp(22px,3vw,38px);
  font-size:.86rem;line-height:1.5;color:var(--ink-soft);
  background:var(--paper-3);
}
.disclosure b{color:var(--ink)}

/* ================================================================
   ARTICLE TEMPLATE
   ================================================================ */
.article{padding-top:38px}
.breadcrumb{
  font-family:var(--util);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-bottom:26px;
}
.breadcrumb a{color:var(--oxblood);text-decoration:none}
.breadcrumb a:hover{text-decoration:underline}
.article-head{
  max-width:820px;margin:0 auto;text-align:center;
  border-bottom:1px solid var(--rule);
  padding-bottom:30px;
}
.article-head .kicker{margin-bottom:16px}
.article-head .kicker::before{display:none}
.article-head h1{
  font-family:var(--display);
  font-weight:600;
  font-size:clamp(2.1rem,5vw,3.7rem);
  line-height:1.02;letter-spacing:-.018em;
  margin:0 0 20px;
}
.article-head .dek{
  font-family:var(--serif);
  font-style:italic;
  font-size:1.32rem;line-height:1.44;
  color:var(--ink-soft);
  margin:0 auto 22px;max-width:60ch;
}
.byline{
  font-family:var(--util);
  font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);
  display:flex;gap:18px;justify-content:center;flex-wrap:wrap;
}
.byline b{color:var(--ink-2);font-weight:600}
.byline .dot{color:var(--brass)}

.article-body{
  max-width:680px;margin:38px auto 0;
  font-size:1.16rem;line-height:1.72;
}
.article-body>p:first-of-type::first-letter{
  font-family:var(--display);
  font-weight:600;
  float:left;font-size:4.4rem;line-height:.72;
  padding:8px 12px 0 0;color:var(--oxblood);
}
.article-body p{margin:0 0 1.25em}
.article-body h2{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.7rem;line-height:1.12;letter-spacing:-.01em;
  margin:2em 0 .6em;
  padding-top:.4em;
}
.article-body h2::before{
  content:"";display:block;width:38px;height:2px;background:var(--brass);margin-bottom:16px;
}
.article-body h3{
  font-family:var(--util);
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  color:var(--oxblood);margin:1.8em 0 .5em;
}
.article-body strong{font-weight:600}
.article-body a{color:var(--oxblood);text-decoration:underline;text-underline-offset:2px}
.article-body ul{margin:0 0 1.4em;padding:0;list-style:none}
.article-body ul li{
  position:relative;padding-left:26px;margin-bottom:.7em;
}
.article-body ul li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:9px;height:9px;border:1.5px solid var(--oxblood);transform:rotate(45deg);
}
.pullquote{
  margin:1.8em 0;
  border-top:2px solid var(--ink);
  border-bottom:2px solid var(--ink);
  padding:24px 0;
}
.pullquote p{
  font-family:var(--display);
  font-weight:500;font-style:italic;
  font-size:clamp(1.5rem,3vw,2.1rem);
  line-height:1.18;letter-spacing:-.01em;
  color:var(--oxblood);margin:0;
}
.pullquote cite{
  display:block;font-family:var(--util);font-style:normal;
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);margin-top:14px;
}
.callout{
  background:var(--paper-2);
  border-left:3px solid var(--oxblood);
  padding:20px 24px;margin:1.8em 0;
  font-size:1rem;line-height:1.6;
}
.callout b{font-family:var(--util);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--oxblood);display:block;margin-bottom:8px}

/* related coverage */
.related{
  max-width:820px;margin:56px auto 0;
  border-top:2px solid var(--ink);padding-top:8px;
}
.related-head{
  font-family:var(--util);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--oxblood);font-weight:600;padding:14px 0;
}
.related-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.related-list a{
  display:block;text-decoration:none;
  padding:16px 20px 20px 0;
  border-right:1px solid var(--rule-soft);
  border-top:1px solid var(--rule);
}
.related-list a:nth-child(3n){border-right:none;padding-right:0}
.related-list .seclabel{font-family:var(--util);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:600}
.related-list h4{font-family:var(--serif);font-weight:600;font-size:1.12rem;line-height:1.16;margin:8px 0 0;letter-spacing:-.005em}
.related-list a:hover h4{color:var(--oxblood)}

/* about page bits */
.prose-wide{max-width:760px;margin:0 auto}
.standards{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:10px;
}
.standards .item{
  border-top:2px solid var(--ink);
  padding:22px 26px 26px 0;
}
.standards .item:nth-child(2n){padding-right:0}
.standards .item .n{font-family:var(--display);font-style:italic;font-weight:600;font-size:1.6rem;color:var(--brass)}
.standards .item h3{font-family:var(--serif);font-weight:600;font-size:1.28rem;margin:6px 0 8px;letter-spacing:-.01em}
.standards .item p{margin:0;font-size:1rem;color:var(--ink-soft);line-height:1.55}

/* ---------- footer ---------- */
footer{
  position:relative;z-index:1;
  background:var(--ink);
  color:#cfc6b6;
  margin-top:70px;
  padding:52px 0 46px;
}
footer .wrap{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
footer .fp .fn{
  font-family:var(--display);font-weight:600;font-size:1.9rem;color:var(--paper);
  line-height:1;margin:0 0 12px;
}
footer .fp .fn em{font-style:italic;color:var(--brass-soft)}
footer .fp p{font-size:.92rem;line-height:1.55;color:#b6ac9c;margin:0 0 14px;max-width:34ch}
footer .arch{width:120px;margin:0 0 14px}
footer .arch path{stroke:rgba(183,154,94,.6);stroke-width:1.4}
footer h4{
  font-family:var(--util);font-size:11px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--brass-soft);margin:0 0 16px;font-weight:600;
}
footer nav a{
  display:block;color:#cfc6b6;text-decoration:none;font-size:.95rem;
  padding:6px 0;border-bottom:1px solid rgba(207,198,182,.1);
  transition:color .16s ease;
}
footer nav a:hover{color:var(--paper)}
.crisis-foot{
  border-top:1px solid rgba(207,198,182,.16);
  margin-top:38px;padding-top:22px;
  font-size:.86rem;line-height:1.55;color:#a89e8e;
}
.crisis-foot b{color:var(--brass-soft)}
.legal{
  font-size:.78rem;line-height:1.55;color:#8f8474;margin-top:16px;max-width:none;
}
.legal a{color:#a89e8e}

/* ---------- focus / motion ---------- */
a:focus-visible,.btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width:980px){
  .lead{grid-template-columns:1fr;gap:26px}
  .lead-plate{min-height:300px;order:-1}
  .grid-2{grid-template-columns:1fr;gap:44px}
  .sponsor-inner{grid-template-columns:1fr;gap:24px}
  .sponsor-cta{text-align:left}
  .sponsor-cta .arch{margin:0 0 14px}
  footer .wrap{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  body{font-size:17px}
  .masthead-top{flex-direction:column;gap:6px;font-size:10px}
  .desknav .wrap{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .desknav a{border-left:1px solid var(--rule-soft);white-space:nowrap}
  .desknav a:first-child{border-left:none}
  .story-grid{grid-template-columns:1fr}
  .card{border-right:none;padding-right:0;border-top:1px solid var(--rule);margin-top:0}
  .card:first-child{border-top:2px solid var(--ink)}
  .related-list{grid-template-columns:1fr}
  .related-list a{border-right:none;padding-right:0}
  .standards{grid-template-columns:1fr}
  .standards .item{padding-right:0}
  footer .wrap{grid-template-columns:1fr}
  .article-body>p:first-of-type::first-letter{font-size:3.6rem}
}
@media (max-width:420px){
  .nameplate h1{font-size:clamp(2rem,11vw,2.6rem)}
  .lead-body h2{font-size:1.9rem}
}
