/* ============================================================
   VISION HIGH INTERNATIONAL
   Design tokens
   ============================================================ */
:root{
  --ink:        #1B2A4A;
  --ink-70:     rgba(27,42,74,.72);
  --ink-50:     rgba(27,42,74,.52);
  --ivy:        #2F5233;
  --ivy-light:  #4C7A52;
  --ivy-tint:   #E7EEE4;
  --gold:       #A9822F;
  --gold-tint:  #F3E9D3;
  --navy:       #29406B;
  --navy-tint:  #E4E9F2;
  --maroon:     #7A2E3B;
  --maroon-tint:#F1E1E3;
  --parchment:  #F8F3E9;
  --paper:      #FFFFFF;
  --line:       rgba(27,42,74,.14);
  --line-soft:  rgba(27,42,74,.08);
  --shadow:     0 12px 32px rgba(27,42,74,.10);
  --shadow-sm:  0 4px 14px rgba(27,42,74,.08);
  --radius:     18px;
  --radius-sm:  10px;
  --font-body:  'PretendardVariable', 'Pretendard', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-display: 'Fraunces', 'Pretendard', serif;
  --kakao:      #FEE500;
  --kakao-ink:  #191919;
  --youtube:    #FF0000;
  --youtube-dk: #C4302B;
  --youtube-bg:    #EFE3CB;
  --youtube-bg-dk: #E4D4B0;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:88px; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--parchment);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; background:none; border:none; color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
.num{ font-family:var(--font-display); font-variant-numeric:lining-nums; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

:focus-visible{ outline:2.5px solid var(--ivy); outline-offset:3px; border-radius:4px; }

.eyebrow{
  font-size:.8rem;
  font-weight:600;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ivy);
  margin-bottom:14px;
}
.section-title{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(1.7rem, 3vw, 2.5rem);
  line-height:1.25;
  max-width:20ch;
}
.section-sub{
  margin-top:14px;
  color:var(--ink-70);
  max-width:56ch;
  font-size:1.02rem;
}
.section-inner{ max-width:1120px; margin:0 auto; padding:0 28px; }

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 26px;
  border-radius:999px;
  font-weight:600;
  font-size:.96rem;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
  white-space:nowrap;
}
.btn-primary{ background:var(--ink); color:#fff; box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--ivy); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn-ghost{ background:transparent; color:var(--ink); border:1.5px solid var(--line); }
.btn-ghost:hover{ border-color:var(--ink); transform:translateY(-2px); }
.btn-kakao{ background:var(--kakao); color:var(--kakao-ink); box-shadow:var(--shadow-sm); }
.btn-kakao:hover{ background:#F5DC00; transform:translateY(-2px); box-shadow:var(--shadow); }
.btn-youtube{ background:var(--youtube-bg); color:var(--ink); box-shadow:var(--shadow-sm); }
.btn-youtube:hover{ background:var(--youtube-bg-dk); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn-youtube svg{ color:var(--youtube); }
.btn svg{ width:19px; height:19px; flex-shrink:0; }

/* ============ HEADER ============ */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(248,243,233,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);
}
.header-inner{
  max-width:1220px; margin:0 auto; padding:14px 28px;
  display:flex; align-items:center; gap:20px; flex-wrap:nowrap;
}
.brand{ display:flex; align-items:center; gap:11px; margin-right:auto; min-width:0; }
.brand-crest{ width:34px; height:34px; color:var(--ink); flex-shrink:0; }
.brand-word{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{ font-family:var(--font-display); font-weight:600; letter-spacing:.02em; font-size:1.02rem; white-space:nowrap; }
.brand-sub{ font-size:.68rem; letter-spacing:.04em; color:var(--ink-50); }

.main-nav{ display:flex; align-items:center; gap:4px; flex-wrap:nowrap; flex-shrink:0; }
.nav-link{
  padding:10px 12px; font-size:.94rem; font-weight:500; color:var(--ink-70);
  display:flex; align-items:center; gap:5px; border-radius:8px; white-space:nowrap;
  transition:color .15s ease, background .15s ease;
}
.nav-link:hover{ color:var(--ink); background:rgba(27,42,74,.05); }
.nav-link .chev{ width:14px; height:14px; transition:transform .2s ease; }
.nav-dropdown{ position:relative; }
.nav-yt{
  display:inline-flex; align-items:center; gap:7px; margin-left:8px;
  padding:7px 13px; border-radius:999px; font-size:.86rem; font-weight:600;
  background:var(--youtube-bg); color:var(--ink); white-space:nowrap;
  border:1px solid rgba(27,42,74,.10);
  transition:background .15s ease, transform .15s ease, border-color .15s ease;
}
.nav-yt:hover{ background:var(--youtube-bg-dk); border-color:rgba(27,42,74,.16); transform:translateY(-1px); }
.nav-yt svg{ width:18px; height:18px; color:var(--youtube); }
.nav-dropdown.open .chev{ transform:rotate(180deg); }
.dropdown-panel{
  position:absolute; top:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(-6px);
  width:340px; background:var(--paper); border-radius:14px; box-shadow:var(--shadow);
  border:1px solid var(--line-soft); padding:8px;
  opacity:0; visibility:hidden; transition:opacity .18s ease, transform .18s ease, visibility .18s;
}
.nav-dropdown.open .dropdown-panel{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
.dropdown-item{
  display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:10px;
  transition:background .15s ease;
}
.dropdown-item:hover{ background:var(--parchment); }
.dropdown-icon{ width:34px; height:34px; border-radius:9px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.dropdown-icon svg{ width:19px; height:19px; }
.dropdown-text .d-name{ font-weight:600; font-size:.9rem; }
.dropdown-text .d-price{ font-size:.78rem; color:var(--ink-50); margin-top:1px; }

.lang-toggle{
  display:flex; border:1.5px solid var(--line); border-radius:999px; padding:3px; position:relative; flex-shrink:0;
}
.lang-pill{
  position:relative; z-index:1; padding:6px 14px; font-size:.78rem; font-weight:700; letter-spacing:.03em;
  color:var(--ink-50); transition:color .2s ease; border-radius:999px;
}
.lang-toggle::before{
  content:''; position:absolute; top:3px; left:3px; width:calc(50% - 3px); height:calc(100% - 6px);
  background:var(--ink); border-radius:999px; transition:transform .25s cubic-bezier(.4,0,.2,1);
}
body[data-lang="en"] .lang-toggle::before{ transform:translateX(100%); }
body[data-lang="ko"] .lang-pill[data-lang-label="ko"]{ color:#fff; }
body[data-lang="en"] .lang-pill[data-lang-label="en"]{ color:#fff; }

.mobile-menu-btn{ display:none; flex-direction:column; gap:4px; padding:6px; }
.mobile-menu-btn span{ width:20px; height:2px; background:var(--ink); border-radius:2px; }

/* ============ HERO ============ */
.hero{ position:relative; padding:76px 0 0; overflow:hidden; }
.hero-inner{
  max-width:1220px; margin:0 auto; padding:0 28px;
  display:grid; grid-template-columns:1.25fr .75fr; gap:40px; align-items:center;
}
.hero-title{
  font-family:var(--font-display); font-weight:500; font-style:italic;
  font-size:clamp(1.9rem, 4vw, 3.15rem); line-height:1.22; white-space:pre-line; margin:14px 0 22px;
  max-width:19ch;
}
.hero-sub{ font-size:1.08rem; color:var(--ink-70); max-width:48ch; margin-bottom:32px; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-crest-wrap{ display:flex; justify-content:center; align-items:center; }
.hero-crest{ width:min(280px, 80%); color:var(--ivy); opacity:.92; }

.hero-timeline{
  margin-top:64px; display:flex; justify-content:space-between;
  max-width:1220px; margin-left:auto; margin-right:auto; padding:0 28px 0;
  position:relative;
}
.hero-timeline::before{
  content:''; position:absolute; left:28px; right:28px; top:50%; height:1px; background:var(--line);
}
.hero-timeline span{
  font-family:var(--font-display); font-size:1.1rem; font-weight:600; color:var(--ink);
  background:var(--parchment); z-index:1; width:46px; height:46px; border:1.5px solid var(--line);
  border-radius:50%; display:flex; align-items:center; justify-content:center;
}

/* ============ PROGRAM OVERVIEW CARDS ============ */
.programs-overview{ padding:96px 0 40px; }
.card-grid{ margin-top:44px; display:grid; grid-template-columns:repeat(2, 1fr); gap:22px; }
.program-card{
  background:var(--paper); border-radius:var(--radius); padding:30px 28px; border:1px solid var(--line-soft);
  box-shadow:var(--shadow-sm); display:flex; flex-direction:column; gap:14px;
  transition:transform .2s ease, box-shadow .2s ease;
  border-top:4px solid var(--card-accent, var(--ivy));
}
.program-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.card-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.card-icon{
  width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:var(--card-accent-tint, var(--ivy-tint)); color:var(--card-accent, var(--ivy)); flex-shrink:0;
}
.card-icon svg{ width:24px; height:24px; }
.card-price-tag{ font-size:.82rem; font-weight:700; color:var(--card-accent, var(--ivy)); text-align:right; white-space:nowrap; }
.card-price-tag small{ display:block; font-weight:500; color:var(--ink-50); font-size:.68rem; letter-spacing:.03em; text-transform:uppercase; margin-bottom:2px; }
.card-price-tag .card-price-per{ font-weight:500; color:var(--ink-50); font-size:.72rem; margin-left:3px; }
.card-name{ font-family:var(--font-display); font-weight:600; font-size:1.22rem; }
.card-sub{ font-size:.82rem; color:var(--card-accent, var(--ivy)); font-weight:600; margin-top:-8px; }
.card-blurb{ color:var(--ink-70); font-size:.92rem; flex-grow:1; }
.card-cta{
  align-self:flex-start; display:inline-flex; align-items:center; gap:6px; font-size:.86rem; font-weight:600;
  color:var(--ink); padding-top:6px; border-top:1px solid var(--line-soft); width:100%; margin-top:4px; padding-top:14px;
}
.card-cta svg{ width:14px; height:14px; transform:rotate(-90deg); transition:transform .18s ease; }
.program-card:hover .card-cta svg{ transform:rotate(-90deg) translateX(3px); }

/* ============ PROGRAM DETAIL SECTIONS ============ */
.program-detail{
  padding:88px 0; border-top:1px solid var(--line-soft); scroll-margin-top:88px;
}
.program-detail:nth-of-type(odd){ background:rgba(255,255,255,.5); }
.detail-inner{ max-width:1120px; margin:0 auto; padding:0 28px; }
.detail-head{ max-width:760px; margin-bottom:40px; }
.detail-badge{
  display:inline-block; font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:6px 13px; border-radius:999px; margin-bottom:16px;
  color:var(--accent-color); background:var(--accent-tint);
}
.detail-title{ font-family:var(--font-display); font-weight:600; font-size:clamp(1.6rem,2.8vw,2.3rem); }
.detail-subtitle{ color:var(--ink-70); margin-top:8px; font-size:1.02rem; }
.detail-blurb{ margin-top:16px; color:var(--ink-70); max-width:64ch; }
.detail-price-row{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; margin-top:20px; }
.detail-price{ font-family:var(--font-display); font-size:1.7rem; font-weight:600; color:var(--accent-color); }
.detail-price-per{ font-family:var(--font-display); font-size:1rem; font-weight:600; color:var(--accent-color); opacity:.75; }
.detail-price-label{ font-size:.8rem; color:var(--ink-50); }

/* overview table */
.overview-table-wrap{ overflow-x:auto; margin-bottom:52px; border-radius:14px; border:1px solid var(--line-soft); background:var(--paper); }
table.overview-table{ width:100%; border-collapse:collapse; font-size:.9rem; min-width:640px; }
table.overview-table th, table.overview-table td{ padding:16px 18px; text-align:left; vertical-align:top; border-bottom:1px solid var(--line-soft); }
table.overview-table th{ font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-50); font-weight:700; background:var(--parchment); }
table.overview-table tr:last-child td{ border-bottom:none; }
table.overview-table td:first-child{ font-family:var(--font-display); font-weight:600; font-size:1.15rem; color:var(--accent-color); width:64px; }
table.overview-table td strong{ display:block; margin-bottom:2px; }

.roadmap-label{ font-size:.82rem; font-weight:600; color:var(--ink-50); margin-bottom:16px; letter-spacing:.02em; }

/* grade goals (ivy / admission) — 2 x 2: 9 above 10 on the left, 11 above 12 on the right */
.grade-goals{
  display:grid; gap:14px;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,auto);
  grid-auto-flow:column;
}
.grade-goal-card{
  display:flex; align-items:flex-start; gap:16px; padding:20px 22px;
  border:1px solid var(--line-soft); border-radius:16px; background:var(--paper);
}
.grade-num{
  font-family:var(--font-display); font-size:1.75rem; font-weight:600; color:var(--accent-color);
  width:64px; height:64px; border-radius:50%; background:var(--accent-tint); flex-shrink:0;
  box-shadow:0 0 0 1px var(--accent-color) inset;
  display:flex; align-items:center; justify-content:center;
}
.grade-goal-text{ flex-grow:1; min-width:0; }
.grade-goal-text .g-label{ display:block; font-weight:700; font-size:1.02rem; }
.grade-goal-text .g-english{ display:block; font-size:.78rem; color:var(--ink-50); margin-top:1px; }
.grade-goal-text .g-goal{ font-size:.92rem; color:var(--ink-70); margin-top:10px; }

/* package cards (essays / boarding) */
.package-label{ font-size:.82rem; font-weight:600; color:var(--ink-50); margin-bottom:16px; }
.package-list{ display:flex; flex-direction:column; gap:12px; }
.package-item{ border:1px solid var(--line-soft); border-radius:16px; background:var(--paper); overflow:hidden; }
.package-header{ width:100%; display:flex; align-items:center; gap:16px; padding:20px 22px; text-align:left; }
.package-title-wrap{ flex-grow:1; }
.package-name{ font-weight:700; font-size:1.02rem; }
.package-sub{ font-size:.8rem; color:var(--ink-50); margin-top:2px; }
.package-price{ font-family:var(--font-display); font-weight:600; font-size:1.15rem; color:var(--accent-color); white-space:nowrap; }
.package-header .chev{ width:18px; height:18px; color:var(--ink-50); transition:transform .25s ease; flex-shrink:0; }
.package-item.open .package-header .chev{ transform:rotate(180deg); }
.package-item.open .package-header{ border-bottom:1px solid var(--line-soft); }
.package-panel{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.package-panel-inner{ padding:18px 22px 24px; }
.package-desc{ color:var(--ink-70); font-size:.94rem; margin-bottom:14px; }
.package-audience{ background:var(--parchment); border-radius:10px; padding:14px 16px; border-left:3px solid var(--accent-color); }
.package-audience .a-label{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--accent-color); margin-bottom:4px; }
.package-audience .a-text{ font-size:.9rem; color:var(--ink-70); }

.package-callout{
  margin-top:14px; padding:22px 24px; border-radius:16px;
  background:var(--parchment); border:1px dashed var(--line);
  display:flex; align-items:center; gap:22px; flex-wrap:wrap;
}
.package-callout .pc-copy{ flex:1 1 320px; }
.package-callout .pc-title{ font-weight:700; font-size:1.02rem; color:var(--accent-color); }
.package-callout .pc-text{ margin-top:6px; font-size:.94rem; color:var(--ink-70); }
.package-callout .pc-cta{ flex-shrink:0; }

@media (max-width: 560px){
  .package-callout{ padding:20px; gap:16px; }
  .package-callout .pc-cta{ width:100%; justify-content:center; }
}

/* ============ PRICING ============ */
.pricing{ padding:96px 0; background:var(--ink); color:#fff; }
.pricing .eyebrow{ color:#C9D6BE; }
.pricing .section-sub{ color:rgba(255,255,255,.66); }
.pricing-groups{ margin-top:44px; display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
.price-group{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:16px; padding:26px 24px; }
.price-group h3{ font-family:var(--font-display); font-weight:600; font-size:1.12rem; }
.price-group .pg-sub{ font-size:.78rem; color:rgba(255,255,255,.5); margin-top:2px; margin-bottom:18px; }
.price-row{ display:flex; justify-content:space-between; gap:14px; padding:12px 0; border-top:1px solid rgba(255,255,255,.1); font-size:.88rem; }
.price-row:first-of-type{ border-top:none; }
.price-row .pr-name{ color:rgba(255,255,255,.86); }
.price-row .pr-value{ font-family:var(--font-display); font-weight:600; color:#E8D9B5; white-space:nowrap; }
.pricing-note{ margin-top:28px; font-size:.82rem; color:rgba(255,255,255,.5); }

/* ============ FOOTER ============ */
.site-footer{ padding:80px 0 40px; text-align:center; }
.footer-inner{ max-width:560px; margin:0 auto; padding:0 28px; display:flex; flex-direction:column; align-items:center; gap:18px; }
.footer-brand{ display:flex; align-items:center; gap:10px; }
.footer-brand .brand-crest{ color:var(--ivy); width:30px; height:30px; }
.footer-note{ color:var(--ink-70); font-size:.92rem; }
.footer-cta{ margin-top:6px; }
.footer-rights{ font-size:.78rem; color:var(--ink-50); margin-top:20px; }

/* ============ ABOUT THE COUNSELOR ============ */
.about{
  padding:88px 0; scroll-margin-top:88px;
  background:var(--paper); border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft);
}
.about-top{ display:grid; grid-template-columns:minmax(230px,320px) 1fr; gap:52px; align-items:start; }
.about-figure{ margin:0; }
.about-photo{
  width:100%; height:auto; aspect-ratio:26/31; object-fit:cover; object-position:top;
  border-radius:var(--radius); box-shadow:var(--shadow); background:var(--parchment);
  border:1px solid var(--line-soft);
}
.about-name{ font-family:var(--font-display); font-size:1.6rem; font-weight:600; margin-top:22px; }
.about-role{ font-size:.9rem; font-weight:600; color:var(--ivy); margin-top:2px; }
.about-bio{ margin-top:18px; color:var(--ink-70); max-width:60ch; }

.about-stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px;
  max-width:520px;
}
.stat{ background:var(--parchment); border:1px solid var(--line-soft); border-radius:14px; padding:18px 16px; }
.stat-value{ font-family:var(--font-display); font-size:1.85rem; font-weight:600; color:var(--ivy); line-height:1.1; }
.stat-label{ font-size:.78rem; color:var(--ink-50); margin-top:4px; }

.about-creds-label{
  font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-50); margin-top:32px; margin-bottom:12px;
}
.about-creds{ display:flex; flex-direction:column; gap:8px; }
.about-creds li{ font-size:.92rem; color:var(--ink-70); padding-left:18px; position:relative; }
.about-creds li::before{
  content:''; position:absolute; left:0; top:.62em; width:7px; height:7px; border-radius:50%;
  background:var(--gold);
}

.about-results{ margin-top:64px; padding-top:44px; border-top:1px solid var(--line-soft); }
.results-title{ font-family:var(--font-display); font-size:1.5rem; font-weight:600; }
.results-sub{ color:var(--ink-70); font-size:.94rem; margin-top:6px; }
.result-groups{ margin-top:24px; display:flex; flex-direction:column; gap:12px; }
.result-group{ border:1px solid var(--line-soft); border-radius:16px; background:var(--parchment); overflow:hidden; }
.rg-header{ width:100%; display:flex; align-items:center; gap:16px; padding:18px 22px; text-align:left; }
.rg-title{ font-size:1rem; font-weight:700; flex-grow:1; }
.rg-total{ font-family:var(--font-display); font-weight:600; font-size:1.15rem; color:var(--gold); white-space:nowrap; }
.rg-header .chev{ width:18px; height:18px; color:var(--ink-50); transition:transform .25s ease; flex-shrink:0; }
.result-group.open .rg-header .chev{ transform:rotate(180deg); }
.result-group.open .rg-header{ border-bottom:1px solid var(--line); }
.rg-panel{ max-height:0; overflow:hidden; transition:max-height .35s ease; }
.rg-rows{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  column-gap:32px; padding:6px 22px 20px;
}
.rg-rows li{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:9px 0; border-bottom:1px solid var(--line-soft); font-size:.88rem;
}
.rg-school{ color:var(--ink-70); }
.rg-count{ font-family:var(--font-display); font-weight:600; font-variant-numeric:tabular-nums lining-nums; color:var(--ink); }
.results-disclaimer{ margin-top:26px; font-size:.8rem; color:var(--ink-50); }

/* ============ CONTACT ACTIONS ============ */
.footer-contact-label{
  font-size:.76rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ink-50); margin-top:14px;
}
.footer-email{
  display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:1.02rem;
  color:var(--ink); border-bottom:1.5px solid var(--line); padding-bottom:3px;
  transition:color .15s ease, border-color .15s ease;
}
.footer-email:hover{ color:var(--ivy); border-color:var(--ivy); }
.footer-email svg{ width:19px; height:19px; color:var(--ink-50); }
.contact-actions{ display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:10px; }

/* ============ ACCENT COLOR VARIANTS ============ */
[data-accent="ivy"]{ --accent-color:var(--ivy); --accent-tint:var(--ivy-tint); }
[data-accent="gold"]{ --accent-color:var(--gold); --accent-tint:var(--gold-tint); }
[data-accent="navy"]{ --accent-color:var(--navy); --accent-tint:var(--navy-tint); }
[data-accent="maroon"]{ --accent-color:var(--maroon); --accent-tint:var(--maroon-tint); }

.accent-ivy{ --card-accent:var(--ivy); --card-accent-tint:var(--ivy-tint); }
.accent-gold{ --card-accent:var(--gold); --card-accent-tint:var(--gold-tint); }
.accent-navy{ --card-accent:var(--navy); --card-accent-tint:var(--navy-tint); }
.accent-maroon{ --card-accent:var(--maroon); --card-accent-tint:var(--maroon-tint); }

/* ============ LANGUAGE VISIBILITY ============ */
[data-multiline]{ white-space:pre-line; }

/* ============ RESPONSIVE ============ */
/* the top bar stays on one line; below this it becomes the mobile menu */
@media (max-width: 1024px){
  .main-nav{ display:none; }
  .mobile-menu-btn{ display:flex; }
  .header-inner{ flex-wrap:wrap; }
  .main-nav.mobile-open{
    display:flex; flex-direction:column; width:100%; order:5; gap:2px; padding-top:12px;
    border-top:1px solid var(--line-soft); margin-top:12px;
  }
  .main-nav.mobile-open .nav-dropdown{ width:100%; }
  .main-nav.mobile-open .nav-link{ width:100%; }
  .main-nav.mobile-open .nav-yt{ width:100%; margin-left:0; margin-top:8px; justify-content:center; }
  .main-nav.mobile-open .dropdown-panel{ position:static; width:100%; transform:none; box-shadow:none; border:none; margin-top:4px; opacity:1; visibility:visible; max-height:0; overflow:hidden; transition:max-height .25s ease; padding:0; }
  .main-nav.mobile-open .nav-dropdown.open .dropdown-panel{ max-height:400px; padding:8px; }
}

@media (max-width: 900px){
  .hero-inner{ grid-template-columns:1fr; }
  .hero-crest-wrap{ order:-1; }
  .hero-crest{ width:150px; margin:0 auto; }
  .card-grid{ grid-template-columns:1fr; }
  .about-top{ grid-template-columns:1fr; gap:32px; }
  .about-figure{ max-width:300px; }
  .pricing-groups{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .header-inner{ padding:12px 18px; }
  .grade-goals{ grid-template-columns:1fr; grid-template-rows:none; grid-auto-flow:row; }
  .section-inner, .detail-inner, .footer-inner{ padding:0 18px; }
  .hero-inner{ padding:0 18px; }
  .hero-timeline{ padding:0 18px; display:none; }
  .brand-sub{ display:none; }
  .brand-name{ font-size:.9rem; white-space:normal; line-height:1.2; }
  .about-stats{ grid-template-columns:1fr; max-width:none; }
  .contact-actions{ flex-direction:column; align-items:stretch; width:100%; }
  .contact-actions .btn{ width:100%; }
  table.overview-table{ min-width:520px; }
}
