/* ============================================================
   TrustHer — migration compat layer
   Bridges older module pages onto the LOCKED policy-report
   design language (see trusther-tokens.css). Import AFTER
   trusther-tokens.css. Remaps legacy variable names and
   re-implements the shared reset / header / footer / buttons
   that formerly lived in the dead trusther-design.css.
   Pure visual migration — no layout/content/logic change.
   ============================================================ */

:root{
  /* legacy names → locked tokens */
  --mid:            #F4EEE9;
  --border:         1px solid rgba(31,29,43,.12);
  --accent:         #5B4FD1;       /* was violet/purple #6B1FD4 */
  --accent-light:   #ECEAFB;       /* violet tint */
  --orange:         #D94F8B;       /* no orange in locked palette → rose */
  --orange-light:   #FCEFF5;       /* rose tint */
  --display:        'Playfair Display',Georgia,serif;  /* was Barlow Condensed */
  --body:           'DM Sans',system-ui,sans-serif;
  --mono:           'DM Sans',system-ui,sans-serif;
  /* --serif, --ink, --paper, --sans come from tokens.css */
  --max:            1160px;
  --gutter:         clamp(1rem,5vw,3rem);
}

/* ─── reset (from old shared system, retained) ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
body{
  font-family:var(--sans);
  font-size:16px;line-height:1.6;
  background:var(--paper);color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
img,svg{display:block;max-width:100%}
a{color:inherit}
ol,ul{list-style:none}

/* ─── skip link ─── */
.skip-link{
  position:absolute;top:-9999px;left:0;
  background:var(--ink);color:var(--paper);
  padding:.5rem 1rem;font-family:var(--mono);font-size:.75rem;z-index:9999;
}
.skip-link:focus{top:0}

/* ─── shared layout ─── */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
section,.accountability,.act,.contribute,.routes{padding-block:clamp(3rem,8vw,6rem)}
.section-head{margin-bottom:2.5rem}
.section-head h2{margin-block:.5rem 1rem}

/* ─── eyebrow / label ─── */
.eyebrow,p.eyebrow{
  font-family:var(--mono);font-size:.75rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--rose);
}
.section-lead{font-size:1.1rem;max-width:60ch;line-height:1.55}

/* ─── typography scale (Playfair, softened) ─── */
h1,h2,h3{
  font-family:var(--serif);font-weight:600;
  line-height:1.12;letter-spacing:-.01em;
}
h1{font-size:clamp(2.6rem,8vw,5rem)}
h2{font-size:clamp(1.8rem,5vw,3rem)}
h3{font-size:clamp(1.3rem,2.5vw,1.9rem)}
h4{font-family:var(--sans);font-size:1rem;font-weight:600}
p{max-width:70ch}

/* ─── buttons ─── */
.btn{
  display:inline-block;font-family:var(--sans);
  font-size:.85rem;font-weight:600;letter-spacing:.01em;
  text-transform:none;text-decoration:none;
  padding:.75rem 1.5rem;border-radius:999px;
  border:1px solid var(--line-strong);cursor:pointer;
  transition:background .15s,color .15s,filter .15s;
}
.btn--primary{background:var(--rose);color:#fff;border-color:var(--rose)}
.btn--primary:hover,.btn--primary:focus-visible{filter:brightness(1.05)}
.btn--secondary{background:var(--white);color:var(--ink)}
.btn--secondary:hover,.btn--secondary:focus-visible{background:var(--cream)}
.btn:focus-visible{outline:3px solid var(--rose);outline-offset:3px}

.link-arrow{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;
  text-transform:uppercase;text-decoration:none;
  display:inline-flex;align-items:center;gap:.4rem;color:var(--rose);
}
.link-arrow::after{content:'→'}
.link-arrow:hover{text-decoration:underline}
.link-arrow:focus-visible{outline:2px solid var(--rose);outline-offset:2px}

/* ─── header ─── */
.site-header{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:1.5rem;
  padding:.9rem var(--gutter);
  background:rgba(251,250,248,.9);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);max-width:100%;
}
.brand{text-decoration:none;display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.brand__mark{display:none}
.brand__name{font-family:var(--serif);font-size:1.4rem;font-weight:700;letter-spacing:-.01em;line-height:1}
.site-nav{display:flex;align-items:center;gap:0;margin-inline-start:auto}
.site-nav a{
  font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.01em;
  text-decoration:none;padding:.5rem .9rem;color:var(--ink-2,#3A3746);
  border-bottom:2px solid transparent;white-space:nowrap;
  transition:color .12s,border-color .12s;
}
.site-nav a:hover,.site-nav a:focus-visible{color:var(--rose);border-color:var(--rose)}
.site-nav a[aria-current="page"]{color:var(--ink);border-color:var(--rose)}
.nav-cta{
  font-family:var(--sans);font-size:.8rem;font-weight:600;letter-spacing:.01em;
  text-decoration:none;padding:.55rem 1.1rem;border-radius:999px;
  background:var(--rose);color:#fff;border:1px solid var(--rose);
  white-space:nowrap;transition:filter .12s;
}
.nav-cta:hover,.nav-cta:focus-visible{filter:brightness(1.05)}
.nav-cta:focus-visible{outline:3px solid var(--rose);outline-offset:3px}
/* mobile hamburger — injected by site-nav-mobile.js, hidden on desktop */
.site-nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;
  width:44px;height:44px;padding:11px;margin-inline-start:auto;background:none;border:0;cursor:pointer}
.site-nav-toggle span{display:block;width:22px;height:2px;border-radius:2px;background:var(--ink);
  transition:transform .2s ease,opacity .2s ease}
.site-nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site-nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.site-nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media (max-width:768px){
  .site-header{flex-wrap:wrap}
  .site-nav-toggle{display:flex}
  .nav-cta{display:none}                       /* primary CTA moves into the dropdown */
  .site-nav{display:none;order:3;flex-basis:100%;flex-direction:column;align-items:stretch;
    gap:0;margin:0;padding:.4rem 0 .2rem}
  .site-header--open .site-nav{display:flex}
  .site-nav a{font-size:1rem;padding:.85rem var(--gutter);border-bottom:0}
  .site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{border-color:transparent;color:var(--ink)}
  .site-nav .nav-cta{display:inline-flex;justify-content:center;color:#fff;
    margin:.5rem var(--gutter) .3rem;padding:.7rem 1.1rem}
}

/* ─── footer ─── */
.site-footer{background:var(--ink);color:var(--paper);padding:clamp(2.5rem,6vw,4rem) var(--gutter) 2rem}
.footer__top{
  display:grid;grid-template-columns:auto 1fr;gap:3rem;
  margin-bottom:2rem;padding-bottom:2rem;
  border-bottom:1px solid rgba(255,255,255,.15);
}
@media (max-width:600px){.footer__top{grid-template-columns:1fr;gap:1.5rem}}
.footer__brand .brand__name{font-size:2rem;font-weight:700}
.footer__brand .brand__mark{display:none}
.footer__creds{font-family:var(--mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;opacity:.5;margin-top:.5rem}
.footer__mission{font-size:.9rem;opacity:.7;max-width:55ch;align-self:center}
.footer__pillars{display:flex;flex-wrap:wrap;gap:0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:1.5rem}
.footer__pillars li{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:.7rem 1.2rem;border-right:1px solid rgba(255,255,255,.1);opacity:.6}
.footer__pillars li:last-child{border-right:none}
.footer__contact{font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;margin-bottom:.75rem;opacity:.6}
.footer__fine{font-family:var(--mono);font-size:.62rem;letter-spacing:.05em;opacity:.4;max-width:70ch}
