/* Legacy compatibility layer.
 * Canonical global primitives are owned by assets/css/design-system.css.
 * Rules retained here are restricted to existing body/page/component hooks.
 */

/* Canonical Liquid Glass dark palette tokens */
:root {
  --hq-dark-bg: #0b0a0a; /* neutral charcoal */
  --hq-dark-rgb: 11, 10, 10;
}

/* ===================== scoped shell stacking compatibility ===================== */
/* ============================================================================
   PART 1 — Z-INDEX CLIP FIX (mega-menu + header clipped BEHIND page content)
   ----------------------------------------------------------------------------
   DIAGNOSIS (verified via CDP getComputedStyle + elementFromPoint):
   The whole nav chrome lives INSIDE <header id="masthead">:
     header#masthead
       └ nav#hq-main-nav            position:fixed;  z-index:50
           ├ #mega-menu-dropdown    position:absolute; z-index:40  (Index panel)
           └ #hq-acct-menu          position:absolute; z-index:40  (account panel)
       └ #mobile-menu / #search-modal (full-screen overlays)
   _foundation.css added `main, header, footer{ position:relative; z-index:1 }`
   (so the hero canvas .hq-hero-lanes at z:0 can sit under content). That pins
   BOTH <header> AND <main> at the SAME z-index:1, as sibling stacking contexts
   inside #page (z:10). With equal z-index the LATER element in the DOM wins, and
   <main> comes after <header> — so main's content paints OVER the entire header
   subtree, burying the fixed nav (z:50) and the mega-menu panel (z:40).
   CDP proof: with the panel open, elementFromPoint at the panel's centre
   returned a content <p>, not the panel.
   FIX: lift the header's OWN stacking context above content (z:60), and give the
   nav + dropdown panels an explicitly high z-index so nothing traps them. The
   hero canvas (.hq-hero-lanes, fixed z:0) is untouched and stays BELOW content.
   ============================================================================ */

/* (a) Un-trap the header stacking context — this is THE fix. The header wrapper
   must outrank <main>/<footer> (both z:1) so its fixed nav + dropdowns float. */
header#masthead.site-header,
body header#masthead{
  position:relative !important;
  z-index:60 !important;
}
/* (b) The fixed nav bar itself sits high within that context. */
#hq-main-nav.hq-site-nav,
#hq-main-nav{ z-index:60 !important; }

/* (c) The dropdown PANELS that open from the nav must clear everything below the
   bar. Raise them above content (and above the bar they hang from). They already
   drop from top-full so they never overlap the bar visually. */
#mega-menu-dropdown,
#hq-acct-menu{ z-index:70 !important; }


/* ===================== _pages_a.css ===================== */
/* PAGES round-2 additions (bot A). Page-specific section rhythm/accent/solid rules. Loads late. */
/* ============================================================================
   BOT A — hardware templates: single-hardware, page-rankings, archive-hardware
   (archive also powers search.php + taxonomy-hardware_category.php via include).

   Propagates the homepage section-rhythm + differentiation system to these pages
   and ENFORCES the founder's glass philosophy:
     • Content that must be READ (spec tables, product prose, price/deal block,
       leaderboard rows, product cards) = SOLID: opaque bg, backdrop-filter:none,
       no refraction rim, real depth shadow.
     • Chrome that may hide during reading (filter sidebar, gallery viewer,
       discovery rail) = GLASS (left as-is).

   NOTE ON RHYTHM: _sections.css injects clamp(3rem..6rem)!important padding on
   EVERY main [data-hq-section]. That is right for full-width homepage sections
   but wrong for the NESTED panels we hook here (buy bar, hero gallery column,
   sidebar rail, filter aside) — it would balloon them. So below we (a) keep a
   sane rhythm on the true top-level content sections and (b) neutralise the
   injected padding on nested chrome/panels so layout stays intact.
   Body-scoped so nothing leaks to other pages.
   ============================================================================ */

/* ==== BOT A additions ==== */

/* ---------------------------------------------------------------------------
   1) SINGLE-HARDWARE  (body.single-hardware)
   Hooks: prose (Overview), specs, deals (price panel), gallery (hero image col),
          related (Similar hardware sidebar card).
   --------------------------------------------------------------------------- */

/* -- 1a. Content sections keep rhythm, but tuned: they already sit in a
      space-y-8 column, so the homepage's 3–6rem clamp would double up. Give a
      moderate, verifiable section padding instead of the injected giant one. -- */
body.single-hardware main [data-hq-section="prose"],
body.single-hardware main [data-hq-section="specs"]{
  padding-top:clamp(1.25rem, 0.9rem + 1.6vw, 2.5rem) !important;
  padding-bottom:clamp(1.25rem, 0.9rem + 1.6vw, 2.5rem) !important;
  scroll-margin-top:7rem;
}

/* -- 1b. Nested chrome/panels: KILL the injected section padding so the buy
      bar, hero gallery column and sidebar rail keep their own compact padding
      and don't get blown up into huge boxes. -- */
body.single-hardware main [data-hq-section="deals"],
body.single-hardware main [data-hq-section="gallery"],
body.single-hardware main [data-hq-section="related"]{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* -- 1c. GLASS PHILOSOPHY — spec tables + product prose = SOLID.
      The spec group cards / prose card use utility `backdrop-blur-3xl bg-white/60
      dark:bg-black/80` (NOT covered by _foundation's .hq-solid selectors), so we
      make them opaque here. `.backdrop-blur-3xl` cleanly discriminates the CARD
      surfaces from the small header icons (which use backdrop-blur-md). -- */
html.dark body.single-hardware [data-hq-section="specs"] .backdrop-blur-3xl,
html.dark body.single-hardware [data-hq-section="prose"] .backdrop-blur-3xl{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(255,255,255,0.08) !important;
  box-shadow:0 18px 44px -24px rgba(0,0,0,0.72) !important;
}
html:not(.dark) body.single-hardware [data-hq-section="specs"] .backdrop-blur-3xl,
html:not(.dark) body.single-hardware [data-hq-section="prose"] .backdrop-blur-3xl{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(15,23,42,0.10) !important;
  box-shadow:0 20px 46px -26px rgba(15,23,42,0.32) !important;
}
/* the specs cards' inner header strip uses bg-white/95 dark:bg-black/95 + blur —
   drop its blur too so the whole card reads as one solid slab. */
html.dark body.single-hardware [data-hq-section="specs"] .backdrop-blur-3xl .backdrop-blur-xl,
html:not(.dark) body.single-hardware [data-hq-section="specs"] .backdrop-blur-3xl .backdrop-blur-xl{
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
}
/* content surfaces must not carry the chrome refraction rim */
body.single-hardware [data-hq-section="specs"] .backdrop-blur-3xl::after,
body.single-hardware [data-hq-section="prose"] .backdrop-blur-3xl::after{ display:none !important; }

/* -- 1d. DEALS (price panel) = SOLID + amber accent (deals = amber identity).
      It is a `.rf-glass` panel; override the glass system to an opaque slab and
      give it the amber left rail so the buying block signals its purpose. -- */
html.dark body.single-hardware [data-hq-section="deals"]{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  border-left:3px solid #10b981 !important;
  box-shadow:0 16px 40px -24px rgba(0,0,0,0.7) !important;
}
html:not(.dark) body.single-hardware [data-hq-section="deals"]{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border:1px solid rgba(16,185,129,0.2) !important;
  border-left:3px solid #10b981 !important;
  box-shadow:0 18px 42px -26px rgba(15,23,42,0.12) !important;
}
body.single-hardware [data-hq-section="deals"]::after{ display:none !important; }

/* -- 1e. GALLERY (hero image column) stays visual chrome: no accent, just the
      neutralised padding above. RELATED (Similar hardware) stays glass discovery
      chrome (sidebar rail) per the founder's rule — left as-is. -- */

/* ---------------------------------------------------------------------------
   2) PAGE-RANKINGS  (body.page-template-page-rankings)
   Hooks: rankings (reception hub + leaderboard, mutually exclusive), prose (note).
   Accent: emerald (rankings/default identity — matches the page hero).
   --------------------------------------------------------------------------- */

/* -- 2a. Rankings content sections: sane rhythm (they sit in max-w-6xl, stacked
      under the category tabs). Give a light emerald top hairline to separate the
      leaderboard zone from the tabs above. -- */
body.page-template-page-rankings main [data-hq-section="rankings"]{
  padding-top:clamp(1rem, 0.7rem + 1.4vw, 2rem) !important;
  padding-bottom:clamp(1.5rem, 1rem + 2vw, 3rem) !important;
  scroll-margin-top:7rem;
  border-top:1px solid rgba(16,185,129,0.16);
}
html:not(.dark) body.page-template-page-rankings main [data-hq-section="rankings"]{
  border-top-color:rgba(5,150,105,0.14);
}
/* the benchmark note is a small bordered card — kill the injected giant padding */
body.page-template-page-rankings main [data-hq-section="prose"]{
  padding-top:0 !important;
  padding-bottom:0 !important;
}
/* -- glass philosophy: the benchmark note is READ copy, so it must be SOLID.
      A broad shared rule (_pages.css: .rounded-2xl.border[class*="bg-white"])
      glasses it in light mode, and its own bg-white/[0.03] is near-transparent in
      dark — override both so the note reads as an opaque footnote slab. -- */
html.dark body.page-template-page-rankings main [data-hq-section="prose"].rounded-2xl.border{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(255,255,255,0.08) !important;
}
html:not(.dark) body.page-template-page-rankings main [data-hq-section="prose"].rounded-2xl.border{
  background:#f8fafc !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(15,23,42,0.10) !important;
}
body.page-template-page-rankings main [data-hq-section="prose"]::after{ display:none !important; }

/* -- 2b. GLASS PHILOSOPHY — leaderboard rows + reception cards = SOLID, legible.
      Rows use `.hq-rank-card` with bg-white/80 dark:bg-white/[0.04]; reception
      entry cards use bg-white/60 dark:bg-white/5 + backdrop-blur-md. Make the
      tabular reading surfaces opaque so scores/prices stay crisp. -- */
html.dark body.page-template-page-rankings [data-hq-section="rankings"] .hq-rank-card,
html.dark body.page-template-page-rankings [data-hq-section="rankings"] a.group.relative.flex.flex-col{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(255,255,255,0.09) !important;
  box-shadow:0 12px 30px -20px rgba(0,0,0,0.7) !important;
}
html:not(.dark) body.page-template-page-rankings [data-hq-section="rankings"] .hq-rank-card,
html:not(.dark) body.page-template-page-rankings [data-hq-section="rankings"] a.group.relative.flex.flex-col{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border-color:rgba(15,23,42,0.10) !important;
  box-shadow:0 14px 32px -22px rgba(15,23,42,0.24) !important;
}

/* ---------------------------------------------------------------------------
   3) ARCHIVE-HARDWARE  (body.post-type-archive-hardware)
   Also powers search.php + taxonomy-hardware_category.php (same template).
   Hooks: discovery (results grid area), filters (sidebar aside = glass chrome).
   --------------------------------------------------------------------------- */

/* -- 3a. DISCOVERY results area is a flex child sitting beside a self-start
      filter sidebar; the injected 3–6rem TOP padding would drop the toolbar out
      of line with the sidebar header. Tame the top, keep bottom breathing room
      so the grid still reads as its own rhythm'd zone. -- */
body.post-type-archive-hardware main [data-hq-section="discovery"]{
  padding-top:0 !important;
  padding-bottom:clamp(2rem, 1.4rem + 2vw, 3.5rem) !important;
  scroll-margin-top:7rem;
}

/* -- 3b. FILTERS sidebar = GLASS chrome (may hide during browsing): keep the
      glass, just neutralise the injected section padding so the aside keeps its
      own p-5/p-6 and stays aligned. No opacity override — chrome stays glass. -- */
body.post-type-archive-hardware main [data-hq-section="filters"]{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* -- 3c. GLASS PHILOSOPHY — product cards in the grid = SOLID reading tiles.
      Cards are `.hq-card-*` tiles; the theme card surface can render translucent.
      Force the grid tiles opaque so titles/specs/prices stay legible against the
      ambient PCB background. Scoped to the discovery grid only. -- */
html.dark body.post-type-archive-hardware [data-hq-section="discovery"] #hardware-cards-container > *{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.08) !important;
  box-shadow:0 14px 34px -22px rgba(0,0,0,0.72) !important;
}
html:not(.dark) body.post-type-archive-hardware [data-hq-section="discovery"] #hardware-cards-container > *{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important;
          backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.09) !important;
  box-shadow:0 16px 36px -24px rgba(15,23,42,0.26) !important;
}
/* discovery grid tiles shouldn't carry the chrome refraction rim */
body.post-type-archive-hardware [data-hq-section="discovery"] #hardware-cards-container > *::after{ display:none !important; }

/* ============================================================================
   ARCHIVE BENTO GRID
   Ensures category/archive cards maintain a minimum width and don't get squished
   on ultra-wide screens (e.g., 5 columns becoming too narrow).
   ============================================================================ */
.hq-bento-grid {
    display: grid;
    /* Cards will be at least 260px, filling remaining space */
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1.5rem;
}


/* ===================== _pages_b.css ===================== */
/* PAGES round-2 additions (bot B). Page-specific section rhythm/accent/solid rules. Loads late. */

/* ============================================================================
   BOT B — brand hub + editorial / reading templates
   ----------------------------------------------------------------------------
   Pages (data-hq-page hook on the top wrapper):
     brands  -> taxonomy-hardware_brand.php   (accent: slate  — neutral catalog)
     guides  -> single-guide.php              (accent: sky    — editorial read)
     deals   -> single-community_deal.php     (accent: amber  — price / urgency)
     build   -> single-build_guide.php        (accent: sky    — guide read)
   GLASS PHILOSOPHY (founder core): content that must be READ = SOLID (opaque,
   backdrop-filter:none, no refraction rim, real depth). Chrome that can hide
   during reading (TOC / sidebar rails on brand + guide) stays glass. These load
   after _glass/_sections/_pages; each solid selector chains the SAME utility
   classes _glass.css keys on (.rounded-3xl.border) so it wins the !important
   duel on specificity, not just order.
   ============================================================================ */

/* ---- 1a. SOLID reading surfaces — the Tailwind rounded-3xl.border pattern ---
   Brand's 5 wiki sections, the deal hero panels + body article/aside + comments,
   the build part cards + builder's-notes prose. Opaque bg, no blur, no rim. */
html.dark main[data-hq-page="brands"] section[data-hq-section].rounded-3xl.border,
html.dark main[data-hq-page="deals"] .hq-deal-hero > div.rounded-3xl.border,
html.dark main[data-hq-page="deals"] .hq-deal-body > article.rounded-3xl.border,
html.dark main[data-hq-page="deals"] .hq-deal-body > aside.rounded-3xl.border,
html.dark main[data-hq-page="deals"] .hq-deal-shell > section.rounded-3xl.border,
html.dark [data-hq-page="build"] [data-hq-section="build"] > article.rounded-3xl.border,
html.dark [data-hq-page="build"] [data-hq-section="prose"].rounded-3xl.border{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.06) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.04) inset, 0 14px 34px -20px rgba(0,0,0,0.65) !important;
}
html:not(.dark) main[data-hq-page="brands"] section[data-hq-section].rounded-3xl.border,
html:not(.dark) main[data-hq-page="deals"] .hq-deal-hero > div.rounded-3xl.border,
html:not(.dark) main[data-hq-page="deals"] .hq-deal-body > article.rounded-3xl.border,
html:not(.dark) main[data-hq-page="deals"] .hq-deal-body > aside.rounded-3xl.border,
html:not(.dark) main[data-hq-page="deals"] .hq-deal-shell > section.rounded-3xl.border,
html:not(.dark) [data-hq-page="build"] [data-hq-section="build"] > article.rounded-3xl.border,
html:not(.dark) [data-hq-page="build"] [data-hq-section="prose"].rounded-3xl.border{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.08) !important;
  box-shadow:0 14px 34px -22px rgba(15,23,42,0.28) !important;
}
main[data-hq-page="brands"] section[data-hq-section].rounded-3xl.border::after,
main[data-hq-page="deals"] .hq-deal-hero > div.rounded-3xl.border::after,
main[data-hq-page="deals"] .hq-deal-body > article.rounded-3xl.border::after,
main[data-hq-page="deals"] .hq-deal-body > aside.rounded-3xl.border::after,
main[data-hq-page="deals"] .hq-deal-shell > section.rounded-3xl.border::after,
[data-hq-page="build"] [data-hq-section="build"] > article.rounded-3xl.border::after,
[data-hq-page="build"] [data-hq-section="prose"].rounded-3xl.border::after{ display:none !important; }

/* ---- 1b. SOLID reading surface — the guide body (.hq-content-surface) -------
   The guide article body is the canonical .hq-content-surface (glass at 0,2,1);
   this page-scoped rule wins on specificity. The guide HERO header stays glass
   (it is a page header — chrome that may scroll away — not the reading body). */
html.dark main[data-hq-page="guides"] [data-hq-section="prose"].hq-content-surface{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.06) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.04) inset, 0 14px 34px -20px rgba(0,0,0,0.65) !important;
}
html:not(.dark) main[data-hq-page="guides"] [data-hq-section="prose"].hq-content-surface{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.08) !important;
  box-shadow:0 14px 34px -22px rgba(15,23,42,0.28) !important;
}
main[data-hq-page="guides"] [data-hq-section="prose"].hq-content-surface::after{ display:none !important; }

/* ---- 1c. Kill leftover blur on NESTED reading cards inside solid sections ---
   Brand timeline / backtrack sub-cards + the deal source-note box sit on the now
   opaque sections; drop their backdrop-filter so no content layer blurs. */
html.dark main[data-hq-page="brands"] section[data-hq-section] [class*="rounded-2xl"],
html:not(.dark) main[data-hq-page="brands"] section[data-hq-section] [class*="rounded-2xl"],
html.dark main[data-hq-page="deals"] .hq-deal-body > article [class*="rounded-2xl"],
html:not(.dark) main[data-hq-page="deals"] .hq-deal-body > article [class*="rounded-2xl"]{
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
}

/* ---- 2. RHYTHM rebalance — hooked reading CARDS stay balanced ---------------
   _sections.css pads every main [data-hq-section] by 3-6rem (built for full-width
   homepage bands); on inner reading cards that over-pads vertically. Restore a
   generous-but-balanced card pad — scroll rhythm comes from block margins. */
main[data-hq-page="brands"] section[data-hq-section],
main[data-hq-page="guides"] [data-hq-section="prose"],
main[data-hq-page="deals"] [data-hq-section],
[data-hq-page="build"] [data-hq-section]{
  padding-top:clamp(1rem, 0.8rem + 1vw, 2rem) !important;
  padding-bottom:clamp(1.5rem, 1.2rem + 1.5vw, 3rem) !important;
}
/* deal hero is already two solid cards — suppress the homepage panel slab */
main[data-hq-page="deals"] [data-hq-section="deals"]::before{ display:none !important; }
/* build wrapper is a <div> (no <main>): give it the fixed-nav top clearance the
   other internal templates get from _pages.css (main:not(.hq-home)). */
[data-hq-page="build"]{ padding-top:clamp(2rem, 1.5rem + 1vw, 3rem) !important; }

/* ---- 3. READABLE MEASURE — prose held to ~65-75ch --------------------------
   Guide body ships .max-w-none; hold its reading column + the build notes to a
   measured width (deal prose is already capped in _pages.css). */
main[data-hq-page="guides"] [data-hq-section="prose"] .prose,
[data-hq-page="build"] [data-hq-section="prose"].prose{ max-width:72ch !important; }

/* ============================================================================
   4. PER-PAGE ACCENT IDENTITY (signals section purpose, homepage-style)
   ============================================================================ */

/* ---- brands = slate (neutral catalog): section number badges. The "Brand
   Wiki" eyebrow is set to text-slate directly in the template (a global emerald
   guard outranks a class-scoped override), so only the badges need recoloring. */
main[data-hq-page="brands"] .hq-h2 > span:first-child,
html.dark main[data-hq-page="brands"] .hq-h2 > span:first-child{
  background:rgba(148,163,184,0.16) !important;
  color:#64748b !important;
}
html.dark main[data-hq-page="brands"] .hq-h2 > span:first-child{ color:#94a3b8 !important; }

/* ---- guides = sky (editorial reading): the "Guide" eyebrow pill ------------ */
main[data-hq-page="guides"] header .mb-5 > span:first-child,
html.dark main[data-hq-page="guides"] header .mb-5 > span:first-child{
  background:rgba(56,189,248,0.14) !important;
  color:#0369a1 !important;
}
html.dark main[data-hq-page="guides"] header .mb-5 > span:first-child{
  background:rgba(56,189,248,0.16) !important; color:#7dd3fc !important;
}

/* ---- build = sky (guide reading): the first hero eyebrow pill -------------- */
[data-hq-page="build"] header .flex > span:first-child,
html.dark [data-hq-page="build"] header .flex > span:first-child{
  background:rgba(56,189,248,0.14) !important;
  color:#0369a1 !important;
}
html.dark [data-hq-page="build"] header .flex > span:first-child{
  background:rgba(56,189,248,0.16) !important; color:#7dd3fc !important;
}

/* ---- deals = amber (price / urgency): discount ribbon + at-a-glance discount
   + breadcrumb identity. Functional greens are untouched — emerald CTAs, the
   "Verified/retailer" trust pills, and the green "you save" figure all stay.
   Theme-explicit (html.dark / html:not(.dark)) so both variants carry the same
   specificity and win over the compiled-Tailwind emerald in either mode. */
html:not(.dark) main[data-hq-page="deals"] .hq-deal-hero [class*="absolute"][class*="bg-emerald-7"],
html:not(.dark) main[data-hq-page="deals"] .hq-deal-aside dd span[class*="bg-emerald-7"]{
  background:#b45309 !important;
}
html.dark main[data-hq-page="deals"] .hq-deal-hero [class*="absolute"][class*="bg-emerald-7"],
html.dark main[data-hq-page="deals"] .hq-deal-aside dd span[class*="bg-emerald-7"]{
  background:#d97706 !important;
}
html:not(.dark) main[data-hq-page="deals"] > .hq-deal-shell > nav a{ color:#b45309 !important; }
html.dark main[data-hq-page="deals"] > .hq-deal-shell > nav a{ color:#fbbf24 !important; }


/* ===================== _pages_c.css ===================== */
/* ============================================================================
   PAGES round-2 additions — BOT C.  Interactive tool + multi-section pages:
   home.php (news), page-pulse.php, page-compare.php, page-wishlist.php,
   page-build.php.  Loads late (after _sections/_pages) so it wins.

   DOCTRINE (founder): glass = CHROME that may hide during reading
   (controls, filters, pickers, toolbars, sidebars, pills, modals). Content that
   must be READ (product info, spec/compare tables, live feed cards, compat
   notes) = SOLID: opaque surface, subtle border, depth shadow,
   backdrop-filter:none, no refraction rim.

   Section rhythm + the generic accents come from _sections.css
   (main [data-hq-section]{padding} + deals/learn/community/brands). This file
   adds the NEW section purposes (dashboard/discovery/compare/build/wishlist),
   the per-tool glass<->solid enforcement, and page-scoped accent identity.
   Scoped by STABLE in-page hooks (#hq-build-app, main.hq-compare,
   [data-hq-section=...], body.page-template-*) so rules match on BOTH the live
   WP theme and the static clone.
   ============================================================================ */


/* ============================================================================
   1. HOME (news / blog index)  — learn = sky (editorial reading)
   3 sections hooked data-hq-section="learn". Content (featured story, news
   cards, category columns) must READ solid; the filter form + pills stay glass.
   Scoped body.blog so front-page's own learn block is untouched.
   ============================================================================ */

/* soft sky editorial hairline between the open news zones */
body.blog main [data-hq-section="learn"] + [data-hq-section="learn"]{
  border-top:1px solid rgba(56,189,248,0.12);
}
html:not(.dark) body.blog main [data-hq-section="learn"] + [data-hq-section="learn"]{
  border-top-color:rgba(2,132,199,0.12);
}
/* sky accent on the section header side-links (Skip to latest / View category) */
html.dark body.blog main [data-hq-section="learn"] > div > a[class*="emerald"],
html.dark body.blog main [data-hq-section="learn"] a.text-emerald-600{ color:#7dd3fc !important; }
html:not(.dark) body.blog main [data-hq-section="learn"] > div > a[class*="emerald"],
html:not(.dark) body.blog main [data-hq-section="learn"] a.text-emerald-600{ color:#0369a1 !important; }

/* CONTENT SOLID — featured article, news cards, category columns, empty state.
   The <form> filter and pills are neither article nor .hq-content-surface, so
   they keep their chrome glass. */
html.dark body.blog main [data-hq-section="learn"] article.hq-liquid-glass,
html.dark body.blog main [data-hq-section="learn"] .hq-content-surface{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.06) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.04) inset, 0 14px 32px -20px rgba(0,0,0,0.65) !important;
}
html:not(.dark) body.blog main [data-hq-section="learn"] article.hq-liquid-glass,
html:not(.dark) body.blog main [data-hq-section="learn"] .hq-content-surface{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.08) !important;
  box-shadow:0 14px 32px -22px rgba(15,23,42,0.28) !important;
}
/* drop the refraction rim on content surfaces (chrome-glass signature) */
body.blog main [data-hq-section="learn"] article.hq-liquid-glass::after,
body.blog main [data-hq-section="learn"] .hq-content-surface::after{ display:none !important; }


/* ============================================================================
   2. PULSE (live dashboard)  — 5 content sections hooked.
   deals=amber · trending=emerald(default) · discovery=teal · community=violet ·
   dashboard=emerald(default, KPI cards carry their own per-card tints).
   ALL live-feed cards (KPI / deal / trending / fresh / activity) = SOLID.
   Chrome that stays glass: the hero risograph panel + hero CTA/"All X" pills.
   Scoped body.page-template-page-pulse so no other page's cards are touched.
   ============================================================================ */

/* --- live-feed cards SOLID: kill the backdrop blur + opaque them -----------
   The global _glass.css treats EVERY rounded card as glass via
   `html.dark .rounded-3xl.border[class*="bg-black"]` (spec 0,4,1) — the pulse
   cards match it through their `dark:bg-black/60` utility. Beat it: lead with
   html.dark / html:not(.dark) + [data-hq-section] + the utility class (spec
   0,4,3) and fold background + filter:none + full border + depth into ONE rule
   so the SOLID treatment wins as a unit. */
html.dark body.page-template-page-pulse main [data-hq-section] .backdrop-blur-3xl{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.07) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.04) inset, 0 14px 32px -20px rgba(0,0,0,0.65) !important;
}
html:not(.dark) body.page-template-page-pulse main [data-hq-section] .backdrop-blur-3xl{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.08) !important;
  box-shadow:0 14px 32px -22px rgba(15,23,42,0.16) !important;
}
/* drop the refraction rim the glass system paints on these cards (::after) —
   the rim is a chrome-glass signature; content reads solid. */
body.page-template-page-pulse main [data-hq-section] .backdrop-blur-3xl::after{ display:none !important; }

/* --- per-section accent identity (recolor the icon-tile: bg + glyph) --------
   hq_pulse_heading() renders  h2 > span:first-child (the tile) > svg.
   Setting the tile color also recolors the currentColor svg glyph. */
/* deals = amber */
html.dark body.page-template-page-pulse [data-hq-section="deals"] h2 > span:first-child,
html:not(.dark) body.page-template-page-pulse [data-hq-section="deals"] h2 > span:first-child{
  background:rgba(245,158,11,0.14) !important; color:#f59e0b !important;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,0.24) !important;
}
/* discovery (fresh in catalog) = teal */
html.dark body.page-template-page-pulse [data-hq-section="discovery"] h2 > span:first-child,
html:not(.dark) body.page-template-page-pulse [data-hq-section="discovery"] h2 > span:first-child{
  background:rgba(20,184,166,0.14) !important; color:#14b8a6 !important;
  box-shadow:inset 0 0 0 1px rgba(20,184,166,0.24) !important;
}
/* community (activity feed) = violet */
html.dark body.page-template-page-pulse [data-hq-section="community"] h2 > span:first-child,
html:not(.dark) body.page-template-page-pulse [data-hq-section="community"] h2 > span:first-child{
  background:rgba(167,139,250,0.16) !important; color:#a78bfa !important;
  box-shadow:inset 0 0 0 1px rgba(167,139,250,0.26) !important;
}
/* trending stays emerald (brand default) — no override needed. */


/* ============================================================================
   3. WISHLIST (shopping workspace)  — 3 sections hooked data-hq-section="wishlist".
   accent = rose (saved / shopping). The manager section (select + list controls)
   is CHROME -> keep glass. The product cards + empty states (.hq-content-surface
   INSIDE a section) carry product info -> SOLID.  Scoped by the section hook so
   it matches on the clone (body is page-template-default there).
   ============================================================================ */

/* rose accent on the "Continue shopping" eyebrow */
html.dark [data-hq-section="wishlist"] p.text-emerald-600,
html.dark body.page-template-page-wishlist [data-hq-section="wishlist"] p[class*="text-emerald-400"]{ color:#fb7185 !important; }
html:not(.dark) [data-hq-section="wishlist"] p.text-emerald-600{ color:#e11d48 !important; }

/* CONTENT SOLID — product cards + empty states (descendant .hq-content-surface).
   The manager (the SECTION element itself carrying .hq-content-surface) is NOT a
   descendant, so this leaves the control panel glassy = chrome. */
html.dark [data-hq-section="wishlist"] .hq-content-surface{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(255,255,255,0.06) !important;
  box-shadow:0 1px 0 rgba(255,255,255,0.04) inset, 0 14px 32px -20px rgba(0,0,0,0.65) !important;
}
html:not(.dark) [data-hq-section="wishlist"] .hq-content-surface{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border:1px solid rgba(15,23,42,0.08) !important;
  box-shadow:0 14px 32px -22px rgba(15,23,42,0.20) !important;
}
[data-hq-section="wishlist"] .hq-content-surface::after{ display:none !important; }
/* the manager control panel keeps chrome glass — restate so a later utility
   can't accidentally solidify it (it IS the section element). */
section.hq-content-surface[data-hq-section="wishlist"]{ position:relative; }


/* ============================================================================
   4. COMPARE (head-to-head tool)  — chrome=glass / result=SOLID (KEY).
   CHROME (glass, keep): hero search box, results dropdown, example match-up
   pickers (.hq-matchup). CONTENT (SOLID): the comparison RESULT — the wide
   #comparison-table-wrap (table + sticky header/first-col cells) and the compact
   #compare-vs 2-product card (both tagged data-hq-solid).
   ============================================================================ */

/* result SOLID: strip blur on the wrap, the VS card, and every blurred cell */
main.hq-compare #comparison-table-wrap,
main.hq-compare #comparison-table-wrap [class*="backdrop-blur"],
main.hq-compare #compare-vs,
main.hq-compare [data-hq-solid]{
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
}
/* opaque surfaces so the data reads cleanly (dark) */
html.dark main.hq-compare #comparison-table-wrap,
html.dark main.hq-compare #compare-vs{
  background:#111318 !important;
  border-color:rgba(255,255,255,0.08) !important;
}
html.dark main.hq-compare #comparison-table-wrap thead th,
html.dark main.hq-compare #comparison-table-wrap [class*="bg-black/80"],
html.dark main.hq-compare #comparison-table-wrap [class*="bg-black/30"]{
  background:#12141a !important;
}
html.dark main.hq-compare #comparison-table-wrap [class*="bg-white/30"],
html.dark main.hq-compare #comparison-table-wrap tbody td[class*="sticky"]{
  background:#12141a !important;
}
/* opaque surfaces (light) */
html:not(.dark) main.hq-compare #comparison-table-wrap,
html:not(.dark) main.hq-compare #compare-vs{
  background:#ffffff !important;
  border-color:rgba(15,23,42,0.10) !important;
}
html:not(.dark) main.hq-compare #comparison-table-wrap thead th,
html:not(.dark) main.hq-compare #comparison-table-wrap [class*="bg-white/80"],
html:not(.dark) main.hq-compare #comparison-table-wrap [class*="bg-white/30"]{
  background:#ffffff !important;
}
/* depth so the result block separates from the ambient bg */
main.hq-compare #comparison-table-wrap,
main.hq-compare #compare-vs{
  box-shadow:0 18px 40px -24px rgba(0,0,0,0.5) !important;
}

/* CHROME stays glass — assert the match-up pickers keep their translucency+blur
   (they are controls that load a comparison). No-op safeguard against a broad
   solidify ever leaking onto them. */
main.hq-compare .hq-matchup{
  -webkit-backdrop-filter:blur(10px) !important; backdrop-filter:blur(10px) !important;
}


/* ============================================================================
   5. BUILD (PC builder tool)  — chrome=glass / content=SOLID (KEY).
   The builder ships its OWN inline <style> (purge-proofed .hq-* classes) which
   loads after this sheet, so every rule here is #hq-build-app-scoped + !important
   to win. Split:
     CHROME (glass):  the sticky Build-Summary sidebar shell (.hq-summary-card),
                      the mode switch, "Choose X" pickers, the pick modal.
     CONTENT (solid): a chosen part's info (.hq-build-slot--filled / .hq-slot-
                      selected), the compatibility panel + checklist, parts-list
                      rows — the facts a builder must READ.
   ============================================================================ */

/* --- CHROME: make the summary sidebar genuine glass (translucent + blur) ---- */
#hq-build-app .hq-summary-card{
  -webkit-backdrop-filter:blur(16px) saturate(140%) !important;
          backdrop-filter:blur(16px) saturate(140%) !important;
}
html.dark #hq-build-app .hq-summary-card{
  background:rgba(10,11,13,0.55) !important;
  border-color:rgba(255,255,255,0.10) !important;
}
html:not(.dark) #hq-build-app .hq-summary-card{
  background:rgba(255,255,255,0.55) !important;
  border-color:rgba(148,163,184,0.28) !important;
}

/* --- CONTENT: a chosen part's card reads SOLID (opaque, no translucency) ---- */
html.dark #hq-build-app .hq-build-slot--filled{
  background:#12141a !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border-color:rgba(255,255,255,0.08) !important;
}
html:not(.dark) #hq-build-app .hq-build-slot--filled{
  background:#ffffff !important;
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
  border-color:rgba(15,23,42,0.10) !important;
}

/* --- CONTENT: compatibility panel + checklist + parts-list = SOLID ----------
   Keep the ok/warn/fail STATUS tint (it carries meaning) but make it opaque and
   ensure no blur, so the compat facts read as a solid content block. */
#hq-build-app .hq-compat-panel,
#hq-build-app #hq-partslist{
  -webkit-backdrop-filter:none !important; backdrop-filter:none !important;
}
html.dark #hq-build-app .hq-compat--idle{ background:#141720 !important; }
html.dark #hq-build-app .hq-compat--ok{ background:#0c241c !important; }
html.dark #hq-build-app .hq-compat--warn{ background:#241a09 !important; }
html.dark #hq-build-app .hq-compat--fail{ background:#241012 !important; }
html:not(.dark) #hq-build-app .hq-compat--idle{ background:#f8fafc !important; }
html:not(.dark) #hq-build-app .hq-compat--ok{ background:#ecfdf5 !important; }
html:not(.dark) #hq-build-app .hq-compat--warn{ background:#fffbeb !important; }
html:not(.dark) #hq-build-app .hq-compat--fail{ background:#fef2f2 !important; }
html.dark #hq-build-app #hq-partslist{ background:#111318 !important; }
html:not(.dark) #hq-build-app #hq-partslist{ background:#ffffff !important; }

/* --- CHROME stays glass: the pick modal (part-picker overlay) keeps its blur - */
#hq-pick-modal{ -webkit-backdrop-filter:blur(8px) !important; backdrop-filter:blur(8px) !important; }
