/*
 * DWF Custom Theme - style-guide.css (3.0.0)
 *
 * The theme's foundation stylesheet now that Avada is gone. Loads first on
 * every front-end page; base.css, dwf-gtg-component-library.css and the
 * template stylesheets build on it.
 *
 * SOURCES (Eric's style guide bundle, 9/30/26 -- "the theme must use style
 * guide CSS styles"):
 *   - Divided We Fail -- Content & Design System Guide (canonical, v2.4.1):
 *     component CSS lives in dwf-gtg-component-library.css, already a copy
 *     of that guide's <style> block (re-checked 10/2/26; the three drifts
 *     found were fixed there).
 *   - Typography & Text System -- Design System Companion: section 3 below.
 *     Bare h1-h6 / body sizes match base.css already (H1-H3 were confirmed
 *     live), so they are not redefined here.
 *   - Component Docs -- Layout & Content Patterns: section 4 below, verbatim
 *     minus the doc page's own chrome (tab demos, code panels, page header).
 *   - dwf-master-stylesheet.css (v2): tokens and the WordPress bridge in
 *     section 5. --muted is #66615b per Eric's 9/2/26 decision.
 *
 * Section 1 replaces the parts of Avada's core CSS the site still relied
 * on: page width (Avada's 1170px site width and 30px side padding, read
 * from live page source), the .fusion-row / #main wrappers header.php and
 * footer.php still open, and WordPress core classes (alignment, captions,
 * screen-reader text, galleries, embeds, pagination).
 */

/* ============ 1. FOUNDATION (was Avada core) ============ */
/* 3.4.0 (Eric, 10/29/26: "fonts not consistent in this section", state
   Official Links and the Voting tab headings): on Windows, the system groups
   Arial Black into the Arial family as its weight 900, so every Arial
   heading or label set at font-weight 800/900 came out in the wide Arial
   Black face while weight 700 text next to it stayed normal Arial. These
   faces pin "Arial" to the real Arial files: weights up to 500 use Arial
   Regular, 600 and up use Arial Bold. One change fixes it on every page,
   plugin output included. local() only reads fonts already installed;
   where Arial is not installed nothing loads and the next family in the
   stack (Helvetica, sans-serif) is used as before. */
@font-face{font-family:Arial;src:local("Arial"),local("ArialMT");font-weight:100 500;font-style:normal}
@font-face{font-family:Arial;src:local("Arial Bold"),local("Arial-BoldMT");font-weight:600 1000;font-style:normal}
@font-face{font-family:Arial;src:local("Arial Italic"),local("Arial-ItalicMT");font-weight:100 500;font-style:italic}
@font-face{font-family:Arial;src:local("Arial Bold Italic"),local("Arial-BoldItalicMT");font-weight:600 1000;font-style:italic}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
img,video{max-width:100%;height:auto}
iframe,embed,object{max-width:100%}
table{border-collapse:collapse;max-width:100%}

#boxed-wrapper,#wrapper{width:100%;overflow-x:clip}
#main{position:relative;padding:0 30px 60px}
#main > .fusion-row{display:flex;flex-wrap:wrap;width:100%;max-width:var(--dwf-site-width);margin:0 auto}
#main > .fusion-row > *{flex:1 1 100%;min-width:0}
@media (max-width:800px){#main{padding-left:20px;padding-right:20px}}
/* 3.0.1: the old-theme wrappers in base.css are sized 90vw. Inside the
   1170px content row they fill the row instead, so archives, chapter pages
   and plugin pages line up with the header and footer. */
#main :is(.dwf-archive-wrap,.dwf-shell,.dwf-entry-content-wrap,.dwf-toc-container,.gtg-shell,.psc-chapter-hub-wrap,.dwf-plugin-template-content,.dwf-civic-container,.dwf-civic-toolkit,.dwf-generated-state-page,.dwf-state-page-full){width:100%;max-width:100%;margin-left:0;margin-right:0}

.screen-reader-text,.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.screen-reader-text:focus,.skip-link:focus{position:fixed!important;top:8px;left:8px;width:auto;height:auto;padding:10px 16px;margin:0;clip:auto;clip-path:none;background:var(--paper);color:var(--ink);z-index:100000;font-weight:700;text-decoration:none;box-shadow:0 0 0 2px var(--ink)}

.alignleft{float:left;margin:.3em 1.5em 1em 0}
.alignright{float:right;margin:.3em 0 1em 1.5em}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.alignnone{margin:.3em 0 1em}
.wp-caption{max-width:100%;margin-bottom:1.5em}
.wp-caption-text,.wp-element-caption,figcaption{font-size:12px;line-height:1.4;color:var(--muted);margin-top:6px}
.gallery{display:grid;grid-template-columns:repeat(var(--gallery-cols,3),1fr);gap:12px;margin-bottom:1.5em}
.gallery-columns-2{--gallery-cols:2}.gallery-columns-4{--gallery-cols:4}.gallery-columns-5{--gallery-cols:5}
.gallery-item{margin:0}
.wp-block-embed__wrapper{position:relative}
.sticky,.bypostauthor{display:block}
.clearfix::after,.fusion-clearfix::after{content:"";display:table;clear:both}

.dwf-featured-image{margin:0 0 24px}
.dwf-featured-image img{display:block;width:100%;height:auto}
.page-links,.post-page-numbers{font-size:13px;font-weight:700}
.page-links{margin:24px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pagination,.nav-links{display:flex;flex-wrap:wrap;gap:8px;margin:32px 0;font-size:13px;font-weight:700}
.nav-links .page-numbers{display:inline-block;padding:6px 12px;border:1px solid var(--rule);border-radius:6px;text-decoration:none;color:var(--ink)}
.nav-links .page-numbers.current{background:var(--ink);border-color:var(--ink);color:#fff}

/* ============ 2. TOKENS (master stylesheet v2) ============ */
:root{
  --ink:#171717; --muted:#66615b; --rule:#ddd7cf; --soft:#f4f1ec; --paper:#fff;
  --font:Arial,Helvetica,sans-serif; --serif:Georgia,'Times New Roman',serif;
  --mono:'Courier New',Courier,monospace;
  --president:#1F3F6B; --house:#9C2140; --senate:#541D34; --judicial:#246042; --agencies:#3E6BA3;
  --flag-bg:#fff4f4; --flag-red:#B3261E;
  /* 3.4.5 (Eric, 10/29/26: "pick one, any one and use it ... make one change in the stylesheet and it changes everywhere"): ONE red for the whole site -- page titles, buttons, links, kickers, the old "rust" and "rust-dark". Change --dwf-red here and every one of them changes. (--house stays its own Style Guide branch token; same value today.) */
  --dwf-red:#9C2140;
  --rust:var(--dwf-red); --rust-dark:var(--dwf-red);
  /* Layout & Content Patterns tokens (aligned to the palette above) */
  --offer-dark:#1F3F6B; --offer-accent:var(--dwf-red); --offer-good:#246042; --offer-soft:#f4f1ec;
  /* Site width (3.4.6 Grok 890): fluid max-width, not a fixed width.
     Eric 10/29: avoid fixed widths; percentages are better. Cap remains ~1400px
     so large screens still have a readable measure; below that the shell uses
     the full window less gutters. Header/footer read the same token.
     Prefer % / fr / clamp() for columns; use this token only as max-width. */
  --dwf-site-width: 96%; /* 3.4.19 (Eric: widths in %, no fixed px): was min(100% - 40px, 1400px) */
}

/* ============ 3. TYPOGRAPHY & TEXT SYSTEM (companion doc) ============ */
h6{text-transform:uppercase}
.display-serif{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(36px,5vw,56px);line-height:.95;letter-spacing:-.04em;color:var(--rust)}
.display-sans{font-family:var(--font);font-weight:900;font-size:clamp(28px,4vw,48px);line-height:.95;letter-spacing:-.05em}
.h1{font-size:clamp(48px,7vw,96px);font-weight:700;letter-spacing:-.06em;line-height:.92}
.h2{font-size:clamp(30px,4vw,50px);font-weight:700;letter-spacing:-.025em;line-height:1.3}
.h2-serif{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(24px,2.8vw,36px);letter-spacing:-.025em}
.h3{font-size:clamp(22px,2.4vw,32px);font-weight:700;letter-spacing:-.025em;line-height:1.3}
.h4{font-size:20px;font-weight:700;letter-spacing:-.025em;line-height:1.3}
.h5{font-size:17px;font-weight:700;letter-spacing:-.025em;line-height:1.3}
.h6{font-size:15px;font-weight:700;letter-spacing:-.025em;line-height:1.3;text-transform:uppercase}
.body{font-size:18px;line-height:1.3;color:var(--ink)}
.body-muted{font-size:18px;line-height:1.3;color:var(--muted)}
.lede{font-size:20px;line-height:1.4;font-weight:400;color:var(--ink)}
.small{font-size:13.5px;line-height:1.45;color:var(--muted)}
.caption{font-size:12px;line-height:1.4;color:var(--muted)}
.footnote{font-size:12px;line-height:1.5;color:var(--muted);border-top:1px solid var(--rule);padding-top:8px;margin-top:14px}
.footnote sup{color:var(--rust)}
.kicker{font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--rust)}
.micro{font-size:10px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pull{font-family:var(--serif);font-style:italic;font-size:clamp(22px,2.6vw,32px);line-height:1.2;color:var(--rust);text-align:center}
.attr{font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;text-align:right;margin-top:10px}
.btn-label{display:inline-flex;font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;padding:12px 16px;background:var(--rust-dark);color:#fff}
.link-action{font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);text-decoration:none;border-bottom:1px solid rgba(166,66,43,.35);padding-bottom:1px}
.link-action::after{content:' →'}
.data-label{display:inline-flex;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;padding:6px 8px;border:1px solid var(--rule);color:var(--ink)}
:not(body).tag{display:inline-flex;font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;background:var(--soft);border-radius:999px}
.mono{font-family:var(--mono);font-size:13px;line-height:1.5}
.drop{float:left;font-family:var(--serif);font-size:52px;line-height:0.85;padding-right:10px;color:var(--rust);font-weight:400}

/* ============ 4. LAYOUT & CONTENT PATTERNS (Component Docs) ============ */
/* ========== COMPONENT: Hero Lead ========== */
.hero-lead{margin-bottom:8px}
.hero-lead__kicker{margin:0 0 12px;color:var(--offer-accent);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:900}
.hero-lead__title{margin:0;font-size:clamp(2.6rem,5vw,4.75rem);line-height:.94;letter-spacing:-.06em;font-weight:900;color:var(--ink)}
.hero-lead__title em{color:var(--offer-accent);font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.04em}
.hero-lead__deck{margin:22px 0 0;max-width:none;width:100%;color:var(--muted);font-size:clamp(1.02rem,1.3vw,1.18rem);line-height:1.5}

/* ========== COMPONENT: Statement Strip ========== */
/* 3.3.2: the two columns end up about the same height (Eric, Federalist No. 1 notes, 10/28/26): equal columns, a smaller statement, a larger body. */
.statement-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:36px;align-items:center;padding:32px 36px;background:var(--soft);border-radius:4px}
.statement-strip__statement{margin:0;font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.12;letter-spacing:-.035em;font-weight:900;color:var(--ink)}
.statement-strip__body{margin:0;color:var(--muted);font-size:1.15rem;line-height:1.55}
@media(max-width:720px){
  .statement-strip{grid-template-columns:1fr;gap:18px;padding:24px}
}

/* ========== COMPONENT: Offer Pair ========== */
.offer-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.offer-card{display:flex;flex-direction:column;min-height:320px;padding:32px;border-radius:4px}
.offer-card--free{background:var(--offer-soft);border-top:0;color:var(--ink)}
.offer-card--premium{background:var(--offer-dark);border-top:0;color:#fff;box-shadow:0 16px 36px rgba(31,63,107,.18)}
.offer-card__label{margin:0 0 8px;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;font-weight:900}
.offer-card--free .offer-card__label{color:var(--offer-accent)}
.offer-card--premium .offer-card__label{color:#f4bec8}
.offer-card__title{margin:0;font-size:clamp(1.85rem,2.8vw,2.75rem);line-height:.95;letter-spacing:-.04em;font-weight:900}
.offer-card__price{display:block;margin:10px 0 0;font-size:1.9rem;line-height:1;font-weight:900}
.offer-card--free .offer-card__price{color:var(--offer-accent)}
.offer-card--premium .offer-card__price{color:#fff}
.offer-card__copy{margin:16px 0 0;font-size:1rem;line-height:1.45;max-width:420px}
.offer-card--premium .offer-card__copy{color:rgba(255,255,255,.88)}
.offer-card__list{margin:20px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.offer-card__list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-size:.95rem;font-weight:700}
.offer-card__list li::before{content:"✓";width:22px;height:22px;border-radius:99px;display:inline-grid;place-items:center;background:var(--offer-good);color:#fff;font-size:.72rem;font-weight:900;flex-shrink:0}
.offer-card__actions{margin-top:auto;padding-top:28px;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}
.offer-btn{display:inline-flex;justify-content:center;align-items:center;min-height:46px;padding:12px 20px;border:2px solid var(--offer-dark);background:var(--offer-dark);color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.09em;font-size:.74rem;font-weight:900;border-radius:2px}
.offer-card--premium .offer-btn{background:#fff;border-color:#fff;color:var(--offer-dark)}
.offer-btn--ghost{background:transparent;color:var(--offer-dark)}
.offer-card--premium .offer-btn--ghost{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
@media(max-width:800px){
  .offer-pair{grid-template-columns:1fr}
}

/* Reverse order helper (premium first) */
.offer-pair--premium-first{direction:rtl}
.offer-pair--premium-first > *{direction:ltr}

/* ========== COMPONENT: Process Paths ========== */
.process-paths{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.process-path{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:24px}
.process-path__label{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--offer-accent);display:block;margin-bottom:10px;padding-bottom:10px}
.process-path__title{font-size:18px;font-weight:400;letter-spacing:-.01em;margin-bottom:10px;font-family:var(--serif)}
.process-path__desc{font-size:14px;line-height:1.55;color:var(--muted);margin-bottom:16px}
.process-path__steps{display:flex;flex-direction:column}
.process-step{display:flex;gap:12px;align-items:flex-start;padding:9px 0}
.process-step:first-child{padding-top:0}
.process-step__num{width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;flex:0 0 22px;display:grid;place-items:center;font-size:10px;font-weight:800}
.process-step__text{font-size:13px;line-height:1.5;color:var(--muted)}
.process-step__text strong{color:var(--ink);font-size:12px;font-weight:800;display:block;margin-bottom:2px}
@media(max-width:720px){.process-paths{grid-template-columns:1fr}}

/* ========== COMPONENT: Entry Directory ========== */
.entry-directory{display:grid;grid-template-columns:1fr 1fr;gap:0}
.entry-item{display:grid;grid-template-columns:72px 1fr;gap:0;padding:18px 20px 18px 0}
.entry-item:nth-child(even){padding-left:20px;padding-right:0}
.entry-item__roman{font-size:28px;font-style:italic;color:var(--offer-accent);line-height:1;font-family:var(--serif);padding-top:2px}
.entry-item__body{padding-left:12px}
.entry-item__meta{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:3px}
.entry-item__title{font-size:13px;font-weight:800;display:block;margin-bottom:4px;line-height:1.3}
.entry-item__desc{font-size:13px;line-height:1.5;color:var(--muted)}
@media(max-width:720px){
  .entry-directory{grid-template-columns:1fr}
  .entry-item:nth-child(even){padding-left:0}
}

/* ========== COMPONENT: Numbered Concept Grid ========== */
.concept-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.concept-card{border:1px solid var(--rule);border-radius:10px;padding:26px;background:#fff}
.concept-card__num{font-size:52px;font-style:italic;color:#d9cdb4;line-height:1;display:block;margin-bottom:10px;font-family:var(--serif)}
.concept-card__title{font-size:15px;font-weight:800;display:block;margin-bottom:7px}
.concept-card__desc{font-size:14px;line-height:1.6;color:var(--muted);margin-bottom:12px}
.concept-card__cite{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--offer-accent);padding-top:10px;display:block}
@media(max-width:900px){.concept-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.concept-grid{grid-template-columns:1fr}}

/* ========== COMPONENT: Feature Overview ========== */
.feature-overview{background:var(--soft);border-radius:12px;overflow:hidden;color:var(--ink);position:relative;border:1px solid var(--rule)}
.feature-overview.is-dark{background:#1F3F6B;color:#fff;border:0}
.feature-overview.is-fullbleed{border-radius:0}
.feature-overview__top{padding:36px 40px 28px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:36px;align-items:start}
/* 3.1.0 (10/12/26): light is the default Feature Overview (dark text on
   the soft background); add .is-dark for the old white-on-blue look.
   From the Style Guide rebuild of 10/11/26. No page or template used the
   component, so nothing on the site changes look. */
.feature-overview__eyebrow{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:10px}
.feature-overview__title{font-size:clamp(28px,3.5vw,42px);font-weight:400;letter-spacing:-.03em;line-height:1.08;margin-bottom:12px;font-family:var(--serif)}
.feature-overview__title em{font-style:italic;color:var(--rust)}
.feature-overview__desc{font-size:15px;line-height:1.65;color:var(--muted);max-width:440px;margin-bottom:20px}
.feature-overview__link{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);border-bottom:1px solid rgba(166,66,43,.35);padding-bottom:1px;text-decoration:none}
.feature-overview__stats{display:flex;flex-direction:column;gap:8px}
.feature-overview__stat{background:#fff;border:1px solid var(--rule);border-radius:8px;padding:14px 16px}
.feature-overview__stat-num{font-size:32px;font-style:italic;color:var(--rust);line-height:1;display:block;margin-bottom:3px;font-family:var(--serif)}
.feature-overview__stat-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.feature-overview__grid{padding:24px 40px 32px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.feature-overview__cell{background:#fff;border:1px solid var(--rule);border-radius:8px;padding:14px}
.feature-overview__cell-label{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px}
.feature-overview__cell-title{font-size:12px;font-weight:800;color:var(--ink);line-height:1.3}
/* Dark variant: white text on dark blue background */
.feature-overview.is-dark .feature-overview__eyebrow{color:rgba(255,255,255,.5)}
.feature-overview.is-dark .feature-overview__title em{color:#e8b4a0}
.feature-overview.is-dark .feature-overview__desc{color:rgba(255,255,255,.7)}
.feature-overview.is-dark .feature-overview__link{color:rgba(255,255,255,.75);border-bottom-color:rgba(255,255,255,.3)}
.feature-overview.is-dark .feature-overview__stat{background:rgba(255,255,255,.07);border-color:transparent}
.feature-overview.is-dark .feature-overview__stat-num{color:#e8b4a0}
.feature-overview.is-dark .feature-overview__stat-label{color:rgba(255,255,255,.5)}
.feature-overview.is-dark .feature-overview__cell{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1)}
.feature-overview.is-dark .feature-overview__cell-label{color:rgba(255,255,255,.45)}
.feature-overview.is-dark .feature-overview__cell-title{color:rgba(255,255,255,.9)}
@media(max-width:900px){
  .feature-overview__top{grid-template-columns:1fr}
  .feature-overview__grid{grid-template-columns:repeat(2,1fr)}
}

/* ========== COMPONENT: Moment Timeline ========== */
.moment-timeline{display:flex;flex-direction:column;position:relative;padding-left:0}
.moment-timeline::before{content:'';position:absolute;left:88px;top:6px;bottom:6px;width:2px;background:var(--rule)}
.moment-item{display:grid;grid-template-columns:72px 28px 1fr;gap:0 12px;align-items:start;padding:0 0 28px;position:relative}
.moment-item:last-child{padding-bottom:0}
.moment-item__year{order:1;font-size:13px;font-weight:800;color:var(--offer-accent);white-space:nowrap;padding-top:1px;text-align:right}
.moment-item__dot{order:2;width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--rule);margin-top:4px;justify-self:center;z-index:1}
.moment-item > div{order:3}
.moment-item__body{min-width:0}
.moment-item__title{font-size:14px;font-weight:800;display:block;margin-bottom:4px;line-height:1.35;color:var(--ink)}
.moment-item__desc{font-size:14px;line-height:1.55;color:var(--ink)}

/* ========== COMPONENT: Concept Explainer Band ========== */
.concept-band{background:#14223a;border-radius:12px;padding:48px 40px 40px;color:#fff}
.concept-band__kicker{margin:0 0 12px;color:#c9a227;font-size:11px;font-weight:900;letter-spacing:.19em;text-transform:uppercase}
.concept-band__title{margin:0 0 28px;font-size:clamp(28px,4vw,42px);font-weight:400;letter-spacing:-.03em;line-height:1.1;font-family:var(--serif);max-width:720px}
.concept-band__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.concept-band__card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:22px 20px}
.concept-band__card-title{margin:0 0 8px;font-size:16px;font-weight:800;line-height:1.25}
.concept-band__card-desc{margin:0;font-size:14px;line-height:1.5;color:rgba(255,255,255,.72)}
@media(max-width:800px){.concept-band__grid{grid-template-columns:1fr}}

/* ========== COMPONENT: Discussion List ========== */
.discussion-list{display:grid;grid-template-columns:.75fr 1.25fr;gap:48px;align-items:start}
.discussion-list__intro h3{margin:0 0 10px;font-size:clamp(26px,3vw,35px);letter-spacing:-.04em;line-height:1.05;font-weight:900}
.discussion-list__intro p{margin:0;color:var(--muted);font-size:15px;line-height:1.45;max-width:340px}
.discussion-list__items{display:flex;flex-direction:column}
.discussion-list__item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:start;padding:16px 0;text-decoration:none;color:inherit}
.discussion-list__item + .discussion-list__item{border-top:1px solid var(--rule)}
.discussion-list__item-title{margin:0 0 4px;font-size:15px;font-weight:800;line-height:1.25}
.discussion-list__item-desc{margin:0;color:var(--muted);font-size:13px;line-height:1.4}
.discussion-list__item-link{color:var(--offer-accent);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding-top:2px}
@media(max-width:720px){.discussion-list{grid-template-columns:1fr;gap:24px}}

/* ========== COMPONENT: Tool Promo Row ========== */
.tool-promo{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr) minmax(0,1.1fr);gap:28px;align-items:center;padding:28px 0}
.tool-promo__intro .kicker{margin:0 0 8px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.tool-promo__intro h3{margin:0 0 8px;font-size:clamp(20px,2.4vw,26px);letter-spacing:-.03em;line-height:1.1;font-weight:900}
.tool-promo__intro p{margin:0;color:var(--muted);font-size:14px;line-height:1.4}
.tool-promo__item{display:grid;grid-template-columns:70px minmax(0,1fr);gap:16px;align-items:start;padding-left:28px;border-left:1px solid var(--rule)}
.tool-promo__icon{width:62px;height:62px;object-fit:contain;opacity:.9}
.tool-promo__item h4{margin:0 0 4px;font-size:17px;font-weight:800}
.tool-promo__item p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.35}
.tool-promo__dl{display:inline-flex;background:var(--offer-accent);color:#fff;padding:6px 14px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;text-decoration:none;border-radius:2px}
@media(max-width:900px){
  .tool-promo{grid-template-columns:1fr;gap:20px}
  .tool-promo__item{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:18px}
}

/* ========== COMPONENT: Topic Columns ========== */
.topic-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.topic-col{display:flex;flex-direction:column;padding-right:22px}
.topic-col + .topic-col{padding-left:22px}
.topic-col__head{display:flex;align-items:center;gap:10px;min-height:36px;padding-bottom:10px;margin-bottom:4px}
.topic-col__head-label{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--offer-accent)}
.topic-col__item{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:11px 0}
.topic-col__item + .topic-col__item{border-top:1px solid var(--rule)}
.topic-col__item::before{content:'•';color:var(--offer-accent);font-size:14px;line-height:1.2;margin-top:1px}
.topic-col__item-title{display:block;font-size:14px;font-weight:700;line-height:1.2;margin-bottom:3px}
.topic-col__item-desc{display:block;font-size:13px;line-height:1.35;color:var(--muted)}
@media(max-width:900px){.topic-columns{grid-template-columns:1fr 1fr}.topic-col,.topic-col + .topic-col{padding:0 12px}}
@media(max-width:560px){.topic-columns{grid-template-columns:1fr}}

/* ========== COMPONENT: Office Rows ========== */
.office-rows{border-top:1px solid var(--rule)}
.office-row{display:grid;grid-template-columns:72px minmax(0,1fr) 280px;gap:24px;align-items:start;padding:22px 0}
.office-row + .office-row{border-top:1px solid var(--rule)}
.office-row__num{font-family:var(--serif);font-size:36px;font-style:italic;color:var(--offer-accent);line-height:1}
.office-row__main h3{margin:0 0 6px;font-size:20px;font-weight:400;line-height:1.15}
.office-row__main p{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted);max-width:640px}
.office-row__links{display:flex;flex-direction:column}
.office-row__links a{display:flex;justify-content:space-between;gap:10px;padding:8px 0;font-size:13px;font-weight:800;text-decoration:none;color:var(--ink)}
.office-row__links a + a{border-top:1px solid var(--rule)}
.office-row__links a::after{content:'→';color:var(--offer-accent)}
@media(max-width:800px){.office-row{grid-template-columns:48px 1fr;gap:16px}.office-row__links{grid-column:2}}

/* ========== COMPONENT: Type Cards ========== */
.type-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:12px;overflow:hidden}
.type-card{background:#fff;padding:26px 28px;display:flex;flex-direction:column}
.type-card__head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px}
.type-card__chip{font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:3px 8px;border-radius:3px;background:rgba(156,33,64,.09);color:var(--offer-accent)}
.type-card__num{font-size:32px;font-style:italic;line-height:1;color:var(--rule);font-family:var(--serif)}
.type-card__title{margin:0 0 6px;font-size:18px;font-weight:400;letter-spacing:-.02em;line-height:1.15}
.type-card__desc{margin:0 0 16px;font-size:13.5px;line-height:1.55;color:var(--muted);flex:1}
.type-card__facts{display:flex;flex-direction:column;margin-bottom:14px}
.type-card__fact{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:6px 0;border-top:1px solid var(--rule);font-size:12px}
.type-card__fact:first-child{border-top:0;padding-top:0}
.type-card__fact-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.type-card__fact-val{color:var(--ink);line-height:1.4}
.type-card__foot{border-top:1px solid var(--rule);padding-top:12px;display:flex;align-items:center;justify-content:space-between}
.type-card__tag{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.type-card__link{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--offer-accent);text-decoration:none}
@media(max-width:900px){.type-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.type-cards{grid-template-columns:1fr}}

/* ========== COMPONENT: Document Archive ========== */
.doc-archive{background:var(--soft);border-radius:12px;padding:32px 36px}
.doc-archive__head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:20px;padding-bottom:18px}
.doc-archive__head h3{margin:0 0 6px;font-size:24px;font-weight:400;letter-spacing:-.02em}
.doc-archive__head p{margin:0;font-size:14.5px;line-height:1.5;color:var(--muted);max-width:560px}
.doc-archive__filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding-bottom:16px}
.doc-archive__filter{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--rule);border-radius:100px;color:var(--muted);background:#fff;cursor:pointer}
.doc-archive__filter.is-active{background:var(--ink);border-color:var(--ink);color:#fff}
.doc-list{display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.doc-row{display:grid;grid-template-columns:100px minmax(0,1fr) 100px 120px;gap:0;align-items:start}
.doc-row + .doc-row{border-top:1px solid var(--rule)}
.doc-row__id{padding:14px 12px;font-size:12px}
.doc-row__id-num{display:block;font-weight:800;margin-bottom:2px}
.doc-row__id-date{display:block;font-size:10px;color:var(--muted)}
.doc-row__main{padding:14px 16px;border-left:1px solid var(--rule)}
.doc-row__chip{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:3px;background:rgba(156,33,64,.09);color:var(--offer-accent);display:inline-block;margin-bottom:5px}
.doc-row__title{display:block;font-size:13px;font-weight:800;line-height:1.35;margin-bottom:3px}
.doc-row__summary{font-size:12px;line-height:1.45;color:var(--muted);margin:0 0 4px}
.doc-row__meta{font-size:10px;color:var(--muted);font-weight:700}
.doc-row__status{padding:14px 10px;border-left:1px solid var(--rule);text-align:center}
.doc-row__status-chip{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:2px 7px;border-radius:3px;display:inline-block}
.doc-row__status-chip.is-active{background:rgba(36,96,66,.1);color:#246042}
.doc-row__status-chip.is-revoked{background:rgba(156,33,64,.1);color:var(--offer-accent)}
.doc-row__topics{padding:14px 12px;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:4px}
.doc-row__topic{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:4px;background:rgba(31,63,107,.08);color:var(--president);display:inline-block;align-self:flex-start}
@media(max-width:800px){.doc-row{grid-template-columns:1fr}.doc-row__id,.doc-row__main,.doc-row__status,.doc-row__topics{border-left:0;border-top:1px solid var(--rule)}}

/* ========== COMPONENT: Date Cards ========== */
.date-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.date-card{border:1px solid var(--rule);border-radius:10px;padding:24px 22px;background:#fff;display:flex;flex-direction:column;min-height:180px}
.date-card__year{display:block;font-family:var(--serif);font-style:italic;font-size:36px;line-height:1;color:var(--offer-accent);margin-bottom:10px}
.date-card__title{display:block;font-size:15px;font-weight:800;line-height:1.2;margin-bottom:6px}
.date-card__desc{margin:0 0 14px;font-size:13.5px;line-height:1.45;color:var(--muted);flex:1}
.date-card__foot{display:block;padding-top:10px;border-top:0;font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--offer-accent);text-align:right;text-decoration:none}
@media(max-width:900px){.date-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.date-cards{grid-template-columns:1fr}}

/* ========== COMPONENT: Hub Blocks ========== */
.hub-blocks{display:grid;grid-template-columns:1fr 1fr;gap:48px 64px}
.hub-block__head{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;margin-bottom:12px}
.hub-block__icon{width:48px;height:48px;object-fit:contain;opacity:.9}
.hub-block__title{margin:0 0 4px;font-size:18px;font-weight:800;line-height:1.15}
.hub-block__desc{margin:0;font-size:14px;line-height:1.4;color:var(--muted)}
.hub-block__list{border-top:0;margin-left:68px}
.hub-block__list a{display:grid;grid-template-columns:10px 1fr;gap:8px;padding:9px 0;border-bottom:0;font-size:14px;font-weight:700;text-decoration:none;color:var(--ink)}
.hub-block__list a::before{content:'•';color:var(--ink)}
@media(max-width:800px){.hub-blocks{grid-template-columns:1fr;gap:32px}.hub-block__list{margin-left:0}}

/* ========== COMPONENT: Side Tabs ========== */
.side-tabs{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px;align-items:start}
.side-tabs__nav{display:flex;flex-direction:column}
.side-tabs__nav button{appearance:none;border:0;border-bottom:1px solid var(--rule);width:100%;padding:14px 0;background:transparent;text-align:left;display:flex;justify-content:space-between;gap:12px;cursor:pointer;color:var(--ink);font-size:14px;font-weight:700;line-height:1.25;font-family:inherit}
.side-tabs__nav button::after{content:'→';color:var(--offer-accent)}
.side-tabs__nav button.is-active{color:var(--offer-accent)}
.side-tabs__panel{border:1px solid var(--rule);padding:26px 28px;background:#fff;min-height:280px}
.side-tabs__panel h3{margin:0 0 8px;font-size:22px;line-height:1.1;letter-spacing:-.03em;font-weight:800}
.side-tabs__panel > p{margin:0 0 18px;font-size:15px;line-height:1.5;color:var(--muted);max-width:640px}
.side-tabs__features{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}
.side-tabs__feature{display:grid;grid-template-columns:40px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.side-tabs__feature-icon{width:36px;height:36px;object-fit:contain;opacity:.85}
.side-tabs__feature b{display:block;font-size:14px;line-height:1.2;margin-bottom:3px}
.side-tabs__feature span{display:block;font-size:13px;line-height:1.4;color:var(--muted)}
@media(max-width:800px){.side-tabs{grid-template-columns:1fr}.side-tabs__features{grid-template-columns:1fr}}
/* 3.2.4 (Eric 10/13: "tabs do not switch"): Side Tabs Enhanced switches
   with radio inputs and labels, no JavaScript, the same foundation as the
   tab switcher and side-tab switcher in dwf-gtg-component-library.css.
   Markup: the inputs come first as direct children of .side-tabs, then
   .side-tabs__nav holding one <label for> per input, then
   .side-tabs__panels holding one .side-tabs__panel per input, in the same
   order. Input N shows panel N and marks label N active, so the CSS needs
   no IDs and any number of these can sit on one page (up to 8 topics).
   The older static markup (buttons plus a single panel directly inside
   .side-tabs) is not affected by these rules. */
.side-tabs > input{position:absolute;opacity:0;pointer-events:none}
.side-tabs__nav label{border-bottom:1px solid var(--rule);width:100%;padding:14px 0;text-align:left;display:flex;justify-content:space-between;gap:12px;cursor:pointer;color:var(--ink);font-size:14px;font-weight:700;line-height:1.25}
.side-tabs__nav label::after{content:'→';color:var(--offer-accent)}
.side-tabs__nav label:hover{color:var(--offer-accent)}
.side-tabs__panels > .side-tabs__panel{display:none}
.side-tabs:has(> input:nth-of-type(1):checked) .side-tabs__panels > .side-tabs__panel:nth-child(1),
.side-tabs:has(> input:nth-of-type(2):checked) .side-tabs__panels > .side-tabs__panel:nth-child(2),
.side-tabs:has(> input:nth-of-type(3):checked) .side-tabs__panels > .side-tabs__panel:nth-child(3),
.side-tabs:has(> input:nth-of-type(4):checked) .side-tabs__panels > .side-tabs__panel:nth-child(4),
.side-tabs:has(> input:nth-of-type(5):checked) .side-tabs__panels > .side-tabs__panel:nth-child(5),
.side-tabs:has(> input:nth-of-type(6):checked) .side-tabs__panels > .side-tabs__panel:nth-child(6),
.side-tabs:has(> input:nth-of-type(7):checked) .side-tabs__panels > .side-tabs__panel:nth-child(7),
.side-tabs:has(> input:nth-of-type(8):checked) .side-tabs__panels > .side-tabs__panel:nth-child(8){display:block}
.side-tabs:has(> input:nth-of-type(1):checked) .side-tabs__nav label:nth-of-type(1),
.side-tabs:has(> input:nth-of-type(2):checked) .side-tabs__nav label:nth-of-type(2),
.side-tabs:has(> input:nth-of-type(3):checked) .side-tabs__nav label:nth-of-type(3),
.side-tabs:has(> input:nth-of-type(4):checked) .side-tabs__nav label:nth-of-type(4),
.side-tabs:has(> input:nth-of-type(5):checked) .side-tabs__nav label:nth-of-type(5),
.side-tabs:has(> input:nth-of-type(6):checked) .side-tabs__nav label:nth-of-type(6),
.side-tabs:has(> input:nth-of-type(7):checked) .side-tabs__nav label:nth-of-type(7),
.side-tabs:has(> input:nth-of-type(8):checked) .side-tabs__nav label:nth-of-type(8){color:var(--offer-accent)}
.side-tabs:has(> input:nth-of-type(1):focus-visible) .side-tabs__nav label:nth-of-type(1),
.side-tabs:has(> input:nth-of-type(2):focus-visible) .side-tabs__nav label:nth-of-type(2),
.side-tabs:has(> input:nth-of-type(3):focus-visible) .side-tabs__nav label:nth-of-type(3),
.side-tabs:has(> input:nth-of-type(4):focus-visible) .side-tabs__nav label:nth-of-type(4),
.side-tabs:has(> input:nth-of-type(5):focus-visible) .side-tabs__nav label:nth-of-type(5),
.side-tabs:has(> input:nth-of-type(6):focus-visible) .side-tabs__nav label:nth-of-type(6),
.side-tabs:has(> input:nth-of-type(7):focus-visible) .side-tabs__nav label:nth-of-type(7),
.side-tabs:has(> input:nth-of-type(8):focus-visible) .side-tabs__nav label:nth-of-type(8){outline:2px solid var(--ink);outline-offset:2px}

/* ========== COMPONENT: Starter Cards ========== */
.starter-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.starter-card{border:1px solid var(--rule);border-top:4px solid var(--president);background:#fff;padding:22px 20px;min-height:170px;display:flex;flex-direction:column}
.starter-card.is-accent{border-top-color:var(--offer-accent)}
.starter-card__icon{width:32px;height:32px;object-fit:contain;margin-bottom:14px;opacity:.9}
.starter-card__title{margin:0 0 8px;font-size:18px;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.starter-card__desc{margin:0 0 14px;font-size:13.5px;line-height:1.45;color:var(--muted);flex:1}
.starter-card__link{margin-top:auto;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--offer-accent);text-decoration:none}
.starter-card__link::after{content:' →'}
@media(max-width:800px){.starter-cards{grid-template-columns:1fr}}

/* ========== COMPONENT: Compare Table ========== */
.compare-wrap{overflow-x:auto;background:#fff;border:1px solid var(--rule);border-radius:8px}
.compare-table{width:100%;min-width:720px;border-collapse:collapse;background:#fff}
.compare-table th,.compare-table td{padding:14px 16px;border-bottom:1px solid var(--rule);vertical-align:top;text-align:left}
.compare-table thead th{color:var(--offer-accent);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:900}
.compare-table tbody th{font-size:14px;font-weight:800;color:var(--ink);width:48%}
.compare-table tbody th span{display:block;margin-top:4px;color:var(--muted);font-size:12.5px;line-height:1.35;font-weight:400}
.compare-table td{font-size:13.5px;font-weight:700;line-height:1.35}
/* 3.0.4: three-column comparisons of equals (House / Senate). The base table gives the row label 48%,
   which suits a feature list with yes/no columns, not two columns of sentences. */
.compare-table--even tbody th{width:22%}
.compare-table--even td{font-weight:400;font-size:14px;line-height:1.45}
.compare-table .is-paid{background:linear-gradient(90deg,rgba(244,241,236,.7),rgba(244,241,236,0))}
.compare-status{display:inline-flex;align-items:flex-start;gap:6px}
.compare-status::before{content:"✓";display:inline-grid;place-items:center;width:16px;height:16px;margin-top:1px;border-radius:99px;background:var(--offer-good);color:#fff;font-size:.65rem;font-weight:900;flex:0 0 auto}
.compare-status--limited::before{content:"•";background:#9b6725}
.compare-status--locked{color:var(--offer-accent)}
.compare-status--locked::before{content:"—";background:var(--offer-accent)}

/* ========== COMPONENT: Phase Cards ========== */
.phase-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.phase-card{background:var(--soft);border-radius:10px;padding:20px 22px}
.phase-card__title{display:block;font-size:16px;font-weight:800;color:var(--offer-accent);margin-bottom:8px;line-height:1.2}
.phase-card__desc{margin:0;font-size:14px;line-height:1.45;color:var(--muted)}
@media(max-width:700px){.phase-cards{grid-template-columns:1fr}}

/* ========== COMPONENT: Era Strip ========== */
.era-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;background:var(--rule);border:1px solid var(--rule);border-radius:10px;overflow:hidden}
.era-cell{padding:18px 14px 16px;color:#fff;cursor:pointer;min-height:100px}
.era-cell__years{display:block;font-size:10px;font-weight:800;letter-spacing:.08em;color:rgba(255,255,255,.5);margin-bottom:5px}
.era-cell__name{display:block;font-size:13.5px;line-height:1.25;margin-bottom:4px}
.era-cell__count{display:block;font-size:10px;color:rgba(255,255,255,.4)}
.era-cell.is-founding{background:#2c4a2e}
.era-cell.is-expansion{background:#7a3b10}
.era-cell.is-civil{background:#3a1a1a}
.era-cell.is-progressive{background:#1a2e4a}
.era-cell.is-newdeal{background:#1a1e3a}
.era-cell.is-coldwar{background:#2a1a3a}
.era-cell.is-contemporary{background:#1e2a1e}
.era-detail{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:36px;padding:26px 30px;background:var(--soft);border:1px solid var(--rule);border-top:0;border-radius:0 0 10px 10px}
.era-detail__body{font-size:15px;line-height:1.6;color:var(--muted)}
.era-detail__body strong{color:var(--ink)}
.era-detail__list-label{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--rule)}
.era-detail__item{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:13px}
.era-detail__item:last-child{border-bottom:0}
.era-detail__num{font-style:italic;color:var(--offer-accent);min-width:20px}
.era-detail__name{font-weight:700;flex:1}
.era-detail__years{color:var(--muted);font-size:12px}
@media(max-width:900px){.era-strip{grid-template-columns:repeat(4,1fr)}.era-detail{grid-template-columns:1fr}}
@media(max-width:560px){.era-strip{grid-template-columns:1fr 1fr}}
/* 3.2.4 (Eric 10/13: "tabs do not switch"): Era Strip switches with radio
   inputs, no JavaScript. Wrap it in .era-switch: the inputs first (direct
   children), then .era-strip with one <label class="era-cell" for> per
   input, then .era-details with one .era-detail per input, in the same
   order. Input N shows detail N and marks cell N active (white bar under
   the cell, brighter years). Up to 8 eras. The older static markup (a
   bare .era-strip followed by one .era-detail) is not affected. */
.era-switch > input{position:absolute;opacity:0;pointer-events:none}
.era-switch .era-cell{display:block;position:relative;opacity:.72;transition:opacity .15s}
.era-switch .era-cell:hover{opacity:1}
.era-details > .era-detail{display:none}
.era-switch:has(> input:nth-of-type(1):checked) .era-details > .era-detail:nth-child(1),
.era-switch:has(> input:nth-of-type(2):checked) .era-details > .era-detail:nth-child(2),
.era-switch:has(> input:nth-of-type(3):checked) .era-details > .era-detail:nth-child(3),
.era-switch:has(> input:nth-of-type(4):checked) .era-details > .era-detail:nth-child(4),
.era-switch:has(> input:nth-of-type(5):checked) .era-details > .era-detail:nth-child(5),
.era-switch:has(> input:nth-of-type(6):checked) .era-details > .era-detail:nth-child(6),
.era-switch:has(> input:nth-of-type(7):checked) .era-details > .era-detail:nth-child(7),
.era-switch:has(> input:nth-of-type(8):checked) .era-details > .era-detail:nth-child(8){display:grid}
.era-switch:has(> input:nth-of-type(1):checked) .era-strip > .era-cell:nth-of-type(1),
.era-switch:has(> input:nth-of-type(2):checked) .era-strip > .era-cell:nth-of-type(2),
.era-switch:has(> input:nth-of-type(3):checked) .era-strip > .era-cell:nth-of-type(3),
.era-switch:has(> input:nth-of-type(4):checked) .era-strip > .era-cell:nth-of-type(4),
.era-switch:has(> input:nth-of-type(5):checked) .era-strip > .era-cell:nth-of-type(5),
.era-switch:has(> input:nth-of-type(6):checked) .era-strip > .era-cell:nth-of-type(6),
.era-switch:has(> input:nth-of-type(7):checked) .era-strip > .era-cell:nth-of-type(7),
.era-switch:has(> input:nth-of-type(8):checked) .era-strip > .era-cell:nth-of-type(8){opacity:1;box-shadow:inset 0 -4px 0 #fff}
.era-switch:has(> input:nth-of-type(1):checked) .era-strip > .era-cell:nth-of-type(1) .era-cell__years,
.era-switch:has(> input:nth-of-type(2):checked) .era-strip > .era-cell:nth-of-type(2) .era-cell__years,
.era-switch:has(> input:nth-of-type(3):checked) .era-strip > .era-cell:nth-of-type(3) .era-cell__years,
.era-switch:has(> input:nth-of-type(4):checked) .era-strip > .era-cell:nth-of-type(4) .era-cell__years,
.era-switch:has(> input:nth-of-type(5):checked) .era-strip > .era-cell:nth-of-type(5) .era-cell__years,
.era-switch:has(> input:nth-of-type(6):checked) .era-strip > .era-cell:nth-of-type(6) .era-cell__years,
.era-switch:has(> input:nth-of-type(7):checked) .era-strip > .era-cell:nth-of-type(7) .era-cell__years,
.era-switch:has(> input:nth-of-type(8):checked) .era-strip > .era-cell:nth-of-type(8) .era-cell__years{color:#fff}
.era-switch:has(> input:nth-of-type(1):focus-visible) .era-strip > .era-cell:nth-of-type(1),
.era-switch:has(> input:nth-of-type(2):focus-visible) .era-strip > .era-cell:nth-of-type(2),
.era-switch:has(> input:nth-of-type(3):focus-visible) .era-strip > .era-cell:nth-of-type(3),
.era-switch:has(> input:nth-of-type(4):focus-visible) .era-strip > .era-cell:nth-of-type(4),
.era-switch:has(> input:nth-of-type(5):focus-visible) .era-strip > .era-cell:nth-of-type(5),
.era-switch:has(> input:nth-of-type(6):focus-visible) .era-strip > .era-cell:nth-of-type(6),
.era-switch:has(> input:nth-of-type(7):focus-visible) .era-strip > .era-cell:nth-of-type(7),
.era-switch:has(> input:nth-of-type(8):focus-visible) .era-strip > .era-cell:nth-of-type(8){outline:2px solid var(--ink);outline-offset:-2px}

/* ========== COMPONENT: Resource Cards ========== */
.resource-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.resource-card{min-height:220px;padding:22px;background:#fff;border-top:4px solid var(--president);box-shadow:0 10px 24px rgba(22,35,59,.07);display:flex;flex-direction:column}
.resource-card.is-free{border-top-color:var(--offer-good)}
.resource-card.is-soon{border-top-color:var(--offer-accent)}
.resource-card__tag{margin:0 0 10px;color:var(--offer-accent);text-transform:uppercase;letter-spacing:.14em;font-size:10px;font-weight:900}
.resource-card__title{margin:0;font-size:18px;line-height:1.1;letter-spacing:-.02em;font-weight:900}
.resource-card__desc{margin:10px 0 0;color:var(--muted);font-size:13.5px;line-height:1.4;flex:1}
.resource-card__meta{margin-top:auto;padding-top:18px;display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:800}
.resource-card__meta .is-good{color:var(--offer-good)}
.resource-card__meta .is-paid{color:var(--offer-accent)}
@media(max-width:900px){.resource-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.resource-cards{grid-template-columns:1fr}}

/* ========== COMPONENT: Door Grid ========== */
.door-lead{background:var(--soft);padding:28px 32px;margin-bottom:28px}
.door-lead__kicker{margin:0 0 10px;font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.door-lead__title{margin:0 0 12px;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(28px,3.5vw,42px);line-height:1.05;color:var(--offer-accent)}
.door-lead__body{margin:0 0 18px;color:var(--muted);font-size:15px;line-height:1.45;max-width:640px}
.door-lead__btn{display:inline-flex;background:var(--offer-accent);color:#fff;padding:10px 16px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.door-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.door-card{border:1px solid var(--rule);padding:20px 18px;background:#fff;display:flex;flex-direction:column;min-height:140px}
.door-card__title{margin:0 0 6px;font-size:16px;font-weight:800;line-height:1.15}
.door-card__desc{margin:0 0 14px;font-size:13.5px;line-height:1.4;color:var(--muted);flex:1}
.door-card__link{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--offer-accent);text-decoration:none}
.door-card__link::after{content:' →'}
@media(max-width:800px){.door-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.door-grid{grid-template-columns:1fr}}


/* ============ 5. WORDPRESS BRIDGE (master stylesheet v2) ============
   :where() keeps these at zero specificity, so every component, plugin and
   template rule still wins; they only fill in what Avada used to style. */
:where(.entry-content){font-family:var(--font);line-height:1.55;color:var(--ink)}
:where(.wp-block-quote){border-left:3px solid var(--rule);padding-left:20px;margin:0 0 1.5em;font-family:var(--serif);font-style:normal;font-size:22px;line-height:1.4;color:var(--ink)}
:where(.wp-block-quote) cite{display:block;font-family:var(--font);font-style:normal;font-size:13px;color:var(--muted);margin-top:8px}
:where(.wp-block-button__link){font-family:var(--font);font-weight:700;background:var(--president);color:#fff;border-radius:6px;padding:10px 20px;text-decoration:none;display:inline-block}
:where(.wp-block-button__link):hover{background:var(--house);color:#fff}
:where(.wp-block-separator,hr){border:none;border-top:1px solid var(--rule);margin:32px 0}
:where(.wp-block-table) table{width:100%;border-collapse:collapse}
:where(.wp-block-table) th,:where(.wp-block-table) td{border:1px solid var(--rule);padding:8px 12px;text-align:left}
:where(.widget-title){font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
:where(input[type="text"],input[type="email"],input[type="search"],input[type="url"],input[type="tel"],input[type="number"],input[type="password"],input[type="date"],select,textarea){font-family:var(--font);font-size:15px;border:1px solid var(--rule);border-radius:6px;padding:10px 12px;color:var(--ink);background:#fff;max-width:100%}
:where(input[type="submit"],input[type="button"],button[type="submit"],.button){font-family:var(--font);font-weight:700;background:var(--president);color:#fff;border:none;border-radius:6px;padding:10px 20px;cursor:pointer;text-decoration:none;display:inline-block}
:where(input[type="submit"],input[type="button"],button[type="submit"],.button):hover{background:var(--house);color:#fff}
:where(button){font-family:var(--font)}

/* ============ 6. HOME PAGE FALLBACK FOR FUSION BUILDER SHORTCODES ============
   includes/fusion-fallback.php renders [fusion_*] shortcodes as plain markup
   once Avada and Fusion Builder are gone. Only the Home page (ID 64998 on
   the 10/1/26 export) still uses them. */
.dwf-fb-container{margin:0 0 48px}
.dwf-fb-row{display:flex;flex-wrap:wrap;gap:32px;align-items:center}
.dwf-fb-column{min-width:0;flex:1 1 calc(var(--dwf-fb-w,100%) - 32px)}
@media(max-width:800px){.dwf-fb-column{flex-basis:100%}}
.dwf-fb-image img{display:block;max-width:100%;height:auto;margin:0 auto}
.dwf-fb-button{display:inline-block;margin-top:8px}

/* ============ 7. FRONT PAGE HERO (3.0.1) ============
   front-page.php reuses the old Public Square Civic home hero (styles in
   base.css). That theme had no page container, so the beige band ran edge
   to edge with a 90vw inner area; here it sits inside #main's 1170px row,
   so it is pulled back out to full width and the inner area is centered. */
#main > .fusion-row > .psc-home-slider--membership{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);flex:0 0 100vw}
#main .psc-home-slider--membership .psc-home-slider__inner{margin-left:auto;margin-right:auto;width:90vw;max-width:var(--dwf-site-width)}
.dwf-front-page-content{padding-top:48px}
@media(max-width:600px){.dwf-front-page-content .wp-block-table td{display:block;width:100%;padding:8px 0}}

/* 3.4.8 Grok 890 — non-lookup form actions right-aligned (Eric 10/29).
   Lookup forms keep full-width primary button; other form footers align end. */
.dwf-form-actions:not(.dwf-lookup-actions),
.form-actions:not(.dwf-lookup-actions),
.wp-block-buttons:not(.dwf-lookup-actions) {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	gap: 12px;
}
