/* ==========================================================================
   Equities n Again — Design System v2
   Royal blue + brass, cool paper. Newsreader (display) + Atkinson Hyperlegible
   Next (body/UI — designed by the Braille Institute for low-vision readers).
   Signature: the logo's seven rounded bars and trend line, redrawn as line-art.
   All text/background pairs below were measured for WCAG 2.2 AA.
   ========================================================================== */

:root{
  /* Colour */
  --blue-900:#0F2A52;   /* royal — primary surfaces, headings */
  --blue-800:#163461;
  --blue-700:#1C3E6E;
  --blue-500:#2E5B93;   /* links on light (6.9:1 on white) */
  --blue-logo:#376C9A;  /* logo bar blue — decorative only */
  --brass:#C79A3E;      /* on dark only (5.5:1 on blue-900) */
  --brass-ink:#7A5A1D;  /* brass as text on light (6.5:1 on paper) */
  --brass-soft:#F3EAD6;
  --paper:#F6F8FB;      /* cool page ground */
  --white:#FFFFFF;
  --ink:#14202E;        /* body text (15.6:1 on paper) */
  --ink-2:#4A5869;      /* secondary text (6.9:1 on paper) */
  --line:#D9E0EA;
  --line-strong:#7A8799; /* 3.6:1 on white — meets 1.4.11 for input borders */
  --on-dark:#E8EDF5;
  --on-dark-2:#B8C4D6;  /* secondary text on blue-900 (8.1:1) */
  --line-dark:rgba(232,237,245,.18);
  --risk:#B42A2A;       /* logo red, darkened for text (6.0:1 on white) */
  --risk-bg:#FBEDEC;
  --focus:#2E5B93;

  /* Type */
  --font-display:"Newsreader", Georgia, "Times New Roman", serif;
  --font-body:"Atkinson Hyperlegible Next", "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;
  --step--1:.875rem;
  --step-0:1.0625rem;
  --step-1:1.25rem;
  --step-2:1.6rem;
  --step-3:clamp(1.85rem, 1.3rem + 2vw, 2.6rem);
  --step-4:clamp(2.35rem, 1.5rem + 3.6vw, 4.1rem);

  --radius-s:6px;
  --radius-m:14px;
  --shadow:0 1px 2px rgba(15,42,82,.06), 0 12px 32px -12px rgba(15,42,82,.18);
  --wrap:1180px;
  --gutter:clamp(16px, 4vw, 40px);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:var(--step-0); line-height:1.62;
  overflow-x:clip;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--blue-500); text-underline-offset:.18em; text-decoration-thickness:1px; }
a:hover{ color:var(--blue-900); text-decoration-thickness:2px; }
p{ margin:0 0 1em; }
ul,ol{ padding-left:1.25em; }
li{ margin-bottom:.4em; }

h1,h2,h3,h4{ font-family:var(--font-display); font-weight:500; line-height:1.12; letter-spacing:-.012em; color:var(--blue-900); margin:0 0 .5em; font-optical-sizing:auto; }
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-1); line-height:1.25; }
h4{ font-size:var(--step-0); font-family:var(--font-body); font-weight:700; letter-spacing:0; }

.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter); }
.measure{ max-width:68ch; }
.lede{ font-size:var(--step-1); color:var(--ink-2); line-height:1.5; max-width:56ch; }
.muted{ color:var(--ink-2); }
.small{ font-size:var(--step--1); }
.visually-hidden{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Focus — visible everywhere, double ring so it shows on light and dark */
:focus-visible{ outline:3px solid var(--focus); outline-offset:3px; border-radius:4px; }
.on-dark :focus-visible, .site-footer :focus-visible, .top-strip :focus-visible{ outline-color:var(--brass); }
.skip-link{ position:absolute; left:12px; top:-80px; z-index:400; background:var(--blue-900); color:#fff; padding:12px 18px; border-radius:var(--radius-s); text-decoration:none; font-weight:700; }
.skip-link:focus{ top:12px; color:#fff; }

/* Pending-content tag (must be resolved before launch) */
.pending{ display:inline-block; background:var(--brass-soft); color:var(--brass-ink); border:1px dashed var(--brass-ink); border-radius:4px; padding:0 .4em; font-size:.85em; }

/* ---------- Top risk strip (Ad Code standard warning, verbatim) ---------- */
.top-strip{ background:var(--blue-900); color:var(--on-dark); font-size:var(--step--1); line-height:1.45; }
.top-strip .wrap{ padding-block:9px; text-align:center; }

/* ---------- Header ---------- */
/* No backdrop-filter here: it would make the header the containing block for the fixed mobile nav. */
.site-header{ position:sticky; top:0; z-index:60; background:#fff; border-bottom:1px solid var(--line); }
.header-bar{ display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:76px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; color:var(--blue-900); min-width:0; }
.brand:hover{ color:var(--blue-900); }
.brand-mark{ width:46px; height:40px; flex:none; display:block; }
.brand-mark img{ width:100%; height:100%; object-fit:contain; }
.brand-name{ font-family:var(--font-display); font-size:1.42rem; line-height:1.05; letter-spacing:-.01em; font-weight:500; }
.brand-name .brand-n{ font-style:italic; color:var(--brass-ink); padding:0 .12em; }
.brand-name small{ display:block; font-family:var(--font-body); font-size:.74rem; letter-spacing:.01em; color:var(--ink-2); margin-top:3px; font-weight:400; }

.main-nav{ display:flex; align-items:center; gap:2px; }
.main-nav a{ color:var(--ink); text-decoration:none; font-size:.98rem; padding:10px 12px; border-radius:var(--radius-s); position:relative; }
.main-nav a:hover{ color:var(--blue-900); background:#EEF2F8; }
.main-nav a[aria-current="page"]{ color:var(--blue-900); font-weight:700; }
.main-nav a[aria-current="page"]::after{ content:""; position:absolute; left:12px; right:12px; bottom:4px; height:2px; background:var(--brass); border-radius:2px; }
.main-nav .nav-cta{ margin-left:10px; background:var(--blue-900); color:#fff; font-weight:700; padding:11px 18px; }
.main-nav .nav-cta:hover{ background:var(--blue-700); color:#fff; }
.nav-toggle{ display:none; align-items:center; gap:8px; background:transparent; border:1px solid var(--line-strong); color:var(--blue-900); border-radius:var(--radius-s); min-height:44px; padding:0 14px; font:inherit; font-weight:700; cursor:pointer; }
.mobile-nav-head{ display:none; }

@media (max-width:900px){
  .nav-toggle{ display:inline-flex; }
  .main-nav{
    position:fixed; inset:0 0 0 auto; width:min(88vw,360px); background:var(--white);
    flex-direction:column; align-items:stretch; gap:0; padding:16px 20px 32px;
    z-index:90; box-shadow:-12px 0 40px rgba(15,42,82,.18); overflow-y:auto; display:none;
  }
  .main-nav.open{ display:flex; animation:navIn .22s ease-out; }
  .mobile-nav-head{ display:flex; align-items:center; justify-content:space-between; padding:6px 0 14px; margin-bottom:8px; border-bottom:1px solid var(--line); font-family:var(--font-display); font-size:1.3rem; color:var(--blue-900); }
  .mobile-nav-close{ min-width:44px; min-height:44px; border:1px solid var(--line-strong); background:#fff; border-radius:var(--radius-s); font-size:1.1rem; cursor:pointer; color:var(--blue-900); }
  .main-nav a{ padding:14px 6px; font-size:1.08rem; border-bottom:1px solid var(--line); border-radius:0; }
  .main-nav a[aria-current="page"]::after{ left:6px; right:auto; width:28px; bottom:8px; }
  .main-nav .nav-cta{ margin:18px 0 0; text-align:center; border-radius:var(--radius-s); border:0; }
  body.mobile-nav-open::after{ content:""; position:fixed; inset:0; background:rgba(15,42,82,.45); z-index:80; }
  body.mobile-nav-open .site-header{ z-index:95; }
  .brand-name{ font-size:1.22rem; }
}
@media (max-width:420px){ .brand-name small{ font-size:.68rem; } .brand-mark{ width:38px; height:34px; } }

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:48px; padding:12px 22px; border-radius:var(--radius-s); font:inherit; font-weight:700; text-decoration:none; cursor:pointer; border:1.5px solid transparent; line-height:1.2; transition:background .15s ease, color .15s ease, border-color .15s ease; }
.btn-primary{ background:var(--blue-900); color:#fff; }
.btn-primary:hover{ background:var(--blue-700); color:#fff; }
.btn-secondary{ background:transparent; color:var(--blue-900); border-color:var(--blue-900); }
.btn-secondary:hover{ background:var(--blue-900); color:#fff; }
.btn-brass{ background:var(--brass); color:var(--blue-900); }
.btn-brass:hover{ background:#D6AC55; color:var(--blue-900); }
.btn-ghost-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.55); }
.btn-ghost-light:hover{ background:#fff; color:var(--blue-900); }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.6; cursor:not-allowed; }

/* ---------- Sections ---------- */
.section{ padding:clamp(64px, 8vw, 112px) 0; }
.section-tight{ padding:clamp(44px, 5vw, 72px) 0; }
.section-white{ background:var(--white); }
.on-dark{ background:var(--blue-900); color:var(--on-dark); }
.on-dark h2, .on-dark h3{ color:#fff; }
.on-dark .lede, .on-dark .muted{ color:var(--on-dark-2); }
.on-dark a{ color:#fff; }
.section-head{ max-width:62ch; margin-bottom:clamp(32px,4vw,52px); }
.kicker{ font-size:var(--step--1); font-weight:700; color:var(--brass-ink); margin:0 0 12px; letter-spacing:.01em; }
.on-dark .kicker{ color:var(--brass); }

/* ---------- Bar motif (from the logo) ---------- */
.bar-motif{ position:absolute; pointer-events:none; }
.bar-motif .bar{ fill:none; stroke:var(--brass); stroke-width:2; transform-box:fill-box; transform-origin:50% 100%; }
.bar-motif .trend{ fill:none; stroke:var(--blue-logo); stroke-width:2; stroke-dasharray:1200; stroke-dashoffset:0; }
.bar-motif .dot-r{ fill:#D93A3A; } .bar-motif .dot-b{ fill:var(--blue-logo); }
@media (prefers-reduced-motion:no-preference){
  .bar-motif .bar{ animation:barRise 1.1s cubic-bezier(.2,.7,.2,1) both; }
  .bar-motif .bar:nth-child(2){ animation-delay:.06s } .bar-motif .bar:nth-child(3){ animation-delay:.12s }
  .bar-motif .bar:nth-child(4){ animation-delay:.18s } .bar-motif .bar:nth-child(5){ animation-delay:.24s }
  .bar-motif .bar:nth-child(6){ animation-delay:.30s } .bar-motif .bar:nth-child(7){ animation-delay:.36s }
  .bar-motif .trend{ animation:trendDraw 1.4s .55s ease-out both; }
  .bar-motif circle{ animation:dotIn .4s 1.5s ease-out both; }
}
@keyframes navIn{ from{ transform:translateX(40px); opacity:0 } to{ transform:none; opacity:1 } }
@keyframes barRise{ from{ transform:scaleY(0); opacity:0 } to{ transform:scaleY(1); opacity:1 } }
@keyframes trendDraw{ from{ stroke-dashoffset:1200 } to{ stroke-dashoffset:0 } }
@keyframes dotIn{ from{ opacity:0 } to{ opacity:1 } }

/* ---------- Hero (home) ---------- */
.hero{ position:relative; overflow:hidden; padding:clamp(48px,7vw,96px) 0 clamp(56px,7vw,104px); }
.hero-grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:clamp(32px,5vw,72px); align-items:center; position:relative; z-index:1; }
.hero-intro{ font-size:var(--step-0); color:var(--ink-2); margin-bottom:22px; }
.hero-intro strong{ color:var(--blue-900); }
.hero h1{ max-width:15ch; margin-bottom:24px; }
.hero .lede{ margin-bottom:32px; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:12px; }
.hero .bar-motif{ right:-6%; bottom:-10%; width:min(58vw,720px); opacity:.38; }
.hero-figure{ position:relative; justify-self:center; width:100%; max-width:420px; }
.arch{ border-radius:999px 999px var(--radius-m) var(--radius-m); overflow:hidden; aspect-ratio:4/5; background:#DDE5EF; box-shadow:var(--shadow); }
.arch img{ width:100%; height:100%; object-fit:cover; object-position:50% 20%; }
.reg-card{ position:absolute; left:-28px; bottom:-28px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); box-shadow:var(--shadow); padding:16px 18px; min-width:250px; }
.reg-card dl{ margin:0; display:grid; gap:8px; }
.reg-card div{ display:flex; justify-content:space-between; gap:18px; font-size:.92rem; }
.reg-card dt{ color:var(--ink-2); white-space:nowrap; }
.reg-card dd{ margin:0; font-weight:700; color:var(--blue-900); font-variant-numeric:tabular-nums; }
.reg-card a{ display:inline-block; margin-top:10px; font-size:.9rem; font-weight:700; }
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-figure{ max-width:340px; margin-bottom:30px; }
  .reg-card{ left:50%; transform:translateX(-50%); bottom:-30px; }
  .hero .bar-motif{ width:120vw; right:-30%; opacity:.2; }
  .reg-card{ min-width:min(300px, calc(100vw - 48px)); }
}

/* Page hero (inner pages) */
.page-hero{ position:relative; overflow:hidden; padding:clamp(48px,6vw,84px) 0 clamp(40px,5vw,64px); border-bottom:1px solid var(--line); background:var(--white); }
.page-hero h1{ font-size:clamp(2.1rem,1.4rem+2.8vw,3.3rem); max-width:22ch; }
.page-hero .bar-motif{ right:-60px; bottom:-40px; width:360px; opacity:.35; }
@media (max-width:700px){ .page-hero .bar-motif{ display:none; } }

/* ---------- Inclusions list (bar bullets) ---------- */
.split{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(32px,6vw,96px); align-items:start; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }
.bar-list{ list-style:none; padding:0; margin:0; }
.bar-list li{ display:grid; grid-template-columns:22px 1fr; gap:16px; padding:18px 0; border-top:1px solid var(--line); margin:0; }
.bar-list li:last-child{ border-bottom:1px solid var(--line); }
.bar-list .tick{ width:8px; height:26px; border-radius:6px; background:var(--blue-logo); margin-top:2px; justify-self:center; }
.bar-list li:nth-child(even) .tick{ height:20px; margin-top:6px; background:var(--brass); }
.bar-list strong{ display:block; color:var(--blue-900); font-size:1.05rem; }
.bar-list span.desc{ color:var(--ink-2); }

/* ---------- Steps on a trend line ---------- */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; position:relative; counter-reset:step; }
.steps::before{ content:""; position:absolute; left:6%; right:6%; top:27px; height:2px; background:linear-gradient(90deg, var(--brass), rgba(199,154,62,.25)); }
.steps li{ position:relative; margin:0; }
.step-dot{ width:56px; height:56px; border-radius:50%; background:var(--blue-900); border:2px solid var(--brass); display:grid; place-items:center; font-family:var(--font-display); font-size:1.4rem; color:#fff; position:relative; margin-bottom:18px; }
.steps h3{ font-size:1.2rem; margin-bottom:8px; }
.steps p{ color:var(--on-dark-2); margin:0; }
@media (max-width:860px){
  .steps{ grid-template-columns:1fr; gap:0; }
  .steps::before{ left:27px; right:auto; top:28px; bottom:28px; width:2px; height:auto; background:linear-gradient(180deg, var(--brass), rgba(199,154,62,.25)); }
  .steps li{ display:grid; grid-template-columns:56px 1fr; gap:18px; padding-bottom:28px; }
  .steps li .step-dot{ margin:0; }
}

/* ---------- About ---------- */
.about-grid{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,6vw,88px); align-items:start; }
@media (max-width:860px){ .about-grid{ grid-template-columns:1fr; } }
.portrait{ border-radius:var(--radius-m); overflow:hidden; box-shadow:var(--shadow); aspect-ratio:3/4; position:sticky; top:110px; }
.portrait img{ width:100%; height:100%; object-fit:cover; object-position:50% 15%; }
@media (max-width:860px){ .portrait{ position:static; max-width:380px; } }
.facts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:28px 0 0; border-top:1px solid var(--line); }
.facts div{ padding:16px 16px 16px 0; border-bottom:1px solid var(--line); }
.facts dt{ font-size:var(--step--1); color:var(--ink-2); }
.facts dd{ margin:2px 0 0; font-weight:700; color:var(--blue-900); }
@media (max-width:520px){ .facts{ grid-template-columns:1fr; } }

/* ---------- Plans ---------- */
.plans{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }
@media (max-width:900px){ .plans{ grid-template-columns:1fr; max-width:520px; } }
.plan{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:28px 26px; display:flex; flex-direction:column; position:relative; }
.plan.is-featured{ border:2px solid var(--brass); box-shadow:var(--shadow); }
.plan-flag{ position:absolute; top:-13px; left:24px; background:var(--blue-900); color:#fff; font-size:.8rem; font-weight:700; padding:4px 12px; border-radius:999px; }
.plan h3{ font-size:1.55rem; margin-bottom:6px; }
.plan-desc{ color:var(--ink-2); min-height:3.2em; }
.plan-price{ display:flex; flex-direction:column; gap:2px; margin:16px 0 18px; padding:14px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.plan-price .amt{ font-family:var(--font-display); font-size:2.1rem; color:var(--blue-900); line-height:1.1; font-variant-numeric:lining-nums tabular-nums; }
.plan-price .per{ font-size:.95rem; color:var(--ink-2); font-family:var(--font-body); }
.plan-price .alt{ font-size:.95rem; color:var(--ink-2); }
.plan ul{ list-style:none; padding:0; margin:0 0 24px; flex:1; }
.plan li{ display:grid; grid-template-columns:18px 1fr; gap:10px; margin-bottom:10px; }
.plan li::before{ content:""; width:6px; height:16px; border-radius:4px; background:var(--blue-logo); margin-top:4px; justify-self:center; }

/* ---------- Segment plan table ---------- */
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--radius-m); background:var(--white); }
.plan-table{ width:100%; border-collapse:collapse; min-width:920px; font-size:.97rem; }
.plan-table caption{ text-align:left; padding:16px 20px; font-weight:700; color:var(--blue-900); border-bottom:1px solid var(--line); }
.plan-table th, .plan-table td{ padding:16px 14px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line); }
.plan-table thead th{ background:#EEF2F8; color:var(--blue-900); font-size:.88rem; }
.plan-table tbody tr:last-child th, .plan-table tbody tr:last-child td{ border-bottom:0; }
.plan-table tbody th{ font-family:var(--font-display); font-weight:500; font-size:1.15rem; color:var(--blue-900); min-width:200px; }
.plan-table tbody th .muted{ display:block; font-family:var(--font-body); font-size:.88rem; font-weight:400; margin-top:4px; line-height:1.45; }
.price-link{ display:inline-flex; flex-direction:column; align-items:flex-start; min-height:44px; justify-content:center; padding:4px 10px; margin-left:-10px; border-radius:var(--radius-s); text-decoration:none; color:var(--blue-900); font-weight:700; font-variant-numeric:tabular-nums; }
.price-link small{ font-weight:400; color:var(--blue-500); text-decoration:underline; font-size:.82rem; }
.price-link:hover{ background:#EEF2F8; }
.risk-chip{ display:inline-block; padding:2px 10px; border-radius:999px; font-size:.85rem; font-weight:700; white-space:nowrap; border:1px solid currentColor; }
.risk-med{ color:#1D5E3A; } .risk-high{ color:#8A4A06; } .risk-vhigh{ color:var(--risk); }
@media (max-width:760px){
  .table-scroll{ border:0; background:transparent; overflow:visible; }
  .plan-table{ min-width:0; }
  .plan-table thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .plan-table caption{ display:block; width:100%; padding:0 0 12px; border:0; }
  .plan-table, .plan-table tbody, .plan-table tr, .plan-table th, .plan-table td{ display:block; }
  .plan-table tr{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); margin-bottom:16px; padding:6px 0; }
  .plan-table th, .plan-table td{ border:0; padding:8px 18px; }
  .plan-table td{ display:flex; justify-content:space-between; align-items:center; gap:12px; }
  .plan-table td::before{ content:attr(data-label); color:var(--ink-2); font-size:.9rem; }
  .price-link{ align-items:flex-end; margin:0; }
}

.notice{ display:grid; grid-template-columns:6px 1fr; gap:16px; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:18px 20px; }
.notice::before{ content:""; border-radius:4px; background:var(--brass); }
.notice.risk::before{ background:var(--risk); }
.notice p:last-child{ margin:0; }

/* ---------- Verify before you pay ---------- */
.verify-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:860px){ .verify-grid{ grid-template-columns:1fr; } }
.kv{ width:100%; border-collapse:collapse; }
.kv th, .kv td{ text-align:left; padding:12px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.kv th{ font-weight:400; color:var(--ink-2); width:42%; padding-right:16px; }
.kv td{ font-weight:700; color:var(--blue-900); word-break:break-word; }
.on-dark .kv th{ color:var(--on-dark-2); border-color:var(--line-dark); }
.on-dark .kv td{ color:#fff; border-color:var(--line-dark); }

/* ---------- Document reader (Important Documents) ---------- */
.reader > *{ min-width:0; }
.reader{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:clamp(28px,5vw,72px); align-items:start; }
.toc{ position:sticky; top:100px; max-height:calc(100vh - 120px); overflow:auto; padding-right:6px; }
.toc h2{ font-family:var(--font-body); font-size:.9rem; font-weight:700; color:var(--ink-2); margin:0 0 10px; letter-spacing:0; }
.toc ol{ list-style:none; padding:0; margin:0; border-left:2px solid var(--line); }
.toc li{ margin:0; }
.toc a{ display:block; padding:8px 12px 8px 16px; margin-left:-2px; border-left:2px solid transparent; color:var(--ink); text-decoration:none; font-size:.95rem; line-height:1.35; }
.toc a:hover{ color:var(--blue-900); background:#EEF2F8; }
.toc a[aria-current="true"]{ border-left-color:var(--brass); color:var(--blue-900); font-weight:700; }
.toc ol ol{ border:0; margin:0 0 4px; }
.toc ol ol a{ padding-left:30px; font-size:.88rem; color:var(--ink-2); }
@media (max-width:960px){
  .reader{ grid-template-columns:minmax(0,1fr); }
  .toc{ position:static; max-height:none; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:18px 18px 10px; }
}
.doc{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:clamp(24px,4vw,52px); margin-bottom:28px; scroll-margin-top:100px; }
.doc > h2{ padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:22px; }
.doc h3{ margin-top:2em; scroll-margin-top:100px; }
.doc h4{ margin-top:1.6em; }
.doc-meta{ display:flex; flex-wrap:wrap; gap:6px 20px; font-size:var(--step--1); color:var(--ink-2); margin:-8px 0 20px; }
.doc ol, .doc ul{ max-width:74ch; }
.doc p{ max-width:74ch; }
.doc ol.roman{ list-style:lower-roman; }
.doc ol.alpha{ list-style:lower-alpha; }
.quote-block{ border-left:3px solid var(--brass); background:#FAF7EF; padding:16px 20px; margin:16px 0; border-radius:0 var(--radius-s) var(--radius-s) 0; }
.doc-table{ width:100%; border-collapse:collapse; font-size:.95rem; margin:14px 0 18px; }
.doc-table caption{ text-align:left; font-weight:700; color:var(--blue-900); padding-bottom:10px; }
.doc-table th, .doc-table td{ border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; }
.doc-table thead th{ background:#EEF2F8; color:var(--blue-900); font-size:.88rem; }
.doc-table tbody th{ font-weight:700; color:var(--blue-900); background:#FAFBFD; width:34%; }
.doc-table tr.is-total td{ font-weight:700; background:#EEF2F8; }
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
.footnotes{ font-size:var(--step--1); color:var(--ink-2); }
.footnotes p{ margin:0 0 .4em; }
.print-btn{ float:right; }
@media (max-width:600px){ .print-btn{ float:none; margin-bottom:12px; } }

/* Complaint widget */
.complaint-tabs{ display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 16px; }
.complaint-tabs button, .seg-btn{ border:1px solid var(--line-strong); background:#fff; color:var(--blue-900); padding:8px 16px; border-radius:999px; cursor:pointer; font:inherit; font-size:.92rem; min-height:44px; }
.complaint-tabs button[aria-pressed="true"], .seg-btn[aria-pressed="true"]{ background:var(--blue-900); color:#fff; border-color:var(--blue-900); }
.complaint-status{ font-size:.95rem; color:var(--ink-2); }
.complaint-meta{ font-size:.88rem; color:var(--ink-2); }
.imperson{ background:#FAFBFD; border:1px solid var(--line); border-radius:var(--radius-s); padding:12px 14px; font-size:.93rem; }

/* Downloads */
.downloads{ list-style:none; padding:0; margin:12px 0; display:grid; gap:10px; }
.downloads li{ display:flex; justify-content:space-between; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--radius-s); margin:0; flex-wrap:wrap; }
.downloads .status{ font-size:.88rem; color:var(--ink-2); }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; } }
.card{ background:var(--white); border:1px solid var(--line); border-radius:var(--radius-m); padding:clamp(22px,3.5vw,40px); }
.field{ margin-bottom:18px; }
.field label{ display:block; font-weight:700; margin-bottom:6px; color:var(--ink); }
.field .hint{ display:block; font-size:var(--step--1); color:var(--ink-2); margin:-2px 0 6px; }
.field input, .field textarea, .field select{ width:100%; padding:12px 14px; border:1.5px solid var(--line-strong); border-radius:var(--radius-s); font:inherit; background:#fff; color:var(--ink); min-height:48px; }
.field input:focus-visible, .field textarea:focus-visible{ border-color:var(--focus); }
.field textarea{ min-height:140px; resize:vertical; }
.check-field{ display:grid; grid-template-columns:24px 1fr; gap:10px; align-items:start; margin-bottom:20px; font-size:.95rem; }
.check-field input{ width:22px; height:22px; margin:2px 0 0; accent-color:var(--blue-900); }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-msg{ border-radius:var(--radius-s); padding:12px 14px; margin-bottom:16px; font-size:.95rem; }
.form-msg.error{ background:var(--risk-bg); color:var(--risk); border:1px solid var(--risk); }
.form-msg.ok{ background:#EAF4EE; color:#1D5E3A; border:1px solid #1D5E3A; }
.form-msg[hidden]{ display:none; }
.map-frame{ border:0; width:100%; aspect-ratio:4/3; border-radius:var(--radius-m); background:#DDE5EF; display:block; }
.contact-list{ list-style:none; padding:0; margin:0 0 24px; }
.contact-list li{ padding:14px 0; border-bottom:1px solid var(--line); margin:0; }
.contact-list strong{ display:block; font-size:var(--step--1); color:var(--ink-2); font-weight:400; }

/* ---------- Modals ---------- */
.modal-overlay{ position:fixed; inset:0; background:rgba(15,42,82,.62); display:flex; align-items:center; justify-content:center; padding:16px; z-index:300; }
.modal-overlay[hidden]{ display:none; }
.modal{ background:#fff; border-radius:var(--radius-m); max-width:640px; width:100%; max-height:88vh; overflow-y:auto; padding:clamp(22px,4vw,36px); position:relative; border-top:4px solid var(--brass); }
.modal h2{ font-size:1.6rem; padding-right:44px; }
.modal-close{ position:absolute; top:14px; right:14px; background:#fff; border:1px solid var(--line-strong); border-radius:50%; width:44px; height:44px; cursor:pointer; font-size:1.2rem; line-height:1; color:var(--blue-900); }
.lang-tabs{ display:flex; gap:8px; margin-bottom:16px; }
.lang-tabs button{ border:1px solid var(--line-strong); background:#fff; color:var(--blue-900); padding:6px 16px; border-radius:999px; cursor:pointer; font:inherit; font-size:.92rem; min-height:44px; }
.lang-tabs button[aria-pressed="true"]{ background:var(--blue-900); color:#fff; border-color:var(--blue-900); }
.modal-actions{ margin-top:22px; display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--blue-900); color:var(--on-dark-2); padding:clamp(56px,6vw,80px) 0 28px; font-size:.95rem; }
.site-footer a{ color:var(--on-dark); text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.footer-top{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:36px; padding-bottom:40px; border-bottom:1px solid var(--line-dark); }
@media (max-width:900px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-top{ grid-template-columns:1fr; } }
.footer-brand{ font-family:var(--font-display); font-size:1.6rem; color:#fff; margin-bottom:10px; line-height:1.1; }
.footer-brand .brand-n{ font-style:italic; color:var(--brass); padding:0 .1em; }
.site-footer h2{ font-family:var(--font-body); font-size:.95rem; font-weight:700; color:#fff; margin:0 0 14px; letter-spacing:0; }
.site-footer ul{ list-style:none; padding:0; margin:0; display:grid; gap:9px; }
.site-footer li{ margin:0; }
.reg-block{ padding:32px 0; border-bottom:1px solid var(--line-dark); }
.reg-block dl{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:18px 32px; margin:0; }
.reg-block dt{ font-size:.82rem; color:var(--on-dark-2); }
.reg-block dd{ margin:2px 0 0; color:#fff; }
.footer-access a, .reg-block a{ text-decoration:underline; }
.footer-access{ padding:24px 0; border-bottom:1px solid var(--line-dark); color:var(--on-dark); }
.footer-legal{ padding-top:22px; font-size:.86rem; display:flex; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; }
.footer-legal p{ margin:0; }

/* ---------- Accessibility toolbar ---------- */
.a11y-toggle{ position:fixed; right:18px; bottom:18px; z-index:250; width:56px; height:56px; border-radius:50%; background:var(--blue-900); color:#fff; border:2px solid #fff; box-shadow:0 0 0 2px var(--blue-900), 0 8px 24px rgba(15,42,82,.3); cursor:pointer; display:grid; place-items:center; padding:0; }
.a11y-toggle svg{ width:28px; height:28px; }
.a11y-toggle:focus-visible{ outline:3px solid var(--brass); outline-offset:3px; }
.a11y-panel{ position:fixed; right:18px; bottom:86px; z-index:250; width:min(310px, calc(100vw - 36px)); max-height:calc(100vh - 110px); overflow:auto; background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-m); box-shadow:var(--shadow); padding:18px; }
.a11y-panel[hidden]{ display:none; }
.a11y-panel-title{ font-family:var(--font-display); font-size:1.2rem; color:var(--blue-900); margin:0 0 8px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.a11y-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:.95rem; padding:8px 0; border-bottom:1px solid var(--line); }
.a11y-row:last-child{ border-bottom:0; }
.a11y-row button:not(.switch){ border:1px solid var(--line-strong); background:#fff; color:var(--blue-900); padding:6px 12px; border-radius:var(--radius-s); cursor:pointer; font:inherit; font-size:.9rem; min-height:44px; min-width:44px; }
.a11y-row .font-buttons{ display:flex; gap:6px; }
.switch{ position:relative; width:48px; height:28px; flex:none; padding:0; cursor:pointer; background:#6B7685; border:1px solid #6B7685; border-radius:999px; }
.switch::after{ content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.35); transition:transform .15s ease; }
.switch[aria-checked="true"]{ background:var(--blue-900); border-color:var(--blue-900); }
.switch[aria-checked="true"]::after{ transform:translateX(20px); }
.a11y-panel .small a{ font-weight:700; }

/* High contrast — black ground, white text, yellow links, yellow buttons.
   Scoped to #page-wrap so the toolbar and dialogs keep their own colours. */
body.a11y-contrast{ background:#000; }
body.a11y-contrast #page-wrap, body.a11y-contrast #page-wrap *{ background-color:transparent!important; background-image:none!important; color:#fff!important; border-color:#fff!important; box-shadow:none!important; text-shadow:none!important; }
body.a11y-contrast #page-wrap{ background-color:#000!important; }
body.a11y-contrast #page-wrap a, body.a11y-contrast #page-wrap a *{ color:#FFE066!important; }
body.a11y-contrast #page-wrap .btn, body.a11y-contrast #page-wrap .main-nav .nav-cta{ background-color:#FFE066!important; color:#000!important; border-color:#FFE066!important; }
body.a11y-contrast #page-wrap .btn *{ color:#000!important; }
body.a11y-contrast #page-wrap .main-nav{ background-color:#000!important; }
body.a11y-contrast #page-wrap .bar-motif{ display:none; }
body.a11y-contrast #page-wrap .step-dot, body.a11y-contrast #page-wrap .plan-flag, body.a11y-contrast #page-wrap .tick,
body.a11y-contrast #page-wrap .notice::before, body.a11y-contrast #page-wrap .plan li::before{ background-color:#fff!important; }
body.a11y-contrast #page-wrap .step-dot, body.a11y-contrast #page-wrap .plan-flag{ color:#000!important; }
body.a11y-contrast #page-wrap .qr-row img, body.a11y-contrast #page-wrap .brand-mark img{ background-color:#fff!important; }
body.a11y-contrast #page-wrap :focus-visible{ outline-color:#FFE066!important; }

/* Greyscale — on #page-wrap, never body (filter on an ancestor would re-anchor the fixed toolbar). */
#page-wrap.a11y-greyscale{ filter:grayscale(1); }
body.a11y-readable, body.a11y-readable *{ letter-spacing:.03em!important; word-spacing:.12em!important; line-height:1.8!important; }
body.a11y-readable h1, body.a11y-readable h2, body.a11y-readable h3{ font-family:var(--font-body)!important; }
body.a11y-underline a{ text-decoration:underline!important; }
body.a11y-bigcursor, body.a11y-bigcursor *{ cursor:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 24 24"><path d="M4 2l14 8-6 2-2 6z" fill="black" stroke="white" stroke-width="1"/></svg>') 4 4, auto!important; }
body.a11y-paused *, body.a11y-paused *::before, body.a11y-paused *::after{ animation:none!important; transition:none!important; }
@media (prefers-reduced-motion:reduce){ *,*::before,*::after{ animation-duration:.001ms!important; transition-duration:.001ms!important; scroll-behavior:auto!important; } }

/* ---------- Print (documents) ---------- */
@media print{
  .top-strip, .site-header, .site-footer, .a11y-toggle, .a11y-panel, .toc, .print-btn, .bar-motif, .page-hero .btn{ display:none!important; }
  body{ background:#fff; font-size:11pt; }
  .reader{ display:block; }
  .doc{ border:0; padding:0; break-inside:auto; }
  a{ color:#000; }
}

/* UPI QR row (verify section) */
.qr-row{ display:flex; gap:20px; align-items:center; margin-top:20px; }
.qr-row img{ width:150px; height:auto; background:#fff; padding:10px; border-radius:var(--radius-s); flex:none; }
.qr-row p{ margin:0; }
@media (max-width:420px){ .qr-row{ flex-direction:column; align-items:flex-start; } }

/* Escalation matrix — levels as columns, shared details span across */
.doc-table.matrix{ font-size:.9rem; }
.doc-table.matrix th, .doc-table.matrix td{ padding:10px; }
.doc-table.matrix tbody th{ width:20%; }
.doc-table.matrix thead th{ width:20%; }
.doc-table .nowrap{ white-space:nowrap; }
@media (max-width:640px){
  .doc-table.matrix thead{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .doc-table.matrix, .doc-table.matrix tbody, .doc-table.matrix tr, .doc-table.matrix th, .doc-table.matrix td{ display:block; width:auto; }
  .doc-table.matrix caption{ display:block; }
  .doc-table.matrix tr{ border:1px solid var(--line); border-radius:var(--radius-s); margin-bottom:10px; }
  .doc-table.matrix th, .doc-table.matrix td{ border:0; }
  .doc-table.matrix tbody th{ background:#EEF2F8; width:auto; }
  .doc-table.matrix td[data-label]{ display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line); }
  .doc-table.matrix td[data-label]::before{ content:attr(data-label); color:var(--ink-2); white-space:normal; }
}
.risk-var{ color:var(--blue-700); }

/* WhatsApp chat button (bottom-left; accessibility button is bottom-right).
   #0F7A6E keeps the white glyph at 5.1:1, above the 3:1 needed for icons. */
.wa-float{ position:fixed; left:18px; bottom:18px; z-index:250; width:56px; height:56px; border-radius:50%; background:#0F7A6E; color:#fff; border:2px solid #fff; box-shadow:0 0 0 2px #0F7A6E, 0 8px 24px rgba(15,42,82,.3); display:grid; place-items:center; text-decoration:none; }
.wa-float svg{ width:30px; height:30px; }
.wa-float:hover{ background:#0B5F55; color:#fff; }
.wa-float:focus-visible{ outline:3px solid var(--brass); outline-offset:3px; }
@media print{ .wa-float{ display:none!important; } }

/* About portrait: keep the full head in frame */
.portrait img{ object-position:50% 0%; }
