/* NextGen Consulting — shared styles. Colors checked for WCAG 2.1 AA contrast. */
:root{
  --navy:#091B37;      /* text + primary buttons (17.2:1 on white) */
  --teal:#00A8B0;      /* logo teal: fills and decoration only */
  --teal-text:#0F766E; /* teal for text and focus rings (5.5:1 on white) */
  --teal-light:#7FE0D8;/* teal text on navy (11:1) */
  --coral:#FC725D;     /* decoration only */
  --slate:#475569;     /* secondary text (7.6:1 on white) */
  --mist:#FBF4EC;      /* warm cream section background */
  --line:#DCE3EC;
  --field:#64748B;     /* form borders (4.8:1, passes 3:1 non-text) */
  --on-navy:#C8D3E3;
  --radius:20px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#fff;color:var(--navy);font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:1.0625rem;line-height:1.6}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:Poppins,Inter,system-ui,sans-serif;line-height:1.15;text-wrap:balance}
p{text-wrap:pretty}
a{color:var(--teal-text);text-underline-offset:3px}
a:hover{color:var(--navy)}
:focus-visible{outline:3px solid var(--teal-text);outline-offset:3px;border-radius:4px}
.footer :focus-visible,.band :focus-visible{outline-color:var(--teal-light)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--navy);color:#fff;padding:12px 20px;border-radius:8px;font-weight:600}
.skip:focus{top:16px;color:#fff}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.section{padding:96px 0}
.section.mist{background:var(--mist)}
.rule{width:64px;height:4px;background:var(--coral);border-radius:2px;margin-bottom:20px}
.h2{margin:0 0 12px;font-size:clamp(2rem,3.4vw,2.75rem)}
.lede{margin:0 0 48px;color:var(--slate);font-size:1.125rem;max-width:40rem}
.muted{color:var(--slate)}
.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{border:1px solid var(--line);border-radius:var(--radius);padding:32px;background:#fff}
.card h3{margin:20px 0 10px;font-size:1.375rem}
.card p{margin:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:999px;font-weight:600;font-size:1rem;font-family:inherit;text-decoration:none;cursor:pointer;border:2px solid var(--navy);transition:background .15s,color .15s}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--teal-text);border-color:var(--teal-text);color:#fff}
.btn-ghost{background:transparent;color:var(--navy)}
.btn-ghost:hover{background:var(--navy);color:#fff}
.btn-row{display:flex;flex-wrap:wrap;gap:16px}

/* Header */
.site-header{border-bottom:1px solid var(--line);background:#fff}
.site-header .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 16px;padding-top:14px;padding-bottom:14px}
.brand img{height:48px;width:auto;display:block}
.nav{display:flex;flex-wrap:wrap;align-items:center;gap:4px 24px}
.nav a{color:var(--navy);text-decoration:none;font-weight:500;padding:12px 0}
.nav a:hover{color:var(--teal-text);text-decoration:underline}
.nav a.btn{color:#fff;padding:0 22px;text-decoration:none}
@media (max-width:640px){.nav .hide-sm{display:none}}

/* Hero */
.hero{background:var(--mist)}
.hero .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:56px;padding-top:88px;padding-bottom:96px}
.hero-copy{flex:999 1 520px;min-width:0}
.eyebrow{margin:0 0 16px;font-weight:600;color:var(--teal-text);letter-spacing:.08em;text-transform:uppercase;font-size:.875rem}
.hero h1{margin:0 0 24px;font-size:clamp(2.5rem,5vw,4.25rem);font-weight:700;letter-spacing:-.02em;line-height:1.08}
.hero .sub{margin:0 0 36px;font-size:1.25rem;color:var(--slate);max-width:36rem}
.steps-card{flex:1 1 340px;min-width:0;background:#fff;border-radius:24px;padding:32px;box-shadow:0 12px 40px rgba(9,27,55,.08)}
.steps-card h2{margin:0 0 24px;font-size:1.25rem;font-weight:600}
.stairs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.stairs li{background:var(--teal);color:var(--navy);border-radius:12px;padding:16px 20px;display:flex;gap:16px;align-items:baseline;font-weight:600}
.stairs li:nth-child(2){margin-left:40px}
.stairs li:nth-child(3){margin-left:80px;background:var(--navy);color:#fff}
.stairs .num{font-family:Poppins,sans-serif;font-weight:700}
.stairs li:nth-child(3) .num{color:var(--teal-light)}

/* Navy band */
.band{background:var(--navy);color:#fff}
.band .wrap{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start;padding-top:80px;padding-bottom:80px}
.band h2{flex:1 1 300px;margin:0;font-size:clamp(2rem,3.4vw,2.75rem);color:#fff}
.band ul{flex:2 1 480px;margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.band li{border:1px solid #2E4366;border-radius:16px;padding:20px 24px}
.band strong{color:var(--teal-light);display:block}

/* Services */
.price{margin:0;font-family:Poppins,sans-serif;font-size:2rem;font-weight:700}
.service{display:flex;flex-direction:column;gap:16px}
.service h3{margin:0}
.service .grow{flex-grow:1}
.service .btn{align-self:flex-start}
.service.featured{border:2px solid var(--navy)}
.tag{margin:0;align-self:flex-start;background:var(--navy);color:#fff;font-size:.8125rem;font-weight:600;padding:4px 12px;border-radius:999px;letter-spacing:.04em}
.service ul{margin:0;padding-left:20px;color:var(--slate);display:flex;flex-direction:column;gap:6px}

/* How it works */
.how{list-style:none;margin:0;padding:0;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.how li{background:#fff;border-radius:var(--radius);padding:28px}
.how .n{margin:0 0 12px;font-family:Poppins,sans-serif;font-weight:700;font-size:1.5rem;color:var(--teal-text)}
.how h3{margin:0 0 8px;font-size:1.25rem}
.how p{margin:0;color:var(--slate)}

/* About */
.about .wrap{display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.photo{flex:1 1 320px;max-width:420px;aspect-ratio:4/5;background:var(--mist);border:2px dashed #94A3B8;border-radius:24px;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px;color:var(--slate);font-weight:500}
.about-copy{flex:999 1 480px;min-width:0}

/* FAQ */
.faq{max-width:860px}
.faq details{background:#fff;border-radius:16px;padding:20px 24px;margin-bottom:12px}
.faq summary{font-weight:600;font-size:1.125rem;cursor:pointer;min-height:28px}
.faq details p{margin:12px 0 0;color:var(--slate)}

/* CTA panel */
.cta-panel{background:var(--navy);color:#fff;border-radius:28px;padding:56px;display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between}
.cta-panel h2{margin:0 0 12px;color:#fff;font-size:clamp(1.75rem,3vw,2.5rem)}
.cta-panel p{margin:0;color:var(--on-navy);max-width:38rem}
.cta-panel .btn{background:var(--teal);border-color:var(--teal);color:var(--navy)}
.cta-panel .btn:hover{background:#fff;border-color:#fff;color:var(--navy)}
.cta-panel a:not(.btn){color:#fff}

/* Footer */
.footer{background:var(--navy);color:#fff}
.footer .top{display:flex;flex-wrap:wrap;gap:40px;justify-content:space-between;padding-top:64px;padding-bottom:40px}
.footer .top > *{flex:1 1 260px;min-width:0}
.footer img{height:44px;width:auto;display:block;margin-bottom:16px}
.footer p{margin:0;color:var(--on-navy)}
.footer a{color:#fff}
.footer a:hover{color:var(--teal-light)}
.footer nav{display:flex;flex-direction:column;gap:4px}
.footer nav a{padding:6px 0}
.footer h2{margin:0 0 8px;font-size:1.125rem;color:#fff}
.footer .bottom{border-top:1px solid #2E4366;padding-top:20px;padding-bottom:32px;font-size:.9375rem}

/* Forms (assessment) */
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{padding:0}
.field{display:flex;flex-direction:column;gap:8px}
.field label,.label{font-weight:600}
.opt{font-weight:400;color:var(--slate)}
input[type=text],input[type=email],select,textarea{font:inherit;color:var(--navy);min-height:48px;padding:10px 14px;border:1.5px solid var(--field);border-radius:10px;background:#fff;width:100%}
textarea{resize:vertical;min-height:110px}
[aria-invalid=true]{border-color:#B42318!important}
.error-text{color:#B42318;font-weight:500;font-size:.9375rem;margin:0}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media (max-width:640px){.section{padding:64px 0}.cta-panel{padding:36px 24px}.stairs li:nth-child(2){margin-left:20px}.stairs li:nth-child(3){margin-left:40px}}

.step-label{margin:0;font-size:.8125rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal-text)}
.service .tag + h3{margin-top:0}
.service .muted{margin:-8px 0 0;font-size:.9375rem}
.price .per{font-size:1rem;font-weight:500;color:var(--slate)}
.service p.grow{flex-grow:0}
.service ul{flex-grow:1;align-content:start}

/* Headshot */
.headshot{flex:1 1 320px;max-width:420px;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:24px;box-shadow:0 16px 48px rgba(9,27,55,.12)}

/* Founding client offer (offer.js adds .offer-ended after the deadline) */
.regular-only{display:none}
.offer-ended .founding{display:none!important}
.offer-ended .regular-only{display:inline}
.price .was{font-size:1.25rem;font-weight:500;color:var(--slate);text-decoration-thickness:2px;text-decoration-color:var(--coral);margin-right:6px}
.muted s{text-decoration-color:var(--coral)}
.offer-banner{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;background:#FFF1EE;border:1.5px solid var(--coral);border-radius:16px;padding:16px 22px;margin:-24px 0 32px}
.offer-kicker{margin:0;font-weight:700;font-size:.8125rem;letter-spacing:.08em;text-transform:uppercase;color:#A3341F}
.offer-text{margin:0;flex:1 1 420px}
.founding-pill{margin:0 0 20px}
.founding-pill a{display:inline-flex;align-items:center;min-height:36px;padding:4px 14px;border-radius:999px;background:#FFF1EE;border:1.5px solid var(--coral);color:#A3341F;font-weight:600;font-size:.9375rem;text-decoration:none}
.founding-pill a:hover{background:var(--coral);color:var(--navy)}

/* Career staircase in About */
.career-steps{list-style:none;margin:8px 0 24px;padding:0;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.career-steps li{flex:1 1 110px;background:var(--teal);color:var(--navy);border-radius:10px;padding:10px 12px;font-weight:600;font-size:.9375rem;line-height:1.3}
.career-steps li:nth-child(1){min-height:64px}
.career-steps li:nth-child(2){min-height:80px}
.career-steps li:nth-child(3){min-height:96px}
.career-steps li:nth-child(4){min-height:112px;background:var(--navy);color:#fff}
.career-steps .yr{display:block;font-family:Poppins,sans-serif;font-weight:700;font-size:.8125rem;opacity:.85}

[hidden]{display:none!important}

.stat-row{list-style:none;margin:4px 0 24px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.stat-row li{border:1px solid var(--line);border-radius:14px;padding:14px 16px;font-size:.9375rem;line-height:1.4;color:var(--slate)}
.stat-row .stat{display:block;font-family:Poppins,sans-serif;font-weight:700;font-size:1.75rem;line-height:1.1;color:var(--navy);margin-bottom:4px}

/* Testimonial */
.testimonial{padding-bottom:0}
.quote-card{margin:0 auto;max-width:880px;background:var(--mist);border-radius:28px;padding:48px 56px;position:relative}
.quote-mark{margin:0 0 -8px;font-family:Poppins,sans-serif;font-weight:700;font-size:5rem;line-height:.8;color:var(--coral)}
.quote-card blockquote{margin:0}
.quote-card blockquote p{margin:0 0 16px;font-size:1.1875rem;line-height:1.6}
.quote-card blockquote p:first-child{font-family:Poppins,sans-serif;font-weight:600;font-size:1.375rem;line-height:1.45}
.quote-card figcaption{margin-top:8px;color:var(--teal-text);font-size:1rem}
.quote-card figcaption strong{color:var(--navy)}
@media (max-width:640px){.quote-card{padding:32px 24px}.quote-card blockquote p:first-child{font-size:1.1875rem}}

/* ---- Warmth pass ---- */
:root{--blush:#F7E3DD;--cream:#FBF4EC}
.hero{background:var(--cream)}
.hero h1 .hl{display:block;color:var(--teal-text)}
.hero-note{margin:16px 0 0;font-size:.9375rem;color:var(--slate)}
.hero-photo{flex:1 1 320px;max-width:420px;margin:0;position:relative}
.hero-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:200px 200px 28px 28px;box-shadow:0 20px 50px rgba(9,27,55,.15)}
.hello-card{position:absolute;left:-28px;bottom:28px;max-width:270px;background:#fff;border-radius:18px;padding:16px 18px;box-shadow:0 12px 32px rgba(9,27,55,.14);font-size:.9375rem;line-height:1.45;color:var(--slate)}
.hello-card strong{display:block;font-family:Poppins,sans-serif;font-size:1.0625rem;color:var(--navy);margin-bottom:2px}
@media (max-width:760px){.hello-card{position:relative;z-index:1;left:auto;bottom:auto;max-width:none;margin-top:-40px;margin-inline:16px}}
.familiar{background:#fff}
.bubbles{list-style:none;margin:32px 0;padding:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.bubbles li{background:var(--blush);border-radius:22px 22px 22px 6px;padding:22px 24px;font-size:1.125rem;font-weight:500;line-height:1.45;color:var(--navy)}
.bubbles li:nth-child(even){background:#E3F3F2;border-radius:22px 22px 6px 22px}
.familiar-answer{margin:0;font-family:Poppins,sans-serif;font-weight:600;font-size:clamp(1.25rem,2.4vw,1.625rem);line-height:1.35;max-width:44rem}
.familiar-answer em{font-style:normal;color:var(--teal-text);text-decoration:underline;text-decoration-color:var(--coral);text-decoration-thickness:3px;text-underline-offset:5px}
.card,.how li,.faq details{border-radius:24px}
.quote-card{background:var(--blush)}
.quote-card figcaption{color:#0B5E58}
