/*
Theme Name:   Panam Institute
Theme URI:    https://panaminstitute.org
Author:       Panam Institute
Description:  The editorial-ledger design system of the Panam Institute — serif display type, hairline rules, letterspaced labels, archival portrait plates, one brick accent. Built to the Panam WP theme spec. Requires the Panam Core plugin.
Version:      2.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.1
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  panam
*/

/* =====================================================================
   PANAM — EDITORIAL LEDGER
   1 tokens · 2 base · 3 masthead/nav · 4 heads · 5 components
   6 archives/singles · 7 home bands · 8 footer · 9 editor · 10 responsive
   ===================================================================== */

/* 1 · TOKENS (spec §4). Ground swap = --paper (+ --line) alone.
   Prefer Appearance → Customize → Colours; editing here is identical. */
:root{
  --ink:#000000;
  --paper:#ffffff;
  --brick:#C5993A;
  --gray:#18324E;
  --line:#dce1e6;
  --d-paper:#edf2f7;
  --d-mute:#8fa6bf;
  --d-line:#2a4055;
  --plate-top:#18324E;
  --ink-soft:#222222;

  --serif:'Newsreader',Georgia,serif;
  --sans:'Inter',Arial,sans-serif;
  --bengali:'Noto Serif Bengali','Nirmala UI','Vrinda',serif;

  --mx:clamp(1.25rem,5vw,4.5rem);
  --max:76rem;
  --head-h:4.25rem;
}
body.ground-white{--paper:#ffffff;--line:#dce1e6}

/* 2 · BASE */
*{margin:0;padding:0;box-sizing:border-box;border-radius:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
body{
  font-family:var(--sans);color:var(--ink);background:var(--paper);
  font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
::selection{background:var(--brick);color:var(--d-paper)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--brick);outline-offset:3px}
.dark a:focus-visible,.dark button:focus-visible,
header.masthead:not(.solid) a:focus-visible,header.masthead:not(.solid) button:focus-visible{outline-color:var(--d-paper)}
header.masthead.solid a:focus-visible,header.masthead.solid button:focus-visible{outline-color:var(--brick)}

.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--mx);padding-right:var(--mx)}
.label{
  font-family:var(--sans);font-size:.6875rem;font-weight:700;
  letter-spacing:.32em;text-transform:uppercase;color:var(--brick);
}
.dark .label,.phead .label{color:var(--d-mute)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-0.01em}
em{font-style:italic}
[id]{scroll-margin-top:5.5rem}
.pt0{padding-top:0!important}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--gray);color:var(--d-paper);
  padding:.8rem 1.2rem;font-size:.8125rem;font-weight:600;text-decoration:none;
}
.skip-link:focus{left:0}

/* Reveal — JS-gated; everything is visible without JS. */
html.js .rv{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
html.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html.js .rv{opacity:1;transform:none}}

/* Ghost watermark (spec §5): ink grounds only, one per surface. */
.ghost{
  position:absolute;font-family:var(--bengali);font-weight:600;
  color:var(--d-paper);opacity:.065;line-height:.9;
  user-select:none;pointer-events:none;white-space:nowrap;
}

/* 3 · MASTHEAD & NAV */
header.masthead{
  position:fixed;top:0;left:0;right:0;z-index:50;padding:.85rem 0;
  transition:padding .5s cubic-bezier(.22,1,.36,1),background .5s cubic-bezier(.22,1,.36,1),border-color .5s cubic-bezier(.22,1,.36,1),box-shadow .5s cubic-bezier(.22,1,.36,1);
  border-bottom:1px solid transparent;
}
header.masthead.solid{
  background:var(--gray);border-bottom-color:var(--d-line);padding:.3rem 0;
  box-shadow:0 1px 3px rgba(0,0,0,.06),0 4px 12px rgba(0,0,0,.08);
}
header.masthead.solid .site-logo img{max-height:1.76rem}
header.masthead .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--head-h);gap:1.5rem}
.wordmark{
  font-family:var(--sans);font-size:.75rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;text-decoration:none;
  color:var(--d-paper);transition:color .3s ease;white-space:nowrap;
}
.site-logo{display:flex;align-items:center;text-decoration:none}
.site-logo img{max-height:2.2rem;width:auto}
nav.primary{display:flex;gap:1.9rem;align-items:center}
nav.primary a,nav.primary .sub-toggle{
  font-size:.6875rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;color:var(--d-mute);transition:color .2s ease;
  background:none;border:0;cursor:pointer;font-family:var(--sans);padding:0;
}
nav.primary a:hover,nav.primary a:focus-visible,
nav.primary .sub-toggle:hover,nav.primary .sub-toggle:focus-visible{color:var(--d-paper)}
nav.primary a.on{color:var(--d-paper);border-bottom:1px solid var(--brick);padding-bottom:.3rem}
header.masthead.solid .wordmark{color:var(--d-paper)}
header.masthead.solid nav.primary a,header.masthead.solid nav.primary .sub-toggle{color:var(--d-mute)}
header.masthead.solid nav.primary a:hover,header.masthead.solid nav.primary a:focus-visible,
header.masthead.solid nav.primary .sub-toggle:hover,header.masthead.solid nav.primary .sub-toggle:focus-visible{color:var(--brick)}
header.masthead.solid nav.primary a.on{color:var(--d-paper);border-bottom-color:var(--brick)}

/* Policy-areas dropdown */
.has-sub{position:relative}
.has-sub::after{
  content:'';position:absolute;top:100%;left:0;right:0;
  height:1rem;z-index:1;
}
.subpanel{
  position:absolute;top:calc(100% + .6rem);left:0;
  background:var(--gray);border:1px solid rgba(255,255,255,.08);min-width:26rem;
  padding:10px;display:none;z-index:60;
  box-shadow:0 12px 32px rgba(0,0,0,.16),0 4px 8px rgba(0,0,0,.1);
}
.has-sub:hover .subpanel,.has-sub.open .subpanel{display:block}
.subpanel a{
  display:flex;gap:.85rem;padding:12px 24px !important;align-items:baseline;
  margin:0 10px;
  font-size:.8125rem;font-weight:500;letter-spacing:0;text-transform:none;
  color:var(--d-paper);border:0;
  border-bottom:1px solid rgba(255,255,255,.06) !important;transition:background .2s !important,color .2s !important;
}
.subpanel a:last-child{border-bottom:0 !important}
.subpanel a:hover,.subpanel a:focus-visible{
  color:var(--brick) !important;background:rgba(255,255,255,.04);
}


body.no-band main{padding-top:var(--head-h)}

/* Mobile navigation — quiet ink overlay (≤ 900px). */
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  font-family:var(--sans);font-size:.6875rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--d-paper);
  padding:.5rem 0;transition:color .3s ease;
}
header.masthead.solid .nav-toggle{color:var(--d-paper)}
.mobile-nav{
  position:fixed;inset:0;z-index:70;background:var(--gray);color:var(--d-paper);
  display:none;flex-direction:column;overflow:auto;
}
.mobile-nav.open{display:flex}
.mobile-nav .ghost{font-size:clamp(12rem,55vw,20rem);bottom:-10%;right:-8%;opacity:.065;position:fixed}
.mobile-nav .mn-bar{display:flex;align-items:center;justify-content:space-between;height:var(--head-h);width:100%;flex-shrink:0}
.mobile-nav .mn-bar .wordmark{color:var(--d-paper)}
.mobile-nav .nav-close{
  background:none;border:0;cursor:pointer;font-family:var(--sans);
  font-size:.6875rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;
  color:var(--d-mute);padding:.5rem 0;
}
.mobile-nav .nav-close:hover{color:var(--d-paper)}
.mobile-nav .mn-links{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  gap:1.15rem;position:relative;z-index:1;width:100%;padding-top:2rem;padding-bottom:2rem;
}
.mobile-nav .mn-links a{
  font-family:var(--serif);font-size:clamp(1.6rem,6vw,2.4rem);line-height:1.1;
  text-decoration:none;color:var(--d-paper);letter-spacing:-0.01em;
}
.mobile-nav .mn-links a:hover,.mobile-nav .mn-links a.on{color:var(--d-mute)}
.mobile-nav .mn-links .has-sub .sub-toggle{display:none}
.mobile-nav .mn-links .subpanel{
  display:block;position:static;transform:none;background:none;border:0;
  min-width:0;padding:.6rem 0 .4rem 1.5rem;
}
.mobile-nav .mn-links .subpanel a{
  font-family:var(--sans);font-size:.8125rem;color:var(--d-mute)!important;
  padding:.45rem .25rem;letter-spacing:.02em;
  border-left:2px solid transparent;transition:color .2s,border-color .2s;
}
.mobile-nav .mn-links .subpanel a:hover{color:var(--d-paper)!important;border-left-color:var(--brick)}
.mobile-nav .mn-foot{
  position:relative;z-index:1;border-top:1px solid var(--d-line);
  padding:1.35rem 0;flex-shrink:0;
}
.mobile-nav .mn-foot .wrap{display:flex;justify-content:space-between;width:100%}
.mobile-nav .mn-foot span{
  font-size:.625rem;font-weight:700;letter-spacing:.24em;
  text-transform:uppercase;color:var(--d-mute);
}
body.nav-open{overflow:hidden}

/* 4 · HERO & PAGE HEADS */
.hero{
  background:var(--gray);color:var(--d-paper);
  min-height:100svh;display:flex;flex-direction:column;
  position:relative;overflow:hidden;
}
.hero .ghost{font-size:clamp(16rem,34vw,30rem);top:-14%;right:-6%}
.hero-main{flex:1;display:flex;align-items:flex-end;position:relative;z-index:1;border-bottom:1px solid rgba(197,153,58,.15)}
.hero-main>.wrap{padding-bottom:clamp(3rem,7vh,5.5rem);width:100%}
.hero .label{color:var(--brick);margin-bottom:1.75rem;display:block}
.hero h1{font-size:clamp(2.9rem,7vw,6rem);font-optical-sizing:auto;color:var(--d-paper);max-width:15ch}
.hero h1 em{color:var(--brick)}
.hero .lede{margin-top:1.75rem;font-size:clamp(.95rem,1.4vw,1.0625rem);color:var(--d-mute);max-width:34rem}

.triad{position:relative;z-index:1;border-top:1px solid var(--brick)}
.triad .wrap{display:flex;justify-content:space-between;padding-top:1.35rem;padding-bottom:1.35rem}
.triad span{font-size:.6875rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--brick)}

.phead{
  background:var(--gray);color:var(--d-paper);
  position:relative;overflow:hidden;padding:9.5rem 0 4.5rem;
}
.phead .ghost{font-size:clamp(11rem,24vw,20rem);top:-28%;right:-5%}
.phead .wrap{position:relative;z-index:1}
.phead h1{font-size:clamp(2.5rem,5.5vw,4.2rem);color:var(--d-paper);margin-top:1.4rem;max-width:18ch}
.phead .lede{margin-top:1.4rem;font-size:1.0313rem;color:var(--d-mute);max-width:36rem}
.phead .pmeta{margin-top:1.4rem;font-size:.8125rem;color:var(--d-mute);letter-spacing:.04em}
.phead .bn{font-family:var(--bengali);font-weight:600;font-size:clamp(1.3rem,2.4vw,1.8rem);color:var(--d-mute);display:block;margin-top:.9rem}

/* 5 · COMPONENTS */
section{padding:clamp(4.5rem,10vh,7.5rem) 0}
.sec-head{display:flex;align-items:baseline;gap:1.25rem;margin-bottom:.9rem}
.sec-head>*{margin:0}
.sec-num{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--brick)}
.dark .sec-num{color:var(--d-mute)}
section h2{font-size:clamp(2rem,4.2vw,3.1rem);margin-top:1.1rem;max-width:24ch}
.intro{margin-top:1.2rem;font-size:1rem;color:var(--gray);max-width:38rem}

.split{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:clamp(2rem,6vw,5.5rem);align-items:start}
.split h2{margin-top:1.1rem}
.split h2 em{color:var(--brick)}
.split aside,.split .aside{font-size:.9375rem;color:var(--gray);padding-top:.6rem}

.cols3{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(1.5rem,4vw,3.5rem);margin-top:clamp(2.5rem,5vh,4rem);
  border-top:1px solid var(--line);padding-top:2rem;
}
.cols3 h3{
  font-family:var(--sans);font-size:.6875rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--brick);margin-bottom:.8rem;
}
.cols3 p{font-size:.9rem;color:var(--gray)}
.cols3 a{color:var(--ink);text-decoration:none}
.cols3 a:hover{text-decoration:underline}

.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1.25rem,3vw,2.5rem);margin-top:clamp(2.5rem,5vh,4rem)}
.tnode{border-top:1px solid var(--line);padding-top:1.4rem;position:relative}
.tnode::before{content:"";position:absolute;top:-4.5px;left:0;width:9px;height:9px;background:var(--brick)}
.tnode .yr{font-family:var(--serif);font-size:1.7rem;line-height:1;display:block}
.tnode .tt{
  display:block;margin:.9rem 0 .6rem;font-size:.6875rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brick);
}
.tnode p{font-size:.875rem;color:var(--gray)}
.tnode p.yr{font-size:1.7rem;color:var(--ink)}
.tnode p.tt{font-size:.6875rem;color:var(--brick)}

.dark{background:var(--gray);color:var(--d-paper);position:relative;overflow:hidden}
.dark .ghost{font-size:clamp(14rem,30vw,26rem);bottom:-22%;right:-4%;opacity:.065;color:var(--d-mute)}
.dark.podcast-band .ghost{font-size:clamp(10rem,20vw,17rem);bottom:-30%;right:-3%;top:auto}
.dark h2{color:var(--d-paper)}
.dark .lede{margin-top:1.6rem;font-size:1.0625rem;color:var(--d-mute);max-width:36rem}
.dark .resolve{margin-top:1.4rem;font-size:1.0625rem;color:var(--d-paper);max-width:36rem}
.dark .content{position:relative;z-index:1}

.grid6{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(2rem,4vw,3rem) clamp(1.75rem,4vw,3.5rem);margin-top:clamp(2.5rem,5vh,4rem);
}
.ideal .num{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--brick);display:block}
.ideal h3{font-family:var(--sans);font-size:1rem;font-weight:600;margin:.7rem 0 .5rem}
.ideal p{font-size:.875rem;color:var(--gray)}
.ideal p.num{font-size:1.5rem;color:var(--brick)}

/* Ledger rows — the core molecule. */
.ledger{margin-top:clamp(2.5rem,5vh,4rem)}
.ledger-tight{margin-top:clamp(1.8rem,4vh,2.8rem)}
.lrow{
  display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);
  gap:clamp(1.25rem,4vw,4rem);border-top:1px solid var(--line);padding:1.6rem 0;
}
.lrow:last-child{border-bottom:1px solid var(--line)}
.lrow h3{font-family:var(--serif);font-size:1.45rem}
.lrow h3 a{color:inherit;text-decoration:none}
.lrow h3 a:hover{color:var(--brick)}
.lrow p{font-size:.9375rem;color:var(--gray);padding-top:.35rem}
.lrow .rn{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--brick)}
.lrow .lt{display:flex;gap:1.3rem;align-items:baseline}

.srow{
  display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);
  gap:clamp(1.25rem,4vw,4rem);border-top:1px solid var(--line);padding:1.45rem 0;
}
.srow:last-child{border-bottom:1px solid var(--line)}
.srow h4{font-family:var(--sans);font-size:.9688rem;font-weight:600;line-height:1.45}
.srow p{font-size:.9063rem;color:var(--gray)}

p.more{margin-top:2rem}
.more a,.btn-link{
  display:inline-block;font-size:.6875rem;font-weight:700;letter-spacing:.26em;
  text-transform:uppercase;color:var(--brick);text-decoration:none;
  border:0;border-bottom:1px solid var(--brick);padding:0 0 .35rem;
  background:none;cursor:pointer;font-family:var(--sans);
}
.more a:hover,.btn-link:hover{color:var(--brick);border-color:var(--brick)}
.dark .more a{color:var(--d-paper);border-color:var(--d-paper)}
.dark .more a:hover{color:var(--d-mute);border-color:var(--d-mute)}

/* Portrait plates (spec §5). */
.pgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(.9rem,2vw,1.5rem);margin-top:clamp(2.5rem,5vh,4rem)}
.plate{text-align:center;text-decoration:none;display:block}

/* Lead plates — round photo, name only, golden hover. */
.lead-plate{text-align:center;text-decoration:none;display:block}
.lead-plate .lead-ph{
  width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;
  background:linear-gradient(180deg,var(--plate-top) 0%,var(--ink) 100%);
  position:relative;display:flex;align-items:center;justify-content:center;
  outline:1px solid transparent;outline-offset:-4px;
  transition:outline-color .25s ease;
}
.lead-plate .lead-ph::after{content:"";position:absolute;inset:5px;border:1px solid rgba(237,242,247,.15);border-radius:50%;pointer-events:none;z-index:2}
.lead-plate .lead-ph img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;
  filter:grayscale(1) contrast(1.05);
}
.lead-plate .lead-ph>span{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.2rem);color:var(--d-paper)}
.lead-plate:hover .lead-ph,.lead-plate:focus-visible .lead-ph{outline-color:var(--brick)}
.lead-plate .nm{display:block;margin-top:.7rem;font-size:.8125rem;font-weight:600;color:var(--ink);transition:color .3s ease}
.lead-plate:hover .nm,.lead-plate:focus-visible .nm{color:var(--brick)}
.ph{
  aspect-ratio:4/5;background:linear-gradient(180deg,var(--plate-top) 0%,var(--ink) 100%);
  position:relative;display:flex;align-items:center;justify-content:center;
  overflow:hidden;outline:1px solid transparent;outline-offset:-8px;
  transition:outline-color .25s ease;
}
.ph::after{content:"";position:absolute;inset:7px;border:1px solid rgba(237,242,247,.2);pointer-events:none;z-index:2}
.ph>span{font-family:var(--serif);font-size:clamp(1.9rem,3.6vw,2.8rem);color:var(--d-paper)}
.ph img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;
  filter:grayscale(1) contrast(1.05);
}
.plate:hover .ph,.plate:focus-visible .ph{outline-color:var(--brick)}
.plate:hover .nm,.plate:focus-visible .nm{color:var(--brick)}
.plate .nm{display:block;margin-top:.7rem;font-size:.8125rem;font-weight:600;color:var(--ink);transition:color .3s ease}
.plate .rl{
  display:block;margin-top:.25rem;font-size:.5625rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gray);line-height:1.5;
}

/* Forms (spec §5): flat fields, no radius. */
.field{
  background:var(--paper);border:1px solid var(--line);color:var(--ink);
  font:400 .9375rem/1.4 var(--sans);padding:.85rem 1rem;min-width:0;
}
.field:focus{outline:none;border-color:var(--brick)}
label.flabel{
  display:block;margin-bottom:.55rem;font-size:.6875rem;font-weight:700;
  letter-spacing:.32em;text-transform:uppercase;color:var(--brick);
}
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* Filters (Insights archive) */
.filters{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end;margin-top:2.2rem}
.filters .field{min-width:14rem}
.confirm{font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--brick);margin-top:1.2rem}

/* 6 · ARCHIVES & SINGLES */
.irow{
  display:grid;grid-template-columns:9rem minmax(0,1fr);
  gap:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--line);padding:1.9rem 0;
}
.irow:last-child{border-bottom:1px solid var(--line)}
.irow .dt{font-family:var(--serif);font-size:1rem;color:var(--gray);line-height:1.5;padding-top:.2rem}
.irow h3{font-family:var(--serif);font-size:1.55rem}
.irow h3 a{color:inherit;text-decoration:none}
.irow h3 a:hover{color:var(--brick)}
.irow .tag{
  display:inline-block;margin-bottom:.45rem;font-size:.625rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brick);
}
.irow p{font-size:.9375rem;color:var(--gray);margin-top:.5rem;max-width:46rem}
.irow .meta{font-size:.75rem;color:var(--gray);margin-top:.6rem;letter-spacing:.02em}

/* Episode rows */
.eprow{
  display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;
  gap:clamp(1rem,2.5vw,2.25rem);border-top:1px solid var(--line);
  padding:1.5rem 0;align-items:baseline;
}
.eprow:last-child{border-bottom:1px solid var(--line)}
.eprow .rn{font-family:var(--serif);font-style:italic;font-size:1.5rem;color:var(--brick)}
.eprow h3{font-family:var(--serif);font-size:1.45rem}
.eprow h3 a{color:inherit;text-decoration:none}
.eprow h3 a:hover{color:var(--brick)}
.eprow .gx{font-size:.875rem;color:var(--gray);margin-top:.35rem}
.eprow .du{font-size:.75rem;color:var(--gray);letter-spacing:.06em}

/* Events */
.erow{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:clamp(1.5rem,4vw,3rem);border-top:1px solid var(--line);padding:1.8rem 0}
.erow:last-child{border-bottom:1px solid var(--line)}
.erow .dt{font-family:var(--serif);font-size:1.1rem;line-height:1.35}
.erow h3{font-family:var(--serif);font-size:1.45rem}
.erow h3 a{color:inherit;text-decoration:none}
.erow h3 a:hover{color:var(--brick)}
.erow .tag{
  display:inline-block;margin-bottom:.5rem;font-size:.625rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brick);
}
.erow .desc{font-size:.9375rem;color:var(--gray);margin-top:.45rem;max-width:46rem}
.erow .desc p{margin-top:.45rem}
.erow .desc p:first-child{margin-top:0}
.erow .loc{font-size:.75rem;color:var(--gray);margin-top:.55rem;letter-spacing:.04em}
.erow p.more{margin-top:1.1rem}
.empty{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.8rem 0;font-size:.9375rem;color:var(--gray);
  font-style:italic;font-family:var(--serif);
}

/* Expert single */
.xsplit{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.xsplit .ph{max-width:26rem}
.xsplit h1{font-size:clamp(2.1rem,4.5vw,3.2rem)}
.xsplit .role{
  display:block;margin:.9rem 0 0;font-size:.6875rem;font-weight:700;
  letter-spacing:.26em;text-transform:uppercase;color:var(--brick);
}
.xsplit .creds{font-size:.875rem;color:var(--gray);margin-top:.8rem}
.xsplit .bio{border-top:1px solid var(--line);margin-top:1.6rem;padding-top:1.4rem}
.xsplit .bio p{font-size:.9688rem;color:var(--ink-soft);line-height:1.75;margin-top:1rem;max-width:52rem}
.xsplit .bio p:first-child{margin-top:0}
.tagrow{border-top:1px solid var(--line);margin-top:1.6rem;padding-top:1.3rem}
.tagrow a{
  display:inline-block;margin:0 1.1rem .5rem 0;font-size:.625rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:var(--brick);text-decoration:none;
}
.tagrow a:hover{color:var(--ink)}

/* Reading layouts (insight, post, episode notes) — 68ch measure. */
.article{padding:clamp(3.5rem,8vh,5.5rem) 0 clamp(4.5rem,10vh,7.5rem)}
.article .wrap{max-width:56rem}
.article-body>*{max-width:68ch}
.article-body p{font-size:1.0313rem;color:var(--ink-soft);margin-top:1.3rem;line-height:1.75}
.article-body>p:first-child{margin-top:0}
.article-body h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-top:2.8rem}
.article-body h3{font-size:1.3rem;margin-top:2.2rem}
.article-body ul,.article-body ol{margin:1.3rem 0 0 1.2rem;color:var(--ink-soft);font-size:1.0313rem;line-height:1.75}
.article-body li{margin-top:.5rem}
.article-body a{color:var(--ink);text-decoration:none}
.article-body a:hover{text-decoration:underline}
.article-body blockquote{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:1.5rem 0;margin-top:2rem;font-family:var(--serif);
  font-size:1.35rem;line-height:1.4;color:var(--ink);
}
.article-body figure{margin-top:2rem}
.article-body figcaption{font-size:.75rem;color:var(--gray);margin-top:.6rem;letter-spacing:.02em}
.embed{margin-top:.4rem;max-width:52rem}
.embed iframe{width:100%;aspect-ratio:16/9;height:auto;border:0}

/* Authors block on an insight */
.authors{border-top:1px solid var(--line);margin-top:3rem;padding-top:1.6rem;max-width:68ch}
.authors .a-row{display:flex;gap:1.1rem;align-items:center;margin-top:1.1rem;text-decoration:none}
.authors .a-row .ph{width:3.2rem;flex-shrink:0}
.authors .a-row .ph>span{font-size:1rem}
.authors .a-row .nm{font-size:.875rem;font-weight:600;color:var(--ink)}
.authors .a-row .rl{display:block;font-size:.5625rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gray);margin-top:.2rem}
.backline{margin-top:3rem}

.pagination{display:flex;justify-content:space-between;margin-top:2.5rem;gap:1rem}
.pagination a,.pagination span{
  font-size:.6875rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;
  color:var(--brick);text-decoration:none;
}
.pagination a:hover{color:var(--ink)}

/* Platform links (podcast) */
.platforms{border-top:1px solid var(--line);margin-top:.6rem}
.platforms a{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:1.1rem 0;border-bottom:1px solid var(--line);text-decoration:none;
  color:var(--ink);font-size:.9375rem;font-family:var(--serif);
}
.platforms a small{
  font-size:.625rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--brick);font-family:var(--sans);
}
.platforms a:hover{color:var(--brick)}
.phead .platforms{border-color:var(--d-line);max-width:30rem}
.phead .platforms a{color:var(--d-paper);border-color:var(--d-line)}
.phead .platforms a small{color:var(--d-mute)}
.phead .platforms a:hover{color:var(--d-mute)}

/* 7 · HOME BANDS */
.newsletter{border-top:1px solid var(--line)}
.newsletter .n-form{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.8rem;max-width:38rem}
.newsletter .field{flex:1;min-width:16rem}
.contact-grid{
  display:grid;grid-template-columns:1fr;
  gap:clamp(2rem,4vh,3rem);
  margin-top:clamp(2.2rem,4vh,3.2rem);
}
.contact-cols{
  display:grid;grid-template-columns:1fr;
  gap:clamp(1.5rem,3vh,2.5rem);
  border-top:1px solid var(--line);padding-top:2rem;
}
.contact-cols h3{
  font-family:var(--sans);font-size:.6875rem;font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--brick);margin-bottom:.8rem;
}
.contact-cols p,.contact-cols a{font-size:.9375rem;color:var(--gray);text-decoration:none}
.contact-cols a{display:block;color:var(--ink);margin-top:.2rem}
.contact-cols a:hover{text-decoration:underline}
.contact-form-wrap{border-top:1px solid var(--line);padding-top:2rem}
.c-form{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,3vw,2.5rem)}
.c-form .flabel{margin-bottom:0}
.c-form .field{width:100%}
.c-form textarea.field{resize:vertical;min-height:10rem;flex:1}
.c-form .btn-link{margin-top:.4rem}
.c-form .confirm{font-family:var(--serif);font-size:1.0625rem;color:var(--gray);grid-column:1/-1}
.c-col{display:flex;flex-direction:column;gap:1.2rem}
.c-col:last-child .c-field-group{flex:1}
.c-field-group{display:flex;flex-direction:column;gap:.35rem}

/* 8 · FOOTER */
footer.colophon{background:var(--gray);color:var(--d-paper);position:relative;overflow:hidden}
footer.colophon .ghost{font-size:clamp(12rem,26vw,22rem);bottom:-28%;left:-4%;opacity:.065}
footer.colophon .f-main{padding:clamp(4rem,9vh,6.5rem) 0 3rem;position:relative;z-index:1}
footer.colophon .f-line{font-family:var(--serif);font-size:clamp(1.9rem,4vw,2.9rem);color:var(--d-paper)}
footer.colophon .f-org{
  display:block;margin-top:1.5rem;font-size:.75rem;font-weight:700;
  letter-spacing:.3em;text-transform:uppercase;color:var(--d-mute);
}
footer.colophon .triad{border-top:1px solid var(--d-line)}
footer.colophon .legal{position:relative;z-index:1;padding:1.1rem 0 1.4rem;font-size:.6875rem;color:var(--d-mute)}
footer.colophon .legal .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
footer.colophon .legal a{color:var(--d-mute);text-decoration:none}
footer.colophon .legal a:hover{color:var(--d-paper)}

/* 9 · EDITOR COMPAT */
h1.wp-block-heading,h2.wp-block-heading,h3.wp-block-heading,h4.wp-block-heading{margin-bottom:0}
p.label{display:block}
.sec-head p{margin:0}

/* 10 · RESPONSIVE */
@media(max-width:1000px){
  .pgrid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:900px){
  nav.primary{display:none}
  .nav-toggle{display:block}
  .xsplit{grid-template-columns:1fr}
  .xsplit .ph{max-width:16rem}
}
@media(max-width:760px){
  .split,.pod{grid-template-columns:1fr}
  .contact-grid,.cols3,.contact-cols{grid-template-columns:1fr;gap:1.75rem}
  .timeline{grid-template-columns:1fr;gap:2rem}
  .grid6{grid-template-columns:1fr 1fr;gap:2rem 1.5rem}
  .lrow,.srow{grid-template-columns:1fr;gap:.4rem;padding:1.4rem 0}
  .erow,.irow{grid-template-columns:1fr;gap:.4rem}
  .eprow{grid-template-columns:2.4rem minmax(0,1fr)}
  .eprow .du{grid-column:2}
  .triad .wrap{gap:.75rem}
  .triad span{letter-spacing:.2em;font-size:.625rem}
}
@media(max-width:560px){
  .pgrid{grid-template-columns:repeat(3,1fr)}
  .grid6{grid-template-columns:1fr}
}
