/* ============================================================
   Public Safety & Justice for All PAC
   Brand palette sampled from the committee seal:
   navy #21326F  ·  red #E31B23
   ============================================================ */

/* ── Design tokens ─────────────────────────────────────────── */
:root{
  /* Brand */
  --navy-950:#0A1230;
  --navy-900:#101B3D;
  --navy-800:#16265A;
  --navy-700:#21326F;   /* seal navy */
  --navy-600:#2C4290;
  --navy-500:#3D57B0;
  --navy-100:#E8ECF7;
  --navy-050:#F3F6FC;

  --red-700:#A81118;
  --red-600:#C1141B;
  --red-500:#E31B23;    /* seal red */
  --red-300:#F4737A;

  --ink:#111827;
  --ink-soft:#42506B;
  --line:#DCE3F0;
  --white:#FFFFFF;
  --cream:#F7F9FD;

  /* Type */
  --font-display:"Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --font-body:"Source Sans 3", "Source Sans Pro", -apple-system, BlinkMacSystemFont,
              "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --step--1:clamp(.83rem, .80rem + .16vw, .94rem);
  --step-0: clamp(1rem, .96rem + .22vw, 1.14rem);
  --step-1: clamp(1.15rem, 1.07rem + .40vw, 1.42rem);
  --step-2: clamp(1.36rem, 1.20rem + .78vw, 1.95rem);
  --step-3: clamp(1.66rem, 1.36rem + 1.45vw, 2.70rem);
  --step-4: clamp(2.05rem, 1.50rem + 2.65vw, 3.85rem);
  --step-5: clamp(2.35rem, 1.45rem + 4.30vw, 4.85rem);

  /* Space */
  --gap:clamp(1rem, .7rem + 1.4vw, 1.75rem);
  --section-y:clamp(4rem, 2.6rem + 6.4vw, 8.5rem);
  --wrap:76rem;
  --pad-x:clamp(1.15rem, .6rem + 2.6vw, 3rem);

  --radius:16px;
  --radius-lg:24px;
  --shadow-sm:0 1px 2px rgba(16,27,61,.06), 0 4px 14px rgba(16,27,61,.06);
  --shadow-md:0 10px 30px rgba(16,27,61,.10), 0 2px 8px rgba(16,27,61,.06);
  --shadow-lg:0 26px 70px rgba(10,18,48,.28);

  --header-h:clamp(64px, 58px + 1.6vw, 82px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ── Reset / base ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){ html{scroll-behavior:smooth} }
html{scroll-padding-top:calc(var(--header-h) + 1rem)}

body{
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:var(--step-0);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.08;
  letter-spacing:-.02em;
  margin:0;
  text-wrap:balance;
}
p{margin:0}
img,svg,picture{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
ul,ol,dl{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit}

:focus-visible{
  outline:3px solid var(--red-500);
  outline-offset:3px;
  border-radius:6px;
}

.wrap{width:min(100% - (var(--pad-x) * 2), var(--wrap));margin-inline:auto}

.visually-hidden{
  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;
}
.skip-link{
  position:absolute;left:50%;top:0;translate:-50% -140%;
  z-index:999;background:var(--red-500);color:#fff;font-weight:700;
  padding:.85rem 1.5rem;border-radius:0 0 12px 12px;text-decoration:none;
  transition:translate .2s var(--ease);
}
.skip-link:focus{translate:-50% 0}

/* ── Shared bits ───────────────────────────────────────────── */
.eyebrow{
  font-family:var(--font-display);
  font-size:var(--step--1);
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--red-600);
  margin-bottom:1rem;
}
.eyebrow--light{color:var(--red-300)}

.section{padding-block:var(--section-y);position:relative}
.section__title{font-size:var(--step-3);color:var(--navy-900);max-width:20ch}
.section__title em{font-style:normal;color:var(--red-600)}
.section__title--light{color:#fff;max-width:22ch}
.section__title--light em{color:var(--red-300)}
.section__head{max-width:44rem;margin-bottom:clamp(2.5rem,1.6rem+3.4vw,4rem)}

/* ── Buttons ───────────────────────────────────────────────── */
.btn{
  --btn-bg:var(--navy-700);
  --btn-fg:#fff;
  --btn-bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  padding:.95em 1.7em;
  font-family:var(--font-display);
  font-size:var(--step--1);
  font-weight:700;
  letter-spacing:.045em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--btn-fg);
  background:var(--btn-bg);
  border:2px solid var(--btn-bd);
  border-radius:999px;
  cursor:pointer;
  box-shadow:var(--shadow-sm);
  transition:transform .22s var(--ease), box-shadow .22s var(--ease),
             background-color .22s var(--ease), color .22s var(--ease),
             border-color .22s var(--ease);
}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.btn:active{transform:translateY(0)}
.btn--primary{--btn-bg:var(--red-500);--btn-bd:var(--red-500)}
.btn--primary:hover{--btn-bg:var(--red-600)}
.btn--red{--btn-bg:var(--red-500);--btn-bd:var(--red-500)}
.btn--red:hover{--btn-bg:var(--red-600)}
.btn--outline{--btn-bg:transparent;--btn-fg:var(--navy-700);--btn-bd:var(--navy-700);box-shadow:none}
.btn--outline:hover{--btn-bg:var(--navy-700);--btn-fg:#fff}
.btn--ghost{
  --btn-bg:rgba(255,255,255,.09);--btn-fg:#fff;--btn-bd:rgba(255,255,255,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:none;
}
.btn--ghost:hover{--btn-bg:#fff;--btn-fg:var(--navy-800);--btn-bd:#fff}
.btn--lg{font-size:var(--step-0);padding:1.05em 2em}
.btn__ext,.btn__ico{width:1.05em;height:1.05em;flex:none}

/* ── Header ────────────────────────────────────────────────── */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  height:var(--header-h);
  display:flex;align-items:center;
  background:transparent;
  transition:background-color .3s var(--ease), box-shadow .3s var(--ease),
             backdrop-filter .3s var(--ease);
}
.site-header.is-stuck{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 1px 0 var(--line), 0 8px 26px rgba(16,27,61,.08);
}
/* A backdrop-filter makes this element the containing block for its
   position:fixed children, which would clip the full-screen mobile nav to the
   header's own height. Drop the filter for as long as the menu is open. */
.site-header.is-nav-open{
  backdrop-filter:none;-webkit-backdrop-filter:none;
  background:transparent;box-shadow:none;
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(100% - (var(--pad-x)*2), var(--wrap))}

.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;min-width:0}
.brand__mark{
  width:clamp(38px,34px + 1.1vw,48px);height:auto;flex:none;
  filter:drop-shadow(0 2px 6px rgba(10,18,48,.30));
  transition:transform .3s var(--ease);
}
.brand:hover .brand__mark{transform:rotate(-6deg) scale(1.05)}
.brand__text{
  display:grid;font-family:var(--font-display);font-weight:700;
  line-height:1.06;letter-spacing:-.01em;
  font-size:clamp(.72rem,.66rem + .30vw,.90rem);
  color:#fff;text-shadow:0 1px 10px rgba(10,18,48,.45);
  transition:color .3s var(--ease), text-shadow .3s var(--ease);
}
.brand__text em{font-style:normal;color:var(--red-300)}
.brand__pac{color:var(--red-300);letter-spacing:.10em}
.site-header.is-stuck .brand__text,
.site-header.is-solid .brand__text{color:var(--navy-800);text-shadow:none}
.site-header.is-stuck .brand__text em,
.site-header.is-stuck .brand__pac,
.site-header.is-solid .brand__text em,
.site-header.is-solid .brand__pac{color:var(--red-500)}

.nav__list{display:flex;align-items:center;gap:clamp(1rem,.4rem + 1.5vw,2.1rem)}
.nav__list a{
  position:relative;text-decoration:none;
  font-family:var(--font-display);font-weight:600;
  font-size:var(--step--1);letter-spacing:.03em;
  color:#fff;text-shadow:0 1px 10px rgba(10,18,48,.45);
  padding-block:.35rem;
  transition:color .25s var(--ease), text-shadow .25s var(--ease);
}
.nav__list a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:var(--red-500);border-radius:2px;
  transform:scaleX(0);transform-origin:left;
  transition:transform .28s var(--ease);
}
.nav__list a:hover::after,.nav__list a:focus-visible::after{transform:scaleX(1)}
.site-header.is-stuck .nav__list a,
.site-header.is-solid .nav__list a{color:var(--navy-800);text-shadow:none}
.nav__cta{
  background:var(--red-500);color:#fff !important;text-shadow:none !important;
  padding:.6rem 1.25rem !important;border-radius:999px;
  transition:background-color .25s var(--ease), transform .25s var(--ease);
}
.nav__cta::after{display:none}
.nav__cta:hover{background:var(--red-600);transform:translateY(-1px)}

/* Mobile toggle */
.nav-toggle{
  display:none;background:none;border:0;cursor:pointer;
  width:44px;height:44px;align-items:center;justify-content:center;
  margin-right:-6px;
}
.nav-toggle__box{position:relative;width:24px;height:16px;display:block}
.nav-toggle__bar,
.nav-toggle__bar::before,
.nav-toggle__bar::after{
  position:absolute;left:0;width:24px;height:2.5px;border-radius:3px;
  background:#fff;box-shadow:0 1px 6px rgba(10,18,48,.4);
  transition:transform .3s var(--ease), opacity .18s var(--ease), background-color .3s var(--ease);
}
.nav-toggle__bar{top:7px}
.nav-toggle__bar::before{content:"";top:-7px}
.nav-toggle__bar::after{content:"";top:7px}
.site-header.is-stuck .nav-toggle__bar,
.site-header.is-stuck .nav-toggle__bar::before,
.site-header.is-stuck .nav-toggle__bar::after,
.site-header.is-solid .nav-toggle__bar,
.site-header.is-solid .nav-toggle__bar::before,
.site-header.is-solid .nav-toggle__bar::after{background:var(--navy-800);box-shadow:none}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar{background:transparent !important;box-shadow:none}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before{transform:translateY(7px) rotate(45deg);background:var(--navy-800)}
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after{transform:translateY(-7px) rotate(-45deg);background:var(--navy-800)}

/* Over the open navy overlay the header reverts to its light-on-dark treatment,
   otherwise the stuck styles leave navy text on a navy panel. */
.site-header.is-nav-open .brand__text{color:#fff;text-shadow:none}
.site-header.is-nav-open .brand__text em,
.site-header.is-nav-open .brand__pac{color:var(--red-300)}
.site-header.is-nav-open .nav-toggle__bar::before,
.site-header.is-nav-open .nav-toggle__bar::after{background:#fff}

.scroll-progress{
  position:absolute;left:0;bottom:0;height:3px;width:100%;
  background:linear-gradient(90deg,var(--red-500),var(--navy-500));
  transform:scaleX(var(--p,0));transform-origin:left;
  opacity:0;transition:opacity .3s var(--ease);
}
.site-header.is-stuck .scroll-progress,
.site-header.is-solid .scroll-progress{opacity:1}

@media (max-width:820px){
  .nav-toggle{display:flex}
  .nav{
    position:fixed;top:0;left:0;
    width:100vw;height:100vh;height:100dvh;
    z-index:-1;
    background:linear-gradient(165deg,var(--navy-900),var(--navy-700));
    display:grid;place-items:center;
    opacity:0;visibility:hidden;
    transition:opacity .32s var(--ease), visibility .32s;
  }
  .nav.is-open{opacity:1;visibility:visible}
  .nav__list{flex-direction:column;gap:1.6rem;text-align:center}
  .nav__list a{
    color:#fff !important;text-shadow:none !important;
    font-size:var(--step-2);font-weight:700;
    opacity:0;translate:0 14px;
    transition:opacity .4s var(--ease) calc(var(--d,0) * 60ms),
               translate .4s var(--ease) calc(var(--d,0) * 60ms);
  }
  .nav.is-open .nav__list a{opacity:1;translate:0 0}
  .nav__cta{font-size:var(--step-1) !important;padding:.75rem 2rem !important;margin-top:.5rem}
}

/* ── Hero ──────────────────────────────────────────────────── */
.hero{
  position:relative;
  min-height:100svh;
  display:grid;align-items:center;
  padding-block:calc(var(--header-h) + clamp(1.25rem,.9rem + 1.2vw,2.25rem))
               clamp(3.75rem,3rem + 2.6vw,6rem);
  isolation:isolate;
  overflow:hidden;
}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{
  width:100%;height:100%;object-fit:cover;object-position:50% 42%;
  transform:scale(1.06);
  animation:heroDrift 26s var(--ease) forwards;
}
@keyframes heroDrift{to{transform:scale(1)}}
.hero__scrim{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,
      rgba(10,18,48,.70) 0%,
      rgba(18,31,74,.44) 22%,
      rgba(18,31,74,.46) 52%,
      rgba(10,18,48,.72) 82%,
      rgba(10,18,48,.88) 100%),
    radial-gradient(115% 78% at 50% 38%, transparent 32%, rgba(10,18,48,.30) 100%);
}
.hero__inner{
  position:relative;text-align:center;color:#fff;
  display:grid;justify-items:center;gap:clamp(.8rem,.55rem + 1vw,1.35rem);
}
.hero__badge{
  width:clamp(78px,58px + 4.6vw,112px);height:auto;
  filter:drop-shadow(0 14px 34px rgba(0,0,0,.45));
  animation:fadeUp .8s var(--ease) both;
}
.hero__title{
  font-size:var(--step-5);font-weight:800;letter-spacing:-.035em;line-height:.98;
  display:grid;gap:.06em;
  text-shadow:0 4px 40px rgba(0,0,0,.35);
}
.hero__title-a{animation:fadeUp .85s var(--ease) .14s both}
.hero__title-b{
  background:linear-gradient(96deg,var(--red-300) 0%,var(--red-500) 42%,#FF6B72 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:fadeUp .85s var(--ease) .22s both;
}
@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .hero__title-b{color:var(--red-300);background:none}
}
.hero__lede{
  max-width:56ch;font-size:var(--step-1);line-height:1.55;
  color:rgba(255,255,255,.90);text-wrap:pretty;
  animation:fadeUp .85s var(--ease) .30s both;
}
.hero__actions{
  display:flex;flex-wrap:wrap;gap:.85rem;justify-content:center;
  margin-top:.4rem;
  animation:fadeUp .85s var(--ease) .46s both;
}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}

.hero__scroll{
  position:absolute;left:50%;bottom:clamp(1.2rem,2vh,2.4rem);translate:-50% 0;
  width:26px;height:44px;border:2px solid rgba(255,255,255,.45);border-radius:999px;
  display:grid;justify-items:center;padding-top:8px;
  transition:border-color .25s var(--ease);
}
.hero__scroll:hover{border-color:#fff}
.hero__scroll-line{
  width:3px;height:8px;border-radius:3px;background:#fff;
  animation:wheel 1.9s var(--ease) infinite;
}
@keyframes wheel{0%{opacity:0;transform:translateY(-4px)}35%{opacity:1}100%{opacity:0;transform:translateY(14px)}}
@media (max-height:640px){ .hero__scroll{display:none} }

/* ── Countdown ─────────────────────────────────────────────── */
.countdown{
  width:100%;max-width:40rem;margin-top:.6rem;
  animation:fadeUp .85s var(--ease) .38s both;
}
.countdown__label{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;
  gap:.35rem .75rem;margin-bottom:.85rem;
}
.countdown__kicker{
  font-family:var(--font-display);font-weight:700;
  font-size:var(--step--1);letter-spacing:.22em;text-transform:uppercase;
  color:var(--red-300);
}
.countdown__date{
  font-family:var(--font-display);font-weight:600;
  font-size:var(--step-1);color:#fff;letter-spacing:-.01em;
}
.countdown__grid{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:clamp(.5rem,.3rem + .8vw,.9rem);
}
.cd{
  display:grid;justify-items:center;gap:.25rem;
  padding:clamp(.75rem,.5rem + .8vw,1.15rem) .4rem;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.20);
  border-radius:var(--radius);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}
.cd__num{
  font-family:var(--font-display);font-weight:800;
  font-size:clamp(1.6rem,1.1rem + 2.4vw,2.9rem);
  line-height:1;letter-spacing:-.04em;
  color:#fff;font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum" 1;
}
.cd__unit{
  font-family:var(--font-display);font-weight:600;
  font-size:clamp(.6rem,.55rem + .18vw,.72rem);
  letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.countdown.is-past .countdown__grid{opacity:.45}

/* ── Mission ───────────────────────────────────────────────── */
.section--mission{background:var(--white)}
.section--mission::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 50% at 82% 0%, rgba(44,66,144,.06), transparent 70%);
}
.mission{position:relative;z-index:1;max-width:56rem}
.mission__body{
  margin-top:1.5rem;font-size:var(--step-1);line-height:1.65;
  color:var(--ink-soft);max-width:62ch;text-wrap:pretty;
}

/* ── Priorities ────────────────────────────────────────────── */
.section--priorities{
  background:linear-gradient(168deg,var(--navy-900) 0%,var(--navy-700) 52%,var(--navy-800) 100%);
  color:#fff;overflow:hidden;
}
.section--priorities::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:
    radial-gradient(48% 42% at 12% 8%, rgba(61,87,176,.42), transparent 62%),
    radial-gradient(42% 40% at 92% 88%, rgba(227,27,35,.20), transparent 66%);
}
.pillars{
  position:relative;z-index:1;
  display:grid;gap:var(--gap);
  grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));
}
.pillar{
  padding:clamp(1.5rem,1.1rem + 1.5vw,2.15rem);
  background:rgba(255,255,255,.055);
  border:1px solid rgba(255,255,255,.13);
  border-radius:var(--radius-lg);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  display:grid;align-content:start;gap:.9rem;
  transition:transform .35s var(--ease), background-color .35s var(--ease),
             border-color .35s var(--ease), box-shadow .35s var(--ease);
}
.pillar:hover{
  transform:translateY(-6px);
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.28);
  box-shadow:var(--shadow-lg);
}
.pillar__icon{
  width:clamp(46px,42px + 1vw,54px);aspect-ratio:1;
  display:grid;place-items:center;border-radius:14px;
  background:linear-gradient(140deg,var(--red-500),var(--red-700));
  color:#fff;box-shadow:0 8px 22px rgba(227,27,35,.34);
}
.pillar__icon svg{width:55%;height:55%}
.pillar__title{font-size:var(--step-1);color:#fff;letter-spacing:-.015em}
.pillar__body{color:rgba(255,255,255,.80);font-size:var(--step-0);line-height:1.62;text-wrap:pretty}

/* ── Election band ─────────────────────────────────────────── */
.section--election{background:var(--cream)}
.election{
  display:grid;gap:clamp(2rem,1.4rem+3vw,4rem);
  grid-template-columns:1fr;align-items:center;
}
@media (min-width:900px){ .election{grid-template-columns:1.35fr .95fr} }
.election__body{
  margin-top:1.25rem;font-size:var(--step-1);color:var(--ink-soft);
  max-width:52ch;line-height:1.6;text-wrap:pretty;
}
.election__actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.9rem}
.election__note{margin-top:1rem;font-size:var(--step--1);color:var(--ink-soft);opacity:.85}

.election__card{
  padding:clamp(1.6rem,1.2rem+1.6vw,2.4rem);
  border-radius:var(--radius-lg);
  background:linear-gradient(158deg,var(--navy-800),var(--navy-700) 55%,var(--navy-900));
  color:#fff;box-shadow:var(--shadow-lg);
  display:grid;gap:1.1rem;text-align:center;
  position:relative;overflow:hidden;
}
.election__card::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 55% at 50% -10%, rgba(255,255,255,.16), transparent 68%);
}
.election__card-label,
.election__card-foot{
  position:relative;z-index:1;
  font-family:var(--font-display);font-weight:700;
  font-size:var(--step--1);letter-spacing:.18em;text-transform:uppercase;
}
.election__card-label{color:var(--red-300)}
.election__card-foot{color:rgba(255,255,255,.62);letter-spacing:.10em}
.countdown--compact{margin-top:0;max-width:none;animation:none}
.countdown--compact .countdown__grid{gap:.5rem;position:relative;z-index:1}
.countdown--compact .cd{padding:.85rem .25rem;background:rgba(255,255,255,.09)}
.countdown--compact .cd__num{font-size:clamp(1.35rem,1rem + 1.5vw,2.1rem)}

/* ── Contact ───────────────────────────────────────────────── */
.section--contact{
  background:linear-gradient(140deg,var(--navy-900),var(--navy-950));
  color:#fff;text-align:center;position:relative;overflow:hidden;
}
.section--contact::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(55% 60% at 50% 0%, rgba(227,27,35,.18), transparent 70%);
}
.contact{position:relative;z-index:1;display:grid;justify-items:center;gap:1.1rem}
.contact .section__title{margin-inline:auto}
.contact__body{max-width:46ch;color:rgba(255,255,255,.78);font-size:var(--step-1)}
.contact .btn{
  margin-top:.8rem;max-width:100%;
  text-transform:none;letter-spacing:0;
  font-size:clamp(.85rem,.62rem + .95vw,1.14rem);
  padding-inline:clamp(1.2rem,.7rem + 2vw,2rem);
  overflow-wrap:anywhere;
}

/* ── Footer ────────────────────────────────────────────────── */
.site-footer{background:var(--navy-950);color:rgba(255,255,255,.72);padding-block:clamp(2.5rem,1.8rem+2.4vw,3.75rem) 1.5rem}
.footer-inner{
  display:grid;gap:clamp(1.75rem,1.2rem+2vw,2.75rem);align-items:center;
  grid-template-columns:1fr;text-align:center;justify-items:center;
}
@media (min-width:880px){
  .footer-inner{grid-template-columns:auto 1fr auto;text-align:left;justify-items:start}
  .disclaimer{text-align:center;justify-self:center}
  .footer__nav{justify-self:end}
}
.footer__brand{display:flex;align-items:center;gap:.85rem}
.footer__brand img{width:52px;height:auto;flex:none}
.footer__name{
  font-family:var(--font-display);font-weight:700;line-height:1.2;
  font-size:var(--step-0);color:#fff;max-width:15ch;text-wrap:balance;
}
.footer__name em{font-style:normal;color:var(--red-300)}

.disclaimer{
  border:1px solid rgba(255,255,255,.20);
  border-radius:12px;padding:.85rem 1.4rem;
  background:rgba(255,255,255,.045);
}
.disclaimer__main{
  font-family:var(--font-display);font-weight:700;
  font-size:var(--step--1);color:#fff;letter-spacing:.01em;
}
.disclaimer__id{
  font-size:var(--step--1);color:var(--red-300);
  font-weight:600;letter-spacing:.10em;margin-top:.15rem;
}

.footer__nav ul{display:flex;flex-wrap:wrap;gap:1.1rem;justify-content:center}
.footer__nav a{
  text-decoration:none;font-size:var(--step--1);font-weight:600;
  color:rgba(255,255,255,.75);
  border-bottom:1px solid transparent;padding-bottom:2px;
  transition:color .22s var(--ease), border-color .22s var(--ease);
}
.footer__nav a:hover{color:#fff;border-color:var(--red-500)}

.footer-legal{
  margin-top:clamp(2rem,1.5rem+1.6vw,2.75rem);
  padding-top:1.35rem;border-top:1px solid rgba(255,255,255,.12);
  display:flex;flex-wrap:wrap;gap:.9rem;
  align-items:center;justify-content:space-between;
  font-size:var(--step--1);color:rgba(255,255,255,.55);
}
.to-top{
  text-decoration:none;font-weight:600;color:rgba(255,255,255,.75);
  transition:color .22s var(--ease);
}
.to-top:hover{color:#fff}

/* ── Scroll reveal ─────────────────────────────────────────── */
/* Hidden state is scoped to .js: with JavaScript disabled or failed,
   every section renders normally instead of staying invisible. */
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{
    opacity:0;transform:translateY(26px);
    transition:opacity .7s var(--ease) calc(var(--i,0) * 90ms),
               transform .7s var(--ease) calc(var(--i,0) * 90ms);
    will-change:opacity, transform;
  }
  .js [data-reveal].is-visible{opacity:1;transform:none}
}

/* ── Reduced motion ────────────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important;scroll-behavior:auto !important;
  }
  .hero__media img{transform:none}
}

/* ── Print ─────────────────────────────────────────────────── */
@media print{
  .site-header,.hero__scroll,.hero__actions,.nav-toggle,.to-top,.scroll-progress{display:none !important}
  .hero{min-height:auto}
  .hero__scrim,.hero__media{display:none}
  body,.hero__inner,.section--priorities,.section--contact,.site-footer{background:#fff !important;color:#000 !important}
  .pillar,.election__card{border:1px solid #999;background:#fff !important;color:#000 !important}
  .hero__title,.hero__lede,.pillar__title,.pillar__body,.countdown__date{color:#000 !important;-webkit-text-fill-color:#000 !important}
}

/* ============================================================
   Legal / interior pages (privacy.html)
   ============================================================ */
.page-legal{background:var(--white)}

/* Interior header is always solid — there is no hero behind it. */
.site-header.is-solid{
  background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  box-shadow:0 1px 0 var(--line), 0 8px 26px rgba(16,27,61,.08);
}

.legal-hero{
  padding-block:calc(var(--header-h) + clamp(2.25rem,1.6rem + 2.6vw,3.75rem))
               clamp(2.25rem,1.6rem + 2.6vw,3.5rem);
  background:linear-gradient(158deg,var(--navy-900) 0%,var(--navy-700) 62%,var(--navy-800) 100%);
  color:#fff;position:relative;overflow:hidden;
}
.legal-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(52% 60% at 88% 0%, rgba(227,27,35,.20), transparent 68%);
}
.legal-hero > .wrap{position:relative;z-index:1}
.legal-hero__title{
  font-size:var(--step-4);color:#fff;letter-spacing:-.035em;margin-top:.6rem;
}
.legal-hero__sub{
  margin-top:.9rem;max-width:48ch;
  font-size:var(--step-1);color:rgba(255,255,255,.80);text-wrap:pretty;
}

.crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;
  font-size:var(--step--1);color:rgba(255,255,255,.62)}
.crumbs li + li::before{content:"/";margin-right:.55rem;color:rgba(255,255,255,.38)}
.crumbs a{color:var(--red-300);text-decoration:none;font-weight:600}
.crumbs a:hover{text-decoration:underline}

.legal-dates{
  display:flex;flex-wrap:wrap;gap:.6rem 2.25rem;
  margin-top:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);
  padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.18);
}
.legal-dates dt{
  font-family:var(--font-display);font-weight:700;
  font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;
  color:var(--red-300);
}
.legal-dates dd{margin:0;font-weight:600;color:#fff}

.legal{padding-block:clamp(2.75rem,2rem + 3.2vw,5rem)}
.legal__grid{display:grid;gap:clamp(2rem,1.4rem + 2.4vw,3.5rem);grid-template-columns:1fr}
@media (min-width:940px){
  .legal__grid{grid-template-columns:16rem minmax(0,1fr);align-items:start}
  .legal__toc{position:sticky;top:calc(var(--header-h) + 1.5rem)}
}

.legal__toc{
  padding:1.4rem 1.5rem;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--navy-050);
}
.legal__toc-title{
  font-family:var(--font-display);font-weight:700;
  font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;
  color:var(--red-600);margin-bottom:.85rem;
}
.legal__toc ol{counter-reset:toc;display:grid;gap:.55rem}
.legal__toc li{counter-increment:toc;display:flex;gap:.6rem;align-items:baseline}
.legal__toc li::before{
  content:counter(toc);flex:none;
  font-family:var(--font-display);font-weight:700;font-size:.72rem;
  color:var(--navy-500);min-width:1.1em;
}
.legal__toc a{
  text-decoration:none;font-size:var(--step--1);font-weight:600;
  color:var(--ink-soft);line-height:1.4;
  transition:color .2s var(--ease);
}
.legal__toc a:hover{color:var(--red-600)}

.legal__body{max-width:68ch}
.legal__intro{
  font-size:var(--step-1);line-height:1.62;color:var(--ink-soft);
  padding-bottom:clamp(1.5rem,1.1rem + 1.4vw,2.1rem);
  border-bottom:1px solid var(--line);text-wrap:pretty;
}
.legal__body h2{
  font-size:var(--step-2);color:var(--navy-800);
  margin-top:clamp(2.1rem,1.6rem + 1.6vw,3rem);margin-bottom:.85rem;
  scroll-margin-top:calc(var(--header-h) + 1.5rem);
}
.legal__body h3{
  font-size:var(--step-0);color:var(--navy-700);font-weight:700;
  margin-top:1.6rem;margin-bottom:.45rem;letter-spacing:-.005em;
}
.legal__body p{margin-bottom:1.05rem;color:var(--ink-soft);line-height:1.7;text-wrap:pretty}
.legal__body strong{color:var(--navy-800);font-weight:700}
.legal__list{display:grid;gap:.65rem;margin:0 0 1.25rem;padding-left:0}
.legal__list li{
  position:relative;padding-left:1.6rem;color:var(--ink-soft);line-height:1.65;
}
.legal__list li::before{
  content:"";position:absolute;left:.15rem;top:.62em;
  width:7px;height:7px;border-radius:50%;background:var(--red-500);
}
.legal__contact{margin-top:1.5rem}
