/*
Theme Name: WBL Ledger
Theme URI: https://wokebrokelist.com/
Author: Woke Broke List
Description: Standalone classic theme for Woke Broke List. Renders existing posts, pages and company-report pages in the site design: company search, at-a-glance, top story and stack, Top Boycotts, tiles, news feed, report layout with score dial and category breakdown, and a sortable boycott list. Reads scores and verdicts from report page text; never writes content. Verdict band cutoff is the WBL_HEAVY_ABOVE constant in functions.php.
Version: 1.0.14
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wbl-ledger
Tags: news, blog, one-column, two-columns, custom-menu, featured-images, translation-ready
*/

/* ===== Design tokens (mockup v3 tokens.css, re-branded to the WBL logo) =====
   Brand red sampled from wbl-logo-horizontal.png / wbl-logo-stacked.png: #F20000 (rgb 242,0,0).
   #F20000 on white is 4.4:1, under WCAG AA for small text, so small red TEXT and small
   badges use --c-red-ink #CC0000 (5.9:1). Fills, rules, dial and large type use the exact #F20000. */
:root{
  --c-bg:#ffffff; --c-bg-soft:#f6f6f4; --c-bg-muted:#ececea; --c-border:#e2e2de; --c-rule:#000000;
  --c-ink:#111111; --c-ink-2:#363636; --c-ink-3:#6a6a6a; --c-ink-4:#9c9c9c;
  /* brand: logo red + black */
  --c-red:#F20000; --c-red-ink:#CC0000; --c-red-hover:#B80000; --c-red-tint:#fdecec;
  --c-black:#000000;
  /* accent = black (navy replaced); red is the call-to-action + verdict color */
  --c-accent:#111111; --c-accent-hover:#000000; --c-accent-tint:#f0f0ee;
  /* verdicts: heavy = brand red, moderate = black, none = grey */
  --c-heavy:#CC0000; --c-heavy-fill:#F20000; --c-heavy-tint:#fdecec;
  --c-mod:#111111;   --c-mod-tint:#ececea;
  --c-none:#7a7a7a;  --c-none-tint:#f1f1ef;
  /* tile tints (soft neutrals; one red-tinted tile) */
  --t-1:#fdecec; --t-2:#f4f1ea; --t-3:#eef0ec; --t-4:#f0eff2;
  --c-focus:#2f6fdb;
  --f-serif:"Newsreader","Source Serif 4",Georgia,serif;
  --f-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-xs:.75rem; --fs-sm:.875rem; --fs-md:1rem; --fs-lg:1.2rem; --fs-xl:1.55rem; --fs-2xl:clamp(1.75rem,3.4vw,2.4rem); --fs-3xl:clamp(2rem,4.4vw,3.1rem);
  --fw-serif:600; --lh-body:1.6; --lh-head:1.12; --ls-head:-.012em; --ls-kicker:.14em;
  --r-sm:6px; --r-md:12px; --r-lg:18px; --r-pill:999px;
  --sh-1:0 1px 2px rgba(20,20,20,.05); --sh-2:0 6px 20px rgba(20,20,20,.07); --sh-3:0 18px 44px rgba(0,0,0,.14);
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:56px; --s-8:88px;
  --w-max:1240px; --w-narrow:820px;
}

/* ===== Components (mockup v3 style.css) ===== */
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font:400 var(--fs-md)/var(--lh-body) var(--f-sans)}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}
img{display:block;max-width:100%}
.serif,h1,h2,h3{font-family:var(--f-serif);font-weight:var(--fw-serif);line-height:var(--lh-head);letter-spacing:var(--ls-head);margin:0 0 var(--s-3)}
h1{font-size:var(--fs-3xl)}h2{font-size:var(--fs-2xl)}h3{font-size:var(--fs-lg)}
.wrap{max-width:var(--w-max);margin:0 auto;padding:0 var(--s-4)}@media(min-width:900px){.wrap{padding:0 var(--s-6)}}
.muted{color:var(--c-ink-3)}.small{font-size:var(--fs-sm)}.xs{font-size:var(--fs-xs)}.ph{color:var(--c-ink-3);font-style:italic}
.kicker{font:600 var(--fs-xs)/1 var(--f-sans);letter-spacing:var(--ls-kicker);text-transform:uppercase;color:var(--c-accent)}
/* header */
.hdr{background:#fff;position:sticky;top:0;z-index:30}
.hdr-top{display:flex;align-items:center;gap:var(--s-4);height:68px;border-bottom:1px solid var(--c-border)}
.hdr-links{display:none;margin-left:auto;gap:var(--s-5);font:600 var(--fs-xs) var(--f-sans);letter-spacing:.08em;text-transform:uppercase}
.hdr-links a{color:var(--c-ink-2)}
.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--c-ink)}
.icon-btn:hover{background:var(--c-bg-soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-sm);padding:11px 18px;font:600 var(--fs-sm)/1 var(--f-sans);border:1px solid transparent;cursor:pointer;text-decoration:none!important;white-space:nowrap}
.btn-accent{background:var(--c-accent);color:#fff}.btn-accent:hover{background:var(--c-accent-hover)}
.btn-line{background:#fff;color:var(--c-accent);border-color:var(--c-accent)}
.hdr-top .btn{margin-left:auto}
@media(min-width:1000px){.hdr-links{display:flex}.hdr-top .btn{margin-left:0}}
.pills-wrap{position:relative;border-bottom:1px solid var(--c-border)}
.pills{display:flex;gap:var(--s-5);overflow-x:auto;scrollbar-width:none;padding:12px 0;font:500 var(--fs-sm) var(--f-sans)}
.pills::-webkit-scrollbar{display:none}.pills a{flex:none;color:var(--c-ink-2)}.pills a.on{color:var(--c-accent);font-weight:700}
.pills-cue{display:none}
@media(max-width:899px){.pills-wrap::after{content:"";position:absolute;right:0;top:0;bottom:0;width:56px;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 70%);pointer-events:none}
 .pills-cue{display:block;position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:2;color:var(--c-accent);font:700 1.1rem var(--f-sans);pointer-events:none}
 .pills{gap:var(--s-4);padding-right:48px}}
/* search band (hero) */
.search-band{padding:var(--s-6) 0 var(--s-5);border-bottom:1px solid var(--c-border)}
.sb-grid{display:grid;gap:var(--s-5);align-items:center}@media(min-width:1000px){.sb-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}}
.sb-grid h1{font-size:var(--fs-2xl);margin-bottom:var(--s-4)}
.search{position:relative}
.search input{width:100%;font:400 1.15rem var(--f-sans);padding:20px 22px 20px 58px;border:1.5px solid var(--c-ink);border-radius:var(--r-md);background:#fff;color:var(--c-ink)}
.search input::placeholder{color:var(--c-ink-4)}.search input:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 4px var(--c-accent-tint)}
.search>svg{position:absolute;left:22px;top:22px;color:var(--c-ink-3)}
.results{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--c-border);border-radius:var(--r-md);box-shadow:var(--sh-3);overflow:hidden;z-index:20}
.results a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:12px 16px;border-top:1px solid var(--c-border)}
.results a:first-child{border-top:0}.results a:hover{background:var(--c-bg-soft);text-decoration:none}
.quick{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:var(--s-3);font-size:var(--fs-sm);color:var(--c-ink-3)}
.quick button{all:unset;cursor:pointer;color:var(--c-accent);font-weight:600}.quick button:hover{text-decoration:underline}
.glance{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-5);background:var(--c-bg-soft)}
.glance dl{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);margin:var(--s-3) 0 0}
.glance dt{font:600 var(--fs-xs) var(--f-sans);color:var(--c-ink-3);text-transform:uppercase;letter-spacing:.06em}
.glance dd{margin:4px 0 0;font:600 var(--fs-xl)/1.1 var(--f-serif)}.glance dd small{display:block;font:400 var(--fs-xs) var(--f-sans);color:var(--c-ink-3);margin-top:4px}
/* main section */
.main{padding:var(--s-6) 0 var(--s-7)}
.main-grid{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1fr)}
@media(min-width:760px){.main-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.boy-col{grid-column:1/-1}}
@media(min-width:1150px){.main-grid{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr) minmax(0,.95fr)}.boy-col{grid-column:auto}}
.top-story .img{aspect-ratio:3/2;border-radius:var(--r-sm);overflow:hidden;background:var(--c-bg-muted);margin-bottom:var(--s-4)}
.top-story .img img{width:100%;height:100%;object-fit:cover}
.top-story h2{font-size:var(--fs-2xl);margin:var(--s-2) 0}.top-story .dek{font:400 var(--fs-lg)/1.45 var(--f-serif);color:var(--c-ink-2);margin:0 0 var(--s-3)}
.byline{font-size:var(--fs-xs);color:var(--c-ink-3);display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center}
.byline b{color:var(--c-ink);font-weight:600}
.stack{display:flex;flex-direction:column}
.si{display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--c-border)}
.si:first-child{border-top:0;padding-top:0}.si h3{font-size:1.02rem;margin:4px 0}.si h3 a:hover{color:var(--c-accent)}
.thumb{aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;background:var(--c-bg-muted)}.thumb img{width:100%;height:100%;object-fit:cover}
.thumb.ph-img{display:grid;place-items:center;text-align:center;padding:6px;font:600 .62rem/1.3 var(--f-sans);color:var(--c-ink-3);background:repeating-linear-gradient(135deg,var(--c-bg-soft) 0 8px,var(--c-bg-muted) 8px 16px)}
.cat{font:600 .68rem/1 var(--f-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-3)}
/* top boycotts card */
.boy{border:1px solid var(--c-rule);border-radius:var(--r-md);padding:var(--s-5)}
.boy h2{font-size:var(--fs-xl);margin-bottom:var(--s-1)}
.rrow{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:11px 0;border-top:1px solid var(--c-border)}
.rrow .nm{font-weight:600}.rrow:hover .nm{color:var(--c-accent)}.rrow .rt{display:flex;gap:var(--s-2);align-items:center}
details.coming{border-top:1px solid var(--c-border);padding-top:var(--s-2)}
details.coming summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:8px 0;font:600 var(--fs-sm) var(--f-sans);color:var(--c-ink-2)}
details.coming summary::-webkit-details-marker{display:none}details.coming summary::after{content:"+";font-size:1.2rem;color:var(--c-accent)}
details.coming[open] summary::after{content:"–"}
details.coming ul{list-style:none;margin:0;padding:0;columns:2;column-gap:var(--s-4);font-size:var(--fs-sm);color:var(--c-ink-3)}
details.coming li{padding:4px 0;break-inside:avoid}details.coming li a{color:var(--c-accent)}
/* badges, scores, legend */
.badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);padding:3px 9px;font:600 .72rem/1.3 var(--f-sans);white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.v-heavy{background:var(--c-heavy-tint);color:var(--c-heavy)}.v-mod{background:var(--c-mod-tint);color:var(--c-mod)}.v-none{background:var(--c-none-tint);color:var(--c-none)}
.score{font:600 var(--fs-md) var(--f-serif);white-space:nowrap}.score small{font:400 var(--fs-xs) var(--f-sans);color:var(--c-ink-3)}
.legend{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;font-size:var(--fs-xs);color:var(--c-ink-3)}
.legend a{color:var(--c-accent);font-weight:600}
/* tiles */
.tiles{display:grid;gap:var(--s-4);grid-template-columns:minmax(0,1fr)}@media(min-width:640px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1050px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tile{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-5);border-radius:var(--r-md);min-height:190px;border-left:3px solid var(--c-accent);text-decoration:none!important;transition:transform .2s,box-shadow .2s}
.tile:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.tile h3{font-size:var(--fs-xl);margin:0}.tile p{margin:0;font-size:var(--fs-sm);color:var(--c-ink-2)}
.tile .go{margin-top:auto;font:600 var(--fs-sm) var(--f-sans);color:var(--c-accent)}
.t1{background:var(--t-1)}.t2{background:var(--t-2)}.t3{background:var(--t-3)}.t4{background:var(--t-4)}
/* sections */
.sec{padding:var(--s-7) 0}.sec-soft{background:var(--c-bg-soft)}
.sec-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-4);flex-wrap:wrap;border-top:2px solid var(--c-rule);padding-top:var(--s-3);margin-bottom:var(--s-5)}
.sec-head h2{font-size:var(--fs-xl);margin:0}.sec-head a{font:600 var(--fs-sm) var(--f-sans);color:var(--c-accent)}
/* feed */
.feed-grid{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1fr)}@media(min-width:900px){.feed-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
.lead .img{aspect-ratio:16/10;border-radius:var(--r-sm);overflow:hidden;margin-bottom:var(--s-4)}.lead .img img{width:100%;height:100%;object-fit:cover}
.lead h3{font-size:var(--fs-2xl)}.lead p{font:400 var(--fs-lg)/1.5 var(--f-serif);color:var(--c-ink-2);margin:0 0 var(--s-3)}
.hl{display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:var(--s-3);padding:var(--s-3) 0;border-top:1px solid var(--c-border);align-items:start}
.hl:first-child{border-top:0;padding-top:0}.hl h4{font:600 1rem/1.3 var(--f-serif);margin:4px 0}.hl h4 a:hover{color:var(--c-accent)}.hl .thumb{aspect-ratio:1}
.center{text-align:center;margin-top:var(--s-5)}
/* newsletter */
.nl{display:grid;gap:var(--s-5);align-items:center;border:1px solid var(--c-rule);border-radius:var(--r-md);padding:var(--s-6)}@media(min-width:860px){.nl{grid-template-columns:1.2fr 1fr}}
.nl h2{margin-bottom:var(--s-2)}.nl p{margin:0;color:var(--c-ink-2)}
.nl form{display:flex;gap:var(--s-2);flex-wrap:wrap}.nl input{flex:1;min-width:200px;padding:13px 14px;border-radius:var(--r-sm);border:1px solid var(--c-border);background:var(--c-bg-soft);font:400 var(--fs-md) var(--f-sans)}
/* method */
.method{display:grid;gap:var(--s-5)}@media(min-width:760px){.method{grid-template-columns:repeat(3,1fr)}}.method h3{font-size:var(--fs-lg)}.method p{margin:0;font-size:var(--fs-sm);color:var(--c-ink-2)}
/* report page */
.crumbs{font-size:var(--fs-sm);color:var(--c-ink-3);margin:var(--s-5) 0 var(--s-4)}.crumbs a{color:var(--c-accent)}
.rep-hero{display:grid;gap:var(--s-5);padding-bottom:var(--s-6);border-bottom:1px solid var(--c-border)}@media(min-width:900px){.rep-hero{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:center}}
.rep-hero .img{aspect-ratio:3/2;border-radius:var(--r-sm);overflow:hidden}.rep-hero .img img{width:100%;height:100%;object-fit:cover}
.scorebox{display:flex;gap:var(--s-5);align-items:center;margin:var(--s-4) 0}
.oneline{font:400 var(--fs-lg)/1.45 var(--f-serif);color:var(--c-ink-2);margin:0 0 var(--s-3)}
.reviewed{font-size:var(--fs-sm)}.reviewed .orig{display:block;font-size:var(--fs-xs);color:var(--c-ink-3)}
.rep-layout{display:grid;gap:var(--s-6);grid-template-columns:minmax(0,1fr);padding:var(--s-6) 0}@media(min-width:1000px){.rep-layout{grid-template-columns:minmax(0,1fr) 330px;align-items:start}}
.aside{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-5);position:sticky;top:130px}@media(max-width:999px){.aside{position:static;order:-1}}
.cb{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px var(--s-3);padding:10px 0;border-top:1px solid var(--c-border);font-size:var(--fs-sm)}
.cb:first-of-type{border-top:0}.cb .bar{grid-column:1/-1;height:6px;border-radius:var(--r-pill);background:var(--c-bg-muted);overflow:hidden}.cb .bar i{display:block;height:100%;background:var(--c-accent);border-radius:inherit}
.flags{background:var(--c-heavy-tint);border-radius:var(--r-md);padding:var(--s-5);margin-bottom:var(--s-6)}.flags ol{margin:0;padding-left:1.2em}.flags li{margin:8px 0;font:400 1.05rem/1.5 var(--f-serif)}
.ev{padding:var(--s-5) 0;border-top:1px solid var(--c-border)}.ev h3{display:flex;justify-content:space-between;gap:var(--s-3);font-size:var(--fs-lg)}
.ev p{margin:0;color:var(--c-ink-2);font:400 1.05rem/1.65 var(--f-serif)}.ev sup a{color:var(--c-accent);font:700 .7rem var(--f-sans)}
.sources ol{padding-left:1.4em;font-size:var(--fs-sm)}.sources li{margin:8px 0}.sources a{color:var(--c-accent)}
.gloss{font-size:var(--fs-xs);color:var(--c-ink-3);margin-top:var(--s-3)}
/* table */
.toolbar{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;margin-bottom:var(--s-4)}
.toolbar input{flex:1;min-width:220px;padding:12px 14px;border:1.5px solid var(--c-ink);border-radius:var(--r-sm);font:400 var(--fs-md) var(--f-sans)}
.chip{border:1px solid var(--c-border);background:#fff;border-radius:var(--r-pill);padding:7px 13px;font:500 var(--fs-sm) var(--f-sans);color:var(--c-ink-2);cursor:pointer}
.chip.on,.chip:hover{border-color:var(--c-accent);color:var(--c-accent);background:var(--c-accent-tint)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}
table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
th{font:600 var(--fs-xs) var(--f-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-3);text-align:left;padding:12px 14px;border-bottom:2px solid var(--c-rule);white-space:nowrap}
th button{all:unset;cursor:pointer}th button::after{content:" ↕";opacity:.5}
td{padding:14px;border-bottom:1px solid var(--c-border);vertical-align:middle}
tr.unscored td{color:var(--c-ink-4)}tr.unscored td b{color:var(--c-ink-3);font-weight:500}
.act{display:inline-block;font:600 var(--fs-xs) var(--f-sans);color:var(--c-accent);border:1px solid var(--c-accent);border-radius:var(--r-sm);padding:6px 10px;white-space:nowrap}
.act:hover{background:var(--c-accent);color:#fff;text-decoration:none}
.sort-sm{display:none;gap:var(--s-2);align-items:center;font-size:var(--fs-sm);color:var(--c-ink-3);margin-bottom:var(--s-3)}
@media(max-width:640px){.hide-sm{display:none}#t thead{display:none}#t,#t tbody{display:block}
 #t tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:14px 0;border-bottom:1px solid var(--c-border)}#t tr[hidden]{display:none}#t td{padding:0;border:0}
 #t td:nth-child(3){grid-column:2;grid-row:1;text-align:right}#t td:nth-child(5){grid-column:2;grid-row:2;text-align:right}.sort-sm{display:flex}}
.cards3{display:grid;gap:var(--s-5);grid-template-columns:minmax(0,1fr)}@media(min-width:720px){.cards3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1080px){.cards3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.rc .thumb{aspect-ratio:16/9;margin-bottom:var(--s-3)}.rc h3{font-size:1.15rem;margin:6px 0}
/* footer */
.ftr{border-top:2px solid var(--c-rule);margin-top:var(--s-7)}
.ftr .cols{display:grid;gap:var(--s-5);padding:var(--s-6) 0 var(--s-5);grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.ftr h4{font:600 var(--fs-xs) var(--f-sans);letter-spacing:.1em;text-transform:uppercase;margin:0 0 var(--s-3);color:var(--c-ink-3)}.ftr a{display:block;font-size:var(--fs-sm);margin:6px 0;color:var(--c-ink-2)}
.legal{border-top:1px solid var(--c-border);padding:var(--s-4) 0;font-size:var(--fs-xs);color:var(--c-ink-3)}
.boy .rrow .rt{flex-direction:column;align-items:flex-end;gap:3px}
@media(max-width:640px){.hdr-top{gap:var(--s-2);height:60px}.hdr-top .btn{padding:9px 12px}}
@media(max-width:759px){.top-story{order:1}.boy-col{order:2}.stack{order:3}}

/* ===== WBL Ledger additions: brand, WordPress content, templates ===== */
body{border-top:5px solid var(--c-red)}
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}
.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;background:#fff;padding:10px 14px;z-index:100;left:8px;top:8px}
.kicker{color:var(--c-red-ink)}
.btn-accent{background:var(--c-red-ink);color:#fff;font-weight:700}.btn-accent:hover{background:var(--c-red-hover)}
.btn-accent:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn-line{background:#fff;color:var(--c-ink);border-color:var(--c-ink)}.btn-line:hover{background:var(--c-ink);color:#fff}
.btn.full{width:100%;margin-top:14px}
a:hover{text-decoration-color:var(--c-red)}
.pills a.on{color:var(--c-ink);font-weight:700;box-shadow:inset 0 -3px 0 var(--c-red)}
.pills a{padding-bottom:4px}
.pills-cue{color:var(--c-red)}
.hdr{border-bottom:1px solid var(--c-border)}
.hdr-top{border-bottom:0}
.logo{display:block;flex:none;line-height:0}
.logo img{height:44px;width:auto}
.logo-footer img{height:40px}
@media(max-width:640px){.logo-header img{height:32px}.hdr-top{gap:var(--s-2);height:60px}.hdr-top .btn{padding:9px 12px}}
@media(max-width:380px){.logo-header img{height:28px}}
/* badges: heavy = red fill, moderate = black outline, none = grey */
.badge{font-weight:700}
.v-heavy{background:var(--c-heavy);color:#fff}.v-heavy::before{background:#fff}
.v-mod{background:#fff;color:var(--c-mod);box-shadow:inset 0 0 0 1.5px var(--c-mod)}
.v-none{background:var(--c-none-tint);color:var(--c-none)}
.legend a{color:var(--c-red-ink)}
.mini{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:4px 0 10px}
.si .mini{margin:4px 0}
.dd-sm{font-size:1.1rem!important}
.ph{color:#7a4a00;background:#fff7e0;border:1px dashed #d9a400;border-radius:4px;padding:0 4px;font-style:normal;font-size:.92em}
/* dial */
.dial{flex:none;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--dial-c,var(--c-ink)) calc(var(--v)*10%),var(--c-bg-muted) 0)}
.dial-heavy{--dial-c:var(--c-red)}.dial-mod{--dial-c:var(--c-black)}
.dial div{width:94px;height:94px;border-radius:50%;background:#fff;display:grid;place-items:center;text-align:center;line-height:1.1}
.dial b{font:600 2rem/1 var(--f-serif)}.dial span{font-size:var(--fs-xs);color:var(--c-ink-3)}
.cb .bar i{background:var(--c-red)}
.tile{border-left-color:var(--c-black)}.tile.t1{border-left-color:var(--c-red)}.tile .go{color:var(--c-red-ink)}
.sec-head{border-top-color:var(--c-black)}.sec-head a{color:var(--c-red-ink)}
.quick button{color:var(--c-red-ink)}
.search input:focus{border-color:var(--c-ink);box-shadow:0 0 0 4px var(--c-red-tint)}
.chip.on,.chip:hover{border-color:var(--c-ink);color:#fff;background:var(--c-ink)}
.act{color:var(--c-ink);border-color:var(--c-ink)}.act:hover{background:var(--c-ink);color:#fff}
.crumbs a{color:var(--c-red-ink)}
.flags{background:var(--c-red-tint)}
.boy{border:2px solid var(--c-black)}
.boy h2{position:relative;padding-left:14px}.boy h2::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:5px;background:var(--c-red)}
.results .rt{display:flex;gap:8px;align-items:center}.results a.all{font-size:var(--fs-sm);color:var(--c-ink-3)}
.sb-grid h1{margin-top:10px}
.noimg{display:block;width:100%;height:100%;background:linear-gradient(135deg,var(--c-bg-soft),var(--c-bg-muted))}
.img img,.thumb img{width:100%;height:100%;object-fit:cover}
.center-l{margin-top:var(--s-5)}
.mb8{margin-bottom:8px}.mt14{margin-top:14px}
.narrow{max-width:calc(var(--w-narrow) + 2*var(--s-6))}
.editor-note{background:#fff7e0;border:1px solid #d9a400;border-radius:var(--r-sm);padding:10px 14px;font-size:var(--fs-sm)}
.sr-h{position:absolute;left:-9999px}
/* report hero + body */
.rep-hero h1{margin-top:10px;font-size:var(--fs-2xl)}
.rep-hero .img{background:var(--c-bg-muted)}
.oneline strong{font-family:var(--f-sans);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink)}
.aside h2{font-size:var(--fs-lg)}.aside .cmp{margin-top:var(--s-5)}.aside .cmp h3{font-size:var(--fs-md);font-family:var(--f-sans);text-transform:uppercase;letter-spacing:.08em;color:var(--c-ink-3)}
/* WordPress content (posts, pages, report bodies): printed verbatim, styled here */
.entry{font:400 1.12rem/1.7 var(--f-serif);color:var(--c-ink-2);overflow-wrap:break-word}
.entry>*{margin:0 0 1.1em}
.entry h2,.entry h3,.entry h4{color:var(--c-ink);margin:1.6em 0 .5em}.entry h2{font-size:var(--fs-xl)}.entry h3{font-size:var(--fs-lg)}
.entry a{color:var(--c-red-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.entry img{height:auto;border-radius:var(--r-sm)}
.entry ul,.entry ol{padding-left:1.3em}.entry li{margin:.5em 0}
.entry blockquote{border-left:4px solid var(--c-red);margin-left:0;padding:.2em 0 .2em 1.1em;font-style:italic;color:var(--c-ink)}
.entry figure{margin:1.4em 0}.entry figcaption{font:400 var(--fs-xs) var(--f-sans);color:var(--c-ink-3);margin-top:6px}
.entry table{font-family:var(--f-sans)}
.entry .wp-block-latest-posts{list-style:none;padding:0}.entry .wp-block-latest-posts li{border-top:1px solid var(--c-border);padding:10px 0;margin:0}
.entry .wp-block-latest-posts.is-grid{display:block}
.report-body>p:first-of-type{font-size:1.18rem;color:var(--c-ink);border-left:4px solid var(--c-red);padding-left:16px}
.report-body ol.wp-block-list:first-of-type{list-style:none;padding:0}
.report-body ol.wp-block-list:first-of-type>li{border-top:1px solid var(--c-border);padding:var(--s-4) 0;margin:0}
.report-body ol.wp-block-list:first-of-type>li>strong:first-child{display:block;font:600 var(--fs-lg)/1.3 var(--f-serif);color:var(--c-ink);margin-bottom:6px}
.report-body p>strong:first-child{font-family:var(--f-sans);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--c-ink)}
.art-head{margin:var(--s-2) 0 var(--s-5)}.art-head h1{margin:10px 0 var(--s-3);font-size:var(--fs-3xl)}
.hero-img{aspect-ratio:auto;border-radius:var(--r-sm);overflow:hidden;margin:0 0 var(--s-5)}.hero-img img{height:auto}
.tags{margin:var(--s-5) 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tags a{font-size:var(--fs-xs);border:1px solid var(--c-border);border-radius:var(--r-pill);padding:4px 10px;color:var(--c-ink-2)}
.related{margin:var(--s-6) 0}
.post-nav .nav-links{display:grid;gap:var(--s-3);grid-template-columns:1fr;border-top:1px solid var(--c-border);padding-top:var(--s-4);font:600 var(--fs-sm)/1.4 var(--f-sans)}@media(min-width:700px){.post-nav .nav-links{grid-template-columns:1fr 1fr}.post-nav .nav-next{text-align:right}}
.comments{margin:var(--s-6) 0;border-top:2px solid var(--c-black);padding-top:var(--s-4)}.comment-list{padding-left:1em}
.comments input[type=text],.comments input[type=email],.comments input[type=url],.comments textarea{width:100%;padding:10px;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit}
/* archives, search, news */
.archive-wrap{padding:var(--s-6) var(--s-4) var(--s-7)}
.arch-head{border-bottom:2px solid var(--c-black);padding-bottom:var(--s-4);margin-bottom:var(--s-5)}.arch-head h1{margin-top:10px}
.arow{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s-4);padding:var(--s-5) 0;border-top:1px solid var(--c-border)}
.arow:first-child{border-top:0;padding-top:0}
@media(min-width:700px){.arow{grid-template-columns:240px minmax(0,1fr)}}
.arow .thumb.wide{aspect-ratio:3/2}.arow h2{font-size:var(--fs-xl);margin:6px 0}.arow .dek{margin:0 0 8px;color:var(--c-ink-2);font:400 1.02rem/1.5 var(--f-serif)}
.nav-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--s-5);font:600 var(--fs-sm) var(--f-sans)}
.page-numbers{padding:8px 12px;border:1px solid var(--c-border);border-radius:var(--r-sm)}.page-numbers.current{background:var(--c-ink);color:#fff;border-color:var(--c-ink)}
.sform{margin:var(--s-3) 0}
.list-head{padding-bottom:var(--s-5);border-bottom:1px solid var(--c-border);margin-bottom:var(--s-5)}.list-head h1{margin-top:10px}.list-head .oneline{max-width:60ch}
.ftr-brand p{margin-top:12px}
.mission .entry{font-size:1.05rem}
.nl-form #nl-note{flex-basis:100%}
/* align classes from the block editor */
.alignwide{margin-left:calc(-1 * var(--s-6));margin-right:calc(-1 * var(--s-6))}.alignfull{width:100vw;margin-left:calc(50% - 50vw)}
.aligncenter{margin-left:auto;margin-right:auto}.alignleft{float:left;margin:0 1em 1em 0}.alignright{float:right;margin:0 0 1em 1em}
.wp-caption-text,.gallery-caption{font-size:var(--fs-xs);color:var(--c-ink-3)}
.sticky,.bypostauthor{}
@media(max-width:759px){.top-story{order:1}.boy-col{order:2}.stack{order:3}.alignwide{margin-left:0;margin-right:0}}
.ftr .cols{padding-left:var(--s-4);padding-right:var(--s-4)}@media(min-width:900px){.ftr .cols{padding-left:var(--s-6);padding-right:var(--s-6)}}
.hero-img img{width:100%;max-height:560px;object-fit:cover}

/* ===== Design refinements ===== */
/* 1. #CC0000 fill on heavy badges and the Get Alerts / primary button */
.v-heavy{background:#CC0000;color:#fff}
.btn-accent{background:#CC0000;color:#fff}.btn-accent:hover{background:#A80000}
/* 2. Less red: links and eyebrows in black/grey. Red kept for: logo, top strip, heavy badges, primary button, dial ring. */
.kicker,.cat{color:var(--c-ink-3)}
.legend a,.crumbs a,.sec-head a,.tile .go,.quick button,.aside a,.boy a.rrow .nm{color:var(--c-ink)}
.legend a,.crumbs a,.sec-head a,.tile .go{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--c-ink-4)}
.entry a{color:var(--c-ink);text-decoration-color:var(--c-ink-4)}.entry a:hover{text-decoration-color:var(--c-ink)}
a:hover{text-decoration-color:currentColor}
.pills a.on{box-shadow:inset 0 -3px 0 var(--c-ink)}.pills-cue{color:var(--c-ink-3)}
.tile.t1{background:var(--t-2);border-left-color:var(--c-black)}
.cb .bar i{background:var(--c-ink)}
.flags{background:var(--c-bg-soft)}
.entry blockquote{border-left-color:var(--c-ink)}
.report-body>p:first-of-type{border-left-color:var(--c-ink)}
/* 3. Mobile header: search away from the logo, clear space */
@media(max-width:999px){.hdr-top .icon-btn{margin-left:auto}.hdr-top .btn{margin-left:0}}
@media(max-width:640px){.hdr-top{gap:14px;height:64px}.logo-header{margin-right:20px}.logo-header img{height:28px}.hdr-top .icon-btn{width:38px;height:38px;border:1px solid var(--c-border)}}
@media(max-width:360px){.logo-header img{height:24px}.logo-header{margin-right:8px}}
/* 4. "Our mission" block: styled card; every word of the page body kept */
.mission .entry{background:var(--c-bg-soft);border:1px solid var(--c-border);border-top:4px solid var(--c-black);border-radius:var(--r-md);padding:var(--s-6);font-size:1.08rem}
.mission .entry>p:first-child{font:500 1.3rem/1.5 var(--f-serif);color:var(--c-ink)}
.mission .entry p:has(br){columns:2;column-gap:var(--s-6);background:#fff;border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--s-4) var(--s-5);font:600 1rem/1.9 var(--f-sans);color:var(--c-ink)}
@media(min-width:760px){.mission .entry p:has(br){columns:3}}
.mission .entry .wp-block-latest-posts{background:#fff;border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--s-2) var(--s-5)}
.mission .entry .wp-block-latest-posts li:first-child{border-top:0}
.mission .entry .wp-block-latest-posts a{font:600 1rem/1.4 var(--f-serif);text-decoration:none}
@media(max-width:640px){.mission .entry{padding:var(--s-5) var(--s-4)}}
/* 5. v3 card styling on report bodies (CSS only; markup and text untouched) */
.report-body>p:first-of-type{background:var(--c-bg-soft);border:1px solid var(--c-border);border-left:4px solid var(--c-ink);border-radius:var(--r-md);padding:var(--s-5)}
.report-body ol.wp-block-list:first-of-type{display:grid;gap:var(--s-4)}
.report-body ol.wp-block-list:first-of-type>li{border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-5);background:#fff;box-shadow:var(--sh-1)}
.report-body ol.wp-block-list:first-of-type>li>strong:first-child{border-bottom:1px solid var(--c-border);padding-bottom:8px;margin-bottom:10px}
.report-body ol.wp-block-list:not(:first-of-type){background:var(--c-bg-soft);border:1px solid var(--c-border);border-radius:var(--r-md);padding:var(--s-4) var(--s-5) var(--s-4) calc(var(--s-5) + 1.2em)}
.report-body>p:last-of-type{border-top:2px solid var(--c-black);padding-top:var(--s-4)}
.mission .entry p:has(br){columns:1}@media(min-width:760px){.mission .entry p:has(br){columns:2}}@media(min-width:1000px){.mission .entry p:has(br){columns:3}}
/* 1.0.1: stack At a Glance stats one per row on small phones */
@media(max-width:479px){.glance dl{grid-template-columns:minmax(0,1fr)}}

/* ===== v1.0.2 live-preview fixes ===== */
/* Mobile overflow: the "Moderately Compromised" badge (nowrap, ~178px) sat in the
   156px text column of the 120px-thumb side-stack item and pushed the page 6px wide at 320px
   (the Customizer "Mobile" preview width). Let grid/flex children shrink, narrow the thumb on
   small phones, and let the badge wrap as a last resort. */
.si>div,.hl>div,.arow>div,.mini{min-width:0}
.mini .badge{max-width:100%;white-space:normal}
@media(max-width:400px){.si{grid-template-columns:88px minmax(0,1fr)}}
/* Third-party embeds/ads (live site loads AdSense auto ads) never widen the page. */
ins.adsbygoogle,.entry iframe,.entry embed,.entry video,.entry table{max-width:100%}
.by{font-weight:600}
/* Report rows (post sidebar, 404): score + nowrap badge side by side overflowed by 5px at 320px; stack them on small phones like the home Top Boycotts box. */
.rrow .nm{min-width:0}
@media(max-width:400px){.rrow .rt{flex-direction:column;align-items:flex-end;gap:3px}}
/* ===== v1.0.2 manual ad slots (monetize-1 §5.3). Reserved heights stop layout shift (CLS). ===== */
.wbl-ad{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;min-height:300px;margin:var(--s-6) auto;overflow:hidden;contain:layout}
@media(min-width:760px){.wbl-ad{min-height:280px}}
.wbl-ad ins.adsbygoogle{width:100%;max-width:100%}
.wbl-ad-label{display:block;font:500 .66rem/1.6 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3);margin-bottom:4px}
.wbl-ad-ph{display:grid;place-items:center;flex:1;width:100%;min-height:240px;border:1px dashed #d9a400;border-radius:4px;background:#fff7e0;color:#7a4a00;font:600 .78rem/1.3 var(--f-sans);text-align:center;padding:8px}
#feed .wbl-ad{margin:var(--s-4) 0}
.rep-side{display:flex;flex-direction:column;gap:var(--s-6);min-width:0}
.rep-side .aside{position:static}
.wbl-ad--sidebar{width:300px;max-width:100%;min-height:600px;margin:0 auto}
@media(min-width:1000px){.wbl-ad--sidebar{position:sticky;top:130px}}
@media(max-width:999px){.wbl-ad--sidebar{display:none}.rep-side{order:-1}}

/* Related coverage feed under reports + back-link on posts */
.wbl-coverage{margin:0 0 8px;padding:20px 0 0;border-top:3px solid var(--c-rule)}
.wbl-coverage h2{margin:0 0 12px;font:var(--fw-serif) var(--fs-xl)/var(--lh-head) var(--f-serif)}
.wbl-coverage-list,.entry .wbl-coverage-list{list-style:none;margin:0;padding:0}
.entry .wbl-coverage-list li{margin:0}
.wbl-coverage-list li{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--c-border)}
.wbl-coverage-list time{flex:0 0 auto;min-width:13em;white-space:nowrap;font:400 .82rem/1.4 var(--f-sans);color:var(--c-ink-3)}
@media(max-width:640px){.wbl-coverage-list time{min-width:0;flex:0 0 100%;white-space:nowrap}}
.wbl-coverage-list a{flex:1 1 18em;font-family:var(--f-sans);font-weight:600;color:inherit;text-decoration:underline;text-underline-offset:2px}
.wbl-coverage-list a:hover{color:var(--c-red-ink);text-decoration-thickness:2px}
.wbl-coverage-more{margin:10px 0 0}
/* Pending v2 reports + compare link */
.aside .cmp h3 a{color:var(--c-ink-2);text-decoration:underline;text-underline-offset:3px}
.aside .cmp h3 a:hover{color:var(--c-ink)}
.cb.cb-pending{padding:6px 0}
.wbl-backlink{margin:24px 0;padding:12px 16px;border-left:4px solid var(--c-red-ink);background:var(--c-bg-soft);font-size:.95rem}
.wbl-backlink p{margin:0}
.wbl-backlink a{font-weight:600;text-decoration:underline;text-underline-offset:2px}

/* v2 (A-F) report grade box */
.v2-grade{display:flex;align-items:center;gap:14px;margin:14px 0 6px;padding:12px 16px;border:2px solid var(--c-rule);border-radius:var(--r-md);background:var(--c-bg)}
.v2-grade>b{display:inline-grid;place-items:center;min-width:56px;height:56px;border-radius:var(--r-sm);background:var(--c-ink);color:#fff;font:700 2rem/1 var(--f-sans)}
.v2-grade.v2-f>b{background:var(--c-red-ink)}
.v2-grade.v2-d>b{background:#fff;color:var(--c-red-ink);border:2px solid var(--c-red-ink);box-sizing:border-box} /* 1.0.10: D outline, matches .gp-D */
.v2-grade.v2-pending{flex-direction:column;align-items:flex-start;gap:2px;border-style:dashed;border-color:var(--c-ink-4)}
.v2-grade.v2-pending>b{all:unset;font:700 var(--fs-lg)/1.2 var(--f-sans);color:var(--c-ink)}
.entry .wbl-v2-pending{padding:10px 14px;background:var(--c-bg-soft);border-left:4px solid var(--c-ink-4)}
.wbl-backlink ul{margin:6px 0 0;padding-left:1.2em}
/* Grade tokens: A-F grades tied to the report verdict palette (--c-heavy / --c-mod / --c-none family). */
:root{--g-A:#4f4f4f;--g-B:#2b2b2b;--g-C:var(--c-mod);--g-D:#a30000;--g-F:var(--c-heavy)}
.g-A{background:var(--g-A)}.g-B{background:var(--g-B)}.g-C{background:var(--g-C)}.g-D{background:var(--g-D)}.g-F{background:var(--g-F)}
/* 1.0.6: pending reports below 1000px: note + feed first, Category breakdown after. Desktop unchanged. */
@media(max-width:999px){.rep-layout.is-pending .rep-side{order:0}}

/* 1.0.7: grade pills on the home Top Boycotts, /boycott-list/, report cards, feeds and search.
   Same palette as the grade tokens: F = solid red, D = red outline, A-C = ink outline; held = dashed "Grade pending". */
.gp{display:inline-flex;align-items:center;border-radius:var(--r-pill);padding:3px 9px;font:700 .72rem/1.3 var(--f-sans);white-space:nowrap;border:1.5px solid var(--c-ink);color:var(--c-ink);background:#fff}
.gp-F{background:var(--c-red-ink);border-color:var(--c-red-ink);color:#fff}
.gp-D{color:var(--c-red-ink);border-color:var(--c-red-ink)}
.gp-pending{border-style:dashed;border-color:var(--c-ink-4);color:var(--c-ink-3);font-weight:600}
.rrow-held .nm{font-weight:500;color:var(--c-ink-2)}
.legend .gp{margin:0 2px}

/* 1.0.7c: designed no-photo tile. WBL black with the red rule; name + grade; no photos, no faces. */
.nophoto{display:flex;flex-direction:column;justify-content:flex-end;gap:6px;width:100%;height:100%;padding:12px 14px;box-sizing:border-box;background:var(--c-ink);color:#fff;border-top:6px solid var(--c-red)}
.np-k{font:700 .62rem/1 var(--f-sans);letter-spacing:.08em;text-transform:uppercase;color:#ff8a8a}
.np-n{font:700 1.2rem/1.15 var(--f-serif);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.np-g{align-self:flex-start;font:700 .72rem/1.3 var(--f-sans);padding:3px 9px;border-radius:var(--r-pill);background:var(--c-red-ink);color:#fff;border:1.5px solid var(--c-red-ink)}
.np-g-D{background:transparent;border-color:#fff}
.np-gs{display:none}
.hl .nophoto,.si .nophoto{justify-content:space-between;padding:6px 7px;gap:3px;border-top-width:4px}.hl .np-k,.si .np-k{display:none}
.hl .np-n,.si .np-n{font-size:.7rem;line-height:1.12;-webkit-line-clamp:4;overflow-wrap:anywhere;hyphens:auto;min-height:0;flex:0 1 auto}
.hl .np-g,.si .np-g{flex:none;font-size:.6rem;line-height:1.2;padding:1px 6px;white-space:nowrap}.hl .np-gl,.si .np-gl{display:none}.hl .np-gs,.si .np-gs{display:inline}
.rep-hero .img .nophoto{padding:24px 28px;gap:10px}.rep-hero .np-n{font-size:2.2rem}.rep-hero .np-k{font-size:.75rem}.rep-hero .np-g{font-size:.9rem}
@media(max-width:899px){.rep-hero .img .nophoto{padding:16px 18px}.rep-hero .np-n{font-size:1.6rem}}


/* 1.0.7c: 24px tap targets for nav pills, quick chips and footer links on phones */
@media (max-width: 600px) {
	.pills a, .quick button, .ftr .cols a { min-height: 24px; display: inline-flex; align-items: center; }
	.hl h3 a, .si h3 a, .hl h4 a, .si h4 a, .sec-head a, .crumbs a, .legend a, .rc h3 a, .cmp a { padding-top: 4px; padding-bottom: 4px; }
	/* Footer link lists stack one per line, 44px tap targets; copyright line gets the footer's 16px side padding */
	.ftr .cols a:not(.logo) { display: flex; align-items: center; min-height: 44px; margin: 0; }
	.ftr .legal { padding-left: var(--s-4); padding-right: var(--s-4); }
}
