/* EcoWizz — The Register
   Palette: ground (oat paper) · ink · accent (moss green, saturated) · secondary (mustard, saturated)
   The two saturated members sit ~85° apart in hue and both carry real area. */
:root{
  --ground:#F4EFE3;      /* page ground */
  --panel:#EFE8D6;       /* second ground: panels, mats, table stripes */
  --ink:#191713;         /* type, rules */
  --ink-soft:#4A4438;    /* secondary type */
  --ink-quiet:#6B6456;   /* meta, credits */
  --accent:#2F6B34;      /* moss green — bands, section grounds, section marks */
  --accent-deep:#24522A; /* green pressed */
  --accent-pale:#BFCFA9; /* type on green */
  --secondary:#C08A12;   /* mustard — limits, rules, second tier */
  --secondary-lift:#E4C25E;
  --logo-ground:#1E241C; /* dark ground for partner wordmarks */
  --measure:57ch;
  --pad:clamp(18px,4vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:Faustina,Georgia,'Times New Roman',serif;
  font-size:19px;line-height:1.62;text-wrap:pretty;
}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--secondary)}
h1,h2,h3,h4,.ui{font-family:Chivo,'Helvetica Neue',Arial,sans-serif}
.ui{font-family:Chivo,'Helvetica Neue',Arial,sans-serif}
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--pad)}
.wrap-narrow{max-width:820px;margin:0 auto;padding-inline:var(--pad)}
.icon{width:1em;height:1em;flex:none;display:inline-block;vertical-align:-0.14em}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:var(--ground);padding:8px;z-index:99}

/* ---------- masthead ---------- */
.masthead{background:var(--accent);color:#F1EEE1}
.masthead a{color:#F1EEE1}
.masthead-in{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 28px;padding-block:18px 16px;min-width:0}
.wordmark{font-family:Chivo,sans-serif;font-size:clamp(26px,3.4vw,34px);font-weight:800;letter-spacing:-.035em;line-height:1;white-space:nowrap}
.wordmark-strap{font-family:Chivo,sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-pale);margin-top:7px;white-space:nowrap}
.nav{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font-family:Chivo,sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.nav a{display:flex;align-items:center;gap:7px;white-space:nowrap;padding-block:4px}
.nav a:hover,.nav a[aria-current]{color:var(--secondary-lift)}
.nav .icon{width:16px;height:16px}

/* ---------- homepage lead ---------- */
.lead-band{border-bottom:2px solid var(--ink)}
.lead-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:0}
.lead-photo img{width:100%;height:100%;object-fit:cover;min-height:340px}
.lead-copy{padding:38px var(--pad) 34px;display:flex;flex-direction:column;justify-content:center}
.kicker{display:inline-flex;align-items:center;gap:8px;font-family:Chivo,sans-serif;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.kicker .icon{width:18px;height:18px}
.lead-copy h1{margin:14px 0 0;font-size:clamp(30px,3.6vw,46px);line-height:1.02;font-weight:800;letter-spacing:-.035em}
.lead-copy .lead{margin:14px 0 0}
.lead-more{margin-top:20px;font-family:Chivo,sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* ---------- section index ---------- */
.sections{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--ink)}
.sections a{padding:22px 20px;border-right:1px solid rgba(25,23,19,.18);color:var(--ink);display:block}
.sections a:last-child{border-right:0}
.sections a:hover{background:var(--panel)}
.s-head{display:flex;width:100%;align-items:center;justify-content:space-between;color:var(--accent)}
.s-head .icon{width:26px;height:26px}
.s-count{font-family:Chivo,sans-serif;font-size:12px;font-weight:700;color:var(--ink-quiet)}
.s-name{display:block;margin-top:12px;font-family:Chivo,sans-serif;font-size:19px;font-weight:700;letter-spacing:-.01em}
.s-blurb{display:block;margin-top:5px;font-size:16px;line-height:1.45;color:var(--ink-soft)}

/* ---------- band headings ---------- */
.band{padding-block:38px}
.band-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.band-head h2{margin:0;font-size:15px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.band-note{font-family:Chivo,sans-serif;font-size:12.5px;color:var(--ink-quiet)}

/* ---------- register table ---------- */
.register{width:100%;border-collapse:collapse;margin-top:14px}
.register th{font-family:Chivo,sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);text-align:left;padding:10px 16px;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.register td{padding:13px 16px;border-bottom:1px solid rgba(25,23,19,.16);vertical-align:baseline}
.register tr:last-child td{border-bottom:2px solid var(--ink)}
.register .r-job{font-size:20px;font-weight:600}
.register .r-job a{color:var(--ink)}
.register .r-job a:hover{color:var(--accent)}
.register .r-brief{font-size:15.5px;color:var(--ink-soft);line-height:1.45}
.register .r-sec{font-family:Chivo,sans-serif;font-size:12.5px;font-weight:600;color:var(--accent);white-space:nowrap}
.register .r-sec .icon{width:15px;height:15px;margin-right:5px}
.register tbody tr:nth-child(even){background:rgba(25,23,19,.028)}

/* ---------- signature / green band ---------- */
.plate{display:grid;grid-template-columns:1fr 420px;align-items:stretch;border-block:2px solid var(--ink)}
.plate-img img{width:100%;height:100%;object-fit:cover;min-height:360px}
.plate-copy{background:var(--accent);color:#F1EEE1;padding:38px 34px;display:flex;flex-direction:column;justify-content:center}
.plate-copy .k{font-family:Chivo,sans-serif;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--secondary-lift)}
.plate-copy h2{margin:14px 0 0;font-family:Faustina,Georgia,serif;font-size:30px;line-height:1.15;font-weight:600;letter-spacing:0;text-transform:none}
.plate-copy p{margin:12px 0 0;font-size:17px;line-height:1.55;color:#DDE6CE}
.plate-copy .credit{margin-top:18px;font-family:Chivo,sans-serif;font-size:12.5px;letter-spacing:.05em;color:#A8BE92}

/* ---------- the limit line ---------- */
.limit{display:flex;gap:18px;align-items:flex-start;padding-block:30px;border-top:1px solid rgba(25,23,19,.2)}
.limit .icon{width:26px;height:26px;color:var(--secondary);margin-top:4px}
.limit p{margin:0;font-size:20px;line-height:1.45;max-width:78ch}

/* ---------- articles / cards ---------- */
.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:16px}
.pick{display:flex;flex-direction:column;height:100%;color:var(--ink)}
.pick img{aspect-ratio:16/10;object-fit:cover;width:100%}
.pick .k{display:inline-flex;margin-top:12px}
.pick h3{margin:8px 0 0;font-family:Faustina,Georgia,serif;font-size:23px;font-weight:600;line-height:1.2;min-height:2.4em}
.pick p{margin:6px 0 0;font-size:15.5px;line-height:1.45;color:var(--ink-soft)}
.pick .more{margin-top:auto;padding-top:12px;font-family:Chivo,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* ---------- article page ---------- */
.article-head{padding-block:36px 0}
.article-head h1{margin:12px 0 0;font-size:clamp(32px,4.4vw,50px);line-height:1.02;font-weight:800;letter-spacing:-.035em;max-width:20ch}
.lead{font-size:21px;line-height:1.45;color:var(--ink-soft);margin:16px 0 0;max-width:60ch}
.prose{max-width:var(--measure);font-size:19px}
.prose p{margin:0 0 20px}
.prose h2{margin:34px 0 12px;font-size:16px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.prose h3{margin:26px 0 8px;font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.prose ul,.prose ol{margin:0 0 20px;padding-left:20px}
.prose li{margin-bottom:8px}
.prose a{border-bottom:1px solid rgba(47,107,52,.35)}
.disclaimer{margin-top:34px;padding-top:14px;border-top:1px solid rgba(25,23,19,.2);font-size:15.5px;font-style:italic;color:var(--ink-quiet);max-width:var(--measure)}

/* figure system — three treatments, one drawing system */
figure{margin:0}
.fig-plate{margin:30px 0 0;border-block:2px solid var(--ink)}
.fig-plate img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fig-plate figcaption,.article-figure figcaption,.fig-slug figcaption{font-family:Faustina,Georgia,serif}
.fig-plate figcaption{display:grid;grid-template-columns:1fr auto;gap:6px 24px;align-items:baseline;padding:12px 0 14px;max-width:none}
.cap{font-size:16.5px;line-height:1.45}
.credit{font-family:Chivo,sans-serif;font-size:12.5px;letter-spacing:.05em;color:var(--ink-quiet);text-transform:none}
.article-figure{margin:30px 0;background:var(--panel);border:1px solid rgba(25,23,19,.28);padding:14px}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.article-figure figcaption{padding-top:12px;border-top:1px solid rgba(25,23,19,.2);margin-top:12px}
.article-figure .cap{display:block}
.article-figure .credit{display:block;margin-top:5px}
.fig-slug{margin:26px 0;display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start;border-top:2px solid var(--secondary);padding-top:14px}
.fig-slug img{aspect-ratio:1/1;object-fit:cover;width:100%}
.fig-slug .cap{font-size:16px}
.fig-slug .credit{display:block;margin-top:6px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:26px 0}
.gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery figcaption{margin-top:8px;font-size:15px;line-height:1.4}

/* interruptions */
.jobcard{margin:26px 0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);padding:20px 0}
.jobcard h2{margin:0 0 12px;font-family:Chivo,sans-serif;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}
.jobcard .icon{width:18px;height:18px}
.jobcard ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 32px}
.jobcard li{position:relative;padding-left:20px;font-size:17px;line-height:1.45}
.jobcard li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--secondary)}
.callout{margin:26px 0;background:var(--accent);color:#F1EEE1;padding:22px 26px}
.callout h2,.callout h3{margin:0 0 8px;font-family:Chivo,sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--secondary-lift)}
.callout p{margin:0;font-size:18px;line-height:1.5}
.callout ul{margin:8px 0 0;padding:0;list-style:none}
.callout li{position:relative;padding-left:20px;margin-bottom:8px;font-size:17px;line-height:1.45}
.callout li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--secondary-lift)}
.pullquote{margin:30px 0;border-left:4px solid var(--secondary);padding:4px 0 4px 22px}
.pullquote p{margin:0;font-size:25px;line-height:1.3;font-weight:600;letter-spacing:-.01em;max-width:34ch}
.blockquote{margin:26px 0;padding-left:22px;border-left:2px solid var(--ink)}
.blockquote p{margin:0;font-size:19px;font-style:italic}
.blockquote cite{display:block;margin-top:8px;font-family:Chivo,sans-serif;font-size:12px;font-style:normal;letter-spacing:.06em;color:var(--ink-quiet)}
.note{background:var(--panel);border-left:3px solid var(--secondary);padding:14px 18px;font-size:16.5px;line-height:1.5;margin:24px 0}
.limit-panel{margin:30px 0;border:1px solid rgba(25,23,19,.28);border-left:5px solid var(--secondary);padding:18px 22px;background:var(--panel)}
.limit-panel h2{margin:0 0 8px;font-family:Chivo,sans-serif;font-size:11.5px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#8A6B10;display:flex;align-items:center;gap:8px}
.limit-panel .icon{width:17px;height:17px}
.limit-panel p{margin:0;font-size:17px;line-height:1.5}

/* data components */
.datatable,.versus{width:100%;border-collapse:collapse;margin:26px 0;font-size:16.5px}
.datatable th,.versus th{font-family:Chivo,sans-serif;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;text-align:left;padding:10px 14px 10px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.datatable td,.versus td{padding:11px 14px 11px 0;border-bottom:1px solid rgba(25,23,19,.16);vertical-align:top}
.versus tbody tr:nth-child(even){background:var(--panel)}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:26px 0}
.statblock{padding:16px 20px 16px 0}
.stat-num{display:block;font-family:Chivo,sans-serif;font-size:36px;font-weight:800;letter-spacing:-.03em;color:var(--accent)}
.stat-label{display:block;margin-top:4px;font-size:15.5px;line-height:1.4;color:var(--ink-soft)}
.timeline{list-style:none;margin:26px 0;padding:0}
.timeline li{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:20px;padding:12px 0;border-bottom:1px solid rgba(25,23,19,.16)}
.t-when{font-family:Chivo,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);line-height:1.4}
.t-what{font-size:17px;line-height:1.45}
.chart{margin:26px 0}
.chart svg{width:100%;height:auto;overflow:visible}
.chart figcaption{margin-top:10px;font-size:15.5px;color:var(--ink-soft)}

/* cards / references */
.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin:26px 0}
.profile-card{background:var(--panel);border:1px solid rgba(25,23,19,.22);padding:18px}
.profile-card .p-photo{width:100%;aspect-ratio:4/3;object-fit:cover;margin-bottom:12px}
.profile-card h3{margin:0;font-size:20px;font-weight:700}
.profile-card .p-role{margin:4px 0 8px;font-family:Chivo,sans-serif;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-quiet)}
.profile-card p{margin:0 0 8px;font-size:16px;line-height:1.5}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin:26px 0}
.org-card{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center;border:1px solid rgba(25,23,19,.22);padding:12px;background:var(--panel);color:var(--ink)}
.org-logo{width:52px;height:52px;object-fit:contain;background:var(--logo-ground)}
.org-name{font-family:Chivo,sans-serif;font-weight:700;font-size:16px}
.org-host{font-family:Chivo,sans-serif;font-size:12px;color:var(--ink-quiet)}
.entity-ref{white-space:nowrap;border-bottom:1px solid rgba(47,107,52,.35)}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border-top:2px solid var(--ink);margin:30px 0}
.further-grid a{padding:16px 22px 18px 0;border-bottom:1px solid rgba(25,23,19,.16);font-size:19px;line-height:1.3;color:var(--ink)}
.further-grid a:hover{color:var(--accent)}
.related-links{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.related-links li{border-bottom:1px solid rgba(25,23,19,.16)}
.related-links a{display:block;padding:12px 0;font-size:19px;color:var(--ink)}
.related-links a:hover{color:var(--accent)}
.related-links .r-sec{font-family:Chivo,sans-serif;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:2px}
.cat-list{list-style:none;margin:0;padding:0}
.cat-list li{border-bottom:1px solid rgba(25,23,19,.16)}
.cat-list a{display:grid;grid-template-columns:1fr;gap:2px;padding:14px 0;color:var(--ink)}
.cat-list a:hover{color:var(--accent)}
.cat-list .c-title{font-size:22px;font-weight:600}
.cat-list .c-brief{font-size:16px;color:var(--ink-soft);line-height:1.45}

/* ---------- supporters ---------- */
.supporters{border-top:2px solid var(--ink);margin-top:12px;padding-block:34px 42px}
.sup-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}
.sup-head h2{margin:0;font-family:Chivo,sans-serif;font-size:15px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.sup-head p{margin:0;font-family:Chivo,sans-serif;font-size:12.5px;color:var(--ink-quiet);max-width:52ch}
.sup-tier{font-family:Chivo,sans-serif;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-quiet);margin:26px 0 12px;padding-top:10px;border-top:1px solid rgba(25,23,19,.2)}
.sup-row{display:grid;grid-template-columns:repeat(auto-fit,250px);gap:20px;justify-content:start}
.sponsor{width:250px;display:block;color:var(--ink);background:var(--panel);border:1px solid rgba(25,23,19,.2);padding:14px}
.sponsor:hover{border-color:var(--accent)}
.sponsor.feat{border-top:3px solid var(--accent)}
.sponsor img{width:100%;height:56px;object-fit:contain;background:var(--logo-ground);padding:8px 12px}
.sponsor-name{display:block;margin-top:10px;font-family:Chivo,sans-serif;font-size:14px;font-weight:700;letter-spacing:-.01em}
.sponsor-blurb{display:block;margin-top:5px;font-size:15px;line-height:1.4;color:var(--ink-soft)}

/* ---------- footer ---------- */
.foot{background:var(--accent);color:#F1EEE1;margin-top:12px}
.foot a{color:#F1EEE1}
.foot a:hover{color:var(--secondary-lift)}
.foot-in{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px;padding-block:34px 38px}
.foot h2{margin:0 0 10px;font-family:Chivo,sans-serif;font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-pale)}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:7px}
.foot li a{display:flex;align-items:center;gap:8px;font-size:17px}
.foot .icon{width:16px;height:16px}
.foot p{margin:0;font-size:16px;line-height:1.5;color:#DDE6CE;max-width:44ch}
.foot-line{border-top:1px solid rgba(241,238,225,.28);padding-block:14px 22px;font-family:Chivo,sans-serif;font-size:12px;color:var(--accent-pale)}

/* ---------- breadcrumb / hub ---------- */
.crumb{font-family:Chivo,sans-serif;font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-quiet);padding-block:16px 0}
.crumb a{color:var(--ink-quiet)}
.crumb a:hover{color:var(--accent)}
.page-head{padding-block:26px 22px;border-bottom:2px solid var(--ink);display:grid;grid-template-columns:1fr 380px;gap:40px;align-items:end}
.page-head h1{margin:12px 0 0;font-size:clamp(30px,4vw,48px);line-height:1;font-weight:800;letter-spacing:-.035em}
.page-head p{margin:0;font-size:17px;line-height:1.55;color:var(--ink-soft)}
details.more-list{margin-top:10px}
details.more-list summary{cursor:pointer;font-family:Chivo,sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);padding:12px 0}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .sections{grid-template-columns:repeat(2,1fr)}
  .sections a{border-bottom:1px solid rgba(25,23,19,.18)}
  .picks{grid-template-columns:repeat(2,1fr)}
  .foot-in{grid-template-columns:1fr 1fr}
}
@media (max-width:860px){
  body{font-size:18px}
  .lead-grid,.plate,.page-head{grid-template-columns:1fr}
  .plate-img img,.lead-photo img{min-height:240px;aspect-ratio:16/10}
  .lead-copy{padding-inline:var(--pad)}
  .page-head{gap:16px}
  .fig-slug{grid-template-columns:1fr}
  .fig-slug img{aspect-ratio:16/10}
  .register .r-brief{display:none}
}
@media (max-width:620px){
  .kicker,.pick .more,.sup-tier,.band-note,.crumb,.wordmark-strap,.r-sec,.lead-more,.s-count{font-size:12.5px}
  .register th{font-size:11.5px}
  .nav a{padding-block:9px}
  .prose h2{font-size:14px}
  .foot-line{font-size:13px}
  .foot h2,.plate-copy .k,.callout h3,.jobcard h2,.limit-panel h2,.sup-head h2{font-size:12.5px}
  .datatable th,.versus th{font-size:11.5px}
  .wordmark-strap{white-space:normal}
  .sections{grid-template-columns:1fr}
  .sections a{border-right:0}
  .picks{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr}
  .sup-row{grid-template-columns:1fr}
  .sponsor{width:100%}
  .fig-plate figcaption{grid-template-columns:1fr}
  .timeline li{grid-template-columns:1fr;gap:4px}
  .datatable,.versus{display:block;overflow-x:auto;white-space:normal}
  .further-grid a{padding-right:0}
  .register thead{display:none}
  .register td{display:block;border:0;padding:2px 14px}
  .register tr{display:block;border-bottom:1px solid rgba(25,23,19,.16);padding:12px 0}
  .register tbody tr:nth-child(even){background:none}
}
@media print{
  .nav,.supporters{display:none}
}

/* 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 */
.sponsor img,.sponsor-box img,.sp-logo img{box-sizing:border-box!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}

/* op-footer-compact: the footer printed 9 rows for 9 link(s) in
   2 list(s) — 705px 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 705 -> 540px (23% 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:clamp(7px,1.94vw,28px)!important;row-gap:4px!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,
   1931px at 390, 26% of the whole page. Two columns bring it to
   1348px (30% shorter). Checked before writing: no new overflow, smallest mark still
   138px wide, longest blurb 3 lines, tile heights 145-197px.
   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 (.sup-row), 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){
  .sup-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sup-row > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sup-row > * *{min-width:0!important;max-width:100%}
    .sup-row img,.sup-row svg{max-width:100%;height:auto}
  .sup-row .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

/* op-odd-tier-lead: .sup-row (7 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){
  .sup-row:has(> *:nth-child(odd):last-child) > *:first-child{grid-column:1 / -1!important}
}

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(div.lead-grid > div.lead-photo > img,
  div.picks > a.pick > img,
  div.prose > figure.article-figure > img,
  div.prose > figure.fig-slug > img,
  div.wrap > figure.fig-plate > img,
  section.plate > div.plate-img > img){height:auto}
/* op-img-dims:end */
@media (min-width:660px) and (max-width:1199px){.sup-row.sup-row:has(> [data-partner]){grid-template-columns:repeat(auto-fill,minmax(min(250px,calc(50% - 10px)),1fr))!important;justify-content:stretch!important}.sup-row.sup-row > [data-partner]{width:auto!important;max-width:none!important}}
