/* hipaa-compliance page: exact stylesheet from the approved html (embedded base64 font removed, Inter is loaded by assets/css/font.css). Loaded via $pageCss in pages/routing.php *//* Northgate Billing shared stylesheet, v5 (12 Oct 2026).
   Ported from the approved design canvas "Northgate home page (final)".
   Light, Stripe-like, Inter only, one breakpoint at 900px.
   Dark backgrounds are used only for the footer and single emphasis cards. */

:root{
  --navy:#0A2540;
  --accent:#0A66FF;--accent-hover:#0052D6;--accent-tint:#E6F0FF;--section-tint:#EEF4FF;
  --deep:#1437A8;--soft:#8FB9FF;
  --slate:#425466;--muted:#5B6B80;--border:#E3E8EE;--border-2:#CBD5E1;--bg:#F6F9FC;--white:#FFFFFF;
  --success:#15803D;--success-tint:#DCFCE7;--error:#B91C1C;--error-tint:#FEE2E2;--warn:#92400E;--warn-tint:#FEF3C7;--appeal:#5B21B6;--appeal-tint:#EDE9FE;
  --font:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --shadow-card:0 1px 0 rgba(10,37,64,.04),0 10px 30px rgba(10,37,64,.06);
  --shadow-lift:0 24px 50px rgba(10,37,64,.12);
  --shadow-btn:0 12px 28px rgba(10,102,255,.32);
  --nav-h:72px;
}

/* ---------- font (self-hosted, Latin subset, one 62 KB file for every weight) ---------- */


/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:15px;line-height:1.6;color:var(--navy);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--navy);text-decoration:none}
a:hover{color:var(--accent)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
img,svg,video{max-width:100%;display:block}
svg{flex-shrink:0}
button{font:inherit;color:inherit}
h1,h2,h3,h4,p,dl,dd,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.container{max-width:1280px;width:100%;margin:0 auto;padding:0 15px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--navy);color:#fff;padding:10px 14px;border-radius:10px;font-weight:700}
.skip:focus{top:12px;color:#fff}

/* ---------- type ---------- */
.ng-h1{font-weight:700;font-size:clamp(32px,3.7vw,48px);line-height:1.08;letter-spacing:-.04em;color:var(--navy)}
.ng-h1 .ac{color:var(--accent)}
.ng-h2{font-weight:700;font-size:clamp(26px,2.8vw,36px);line-height:1.12;letter-spacing:-.03em;margin:10px 0 12px;color:var(--navy)}
.ng-kicker{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.02em;text-transform:uppercase}
.ng-kicker::before{content:"";width:22px;height:2px;background:var(--accent);border-radius:2px}
.ng-kicker.center{justify-content:center}
.ng-sec.tint .ng-kicker{color:var(--accent-hover)}
.ng-lead{font-size:16.5px;line-height:1.6;color:var(--slate);max-width:52ch}
.ng-intro{font-size:16.5px;line-height:1.6;color:var(--slate);max-width:60ch}
.ng-intro.narrow{max-width:52ch}
.ng-sec-head{max-width:720px}
.ng-sec-head.center{margin:0 auto;text-align:center}
.ng-sec-head.center .ng-intro{margin:0 auto}
.ng-micro{font-size:13.5px;color:var(--muted)}
.ng-ph{border-bottom:1px dotted var(--soft);cursor:help}
.ng-link{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-link:hover{color:var(--accent-hover)}
.ng-sec.tint .ng-link,.ng-start-card .ng-link,.ng-related a{color:var(--accent-hover)}

/* ---------- buttons ---------- */
.ng-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:50px;padding:0 22px;border-radius:999px;font-weight:700;font-size:15px;border:0;cursor:pointer;white-space:nowrap;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s,color .15s}
.ng-btn:hover{transform:translateY(-1px)}
.ng-btn:active{transform:translateY(0)}
.ng-btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ng-btn.primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-btn)}
.ng-btn.primary:hover{background:var(--accent-hover);color:#fff;box-shadow:0 14px 32px rgba(10,102,255,.38)}
.ng-btn.outline{background:#fff;color:var(--navy);border:1.5px solid var(--border-2)}
.ng-btn.outline:hover{border-color:var(--navy);color:var(--navy)}
.ng-btn.navy{background:var(--navy);color:#fff;height:44px;padding:0 20px}
.ng-btn.navy:hover{background:#0F3160;color:#fff}
.ng-btn.lg{height:58px;padding:0 32px;font-size:16.5px}
.ng-btn.block{display:flex;width:100%}

/* ---------- nav ---------- */
.ng-header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--border);transition:box-shadow .2s}
.ng-header.scrolled{box-shadow:0 8px 30px rgba(10,37,64,.08)}
.ng-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;height:var(--nav-h)}
.ng-logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:20px;letter-spacing:-.03em;color:var(--navy);white-space:nowrap}
.ng-logo:hover{color:var(--navy)}
.ng-logo .mark{width:32px;height:32px;border-radius:9px;background:var(--navy);display:flex;align-items:center;justify-content:center;flex:0 0 32px}
.ng-logo .mark svg{width:18px;height:18px;stroke:var(--soft);fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
.ng-logo b{font-weight:600;color:var(--accent)}
.ng-logo.inv{color:#fff}
.ng-logo.inv:hover{color:#fff}
.ng-logo.inv .mark{background:linear-gradient(135deg,var(--accent),var(--soft))}
.ng-logo.inv .mark svg{stroke:var(--navy)}
.ng-logo.inv b{color:var(--soft)}
.ng-links{display:flex;align-items:center;gap:2px;font-size:14.5px;font-weight:600}
.ng-links>a,.ng-dd>button{display:flex;align-items:center;gap:5px;padding:9px 13px;border-radius:999px;background:transparent;border:0;cursor:pointer;color:var(--navy);transition:background .15s}
.ng-links>a:hover,.ng-dd:hover>button,.ng-dd:focus-within>button,.ng-dd.open>button{background:var(--accent-tint);color:var(--navy)}
.ng-dd{position:relative}
.ng-dd>button svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .2s}
.ng-dd:hover>button svg,.ng-dd:focus-within>button svg,.ng-dd.open>button svg{transform:rotate(180deg)}
.ng-menu{position:absolute;top:calc(100% + 8px);left:0;min-width:320px;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 50px rgba(10,37,64,.2);padding:8px;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .18s,transform .18s,visibility .18s;z-index:20}
.ng-dd:hover .ng-menu,.ng-dd:focus-within .ng-menu,.ng-dd.open .ng-menu{opacity:1;visibility:visible;transform:translateY(0)}
.ng-menu a{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:10px;color:var(--navy);transition:background .12s}
.ng-menu a:hover{background:var(--bg);color:var(--navy)}
.ng-menu .mi{flex:0 0 34px;width:34px;height:34px;border-radius:9px;background:var(--accent-tint);display:flex;align-items:center;justify-content:center}
.ng-menu .mi svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-menu b{display:block;font-size:14.5px;font-weight:700}
.ng-menu small{display:block;color:var(--muted);font-size:12.5px;line-height:1.4;margin-top:1px;font-weight:500}
.ng-right{display:flex;align-items:center;gap:16px}
.ng-phone{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;white-space:nowrap;padding:9px 13px;border-radius:999px;border:1px solid var(--border-2);background:#fff;color:var(--navy)}
.ng-phone:hover{border-color:var(--navy);color:var(--navy)}
.ng-phone svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-cta-nav svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ng-burger{display:none;width:44px;height:44px;border-radius:10px;border:1px solid var(--border);background:transparent;align-items:center;justify-content:center;color:var(--navy);cursor:pointer;padding:0}
.ng-burger svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round}
.ng-burger .ico-close{display:none}
.ng-header.is-open .ng-burger .ico-open{display:none}
.ng-header.is-open .ng-burger .ico-close{display:block}
.ng-mobile{display:none;position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--bg);border-top:1px solid var(--border);padding:12px 20px 22px;color:var(--navy);box-shadow:0 30px 60px rgba(10,37,64,.18);max-height:calc(100vh - 60px);overflow-y:auto;border-radius:0 0 18px 18px}
.ng-mobile .grp{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted);padding:14px 0 4px}
.ng-mobile .grp:first-child{padding-top:10px}
.ng-mobile a.lnk{display:block;padding:11px 0;font-size:16px;font-weight:600;color:var(--navy)}
.ng-mobile .ng-btn{margin-top:16px;height:50px;font-size:16px}
.ng-mobile .ng-btn+.ng-btn{margin-top:10px}
.ng-mobile .mail{display:block;text-align:center;margin-top:14px;font-size:14px;font-weight:600;color:var(--accent)}

/* ---------- hero ---------- */
.ng-hero-sec{background:var(--bg);position:relative;z-index:1}
.ng-hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,5vw,64px);align-items:stretch;padding-top:clamp(32px,4vw,52px);padding-bottom:0}
.ng-copy{display:flex;flex-direction:column;justify-content:center;gap:18px;max-width:540px;padding-bottom:clamp(40px,5vw,72px)}
.ng-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.ng-ctas svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ng-trust{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13.5px;font-weight:500;color:var(--slate);margin-top:2px}
.ng-trust span{display:flex;align-items:center;gap:7px}
.ng-trust svg{width:16px;height:16px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-panel{position:relative;background:linear-gradient(160deg,var(--accent) 0%,var(--deep) 100%);border-radius:26px 26px 0 0;padding:clamp(24px,3vw,36px) clamp(18px,2.5vw,32px) clamp(76px,7vw,104px);min-width:0;overflow:hidden}
.ng-panel .blob{position:absolute;right:-90px;top:-90px;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
.ng-panel-in{display:flex;flex-direction:column;gap:10px;min-width:0;width:100%;position:relative}
.ng-panel-cap{font-size:12.5px;color:var(--accent-tint);text-align:center}

/* claim status sheet (shared component) */
.ng-sheet-wrap{position:relative;padding:22px 0 24px;color:var(--navy)}
.ng-sheet{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 30px 70px rgba(10,37,64,.18),0 0 0 1px var(--border);font-size:13.5px}
.ng-sheet-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--accent-tint),#fff)}
.ng-sheet-top b{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.ng-sheet-top b i{width:8px;height:8px;border-radius:50%;background:var(--success);display:inline-block}
.ng-sheet-top span{font-size:12.5px;color:var(--muted);white-space:nowrap}
.ng-sheet-scroll{overflow-x:auto}
.ng-sheet table{width:100%;border-collapse:collapse;min-width:460px}
.ng-sheet thead tr{font-size:11.5px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.ng-sheet th{padding:9px 13px;border-bottom:1px solid var(--border);font-weight:600;text-align:left}
.ng-sheet td{padding:11px 13px;border-bottom:1px solid #EEF2F7;white-space:nowrap}
.ng-sheet tr:last-child td{border-bottom:0}
.ng-sheet .amt{font-weight:600;font-variant-numeric:tabular-nums}
.ng-pill{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700}
.ng-pill.paid{color:var(--success);background:var(--success-tint)}
.ng-pill.sent{color:var(--accent-hover);background:var(--accent-tint)}
.ng-pill.denied{color:var(--warn);background:var(--warn-tint)}
.ng-pill.appeal{color:var(--appeal);background:var(--appeal-tint)}
.ng-sheet-foot{display:flex;flex-wrap:wrap;gap:10px 22px;padding:13px 18px;border-top:1px solid var(--border);background:var(--bg);font-size:12.5px;color:var(--slate)}
.ng-sheet-foot b{color:var(--navy)}
.ng-callout{position:absolute;background:#fff;color:var(--navy);border-radius:14px;padding:12px 14px;box-shadow:0 18px 40px rgba(10,37,64,.22),0 0 0 1px var(--border);display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;z-index:2}
.ng-callout.c1{right:14px;top:0}
.ng-callout.c2{left:14px;bottom:0}
.ng-callout .ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:0 0 30px}
.ng-callout .ic.green{background:var(--success-tint)}
.ng-callout .ic.blue{background:var(--accent-tint)}
.ng-callout .ic svg{width:16px;height:16px;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ng-callout .ic.green svg{stroke:var(--success)}
.ng-callout .ic.blue svg{stroke:var(--accent)}
.ng-callout small{display:block;font-weight:500;color:var(--muted);font-size:12px;margin-top:1px}

/* ---------- proof strip ---------- */
.ng-proof-sec{background:var(--bg);position:relative;z-index:2;padding-bottom:56px}
.ng-proof{position:relative;z-index:3;margin-top:-52px}
.ng-stat{background:#fff;border-radius:18px;box-shadow:0 24px 60px rgba(10,37,64,.18),0 0 0 1px var(--border);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;color:var(--navy)}
.ng-stat>div{padding:22px 24px;border-right:1px solid var(--border)}
.ng-stat>div:last-child{border-right:0}
.ng-stat .n{font-weight:700;font-size:30px;letter-spacing:-.04em;line-height:1;white-space:nowrap}
.ng-stat .n.ac{color:var(--accent)}
.ng-stat .t{font-size:13.5px;font-weight:600;margin-top:8px;line-height:1.35}
.ng-stat .p{font-size:12px;color:var(--muted);margin-top:3px}

/* ---------- sections ---------- */
.ng-sec{padding-top:clamp(40px,5vw,72px);padding-bottom:clamp(40px,5vw,72px)}
.ng-sec.bg{background:var(--bg)}
.ng-sec.tint{background:var(--section-tint)}
.ng-sec.white{background:#fff}
.ng-sec.hairline{border-top:1px solid var(--border)}
.ng-sec.cv,.ng-prose section.cv{content-visibility:auto;contain-intrinsic-size:auto 600px}

/* ---------- at a glance ---------- */
.ng-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px}
.ng-hint{display:none}
.ng-t{position:relative;background:#fff;border-radius:20px;padding:24px 24px 22px;display:flex;flex-direction:column;gap:6px;min-width:0;box-shadow:var(--shadow-card);transition:transform .2s,box-shadow .2s;overflow:hidden}
.ng-t:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.ng-t .ic{position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:12px;background:var(--accent-tint);display:flex;align-items:center;justify-content:center}
.ng-t .ic svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-t dt{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ng-t .big{font-size:clamp(28px,2.6vw,36px);font-weight:700;letter-spacing:-.04em;line-height:1.05;color:var(--navy);margin:10px 0 4px;padding-right:48px}
.ng-t .big span{color:var(--accent)}
.ng-t dd{font-size:14px;line-height:1.55;color:var(--slate)}
.ng-t.dark{background:var(--navy);color:#fff}
.ng-t.dark .ic{background:rgba(255,255,255,.12)}
.ng-t.dark .ic svg{stroke:var(--soft)}
.ng-t.dark dt{color:var(--soft)}
.ng-t.dark .big{color:#fff}
.ng-t.dark .big span{color:var(--soft)}
.ng-t.dark dd{color:#C7D3E3}

/* ---------- services ---------- */
.ng-svc3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px}
.ng-c{background:#fff;border:1px solid var(--border);border-radius:22px;padding:0 0 22px;display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:transform .2s,box-shadow .2s;box-shadow:0 10px 30px rgba(10,37,64,.05)}
.ng-c:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.ng-c .band{height:6px;background:linear-gradient(90deg,var(--accent),var(--soft))}
.ng-c .hd{padding:24px 24px 14px;display:flex;align-items:center;gap:14px}
.ng-c .ic{width:52px;height:52px;border-radius:50%;background:var(--accent-tint);display:flex;align-items:center;justify-content:center;flex:0 0 52px}
.ng-c .ic svg{width:24px;height:24px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-c .tag{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);display:block}
.ng-c>p{padding:0 24px 16px;font-size:15px;font-weight:500;line-height:1.55;color:var(--slate)}
.ng-c ul{margin:0 0 18px;padding:0 24px;display:flex;flex-direction:column;font-size:14px;color:var(--navy)}
.ng-c li{display:flex;gap:10px;align-items:center;padding:11px 0;border-top:1px solid #EEF2F7;line-height:1.4}
.ng-c li svg{width:16px;height:16px;flex:0 0 16px;stroke:var(--accent);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ng-c .pricebox{margin:auto 24px 0;padding:12px 14px;border-radius:12px;background:var(--bg);font-size:13.5px;font-weight:600;color:var(--navy);line-height:1.4}
.ng-c .btn{margin:14px 24px 0;display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;white-space:normal;text-align:center;line-height:1.3;border-radius:999px;background:var(--accent);color:#fff;font-size:14.5px;font-weight:700;transition:background .15s,box-shadow .15s}
.ng-c .btn:hover{background:var(--accent-hover);color:#fff;box-shadow:0 10px 24px rgba(10,102,255,.28)}
.ng-c .btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ---------- how it works ---------- */
.ng-steps{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:40px}
.ng-steps::before{content:"";position:absolute;left:12%;right:12%;top:30px;height:2px;background:linear-gradient(90deg,var(--accent),var(--soft));border-radius:2px}
.ng-step{position:relative;background:#fff;border:1px solid var(--border);border-radius:20px;padding:0 22px 22px;display:flex;flex-direction:column;gap:10px;min-width:0;transition:transform .2s,box-shadow .2s}
.ng-step:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.ng-step .n{width:60px;height:60px;border-radius:50%;background:var(--accent);color:#fff;font-size:20px;font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px #fff,0 10px 24px rgba(10,102,255,.3);margin:0 auto -18px;position:relative;top:-30px}
.ng-step h3{font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.3;color:var(--navy)}
.ng-step p{font-size:14.5px;line-height:1.55;color:var(--slate)}
.ng-step .when{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--accent-tint);color:var(--accent-hover);font-size:12.5px;font-weight:700}
.ng-step .when svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.4;stroke-linecap:round}
.ng-ctarow{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:36px}
.ng-ctarow svg,.ng-center svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ng-center{display:flex;justify-content:center;margin-top:28px}

/* ---------- pricing (left-aligned split: head and notes left, calculator right) ---------- */
.ng-pr{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-areas:"head card" "aside card";column-gap:clamp(28px,4vw,64px);row-gap:0;align-items:center}
.ng-pr .ng-sec-head{grid-area:head;max-width:none}
.ng-pr .ng-calc{grid-area:card}
.ng-pr-aside{grid-area:aside;display:flex;flex-direction:column;gap:18px;margin-top:30px;max-width:520px}
.ng-pr-note{display:flex;gap:14px;align-items:flex-start;font-size:14.5px;line-height:1.55;color:var(--slate)}
.ng-pr-note .k{flex:0 0 38px;width:38px;height:38px;border-radius:12px;background:var(--accent-tint);display:flex;align-items:center;justify-content:center;margin-top:1px}
.ng-pr-note .k svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-pr-note b{display:block;font-size:15.5px;color:var(--navy);margin-bottom:3px;letter-spacing:-.01em}
.ng-pr-note strong{color:var(--navy)}
.ng-pr-cta{margin-top:8px}
.ng-pr-cta svg{width:15px;height:15px}
.ng-calc{background:#fff;color:var(--navy);border-radius:22px;padding:28px 30px 24px;box-shadow:0 24px 60px rgba(10,37,64,.12),0 0 0 1px var(--border);display:flex;flex-direction:column;gap:14px;margin-top:8px}
.ng-calc .lbl{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ng-calc .big{font-size:clamp(30px,3vw,40px);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.ng-calc-top{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.ng-calc-live{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--muted);padding-bottom:6px}
.ng-calc-live i{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 0 rgba(21,128,61,.35);animation:ngpulse 2.2s ease-out infinite}
.ng-calc input[type=range]{width:100%;accent-color:var(--accent);height:28px;cursor:pointer;margin:0}
.ng-calc .ticks{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);font-weight:500;margin-top:-6px}
.ng-calc .out{background:var(--navy);color:#fff;border-radius:16px;padding:16px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ng-calc .out .lbl{color:var(--soft)}
.ng-calc .out .big{color:#fff}
.ng-calc .out .billed{font-size:14px;font-weight:600;line-height:1.4;color:#fff}
.ng-calc .flag{font-size:12.5px;color:var(--warn);background:var(--warn-tint);border-radius:10px;padding:8px 12px;font-weight:600}
.ng-calc .flag[hidden]{display:none}
.ng-calc .incl{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-top:2px}
.ng-calc .incl .lbl{margin-right:4px}
.ng-calc .incl span:not(.lbl){display:inline-flex;align-items:center;gap:5px;padding:5px 10px 5px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--navy)}
.ng-calc .incl svg{width:12px;height:12px;stroke:var(--accent);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ng-calc .fine{font-size:12.5px;color:var(--muted);line-height:1.5}

/* ---------- who we serve ---------- */
.ng-chiprow{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.ng-spec{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:14.5px;font-weight:600;color:var(--navy);transition:border-color .15s,box-shadow .15s,transform .15s}
.ng-spec:hover{border-color:var(--accent);box-shadow:0 8px 20px rgba(10,37,64,.08);transform:translateY(-1px);color:var(--navy)}
.ng-spec i{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}
.ng-spec.all{background:var(--accent);border-color:var(--accent);color:#fff}
.ng-spec.all:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}
.ng-spec.all svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.ng-marq-head{display:flex;justify-content:center;margin-top:40px;padding-bottom:14px}
.ng-marq-title{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ng-marq{position:relative;overflow:hidden;margin-top:18px}
.ng-marq::before,.ng-marq::after{content:"";position:absolute;top:0;bottom:0;width:12%;z-index:1;pointer-events:none}
.ng-marq::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.ng-marq::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
.ng-track{display:flex;gap:16px;width:max-content;animation:ngmarq 28s linear infinite;animation-play-state:paused}
.ng-marq.run .ng-track{animation-play-state:running}
.ng-marq.run:hover .ng-track,.ng-marq.run:focus-within .ng-track{animation-play-state:paused}
@keyframes ngmarq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.ng-logo-ph{height:64px;width:188px;flex:0 0 188px;border-radius:14px;border:1.5px dashed var(--border-2);background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}
.ng-logo-ph img{max-height:36px;width:auto}

/* ---------- switching ---------- */
.ng-ba{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:36px}
.ng-bac{background:#fff;border:1px solid var(--border);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;min-width:0;transition:transform .2s,box-shadow .2s}
.ng-bac:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.ng-bac .had{padding:22px 22px 20px;background:var(--bg);border-bottom:1px solid var(--border)}
.ng-bac .get{padding:22px 22px 24px;flex:1;background:#fff}
.ng-bac .lab{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
.ng-bac .lab svg{width:15px;height:15px;fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.ng-bac .had .lab{color:var(--error)}
.ng-bac .had .lab svg{stroke:var(--error)}
.ng-bac .get .lab{color:var(--accent)}
.ng-bac .get .lab svg{stroke:var(--accent)}
.ng-bac b{display:block;font-size:17px;font-weight:700;letter-spacing:-.015em;line-height:1.3;color:var(--navy);margin-bottom:6px}
.ng-bac p{font-size:14.5px;line-height:1.55;color:var(--slate)}
.ng-bac .had p{color:var(--muted)}
.ng-switch-note{margin-top:26px;font-size:15px}

/* ---------- faq ---------- */
.ng-faqwrap{max-width:860px}
.faq-head{margin-bottom:28px}
.ng-faq details{border:1px solid var(--border);border-radius:14px;padding:0 20px;margin-bottom:10px;background:#fff;transition:box-shadow .2s,border-color .2s}
.ng-faq details[open]{box-shadow:0 14px 36px rgba(10,37,64,.08);border-color:var(--border-2)}
.ng-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;font-size:16.5px;font-weight:700;color:var(--navy);letter-spacing:-.01em}
.ng-faq summary::-webkit-details-marker{display:none}
.ng-faq summary h3{font:inherit;margin:0}
.ng-faq summary svg{flex:0 0 20px;width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.ng-faq details[open] summary svg{transform:rotate(180deg)}
.ng-faq .ans{padding:0 0 18px}
.ng-faq .ans p{font-size:15px;line-height:1.6;color:var(--slate)}
.ng-faq .ans p+p{margin-top:10px}

/* ---------- final cta ---------- */
.b-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(28px,5vw,72px);align-items:center}
.b-h{font-size:clamp(32px,4vw,52px);max-width:16ch;line-height:1.08;letter-spacing:-.035em}
.b-cta{margin-top:28px}
.b-cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.b-card{background:var(--section-tint);border-radius:24px;padding:28px 28px 26px}
.b-card .t{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.b-card ul{display:flex;flex-direction:column}
.b-card li{display:flex;gap:11px;align-items:flex-start;padding:12px 0;border-top:1px solid #DCE6F2;font-size:15px;line-height:1.5;color:var(--navy);font-weight:500}
.b-card li svg{width:16px;height:16px;flex:0 0 16px;margin-top:4px;stroke:var(--accent);fill:none;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}

/* ---------- footer ---------- */
.ng-foot{background:var(--navy);color:#fff;padding:clamp(44px,5vw,64px) 0 28px;font-size:14.5px}
.ng-foot a{color:#fff}
.ng-foot a:hover{color:var(--soft)}
.ng-foot-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.12)}
.ng-foot-brand p{margin:14px 0;font-size:14.5px;line-height:1.55;max-width:34ch}
.ng-foot address{font-size:14px;line-height:1.7}
.ng-foot-col h3{margin:0 0 12px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff}
.ng-foot-col a{display:block;padding:5px 0;font-size:14.5px}
.ng-foot-badges{display:flex;flex-wrap:wrap;gap:10px 26px;padding:22px 0 18px;font-size:13.5px;font-weight:500}
.ng-foot-badges span{display:inline-flex;align-items:center;gap:8px}
.ng-foot-badges svg{width:16px;height:16px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-foot-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;color:#fff}
.ng-foot-legal .lnks{display:flex;flex-wrap:wrap;gap:4px 16px}


/* ---------- document pages (legal, policies, HIPAA) ---------- */
.ng-doc-hero{background:var(--bg);border-bottom:1px solid var(--border);padding:clamp(32px,4vw,56px) 0 clamp(28px,3.5vw,44px)}
.ng-crumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--muted);margin-bottom:18px}
.ng-crumbs a{color:var(--muted)}
.ng-crumbs a:hover{color:var(--accent)}
.ng-crumbs span[aria-current]{color:var(--navy);font-weight:600}
.ng-doc-hero .ng-h1{max-width:18ch}
.ng-doc-h1{margin-top:10px}
.ng-btn.sm{height:40px;padding:0 16px;font-size:14px;width:auto}
.ng-doc-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;font-size:13.5px;color:var(--muted)}
.ng-doc-meta b{color:var(--navy);font-weight:600}
.ng-doc-hero .ng-lead{margin-top:18px;max-width:64ch}
.ng-doc-hero .ng-ctas{margin-top:22px}
.ng-doc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(32px,5vw,72px);padding-top:clamp(36px,4vw,56px);padding-bottom:clamp(48px,6vw,80px)}
.ng-toc{position:sticky;top:calc(var(--nav-h) + 20px);align-self:start}
.ng-toc .t{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.ng-toc a{display:block;padding:6px 0 6px 12px;border-left:2px solid var(--border);font-size:13.5px;color:var(--slate);line-height:1.4;transition:border-color .15s,color .15s}
.ng-toc a:hover,.ng-toc a.on{border-color:var(--accent);color:var(--navy)}
.ng-prose{max-width:760px;min-width:0;font-size:15.5px;line-height:1.65;color:var(--slate)}
.ng-prose h2{font-size:clamp(21px,2.2vw,26px);font-weight:700;letter-spacing:-.025em;line-height:1.2;color:var(--navy);margin:44px 0 12px;scroll-margin-top:calc(var(--nav-h) + 24px)}
.ng-prose h2:first-child{margin-top:0}
.ng-prose h3{font-size:16.5px;font-weight:700;letter-spacing:-.01em;color:var(--navy);margin:26px 0 8px}
.ng-prose p{margin:0 0 14px}
.ng-prose ul,.ng-prose ol{margin:0 0 16px;padding-left:22px}
.ng-prose ul{list-style:disc}
.ng-prose ol{list-style:decimal}
.ng-prose li{margin:0 0 7px;padding-left:4px}
.ng-prose li::marker{color:var(--accent)}
.ng-prose strong{color:var(--navy)}
.ng-prose a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-prose a:hover{color:var(--accent-hover)}
.ng-prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;background:var(--accent-tint);color:var(--navy);padding:2px 6px;border-radius:6px}
.ng-prose blockquote{margin:0 0 16px;padding:14px 18px;border-left:3px solid var(--accent);background:var(--bg);border-radius:0 12px 12px 0;color:var(--navy);font-size:14.5px}
.ng-prose blockquote p{margin:0}
.ng-prose .tablewrap{margin:0 0 18px;border:1px solid var(--border);border-radius:14px;overflow-x:auto}
.ng-prose table{width:100%;border-collapse:collapse;font-size:14px;min-width:480px}
.ng-prose th{text-align:left;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--bg);padding:11px 14px;border-bottom:1px solid var(--border)}
.ng-prose td{padding:12px 14px;border-bottom:1px solid #EEF2F7;vertical-align:top;color:var(--slate)}
.ng-prose tr:last-child td{border-bottom:0}
.ng-prose td:first-child{color:var(--navy);font-weight:600}
.ng-prose .pending{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--warn);background:var(--warn-tint);padding:2px 8px;border-radius:6px;vertical-align:middle}
.ng-prose .contact-block{background:var(--bg);border:1px solid var(--border);border-radius:14px;padding:18px 20px;line-height:1.7;color:var(--navy)}
.ng-prose details{border:1px solid var(--border);border-radius:14px;padding:0 18px;margin-bottom:10px;background:#fff}
.ng-prose details[open]{box-shadow:0 14px 36px rgba(10,37,64,.08);border-color:var(--border-2)}
.ng-prose summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font-size:16px;font-weight:700;color:var(--navy)}
.ng-prose summary::-webkit-details-marker{display:none}
.ng-prose summary h3{margin:0;font:inherit}
.ng-prose summary svg{flex:0 0 20px;width:20px;height:20px;stroke:var(--accent);fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s}
.ng-prose details[open] summary svg{transform:rotate(180deg)}
.ng-prose details .ans{padding:0 0 16px}
.ng-prose details[open] .ans{animation:ngfade .3s var(--ease)}
.ng-prose .updated{margin-top:26px;font-size:13.5px;color:var(--muted)}
.ng-doc-cta{background:var(--section-tint);border-radius:22px;padding:clamp(24px,3vw,36px);margin-top:44px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px}
.ng-doc-cta h2{margin:0 0 6px;font-size:22px;letter-spacing:-.025em;color:var(--navy)}
.ng-doc-cta p{margin:0;max-width:52ch}
.ng-doc-cta .ng-ctas{margin:0}

/* ---------- contact ---------- */
.ng-contact{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);padding-top:clamp(36px,4vw,56px);padding-bottom:clamp(48px,6vw,80px);align-items:start}
.ng-ways{display:grid;gap:12px}
.ng-way{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;background:#fff;border:1px solid var(--border);border-radius:16px}
.ng-way .k{flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:var(--accent-tint);display:flex;align-items:center;justify-content:center}
.ng-way .k svg{width:18px;height:18px;stroke:var(--accent);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ng-way .l{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.ng-way .v{font-size:16px;font-weight:600;color:var(--navy);line-height:1.4}
.ng-way .v a{color:var(--navy)}
.ng-way .v a:hover{color:var(--accent)}
.ng-way .s{font-size:13px;color:var(--muted);margin-top:3px}
.ng-way .s a{color:var(--accent-hover);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-start{margin-top:36px}
.ng-start h2{font-size:22px;letter-spacing:-.025em;margin:0 0 14px;color:var(--navy)}
.ng-start-card{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--section-tint);margin-bottom:10px}
.ng-start-card b{display:block;font-size:15px;color:var(--navy);margin-bottom:3px}
.ng-start-card p{margin:0;font-size:14px;color:var(--slate);line-height:1.5}
.ng-start-card .ng-link{white-space:nowrap}
.ng-clients{margin-top:36px;padding:18px 20px;border:1px solid var(--border);border-radius:16px;background:#fff}
.ng-clients h2{font-size:17px;margin:0 0 8px;color:var(--navy);letter-spacing:-.01em}
.ng-clients p{margin:0;font-size:14.5px;color:var(--slate);line-height:1.55}
.ng-form-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:clamp(22px,3vw,32px);box-shadow:0 24px 60px rgba(10,37,64,.08)}
.ng-form-card h2{font-size:22px;letter-spacing:-.025em;margin:0 0 6px;color:var(--navy)}
.ng-form-card .sub{font-size:14px;color:var(--muted);margin:0 0 20px}
.field .req{color:var(--error);font-weight:700}
.field.check{display:flex;gap:10px;align-items:flex-start}
.field.check input{width:18px;height:18px;flex:0 0 18px;margin-top:2px;accent-color:var(--accent)}
.field.check label{font-size:13.5px;font-weight:500;line-height:1.5;color:var(--slate);margin:0}
.field.check label a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-warn{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;background:var(--warn-tint);color:var(--warn);font-size:13.5px;line-height:1.5;margin:6px 0 18px}
.ng-warn svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;margin-top:1px}
.ng-form-note{font-size:13px;color:var(--muted);margin:12px 0 0}
[data-status]:not(:empty){margin-top:12px;font-size:14px;font-weight:600;color:var(--navy);padding:12px 14px;border-radius:12px;background:var(--accent-tint)}
.ng-thanks{padding:28px;border-radius:16px;background:var(--success-tint);color:var(--success);font-weight:600;font-size:16px}
.ng-errsum{margin:0 0 16px;padding:12px 14px;border-radius:12px;background:var(--error-tint);color:var(--error);font-size:14px}
.ng-errsum ul{margin:6px 0 0;padding-left:18px;list-style:disc}
.ng-errsum a{color:var(--error);font-weight:600;text-decoration:underline}

/* ---------- related links block (inner pages) ---------- */
.ng-related{margin-top:44px;padding:20px 22px;border-radius:16px;background:var(--bg);border:1px solid var(--border);font-size:14.5px;line-height:1.6;color:var(--slate)}
.ng-related p{margin:0}
.ng-related a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-prose .ng-related{max-width:none}

/* ---------- cookie bar (inline at the top of the page, so it never covers content; hidden before first paint once a choice exists) ---------- */
.ng-cookie{display:none;background:var(--section-tint);border-bottom:1px solid #DCE6F2;padding:12px 0}
html:not(.consented) .ng-cookie{display:block}
.ng-cookie .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 24px}
.ng-cookie p{margin:0;font-size:13.5px;color:var(--slate);line-height:1.5;max-width:64ch}
.ng-cookie p a{color:var(--accent-hover);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ng-cookie .btns{display:flex;gap:8px;flex-wrap:wrap}
.ng-cookie .ng-btn{height:38px;padding:0 16px;font-size:13.5px;width:auto}
.ng-foot-legal button.lnk{background:none;border:0;padding:0;color:#fff;font:inherit;cursor:pointer}
.ng-foot-legal button.lnk:hover{color:var(--soft)}

@media (max-width:900px){
  .ng-doc{grid-template-columns:1fr;gap:24px}
  .ng-toc{position:static;display:flex;flex-wrap:wrap;gap:6px}
  .ng-toc .t{width:100%;margin-bottom:4px}
  .ng-toc a{border:1px solid var(--border);border-radius:999px;padding:6px 12px;background:#fff;font-size:12.5px}
  .ng-toc a.on{border-color:var(--accent)}
  .ng-contact{grid-template-columns:1fr;gap:28px}
  .ng-cookie .btns{width:100%}
  .ng-cookie .ng-btn{flex:1}
}

/* ---------- forms (shared with intake and contact pages) ---------- */
.field{margin-bottom:16px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:15px;padding:12px 14px;border:1px solid var(--border-2);border-radius:10px;background:#fff;color:var(--navy)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);outline:3px solid var(--accent-tint);outline-offset:0}
.field .hint{font-size:12.5px;color:var(--muted);margin-top:5px}
.field.err input,.field.err select,.field.err textarea{border-color:var(--error)}
.field .msg{display:none;font-size:12.5px;color:var(--error);margin-top:5px}
.field.err .msg{display:block}
.tablewrap{overflow-x:auto}

/* ---------- document and contact page motion ---------- */

.ng-toc a{position:relative}
.ng-toc a.on{border-color:var(--accent)}
.ng-toc a.on::before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--accent);border-radius:2px;animation:ngline-v .3s var(--ease)}
@keyframes ngline-v{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.ng-prose tbody tr{transition:background .15s}
.ng-prose tbody tr:hover{background:var(--bg)}
.ng-way,.ng-start-card{transition:transform .2s,box-shadow .2s,border-color .2s}
.ng-way:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(10,37,64,.08);border-color:#CFE0FF}
.ng-start-card:hover{transform:translateY(-2px)}
.field.check[data-show-if-phone]:not([hidden]){animation:ngfade .3s var(--ease)}
.ng-btn.primary[disabled]{opacity:.7;cursor:progress}
.ng-thanks:not([hidden]){animation:ngrise .5s var(--ease)}
/* below-the-fold sections are skipped by the renderer until they are near the viewport */
.ng-sec.cv{content-visibility:auto;contain-intrinsic-size:auto 640px}

/* ---------- motion ----------
   All animation is transform and opacity only (compositor work, no layout or paint), runs once, and is
   skipped entirely under prefers-reduced-motion. Nothing is hidden by CSS alone (see .rv-wait), so the
   page is fully visible without JS. */
:root{--ease:cubic-bezier(.2,.7,.2,1)}
@keyframes ngrise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes ngpop{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ngfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes ngpulse{0%{box-shadow:0 0 0 0 rgba(21,128,61,.35)}70%{box-shadow:0 0 0 7px rgba(21,128,61,0)}100%{box-shadow:0 0 0 0 rgba(21,128,61,0)}}
@keyframes ngline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes ngcircle{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes ngfade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes ngtick{0%{color:var(--accent)}100%{color:inherit}}
@keyframes ngtick-light{0%{color:var(--soft)}100%{color:#fff}}

/* page load: hero copy, panel and proof strip, then the two callouts */
.ng-enter{animation:ngrise .6s var(--ease) backwards}
.ng-enter.d1{animation-delay:.05s}.ng-enter.d2{animation-delay:.15s}.ng-enter.d3{animation-delay:.25s}.ng-enter.d4{animation-delay:.35s}.ng-enter.d5{animation-delay:.5s}
.ng-callout.ng-pop{animation:ngpop .5s var(--ease) backwards,ngfloat 6s ease-in-out infinite}
.hero-off .ng-callout.ng-pop{animation-play-state:paused}
.ng-callout.ng-pop.c1{animation-delay:.8s,1.4s}
.ng-callout.ng-pop.c2{animation-delay:1s,2.2s}
.ng-sheet tbody tr{animation:ngrise .45s var(--ease) backwards}
.ng-sheet tbody tr:nth-child(1){animation-delay:.45s}.ng-sheet tbody tr:nth-child(2){animation-delay:.53s}.ng-sheet tbody tr:nth-child(3){animation-delay:.61s}.ng-sheet tbody tr:nth-child(4){animation-delay:.69s}.ng-sheet tbody tr:nth-child(5){animation-delay:.77s}
.ng-sheet-top b i{box-shadow:0 0 0 0 rgba(21,128,61,.35);animation:ngpulse 2.2s ease-out infinite}
.hero-off .ng-sheet-top b i{animation-play-state:paused}

/* scroll reveal: .rv for one element, .rv-group staggers its children. Nothing is hidden by CSS alone:
   site.js adds .rv-wait only to elements below the fold, removes it on reveal, and clears it after 3s
   regardless, so the page can never stay blank. Fill is backwards only, so once revealed the elements
   return to their normal styles and hover transforms still work. */
.rv.rv-wait,.rv-group.rv-wait>*,.ng-steps.rv-wait .n{opacity:0}
.rv.in{animation:ngrise .55s var(--ease) backwards}
.rv-now,.rv-now>*,.rv-now .n,.rv-now::before{animation:none!important}
.rv-group.in>*{animation:ngrise .55s var(--ease) backwards}
.rv-group.in>*:nth-child(2){animation-delay:.07s}.rv-group.in>*:nth-child(3){animation-delay:.14s}.rv-group.in>*:nth-child(4){animation-delay:.21s}.rv-group.in>*:nth-child(5){animation-delay:.28s}.rv-group.in>*:nth-child(6){animation-delay:.35s}.rv-group.in>*:nth-child(7){animation-delay:.42s}.rv-group.in>*:nth-child(8){animation-delay:.49s}.rv-group.in>*:nth-child(9){animation-delay:.56s}.rv-group.in>*:nth-child(10){animation-delay:.63s}
/* how it works: the connector draws left to right and the numbered circles pop in sequence */
.ng-steps.rv-wait::before,.ng-steps.in::before{transform-origin:left center}
.ng-steps.rv-wait::before{transform:scaleX(0)}
.ng-steps.in::before{animation:ngline .9s var(--ease) .15s backwards}
.ng-steps.in .n{animation:ngcircle .45s var(--ease) backwards}
.ng-steps.in>*:nth-child(1) .n{animation-delay:.2s}.ng-steps.in>*:nth-child(2) .n{animation-delay:.4s}.ng-steps.in>*:nth-child(3) .n{animation-delay:.6s}.ng-steps.in>*:nth-child(4) .n{animation-delay:.8s}
/* inner pages: form card enters from the right, table rows highlight, controls answer actions */
@keyframes ngright{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.ng-enter.from-right{animation-name:ngright}
.ng-prose tbody tr{transition:background .15s}
.ng-prose tbody tr:hover{background:var(--bg)}
.ng-toc a{position:relative}
.ng-toc a::before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:2px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .25s var(--ease)}
.ng-toc a.on::before{transform:scaleY(1)}
.field.check[data-show-if-phone]:not([hidden]){animation:ngfade .3s var(--ease)}
.ng-thanks:not([hidden]){animation:ngrise .45s var(--ease)}
.ng-btn.primary.sending{opacity:.75;pointer-events:none}
/* motion that answers an action */
.ng-faq details[open] .ans{animation:ngfade .3s var(--ease)}
.ng-calc .big.tick{animation:ngtick .35s ease-out}
.ng-calc .out .big.tick{animation:ngtick-light .35s ease-out}
.ng-spec:hover i{transform:scale(1.4)}
.ng-spec i{transition:transform .15s}
.ng-logo .mark{transition:transform .25s var(--ease)}
.ng-logo:hover .mark{transform:rotate(-8deg)}

/* ---------- motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .rv.rv-wait,.rv-group.rv-wait>*,.ng-steps.rv-wait .n{opacity:1}
  .ng-steps.rv-wait::before{transform:none}
}

/* ---------- contrast: small accent text on tinted backgrounds uses the darker blue (4.5:1) ---------- */
.ng-sec.tint .ng-kicker,.b-card .t,.ng-c .tag,.ng-start-card .ng-link,.ng-cookie p a{color:var(--accent-hover)}
.ng-sec.tint .ng-kicker::before{background:var(--accent-hover)}

/* ---------- responsive (one breakpoint) ---------- */
@media (max-width:900px){
  .ng-links,.ng-phone{display:none!important}
  .ng-cta-nav{display:none!important}
  .ng-burger{display:inline-flex}
  .ng-header.is-open .ng-mobile{display:block}
  .ng-nav{height:60px;gap:8px}
  .ng-right{gap:8px}
  .ng-logo{font-size:18px;gap:8px}
  .ng-logo .mark{width:28px;height:28px;flex-basis:28px}
  .ng-hero{grid-template-columns:1fr;gap:28px;padding-top:28px}
  .ng-copy{padding-bottom:0;gap:16px;max-width:none}
  .ng-btn{width:100%}
  .ng-sheet-wrap{padding:60px 0 60px}
  .ng-callout{font-size:12.5px;padding:10px 12px}
  .ng-callout.c1{right:0}
  .ng-callout.c2{left:0}
  .ng-stat{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ng-stat>div{padding:20px 18px;border-bottom:1px solid var(--border)}
  .ng-stat>div:nth-child(2n){border-right:0}
  .ng-stat>div:nth-last-child(-n+2){border-bottom:0}
  .ng-stat .n{font-size:26px}
  .ng-proof{margin-top:-44px}
  .ng-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:22px -15px 0;padding:4px 15px 12px;scroll-padding-inline:15px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .ng-grid::-webkit-scrollbar{display:none}
  .ng-grid>*{flex:0 0 78%;scroll-snap-align:start}
  .ng-hint{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:12.5px;color:var(--muted);font-weight:500}
  .ng-hint i{display:inline-block;width:18px;height:4px;border-radius:2px;background:var(--accent)}
  .ng-hint i+i{width:6px;background:var(--border-2)}
  .ng-svc3{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:26px -15px 0;padding:4px 15px 12px;scroll-padding-inline:15px;scrollbar-width:none}
  .ng-svc3::-webkit-scrollbar{display:none}
  .ng-svc3>*{flex:0 0 84%;scroll-snap-align:start}
  .ng-steps{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:14px -15px 0;padding:36px 15px 12px;scroll-padding-inline:15px;scrollbar-width:none}
  .ng-steps::before{display:none}
  .ng-steps::-webkit-scrollbar{display:none}
  .ng-steps>*{flex:0 0 82%;scroll-snap-align:start}
  .ng-ctarow{margin-top:24px}
  .ng-pr{grid-template-columns:1fr;grid-template-areas:"head" "card" "aside"}
  .ng-calc{padding:20px 18px;margin-top:22px}
  .ng-pr-aside{margin-top:24px;max-width:none}
  .ng-chiprow{gap:8px;margin-top:22px}
  .ng-spec{padding:9px 13px;font-size:13.5px}
  .ng-logo-ph{height:56px;width:160px;flex-basis:160px}
  .ng-track{animation-duration:20s}
  .ng-ba{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin:26px -15px 0;padding:4px 15px 12px;scroll-padding-inline:15px;scrollbar-width:none}
  .ng-ba::-webkit-scrollbar{display:none}
  .ng-ba>*{flex:0 0 84%;scroll-snap-align:start}
  .b-grid{grid-template-columns:1fr;gap:24px}
  .ng-foot-top{grid-template-columns:1fr 1fr;gap:28px 20px}
  .ng-foot-brand{grid-column:span 2}
  .ng-foot-col:last-child{grid-column:span 2}
  .ng-foot-col:last-child a{display:inline-block;margin-right:18px}
  .ng-foot-badges{flex-direction:column;gap:10px}
  .ng-foot-legal{flex-direction:column;align-items:flex-start}
}

/* mobile text size: 14px */
@media (max-width:900px){
  body{font-size:14px}
  p,li,dd,td,address,blockquote,.ng-lead,.ng-intro,.ng-para,.ng-after,.ng-prose,.ng-related,.ng-micro,.ng-thanks,.ng-foot,.ng-foot a,.ng-foot-col a,.ng-spec,.ng-pr-note,.ng-switch-note,.ng-way .v,.in-step .sub{font-size:14px!important}
}

/* button text: initial capitals */
.ng-btn,.ng-c .btn,.ng-spec.all,.in-add{text-transform:capitalize}

/* mobile: slightly smaller buttons */
@media (max-width:900px){
  .ng-btn{height:46px;padding:0 18px;font-size:14px}
  .ng-btn.lg{height:52px;padding:0 24px;font-size:15px}
  .ng-mobile .ng-btn{height:46px;font-size:15px}
}
