/* =========================================================
   NextGrowth — Design System
   Performance & Growth Marketing Brand
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
  color-scheme: light;

  /* Ink / Navy */
  --navy-950:#070A12;
  --navy-900:#0A1120;
  --navy-850:#0E1626;
  --navy-800:#131D33;
  --navy-700:#1C2A47;
  --navy-600:#2B3B5E;

  /* Brand green (growth) */
  --green-600:#0EA968;
  --green-500:#14C88A;
  --green-400:#4FE3AC;
  --green-300:#8CF0CB;
  --green-100:#E4FBF1;
  --green-050:#F1FDF8;

  /* Service accents */
  --c-consulting:#2A6BE0;
  --c-consulting-100:#E9F0FE;
  --c-education:#12B886;
  --c-education-100:#E3FAF2;
  --c-career:#FF7A45;
  --c-career-100:#FFEEE5;

  /* Status / misc chart colors (validated categorical set) */
  --chart-blue:#2a78d6;
  --chart-green:#1baf7a;
  --chart-magenta:#e87ba4;
  --chart-yellow:#eda100;
  --chart-orange:#eb6834;
  --chart-violet:#4a3aa7;
  --chart-red:#e34948;

  /* Neutrals */
  --bg:#F7F8FA;
  --bg-alt:#F1F3F6;
  --surface:#FFFFFF;
  --ink-900:#0F1420;
  --ink-800:#1B2233;
  --ink-700:#333B4D;
  --ink-600:#4B5468;
  --ink-500:#6B7280;
  --ink-400:#8A93A6;
  --ink-300:#AEB4C2;
  --line:#E6E9EF;
  --line-soft:#EEF0F4;

  /* Type */
  --font: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif;

  /* Spacing */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
  --s-8:32px; --s-10:40px; --s-12:48px; --s-16:64px; --s-20:80px; --s-24:96px; --s-28:112px;

  /* Radius */
  --r-sm:10px; --r-md:14px; --r-lg:20px; --r-xl:28px; --r-full:999px;

  /* Shadow */
  --shadow-sm:0 1px 2px rgba(10,17,32,.06), 0 1px 1px rgba(10,17,32,.04);
  --shadow-md:0 12px 28px -14px rgba(10,17,32,.20);
  --shadow-lg:0 30px 60px -24px rgba(10,17,32,.28);
  --shadow-green:0 18px 36px -16px rgba(14,169,104,.45);

  --container: 1200px;
  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font);
  background:var(--bg);
  color:var(--ink-700);
  line-height:1.6;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  word-break:keep-all;
  overflow-wrap:break-word;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input,textarea{ font:inherit; }
svg{ display:block; }
strong{ font-weight:700; }

h1,h2,h3,h4{
  font-weight:800;
  color:var(--ink-900);
  letter-spacing:-0.02em;
  line-height:1.25;
}

.hidden{ display:none !important; }
.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;
}

/* ---------- Layout ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}
.section{ padding-block:var(--s-24); position:relative; }
.section-tight{ padding-block:var(--s-16); }
@media (max-width:768px){
  .section{ padding-block:var(--s-16); }
  .section-tight{ padding-block:var(--s-10); }
  .container{ padding-inline:20px; }
}

.section-dark{ background:var(--navy-900); color:rgba(255,255,255,.86); }
.section-dark h2, .section-dark h3, .section-dark h4{ color:#fff; }
.section-alt{ background:var(--bg-alt); }
.section-surface{ background:var(--surface); }

.grid{ display:grid; gap:var(--s-6); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
.grid-5{ grid-template-columns:repeat(5,1fr); }
@media (max-width:980px){
  .grid-4{ grid-template-columns:repeat(2,1fr); }
  .grid-5{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  .grid-2, .grid-3, .grid-4, .grid-5{ grid-template-columns:1fr; }
}

.flex{ display:flex; }
.flex-center{ display:flex; align-items:center; justify-content:center; }
.flex-between{ display:flex; align-items:center; justify-content:space-between; }
.flex-wrap{ flex-wrap:wrap; }
.gap-2{ gap:var(--s-2); } .gap-3{ gap:var(--s-3); } .gap-4{ gap:var(--s-4); } .gap-6{ gap:var(--s-6); }

.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }

/* ---------- Section header ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:.06em;
  padding:7px 16px; border-radius:var(--r-full);
  border:1px solid rgba(20,200,138,.35);
  color:var(--green-600);
  background:var(--green-050);
  text-transform:uppercase;
}
.section-dark .eyebrow{
  border-color:rgba(79,227,172,.35);
  background:rgba(79,227,172,.08);
  color:var(--green-400);
}
.eyebrow.is-consulting{ border-color:rgba(42,107,224,.3); background:var(--c-consulting-100); color:var(--c-consulting); }
.eyebrow.is-education{ border-color:rgba(18,184,134,.3); background:var(--c-education-100); color:var(--c-education); }
.eyebrow.is-career{ border-color:rgba(255,122,69,.3); background:var(--c-career-100); color:#E85F27; }

.section-head{ max-width:720px; margin-bottom:var(--s-12); }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{
  margin-top:14px;
  font-size:clamp(26px,3.4vw,40px);
}
.section-head p{
  margin-top:14px;
  font-size:17px;
  color:var(--ink-500);
  line-height:1.7;
}
.section-dark .section-head p{ color:rgba(255,255,255,.62); }

.kicker{
  font-size:14px; font-weight:700; color:var(--green-600); letter-spacing:.02em;
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 26px; border-radius:var(--r-full);
  font-weight:700; font-size:15px; white-space:nowrap;
  transition:transform .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease), color .22s var(--ease), border-color .22s var(--ease);
  border:1px solid transparent;
}
.btn svg{ width:18px; height:18px; }
.btn-primary{
  background:linear-gradient(135deg,var(--green-500),var(--green-600));
  color:#06251A;
  box-shadow:var(--shadow-green);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 22px 40px -14px rgba(14,169,104,.55); }

.btn-dark{ background:var(--navy-900); color:#fff; }
.btn-dark:hover{ transform:translateY(-2px); background:var(--navy-800); }

.btn-outline{ border-color:rgba(15,20,32,.16); color:var(--ink-800); background:transparent; }
.btn-outline:hover{ border-color:var(--ink-800); transform:translateY(-2px); }

.btn-outline-light{ border-color:rgba(255,255,255,.3); color:#fff; }
.btn-outline-light:hover{ border-color:rgba(255,255,255,.7); background:rgba(255,255,255,.06); transform:translateY(-2px); }

.btn-ghost{ color:var(--ink-700); padding:10px 6px; }
.btn-ghost:hover{ color:var(--green-600); }

.btn-sm{ padding:10px 18px; font-size:14px; }
.btn-lg{ padding:17px 32px; font-size:16px; }
.btn-block{ width:100%; }

.btn.is-consulting{ background:linear-gradient(135deg,#3B7CF0,var(--c-consulting)); color:#fff; box-shadow:0 18px 36px -16px rgba(42,107,224,.45); }
.btn.is-education{ background:linear-gradient(135deg,#1FD79E,var(--c-education)); color:#04231A; box-shadow:0 18px 36px -16px rgba(18,184,134,.4); }
.btn.is-career{ background:linear-gradient(135deg,#FF9366,var(--c-career)); color:#2B1204; box-shadow:0 18px 36px -16px rgba(255,122,69,.45); }

/* ---------- Navbar ---------- */
.navbar{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding-block:18px;
  transition:background .3s var(--ease), padding .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
  border-bottom:1px solid transparent;
}
.navbar .container{ display:flex; align-items:center; justify-content:space-between; }
.navbar.is-scrolled{
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  padding-block:12px;
  border-color:var(--line);
  box-shadow:0 8px 24px -18px rgba(10,17,32,.25);
}
.navbar.is-dark-page{ } /* pages with dark hero start transparent-on-dark */

.brand{ display:flex; align-items:center; gap:10px; font-weight:800; font-size:19px; letter-spacing:-.02em; }
.brand-mark{
  width:34px; height:34px; border-radius:10px;
  background:linear-gradient(135deg,var(--green-400),var(--green-600));
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 14px -6px rgba(14,169,104,.6);
  flex:none;
}
.brand-mark svg{ width:19px; height:19px; }
.brand-name{ color:var(--ink-900); }
.navbar.on-dark:not(.is-scrolled) .brand-name{ color:#fff; }

.nav-links{ display:flex; align-items:center; gap:36px; }
.nav-links a{
  font-size:15px; font-weight:600; color:var(--ink-600);
  position:relative; padding-block:4px;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px;
  background:var(--green-500); transform:scaleX(0); transform-origin:left;
  transition:transform .25s var(--ease);
}
.nav-links a:hover::after, .nav-links a.active::after{ transform:scaleX(1); }
.nav-links a.active{ color:var(--ink-900); }
.navbar.on-dark:not(.is-scrolled) .nav-links a{ color:rgba(255,255,255,.75); }
.navbar.on-dark:not(.is-scrolled) .nav-links a.active{ color:#fff; }

.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-toggle{
  display:none; width:40px; height:40px; border-radius:10px;
  align-items:center; justify-content:center; flex:none;
  background:rgba(15,20,32,.06);
}
.nav-toggle svg{ width:20px; height:20px; }
.navbar.on-dark:not(.is-scrolled) .nav-toggle{ background:rgba(255,255,255,.12); color:#fff; }

.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--navy-900);
  display:flex; flex-direction:column; padding:100px 28px 40px;
  transform:translateY(-12px); opacity:0; pointer-events:none;
  transition:opacity .25s var(--ease), transform .25s var(--ease);
}
.mobile-menu.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-menu a{
  font-size:24px; font-weight:800; color:#fff; padding-block:14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu .btn{ margin-top:28px; }

@media (max-width:900px){
  .nav-links{ display:none; }
  .nav-cta .btn{ display:none; }
  .nav-toggle{ display:flex; }
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:
    radial-gradient(1200px 560px at 82% -10%, rgba(20,200,138,.20), transparent 60%),
    radial-gradient(900px 500px at 5% 0%, rgba(42,107,224,.16), transparent 55%),
    linear-gradient(180deg,var(--navy-950),var(--navy-900) 55%, var(--navy-850));
  color:#fff;
  padding-top:168px;
  padding-bottom:var(--s-24);
  overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(ellipse 70% 60% at 60% 20%, black, transparent 75%);
}
.hero-inner{ position:relative; z-index:1; }
.hero .eyebrow{ background:rgba(20,200,138,.12); border-color:rgba(79,227,172,.35); color:var(--green-400); }

.hero-copy{ max-width:800px; margin-inline:auto; text-align:center; }
.hero-copy h1{
  color:#fff; margin-top:18px;
  font-size:clamp(34px,4.6vw,58px);
  line-height:1.18;
}
.hero-copy h1 .accent{
  background:linear-gradient(100deg,var(--green-400),var(--green-500) 60%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.hero-copy p.lead{
  margin-top:22px; font-size:18px; line-height:1.75;
  color:rgba(255,255,255,.66); max-width:640px; margin-inline:auto;
}
.hero-actions{ display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; justify-content:center; }

.hero-stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  margin-top:var(--s-20);
  max-width:920px; margin-inline:auto;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--r-lg);
  overflow:hidden;
}
.hero-stat{ background:rgba(10,17,32,.55); padding:22px 18px; text-align:left; }
.hero-stat .num{
  font-size:clamp(22px,2.4vw,30px); font-weight:800; color:#fff; letter-spacing:-.02em;
  display:flex; align-items:baseline; gap:2px;
}
.hero-stat .num .unit{ font-size:16px; font-weight:700; color:var(--green-400); }
.hero-stat .label{ margin-top:6px; font-size:13px; color:rgba(255,255,255,.55); }

@media (max-width:980px){
  .hero-stats{ grid-template-columns:repeat(2,1fr); max-width:520px; }
}
@media (max-width:768px){
  .hero{ padding-top:130px; }
}

/* Sub hero (service pages) */
.subhero{ padding-top:150px; padding-bottom:76px; color:#fff; position:relative; overflow:hidden; }
.subhero::before{
  content:""; position:absolute; inset:0; opacity:.45; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 65% 60% at 75% 10%, black, transparent 75%);
}
.subhero.is-consulting{ background:radial-gradient(1000px 480px at 85% -10%, rgba(42,107,224,.34), transparent 60%), linear-gradient(180deg,var(--navy-950),var(--navy-850)); }
.subhero.is-education{ background:radial-gradient(1000px 480px at 85% -10%, rgba(18,184,134,.32), transparent 60%), linear-gradient(180deg,var(--navy-950),var(--navy-850)); }
.subhero.is-career{ background:radial-gradient(1000px 480px at 85% -10%, rgba(255,122,69,.30), transparent 60%), linear-gradient(180deg,var(--navy-950),var(--navy-850)); }

.subhero .crumb{
  display:flex; align-items:center; gap:10px; font-size:13px; color:rgba(255,255,255,.5); font-weight:600; margin-bottom:18px;
}
.subhero .crumb a:hover{ color:#fff; }
.subhero h1{ margin-top:18px; color:#fff; font-size:clamp(30px,4vw,46px); max-width:820px; }
.subhero p.lead{ margin-top:18px; font-size:18px; color:rgba(255,255,255,.68); max-width:640px; line-height:1.7; }
.subhero-actions{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }

.subhero-stats{ display:flex; gap:14px; flex-wrap:wrap; margin-top:var(--s-16); }
.subhero-stat{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md); padding:16px 20px; min-width:150px; flex:1;
}
.subhero-stat .num{ font-size:22px; font-weight:800; color:#fff; }
.subhero-stat .label{ font-size:12.5px; color:rgba(255,255,255,.55); margin-top:4px; }

/* ---------- Cards ---------- */
.card{
  background:var(--surface); border:1px solid var(--line);
  border-radius:var(--r-lg); padding:28px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.card-hover:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:transparent; }

.icon-tile{
  width:52px; height:52px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  background:var(--green-100); color:var(--green-600); flex:none;
}
.icon-tile svg{ width:26px; height:26px; }
.icon-tile.is-consulting{ background:var(--c-consulting-100); color:var(--c-consulting); }
.icon-tile.is-education{ background:var(--c-education-100); color:var(--c-education); }
.icon-tile.is-career{ background:var(--c-career-100); color:#E85F27; }
.icon-tile.is-navy{ background:rgba(255,255,255,.08); color:var(--green-400); }

.value-card h3{ margin-top:18px; font-size:19px; }
.value-card p{ margin-top:10px; color:var(--ink-500); font-size:15px; line-height:1.7; }

/* ---------- Stat tiles ---------- */
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.stat-row.cols-3{ grid-template-columns:repeat(3,1fr); }
@media (max-width:768px){ .stat-row{ grid-template-columns:repeat(2,1fr); } .stat-row.cols-3{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .stat-row.cols-3{ grid-template-columns:1fr; } }
.stat-tile{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:24px 22px; text-align:left;
}
.stat-tile .num{ font-size:30px; font-weight:800; color:var(--ink-900); letter-spacing:-.02em; }
.stat-tile .num span{ color:var(--green-600); }
.stat-tile .label{ margin-top:6px; font-size:13.5px; color:var(--ink-500); }

/* ---------- Service overview cards (index) ---------- */
.service-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:36px; display:flex; flex-direction:column; height:100%;
  position:relative; overflow:hidden;
}
.service-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--green-500),var(--green-300));
}
.service-card.is-consulting::before{ background:linear-gradient(90deg,var(--c-consulting),#7EA6F5); }
.service-card.is-education::before{ background:linear-gradient(90deg,var(--c-education),#6FE3C0); }
.service-card.is-career::before{ background:linear-gradient(90deg,var(--c-career),#FFB088); }

.service-card .no{ font-size:13px; font-weight:800; color:var(--ink-300); letter-spacing:.08em; }
.service-card h3{ margin-top:14px; font-size:23px; }
.service-card .sub{ font-size:13.5px; font-weight:700; color:var(--ink-400); margin-top:4px; text-transform:uppercase; letter-spacing:.03em; }
.service-card p.desc{ margin-top:16px; color:var(--ink-500); font-size:15px; line-height:1.75; flex:1; }
.service-card .bullets{ margin-top:18px; display:flex; flex-direction:column; gap:9px; }
.service-card .bullets li{ display:flex; gap:9px; align-items:flex-start; font-size:14px; color:var(--ink-600); }
.service-card .bullets svg{ width:17px; height:17px; flex:none; margin-top:2px; color:var(--green-500); }
.service-card.is-consulting .bullets svg{ color:var(--c-consulting); }
.service-card.is-education .bullets svg{ color:var(--c-education); }
.service-card.is-career .bullets svg{ color:var(--c-career); }
.service-card .tags{ display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.service-card .cta-btn{
  margin-top:26px; width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 22px; border-radius:var(--r-full);
  font-weight:800; font-size:15px;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.service-card .cta-btn svg{ width:17px; height:17px; transition:transform .25s var(--ease); }
.service-card .cta-btn:hover{ transform:translateY(-3px); }
.service-card .cta-btn:hover svg{ transform:translateX(4px); }
.service-card.is-consulting .cta-btn{ background:linear-gradient(135deg,#3B7CF0,var(--c-consulting)); color:#fff; box-shadow:0 16px 30px -14px rgba(42,107,224,.5); }
.service-card.is-education .cta-btn{ background:linear-gradient(135deg,#1FD79E,var(--c-education)); color:#04231A; box-shadow:0 16px 30px -14px rgba(18,184,134,.45); }
.service-card.is-career .cta-btn{ background:linear-gradient(135deg,#FF9366,var(--c-career)); color:#2B1204; box-shadow:0 16px 30px -14px rgba(255,122,69,.5); }
.service-card .tag{
  font-size:12px; font-weight:700; padding:6px 12px; border-radius:var(--r-full);
  background:var(--bg-alt); color:var(--ink-600);
}

/* ---------- Founder section ---------- */
.founder-grid{ display:grid; grid-template-columns:260px 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .founder-grid{ grid-template-columns:1fr; } }
.founder-photo{ position:sticky; top:120px; }
.founder-photo-frame{
  max-width:260px; margin-inline:auto;
  border-radius:22px; overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-lg);
}
@media (max-width:900px){ .founder-photo-frame{ max-width:220px; } }
.founder-name-block{ margin-top:18px; max-width:260px; margin-inline:auto; text-align:center; }
@media (max-width:900px){ .founder-name-block{ text-align:left; margin-inline:0; max-width:none; } }
.founder-name-block .founder-badges{ justify-content:center; }
@media (max-width:900px){ .founder-name-block .founder-badges{ justify-content:flex-start; } }
.founder-name-block h3{ font-size:22px; }
.founder-name-block .role{ margin-top:4px; color:var(--ink-500); font-size:14.5px; }

.founder-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.pill{
  font-size:12.5px; font-weight:700; padding:7px 13px; border-radius:var(--r-full);
  background:var(--green-100); color:var(--green-600);
}
.founder-cred{ margin-top:24px; display:flex; flex-direction:column; gap:14px; }
.founder-cred li{ display:flex; gap:12px; font-size:14.5px; color:var(--ink-600); line-height:1.6; }
.founder-cred svg{ width:18px; height:18px; flex:none; margin-top:2px; color:var(--green-500); }

.founder-lead{ margin-top:16px; font-size:20px; font-weight:700; color:var(--ink-900); line-height:1.6; }
.founder-lead .accent{ color:var(--green-600); }
.founder-body p{ margin-top:16px; font-size:15.5px; color:var(--ink-600); line-height:1.85; }

/* Timeline */
.timeline{ margin-top:36px; display:flex; flex-direction:column; }
.timeline-item{
  display:grid; grid-template-columns:120px 24px 1fr; gap:0 20px;
  padding-bottom:26px; position:relative;
}
.timeline.compact .timeline-item{ padding-bottom:18px; }
.timeline.compact{ margin-top:18px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-date{ font-size:13.5px; font-weight:700; color:var(--ink-400); padding-top:2px; }
.timeline-dot-col{ display:flex; flex-direction:column; align-items:center; }
.timeline-dot{ width:12px; height:12px; border-radius:99px; background:var(--green-500); box-shadow:0 0 0 4px var(--green-100); flex:none; margin-top:4px; }
.timeline-line{ width:2px; flex:1; background:var(--line); margin-top:6px; }
.timeline-item:last-child .timeline-line{ display:none; }
.timeline-content{ padding-bottom:4px; }
.timeline-content .co{ font-weight:800; font-size:15.5px; color:var(--ink-900); }
.timeline-content .role{ font-size:13.5px; color:var(--ink-500); margin-top:2px; }
@media (max-width:560px){
  .timeline-item{ grid-template-columns:20px 1fr; }
  .timeline-date{ display:none; }
}

/* Competency bars */
.competency{ display:flex; flex-direction:column; gap:16px; margin-top:8px; }
.competency-row .top{ display:flex; justify-content:space-between; font-size:14px; font-weight:700; color:var(--ink-700); margin-bottom:8px; }
.competency-row .top span.val{ color:var(--green-600); font-weight:800; }
.bar-track{ height:9px; border-radius:99px; background:var(--bg-alt); overflow:hidden; }
.bar-fill{
  height:100%; border-radius:99px;
  background:linear-gradient(90deg,var(--green-400),var(--green-600));
  width:0%;
  transition:width 1.1s var(--ease);
}
.bar-fill.is-consulting{ background:linear-gradient(90deg,#7EA6F5,var(--c-consulting)); }
.bar-fill.is-education{ background:linear-gradient(90deg,#6FE3C0,var(--c-education)); }
.bar-fill.is-career{ background:linear-gradient(90deg,#FFB088,var(--c-career)); }

/* ---------- Table ---------- */
.table-wrap{ overflow-x:auto; border-radius:var(--r-lg); border:1px solid var(--line); background:var(--surface); }
table.data-table{ width:100%; border-collapse:collapse; min-width:560px; }
table.data-table th, table.data-table td{ padding:16px 20px; text-align:left; font-size:14.5px; }
table.data-table thead th{
  background:var(--navy-900); color:#fff; font-weight:700; font-size:13.5px;
}
table.data-table thead th:first-child{ border-top-left-radius:var(--r-lg); }
table.data-table thead th:last-child{ border-top-right-radius:var(--r-lg); }
table.data-table tbody tr{ border-top:1px solid var(--line-soft); }
table.data-table tbody tr:nth-child(even){ background:var(--bg-alt); }
table.data-table td{ color:var(--ink-600); }
table.data-table td strong{ color:var(--ink-900); }
table.data-table .highlight-col{ background:var(--green-050); color:var(--ink-900); font-weight:600; }
table.data-table thead th.highlight-col{ background:var(--green-600); }

/* Problem map rows */
.map-rows{ display:flex; flex-direction:column; gap:12px; }
.map-row{
  display:grid; grid-template-columns:1fr 44px 1fr; align-items:center; gap:14px;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:18px 20px;
}
.map-row .from{ font-size:14.5px; color:var(--ink-600); font-weight:600; }
.map-row .arrow{ width:44px; height:44px; border-radius:99px; background:var(--bg-alt); display:flex; align-items:center; justify-content:center; color:var(--green-500); }
.map-row .arrow svg{ width:18px; height:18px; }
.map-row .to{ font-size:14.5px; color:var(--ink-900); font-weight:700; background:var(--green-050); padding:10px 14px; border-radius:10px; }
@media (max-width:680px){
  .map-row{ grid-template-columns:1fr; text-align:left; }
  .map-row .arrow{ transform:rotate(90deg); }
}

/* ---------- Process steps ---------- */
.process-steps{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; counter-reset:step; }
.process-steps.cols-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .process-steps{ grid-template-columns:repeat(2,1fr); } .process-steps.cols-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .process-steps{ grid-template-columns:1fr; } .process-steps.cols-4{ grid-template-columns:1fr; } }
.process-step{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:24px 20px; position:relative;
}
.process-step .step-no{
  width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  background:var(--navy-900); color:var(--green-400); font-weight:800; font-size:14px;
}
.process-step .step-no.is-consulting{ color:#7EA6F5; }
.process-step h4{ margin-top:16px; font-size:16px; }
.process-step p{ margin-top:8px; font-size:13.5px; color:var(--ink-500); line-height:1.65; }

/* ---------- Framework diagram ---------- */
.framework{ display:flex; flex-direction:column; gap:10px; }
.framework-goal{
  background:var(--navy-900); color:#fff; border-radius:var(--r-lg);
  padding:20px 26px; display:flex; align-items:center; justify-content:space-between; font-weight:700;
}
.framework-arrow{ text-align:center; font-size:12px; color:var(--ink-400); font-weight:700; }
.framework-layer{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
@media (max-width:768px){ .framework-layer{ grid-template-columns:repeat(2,1fr); } }
.framework-box{
  border:2px solid var(--green-300); background:var(--green-050); border-radius:var(--r-md);
  padding:18px; text-align:center;
}
.framework-box strong{ display:block; font-size:15px; color:var(--ink-900); }
.framework-box span{ display:block; margin-top:6px; font-size:12.5px; color:var(--ink-500); }
.framework-output{
  background:linear-gradient(135deg,var(--green-500),var(--green-600)); color:#06251A; border-radius:var(--r-lg);
  padding:18px 26px; font-weight:700; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
}

/* ---------- Insight / Reframe statement ---------- */
.insight-statement{
  padding-block:88px; text-align:center; color:#fff; position:relative; overflow:hidden;
  background:radial-gradient(900px 420px at 50% -20%, rgba(20,200,138,.16), transparent 60%),
             linear-gradient(180deg,var(--navy-950),var(--navy-850));
}
.insight-statement .container{ position:relative; z-index:1; }
.insight-statement .eyebrow{ background:rgba(20,200,138,.12); border-color:rgba(79,227,172,.35); color:var(--green-400); }
.insight-statement p.big{
  margin-top:26px; font-size:clamp(24px,3.6vw,42px); font-weight:800; line-height:1.5;
  max-width:920px; margin-inline:auto; color:rgba(255,255,255,.9);
}
.insight-statement p.big .accent{
  background:linear-gradient(100deg,var(--green-400),var(--green-500) 60%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.insight-contrast{ display:flex; align-items:center; justify-content:center; gap:14px; margin-top:32px; flex-wrap:wrap; }
.insight-contrast .old{ text-decoration:line-through; color:rgba(255,255,255,.32); font-size:15.5px; font-weight:600; }
.insight-contrast .arrow{ color:var(--green-400); width:18px; height:18px; }
.insight-contrast .new{ color:var(--green-400); font-weight:800; font-size:15.5px; }

/* ---------- Case study diagnosis card ---------- */
.diagnosis-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:860px){ .diagnosis-grid{ grid-template-columns:1fr; } }
.diagnosis-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px;
  display:flex; flex-direction:column;
}
.diagnosis-card .head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.diagnosis-card .group{ font-weight:800; font-size:15px; color:var(--ink-900); }
.diagnosis-card .count{ font-size:12px; font-weight:800; color:var(--c-consulting); background:var(--c-consulting-100); padding:5px 11px; border-radius:99px; white-space:nowrap; }
.diagnosis-card .insight-text{ margin-top:14px; font-size:13.5px; color:var(--ink-500); line-height:1.7; flex:1; }
.diagnosis-card .action-tag{ margin-top:16px; display:inline-flex; align-items:flex-start; gap:7px; font-size:13px; font-weight:700; color:var(--green-600); background:var(--green-050); padding:9px 13px; border-radius:10px; line-height:1.5; }
.diagnosis-card .action-tag svg{ width:15px; height:15px; flex:none; margin-top:2px; }

.process-cycle{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.process-cycle .step{ background:var(--bg-alt); border-radius:var(--r-md); padding:12px 16px; font-size:13.5px; font-weight:700; color:var(--ink-700); }
.process-cycle svg{ width:16px; height:16px; color:var(--ink-300); flex:none; }

.case-proof{ display:flex; gap:14px; align-items:center; margin-top:18px; padding-top:16px; border-top:1px dashed var(--line); }
.case-proof img{ width:100px; height:76px; object-fit:cover; border-radius:10px; flex:none; }
.case-proof p{ font-size:12.5px; color:var(--ink-500); line-height:1.65; font-style:italic; }
.case-proof p strong{ font-style:normal; color:var(--ink-700); }

/* ---------- Trend chart (line) ---------- */
.trend-chart-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:26px; }
.trend-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-bottom:10px; }
.trend-legend-item{ display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:700; color:var(--ink-600); }
.trend-legend-item .ln{ width:16px; height:3px; border-radius:2px; flex:none; }
.trend-insight{ margin-top:14px; display:flex; gap:10px; align-items:flex-start; background:var(--bg-alt); border-radius:var(--r-md); padding:12px 14px; }
.trend-insight svg{ width:17px; height:17px; color:var(--green-500); flex:none; margin-top:2px; }
.trend-insight p{ font-size:12.5px; color:var(--ink-600); line-height:1.6; }
.trend-stats{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.trend-stat{ flex:1; min-width:110px; background:var(--green-050); border-radius:var(--r-md); padding:10px 14px; }
.trend-stat .v{ font-size:19px; font-weight:800; color:var(--green-600); }
.trend-stat .l{ font-size:11.5px; color:var(--ink-500); margin-top:2px; }

/* ---------- Mini bar comparison with winner star ---------- */
.starbar-panel h6{ font-size:12.5px; font-weight:700; color:var(--ink-600); text-align:center; margin-bottom:6px; }
.bar-chart .bar-col{ position:relative; }
.star-badge{ position:absolute; top:-38px; left:50%; transform:translateX(-50%); font-size:14px; color:#EDA100; }

/* ---------- Cycle diagram (Case study 2) ---------- */
.cycle-diagram{ display:flex; align-items:center; justify-content:center; gap:6px; flex-wrap:wrap; }
.cycle-node{ display:flex; flex-direction:column; align-items:center; gap:10px; width:128px; }
.cycle-node .circle{ width:74px; height:74px; border-radius:99px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); }
.cycle-node.is-minus .circle{ background:linear-gradient(135deg,#f0645f,var(--chart-red)); color:#fff; }
.cycle-node.is-plus .circle{ background:linear-gradient(135deg,var(--green-400),var(--green-600)); color:#fff; }
.cycle-node .circle svg{ width:30px; height:30px; }
.cycle-node .label{ font-weight:800; font-size:14px; color:var(--ink-800); text-align:center; line-height:1.4; }
.cycle-arrow{ color:var(--ink-300); width:32px; height:20px; flex:none; }
.cycle-center{ background:var(--surface); border:2px solid var(--green-300); border-radius:var(--r-lg); padding:18px 26px; text-align:center; min-width:210px; }
.cycle-center .label{ font-size:12.5px; color:var(--ink-500); font-weight:700; }
.cycle-center .value{ font-size:24px; font-weight:800; color:var(--ink-900); margin-top:6px; letter-spacing:-.02em; }
.cycle-center .sub{ font-size:12px; color:var(--green-600); font-weight:700; margin-top:4px; }
@media (max-width:680px){
  .cycle-diagram{ flex-direction:column; }
  .cycle-arrow{ transform:rotate(90deg); }
}

/* ---------- Breakdown list (case study 2 detail) ---------- */
.breakdown-list{ display:flex; flex-direction:column; gap:1px; background:var(--line); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); margin-top:20px; }
.breakdown-row{ display:flex; align-items:center; gap:14px; background:var(--surface); padding:15px 18px; flex-wrap:wrap; }
.breakdown-row .tag-dot{ width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:none; }
.breakdown-row .tag-dot svg{ width:17px; height:17px; }
.breakdown-row .info{ flex:1; min-width:150px; }
.breakdown-row .name{ font-weight:700; font-size:14px; color:var(--ink-900); }
.breakdown-row .desc{ font-size:12px; color:var(--ink-400); margin-top:2px; }
.breakdown-row .figures{ text-align:right; margin-left:auto; }
.breakdown-row .amount{ font-weight:800; font-size:14.5px; color:var(--ink-900); white-space:nowrap; }
.breakdown-row .count{ font-size:11.5px; color:var(--ink-400); margin-top:2px; }
.breakdown-row.is-off .tag-dot{ background:#FDE7E6; color:var(--chart-red); }
.breakdown-row.is-mid .tag-dot{ background:#FFF3D6; color:var(--chart-yellow); }
.breakdown-row.is-good .tag-dot{ background:var(--green-100); color:var(--green-600); }
.breakdown-row.is-total{ background:var(--navy-900); }
.breakdown-row.is-total .name, .breakdown-row.is-total .amount{ color:#fff; }
.breakdown-row.is-total .desc{ color:rgba(255,255,255,.5); }

/* ---------- Deliverable mini card (case study 3) ---------- */
.deliverable-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:18px; }
.deliverable-card h5{ font-size:14px; color:var(--ink-900); }
.deliverable-card p{ margin-top:6px; font-size:12.5px; color:var(--ink-500); line-height:1.6; }

.subresult-label{ font-size:13px; font-weight:800; color:var(--ink-400); letter-spacing:.04em; text-transform:uppercase; margin-bottom:14px; }

/* ---------- Solution 3-step (dark) ---------- */
.solution-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
@media (max-width:860px){ .solution-steps{ grid-template-columns:1fr; } }
.solution-step{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); border-radius:var(--r-lg); padding:26px; text-align:left; }
.solution-step .no{ font-size:26px; font-weight:800; color:#7EA6F5; }
.solution-step .tag{ display:block; font-size:12px; color:rgba(255,255,255,.4); letter-spacing:.05em; margin-top:4px; }
.solution-step h4{ color:#fff; margin-top:10px; font-size:17px; }
.solution-step .icon-circle{ width:64px; height:64px; border-radius:99px; background:rgba(126,166,245,.08); border:1px solid rgba(126,166,245,.25); display:flex; align-items:center; justify-content:center; margin-top:22px; }
.solution-step .icon-circle svg{ width:28px; height:28px; color:#7EA6F5; }

/* ---------- Small icon tile / flow row ---------- */
.icon-tile.is-sm{ width:42px; height:42px; border-radius:11px; }
.icon-tile.is-sm svg{ width:20px; height:20px; }
.flow-row{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:center; }
.flow-row.is-compact{ flex-wrap:nowrap; gap:4px; justify-content:flex-start; }
.flow-row.is-compact .chip{ padding:6px 9px; white-space:nowrap; }
.flow-row.is-compact .flow-arrow-sm{ width:12px; height:12px; flex:none; }
.flow-node{ flex:1; min-width:130px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:16px; text-align:center; }
.flow-node .name{ font-weight:700; font-size:13.5px; color:var(--ink-900); margin-top:10px; }
.flow-node .sub{ font-size:11.5px; color:var(--ink-400); margin-top:2px; }
.flow-arrow-sm{ width:18px; height:18px; color:var(--ink-300); flex:none; }
@media (max-width:640px){ .flow-arrow-sm{ transform:rotate(90deg); } }

/* ---------- Dim/highlight contrast card ---------- */
.dim-wrap{ opacity:.5; filter:grayscale(50%); }
.badge-pill-dim{ background:var(--bg-alt); color:var(--ink-400); }

/* ---------- Mini icon-flow (case study addenda) ---------- */
.icon-flow-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:860px){ .icon-flow-grid{ grid-template-columns:repeat(2,1fr); } }
.icon-flow-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:18px; text-align:left; }
.icon-flow-card h6{ font-size:13.5px; color:var(--ink-900); margin-top:12px; }
.icon-flow-card p{ font-size:12px; color:var(--ink-500); margin-top:5px; line-height:1.55; }

/* ---------- Quote box, light variant (reuses dark .quote-box language) ---------- */
.quote-box.is-light{ background:var(--c-consulting-100); border:1px solid rgba(42,107,224,.18); }
.quote-box.is-light .quote-mark{ color:var(--c-consulting); }
.quote-box.is-light p{ color:var(--ink-800); }

/* Check-list, consulting-blue variant (used where a checklist sits directly beside blue elements) */
.check-list.is-consulting svg{ color:var(--c-consulting); }

/* Comparison table, consulting-blue highlight column (page-scoped variant of the default green highlight) */
table.data-table.is-consulting .highlight-col{ background:var(--c-consulting-100); color:var(--ink-900); }
table.data-table.is-consulting thead th.highlight-col{ background:var(--c-consulting); color:#fff; }

/* ---------- Result section header (eyebrow/h2 + capability strip) ---------- */
.result-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:32px; flex-wrap:wrap; margin-bottom:var(--s-12); }
.result-head .section-head{ margin-bottom:0; max-width:520px; }
.result-caps{ display:flex; gap:26px; flex-wrap:wrap; padding-top:10px; }
.result-cap{ display:flex; gap:12px; align-items:flex-start; max-width:190px; }
.result-cap .icon{
  width:40px; height:40px; border-radius:12px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-consulting-100); color:var(--c-consulting);
}
.result-cap .icon svg{ width:19px; height:19px; }
.result-cap h5{ font-size:13px; font-weight:800; color:var(--ink-900); line-height:1.4; }
.result-cap p{ margin-top:4px; font-size:11.5px; color:var(--ink-500); line-height:1.55; }
@media (max-width:980px){ .result-head{ flex-direction:column; } }

/* ---------- Case study image cards (Result, sourced directly from design reference) ---------- */
.case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
@media (max-width:980px){ .case-grid{ grid-template-columns:1fr; max-width:480px; margin-inline:auto; align-items:start; } }
.case-study-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl); box-shadow:var(--shadow-sm);
  padding:38px 34px; display:flex; align-items:center; justify-content:center;
}
@media (max-width:768px){ .case-study-card{ padding:24px 22px; } }
.case-study-img{ width:100%; height:100%; object-fit:contain; }

/* ---------- Case study card v2 (legacy coded variant, kept for reference/reuse) ---------- */

.case-card-v2{ display:flex; flex-direction:column; height:100%; }
.case-card-v2 .badges{ display:flex; gap:8px; flex-wrap:wrap; }
.case-card-v2 .badge-case{
  background:var(--c-consulting); color:#fff; font-size:10.5px; font-weight:800;
  padding:6px 12px; border-radius:99px; letter-spacing:.03em; white-space:nowrap;
}
.case-card-v2 .badge-client{
  background:var(--navy-900); color:#fff; font-size:10.5px; font-weight:700;
  padding:6px 12px; border-radius:99px; white-space:nowrap;
}
.case-card-v2 h3{ margin-top:16px; font-size:18px; line-height:1.5; }
.case-card-v2 h3 strong{ color:var(--c-consulting); }
.case-card-v2 .cc-divider{ height:1px; background:var(--line); margin:18px 0; }

/* linear icon flow (case 1) */
.cc-flow{ display:flex; align-items:center; gap:2px; flex:1; min-height:120px; }
.cc-flow-step{ display:flex; flex-direction:column; align-items:center; gap:12px; flex:1; text-align:center; }
.cc-flow-step .ic{
  width:76px; height:76px; border-radius:99px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-consulting-100); color:var(--c-consulting);
}
.cc-flow-step .ic svg{ width:32px; height:32px; }
.cc-flow-step .label{ font-size:12.5px; font-weight:700; color:var(--ink-700); line-height:1.4; }
.cc-flow-arrow{ color:var(--ink-300); width:16px; height:16px; flex:none; margin-top:-14px; }

/* numbered icon flow (case 3, 4 steps) */
.cc-flow-num{ display:flex; align-items:center; gap:2px; flex:1; min-height:120px; }
.cc-flow-num .step{ display:flex; flex-direction:column; align-items:center; gap:10px; flex:1; text-align:center; }
.cc-flow-num .ic{
  width:64px; height:64px; border-radius:99px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--c-consulting-100); color:var(--c-consulting);
}
.cc-flow-num .ic svg{ width:26px; height:26px; }
.cc-flow-num .no{ font-size:10.5px; font-weight:800; color:var(--ink-400); }
.cc-flow-num .label{ font-size:11.5px; font-weight:700; color:var(--ink-700); line-height:1.35; }
.cc-flow-arrow.is-num{ margin-top:-24px; }

/* cycle diagram (case 2) */
.cc-cycle{ display:flex; align-items:center; justify-content:center; gap:4px; flex:1; min-height:120px; }
.cc-cycle-node{ display:flex; flex-direction:column; align-items:center; gap:10px; width:92px; }
.cc-cycle-node .circle{ width:64px; height:64px; border-radius:99px; display:flex; align-items:center; justify-content:center; color:#fff; }
.cc-cycle-node .circle svg{ width:26px; height:26px; }
.cc-cycle-node.is-minus .circle{ background:linear-gradient(135deg,#f0645f,var(--chart-red)); }
.cc-cycle-node.is-plus .circle{ background:linear-gradient(135deg,#3B7CF0,var(--c-consulting)); }
.cc-cycle-node .label{ font-size:12px; font-weight:700; color:var(--ink-700); text-align:center; line-height:1.35; }
.cc-cycle-arrow{ color:var(--ink-300); width:26px; height:16px; flex:none; margin-top:-16px; }
.cc-cycle-center{ display:flex; flex-direction:column; align-items:center; gap:8px; width:86px; }
.cc-cycle-center .circle{ width:70px; height:70px; border-radius:99px; background:var(--navy-900); color:#7EA6F5; display:flex; align-items:center; justify-content:center; }
.cc-cycle-center .circle svg{ width:28px; height:28px; }
.cc-cycle-center .label{ font-size:12px; font-weight:800; color:var(--ink-900); text-align:center; }

/* key result box */
.cc-kr{ margin-top:24px; }
.cc-kr-label{ font-size:10.5px; font-weight:800; letter-spacing:.07em; color:var(--ink-400); }
.cc-kr-box{ margin-top:10px; background:var(--bg-alt); border-radius:var(--r-md); padding:14px; display:grid; gap:8px; }
.cc-kr-box.cols-2{ grid-template-columns:1fr 1fr; }
.cc-kr-box.cols-3{ grid-template-columns:repeat(3,1fr); }
.cc-kr-item{ background:var(--surface); border-radius:var(--r-sm); padding:14px; }
.cc-kr-item.is-stat{ text-align:center; }
.cc-kr-item.is-stat .v{ font-size:15px; font-weight:800; color:var(--c-consulting); line-height:1.25; }
.cc-kr-item.is-stat .l{ font-size:10.5px; color:var(--ink-500); margin-top:5px; line-height:1.45; }
.cc-kr-item.is-row{ display:flex; align-items:center; gap:12px; text-align:left; }
.cc-kr-item.is-row .icon{ width:26px; height:26px; color:var(--c-consulting); flex:none; }
.cc-kr-item.is-row .icon svg{ width:100%; height:100%; }
.cc-kr-item.is-col{ text-align:left; }
.cc-kr-item.is-col .icon{ width:24px; height:24px; color:var(--c-consulting); margin-bottom:10px; }
.cc-kr-item.is-col .icon svg{ width:100%; height:100%; }
.cc-kr-item .l{ font-size:11px; color:var(--ink-500); line-height:1.55; }
.cc-kr-item .l strong{ color:var(--ink-900); font-size:12.5px; }
@media (max-width:520px){ .cc-kr-box.cols-3{ grid-template-columns:1fr; } }

/* ---------- Process icon circle ---------- */
.process-step .icon-circle-sm{
  width:52px; height:52px; border-radius:99px; display:flex; align-items:center; justify-content:center;
  background:var(--c-consulting-100); color:var(--c-consulting); margin-bottom:14px;
}
.process-step .icon-circle-sm svg{ width:24px; height:24px; }
.process-step.is-final .icon-circle-sm{ background:rgba(79,227,172,.12); color:var(--green-400); }

/* ---------- Result cases ---------- */
.case-card{
  background:var(--navy-900); color:#fff; border-radius:var(--r-xl); padding:30px;
  position:relative; overflow:hidden;
}
.case-card::after{
  content:""; position:absolute; right:-40px; top:-40px; width:160px; height:160px; border-radius:99px;
  background:radial-gradient(circle,rgba(79,227,172,.25),transparent 70%);
}
.case-card .tag{ display:inline-flex; font-size:12px; font-weight:700; color:var(--green-400); background:rgba(79,227,172,.12); padding:6px 12px; border-radius:99px; }
.case-card h4{ color:#fff; margin-top:14px; font-size:18px; }
.case-card p{ margin-top:8px; color:rgba(255,255,255,.6); font-size:13.5px; line-height:1.7; }
.case-card .big-num{ margin-top:18px; font-size:38px; font-weight:800; color:var(--green-400); letter-spacing:-.02em; }
.case-card .big-num-sub{ font-size:13px; color:rgba(255,255,255,.55); margin-top:2px; }

/* ---------- Bar chart (svg-free css bars) ---------- */
.bar-chart{ display:flex; align-items:flex-end; gap:18px; height:200px; padding-top:20px; }
.bar-chart .bar-col{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; }
.bar-chart .bar{
  width:100%; max-width:56px; border-radius:8px 8px 4px 4px; background:var(--line);
  position:relative; transition:height 1s var(--ease);
}
.bar-chart .bar.is-fill{ background:linear-gradient(180deg,var(--green-400),var(--green-600)); }
.bar-chart .bar .val{ position:absolute; top:-26px; left:50%; transform:translateX(-50%); font-size:12.5px; font-weight:800; color:var(--ink-900); white-space:nowrap; }
.bar-chart .bar-label{ margin-top:10px; font-size:12.5px; color:var(--ink-500); text-align:center; }

/* ---------- Radar chart ---------- */
.radar-wrap{ position:relative; width:100%; max-width:420px; margin-inline:auto; }
.radar-wrap svg{ width:100%; height:auto; }
.radar-label{ font-size:11.5px; font-weight:700; fill:var(--ink-600); }

/* ---------- Accordion ---------- */
.accordion{ display:flex; flex-direction:column; gap:12px; }
.accordion-item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; }
.accordion-trigger{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:20px 24px; text-align:left; font-weight:700; font-size:15.5px; color:var(--ink-900);
}
.accordion-trigger .plus{
  width:26px; height:26px; border-radius:99px; background:var(--bg-alt); flex:none;
  display:flex; align-items:center; justify-content:center; transition:transform .3s var(--ease), background .3s;
}
.accordion-trigger .plus svg{ width:13px; height:13px; }
.accordion-item.is-open .accordion-trigger .plus{ transform:rotate(45deg); background:var(--green-500); color:#fff; }
.accordion-panel{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.accordion-panel-inner{ padding:0 24px 22px; font-size:14.5px; color:var(--ink-500); line-height:1.75; }

/* ---------- Pricing (career ebook) ---------- */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
@media (max-width:900px){ .pricing-grid{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; } }
.price-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:32px 28px; display:flex; flex-direction:column; position:relative;
}
.price-card.is-featured{
  border-color:var(--green-500); box-shadow:0 30px 60px -28px rgba(14,169,104,.4); transform:translateY(-8px);
}
.price-card .badge-rec{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--green-500); color:#06251A; font-size:12px; font-weight:800;
  padding:6px 16px; border-radius:99px; white-space:nowrap;
}
.price-card .tier{ font-size:13px; font-weight:700; color:var(--ink-400); text-transform:uppercase; letter-spacing:.04em; }
.price-card h3{ margin-top:8px; font-size:24px; }
.price-card .desc{ margin-top:8px; color:var(--ink-500); font-size:13.5px; }
.price-card .price{ margin-top:20px; font-size:32px; font-weight:800; color:var(--ink-900); }
.price-card .price span{ font-size:14px; font-weight:600; color:var(--ink-400); }
.price-card .price-page{ font-size:13px; color:var(--ink-400); margin-top:2px; }
.price-card .price-note{ margin-top:20px; font-size:13.5px; font-weight:700; color:var(--ink-500); }
.price-card ul{ margin-top:22px; display:flex; flex-direction:column; gap:12px; flex:1; }
.price-card li{ display:flex; gap:9px; font-size:14px; color:var(--ink-600); align-items:flex-start; }
.price-card li svg{ width:16px; height:16px; color:var(--green-500); flex:none; margin-top:3px; }
.price-card .btn{ margin-top:26px; }

/* ---------- Testimonial ---------- */
.testi-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:36px; display:grid; grid-template-columns:.9fr 1.1fr; gap:0; overflow:hidden;
}
@media (max-width:768px){ .testi-card{ grid-template-columns:1fr; padding:0; } }
.testi-img{ border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); }
@media (max-width:768px){ .testi-img{ border-radius:0; border:none; border-bottom:1px solid var(--line); } }
.testi-content{ padding-left:36px; display:flex; flex-direction:column; justify-content:center; }
@media (max-width:768px){ .testi-content{ padding:28px; } }
.testi-content .quote-mark{ font-size:44px; color:var(--green-300); font-weight:900; line-height:1; }
.testi-content p{ margin-top:6px; font-size:16.5px; color:var(--ink-700); line-height:1.85; }
.testi-attr{ margin-top:20px; display:flex; align-items:center; gap:12px; }
.testi-attr .initial{
  width:42px; height:42px; border-radius:99px; background:var(--navy-900); color:var(--green-400);
  display:flex; align-items:center; justify-content:center; font-weight:800;
}
.testi-attr strong{ display:block; font-size:14.5px; color:var(--ink-900); }
.testi-attr span{ font-size:13px; color:var(--ink-500); }

.quote-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:20px; }
@media (max-width:900px){ .quote-grid{ grid-template-columns:1fr; } }
.quote-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px; display:flex; flex-direction:column; height:100%;
}
.quote-card .qmark{ font-size:34px; font-weight:900; color:var(--green-300); line-height:1; }
.quote-card .headline{ margin-top:8px; font-weight:800; font-size:16.5px; color:var(--ink-900); line-height:1.5; }
.quote-card p.body{ margin-top:12px; font-size:13.6px; color:var(--ink-500); line-height:1.75; flex:1; }
.quote-card .tag{ margin-top:18px; display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; color:var(--ink-400); }
.quote-card .tag .dot{ width:7px; height:7px; border-radius:99px; background:var(--green-500); flex:none; }

/* ---------- CTA band ---------- */
.cta-band{
  background:linear-gradient(135deg,var(--navy-950),var(--navy-800));
  border-radius:var(--r-xl); padding:64px 48px; text-align:center; color:#fff; position:relative; overflow:hidden;
}
.cta-band::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(600px 300px at 20% 0%, rgba(79,227,172,.22), transparent 60%),
             radial-gradient(600px 300px at 85% 100%, rgba(42,107,224,.2), transparent 60%);
}
.cta-band > *{ position:relative; z-index:1; }
.cta-band h2{ margin-top:16px; color:#fff; font-size:clamp(24px,3vw,34px); }
.cta-band p{ margin-top:14px; color:rgba(255,255,255,.62); font-size:16px; max-width:520px; margin-inline:auto; }
.cta-actions{ margin-top:30px; display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
@media (max-width:640px){ .cta-band{ padding:44px 26px; } }

/* ---------- Footer ---------- */
.site-footer{ background:var(--navy-950); color:rgba(255,255,255,.55); padding-block:64px 32px; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08); }
@media (max-width:768px){ .footer-grid{ grid-template-columns:1fr; gap:32px; } }
.footer-brand .brand-name{ color:#fff; }
.footer-brand p{ margin-top:14px; font-size:14px; line-height:1.75; max-width:320px; color:rgba(255,255,255,.5); }
.footer-col h5{ color:#fff; font-size:14px; font-weight:700; margin-bottom:16px; }
.footer-col ul{ display:flex; flex-direction:column; gap:10px; }
.footer-col a, .footer-col span{ font-size:14px; color:rgba(255,255,255,.55); }
.footer-col a:hover{ color:var(--green-400); }
.footer-bottom{ padding-top:26px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; font-size:13px; }
.footer-social{ display:flex; gap:12px; }
.footer-social a{
  width:36px; height:36px; border-radius:99px; background:rgba(255,255,255,.06);
  display:flex; align-items:center; justify-content:center;
}
.footer-social svg{ width:16px; height:16px; }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
.reveal-delay-1{ transition-delay:.08s; }
.reveal-delay-2{ transition-delay:.16s; }
.reveal-delay-3{ transition-delay:.24s; }
.reveal-delay-4{ transition-delay:.32s; }

/* ---------- Misc utility ---------- */
.divider{ height:1px; background:var(--line); margin-block:var(--s-16); }
.tag-row{ display:flex; gap:10px; flex-wrap:wrap; }
.check-list{ display:flex; flex-direction:column; gap:14px; }
.check-list li{ display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--ink-600); line-height:1.6; }
.check-list svg{ width:19px; height:19px; color:var(--green-500); flex:none; margin-top:2px; }

.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
@media (max-width:900px){ .two-col{ grid-template-columns:1fr; gap:32px; } }
.two-col.reverse{ direction:rtl; }
.two-col.reverse > *{ direction:ltr; }

.compare-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:768px){ .compare-grid{ grid-template-columns:1fr; } }
.compare-card{ border-radius:var(--r-lg); padding:30px; border:1px solid var(--line); background:var(--surface); }
.compare-card.is-primary{ border:2px solid var(--green-500); background:var(--green-050); }
.compare-card.is-consulting{ border:2px solid var(--c-consulting); background:var(--c-consulting-100); }
.compare-card .cc-head{ display:flex; align-items:center; gap:12px; margin-bottom:20px; }
.compare-card .cc-head .tile{
  width:38px; height:38px; border-radius:11px; flex:none;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-alt); color:var(--ink-400);
}
.compare-card.is-consulting .cc-head .tile{ background:var(--c-consulting); color:#fff; }
.compare-card .cc-head .tile svg{ width:18px; height:18px; }
.compare-card h4{ font-size:16.5px; }
.compare-card.is-consulting h4{ color:var(--c-consulting); }
.compare-card ul{ display:flex; flex-direction:column; gap:13px; }
.compare-card li{ font-size:14px; color:var(--ink-600); display:flex; gap:10px; align-items:flex-start; line-height:1.6; }
.compare-card li svg{ width:17px; height:17px; flex:none; margin-top:2px; color:var(--ink-300); }
.compare-card.is-consulting li{ color:var(--ink-800); font-weight:600; }
.compare-card.is-consulting li svg{ color:var(--c-consulting); }
.compare-card.is-career{ border:2px solid var(--c-career); background:var(--c-career-100); }
.compare-card.is-career .cc-head .tile{ background:var(--c-career); color:#2B1204; }
.compare-card.is-career h4{ color:#E85F27; }
.compare-card.is-career li{ color:var(--ink-800); font-weight:600; }
.compare-card.is-career li svg{ color:var(--c-career); }

/* ---------- Feature mini card (compact icon+label grid) ---------- */
.feature-mini{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md);
  padding:16px 18px; display:flex; align-items:center; gap:14px;
}
.feature-mini .label{ font-size:13.5px; font-weight:700; color:var(--ink-800); line-height:1.4; }

.avatar-strip{ display:flex; align-items:center; gap:14px; }
.avatar-strip img{ width:56px; height:56px; border-radius:99px; object-fit:cover; border:2px solid var(--surface); box-shadow:var(--shadow-sm); }
.avatar-strip .info strong{ display:block; font-size:15px; color:var(--ink-900); }
.avatar-strip .info span{ font-size:13px; color:var(--ink-500); }

/* number ticker */
[data-count]{ font-variant-numeric:tabular-nums; }

::selection{ background:var(--green-300); color:var(--navy-900); }

/* ---------- Founder radar layout ---------- */
.founder-radar-grid{ display:grid; grid-template-columns:220px 1fr; gap:28px; align-items:center; margin-top:22px; }
@media (max-width:560px){
  .founder-radar-grid{ grid-template-columns:1fr; }
  .founder-radar-grid .radar-wrap{ max-width:260px; }
}

/* ---------- Radar legend ---------- */
.radar-legend{ display:grid; grid-template-columns:repeat(2,1fr); gap:11px 24px; margin-top:22px; }
.radar-legend-item{ display:flex; align-items:center; justify-content:space-between; font-size:13.5px; color:var(--ink-600); border-bottom:1px dashed var(--line); padding-bottom:9px; }
.radar-legend-item .dot-label{ display:flex; align-items:center; gap:9px; }
.radar-legend-item .dot{ width:9px; height:9px; border-radius:99px; background:var(--green-500); flex:none; }
.radar-legend-item b{ color:var(--ink-900); font-weight:800; }
@media (max-width:560px){ .radar-legend{ grid-template-columns:1fr; } }

/* ---------- STAR / 4-step method grid ---------- */
.star-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:860px){ .star-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .star-grid{ grid-template-columns:1fr; } }
.star-card{
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:26px 22px; text-align:left; position:relative;
}
.star-card .letter{
  width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:19px; color:#2B1204; background:linear-gradient(135deg,#FFB088,var(--c-career));
}
.star-card h4{ margin-top:16px; font-size:16.5px; }
.star-card p{ margin-top:8px; font-size:13.5px; color:var(--ink-500); line-height:1.65; }

/* ---------- Roadmap (numbered vertical list w/ connector) ---------- */
.roadmap{ display:flex; flex-direction:column; }
.roadmap-item{ display:grid; grid-template-columns:52px 1fr; gap:20px; }
.roadmap-marker{ display:flex; flex-direction:column; align-items:center; }
.roadmap-num{
  width:40px; height:40px; border-radius:12px; background:var(--navy-900); color:var(--green-400);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:14.5px; flex:none;
}
.roadmap-line{ width:2px; flex:1; background:var(--line); margin-block:4px; min-height:24px; }
.roadmap-item:last-child .roadmap-line{ display:none; }
.roadmap-body{ padding-bottom:28px; }
.roadmap-item:last-child .roadmap-body{ padding-bottom:0; }
.roadmap-body h4{ font-size:16px; }
.roadmap-body p{ margin-top:6px; font-size:13.8px; color:var(--ink-500); line-height:1.65; }

/* ---------- Before / After ---------- */
.before-after{ display:grid; grid-template-columns:1fr auto 1fr; gap:16px; align-items:center; }
@media (max-width:680px){ .before-after{ grid-template-columns:1fr; } }
.ba-card{ border-radius:var(--r-md); padding:18px 20px; font-size:13.8px; line-height:1.7; }
.ba-card.is-before{ background:var(--bg-alt); color:var(--ink-500); }
.ba-card.is-after{ background:var(--green-050); color:var(--ink-800); border:1px solid rgba(20,200,138,.28); }
.ba-tag{ display:inline-block; font-size:11.5px; font-weight:800; letter-spacing:.04em; margin-bottom:8px; padding:4px 10px; border-radius:99px; }
.ba-card.is-before .ba-tag{ background:#fff; color:var(--ink-400); }
.ba-card.is-after .ba-tag{ background:var(--green-500); color:#06251A; }
.ba-arrow{ width:34px; height:34px; border-radius:99px; background:var(--surface); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--green-600); margin-inline:auto; }
.ba-arrow svg{ width:16px; height:16px; }
@media (max-width:680px){ .ba-arrow{ transform:rotate(90deg); } }

/* ---------- Quote box ---------- */
.quote-box{
  background:var(--navy-900); color:#fff; border-radius:var(--r-lg); padding:30px 32px;
  position:relative;
}
.quote-box .quote-mark{ font-size:40px; font-weight:900; color:var(--green-400); line-height:1; }
.quote-box p{ margin-top:6px; font-size:16px; line-height:1.85; color:rgba(255,255,255,.82); }

/* ---------- Success case card ---------- */
.success-case{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-xl); padding:30px; }
.success-case .head{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.success-case .who{ display:flex; align-items:center; gap:12px; }
.success-case .who .av{
  width:48px; height:48px; border-radius:99px; background:var(--c-career-100); color:#E85F27;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; flex:none;
}
.success-case .who strong{ display:block; font-size:15px; color:var(--ink-900); }
.success-case .who span{ font-size:13px; color:var(--ink-500); }
.success-case .result-strip{ display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
.success-case .result-chip{ background:var(--bg-alt); border-radius:var(--r-md); padding:12px 16px; flex:1; min-width:120px; }
.success-case .result-chip .v{ font-size:18px; font-weight:800; color:var(--ink-900); }
.success-case .result-chip .l{ font-size:12px; color:var(--ink-500); margin-top:2px; }

/* ---------- Curriculum track pill variants ---------- */
.pill.is-intro{ background:#E4FBF1; color:#0EA968; }
.pill.is-practice{ background:#E9F0FE; color:var(--c-consulting); }
.pill.is-master{ background:#F1E9FE; color:#6A3AC7; }
.pill.is-advanced{ background:#FFEEE5; color:#E85F27; }
.pill.is-ebook{ background:#FFF6DD; color:#B57900; }

/* ---------- Numbered chip row (media mix, etc) ---------- */
.chip-row{ display:flex; gap:10px; flex-wrap:wrap; }
.chip{ display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--ink-600); background:var(--bg-alt); padding:8px 14px; border-radius:99px; }
.chip b{ color:var(--ink-900); }

/* ---------- Stacked bar (budget mix) ---------- */
.stacked-bar-wrap{ }
.stacked-bar{ display:flex; width:100%; height:34px; border-radius:99px; overflow:hidden; background:var(--bg-alt); }
.stacked-bar .seg{ height:100%; display:flex; align-items:center; justify-content:center; transition:width 1s var(--ease); }
.stacked-bar .seg span{ font-size:11.5px; font-weight:800; color:#fff; white-space:nowrap; }
.stacked-legend{ display:flex; gap:18px; flex-wrap:wrap; margin-top:18px; }
.stacked-legend-item{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--ink-600); }
.stacked-legend-item .dot{ width:10px; height:10px; border-radius:3px; flex:none; }

.bar-chart.is-compact{ height:140px; gap:24px; }
.result-charts-row{ margin-top:20px; align-items:stretch; }
.mini-bars-row{ margin-top:14px; gap:16px; }
@media (max-width:420px){ .mini-bars-row{ grid-template-columns:1fr; } }
.mini-chart-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); padding:24px; }
.mini-chart-card h5{ font-size:14.5px; font-weight:700; color:var(--ink-800); }
.mini-chart-card .delta{ font-size:12.5px; font-weight:800; margin-top:2px; }
.mini-chart-card .delta.up{ color:var(--green-600); }
.mini-chart-card .delta.down{ color:var(--chart-red); }

/* ---------- Unequal-width card grid (AI skill showcase) ---------- */
.ai-skill-grid{ display:grid; grid-template-columns:3fr 2fr; gap:var(--s-6); align-items:stretch; }
@media (max-width:900px){ .ai-skill-grid{ grid-template-columns:1fr; } }

/* Back to top */
.to-top{
  position:fixed; right:24px; bottom:24px; z-index:60;
  width:46px; height:46px; border-radius:99px; background:var(--navy-900); color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-lg);
  opacity:0; pointer-events:none; transform:translateY(10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.to-top.is-visible{ opacity:1; pointer-events:auto; transform:translateY(0); }
.to-top svg{ width:18px; height:18px; }

/* ---------- PDF Download Modal ---------- */
.pdf-modal-overlay{
  position:fixed; inset:0; z-index:300;
  background:rgba(7,10,18,.55); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .25s var(--ease);
}
.pdf-modal-overlay.is-open{ opacity:1; pointer-events:auto; }
.pdf-modal{
  position:relative; width:100%; max-width:440px;
  background:var(--surface); border-radius:var(--r-xl); padding:36px 32px;
  box-shadow:var(--shadow-lg);
  transform:translateY(14px) scale(.98); transition:transform .25s var(--ease);
}
.pdf-modal-overlay.is-open .pdf-modal{ transform:translateY(0) scale(1); }
.pdf-modal-close{
  position:absolute; top:18px; right:18px; width:34px; height:34px; border-radius:99px;
  display:flex; align-items:center; justify-content:center; color:var(--ink-400);
  transition:background .2s var(--ease), color .2s var(--ease);
}
.pdf-modal-close:hover{ background:var(--bg-alt); color:var(--ink-700); }
.pdf-modal-close svg{ width:18px; height:18px; }
.pdf-modal h3{ margin-top:14px; font-size:22px; }
.pdf-modal-desc{ margin-top:10px; font-size:14.5px; color:var(--ink-500); line-height:1.6; }
.pdf-modal-label{ display:block; margin-top:22px; font-size:13.5px; font-weight:700; color:var(--ink-700); }
.pdf-modal-input{
  width:100%; margin-top:8px; padding:13px 16px; border-radius:var(--r-md);
  border:1px solid var(--line); background:var(--bg-alt); color:var(--ink-900); font-size:15px;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.pdf-modal-input:focus{ outline:none; border-color:var(--c-consulting); background:var(--surface); }
.pdf-modal-input.has-error{ border-color:var(--chart-red); }
.pdf-modal-error{ margin-top:6px; font-size:12.5px; color:var(--chart-red); }
.pdf-modal-consent{
  display:flex; align-items:flex-start; gap:10px; margin-top:18px; cursor:pointer;
}
.pdf-modal-consent input{ margin-top:3px; width:16px; height:16px; flex:none; accent-color:var(--c-consulting); }
.pdf-modal-consent span{ font-size:12.5px; color:var(--ink-500); line-height:1.6; }
.pdf-modal-consent span strong{ color:var(--ink-700); }
.pdf-modal form .btn{ width:100%; margin-top:22px; }
