/* NumProof site — brand styles (from NumProof brand sheet) */
@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Hanken+Grotesk:wght@400;500;600;700&display=swap');

:root{
  --purple:#5B2A86;   --purple2:#4a2170;   /* primary / brand */
  --green:#1E8A5B;     --mint:#46C68C;      /* secondary / accent */
  --lilac:#B79BDB;
  --ink:#241E2B;       --muted:#7d768a;
  --bg:#FAF7F2;        --card:#ffffff;
  --line:#ece7f1;      --accent:#f2ecf8;    /* light purple tint */
  --radius:14px; --maxw:1040px;
  --display:'Bricolage Grotesque',"Segoe UI",system-ui,sans-serif;
  --body:'Hanken Grotesk',"Segoe UI",system-ui,-apple-system,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,.brand{font-family:var(--display)}
a{color:var(--purple);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}

/* horizontal padding only — so section{padding} keeps vertical rhythm even on section.wrap */
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:24px;padding-right:24px}
.narrow{max-width:760px}
section{padding:68px 0}

/* nav */
header.nav{position:sticky;top:0;z-index:20;background:rgba(250,247,242,.9);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 20px}
.brand{display:flex;align-items:baseline;gap:8px;font-size:22px;font-weight:800;letter-spacing:-.5px}
.brand b{font-weight:800;color:var(--purple);font-family:var(--display)}
.brand b .pf{color:var(--green);font:inherit}
.brand > span{color:var(--muted);font-size:12px;font-family:var(--body);font-weight:500}
.nav nav{display:flex;gap:22px;align-items:center;font-size:14px;font-weight:500}
.nav nav a{color:var(--ink)}
.btn{display:inline-block;background:var(--purple);color:#fff;border:0;border-radius:10px;
  padding:11px 18px;font-size:15px;font-weight:600;cursor:pointer;font-family:var(--body);
  text-align:center;transition:background .15s}
.btn:hover{background:var(--purple2);text-decoration:none;color:#fff}
.btn.ghost{background:transparent;color:var(--purple);border:1px solid var(--purple)}
.btn.ghost:hover{background:var(--accent)}
.btn.lg{padding:14px 26px;font-size:16px}

/* hero */
.hero{background:linear-gradient(180deg,#fff,var(--bg))}
.hero .wrap{text-align:center;padding:84px 24px 40px}
.hero h1{font-size:49px;line-height:1.08;letter-spacing:-1px;font-weight:800;margin-bottom:18px}
.hero h1 .hl{color:var(--green)}
.hero p.sub{font-size:19px;color:var(--muted);max-width:640px;margin:0 auto 28px}
.hero .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.pill{display:inline-block;background:var(--accent);color:var(--purple);
  font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;margin-bottom:22px}

/* features */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.feat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.feat:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(91,42,134,.10);border-color:#e2d8ef}
.feat h3{font-size:17px;margin-bottom:8px;font-weight:700}
.feat p{color:var(--muted);font-size:14.5px}
.feat .ic{width:44px;height:44px;border-radius:12px;background:var(--accent);
  display:flex;align-items:center;justify-content:center;margin-bottom:15px;font-size:21px;
  font-family:var(--display);font-weight:800;color:var(--purple)}

/* section head */
.shead{text-align:center;max-width:660px;margin:0 auto 46px}
.shead h2{font-size:33px;letter-spacing:-.5px;font-weight:800;margin-bottom:12px;line-height:1.15}
.shead p{color:var(--muted);font-size:16.5px}
.shead .pill{margin-bottom:16px}

/* pricing */
.price-card{max-width:400px;margin:0 auto;background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:34px;text-align:center;box-shadow:0 10px 34px rgba(91,42,134,.08)}
.price-card .amt{font-family:var(--display);font-size:44px;font-weight:800;color:var(--ink)}
.price-card .amt small{font-size:16px;color:var(--muted);font-weight:500;font-family:var(--body)}
.price-card ul{list-style:none;text-align:left;margin:22px 0}
.price-card li{padding:7px 0 7px 28px;position:relative;font-size:15px}
.price-card li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.price-note{font-size:12.5px;color:var(--muted);margin-top:14px}
.addon-line{margin:0 0 18px;padding:12px 14px;border:1px dashed var(--line);border-radius:12px;
  background:rgba(91,42,134,.04);font-size:14px;color:var(--ink)}
.addon-line small{color:var(--muted);font-weight:500}
.addon-line a{color:var(--purple);text-decoration:none;border-bottom:1px solid currentColor}

/* legal / content */
.doc{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:40px;margin:34px 0}
.doc h1{font-size:32px;font-weight:800;margin-bottom:6px}
.doc .updated{color:var(--muted);font-size:13px;margin-bottom:26px}
.doc h2{font-size:21px;font-weight:700;margin:28px 0 10px}
.doc h3{font-size:16px;font-weight:700;margin:18px 0 8px}
.doc p,.doc li{color:#43394d;font-size:15px;margin-bottom:10px}
.doc ul,.doc ol{margin:0 0 12px 22px}
.doc .note{background:var(--accent);border-left:3px solid var(--purple);
  padding:12px 16px;border-radius:8px;font-size:14px;color:var(--purple2);margin:16px 0}

/* forms */
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px}
.field input,.field textarea{width:100%;padding:11px 12px;border:1px solid var(--line);
  border-radius:8px;font-size:15px;font-family:inherit;background:#fff}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--purple)}
.msg{font-size:14px;min-height:18px;margin-top:10px}
.msg.err{color:#b23030}.msg.ok{color:var(--green)}

/* footer */
footer.ft{background:#fff;border-top:1px solid var(--line);padding:34px 0;margin-top:20px}
footer.ft .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
footer.ft .links{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}
footer.ft .links a{color:var(--ink)}
footer.ft .cr{color:var(--muted);font-size:13px}

/* ───────── soft colour-transition bands (no hard edges) ───────── */
.band-soft{background:linear-gradient(180deg,var(--bg) 0%,#fff 12%,#fff 88%,var(--bg) 100%)}
.band-accent{background:linear-gradient(180deg,var(--bg) 0%,var(--accent) 22%,var(--accent) 78%,#fff 100%)}

/* ───────── animated product demo (snip → Excel) ───────── */
.demo-band{background:transparent}
.demo-band .wrap{padding-top:0;padding-bottom:28px}
.demo{position:relative;max-width:860px;margin:0 auto;display:grid;
  grid-template-columns:1fr 46px 1fr;align-items:center;gap:0;
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:26px;box-shadow:0 24px 60px rgba(91,42,134,.12)}
.demo-pane{position:relative;border:1px solid var(--line);border-radius:12px;background:#fff;
  padding:16px 16px 18px;min-height:188px;overflow:hidden}
.demo-cap{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);
  margin-bottom:14px;font-family:var(--body)}
.demo-cap::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--mint);box-shadow:14px 0 0 #f3c44a,28px 0 0 #e9746a;margin-right:22px}
.demo-line{height:9px;border-radius:5px;background:#eee7f2;margin:9px 0}
.w90{width:90%}.w80{width:80%}.w70{width:70%}.w60{width:60%}.w40{width:40%}
.demo-row{display:flex;justify-content:space-between;align-items:center;margin:12px 0;position:relative;z-index:2}
.demo-row .lab{font-size:13px;color:#6a6275;font-weight:600}
.demo-row .fig{font-size:15px;font-weight:800;color:var(--ink);font-family:var(--display);
  padding:3px 7px;border-radius:6px}
.demo-select{position:absolute;left:12px;right:12px;top:96px;height:32px;border:2px dashed var(--purple);
  border-radius:7px;background:rgba(91,42,134,.08);opacity:0;transform:scale(.6);transform-origin:center;
  animation:selbox 3.2s ease-in-out .4s 1 both}
.demo-arrow{display:flex;align-items:center;justify-content:center;color:var(--lilac);font-size:26px;font-weight:800}
.demo-arrow span{animation:arrowpulse 3.2s ease-in-out .4s 1 both}
.xlgrid{display:grid;grid-template-columns:28px repeat(3,1fr);grid-auto-rows:30px;gap:0;
  border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px}
.xlgrid div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);
  display:flex;align-items:center;padding:0 8px;color:#8a8395}
.xlgrid .hd{background:#f7f4fb;font-weight:700;color:#6a6275;justify-content:center;padding:0}
.xlgrid .rh{background:#f7f4fb;font-weight:700;color:#8a8395;justify-content:center;padding:0}
.xlgrid .tgt{position:relative;color:var(--ink);font-weight:800;font-family:var(--display);
  box-shadow:inset 0 0 0 0 var(--purple);animation:cellring 3.2s ease-in-out .4s 1 both}
.xlgrid .tgt .val{opacity:0;transform:translateX(-8px);animation:dropin 3.2s ease-in-out .4s 1 both}
.demo-badge{position:absolute;left:8px;bottom:-11px;background:var(--purple);color:#fff;font-size:9.5px;
  font-weight:700;letter-spacing:.3px;padding:2px 7px;border-radius:999px;font-family:var(--body);
  display:flex;align-items:center;gap:4px;opacity:0;transform:translateY(5px);animation:badgepop 3.2s ease-in-out .4s 1 both;white-space:nowrap}
.demo-cursor{position:absolute;width:16px;height:16px;left:30%;top:46%;z-index:5;pointer-events:none;
  animation:cursormove 3.2s ease-in-out .4s 1 both}
.demo-cursor::before{content:"";position:absolute;inset:0;background:var(--ink);
  clip-path:polygon(0 0,0 72%,20% 55%,34% 86%,46% 80%,32% 52%,58% 52%);filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}
/* Plays once on load and HOLDS the filled state (number stays in the cell). */
@keyframes selbox{0%,8%{opacity:0;transform:scale(.6)}18%,52%{opacity:1;transform:scale(1)}66%,100%{opacity:0;transform:scale(1)}}
@keyframes dropin{0%,50%{opacity:0;transform:translateX(-8px)}64%,100%{opacity:1;transform:translateX(0)}}
@keyframes badgepop{0%,66%{opacity:0;transform:translateY(5px)}78%,100%{opacity:1;transform:translateY(0)}}
@keyframes cellring{0%,50%{box-shadow:inset 0 0 0 0 var(--purple);background:transparent}
  64%,100%{box-shadow:inset 0 0 0 2px var(--purple);background:rgba(91,42,134,.05)}}
@keyframes arrowpulse{0%,45%{opacity:.35}55%{opacity:1}70%,100%{opacity:.6}}
@keyframes cursormove{0%,10%{left:40%;top:44%;opacity:1}24%,46%{left:40%;top:44%;opacity:1}
  60%{left:82%;top:76%;opacity:1}80%{left:82%;top:76%;opacity:1}100%{left:82%;top:76%;opacity:0}}
@media (prefers-reduced-motion:reduce){
  .demo-select,.xlgrid .tgt,.xlgrid .tgt .val,.demo-badge,.demo-cursor,.demo-arrow span{animation:none}
  .demo-select{opacity:1;transform:scale(1)}.xlgrid .tgt .val{opacity:1;transform:none}
  .xlgrid .tgt{box-shadow:inset 0 0 0 2px var(--purple);background:rgba(91,42,134,.05)}
  .demo-badge{opacity:1;transform:none}.demo-cursor{display:none}
}

/* ───────── trust band ───────── */
.trust{background:var(--purple);color:#fff;border-radius:18px;padding:40px 34px;max-width:var(--maxw)}
.trust h2{color:#fff;font-size:26px;font-weight:800;letter-spacing:-.4px;margin-bottom:8px}
.trust p.lead{color:#e7ddf3;font-size:16px;max-width:560px;margin-bottom:26px}
.trust .trow{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.trust .tcard{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);
  border-radius:12px;padding:18px}
.trust .tcard h3{color:#fff;font-size:15.5px;font-weight:700;margin-bottom:6px;display:flex;gap:8px;align-items:center}
.trust .tcard p{color:#ddd0ee;font-size:13.5px}

/* ───────── FAQ ───────── */
.faq{max-width:760px;margin:0 auto}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:12px;
  padding:0 20px;margin-bottom:12px;transition:border-color .15s}
.faq details[open]{border-color:#e0d4ee;box-shadow:0 8px 24px rgba(91,42,134,.06)}
.faq summary{list-style:none;cursor:pointer;padding:17px 0;font-weight:700;font-size:15.5px;
  color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--purple);font-size:22px;font-weight:700;line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 0 18px;color:var(--muted);font-size:14.5px;line-height:1.65}
.faq .ans a{border-bottom:1px solid currentColor}

/* ───────── slim CTA band ───────── */
.ctaband{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;text-align:center;
  border-radius:20px;padding:50px 30px;max-width:var(--maxw)}
.ctaband h2{color:#fff;font-size:30px;font-weight:800;letter-spacing:-.5px;margin-bottom:10px}
.ctaband p{color:#e7ddf3;font-size:16.5px;margin-bottom:24px;max-width:540px;margin-left:auto;margin-right:auto}
.ctaband .btn{background:#fff;color:var(--purple)}
.ctaband .btn:hover{background:#f3ecfb;color:var(--purple2)}
.ctaband .btn.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.5)}
.ctaband .btn.ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.ctaband .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.ctaband .fine{color:#cbbbe4;font-size:13px;margin-top:16px}

/* ───────── pricing page ───────── */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:860px;margin:0 auto;align-items:stretch}
.plan{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:32px;
  box-shadow:0 10px 34px rgba(91,42,134,.07);position:relative;display:flex;flex-direction:column}
.plan ul{flex:1 0 auto}
.plan .btn{margin-top:auto}
.plan.feature{border-color:#d9c8ef;box-shadow:0 18px 44px rgba(91,42,134,.14)}
.plan .tag{position:absolute;top:-12px;right:24px;background:var(--green);color:#fff;font-size:11px;
  font-weight:700;padding:4px 12px;border-radius:999px;letter-spacing:.3px}
.plan .pname{font-size:14px;font-weight:700;color:var(--purple);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}
.plan .amt{font-family:var(--display);font-size:42px;font-weight:800;color:var(--ink);line-height:1}
.plan .amt small{font-size:15px;color:var(--muted);font-weight:500;font-family:var(--body)}
.plan .desc{color:var(--muted);font-size:14px;margin:12px 0 4px}
.plan ul{list-style:none;margin:20px 0 24px}
.plan li{padding:8px 0 8px 28px;position:relative;font-size:14.5px}
.plan li::before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}
.plan .addon-amt{font-family:var(--display);font-size:30px;font-weight:800;color:var(--ink);line-height:1}
.plan .plus{display:inline-block;color:var(--muted);font-weight:700;font-size:14px;margin-bottom:6px}

/* ───────── support page ───────── */
.supgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-bottom:12px}
.supcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:24px;
  transition:transform .18s,box-shadow .18s,border-color .18s}
.supcard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(91,42,134,.10);border-color:#e2d8ef}
.supcard .ic{width:44px;height:44px;border-radius:12px;background:var(--accent);display:flex;
  align-items:center;justify-content:center;font-size:21px;margin-bottom:14px}
.supcard h3{font-size:16px;font-weight:700;margin-bottom:7px}
.supcard p{color:var(--muted);font-size:14px}
.sup-contact{background:var(--accent);border:1px solid var(--line);border-radius:16px;
  padding:30px 34px;text-align:center;max-width:720px;margin:0 auto}
.sup-contact h2{font-size:23px;font-weight:800;margin-bottom:8px}
.sup-contact p{color:var(--muted);font-size:15px;margin-bottom:20px}

@media (max-width:820px){
  .grid{grid-template-columns:1fr}
  .hero h1{font-size:34px}
  .hero .wrap{padding:56px 20px 30px}
  .nav nav{gap:14px;font-size:13px}
  .nav nav .hide-sm{display:none}
  section{padding:48px 0}
  .doc{padding:26px}
  .demo{grid-template-columns:1fr;gap:12px;padding:16px}
  .demo-pane{min-height:0}
  .demo-arrow{transform:rotate(90deg);height:20px}
  .demo-cursor{display:none}
  .xlgrid{grid-template-columns:22px 1fr 1fr 1.25fr;font-size:11px}
  .xlgrid div{padding:0 5px;white-space:nowrap;overflow:hidden}
  .xlgrid .tgt .val{font-size:12px}
  .demo-badge{font-size:9px;padding:2px 6px}
  .trust .trow,.plans,.supgrid{grid-template-columns:1fr}
  .trust,.ctaband{padding-left:24px;padding-right:24px}
}
