/* ============================================================
   GrantDue — Marketing site design system
   Brand teal #184449 (from the wordmark) as ink, with an
   emerald "funded" accent and an amber "due" accent.
   Self-contained: pairs with Bootstrap 5 + Bricolage/Figtree.
   ============================================================ */

:root{
  --ink:#184449;          /* brand teal — matches the logo */
  --ink-soft:#52656A;
  --ink-faint:#8497A0;
  --paper:#FBFAF7;
  --surface:#FFFFFF;
  --line:#E8E6DF;
  --line-cool:#E2EAE9;

  --funded:#0E9C6E;       /* "what's funded" */
  --funded-deep:#0a6e4d;
  --funded-soft:#E3F4EC;
  --due:#D9881A;          /* "what's due"    */
  --due-deep:#9a5e07;
  --due-soft:#FBEFD7;

  /* distinct funder segments — cohesive cool family */
  --g1:#0E9C6E;
  --g2:#1C8AA6;
  --g3:#3E68C2;

  --shadow-sm:0 1px 2px rgba(24,68,73,.05), 0 2px 8px rgba(24,68,73,.04);
  --shadow-md:0 8px 30px rgba(24,68,73,.08), 0 2px 8px rgba(24,68,73,.05);
  --shadow-lg:0 24px 60px rgba(24,68,73,.14), 0 6px 18px rgba(24,68,73,.07);

  --r:14px;
  --r-lg:22px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Figtree",system-ui,-apple-system,sans-serif;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
h1,h2,h3,h4,.display-font{
  font-family:"Bricolage Grotesque","Figtree",sans-serif;
  letter-spacing:-.02em;
  line-height:1.07;
  font-weight:700;
}
a{color:inherit;text-decoration:none}
.container-tight{max-width:1140px}
.text-funded{color:var(--funded)!important}
.text-due{color:var(--due)!important}
.text-ink-soft{color:var(--ink-soft)!important}

/* ---- buttons ---- */
.btn{
  font-family:"Figtree",sans-serif;font-weight:600;border-radius:11px;
  padding:.7rem 1.25rem;border:1.5px solid transparent;transition:.18s ease;
}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#0f3034;color:#fff;transform:translateY(-1px)}
.btn-funded{background:var(--funded);color:#fff}
.btn-funded:hover{background:#0c8a61;color:#fff;transform:translateY(-1px);box-shadow:var(--shadow-md)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink);background:#fff}
.btn-lg{padding:.85rem 1.6rem;font-size:1.02rem}

/* ---- nav ---- */
.nav-wrap{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.82);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:.2s}
.nav-wrap.scrolled{border-bottom-color:var(--line);box-shadow:var(--shadow-sm)}
.brand-logo{height:30px;width:auto;display:block}
.nav-link-x{color:var(--ink-soft);font-weight:500;padding:.4rem .85rem;border-radius:8px;transition:.15s}
.nav-link-x:hover,.nav-link-x.active{color:var(--ink);background:rgba(24,68,73,.06)}

.eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--funded)}
.eyebrow.due{color:var(--due)}

/* ---- hero ---- */
.hero{padding:5.5rem 0 4rem}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.05rem)}
.hero h1 .funded{color:var(--funded)}
.hero h1 .due{color:var(--due)}
.hero-sub{font-size:1.2rem;color:var(--ink-soft);max-width:38ch}

/* page hero (sub-pages) */
.page-hero{padding:4.5rem 0 1rem;text-align:center}
.page-hero h1{font-size:clamp(2.1rem,4.4vw,3.2rem)}
.page-hero p{color:var(--ink-soft);font-size:1.18rem;max-width:60ch;margin:1rem auto 0}

/* ---- the allocation card (signature element) ---- */
.alloc-card{
  background:var(--surface);border:1px solid var(--line-cool);border-radius:var(--r-lg);
  box-shadow:var(--shadow-lg);padding:1.6rem 1.6rem 1.7rem;position:relative;
}
.alloc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.alloc-title{font-family:"Bricolage Grotesque";font-weight:700;font-size:1.18rem}
.alloc-meta{color:var(--ink-soft);font-size:.86rem;margin-top:.1rem}
.alloc-total{text-align:right}
.alloc-total .num{font-family:"Bricolage Grotesque";font-weight:700;font-size:1.42rem;font-variant-numeric:tabular-nums}
.alloc-total .lbl{font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.08em}

.alloc-bar{height:18px;border-radius:9px;overflow:hidden;display:flex;margin:1.3rem 0 1rem;background:#eef0f4}
.seg{height:100%;width:0;transition:width 1.1s cubic-bezier(.22,1,.36,1)}
.seg.s1{background:var(--g1)}
.seg.s2{background:var(--g2)}
.seg.s3{background:var(--g3)}

.legend{display:grid;gap:.55rem}
.legend .row{display:flex;align-items:center;justify-content:space-between;font-size:.92rem}
.legend .left{display:flex;align-items:center;gap:.55rem}
.dot{width:11px;height:11px;border-radius:3px;flex:0 0 11px}
.legend .amt{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink-soft)}

.alloc-foot{display:flex;align-items:center;justify-content:space-between;margin-top:1.25rem;padding-top:1.1rem;border-top:1px dashed var(--line);flex-wrap:wrap;gap:.5rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;padding:.32rem .7rem;border-radius:999px}
.chip.funded{background:var(--funded-soft);color:var(--funded-deep)}
.chip.due{background:var(--due-soft);color:var(--due-deep)}
.pulse{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pulse 2.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(217,136,26,.4)}70%{box-shadow:0 0 0 6px rgba(217,136,26,0)}100%{box-shadow:0 0 0 0 rgba(217,136,26,0)}}

.float-note{
  position:absolute;background:#fff;border:1px solid var(--line-cool);border-radius:12px;
  box-shadow:var(--shadow-md);padding:.6rem .8rem;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:.45rem;
}
.float-note.tl{top:-18px;left:-16px}
.float-note.br{bottom:-20px;right:-14px;color:var(--funded-deep)}

/* ---- generic sections ---- */
section{padding:4.5rem 0}
.sec-soft{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sec-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
.sec-head p{color:var(--ink-soft);font-size:1.1rem;max-width:54ch}

/* spreadsheet vs grantdue */
.compare-col{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:1.6rem}
.compare-col.old{background:#fff;border-style:dashed}
.compare-col h3{font-size:1.15rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.compare-li{display:flex;gap:.7rem;padding:.55rem 0;color:var(--ink-soft);font-size:.98rem;border-top:1px solid var(--line)}
.compare-li:first-of-type{border-top:0}
.compare-li .ic{flex:0 0 20px;margin-top:.15rem}

/* feature grid */
.feat{background:var(--surface);border:1px solid var(--line-cool);border-radius:var(--r);padding:1.5rem;height:100%;transition:.2s}
.feat:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:#cfe0dd}
.feat .ico{width:44px;height:44px;border-radius:11px;display:grid;place-items:center;margin-bottom:1rem;background:var(--funded-soft)}
.feat.due .ico{background:var(--due-soft)}
.feat h3{font-size:1.12rem;margin-bottom:.4rem}
.feat p{color:var(--ink-soft);font-size:.95rem;margin:0}

/* how it works */
.steps{counter-reset:step}
.step{position:relative;padding-left:0}
.step .n{font-family:"Bricolage Grotesque";font-weight:800;font-size:2.4rem;color:var(--funded);line-height:1}
.step h3{font-size:1.2rem;margin:.6rem 0 .35rem}
.step p{color:var(--ink-soft);margin:0}

/* pricing */
.price-card{background:var(--surface);border:1px solid var(--line-cool);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:2.4rem;max-width:480px;margin:0 auto;position:relative;overflow:hidden}
.price-card::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:linear-gradient(90deg,var(--funded),var(--g2),var(--g3))}
.price-badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--due-soft);color:var(--due-deep);font-weight:700;font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;padding:.35rem .7rem;border-radius:999px;margin-bottom:1rem}
.price-amt{font-family:"Bricolage Grotesque";font-weight:800;font-size:3.6rem;line-height:1}
.price-amt .per{font-size:1.05rem;font-weight:500;color:var(--ink-soft);font-family:"Figtree"}
.price-was{font-size:1.15rem;color:var(--ink-faint);text-decoration:line-through;text-decoration-thickness:2px;margin-left:.2rem}
.price-li{display:flex;gap:.6rem;padding:.5rem 0;font-size:1rem}
.price-li .ic{color:var(--funded);flex:0 0 20px;margin-top:.2rem}

/* dark CTA band */
.band{background:var(--ink);color:#fff;border-radius:28px;padding:3.4rem;position:relative;overflow:hidden}
.band h2{font-size:clamp(1.9rem,3.4vw,2.8rem);color:#fff}
.band p{color:#b7cccf;font-size:1.12rem}
.band .glow{position:absolute;width:420px;height:420px;border-radius:50%;filter:blur(90px);opacity:.45}
.band .g-a{background:#0E9C6E;top:-180px;right:-80px}
.band .g-b{background:#3E68C2;bottom:-220px;left:-60px;opacity:.3}

/* stat row */
.stat .num{font-family:"Bricolage Grotesque";font-weight:800;font-size:2.4rem;color:var(--ink);line-height:1}
.stat .lbl{color:var(--ink-soft);font-size:.95rem;margin-top:.3rem}

/* faq */
.faq-item{border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-bottom:.8rem;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:1.15rem 1.3rem;font-weight:600;font-size:1.05rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;color:var(--ink)}
.faq-q .pm{flex:0 0 22px;transition:.2s;color:var(--funded);font-size:1.4rem;line-height:1}
.faq-a{max-height:0;overflow:hidden;transition:max-height .28s ease;color:var(--ink-soft)}
.faq-a .inner{padding:0 1.3rem 1.2rem}
.faq-item.open .pm{transform:rotate(45deg)}

/* contact */
.contact-card{background:var(--surface);border:1px solid var(--line-cool);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:2rem;height:100%}
.contact-card .ico{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--funded-soft);margin-bottom:1rem}

/* footer */
footer.site-footer{padding:3rem 0 2.5rem;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.92rem;background:#fff}
footer.site-footer a:hover{color:var(--ink)}
.footer-logo{height:26px;width:auto;filter:brightness(0) saturate(100%) invert(20%) sepia(18%) saturate(1200%) hue-rotate(135deg) brightness(95%)}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

@media (max-width:767px){
  .hero{padding:3rem 0 2.5rem}
  section{padding:3.2rem 0}
  .band{padding:2.2rem}
  .float-note{display:none}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
  .seg{transition:none}
}
