/* ==========================================================================
   Burbank ALPR — Design System
   Light, premium, editorial. Source of truth: approved screenshots.
   ========================================================================== */

/* ----- Tokens ----- */
:root{
  /* surfaces */
  --bg:#ffffff;
  --bg-tint:#f1f7fe;
  --bg-tint-2:#e9f2fd;
  --bg-panel:#ffffff;

  /* ink + text */
  --ink:#0f2c52;          /* headings, deep navy */
  --ink-strong:#0a2036;
  --text:#42576f;         /* body slate */
  --muted:#6a7d94;
  --faint:#8a9bb0;

  /* lines + shadow */
  --line:#e4ecf6;
  --line-soft:#eef3fa;
  --line-strong:#d6e2f1;
  --sh-sm:0 1px 2px rgba(16,42,76,.06);
  --sh:0 6px 20px rgba(16,42,76,.06);
  --sh-md:0 12px 30px rgba(16,42,76,.08);
  --sh-lg:0 26px 60px rgba(16,42,76,.12);

  /* brand */
  --blue:#1f7cea;
  --blue-2:#1667d6;
  --blue-ink:#1b6fd0;
  --blue-tint:#e8f1fe;
  --blue-tint-2:#dcebfd;

  --teal:#12a99a;
  --teal-tint:#e1f6f3;

  --green:#1f9d68;
  --green-tint:#e6f7ef;

  --coral:#e85c5c;
  --coral-tint:#fdeceb;

  --amber:#d9922e;
  --amber-tint:#fdf2e1;

  --violet:#6f5ce0;
  --violet-tint:#eeeafe;

  /* geometry */
  --r-sm:10px;
  --r:14px;
  --r-lg:20px;
  --r-xl:26px;
  --pill:999px;

  --container:1200px;
  --gutter:24px;

  --nav-h:92px;

  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}

/* ----- Reset / base ----- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;display:block}
a{color:var(--blue-ink);text-decoration:none}
button{font-family:inherit}
h1,h2,h3,h4{color:var(--ink);margin:0;line-height:1.12;letter-spacing:-.018em;font-weight:800}
p{margin:0}
:focus-visible{outline:3px solid rgba(31,124,234,.45);outline-offset:2px;border-radius:6px}

/* ----- Layout ----- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(48px,7vw,92px)}
.section--tight{padding-block:clamp(36px,5vw,64px)}
.tint{background:var(--bg-tint)}
.tint-2{background:var(--bg-tint-2)}
.center{text-align:center}
.eyebrow{
  font-size:.78rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--blue);margin:0 0 14px;
}
.eyebrow--muted{color:var(--faint)}
.section-head{margin-bottom:32px}
.section-head--row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
h2.h2{font-size:clamp(1.7rem,3vw,2.35rem)}
.lead{font-size:clamp(1.05rem,1.6vw,1.22rem);color:var(--text);max-width:60ch;line-height:1.6}
.sub{color:var(--muted);margin-top:8px;max-width:64ch}
.link-more{
  display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--blue-ink);
  font-size:.95rem;white-space:nowrap;
}
.link-more svg{transition:transform .25s var(--ease)}
.link-more:hover svg{transform:translateX(4px)}

/* handwritten accent */
.script{
  font-family:"Caveat",cursive;color:var(--blue);font-weight:600;
  font-size:1.5rem;line-height:1.15;transform:rotate(-4deg);
}

/* ----- Buttons ----- */
.btn{
  --_bg:var(--blue);
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-weight:600;font-size:1rem;line-height:1;cursor:pointer;
  padding:14px 22px;border-radius:var(--pill);border:1px solid transparent;
  transition:transform .2s var(--ease),box-shadow .2s var(--ease),background .2s,color .2s,border-color .2s;
  white-space:nowrap;
}
.btn svg{transition:transform .25s var(--ease)}
.btn-primary{
  background:linear-gradient(180deg,#3a8ef2,var(--blue-2));
  color:#fff;box-shadow:0 10px 22px rgba(31,124,234,.28);
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(31,124,234,.34)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-council{
  background:linear-gradient(180deg,#e94e59 0%, #cf2e3f 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 10px 22px rgba(207,46,63,.22);
}
.btn-council:hover{transform:translateY(-2px);box-shadow:0 16px 28px rgba(207,46,63,.28)}
.btn-council svg{color:currentColor;flex:none}
.btn-ghost{
  background:#fff;color:var(--ink);border-color:var(--line-strong);box-shadow:var(--sh-sm);
}
.btn-ghost:hover{transform:translateY(-2px);border-color:#c2d5ec;box-shadow:var(--sh)}
.btn-lg{padding:16px 26px;font-size:1.05rem}
.btn-block{width:100%}

/* icon-only round button */
.iconbtn{
  width:44px;height:44px;border-radius:var(--pill);display:inline-grid;place-items:center;
  background:#fff;border:1px solid var(--line-strong);color:var(--ink);cursor:pointer;box-shadow:var(--sh-sm);
  transition:transform .2s var(--ease),box-shadow .2s,border-color .2s;
}
.iconbtn:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:#c2d5ec}

/* ----- Icon tiles ----- */
.tile{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;
  background:var(--blue-tint);color:var(--blue);
}
.tile svg{width:24px;height:24px}
.tile--sm{width:40px;height:40px;border-radius:11px}
.tile--lg{width:56px;height:56px;border-radius:16px}
.tile.blue{background:var(--blue-tint);color:var(--blue)}
.tile.teal{background:var(--teal-tint);color:var(--teal)}
.tile.green{background:var(--green-tint);color:var(--green)}
.tile.coral{background:var(--coral-tint);color:var(--coral)}
.tile.amber{background:var(--amber-tint);color:var(--amber)}
.tile.violet{background:var(--violet-tint);color:var(--violet)}

/* ==========================================================================
   Header / Nav
   ========================================================================== */
.site-header{
  position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(160%) blur(14px);-webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s;
}
.site-header.is-stuck{border-color:var(--line);box-shadow:0 6px 24px rgba(16,42,76,.06)}
.nav{height:var(--nav-h);display:flex;align-items:center;gap:14px;flex-wrap:nowrap}
.brand{display:inline-flex;align-items:center;gap:11px;font-weight:800;color:var(--ink);font-size:1.22rem;letter-spacing:-.02em}
.brand .mark{width:34px;height:34px;flex:none}
.brand-logo{height:68px;width:auto;display:block;flex:none}
.site-footer .brand-logo{height:64px}
.brand b{font-weight:800}
.brand .lt{font-weight:500;color:#5f759a}
.nav-links{display:flex;align-items:center;gap:4px;margin-inline:auto;flex-wrap:nowrap;min-width:0}
.nav-links a{
  color:#33475f;font-weight:500;font-size:.96rem;padding:9px 11px;border-radius:10px;position:relative;
  transition:color .2s,background .2s;white-space:nowrap;flex:none;
}
.nav-links a:hover{color:var(--ink);background:var(--bg-tint)}
.nav-links a.active{color:var(--blue-ink)}
.nav-links a.active::after{
  content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;border-radius:2px;background:var(--blue);
}
.nav-actions{display:flex;align-items:center;gap:10px;flex-wrap:nowrap;flex:none}
.nav-actions .btn{padding:11px 18px;font-size:.95rem}
.nav-actions .btn-ghost{padding:10px 16px}
.menu-toggle{display:none}

/* mobile drawer — slide-in sheet */
.nav-drawer{
  position:fixed;top:0;right:0;bottom:0;z-index:70;
  width:min(88vw,384px);background:#fff;
  display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;
  transform:translateX(105%);pointer-events:none;
  transition:transform .36s cubic-bezier(.22,.61,.36,1);
  box-shadow:-26px 0 64px rgba(10,32,60,.20);
  padding:0;
}
.nav-drawer.open{transform:none;pointer-events:auto}

.drawer-top{
  position:sticky;top:0;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 16px;border-bottom:1px solid var(--line-soft);
  background:rgba(255,255,255,.92);backdrop-filter:saturate(160%) blur(10px);-webkit-backdrop-filter:saturate(160%) blur(10px);
}
.drawer-top .brand-logo{height:36px!important;width:auto}
.drawer-close{
  width:44px;height:44px;flex:none;border-radius:13px;border:1px solid var(--line);background:#fff;color:var(--ink);
  display:grid;place-items:center;cursor:pointer;transition:background .2s,transform .12s,border-color .2s;
}
.drawer-close:hover{background:var(--bg-tint);border-color:var(--line-strong)}
.drawer-close:active{transform:scale(.93)}

.drawer-nav{display:flex;flex-direction:column;gap:3px;padding:14px 12px 6px}
.nav-drawer .drawer-nav a{
  display:flex;align-items:center;gap:14px;
  padding:12px 12px;border-radius:14px;font-size:1.05rem;font-weight:600;color:var(--ink);
  border:none;transition:background .18s,color .18s;
}
.nav-drawer .drawer-nav a .di{
  width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:var(--bg-tint);color:var(--blue);transition:background .18s,color .18s;
}
.nav-drawer .drawer-nav a .di svg{width:20px;height:20px}
.nav-drawer .drawer-nav a .dlabel{flex:1}
.nav-drawer .drawer-nav a .dch{color:var(--faint);flex:none;transition:transform .18s,color .18s}
.nav-drawer .drawer-nav a:hover{background:var(--bg-tint)}
.nav-drawer .drawer-nav a:hover .dch{transform:translateX(3px);color:var(--blue)}
.nav-drawer .drawer-nav a:active{background:var(--blue-tint-2)}
.nav-drawer .drawer-nav a.active{background:var(--blue-tint);color:var(--blue-ink)}
.nav-drawer .drawer-nav a.active .di{background:#fff;color:var(--blue)}
.nav-drawer .drawer-nav a.active .dch{color:var(--blue)}

.nav-drawer .drawer-actions{display:grid;gap:10px;padding:14px 16px 6px;margin-top:6px;border-top:1px solid var(--line-soft)}
.nav-drawer .drawer-actions .btn{display:inline-flex!important;width:100%;justify-content:center}
.drawer-foot{margin-top:auto;padding:16px 18px 26px;font-size:.78rem;color:var(--faint);line-height:1.5}
.drawer-foot strong{color:var(--muted);font-weight:700}

.nav-scrim{position:fixed;inset:0;z-index:69;background:rgba(9,23,45,.44);opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(1px)}
.nav-scrim.open{opacity:1;pointer-events:auto}
@media (min-width:921px){.nav-drawer,.nav-scrim{display:none}}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{position:relative;overflow:hidden;background:
   radial-gradient(120% 120% at 85% -10%, #dcebfd 0%, #eef5fe 38%, #ffffff 72%)}
.hero-photo{
  position:absolute;inset:0 0 auto auto;width:min(58%,760px);height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 32%);
  mask-image:linear-gradient(90deg,transparent,#000 32%);opacity:.9;pointer-events:none;
}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(238,245,254,.15),rgba(255,255,255,.65))}
.hero .container{position:relative;z-index:2}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px;align-items:center;
  padding-block:clamp(46px,6vw,84px)}
.hero-copy h1{font-size:clamp(2.5rem,5.2vw,4.05rem);line-height:1.03;letter-spacing:-.03em;color:var(--ink)}
.hero-copy h1 .accent{color:var(--blue)}
.hero-copy .lead{margin-top:20px}
.hero-cta{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap}
.hero-script{position:absolute;top:26px;right:calc(var(--gutter) + 8px);z-index:3;font-size:1.85rem;max-width:210px;text-align:center}
.hero-script svg{display:block;margin:2px auto 0;color:var(--teal)}

/* full-bleed photo hero (interior pages) */
.hero--photo{background:linear-gradient(180deg,#eef5fe,#ffffff)}
.hero--photo .hero-banner{
  position:relative;border-radius:0;overflow:hidden;height:clamp(280px,34vw,420px);
}
.hero--photo .hero-banner img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 34%}
.hero--photo .hero-banner::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#eef5fe 8%,rgba(238,245,254,.72) 34%,rgba(238,245,254,.05) 66%)}
.hero-banner-copy{position:absolute;z-index:3;inset:0;display:flex;align-items:center}
.hero-banner-copy .inner{max-width:600px}
.hero-banner-copy h1{font-size:clamp(2.4rem,5vw,3.7rem);letter-spacing:-.03em}
.hero-banner-copy h1 .accent{color:var(--blue)}

/* ==========================================================================
   Hero dashboard mockup
   ========================================================================== */
.dash{
  background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-lg);
  overflow:hidden;transform:translateY(10px);opacity:0;
}
.dash.in{animation:dashIn .9s var(--ease-out) forwards}
@keyframes dashIn{to{transform:none;opacity:1}}
.dash-top{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line-soft)}
.dash-top .brand{font-size:.98rem}
.dash-top .mark{width:24px;height:24px}
.dash-title{font-weight:700;color:var(--ink);font-size:.98rem}
.dash-daterange{margin-left:auto;font-size:.78rem;color:var(--muted);border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;gap:8px;align-items:center}
.dash-body{display:grid;grid-template-columns:132px 1fr;min-height:300px}
.dash-side{border-right:1px solid var(--line-soft);padding:14px 12px;display:flex;flex-direction:column;gap:4px;background:#fcfdff}
.dash-side .item{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;font-size:.82rem;color:var(--muted);font-weight:500}
.dash-side .item svg{width:16px;height:16px}
.dash-side .item.active{background:var(--blue-tint);color:var(--blue-ink);font-weight:600}
.dash-main{padding:16px}
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kpi{border:1px solid var(--line-soft);border-radius:12px;padding:11px 12px;background:#fff}
.kpi .kpi-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;margin-bottom:8px}
.kpi .kpi-ic svg{width:15px;height:15px}
.kpi .kpi-label{font-size:.66rem;color:var(--muted);font-weight:600;letter-spacing:.02em}
.kpi .kpi-val{font-size:1.12rem;font-weight:800;color:var(--ink);letter-spacing:-.02em;margin-top:1px}
.kpi .kpi-delta{font-size:.62rem;font-weight:600;margin-top:2px;color:var(--green)}
.kpi .kpi-delta.down{color:var(--coral)}
.dash-panels{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:12px}
.dpanel{border:1px solid var(--line-soft);border-radius:12px;padding:12px}
.dpanel h4{font-size:.8rem;color:var(--ink);font-weight:700}
.dpanel .dp-sub{font-size:.66rem;color:var(--faint);margin-top:1px}
.chart{display:flex;align-items:flex-end;gap:5px;height:118px;margin-top:12px}
.chart .bar{flex:1;border-radius:4px 4px 0 0;background:linear-gradient(180deg,#5aa0f4,#2680eb);height:var(--h,40%);
  transform:scaleY(0);transform-origin:bottom;transition:transform .7s var(--ease-out)}
.dash.in .chart .bar{transform:scaleY(1)}
.chart .bar:nth-child(odd){opacity:.9}
.chart-x{display:flex;justify-content:space-between;font-size:.58rem;color:var(--faint);margin-top:6px}
.map{position:relative;height:118px;margin-top:12px;border-radius:9px;overflow:hidden;
  background:linear-gradient(160deg,#eaf3ff,#f4f9ff);border:1px solid var(--line-soft)}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.map .dot{fill:var(--blue);animation:pulseDot 2.6s ease-in-out infinite}
@keyframes pulseDot{0%,100%{opacity:.55}50%{opacity:1}}

/* ==========================================================================
   Trust strip
   ========================================================================== */
.trust{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--sh);padding:8px;
}
.trust .t{display:flex;align-items:center;gap:13px;padding:16px 18px;border-radius:14px;transition:background .2s}
.trust .t:hover{background:var(--bg-tint)}
.trust .t h4{font-size:.98rem}
.trust .t p{font-size:.85rem;color:var(--muted);margin-top:2px}
.trust--plain{border:none;box-shadow:none;background:transparent;padding:0}
.trust--plain .t{border-right:1px solid var(--line)}
.trust--plain .t:last-child{border-right:none}

/* ==========================================================================
   Generic cards / grids
   ========================================================================== */
.grid{display:grid;gap:20px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
.g-5{grid-template-columns:repeat(5,1fr)}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s;
}
.card--pad-lg{padding:26px}
.card--tint{background:var(--bg-tint);border-color:transparent}

/* glance cards — soft pastel */
.glance{border-radius:var(--r);padding:22px 22px 24px;border:1px solid transparent;background:var(--blue-tint);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.glance:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.glance .tile{background:rgba(255,255,255,.7)}
.glance .g-num{font-size:2rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;margin-top:16px;line-height:1.05}
.glance .g-word{font-size:1.35rem;font-weight:800;color:var(--ink);margin-top:16px;letter-spacing:-.02em}
.glance .g-label{font-weight:700;color:var(--ink);margin-top:2px}
.glance .g-desc{font-size:.85rem;color:var(--muted);margin-top:6px;line-height:1.5}
.glance.blue{background:var(--blue-tint)} .glance.blue .tile{color:var(--blue)}
.glance.teal{background:var(--teal-tint)} .glance.teal .tile{color:var(--teal)}
.glance.green{background:var(--green-tint)} .glance.green .tile{color:var(--green)}
.glance.coral{background:var(--coral-tint)} .glance.coral .tile{color:var(--coral)}
.glance.violet{background:var(--violet-tint)} .glance.violet .tile{color:var(--violet)}
.glance.amber{background:var(--amber-tint)} .glance.amber .tile{color:var(--amber)}

/* question / navigation cards */
.qcard{
  display:flex;flex-direction:column;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:22px;box-shadow:var(--sh-sm);position:relative;cursor:pointer;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s;
}
.qcard:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:#d3e3f7}
.qcard .qc-arrow{position:absolute;top:22px;right:20px;color:var(--faint);transition:transform .25s var(--ease),color .25s}
.qcard:hover .qc-arrow{transform:translateX(4px);color:var(--blue)}
.qcard h3{font-size:1.08rem}
.qcard p{font-size:.9rem;color:var(--muted)}

/* ==========================================================================
   Flow steps (How it works)
   ========================================================================== */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:stretch}
.flow .step{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm)}
.flow .step .num{position:absolute;top:18px;right:18px;width:26px;height:26px;border-radius:50%;background:var(--blue-tint);
  color:var(--blue-ink);font-size:.82rem;font-weight:700;display:grid;place-items:center}
.flow .step .tile{margin-bottom:16px}
.flow .step h4{font-size:1.05rem;margin-bottom:6px}
.flow .step p{font-size:.9rem;color:var(--muted)}
.flow .arrow{position:absolute;top:50%;right:-19px;transform:translateY(-50%);color:#b9cbe2;z-index:2}
.flow .step{overflow:visible}
.flow-wrap{position:relative}

/* compact numbered flow (homepage) */
.flow-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:start}
.flow-mini .m{display:flex;flex-direction:column;gap:10px;position:relative;padding-right:14px}
.flow-mini .m .n{width:34px;height:34px;border-radius:50%;background:var(--blue-tint);color:var(--blue-ink);font-weight:700;display:grid;place-items:center}
.flow-mini .m h4{font-size:1rem}
.flow-mini .m p{font-size:.86rem;color:var(--muted)}
.flow-mini .m .arrow{position:absolute;top:8px;right:-6px;color:#c3d4ea}

/* ==========================================================================
   Do / Don't panels + list rows
   ========================================================================== */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm);height:100%}
.panel--tint-green{background:linear-gradient(180deg,#f2fbf6,#fff)}
.panel--tint-coral{background:linear-gradient(180deg,#fef4f3,#fff)}
.panel-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:8px}
.panel-head h3{font-size:1.2rem}
.panel-head p{font-size:.9rem;color:var(--muted);margin-top:3px}
.rows{margin-top:14px}
.rows .row{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-top:1px solid var(--line-soft)}
.rows .row:first-child{border-top:none}
.rows .row .ric{flex:none;margin-top:1px}
.rows .row h4{font-size:.98rem}
.rows .row p{font-size:.86rem;color:var(--muted);margin-top:2px}
.rows .row .chev{margin-left:auto;color:var(--faint);flex:none}
.check{color:var(--green)} .cross{color:var(--coral)}

/* checklist compact (screenshot variant) */
.ticklist{margin:16px 0 0;padding:0;list-style:none}
.ticklist li{display:flex;gap:11px;align-items:flex-start;padding:8px 0;font-size:.96rem;color:var(--ink)}
.ticklist li svg{flex:none;margin-top:3px}

/* ==========================================================================
   Elevated triptych: does / does not / sample record
   ========================================================================== */
.overview-triptych{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(360px,.96fr);gap:20px;align-items:stretch}
.summary-panel{display:flex;flex-direction:column;min-height:100%}
.summary-list{display:grid;gap:0;margin-top:10px}
.summary-item{display:grid;grid-template-columns:46px 1fr;gap:16px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--line-soft)}
.summary-item:first-child{border-top:none;padding-top:14px}
.summary-ico{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;flex:none}
.summary-ico.yes{background:#dff5e9;color:#159765}
.summary-ico.no{background:#fde6e4;color:#ec5f5b}
.summary-copy h4{font-size:1rem;line-height:1.28;letter-spacing:-.02em}
.summary-copy p{font-size:.88rem;line-height:1.48;color:var(--muted);margin-top:4px}
.summary-foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--line-soft);display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.summary-foot-note{display:flex;gap:10px;color:#7f93ad;font-size:.84rem;line-height:1.5;max-width:74%}
.summary-foot-note svg{flex:none;color:#7590b3;margin-top:2px}
.summary-foot a{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-weight:700}
.data-card{background:linear-gradient(180deg,#fafdff,#ffffff);border-color:#d7e4f1}
.data-record{margin-top:14px;border:1px solid #dbe6f2;border-radius:24px;background:#ffffff;padding:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.data-record-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.data-record-top h4{font-size:1.02rem;letter-spacing:-.02em}
.data-badge{display:inline-flex;align-items:center;gap:8px;border:1px solid #dce7f5;background:#f6faff;color:#7790b0;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:700;white-space:nowrap}
.data-main{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.data-photo{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/10;min-height:230px;background:#dfe9f6;border:1px solid #d8e3ef;box-shadow:0 12px 30px rgba(29,70,115,.10)}
.data-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%;display:block}
.data-photo-tag{display:none}
.data-photo-caption{display:inline-flex;align-items:center;margin-top:8px;color:#7187a4;font-size:.76rem;font-weight:650}
.data-keyfields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:4px}
.data-kf{display:grid;gap:7px;padding:13px 14px;border:1px solid var(--line-soft);border-radius:14px;background:#fbfdff}
.data-kf-label{display:flex;align-items:center;gap:9px;color:#6f86a6;font-size:.84rem;font-weight:700}
.data-kf-label svg{color:#7f98b8;flex:none}
.data-kf strong{font-size:1rem;line-height:1.35;color:var(--ink);letter-spacing:-.02em}
.data-specs{margin-top:18px;padding-top:16px;border-top:1px solid var(--line-soft)}
.data-specs h5{font-size:.98rem;color:#6f86a6;margin-bottom:12px}
.data-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.data-spec{display:grid;gap:6px}
.data-spec span{font-size:.84rem;color:#7f93ad}
.data-spec strong{font-size:.94rem;color:var(--ink)}
.data-note{display:flex;align-items:flex-start;gap:10px;margin-top:16px;padding:14px 15px;border-radius:16px;background:#f4f7fd;color:#8195b1;font-size:.84rem;line-height:1.45}
.data-note svg{flex:none;color:#7e93b1;margin-top:1px}

/* ==========================================================================
   Vehicle record card (What data is captured)
   ========================================================================== */
.vrec{border:1px solid var(--line);border-radius:var(--r);padding:16px;background:#fcfdff}
.vrec-top{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.vrec .field .fl{display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--muted);font-weight:600}
.vrec .field .fv{font-weight:700;color:var(--ink);margin-top:3px;font-size:.98rem}
.vrec-body{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}
.vrec-photo{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:16/10;background:#dde8f5}
.vrec-photo img{width:100%;height:100%;object-fit:cover}
.vrec-photo .tag{position:absolute;left:8px;bottom:8px;background:rgba(10,32,60,.72);color:#fff;font-size:.66rem;font-weight:600;padding:3px 8px;border-radius:6px}
.vrec-attrs .fl{font-size:.72rem;color:var(--muted);font-weight:600;display:flex;gap:7px;align-items:center;margin-bottom:8px}
.vrec-attrs .arow{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line-soft);font-size:.9rem}
.vrec-attrs .arow:first-of-type{border-top:none}
.vrec-attrs .arow .k{color:var(--muted)} .vrec-attrs .arow .v{color:var(--ink);font-weight:600}
.vrec-note{display:flex;gap:8px;align-items:center;font-size:.8rem;color:var(--faint);margin-top:12px}

/* ==========================================================================
   Safeguards strip
   ========================================================================== */
.safeguards{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.safeguard{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--sh-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.safeguard:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.safeguard .tile{margin-bottom:12px}
.safeguard h4{font-size:1rem}
.safeguard p{font-size:.84rem;color:var(--muted);margin-top:4px}

/* classification pills */
.badge-pill{display:inline-flex;align-items:center;gap:6px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:4px 10px;border-radius:99px;white-space:nowrap}
.badge-pill.law{background:var(--green-tint);color:#1f9d68}
.badge-pill.policy{background:var(--blue-tint);color:var(--blue-ink)}
.badge-pill.config{background:#eef2f7;color:#6b7d94}
.badge-pill.vendor{background:var(--violet-tint);color:var(--violet)}
.badge-pill.advisory{background:var(--amber-tint);color:#c98a1e}

/* detailed safeguard card */
.sg{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);display:flex;flex-direction:column;gap:12px}
.sg:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.sg-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.sg h4{font-size:1.05rem}
.sg p{font-size:.9rem;color:var(--muted)}

/* ==========================================================================
   Metrics (public record results)
   ========================================================================== */
.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.metric{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm);text-align:left}
.metric .tile{margin-bottom:14px}
.metric .m-num{font-size:2.2rem;font-weight:800;color:var(--ink);letter-spacing:-.03em;line-height:1}
.metric .m-label{color:var(--muted);margin-top:6px;font-size:.92rem}

/* ==========================================================================
   Concern / response paired cards
   ========================================================================== */
.pairs{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.pair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
.pair .q{background:linear-gradient(180deg,#fdf3f2,#fff);border:1px solid #f6dedb;border-radius:var(--r);padding:20px;height:100%}
.pair .a{background:linear-gradient(180deg,#f1fbf6,#fff);border:1px solid #d8eee3;border-radius:var(--r);padding:20px;height:100%}
.pair .q h4,.pair .a h4{font-size:1.02rem;margin-bottom:6px}
.pair .q p,.pair .a p{font-size:.87rem;color:var(--muted)}
.pair .arrow{color:#c3d4ea}
.pair .tile{margin-bottom:12px}

/* ==========================================================================
   Accordion FAQ
   ========================================================================== */
.faq{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--sh-sm)}
.faq .item{border-top:1px solid var(--line-soft)}
.faq .item:first-child{border-top:none}
.faq .q{
  width:100%;text-align:left;background:none;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:19px 22px;font-size:1.02rem;font-weight:600;color:var(--ink);
}
.faq .q .pm{flex:none;width:22px;height:22px;position:relative;transition:transform .3s var(--ease);color:var(--blue)}
.faq .q[aria-expanded="true"] .pm{transform:rotate(180deg)}
.faq .a{overflow:hidden;height:0;transition:height .32s var(--ease)}
.faq .a-inner{padding:0 22px 20px;color:var(--text);font-size:.96rem;line-height:1.65;max-width:70ch}
.faq--split{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:none;background:none;box-shadow:none}
.faq--split .col{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:#fff;box-shadow:var(--sh-sm)}

/* ==========================================================================
   Tradeoff / slider tool
   ========================================================================== */
.tool{display:grid;grid-template-columns:1.25fr 1fr;gap:24px;align-items:stretch}
.tool .control{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm)}
.tool .readout{background:linear-gradient(180deg,#eef5fe,#f7fbff);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}
.slider-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.slider-head .lbl{font-weight:600;color:var(--ink);display:flex;gap:8px;align-items:center}
.slider-val{background:#fff;border:1px solid var(--line-strong);border-radius:10px;padding:8px 14px;font-weight:800;color:var(--ink)}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;border-radius:99px;
  background:linear-gradient(90deg,var(--blue) var(--fill,55%),#e3ecf7 var(--fill,55%));outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;border-radius:50%;background:#fff;
  border:2px solid var(--blue);box-shadow:0 4px 10px rgba(31,124,234,.35);cursor:pointer;transition:transform .15s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.08)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--blue);cursor:pointer}
.range-ticks{display:flex;justify-content:space-between;font-size:.74rem;color:var(--faint);margin-top:8px}
.readout .r-eyebrow{font-size:.78rem;font-weight:700;color:var(--blue);letter-spacing:.04em;text-transform:uppercase}
.readout .big{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-top:14px}
.readout .big .v{font-size:1.8rem;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.readout .big .k{font-size:.85rem;color:var(--muted)}
.tool .metrics-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.tool .mm{background:#fff;border:1px solid var(--line-soft);border-radius:12px;padding:14px}
.tool .mm .v{font-size:1.3rem;font-weight:800;color:var(--ink)}
.tool .mm .k{font-size:.78rem;color:var(--muted);margin-top:2px}
.assump{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--faint);margin-top:16px;line-height:1.5}
.tip{position:relative;display:inline-flex;cursor:help;color:var(--faint)}
.tip .tip-body{position:absolute;bottom:130%;left:50%;transform:translateX(-50%) translateY(4px);
  background:var(--ink-strong);color:#fff;font-size:.78rem;font-weight:400;line-height:1.45;padding:10px 12px;border-radius:9px;
  width:230px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:5;box-shadow:var(--sh-md)}
.tip:hover .tip-body{opacity:1;transform:translateX(-50%)}
.tip .tip-body::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink-strong)}

/* ==========================================================================
   Council Watch cards + status
   ========================================================================== */
.meeting{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm);
  display:flex;flex-direction:column;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.meeting:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.meeting .m-date{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:.85rem;font-weight:600}
.meeting h3{font-size:1.15rem;margin:10px 0 8px}
.meeting p{font-size:.9rem;color:var(--muted)}
.meeting .m-foot{display:flex;justify-content:space-between;gap:12px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line-soft);font-size:.83rem}
.meeting .m-foot .mf{display:flex;align-items:center;gap:7px;color:var(--muted)}
.meeting .read{margin-top:16px}

.status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;padding:5px 10px;border-radius:99px;border:1px solid transparent}
.status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.status.supported{color:#1f9d68;background:var(--green-tint)}
.status.partial{color:#c98a1e;background:var(--amber-tint)}
.status.unsupported{color:#d15656;background:var(--coral-tint)}
.status.context{color:#3f77c9;background:var(--blue-tint)}
.status.unverified{color:#6b7d94;background:#eef2f7}
.status.progress{color:#c98a1e;background:var(--amber-tint)}
.status.complete{color:#1f9d68;background:var(--green-tint)}

/* ==========================================================================
   Glossary + Sources
   ========================================================================== */
.gloss{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--sh-sm);position:relative;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.gloss:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.gloss .tile{margin-bottom:12px}
.gloss h4{font-size:1.02rem;margin-bottom:6px}
.gloss p{font-size:.85rem;color:var(--muted)}

.src-cat{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-sm);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.src-cat:hover{transform:translateY(-3px);box-shadow:var(--sh)}
.src-cat .tile{margin-bottom:14px}
.src-cat h4{font-size:1.05rem}
.src-cat p{font-size:.86rem;color:var(--muted);margin-top:4px}
.src-list{list-style:none;margin:0;padding:0}
.src-item{border-top:1px solid var(--line-soft)}
.src-item a{display:flex;gap:12px;align-items:flex-start;padding:15px 0;color:var(--ink);transition:color .2s}
.src-item:first-child a{padding-top:4px}
.src-item a:hover{color:var(--blue-ink)}
.src-item .si-ic{flex:none;color:var(--faint);margin-top:2px}
.src-item .si-title{font-weight:600;font-size:.95rem}
.src-item .si-meta{font-size:.8rem;color:var(--muted);margin-top:2px;word-break:break-word}
.src-item .si-ext{margin-left:auto;color:var(--faint);flex:none}
.filterbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:24px}
.chip{border:1px solid var(--line-strong);background:#fff;color:var(--muted);border-radius:99px;padding:9px 16px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}
.chip:hover{border-color:#c2d5ec;color:var(--ink)}
.chip.active{background:var(--blue);border-color:var(--blue);color:#fff}
.searchbox{display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-radius:99px;padding:10px 18px;background:#fff;min-width:260px;flex:1;max-width:420px}
.searchbox input{border:none;outline:none;font-size:.95rem;width:100%;background:none;color:var(--ink)}

/* ==========================================================================
   Council Watch specifics
   ========================================================================== */
.vote-summary{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:stretch}
.vote-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--sh-sm)}
.vote-badge{display:inline-flex;align-items:center;gap:9px;font-weight:700;color:#1f9d68;background:var(--green-tint);border-radius:99px;padding:8px 16px;font-size:.95rem}
.roll{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.roll .r{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border:1px solid var(--line-soft);border-radius:12px}
.roll .r .name{font-weight:600;color:var(--ink)}
.vote-pill{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;padding:5px 12px;border-radius:99px}
.vote-pill.yes{background:var(--green-tint);color:#1f9d68}
.vote-pill.no{background:var(--coral-tint);color:#d15656}

.cw-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px;border-bottom:1px solid var(--line);padding-bottom:2px}
.cw-tab{border:none;background:none;cursor:pointer;font-weight:600;font-size:1rem;color:var(--muted);padding:12px 16px;border-radius:10px 10px 0 0;position:relative;transition:color .2s}
.cw-tab:hover{color:var(--ink)}
.cw-tab.active{color:var(--blue-ink)}
.cw-tab.active::after{content:"";position:absolute;left:12px;right:12px;bottom:-3px;height:3px;border-radius:3px;background:var(--blue)}
.cw-panel{display:none}
.cw-panel.active{display:block;animation:fadeUp .4s var(--ease-out)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.claim{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);margin-bottom:16px;overflow:hidden}
.claim-head{display:flex;gap:14px;align-items:flex-start;padding:20px 22px;cursor:pointer}
.claim-head .cn{flex:none;width:30px;height:30px;border-radius:8px;background:var(--bg-tint);color:var(--blue-ink);font-weight:700;font-size:.85rem;display:grid;place-items:center}
.claim-head .cmeta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:7px}
.claim-head .who{font-weight:700;color:var(--ink);font-size:.9rem}
.claim-head .ts{font-size:.8rem;color:var(--faint)}
.claim-head .stmt{color:var(--text);font-size:1rem;line-height:1.5}
.claim-head .exp{margin-left:auto;flex:none;color:var(--faint);transition:transform .3s var(--ease)}
.claim.open .claim-head .exp{transform:rotate(180deg)}
.claim-body{display:none;padding:0 22px 22px 66px}
.claim.open .claim-body{display:block;animation:fadeUp .35s var(--ease-out)}
.claim-body h5{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);margin:16px 0 8px;font-weight:700}
.claim-body p{font-size:.92rem;color:var(--text);line-height:1.6}
.fact{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line-soft);font-size:.9rem}
.fact:first-of-type{border-top:none}
.fact .fdot{flex:none;color:var(--green);margin-top:3px}
.srclinks{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.srclink{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;color:var(--blue-ink);background:var(--blue-tint);border-radius:8px;padding:3px 9px}
.srclink:hover{background:var(--blue-tint-2)}

.tr-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.transcript{max-height:640px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r);padding:6px 6px;background:#fff}
.tr-line{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:14px 16px;border-radius:10px}
.tr-line:hover{background:var(--bg-tint)}
.tr-line .tr-ts{font-size:.78rem;color:var(--faint);font-variant-numeric:tabular-nums;padding-top:2px}
.tr-line .tr-speaker{font-weight:700;color:var(--ink);font-size:.9rem;margin-bottom:3px;display:flex;align-items:center;gap:8px}
.tr-line .tr-text{font-size:.95rem;color:var(--text);line-height:1.6}
.attr{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:6px}
.attr.confirmed{background:var(--green-tint);color:#1f9d68}
.attr.context{background:var(--blue-tint);color:var(--blue-ink)}
.attr.uncertain{background:#eef2f7;color:#6b7d94}
.est-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.est-list li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-size:.94rem;color:var(--text)}
.est-list li svg{flex:none;color:var(--green);margin-top:2px}

/* ==========================================================================
   Council Watch fact check — elevated record design
   ========================================================================== */
.council-record{background:linear-gradient(180deg,#fff 0%,#f8fbff 100%)}
.council-record-head{max-width:780px}
.fact-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}
.fact-summary article{min-width:0;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;column-gap:13px;align-items:center;box-shadow:0 10px 28px rgba(29,71,118,.045)}
.fact-summary-icon{grid-row:1/3;width:42px!important;height:42px!important;min-width:42px;max-width:42px;min-height:42px;max-height:42px;border-radius:13px;display:grid;place-items:center;overflow:hidden}
.fact-summary-icon svg{display:block!important;width:21px!important;height:21px!important;min-width:21px!important;max-width:21px!important;min-height:21px!important;max-height:21px!important;flex:none!important}
.fact-summary-icon.blue{background:var(--blue-tint);color:var(--blue)}
.fact-summary-icon.green{background:var(--green-tint);color:var(--green)}
.fact-summary-icon.amber{background:var(--amber-tint);color:var(--amber)}
.fact-summary-icon.violet{background:var(--violet-tint);color:var(--violet)}
.fact-summary strong{font-size:1.45rem;line-height:1;color:var(--ink);letter-spacing:-.04em;min-width:0}
.fact-summary article>span:last-child{font-size:.77rem;color:var(--muted);line-height:1.3;margin-top:5px;min-width:0}
.evidence-key{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:16px;margin-bottom:24px}
.evidence-key-copy{display:grid;gap:4px;max-width:560px}
.evidence-key-copy strong{color:var(--ink);font-size:.9rem}
.evidence-key-copy span{font-size:.78rem;color:var(--muted);line-height:1.45}
.evidence-key-items{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.council-record .cw-tabs{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px;gap:4px;overflow-x:auto;scrollbar-width:none}
.council-record .cw-tabs::-webkit-scrollbar{display:none}
.council-record .cw-tab{border-radius:10px;padding:11px 14px;white-space:nowrap;font-size:.88rem}
.council-record .cw-tab.active{background:var(--blue-tint);color:var(--blue-ink)}
.council-record .cw-tab.active::after{display:none}
.fact-tools{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(170px,.72fr) minmax(190px,.8fr) auto;gap:10px;align-items:end;margin:24px 0 12px;padding:15px;background:#fff;border:1px solid var(--line);border-radius:16px}
.fact-search{height:46px;border:1px solid var(--line-strong);background:#fbfdff;border-radius:11px;display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--faint)}
.fact-search svg{width:18px!important;height:18px!important;flex:none}
.fact-search:focus-within{border-color:#9fc6f4;box-shadow:0 0 0 3px rgba(31,124,234,.08)}
.fact-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:.86rem}
.fact-search input::placeholder{color:#91a2b7}
.fact-select-wrap{display:grid;gap:5px}
.fact-select-wrap>span{font-size:.69rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--faint);padding-left:2px}
.fact-select-wrap select{width:100%;height:46px;border:1px solid var(--line-strong);border-radius:11px;background:#fbfdff;color:var(--ink);padding:0 34px 0 12px;font:inherit;font-size:.8rem;outline:none}
.fact-select-wrap select:focus{border-color:#9fc6f4;box-shadow:0 0 0 3px rgba(31,124,234,.08)}
.fact-clear{height:46px;border:1px solid var(--line-strong);background:#fff;border-radius:11px;padding:0 14px;color:var(--muted);font:inherit;font-size:.79rem;font-weight:700;cursor:pointer;white-space:nowrap}
.fact-clear:hover{border-color:#b9cee6;color:var(--ink);background:#fbfdff}
.fact-results-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 2px}
.fact-results-head p{font-size:.8rem;color:var(--muted);font-weight:600}
.fact-expand-all{border:0;background:none;color:var(--blue-ink);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;padding:6px 0;white-space:nowrap}
.claims-list{display:grid;gap:12px}
.claim.claim-v2{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 26px rgba(28,69,111,.04);transition:border-color .22s,box-shadow .22s,transform .22s}
.claim.claim-v2:hover{border-color:#cbdced;box-shadow:0 12px 30px rgba(28,69,111,.06)}
.claim.claim-v2[data-evidence="supported"]{border-left:3px solid #4ab986}
.claim.claim-v2[data-evidence="partial"]{border-left:3px solid #e2aa4b}
.claim.claim-v2[data-evidence="context"]{border-left:3px solid #6ca4e5}
.claim.claim-v2[data-evidence="unsupported"]{border-left:3px solid #ec7b7b}
.claim.claim-v2[data-evidence="unverified"]{border-left:3px solid #a1afc0}
.claim-head-v2{width:100%;border:0;background:#fff;text-align:left;display:grid;grid-template-columns:34px minmax(0,1fr) 28px;gap:14px;align-items:start;padding:19px 20px;cursor:pointer;font:inherit;color:inherit}
.claim-number{width:30px;height:30px;border-radius:9px;background:#f0f6fd;color:var(--blue-ink);display:grid;place-items:center;font-size:.75rem;font-weight:800;margin-top:1px}
.claim-main{display:grid;gap:8px;min-width:0}
.claim-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.claim-meta strong{font-size:.84rem;color:var(--ink)}
.claim-time{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;color:#7187a4;font-weight:700}
.claim-time:hover{color:var(--blue-ink)}
.claim-statement{display:block;font-size:1rem;line-height:1.48;color:var(--ink);font-weight:700;letter-spacing:-.015em}
.claim-source-count{font-size:.72rem;color:var(--faint);font-weight:600}
.claim-expand{width:28px;height:28px;border-radius:9px;background:#f7faff;color:#7b90ab;display:grid;place-items:center;transition:transform .25s var(--ease),background .2s}
.claim-expand svg{width:18px!important;height:18px!important}
.claim.open .claim-expand{transform:rotate(180deg);background:var(--blue-tint);color:var(--blue)}
.claim-body-v2{display:none;padding:0 20px 20px 68px;background:linear-gradient(180deg,#fff,#fbfdff)}
.claim.open .claim-body-v2{display:grid;gap:14px;animation:fadeUp .28s var(--ease-out)}
.claim-assessment{padding:13px 15px;border-radius:12px;background:#f5f9fe;border:1px solid #e2ecf7}
.claim-assessment-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--blue-ink);display:block;margin-bottom:4px}
.claim-assessment p{font-size:.88rem;line-height:1.55;color:var(--text)}
.claim-evidence,.claim-context,.claim-limit{padding-top:3px}
.claim-evidence h4,.claim-context h4,.claim-limit h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--faint);margin-bottom:8px}
.fact-record{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:12px 0;border-top:1px solid var(--line-soft)}
.fact-record:first-of-type{border-top:0;padding-top:0}
.fact-record-mark{width:24px;height:24px;border-radius:50%;background:var(--green-tint);color:var(--green);display:grid;place-items:center;margin-top:1px}
.fact-record-mark svg{width:14px!important;height:14px!important}
.fact-record p,.claim-context p,.claim-limit p{font-size:.87rem;line-height:1.6;color:var(--text)}
.claim-limit{padding:12px 14px;border:1px solid #e7ecf3;background:#f8fafc;border-radius:12px}
.fact-empty{display:grid;gap:5px;text-align:center;padding:42px 20px;background:#fff;border:1px dashed #cfddeb;border-radius:16px;color:var(--muted)}
.fact-empty strong{color:var(--ink)}
.established-intro{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:26px;align-items:end;margin:22px 0}
.established-intro h3{font-size:1.35rem}
.established-intro>p{font-size:.9rem;line-height:1.6;color:var(--muted)}
@media (max-width:1050px){
  .fact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fact-tools{grid-template-columns:1fr 1fr}
  .fact-search{grid-column:1/-1}
}
@media (max-width:720px){
  .fact-summary{grid-template-columns:1fr 1fr}
  .evidence-key{align-items:flex-start;flex-direction:column}
  .evidence-key-items{justify-content:flex-start}
  .fact-tools{grid-template-columns:1fr;padding:12px}
  .fact-search{grid-column:auto}
  .claim-head-v2{grid-template-columns:30px minmax(0,1fr) 26px;gap:10px;padding:16px 14px}
  .claim-body-v2{padding:0 14px 16px 54px}
  .claim-statement{font-size:.94rem}
  .established-intro{grid-template-columns:1fr;gap:8px}
}
@media (max-width:470px){
  .fact-summary{grid-template-columns:1fr}
  .claim-head-v2{grid-template-columns:minmax(0,1fr) 26px}
  .claim-number{display:none}
  .claim-body-v2{padding:0 14px 16px}
  .evidence-key-items .status{font-size:.68rem}
}

/* ==========================================================================
   Council Watch methodology
   ========================================================================== */
.method-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}
.method-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 18px;box-shadow:var(--sh-sm)}
.method-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--bg-tint);color:var(--blue);margin-bottom:14px}
.method-kicker{font-size:.75rem;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:var(--blue-ink);margin-bottom:8px}
.method-card h3{font-size:1rem;line-height:1.28;letter-spacing:-.02em;margin-bottom:8px}
.method-card p:last-child{font-size:.9rem;line-height:1.55;color:var(--muted)}
.method-sections{display:grid;gap:16px}
.method-section{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 26px;box-shadow:var(--sh-sm)}
.method-section h3{font-size:1.15rem;letter-spacing:-.03em;margin-bottom:8px}
.method-intro{font-size:.95rem;line-height:1.6;color:var(--muted);margin-bottom:14px}
.method-section ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.method-section li{position:relative;padding-left:28px;font-size:.95rem;line-height:1.65;color:var(--text)}
.method-section li::before{content:"";position:absolute;left:0;top:.65em;width:9px;height:9px;border-radius:99px;background:linear-gradient(180deg,#4aa2ff,#1d78ea);box-shadow:0 0 0 5px #eaf3ff;transform:translateY(-50%)}
.method-callout{margin-top:16px;padding:14px 16px;border-radius:14px;background:#f5f9ff;border:1px solid #dbe7f7;color:#47617f;font-size:.9rem;line-height:1.55}
.method-callout strong{color:var(--ink)}
.method-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.method-chips span{display:inline-flex;align-items:center;padding:8px 12px;border-radius:999px;background:#f6faff;border:1px solid #d8e6f6;color:#5a7395;font-size:.8rem;font-weight:700}
.method-raw{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-sm);overflow:hidden}
.method-raw summary{cursor:pointer;list-style:none;padding:18px 20px;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between}
.method-raw summary::-webkit-details-marker{display:none}
.method-raw summary::after{content:"+";font-size:1.25rem;color:var(--faint)}
.method-raw[open] summary::after{content:"–"}
.method-raw-body{padding:0 20px 20px;border-top:1px solid var(--line-soft)}
@media (max-width:1040px){.method-summary{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.method-summary{grid-template-columns:1fr}.method-section{padding:20px 18px}.method-section li{padding-left:24px}.method-raw summary{padding:16px 18px}.method-raw-body{padding:0 18px 18px}}

/* ==========================================================================
   CTA band + disclaimer + footer
   ========================================================================== */
.cta-band{position:relative;overflow:hidden;background:linear-gradient(180deg,#e9f2fd,#eef6fe);border-radius:var(--r-xl);
  padding:clamp(30px,4vw,46px);display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap}
.cta-band .skyline{position:absolute;right:0;bottom:0;width:min(54%,620px);opacity:.62;pointer-events:none}
.cta-band .cta-copy{position:relative;z-index:2;max-width:520px}
.cta-band h2{font-size:clamp(1.5rem,2.6vw,2.1rem)}
.cta-band p{color:var(--muted);margin-top:8px}
.cta-band .cta-actions{position:relative;z-index:2;display:flex;gap:12px;flex-wrap:wrap}

.disclaimer{display:flex;gap:14px;align-items:flex-start;background:var(--amber-tint);border:1px solid #f3e2c2;border-radius:var(--r);
  padding:16px 18px;font-size:.86rem;color:#6b5426;line-height:1.55}
.disclaimer .badge{flex:none;background:#fff;border:1px solid #e2cd9c;color:#a9791f;border-radius:8px;padding:4px 9px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.disclaimer strong{color:#5a441c}

.site-footer{border-top:1px solid var(--line);background:#fff;padding-block:36px 30px}
.footer-grid{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;align-items:flex-start}
.footer-brand{max-width:320px}
.footer-brand p{font-size:.88rem;color:var(--muted);margin-top:12px}
.footer-nav{display:flex;gap:44px;flex-wrap:wrap}
.footer-col h5{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:12px;font-weight:700}
.footer-col a{display:block;color:var(--text);font-size:.92rem;padding:5px 0;transition:color .2s}
.footer-col a:hover{color:var(--blue-ink)}
.footer-base{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px;padding-top:20px;border-top:1px solid var(--line-soft);
  font-size:.82rem;color:var(--faint)}

/* ==========================================================================
   Scroll reveal
   ========================================================================== */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.08s}
.reveal[data-delay="2"]{transition-delay:.16s}
.reveal[data-delay="3"]{transition-delay:.24s}
.reveal[data-delay="4"]{transition-delay:.32s}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .dash{opacity:1;transform:none;animation:none}
  .dash .chart .bar{transform:scaleY(1)}
  .map .dot{animation:none}
}


.btn-council{font-weight:700}
@media (max-width:1240px){
  .btn-council{font-size:.78rem!important;padding:10px 14px!important}
}
@media (max-width:1120px){
  .btn-council{font-size:.74rem!important;padding:9px 12px!important}
}

/* ==========================================================================
   Responsive
   ========================================================================== */
/* Collapse the full nav to the mobile menu before the large logo can crowd it */
@media (max-width:1240px){
  .nav-links{display:none}
  .menu-toggle{display:inline-grid}
  .nav-actions .btn,.nav-actions .search-lg{display:none}
  .nav-actions{margin-left:auto}
}
@media (max-width:1080px){
  .g-5{grid-template-columns:repeat(3,1fr)}
  .safeguards,.metrics{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:920px){
  :root{--nav-h:78px}
  .nav-links{display:none}
  .nav-actions .btn,.nav-actions .search-lg{display:none}
  .menu-toggle{display:inline-grid}
  .brand-logo{height:48px}
  .q-layout{grid-template-columns:1fr!important}
  .vote-summary{grid-template-columns:1fr}
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-photo{width:100%;opacity:.28;-webkit-mask-image:linear-gradient(180deg,#000,transparent);mask-image:linear-gradient(180deg,#000,transparent)}
  .hero-script{display:none}
  .dash-body{grid-template-columns:1fr}
  .dash-side{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line-soft)}
  .flow,.flow-mini{grid-template-columns:1fr 1fr}
  .flow .arrow,.flow-mini .arrow{display:none}
  .tool{grid-template-columns:1fr}
  .faq--split{grid-template-columns:1fr}
  .pairs{grid-template-columns:1fr}
  .hero-banner-copy .inner{max-width:none}
}
@media (max-width:720px){
  .g-2,.g-3,.g-4,.g-5{grid-template-columns:1fr}
  .trust,.safeguards,.metrics{grid-template-columns:1fr 1fr}
  .kpi-row{grid-template-columns:1fr 1fr}
  .dash-panels{grid-template-columns:1fr}
  .vrec-top{grid-template-columns:1fr 1fr}
  .vrec-body{grid-template-columns:1fr}
  .pair{grid-template-columns:1fr}
  .pair .arrow{transform:rotate(90deg);justify-self:center}
  .flow,.flow-mini{grid-template-columns:1fr}
  .section-head--row{flex-direction:column;align-items:flex-start;gap:10px}
  .cta-band{flex-direction:column;align-items:flex-start}
}
@media (max-width:480px){
  .trust,.safeguards,.metrics,.kpi-row{grid-template-columns:1fr}
  body{font-size:16px}
}

/* ==========================================================================
   Elevation pass v3 — Raven-inspired light civic UX
   ========================================================================== */
:root{
  --container:1260px;
  --gutter:28px;
  --r-sm:12px;
  --r:16px;
  --r-lg:22px;
  --r-xl:28px;
  --pill:11px;
  --bg-tint:#f6faff;
  --bg-tint-2:#edf6ff;
  --line:#dfe9f5;
  --line-soft:#edf3f9;
  --line-strong:#cfddee;
  --ink:#0b2652;
  --text:#425b78;
  --muted:#6d82a0;
  --blue:#1177ee;
  --blue-2:#0669df;
  --blue-ink:#0b6bd8;
  --blue-tint:#eaf4ff;
  --teal-tint:#e8faf7;
  --green-tint:#ecfaf3;
  --coral-tint:#fff1f1;
  --violet-tint:#f1efff;
  --amber-tint:#fff7e8;
  --sh-sm:0 1px 2px rgba(28,62,101,.04),0 6px 18px rgba(28,62,101,.035);
  --sh:0 12px 34px rgba(28,62,101,.07);
  --sh-md:0 18px 46px rgba(28,62,101,.095);
  --sh-lg:0 28px 76px rgba(28,62,101,.15);
}
body{
  background:#fff;
  color:var(--text);
  font-size:16px;
  line-height:1.6;
}
main{overflow:hidden}
.container{max-width:var(--container)}
.section{padding-block:clamp(52px,6vw,82px)}
.section--tight{padding-block:clamp(32px,4vw,50px)}
.section-head{margin-bottom:26px}
.eyebrow{font-size:.72rem;letter-spacing:.17em;margin-bottom:12px}
h2.h2{font-size:clamp(1.75rem,2.7vw,2.35rem);letter-spacing:-.035em}
.sub{font-size:.96rem;line-height:1.6;margin-top:5px}

/* header */
.site-header{
  background:rgba(255,255,255,.91);
  border-bottom:1px solid rgba(216,229,244,.72);
  box-shadow:none;
  backdrop-filter:saturate(180%) blur(18px);
  -webkit-backdrop-filter:saturate(180%) blur(18px);
}
.site-header.is-stuck{background:rgba(255,255,255,.96);box-shadow:0 10px 28px rgba(31,67,108,.07)}
.nav{height:var(--nav-h);gap:16px;flex-wrap:nowrap}
.brand{font-size:1.16rem}
.brand .mark{width:32px;height:32px}
.brand-logo{height:64px}
.nav-links{gap:0;flex-wrap:nowrap;min-width:0}
.nav-links a{font-size:.9rem;padding:9px 12px;border-radius:9px;white-space:nowrap;flex:none}
.nav-links a.active::after{bottom:-2px;height:2px}
.nav-actions{gap:8px;flex-wrap:nowrap;flex:none}
.nav-actions .btn{font-size:.84rem;padding:10px 15px}
.iconbtn{width:40px;height:40px;border:none;background:var(--bg-tint);box-shadow:none}
.btn{font-size:.92rem;padding:13px 20px;border-radius:11px;font-weight:650}
.btn-lg{padding:14px 22px;font-size:.97rem}
.btn-primary{background:linear-gradient(180deg,#1681f7 0%,#086ee8 100%);box-shadow:0 9px 20px rgba(17,119,238,.20)}
.btn-ghost{box-shadow:none;border-color:#b9d6fa;color:#123c70}
.btn-primary:hover{box-shadow:0 14px 28px rgba(17,119,238,.26)}

/* hero */
.hero{
  min-height:540px;
  background:linear-gradient(180deg,#edf7ff 0%,#f8fbff 65%,#fff 100%);
  border-bottom:1px solid var(--line-soft);
}
.hero-photo{
  inset:0;
  width:100%;
  height:100%;
  opacity:1;
  -webkit-mask-image:none;
  mask-image:none;
}
.hero-photo img{object-position:center 44%;filter:saturate(1) contrast(1.01) brightness(1.02)}
.hero-photo::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(246,251,255,.985) 0%,rgba(246,251,255,.955) 28%,rgba(246,251,255,.62) 51%,rgba(246,251,255,.18) 73%,rgba(246,251,255,.05) 100%);
}
.hero-photo::after{
  z-index:2;
  background:linear-gradient(180deg,rgba(238,248,255,.03) 42%,rgba(255,255,255,.92) 100%);
}
.hero-grid{
  grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);
  gap:46px;
  min-height:470px;
  padding-block:52px 74px;
}
.hero-copy{max-width:620px}
.hero-copy h1{font-size:clamp(2.8rem,4.65vw,4rem);line-height:1.01;letter-spacing:-.045em}
.hero-copy .lead{font-size:1.06rem;line-height:1.58;margin-top:18px;max-width:56ch}
.hero-cta{margin-top:27px;gap:11px}
.hero-proof{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px;color:#617897;font-size:.77rem;font-weight:600}
.hero-proof .proof-dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#e7f8f1;color:#159765;font-size:.72rem;font-weight:900}
.hero-proof i{display:block;width:1px;height:14px;background:#cbd8e8}
.hero-script{top:24px;right:max(30px,calc((100vw - var(--container))/2 + 8px));font-size:1.55rem;color:#356baf;opacity:.85}
.hero-dash{position:relative;z-index:3;transform:translateY(6px)}
.dash{border-color:#d8e5f3;border-radius:20px;box-shadow:0 28px 60px rgba(27,63,104,.16),0 8px 22px rgba(27,63,104,.07);background:rgba(255,255,255,.97)}
.dash-top{padding:12px 15px;background:linear-gradient(180deg,#fff,#fbfdff)}
.dash-body{min-height:318px}
.dash-main{padding:14px}
.dash-side{background:#fbfdff}
.kpi{padding:10px;border-radius:10px;box-shadow:0 1px 0 rgba(18,59,102,.02)}
.dpanel{background:#fff;border-radius:10px}
.map{background:linear-gradient(145deg,#f5f9fe,#eaf3fc)}
@media (prefers-reduced-motion:no-preference){
  .hero-dash{animation:heroFloat 7s ease-in-out infinite}
  @keyframes heroFloat{0%,100%{transform:translateY(6px)}50%{transform:translateY(-2px)}}
}

/* trust strip */
.hero .trust{
  position:relative;z-index:5;
  margin-bottom:-36px!important;
  transform:translateY(34px)!important;
  padding:0;
  border-radius:0;
  box-shadow:none;
  border:1px solid var(--line-soft);
  border-left:none;border-right:none;
  background:rgba(255,255,255,.97);
  gap:0;
}
.hero .trust .t{border-radius:0;padding:17px 18px;position:relative}
.hero .trust .t:not(:last-child)::after{content:"";position:absolute;right:0;top:18px;bottom:18px;width:1px;background:var(--line)}
.hero .trust .t:hover{background:#fbfdff}
.hero .trust .t h4{font-size:.86rem}
.hero .trust .t p{font-size:.75rem;line-height:1.35}
.hero .trust .tile{width:40px;height:40px;border-radius:50%}
.hero .trust .tile svg{width:20px;height:20px}

/* Cards and overview grids */
.grid{gap:14px}
.card,.qcard,.meeting,.sg,.safeguard,.metric,.panel,.faq,.tool .control,.tool .readout,.vote-card,.claim{box-shadow:none;border-color:var(--line)}
.card:hover,.qcard:hover,.meeting:hover,.sg:hover,.safeguard:hover{box-shadow:var(--sh);border-color:#cfdef0}
.glance{
  background:#fff!important;
  border:1px solid var(--line)!important;
  padding:18px 18px 20px;
  min-height:188px;
  box-shadow:0 8px 24px rgba(33,70,110,.035);
  position:relative;
  overflow:hidden;
}
.glance::before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:4px;background:linear-gradient(90deg,#a6d6ff,transparent);opacity:.55}
.glance .tile{width:42px;height:42px;border-radius:50%;background:var(--blue-tint)}
.glance .g-num{font-size:1.8rem;margin-top:13px}
.glance .g-word{font-size:1.18rem;margin-top:13px;line-height:1.15}
.glance .g-label{font-size:.84rem;margin-top:3px}
.glance .g-desc{font-size:.76rem;line-height:1.45;margin-top:5px}
.qcard{padding:18px;gap:10px;min-height:156px;border-radius:14px}
.qcard .tile{width:42px;height:42px;border-radius:50%}
.qcard h3{font-size:.94rem;padding-right:20px}
.qcard p{font-size:.78rem;line-height:1.45}
.qcard .qc-arrow{top:auto;right:15px;bottom:15px}

/* homepage process */
.flow-mini{gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0}
.flow-mini .m{padding:0 26px;min-height:128px}
.flow-mini .m:first-child{padding-left:0}
.flow-mini .m:last-child{padding-right:0}
.flow-mini .m:not(:last-child){border-right:1px solid var(--line-soft)}
.flow-mini .m .n{width:31px;height:31px;font-size:.8rem;border:1px solid #d5e7fb;background:#f1f7ff}
.flow-mini .m h4{font-size:.92rem}
.flow-mini .m p{font-size:.76rem;line-height:1.45}
.flow-mini .m .arrow{right:-12px;top:7px;z-index:2;background:#fff;padding:0 3px}

/* rich homepage explainer */
.section--story{background:linear-gradient(180deg,#f8fbff 0%,#fff 100%);border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.home-explainer-grid{display:grid;grid-template-columns:1.6fr .72fr .72fr;gap:16px;align-items:stretch}
.record-demo,.limit-card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 10px 32px rgba(36,73,112,.045)}
.record-demo{padding:22px}
.record-demo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.record-kicker{display:block;font-size:.67rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--blue);margin-bottom:4px}
.record-demo h3,.limit-card h3{font-size:1.14rem;letter-spacing:-.025em}
.record-status{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:999px;padding:6px 9px;font-size:.69rem;color:var(--muted);white-space:nowrap}
.record-status span{width:7px;height:7px;border-radius:50%;background:#1fb87b;box-shadow:0 0 0 4px rgba(31,184,123,.1)}
.record-demo-body{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;align-items:stretch}
.record-vehicle{position:relative;min-height:260px;border-radius:16px;overflow:hidden;background:#eaf3fb;border:1px solid var(--line-soft);box-shadow:0 12px 30px rgba(29,70,115,.08)}
.record-vehicle svg,.record-vehicle img{width:100%;height:100%;display:block;object-fit:cover}
.record-camera-chip{position:absolute;left:10px;bottom:10px;background:rgba(11,38,82,.83);color:#fff;border-radius:7px;padding:5px 8px;font-size:.67rem;font-weight:650;backdrop-filter:blur(8px)}
.record-fields{margin:0;border:1px solid var(--line-soft);border-radius:14px;padding:6px 15px;background:#fcfdff}
.record-fields div{display:grid;grid-template-columns:115px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.record-fields div:last-child{border-bottom:none}
.record-fields dt{font-size:.72rem;color:var(--muted)}
.record-fields dd{margin:0;font-size:.81rem;font-weight:700;color:var(--ink)}
.record-caption{font-size:.72rem;color:var(--faint);margin-top:13px;line-height:1.5}
.limit-card{padding:22px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.limit-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;opacity:.7}
.limit-card--yes{background:linear-gradient(180deg,#f4fcf8,#fff 36%)}
.limit-card--yes::before{background:#73d6ab}
.limit-card--no{background:linear-gradient(180deg,#fff7f7,#fff 36%)}
.limit-card--no::before{background:#f39a9a}
.limit-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:1.15rem;margin-bottom:14px}
.limit-card--yes .limit-icon{background:#ddf7eb;color:#159765}
.limit-card--no .limit-icon{background:#ffe5e5;color:#d95959}
.limit-card ul{margin:16px 0 18px;padding:0;list-style:none;display:grid;gap:9px}
.limit-card li{position:relative;padding-left:18px;font-size:.78rem;line-height:1.43;color:#4b627e}
.limit-card li::before{content:"";position:absolute;left:0;top:.48em;width:7px;height:7px;border-radius:50%}
.limit-card--yes li::before{background:#54c996}
.limit-card--no li::before{background:#ef8e8e}
.limit-card a{margin-top:auto;font-size:.75rem;font-weight:750;color:var(--blue-ink);display:flex;justify-content:space-between;gap:8px;align-items:center}

/* FAQ and source sections */
.faq,.faq--split .col{border-radius:14px;box-shadow:none}
.faq .q{font-size:.86rem;padding:14px 18px}
.faq .a-inner{font-size:.83rem;padding:0 18px 17px;line-height:1.58}
.faq--split{gap:12px}
.tint{background:#f8fbff}
.tint-2{background:#eef6ff}

/* interior photo heroes */
.hero--photo{background:#edf7ff}
.hero--photo > .container{max-width:none!important;padding:0!important}
.hero--photo .hero-banner{height:clamp(330px,31vw,410px);border-radius:0;border-bottom:1px solid var(--line)}
.hero--photo .hero-banner img{object-position:center 40%;filter:saturate(1) brightness(1.02) contrast(1.01)}
.hero--photo .hero-banner::after{background:linear-gradient(90deg,rgba(244,250,255,.99) 0%,rgba(244,250,255,.95) 30%,rgba(244,250,255,.56) 53%,rgba(244,250,255,.06) 78%)}
.hero-banner-copy .inner{max-width:650px}
.hero-banner-copy h1{font-size:clamp(2.7rem,4.7vw,4rem);line-height:1.01;letter-spacing:-.045em}
.hero-banner-copy .lead{font-size:1.04rem;line-height:1.55}

/* how it works / safeguards */
.flow{gap:12px}
.flow .step{padding:20px;box-shadow:none;border-radius:15px;min-height:224px}
.flow .step .num{top:15px;right:15px}
.flow .step h4{font-size:.98rem}
.flow .step p{font-size:.8rem;line-height:1.48}
.panel{padding:22px;border-radius:18px}
.panel-head h3{font-size:1.08rem}
.panel-head p{font-size:.8rem}
.ticklist li{font-size:.84rem;padding:7px 0;line-height:1.45}
.safeguards{gap:12px}
.safeguard{padding:17px;min-height:160px}
.safeguard .tile{width:40px;height:40px;border-radius:50%}
.safeguard h4{font-size:.91rem}
.safeguard p{font-size:.76rem;line-height:1.45}

/* questions / tradeoffs */
.metrics{gap:12px}
.metric{padding:18px;min-height:154px}
.metric .m-num{font-size:1.75rem}
.metric .m-label{font-size:.8rem}
.pairs{gap:14px}
.pair .q,.pair .a{padding:18px;border-radius:14px}
.tool{gap:18px}
.tool .control,.tool .readout{border-radius:18px;padding:22px}
.tool .readout{background:linear-gradient(180deg,#eff7ff,#fafcff)}
.meeting{padding:18px;border-radius:14px}
.gloss{border-radius:14px}

/* CTAs and footer */
.cta-band{border:1px solid #d9e9fa;background:linear-gradient(90deg,#eaf5ff 0%,#f6fbff 52%,#e8f3ff 100%);border-radius:18px;padding:28px 34px;box-shadow:none}
.cta-band h2{font-size:1.5rem}
.cta-band p{font-size:.84rem;max-width:62ch}
.site-footer{padding-block:28px 22px;background:#fff}
.footer-grid{gap:26px}
.footer-brand p{font-size:.78rem;line-height:1.5}
.footer-col a{font-size:.8rem}
.footer-base{font-size:.72rem}
.disclaimer{border-radius:13px;font-size:.75rem;background:#fffaf0}

/* micro interactions */
@media (prefers-reduced-motion:no-preference){
  .qcard,.glance,.meeting,.safeguard,.sg,.record-demo,.limit-card{transition:transform .28s var(--ease-out),box-shadow .28s var(--ease-out),border-color .28s var(--ease-out)}
  .record-demo:hover,.limit-card:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:#cfdef0}
  .tile{transition:transform .25s var(--ease-out)}
  .qcard:hover .tile,.glance:hover .tile,.safeguard:hover .tile{transform:scale(1.06) rotate(-2deg)}
}

/* responsive elevation */
@media (max-width:1120px){
  .hero-grid{grid-template-columns:1fr 1fr;gap:30px}
  .home-explainer-grid{grid-template-columns:1.35fr 1fr}
  .record-demo{grid-column:1/-1}
}
@media (max-width:920px){
  :root{--gutter:22px;--nav-h:78px}
  .brand-logo{height:48px}
  .hero{min-height:auto}
  .hero-grid{grid-template-columns:1fr;min-height:auto;padding-block:44px 62px}
  .hero-copy{max-width:660px}
  .hero-photo::before{background:linear-gradient(180deg,rgba(246,251,255,.9),rgba(246,251,255,.82) 48%,rgba(255,255,255,.97) 100%)}
  .hero-photo{opacity:.45}
  .hero-dash{max-width:720px;width:100%;margin-inline:auto}
  .hero .trust{margin-bottom:0!important;transform:none!important}
  .hero .trust .t:not(:last-child)::after{display:none}
  .home-explainer-grid{grid-template-columns:1fr 1fr}
  .record-demo{grid-column:1/-1}
  .hero--photo .hero-banner{height:auto;min-height:410px}
}
@media (max-width:720px){
  :root{--gutter:18px}
  .section{padding-block:46px}
  .hero-grid{padding-block:38px 46px}
  .hero-copy h1{font-size:clamp(2.35rem,11vw,3.25rem)}
  .hero-proof i{display:none}
  .hero-proof{gap:7px 12px}
  .dash{border-radius:16px}
  .dash-body{min-height:0}
  .hero .trust{grid-template-columns:1fr 1fr}
  .hero .trust .t{padding:14px 12px}
  .glance{min-height:0;padding:16px}
  .qcard{min-height:0}
  .flow-mini{border:none;padding:0;gap:10px}
  .flow-mini .m{border:1px solid var(--line)!important;border-radius:14px;padding:17px!important;min-height:0;background:#fff}
  .home-explainer-grid{grid-template-columns:1fr}
  .record-demo{grid-column:auto}
  .record-demo-body{grid-template-columns:1fr}
  .record-fields div{grid-template-columns:105px 1fr}
  .cta-band{padding:24px}
  .hero--photo .hero-banner{min-height:430px}
}
@media (max-width:480px){
  .brand-logo{height:44px}
  .hero .trust{grid-template-columns:1fr}
  .record-demo-head{flex-direction:column}
  .record-fields div{grid-template-columns:1fr;gap:2px}
}

@media (max-width:1180px){
  .overview-triptych{grid-template-columns:1fr 1fr}
  .data-card{grid-column:1/-1}
}
@media (max-width:860px){
  .overview-triptych{grid-template-columns:1fr}
  .data-card{grid-column:auto}
  .data-spec-grid{grid-template-columns:repeat(2,1fr)}
  .summary-foot{flex-direction:column;align-items:flex-start}
  .summary-foot-note{max-width:none}
}
@media (max-width:560px){
  .summary-item{grid-template-columns:40px 1fr;gap:12px;padding:15px 0}
  .summary-ico{width:34px;height:34px}
  .data-record{padding:14px;border-radius:18px}
  .data-record-top{flex-direction:column;align-items:flex-start}
  .data-badge{font-size:.72rem}
  .data-photo{border-radius:14px;min-height:220px;aspect-ratio:16/10}
  .data-keyfields{grid-template-columns:1fr}
  .data-spec-grid{grid-template-columns:1fr 1fr;gap:10px}
}

@media (max-width:700px){
  .data-photo{min-height:250px;aspect-ratio:4/3}
  .data-photo img{object-position:center 58%}
  .data-kf{padding:12px 13px}
}
@media (max-width:440px){
  .data-photo{min-height:220px}
}

/* Questions hero: screenshot-matched two-column explainer */
.hero--questions{min-height:465px}
.questions-hero-layout{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.95fr);gap:52px;align-items:center;padding-block:48px 58px}
.questions-hero-copy{max-width:650px}
.questions-hero-copy h1{font-size:clamp(2.75rem,4.7vw,3.9rem);line-height:1.01;letter-spacing:-.045em;color:var(--ink)}
.questions-hero-copy h1 .accent{color:var(--blue)}
.questions-hero-copy .lead{font-size:1.02rem;line-height:1.57;margin-top:18px}
.question-preview{background:rgba(255,255,255,.96);border:1px solid #d8e5f3;border-radius:18px;padding:16px;box-shadow:0 24px 54px rgba(24,60,100,.14);backdrop-filter:blur(14px)}
.question-preview-head{display:flex;align-items:center;gap:12px;padding:5px 5px 14px}
.question-preview-head .tile{width:40px;height:40px;border-radius:50%}
.question-preview-head strong{display:block;color:var(--ink);font-size:.98rem}
.question-preview-head small{display:block;color:var(--muted);font-size:.73rem;margin-top:2px}
.question-preview>a{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 13px;border-top:1px solid var(--line-soft);font-size:.8rem;font-weight:650;color:#284564;transition:background .2s,color .2s,padding-left .2s}
.question-preview>a:hover{background:#f6faff;color:var(--blue-ink);padding-left:16px}
.question-preview>a span{color:var(--blue)}
.question-preview .question-preview-cta{margin-top:9px;border:1px solid #cfe1f6;border-radius:10px;background:#eff7ff;color:var(--blue-ink);font-weight:750}
@media (max-width:920px){
  .questions-hero-layout{grid-template-columns:1fr;gap:28px;padding-block:40px 50px}
  .question-preview{max-width:720px}
}

/* trust strip intentionally overlaps the bottom edge of the hero */
.hero{overflow:visible}
.hero-photo{overflow:hidden}
.hero + .section{position:relative;z-index:1}

/* final hero proportion tuning */
.hero-copy h1{font-size:clamp(2.65rem,4.15vw,3.62rem)}
.hero>.hero-script{z-index:1}
.hero-photo img{will-change:transform;transition:transform .12s linear}
.hero-dash .dash{transform-style:preserve-3d;transition:transform .25s var(--ease-out),box-shadow .3s var(--ease-out)}
.brand{white-space:nowrap;flex:none}


/* Homepage hero without dashboard */
.hero .hero-grid{grid-template-columns:minmax(0,760px);min-height:455px;align-items:center;padding-block:62px 86px}
.hero .hero-copy{max-width:720px}
.hero .hero-copy h1{font-size:clamp(3rem,5vw,4.35rem);max-width:12ch}
.hero .hero-copy .lead{max-width:58ch;font-size:1.08rem}
.hero .hero-photo::before{background:linear-gradient(90deg,rgba(246,251,255,.99) 0%,rgba(246,251,255,.95) 36%,rgba(246,251,255,.62) 56%,rgba(246,251,255,.14) 76%,rgba(246,251,255,.03) 100%)}
.hero .hero-script{right:max(30px,calc((100vw - var(--container))/2 + 24px));top:38px}
@media (max-width:920px){
  .hero .hero-grid{grid-template-columns:1fr;min-height:auto;padding-block:50px 64px}
  .hero .hero-copy{max-width:680px}
  .hero .hero-copy h1{max-width:none}
}
@media (max-width:720px){
  .hero .hero-grid{padding-block:40px 50px}
}

.record-vehicle img{object-position:center 56%}
.record-camera-chip{background:rgba(255,255,255,.92)!important;color:#284564!important;border:1px solid rgba(203,220,239,.95)!important;box-shadow:0 6px 18px rgba(31,66,105,.10);backdrop-filter:blur(8px)}

/* ==========================================================================
   In-page section sub-navigation ("On this page")
   ========================================================================== */
html{scroll-padding-top:calc(var(--nav-h) + 22px)}
html.has-subnav{scroll-padding-top:calc(var(--nav-h) + 64px)}
.subnav{
  position:sticky;top:var(--nav-h);z-index:40;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);
  border-bottom:1px solid var(--line);
}
.subnav-inner{
  display:flex;align-items:center;gap:4px;overflow-x:auto;
  scrollbar-width:none;-ms-overflow-style:none;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
          mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);
}
.subnav-inner::-webkit-scrollbar{display:none}
.subnav-label{
  flex:none;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  color:var(--faint);padding-right:12px;margin-right:4px;border-right:1px solid var(--line);
}
.subnav a{
  flex:none;white-space:nowrap;font-size:.92rem;font-weight:600;color:var(--muted);
  padding:14px 12px;border-bottom:2px solid transparent;margin-bottom:-1px;
  transition:color .18s,border-color .18s;
}
.subnav a:hover{color:var(--ink)}
.subnav a.active{color:var(--blue-ink);border-bottom-color:var(--blue)}
@media (max-width:920px){
  .subnav{top:var(--nav-h)}
  .subnav-label{display:none}
  .subnav a{padding:12px 11px;font-size:.88rem}
  .subnav-inner{-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
