/* Always a Blogsmaid — working notes on wedding logistics
   Palette: ground / ink / accent / secondary / mount */
:root{
  --ground:#F3EEE4;      /* ground   — paper the site is printed on */
  --ink:#191714;         /* ink      — all reading text */
  --accent:#1B3FD1;      /* accent   — cyanotype: section band, kickers, links */
  --secondary:#E3860B;   /* secondary— marigold: section grounds, tint bands */
  --mount:#D8CFBE;       /* mount    — board behind every photograph */
  --rule:#C8BFAE;
  --ink-soft:#57503F;
  --ink-quiet:#8C8474;
  --ground-2:#EAE3D6;
  --serif:"Faustina",Georgia,"Times New Roman",serif;
  --sans:"Familjen Grotesk","Helvetica Neue",Arial,sans-serif;
  --step:clamp(20px,4vw,56px);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.62;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration:underline}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-0.022em;text-wrap:pretty}
p{margin:0 0 1.05em}
ul,ol{margin:0 0 1.1em;padding-left:1.15em}
li{margin:0 0 .38em}
table{border-collapse:collapse;width:100%}
.wrap{max-width:1240px;margin:0 auto;padding-inline:var(--step)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- icons ---------- */
.ic{flex:none;vertical-align:-.16em}

/* ---------- masthead ---------- */
.masthead{padding-top:26px}
.masthead-top{display:flex;flex-wrap:wrap;gap:14px 32px;align-items:flex-end;justify-content:space-between;border-bottom:1.5px solid var(--ink);padding-bottom:15px}
.wordmark{display:block;font-family:var(--serif);font-size:clamp(30px,4.6vw,46px);font-weight:600;letter-spacing:-0.028em;line-height:.98;color:var(--ink)}
.wordmark:hover{text-decoration:none}
.strap{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink-soft);margin-top:8px}
.signature{display:flex;gap:8px;align-items:center;font-family:var(--sans);font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);padding-bottom:3px}
.nav{display:flex;flex-wrap:wrap;gap:10px 28px;padding:15px 0 16px;border-bottom:1px solid var(--rule);font-family:var(--sans);font-size:17px}
.nav a{display:flex;gap:7px;align-items:center;color:var(--ink)}
.nav a .ic{color:var(--accent)}
.nav a[aria-current="page"]{color:var(--accent);font-weight:600}
.nav .nav-hub{margin-left:auto;color:var(--ink-soft)}

/* ---------- kickers / labels ---------- */
.kicker{display:inline-flex;gap:7px;align-items:center;font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.kicker--on-dark{color:var(--secondary)}
.band-label{font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase}
.rule-head{display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:baseline;border-top:1.5px solid var(--ink);padding-top:13px;margin-top:0}

/* ---------- figures: one drawing system, three treatments ---------- */
.article-figure{margin:0}
.article-figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.fig-cap{font-family:var(--serif);font-size:17px;line-height:1.42;color:#3B352B;max-width:34em}
.fig-credit{display:block;margin-top:7px;font-family:var(--sans);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-quiet)}

/* 1 — plate: full width, caption set into the lower margin, offset right */
.fig-plate img{background:var(--mount)}
.fig-plate figcaption{display:flex;justify-content:flex-end;padding-top:14px}
.fig-plate .fig-cap{border-top:1.5px solid var(--ink);padding-top:10px}

/* 2 — mount: photograph inset on a mat board, caption right-aligned in the mat */
.fig-mount{background:var(--mount);padding:24px 24px 18px}
.fig-mount figcaption{display:flex;justify-content:flex-end;margin-top:14px}
.fig-mount .fig-cap{text-align:right;max-width:22em}
.fig-mount .fig-credit{color:#7D7565}

/* 3 — band: marigold ground, image lifted out of it, caption inside the band */
.fig-band{display:grid;grid-template-columns:1fr minmax(220px,300px);gap:32px;align-items:center;background:var(--secondary);padding:30px 30px 30px 0;color:#231A06}
.fig-band .fig-shift{margin:-30px 0 0 -20px;background:var(--mount);box-shadow:0 10px 26px rgba(0,0,0,.16)}
.fig-band .fig-cap{color:#231A06;font-style:italic;max-width:none}
.fig-band .fig-credit{color:#6B5006}
.fig-band figcaption{display:contents}

/* 4 — inset: small, sits beside the measure */
.fig-inset{background:var(--mount);padding:14px}
.fig-inset img{aspect-ratio:4/3}
.fig-inset .fig-cap{font-size:15.5px;margin-top:10px;max-width:none}

/* 5 — wrapped: sits IN the column with prose running beside it, so a short
   note gains a third photograph without gaining another block-level break */
.flow{display:flow-root}
.flow>p:last-child{margin-bottom:0}
.fig-wrap{float:right;width:46%;max-width:330px;margin:5px 0 18px 28px;background:var(--mount);padding:12px}
.fig-wrap img{aspect-ratio:4/3;object-fit:cover}
.fig-wrap .fig-cap{font-size:15px;line-height:1.38;margin-top:9px;max-width:none}
.fig-wrap--left{float:left;margin:5px 28px 18px 0}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.gallery figure{margin:0;background:var(--mount);padding:12px}
.gallery .fig-cap{font-size:15px;margin-top:8px}

/* ---------- homepage ---------- */
.lead-feature{margin-top:0}
.lead-feature .hero-img{width:100%;height:clamp(280px,44vw,600px);object-fit:cover;background:var(--mount)}
.lead-grid{display:grid;grid-template-columns:1fr minmax(260px,340px);gap:24px 48px;padding-top:22px}
.lead-title{font-size:clamp(34px,5.2vw,58px);line-height:1.02;margin:12px 0 0}
.lead-dek{font-size:clamp(18px,2.2vw,20px);line-height:1.45;color:#4A4438;margin:16px 0 0;max-width:34em}
.lead-side{border-left:1px solid var(--rule);padding-left:24px}
.meta{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);letter-spacing:.01em}

.feature-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:36px;padding-top:44px}
.feature{display:flex;flex-direction:column}
.feature h2{font-size:30px;line-height:1.1;margin:9px 0 0}
.feature p{font-size:17px;line-height:1.5;color:#4A4438;margin:10px 0 0}
.feature .kicker{margin-top:18px}

/* section band — the accent used as a real area */
.sections-band{background:var(--accent);color:var(--ground);margin-top:52px;padding:40px 0 46px}
.sections-band a{color:var(--ground)}
.sections-band .rule-head{border-top:0;border-bottom:1px solid rgba(255,255,255,.28);padding:0 0 14px}
.sections-band h2{font-size:clamp(24px,3vw,28px)}
.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:34px 40px;margin-top:30px}
.section-card{display:flex;flex-direction:column}
.section-card .ic{color:var(--ground)}
.section-card h3{font-size:24px;margin-top:10px}
.section-card p{font-size:15px;line-height:1.5;color:#DFE3FF;margin:6px 0 0;font-family:var(--sans)}
.section-card .count{margin-top:auto;padding-top:12px;font-family:var(--sans);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:#AEBCFF}

/* the register: every article reachable without a dropdown */
.register{padding-top:52px}
.register-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-top:26px}
.register-col{background:var(--mount);padding:18px 20px 12px}
.register-head{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border-bottom:1.5px solid var(--ink);padding-bottom:11px;color:var(--ink)}
.register-head:hover{text-decoration:none}
.register-head:hover .rc-title{color:var(--accent)}
.rc-no{font-family:var(--sans);font-size:11.5px;letter-spacing:.1em;color:var(--ink-quiet)}
.rc-title{display:flex;gap:9px;align-items:center;font-family:var(--serif);font-size:22px;font-weight:600;letter-spacing:-0.02em}
.rc-title .ic{color:var(--accent)}
.rc-count{font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-quiet)}
.register-col ul{list-style:none;padding:0;margin:4px 0 0}
.register-col li{margin:0;border-bottom:1px solid rgba(25,23,20,.14)}
.register-col li:last-child{border-bottom:0}
.register-col li a{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:baseline;padding:10px 0;color:var(--ink);font-size:17px;line-height:1.3}
.register-col li a:hover{color:var(--accent);text-decoration:none}
.rc-min{font-family:var(--sans);font-size:11.5px;letter-spacing:.08em;color:var(--ink-quiet);white-space:nowrap}

/* ---------- category / hub ---------- */
.section-head{background:var(--secondary);color:#231A06;padding:36px 0 34px}
.section-head .inner{display:grid;grid-template-columns:1fr minmax(260px,420px);gap:24px 48px;align-items:end}
.section-head h1{font-size:clamp(38px,6vw,64px);line-height:.98;margin:14px 0 0}
.section-head p{font-size:19px;line-height:1.45;margin:0}
.cat-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:36px 40px}
.cat-list li{margin:0}
.card{display:flex;flex-direction:column;height:100%;color:var(--ink)}
.card:hover{text-decoration:none}
.card .thumb{background:var(--mount);padding:12px}
.card .thumb img{width:100%;aspect-ratio:16/10;object-fit:cover}
.card .thumb{display:block}
.card h2,.card h3{font-size:24px;line-height:1.14;margin:14px 0 0;min-height:2.28em}
.card:hover h2,.card:hover h3{color:var(--accent)}
.card p{font-size:16.5px;line-height:1.5;color:#4A4438;margin:8px 0 0}
.card .meta{margin-top:auto;padding-top:12px}

/* ---------- article ---------- */
.article-head{padding-top:36px}
.article-head h1{font-size:clamp(34px,5.6vw,62px);line-height:1;margin:14px 0 0;max-width:17ch}
.article-head .lead{font-family:var(--serif);font-size:clamp(19px,2.4vw,22px);line-height:1.42;color:#4A4438;margin:18px 0 0;max-width:32em}
.article-head .meta{margin-top:16px;padding-top:12px;border-top:1px solid var(--rule);max-width:32em}
.article-body{display:grid;grid-template-columns:minmax(0,1fr) min(640px,100%) minmax(0,1fr);padding:0 var(--step)}
.article-body>*{grid-column:2}
.article-body>.bleed{grid-column:1/-1;margin-block:38px}
.article-body>.wide{grid-column:1/-1;width:min(100%,940px);margin-inline:auto;margin-block:34px}
.article-body h2{grid-column:2;font-family:var(--sans);font-size:15.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:34px 0 12px}
.article-body h3{font-size:24px;margin:26px 0 10px}
.article-body p{margin:0 0 1.05em}
.article-body>figure{margin-block:34px}

.lead-figure{margin:30px 0 0}
.lead-figure img{width:100%;height:clamp(260px,42vw,560px);object-fit:cover;background:var(--mount)}
.lead-figure figcaption{display:flex;justify-content:flex-end;padding:14px var(--step) 0}

/* components */
.lead{font-size:21px;line-height:1.45;color:#3B352B}
.pullquote{margin:32px 0;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);padding:18px 0}
.pullquote p{font-size:26px;line-height:1.2;font-weight:600;letter-spacing:-0.02em;margin:0}
.blockquote{margin:28px 0;padding-left:20px;border-left:3px solid var(--secondary)}
.blockquote p{font-size:20px;font-style:italic;margin:0 0 .5em}
.blockquote cite{font-family:var(--sans);font-size:13.5px;font-style:normal;color:var(--ink-soft)}
.callout{background:var(--accent);color:var(--ground);padding:22px 24px;margin:30px 0}
.callout p{margin:0;font-size:19px;line-height:1.45}
.callout p+p{margin-top:.7em}
.note{font-family:var(--sans);font-size:16px;line-height:1.5;color:var(--ink-soft);border-left:2px solid var(--secondary);padding-left:14px;margin:24px 0}

/* worked panels — the Notes-for-Design material, sized to break the prose */
.panel{background:var(--mount);padding:26px clamp(20px,3vw,32px) 28px}
.panel-head{display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;align-items:baseline;border-bottom:1.5px solid var(--ink);padding-bottom:10px}
.panel-head h2,.panel-head h3{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0}
.panel-head .band-label{color:var(--ink-quiet)}
.panel .datatable{margin-top:6px}
.panel-part{margin-top:22px;padding-top:16px;border-top:1px solid var(--ink)}
.panel-part h3{font-family:var(--sans);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin:0 0 4px}
.panel-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.panel-list li{display:grid;grid-template-columns:26px 1fr;gap:12px;font-size:17.5px;line-height:1.45;margin:0}
.panel-list .n{font-family:var(--sans);font-size:12px;letter-spacing:.08em;color:var(--accent);padding-top:.42em}

.datatable th,.datatable td{text-align:left;vertical-align:top;padding:11px 16px 11px 0;border-bottom:1px solid var(--rule);font-size:17px;line-height:1.45}
.datatable th{font-family:var(--sans);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-quiet);font-weight:500}
.datatable td:first-child{font-weight:600;width:34%}
.datatable tr:last-child td{border-bottom:0}
.versus th,.versus td{text-align:left;vertical-align:top;padding:11px 16px 11px 0;border-bottom:1px solid var(--rule);font-size:17px}
.versus th{font-family:var(--sans);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:500}
.versus td:first-child{font-family:var(--sans);font-size:14px;color:var(--ink-soft);width:26%}

.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:14px 0 0}
.statblock{background:var(--mount);padding:16px 18px;display:flex;flex-direction:column;gap:4px}
.stat-num{font-family:var(--serif);font-size:38px;line-height:1;font-weight:600;letter-spacing:-0.03em}
.stat-label{font-family:var(--sans);font-size:13px;line-height:1.35;color:var(--ink-soft)}

.timeline{list-style:none;padding:0;margin:16px 0 0;border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:minmax(120px,26%) 1fr;gap:8px 20px;padding:12px 0;border-bottom:1px solid var(--rule);margin:0}
.t-when{font-family:var(--sans);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);line-height:1.35}
.t-what{font-size:17.5px;line-height:1.45}

.chart{margin:24px 0}
.chart svg{width:100%;height:auto;display:block}
.chart figcaption{font-family:var(--sans);font-size:13.5px;color:var(--ink-soft);margin-top:8px}

.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px}
.profile-card{background:var(--mount);padding:20px}
.profile-card .p-photo{width:76px;height:76px;object-fit:cover;margin-bottom:12px}
.profile-card h3{font-size:21px}
.profile-card .p-role{font-family:var(--sans);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:4px 0 8px}
.profile-card p{font-size:16.5px;line-height:1.5}
.profile-card .p-links{font-family:var(--sans);font-size:14px}
.profile-card .p-attr{font-family:var(--sans);font-size:12px;color:var(--ink-quiet)}
.org-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.org-card{display:grid;grid-template-columns:44px 1fr;gap:4px 14px;align-items:center;border:1px solid var(--rule);padding:14px;color:var(--ink)}
.org-card:hover{border-color:var(--accent);text-decoration:none}
.org-logo{grid-row:span 2;width:44px;height:44px;object-fit:contain}
.org-name{font-weight:600;font-size:17px;line-height:1.2;align-self:end}
.org-host{font-family:var(--sans);font-size:12.5px;color:var(--ink-quiet);align-self:start}
.entity-ref{white-space:nowrap}
.further-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0}
.related-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:28px}
.related-links li{margin:0}
.related-links .kicker{margin-bottom:7px}
.related-links a{display:block;font-size:21px;line-height:1.16;font-weight:600;letter-spacing:-0.02em;color:var(--ink)}
.related-links a:hover{color:var(--accent);text-decoration:none}

/* the governing line every entry ends on */
.governs{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);padding:16px 0;margin:36px 0 0}
.governs .band-label{color:var(--accent);padding-top:.3em}
.governs p{font-size:21px;line-height:1.28;font-weight:600;letter-spacing:-0.018em;margin:0}

/* ---------- supporters ----------
   A strip of the footer's own furniture: one horizontal run of 11 identical
   tiles. Fixed tile width (never 1fr, so a short row can never stretch one
   mark across the plate); the run escapes .wrap and scrolls sideways rather
   than reflowing into a grid. Every slot carries the same two things. */
.supporters{border-top:1.5px solid var(--ink);margin-top:56px;padding-block:22px 8px}
.supporters .rule-head{border-top:0;padding-top:0}
.sponsor-strip{margin-top:16px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.sponsor-run{display:flex;gap:20px;align-items:start;width:max-content;padding-inline:var(--step);padding-bottom:10px}
.sponsor{flex:0 0 268px;width:268px;display:flex;flex-direction:column;gap:9px;color:var(--ink)}
.sponsor:hover{text-decoration:none}
/* box: landscape 4.3:1, height fixed, mark scales down by width inside it */
.sponsor-box{display:flex;align-items:center;justify-content:center;height:66px;padding:10px 14px;background:#221F1B}
.sponsor img{max-height:46px;max-width:100%;width:auto;height:auto;object-fit:contain}
.sponsor-line{font-family:var(--sans);font-size:13.5px;line-height:1.4;color:var(--ink-soft)}
.sponsor:hover .sponsor-line{color:var(--accent)}

/* ---------- footer ---------- */
.site-foot{margin-top:34px;border-top:1px solid var(--rule);padding-block:24px 40px;display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:baseline;font-family:var(--sans);font-size:13.5px;color:var(--ink-soft)}
.site-foot .fm{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink)}
.foot-nav{display:flex;flex-wrap:wrap;gap:8px 20px}
.site-foot a{color:var(--ink-soft)}

/* ---------- narrow ---------- */
@media (max-width:900px){
  .lead-grid,.section-head .inner{grid-template-columns:1fr}
  .lead-side{border-left:0;border-top:1px solid var(--rule);padding-left:0;padding-top:16px}
  .fig-band{grid-template-columns:1fr;padding:0 0 24px;gap:18px}
  .fig-wrap,.fig-wrap--left{float:none;width:auto;max-width:none;margin:24px 0}
  .fig-band .fig-shift{margin:0}
  .fig-band .fig-cap,.fig-band .fig-credit{padding-inline:20px}
  .article-body{grid-template-columns:0 minmax(0,1fr) 0}
  .article-body>.wide{margin-block:28px}
  .governs{grid-template-columns:1fr;gap:8px}
}
@media (max-width:700px){
  .sponsor-strip{overflow:visible}
  .sponsor-run{flex-direction:column;width:auto;gap:22px;padding-bottom:0}
  .sponsor{flex:1 1 auto;width:auto}
  .sponsor-box{height:76px}
  .sponsor img{max-height:54px}
}
@media (max-width:600px){
  body{font-size:18px}
  /* tap targets: nav, footer and register links to 44px */
  .nav{gap:0 18px}
  .nav a{min-height:44px;align-items:center}
  .foot-nav{gap:0 18px}
  .foot-nav a{display:flex;align-items:center;min-height:44px}
  .register-col a{padding:12px 0}
  /* two-column tables stack rather than squeezing to a 116px column */
  .datatable,.datatable tbody,.datatable tr,.datatable td,.datatable th{display:block;width:auto}
  .datatable tr{border-bottom:1px solid var(--rule);padding:12px 0}
  .datatable tr:last-child{border-bottom:0}
  .datatable td,.datatable th{border-bottom:0;padding:0}
  .datatable td:first-child{width:auto;margin-bottom:2px}
  .versus,.versus tbody,.versus tr,.versus td{display:block;width:auto}
  .versus thead{display:none}
  .versus tr{border-bottom:1px solid var(--rule);padding:12px 0}
  .versus td{border-bottom:0;padding:2px 0}
  .versus td:first-child{width:auto;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
  .timeline li{grid-template-columns:1fr}
  .statrow{grid-template-columns:1fr 1fr}
  .card h2,.card h3{min-height:0}
  .register-head{grid-template-columns:auto 1fr;row-gap:4px}
  .rc-count{grid-column:2}
}
@media print{
  .nav,.supporters{display:none}
}
/* touch devices at any width get the 44px targets */
@media (hover:none){
  .nav a{min-height:44px;align-items:center}
  .foot-nav a{display:flex;align-items:center;min-height:44px}
  .register-col a{padding:12px 0}
  .related-links a{padding:6px 0}
}

/* 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. */
.sponsor-run .sponsor .sponsor-box.sponsor-box{display:block!important;width:100%!important}
.sponsor-run .sponsor.sponsor img{height:42px!important;display:block!important;width:100%!important}


/* sp-rail-wrap: the supporters rail must not scroll sideways — it wraps onto further rows.
   Design laid .sponsor-run out as flex with width:max-content inside a .sponsor-strip set to
   overflow-x:auto, so eleven 268px tiles ran off the side of the page. The tile width Design
   chose is kept; only the single-row constraint is lifted. */
.sponsor-strip{overflow-x:visible!important;overflow-y:visible!important}
.sponsor-run{flex-wrap:wrap!important;width:auto!important;row-gap:22px}

/* op-nav-collapse: this nav printed 164px of stacked links at 390 before any content
   (7 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 "rule-flank", 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 (var(--step)) 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 (860px here), where the button appears and the nav starts closed.
   Folded with the "height-clip" technique and marked with the "dots" icon — the mechanism
   is deliberately not identical across the fleet either. */
.nav-disclose{display:none}
@media (max-width:860px){
  .nav-disclose{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:auto;border:0;padding:10px 0;letter-spacing:.18em;margin-block:clamp(16px,4.5vw,26px) clamp(12px,3vw,18px)}
  .nav-disclose::before,.nav-disclose::after{content:"";flex:1 1 auto;height:1px;background:currentColor;opacity:.4}
  .nav-disclose-bars{width:13px;height:3px;flex:none;border-radius:99px;background:currentColor;box-shadow:5px 0 0 -0.5px currentColor,-5px 0 0 -0.5px currentColor}
  .nav{height:0;overflow:hidden;visibility:hidden;padding-block:0;margin-block:0;border-top-width:0;border-bottom-width:0}
  .nav-disclose-c:checked ~ .nav{height:auto;overflow:visible;visibility:visible;padding-block:revert;margin-block:revert;border-top-width:revert;border-bottom-width:revert}
  .masthead.wrap:has(> .nav-disclose){display:flow-root}
  .nav-disclose:not(:has(~ .nav)){display:none}
}

/* op-figband-bleed: operator — "this section didnt have to be included in paddings". The card
   is `<section class="wrap"><div class="fig-band">`, so Design's page gutter applied to the
   whole thing, photograph included — unlike the lead feature above it, whose image runs to the
   edges. Measured at 390: section padding 20px, band 20..370 inside a 390 page.
   Below 900 the band spans the viewport: the section stops gutter-ing this one card, the image
   sits flush (its -20px pull is dropped so it cannot leave the screen), and the copy column
   carries the gutter itself so the type keeps its inset. Desktop keeps Design's two-column
   composition with its margins. */
@media (max-width:900px){
  section.wrap:has(> .fig-band){padding-inline:0}
  .fig-band{padding-right:var(--step)}
  .fig-band > div:not(.fig-shift){padding-left:var(--step)}
  .fig-band .fig-shift{margin-left:0}
}

/* op-money-columns: the supporters block ran one tile per row — 11 tiles,
   1571px at 390, 19% of the whole page. Two columns bring it to
   941px (40% shorter). Checked before writing: no new overflow, smallest mark still
   139px wide, longest blurb 3 lines, tile heights 123-142px.
   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 (.sponsor-run), 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){
  .sponsor-run{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:20px!important}
    .sponsor-run > *{min-width:0!important;max-width:100%;width:auto!important;flex:0 1 auto!important}
    .sponsor-run > * *{min-width:0!important;max-width:100%}
    .sponsor-run img,.sponsor-run svg{max-width:100%;height:auto}
  .sponsor-run .sponsor-line{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;overflow:hidden!important}
}

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

/* op-article-width: the article column was capped at 640px (83 characters per line) at every desktop width. Operator: "it should utilize more space". Widened through grid track 2 of "minmax(0px, 1fr) min(640px, 100%) minmax(0px, 1fr)" (declared in .article-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. Above 1600 the column and the prose type grow together (up to 1.2x). Nothing below 1280 changes. Originals: migration/_backups/article_width/. */
@media (min-width:1280px){
  article div.article-body{grid-template-columns:minmax(0px, 1fr) min(790px, 100%) minmax(0px, 1fr)!important}
}
@media (min-width:1600px){
  article div.article-body{grid-template-columns:minmax(0px, 1fr) min(clamp(790px, 54.861vw, 948px), 100%) minmax(0px, 1fr)!important}
  article div.article-body > :is(p:not([class])){font-size:clamp(19px,1.3194vw,22.8px)!important}
}
/* op-article-width:end */
/* op-heading-levels */
h2:where(.rt-h3){margin: 0px; font-weight: 600; letter-spacing: -0.022em; text-wrap: pretty;}
.card h2:where(.rt-h3){font-size: 24px; line-height: 1.14; margin: 14px 0px 0px; min-height: 2.28em;}
.card:hover h2:where(.rt-h3){color: var(--accent);}
.article-body h2:where(.rt-h3){font-size: 24px; margin: 26px 0px 10px;}
.panel-part h2:where(.rt-h3){font-family: var(--sans); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); margin: 0px 0px 4px;}
@media (max-width: 600px){.card h2:where(.rt-h3){min-height: 0px;}}
h2.rt-h3.rt-h3{border-top-color:rgb(25, 23, 20);border-bottom-color:rgb(25, 23, 20);font-family:Faustina, Georgia, "Times New Roman", serif;letter-spacing:-0.528px;text-transform:none;text-decoration-color:rgb(25, 23, 20);color:rgb(25, 23, 20)}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > span.thumb > img,
  article > figure.article-figure.fig-plate.lead-figure > img,
  article.feature > figure.article-figure.fig-mount > img,
  div.article-body > figure.article-figure.fig-inset > img,
  div.article-body > figure.article-figure.fig-mount.wide > img,
  div.fig-band > div.fig-shift > img,
  div.flow > figure.article-figure.fig-wrap > img,
  div.flow > figure.article-figure.fig-wrap.fig-wrap--left > img,
  figure.article-figure.bleed.fig-band > div.fig-shift > img,
  main > section.lead-feature > img.hero-img){height:auto}
/* op-img-dims:end */
@media (min-width:728px) and (max-width:1439px){.sponsor-run.sponsor-run:has(> [data-partner]){display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(268px,calc(50% - 10px)),1fr))!important;column-gap:20px!important;row-gap:22px!important;justify-content:stretch!important;align-items:stretch!important}.sponsor-run.sponsor-run > [data-partner]{flex:none!important;width:auto!important;max-width:none!important;margin-left:0!important;margin-right:0!important}}
