/*
Theme Name: BreatheSafeAir
Theme URI: https://breathesafeair.com
Author: Ethan Brooke
Description: A lightweight editorial theme for BreatheSafeAir. Paper aesthetic, monospace labels, hairline rules, sharp corners, and a single accent token. No page builder. Built for independent air quality reviews.
Version: 1.5.5
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: breathesafeair
*/

/* ====================================================================
   TOKENS — change --accent (one line) to rebrand the whole site.
   ==================================================================== */
:root{
  --paper:#f7f6f3; --paper-2:#f1efe9;
  --ink:#1a1a1a; --muted:#6b6b6b; --faint:#9a9890;
  --rule:#e1ded7;
  --accent:#15605a; --accent-ink:#0f4642;
  --font-sans:"Archivo",system-ui,-apple-system,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --maxw:1240px; --measure:680px; --gutter:clamp(1.25rem,4vw,3rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.6;
  letter-spacing:-.003em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.6rem 1rem;border:1px solid var(--ink);z-index:99}

.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:500;color:var(--muted)}
.label--ink{color:var(--ink);font-weight:600}
.topbar{height:4px;background:var(--accent)}
.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-mono);text-transform:uppercase;
  letter-spacing:.14em;font-size:.72rem;font-weight:500;color:var(--muted)}
.eyebrow::before{content:"";width:1.7rem;height:2px;background:var(--accent);display:inline-block}

.thumb{display:block;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;line-height:0}
.thumb img{display:block;width:100%;height:100%;object-fit:cover}

/* ===== NAV ===== */
.topnav{border-bottom:1px solid var(--rule);position:sticky;top:0;z-index:50;background:var(--paper)}
.topnav__inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding-block:1.15rem}
.brand{font-family:var(--font-mono);font-weight:600;letter-spacing:.14em;font-size:.95rem}
.brand b{color:var(--accent);font-weight:600}
.nav{display:flex;align-items:center;gap:1.7rem}
.nav__links{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}
.nav__links a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);transition:color .18s}
.nav__links a:hover,.nav__links .current-menu-item a{color:var(--ink)}
.nav__cta{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  border:1px solid var(--accent);color:var(--accent);padding:.55rem .9rem;transition:.18s;white-space:nowrap}
.nav__cta:hover{background:var(--accent);color:#fff}
.nav__search{display:flex;align-items:center;border-bottom:1px solid var(--rule);transition:border-color .18s}
.nav__search:focus-within{border-color:var(--accent)}
.nav__search input{border:0;background:transparent;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink);padding:.32rem 0;width:108px;transition:width .2s}
.nav__search input::placeholder{color:var(--faint);text-transform:uppercase;letter-spacing:.1em}
.nav__search input:focus{outline:0;width:160px}
.nav__search button{border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;
  color:var(--muted);padding:.2rem .1rem .2rem .45rem}
.nav__search button:hover{color:var(--accent)}
.nav__search svg{width:15px;height:15px;display:block}

/* ===== MASTHEAD ===== */
.masthead{border-bottom:1px solid var(--rule)}
.masthead__inner{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 2.2rem;padding-block:.85rem;
  font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.masthead__inner b{color:var(--ink);font-weight:600;margin-right:.5rem}
.masthead__lead{color:var(--ink);font-weight:600}
.masthead__news{margin-left:auto;color:var(--accent)}
.crumbs{display:flex;flex-wrap:wrap;gap:.6rem;padding-block:.85rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{color:var(--faint)}

/* ===== HERO ===== */
.hero{padding-block:clamp(3rem,8vw,5.5rem)}
.hero__eyebrow{margin-bottom:1.8rem}
.hero h1{font-size:clamp(2.3rem,6vw,4.4rem);line-height:1.03;letter-spacing:-.03em;font-weight:700;max-width:17ch;margin:0 0 1.8rem}
.hero h1 .lite{font-weight:400}
.hero__lead{font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.55;max-width:46ch;margin:0 0 1.4rem;letter-spacing:-.01em}
.hero__sub{color:var(--muted);max-width:50ch;margin:0 0 2.4rem;font-size:.98rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem}
.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;
  text-transform:uppercase;padding:1.05rem 1.5rem;border:1px solid var(--accent);transition:.18s;cursor:pointer}
.btn--solid{background:var(--accent);color:#fff}
.btn--solid:hover{background:var(--accent-ink);border-color:var(--accent-ink);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn--ghost:hover{border-color:var(--ink)}

/* ===== FACTS ===== */
.facts{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.facts__inner{display:grid;grid-template-columns:repeat(3,1fr)}
.fact{padding:2rem var(--gutter);border-left:1px solid var(--rule)}
.fact:first-child{border-left:0;padding-left:0}
.fact__num{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:700;letter-spacing:-.03em;line-height:1;margin-bottom:.7rem}
.fact__cap{display:block;max-width:24ch}

/* ===== SECTION ===== */
.section{padding-block:clamp(3.2rem,6vw,5rem)}
.section--top{padding-top:0}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--rule);padding-bottom:1rem;margin-bottom:.5rem}
.section__head h2{font-size:clamp(1.4rem,2.5vw,1.9rem);font-weight:600;letter-spacing:-.025em;margin:.6rem 0 0}
.section__head a{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.section__head a:hover{color:var(--accent-ink)}

/* lead review */
.lead{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center;padding-block:2.2rem;border-bottom:1px solid var(--rule)}
.lead .thumb{aspect-ratio:3/2}
.lead__cat{display:inline-flex;margin-bottom:.9rem}
.lead__title{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:700;letter-spacing:-.025em;line-height:1.12;margin:0 0 1rem}
.lead__dek{color:var(--muted);max-width:46ch;margin:0 0 1.4rem}
.lead__more{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* register */
.register{list-style:none;margin:0;padding:0}
.entry{display:grid;grid-template-columns:128px 1fr auto;gap:1.5rem;align-items:center;padding-block:1.5rem;border-bottom:1px solid var(--rule);transition:background .15s}
.entry:hover{background:var(--paper-2)}
.entry .thumb{aspect-ratio:3/2}
.entry__cat{display:block;margin-bottom:.45rem}
.entry__cat b{color:var(--accent);font-weight:600}
.entry__title{font-size:clamp(1.05rem,1.7vw,1.3rem);font-weight:600;letter-spacing:-.02em;line-height:1.2;margin:0 0 .4rem}
.entry__dek{color:var(--muted);font-size:.92rem;max-width:60ch;margin:0}
.entry__date{white-space:nowrap;align-self:start;padding-top:.2rem}

/* categories */
.cats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,3vw,2rem)}
.cat{padding:clamp(1.1rem,2.2vw,1.5rem);transition:background .15s ease}
.cat:hover{background:var(--paper-2)}
.cat:hover .cat__link{color:var(--accent-ink)}
.cat__thumb{aspect-ratio:3/2;margin-bottom:1.3rem}
.cat__num{margin-bottom:.8rem}
.cat__title{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .7rem}
.cat__desc{color:var(--muted);font-size:.92rem;margin:0 0 1.2rem}
.cat__link{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
/* Start-here guides: connected grid of numbered tiles, distinct from the card grids */
.guides__intro{color:var(--muted);font-size:.96rem;line-height:1.55;max-width:60ch;margin:.2rem 0 0}
.guides{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:1.4rem}
.guide{background:var(--paper);padding:clamp(1.4rem,2.6vw,1.9rem);display:flex;flex-direction:column;gap:.5rem;text-decoration:none;color:inherit;transition:background .15s ease}
.guide:hover{background:var(--paper-2)}
.guide__thumb{aspect-ratio:3/2}
.guide__num{font-family:var(--font-mono);font-size:1.5rem;font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--ink)}
.guide__title{font-size:1.12rem;font-weight:600;letter-spacing:-.02em;line-height:1.25;margin:.2rem 0 0}
.guide__desc{font-size:.9rem;line-height:1.5;color:var(--muted);margin:0;flex:1 1 auto}
.guide__more{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--accent);margin-top:.5rem}
.guide:hover .guide__more{color:var(--accent-ink)}

/* newsletter */
.news{border:1px solid var(--accent);background:var(--paper-2);padding:clamp(2rem,4vw,3rem);
  display:grid;grid-template-columns:1fr 300px;gap:clamp(2rem,4vw,3.5rem);align-items:center}
.news__eyebrow{margin-bottom:1.4rem}
.news h2{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;letter-spacing:-.025em;max-width:18ch;margin:0 0 1.3rem}
.news p{max-width:60ch;color:#2c2c2c;margin:0 0 1.1rem}
.news p:last-of-type{margin-bottom:2rem}
.news__portrait{aspect-ratio:4/5}

/* gear */
.gear{list-style:none;margin:0;padding:0}
.gear__row{display:grid;grid-template-columns:64px 1fr auto;gap:1.3rem;align-items:center;padding-block:1rem;border-bottom:1px solid var(--rule)}
.gear__row .thumb{aspect-ratio:1/1}
.gear__meta{display:flex;flex-direction:column;gap:.25rem}
.gear__name{font-weight:600;letter-spacing:-.01em}
.gear__links{display:flex;gap:1rem;white-space:nowrap}
.gear__links a{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.gear__links a:hover{color:var(--accent)}

/* ===== ARTICLE ===== */
.arthead{padding-block:clamp(1.5rem,3.2vw,2.25rem) clamp(1rem,2vw,1.5rem)}
.arthead .eyebrow{margin-bottom:1.1rem}
.arthead h1{font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.06;letter-spacing:-.03em;font-weight:700;max-width:20ch;margin:0 0 1.4rem}
.standfirst{font-size:clamp(1.1rem,1.8vw,1.3rem);line-height:1.5;color:#333;max-width:var(--measure);margin:0 0 1.8rem}
.byline{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem;font-family:var(--font-mono);font-size:.72rem;
  letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:1rem}
.byline b{color:var(--ink);font-weight:600}
.byline .tag{color:var(--accent);border:1px solid var(--accent);padding:.25rem .6rem}
.arthero{margin:1.25rem 0 1.75rem}
.arthero .thumb{aspect-ratio:16/9}
.arthero figcaption{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;color:var(--faint);margin-top:.7rem;text-transform:uppercase}

.body-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,4rem);padding-bottom:clamp(3rem,6vw,5rem)}
.body-grid--full{grid-template-columns:minmax(0,1fr)}
.body-grid--full .entry-content{max-width:none}

/* the_content output */
.entry-content{max-width:var(--measure)}
.bsa-dropcap .body-grid .entry-content > p:first-of-type::first-letter{float:left;font-size:3.1rem;line-height:.8;font-weight:700;padding:.1rem .6rem .1rem 0;color:var(--accent)}
.entry-content p{margin:0 0 1.3rem;color:#262626}
.entry-content h2{font-size:clamp(1.4rem,2.4vw,1.8rem);font-weight:600;letter-spacing:-.02em;margin:2.6rem 0 1rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.entry-content h3{font-size:1.25rem;font-weight:600;letter-spacing:-.02em;margin:2rem 0 .8rem}
.entry-content a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule)}
.entry-content strong{font-weight:600}
.entry-content figure,.entry-content .wp-block-image,.entry-content .wp-block-embed,.entry-content .wp-block-video,.entry-content>img{margin:0 0 1.3rem}
.entry-content figure img,.entry-content .wp-block-image img{margin:0;display:block}
.entry-content figcaption{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;color:var(--faint);text-transform:uppercase;margin-top:.6rem}
.entry-content ul,.entry-content ol{margin:0 0 1.3rem;padding-left:1.3rem;color:#262626}
.entry-content li{margin-bottom:.5rem}
.entry-content blockquote{margin:2.2rem 0;padding:1.4rem 0 1.4rem 1.6rem;border-left:3px solid var(--accent);
  font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.3;font-weight:600;letter-spacing:-.02em;color:var(--ink)}
.entry-content blockquote p{color:inherit;margin:0}
.entry-content table{width:100%;border-collapse:collapse;margin:2rem 0;font-size:.92rem}
.entry-content th,.entry-content td{text-align:left;padding:.7rem 1rem;border:1px solid var(--rule)}
.entry-content th{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:var(--paper-2)}
.entry-content code{font-family:var(--font-mono);font-size:.88em;background:var(--paper-2);padding:.1em .35em;border:1px solid var(--rule)}
.entry-content pre{background:var(--ink);color:#f3f3f0;padding:1.2rem;overflow:auto;margin:2rem 0;font-size:.85rem}
.entry-content pre code{background:none;border:0;color:inherit;padding:0}
.alignwide{width:min(100%,900px)}
.alignfull{width:100%}
.entry-content :where(.alignwide,.alignfull){max-width:none}

/* pull + figure (manual / shortcode usable) */
.pull{margin:2.2rem 0;padding:1.4rem 0 1.4rem 1.6rem;border-left:3px solid var(--accent);
  font-size:clamp(1.25rem,2vw,1.55rem);line-height:1.3;font-weight:600;letter-spacing:-.02em;color:var(--ink)}

/* ===== SPEC / VERDICT RAIL ===== */
.rail{position:sticky;top:5.5rem;align-self:start;display:flex;flex-direction:column;gap:1.4rem}
.card{border:1px solid var(--rule);background:#fff}
.card__head{padding:.85rem 1.1rem;border-bottom:1px solid var(--rule);font-family:var(--font-mono);
  font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);font-weight:600;display:flex;justify-content:space-between}
.card__head .v{color:var(--accent)}
.spec{margin:0}
.spec__row{display:flex;justify-content:space-between;gap:1rem;padding:.7rem 1.1rem;border-bottom:1px solid var(--rule);font-size:.85rem;margin:0}
.spec__row:last-child{border-bottom:0}
.spec__row dt{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.spec__row dd{text-align:right;font-weight:500;margin:0}
.overall{padding:1.1rem;border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:.6rem}
.overall b{font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1}
.overall span{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);line-height:1.35}
.ratings{padding:1.1rem}
.rating{margin-bottom:1rem}
.rating:last-child{margin-bottom:0}
.rating__top{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}
.rating__top b{color:var(--ink)}
.rating__track{height:5px;background:var(--paper-2);border:1px solid var(--rule)}
.rating__fill{height:100%;background:var(--accent)}
.rating--na .rating__top b{color:var(--muted)}
.card .btn{width:100%;justify-content:center}

/* related + author */
.related{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,3vw,2rem)}
.rel__thumb{aspect-ratio:3/2;margin-bottom:1rem}
.rel__cat{display:block;margin-bottom:.5rem}
.rel__title{font-size:1.05rem;font-weight:600;letter-spacing:-.015em;line-height:1.25}
.author{display:grid;grid-template-columns:88px 1fr;gap:1.4rem;align-items:center;border:1px solid var(--rule);background:var(--paper-2);padding:1.4rem}
.author .thumb{aspect-ratio:1/1}
.author h3{font-size:1.05rem;font-weight:600;margin:.3rem 0}
.author p{font-size:.9rem;color:var(--muted);max-width:60ch;margin:0}

/* pagination */
.pagination{display:flex;gap:.5rem;flex-wrap:wrap;padding-block:2.5rem}
.pagination .page-numbers{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.06em;padding:.6rem .9rem;border:1px solid var(--rule);color:var(--muted)}
.pagination .page-numbers.current{background:var(--accent);color:#fff;border-color:var(--accent)}
.pagination a.page-numbers:hover{border-color:var(--ink);color:var(--ink)}

/* footer */
.foot{border-top:1px solid var(--rule);margin-top:1rem}
.foot__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;padding-block:3rem}
.foot__brand .label{display:block;margin-bottom:1rem}
.foot__brand p{color:var(--muted);font-size:.9rem;max-width:34ch;margin:0}
.foot__col h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin:0 0 1rem;font-weight:600}
.foot__col ul{list-style:none;margin:0;padding:0}
.foot__col li{margin-bottom:.6rem}
.foot__col a{font-size:.9rem;color:var(--muted)}
.foot__col a:hover{color:var(--accent)}
.foot__col h4 a{color:inherit;text-decoration:none}
.foot__col h4 a:hover{color:var(--accent)}
.foot__legal{border-top:1px solid var(--rule);padding-block:1.4rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;
  font-family:var(--font-mono);font-size:.68rem;letter-spacing:.08em;color:var(--faint);text-transform:uppercase}
.foot__legal a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.foot__legal a:hover{color:var(--accent)}

/* simple page + utilities */
.page-hero{padding-block:clamp(2.5rem,6vw,4rem);border-bottom:1px solid var(--rule)}
.page-hero h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:700;letter-spacing:-.03em;margin:1.2rem 0 0;max-width:20ch}
.single-page-body{padding-block:clamp(2.5rem,5vw,4rem)}
.muted{color:var(--muted)}

@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
  .reveal:nth-child(1){animation-delay:.05s}.reveal:nth-child(2){animation-delay:.13s}
  .reveal:nth-child(3){animation-delay:.21s}.reveal:nth-child(4){animation-delay:.29s}.reveal:nth-child(5){animation-delay:.37s}
  @keyframes rise{to{opacity:1;transform:none}}
}
@media (max-width:900px){
  .nav__links{display:none}
  .facts__inner{grid-template-columns:1fr}
  .fact{border-left:0;border-top:1px solid var(--rule);padding-inline:0}.fact:first-child{border-top:0}
  .lead{grid-template-columns:1fr}.cats{grid-template-columns:1fr}
  .news{grid-template-columns:1fr}.news__portrait{max-width:280px;order:-1;margin-inline:auto}
  .body-grid{display:flex;flex-direction:column}.rail{position:static;order:-1;align-self:stretch;width:100%;top:auto}
  .rail .card:first-child .card__head,.rail .card:first-child .overall{display:none}
  .rail .buybox{display:none}
  .verdict__buy--2{display:inline-flex}
  .verdict__promo{display:flex}
  .related{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .entry{grid-template-columns:1fr;gap:.9rem}.entry .thumb{aspect-ratio:16/9}.entry__date{padding-top:0}
  .foot__grid{grid-template-columns:1fr}
  .foot{text-align:center}
  .foot__brand p{max-width:42ch;margin-left:auto;margin-right:auto}
  .foot__legal{justify-content:center}
  .masthead--crumbs{display:none}
}

/* ====================================================================
   v1.2 ADDITIONS
   ==================================================================== */

/* --- Brand: logo beside title --- */
.brand{display:inline-flex;align-items:center;gap:.65rem}
.brand__logo-img{height:30px;width:auto;display:block}
.brand__name{font-family:var(--font-mono);font-weight:600;letter-spacing:.14em;font-size:.95rem}
.brand__name b{color:var(--accent)}

/* --- Desktop dropdown submenus --- */
.nav__links li{position:relative}
.nav__links .sub-menu{position:absolute;top:100%;left:0;min-width:210px;background:var(--paper);
  border:1px solid var(--rule);padding:.4rem 0;display:none;z-index:60;box-shadow:0 8px 20px rgba(0,0,0,.04)}
.nav__links li:hover>.sub-menu,.nav__links li:focus-within>.sub-menu{display:block}
.nav__links .sub-menu li{display:block}
.nav__links .sub-menu a{display:block;padding:.55rem 1rem;color:var(--muted)}
.nav__links .sub-menu a:hover{color:var(--ink);background:var(--paper-2)}
.nav__links .menu-item-has-children>a::after{content:" ▾";color:var(--faint);font-size:.8em}

/* --- Burger + mobile panel --- */
.nav__burger{display:none;background:none;border:1px solid var(--rule);width:44px;height:40px;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:0}
.nav__burger span{display:block;width:18px;height:2px;background:var(--ink);transition:.2s}
.bsa-nav-open .nav__burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.bsa-nav-open .nav__burger span:nth-child(2){opacity:0}
.bsa-nav-open .nav__burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mobile-nav{display:none}

/* --- Currently testing --- */
.ct{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.5vw,1.6rem)}
.ct__item .thumb{aspect-ratio:4/3;margin-bottom:.9rem}
.ct__title{font-weight:600;letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.02rem}
.ct__text{color:var(--muted);font-size:.9rem;margin:0}

/* --- How I test --- */
.hit{display:grid;grid-template-columns:300px 1fr;gap:clamp(2rem,5vw,4rem);align-items:start;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding-block:clamp(2.5rem,5vw,3.5rem)}
.hit__title{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;letter-spacing:-.025em;margin:.6rem 0 0;max-width:14ch}
.hit__body p{color:#2c2c2c;margin:0 0 1.1rem;max-width:60ch}
.hit__link{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}

/* --- Table of contents --- */
.toc{border:1px solid var(--rule);background:var(--paper-2);margin:0 0 2rem;max-width:var(--measure);padding:0}
.toc>summary{cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;
  font-size:.72rem;font-weight:600;padding:.8rem 1.1rem;list-style:none}
.toc>summary::-webkit-details-marker{display:none}
.toc>summary::after{content:"–";float:right;color:var(--accent)}
.toc:not([open])>summary::after{content:"+"}
.toc nav{padding:.1rem 1.1rem 1rem}
.toc ul{list-style:none;margin:0;padding:0}
.toc li{margin:.15rem 0}
.toc a{font-size:.92rem;color:var(--muted);border:0;text-decoration:none}
.toc a:hover{color:var(--accent)}
.toc ul ul{padding-left:.9rem;border-left:1px solid var(--rule);margin:.15rem 0 .15rem .2rem}
.entry-content :where(h2,h3,h4,h5,h6){scroll-margin-top:90px}

/* --- Affiliate note --- */
.affiliate-note{font-size:.9rem;line-height:1.55;color:var(--ink);margin:1rem 0 0}
.affiliate-note a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.card__method{display:block;padding:.85rem 1.1rem;border-top:1px solid var(--rule);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--accent);text-decoration:none}
.card__method:hover{color:var(--accent-ink);background:var(--paper-2)}

/* --- Spec taxonomy links --- */
.spec__row dd a{color:var(--accent)}

/* --- Card grid (category + archive) --- */
.cardgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.2rem)}
.card-post__thumb{aspect-ratio:3/2;margin-bottom:1rem}
.card-post__cat{display:block;margin-bottom:.45rem}
.card-post__title{font-size:1.1rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;margin:0 0 .4rem}
.card-post__dek{color:var(--muted);font-size:.9rem;margin:0}
.featured-band{padding-bottom:0}

/* --- Responsive --- */
@media(max-width:900px){
  .nav__links{display:none}
  .nav>.nav__cta{display:none}
  .nav__search{display:none}
  .nav__burger{display:inline-flex}
  .mobile-nav{display:block;position:fixed;left:0;right:0;top:0;bottom:0;background:var(--paper);z-index:40;
    transform:translateY(-100%);transition:transform .25s ease;overflow:auto;padding:6rem var(--gutter) 2.5rem}
  .bsa-nav-open .mobile-nav{transform:none}
  .bsa-nav-open{overflow:hidden}
  .mobile-nav__links{list-style:none;margin:0;padding:0}
  .mobile-nav__links a{display:block;padding:.95rem 0;border-bottom:1px solid var(--rule);font-family:var(--font-mono);
    text-transform:uppercase;letter-spacing:.1em;font-size:.85rem;color:var(--ink)}
  .mobile-nav__links .sub-menu{list-style:none;margin:0;padding:0 0 .4rem 1rem;display:none}
  .mobile-nav__links .menu-item-has-children.is-open>.sub-menu{display:block}
  .mobile-nav__links .menu-item-has-children>a::after{content:" +";color:var(--faint)}
  .mobile-nav__links .menu-item-has-children.is-open>a::after{content:" –"}
  .mobile-nav__links .sub-menu a{font-size:.78rem;color:var(--muted);text-transform:none;letter-spacing:.02em}
  .mobile-nav__cta{margin-top:1.6rem}
  .mobile-nav__search{display:flex;gap:.5rem;margin-bottom:1.8rem}
  .mobile-nav__search input{flex:1;min-width:0;border:1px solid var(--rule);background:var(--paper);padding:.7rem .8rem;
    font-family:var(--font-mono);font-size:.8rem;letter-spacing:.04em;color:var(--ink)}
  .mobile-nav__search input::placeholder{color:var(--faint);letter-spacing:.06em}
  .mobile-nav__search input:focus{outline:0;border-color:var(--accent)}
  .mobile-nav__search button{border:1px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--font-mono);
    text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;padding:0 1.1rem;cursor:pointer;white-space:nowrap}
  .mobile-nav__search button:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
  .ct{grid-template-columns:1fr 1fr}
  .hit{grid-template-columns:1fr;gap:1.4rem}
  .cardgrid{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .ct{grid-template-columns:1fr}
  .cardgrid{grid-template-columns:1fr}
  /* keep mobile lists short: show first three only */
  .cats>.cat:nth-child(n+4){display:none}
  .gear>.gear__row:nth-child(n+4){display:none}
  .ct>.ct__item:nth-child(n+4){display:none}
}

/* --- Buy box: discount code + one or two buttons --- */
.buybox{display:flex;flex-direction:column;gap:.6rem}
.buybox .btn{margin:0}
.promo{display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  padding:.55rem .85rem;border:1px dashed var(--accent);background:var(--paper)}
.promo__label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.promo__code{font-family:var(--font-mono);font-weight:600;font-size:.95rem;letter-spacing:.06em;color:var(--accent-ink);user-select:all}

/* --- Currently-testing newsletter CTA (solid accent button) --- */
.ct__cta{margin-top:1.6rem;max-width:36rem;text-align:left}

/* --- Mobile/tablet heading hierarchy (desktop >900px unchanged) ---
   Section headings stay clearly larger than the item titles beneath them,
   and every item title (featured review, the other reviews, category cards,
   currently-testing) shares one size so the hierarchy reads consistently. */
@media (max-width:900px){
  .section__head h2,.news h2{font-size:1.5rem}
  .lead__title,.entry__title,.cat__title,.ct__title{font-size:1.15rem;line-height:1.3}
}

/* --- Review verdict (top of review) --- */
.verdict{display:grid;grid-template-columns:auto 1fr;gap:clamp(1.5rem,3vw,2.75rem);align-items:center;
  border:1px solid var(--rule);border-top:3px solid var(--accent);background:var(--paper-2);
  padding:clamp(1.4rem,3vw,2rem);margin:1.75rem 0 clamp(2rem,4vw,3rem)}
.verdict__score{text-align:center;padding-right:clamp(1.5rem,3vw,2.75rem);border-right:1px solid var(--rule)}
.verdict__num{display:block;font-size:clamp(2.8rem,6vw,3.6rem);font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--accent-ink)}
.verdict__out{display:block;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:.45rem}
.verdict__word{display:inline-block;margin-top:.75rem;font-family:var(--font-mono);font-size:.64rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:.25rem .6rem}
.verdict__body{display:flex;flex-direction:column}
.verdict__body .eyebrow{margin-bottom:.7rem}
.verdict__take{font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:600;letter-spacing:-.015em;line-height:1.45;margin:0 0 1.3rem;color:var(--ink);max-width:60ch}
.verdict__foot{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2rem}
.verdict__fors{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem;flex:1 1 18rem}
.verdict__fors li{display:flex;align-items:baseline;gap:.7rem;font-size:.95rem;line-height:1.5}
.verdict__fors .label{flex:0 0 4.5rem}
.verdict__fors .is-best .label{color:var(--accent)}
.verdict__fors .is-not .label{color:var(--muted)}
.verdict__buys{margin-left:auto;flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:.55rem}
.verdict__buy{margin:0}
.verdict__buy--2,.verdict__promo{display:none}
.verdict__promo{margin:0}
@media (max-width:680px){
  .verdict{display:block}
  .verdict__score{border-right:0;border-bottom:1px solid var(--rule);padding-right:0;padding-bottom:1.3rem;margin-bottom:1.3rem}
  .verdict__foot{flex-direction:column;align-items:stretch;gap:1rem;margin-top:1rem}
  .verdict__fors{flex:none}
  .verdict__buys{margin:0;width:100%}
  .verdict__buy{justify-content:center}
}

/* --- End-of-post newsletter CTA --- */
.post-cta{border:1px solid var(--rule);border-top:3px solid var(--accent);background:var(--paper-2);
  padding:clamp(1.8rem,4vw,2.6rem);margin:clamp(2.5rem,5vw,3.5rem) 0 0;text-align:center}
.post-cta .eyebrow{justify-content:center;margin-bottom:.9rem}
.post-cta__title{font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700;letter-spacing:-.025em;margin:0 0 .7rem}
.post-cta__text{color:var(--muted);max-width:54ch;margin:0 auto 1.5rem;line-height:1.6}
.post-cta .btn{margin:0}

/* --- Clickable article category eyebrow --- */
.arthead .eyebrow a{color:inherit;border:0;text-decoration:none}
.arthead .eyebrow a:hover{color:var(--accent)}

/* --- Core Button block styled to match the theme buttons --- */
.entry-content .wp-block-button__link{background:var(--accent);color:#fff;border-radius:0;font-family:var(--font-mono);
  text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:600;padding:.85rem 1.4rem;border:1px solid var(--accent)}
.entry-content .wp-block-button__link:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
.entry-content .wp-block-button.is-style-outline .wp-block-button__link,
.entry-content .wp-block-button.is-style-outline .wp-block-button__link:not(.has-background){background:transparent;color:var(--accent)}

/* ====================================================================
   PAGE BUILDING BLOCKS — classes for Custom HTML blocks on pages
   ==================================================================== */
.entry-content .btn{text-decoration:none}

/* Review showcase cards inside page content */
.page-cards{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.2rem,3vw,1.8rem);margin:2.2rem 0}
.entry-content .card-post{color:var(--ink);text-decoration:none;display:block}
.entry-content .card-post .thumb img,.entry-content .wp-block-media-text img{margin:0}
.entry-content .card-post__thumb{aspect-ratio:3/2;margin-bottom:1rem}
.entry-content .card-post__cat{display:block;margin-bottom:.45rem}
.entry-content .card-post__title{margin:0 0 .4rem;font-size:1.1rem;font-weight:600;letter-spacing:-.015em;line-height:1.25;border:0;padding:0}
.entry-content .card-post__dek{margin:0;color:var(--muted);font-size:.9rem}
.entry-content .card-post:hover .card-post__title{color:var(--accent)}
@media(max-width:620px){.page-cards{grid-template-columns:1fr}}

/* Stats row (Audience statistics) */
.page-stats{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;margin:2.4rem 0;padding-block:1.8rem}
.pstat__label{display:block;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.pstat__val{font-size:.96rem;line-height:1.45;color:var(--ink);margin:0}
.pstat__val b{font-weight:600}
@media(max-width:760px){.page-stats{grid-template-columns:1fr 1fr}}

/* Accent CTA band */
.cta-band{background:var(--accent);color:#fff;padding:clamp(2rem,4vw,3rem);margin:2.5rem 0;text-align:center}
.cta-band h2{color:#fff;border:0;padding:0;margin:0 0 .7rem;font-size:clamp(1.4rem,2.6vw,1.9rem)}
.cta-band p{color:rgba(255,255,255,.88);max-width:54ch;margin:0 auto 1.4rem}
.entry-content .cta-band a:not(.btn){color:#fff}
.cta-band .btn{background:var(--paper);color:var(--accent-ink);border:1px solid var(--paper)}
.cta-band .btn:hover{background:#fff;border-color:#fff}

/* --- Pages run full width; only Posts keep the reading column + rail --- */
.page .single-page-body .entry-content{max-width:none}
