@charset "utf-8";
/* equalityinmarriage.org — "The Register": ruled and typographic
   Palette: 4 members, each with a job.
   --ground  paper, the page ground
   --ink     navy, body text + full-area bands + figure grounds
   --accent  plum, section grounds, kickers, links, markers   (saturated)
   --second  saffron, panels, rules, entry numbers            (saturated, ~55 deg from plum)
*/
:root{
  --ground:#F2F0E7;
  --ground-2:#EAE8DE;
  --ink:#16213F;
  --ink-70:#454B5E;
  --ink-45:#7A7E8E;
  --accent:#7A2B4E;
  --accent-ink:#F6EDE4;
  --second:#E2A32B;
  --rule:#C8C6B8;
  --rule-2:#33405F;
  --wrap:1320px;
  --measure:70ch;
  --display:"Fahkwang",Georgia,serif;
  --text:"Alegreya",Georgia,serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--text);font-size:19px;line-height:1.62;
  text-wrap:pretty;
}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;letter-spacing:.005em;margin:0}
ul,ol{margin:0;padding:0}
figure{margin:0}
svg{display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:40px}
.measure{max-width:var(--measure)}
.kicker{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.kicker--quiet{color:var(--ink-45)}
.ico{width:18px;height:18px;flex:none}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--ground);padding:10px 14px;z-index:20}

/* ---------- masthead ---------- */
.mast{border-bottom:1px solid var(--ink)}
.mast__top{display:flex;align-items:baseline;gap:18px;padding-top:20px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.mast__strap{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-45)}
.mast__strap--r{margin-left:auto}
.mast__name{display:block;font-family:var(--display);font-size:clamp(30px,4.2vw,50px);font-weight:500;line-height:1.02;color:var(--ink);padding:14px 0 16px;border-bottom:3px solid var(--ink)}
.mast__name:hover{color:var(--ink);text-decoration:none}
.nav{display:flex;flex-wrap:wrap}
.nav a{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:14px;color:var(--ink);
  padding:12px 16px;border-right:1px solid var(--rule);flex:1 1 auto;min-width:max-content}
.nav a:first-child{padding-left:0}
.nav a:last-child{border-right:0;color:var(--ink-45)}
.nav a:hover{color:var(--accent);text-decoration:none;background:#EDEBE1}
.nav a[aria-current]{color:var(--accent);font-weight:600}

/* ---------- bands ---------- */
.band{padding:56px 0}
.band--tight{padding:34px 0}
.band--ink{background:var(--ink);color:#EDEAE0}
.band--ink .kicker{color:var(--second)}
.band--ink a{color:#EDEAE0}
.band--accent{background:var(--accent);color:var(--accent-ink)}
.band--accent .kicker{color:#F0C9A8}
.band-head{display:flex;align-items:baseline;gap:16px;border-bottom:2px solid currentColor;padding-bottom:10px;margin-bottom:26px}
.band-head .more{margin-left:auto;font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase}

/* lead entry — the opening register row, photograph bleeding off the right edge */
.hero{position:relative;background:var(--ink);color:#EDEAE0;overflow:hidden}
.hero__img{position:absolute;top:0;right:0;bottom:0;left:53%;border-left:1px solid var(--second)}
.hero__img img{width:100%;height:100%;object-fit:cover}
.hero__body{position:relative;width:49%;padding:64px 0 72px}
.hero__row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--second);border-bottom:1px solid var(--rule-2);margin-bottom:38px}
.hero__cell{padding:18px 26px 20px;border-right:1px solid var(--rule-2)}
.hero__cell:first-child{padding-left:0}
.hero__cell:last-child{border-right:0}
.hero__cell span{display:block;font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8790A8;margin-bottom:10px}
.hero__cell b{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:17px;font-weight:400;color:var(--second)}
.hero__cell b .ico{width:16px;height:16px}
.hero h1{font-size:clamp(38px,5.4vw,74px);line-height:1.02;letter-spacing:-.005em;margin-bottom:20px;max-width:14em}
.hero h1 a{color:inherit}
.hero h1 a:hover{color:var(--second);text-decoration:none}
.hero .deck{font-size:21px;line-height:1.5;color:#C9CEDC;margin:0 0 26px;max-width:32em}
.hero .more{display:inline-block;font-family:var(--display);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--second);border-bottom:2px solid var(--second);padding-bottom:5px}
.hero .more:hover{color:#EDEAE0;border-color:#EDEAE0;text-decoration:none}
@media (max-width:1080px){
  .hero__img{position:static;left:auto;border-left:0;border-top:1px solid var(--second)}
  .hero__img img{aspect-ratio:16/9}
  .hero__body{width:100%;padding:44px 0 46px}
}
@media (max-width:640px){
  .hero__row{grid-template-columns:minmax(0,1fr)}
  .hero__cell{border-right:0;border-bottom:1px solid var(--rule-2);padding:14px 0 16px}
  .hero__cell:last-child{border-bottom:0}
}
/* feed */
.feed{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;border-top:2px solid var(--ink);padding-top:26px}
.card{display:flex;flex-direction:column;height:100%}
.card__fig{margin-bottom:14px}
.card__fig img{aspect-ratio:16/10;object-fit:cover;width:100%}
.card .kicker{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.card h3{font-size:24px;line-height:1.2;min-height:2.4em;margin-bottom:8px}
.card p{margin:0;font-size:16.5px;line-height:1.5;color:var(--ink-70)}
.card .card__foot{margin-top:auto;padding-top:12px}

/* ruled run of entries (secondary picks) */
.run{border-top:1px solid var(--rule)}
.run__row{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid var(--rule)}
.run__row .kicker{display:flex;align-items:center;gap:8px}
.run__row h3{font-size:22px;line-height:1.22}
.run__row p{margin:0;font-size:16.5px;line-height:1.5;color:var(--ink-70)}

/* one quiet line */
.quiet{padding:78px 0 84px;text-align:center}
.quiet hr{width:64px;height:3px;background:var(--second);border:0;margin:0 auto 28px}
.quiet p{font-family:var(--display);font-weight:300;font-size:clamp(23px,2.5vw,33px);line-height:1.4;color:var(--accent);margin:0 auto;max-width:22em}

/* sections index */
.sections--grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink);border-left:1px solid var(--rule)}
.sections--grid .sect{display:block;padding:26px 22px 30px;border-bottom:1px solid var(--rule);border-right:1px solid var(--rule)}
.sections--grid .sect .ico{width:100%;height:auto;aspect-ratio:1/1;max-width:132px;margin:0 0 20px;stroke-width:.9;color:var(--accent)}
.sections--grid .sect .n{display:block;margin-bottom:4px}
@media (max-width:900px){.sections--grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.sections--grid{grid-template-columns:minmax(0,1fr)}}

.sections{border-top:2px solid var(--ink)}
.sect{display:grid;grid-template-columns:30px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--rule)}
.sect .ico{width:26px;height:26px;color:var(--accent)}
.sect h3{font-size:21px;margin-bottom:5px}
.sect p{margin:0;font-size:16px;line-height:1.5;color:var(--ink-70)}
.sect .n{font-family:var(--display);font-size:12px;letter-spacing:.16em;color:var(--ink-45)}

/* two-column band: content + rail */
.with-rail{display:grid;grid-template-columns:minmax(0,1fr) 472px;gap:48px;align-items:start}

/* ---------- supporters rail ---------- */
.rail__head{border-bottom:2px solid var(--ink);padding-bottom:10px;margin-bottom:16px}
.rail__note{font-size:15.5px;line-height:1.5;color:var(--ink-70);margin:0 0 18px}
.rail__group{display:flex;flex-wrap:wrap;gap:16px}
.sponsor{flex:0 0 228px;background:var(--ground-2);border:1px solid var(--rule);padding:12px;
  display:flex;flex-direction:column;gap:10px;color:var(--ink)}
.sponsor:hover{border-color:var(--accent);text-decoration:none;color:var(--ink)}
.sponsor img{background:var(--ink);width:100%;height:46px;max-height:46px;object-fit:contain;padding:7px 10px}
.sponsor-name{display:block;font-family:var(--display);font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sponsor-blurb{display:block;font-size:15px;line-height:1.45;color:var(--ink-70)}
.sponsor.feat{flex:0 0 472px;display:grid;grid-template-columns:200px minmax(200px,1fr);gap:16px;align-items:center}
.sponsor.feat img{height:56px;max-height:56px}
.sponsor.feat .sponsor-name{margin-bottom:4px;white-space:normal}

/* ---------- figures: three treatments, one system ---------- */
.article-figure{margin:34px 0}
.article-figure img{width:100%}
.article-figure figcaption{display:flex;gap:20px;align-items:baseline;padding:12px 0 0;flex-wrap:wrap}
.fig-no{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);flex:none}
.fig-cap{font-size:17px;line-height:1.5;flex:1 1 22em;min-width:0}
.fig-credit{font-family:var(--display);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-45);margin-left:auto}
/* 1 — ruled plate: held between two rules, caption on one baseline beneath */
.fig-plate{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.fig-plate figcaption{padding-bottom:12px}
/* 2 — tinted: caption reversed out of an ink panel joined to the image */
.fig-tint{display:grid;grid-template-columns:minmax(0,1fr) 320px}
.fig-tint img{height:100%;object-fit:cover}
.fig-tint figcaption{display:flex;flex-direction:column;justify-content:flex-end;gap:12px;
  background:var(--ink);color:#EDEAE0;padding:26px 28px}
.fig-tint .fig-no{color:var(--second)}
.fig-tint .fig-credit{color:#8790A8;margin-left:0}
.fig-tint .fig-cap{font-size:18px}
/* 3 — inset: narrower, sits in the column, caption hangs under a saffron rule */
.fig-inset{max-width:340px;margin:30px 0}
.fig-inset img{border:1px solid var(--ink)}
.fig-inset figcaption{display:block;border-top:3px solid var(--second);margin-top:12px;padding-top:10px}
.fig-inset .fig-no{display:block;margin-bottom:6px}
.fig-inset .fig-cap{display:block}
.fig-inset .fig-cap{font-size:15.5px}
.fig-inset .fig-credit{display:block;margin:8px 0 0;font-size:11.5px}
.fig-inset--right{float:right;margin:8px 0 24px 40px}
/* full-bleed variant of the plate, for the band-breaking figure */
.fig-wide{margin:44px 0}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin:34px 0}
.gallery figure{display:flex;flex-direction:column}
.gallery img{aspect-ratio:16/10;object-fit:cover;width:100%;border:1px solid var(--ink)}
.gallery figcaption{font-size:15px;line-height:1.45;padding-top:10px;border-top:1px solid var(--rule);margin-top:10px}

/* ---------- article ---------- */
.entry-head{padding:44px 0 0}
.entry-head .where{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--ink);padding-bottom:12px;margin-bottom:26px}
.entry-head .where .ico{color:var(--accent)}
.entry-head .ref{margin-left:auto;font-family:var(--display);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-45)}
.entry-head h1{font-size:clamp(32px,4.6vw,56px);line-height:1.05;max-width:24em}
.lead{font-size:22px;line-height:1.48;color:var(--ink-70);margin:18px 0 0;max-width:34em}
.entry-body{font-size:20px;line-height:1.68;display:grid;grid-template-columns:minmax(0,68ch) minmax(240px,1fr);column-gap:56px;align-items:start}
.entry-body>*{grid-column:1;max-width:none}
.eb-break{grid-column:1/-1}
.eb-side{grid-column:2;margin-top:8px}
.entry-body>ul:not(.plainlist):not(.timeline){padding-left:22px;margin:0 0 20px}
.entry-body>ul:not(.plainlist):not(.timeline) li{margin-bottom:8px}
.entry-body p{margin:0 0 20px}
.entry-body>h2:first-of-type+p{font-size:22px;line-height:1.55}
.entry-body h2{font-size:29px;line-height:1.2;margin:42px 0 14px;padding-top:14px;border-top:1px solid var(--rule)}
.entry-body h3{font-size:22px;margin:30px 0 10px}
.entry-body em{font-style:italic}
.entry-body>.article-figure,.entry-body>.ledger,.entry-body>.pullquote,.entry-body>.gallery{max-width:none}
.entry-end{width:44px;height:8px;background:var(--accent);margin:36px 0 0}

.pullquote{margin:36px 0;padding:24px 28px;background:var(--second);color:var(--ink);border:0}
.pullquote p{font-family:var(--display);font-weight:300;font-size:25px;line-height:1.34;margin:0}
.blockquote{margin:32px 0;padding:0 0 0 24px;border-left:4px solid var(--accent)}
.blockquote p{font-size:20px;line-height:1.55;font-style:italic;margin:0 0 10px}
.blockquote cite{font-family:var(--display);font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-style:normal;color:var(--ink-45)}
.callout{margin:32px 0;padding:22px 26px;background:var(--ground-2);border-top:3px solid var(--accent)}
.callout p{margin:0;font-size:18px;line-height:1.55}
.note{font-size:16.5px;line-height:1.55;color:var(--ink-70);padding-left:16px;border-left:2px solid var(--rule)}

/* the ledger panel — where each entry's lifted material lives */
.ledger{margin:40px 0;background:var(--ink);color:#EDEAE0;padding:30px 32px 34px}
.ledger--paper{background:var(--ground-2);color:var(--ink);border-top:3px solid var(--second)}
.ledger h3{font-family:var(--display);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--second);margin-bottom:18px}
.ledger--paper h3{color:var(--accent)}
.timeline{list-style:none}
.timeline li{display:grid;grid-template-columns:minmax(140px,30%) minmax(0,1fr);gap:10px 24px;
  padding:13px 0;border-top:1px solid var(--rule-2)}
.ledger--paper .timeline li{border-top-color:var(--rule)}
.t-when{font-family:var(--display);font-size:15px;line-height:1.3;color:var(--second)}
.ledger--paper .t-when{color:var(--accent)}
.t-what{font-size:17px;line-height:1.5}
.plainlist{list-style:none}
.plainlist li{padding:11px 0;border-top:1px solid var(--rule-2);font-size:17px;line-height:1.5}
.ledger--paper .plainlist li{border-top-color:var(--rule)}

/* tables */
.datatable,.versus{width:100%;border-collapse:collapse;margin:32px 0;font-size:17px}
.datatable caption svg,.versus caption svg{display:inline-block;vertical-align:-3px;margin-right:8px}
.datatable caption,.versus caption{text-align:left;font-family:var(--display);font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--accent);padding-bottom:10px}
.datatable th,.versus th{font-family:var(--display);font-weight:500;font-size:14px;letter-spacing:.06em;
  text-align:left;padding:10px 14px 10px 0;border-bottom:2px solid var(--ink);vertical-align:bottom}
.datatable td,.versus td{padding:12px 14px 12px 0;border-bottom:1px solid var(--rule);vertical-align:top;line-height:1.45}
.versus td+td{border-left:1px solid var(--rule);padding-left:18px}
.datatable tr:hover td{background:var(--ground-2)}
.table-scroll{overflow-x:auto}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--rule);margin:32px 0}
.statblock{background:var(--ground);padding:20px 22px}
.stat-num{display:block;font-family:var(--display);font-size:40px;line-height:1;color:var(--accent)}
.stat-label{display:block;font-size:15.5px;line-height:1.45;color:var(--ink-70);margin-top:8px}

.chart{margin:32px 0}
.chart svg{width:100%;height:auto}
.chart figcaption{font-size:15.5px;line-height:1.45;color:var(--ink-70);border-top:1px solid var(--rule);padding-top:10px;margin-top:10px}

/* cards / references */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin:32px 0}
.profile-card{background:var(--ground-2);border:1px solid var(--rule);padding:20px}
.profile-card .p-photo{width:100%;aspect-ratio:1/1;object-fit:cover;margin-bottom:14px}
.profile-card h3{font-size:21px;margin-bottom:4px}
.profile-card .p-role{font-family:var(--display);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.profile-card p{font-size:16.5px;line-height:1.5;margin:0 0 10px}
.profile-card.no-photo{border-left:4px solid var(--accent)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:32px 0}
.org-card{display:flex;flex-direction:column;gap:6px;background:var(--ground-2);border:1px solid var(--rule);padding:16px}
.org-card .org-logo{background:var(--ink);height:40px;object-fit:contain;padding:6px 8px;width:100%}
.org-name{font-family:var(--display);font-size:17px}
.org-host{font-size:14px;color:var(--ink-45)}
.entity-ref{border-bottom:1px solid var(--accent)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:32px 0}
.further-grid a{display:block;background:var(--ground-2);border:1px solid var(--rule);padding:18px;
  font-family:var(--display);font-size:19px;line-height:1.25}
.further-grid a:hover{border-color:var(--accent);text-decoration:none}

.related-links{list-style:none;border-top:2px solid var(--ink)}
.related-links li{border-bottom:1px solid var(--rule)}
.related-links a{display:flex;align-items:baseline;gap:12px;padding:14px 0;font-family:var(--display);font-size:19px}
.related-links a:hover{text-decoration:none;color:var(--ink)}
.related-links .kicker{flex:none}

/* category page */
.sect-hero{display:grid;grid-template-columns:88px minmax(0,1fr);gap:32px;align-items:center;padding:44px 0 46px}
.sect-hero .ico{width:56px;height:56px}
.sect-hero h1{font-size:clamp(32px,4.4vw,50px);line-height:1.06;margin-bottom:12px}
.sect-hero p{margin:0;font-size:20px;line-height:1.5;max-width:34em}
.cat-list{list-style:none;border-top:2px solid var(--ink)}
.cat-list li{border-bottom:1px solid var(--rule)}
.cat-list a{display:grid;grid-template-columns:58px minmax(0,340px) minmax(0,1fr);gap:24px;align-items:baseline;padding:18px 0;color:var(--ink)}
.cat-list a:hover{text-decoration:none;background:#EDEBE1}
.cat-list .n{font-family:var(--display);font-size:13px;color:var(--accent);letter-spacing:.08em}
.cat-list .t{font-family:var(--display);font-size:21px;line-height:1.25}
.cat-list .d{font-size:16.5px;line-height:1.5;color:var(--ink-70)}
.expander{margin:22px 0 0}
.expander summary{font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);cursor:pointer}
.expander[open] summary{margin-bottom:12px}

/* footer */
.foot{background:var(--ink);color:#9AA3BC;margin-top:70px;padding:40px 0 46px;font-size:16px}
.foot a{color:#EDEAE0}
.foot__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:36px}
.foot h4{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--second);margin-bottom:14px}
.foot ul{list-style:none}
.foot li{padding:5px 0}
.foot__name{font-family:var(--display);font-size:24px;color:var(--ground);display:block;margin-bottom:10px}
.foot p{margin:0;line-height:1.55;max-width:34em}

/* forms (contact) */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:26px 0}
label{display:block;font-family:var(--display);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-70);margin-bottom:8px}
input,textarea,select{width:100%;font-family:var(--text);font-size:18px;padding:12px 14px;background:#FBFAF5;
  border:1px solid var(--ink);color:var(--ink)}
.btn{display:inline-block;font-family:var(--display);font-size:14px;letter-spacing:.14em;text-transform:uppercase;
  background:var(--accent);color:var(--accent-ink);padding:14px 26px;border:0;cursor:pointer}
.btn:hover{background:var(--ink);color:#EDEAE0;text-decoration:none}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .with-rail{grid-template-columns:minmax(0,1fr)}
  .sponsor,.sponsor.feat{flex:1 1 100%}
  .sponsor.feat{grid-template-columns:200px minmax(200px,1fr)}}
@media (max-width:1080px){
  .entry-body{grid-template-columns:minmax(0,1fr)}
  .eb-side{grid-column:1;max-width:420px}
  .fig-inset{max-width:420px}
}
@media (max-width:900px){
  .wrap{padding-inline:26px}
  .feed{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px}
  .fig-tint{grid-template-columns:minmax(0,1fr)}
  .fig-tint img{aspect-ratio:16/10}
  .run__row{grid-template-columns:minmax(0,1fr);gap:8px}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-list a{grid-template-columns:44px minmax(0,1fr);gap:8px 16px}
  .cat-list .d{grid-column:2}
}
@media (max-width:640px){
  body{font-size:18px}
  .fig-credit,.fig-inset .fig-credit{font-size:12px}
  .kicker{font-size:12.5px}
  .wrap{padding-inline:20px}
  .band{padding:38px 0}
  .feed{grid-template-columns:minmax(0,1fr)}
  .card h3{min-height:0}
  .nav{border-top:1px solid var(--rule)}
  .nav a{flex:1 1 46%;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:12px 10px}
  .nav a:first-child{padding-left:10px}
  .sect-hero{grid-template-columns:minmax(0,1fr);gap:18px;padding:30px 0 32px}
  .sect-hero .ico{width:44px;height:44px}
  .fig-inset,.fig-inset--right{max-width:none;float:none;margin:26px 0}
  .sponsor.feat{grid-template-columns:minmax(0,1fr)}
  .sponsor.feat img{height:50px}
  .ledger{padding:22px 20px 26px}
  .timeline li{grid-template-columns:minmax(0,1fr);gap:4px}
  .foot__grid{grid-template-columns:minmax(0,1fr)}
  .entry-body{font-size:19px}
  .pullquote p{font-size:21px}
}
@media print{
  .nav,.rail,.foot{display:none}
  body{background:#fff}
}

/* figures inside dark bands */
.band--ink .fig-plate{border-color:var(--rule-2)}
.band--ink .fig-cap{color:#C9CEDC}
.band--ink .fig-no{color:var(--second)}
.band--ink .fig-credit{color:#8790A8}
.sponsor-copy{display:block;min-width:0}

/* 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. */
.rail__group .sponsor.sponsor img{box-sizing:border-box!important;height:46px!important;padding:8px 12px!important}


/* sp-copy-size: the supporter copy renders 19px because it lives in <span class="sponsor-copy">,
   which Design never sized — .sponsor-blurb{font-size:15px} styles a class this build does not
   use for the copy. Sized on the element that actually carries it. */
.sponsor-copy,.sponsor-blurb{font-size:14px!important;line-height:1.45!important}

/* op-nav-collapse: this nav printed 192px of stacked links at 390 before any content
   (8 links), and the build shipped no control to close it. A disclosure cannot be
   built from CSS alone — :hover and :focus-within are unreachable on touch until a link has
   already been tapped — so a hidden checkbox and its label were injected immediately before
   the nav, and the nav collapses against the checked state. Exactly the mechanism the builds
   that DO have a burger already use.
   Treatment "centre-rule", bold, seeded from the domain so 175 builds do not all ship the
   same hairline box in the same place; it inherits this build's font and colour, and where the
   nav's own parent has no inline padding (20px measured) the button carries the build's
   gutter (40px) so it cannot sit against the glass. The links are hidden,
   not removed: they stay in the markup. Desktop is untouched — every rule below is inside the
   phone breakpoint (940px here), where the button appears and the nav starts closed.
   Folded with the "display" technique and marked with the "chevron" icon — the mechanism
   is deliberately not identical across the fleet either. */
.menu-open{display:none}
@media (max-width:940px){
  .menu-open{align-items:center;justify-content:center;gap:9px;font:inherit;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:inherit;cursor:pointer;min-height:44px;box-sizing:border-box;display:flex;width:fit-content;margin-inline:auto;justify-self:center;border:0;border-bottom:2px solid currentColor;border-radius:0;padding:8px 6px;letter-spacing:.16em;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}

  .menu-open-bars{width:8px;height:8px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px)}
  .nav{display:none}
  .menu-open-c:checked ~ .nav{display:flex}
  .wrap:has(> .menu-open){display:flow-root}
  .menu-open:not(:has(~ .nav)){display:none}
}

/* op-footer-compact: the footer printed 6 rows for 6 link(s) in
   1 list(s) — 743px at 390, 9% of the whole page. Design's own
   good case (evbb) has no list at all: its footer links simply flow inline, 479px in total.
   Here the lists flow inline too,
   measured 743 -> 533px (28% shorter) with no new overflow. Both shapes were
   tried and the shorter one kept — two columns helps a wide group set and hurts a narrow one.
   Phone widths only; the desktop footer is untouched. */
@media (max-width:640px){
  footer ul,footer ol{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;column-gap:min(2.5vw,36px)!important;row-gap:6px!important}
  footer ul > li,footer ol > li{width:auto!important;flex:0 0 auto;max-width:100%}
}

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1446px at 390, 19% of the whole page. Two columns bring it to
   864px (40% shorter). Checked before writing: no new overflow, smallest mark still
   140px wide, longest blurb 3 lines, tile heights 100-170px.
   A block that fails any of those is left in one column — two narrow columns can make a block
   TALLER once the copy rewraps, which is the case the operator warned about.
   The blurb is held to three rows at phone width, because a nine- or eleven-line blurb in a narrow column made two columns TALLER than one. The copy stays in the markup. An odd tile count means the lead tile spans the whole row, so the block does not end on an empty cell. Only the tier(s) that were one-per-row are touched (.rail__group), never the section
   that holds several tiers: forcing a grid on that would put a featured row and a regulars run
   side by side. Phone widths only. */
@media (max-width:640px){
  .rail__group{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:16px!important}
    .rail__group > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .rail__group > * *{min-width:0!important;max-width:100%}
    .rail__group img,.rail__group svg{max-width:100%;height:auto}
  .rail__group .sponsor-copy{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .rail__group (11 tiles) lay out two per row with an ODD tile count, so the
   block ended on a lone tile beside an empty cell. The lead tile takes the whole row instead —
   operator: "the 1st item in such rows to be 100% width, then split" — so the grid reads as
   complete. These tiers were already two-per-row, which is why the column pass never wrote the
   rule for them. Checked before writing: no new horizontal overflow, block not more than 15%
   taller. Phone widths only; desktop keeps Design's layout. */
@media (max-width:640px){
  .rail__group:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-article-width: the article column was capped at 725px (88 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through grid track 1 of "minmax(0px, 68ch) minmax(240px, 1fr)" (declared in .entry-body) to ~102 characters per line in this build's own prose font, never past the edge Design's own content already reaches beside it. The layout has no room to grow above 1600, so this width holds there. Nothing below 1440 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1440px){
  article div.entry-body{grid-template-columns:min(838px, calc(100% - 56px)) minmax(240px, 1fr)!important}
}
/* op-article-width:end */

/* op-article-head: the article header followed the text column (725px) and was left behind when the text went to 838px. Operator: "article header page with title + meta info that are super shrinked". Its containers now follow the text again by the text's own factor. */
@media (min-width:1440px){
  article p.lead{max-width:min(838px, 100%)!important}
}
/* op-article-head:end */

/* op-hover-pad */
.cat-list a{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */

/* op-hover-pad */
.datatable tr td:first-child{padding-left:clamp(12px,3.5vw,22px)!important}
/* op-hover-pad:end */
/* op-heading-levels */
h2:where(.rt-h3){font-family: var(--display); font-weight: 400; letter-spacing: 0.005em; margin: 0px;}
.card h2:where(.rt-h3){font-size: 24px; line-height: 1.2; min-height: 2.4em; margin-bottom: 8px;}
.run__row h2:where(.rt-h3){font-size: 22px; line-height: 1.22;}
.sect h2:where(.rt-h3){font-size: 21px; margin-bottom: 5px;}
@media (max-width: 640px){.card h2:where(.rt-h3){min-height: 0px;}}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(article.card > figure.card__fig > img){height:auto}
/* op-img-dims:end */
