/* ============================================================
   TUCC.org — The Exhibition
   An independent heritage guide to the Black church tradition.
   Self-contained: system serif stacks, no external fonts/CDN.
   ============================================================ */
:root{
  --plum-deep:#1a0c1f; --plum:#23102a; --plum-2:#2e1430; --plum-3:#3a1a3c;
  --gold:#c6a24b; --gold-lt:#e3c376; --gold-pale:#e9dab8; --gold-soft:#d9c69c;
  --cream:#f6eda9; --paper:#f6edda; --cream-2:#f0e3c8; --cream-hi:#fbf4e4;
  --garnet:#8e2f3c; --garnet-lt:#a8434f; --sapphire:#2c4a6e; --emerald:#2f6b54;
  --ink:#2e1430; --ink-soft:#4a2e46; --ink-mute:#7a5f52; --ink-faint:#9c8663;
  --serif-display:'Hoefler Text','Georgia','Iowan Old Style',Palatino,'Times New Roman',serif;
  --serif-body:'Iowan Old Style','Palatino Linotype',Palatino,'Book Antiqua',Georgia,serif;
  --label:Georgia,'Times New Roman',serif;
  --measure:68ch;
  --gut:clamp(20px,5vw,64px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif-body);
  font-size:19px;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:var(--garnet);text-decoration:none}
a:hover{color:var(--garnet-lt)}
h1,h2,h3,h4{font-family:var(--serif-display);font-weight:400;line-height:1.08;margin:0}
p{margin:0 0 1.1em;text-wrap:pretty}
.eyebrow{font-family:var(--label);font-size:13px;letter-spacing:.24em;text-transform:uppercase}
.wrap{max-width:1440px;margin:0 auto;padding-inline:var(--gut)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:12px;top:12px;z-index:200;background:var(--gold);color:var(--plum);padding:10px 16px}

/* ---------- MASTHEAD ---------- */
.masthead{background:var(--plum);border-bottom:1px solid rgba(198,162,75,.4);position:sticky;top:0;z-index:100}
.masthead-in{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:14px var(--gut)}
.brand{display:flex;align-items:baseline;gap:14px;text-decoration:none}
.brand .wordmark{font-family:var(--serif-display);font-size:26px;letter-spacing:.12em;color:var(--cream-hi)}
.brand .tagline{font-family:var(--label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.nav{display:flex;align-items:stretch;gap:6px;list-style:none;margin:0;padding:0}
.nav>li{position:relative}
.nav>li>a{display:flex;align-items:center;height:100%;padding:10px 14px;font-family:var(--label);
  font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-pale);white-space:nowrap}
.nav>li>a:hover,.nav>li:focus-within>a{color:var(--cream-hi)}
.nav>li>a[aria-current]{color:var(--gold-lt)}
.submenu{position:absolute;top:100%;left:0;min-width:240px;background:var(--plum-2);
  border:1px solid rgba(198,162,75,.35);box-shadow:0 24px 48px rgba(10,4,12,.6);
  list-style:none;margin:0;padding:8px;opacity:0;visibility:hidden;transform:translateY(6px);
  transition:.18s ease;z-index:120}
.nav>li:hover>.submenu,.nav>li:focus-within>.submenu{opacity:1;visibility:visible;transform:none}
.submenu a{display:block;padding:9px 14px;font-family:var(--serif-body);font-size:16px;color:var(--gold-pale)}
.submenu a:hover{background:var(--plum-3);color:var(--cream-hi)}
.menu-toggle{display:none;background:none;border:1px solid var(--gold);color:var(--gold-pale);
  padding:9px 12px;cursor:pointer;font-family:var(--label);font-size:12px;letter-spacing:.14em}
.menu-toggle svg{width:20px;height:20px;display:block}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:80vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--plum-2)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  animation:kenburns 30s ease-in-out infinite alternate;will-change:transform}
@keyframes kenburns{from{transform:scale(1.03)}to{transform:scale(1.11)}}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,
  rgba(35,16,42,.5) 0%,rgba(35,16,42,.2) 38%,rgba(26,12,31,.9) 100%)}
.hero-in{position:relative;text-align:center;padding:0 var(--gut) clamp(48px,7vw,96px);margin:0 auto;max-width:1100px}
.hero .eyebrow{color:var(--gold-lt);margin-bottom:22px;display:block}
.hero h1{font-size:clamp(42px,7vw,92px);color:var(--cream-hi)}
.hero .rule{width:88px;height:3px;background:var(--gold);margin:28px auto 22px}
.hero .standfirst{max-width:760px;margin:0 auto 26px;font-size:clamp(19px,2.4vw,23px);line-height:1.5;color:var(--gold-pale)}
.cue{display:inline-flex;align-items:center;gap:10px;font-family:var(--label);font-size:13px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--cream-hi);border:1px solid var(--gold);
  padding:13px 24px;background:rgba(46,20,48,.4)}
.cue:hover{background:var(--gold);color:var(--plum)}
.cue svg{width:15px;height:15px}

/* ---------- SECTION FURNITURE ---------- */
.band{padding:clamp(56px,7vw,92px) 0}
.band-plum{background:var(--plum-2);color:var(--gold-pale)}
.band-plum-deep{background:var(--plum);color:var(--gold-pale)}
.band-cream2{background:var(--cream-2)}
.sec-head{text-align:center;margin-bottom:clamp(36px,5vw,56px)}
.sec-head .eyebrow{color:var(--gold);display:block;margin-bottom:12px}
.sec-head h2{font-size:clamp(32px,4.6vw,50px)}
.band-plum .sec-head h2,.band-plum-deep .sec-head h2{color:var(--cream-hi)}
.band-cream2 .sec-head h2{color:var(--ink)}
.sec-intro{max-width:64ch;margin:16px auto 0;text-align:center;font-size:18px;line-height:1.6}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}.hero-img{animation:none}}

/* ---------- THE ATLAS ---------- */
.atlas-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:0;border:1px solid rgba(198,162,75,.4)}
.map-figure{margin:0;position:relative}
.atlas-grid .map-figure{min-height:560px}
.map-slot{position:absolute;inset:0;background:var(--plum);display:flex;align-items:center;justify-content:center}
.map-slot::after{content:attr(data-note);white-space:pre-line;text-align:center;font-family:var(--label);
  font-size:12px;letter-spacing:.2em;line-height:2;color:rgba(198,162,75,.5)}
.map-slot[data-note=""]::after{content:none}
.map-slot:has(svg)::before,.map-slot:has(svg)::after,.map-slot.has-map::before,.map-slot.has-map::after{content:none}
.atlas-grat line{stroke:rgba(198,162,75,.09);stroke-width:1}
.atlas-ctrls{position:absolute;top:14px;right:14px;display:flex;gap:6px;z-index:3}
.atlas-ctrls button{font-family:var(--label);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  background:rgba(35,16,42,.82);color:var(--gold-pale);border:1px solid rgba(198,162,75,.4);
  padding:7px 12px;cursor:pointer;backdrop-filter:blur(2px);transition:.15s}
.atlas-ctrls button:hover{border-color:var(--gold);color:var(--cream-hi)}
.atlas-ctrls button[aria-pressed="true"]{background:var(--gold);color:var(--plum);border-color:var(--gold)}
.atlas-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.atlas-land{fill:#3a1a3c;stroke:rgba(198,162,75,.55);stroke-width:2;stroke-linejoin:round;
  filter:drop-shadow(0 8px 24px rgba(0,0,0,.5))}
.atlas-pin{cursor:pointer}
.atlas-pin .pin-halo{fill:rgba(198,162,75,.16);stroke:rgba(198,162,75,.4);stroke-width:1;
  transition:.2s;transform-box:fill-box;transform-origin:center}
.atlas-pin .pin-dot{fill:var(--gold);stroke:var(--plum);stroke-width:1.5;transition:.2s}
.atlas-pin .pin-label{fill:var(--gold-pale);font-family:var(--label);font-size:15px;letter-spacing:.04em;
  opacity:0;transition:.2s;paint-order:stroke;stroke:var(--plum-deep);stroke-width:4px}
.atlas-pin:hover .pin-dot{fill:var(--gold-lt)}
.atlas-pin:hover .pin-halo{r:16}
.atlas-pin:focus{outline:none}
.atlas-pin:focus .pin-halo{stroke:var(--gold-lt);stroke-width:2}
.atlas-tip{position:absolute;transform:translate(-50%,calc(-100% - 15px));background:var(--plum);
  border:1px solid rgba(198,162,75,.5);padding:9px 14px;min-width:150px;max-width:240px;pointer-events:none;
  opacity:0;transition:opacity .15s;z-index:5;box-shadow:0 14px 32px rgba(10,4,12,.55)}
.atlas-tip.show{opacity:1}
.atlas-tip::after{content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%) rotate(45deg);
  width:12px;height:12px;background:var(--plum);border-right:1px solid rgba(198,162,75,.5);border-bottom:1px solid rgba(198,162,75,.5)}
.tip-name{display:block;font-family:var(--serif-display);font-size:16px;color:var(--cream-hi);line-height:1.2}
.tip-city{display:block;font-family:var(--label);font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-top:4px}
.atlas-pin.active .pin-dot{fill:var(--garnet-lt);stroke:var(--gold-lt);stroke-width:2;r:7.5}
.atlas-pin.active .pin-halo{fill:rgba(168,67,79,.22);stroke:var(--garnet-lt);r:18;animation:pinpulse 2.4s ease-out infinite}
.atlas-pin.active .pin-label{opacity:1;fill:var(--cream-hi)}
@keyframes pinpulse{0%{opacity:.8}70%{opacity:.2;r:24}100%{opacity:.8;r:18}}
@media(prefers-reduced-motion:reduce){.atlas-pin.active .pin-halo{animation:none}}
.atlas-panel{background:var(--plum-2);border-left:1px solid rgba(198,162,75,.4);padding:clamp(24px,3vw,36px);display:flex;flex-direction:column}
.atlas-panel .eyebrow{color:var(--gold);margin-bottom:16px}
.place-list{list-style:none;margin:0 0 4px;padding:0;display:flex;flex-direction:column;gap:4px;overflow:auto;flex:1}
.place-btn{width:100%;text-align:left;background:none;border:1px solid rgba(198,162,75,.22);color:var(--gold-pale);
  padding:12px 15px;cursor:pointer;font-family:var(--serif-body);display:grid;grid-template-columns:auto 1fr;
  gap:2px 13px;align-items:center;transition:.14s}
.place-btn .leg-pin{grid-column:1;grid-row:1/3;width:15px;height:18px;color:var(--gold);align-self:center}
.place-btn .pl-name{grid-column:2;font-size:17px;font-family:var(--serif-display)}
.place-btn .pl-city{grid-column:2;font-family:var(--label);font-size:12.5px;letter-spacing:.06em;opacity:.8}
.place-btn:hover{border-color:rgba(198,162,75,.55);background:var(--plum-3)}
.place-btn[aria-current="true"]{background:var(--gold);border-color:var(--gold);color:var(--plum)}
.place-btn[aria-current="true"] .leg-pin{color:var(--garnet)}
.place-detail{margin-top:18px;background:var(--cream);padding:22px 24px}
.place-detail .eyebrow{color:var(--garnet);margin-bottom:6px}
.place-detail h3{font-size:24px;color:var(--ink);margin-bottom:4px}
.place-detail .pd-city{font-family:var(--label);font-size:13px;color:var(--garnet);margin-bottom:10px}
.place-detail .pd-blurb{font-size:16px;line-height:1.55;color:var(--ink-soft);margin-bottom:12px}
.place-detail a{font-family:var(--label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase}

/* ---------- THE TIMELINE ---------- */
.timeline-wall{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.era{position:relative;background:var(--plum-2);padding:0;cursor:pointer;overflow:hidden;
  border:1px solid rgba(198,162,75,.28);text-align:left;color:inherit;font-family:inherit;transition:.22s}
.era-plate{aspect-ratio:3/4;position:relative;overflow:hidden}
.era-plate img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.era-plate::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(35,16,42,.1) 0%,rgba(35,16,42,0) 34%,rgba(20,10,25,.9) 100%)}
.era:hover .era-plate img,.era[aria-current="true"] .era-plate img{transform:scale(1.06)}
.era-num{position:absolute;top:10px;left:13px;z-index:2;font-family:var(--serif-display);font-size:28px;
  color:var(--gold-lt);text-shadow:0 2px 12px rgba(0,0,0,.7)}
.era-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 15px 15px;display:flex;flex-direction:column;gap:5px}
.era-title{font-family:var(--serif-display);font-size:18px;line-height:1.1;color:var(--cream-hi);
  text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
.era-cap .era-years{font-family:var(--label);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt)}
.era::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold);z-index:3;
  transform:scaleX(0);transform-origin:left;transition:transform .28s ease}
.era:hover{border-color:rgba(198,162,75,.55)}
.era[aria-current="true"]{border-color:var(--gold)}
.era[aria-current="true"]::before{transform:scaleX(1)}
.era-text{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.no-js .era-text{position:static;width:auto;height:auto;clip:auto;white-space:normal;
  padding:12px 15px 16px;font-size:14px;line-height:1.55;color:var(--gold-soft)}
.no-js .era-cap{position:static;padding:14px 15px 4px}
.no-js .era-plate::after{display:none}
/* readout */
.timeline-readout{display:grid;grid-template-columns:1fr 1.25fr;margin-top:22px;
  border:1px solid rgba(198,162,75,.4);background:var(--plum-2);overflow:hidden}
.tr-plate{position:relative;min-height:340px;overflow:hidden;background:var(--plum-3)}
.tr-plate img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.tr-num{position:absolute;top:18px;left:22px;z-index:2;font-family:var(--serif-display);font-size:46px;
  color:var(--gold-lt);text-shadow:0 2px 14px rgba(0,0,0,.7)}
.tr-body{padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center}
.tr-era{font-family:var(--label);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.tr-years{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt);margin:14px 0 8px}
.tr-title{font-family:var(--serif-display);font-size:clamp(30px,3.4vw,42px);color:var(--cream-hi);line-height:1.08;margin-bottom:16px}
.tr-text{font-size:18px;line-height:1.66;color:var(--gold-soft);margin:0;max-width:52ch}
.no-js .timeline-readout{display:none}
.timeline-hint{text-align:center;margin-top:20px;font-family:var(--label);font-size:12.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}

/* ---------- THE SIX GALLERIES ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gcard{display:flex;flex-direction:column;background:var(--plum-2);color:inherit;overflow:hidden;
  border:1px solid rgba(198,162,75,.22);transition:.24s;height:100%;position:relative}
.gcard::after{content:"";position:absolute;inset:0;border:1px solid transparent;pointer-events:none;transition:.24s}
.gcard:hover{transform:translateY(-5px);box-shadow:0 26px 52px rgba(10,4,12,.5)}
.gcard:hover::after{border-color:rgba(198,162,75,.55);inset:6px}
.gcard-img{aspect-ratio:16/11;overflow:hidden;position:relative}
.gcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.gcard:hover .gcard-img img{transform:scale(1.07)}
.gcard-img::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,10,25,.5) 0%,rgba(20,10,25,0) 40%,rgba(35,16,42,.75) 100%)}
.gcard-num{position:absolute;top:8px;left:20px;z-index:2;font-family:var(--serif-display);
  font-size:76px;line-height:1;color:var(--gold-lt);opacity:.92;text-shadow:0 3px 18px rgba(0,0,0,.6)}
.gcard-body{padding:22px 28px 26px;display:flex;flex-direction:column;flex:1;position:relative}
.gcard-body::before{content:"";position:absolute;top:0;left:28px;right:28px;height:1px;background:rgba(198,162,75,.25)}
.gcard .g-num{font-family:var(--label);font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-bottom:9px;padding-top:4px}
.gcard h3{font-size:27px;color:var(--cream-hi);margin-bottom:12px;line-height:1.08;text-wrap:balance}
.gcard p{font-size:15.5px;line-height:1.55;color:var(--gold-soft);margin:0}
.gcard .g-more{margin-top:auto;padding-top:18px;font-family:var(--label);font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold-lt);display:flex;align-items:center;gap:8px}
.gcard .g-arrow{transition:transform .24s ease}
.gcard:hover .g-arrow{transform:translateX(6px)}

/* ---------- FEED (latest from the galleries) ---------- */
.feed-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.feed-lead{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;gap:0;
  background:var(--plum-2);border:1px solid rgba(198,162,75,.2)}
.feed-lead .fl-img{min-height:360px;overflow:hidden}
.feed-lead .fl-img img{width:100%;height:100%;object-fit:cover}
.feed-lead .fl-body{padding:clamp(28px,3.5vw,48px);display:flex;flex-direction:column;justify-content:center}
.feed-lead .eyebrow{color:var(--gold);margin-bottom:14px}
.feed-lead h3{font-size:clamp(28px,3.4vw,40px);color:var(--cream-hi);line-height:1.1;margin-bottom:14px}
.feed-lead p{font-size:17px;line-height:1.6;color:var(--gold-soft)}
.fcard{display:flex;flex-direction:column;background:var(--cream-hi);border:1px solid rgba(46,20,48,.12);overflow:hidden;height:100%}
.fcard-img{aspect-ratio:16/10;overflow:hidden}
.fcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.fcard:hover .fcard-img img{transform:scale(1.05)}
.fcard-body{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.fcard .f-cat{font-family:var(--label);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--garnet);margin-bottom:9px}
.fcard h3{font-size:22px;color:var(--ink);line-height:1.16;margin-bottom:10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.3em}
.fcard p{font-size:15px;line-height:1.5;color:var(--ink-soft);margin:0;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fcard .f-meta{margin-top:auto;padding-top:14px;font-family:var(--label);font-size:12.5px;color:var(--ink-mute)}
.more-toggle{display:block;margin:36px auto 0;background:var(--plum-2);color:var(--gold-pale);
  border:1px solid var(--gold);font-family:var(--label);font-size:13px;letter-spacing:.16em;
  text-transform:uppercase;padding:14px 30px;cursor:pointer}
.more-toggle:hover{background:var(--gold);color:var(--plum)}
#feed-more{display:none}
#more-check:checked ~ #feed-more{display:contents}
#more-check:checked ~ .more-wrap .more-toggle{display:none}
#more-check{position:absolute;opacity:0;pointer-events:none}

/* ---------- THE PATRONS (colophon) ---------- */
.patrons{background:var(--plum-2);color:var(--gold-pale)}
.patrons .sec-head .eyebrow{color:var(--gold)}
.patrons .sec-head h2{color:var(--cream-hi)}
.colophon-lead{max-width:60ch;margin:0 auto clamp(40px,5vw,60px);text-align:center;
  font-style:italic;font-size:19px;line-height:1.6;color:var(--gold-soft)}
.patrons-featured{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(198,162,75,.28);
  border:1px solid rgba(198,162,75,.35);margin-bottom:2px}
.sponsor{display:flex;background:var(--plum);color:var(--gold-pale);text-decoration:none;transition:.2s}
.patrons-featured .sponsor{flex-direction:column;gap:16px;padding:30px 30px 32px;align-items:flex-start}
.patrons-featured .sponsor:hover{background:var(--plum-3)}
.sponsor img{width:150px;height:52px;object-fit:contain;object-position:left center;background:var(--plum-deep);
  border:1px solid rgba(198,162,75,.2);padding:8px 12px}
.sponsor-blurb{font-family:var(--serif-body);font-size:16px;line-height:1.5;color:var(--gold-soft);font-style:italic}
.sponsor-blurb:empty::before{content:"A patron of the guide.";opacity:.5}
.patrons-roll{border:1px solid rgba(198,162,75,.28);border-top:none}
.patrons-roll-head{font-family:var(--label);font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);text-align:center;padding:20px 0 6px}
.patrons-list{display:grid;grid-template-columns:repeat(2,1fr)}
.patrons-list .sponsor{flex-direction:row;align-items:center;gap:18px;padding:18px 26px;
  border-top:1px solid rgba(198,162,75,.18);border-right:1px solid rgba(198,162,75,.18)}
.patrons-list .sponsor img{width:110px;height:38px;flex-shrink:0}
.patrons-list .sponsor-blurb{font-size:14.5px}

/* ---------- FOOTER ---------- */
.site-foot{background:var(--plum-deep);color:var(--gold-soft);padding:clamp(40px,5vw,60px) 0 40px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;flex-wrap:wrap;margin-bottom:26px}
.foot-brand .wordmark{font-family:var(--serif-display);font-size:22px;letter-spacing:.12em;color:var(--cream-hi)}
.foot-brand p{margin:8px 0 0;font-size:15px;max-width:42ch;color:var(--gold-soft)}
.foot-nav{display:flex;gap:38px;flex-wrap:wrap}
.foot-col h4{font-family:var(--label);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.foot-col a{color:var(--gold-soft);font-size:15px}
.foot-col a:hover{color:var(--cream-hi)}
.foot-rule{height:1px;background:rgba(198,162,75,.25);margin:8px 0 22px}
.disclaimer{font-size:14.5px;line-height:1.6;color:var(--ink-faint);max-width:80ch}

/* ---------- PAGE HEADER (inner) ---------- */
.page-hero{position:relative;min-height:auto;background:var(--plum-2);color:var(--cream-hi)}
.page-hero-img{position:relative;height:clamp(300px,42vw,460px);overflow:hidden}
.page-hero-img img{width:100%;height:100%;object-fit:cover}
.page-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,16,42,.25) 30%,rgba(26,12,31,.9))}
.page-hero-cap{position:absolute;left:0;right:0;bottom:0;padding:0 var(--gut) clamp(28px,4vw,44px)}
.page-hero-cap .kicker{font-family:var(--label);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-lt);display:block;margin-bottom:12px}
.page-hero-cap h1{font-size:clamp(34px,6vw,64px);color:var(--cream-hi);max-width:20ch}

/* ---------- CATEGORY PAGE ---------- */
.cat-intro{background:var(--cream-2);padding:clamp(40px,5vw,64px) 0}
.cat-intro .eyebrow{color:var(--garnet);display:block;margin-bottom:14px}
.cat-intro h1{font-size:clamp(36px,5.5vw,60px);color:var(--ink);max-width:16ch;margin-bottom:18px}
.cat-intro .blurb{font-size:20px;line-height:1.55;max-width:60ch;color:var(--ink-soft)}
.cat-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.cat-item{display:flex;flex-direction:column;background:var(--plum-2);overflow:hidden;
  border:1px solid rgba(198,162,75,.2);height:100%}
.cat-item .ci-img{aspect-ratio:16/9;overflow:hidden}
.cat-item .ci-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cat-item:hover .ci-img img{transform:scale(1.05)}
.cat-item .ci-body{padding:24px 28px 28px;display:flex;flex-direction:column;flex:1}
.cat-item .ci-len{font-family:var(--label);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.cat-item h3{font-size:24px;color:var(--cream-hi);line-height:1.14;margin-bottom:11px}
.cat-item p{font-size:15.5px;line-height:1.55;color:var(--gold-soft);margin:0}
.cat-item .ci-meta{margin-top:auto;padding-top:14px;font-family:var(--label);font-size:12.5px;color:var(--gold);letter-spacing:.06em}

/* ---------- ARTICLE ---------- */
.article{background:var(--paper)}
.article-shell{display:grid;grid-template-columns:1fr;max-width:1180px;margin:0 auto;padding:clamp(40px,5vw,72px) var(--gut)}
.article-meta-bar{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
  font-family:var(--label);font-size:14px;color:var(--ink-mute);
  border-bottom:1px solid rgba(46,20,48,.18);padding-bottom:20px;margin-bottom:clamp(28px,4vw,44px)}
.article-meta-bar .m-cat{color:var(--garnet);letter-spacing:.14em;text-transform:uppercase;font-size:12.5px}
.article-body{max-width:var(--measure);margin:0 auto;font-size:20px;line-height:1.72;padding-inline:0}
.article-body>p,.article-body>h2,.article-body>h3,.article-body>.lead{max-width:var(--measure)}
.article-body .lead{font-family:var(--serif-body);font-size:24px;line-height:1.5;color:var(--ink-soft);
  font-style:italic;margin-bottom:1.2em}
.article-body h2{font-family:var(--serif-display);font-size:clamp(28px,3.4vw,38px);color:var(--ink);
  margin:1.6em 0 .5em;line-height:1.12;display:flex;align-items:baseline;gap:.5em}
.sec-numeral{font-size:.62em;color:var(--gold);font-family:var(--serif-display);flex-shrink:0}
.article-body h3{font-family:var(--serif-display);font-size:26px;color:var(--ink);margin:1.4em 0 .4em}
.article-body>p:first-of-type::first-letter,.dropcap::first-letter{
  font-family:var(--serif-display);float:left;font-size:5.4em;line-height:.72;padding:6px 12px 0 0;color:var(--garnet)}
.article-body a{color:var(--garnet);text-decoration:underline;text-decoration-color:rgba(142,47,60,.35);text-underline-offset:2px}
.article-body a:hover{text-decoration-color:var(--garnet)}
sup.fn{font-family:var(--label);font-size:.62em;color:var(--garnet);font-weight:700;padding-left:1px;
  vertical-align:super;line-height:0}
sup.fn a{text-decoration:none}

/* article furniture — full-measure-breaking allowed */
.article-body .pullquote,.article-body .callout,.article-body .blockquote,
.article-body .versus,.article-body .datatable,.article-body .statrow,
.article-body .timeline,.article-body .chart,.article-body .article-figure,
.article-body .gallery,.article-body .map-figure,.article-body .profile-grid,
.article-body .profile-card,.article-body .note,.article-body .endnotes,.article-body .further-grid{
  max-width:none}
.breakout{width:min(100%,860px);margin-inline:auto}

/* ---------- PALETTE COMPONENTS ---------- */
.lead{font-size:23px;line-height:1.5;color:var(--ink-soft);font-style:italic}
.pullquote{margin:1.8em auto;padding:8px 0;border-top:2px solid var(--gold);border-bottom:2px solid var(--gold);max-width:820px}
.pullquote p{font-family:var(--serif-display);font-size:clamp(26px,3.4vw,36px);line-height:1.28;color:var(--garnet);margin:.5em 0;text-align:center}
.blockquote{margin:1.6em 0;padding:20px 28px;background:var(--cream-2);border-left:4px solid var(--garnet)}
.blockquote p{font-size:20px;font-style:italic;line-height:1.55;color:var(--ink-soft);margin:0 0 .5em}
.blockquote cite{font-family:var(--label);font-size:14px;font-style:normal;letter-spacing:.06em;color:var(--ink-mute)}
.callout{margin:1.8em 0;padding:26px 30px;background:var(--plum-2);color:var(--gold-pale);border:1px solid rgba(198,162,75,.35);position:relative}
.callout::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.callout p{font-size:18.5px;line-height:1.55;margin:0;color:var(--gold-pale)}
.callout p+p{margin-top:.7em}
.callout.glance::before{background:var(--gold)}
.glance .glance-h{font-family:var(--label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.glance-dl{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 28px;margin:0}
.glance-dl>div{display:flex;flex-direction:column;gap:3px}
.glance-dl dt{font-family:var(--label);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);opacity:.8}
.glance-dl dd{margin:0;font-size:17px;color:var(--cream-hi);line-height:1.35}
@media(max-width:560px){.glance-dl{grid-template-columns:1fr}}
.note{margin:1.5em 0;padding:16px 20px 16px 46px;background:var(--cream-2);font-size:16.5px;line-height:1.55;
  color:var(--ink-soft);position:relative;border-radius:2px}
.note::before{content:"";position:absolute;left:16px;top:18px;width:18px;height:18px;
  background:var(--garnet);-webkit-mask:var(--i-info) center/contain no-repeat;mask:var(--i-info) center/contain no-repeat}
.note strong{color:var(--garnet);font-family:var(--label);font-size:12px;letter-spacing:.1em;text-transform:uppercase}

.versus{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:16.5px}
.versus th,.versus td{border:1px solid rgba(46,20,48,.2);padding:13px 16px;text-align:left;vertical-align:top}
.versus thead th{background:var(--plum-2);color:var(--cream-hi);font-family:var(--label);font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:400}
.versus tbody th{background:var(--cream-2);font-family:var(--label);font-size:14px;color:var(--ink);width:26%}
.versus tbody tr:nth-child(even) td{background:rgba(240,227,200,.4)}

.datatable{width:100%;border-collapse:collapse;margin:1.8em 0;font-size:16.5px}
.datatable caption{font-family:var(--label);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-mute);text-align:left;margin-bottom:10px}
.datatable th,.datatable td{padding:12px 16px;text-align:left;border-bottom:1px solid rgba(46,20,48,.15)}
.datatable thead th{background:var(--plum-2);color:var(--cream-hi);font-family:var(--label);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:400}
.datatable tbody tr:hover{background:var(--cream-2)}
.datatable td:last-child,.datatable th:last-child{text-align:right}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:2px;margin:1.8em 0;background:rgba(198,162,75,.3);border:1px solid rgba(198,162,75,.4)}
.statblock{background:var(--plum-2);padding:26px 22px;text-align:center;display:flex;flex-direction:column;gap:8px}
.stat-num{font-family:var(--serif-display);font-size:clamp(38px,5vw,54px);line-height:.9;color:var(--gold-lt)}
.stat-label{font-family:var(--label);font-size:13px;letter-spacing:.06em;color:var(--gold-soft);line-height:1.4}

.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:linear-gradient(180deg,transparent,var(--gold) 6%,var(--gold) 94%,transparent)}
.timeline li{position:relative;padding:0 0 26px 44px}
.timeline li::before{content:"";position:absolute;left:2px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--plum-2);border:2px solid var(--gold)}
.timeline li:last-child{padding-bottom:0}
.t-when{display:block;font-family:var(--label);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--garnet);margin-bottom:4px}
.t-what{display:block;font-size:17.5px;line-height:1.5;color:var(--ink-soft)}

.chart{margin:2em 0}
.chart svg{width:100%;height:auto;display:block;overflow:visible}
.chart .bar-track{fill:rgba(46,20,48,.08)}
.chart .bar-fill{fill:var(--garnet)}
.chart .bar-label{font-family:var(--label);font-size:13px;fill:var(--ink);letter-spacing:.02em}
.chart .bar-val{font-family:var(--label);font-size:13px;fill:var(--ink-mute);font-weight:700}
.chart .grid-line{stroke:rgba(46,20,48,.12);stroke-width:1}
.chart .line-path{fill:none;stroke:var(--garnet);stroke-width:2.5}
.chart .line-dot{fill:var(--gold);stroke:var(--garnet);stroke-width:2}
.chart figcaption{font-family:var(--label);font-size:14px;color:var(--ink-mute);margin-top:14px;text-align:center}
.chart.donut{display:flex;flex-direction:column;align-items:center}
.chart.donut .donut-wrap{display:flex;align-items:center;gap:28px;flex-wrap:wrap;justify-content:center}
.chart.donut svg{width:180px;height:180px}
.chart.donut .donut-ring{fill:none;stroke-width:26}
.chart.donut .donut-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.chart.donut .donut-legend li{display:flex;align-items:baseline;gap:10px;font-size:15.5px;color:var(--ink-soft)}
.chart.donut .donut-legend .sw{width:13px;height:13px;flex-shrink:0;border-radius:2px;translate:0 2px}
.org-card.no-logo{padding-left:22px}
.org-card.no-logo .org-logo{display:none}
.profile-card.no-photo .p-photo{display:none}

.article-figure{margin:2em 0}
.article-figure img{width:100%;background:var(--plum-2)}
.article-figure figcaption{font-family:var(--label);font-size:14.5px;color:var(--ink-mute);line-height:1.5;margin-top:12px;max-width:70ch}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:2em 0}
.gallery figure{margin:0}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--plum-2)}
.gallery figcaption{font-family:var(--label);font-size:13px;color:var(--ink-mute);margin-top:8px;line-height:1.45}

.map-figure figcaption{font-family:var(--label);font-size:14.5px;color:var(--ink-mute);line-height:1.5;margin-top:12px}
.cap-pin{width:14px;height:16px;display:inline-block;vertical-align:-3px;color:var(--garnet);margin-right:7px}
.article-body .map-figure{margin:2em 0}
.article-body .map-slot{position:relative;aspect-ratio:16/9;inset:auto}
.map-slot[data-map-place]::before{content:"map: "attr(data-map-place)" — "attr(data-map-region);
  position:absolute;left:16px;bottom:14px;right:16px;font-family:var(--label);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:rgba(198,162,75,.45);line-height:1.6}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:2em 0}
.profile-card{background:var(--cream-2);border:1px solid rgba(198,162,75,.4);padding:24px;display:flex;flex-direction:column}
.profile-card .p-photo{width:88px;height:88px;border-radius:50%;object-fit:cover;background:var(--plum-2);margin-bottom:14px}
.profile-card.no-photo{border-top:4px solid var(--garnet)}
.profile-card h3{font-size:23px;color:var(--ink);margin-bottom:4px}
.profile-card .p-role{font-family:var(--label);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--garnet);margin-bottom:12px}
.profile-card p{font-size:16px;line-height:1.55;color:var(--ink-soft);margin:0 0 .7em}
.profile-card .p-links a{font-family:var(--label);font-size:13.5px;margin-right:14px}
.profile-card .p-attr{font-family:var(--label);font-size:12.5px;color:var(--ink-mute);margin-top:auto;padding-top:10px}

.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:1.8em 0}
.org-card{display:flex;flex-direction:column;gap:8px;padding:18px 20px;background:var(--cream-2);
  border:1px solid rgba(198,162,75,.4);text-decoration:none}
.org-card:hover{border-color:var(--gold)}
.org-logo{width:46px;height:46px;object-fit:contain;background:var(--plum-2);padding:6px}
.org-name{font-family:var(--serif-display);font-size:19px;color:var(--ink)}
.org-host{font-family:var(--label);font-size:12.5px;color:var(--ink-mute);letter-spacing:.04em}
.entity-ref{font-family:var(--label);font-size:.92em;color:var(--garnet);white-space:nowrap}

.endnotes{margin:3em 0 0;padding-top:24px;border-top:2px solid var(--gold)}
.endnotes h2{font-family:var(--serif-display);font-size:26px;color:var(--ink);margin-bottom:16px;display:block}
.endnotes ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:12px}
.endnotes li{font-size:16.5px;line-height:1.55;color:var(--ink-soft);padding-left:6px}
.endnotes li::marker{font-family:var(--label);color:var(--garnet);font-weight:700}
.endnotes .back{font-family:var(--label);font-size:12px;margin-left:6px;text-decoration:none}

.related{background:var(--cream-2);border-top:1px solid rgba(198,162,75,.4)}
.related h2{font-family:var(--serif-display);font-size:clamp(26px,3vw,34px);color:var(--ink);margin-bottom:24px;text-align:center}
.related .eyebrow{color:var(--garnet);display:block;text-align:center;margin-bottom:8px}
.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;list-style:none;margin:0;padding:0}
.further-grid a,.related-links a{display:flex;flex-direction:column;gap:8px;background:var(--plum-2);color:var(--gold-pale);
  padding:24px 26px;border:1px solid rgba(198,162,75,.25);text-decoration:none;height:100%;transition:.2s}
.further-grid a:hover,.related-links a:hover{border-color:var(--gold);transform:translateY(-3px)}
.related-links .rl-cat{font-family:var(--label);font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.related-links .rl-title{font-family:var(--serif-display);font-size:21px;color:var(--cream-hi);line-height:1.16}
.related-links .rl-arrow{margin-top:auto;font-family:var(--label);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-lt)}

.article-nav{display:flex;justify-content:space-between;gap:20px;padding:26px var(--gut);
  background:var(--cream-2);border-top:1px solid rgba(198,162,75,.4);flex-wrap:wrap}
.article-nav a{font-family:var(--label);font-size:13.5px;letter-spacing:.1em;color:var(--ink-mute)}
.article-nav a.next{color:var(--garnet)}

/* ---------- SIMPLE PAGES ---------- */
.prose-page{max-width:74ch;margin:0 auto;padding:clamp(48px,6vw,84px) var(--gut)}
.prose-page h1{font-size:clamp(38px,6vw,64px);color:var(--ink);margin-bottom:8px}
.prose-page .eyebrow{color:var(--garnet);display:block;margin-bottom:16px}
.prose-page p{font-size:20px;line-height:1.7}
.prose-page p:first-of-type::first-letter{font-family:var(--serif-display);float:left;font-size:4.6em;line-height:.72;padding:6px 12px 0 0;color:var(--garnet)}
.contact-card{margin-top:24px;padding:24px 28px;background:var(--plum-2);color:var(--gold-pale);border:1px solid rgba(198,162,75,.35)}
.contact-card .eyebrow{color:var(--gold)}
.contact-card a{color:var(--gold-lt);font-size:22px;font-family:var(--serif-display)}
.err-page{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px var(--gut);background:var(--plum-2)}
.err-page h1{font-size:clamp(48px,9vw,110px);color:var(--gold-lt)}
.err-page p{font-size:20px;color:var(--gold-pale);max-width:44ch}
.err-page .cue{color:var(--cream-hi)}

/* ---------- STYLEGUIDE ---------- */
.sg-wrap{max-width:920px;margin:0 auto;padding:clamp(40px,5vw,72px) var(--gut)}
.sg-section{margin-bottom:64px}
.sg-section>h2{font-family:var(--serif-display);font-size:32px;color:var(--ink);border-bottom:2px solid var(--gold);padding-bottom:10px;margin-bottom:28px}
.sg-label{font-family:var(--label);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);margin:26px 0 10px}
.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.swatch{height:90px;border-radius:3px;display:flex;align-items:flex-end;padding:10px;font-family:var(--label);font-size:11px;letter-spacing:.04em}

/* ---------- ICON MASKS ---------- */
:root{
  --i-info:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><circle cx='12' cy='12' r='10' fill='none' stroke='black' stroke-width='2'/><line x1='12' y1='11' x2='12' y2='17' stroke='black' stroke-width='2'/><circle cx='12' cy='7.5' r='1.4' fill='black'/></svg>");
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1080px){
  .gallery-grid,.feed-grid,.patrons-featured{grid-template-columns:repeat(2,1fr)}
  .cat-list{grid-template-columns:1fr}
}
@media(max-width:1100px){
  .brand .tagline{display:none}
  .menu-toggle{display:inline-flex}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--plum);
    border-bottom:1px solid rgba(198,162,75,.4);padding:8px var(--gut) 16px;gap:0;display:none;z-index:120}
  .nav.open{display:flex}
  .nav>li>a{padding:14px 4px;border-bottom:1px solid rgba(198,162,75,.14)}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    background:transparent;padding:0 0 8px 14px;min-width:0}
  .submenu a{padding:8px 0;font-size:15px}
}
@media(max-width:860px){
  body{font-size:18px}
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--plum);
    border-bottom:1px solid rgba(198,162,75,.4);padding:8px var(--gut) 16px;gap:0;display:none}
  .nav.open{display:flex}
  .nav>li>a{padding:14px 4px;border-bottom:1px solid rgba(198,162,75,.14)}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;
    background:transparent;padding:0 0 8px 14px;min-width:0}
  .submenu a{padding:8px 0;font-size:15px}
  .atlas-grid{grid-template-columns:1fr}
  .atlas-grid .map-figure{min-height:340px}
  .atlas-panel{border-left:none;border-top:1px solid rgba(198,162,75,.4)}
  .timeline-wall{grid-template-columns:repeat(3,1fr);gap:8px}
  .era-plate{aspect-ratio:4/5}
  .timeline-readout{grid-template-columns:1fr}
  .tr-plate{min-height:220px}
  .feed-lead{grid-template-columns:1fr}
  .feed-lead .fl-img{min-height:240px}
  .patrons-list{grid-template-columns:1fr}
  .article-body{font-size:18.5px}
}
@media(max-width:560px){
  .gallery-grid,.feed-grid,.patrons-featured{grid-template-columns:1fr}
  .timeline-wall{grid-template-columns:repeat(2,1fr)}
  .hero{min-height:74vh}
  .foot-nav{gap:24px}
}

/* xlink-patronfix */
.sponsor img{object-position:center!important;box-sizing:border-box!important;background:var(--plum-deep)!important;border:1px solid rgba(198,162,75,.22)!important}
.patrons-list .sponsor img{width:152px!important;height:56px!important;padding:10px 14px!important;flex-shrink:0!important}
.patrons-featured .sponsor img{width:100%!important;height:66px!important;padding:12px 18px!important}
.patrons-list .sponsor{align-items:center!important}

/* sp-mark-align: marks sit CENTRED in their box. Placement only — Design's size,
   padding, panel and object-fit are untouched. */
.sponsor img,.sponsor-box img,.sp-logo img{object-position:center!important;margin-left:auto!important;margin-right:auto!important;display:block}
.sponsor .sp-logo,.sponsor-box{display:flex;align-items:center;justify-content:center}

/* sp-tile-uniform: a slot never grows to fill its row — every tile the same width in
   every row, whatever the count. Only flex-grow is touched. */
.sponsor{flex-grow:0!important}
.sponsor.lead-line,.sponsor.feat.lead-line{flex-grow:1!important}

/* sp-mark-fit: width:100% + padding must not overflow the tile — but the declared
   HEIGHT is the mark's size and border-box alone steals the vertical padding from it.
   earlychristianireland declares height:66px with 10px top/bottom padding: border-box
   left a 46px mark and the operator read it as 'logos too small'. Keep the horizontal
   inset, drop the vertical padding, so the mark occupies the full height Design set. */
.sponsor img,.sponsor-box img,.sp-logo img{box-sizing:border-box!important;padding-top:0!important;padding-bottom:0!important}

/* sp-blurb-unhide: every supporter slot shows its text — no half-texted grids */
.sponsor-blurb:not(:empty){display:block!important;line-height:1.5}

/* sp-blurb-link: money-link anchors in blurbs must inherit the blurb colour (readable on dark OR light tiles) */
.sponsor-blurb a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* 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. */
.patrons-featured.reveal .sponsor .sp-logo.sp-logo{display:block!important;width:100%!important}
.patrons-featured.reveal .sponsor.sponsor img{height:66px!important;display:block!important;width:100%!important}

/* op-blurb-rows: money blurbs ran to 5 rows at 390, 1123px of tier across
   8 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){
  .patrons-list .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;max-height:66px!important;min-height:0!important;overflow:hidden!important}
}

/* op-money-cutoff: at 320 the grid column is pinned at 306px against 278px of room at 320. Structural only — no spacing value of mine: the mark is
   held to the box it is given, the column is allowed to shrink, or the tile is measured
   border-box. Trialled before writing: the cut-off is gone, no new overflow, the smallest mark
   still measures over 70px. Phone widths only; 390 and desktop are untouched. */
@media (max-width:360px){
  .patrons-featured.reveal{grid-template-columns:minmax(0,1fr)!important}
  .sponsor{min-width:0!important;max-width:100%!important}
}

/* op-money-squeeze: the money tile is a ROW whose mark takes nearly all of it, so the brand copy was
   left a column 55px wide at 320 — a sentence broken one or two words to a line. No
   overflow or clipping check sees this: the copy is not cut, just unreadably thin. The tile row is
   allowed to WRAP on phones, so the copy drops beneath the mark at full width (the evos remedy).
   Desktop keeps Design's side-by-side. Structural only. */
@media (max-width:400px){
  .patrons-list > [data-partner]{flex-wrap:wrap!important}
  .patrons-list > [data-partner] > :not(img):not(svg):not(picture){flex-basis:100%!important;min-width:0!important}
}

/* op-article-width: the article column was capped at 756px (85 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through Design's own measure --measure (declared in .article-body > p, .article-body > h2, .article-body > h3, .article-body > .lead) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. The layout has no room to grow above 1600, so this width holds there. Nothing below 1024 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1024px){
  div.article-body{--measure:min(81.902ch, 100%)!important}
}
/* op-article-width:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.fcard.reveal > div.fcard-img > img,
  button.era > div.era-plate > img,
  div.gallery > figure > img,
  div.page-hero > div.page-hero-img > img,
  li.cat-item > a.ci-img > img,
  main > section.hero > img.hero-img){height:auto}
/* op-img-dims:end */
@media (min-width:1101px) and (max-width:1259px){.brand .tagline { display: none; }.menu-toggle { display: inline-flex; }.nav { position: absolute; top: 100%; left: 0px; right: 0px; flex-direction: column; background: var(--plum); border-bottom: 1px solid rgba(198, 162, 75, 0.4); padding: 8px var(--gut) 16px; gap: 0px; display: none; z-index: 120; }.nav.open { display: flex; }.nav > li > a { padding: 14px 4px; border-bottom: 1px solid rgba(198, 162, 75, 0.14); }.submenu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-width: medium; border-style: none; border-color: currentcolor; border-image: none; background: transparent; padding: 0px 0px 8px 14px; min-width: 0px; }.submenu a { padding: 8px 0px; font-size: 15px; }}
@media (max-width:1259px){.masthead-in > .menu-toggle{margin-left:auto!important}}
@media (min-width:820px) and (max-width:879px){.patrons-list:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))!important;gap:var(--sp-gap,14px)!important;justify-content:start!important}.patrons-list:has(> [data-partner]) > [data-partner]{width:auto!important;min-width:0!important;margin-left:0!important;margin-right:0!important}}.patrons-featured > [data-partner] img{background:transparent!important}.patrons-list > [data-partner] img{background:transparent!important}
