/* ─── TOKENS ─────────────────────────────────────────────────────────── */
:root {
  --navy-deepest: #0A1530;
  --navy:         #0F2044;
  --navy-l:       #1E2F5A;
  --navy-border:  rgba(255,255,255,.09);
  --gold:         #C9A84C;
  --gold-l:       #E0C068;
  --gold-d:       #9A7A2E;
  --cream:        #F8F5EE;
  --cream-d:      #EFE9DB;
  --cream-b:      #E5DDC9;
  --ink:          #1A1A18;
  --ink-m:        #4A4A42;
  --ink-l:        #8A8A7E;
  --on-navy-1:    #F8F5EE;
  --on-navy-2:    #C7D2E8;
  --on-navy-3:    #8B9EC7;
  --white:        #FFFFFF;
  --r:            .5rem;
  --r-lg:         .9rem;
  --shadow:       0 4px 28px rgba(10,21,48,.08);
  --shadow-lg:    0 18px 60px rgba(10,21,48,.18);

  /* Dark theme (Resend-inspired) — active when body has class "theme-dark" */
  --bg-page:        #0A0A0A;
  --bg-card:        #0C0C0C;
  --bg-elevated:    #111111;
  --bg-modal-panel: #1A1A1A;
  --border:         rgba(255,255,255,0.08);
  --border-hover:   rgba(255,255,255,0.16);
  --text-primary:   rgba(255,255,255,0.95);
  --text-muted:     rgba(255,255,255,0.65);
  --text-dim:       rgba(255,255,255,0.45);
  --text-faint:     rgba(255,255,255,0.30);
  --accent:         #C9A84C;
  --accent-hover:   #E0C068;
  --accent-glow:    rgba(201,168,76,0.15);
}

/* ─── RESET ──────────────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;scroll-padding-top:5rem}
body{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  background:var(--cream);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}

/* ─── TYPOGRAPHY ─────────────────────────────────────────────────────── */
h1,h2,h3,h4{font-family:Georgia,'Times New Roman',Times,serif;line-height:1.2;color:var(--ink);font-weight:700}
h1{font-size:clamp(2.6rem,5.4vw,4.2rem);letter-spacing:-.015em;line-height:1.1}
h2{font-size:clamp(1.9rem,3.6vw,2.6rem);letter-spacing:-.01em}
h3{font-size:1.35rem}
h4{font-size:1rem}
p{color:var(--ink-m);font-size:1.02rem;line-height:1.72}

.eyebrow{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-d);font-weight:500;
  display:inline-block;margin-bottom:1rem;
}
.eyebrow-gold{color:var(--gold-l)}
.rule{width:2.5rem;height:2px;background:var(--gold);margin:1.25rem 0;border:none;display:block}
.rule-white{background:rgba(255,255,255,.35)}
.rule-center{margin:1.25rem auto}

.container{max-width:1160px;margin:0 auto;padding:0 1.75rem}

/* ─── BUTTONS ────────────────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;
  padding:.9rem 1.6rem;border-radius:var(--r);
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:600;font-size:.93rem;
  cursor:pointer;transition:all .22s ease;border:2px solid transparent;
}
.btn-primary{background:var(--gold);color:var(--navy-deepest);border-color:var(--gold)}
.btn-primary:hover{background:var(--gold-l);border-color:var(--gold-l);transform:translateY(-1px);box-shadow:0 8px 22px rgba(201,168,76,.3)}
.btn-outline{background:transparent;color:var(--on-navy-1);border-color:rgba(248,245,238,.5)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold-l)}
.btn-outline-dark{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline-dark:hover{background:var(--navy);color:var(--white)}
.btn svg{width:1.05rem;height:1.05rem;transition:transform .2s;stroke-width:2.2}
.btn:hover svg{transform:translateX(3px)}

/* ─── NAV ────────────────────────────────────────────────────────────── */
nav.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:1.1rem 0;transition:all .3s ease;
  background:rgba(10,21,48,0);
}
nav.site-nav.scrolled,
nav.site-nav.solid{
  background:rgba(10,21,48,.97);
  backdrop-filter:blur(10px);
  padding:.7rem 0;
  box-shadow:0 1px 0 rgba(255,255,255,.06);
}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.nav-logo{display:flex;align-items:center;gap:.75rem}
.nav-logo-mark{
  width:2.4rem;height:2.4rem;border-radius:.35rem;
  background:var(--gold);color:var(--navy-deepest);
  display:flex;align-items:center;justify-content:center;
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:.85rem;
  flex-shrink:0;
}
.nav-logo-text{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:1.05rem;
  color:var(--on-navy-1);line-height:1.15;
}
.nav-logo-sub{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:.62rem;letter-spacing:.14em;
  color:var(--on-navy-3);text-transform:uppercase;margin-top:.1rem;
}
.nav-links{display:flex;align-items:center;gap:1.8rem}
.nav-links a{font-size:.88rem;font-weight:500;color:var(--on-navy-2);transition:color .2s}
.nav-links a:hover,
.nav-links a.active{color:var(--gold-l)}
.nav-toggle{display:none;background:none;border:none;color:var(--on-navy-1);cursor:pointer;padding:.5rem}
.nav-toggle svg{width:1.5rem;height:1.5rem;stroke-width:2}
.nav-mobile{
  display:none;position:absolute;top:100%;left:0;right:0;
  background:var(--navy-deepest);padding:1.5rem 1.75rem 2rem;
  border-top:1px solid var(--navy-border);
}
.nav-mobile.open{display:block}
.nav-mobile a{display:block;padding:.75rem 0;color:var(--on-navy-2);font-size:1rem;font-weight:500}
.nav-mobile .btn{margin-top:1rem;width:100%;justify-content:center}

/* ─── NAV DROPDOWN (desktop hover, mobile static) ────────────────────── */
.nav-dropdown{position:relative}
.nav-dropdown-toggle{
  background:transparent;border:0;padding:0;cursor:pointer;
  font-family:inherit;font-size:.88rem;font-weight:500;
  color:var(--on-navy-2);
  display:inline-flex;align-items:center;gap:.35rem;
  transition:color .2s ease;
}
.nav-dropdown-toggle:hover,
.nav-dropdown:hover .nav-dropdown-toggle,
.nav-dropdown:focus-within .nav-dropdown-toggle,
.nav-dropdown-toggle.active{color:var(--gold-l)}
.nav-dropdown-toggle svg{
  width:.85rem;height:.85rem;stroke-width:2.2;
  transition:transform .25s ease;
}
.nav-dropdown:hover .nav-dropdown-toggle svg,
.nav-dropdown:focus-within .nav-dropdown-toggle svg{transform:rotate(180deg)}
.nav-dropdown-menu{
  position:absolute;top:calc(100% + .65rem);left:-1rem;
  min-width:240px;
  background:var(--navy-deepest);
  border:1px solid var(--navy-border);
  border-radius:.5rem;
  padding:.5rem 0;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;
  transform:translateY(-6px);
  transition:opacity .22s ease,visibility .22s ease,transform .22s ease;
  z-index:10;
}
.nav-dropdown-menu::before{
  content:'';position:absolute;top:-.65rem;left:0;right:0;height:.65rem;
}
.nav-dropdown-menu::after{
  content:'';position:absolute;top:0;left:1.2rem;right:1.2rem;height:2px;
  background:var(--gold);
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}
.nav-dropdown-menu a{
  display:block;
  padding:.65rem 1.2rem;
  font-size:.85rem;font-weight:500;
  color:var(--on-navy-1);
  transition:color .15s,background .15s;
}
.nav-dropdown-menu a:hover,
.nav-dropdown-menu a.active{
  color:var(--gold-l);
  background:rgba(255,255,255,.04);
}

/* Mobile: collapsible group inside .nav-mobile */
.nav-mobile-group{
  border-top:1px solid var(--navy-border);
  border-bottom:1px solid var(--navy-border);
  margin:.5rem 0;
  padding:.4rem 0 .6rem;
}
.nav-mobile-group-label{
  display:block;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-l);font-weight:600;
  padding:.6rem 0 .35rem;
}
.nav-mobile-group a{
  padding:.55rem 0 .55rem 1rem;
  font-size:.95rem;
  color:var(--on-navy-2);
}

/* ─── IMAGE HERO (home + k-12) ──────────────────────────────────────── */
.hero-image{
  position:relative;min-height:75vh;
  display:flex;align-items:center;
  padding:8rem 0 5rem;
  background-size:cover;background-position:center;background-repeat:no-repeat;
  overflow:hidden;
}
.hero-image::before{
  content:'';position:absolute;inset:0;z-index:1;
  background:rgba(15,32,68,.65);
}
.hero-image-k12{min-height:70vh}
.hero-image-k12::before{background:rgba(15,32,68,.72)}
.hero-image-cap,
.hero-contact,
.hero-grants,
.hero-government,
.hero-nonprofits,
.hero-smallbusiness{min-height:65vh}
.hero-image-cap::before,
.hero-contact::before,
.hero-grants::before,
.hero-government::before,
.hero-nonprofits::before,
.hero-smallbusiness::before{background:rgba(15,32,68,.65)}
.hero-image-cap .hero-image-content,
.hero-contact .hero-image-content,
.hero-grants .hero-image-content,
.hero-government .hero-image-content,
.hero-nonprofits .hero-image-content,
.hero-smallbusiness .hero-image-content{max-width:700px}
.hero-image-cap .hero-image-content h1,
.hero-contact .hero-image-content h1,
.hero-grants .hero-image-content h1,
.hero-government .hero-image-content h1,
.hero-nonprofits .hero-image-content h1,
.hero-smallbusiness .hero-image-content h1{max-width:22ch}
.hero-image .container{position:relative;z-index:2}
.hero-image-content{max-width:650px}
.hero-image-content .eyebrow{color:var(--gold-l);margin-bottom:1.5rem}
.hero-image-content h1{
  color:var(--on-navy-1);margin-bottom:1.5rem;max-width:18ch;
  text-shadow:0 2px 24px rgba(10,21,48,.35);
}
.hero-image-content .hero-sub{
  font-size:1.1rem;color:var(--on-navy-2);
  max-width:560px;margin-bottom:2rem;line-height:1.7;
}
.hero-image-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem}
.hero-secondary-link{
  color:var(--gold-l);font-size:.85rem;font-weight:500;
  letter-spacing:.02em;border-bottom:1px solid var(--gold);
  padding-bottom:.12rem;transition:color .15s,border-color .15s;
}
.hero-secondary-link:hover{color:var(--gold);border-bottom-color:var(--gold-l)}

/* ─── PAGE HEADER (inner pages) ──────────────────────────────────────── */
.page-header{
  background:var(--navy-deepest);color:var(--white);
  padding:9rem 0 5rem;position:relative;overflow:hidden;
}
.page-header::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 55% 40% at 88% 92%, rgba(201,168,76,.08) 0%, transparent 55%);
}
.page-header .container{position:relative;z-index:1}
.page-header .eyebrow{color:var(--gold-l)}
.page-header h1{color:var(--on-navy-1);max-width:22ch;margin-bottom:1.25rem}
.page-header p{color:var(--on-navy-2);font-size:1.1rem;max-width:620px}

/* ─── SECTION GENERICS ───────────────────────────────────────────────── */
section{padding:6rem 0}
.section-header{max-width:680px;margin:0 auto 3.5rem;text-align:center}
.section-header h2{margin-bottom:1rem}
.section-header p{font-size:1.05rem}

/* ─── PILLAR TEASER (home) ───────────────────────────────────────────── */
#pillars{background:var(--cream)}
.teaser-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;
}
.teaser{
  display:flex;flex-direction:column;
  background:var(--navy);color:var(--on-navy-1);
  border-radius:var(--r-lg);
  padding:2.75rem 2rem 2rem;
  position:relative;overflow:hidden;
  transition:transform .35s ease,box-shadow .35s ease;
  border:1px solid var(--navy-l);
}
.teaser::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--gold);
}
.teaser::after{
  content:'';position:absolute;top:-30%;right:-20%;
  width:14rem;height:14rem;border-radius:50%;
  background:radial-gradient(circle,rgba(201,168,76,.08) 0%,transparent 70%);
  pointer-events:none;
}
.teaser:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.teaser-num{
  font-family:Georgia,'Times New Roman',Times,serif;font-size:3.25rem;font-weight:700;
  color:var(--gold);line-height:1;margin-bottom:1.25rem;
  position:relative;z-index:1;
}
.teaser-label{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:.65rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--on-navy-3);
  margin-bottom:.5rem;display:block;position:relative;z-index:1;
}
.teaser h3{
  font-family:Georgia,'Times New Roman',Times,serif;color:var(--on-navy-1);
  font-size:1.35rem;line-height:1.25;margin-bottom:1rem;
  position:relative;z-index:1;
}
.teaser-desc{
  color:var(--on-navy-2);font-size:.93rem;line-height:1.6;
  flex:1;position:relative;z-index:1;
}
.teaser-arrow{
  display:inline-flex;align-items:center;gap:.4rem;
  margin-top:1.75rem;color:var(--gold-l);
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;font-weight:500;position:relative;z-index:1;
}
.teaser-arrow svg{width:.95rem;height:.95rem;transition:transform .2s;stroke-width:2.2}
.teaser:hover .teaser-arrow svg{transform:translateX(4px)}
.teaser-link{position:absolute;inset:0;z-index:2;text-indent:-9999px}
.pillars-cta{text-align:center;margin-top:2.5rem}

/* ─── BUILT FOR YOUR ORGANIZATION ────────────────────────────────────── */
#audiences{background:var(--cream-d)}
.audience-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;
  max-width:980px;margin:0 auto;
}
.audience{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-radius:var(--r-lg);
  padding:2rem 2.25rem 2.1rem;
  display:flex;flex-direction:column;gap:.75rem;
  position:relative;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
}
.audience::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:2px;background:var(--gold);
}
.audience:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold)}
.audience-tag{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold-d);font-weight:500;
}
.audience h3{color:var(--navy);font-size:1.3rem;line-height:1.25}
.audience p{font-size:.95rem;color:var(--ink-m);margin:0;line-height:1.65}

/* ─── HOW ENGAGEMENTS WORK ───────────────────────────────────────────── */
#engagement{
  background:var(--navy);color:var(--on-navy-1);
  position:relative;overflow:hidden;
}
#engagement::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 0%,rgba(201,168,76,.07) 0%,transparent 60%);
  pointer-events:none;
}
#engagement .container{position:relative;z-index:1}
#engagement .section-header h2{color:var(--on-navy-1)}
#engagement .section-header p{color:var(--on-navy-2)}
.engagement-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;
  position:relative;
}
.engagement-step{
  background:rgba(255,255,255,.03);
  border:1px solid var(--navy-border);
  border-radius:var(--r-lg);
  padding:2rem 1.5rem 1.75rem;
  display:flex;flex-direction:column;gap:.7rem;
  position:relative;transition:transform .3s ease,border-color .3s ease,background .3s ease;
}
.engagement-step:hover{transform:translateY(-4px);border-color:var(--gold);background:rgba(255,255,255,.05)}
.engagement-num{
  font-family:Georgia,'Times New Roman',Times,serif;font-size:1.8rem;font-weight:700;
  color:var(--gold);line-height:1;letter-spacing:-.01em;
}
.engagement-step h3{
  color:var(--on-navy-1);font-size:1.15rem;line-height:1.3;margin-top:.25rem;
}
.engagement-step p{
  color:var(--on-navy-2);font-size:.9rem;line-height:1.6;margin:0;
}

/* ─── CAPABILITIES: PILLAR CARDS (capabilities page) ─────────────────── */
#capabilities{background:var(--cream)}
.pillar-cards{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
}
.pillar-card{
  position:relative;display:flex;flex-direction:column;text-align:left;
  background:var(--navy);color:var(--on-navy-1);
  border:1px solid var(--navy-l);border-radius:var(--r-lg);
  padding:2.25rem 1.85rem 2rem;
  cursor:pointer;overflow:hidden;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.pillar-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--gold);
}
.pillar-card:hover,.pillar-card:focus-visible{
  transform:translateY(-4px);box-shadow:var(--shadow-lg);
  border-color:var(--gold);outline:none;
}
.pillar-card:focus-visible{box-shadow:0 0 0 3px rgba(201,168,76,.55),var(--shadow-lg)}
.pillar-card-num{
  font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-l);font-weight:500;margin-bottom:.9rem;display:block;
}
.pillar-card-title{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--on-navy-1);font-size:1.4rem;line-height:1.22;
  margin-bottom:.85rem;
}
.pillar-card-rule{
  width:60px;height:2px;background:var(--gold);border:none;
  margin:0 0 1.1rem;display:block;
}
.pillar-card-tagline{
  color:var(--on-navy-2);font-size:.95rem;line-height:1.6;
  flex:1;margin-bottom:1.5rem;
}
.pillar-card-cta{
  display:inline-flex;align-items:center;gap:.45rem;
  color:var(--gold-l);font-weight:600;font-size:.85rem;
  letter-spacing:.04em;
}
.pillar-card-cta svg{width:.95rem;height:.95rem;stroke-width:2.2;transition:transform .2s}
.pillar-card:hover .pillar-card-cta svg{transform:translateX(3px)}

/* ─── PILLAR MODAL ───────────────────────────────────────────────────── */
.pillar-modal{
  position:fixed;inset:0;z-index:1000;
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.pillar-modal.is-open{opacity:1;pointer-events:auto}
.pillar-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(10,21,48,.72);
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);
}
.pillar-modal-panel{
  position:relative;z-index:1;
  width:min(640px,100%);max-height:calc(100vh - 3rem);
  background:var(--cream);color:var(--ink);
  border-radius:var(--r-lg);border-top:4px solid var(--gold);
  box-shadow:var(--shadow-lg);
  padding:2.5rem 2.25rem 2.25rem;
  overflow-y:auto;outline:none;
  transform:translateY(8px) scale(.98);
  transition:transform .25s ease;
}
.pillar-modal.is-open .pillar-modal-panel{transform:translateY(0) scale(1)}
.pillar-modal-close{
  position:absolute;top:.85rem;right:.85rem;
  width:2.2rem;height:2.2rem;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;color:var(--ink-m);
  border:1px solid transparent;border-radius:var(--r);
  cursor:pointer;transition:background .2s,color .2s,border-color .2s;
}
.pillar-modal-close:hover{background:var(--cream-d);color:var(--navy)}
.pillar-modal-close:focus-visible{outline:none;border-color:var(--gold);color:var(--navy)}
.pillar-modal-close svg{width:1.1rem;height:1.1rem;stroke-width:2.2}
.pillar-modal-num{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-d);font-weight:500;display:block;margin-bottom:.6rem;
}
.pillar-modal-title{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--navy);font-size:clamp(1.5rem,3vw,1.9rem);line-height:1.2;
  margin-bottom:.5rem;
}
.pillar-modal-rule{
  width:60px;height:2px;background:var(--gold);border:none;
  margin:.75rem 0 1.1rem;display:block;
}
.pillar-modal-tagline{
  color:var(--ink-m);font-size:1rem;line-height:1.65;margin-bottom:1.5rem;
}
.pillar-modal-services{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;
}
.pillar-modal-services li{
  padding:1rem 0;border-top:1px solid rgba(201,168,76,.35);
}
.pillar-modal-services li:last-child{border-bottom:1px solid rgba(201,168,76,.35)}
.pillar-modal-services li strong{
  display:block;font-family:Georgia,'Times New Roman',Times,serif;
  color:var(--navy);font-weight:700;font-size:1.02rem;margin-bottom:.25rem;
}
.pillar-modal-services li span{
  display:block;color:var(--ink-m);font-size:.94rem;line-height:1.6;
}

/* ─── FOOTER ─────────────────────────────────────────────────────────── */
footer{background:var(--navy);color:var(--on-navy-3);padding:2.5rem 0 2rem;border-top:1px solid var(--navy-border)}
.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}
.footer-logo{display:flex;align-items:center;gap:.75rem}
.footer-logo-mark{
  width:2rem;height:2rem;border-radius:.3rem;
  background:var(--gold);color:var(--navy-deepest);
  display:flex;align-items:center;justify-content:center;
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:.7rem;
}
.footer-logo-text{font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;color:var(--on-navy-1);font-size:.95rem}
.footer-copy{font-size:.78rem;color:var(--on-navy-3);text-align:right;line-height:1.5}

/* ─── GRANTS & FUNDING PAGE ──────────────────────────────────────────── */
#grants{background:var(--cream);padding-top:2rem}
#grants .container{max-width:920px}

.grants-section{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-radius:var(--r-lg);
  margin-bottom:1.25rem;
  overflow:hidden;
}
.grants-section[open]{box-shadow:var(--shadow)}
.grants-section-toggle{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.5rem 1.85rem;
  background:var(--navy);color:var(--on-navy-1);
  transition:background .2s ease;
}
.grants-section-toggle::-webkit-details-marker{display:none}
.grants-section-toggle:hover{background:var(--navy-l)}
.grants-section-toggle:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.grants-section-title{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--on-navy-1);font-size:1.3rem;line-height:1.2;
}
.grants-section-chevron{
  width:1.25rem;height:1.25rem;stroke-width:2.2;color:var(--gold-l);
  transition:transform .25s ease;flex-shrink:0;
}
.grants-section[open] .grants-section-chevron{transform:rotate(180deg)}
.grants-section-rule{
  width:60px;height:2px;background:var(--gold);border:none;
  margin:0 1.85rem;display:block;
}
.grants-section-body{padding:1.5rem 1.85rem 2rem}
.grants-section-intro{
  color:var(--ink-m);font-size:.98rem;line-height:1.65;
  margin-bottom:1.5rem;padding-bottom:1.25rem;
  border-bottom:1px solid var(--cream-b);
}

.grant-entry{
  padding:1.25rem 0;
  border-bottom:1px solid var(--cream-b);
}
.grant-entry:last-child{border-bottom:none;padding-bottom:.25rem}
.grant-entry:first-child{padding-top:.25rem}
.grant-name{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--navy);font-size:1.15rem;line-height:1.25;
  margin-bottom:.5rem;
}
.grant-desc{
  color:var(--ink-m);font-size:.96rem;line-height:1.6;
  margin-bottom:.9rem;
}
.grant-meta{
  display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1.5rem;
  margin-bottom:.9rem;
}
.grant-meta div{font-size:.88rem;line-height:1.5}
.grant-meta dt{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-d);font-weight:600;margin-bottom:.15rem;
}
.grant-meta dd{color:var(--ink-m);margin:0}
.grant-entry-light .grant-meta{display:none}

.grant-footer{
  display:flex;align-items:center;justify-content:space-between;
  gap:.75rem;flex-wrap:wrap;margin-top:.25rem;
}
.grant-link{
  display:inline-flex;align-items:center;gap:.35rem;
  color:var(--gold-d);font-weight:600;font-size:.92rem;
  border-bottom:1px solid transparent;transition:color .15s,border-color .15s;
}
.grant-link:hover{color:var(--navy);border-bottom-color:var(--gold)}
.grant-link svg{width:.85rem;height:.85rem;stroke-width:2.2}
.grant-verified{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.74rem;letter-spacing:.06em;
  color:var(--ink-l);
}

#resources{background:var(--cream-d)}
#resources .container{max-width:920px}
.resource-list{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.5rem;
}
.resource-list li{
  padding:1.1rem 1.25rem;
  background:var(--white);border:1px solid var(--cream-b);
  border-radius:var(--r);
}
.resource-list a{
  display:inline-block;
  color:var(--navy);font-weight:700;
  font-family:Georgia,'Times New Roman',Times,serif;font-size:1.02rem;
  border-bottom:1px solid transparent;transition:color .15s,border-color .15s;
  margin-bottom:.2rem;
}
.resource-list a:hover{color:var(--gold-d);border-bottom-color:var(--gold)}
.resource-list span{
  display:block;color:var(--ink-m);font-size:.88rem;line-height:1.55;
}

/* ─── HOME CAPABILITIES (light cards) ───────────────────────────────── */
#capabilities-home{background:var(--cream)}
.cap-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  align-items:stretch;
}
.cap-card{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-left:3px solid var(--gold);
  border-radius:var(--r);
  padding:2rem 1.85rem 1.85rem;
  display:flex;flex-direction:column;gap:.75rem;
  transition:transform .25s ease,box-shadow .25s ease,border-left-color .25s ease;
}
.cap-card:hover{
  transform:translateY(-3px);box-shadow:var(--shadow);
  border-left-color:var(--gold-d);
}
.cap-card h3{color:var(--navy);font-size:1.2rem;line-height:1.3}
.cap-card p{color:var(--ink-m);font-size:.95rem;line-height:1.6;margin:0;flex:1}
.cap-card-link{
  display:inline-flex;align-items:center;gap:.4rem;
  color:var(--gold-d);font-weight:600;font-size:.88rem;
  margin-top:.5rem;transition:color .15s,gap .15s;
}
.cap-card-link:hover{color:var(--navy);gap:.6rem}
.cap-card-link svg{width:.9rem;height:.9rem;stroke-width:2.2}

/* ─── STAT CALLOUTS (k-12) ──────────────────────────────────────────── */
.stat-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  margin-bottom:2.75rem;
}
.stat-card{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-radius:var(--r-lg);
  padding:2rem 1.5rem;text-align:center;
}
.stat-num{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--gold-d);font-size:clamp(2.2rem,4.5vw,3rem);line-height:1;
  margin-bottom:.6rem;letter-spacing:-.01em;
}
.stat-label{color:var(--navy);font-size:.92rem;font-weight:500;line-height:1.45}
.stat-note{
  max-width:760px;margin:0 auto;text-align:center;
  color:var(--ink-m);font-size:1rem;line-height:1.7;
}

/* ─── K-12 ASSESSMENT (two-column) ──────────────────────────────────── */
.assessment-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:3rem;align-items:start;
  max-width:1080px;margin:0 auto;
}
.assessment-list{list-style:none;display:flex;flex-direction:column;gap:.85rem}
.assessment-list li{
  position:relative;padding-left:1.75rem;
  color:var(--ink-m);font-size:1rem;line-height:1.65;
}
.assessment-list li::before{
  content:'';position:absolute;left:0;top:.7rem;
  width:.8rem;height:2px;background:var(--gold);
}

/* ─── DOMAIN TABLE ──────────────────────────────────────────────────── */
.domain-table-wrap{
  overflow-x:auto;border-radius:var(--r);
  box-shadow:var(--shadow);border:1px solid var(--cream-b);
}
.domain-table{
  width:100%;border-collapse:collapse;
  background:var(--white);font-size:.95rem;
}
.domain-table thead th{
  background:var(--navy);color:var(--on-navy-1);
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  text-align:left;padding:.95rem 1rem;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;
}
.domain-table tbody td{
  padding:.9rem 1rem;border-top:1px solid var(--cream-b);
  color:var(--ink-m);line-height:1.4;
}
.domain-table tbody tr:nth-child(even) td{background:var(--cream)}
.domain-table .domain-num{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--gold-d);font-size:1.05rem;
  text-align:center;width:3.5rem;
}
.domain-table .domain-name{
  color:var(--navy);font-weight:600;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
}
.domain-table .col-num{text-align:center;width:6rem}

/* ─── PROCESS STEPS (light) ─────────────────────────────────────────── */
#k12-process{background:var(--cream-d)}
.process-steps{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;
}
.process-step{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-top:3px solid var(--gold);
  border-radius:var(--r-lg);
  padding:1.85rem 1.5rem 1.65rem;
  display:flex;flex-direction:column;gap:.65rem;
  transition:transform .25s ease,box-shadow .25s ease;
}
.process-step:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.process-badge{
  width:2.2rem;height:2.2rem;border-radius:50%;
  background:var(--gold);color:var(--navy-deepest);
  display:inline-flex;align-items:center;justify-content:center;
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;font-size:.95rem;
  flex-shrink:0;
}
.process-step h3{color:var(--navy);font-size:1.1rem;line-height:1.3;margin-top:.15rem}
.process-step p{color:var(--ink-m);font-size:.92rem;line-height:1.6;margin:0}

/* ─── FINAL CTA BANNER ──────────────────────────────────────────────── */
.cta-banner{
  background:var(--navy);color:var(--on-navy-1);
  padding:5.5rem 0;text-align:center;
  position:relative;overflow:hidden;
}
.cta-banner::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 55% 60% at 50% 100%,rgba(201,168,76,.1) 0%,transparent 60%);
  pointer-events:none;
}
.cta-banner .container{position:relative;z-index:1}
.cta-banner h2{color:var(--on-navy-1);margin-bottom:1rem}
.cta-banner p{color:var(--on-navy-2);font-size:1.05rem;margin:0 auto 2rem;max-width:520px}

/* ─── PILLAR APPLIED (industry-page non-link variant) ────────────────── */
.pillar-applied{cursor:default}
.pillar-applied:hover{transform:none;box-shadow:none;border-color:var(--navy-l)}

/* ─── CONTACT PLACEHOLDER ────────────────────────────────────────────── */
.contact-placeholder{
  background:var(--white);
  border:1px solid var(--cream-b);
  border-left:3px solid var(--gold);
  border-radius:var(--r-lg);
  padding:2rem 2.25rem;
  max-width:650px;margin:0 auto;
  box-shadow:var(--shadow);
}
.contact-placeholder p{
  color:var(--ink);font-size:1rem;line-height:1.7;
  margin-bottom:1rem;
}
.contact-placeholder p:last-child{margin-bottom:0}
.contact-placeholder strong{
  display:block;font-family:Georgia,'Times New Roman',Times,serif;
  color:var(--navy);font-weight:700;font-size:1.05rem;
  margin-top:.5rem;margin-bottom:.15rem;
}
.contact-placeholder a{
  color:var(--gold-d);font-weight:600;
  border-bottom:1px solid transparent;
  transition:color .15s,border-color .15s;
}
.contact-placeholder a:hover{
  color:var(--navy);border-bottom-color:var(--gold);
}

/* ─── PILLAR DETAIL SECTIONS (capabilities) ─────────────────────────── */
.pillar-detail{padding:1.5rem 0;scroll-margin-top:4.5rem}
.pillar-detail-cream{background:var(--cream)}
.pillar-detail-white{background:var(--white)}

.pillar-detail-header{
  max-width:760px;margin:0 auto 2rem;text-align:center;
}
.pillar-detail-header .eyebrow{color:var(--gold-d);margin-bottom:1rem}
.pillar-detail-header h2{color:var(--navy);margin-bottom:1rem}
.pillar-detail-header .rule{margin:1.25rem auto 1.5rem}
.pillar-detail-lead{
  color:var(--ink-m);font-size:1.05rem;line-height:1.75;
  max-width:680px;margin:0 auto;
}

.pillar-grid{
  display:grid;grid-template-columns:1.4fr 1fr;gap:3rem;
  max-width:1080px;margin:0 auto;align-items:start;
}
.pillar-col-title{
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--gold-d);font-weight:600;
  margin-bottom:1.25rem;
}

.service-list{list-style:none;display:flex;flex-direction:column;gap:1.4rem}
.service-item{
  position:relative;padding-left:1.25rem;
  border-left:2px solid var(--gold);
}
.service-item h4{
  font-family:Georgia,'Times New Roman',Times,serif;font-weight:700;
  color:var(--navy);font-size:1.08rem;line-height:1.3;
  margin-bottom:.4rem;
}
.service-item p{
  color:var(--ink-m);font-size:.96rem;line-height:1.65;margin:0;
}

.who-card{
  background:var(--cream);
  border:1px solid var(--cream-b);
  border-top:3px solid var(--gold);
  border-radius:var(--r-lg);
  padding:1.75rem 1.85rem 1.85rem;
  position:sticky;top:5.5rem;
}
.pillar-detail-cream .who-card{background:var(--white)}
.who-block{margin-bottom:1.4rem}
.who-block:last-child{margin-bottom:0}
.who-label{
  display:block;
  font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-d);font-weight:600;
  margin-bottom:.6rem;
}
.who-block ul{list-style:none;display:flex;flex-direction:column;gap:.45rem}
.who-block li{
  position:relative;padding-left:1rem;
  color:var(--ink);font-size:.92rem;line-height:1.55;
}
.who-block li::before{
  content:'';position:absolute;left:0;top:.55rem;
  width:.5rem;height:2px;background:var(--gold);
}

/* ─── CAPABILITIES CTA (closing banner reuse) ──────────────────────── */
.cta-banner-cap h2{max-width:24ch;margin-left:auto;margin-right:auto}

/* ─── SCROLL ANIMATIONS ──────────────────────────────────────────────── */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-d-1{transition-delay:.08s}
.reveal-d-2{transition-delay:.16s}
.reveal-d-3{transition-delay:.24s}

/* ─── RESPONSIVE ─────────────────────────────────────────────────────── */
@media(max-width:960px){
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .teaser-grid,.pillar-cards{grid-template-columns:1fr;gap:1.5rem}
  .grant-meta{grid-template-columns:1fr;gap:.75rem}
  .resource-list{grid-template-columns:1fr}
  .audience-grid{grid-template-columns:1fr;gap:1rem}
  .engagement-steps{grid-template-columns:repeat(2,1fr);gap:1rem}
  .footer-inner{flex-direction:column;text-align:center}
  .footer-copy{text-align:center}
  section,.page-header{padding-top:5rem;padding-bottom:5rem}
  .page-header{padding-top:8rem}
  .hero-image,.hero-image-k12{min-height:auto;padding:7rem 0 4rem}
  .cap-grid,.stat-row,.process-steps,.assessment-grid{grid-template-columns:1fr;gap:1.25rem}
  .pillar-grid{grid-template-columns:1fr;gap:2rem}
  .who-card{position:static}
  .pillar-detail{padding:1rem 0}
}
@media(max-width:560px){
  .pillar,.audience,.teaser,.engagement-step,.cap-card,.stat-card,.process-step{padding:1.6rem}
  .engagement-steps{grid-template-columns:1fr}
  h1{font-size:2.3rem}
  h2{font-size:1.75rem}
}

/* ════════════════════════════════════════════════════════════════════════
   DARK THEME — opt-in via body.theme-dark
   Phase 1: grants-and-funding.html
   Adds dark, Resend-inspired skin without disturbing un-themed pages.
   ════════════════════════════════════════════════════════════════════════ */

/* Base */
body.theme-dark{
  background:var(--bg-page);
  color:var(--text-primary);
  font-family:'Geist',system-ui,-apple-system,sans-serif;
  font-size:15px;
  line-height:1.6;
  color-scheme:dark;
}
.theme-dark p{
  color:var(--text-muted);
  font-size:15px;
  line-height:1.6;
}
.theme-dark h1,.theme-dark h2,.theme-dark h3,.theme-dark h4{
  font-family:'Geist',system-ui,-apple-system,sans-serif;
  color:var(--text-primary);
  font-weight:600;
}
.theme-dark h1{letter-spacing:-.02em;font-weight:700;line-height:1.1}
.theme-dark h2{letter-spacing:-.02em}
.theme-dark h3{letter-spacing:-.01em}
.theme-dark a{color:inherit}

/* Eyebrow → mono caps in accent */
.theme-dark .eyebrow,
.theme-dark .eyebrow-gold{
  font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:500;
  margin-bottom:12px;
}

/* Decorative gold rules removed in dark theme */
.theme-dark .rule,
.theme-dark .grants-section-rule,
.theme-dark .pillar-card-rule,
.theme-dark .pillar-modal-rule{display:none}

/* ── NAV ─────────────────────────────────────────────────────────────── */
/* Float over hero with no blur (the blur was creating a visible "bar"
   above the hero); flip to solid bg on scroll. */
body.theme-dark nav.site-nav{
  background:transparent;
  transition:background 250ms ease, border-color 250ms ease;
}
body.theme-dark nav.site-nav.scrolled,
body.theme-dark nav.site-nav.solid{
  background:var(--bg-page);
  border-bottom:.5px solid var(--border);
  box-shadow:none;
}
.theme-dark .nav-logo-mark{
  width:24px;height:24px;border-radius:6px;
  background:#fff;color:var(--bg-page);
  font-family:'Geist',system-ui,sans-serif;font-weight:700;font-size:10px;
  letter-spacing:0;
}
.theme-dark .nav-logo-text{
  font-family:'Geist',system-ui,sans-serif;
  color:var(--text-primary);
  font-weight:600;
  font-size:.95rem;
  letter-spacing:-.01em;
}
.theme-dark .nav-logo-sub{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--text-dim);
  letter-spacing:.12em;
}
.theme-dark .nav-links a,
.theme-dark .nav-dropdown-toggle{
  color:rgba(255,255,255,.75);
  font-family:'Geist',system-ui,sans-serif;
  transition:color .25s ease;
}
.theme-dark .nav-links a:hover,
.theme-dark .nav-links a.active,
.theme-dark .nav-dropdown-toggle:hover,
.theme-dark .nav-dropdown:hover .nav-dropdown-toggle,
.theme-dark .nav-dropdown:focus-within .nav-dropdown-toggle,
.theme-dark .nav-dropdown-toggle.active{color:#fff}

/* Dropdown menu */
.theme-dark .nav-dropdown-menu{
  background:var(--bg-elevated);
  border:.5px solid var(--border);
  border-radius:8px;
  box-shadow:none;
}
.theme-dark .nav-dropdown-menu::after{display:none}
.theme-dark .nav-dropdown-menu a{
  color:var(--text-muted);
  font-family:'Geist',system-ui,sans-serif;
  transition:color .15s ease,background .15s ease;
}
.theme-dark .nav-dropdown-menu a:hover,
.theme-dark .nav-dropdown-menu a.active{
  color:var(--accent);
  background:rgba(255,255,255,.03);
}

/* Mobile nav */
.theme-dark .nav-mobile{
  background:var(--bg-page);
  border-top:.5px solid var(--border);
}
.theme-dark .nav-mobile a{color:var(--text-muted)}
.theme-dark .nav-mobile-group{
  border-top-color:var(--border);
  border-bottom-color:var(--border);
}
.theme-dark .nav-mobile-group-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  letter-spacing:.12em;
}
.theme-dark .nav-toggle{color:var(--text-primary)}

/* ── HERO ────────────────────────────────────────────────────────────── */
/* Image lives on ::before (so filter doesn't bleed into text); scrim on ::after */
body.theme-dark .hero-image{background:none}
.theme-dark .hero-image::before{
  content:'';position:absolute;inset:0;z-index:0;
  background-image:var(--hero-image);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  filter:saturate(.95) brightness(.92);
}
.theme-dark .hero-image::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to right, rgba(0,0,0,.85) 0%, rgba(0,0,0,.05) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.40) 0%, rgba(0,0,0,.65) 100%);
}

/* Per-page hero focal point positioning */
.theme-dark .hero-image-cap::before{background-position:center 35%}
.theme-dark .hero-contact::before{background-position:center 25%}
.theme-dark .hero-grants::before{background-position:center 40%}
.theme-dark .hero-image-k12::before{background-position:center 30%}
.theme-dark .hero-government::before{background-position:center 40%}
.theme-dark .hero-nonprofits::before{background-position:center 40%}
.theme-dark .hero-smallbusiness::before{background-position:center 40%}
.theme-dark .hero-image .container{position:relative;z-index:2}
.theme-dark .hero-image-content h1{
  color:var(--text-primary);
  text-shadow:none;
  letter-spacing:-.02em;
  margin-bottom:1.25rem;
}
.theme-dark .hero-image-content .hero-sub{
  color:var(--text-muted);
  font-size:1.05rem;
  line-height:1.6;
  max-width:560px;
}
.theme-dark .hero-image-content .eyebrow{
  color:var(--accent);
  margin-bottom:1rem;
}
.theme-dark .hero-secondary-link{
  color:var(--accent);
  border-bottom-color:var(--accent);
}
.theme-dark .hero-secondary-link:hover{
  color:var(--accent-hover);
  border-bottom-color:var(--accent-hover);
}

/* ── BUTTONS ─────────────────────────────────────────────────────────── */
.theme-dark .btn{
  border-radius:8px;
  padding:.75rem 1.25rem;
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  font-size:.92rem;
  border:.5px solid transparent;
  transition:all .25s ease;
}
.theme-dark .btn-primary{
  background:transparent;
  color:var(--text-primary);
  border-color:var(--border);
}
.theme-dark .btn-primary:hover{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.25);
  transform:translateY(-1px);
  box-shadow:none;
}
.theme-dark .btn-outline,
.theme-dark .btn-outline-dark{
  background:transparent;
  color:var(--text-primary);
  border-color:var(--border);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.theme-dark .btn-outline:hover,
.theme-dark .btn-outline-dark:hover{
  border-color:var(--border-hover);
  color:#fff;
  background:rgba(255,255,255,.04);
}

/* ── SECTIONS (uniform near-black; cards provide elevation) ──────────── */
.theme-dark #grants,
.theme-dark #resources,
.theme-dark #pillars,
.theme-dark #audiences,
.theme-dark #engagement,
.theme-dark #capabilities,
.theme-dark #capabilities-home,
.theme-dark #k12-process,
.theme-dark #assessment,
.theme-dark #gov-pillars,
.theme-dark #np-pillars,
.theme-dark #sb-pillars,
.theme-dark .pillar-detail,
.theme-dark .pillar-detail-cream,
.theme-dark .pillar-detail-white{
  background:var(--bg-page);
  color:var(--text-primary);
}
.theme-dark .section-header h2{color:var(--text-primary)}
.theme-dark .section-header p{color:var(--text-muted)}

/* ── GRANTS ACCORDION ───────────────────────────────────────────────── */
.theme-dark .grants-section-intro{
  color:var(--text-muted);
  border-bottom-color:var(--border);
}
.theme-dark .grants-section{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:12px;
  box-shadow:none;
  transition:border-color .3s ease;
}
.theme-dark .grants-section:hover{border-color:var(--border-hover)}
.theme-dark .grants-section[open]{box-shadow:none}
.theme-dark .grants-section-toggle{
  background:var(--bg-elevated);
  color:var(--text-primary);
  padding:1.1rem 1.5rem;
  transition:background .25s ease;
}
.theme-dark .grants-section-toggle:hover{background:#161616}
.theme-dark .grants-section-toggle:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:-2px;
}
.theme-dark .grants-section-title{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  color:var(--text-primary);
  font-size:1.1rem;
  letter-spacing:-.01em;
}
.theme-dark .grants-section-chevron{color:var(--accent)}
.theme-dark .grants-section-body{padding:1.5rem 1.85rem 1.85rem}

.theme-dark .grant-entry{
  border-bottom:1px solid var(--border);
  padding:1.25rem 0;
}
.theme-dark .grant-entry:first-child{padding-top:.5rem}
.theme-dark .grant-entry:last-child{border-bottom:none}
.theme-dark .grant-name{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  color:var(--text-primary);
  font-size:1.05rem;
  letter-spacing:-.01em;
  margin-bottom:.5rem;
}
.theme-dark .grant-desc{
  color:var(--text-muted);
  font-size:.95rem;
  line-height:1.6;
}
.theme-dark .grant-meta dt{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:10px;
  letter-spacing:.12em;
  font-weight:500;
}
.theme-dark .grant-meta dd{color:var(--text-muted)}
.theme-dark .grant-link{
  color:var(--accent);
  font-weight:500;
  border-bottom:1px solid transparent;
  transition:color .15s ease,border-color .15s ease;
}
.theme-dark .grant-link:hover{
  color:var(--accent-hover);
  border-bottom-color:var(--accent);
}
.theme-dark .grant-verified{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--text-faint);
  font-size:11px;
  letter-spacing:.04em;
}

/* ── RESOURCE LIST ──────────────────────────────────────────────────── */
.theme-dark .resource-list li{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:12px;
  padding:1.25rem 1.4rem;
  transition:border-color .3s ease,transform .3s ease;
}
.theme-dark .resource-list li:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
}
.theme-dark .resource-list a{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  color:var(--text-primary);
  font-size:1rem;
  letter-spacing:-.01em;
  border-bottom:1px solid transparent;
}
.theme-dark .resource-list a:hover{
  color:var(--accent);
  border-bottom-color:var(--accent);
}
.theme-dark .resource-list span{color:var(--text-muted);font-size:.9rem}

/* ── PARTNERS ───────────────────────────────────────────────────────── */
.theme-dark .partners{
  background:var(--bg-page);
  padding:5.5rem 0;
  text-align:center;
  border-top:.5px solid var(--border);
}
.theme-dark .partners-eyebrow{margin-bottom:1rem}
.theme-dark .partners-subhead{
  color:var(--text-primary);
  margin:0 auto 2rem;
  max-width:520px;
}
.theme-dark .partners-list{
  display:flex;
  justify-content:center;
  align-items:center;
  flex-wrap:wrap;
  gap:6.5rem;
}
.theme-dark .partners-link{
  font-family:'Geist',system-ui,sans-serif;
  font-size:1.05rem;
  font-weight:500;
  color:var(--text-muted);
  text-decoration:none;
  transition:color .22s ease;
}
.theme-dark .partners-link:hover{color:var(--accent)}
@media (max-width:760px){
  .theme-dark .partners{padding:4.5rem 0}
  .theme-dark .partners-list{flex-direction:column;gap:1.25rem}
}

/* ── FOOTER ─────────────────────────────────────────────────────────── */
body.theme-dark footer{
  background:var(--bg-page);
  border-top:.5px solid var(--border);
  color:var(--text-dim);
}
.theme-dark .footer-logo-mark{
  background:#fff;
  color:var(--bg-page);
  font-family:'Geist',system-ui,sans-serif;
  font-weight:700;
}
.theme-dark .footer-logo-text{
  font-family:'Geist',system-ui,sans-serif;
  color:var(--text-primary);
  font-weight:600;
}
.theme-dark .footer-copy{color:var(--text-dim)}

/* ──────────────────────────────────────────────────────────────────────
   PHASE 2 — Homepage components
   Adds: homepage-hero radial glow, cap cards, audience cards,
   engagement steps, about image section, closing CTA banner.
   ────────────────────────────────────────────────────────────────────── */

/* Homepage hero — radial accent glow stacked on top of base scrim
   (only this hero; other heroes keep the plain scrim from Phase 1) */
/* Homepage: left-aligned content over a left→right gradient. The right
   ~55% of the hero stays clear so the image subjects (people, laptops,
   table) are visible; the left ~45% darkens enough for white text
   contrast. Image filter only mildly mutes the photograph. */
.theme-dark .hero-home{
  min-height:90vh;
}
.theme-dark .hero-home::before{
  filter:saturate(.95) brightness(.92);
}
.theme-dark .hero-home::after{
  background:
    linear-gradient(to right, rgba(0,0,0,.85) 0%, rgba(0,0,0,.40) 45%, rgba(0,0,0,.05) 100%),
    linear-gradient(to bottom, rgba(0,0,0,.40) 0%, rgba(0,0,0,.65) 100%);
}
/* Bypass the centered .container max-width so content can sit at 6%
   from the viewport edge instead of being centered within 1160px. */
.theme-dark .hero-home > .container{
  max-width:none;
  padding:0;
  margin:0;
}
.theme-dark .hero-home .hero-image-content,
.theme-dark .hero-home .hero-content{
  margin-left:6%;
  margin-right:6%;
  max-width:700px;
  text-align:left;
}
@media(max-width:760px){
  .theme-dark .hero-home > .container{
    padding:0 1.5rem;
  }
  .theme-dark .hero-home .hero-image-content,
  .theme-dark .hero-home .hero-content{
    margin-left:0;
    margin-right:0;
    max-width:none;
  }
}
.theme-dark .hero-image-actions{gap:1.25rem}

/* Homepage + K-12 CTA pair: button + plain text link side-by-side */
.theme-dark .hero-home .hero-image-actions,
.theme-dark .hero-image-k12 .hero-image-actions{
  flex-direction:row;
  align-items:center;
  gap:1.5rem;
  flex-wrap:wrap;
}
.theme-dark .hero-home .hero-secondary-link,
.theme-dark .hero-image-k12 .hero-secondary-link{
  color:var(--text-primary);
  font-weight:500;
  font-size:.95rem;
  letter-spacing:0;
  padding:.75rem 1.25rem;
  border:.5px solid transparent;
  border-radius:8px;
  text-decoration:none;
  transition:background 250ms ease, border-color 250ms ease, transform 250ms ease;
}
.theme-dark .hero-home .hero-secondary-link:hover,
.theme-dark .hero-image-k12 .hero-secondary-link:hover{
  background:rgba(255,255,255,.04);
  border-color:rgba(255,255,255,.25);
  transform:translateY(-1px);
  text-decoration:none;
}

/* Capabilities cards (homepage) */
.theme-dark .cap-card{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-left:.5px solid var(--border); /* drop the gold left bar */
  border-radius:12px;
  padding:1.85rem 1.85rem 1.65rem;
  transition:border-color .3s ease, transform .3s ease;
}
.theme-dark .cap-card:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
  box-shadow:none;
}
.theme-dark .cap-card h3{
  color:var(--text-primary);
  font-size:1.1rem;
  letter-spacing:-.01em;
}
.theme-dark .cap-card p{color:var(--text-muted);font-size:.95rem}
.theme-dark .cap-card-link{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
}
.theme-dark .cap-card-link:hover{color:var(--accent-hover)}

/* Audience cards */
.theme-dark .audience{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:12px;
  padding:1.85rem 2rem 1.85rem;
  transition:border-color .3s ease, transform .3s ease;
}
.theme-dark .audience::before{display:none} /* drop decorative gold top bar */
.theme-dark .audience:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
  box-shadow:none;
}
.theme-dark .audience-tag{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
}
.theme-dark .audience h3{
  color:var(--text-primary);
  font-size:1.15rem;
  letter-spacing:-.01em;
}
.theme-dark .audience p{color:var(--text-muted);font-size:.95rem}

/* Engagement steps — drop the section's own glow per refinement */
.theme-dark #engagement::before{display:none}
.theme-dark .engagement-step{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:12px;
  padding:1.85rem 1.5rem 1.65rem;
  transition:border-color .3s ease, transform .3s ease, background .3s ease;
}
.theme-dark .engagement-step:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
  background:var(--bg-elevated);
  box-shadow:none;
}
.theme-dark .engagement-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:1.25rem;
  font-weight:500;
  letter-spacing:0;
  line-height:1;
}
.theme-dark .engagement-step h3{
  color:var(--text-primary);
  font-size:1.05rem;
  letter-spacing:-.01em;
}
.theme-dark .engagement-step p{color:var(--text-muted);font-size:.92rem}

/* Closing CTA banner — keep radial glow per design refinement */
.theme-dark .cta-banner{
  background:var(--bg-page);
  border-top:.5px solid var(--border);
  color:var(--text-primary);
}
.theme-dark .cta-banner::before{
  background:radial-gradient(ellipse 55% 60% at 50% 100%, var(--accent-glow) 0%, transparent 60%);
}
.theme-dark .cta-banner h2{color:var(--text-primary)}
.theme-dark .cta-banner p{color:var(--text-muted)}

/* ──────────────────────────────────────────────────────────────────────
   PHASE 3 — Remaining pages
   capabilities, k-12, contact, local-government, nonprofits, small-business
   ────────────────────────────────────────────────────────────────────── */

/* ── Pillar cards (capabilities + industry pages) ────────────────────── */
.theme-dark .pillar-card{
  background:var(--bg-card);
  color:var(--text-primary);
  border:.5px solid var(--border);
  border-radius:12px;
  padding:1.85rem 1.85rem 1.65rem;
  font-family:'Geist',system-ui,sans-serif;
  transition:border-color .3s ease, transform .3s ease, background .3s ease;
}
.theme-dark .pillar-card::before{display:none} /* drop top gold bar */
.theme-dark .pillar-card:hover,
.theme-dark .pillar-card:focus-visible{
  border-color:var(--border-hover);
  transform:translateY(-1px);
  box-shadow:none;
}
.theme-dark .pillar-card:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px var(--accent);
}
.theme-dark .pillar-card-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
  margin-bottom:.85rem;
}
.theme-dark .pillar-card-title{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  color:var(--text-primary);
  font-size:1.25rem;
  letter-spacing:-.01em;
  line-height:1.25;
  margin-bottom:.85rem;
}
.theme-dark .pillar-card-tagline{
  color:var(--text-muted);
  font-size:.95rem;
  line-height:1.6;
}
.theme-dark .pillar-card-cta{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
}

/* Pillar applied (industry-page non-link variant) — no hover lift */
.theme-dark .pillar-applied{cursor:default}
.theme-dark .pillar-applied:hover{
  transform:none;
  border-color:var(--border);
  background:var(--bg-card);
}

/* ── Pillar modal (capabilities) — refinement 1 ──────────────────────── */
.theme-dark .pillar-modal-backdrop{
  background:rgba(0,0,0,.85);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.theme-dark .pillar-modal-panel{
  background:var(--bg-modal-panel);
  color:var(--text-primary);
  border:.5px solid var(--border);
  border-top:.5px solid var(--border); /* drop the 4px gold edge */
  border-radius:16px;
  box-shadow:0 24px 60px rgba(0,0,0,.5);
  padding:2.25rem 2rem 2rem;
}
.theme-dark .pillar-modal-close{
  color:var(--text-muted);
  border-color:transparent;
}
.theme-dark .pillar-modal-close:hover{
  background:rgba(255,255,255,.06);
  color:var(--text-primary);
  border-color:transparent;
}
.theme-dark .pillar-modal-close:focus-visible{
  outline:none;
  border-color:var(--accent);
  color:var(--text-primary);
}
.theme-dark .pillar-modal-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
  font-weight:500;
}
.theme-dark .pillar-modal-title{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  color:var(--text-primary);
  letter-spacing:-.02em;
}
.theme-dark .pillar-modal-tagline{color:var(--text-muted)}
.theme-dark .pillar-modal-services li{
  border-top-color:var(--border);
}
.theme-dark .pillar-modal-services li:last-child{
  border-bottom-color:var(--border);
}
.theme-dark .pillar-modal-services li strong{
  font-family:'Geist',system-ui,sans-serif;
  color:var(--text-primary);
  font-weight:600;
}
.theme-dark .pillar-modal-services li span{color:var(--text-muted)}

/* ── Pillar detail sections (capabilities) ───────────────────────────── */
.theme-dark .pillar-detail-header h2{color:var(--text-primary)}
.theme-dark .pillar-detail-header .eyebrow{color:var(--accent)}
.theme-dark .pillar-detail-lead{color:var(--text-muted)}
.theme-dark .pillar-col-title{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
}
.theme-dark .service-item{
  border-left-color:var(--border-hover);
}
.theme-dark .service-item h4{
  font-family:'Geist',system-ui,sans-serif;
  color:var(--text-primary);
  font-weight:600;
  letter-spacing:-.01em;
}
.theme-dark .service-item p{color:var(--text-muted)}
.theme-dark .who-card{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-top:.5px solid var(--border); /* drop gold top */
  border-radius:12px;
}
.theme-dark .pillar-detail-cream .who-card{
  background:var(--bg-elevated);
}
.theme-dark .who-label{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-size:11px;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-weight:500;
}
.theme-dark .who-block li{color:var(--text-muted)}
.theme-dark .who-block li::before{background:var(--accent)}

/* ── Stat callouts (k-12 + industry pages) ───────────────────────────── */
.theme-dark .stat-card{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:12px;
  transition:border-color .3s ease, transform .3s ease;
}
.theme-dark .stat-card:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
}
.theme-dark .stat-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-weight:500;
  letter-spacing:0;
}
.theme-dark .stat-label{color:var(--text-primary);font-weight:500}
.theme-dark .stat-note{color:var(--text-muted)}

/* ── Assessment list (k-12) ──────────────────────────────────────────── */
.theme-dark .assessment-list li{color:var(--text-muted)}
.theme-dark .assessment-list li::before{background:var(--accent)}

/* ── Domain table (k-12) ─────────────────────────────────────────────── */
.theme-dark .domain-table-wrap{
  border:.5px solid var(--border);
  border-radius:12px;
  box-shadow:none;
  background:var(--bg-card);
}
.theme-dark .domain-table{
  background:var(--bg-card);
  font-family:'Geist',system-ui,sans-serif;
}
.theme-dark .domain-table thead th{
  background:var(--bg-elevated);
  color:var(--text-primary);
  font-family:'Geist Mono',ui-monospace,monospace;
  letter-spacing:.12em;
}
.theme-dark .domain-table tbody td{
  border-top-color:var(--border);
  color:var(--text-muted);
}
.theme-dark .domain-table tbody tr:nth-child(even) td{
  background:rgba(255,255,255,.02);
}
.theme-dark .domain-table .domain-num{
  font-family:'Geist Mono',ui-monospace,monospace;
  color:var(--accent);
  font-weight:500;
}
.theme-dark .domain-table .domain-name{
  color:var(--text-primary);
  font-family:'Geist',system-ui,sans-serif;
  font-weight:500;
}

/* ── Process steps (k-12 + industry pages) ───────────────────────────── */
/* Card-container wraps the four steps; steps themselves sit on bg-elevated
   to differentiate from the wrapping --bg-card surface. */
.theme-dark .process-steps{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:16px;
  padding:48px;
}
.theme-dark .process-step{
  background:var(--bg-elevated);
  border:.5px solid var(--border);
  border-top:.5px solid var(--border); /* drop top gold bar */
  border-radius:12px;
  transition:border-color .3s ease, transform .3s ease;
}
.theme-dark .process-step:hover{
  border-color:var(--border-hover);
  transform:translateY(-1px);
  box-shadow:none;
}
.theme-dark .process-badge{
  background:transparent;
  color:var(--accent);
  border:.5px solid var(--accent);
  border-radius:50%;
  font-family:'Geist Mono',ui-monospace,monospace;
  font-weight:500;
  font-size:.85rem;
}
.theme-dark .process-step h3{
  color:var(--text-primary);
  font-family:'Geist',system-ui,sans-serif;
  letter-spacing:-.01em;
}
.theme-dark .process-step p{color:var(--text-muted)}

/* ── Contact placeholder ─────────────────────────────────────────────── */
.theme-dark .contact-placeholder{
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-left:.5px solid var(--border); /* drop gold left bar */
  border-radius:12px;
  box-shadow:none;
}
.theme-dark .contact-placeholder p{color:var(--text-muted)}
.theme-dark .contact-placeholder strong{
  font-family:'Geist',system-ui,sans-serif;
  color:var(--text-primary);
  font-weight:600;
}
.theme-dark .contact-placeholder a{
  color:var(--accent);
  border-bottom:1px solid transparent;
}
.theme-dark .contact-placeholder a:hover{
  color:var(--accent-hover);
  border-bottom-color:var(--accent);
}

/* ── Discovery inquiry form ──────────────────────────────────────────── */
.theme-dark .inquiry-shell{
  max-width:640px;
  margin:0 auto;
  background:var(--bg-card);
  border:.5px solid var(--border);
  border-radius:14px;
  padding:2.5rem 2.25rem;
}
.theme-dark .inquiry-form{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.theme-dark .inquiry-field{
  display:flex;
  flex-direction:column;
  border:0;
  padding:0;
  margin:0;
}
.theme-dark .inquiry-field > label,
.theme-dark .inquiry-field > legend{
  display:block;
  font-family:'Geist',system-ui,sans-serif;
  font-weight:500;
  font-size:14px;
  color:var(--text-muted);
  margin-bottom:8px;
  padding:0;
}
.theme-dark .inquiry-field .req{
  color:var(--accent);
  margin-left:2px;
}
.theme-dark .inquiry-form input[type="text"],
.theme-dark .inquiry-form input[type="email"],
.theme-dark .inquiry-form input[type="tel"],
.theme-dark .inquiry-form select,
.theme-dark .inquiry-form textarea{
  width:100%;
  background:var(--bg-elevated);
  border:.5px solid var(--border);
  border-radius:8px;
  padding:14px 16px;
  color:var(--text-primary);
  font-family:'Geist',system-ui,sans-serif;
  font-size:16px;
  line-height:1.45;
  transition:border-color .18s ease, background .18s ease;
  -webkit-appearance:none;
  appearance:none;
}
.theme-dark .inquiry-form textarea{
  resize:vertical;
  min-height:108px;
}
.theme-dark .inquiry-form input::placeholder,
.theme-dark .inquiry-form textarea::placeholder{
  color:var(--text-dim);
}
.theme-dark .inquiry-form input:hover,
.theme-dark .inquiry-form select:hover,
.theme-dark .inquiry-form textarea:hover{
  border-color:var(--border-hover);
}
.theme-dark .inquiry-form input:focus,
.theme-dark .inquiry-form select:focus,
.theme-dark .inquiry-form textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-glow);
}
.theme-dark .inquiry-form select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='rgba(255,255,255,0.55)' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M1 1.5l5 5 5-5'/></svg>");
  background-repeat:no-repeat;
  background-position:right 16px center;
  padding-right:42px;
  cursor:pointer;
}
.theme-dark .inquiry-form select option{
  background:var(--bg-modal-panel);
  color:var(--text-primary);
}

/* radio group */
.theme-dark .inquiry-radio-group{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.theme-dark .inquiry-radio{
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  color:var(--text-primary);
  font-size:15px;
  font-family:'Geist',system-ui,sans-serif;
  font-weight:400;
  margin:0;
}
.theme-dark .inquiry-radio input[type="radio"]{
  appearance:none;
  -webkit-appearance:none;
  width:18px;
  height:18px;
  border-radius:50%;
  border:.5px solid var(--border-hover);
  background:var(--bg-elevated);
  margin:0;
  cursor:pointer;
  transition:border-color .15s ease, background .15s ease;
  display:inline-grid;
  place-content:center;
}
.theme-dark .inquiry-radio input[type="radio"]::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  transform:scale(0);
  transition:transform .15s ease;
}
.theme-dark .inquiry-radio input[type="radio"]:checked{
  border-color:var(--accent);
}
.theme-dark .inquiry-radio input[type="radio"]:checked::before{
  transform:scale(1);
}
.theme-dark .inquiry-radio input[type="radio"]:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px var(--accent-glow);
}

/* submit button */
.theme-dark .inquiry-submit{
  appearance:none;
  -webkit-appearance:none;
  border:none;
  border-radius:8px;
  background:#fff;
  color:#0A0A0A;
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  font-size:15px;
  padding:14px 22px;
  cursor:pointer;
  transition:background .18s ease, transform .18s ease, opacity .18s ease;
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:8px;
}
.theme-dark .inquiry-submit:hover{
  background:rgba(255,255,255,.92);
  transform:translateY(-1px);
}
.theme-dark .inquiry-submit:disabled{
  cursor:not-allowed;
  opacity:.65;
  transform:none;
}
.theme-dark .inquiry-submit.is-loading .inquiry-submit-label::after{
  content:"";
  display:inline-block;
  width:12px;
  height:12px;
  margin-left:10px;
  border:1.5px solid rgba(10,10,10,.25);
  border-top-color:#0A0A0A;
  border-radius:50%;
  vertical-align:-2px;
  animation:inquirySpin .7s linear infinite;
}
@keyframes inquirySpin{ to{ transform:rotate(360deg) } }

/* error banner */
.theme-dark .inquiry-error{
  margin-bottom:20px;
  padding:14px 16px;
  border:.5px solid rgba(220, 70, 70, .35);
  border-radius:8px;
  background:rgba(220, 70, 70, .08);
  color:var(--text-primary);
  font-size:14px;
  line-height:1.55;
}
.theme-dark .inquiry-error a{
  color:var(--accent);
  border-bottom:1px solid transparent;
}
.theme-dark .inquiry-error a:hover{
  color:var(--accent-hover);
  border-bottom-color:var(--accent);
}

/* success state */
.theme-dark .inquiry-success{
  text-align:center;
  padding:24px 0 8px;
}
.theme-dark .inquiry-success-icon{
  width:56px;
  height:56px;
  border-radius:50%;
  background:rgba(120, 200, 130, .12);
  color:#7BD391;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
}
.theme-dark .inquiry-success-icon svg{ width:28px;height:28px }
.theme-dark .inquiry-success h3{
  font-family:'Geist',system-ui,sans-serif;
  font-weight:600;
  font-size:22px;
  color:var(--text-primary);
  margin:0 0 8px;
}
.theme-dark .inquiry-success p{
  color:var(--text-muted);
  margin:0;
  font-size:15px;
  line-height:1.6;
}

@media(max-width:600px){
  .theme-dark .inquiry-shell{ padding:1.75rem 1.25rem }
  .theme-dark .inquiry-submit{ width:100%; justify-content:center }
}

/* ── Mobile hero positioning ─────────────────────────────────────────── */
/* On narrow screens the hero crops more aggressively. Pin to the focal
   edge of each image so faces and key subjects stay in frame. */
@media(max-width:760px){
  .theme-dark .hero-image-k12::before{background-position:top center}
  .theme-dark .hero-image-cap::before{background-position:top center}
  .theme-dark .hero-contact::before{background-position:top center}
  .theme-dark .process-steps{padding:32px}
}

/* ── Card hover wiggle (cap-card + audience) ───────────────────────── */
/* Per-card lift offset is shared with the existing :hover translateY so
   the wiggle preserves the elevated position throughout the animation. */
.cap-card{ --card-lift:-3px }
.audience{ --card-lift:-4px }
.theme-dark .cap-card,
.theme-dark .audience{ --card-lift:-1px }

@keyframes cardWiggle{
  0%,100%{ transform:translateY(var(--card-lift)) rotate(0) }
  25%   { transform:translateY(var(--card-lift)) rotate(-.3deg) }
  50%   { transform:translateY(var(--card-lift)) rotate(.3deg) }
  75%   { transform:translateY(var(--card-lift)) rotate(-.15deg) }
}
.cap-card:hover,
.audience:hover{
  animation:cardWiggle .35s ease-in-out;
}
@media (prefers-reduced-motion: reduce){
  .cap-card:hover,
  .audience:hover{ animation:none }
}

/* ── Pillar detail card (capabilities page) ────────────────────────── */
/* Wraps the eyebrow/title/lead and the deliverables+sidebar grid in a
   single bordered card per pillar so each section reads as one unit. */
.pillar-detail-card{
  background:var(--bg-elevated);
  border:1px solid rgba(201,168,76,.22);
  border-radius:var(--r-lg);
  padding:3rem;
  max-width:1080px;
  margin:0 auto;
}
@media(max-width:760px){
  .pillar-detail-card{ padding:1.75rem; border-radius:.7rem }
}
/* Inner WHO sidebar drops to bg-card so it reads as recessed within
   the elevated outer card, instead of competing with it. */
.theme-dark .pillar-detail-card .who-card{ background:var(--bg-card) }
