/* Shared site-wide styles — Matt Wilson for Secretary of State */
/* Consolidated from repeated per-page CSS. Page-specific styles remain inline. */

:root{
    --ink:#0B2545;        /* deep navy, the record */
    --ink-2:#13315C;      /* lighter navy */
    --parchment:#F6F1E7;  /* warm paper base */
    --parchment-2:#EFE6D4;/* deeper paper */
    --paper:#FFFFFF;      /* cards */
    --red:#B31942;        /* flag crimson, action */
    --red-deep:#8E1235;
    --gold:#B0842A;       /* antique gold, seal + rules */
    --gold-text:#7A5A1C;  /* darker gold, meets 4.5:1 text contrast on light backgrounds */
    --gold-soft:#D8BD84;
    --gold-on-red:#F1D9AA; /* 4.86:1 contrast on campaign red */
    --slate:#43536A;      /* secondary text */
    --line:rgba(11,37,69,.16);
    --line-soft:rgba(11,37,69,.10);
    --shadow:0 18px 50px rgba(11,37,69,.14);
    --shadow-sm:0 6px 20px rgba(11,37,69,.10);
    --wrap:1180px;
    --gutter:clamp(20px,5vw,64px);
    --section-space-desktop:64px;
    --section-space-compact-desktop:44px;
    --section-space-closing-desktop:76px;
    --section-cue-gap-desktop:30px;
  }
*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:light}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
img{max-width:100%;display:block;height:auto}
/* ---------- shared type ---------- */
  h1,h2,h3{font-family:"Fraunces",Georgia,"Times New Roman",serif;font-weight:600;line-height:1.06;margin:0;letter-spacing:-0.01em}
h3{font-size:clamp(1.25rem,2vw,1.6rem)}
.lead{font-size:clamp(1.08rem,1.5vw,1.32rem);color:var(--slate);line-height:1.55}
.docket::before{content:"";width:26px;height:1px;background:var(--gold);display:inline-block;flex:none}
.docket.on-dark{color:var(--gold-soft)}
.docket.on-dark::before{background:var(--gold-soft)}
.docket.center{justify-content:center}
.hero .docket{font-size:1.05rem;font-weight:700;letter-spacing:.04em}
.hero .docket::before{width:36px;height:2px}
/* ---------- layout ---------- */
  .wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(44px,6vw,80px);position:relative}
.section--dark{background:var(--ink);color:#EAF0F7}
.section--dark .lead{color:#B9C6D8}
.section--paper{background:var(--parchment)}
.section--band{background:var(--parchment-2)}
.rule{height:1px;background:var(--line);border:0;margin:0}
.voteband{padding:.75rem 0;text-align:center}
.voteband .wrap{font-family:"Public Sans",sans-serif;font-size:1rem;font-weight:700;letter-spacing:normal;text-transform:none;color:#fff}
.voteband--red{background:var(--red)}
.voteband--red .name-gold{color:var(--gold-on-red)}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 6px var(--parchment);border-radius:3px}
/* ---------- buttons ---------- */
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:.55rem;text-align:center;
    font-family:"Public Sans",sans-serif;font-weight:700;font-size:.98rem;letter-spacing:.01em;
    padding:.92em 1.5em;border-radius:2px;border:2px solid transparent;cursor:pointer;
    text-decoration:none;transition:transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
    line-height:1;
  }
.btn:hover{transform:translateY(-2px)}
.btn--red{background:var(--red);color:#fff;border-color:var(--red)}
.btn--red:hover{background:var(--red-deep);border-color:var(--red-deep)}
.btn--gold{background:var(--gold);color:#241a06;border-color:var(--gold)}
.btn--gold:hover{background:#c8993a;border-color:#c8993a}
.btn--navy{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--navy:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn--red-inverse{background:var(--parchment);color:var(--red);border-color:var(--parchment)}
.btn--red-inverse:hover{background:#fff;border-color:#fff}
.btn--ghost{background:rgba(11,37,69,.05);color:var(--ink);border-color:var(--line)}
.btn--ghost:hover{border-color:var(--ink);background:rgba(11,37,69,.09)}
.btn--ghost-light{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost-light:hover{border-color:#fff;background:rgba(255,255,255,.18)}
.btn:disabled,button.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.btn:disabled:hover,button.btn[disabled]:hover{transform:none}
/* ---------- CTA width system: shared across all pages ---------- */
  .btn-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:stretch}
.btn-row .btn,.hero-cta .btn,.doc-pair .btn,.fallback-actions .btn{flex:1 1 100%;max-width:100%;min-width:0}
.btn-row .btn:not(:only-child),.hero-cta .btn:not(:only-child),.doc-pair .btn:not(:only-child),.fallback-actions .btn:not(:only-child){flex:1 1 0;min-width:130px}
.btn--block{width:100%;max-width:100%}
.proof-card>.btn{width:100%;max-width:100%}
.action .btn{width:100%;max-width:100%;align-self:stretch}
@media (min-width:641px){
  .btn-row .btn:only-child,.hero-cta .btn:only-child,.doc-pair .btn:only-child,.fallback-actions .btn:only-child{flex:0 1 auto;min-width:220px;max-width:100%}
  .btn--block{width:auto;min-width:220px;max-width:100%}
  .proof-card>.btn{width:auto;min-width:220px;align-self:flex-start}
  .action .btn{width:auto;min-width:220px;max-width:100%;align-self:flex-start}
}
/* ---------- header ---------- */
  .top-stripe{height:5px;background:var(--red)}
.topbar{background:var(--ink);color:#BFD0E3;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.78rem;letter-spacing:normal;text-transform:none}
.topbar b{color:#fff;font-weight:800;white-space:nowrap}
header.nav{position:sticky;top:0;z-index:100;background:rgba(246,241,231,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
.brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;flex:none}
.brand img{height:46px;width:auto}
.brand .brand-txt{font-family:"Fraunces",serif;font-weight:600;font-size:1.02rem;line-height:1.05;color:var(--ink)}
.brand .brand-txt small{display:block;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);font-weight:500;margin-top:2px}
nav.links{display:flex;align-items:center;justify-content:space-evenly;flex:1;gap:.4rem;min-width:0}
nav.links a{text-decoration:none;font-weight:600;font-size:.94rem;color:var(--ink);opacity:.82;transition:opacity .15s;white-space:nowrap;text-align:center}
nav.links a:hover{opacity:1}
/* Join follows Home on mobile and sits beside the separate Donate control on desktop. */
@media (min-width:961px){
  #primaryNav > a[href="/join"]{order:1}
}
.page-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin:.85rem 0 1.25rem}
.page-actions .btn{flex:0 1 auto;min-width:96px;min-height:44px}
.nav-cta{display:flex;align-items:center;gap:.7rem}
.menu-toggle{display:none;background:rgba(11,37,69,.06);border:1px solid rgba(11,37,69,.15);border-radius:6px;cursor:pointer;padding:0 1rem;min-height:48px;align-items:center;justify-content:center;font-family:"Public Sans",sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--red)}
.nav-mobile-actions{display:none}
/* nav.links a (element+class+element specificity) otherwise overrides
   .btn--red's white text/full opacity on the Donate control nested inside
   .nav-mobile-actions. Two classes here outrank that selector regardless
   of source order, in every link state, while a global :focus-visible
   rule (see top of file) still supplies the visible keyboard outline. */
.nav-mobile-actions .btn--red,
.nav-mobile-actions .btn--red:link,
.nav-mobile-actions .btn--red:visited,
.nav-mobile-actions .btn--red:hover,
.nav-mobile-actions .btn--red:focus,
.nav-mobile-actions .btn--red:focus-visible,
.nav-mobile-actions .btn--red:active{color:#FFFFFF;opacity:1}
body.nav-open{overflow:hidden}
/* ---------- hero ---------- */
  .hero{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-2) 100%);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(1200px 500px at 78% -10%, rgba(176,132,42,.20), transparent 60%);pointer-events:none}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(24px,4vw,56px);align-items:start;padding-block:clamp(48px,7vw,86px)}
.hero h1{color:#fff;margin:.5rem 0 .2rem}
.hero h1 .em{color:var(--gold-soft);font-style:italic;font-weight:600}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}
.hero-vote b{color:#fff;font-weight:500;white-space:nowrap}
.hero-figure{position:relative;margin-top:3.4rem}
.hero-figure img{width:100%;border-radius:4px;box-shadow:0 30px 60px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.12)}
.hero-stamp{
    position:relative;margin:-32px auto 0;background:var(--parchment);color:var(--ink);
    padding:.7rem .95rem;border-left:4px solid var(--red);box-shadow:var(--shadow);max-width:230px;
    text-decoration:none;display:block;transition:opacity .15s;z-index:2;
  }
.hero-stamp:hover{opacity:.88}
.hero-stamp .k{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);font-weight:500}
.hero-stamp .v{font-family:"Fraunces",serif;font-weight:600;font-size:1rem;line-height:1.15;margin-top:.2rem}
.hero-stamp .cta{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;color:var(--red);margin-top:.4rem}
.hero-photo-date{margin:.8rem 0 0;text-align:center;font-size:.72rem;font-style:italic;color:#D6E0ED;line-height:1.35}
.scroll-cue{
    display:flex;flex-direction:column;align-items:center;gap:.35rem;
    width:max-content;margin:clamp(28px,4vw,44px) auto 0;
    text-decoration:none;color:var(--gold-soft);
    font-family:"Public Sans",system-ui,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  }
.scroll-cue svg{animation:heroCueBounce 1.8s ease-in-out infinite}
@keyframes heroCueBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.scroll-cue svg{animation:none}}
@media (max-width:960px){.scroll-cue{display:none}}
.scroll-cue--light{color:var(--red)}
/* The hero's .wrap is a 2-col grid, so its scroll-cue needs explicit full-width
   placement rather than relying on normal block flow. Placing the cue in normal
   document flow (instead of the old position:absolute + fixed bottom offset) is
   what guarantees it can never overlap preceding text/buttons: its own margin-top
   reserves real space, so it grows the section instead of floating over content. */
.hero .scroll-cue{grid-column:1/-1;justify-self:center}
/* ---------- stakes ---------- */
  .section-photo-row{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}
.section-photo img{width:170px;height:170px;object-fit:cover;border-radius:6px;box-shadow:var(--shadow);border:1px solid rgba(11,37,69,.12)}
.section-photo--logo img{width:320px;height:auto;object-fit:contain;border:none;box-shadow:none;background:#fff;padding:1rem;border-radius:8px}
.section-photo-row--dark .section-photo img{border-color:rgba(255,255,255,.2);width:320px;height:320px}
.section-photo-row--dark{align-items:start}
.section-photo-row--dark .section-photo{margin-top:2.2rem}
.stakes h2{max-width:22ch}
.contrast{display:grid;gap:.9rem}
.contrast .row{display:flex;gap:.9rem;align-items:flex-start;padding:1rem 1.1rem;background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;box-shadow:var(--shadow-sm)}
.contrast .row .mark{font-family:"Fraunces",serif;font-weight:900;color:var(--gold);font-size:1.3rem;line-height:1;flex:none;margin-top:2px}
.contrast .row p{margin:0;font-size:1.02rem}
.contrast .row p b{color:var(--ink)}
/* ---------- exhibit (shared) ---------- */
  .exhibit-head{display:flex;flex-direction:column;gap:.9rem;max-width:62ch}
.doc-figure img{width:min(440px,85vw);border-radius:3px;box-shadow:var(--shadow);border:1px solid var(--line)}
.record-more summary::-webkit-details-marker{display:none}
.record-more summary::before{content:"+";font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--gold-soft);font-size:1.15rem;flex:none;line-height:1}
.record-more[open] summary::before{content:"–"}
.record-more summary:hover{color:#fff}
.record-more summary:hover::before{color:#fff}
.status-note{margin-top:1.1rem;padding:.7rem .9rem;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-left:3px solid var(--gold-soft);border-radius:3px;font-size:.9rem;line-height:1.5;color:#D6E0ED}
.status-note strong{color:var(--gold-soft)}
.status-updated{display:inline-flex;align-items:center;margin-top:.7rem!important;padding:.38rem .62rem;border:1px solid rgba(216,189,132,.38);border-radius:999px;background:rgba(255,255,255,.05);font-style:normal!important;font-weight:700;letter-spacing:.01em;color:#D6E0ED!important}
.status-logo-links{display:flex;flex-wrap:wrap;gap:.7rem}
.vidcard{position:relative;border-radius:4px;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.vidcard .thumb{position:relative;border-radius:4px;overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line-soft)}
.vidcard .thumb img{width:100%;object-fit:cover;aspect-ratio:16/9;transition:transform .3s}
.vidcard:hover .thumb img{transform:scale(1.03)}
.vidcard .play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);display:grid;place-items:center}
.vidcard .play::after{content:"";border-left:15px solid var(--red);border-top:9px solid transparent;border-bottom:9px solid transparent;margin-left:4px}
.vidcard .caption{padding:.7rem .1rem 0}
.vidcard .cap{display:block;font-weight:700;font-size:.98rem;line-height:1.3;color:var(--ink)}
.vidcard .src{display:block;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);margin-top:.35rem}
.newslink{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.18);border-radius:4px;text-decoration:none;color:inherit;background:rgba(255,255,255,.04);transition:background .2s,border-color .2s}
.newslink:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.34)}
.newslink-text{display:flex;flex-direction:column;gap:.32rem;min-width:0}
.newslink .cap{font-weight:700;font-size:.98rem;line-height:1.3;color:#fff}
.newslink .src{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft)}
.newslink .arrow{flex:none;font-size:1.15rem;color:var(--gold-soft)}
.pull{font-family:"Fraunces",serif;font-weight:600;font-style:italic;font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.2;color:var(--ink);border-left:4px solid var(--gold);padding-left:1.1rem;margin:2.2rem 0 0}
.section--dark .pull{color:#fff;border-color:var(--gold-soft)}
/* ---------- reform (sequence) ---------- */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2rem;counter-reset:step}
.step{background:var(--paper);border:1px solid var(--line-soft);border-top:3px solid var(--gold);border-radius:4px;padding:1.5rem 1.3rem;position:relative}
.step .n{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.16em;color:var(--gold-text);font-weight:500}
.step h3{margin:.5rem 0 .5rem;font-size:1.2rem}
.step p{margin:0;font-size:.97rem;color:var(--slate)}
.father-photos{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}
.father-photos figure{margin:0}
.father-photos img{border-radius:3px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.14)}
.story{margin-top:1.4rem}
.story summary{cursor:pointer;font-weight:700;color:var(--gold-soft);list-style:none;display:flex;align-items:center;gap:.5rem;padding:.4rem 0;min-height:44px}
.story summary::-webkit-details-marker{display:none}
.story summary::before{content:"+";font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--gold-soft);font-size:1.1rem}
.story[open] summary::before{content:"–"}
.angel-story summary{text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.angel-story summary:hover{color:#fff}
.angel-story-body{margin-top:.75rem}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:4px;overflow:hidden;margin-top:1.6rem}
.cred{background:var(--paper);padding:1rem 1.1rem}
.cred .n{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.5rem;color:var(--ink);line-height:1}
.cred .l{font-size:.86rem;color:var(--slate);margin-top:.3rem}
/* ---------- priorities ---------- */
  .prio{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.2rem;margin-top:2rem;align-items:start}
.pcard .k{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);font-weight:500}
.pcard p{font-size:.96rem;color:var(--slate);margin:0 0 1rem}
.pcard ul{margin:0;padding-left:1.1rem;color:var(--slate);font-size:.92rem}
.pcard p a{color:var(--red);font-weight:600;text-decoration:underline;text-underline-offset:2px}
.pcard-details{margin-top:.2rem;border-top:1px solid var(--line-soft)}
.pcard-details summary{cursor:pointer;list-style:none;padding:.75rem 2rem .75rem 0;font-weight:700;color:var(--red);position:relative;font-size:.94rem}
.pcard-details summary::-webkit-details-marker{display:none}
.pcard-details summary::after{content:"+";position:absolute;right:.25rem;top:.6rem;font-family:"Fraunces",serif;font-size:1.4rem;color:var(--red);line-height:1}
.pcard-details[open] summary::after{content:"\2013"}
.pcard-details ul{padding-top:.4rem;padding-bottom:.2rem}
.pcard ul li{margin-bottom:.4rem}
/* ---------- library ---------- */
  .lib{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.2rem}
.item{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.item .cover{background:var(--parchment-2);padding:1.5rem;display:grid;place-items:center}
.item .cover img{width:auto;max-height:230px;box-shadow:var(--shadow);border:1px solid var(--line)}
.item .body{padding:1.3rem 1.35rem 1.5rem;display:flex;flex-direction:column;flex:1}
.item .k{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);font-weight:500}
.item h3{margin:.5rem 0 .5rem;font-size:1.18rem;line-height:1.2}
.item p{font-size:.92rem;color:var(--slate);margin:0 0 1.1rem}
.item .btn{margin-top:auto;align-self:flex-start}
.book-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,48px);align-items:center;margin-top:2.2rem;background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;box-shadow:var(--shadow-sm);padding:clamp(20px,3vw,40px)}
.book-feature-cover{display:grid;place-items:center}
.book-feature-cover img{width:calc(340px * 288 / 445);max-width:100%;max-height:340px;box-shadow:var(--shadow);border:1px solid var(--line)}
.book-feature-body .k{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-text);font-weight:500}
.book-feature-body h3{margin:.5rem 0 .6rem;font-size:1.5rem;line-height:1.2}
.book-feature-body p{font-size:1rem;color:var(--slate);margin:0 0 .9rem;line-height:1.55}
.lib-more{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:center;margin-top:1.6rem;font-size:.88rem}
.lib-more-label{color:var(--slate);font-weight:600}
.lib-more a{color:var(--red);text-decoration:none;font-weight:600}
.lib-more a:hover{text-decoration:underline}
.doc-pair{display:flex;flex-wrap:wrap;gap:.5rem}
/* ---------- closing CTA ---------- */
  .closing{position:relative;color:#fff;background:var(--ink)}
.closing .bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;opacity:.28}
.closing::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,37,69,.82),rgba(11,37,69,.94))}
.closing .wrap{position:relative;z-index:2}
.closing h2{color:#fff;max-width:20ch}
.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-top:2.4rem}
.action{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:1.7rem 1.5rem;display:flex;flex-direction:column}
.action .k{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);font-weight:500}
.action h3{color:#fff;margin:.55rem 0 .55rem}
.action .btn{margin-top:auto}
.signup-note a{color:var(--gold-soft)}
/* ---------- footer ---------- */
  footer.site{background:#071A31;color:#9FB2CA;padding-block:3rem}
footer.site .foot-h{font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);font-weight:500;margin:0 0 .9rem}
/* Keep small headings above AA contrast even over the mobile logo watermark. */
@media (max-width:560px){footer.site .foot-h{color:var(--gold-soft)}}
footer.site a:not(.btn):hover{color:#fff}
footer.site .wrap > div{text-align:center}
footer.site .wrap > div:first-child{max-width:280px;margin-inline:auto}
footer.site .wrap > div:first-child > div{justify-content:center}
.disclaimer b{color:#B9C6D8;font-weight:600}
.js-anim .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease}
.js-anim .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-anim .reveal{opacity:1;transform:none;transition:none}}
.name-navy{color:#CFE8F7;font-weight:700}
.why{background:var(--red);color:#fff}
.why .docket{color:#F2D9DF}
.why-grid{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:clamp(34px,6vw,82px);align-items:start}
.why-side{position:sticky;top:105px}
.why-side h2{margin-top:.8rem}
.why-photo{margin-top:1.5rem;overflow:hidden;border:1px solid rgba(255,255,255,.25);box-shadow:var(--shadow);background:#fff}
.why-photo img{width:100%;aspect-ratio:7/6;object-fit:cover;object-position:center 20%}
.why-copy{font-size:1.03rem;color:rgba(255,255,255,.91)}
.why-opening{margin:0 0 1.6rem;padding-left:1.25rem;border-left:4px solid var(--gold-soft);font-family:"Fraunces",Georgia,serif;font-size:clamp(1.55rem,2.8vw,2.25rem);line-height:1.25;color:#fff}
.why-opening span{display:block;margin-top:.45rem;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:#F2D9DF}
.why-copy strong{color:#fff}
.why-copy strong.name-navy{color:#CFE8F7}
.leadership-box{background:var(--ink);border:1px solid rgba(255,255,255,.26);border-radius:6px;padding:clamp(1.3rem,3vw,1.9rem);margin-top:2rem}
.leadership-box p{margin:0 0 1rem;font-size:.98rem;line-height:1.62;color:rgba(255,255,255,.91)}
.leadership-box p:last-of-type{margin-bottom:0}
.leadership-pull{font-family:"Fraunces",serif;font-weight:600;font-style:italic;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.35;color:#fff;border-left:4px solid var(--gold-soft);padding-left:1.05rem;margin:1.3rem 0 0}

/* Mobile legibility refinement: keep utility/legal labels compact without dropping into microtype. */
@media (max-width:560px){
  .hero-photo-date{font-size:.76rem}
  .vidcard .src,.newslink .src,.why-final small{font-size:.70rem}
  footer.site .foot-h{font-size:.76rem}
  .disclaimer{font-size:.84rem}
  .tab{font-size:.70rem}
}
/* ---------- dark-section contrast audit ---------- */
  .section--dark h2,
  .section--dark h3,
  .section--dark h4{color:#FFFFFF}
.section--dark .lead,
  .section--dark .exhibit-head p,
  .section--dark .father-grid p{color:#E2EAF4}
.section--dark .docket.on-dark{color:#FFE6A8}
.section--dark .docket.on-dark::before{background:#FFE6A8}
.section--dark .btn--ghost{color:#FFFFFF;border-color:rgba(255,255,255,.75);background:rgba(255,255,255,.1)}
.section--dark .btn--ghost:hover{color:#FFFFFF;border-color:#FFFFFF;background:rgba(255,255,255,.18)}
.section--dark .vidcard .thumb{border-color:rgba(255,255,255,.38)}
.section--dark .vidcard .cap{color:#fff}
.section--dark .vidcard .src{color:var(--gold-soft)}
.section--dark .docs-list .btn{background:rgba(255,255,255,.1)}
.section--dark .docs-list .btn:hover{background:rgba(255,255,255,.18)}
.closing .lead{color:#E2EAF4}
footer.site p{color:#C8D5E5 !important}
nav.links a[aria-current="page"]{opacity:1;font-weight:700;text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:3px;text-underline-offset:8px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:300;background:var(--ink);color:#fff;padding:.75rem 1.2rem;font-weight:700;text-decoration:none;border-radius:0 0 4px 0}
.skip-link:focus{left:0}
/* ---------- moved from identical per-page declarations (v24 dedup pass) ---------- */
footer.site .wrap,footer.site .disclaimer{position:relative;z-index:1}
.disclaimer{border-top:1px solid rgba(255,255,255,.12);margin-top:2.2rem;padding-top:1.4rem;font-size:.82rem;color:#7C8CA6;line-height:1.6;grid-column:1/-1}
/* Footer logo's Donate/Volunteer row — distinct from .btn-row above, which
   stretches its children full-width; these two small buttons should only
   size to their own content, so this is its own class rather than reusing
   .btn-row (that would change how the buttons render). */
.footer-actions{margin-top:1rem;display:flex;gap:.7rem;flex-wrap:wrap}
.nowrap{white-space:nowrap}
.voteband--blue{background:var(--ink)}
.voteband-context{background:var(--ink-2);color:#D6E0ED;text-align:center;padding:.7rem var(--gutter);font-size:.86rem;line-height:1.5}
.voteband-context .wrap{max-width:72ch}
.hero-why{margin-top:1.3rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.16);text-align:center}
.hero-why p{color:#E2EAF4;font-size:.95rem;font-style:italic;line-height:1.5;margin:0 0 .8rem}
.scroll-cue--on-red{color:#fff}
.stakes-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,52px);align-items:start;margin-top:1.4rem}
.tab{
    position:absolute;top:26px;left:-14px;background:var(--red);color:#fff;
    font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
    padding:.45rem .75rem;font-weight:500;box-shadow:var(--shadow-sm);
  }
.section--dark .tab{background:var(--gold);color:#241a06}
.reform-note{font-size:.86rem;color:var(--slate);margin-top:1.5rem;font-style:italic}
.signup-plain{margin-top:2.2rem;margin-inline:auto;max-width:620px}
.signup-plain h3{color:#fff;font-size:1.2rem;margin:0 0 .6rem}
.signup-plain p{color:#C4D0E1;font-size:.95rem;margin:0 0 1.1rem;line-height:1.55}
.signup-note--plain{text-align:center}
.footer-soon{color:#C8D5E5;font-size:.94rem;display:block;margin-bottom:.5rem;font-style:italic}
.creed-band{
    padding:clamp(32px,5vw,56px) 0;
    background:var(--red);
    color:#fff;
    text-align:center;
    position:relative;
    overflow:hidden;
  }
.creed-band:before,.creed-band:after{
    content:"";position:absolute;top:50%;width:18vw;max-width:230px;height:1px;background:rgba(255,255,255,.32)
  }
.creed-band:before{left:0}
.creed-band:after{right:0}
.creed-band blockquote{margin:0 auto;max-width:850px;font-family:"Fraunces",Georgia,serif;font-size:clamp(1.7rem,3.4vw,3rem);line-height:1.18;font-weight:600}
.creed-band cite{display:block;margin-top:1rem;font-style:normal;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:#F2D9DF}
.rising{background:linear-gradient(135deg,var(--parchment) 0%,#fff 100%)}
.rising-grid{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(34px,6vw,84px);align-items:start}
.rising-mark{position:sticky;top:110px;padding-left:1.2rem;border-left:5px solid var(--red)}
.rising-mark h2{margin-top:.8rem;max-width:12ch}
.rising-copy>p:first-child{font-family:"Fraunces",Georgia,serif;font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.45;color:var(--ink)}
.rise-list{list-style:none;margin:1.7rem 0 2rem;padding:0;border-top:1px solid var(--line)}
.rise-list li{position:relative;padding:1rem 0 1rem 2rem;border-bottom:1px solid var(--line);font-weight:600}
.rise-list li:before{content:"↑";position:absolute;left:0;color:var(--red);font-weight:800}
.rising-signature{padding:1.15rem 1.3rem;border-left:4px solid var(--gold);background:var(--parchment-2);font-family:"Fraunces",Georgia,serif;font-size:1.12rem}
.name-red{color:var(--red);font-weight:700}
.why-details{margin-top:1.3rem;border-top:1px solid rgba(255,255,255,.24);border-bottom:1px solid rgba(255,255,255,.24)}
.why-details summary{cursor:pointer;list-style:none;padding:1.05rem 2.4rem 1.05rem 0;font-weight:700;color:#fff;position:relative}
.why-details summary::-webkit-details-marker{display:none}
.why-details summary:after{content:"+";position:absolute;right:.25rem;top:.75rem;font-family:"Fraunces",serif;font-size:1.7rem;color:var(--gold-soft)}
.why-details[open] summary:after{content:"–"}
.why-more{padding:.2rem 0 1.25rem}
.why-final{margin-top:1.4rem;padding:1.1rem 1.25rem;border-left:4px solid var(--gold-soft);background:rgba(11,37,69,.20);font-family:"Fraunces",Georgia,serif;font-size:clamp(1.2rem,2vw,1.55rem);color:#fff}
.why-final small{display:block;margin-top:.35rem;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#F2D9DF}

/* Shared compact H1 used on the four primary interior detail pages. */
.page-h1--compact{font-size:clamp(1.9rem,3.9vw,3rem);font-weight:600;text-wrap:balance}
.section--dark .page-h1--compact{color:#FFFFFF}

/* ---------- fixed campaign watermark on all pages except Join ---------- */
body:not(.join-page) main{position:relative;isolation:isolate}
body:not(.join-page) main::before{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;
  background-image:url(/images/logo.webp);background-repeat:no-repeat;
  background-position:center center;background-size:min(140vw,1100px) auto;
  opacity:.07;mix-blend-mode:multiply;
}
body:not(.join-page) main > .wrap,
body:not(.join-page) main > section > .wrap,
body:not(.join-page) main > div > .wrap{position:relative;z-index:2}
@media (max-width:700px){
  body:not(.join-page) main::before{background-size:88vw auto}
}

/* ---------- social links ---------- */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.footer-social{margin-top:1.1rem}
.footer-social-label,.join-social-title{margin:0 0 .65rem!important;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:.76rem;font-weight:700;letter-spacing:.04em;color:#C8D5E5!important}
.footer-social-label span,.join-social-title span{font-weight:600;color:#9FB2CA}
.social-links{display:flex;align-items:center;justify-content:center;gap:.65rem;flex-wrap:wrap}
.social-link{width:44px;height:44px;border:1px solid rgba(255,255,255,.28);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;color:#fff!important;background:rgba(255,255,255,.06);transition:background .15s ease,border-color .15s ease,transform .15s ease,color .15s ease}
.social-link:hover,.social-link:focus-visible{background:rgba(255,255,255,.14);border-color:var(--gold-soft);color:var(--gold-soft)!important;transform:translateY(-1px)}
.social-link:focus-visible{outline:3px solid var(--gold-soft);outline-offset:3px}
.social-glyph{display:block;line-height:1;font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.12rem}
.social-glyph--facebook{font-size:1.38rem;font-family:Arial,sans-serif;font-weight:700;transform:translateY(1px)}
.social-glyph--x{font-size:1.12rem;font-weight:600}
.social-glyph--truth{font-size:1rem;letter-spacing:-.02em}
.join-social{margin-top:1.25rem;padding-top:1.15rem;border-top:1px solid rgba(255,255,255,.14);text-align:center}
.join-social-title{font-size:.88rem;color:#E2EAF4!important}
.join-social-title span{color:var(--gold-soft)}
.social-links--join .social-link{width:44px;height:44px}
footer.site .social-links a.social-link{width:44px;height:44px;min-height:44px;padding:0;margin:0;display:inline-flex}
@media (max-width:560px){
  .footer-social{margin-top:1rem}
  .social-link{width:44px;height:44px}
}

/* Readability and source-link refinements */
.legal-orientation{max-width:72ch}
.priority-orientation{margin:.55rem 0 .8rem;color:var(--slate);font-weight:700;line-height:1.5}
.source-link::after{content:" ↗";display:inline-block;margin-left:.12em;font-size:.82em;font-weight:700;text-decoration:none}

/* v109 mobile topbar simplification */
.topbar-primary--mobile{display:none}
@media (max-width:560px){
  .topbar-primary--desktop,.topbar-countdown{display:none!important}
  .topbar-primary--mobile{display:inline}
}

/* 2026-08-20 v6: narrow embedded-webview overflow guard.
   Keeps all page containers inside the visual viewport without relying on
   clipping as the primary fix. */
@media (max-width:560px){
  html,body{max-width:100%;overflow-x:clip}
  body,main,main>section,.section,.wrap{min-width:0;max-width:100%}
  .wrap{width:100%;padding-left:16px;padding-right:16px}
  .section-photo-row,.section-photo,.about-grid,.about-figure{min-width:0;max-width:100%}
  img,video,iframe,svg{max-width:100%}
}

/* Larger stacked footer actions on desktop. */
@media (min-width:961px){
  footer.site .footer-actions{flex-direction:column;align-items:stretch;flex-wrap:nowrap;width:100%;max-width:280px;gap:.75rem}
  footer.site .footer-actions .btn{width:100%;min-height:54px;padding:.95rem 1rem;font-size:1.05rem}
}

/* Sharing uses links and the device's own share sheet, with a selectable URL fallback. */
footer.site .site-share{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.18);text-align:left}
.site-share summary{display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.65rem .8rem;border:1px solid var(--gold-soft);border-radius:2px;color:var(--gold-soft);font-family:"Public Sans",sans-serif;font-weight:700;font-size:.94rem;line-height:1.3;cursor:pointer;list-style:none}
.site-share summary::-webkit-details-marker{display:none}
.site-share summary::after{content:"+";font-size:1.2rem;line-height:1}
.site-share[open] summary::after{content:"−"}
.site-share .share-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin:.8rem 0}
.site-share .share-options .btn{width:100%;min-width:0;min-height:44px;white-space:normal;line-height:1.3}
.site-share .share-native,.site-share .share-copy{grid-column:1/-1}
.site-share [hidden]{display:none!important}
.share-link-label{display:block;margin:.7rem 0 .35rem;font-size:.875rem;color:#E0E8F2}
.share-link-input{width:100%;min-width:0;max-width:100%;min-height:44px;padding:.65rem;border:1px solid rgba(255,255,255,.45);border-radius:2px;background:var(--ink);color:#fff;font:inherit;font-size:.875rem}
footer.site .share-status{min-height:1.3em;margin:.55rem 0 0;font-size:.875rem;line-height:1.4}

/* Tighter section spacing, with a clear gap after page and section headings. */
.compact-layout main > .section,.compact-layout main > .trust-close{padding-block:32px}
.compact-layout main > .section :where(h1,h2){margin-bottom:1rem}
.compact-layout main > .section > .wrap > :last-child{margin-bottom:0}
.compact-layout main .exhibit-head{margin-top:0;row-gap:.65rem}
.compact-layout main .exhibit-head > :is(h1,h2){margin-bottom:.5rem}
.compact-layout main .exhibit-head > .lead{margin-bottom:.5rem}
.compact-layout main .record-video-section{margin:.8rem 0 1rem}
.compact-layout main .record-video-section .record-more{margin-top:1rem;padding-top:.7rem}
.compact-layout main > .section > .wrap > .record-grid{margin-top:0}
.compact-layout main .standards-section{margin-top:1.5rem}
.compact-layout main .scroll-cue{margin-top:1.25rem}
.compact-layout footer.site{margin-top:0;padding-block:2rem}
@media (max-width:560px){
  .compact-layout main > .section,.compact-layout main > .trust-close{padding-block:24px}
}

/* Shared reading text; explicit roles keep captions, headings, and form UI intact. */
.compact-layout{--reading-font-size:1.125rem}
.compact-layout main .reading-copy{
  font-family:"Public Sans",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  font-size:var(--reading-font-size);
  line-height:1.6;
}
.compact-layout main .reading-copy.hero-proof-list{line-height:1.45}
/* These two legacy utilities set type with !important. */
.compact-layout main .reading-copy:is(.u-inline-da25a2e5,.u-inline-c65e3e06){
  font-size:var(--reading-font-size)!important;
  line-height:1.6!important;
}
@media (max-width:700px){
  .compact-layout{--reading-font-size:1.0625rem}
  .compact-layout main .reading-copy.hero-proof-list{line-height:1.4}
}

/* Honor reduced motion for small hover effects as well as scroll reveals. */
@media (prefers-reduced-motion:reduce){
  .btn,.social-link{transition:none}
  .btn:hover,.social-link:hover,.social-link:focus-visible{transform:none}
}
