@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700&display=swap");

:root {
  --color-primary-50: #fdf4ff;
  --color-primary-100: #edd5fb;
  --color-primary-200: #d9a7f6;
  --color-primary-300: #c479f1;
  --color-primary-400: #b04bec;
  --color-primary-500: #9c1de7;
  --color-primary-600: #7e14bd;
  --color-primary-700: #5f0f8f;
  --color-primary-800: #410a61;
  --color-primary-900: #220533;
  --color-primary-950: #030005;
  --color-pink-100: #fce7f3;
  --color-pink-300: #f9a8d4;
  --color-pink-500: #ec4899;
  --color-yellow-100: #fef9c3;
  --color-yellow-300: #fde047;
  --color-yellow-500: #eab308;
  --color-primary: var(--color-primary-500);
  --color-primary-hover: var(--color-primary-600);
  --color-primary-active: var(--color-primary-700);
  --color-primary-soft: var(--color-primary-100);
  --color-primary-subtle: var(--color-primary-50);
  --color-cta-primary: var(--color-primary-900);
  --color-cta-primary-hover: var(--color-primary-800);
  --color-cta-primary-active: var(--color-primary-950);
  --color-accent-pink: var(--color-pink-500);
  --color-accent-pink-soft: var(--color-pink-100);
  --color-accent-yellow: var(--color-yellow-300);
  --color-text: #222222;
  --color-text-soft: #666666;
  --color-text-secondary: #666666;
  --color-text-muted: #8e8e93;
  --color-accent-strong: var(--color-primary-hover);
  --color-accent-soft: rgba(156, 29, 231, 0.15);
  --color-surface: #ffffff;
  --color-background: #ffffff;
  --background-pattern: repeating-linear-gradient(135deg, rgba(34, 5, 51, 0.04) 0 1px, transparent 1px 10px);
  --color-border: #eae7e2;
  --color-field-border: #eae7e2;
  --color-rating: var(--color-yellow-300);
  --font-display: "Outfit", Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-body: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --container-max: 1200px;
  --radius-small: 8px;
  --radius-medium: 12px;
  --radius-large: 20px;
  --radius-xl: 28px;
  --radius-pill: 999px;
  --radius-panel: var(--radius-large);
  --radius-media: var(--radius-medium);
  --shadow-surface: 0 8px 30px rgba(60, 40, 120, 0.08);
  --shadow-float: 0 16px 32px rgba(12, 12, 13, 0.1), 0 4px 4px rgba(12, 12, 13, 0.05);
  --shadow-sevora-soft: 0 1px 2px rgba(34, 5, 51, 0.05), 0 8px 24px rgba(34, 5, 51, 0.08);
  --shadow-sevora-lift: 0 2px 5px rgba(34, 5, 51, 0.06), 0 14px 34px rgba(34, 5, 51, 0.12);
  --shadow-sevora-panel: 0 2px 4px rgba(34, 5, 51, 0.03), 0 24px 72px rgba(34, 5, 51, 0.09);
  --border-static: 1px solid var(--color-border);
  --shadow-static: none;
  --motion-fast: 180ms;
  --motion-standard: 320ms;
  --motion-reveal: 600ms;
  --motion-hero: 450ms;
  --ease-standard: cubic-bezier(.2, .7, .2, 1);
  --ease-emphasized: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  color: var(--color-text);
  background-color: var(--color-background);
  background-image: var(--background-pattern);
  background-size: 10px 10px;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
main > section { scroll-margin-top: 88px; }
.section-reveal-ready main > section.section-reveal > * {
  opacity: 0;
  filter: blur(2px);
  transform: translateY(32px) scale(.992);
  transition:
    opacity 700ms var(--ease-emphasized),
    filter 700ms var(--ease-emphasized),
    transform 700ms var(--ease-emphasized);
  will-change: opacity, filter, transform;
}
.section-reveal-ready main > section.section-reveal > :nth-child(2) { transition-delay: 70ms; }
.section-reveal-ready main > section.section-reveal > :nth-child(3) { transition-delay: 140ms; }
.section-reveal-ready main > section.section-reveal > :nth-child(n + 4) { transition-delay: 210ms; }
.section-reveal-ready main > section.section-revealed > * {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0) scale(1);
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p, blockquote { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-display); font-weight: 600; }
h2 { margin-bottom: 16px; font-size: clamp(1.625rem, 2.5vw, 2.5rem); line-height: 1.15; font-weight: 600; letter-spacing: -.015em; }
h3 { margin-bottom: 8px; }

.hero-copy p,
.hero-v2-copy > p,
.section-heading > p,
.standard-page-hero p,
.unified-page-hero p,
.class-page-hero p,
.pricing-page-intro p,
.event-page-heading p,
.homepage-resources-heading p,
.section-lead,
.video-waitlist-card > p {
  font-family: var(--font-display);
  font-weight: 400;
}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: -60px; z-index: 1000; padding: 10px 16px; border-radius: 10px; background: var(--color-text); color: #fff; transition: top .2s; }
.skip-link:focus { top: 16px; }
.shell, .shell-narrow { width: min(var(--container-max), calc(100% - 96px)); margin-inline: auto; }
.section-divider { border-bottom: 0; }
.image-placeholder { border: 1px dashed var(--color-primary-200); background: var(--color-primary-subtle); }
.centered { text-align: center; align-items: center; }

.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 0;
  border-radius: var(--radius-medium);
  padding: 12px 20px;
  font-size: 16px;
  line-height: 24px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  box-shadow: var(--shadow-sevora-soft);
  transition: transform var(--motion-fast) var(--ease-emphasized), box-shadow var(--motion-fast) ease, background var(--motion-fast) ease, border-color var(--motion-fast) ease;
}
.button:hover { box-shadow: var(--shadow-sevora-lift); transform: translateY(-2px); }
.button:active { box-shadow: var(--shadow-sevora-soft); transform: translateY(0); }
.button:disabled, .button[aria-disabled="true"] { box-shadow: none; transform: none; }
.button:focus-visible, .tab:focus-visible, .slider-controls button:focus-visible, .menu-toggle:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 3px solid var(--color-accent-soft); outline-offset: 3px; }
.button-primary { color: #fcfcfc; background: var(--color-cta-primary); }
.button-primary:hover { background: var(--color-cta-primary-hover); }
.button-primary:active { background: var(--color-cta-primary-active); }
.button-secondary { color: var(--color-cta-primary); background: #fff; border: 1px solid var(--color-cta-primary); }
.button-secondary:hover { color: var(--color-cta-primary-hover); border-color: var(--color-cta-primary-hover); background: var(--color-primary-subtle); }
.button-sm, .button-compact { min-height: 40px; padding: 8px 14px; font-size: 14px; line-height: 20px; }
.button-lg { min-height: 56px; padding: 15px 24px; font-size: 17px; line-height: 24px; }
.button-row { display: flex; gap: 12px; align-items: center; justify-content: center; }

.site-header { height: 96px; padding-top: 12px; background: transparent; position: sticky; top: 0; z-index: 50; pointer-events: none; }
.nav { height: 72px; display: flex; align-items: center; gap: 32px; padding: 0 20px; border: 0; border-radius: 24px; background: rgba(255,255,255,.94); box-shadow: 0 10px 34px rgba(43,33,47,.1); backdrop-filter: blur(16px); pointer-events: auto; }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; font-weight: 700; text-decoration: none; letter-spacing: -.02em; }
.brand-mark { width: 42px; height: 42px; display: grid; place-items: center; border-radius: var(--radius-medium); color: #fff; background: var(--color-primary); font-family: Roboto, sans-serif; font-size: 18px; box-shadow: var(--shadow-surface); }
.brand-logo { display: block; width: auto; height: 44px; object-fit: contain; }
.nav-menu { display: flex; flex: 1; align-items: center; gap: 28px; min-width: 0; }
.nav-menu a, .login-link, .nav-dropdown-toggle { font-family: Roboto, Inter, sans-serif; font-size: 16px; line-height: 24px; font-weight: 400; text-decoration: none; white-space: nowrap; }
.nav-menu a { position: relative; }
.nav-menu a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 2px; background: var(--color-primary); transition: right .2s; }
.nav-menu a:hover::after { right: 0; }
.nav-dropdown { position: relative; }
.nav-dropdown-toggle { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; color: var(--color-text); background: transparent; cursor: pointer; }
.nav-dropdown-icon { width: 22px; height: 22px; display: grid; flex: 0 0 auto; place-items: center; transition: transform .22s ease; }
.nav-dropdown-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.nav-dropdown.is-open .nav-dropdown-icon, .nav-dropdown:focus-within .nav-dropdown-icon { transform: rotate(180deg); }
.nav-mega { position: absolute; z-index: 100; top: calc(100% + 14px); left: -20px; width: 360px; display: grid; gap: 8px; padding: 12px; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: rgba(255,255,255,.98); box-shadow: var(--shadow-surface); opacity: 0; visibility: hidden; transform: translateY(-8px); transition: opacity .2s ease, transform .2s ease, visibility .2s; }
.nav-dropdown:hover .nav-mega, .nav-dropdown:focus-within .nav-mega, .nav-dropdown.is-open .nav-mega { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-mega a { display: grid; gap: 2px; padding: 12px; border-radius: var(--radius-medium); white-space: normal; }
.nav-mega a::after { display: none; }
.nav-mega a:hover { background: var(--color-primary-subtle); }
.nav-mega strong { color: var(--color-text); font-size: 15px; }
.nav-mega span { color: var(--color-text-secondary); font-size: 13px; line-height: 1.4; font-weight: 400; }
.nav-actions { display: flex; align-items: center; gap: 24px; }
.account-login-link { flex: 0 0 auto; padding: 10px 0; color: var(--color-text); font-family: Roboto, Inter, sans-serif; font-size: 16px; line-height: 24px; font-weight: 400; text-decoration: none; transition: color .2s ease; }
.account-login-link:hover { color: var(--color-primary); }
.mobile-account-link, .mobile-menu-cta { display: none; }
.login-link { text-decoration: none; }
.menu-toggle { position: relative; display: none; border: 0; background: transparent; width: 44px; height: 44px; padding: 10px; border-radius: 12px; }
.menu-toggle span:not(.sr-only) { position: absolute; left: 10px; width: 24px; height: 2px; margin: 0; background: var(--color-text); border-radius: 2px; transform-origin: center; transition: transform .32s cubic-bezier(.22,1,.36,1), opacity .2s ease; }
.menu-toggle span:nth-child(1) { top: 14px; }
.menu-toggle span:nth-child(2) { top: 21px; }
.menu-toggle span:nth-child(3) { top: 28px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(.35); }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.hero { position: relative; min-height: 1144px; overflow: hidden; padding-top: 84px; background: #fff; }
.hero-glow { position: absolute; width: 720px; height: 620px; left: 50%; bottom: -110px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle at 50% 52%, rgba(156,29,231,.28), rgba(244,108,178,.18) 34%, rgba(255,255,255,0) 72%); filter: blur(18px); }
.hero-copy { position: relative; z-index: 3; text-align: center; }
.hero-copy h1 { max-width: 720px; margin: 0 auto 16px; font-size: clamp(32px, 3.5vw, 56px); line-height: 1.08; font-weight: 600; letter-spacing: -.025em; color: var(--color-text); }
.hero-copy p { max-width: 600px; margin: 0 auto 24px; color: var(--color-text-soft); font-family: var(--font-display); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.6; }
.hero-visual { position: relative; z-index: 2; height: 720px; margin-top: 20px; display: grid; grid-template-columns: 1fr 464px 1fr; align-items: center; gap: 28px; }
.lesson-polaroid { position: relative; width: 322px; justify-self: end; transform: rotate(-9deg) translateY(18px); filter: drop-shadow(0 6px 5px rgba(0,0,0,.15)); }
.lesson-polaroid > img { width: 322px; height: 240px; object-fit: cover; object-position: center; border-radius: var(--radius-media); }
.media-badge { position: relative; z-index: 2; display: inline-flex; min-height: 40px; align-items: center; margin-top: -20px; margin-left: 10px; padding: 8px 16px; color: white; background: var(--color-primary); border: 1px solid var(--color-border); border-radius: var(--radius-large); font-size: 14px; }
.portrait-wrap { position: relative; height: 668px; display: flex; align-items: flex-end; justify-content: center; }
.portrait-halo { position: absolute; inset: 65px -10px 18px; border-radius: 42% 42% 26% 26%; background: linear-gradient(180deg, #fff 0%, #fff5fd 48%, #efd1ff 100%); box-shadow: inset 0 0 80px rgba(156,29,231,.08); }
.hero-portrait { position: relative; z-index: 2; height: 625px; width: auto; object-fit: contain; border-radius: var(--radius-media); filter: drop-shadow(0 22px 30px rgba(62, 16, 84, .16)); }
.floating-note { position: absolute; z-index: 4; color: var(--color-primary); background: rgba(255,255,255,.82); border: 1px solid var(--color-accent-soft); border-radius: var(--radius-pill); padding: 8px 12px; font-weight: 600; box-shadow: var(--shadow-surface); }
.note-one { left: -68px; top: 112px; transform: rotate(-7deg); }
.note-two { right: -120px; top: 172px; transform: rotate(4deg); }
.hero-stats { position: absolute; z-index: 5; left: 50%; bottom: -10px; transform: translateX(-50%); width: 425px; min-height: 72px; display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; color: var(--color-text-soft); background: rgba(255,255,255,.86); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.9); border-radius: 22px; box-shadow: var(--shadow-float); font-size: 12px; text-align: center; }
.hero-stats span + span { border-left: 1px solid var(--color-border); }
.hero-stats strong { display: block; color: var(--color-text); font-size: 17px; }
.hero-stats span:last-child strong { display: block; }
.hero-stats span:last-child::after { content: ""; width: 8px; height: 8px; display: inline-block; margin-left: 6px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.45); animation: availability-pulse 1.8s ease-out infinite; vertical-align: 1px; }
@keyframes availability-pulse {
  0% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); opacity: 1; }
  65% { box-shadow: 0 0 0 7px rgba(34,197,94,0); opacity: .82; }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); opacity: 1; }
}
.progress-card { width: 310px; padding: 20px; justify-self: start; transform: rotate(4deg) translateY(44px); border: 1px solid rgba(255,255,255,.8); border-radius: 18px; background: rgba(255,255,255,.76); backdrop-filter: blur(14px); box-shadow: var(--shadow-float); }
.progress-card strong { display: block; margin-bottom: 12px; }
.progress-card ul { margin: 0; padding: 0; list-style: none; }
.progress-card li { position: relative; padding: 6px 4px 6px 30px; color: var(--color-text-soft); border-bottom: 1px solid #cbd5e1; font-size: 14px; }
.progress-card li::before { content: "○"; position: absolute; left: 5px; color: var(--color-text-soft); }
.progress-card li.done::before { content: "✓"; color: var(--color-primary); font-weight: 700; }

.teacher { min-height: 620px; display: grid; align-items: center; padding: 88px 0; background: #fffdf9; }
.teacher-grid { display: grid; grid-template-columns: minmax(420px, .95fr) minmax(0, 1.05fr); gap: clamp(56px,7vw,96px); align-items: center; }
.teacher-media { position: relative; min-height: 470px; display: grid; place-items: center; padding: 34px; overflow: hidden; border-radius: 44px; background: radial-gradient(circle at 18% 16%,rgba(255,255,255,.82),transparent 22%),linear-gradient(145deg,#e8d7ff 0%,#ffddec 58%,#fff0ad 100%); box-shadow: 0 26px 65px rgba(78,42,105,.12); }
.teacher-photo { position: relative; z-index: 2; width: 100%; height: 390px; object-fit: cover; object-position: 50% 61%; border: 7px solid rgba(255,255,255,.66); border-radius: 30px; box-shadow: 0 24px 50px rgba(58,33,73,.16); transform: rotate(-1.5deg); }
.teacher-media-accent { position: absolute; z-index: 3; display: grid; place-items: center; color: var(--color-primary-700); background: rgba(255,255,255,.84); border: 1px solid rgba(255,255,255,.92); box-shadow: var(--shadow-surface); backdrop-filter: blur(10px); font-weight: 700; }
.teacher-media-accent-one { top: 18px; left: 18px; width: 64px; height: 64px; border-radius: 20px; font-size: 26px; transform: rotate(-7deg); }
.teacher-media-accent-two { right: 16px; bottom: 20px; padding: 10px 16px; border-radius: var(--radius-pill); transform: rotate(5deg); }
.teacher-copy .page-eyebrow { display: table; margin: 0 0 16px; }
.teacher-copy h2 { margin-bottom: 22px; font-size: clamp(32px, 3.4vw, 48px); line-height: 1.08; font-weight: 600; letter-spacing: -.025em; }
.teacher-copy > p { max-width: 680px; margin-bottom: 16px; color: var(--color-text-secondary); font-size: 16px; line-height: 1.65; }
.teacher-proof { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin: 28px 0; }
.teacher-proof span { min-height: 86px; display: flex; flex-direction: column; justify-content: center; padding: 14px; border: 1px solid var(--color-primary-100); border-radius: 18px; color: var(--color-text-muted); background: var(--color-primary-subtle); font-size: 12px; line-height: 1.35; }
.teacher-proof strong { margin-bottom: 3px; color: var(--color-text); font-size: 16px; }
.teacher-copy .teacher-mission { margin: 0; padding-left: 18px; border-left: 3px solid var(--color-primary); color: var(--color-text); }
.teacher-copy p:last-child { margin-bottom: 0; }

.learning { min-height: 774px; padding: 64px 0; }
.section-heading { display: flex; flex-direction: column; }
.section-heading p { margin-bottom: 0; }
.segmented { display: inline-flex; margin-top: 24px; padding: 4px; gap: 4px; border-radius: var(--radius-pill); background: #f1f1f3; }
.tab { min-height: 48px; border: 0; border-radius: var(--radius-pill); padding: 10px 20px; color: var(--color-primary); background: transparent; cursor: pointer; transition: background .2s ease, box-shadow .2s ease, transform .2s ease; }
.tab:hover { background: rgba(255,255,255,.58); }
.tab.is-active { background: white; box-shadow: 0 4px 14px rgba(60,40,120,.1); animation: tab-bounce .36s cubic-bezier(.2,.9,.3,1.25); }
.course-grid.is-switching, .process-grid.is-switching { animation: content-bounce .38s cubic-bezier(.2,.9,.3,1.15); }

@keyframes tab-bounce {
  0% { transform: scale(.96); }
  58% { transform: scale(1.045); }
  100% { transform: scale(1); }
}

@keyframes content-bounce {
  0% { opacity: .35; transform: translateY(10px) scale(.985); }
  62% { opacity: 1; transform: translateY(-3px) scale(1.008); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
.course-grid { display: grid; grid-template-columns: repeat(2, 416px); gap: 40px; justify-content: center; margin-top: 48px; }
.course-card { min-height: 440px; display: flex; flex-direction: column; padding: 20px; border-radius: var(--radius-panel); background: white; box-shadow: var(--shadow-surface); }
.course-card > img, .course-card > .soft-art { width: 100%; height: 188px; object-fit: cover; border-radius: var(--radius-media); }
.course-card > img { object-position: center; }
.course-card .card-copy { min-height: 188px; display: flex; flex-direction: column; align-items: flex-start; margin-top: 24px; }
.eyebrow { display: block; margin-bottom: 4px; font-family: Roboto, Inter, sans-serif; font-size: 14px; line-height: 20px; font-weight: 500; }
.course-card h3, .workbook-card h3 { font-size: 22px; line-height: 28px; font-weight: 500; }
.course-card p, .workbook-card p { color: var(--color-text-muted); font-size: 12px; line-height: 16px; }
.course-card .button { margin-top: auto; }
.video-path-notice { max-width: 760px; margin: 40px auto 0; padding: 56px 48px; border: 1px solid var(--color-border); border-radius: var(--radius-panel); background: var(--color-primary-subtle); text-align: center; }
.video-path-notice h3 { margin: 12px 0 16px; font-size: clamp(26px, 3vw, 38px); }
.video-path-notice p { max-width: 620px; margin: 0 auto; color: var(--color-text-secondary); font-size: 17px; line-height: 1.7; }
.home-cohort-preview { width: 100%; display: grid; grid-template-columns: 1fr auto; gap: 1px 12px; margin: 2px 0 16px; padding: 12px 14px; border-radius: var(--radius-medium); background: var(--color-primary-subtle); }
.home-cohort-preview span { grid-column: 1 / -1; color: var(--color-primary-700); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.home-cohort-preview strong { font-size: 13px; font-weight: 600; }
.home-cohort-preview small { align-self: center; color: var(--color-primary-700); font-size: 12px; font-weight: 600; }
.home-cohort-preview small.is-low { color: #765b00; }
.soft-art { display: grid; place-items: center; color: white; background: radial-gradient(circle at 30% 20%, #f5a8d8, #9c1de7 75%); font-family: Roboto, sans-serif; font-size: 72px; font-weight: 700; }

.testimonials { position: relative; height: 2200px; overflow: clip; background: #fff; }
.testimonials-sticky { position: sticky; top: 0; height: 100vh; min-height: 620px; overflow: hidden; background: linear-gradient(180deg, #fff 0%, #fff 20%, rgba(255,255,255,.78) 100%); }
.testimonial-glow { position: absolute; width: 940px; height: 960px; left: 50%; top: -770px; transform: translateX(-50%); border-radius: 50%; background: radial-gradient(circle, rgba(248, 146, 178, .32), rgba(255, 246, 252, 0) 68%); }
.testimonial-content { position: relative; z-index: 1; padding-top: 64px; will-change: transform, opacity; transform: translate3d(0, 0, 0); opacity: 1; }
.review-grid { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 55px; margin-top: 48px; }
.review-card { min-height: 228px; padding: 16px; border-radius: var(--radius-panel); background: #fff; box-shadow: var(--shadow-surface); }
.review-card img { width: 52px; height: 52px; object-fit: cover; margin-bottom: 16px; border-radius: 50%; background: var(--color-primary-subtle); }
.review-card blockquote { min-height: 82px; margin: 0 0 14px; font-size: 16px; line-height: 1.4; }
.review-card > span { color: var(--color-text-muted); font-size: 13px; }
.stars { margin-top: 12px; color: var(--color-rating); letter-spacing: 2px; }
.review-controls { display: none; }

.process { min-height: 678px; padding: 64px 0; }
.process-tabs { display: flex; width: max-content; margin: 40px auto 32px; }
.process-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.process-card { min-height: 126px; display: grid; grid-template-columns: 100px 1fr; gap: 14px; align-items: center; padding: 16px; border-radius: var(--radius-panel); background: white; box-shadow: var(--shadow-surface); }
.process-card img { width: 100px; height: 100px; object-fit: cover; border-radius: var(--radius-media); }
.process-card h3 { margin-bottom: 12px; font-size: 16px; line-height: 24px; font-weight: 600; }
.process-card p { margin: 0; font-family: Roboto, Inter, sans-serif; font-size: 16px; line-height: 24px; }

.workbooks { min-height: 640px; padding: 64px 0; overflow: hidden; }
.workbook-layout { display: grid; grid-template-columns: 607px 1fr; gap: 48px; }
.workbook-intro h2 { margin-bottom: 16px; }
.workbook-intro p { max-width: 520px; margin-bottom: 24px; }
.workbook-stage { min-width: 0; overflow: hidden; }
.workbook-track { display: flex; gap: 40px; width: max-content; transition: transform .35s ease; }
.workbook-card { width: 416px; height: 440px; display: flex; flex-direction: column; padding: 20px; border-radius: var(--radius-panel); background: white; box-shadow: var(--shadow-surface); }
.workbook-card img { width: 376px; height: 188px; object-fit: cover; border-radius: var(--radius-media); margin-bottom: 24px; }
.workbook-card a { margin-top: auto; color: var(--color-text); font-size: 14px; font-weight: 500; text-underline-offset: 3px; }
.slider-controls { display: flex; gap: 12px; margin-top: 40px; }
.slider-controls button { width: 44px; height: 44px; border: 0; border-radius: 50%; color: white; background: var(--color-primary); font-size: 26px; line-height: 1; cursor: pointer; }
.slider-controls button:first-child { opacity: .5; }

.contact { position: relative; padding: 80px 0; overflow: hidden; }
.contact-grid { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, .85fr) minmax(420px, 1.15fr); justify-content: space-between; gap: 64px; overflow: hidden; padding: clamp(40px, 5vw, 64px); border: 1px solid rgba(156,29,231,.1); border-radius: var(--radius-xl); background: radial-gradient(circle at 9% 12%, rgba(253,224,71,.28), transparent 28%), radial-gradient(circle at 88% 10%, rgba(249,168,212,.3), transparent 34%), linear-gradient(135deg, var(--color-primary-50) 0%, #fff6fb 56%, #fff9d8 100%); box-shadow: 0 24px 70px rgba(95,15,143,.12); }
.contact-grid > :not(.contact-glow) { position: relative; z-index: 1; }
.contact-glow { position: absolute; z-index: 0; right: -190px; bottom: -290px; width: 560px; height: 560px; border-radius: 50%; background: radial-gradient(circle, rgba(156,29,231,.28), rgba(255,255,255,0) 70%); filter: blur(16px); pointer-events: none; }
.contact-intro { min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 12px 0; }
.contact-intro p { max-width: 500px; color: var(--color-text-secondary); }
.email-link { display: inline-flex; align-items: center; gap: 21px; width: max-content; font-size: 20px; line-height: 24px; text-decoration: none; }
.email-link span { width: 44px; height: 44px; display: grid; place-items: center; color: white; background: var(--color-primary); border-radius: 50%; font-size: 16px; }
.contact-form { display: grid; padding: 28px; border: 1px solid rgba(255,255,255,.8); border-radius: var(--radius-panel); background: rgba(255,255,255,.9); box-shadow: var(--shadow-surface); backdrop-filter: blur(12px); }
.contact-form label { margin-bottom: 8px; font-weight: 600; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid var(--color-field-border); border-radius: 8px; padding: 10px 12px; color: var(--color-text); background: #fff; }
.contact-form input { height: 40px; margin-bottom: 20px; }
.contact-form textarea { height: 190px; resize: vertical; margin-bottom: 20px; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-accent-soft); outline: 0; }
.form-footer { display: flex; align-items: center; gap: 16px; }
.form-status { margin: 0; color: var(--color-accent-strong); font-weight: 600; }
.form-status.is-error, .waitlist-status.is-error { color: #a61b1b !important; }

.site-footer { color: var(--color-text); background: #fbf7fd; border-top: 1px solid var(--color-border); }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--color-primary); }
.footer-newsletter { padding: 64px 0; color: #fff; background: linear-gradient(135deg, var(--color-primary-700), var(--color-primary)); }
.footer-newsletter-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr); gap: 64px; align-items: center; }
.footer-newsletter-copy { display: flex; gap: 18px; align-items: flex-start; }
.footer-newsletter-icon { font-size: 32px; line-height: 1; }
.footer-newsletter h2 { margin: 0 0 10px; color: #fff; font-size: clamp(25px, 3vw, 36px); }
.footer-newsletter-copy p { max-width: 580px; margin: 0; color: rgba(255,255,255,.82); font-size: 17px; line-height: 1.6; }
.footer-newsletter-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; }
.footer-newsletter-fields input { min-width: 0; height: 52px; border: 1px solid rgba(255,255,255,.5); border-radius: var(--radius-medium); padding: 0 17px; color: var(--color-text); background: #fff; font: inherit; }
.footer-newsletter-fields input:focus { outline: 3px solid rgba(255,255,255,.3); outline-offset: 2px; }
.footer-newsletter-fields .button { min-height: 52px; border-color: #fff; padding-inline: 22px; white-space: nowrap; }
.footer-newsletter-fields .button:disabled { cursor: wait; opacity: .65; transform: none; }
.footer-newsletter-legal { margin: 12px 0 0; color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.55; }
.footer-newsletter-legal a { text-decoration: underline; text-underline-offset: 3px; }
.footer-newsletter-status { min-height: 20px; margin: 7px 0 0; color: #fff; font-size: 13px; }
.footer-newsletter-status.is-error { color: #ffe3e3; }
.footer-main { display: grid; grid-template-columns: minmax(260px, 1.65fr) repeat(3, 1fr); gap: 50px; padding-top: 64px; padding-bottom: 64px; }
.footer-brand { display: inline-block; margin-bottom: 16px; color: var(--color-primary-700) !important; text-decoration: none; }
.footer-brand-logo { display: block; width: auto; height: 64px; object-fit: contain; }
.footer-brand-column p { margin: 0 0 26px; color: var(--color-text-secondary); font-size: 18px; line-height: 1.6; }
.footer-socials { display: flex; gap: 12px; color: var(--color-text-secondary); font-size: 14px; font-weight: 600; }
.footer-nav-column { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.footer-nav-column h2 { margin: 0 0 8px; color: var(--color-text); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.footer-nav-column a { color: var(--color-text-secondary); font-size: 15px; }
.footer-business { border-top: 1px solid var(--color-border); background: #fff; }
.footer-business > .shell { padding-top: 34px; padding-bottom: 34px; }
.footer-business address { display: flex; flex-direction: column; gap: 7px; color: var(--color-text-secondary); font-size: 14px; font-style: normal; line-height: 1.45; }
.footer-business address strong { color: var(--color-text); }
.footer-legal-row { display: flex; justify-content: space-between; gap: 30px; align-items: flex-start; margin-top: 28px; border-top: 1px solid var(--color-border); padding-top: 24px; }
.footer-legal-row p { margin: 0; color: var(--color-text-muted); font-size: 13px; white-space: nowrap; }
.footer-legal-row nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px 22px; }
.footer-legal-row a, .footer-legal-row button { border: 0; padding: 0; color: var(--color-text-muted); background: transparent; font: inherit; font-size: 13px; cursor: pointer; }
.footer-legal-row a:hover, .footer-legal-row button:hover { color: var(--color-primary); }

/* Simple legal pages */
.legal-page { padding: 72px 0 96px; background: #fff; }
.legal-document { max-width: 820px; }
.legal-document > header { margin-bottom: 48px; padding-bottom: 28px; border-bottom: 1px solid var(--color-border); }
.legal-document h1 { margin: 0 0 12px; font-size: clamp(34px, 5vw, 54px); line-height: 1.08; letter-spacing: -.035em; }
.legal-document .legal-updated { margin: 0; color: var(--color-text-muted); font-size: 14px; }
.legal-document h2 { margin: 46px 0 14px; font-size: 25px; line-height: 1.3; text-align: left; }
.legal-document h3 { margin: 28px 0 10px; font-size: 18px; line-height: 1.4; }
.legal-document p, .legal-document li { color: var(--color-text-secondary); font-size: 16px; line-height: 1.75; }
.legal-document p { margin: 0 0 16px; }
.legal-document ul { margin: 0 0 20px; padding-left: 24px; }
.legal-document a { color: var(--color-primary-700); font-weight: 600; text-underline-offset: 3px; }
.legal-document strong { color: var(--color-text); }
.legal-form { display: grid; gap: 9px; margin: 30px 0 56px; padding: 28px; border: 1px solid var(--color-border); border-radius: var(--radius-large); background: var(--color-primary-subtle); }
.legal-form > label:not(.legal-confirm) { margin-top: 13px; color: var(--color-text); font-size: 14px; font-weight: 700; }
.legal-form input:not([type="checkbox"]), .legal-form select, .legal-form textarea { width: 100%; border: 1px solid var(--color-field-border); border-radius: var(--radius-medium); padding: 11px 13px; color: var(--color-text); background: #fff; font: inherit; }
.legal-form input:not([type="checkbox"]), .legal-form select { min-height: 46px; }
.legal-form textarea { min-height: 132px; resize: vertical; }
.legal-form input:focus, .legal-form select:focus, .legal-form textarea:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-accent-soft); outline: 0; }
.legal-optional { color: var(--color-text-muted); font-size: 12px; font-weight: 400; }
.legal-form .legal-field-note { margin: -2px 0 4px; color: var(--color-text-muted); font-size: 12px; }
.legal-confirm { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin: 18px 0; cursor: pointer; }
.legal-confirm input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--color-primary); }
.legal-confirm span { font-size: 14px; line-height: 1.5; }
.legal-form .button { justify-self: start; }
.legal-form-status { min-height: 20px; margin: 2px 0 0 !important; color: var(--color-text-secondary); font-size: 13px !important; }

/* Events page */
.event-page { min-height: 760px; padding: 72px 0 96px; background: linear-gradient(180deg, var(--color-primary-subtle), #fff 360px); }
.event-page-heading { margin-bottom: 36px; text-align: center; }
.event-page-heading h1 { margin: 10px 0 14px; font-size: clamp(38px, 5vw, 60px); line-height: 1.05; letter-spacing: -.035em; }
.event-page-heading p { max-width: 620px; margin: 0 auto; color: var(--color-text-secondary); font-size: 17px; line-height: 1.65; }
.event-calendar-wrap { padding: 16px; border: 1px solid var(--color-border); border-radius: var(--radius-panel); background: #fff; box-shadow: var(--shadow-surface); }
.event-calendar-wrap iframe { display: block; width: 100%; min-height: 650px; border: 0; border-radius: calc(var(--radius-panel) - 8px); }

/* Pricing page */
.pricing-page { min-height: calc(100vh - 88px); background: var(--color-background); }
.pricing-page-intro { padding: 72px 0 54px; background: linear-gradient(180deg, var(--color-primary-subtle), var(--color-background)); }
.pricing-page-intro h1 { max-width: 800px; margin: 10px auto 16px; font-size: clamp(40px, 5vw, 62px); line-height: 1.06; letter-spacing: -.035em; }
.pricing-page-intro p { max-width: 650px; margin: 0 auto; color: var(--color-text-secondary); font-size: 18px; line-height: 1.65; }
.pricing-page-plans { padding: 20px 0 96px; }
.pricing-groups { max-width: 920px; }
.pricing-product-group + .pricing-product-group { margin-top: 72px; }
.pricing-group-heading { margin-bottom: 28px; }
.pricing-group-heading h2 { margin: 0 0 8px; font-size: 32px; line-height: 1.15; letter-spacing: -.02em; }
.pricing-group-heading p { margin: 0; color: var(--color-text-secondary); font-size: 17px; line-height: 1.6; }
.pricing-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 24px; }
.pricing-overview-grid .price-card { padding: 28px; }
.pricing-overview-grid .price-card { min-height: 500px; }
.pricing-overview-grid .price-card h2 { margin: 16px 0 4px; font-size: 27px; }
.pricing-overview-grid .price-card-featured { position: relative; }
.pricing-popular-badge { position: absolute; top: -16px; right: 18px; padding: 8px 14px; border-radius: 999px; color: #fff; background: var(--color-primary-700); box-shadow: 0 8px 18px rgba(52, 24, 72, .22); font-size: 12px; font-weight: 700; line-height: 1; letter-spacing: .08em; text-transform: uppercase; }
.pricing-from { min-height: 20px; margin: 8px 0 0; color: var(--color-text-muted); font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.group-price-alternative { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: -10px 0 6px; padding: 12px 14px; border: 1px solid var(--color-primary-100); border-radius: var(--radius-medium); background: var(--color-primary-subtle); }
.group-price-alternative > span { color: var(--color-text-muted); font-size: 13px; }
.group-price-alternative strong { color: var(--color-primary-700); font-size: 20px; }
.group-price-alternative em { margin-left: auto; padding: 5px 8px; border-radius: var(--radius-pill); color: #fff; background: var(--color-primary-700); font-size: 10px; font-style: normal; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.group-price-total { margin: 0 0 20px; color: var(--color-text-muted); font-size: 12px; }
.pricing-coming-soon { margin: 20px 0 28px; color: var(--color-primary-700); font-size: 34px; font-weight: 750; line-height: 1.1; }
.pricing-currency-note { max-width: 760px; margin: 28px auto 0; color: var(--color-text-muted); font-size: 13px; line-height: 1.6; text-align: center; }

/* Find your class page */
.class-page-hero { padding: 64px 0; text-align: center; }
.class-page-hero h1 { margin: 0 0 16px; font-size: clamp(30px, 3vw, 48px); line-height: 1.1; font-weight: 600; letter-spacing: -.02em; }
.class-page-hero p { margin: 0; color: var(--color-text-soft); font-size: clamp(16px, 1.3vw, 18px); }
.class-catalog { padding: 64px 0; }
.class-filter-wrap { display: flex; justify-content: center; margin-bottom: 40px; }
.class-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.class-card { min-height: 430px; display: flex; flex-direction: column; padding: 24px 16px; border-radius: var(--radius-large); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.class-card > img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; margin-bottom: 20px; border-radius: var(--radius-medium); }
.class-card h3 { margin-bottom: 8px; font-size: clamp(20px, 1.7vw, 24px); }
.class-card p { margin-bottom: 20px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.5; }
.class-card .eyebrow { margin-bottom: 2px; }
.class-meta { display: flex; justify-content: space-between; gap: 16px; margin-top: auto; margin-bottom: 16px; font-size: 14px; }
.class-meta span { color: var(--color-text-secondary); text-align: right; }
.class-card .button { align-self: flex-start; }
.level-test-banner { position: relative; overflow: hidden; padding: 64px 0; background: var(--color-primary-50); }
.level-test-banner::before, .level-test-banner::after { content: ""; position: absolute; width: 240px; height: 64px; border-radius: 50%; border: 18px solid var(--color-primary-200); opacity: .7; transform: rotate(-18deg); }
.level-test-banner::before { left: -90px; top: 0; }
.level-test-banner::after { left: 18%; bottom: -30px; }
.level-test-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.level-test-copy h2 { max-width: 600px; }
.level-test-copy p { margin-bottom: 24px; }
.level-test-grid > img { width: 100%; max-height: 340px; object-fit: contain; }
.class-reviews { overflow: clip; padding: 64px 0; background: radial-gradient(circle at 50% 12%, rgba(249,168,212,.34), rgba(255,255,255,0) 62%), #fff; }
.class-reviews .review-grid { margin-top: 40px; }

.private-page-hero { padding-block: 96px; background: linear-gradient(180deg, var(--color-primary-subtle), var(--color-background)); }
.private-page-hero .centered { display: flex; flex-direction: column; }
.private-page-hero h1 { max-width: 760px; margin-bottom: 20px; }
.private-page-hero p { max-width: 680px; margin: 0 auto 28px; color: var(--color-text-secondary); font-size: 18px; }
.page-eyebrow, .level-chip { display: inline-flex; width: fit-content; align-items: center; border-radius: var(--radius-pill); color: var(--color-primary-700); background: var(--color-primary-100); font-weight: 600; }
.page-eyebrow { margin-bottom: 16px; padding: 7px 14px; font-size: 14px; }
.private-courses { padding-block: 64px; }
.private-courses .section-heading p { margin-bottom: 0; color: var(--color-text-secondary); }
.level-course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.level-course-card { display: flex; min-height: 440px; flex-direction: column; padding: 20px; border-radius: var(--radius-panel); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.level-chip { margin-bottom: 24px; padding: 6px 11px; font-size: 13px; line-height: 1.2; }
.advanced-card .level-chip { color: var(--color-pink-500); background: var(--color-pink-100); }
.business-card .level-chip { color: var(--color-text); background: var(--color-yellow-100); }
.level-course-card h3 { margin-bottom: 8px; font-size: 22px; line-height: 28px; font-weight: 500; }
.level-course-card p { margin-bottom: 20px; color: var(--color-text-muted); font-size: 12px; line-height: 16px; }
.level-course-card ul { display: grid; gap: 8px; margin: 0 0 28px; padding: 20px 0 0; border-top: 1px solid var(--color-border); list-style: none; }
.level-course-card li { position: relative; padding-left: 22px; color: var(--color-text-secondary); font-size: 13px; line-height: 18px; }
.level-course-card li::before { content: "✓"; position: absolute; left: 0; color: var(--color-primary); font-weight: 700; }
.level-course-card .button { align-self: flex-start; margin-top: auto; }
.private-choice-hero { padding-bottom: 72px; }
.private-choice-hero h1 { max-width: 820px; }
.private-path { padding-block: 72px; }
.private-level-path { background: #fff; }
.private-goal-path { background: linear-gradient(180deg, var(--color-background), var(--color-primary-subtle)); }
.private-section-divider { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 18px; margin-bottom: 38px; color: var(--color-primary-700); font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.private-section-divider::before, .private-section-divider::after { content: ""; height: 1px; background: linear-gradient(90deg, transparent, var(--color-primary-200)); }
.private-section-divider::after { background: linear-gradient(90deg, var(--color-primary-200), transparent); }
.private-section-divider span { padding: 7px 13px; border-radius: var(--radius-pill); background: var(--color-primary-100); }
.private-path-intro { max-width: 650px; margin-bottom: 46px; }
.private-path-intro h2 { margin-bottom: 10px; font-size: clamp(32px, 4vw, 48px); line-height: 1.08; }
.private-path-intro p { margin: 0; color: var(--color-text-secondary); font-size: 18px; }
.private-level-journey { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.private-level-stop { min-width: 0; }
.private-level-marker { position: relative; display: grid; grid-template-rows: auto 22px; gap: 12px; }
.private-level-marker > span { width: fit-content; color: var(--color-primary); font-size: 30px; font-weight: 700; line-height: 1; }
.private-level-marker i { position: relative; width: 100%; height: 2px; align-self: center; background: var(--color-primary-200); }
.private-level-marker i::before { content: ""; position: absolute; z-index: 1; left: 0; top: 50%; width: 16px; height: 16px; border: 4px solid #fff; border-radius: 50%; background: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-200); transform: translateY(-50%); }
.private-level-stop:last-child .private-level-marker i { background: linear-gradient(90deg, var(--color-primary-200), transparent); }
.private-level-copy { min-height: 190px; display: flex; flex-direction: column; align-items: flex-start; padding: 18px 36px 0 0; }
.private-level-copy h3 { max-width: 220px; margin-bottom: 10px; font-size: 23px; line-height: 1.22; }
.private-level-copy p { margin: 0 0 24px; color: var(--color-text-secondary); font-size: 15px; line-height: 1.5; }
.private-level-copy a, .private-goal-link { margin-top: auto; color: var(--color-primary-700); font-size: 14px; font-weight: 700; text-decoration: none; }
.private-level-copy a:not(.button):hover, .private-goal-card:hover .private-goal-link:not(.button) { text-decoration: underline; text-underline-offset: 4px; }
.private-test-banner { padding: 0 0 72px; background: #fff; }
.private-test-banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: 34px 40px; border: 1px solid var(--color-primary-200); border-radius: var(--radius-xl); background: linear-gradient(120deg, var(--color-primary-subtle), #fff 68%); box-shadow: var(--shadow-surface); }
.private-test-banner .page-eyebrow { margin-bottom: 10px; }
.private-test-banner h2 { margin-bottom: 7px; font-size: clamp(28px, 3vw, 38px); }
.private-test-banner p { margin: 0; color: var(--color-text-secondary); font-size: 15px; }
.private-test-banner .button { flex: 0 0 auto; }
.private-goal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.private-goal-card { min-height: 330px; display: flex; flex-direction: column; align-items: flex-start; padding: 28px; border: 1px solid rgba(156,29,231,.09); border-radius: var(--radius-panel); color: var(--color-text); background: rgba(255,255,255,.94); box-shadow: var(--shadow-sevora-soft); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.private-goal-card:hover { border-color: var(--color-primary-200); box-shadow: var(--shadow-sevora-lift); transform: translateY(-5px); }
.private-goal-icon { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 24px; border-radius: 16px; color: var(--color-primary-700); background: var(--color-primary-100); font-size: 18px; font-weight: 700; }
.private-goal-speaking .private-goal-icon { color: var(--color-pink-500); background: var(--color-pink-100); }
.private-goal-business .private-goal-icon { color: var(--color-text); background: var(--color-yellow-100); }
.private-goal-label { margin-bottom: 13px; color: var(--color-primary-700); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.private-goal-speaking .private-goal-label { color: var(--color-pink-500); }
.private-goal-card h3 { max-width: 230px; margin-bottom: 10px; font-size: 25px; line-height: 1.2; }
.private-goal-card p { max-width: 220px; margin: 0 0 28px; color: var(--color-text-secondary); font-size: 15px; line-height: 1.55; }
.group-page-hero { padding-bottom: 112px; border-bottom: 1px solid var(--color-primary-100); background: linear-gradient(180deg, var(--color-primary-subtle), #fff 92%); }
.unified-page-hero { padding: 64px 0 112px; text-align: center; }
.unified-page-hero h1 { max-width: 760px; margin: 0 auto 16px; font-size: clamp(30px, 3vw, 48px); line-height: 1.1; font-weight: 600; letter-spacing: -.02em; }
.unified-page-hero p { max-width: 680px; margin: 0 auto; color: var(--color-text-soft); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.6; }
.unified-page-hero .page-eyebrow { margin-inline: auto; }
.group-courses { position: relative; padding-top: 88px; background: #fff; }
.group-courses .section-heading { max-width: 700px; margin-inline: auto; }
.group-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 40px; }
.group-course-grid > .group-course-card:only-child { grid-column: 1 / -1; width: min(100%, 560px); justify-self: center; }
.group-course-card { min-height: 650px; }
.cohort-top { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.seat-status { flex: 0 0 auto; padding: 5px 10px; border-radius: var(--radius-pill); font-size: 12px; font-weight: 600; }
.seats-open { color: var(--color-primary-700); background: var(--color-primary-subtle); }
.seats-low { color: var(--color-text); background: var(--color-yellow-100); }
.cohort-date { display: flex; gap: 14px; align-items: center; margin: 0 0 24px; padding: 16px; border-radius: var(--radius-medium); background: var(--color-primary-subtle); }
.date-icon { width: 54px; height: 54px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 14px; color: #fff; background: var(--color-primary); font-size: 20px; font-weight: 700; box-shadow: var(--shadow-surface); }
.cohort-date div { display: grid; }
.cohort-date small { color: var(--color-primary-700); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.cohort-date strong { font-size: 18px; }
.cohort-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 4px 0 24px; border-top: 1px solid var(--color-border); }
.cohort-details div { padding: 12px 0; border-bottom: 1px solid var(--color-border); }
.cohort-details div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--color-border); }
.cohort-details dt { color: var(--color-text-muted); font-size: 12px; }
.cohort-details dd { margin: 2px 0 0; font-size: 14px; font-weight: 600; }
.cohort-duration-note { margin: -8px 0 20px; padding: 12px 14px; border-radius: var(--radius-medium); color: var(--color-primary-700) !important; background: var(--color-primary-subtle); font-size: 12px !important; line-height: 1.5 !important; }
.cohort-price { display: grid; gap: 7px; margin-bottom: 22px; }
.cohort-price > div { display: flex; align-items: baseline; gap: 6px; }
.cohort-price > div > strong { font-size: 30px; line-height: 1; }
.cohort-price span { color: var(--color-text-muted); }
.cohort-price small { color: var(--color-text-muted); font-size: 12px; }
.cohort-price small strong { color: var(--color-primary-700); font-size: inherit; }
.schedule-note { max-width: 760px; margin: 24px auto 0; color: var(--color-text-muted); font-size: 13px; text-align: center; }
.group-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: auto; }
.group-card-actions .button { width: 100%; margin-top: 0; align-self: stretch; }

/* Group lesson detail */
.group-detail-page { background: var(--color-background); }
.group-detail-hero { padding: 72px 0 80px; border-bottom: 1px solid var(--color-primary-100); background: linear-gradient(145deg, var(--color-primary-subtle), #fff 74%); }
.group-detail-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(380px, 420px); gap: 56px; align-items: center; }
.group-detail-back { display: inline-flex; gap: 8px; margin-bottom: 30px; color: var(--color-primary-700); font-weight: 600; text-decoration: none; }
.group-detail-hero .level-chip { display: table; margin-bottom: 18px; }
.group-detail-hero h1 { max-width: 720px; margin-bottom: 18px; font-size: clamp(42px, 5vw, 68px); line-height: 1.04; }
.group-detail-hero h1 + p { max-width: 650px; margin: 0; color: var(--color-text-secondary); font-size: 18px; line-height: 1.65; }
.group-detail-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.group-detail-meta span { padding: 10px 14px; border: 1px solid var(--color-border); border-radius: var(--radius-pill); background: rgba(255,255,255,.76); font-size: 13px; }
.group-detail-meta strong { margin-right: 4px; }
.group-detail-booking { display: grid; gap: 18px; padding: 30px; border: 1px solid var(--color-primary-200); border-radius: var(--radius-panel); background: #fff; box-shadow: var(--shadow-float); }
.group-detail-booking .seat-status { width: max-content; }
.group-detail-booking > div { display: flex; align-items: baseline; gap: 6px; }
.group-detail-booking > div strong { font-size: 42px; line-height: 1; }
.group-detail-booking p, .group-detail-booking small { margin: 0; color: var(--color-text-muted); }
.group-detail-booking > .payment-plan-heading { display: grid; align-items: initial; gap: 5px; }
.group-detail-booking > .payment-plan-heading strong { font-size: 24px; line-height: 1.2; }
.group-detail-booking > .payment-plan-heading span { color: var(--color-text-muted); font-size: 13px; }
.payment-plan-options { display: grid; gap: 10px; margin: 0; padding: 0; border: 0; }
.payment-plan-option { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 76px; padding: 14px; border: 1px solid var(--color-border); border-radius: 18px; background: rgba(255,255,255,.76); box-shadow: var(--shadow-sevora-soft); cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, background-color .18s ease, transform .18s ease; }
.payment-plan-option:hover { border-color: var(--color-primary-200); box-shadow: var(--shadow-sevora-lift); transform: translateY(-2px); }
.payment-plan-option.is-selected { border-color: var(--color-primary); background: var(--color-primary-subtle); box-shadow: 0 0 0 2px rgba(156,29,231,.08), var(--shadow-sevora-soft); }
.payment-plan-option input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.payment-plan-option:has(input:focus-visible) { outline: 3px solid rgba(156,29,231,.25); outline-offset: 3px; }
.payment-plan-radio { width: 18px; height: 18px; border: 2px solid var(--color-primary-200); border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 4px #fff; }
.payment-plan-option.is-selected .payment-plan-radio { border-color: var(--color-primary); background: var(--color-primary); }
.payment-plan-copy { display: grid; gap: 3px; min-width: 0; }
.payment-plan-copy strong { font-size: 15px; line-height: 1.25; }
.payment-plan-copy small { font-size: 12px; line-height: 1.35; }
.payment-plan-save { padding: 5px 8px; border-radius: var(--radius-pill); color: #fff; background: var(--color-primary-700); font-size: 10px; font-weight: 700; white-space: nowrap; }
.group-detail-booking > .payment-plan-summary { display: grid; align-items: initial; gap: 5px; padding-top: 2px; }
.payment-plan-summary > span { display: flex; align-items: baseline; gap: 7px; }
.group-detail-booking > .payment-plan-summary strong { font-size: 36px; }
.payment-plan-summary > span > span { color: var(--color-text-muted); font-size: 14px; }
.payment-plan-summary p { font-size: 12px; line-height: 1.45; }
.group-detail-booking .payment-plan-note { padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.66); font-size: 11px; line-height: 1.5; }
.group-detail-content { padding: 88px 0 96px; }
.group-detail-section { padding: 0 0 80px; }
.group-detail-section + .group-detail-section { padding-top: 80px; border-top: 1px solid var(--color-border); }
.group-detail-section h2, .group-detail-closing h2 { margin-bottom: 16px; font-size: clamp(30px, 4vw, 44px); }
.group-outcome-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 30px 0 0; padding: 0; list-style: none; }
.group-outcome-grid li, .group-check-list li { position: relative; padding: 16px 16px 16px 44px; border-radius: var(--radius-medium); background: #fff; box-shadow: var(--shadow-surface); }
.group-outcome-grid li::before, .group-check-list li::before { content: "✓"; position: absolute; left: 16px; color: var(--color-primary); font-weight: 800; }
.group-month-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 32px; }
.group-month-grid article { padding: 26px; border: 1px solid var(--color-border); border-radius: var(--radius-panel); background: #fff; box-shadow: var(--shadow-surface); }
.group-month-grid article > span { display: grid; width: 40px; height: 40px; place-items: center; margin-bottom: 22px; border-radius: 50%; color: #fff; background: var(--color-primary); font-weight: 700; }
.group-month-grid h3 { margin-bottom: 10px; font-size: 20px; }
.group-month-grid p { margin: 0; color: var(--color-text-secondary); }
.group-adjustment-note { margin: 24px 0 0; color: var(--color-text-muted); font-size: 14px; }
.group-detail-split { display: grid; grid-template-columns: 1fr 1fr; gap: 52px; }
.group-detail-split aside { padding: 32px; border-radius: var(--radius-panel); background: var(--color-primary-subtle); }
.group-detail-split aside p { color: var(--color-text-secondary); }
.group-check-list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
.group-detail-closing { padding: 52px; border-radius: var(--radius-xl); background: var(--color-primary-subtle); text-align: center; }
.group-detail-closing > span { font-size: 30px; }
.group-detail-closing p { max-width: 560px; margin: 0 auto 24px; color: var(--color-text-secondary); }

/* Homepage resources */
.homepage-resources { background: var(--color-background); }
.homepage-resources-heading { display: flex; flex-direction: column; justify-content: center; gap: 24px; align-items: center; text-align: center; }
.homepage-resources-heading > div { max-width: 760px; }
.homepage-resources-heading .page-eyebrow { margin-inline: auto; }
.homepage-resources-heading h2 { margin-bottom: 12px; }
.homepage-resources-heading p { margin: 0 auto; color: var(--color-text-secondary); font-size: 17px; }
.homepage-resources-heading .button { flex: 0 0 auto; }
.resource-grid.homepage-resource-grid { grid-template-columns: repeat(2, minmax(0, 480px)); justify-content: center; gap: 24px; width: 100%; max-width: 984px; margin: 40px auto 0; }
.resource-grid.homepage-resource-grid:has(> :nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1200px; }
.resource-grid.homepage-resource-grid:not(:has(> :nth-child(2))) { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 767px) {
  .resource-grid.homepage-resource-grid,
  .resource-grid.homepage-resource-grid:has(> :nth-child(3)) { grid-template-columns: 1fr; }
}

/* Resources */
.resources-page { min-height: calc(100vh - 88px); background: var(--color-background); }
.resources-hero { padding: 72px 0 44px; background: linear-gradient(180deg, var(--color-primary-subtle), var(--color-background)); }
.resources-hero h1 { max-width: 760px; margin-bottom: 14px; font-size: clamp(42px, 5vw, 64px); line-height: 1.04; }
.resources-hero p { max-width: 620px; margin: 0; color: var(--color-text-secondary); font-size: 18px; line-height: 1.6; }
.resources-catalog { padding: 24px 0 80px; }
.resources-page .resources-catalog { position: relative; padding-top: 64px; background: #fff; }
.event-page { padding: 0; background: #fff; }
.event-calendar-section { position: relative; padding: 72px 0 96px; background: #fff; }
.resource-filters { display: flex; gap: 8px; margin-bottom: 36px; padding-bottom: 4px; overflow-x: auto; scrollbar-width: none; }
.resource-filters::-webkit-scrollbar { display: none; }
.resource-filters button { min-width: 54px; min-height: 42px; flex: 0 0 auto; border: 1px solid var(--color-border); border-radius: var(--radius-pill); padding: 9px 17px; color: var(--color-text-secondary); background: #fff; cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; transition: color .18s ease, background .18s ease, border-color .18s ease, transform .18s ease; }
.resource-filters button:hover { border-color: var(--color-primary-300); color: var(--color-primary-700); transform: translateY(-1px); }
.resource-filters button.is-active { border-color: var(--color-primary); color: #fff; background: var(--color-primary); }
.resource-filters button:focus-visible, .resource-card:focus-visible { outline: 3px solid var(--color-accent-soft); outline-offset: 3px; }
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.resource-card { min-width: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(156,29,231,.07); border-radius: var(--radius-panel); color: var(--color-text); background: #fff; box-shadow: var(--shadow-sevora-soft); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.resource-card:hover { border-color: var(--color-primary-200); box-shadow: var(--shadow-sevora-lift); transform: translateY(-5px); }
.resource-card-image { aspect-ratio: 4 / 3; overflow: hidden; background: var(--color-primary-subtle); }
.resource-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .28s ease; }
.resource-card:hover .resource-card-image img { transform: scale(1.025); }
.resource-card-body { min-height: 285px; display: flex; flex: 1; flex-direction: column; padding: 22px; }
.resource-card-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.resource-level-tag, .resource-type-tag { display: inline-flex; align-items: center; border-radius: var(--radius-pill); padding: 5px 10px; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.resource-level-tag { color: var(--color-primary-700); background: var(--color-primary-100); }
.resource-type-tag { color: var(--color-text-secondary); background: var(--color-background); }
.resource-card h2 { margin-bottom: 10px; font-size: 22px; line-height: 1.25; }
.resource-card-body > p { margin: 0 0 24px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.55; }
.resource-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--color-border); }
.resource-card-footer strong { font-size: 18px; }
.resource-card-footer strong.is-free { color: var(--color-primary-700); }
.resource-card-footer span { color: var(--color-primary-700); font-size: 13px; font-weight: 700; }
.resource-empty { padding: 56px 20px; color: var(--color-text-secondary); text-align: center; }
.resource-detail-page { min-height: calc(100vh - 88px); background: var(--color-background); }
.resource-detail-hero { padding: 72px 0; background: linear-gradient(180deg, var(--color-primary-subtle), var(--color-background)); }
.resource-detail-layout { display: grid; grid-template-columns: minmax(300px, .82fr) 1.18fr; gap: 72px; align-items: center; }
.resource-gallery { width: 100%; max-width: 480px; }
.resource-detail-cover { position: relative; overflow: hidden; border-radius: var(--radius-panel); background: #fff; box-shadow: var(--shadow-float); }
.resource-detail-cover img { width: 100%; aspect-ratio: 4 / 5; display: block; object-fit: cover; }
.resource-gallery-arrow { position: absolute; z-index: 2; top: 50%; width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid rgba(156,29,231,.12); border-radius: 50%; color: var(--color-primary-700); background: rgba(255,255,255,.92); box-shadow: var(--shadow-sevora-soft); cursor: pointer; font-size: 18px; transform: translateY(-50%); transition: color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.resource-gallery-arrow:hover { color: #fff; background: var(--color-primary); box-shadow: var(--shadow-sevora-lift); transform: translateY(-52%) scale(1.04); }
.resource-gallery-arrow:focus-visible, .resource-gallery-thumbnails button:focus-visible { outline: 3px solid var(--color-accent-soft); outline-offset: 3px; }
.resource-gallery-prev { left: 16px; }
.resource-gallery-next { right: 16px; }
.resource-gallery-thumbnails { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.resource-gallery-thumbnails button { overflow: hidden; border: 2px solid transparent; border-radius: var(--radius-medium); padding: 0; background: #fff; box-shadow: var(--shadow-sevora-soft); cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.resource-gallery-thumbnails button:hover { box-shadow: var(--shadow-sevora-lift); transform: translateY(-2px); }
.resource-gallery-thumbnails button.is-active { border-color: var(--color-primary); }
.resource-gallery-thumbnails img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.resource-gallery-counter { margin: 10px 0 0; color: var(--color-text-muted); font-size: 12px; text-align: center; }
.resource-back-link { display: inline-flex; gap: 8px; margin-bottom: 28px; color: var(--color-primary-700); font-size: 14px; font-weight: 600; text-decoration: none; }
.resource-detail-copy h1 { max-width: 680px; margin-bottom: 18px; font-size: clamp(38px, 5vw, 60px); line-height: 1.06; }
.resource-detail-description { max-width: 650px; margin-bottom: 24px; color: var(--color-text-secondary); font-size: 17px; line-height: 1.7; }
.resource-detail-price { margin-bottom: 24px; color: var(--color-primary-700); font-size: 27px; font-weight: 700; }
.resource-included { padding: 72px 0; background: #fff; }
.resource-included-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 72px; }
.resource-included h2 { font-size: clamp(32px, 4vw, 46px); }
.resource-included ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.resource-included li { position: relative; padding: 18px 18px 18px 50px; border-radius: var(--radius-medium); color: var(--color-text-secondary); background: var(--color-primary-subtle); font-size: 14px; line-height: 1.5; }
.resource-included li::before { content: "✓"; position: absolute; left: 20px; top: 18px; color: var(--color-primary); font-weight: 700; }
.resource-not-found { min-height: 70vh; display: grid; place-items: center; padding: 72px 0; }
.resource-not-found p { margin-bottom: 24px; color: var(--color-text-secondary); }

/* Admin prototype */
.admin-body { min-height: 100vh; background: linear-gradient(145deg, var(--color-primary-50), var(--color-background) 42%, #fff); }
.admin-shell { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.admin-auth-shell { width: min(460px, calc(100% - 40px)); min-height: 100vh; display: grid; align-content: center; gap: 24px; margin-inline: auto; padding-block: 48px; }
.admin-brand { width: fit-content; margin-inline: auto; }
.admin-auth-card { padding: 36px; border: 1px solid rgba(156,29,231,.09); border-radius: var(--radius-xl); background: rgba(255,255,255,.96); box-shadow: var(--shadow-float); }
.admin-auth-card h1 { margin-bottom: 10px; font-size: 32px; line-height: 1.15; }
.admin-auth-card > p { color: var(--color-text-secondary); }
.admin-form { display: grid; gap: 10px; }
.admin-form label, .admin-field-grid label { display: grid; gap: 6px; font-size: 13px; font-weight: 600; }
.admin-form input, .admin-field-grid input { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--color-field-border); border-radius: var(--radius-small); background: #fff; }
.admin-form .button { margin-top: 10px; }
.admin-form-status { min-height: 20px; margin: 0; color: var(--color-primary-700); font-size: 13px; }
.admin-card-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.admin-delete { color: #a61b1b; border-color: rgba(166, 27, 27, .35); }
.admin-demo-note { display: grid; gap: 3px; margin-top: 20px; padding: 12px; border-radius: var(--radius-medium); color: #765b00; background: var(--color-yellow-100); font-size: 12px; }
.admin-back-link { justify-self: center; color: var(--color-text-secondary); font-size: 14px; text-decoration: none; }
.admin-header { border-bottom: 1px solid var(--color-border); background: rgba(255,255,255,.94); }
.admin-header-inner { min-height: 80px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.admin-header-actions { display: flex; gap: 10px; }
.admin-signout { background: transparent; }
.admin-main { padding-block: 64px; }
.admin-title-row { display: flex; align-items: end; justify-content: space-between; gap: 32px; margin-bottom: 32px; }
.admin-title-row h1 { margin-bottom: 8px; font-size: clamp(34px, 5vw, 52px); line-height: 1.05; }
.admin-title-row p { margin-bottom: 0; color: var(--color-text-secondary); }
.admin-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 28px; }
.admin-summary > div { display: grid; gap: 3px; padding: 20px; border-radius: var(--radius-large); background: #fff; box-shadow: var(--shadow-surface); }
.admin-summary strong { font-size: 28px; }
.admin-summary span { color: var(--color-text-muted); font-size: 13px; }
.admin-cohort-list { display: grid; gap: 14px; }
.admin-cohort-card { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto auto; gap: 20px; align-items: center; padding: 20px; border-radius: var(--radius-large); background: #fff; box-shadow: var(--shadow-surface); }
.admin-cohort-date { width: 64px; height: 64px; display: grid; place-content: center; text-align: center; border-radius: 16px; color: #fff; background: var(--color-primary); line-height: 1; }
.admin-cohort-date span { font-size: 10px; font-weight: 700; }
.admin-cohort-date strong { margin-top: 5px; font-size: 23px; }
.admin-cohort-copy h2 { margin: 6px 0 2px; font-size: 20px; text-align: left; }
.admin-cohort-copy p, .admin-cohort-copy small { margin: 0; color: var(--color-text-secondary); }
.admin-cohort-heading { display: flex; align-items: center; gap: 8px; }
.admin-cohort-heading .level-chip { margin: 0; }
.admin-booking-control { display: grid; gap: 7px; text-align: center; }
.admin-booking-control > span { color: var(--color-text-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .06em; }
.admin-booking-control > div { display: flex; align-items: center; gap: 12px; }
.admin-booking-control button { width: 36px; height: 36px; border: 0; border-radius: 50%; color: var(--color-primary); background: var(--color-primary-50); cursor: pointer; font-size: 20px; }
.admin-save-status { position: fixed; right: 24px; bottom: 24px; margin: 0; padding: 11px 16px; border-radius: var(--radius-pill); color: #fff; background: var(--color-primary-700); box-shadow: var(--shadow-float); }
.admin-save-status:empty { display: none; }
.admin-dialog { width: min(720px, calc(100% - 32px)); padding: 28px; border: 0; border-radius: var(--radius-xl); box-shadow: var(--shadow-float); }
.admin-dialog::backdrop { background: rgba(34,5,51,.35); backdrop-filter: blur(4px); }
.dialog-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.dialog-heading h2 { text-align: left; }
.dialog-close { width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--color-primary-50); cursor: pointer; font-size: 24px; }
.admin-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.admin-field-grid label:nth-child(2) { grid-column: 2; }
.dialog-actions { display: flex; justify-content: end; gap: 10px; margin-top: 16px; }

.course-detail-hero { padding-block: 64px; background: var(--color-background); }
.course-detail-hero .centered { display: flex; flex-direction: column; }
.course-detail-hero h1 { max-width: 760px; margin: 0 0 16px; font-size: clamp(30px, 3vw, 48px); line-height: 1.1; letter-spacing: -.02em; }
.course-detail-hero p { max-width: 680px; margin-inline: auto; color: var(--color-text-soft); font-size: clamp(16px, 1.3vw, 18px); }
.course-detail-hero .level-chip { margin-bottom: 20px; }
.course-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
.course-facts { padding-block: 24px; background: var(--color-surface); box-shadow: 0 1px 0 var(--color-border), 0 -1px 0 var(--color-border); }
.course-facts dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.course-facts dl div { padding: 4px 28px; text-align: center; border-left: 1px solid var(--color-border); }
.course-facts dl div:first-child { border-left: 0; }
.course-facts dt { color: var(--color-text-muted); font-size: 13px; }
.course-facts dd { margin: 2px 0 0; font-weight: 600; }
.course-quick-card, .good-fit-card, .price-card { padding: 28px; border-radius: var(--radius-panel); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.quick-label { margin-bottom: 20px; font-weight: 600; }
.course-quick-card dl { margin: 0; }
.course-quick-card dl div { display: flex; justify-content: space-between; gap: 20px; padding-block: 13px; border-top: 1px solid var(--color-border); }
.course-quick-card dt { color: var(--color-text-muted); }
.course-quick-card dd { margin: 0; font-weight: 600; text-align: right; }
.course-detail-section { padding-block: 64px; }
.detail-two-column, .faq-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 72px; align-items: start; }
.section-lead { max-width: 680px; color: var(--color-text-secondary); font-size: 18px; }
.outcome-list, .good-fit-card ul, .price-card ul { display: grid; gap: 12px; padding: 0; list-style: none; }
.outcome-list { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 32px 0 0; }
.outcome-list li, .good-fit-card li, .price-card li { position: relative; padding-left: 28px; }
.outcome-list li::before, .good-fit-card li::before, .price-card li::before { content: "✓"; position: absolute; left: 0; color: var(--color-primary); font-weight: 700; }
.good-fit-card { position: relative; overflow: hidden; border: 1px solid rgba(156,29,231,.1); background: radial-gradient(circle at 88% 12%,rgba(255,255,255,.78),transparent 24%),linear-gradient(140deg,#eadcff 0%,#ffdff2 58%,#fff0ae 100%); box-shadow: 0 20px 50px rgba(60,40,120,.1); }
.good-fit-card::after { content: ""; position: absolute; right: -44px; bottom: -52px; width: 150px; height: 150px; border: 24px solid rgba(156,29,231,.1); border-radius: 50%; pointer-events: none; }
.good-fit-card > * { position: relative; z-index: 1; }
.good-fit-card h3 { font-size: 22px; }
.good-fit-card ul { margin: 20px 0 0; }
.course-curriculum { background: var(--color-surface); }
.course-curriculum .section-heading p, .pricing-section .section-heading p { color: var(--color-text-secondary); }
.curriculum-grid, .included-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin-top: 40px; }
.curriculum-grid article, .included-grid article { padding: 24px; border-radius: var(--radius-panel); background: var(--color-background); box-shadow: var(--shadow-surface); }
.curriculum-grid article > span, .included-grid article > span { display: inline-grid; width: 40px; height: 40px; margin-bottom: 32px; place-items: center; border-radius: 50%; color: var(--color-primary-700); background: var(--color-primary-100); font-weight: 700; }
.curriculum-grid h3, .included-grid h3 { font-size: 20px; font-weight: 500; }
.curriculum-grid p, .included-grid p { margin-bottom: 0; color: var(--color-text-muted); font-size: 14px; line-height: 1.55; }
.included-layout { display: grid; grid-template-columns: 340px 1fr; gap: 64px; align-items: start; }
.included-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.pricing-section { background: var(--color-primary-subtle); }
.pricing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 400px)); justify-content: center; gap: 24px; margin-top: 40px; }
.price-card { display: flex; min-height: 430px; flex-direction: column; }
.price-card-featured { box-shadow: 0 0 0 2px var(--color-primary), var(--shadow-sevora-lift); }
.price-card h3 { margin-top: 4px; font-size: 24px; }
.price { display: flex; align-items: baseline; gap: 8px; margin: 12px 0 24px; }
.price strong { font-size: 42px; line-height: 1; }
.price span { color: var(--color-text-muted); }
.price-card ul { margin: 0 0 28px; }
.price-card .button { width: 100%; margin-top: auto; }
.faq-list { display: grid; gap: 12px; }
.faq-list details { padding: 20px 24px; border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.faq-list summary { cursor: pointer; font-weight: 600; }
.faq-list details p { margin: 14px 0 0; color: var(--color-text-secondary); }
.page-faq-section { padding: 96px 0; background: transparent; }
.page-faq-layout { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); gap: clamp(48px,7vw,92px); align-items: start; }
.page-faq-intro { position: sticky; top: 112px; }
.page-faq-intro .page-eyebrow { margin-bottom: 16px; }
.page-faq-intro h2 { margin-bottom: 16px; font-size: clamp(30px,3.5vw,46px); line-height: 1.08; }
.page-faq-intro p { max-width: 460px; margin-bottom: 26px; color: var(--color-text-secondary); font-size: 16px; line-height: 1.65; }
.page-faq-section .faq-list details { border: 1px solid rgba(156,29,231,.08); background: rgba(255,255,255,.88); }
.page-faq-section .faq-list summary { list-style-position: outside; line-height: 1.45; }

.video-waitlist { min-height: calc(100vh - 88px); display: grid; place-items: center; padding-block: 80px; background: radial-gradient(circle at 50% 45%, var(--color-primary-100), transparent 44%), var(--color-background); }
.video-waitlist-card { display: flex; max-width: 760px; flex-direction: column; align-items: center; text-align: center; }
.film-icon { width: 112px; height: 112px; display: grid; margin-bottom: 28px; place-items: center; border-radius: 32px; color: var(--color-primary); background: var(--color-surface); box-shadow: var(--shadow-float); transform: rotate(-3deg); }
.film-icon svg { width: 66px; height: 66px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.film-icon .film-play { fill: var(--color-primary-100); }
.video-waitlist h1 { max-width: 700px; margin: 0 0 20px; font-size: clamp(38px, 5vw, 64px); line-height: 1.05; letter-spacing: -.035em; }
.video-waitlist-card > p { max-width: 660px; color: var(--color-text-secondary); font-size: 18px; }
.waitlist-message { display: grid; gap: 2px; width: 100%; max-width: 620px; margin-top: 16px; padding: 18px 22px; border-radius: var(--radius-medium); color: var(--color-primary-700); background: var(--color-primary-100); }
.waitlist-message span { font-size: 14px; }
.waitlist-form { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) auto; gap: 10px; width: 100%; max-width: 760px; margin-top: 20px; padding: 8px; border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.waitlist-form input:not([type="hidden"]) { min-width: 0; height: 48px; padding: 0 14px; border: 1px solid var(--color-field-border); border-radius: var(--radius-medium); color: var(--color-text); background: #fff; outline: 0; }
.waitlist-form:focus-within { box-shadow: 0 0 0 3px var(--color-accent-soft), var(--shadow-surface); }
.waitlist-status { min-height: 24px; margin: 12px 0 0; color: var(--color-primary-700) !important; font-size: 14px !important; font-weight: 600; }
.video-waitlist-card .waitlist-note { margin: 0; color: var(--color-text-muted); font-size: 12px; }
.video-course-modal { width: min(620px, calc(100% - 40px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 44px; border: 0; border-radius: var(--radius-xl); color: var(--color-text); background: var(--color-background); box-shadow: var(--shadow-float); text-align: center; }
.video-course-modal::backdrop { background: rgba(34, 5, 51, .5); backdrop-filter: blur(6px); }
.video-course-modal[open] { animation: modal-pop .28s cubic-bezier(.2,.8,.2,1); }
@keyframes modal-pop { from { opacity: 0; transform: translateY(18px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
.modal-close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border: 0; border-radius: 50%; color: var(--color-text-secondary); background: var(--color-surface); font-size: 26px; line-height: 1; cursor: pointer; }
.modal-film-icon { width: 88px; height: 88px; display: grid; margin: 0 auto 22px; place-items: center; border-radius: 24px; color: var(--color-primary); background: var(--color-surface); box-shadow: var(--shadow-surface); }
.modal-film-icon svg { width: 54px; height: 54px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.modal-film-icon .film-play { fill: var(--color-primary-100); }
.video-course-modal h2 { margin-bottom: 14px; }
.video-course-modal > p { color: var(--color-text-secondary); }
.modal-waitlist-copy { display: grid; gap: 2px; margin-top: 24px; padding: 16px; border-radius: var(--radius-medium); color: var(--color-primary-700); background: var(--color-primary-100); }
.modal-waitlist-copy span { font-size: 14px; }
.video-course-modal .waitlist-form { grid-template-columns: 1fr; gap: 12px; max-width: 460px; margin-inline: auto; padding: 0; background: transparent; box-shadow: none; }
.video-course-modal .waitlist-form:focus-within { box-shadow: none; }
.video-course-modal .waitlist-form .button { width: 100%; }
.video-course-modal .waitlist-status { grid-column: 1 / -1; margin: 0; }
.resource-download-modal { width: min(560px, calc(100% - 40px)); }
.resource-download-modal .page-eyebrow { margin-inline: auto; }
.resource-download-modal .resource-download-form { margin-top: 24px; }
.resource-download-modal .test-processing-note a { color: var(--color-primary-700); font-weight: 600; text-underline-offset: 3px; }

@media (max-width: 1180px) {
  .pricing-overview-grid { grid-template-columns: repeat(2, minmax(0, 420px)); gap: 24px; }
  .pricing-overview-grid .price-card { padding: 28px; }
  .shell, .shell-narrow { width: min(100% - 80px, 1040px); }
  .nav-menu { gap: 16px; }
  .nav-menu a { font-size: 14px; }
  .hero-visual { grid-template-columns: 1fr 400px 1fr; }
  .portrait-wrap { height: 610px; }
  .hero-portrait { height: 570px; }
  .lesson-polaroid { width: 280px; }
  .lesson-polaroid > img { width: 280px; height: 210px; }
  .progress-card { width: 280px; }
  .teacher-grid { grid-template-columns: 44% 1fr; }
  .teacher-photo { width: 100%; }
  .contact-grid { grid-template-columns: 42% 1fr; gap: 48px; }
  .workbook-layout { grid-template-columns: 45% 1fr; }
}

@media (max-width: 900px) {
  html { scroll-padding-top: 72px; }
  html { scroll-padding-top: 84px; }
  .site-header { height: 84px; padding-top: 8px; }
  .nav { height: 64px; justify-content: space-between; padding: 0 14px; border-radius: 20px; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .brand, .menu-toggle { position: relative; z-index: 102; }
  .menu-toggle { display: block; margin-left: auto; }
  .nav-menu { position: fixed; z-index: 100; inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh; margin: 0; display: flex; flex-direction: column; align-items: stretch; gap: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; padding: 112px max(24px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left)); border: 0; border-radius: 0; background: radial-gradient(circle at 85% 12%, rgba(249,168,212,.22), transparent 34%), linear-gradient(150deg, #fff 0%, var(--color-primary-subtle) 100%); box-shadow: none; transform: translate3d(-100%,0,0); visibility: hidden; transition: transform .38s cubic-bezier(.22,1,.36,1), visibility 0s linear .38s; }
  .nav-menu.is-open { transform: translateX(0); visibility: visible; transition-delay: 0s; }
  .nav-menu > a:not(.mobile-menu-cta) { padding: 16px 0; border-bottom: 1px solid rgba(156,29,231,.1); font-size: 20px; line-height: 28px; }
  .nav-menu a::after { display: none; }
  .nav-dropdown { border-bottom: 1px solid rgba(156,29,231,.1); }
  .nav-dropdown-toggle { width: 100%; justify-content: space-between; padding: 16px 0; font-size: 20px; line-height: 28px; }
  .nav-dropdown-toggle .nav-dropdown-icon { width: 30px; height: 30px; }
  .nav-mega { position: static; width: 100%; display: none; gap: 4px; padding: 4px 0 8px 12px; border: 0; border-radius: 0; background: transparent; box-shadow: none; opacity: 1; visibility: visible; transform: none; transition: none; }
  .nav-dropdown.is-open .nav-mega { display: grid; }
  .nav-mega a { padding: 10px 12px; }
  .nav-menu .mobile-account-link { display: block; color: var(--color-text); font-weight: 400 !important; }
  .nav-menu .mobile-menu-cta { display: inline-flex; width: 100%; min-height: 52px; margin-top: auto; color: #fff; font-size: 16px; }
  .nav-actions .login-link { display: none; }
  .nav-actions .button { min-height: 42px; padding: 9px 16px; font-size: 14px; }
  .hero { min-height: 1030px; padding-top: 54px; }
  .hero-visual { height: 690px; grid-template-columns: 1fr; margin-top: 48px; }
  .portrait-wrap { grid-column: 1; grid-row: 1; height: 650px; }
  .lesson-polaroid { position: absolute; z-index: 5; left: 6%; bottom: 70px; width: 230px; }
  .lesson-polaroid > img { width: 230px; height: 170px; }
  .progress-card { position: absolute; z-index: 4; right: 4%; bottom: 108px; width: 245px; }
  .teacher-grid { grid-template-columns: 1fr; }
  .teacher-media { width: 100%; max-width: 680px; margin-inline: auto; }
  .teacher-photo { height: 420px; margin-inline: auto; }
  .teacher-copy { max-width: 620px; margin-inline: auto; }
  .teacher { padding: 64px 0; }
  .course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-grid { gap: 24px; }
  .testimonials { height: 2200px; }
  .process-grid { grid-template-columns: 1fr; }
  .process { min-height: auto; }
  .workbook-layout { grid-template-columns: 1fr; }
  .workbooks { min-height: auto; }
  .workbook-stage { overflow: hidden; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; padding: 48px; }
  .contact-intro { height: auto; gap: 36px; }
  .contact-form { max-width: 648px; width: 100%; }
  .contact { min-height: auto; }
  .footer-newsletter-inner { grid-template-columns: 1fr; gap: 30px; }
  .footer-main { grid-template-columns: 1.5fr repeat(3, 1fr); gap: 30px; }
  .class-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .level-test-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .level-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .private-level-copy { padding-right: 24px; }
  .private-goal-card { min-height: 310px; padding: 24px; }
  .group-course-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .detail-two-column, .faq-layout { gap: 40px; }
  .curriculum-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .included-layout { grid-template-columns: 1fr; gap: 32px; }
  .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resource-detail-layout { gap: 44px; }
  .resource-included-layout { gap: 40px; }
}

@media (max-width: 767px) {
  h2 { text-align: center; }
  .teacher, .learning, .process, .workbooks, .contact { padding-block: 48px; }
  .testimonials { height: auto !important; padding-block: 48px; }
  .testimonials-sticky { position: relative; height: auto; min-height: 0; overflow: visible; }
  .testimonial-content { padding-top: 0; transform: none !important; opacity: 1 !important; }
  .review-grid { display: flex; gap: 16px; margin-top: 32px; padding: 4px 20px 24px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .review-grid::-webkit-scrollbar { display: none; }
  .review-card { flex: 0 0 100%; min-width: 0; min-height: 248px; scroll-snap-align: start; }
  .review-controls { display: flex; justify-content: center; gap: 12px; margin-top: 8px; }
  .review-controls button { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; color: white; background: var(--color-primary); font-size: 22px; line-height: 1; cursor: pointer; }
  .process-tabs { width: 100%; max-width: 100%; overflow: visible; }
  .process-tabs .tab { flex: 1 1 0; min-width: 0; padding-inline: 6px; font-size: 13px; white-space: nowrap; }
  .workbook-intro { text-align: center; }
  .workbook-intro p { margin-inline: auto; }
  .workbook-intro .button { margin-inline: auto; }
  .workbook-stage { overflow: visible; }
  .slider-controls { justify-content: center; }
  .contact-intro { align-items: center; text-align: center; }
  .contact-intro p { margin-inline: auto; }
  .email-link { margin-inline: auto; }
  .email-link span { width: 56px; height: 56px; font-size: 32px; }
  .class-page-hero { padding: 48px 0; }
  .class-catalog, .level-test-banner, .class-reviews { padding-block: 48px; }
  .class-filter-wrap { margin-bottom: 32px; }
  .class-card-grid { grid-template-columns: 1fr; gap: 16px; }
  .class-card { min-height: 410px; }
  .level-test-grid { grid-template-columns: 1fr; text-align: center; }
  .level-test-copy h2, .level-test-copy p { margin-inline: auto; }
  .level-test-grid > img { max-height: 280px; }
  .class-reviews .review-grid { margin-top: 32px; }
  .private-page-hero { padding-block: 64px; }
  .private-choice-hero { padding-bottom: 52px; }
  .private-path { padding-block: 52px; }
  .private-section-divider { margin-bottom: 28px; }
  .private-path-intro { margin: 0 auto 34px; text-align: center; }
  .private-path-intro h2 { font-size: 32px; }
  .private-path-intro p { font-size: 16px; }
  .private-level-journey { grid-template-columns: 1fr; gap: 0; padding-left: 14px; }
  .private-level-stop { display: grid; grid-template-columns: 54px 1fr; }
  .private-level-marker { grid-template: auto 1fr / 1fr; justify-items: center; gap: 8px; }
  .private-level-marker > span { width: 100%; font-size: 22px; text-align: center; }
  .private-level-marker i { width: 2px; height: 100%; min-height: 126px; background: var(--color-primary-200); }
  .private-level-marker i::before { left: 50%; top: 0; transform: translate(-50%, 0); }
  .private-level-stop:last-child .private-level-marker i { min-height: 88px; background: linear-gradient(180deg, var(--color-primary-200), transparent); }
  .private-level-copy { min-height: 160px; padding: 0 0 34px 18px; }
  .private-level-copy h3 { max-width: none; font-size: 21px; }
  .private-level-copy p { margin-bottom: 16px; }
  .private-test-banner { padding: 0 0 52px; }
  .private-test-banner-inner { flex-direction: column; align-items: stretch; gap: 22px; padding: 28px 24px; text-align: center; }
  .private-test-banner h2 { font-size: 28px; }
  .private-test-banner .page-eyebrow { margin-inline: auto; }
  .private-test-banner .button { width: 100%; }
  .private-goal-grid { grid-template-columns: 1fr; gap: 14px; }
  .private-goal-card { min-height: 0; display: grid; grid-template-columns: 52px 1fr auto; grid-template-areas: "icon label link" "icon title link" "icon copy link"; column-gap: 16px; align-items: center; padding: 22px; }
  .private-goal-icon { grid-area: icon; margin: 0; }
  .private-goal-label { grid-area: label; align-self: end; margin-bottom: 4px; }
  .private-goal-card h3 { grid-area: title; max-width: none; margin-bottom: 4px; font-size: 20px; }
  .private-goal-card p { grid-area: copy; max-width: none; margin: 0; font-size: 14px; }
  .private-goal-link { grid-area: link; margin: 0; }
  .private-courses { padding-block: 48px; }
  .level-course-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .group-course-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .level-course-card { min-height: 0; padding: 24px; }
  .group-course-card { min-height: 0; }
  .resources-hero { padding: 48px 0 30px; text-align: center; }
  .resources-hero .page-eyebrow { margin-inline: auto; }
  .resources-hero h1 { font-size: 40px; }
  .resources-hero p { margin-inline: auto; font-size: 16px; }
  .resources-catalog { padding: 18px 0 56px; }
  .resource-filters { margin-inline: -20px; margin-bottom: 28px; padding-inline: 20px; scroll-padding-inline: 20px; }
  .resource-grid { grid-template-columns: 1fr; gap: 16px; }
  .resource-card-body { min-height: 250px; }
  .resource-detail-hero { padding: 48px 0; }
  .resource-detail-layout { grid-template-columns: 1fr; gap: 0; }
  .resource-detail-copy { display: contents; text-align: center; }
  .resource-back-link { order: 1; justify-self: center; margin-bottom: 22px; }
  .resource-detail-copy .resource-card-tags { order: 2; justify-self: center; justify-content: center; }
  .resource-detail-copy h1 { order: 3; justify-self: center; font-size: 38px; }
  .resource-detail-description { order: 4; justify-self: center; }
  .resource-gallery { order: 5; max-width: 420px; margin: 8px auto 30px; justify-self: center; }
  .resource-detail-price { order: 6; justify-self: center; }
  .resource-detail-copy > .button { order: 7; justify-self: center; }
  .resource-gallery-arrow { width: 40px; height: 40px; }
  .resource-gallery-prev { left: 12px; }
  .resource-gallery-next { right: 12px; }
  .resource-included { padding: 52px 0; }
  .resource-included-layout { grid-template-columns: 1fr; gap: 28px; }
  .resource-included-layout > div { text-align: center; }
  .resource-included-layout .page-eyebrow { margin-inline: auto; }
  .resource-included ul { grid-template-columns: 1fr; }
  .course-detail-hero, .course-detail-section { padding-block: 48px; }
  .detail-two-column, .faq-layout { grid-template-columns: 1fr; }
  .course-facts dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 0; }
  .course-facts dl div:nth-child(3) { border-left: 0; }
  .outcome-list, .included-grid, .pricing-grid { grid-template-columns: 1fr; }
  .pricing-grid { max-width: 520px; margin-inline: auto; margin-top: 32px; }
  .price-card { min-height: 390px; }
  .page-faq-section { padding-block: 64px; }
  .page-faq-layout { grid-template-columns: 1fr; gap: 34px; }
  .page-faq-intro { position: static; text-align: center; }
  .page-faq-intro .page-eyebrow { margin-inline: auto; }
  .page-faq-intro p { margin-inline: auto; }
}

@media (max-width: 680px) {
  .shell, .shell-narrow { width: calc(100% - 40px); }
  h2 { font-size: 26px; line-height: 1.15; text-align: center; }
  .desktop-only { display: none; }
  .brand span:last-child { display: none; }
  .brand-logo { width: auto; height: 44px; }
  .nav { gap: 10px; }
  .nav-actions { gap: 8px; }
  .nav-actions .button { padding-inline: 14px; }
  .hero { min-height: 880px; padding-top: 30px; }
  .hero-copy h1 { font-size: 32px; }
  .hero-copy p { font-size: 18px; line-height: 26px; }
  .hero .button-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: 360px; margin-inline: auto; }
  .hero .button-row .button { width: 100%; padding-inline: 10px; }
  .hero-visual { width: 100%; height: 540px; margin-top: 32px; }
  .lesson-polaroid, .progress-card { display: none; }
  .portrait-wrap { height: 520px; width: min(100%, 390px); margin: auto; }
  .hero-portrait { height: 480px; }
  .portrait-halo { inset: 55px 10px 10px; }
  .hero-stats { width: 92%; bottom: 6px; }
  .lesson-polaroid { left: 10px; bottom: 112px; width: 160px; }
  .lesson-polaroid > img { width: 160px; height: 120px; }
  .media-badge { min-height: 32px; padding: 6px 10px; margin-top: -14px; font-size: 11px; }
  .progress-card { right: 8px; bottom: 108px; width: 178px; padding: 12px; }
  .progress-card li { padding-left: 22px; font-size: 10px; }
  .note-one { left: 4px; top: 70px; font-size: 12px; }
  .note-two { right: -4px; top: 122px; font-size: 11px; }
  .teacher-media { min-height: 360px; padding: 22px; border-radius: 32px; }
  .teacher-photo { height: 310px; border-width: 5px; border-radius: 24px; }
  .teacher-proof { grid-template-columns: 1fr; }
  .teacher-proof span { min-height: 68px; }
  .teacher-copy .page-eyebrow { margin-inline: auto; }
  .teacher-copy > p, .teacher-copy .teacher-mission { text-align: left; }
  .teacher-copy h2 { font-size: 26px; line-height: 1.15; }
  .learning { padding-block: 48px; }
  .course-grid { grid-template-columns: 1fr; }
  .course-card { width: 100%; min-height: 420px; }
  .course-card .card-copy { min-height: 172px; }
  .video-path-notice { margin-top: 28px; padding: 38px 22px; }
  .video-path-notice h3 { font-size: 27px; }
  .testimonials { height: auto !important; }
  .process-card { grid-template-columns: 76px 1fr; }
  .process-card img { width: 76px; height: 76px; }
  .process-card p { font-size: 14px; line-height: 20px; }
  .workbook-track { gap: 16px; }
  .workbook-card { width: calc(100vw - 72px); }
  .workbook-card img { width: 100%; }
  .email-link { font-size: 16px; }
  .contact-form { padding: 20px; }
  .contact-grid { gap: 32px; padding: 32px 20px; border-radius: var(--radius-large); }
  .footer-newsletter { padding: 46px 0; }
  .footer-newsletter-copy { gap: 12px; }
  .footer-newsletter-fields { grid-template-columns: 1fr; }
  .footer-newsletter-fields .button { width: 100%; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 38px 28px; padding-top: 48px; padding-bottom: 48px; }
  .footer-brand-column { grid-column: 1 / -1; }
  .footer-legal-row { flex-direction: column; }
  .footer-legal-row nav { justify-content: flex-start; }
  .legal-page { padding: 48px 0 72px; }
  .legal-document > header { margin-bottom: 34px; }
  .legal-document h1 { font-size: 34px; }
  .legal-document h2 { margin-top: 38px; font-size: 22px; }
  .legal-form { padding: 20px; }
  .legal-form .button { width: 100%; }
  .event-page { padding: 48px 0 72px; }
  .event-page-heading { margin-bottom: 28px; }
  .event-calendar-wrap { width: calc(100% - 24px); padding: 8px; }
  .event-calendar-wrap iframe { min-height: 600px; }
  .pricing-page-intro { padding: 48px 0 40px; }
  .pricing-product-group + .pricing-product-group { margin-top: 56px; }
  .pricing-group-heading { margin-bottom: 24px; text-align: center; }
  .pricing-overview-grid { grid-template-columns: 1fr; }
  .pricing-overview-grid .price-card { min-height: 440px; }
  .private-page-hero h1 { font-size: 34px; line-height: 1.12; }
  .private-page-hero p { font-size: 16px; }
  .level-course-card .button { width: 100%; }
  .cohort-top { gap: 8px; }
  .group-course-grid { position: relative; gap: 20px; padding-left: 16px; }
  .group-course-grid::before { content: ""; position: absolute; inset: 4px auto 4px 3px; width: 2px; border-radius: 2px; background: var(--color-primary-100); }
  .group-course-card { position: relative; padding: 20px; border-radius: 20px; box-shadow: 0 8px 28px rgba(39, 23, 52, .08); }
  .group-course-card::before { content: ""; position: absolute; left: -19px; top: 28px; width: 10px; height: 10px; border: 3px solid var(--color-background); border-radius: 50%; background: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary-100); }
  .group-course-card .level-chip { margin-bottom: 0; font-size: 11px; }
  .seat-status { padding: 5px 8px; font-size: 11px; }
  .cohort-date { order: -1; margin: 14px 0 22px; padding: 12px; }
  .date-icon { width: 46px; height: 46px; border-radius: 12px; font-size: 17px; }
  .cohort-date strong { font-size: 16px; }
  .group-course-card h3 { margin-bottom: 8px; font-size: 20px; line-height: 25px; }
  .group-course-card > p { margin-bottom: 20px; font-size: 13px; line-height: 19px; }
  .cohort-details { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 24px; border: 0; }
  .cohort-details div { padding: 11px 12px; border: 0; border-radius: 12px; background: var(--color-background); }
  .cohort-details div:first-child { display: none; }
  .cohort-details div:nth-child(2) { grid-column: 1 / -1; }
  .cohort-details div:nth-child(even) { padding-left: 12px; border-left: 0; }
  .cohort-details dt { font-size: 11px; }
  .cohort-details dd { font-size: 13px; }
  .cohort-price { padding-top: 2px; }
  .cohort-price strong { font-size: 28px; }
  .cohort-price small { font-size: 12px; }
  .course-detail-hero h1 { font-size: 32px; }
  .course-detail-hero p { font-size: 16px; }
  .course-hero-actions { display: grid; }
  .course-hero-actions .button { width: 100%; }
  .course-facts dl { grid-template-columns: 1fr 1fr; }
  .course-facts dl div { padding-inline: 12px; }
  .curriculum-grid { grid-template-columns: 1fr; gap: 16px; }
  .video-waitlist { min-height: calc(100vh - 72px); padding-block: 56px; }
  .film-icon { width: 92px; height: 92px; border-radius: 26px; }
  .film-icon svg { width: 54px; height: 54px; }
  .video-waitlist h1 { font-size: 36px; }
  .video-waitlist-card > p { font-size: 16px; }
  .waitlist-form { grid-template-columns: 1fr; }
  .waitlist-form .button { width: 100%; }
  .video-course-modal { padding: 36px 20px 28px; }
  .video-course-modal h2 { font-size: 26px; }
  .admin-shell { width: calc(100% - 32px); }
  .admin-auth-card { padding: 28px 22px; }
  .admin-header-inner { min-height: 72px; }
  .admin-header-actions .button-secondary { display: none; }
  .admin-main { padding-block: 40px; }
  .admin-title-row { display: grid; align-items: start; gap: 20px; }
  .admin-title-row .button { width: 100%; }
  .admin-summary { grid-template-columns: 1fr 1fr; }
  .admin-summary > div:last-child { grid-column: 1 / -1; }
  .admin-cohort-card { grid-template-columns: 54px minmax(0, 1fr); gap: 14px; padding: 18px; }
  .admin-cohort-date { width: 54px; height: 54px; border-radius: 14px; }
  .admin-cohort-copy h2 { font-size: 18px; }
  .admin-cohort-heading { justify-content: space-between; }
  .admin-booking-control { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; padding-top: 14px; border-top: 1px solid var(--color-border); text-align: left; }
  .admin-edit { grid-column: 1 / -1; width: 100%; }
  .admin-field-grid { grid-template-columns: 1fr; }
  .admin-field-grid label:nth-child(2) { grid-column: auto; }
  .admin-dialog { padding: 22px 18px; }
  .dialog-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-stats span:last-child::after { animation: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  .section-reveal-ready main > section > * { opacity: 1 !important; filter: none !important; transform: none !important; transition: none !important; }
  .testimonials { height: auto !important; padding-block: 60px; }
  .testimonials-sticky { position: relative; height: auto; min-height: 0; overflow: visible; }
  .testimonial-content { padding-top: 0; transform: none !important; opacity: 1 !important; }
}

/* Consumer information, account and checkout */
.legal-business-card, .legal-model-form { margin: 24px 0; padding: 22px 24px; border: 1px solid var(--color-primary-100); border-radius: var(--radius-card); background: var(--color-primary-subtle); }
.legal-document [data-cookie-settings] { padding: 0; border: 0; color: var(--color-primary-700); background: transparent; font: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.legal-model-form p { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--color-primary-100); }
.legal-model-form p:last-child { border-bottom: 0; }
.account-section, .faq-page-section { padding: 88px 0 112px; background: #fffdf9; }
.account-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.account-card { display: flex; flex-direction: column; align-items: flex-start; min-height: 320px; padding: 34px; border: 1px solid var(--color-primary-100); border-radius: var(--radius-card); background: #fff; box-shadow: var(--shadow-surface); }
.account-card h2 { margin: 18px 0 12px; }
.account-card .button { margin-top: auto; }
.account-card-wide { grid-column: 1 / -1; min-height: 240px; background: linear-gradient(135deg,#f3e9ff,#fff0f8 62%,#fff3c7); }
.faq-page-section section + section { margin-top: 72px; }
.faq-page-section section > h2 { margin-bottom: 24px; font-size: clamp(28px,3vw,40px); }
.faq-list summary h3 { display: inline; margin: 0; font-size: inherit; }
.faq-policy-link { margin-top: 64px; padding: 24px; border-radius: var(--radius-card); background: var(--color-primary-subtle); text-align: center; }
.checkout-dialog { width: min(760px,calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 0; border-radius: 32px; background: transparent; }
.checkout-dialog::backdrop { background: rgba(32,18,42,.62); backdrop-filter: blur(5px); }
.checkout-dialog-card { position: relative; padding: clamp(26px,5vw,48px); border: 1px solid rgba(255,255,255,.8); border-radius: 32px; background: #fff; box-shadow: var(--shadow-float); }
.checkout-dialog-close { position: absolute; top: 16px; right: 18px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--color-primary-subtle); color: var(--color-text); font-size: 26px; cursor: pointer; }
.checkout-dialog h2 { margin: 14px 48px 22px 0; font-size: 32px; }
.checkout-summary { display: grid; gap: 0; margin: 0 0 20px; border: 1px solid var(--color-border); border-radius: 20px; overflow: hidden; }
.checkout-summary > div { display: grid; grid-template-columns: 140px 1fr; gap: 18px; padding: 13px 16px; border-bottom: 1px solid var(--color-border); }
.checkout-summary > div:last-child { border-bottom: 0; }
.checkout-summary dt { font-weight: 700; }.checkout-summary dd { margin: 0; color: var(--color-text-secondary); }
.checkout-legal-copy { margin: 0 0 12px; color: var(--color-text-secondary); font-size: 13px; line-height: 1.45; }
.checkout-consent { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; margin: 12px 0; padding: 14px; border: 1px solid var(--color-primary-100); border-radius: 16px; background: var(--color-primary-subtle); font-size: 13px; line-height: 1.5; }
.checkout-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--color-primary); }
.checkout-required { color: var(--color-primary-700); }
.checkout-pay-button { width: 100%; margin-top: 18px; }
.checkout-security-note { margin: 12px 0 0; color: var(--color-text-muted); font-size: 12px; text-align: center; }
.cookie-consent-panel { position: fixed; z-index: 1000; inset: auto 20px 20px; display: flex; justify-content: center; pointer-events: none; }
.cookie-consent-panel[hidden] { display: none; }
.cookie-consent-card { width: min(100%, 980px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 28px; align-items: end; padding: 28px; border: 1px solid rgba(255,255,255,.86); border-radius: 28px; background: radial-gradient(circle at 90% 10%,rgba(255,255,255,.82),transparent 20%),linear-gradient(135deg,#eee1ff,#ffe7f4 62%,#fff0ae); box-shadow: 0 24px 70px rgba(48,24,64,.22); pointer-events: auto; }
.cookie-consent-copy .page-eyebrow { margin-bottom: 10px; background: rgba(255,255,255,.72); }
.cookie-consent-copy h2 { margin: 0 0 10px; font-size: 24px; line-height: 1.2; text-align: left; }
.cookie-consent-copy p { max-width: 680px; margin: 0 0 8px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.55; }
.cookie-consent-copy a { color: var(--color-primary-700); font-size: 13px; font-weight: 600; }
.cookie-consent-copy .cookie-consent-status { color: var(--color-primary-700); font-size: 12px; font-weight: 600; }
.cookie-consent-actions { display: flex; gap: 10px; }
.cookie-consent-actions .button { white-space: nowrap; }
.checkout-inline-summary { display: grid; gap: 5px; width: 100%; margin-top: auto; margin-bottom: 12px; padding: 14px; border: 1px solid var(--color-primary-100); border-radius: 16px; background: var(--color-primary-subtle); color: var(--color-text-secondary); font-size: 12px; line-height: 1.4; }
.checkout-inline-summary strong { color: var(--color-text); font-size: 13px; }
.checkout-inline-summary + .button { margin-top: 0 !important; }
.group-detail-booking > div.checkout-inline-summary {
  display: grid;
  grid-template-columns: 1fr;
  align-items: initial;
  gap: 5px;
  width: auto;
  max-width: 100%;
  margin: 0 0 4px;
  padding: 14px;
  box-sizing: border-box;
}
.group-detail-booking > div.checkout-inline-summary strong {
  font-size: 13px;
  line-height: 1.4;
}
.group-detail-booking > div.checkout-inline-summary span,
.group-detail-booking > div.checkout-inline-summary a {
  font-size: 12px;
  line-height: 1.4;
}
.group-detail-booking .checkout-inline-summary + .button { width: 100%; }
.recording-notice-section, .group-recording-summary { padding: 72px 0; background: #fffdf9; }
.recording-notice, .recording-summary-card { padding: clamp(32px,6vw,68px); border-radius: 44px; background: linear-gradient(135deg,#eee1ff,#ffe7f4 58%,#fff0ae); box-shadow: var(--shadow-surface); }
.recording-notice { display: grid; grid-template-columns: .9fr 1.1fr; gap: 48px; }
.recording-notice h2, .recording-summary-card h2 { margin: 12px 0 16px; }
.recording-policy-link { grid-column: 1 / -1; margin: 0; padding-top: 20px; border-top: 1px solid rgba(156,29,231,.16); }

@media (max-width: 720px) {
  .account-grid, .recording-notice { grid-template-columns: 1fr; }
  .account-card-wide { grid-column: auto; }
  .checkout-summary > div { grid-template-columns: 1fr; gap: 4px; }
  .checkout-dialog-card { border-radius: 24px; }
  .cookie-consent-panel { inset: auto 12px 12px; }
  .cookie-consent-card { grid-template-columns: 1fr; gap: 20px; padding: 22px 18px; border-radius: 22px; }
  .cookie-consent-copy h2 { font-size: 21px; }
  .cookie-consent-actions { display: grid; grid-template-columns: 1fr; }
  .cookie-consent-actions .button { width: 100%; }
}

@media print {
  .site-header, .site-footer, .legal-page > :not(.legal-document), .legal-document > :not(.model-withdrawal-form) { display: none !important; }
  .model-withdrawal-form { display: block; }
}

/* Korean level test */
.nav-level-test-mobile { display: none; }
.level-test-body { min-height: 100vh; background: var(--color-background); }
.level-test-page { min-height: calc(100vh - 88px); background: radial-gradient(circle at 50% 6%, rgba(237, 213, 251, .72), rgba(253, 244, 255, .28) 28%, rgba(255, 253, 249, 0) 58%); }
.test-screen { min-height: calc(100vh - 88px); display: grid; place-items: center; padding: 64px 20px 80px; scroll-snap-align: none; }
.test-panel { width: min(100%, 780px); padding: 48px; border: 1px solid rgba(156, 29, 231, .08); border-radius: var(--radius-xl); background: rgba(255,255,255,.96); box-shadow: var(--shadow-surface); }
.test-intro-panel, .test-gate-panel, .test-result-panel { text-align: center; }
.test-intro h1, .test-gate-panel h1 { max-width: 680px; margin: 0 auto 16px; font-size: clamp(32px, 4vw, 52px); line-height: 1.08; letter-spacing: -.025em; }
.test-panel h1:focus { outline: none; }
.test-lead { max-width: 620px; margin: 0 auto 24px; color: var(--color-text-secondary); font-size: 18px; line-height: 1.6; }
.test-levels { display: flex; justify-content: center; gap: 12px; margin: 0 0 28px; color: var(--color-primary-700); font-size: 18px; font-weight: 700; letter-spacing: .02em; }
.test-levels span { color: var(--color-primary-300); }
.test-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; max-width: 620px; margin: 0 auto 32px; padding: 0; list-style: none; }
.test-facts li { min-height: 88px; display: grid; place-items: center; align-content: center; padding: 12px; border-radius: var(--radius-large); color: var(--color-text-secondary); background: var(--color-primary-subtle); font-size: 14px; line-height: 1.35; }
.test-facts span { color: var(--color-primary); font-size: 22px; font-weight: 700; }
.test-primary-action { min-width: 190px; }
.test-disclaimer { max-width: 630px; margin: 24px auto 0; color: var(--color-text-muted); font-size: 13px; line-height: 1.5; }
.test-question-shell { width: min(100%, 820px); }
.test-progress-header { margin-bottom: 16px; }
.test-progress-header p { margin-bottom: 8px; color: var(--color-primary-700); font-size: 14px; font-weight: 700; }
.test-progress-track { height: 9px; overflow: hidden; border-radius: var(--radius-pill); background: var(--color-primary-100); }
.test-progress-track span { display: block; width: 10%; height: 100%; border-radius: inherit; background: var(--color-primary); transition: width .28s ease; }
.test-question-card { width: 100%; text-align: left; }
.test-question-instruction { margin-bottom: 16px; color: var(--color-primary-700); font-size: 14px; font-weight: 700; }
.test-question-passage { margin-bottom: 24px; padding: 20px; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-background); font-size: 18px; line-height: 1.75; white-space: pre-line; }
.test-question-text { margin: 0 0 28px; font-size: clamp(24px, 3vw, 32px); line-height: 1.45; letter-spacing: -.015em; white-space: pre-line; }
.test-answers { display: grid; gap: 12px; }
.test-answer { width: 100%; min-height: 64px; display: grid; grid-template-columns: 36px 1fr; align-items: center; gap: 14px; padding: 12px 18px; border: 1px solid var(--color-border); border-radius: var(--radius-medium); color: var(--color-text); background: #fff; cursor: pointer; font-size: 17px; line-height: 1.45; text-align: left; transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease; }
.test-answer:hover { border-color: var(--color-primary-300); background: var(--color-primary-subtle); transform: translateY(-1px); }
.test-answer:focus-visible, .test-back-button:focus-visible, .test-skip-button:focus-visible, .test-retake:focus-visible, .test-consent input:focus-visible { outline: 3px solid var(--color-accent-soft); outline-offset: 3px; }
.test-answer:disabled { cursor: default; opacity: 1; }
.test-answer.is-selected { border-color: var(--color-primary); background: var(--color-primary-subtle); box-shadow: 0 0 0 2px var(--color-primary-100); }
.test-answer-marker { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: var(--color-primary-700); background: var(--color-primary-100); font-size: 14px; font-weight: 700; }
.test-answer.is-selected .test-answer-marker { color: white; background: var(--color-primary); }
.test-question-actions { min-height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 20px; }
.test-back-button, .test-retake { min-height: 44px; border: 0; padding: 8px 2px; color: var(--color-primary-700); background: transparent; cursor: pointer; font-weight: 600; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; }
.test-back-button:hover, .test-retake:hover { text-decoration-color: currentColor; }
.test-skip-button { min-height: 42px; margin-left: auto; padding: 8px 15px; border: 1px solid var(--color-primary-200); border-radius: var(--radius-pill); color: var(--color-primary-700); background: #fff; cursor: pointer; font: inherit; font-size: 14px; font-weight: 600; }
.test-skip-button:hover { border-color: var(--color-primary); background: var(--color-primary-subtle); }
.test-ready-icon { width: 56px; height: 56px; display: grid; place-items: center; margin: 0 auto 20px; border-radius: 50%; color: #fff; background: var(--color-primary); font-size: 26px; font-weight: 700; }
.test-gate-panel { max-width: 680px; }
.test-gate-panel h1 { font-size: clamp(30px, 3.5vw, 44px); }
.test-lead-form { display: grid; max-width: 500px; margin: 28px auto 0; text-align: left; }
.test-lead-form > label:not(.test-consent) { margin-bottom: 8px; font-weight: 600; }
.test-lead-form > input { width: 100%; height: 48px; margin-bottom: 18px; border: 1px solid var(--color-field-border); border-radius: var(--radius-medium); padding: 10px 14px; color: var(--color-text); background: #fff; }
.test-lead-form > input:focus { border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-accent-soft); outline: 0; }
.test-field-note { margin: -10px 0 20px; color: var(--color-text-muted); font-size: 13px; }
.test-consent { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; margin-bottom: 12px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.45; cursor: pointer; }
.test-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--color-primary); }
.test-processing-note { margin: 0 0 20px; color: var(--color-text-muted); font-size: 12px; line-height: 1.45; }
.test-lead-form .button { width: 100%; }
.test-lead-form .button:disabled { cursor: wait; opacity: .72; transform: none; }
.test-form-status { min-height: 24px; margin: 12px 0 0; color: var(--color-text-secondary); font-size: 14px; text-align: center; }
.test-form-status.is-error { color: #a61b1b; }
.test-gate-panel > .test-back-button { margin-top: 4px; }
.test-result-kicker { margin-bottom: 8px; color: var(--color-text-secondary); font-size: 17px; }
.test-result-level { margin: 0; color: var(--color-primary); font-size: clamp(64px, 9vw, 96px); line-height: 1; letter-spacing: -.04em; }
.test-result-title { margin: 8px 0 20px; font-size: 24px; font-weight: 700; }
.test-result-description { max-width: 650px; margin: 0 auto 32px; color: var(--color-text-secondary); font-size: 17px; line-height: 1.65; }
.test-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; text-align: left; }
.test-result-block { padding: 24px; border-radius: var(--radius-large); background: var(--color-primary-subtle); }
.test-result-block h2 { margin-bottom: 14px; font-size: 20px; text-align: left; }
.test-can-do { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.test-can-do li { position: relative; padding-left: 24px; color: var(--color-text-secondary); font-size: 14px; line-height: 1.5; }
.test-can-do li::before { content: "✓"; position: absolute; left: 0; color: var(--color-primary); font-weight: 700; }
.test-next-step { display: flex; flex-direction: column; }
.test-next-step p { color: var(--color-text-secondary); font-size: 14px; }
.test-next-step .button { align-self: flex-start; margin-top: auto; font-size: 14px; }
.test-answer-review { margin-top: 32px; text-align: left; }
.test-answer-review-heading { margin-bottom: 16px; }
.test-answer-review-heading p { margin-bottom: 4px; color: var(--color-primary-700); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.test-answer-review-heading h2 { margin: 0; font-size: 26px; }
.test-answer-review-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.test-answer-review-item { padding: 18px 20px; border: 1px solid var(--color-border); border-left: 4px solid var(--color-primary-300); border-radius: var(--radius-medium); background: #fff; }
.test-answer-review-item.is-correct { border-left-color: #27815d; background: #f5fbf8; }
.test-answer-review-item.is-incorrect { border-left-color: #c44848; background: #fff8f8; }
.test-answer-review-item-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.test-answer-review-number { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: var(--color-primary); font-size: 13px; font-weight: 700; }
.test-answer-review-status { border-radius: var(--radius-pill); padding: 5px 10px; color: var(--color-primary-700); background: var(--color-primary-subtle); font-size: 12px; font-weight: 700; }
.test-answer-review-item.is-correct .test-answer-review-status { color: #176344; background: #dff4e9; }
.test-answer-review-item.is-incorrect .test-answer-review-status { color: #982f2f; background: #fbe1e1; }
.test-answer-review-item h3 { margin: 0 0 10px; font-size: 16px; line-height: 1.55; white-space: pre-line; }
.test-answer-review-choice { margin: 4px 0 0; color: var(--color-text-secondary); font-size: 14px; line-height: 1.5; }
.test-answer-review-choice strong { color: var(--color-text); }
.test-answer-review-correct { color: #176344; }
.test-retake { margin-top: 20px; }
.level-test-footer { border-top: 1px solid var(--color-border); }

@media (max-width: 900px) {
  .nav-level-test-mobile { display: block; }
  .nav-mega .nav-level-test-desktop { display: none; }
  .level-test-page, .test-screen { min-height: calc(100vh - 72px); }
}

@media (max-width: 680px) {
  .test-screen { display: block; padding: 32px 20px 56px; }
  .test-panel { padding: 28px 20px; border-radius: var(--radius-large); }
  .test-intro h1, .test-gate-panel h1 { font-size: 32px; }
  .test-lead { font-size: 16px; }
  .test-levels { gap: 8px; font-size: 16px; }
  .test-facts { grid-template-columns: 1fr; gap: 8px; }
  .test-facts li { min-height: 58px; grid-template-columns: 36px 1fr; justify-items: start; text-align: left; }
  .test-facts span { justify-self: center; font-size: 18px; }
  .test-primary-action { width: 100%; }
  .test-question-shell { width: 100%; }
  .test-question-passage { padding: 16px; font-size: 17px; }
  .test-question-text { margin-bottom: 22px; font-size: 24px; }
  .test-answer { min-height: 60px; grid-template-columns: 34px 1fr; padding: 11px 14px; font-size: 16px; }
  .test-answer-marker { width: 34px; height: 34px; }
  .test-result-grid { grid-template-columns: 1fr; }
  .test-result-block { padding: 20px; }
  .test-next-step .button { width: 100%; }
  .test-answer-review { margin-top: 24px; }
  .test-answer-review-item { padding: 16px; }
}

@media (max-width: 900px) {
  .group-detail-hero { padding: 48px 0 64px; }
  .group-detail-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .group-detail-booking { max-width: 520px; }
  .group-outcome-grid { grid-template-columns: repeat(2, 1fr); }
  .group-month-grid { grid-template-columns: 1fr; }
  .group-detail-split { grid-template-columns: 1fr; gap: 40px; }
  .homepage-resources-heading { align-items: center; flex-direction: column; gap: 24px; text-align: center; }
}

@media (max-width: 640px) {
  .group-page-hero { padding-bottom: 78px; }
  .group-courses { padding-top: 64px; }
  .group-card-actions { grid-template-columns: 1fr; }
  .group-detail-content { padding: 64px 0 72px; }
  .group-detail-section { padding-bottom: 56px; }
  .group-detail-section + .group-detail-section { padding-top: 56px; }
  .group-outcome-grid, .group-check-list, .homepage-resource-grid { grid-template-columns: 1fr; }
  .group-detail-closing { padding: 36px 22px; }
  .homepage-resources-heading .button { width: 100%; }
}

/* Immersive group course detail */
.group-detail-page { overflow: clip; background: #fffdf9; }
.group-grain { position: relative; isolation: isolate; overflow: hidden; }
.group-grain::after { content: ""; position: absolute; z-index: 0; inset: 0; opacity: .16; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E"); mix-blend-mode: soft-light; }
.group-grain > * { position: relative; z-index: 1; }
.group-detail-hero { padding: 86px 0 100px; background: radial-gradient(circle at 84% 18%, rgba(244,108,178,.3), transparent 24%), radial-gradient(circle at 16% 94%, rgba(255,204,85,.28), transparent 26%), linear-gradient(135deg, #f3e7ff 0%, #fff9fd 48%, #fff4c9 100%); }
.group-detail-booking { border-color: rgba(255,255,255,.8); background: rgba(255,255,255,.75); box-shadow: 0 30px 80px rgba(93,41,130,.16); backdrop-filter: blur(18px); transform: rotate(1.4deg); }
.group-detail-meta span { box-shadow: 0 8px 24px rgba(74,34,93,.05); }
.group-story-section { padding: 120px 0; background: #fffdf9; }
.group-story-grid { display: grid; grid-template-columns: minmax(0,.88fr) minmax(520px,1.12fr); gap: clamp(64px,8vw,120px); align-items: center; }
.group-story-reverse .group-story-grid { grid-template-columns: minmax(520px,1.12fr) minmax(0,.88fr); }
.group-story-copy h2, .group-section-heading h2, .group-before-panel h2 { margin-bottom: 22px; font-size: clamp(38px,4.7vw,62px); line-height: 1.04; letter-spacing: -.035em; }
.group-story-copy > p, .group-section-heading > p, .group-before-panel p { color: var(--color-text-secondary); font-size: 17px; line-height: 1.7; }
.group-plain-list { display: grid; gap: 0; margin: 30px 0 0; padding: 0; list-style: none; }
.group-plain-list li { position: relative; padding: 13px 0 13px 34px; border-bottom: 1px solid var(--color-border); font-weight: 600; }
.group-plain-list li::before { content: "✓"; position: absolute; left: 0; top: 12px; width: 22px; height: 22px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--color-primary); font-size: 12px; }
.group-visual { min-height: 610px; display: grid; place-items: center; border-radius: 56px; box-shadow: 0 30px 70px rgba(68,43,86,.13); }
.group-visual-conversation { background: radial-gradient(circle at 30% 20%, rgba(255,255,255,.9), transparent 20%), linear-gradient(155deg,#cdbaff 0%,#f8c9ed 48%,#ffe69a 100%); }
.conversation-window { position: relative; z-index: 2; width: min(78%,430px); padding: 22px; border: 7px solid rgba(255,255,255,.55); border-radius: 30px; background: rgba(255,255,255,.9); box-shadow: 0 24px 60px rgba(54,29,73,.16); backdrop-filter: blur(10px); }
.conversation-top { display: grid; grid-template-columns: 12px 1fr auto; gap: 10px; align-items: center; margin-bottom: 28px; color: var(--color-text-secondary); font-size: 12px; }
.conversation-top > span { width: 10px; height: 10px; border-radius: 50%; background: #f0b429; box-shadow: 0 0 0 5px rgba(240,180,41,.17); }
.conversation-top strong { color: var(--color-text); font-size: 14px; }
.speech-bubble { width: 84%; margin-bottom: 14px; padding: 14px 18px; border-radius: 18px; font-size: 17px; font-weight: 600; }
.speech-bubble small { display: block; margin-bottom: 3px; opacity: .62; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.speech-left { border-bottom-left-radius: 5px; background: var(--color-primary-subtle); }
.speech-right { margin-left: auto; border-bottom-right-radius: 5px; color: #fff; background: var(--color-primary); }
.conversation-progress { display: grid; grid-template-columns: 46px 1fr; align-items: center; gap: 12px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--color-border); }
.conversation-progress span { width: 46px; height: 8px; border-radius: 10px; background: linear-gradient(90deg,var(--color-primary) 74%,var(--color-primary-100) 74%); }
.conversation-progress p { margin: 0; color: var(--color-text-secondary); font-size: 12px; }
.floating-word { position: absolute; z-index: 3; padding: 10px 16px; border: 1px solid rgba(255,255,255,.85); border-radius: var(--radius-pill); background: rgba(255,255,255,.72); box-shadow: var(--shadow-surface); backdrop-filter: blur(8px); font-weight: 700; }
.word-one { top: 13%; right: 4%; transform: rotate(8deg); }
.word-two { bottom: 12%; left: 4%; transform: rotate(-7deg); }
.group-roadmap-section { padding: 120px 0; background: radial-gradient(circle at 12% 18%,rgba(244,108,178,.25),transparent 25%),radial-gradient(circle at 82% 82%,rgba(255,204,85,.28),transparent 28%),linear-gradient(135deg,#eee4ff,#fff8fc 54%,#fff4c9); }
.group-section-heading { max-width: 760px; margin-bottom: 56px; }
.group-section-heading.centered { margin-inline: auto; text-align: center; }
.group-roadmap { position: relative; display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.group-roadmap::before { content: ""; position: absolute; top: 42px; left: 16%; right: 16%; height: 2px; background: linear-gradient(90deg,var(--color-primary-200),var(--color-pink-500),#f0b429); }
.group-roadmap article { position: relative; min-height: 350px; padding: 28px; border: 1px solid rgba(255,255,255,.9); border-radius: 30px; background: rgba(255,255,255,.72); box-shadow: 0 20px 50px rgba(78,42,105,.1); backdrop-filter: blur(14px); }
.roadmap-number { position: absolute; top: 24px; right: 24px; color: var(--color-primary-300); font-size: 13px; font-weight: 800; letter-spacing: .12em; }
.roadmap-icon { width: 72px; height: 72px; display: grid; place-items: center; margin-bottom: 70px; border-radius: 22px; color: #fff; background: linear-gradient(145deg,var(--color-primary),var(--color-pink-500)); box-shadow: 0 14px 28px rgba(156,29,231,.22); font-size: 26px; font-weight: 800; }
.group-roadmap article:nth-child(2) .roadmap-icon { background: linear-gradient(145deg,#7c55e9,var(--color-pink-500)); }
.group-roadmap article:nth-child(3) .roadmap-icon { color: var(--color-text); background: linear-gradient(145deg,#f0b429,#ffe69a); }
.group-roadmap h3 { margin-bottom: 12px; font-size: 21px; }
.group-roadmap p { margin: 0; color: var(--color-text-secondary); }
.group-visual-kit { background: radial-gradient(circle at 80% 18%,rgba(255,255,255,.85),transparent 20%),linear-gradient(155deg,#8b6cf0 0%,#dca7ee 48%,#ffd7be 100%); }
.kit-card { position: absolute; width: min(68%,380px); min-height: 210px; padding: 28px; border: 7px solid rgba(255,255,255,.5); border-radius: 28px; background: rgba(255,255,255,.92); box-shadow: 0 24px 50px rgba(50,29,68,.16); }
.kit-card span { display: block; margin-bottom: 28px; color: var(--color-primary-700); font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.kit-card strong { display: block; margin-bottom: 8px; font-size: 23px; }
.kit-card small { color: var(--color-text-muted); }
.kit-slides { top: 12%; left: 10%; transform: rotate(-5deg); }
.kit-vocab { right: 8%; bottom: 14%; transform: rotate(5deg); }
.kit-feedback { position: absolute; z-index: 3; left: 9%; bottom: 10%; display: flex; gap: 12px; align-items: center; padding: 14px 18px; border-radius: 18px; background: #fff; box-shadow: var(--shadow-float); }
.kit-feedback > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--color-text); background: #ffd45e; }
.kit-feedback p { margin: 0; font-size: 12px; line-height: 1.4; }
.group-before-section { padding: 24px 0 120px; background: #fffdf9; }
.group-before-panel { min-height: 520px; display: grid; grid-template-columns: 1fr 440px; gap: 70px; align-items: center; padding: clamp(44px,7vw,88px); border-radius: 56px; background: radial-gradient(circle at 86% 20%,rgba(255,255,255,.78),transparent 22%),linear-gradient(135deg,#fae5f6,#eadcff 52%,#fff0ae); }
.group-before-panel > div:first-child { max-width: 660px; }
.hangul-orbit { position: relative; width: 360px; height: 360px; margin-inline: auto; border: 1px solid rgba(156,29,231,.18); border-radius: 50%; }
.hangul-orbit::before { content: ""; position: absolute; inset: 55px; border: 1px dashed rgba(156,29,231,.24); border-radius: 50%; }
.hangul-orbit strong { position: absolute; inset: 50%; width: 120px; height: 120px; display: grid; place-items: center; border-radius: 34px; color: #fff; background: var(--color-primary); box-shadow: 0 25px 50px rgba(156,29,231,.24); font-size: 52px; transform: translate(-50%,-50%) rotate(-4deg); }
.hangul-orbit span { position: absolute; width: 60px; height: 60px; display: grid; place-items: center; border-radius: 18px; background: rgba(255,255,255,.84); box-shadow: var(--shadow-surface); font-size: 24px; font-weight: 700; }
.hangul-orbit span:nth-child(1) { top: 8px; left: 50%; transform: translateX(-50%); }.hangul-orbit span:nth-child(2) { top: 50%; right: 8px; transform: translateY(-50%); }.hangul-orbit span:nth-child(4) { bottom: 8px; left: 50%; transform: translateX(-50%); }.hangul-orbit span:nth-child(5) { top: 50%; left: 8px; transform: translateY(-50%); }
.group-testimonials { padding: 120px 0; background: #f7f1ff; }
.group-review-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.group-review-grid article { min-height: 330px; display: flex; flex-direction: column; padding: 30px; border: 1px solid rgba(156,29,231,.08); border-radius: 28px; background: #fff; box-shadow: 0 18px 45px rgba(60,40,120,.08); }
.group-review-grid article:nth-child(2) { transform: translateY(26px); }
.group-review-grid blockquote { margin: 20px 0 30px; font-size: 18px; line-height: 1.55; }
.group-review-grid article > div:last-child { display: flex; gap: 12px; align-items: center; margin-top: auto; }
.group-review-grid img { width: 46px; height: 46px; border-radius: 50%; }
.group-review-grid span { display: grid; }
.group-review-grid small { color: var(--color-text-muted); }
.group-closing-wrap { padding: 120px 0; background: #fffdf9; }
.group-detail-closing { padding: 86px 40px; border-radius: 56px; background: radial-gradient(circle at 18% 20%,rgba(255,255,255,.6),transparent 20%),linear-gradient(135deg,#ead9ff,#ffdff2 54%,#fff0ae); }
[data-reveal] { opacity: 0; transform: translateY(42px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-revealed { opacity: 1; transform: translateY(0); }
.group-review-grid [data-reveal]:nth-child(2) { transition-delay: .1s; }
.group-review-grid [data-reveal]:nth-child(3) { transition-delay: .2s; }

@media (max-width: 1000px) {
  .group-story-grid, .group-story-reverse .group-story-grid { grid-template-columns: 1fr; gap: 56px; }
  .group-story-reverse .group-story-copy { grid-row: 1; }
  .group-visual { min-height: 540px; }
  .group-before-panel { grid-template-columns: 1fr; }
  .group-roadmap, .group-review-grid { grid-template-columns: 1fr; }
  .group-roadmap::before { display: none; }
  .group-roadmap article { min-height: 0; }
  .roadmap-icon { margin-bottom: 38px; }
  .group-review-grid article { min-height: 250px; }
  .group-review-grid article:nth-child(2) { transform: none; }
}

@media (max-width: 680px) {
  .group-detail-hero, .group-story-section, .group-roadmap-section, .group-testimonials, .group-closing-wrap { padding-block: 72px; }
  .group-detail-booking { width: 100%; max-width: 100%; padding: 24px 20px; transform: none; }
  .payment-plan-option { grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; padding: 13px 12px; }
  .group-visual { min-height: 430px; border-radius: 32px; }
  .conversation-window { width: 88%; padding: 16px; }
  .floating-word { display: none; }
  .kit-card { width: 76%; min-height: 170px; padding: 20px; }
  .kit-feedback { left: 5%; bottom: 6%; }
  .group-before-section { padding-bottom: 72px; }
  .group-before-panel { min-height: 0; gap: 44px; padding: 38px 22px; border-radius: 32px; }
  .hangul-orbit { width: 260px; height: 260px; }
  .hangul-orbit strong { width: 92px; height: 92px; font-size: 40px; }
  .hangul-orbit span { width: 48px; height: 48px; }
  .group-detail-closing { padding: 58px 22px; border-radius: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

@media (max-width: 767px) {
  .unified-page-hero, .resources-page .unified-page-hero { padding: 64px 0 78px; }
  .unified-page-hero h1, .resources-page .unified-page-hero h1 { font-size: clamp(30px, 9vw, 40px); }
  .unified-page-hero p, .resources-page .unified-page-hero p { margin-inline: auto; font-size: 16px; }
  .resources-page .resources-catalog { padding-top: 48px; }
  .event-page { padding: 0; }
  .event-calendar-section { padding: 56px 0 72px; }
}

/* Private lesson — vibrant reusable detail elements */
.private-vibrant-hero { padding-bottom: 88px; background: radial-gradient(circle at 82% 18%,rgba(244,108,178,.24),transparent 22%),radial-gradient(circle at 14% 84%,rgba(255,204,85,.24),transparent 24%),linear-gradient(145deg,#f1e5ff,#fff9fd 56%,#fff4c9); }
.private-vibrant-hero > .shell { align-items: center; }
.private-hero-visual { position: relative; width: min(100%,720px); height: 260px; margin-top: 34px; }
.private-hero-center { position: absolute; z-index: 3; left: 50%; top: 50%; width: 150px; height: 150px; display: grid; place-items: center; align-content: center; border: 8px solid rgba(255,255,255,.65); border-radius: 42px; color: #fff; background: linear-gradient(145deg,var(--color-primary),var(--color-pink-500)); box-shadow: 0 26px 60px rgba(111,39,149,.2); font-size: 42px; font-weight: 800; transform: translate(-50%,-50%) rotate(-4deg); }
.private-hero-center small { display: block; font-size: 11px; font-weight: 600; letter-spacing: .08em; }
.private-hero-card { position: absolute; top: 50%; width: 280px; min-height: 116px; display: grid; align-content: center; gap: 5px; padding: 24px; border: 1px solid rgba(255,255,255,.85); border-radius: 26px; background: rgba(255,255,255,.8); box-shadow: 0 20px 45px rgba(61,34,79,.11); backdrop-filter: blur(12px); }
.private-hero-card small { color: var(--color-primary-700); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.private-hero-card strong { font-size: 23px; }
.private-hero-card-one { left: 0; transform: translateY(-50%) rotate(-5deg); }
.private-hero-card-two { right: 0; text-align: right; transform: translateY(-50%) rotate(5deg); }
.private-vibrant-section { padding: 96px 0; background: #fffdf9; }
.private-level-panel { padding: 56px; border-radius: 48px; background: radial-gradient(circle at 92% 8%,rgba(255,255,255,.85),transparent 22%),linear-gradient(135deg,#eee1ff,#ffe7f4 58%,#fff0ae); box-shadow: 0 24px 60px rgba(60,40,120,.08); }
.private-level-panel .private-section-divider::before, .private-level-panel .private-section-divider::after { background: rgba(156,29,231,.18); }
.private-level-panel .private-level-copy { min-height: 205px; }
.private-level-panel .private-level-copy a:not(.button) { display: inline-flex; align-items: center; min-height: 38px; padding: 7px 13px; border: 1px solid rgba(156,29,231,.18); border-radius: var(--radius-pill); background: rgba(255,255,255,.68); }
.private-test-visual-banner { position: relative; display: grid; grid-template-columns: minmax(0,1fr) 210px auto; padding: 34px 40px; border: 0; border-radius: 36px; background: radial-gradient(circle at 85% 12%,rgba(255,255,255,.7),transparent 18%),linear-gradient(120deg,#eadcff,#ffdff2 62%,#fff0ae); box-shadow: 0 20px 50px rgba(60,40,120,.1); }
.private-test-banner-image { width: 210px; height: auto; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 24px; box-shadow: 0 16px 36px rgba(60,40,120,.14); }
.private-goal-vibrant { padding: 104px 0; background: radial-gradient(circle at 8% 18%,rgba(244,108,178,.2),transparent 23%),radial-gradient(circle at 90% 80%,rgba(255,204,85,.24),transparent 25%),linear-gradient(145deg,#fff,#f7efff 55%,#fff9df); }
.private-goal-vibrant .private-path-intro { margin-bottom: 54px; }
.private-goal-vibrant .private-goal-card { min-height: 360px; overflow: hidden; border-color: rgba(255,255,255,.9); border-radius: 30px; box-shadow: 0 22px 55px rgba(60,40,120,.1); }
.private-goal-vibrant .private-goal-card::after { content: ""; position: absolute; right: -38px; bottom: -38px; width: 130px; height: 130px; border-radius: 50%; background: var(--color-primary-100); opacity: .72; }
.private-goal-vibrant .private-goal-card { position: relative; }
.private-goal-vibrant .private-goal-card > * { position: relative; z-index: 1; }
.private-goal-vibrant .private-goal-speaking::after { background: var(--color-pink-100); }
.private-goal-vibrant .private-goal-business::after { background: var(--color-yellow-100); }
.private-goal-vibrant .private-goal-icon { width: 66px; height: 66px; border-radius: 22px; font-size: 22px; transform: rotate(-5deg); }
.private-goal-vibrant .private-goal-speaking .private-goal-icon { transform: rotate(5deg); }

@media (max-width: 767px) {
  .private-vibrant-hero { padding-bottom: 68px; }
  .private-hero-visual { height: 220px; margin-top: 24px; }
  .private-hero-center { width: 112px; height: 112px; border-radius: 30px; font-size: 32px; }
  .private-hero-card { width: 42%; min-height: 94px; padding: 16px; }
  .private-hero-card strong { font-size: 15px; }
  .private-vibrant-section, .private-goal-vibrant { padding-block: 64px; }
  .private-level-panel { padding: 32px 22px; border-radius: 32px; }
  .private-level-panel .private-level-copy { min-height: 160px; }
  .private-test-visual-banner { display: flex; padding: 28px 24px; border-radius: 30px; }
  .private-test-banner-image { width: 100%; max-width: 320px; height: auto; aspect-ratio: 4 / 3; margin-inline: auto; }
  .private-goal-vibrant .private-goal-card { min-height: 0; }
}

/* Standard hero spacing for general landing pages — based on Events */
.standard-page-hero { margin-top: -96px; padding-top: 160px; padding-bottom: 112px; border-bottom: 1px solid var(--color-primary-100); background: linear-gradient(180deg,var(--color-primary-subtle),#fff 92%); }
.standard-page-hero.standard-page-hero { text-align: center; }
.standard-page-hero.standard-page-hero h1 { max-width: 760px; margin: 0 auto 16px; font-size: clamp(30px, 3vw, 48px); line-height: 1.1; font-weight: 600; letter-spacing: -.02em; }
.standard-page-hero.standard-page-hero p { max-width: 680px; margin: 0 auto; color: var(--color-text-soft); font-size: clamp(16px, 1.3vw, 18px); line-height: 1.6; }
.standard-page-hero.standard-page-hero .page-eyebrow { margin-inline: auto; }
main .standard-page-hero + section { position: relative; }
main .standard-page-hero + section::before { content: ""; position: absolute; z-index: 2; top: 0; left: 50%; width: min(160px,30vw); height: 4px; border-radius: var(--radius-pill); background: var(--color-primary-200); transform: translate(-50%,-50%); }

/* Static information surfaces stay visually grounded and never imply a click. */
.review-card,
.process-card,
.workbook-card,
.contact-grid,
.contact-form,
.event-calendar-wrap,
.group-detail-booking,
.group-outcome-grid li,
.group-check-list li,
.group-month-grid article,
.group-roadmap article,
.group-review-grid article,
.course-quick-card,
.good-fit-card,
.curriculum-grid article,
.included-grid article,
.account-card,
.recording-notice,
.recording-summary-card,
.test-panel,
.private-level-panel,
.private-test-visual-banner {
  border: var(--border-static);
  box-shadow: var(--shadow-static);
}
.group-detail-meta span { border: var(--border-static); box-shadow: var(--shadow-static); }

/* Disclosure rows are clickable, so they use the shared interactive elevation. */
.faq-list details {
  border: 1px solid transparent;
  box-shadow: var(--shadow-sevora-soft);
  transition: border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, transform var(--motion-fast) var(--ease-emphasized);
}
.faq-list details:hover,
.faq-list details[open] {
  border-color: var(--color-primary-200);
  box-shadow: var(--shadow-sevora-lift);
  transform: translateY(-2px);
}
.faq-list details[open] { transform: translateY(0); }

/* One interaction pattern for every card that contains a real link. */
.course-card:has(a[href]),
.class-card:has(a[href]),
.level-course-card:has(a[href]),
.price-card:has(a[href]),
a.private-goal-card,
a.resource-card {
  border: 1px solid transparent;
  box-shadow: var(--shadow-sevora-soft);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.course-card:has(a[href]):hover,
.class-card:has(a[href]):hover,
.level-course-card:has(a[href]):hover,
.price-card:has(a[href]):hover,
a.private-goal-card:hover,
a.resource-card:hover {
  border-color: var(--color-primary-200);
  box-shadow: var(--shadow-sevora-lift);
  transform: translateY(-5px);
}
.course-card:has(a[href]):focus-within,
.class-card:has(a[href]):focus-within,
.level-course-card:has(a[href]):focus-within,
.price-card:has(a[href]):focus-within,
a.private-goal-card:focus-visible,
a.resource-card:focus-visible { border-color: var(--color-primary); box-shadow: var(--shadow-sevora-lift); }
.price-card-featured:has(a[href]) { border-color: var(--color-primary); }
.course-card .button, .class-card .button, .level-course-card .button, .price-card .button { margin-top: auto; }

@media (max-width: 767px) {
  .standard-page-hero { margin-top: -84px; padding-top: 148px; padding-bottom: 78px; }
  .standard-page-hero.standard-page-hero h1 { font-size: 34px; line-height: 1.12; }
  .standard-page-hero.standard-page-hero p { font-size: 16px; }
}

/* Branded hero backdrops begin behind the floating navigation. The page canvas
   returns to the shared white diagonal pattern immediately after each hero. */
.resource-detail-hero { margin-top: -96px; padding-top: 168px; }
.group-detail-page .group-detail-hero { margin-top: -96px; padding-top: 182px; }

@media (max-width: 900px) {
  .standard-page-hero { margin-top: -84px; padding-top: 148px; }
  .resource-detail-hero { margin-top: -84px; padding-top: 132px; }
  .group-detail-page .group-detail-hero { margin-top: -84px; padding-top: 156px; }
}

@media (max-width: 900px) {
  .site-header .nav-actions { display: none; }
}

@media (hover: none) {
  .button:hover,
  .payment-plan-option:hover,
  .resource-gallery-thumbnails button:hover { box-shadow: var(--shadow-sevora-soft); transform: none; }
  .faq-list details:hover { box-shadow: var(--shadow-sevora-soft); transform: none; }
  .faq-list details[open] { border-color: var(--color-primary-200); box-shadow: var(--shadow-sevora-lift); transform: none; }
  .payment-plan-option.is-selected:hover { box-shadow: 0 0 0 2px rgba(156,29,231,.08), var(--shadow-sevora-soft); }
  .resource-gallery-arrow:hover { box-shadow: var(--shadow-sevora-soft); transform: translateY(-50%); }
  .course-card:has(a[href]):hover,
  .class-card:has(a[href]):hover,
  .level-course-card:has(a[href]):hover,
  .price-card:has(a[href]):hover,
  a.private-goal-card:hover,
  a.resource-card:hover { border-color: transparent; box-shadow: var(--shadow-sevora-soft); transform: none; }
  .price-card-featured:has(a[href]):hover { border-color: var(--color-primary); box-shadow: 0 0 0 2px var(--color-primary),var(--shadow-sevora-soft); }
}

@media (prefers-reduced-motion: reduce) {
  .button, .account-login-link, .payment-plan-option, .resource-gallery-arrow, .resource-gallery-thumbnails button,
  .course-card:has(a[href]), .class-card:has(a[href]), .level-course-card:has(a[href]), .price-card:has(a[href]), a.private-goal-card, a.resource-card { transition: none; }
  .button:hover, .payment-plan-option:hover, .resource-gallery-thumbnails button:hover,
  .course-card:has(a[href]):hover, .class-card:has(a[href]):hover, .level-course-card:has(a[href]):hover, .price-card:has(a[href]):hover, a.private-goal-card:hover, a.resource-card:hover { transform: none; }
  .resource-gallery-arrow:hover { transform: translateY(-50%); }
}

/* Homepage hero 2.0 — editorial composition with a digital portrait treatment. */
.hero-v2 {
  min-height: auto;
  padding: 44px 0 88px;
  overflow: visible;
  background: var(--color-background);
}
.hero-v2-panel {
  isolation: isolate;
  position: relative;
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(440px, 1.05fr);
  overflow: hidden;
  border: 0;
  border-radius: 32px;
  background:
    radial-gradient(circle at 8% 12%, rgba(255,255,255,.98), transparent 24%),
    linear-gradient(115deg, #fff 0%, #fff 42%, #f1e2ff 65%, #ffddeb 84%, #fff1a8 112%);
  box-shadow: var(--shadow-sevora-panel);
}
.hero-v2-noise {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  opacity: .2;
  background-image:
    repeating-radial-gradient(circle at 30% 20%, rgba(65,10,97,.16) 0 .45px, transparent .6px 3px),
    linear-gradient(115deg, transparent 0 50%, rgba(255,255,255,.2) 50% 100%);
  background-size: 5px 5px, auto;
  mix-blend-mode: soft-light;
}
.hero-v2-copy {
  position: relative;
  z-index: 5;
  align-self: center;
  max-width: 590px;
  padding: 80px 24px 72px 80px;
}
.hero-v2-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  margin-bottom: 22px;
  padding: 6px 13px;
  border: 1px solid rgba(126,20,189,.18);
  border-radius: var(--radius-pill);
  color: var(--color-primary-700);
  background: rgba(255,255,255,.7);
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
  letter-spacing: .02em;
  backdrop-filter: blur(12px);
}
.hero-v2-title {
  max-width: 620px;
  margin: 0 0 20px;
  color: var(--color-text);
  font-family: var(--font-display);
  font-size: clamp(40px, 3.75vw, 56px);
  line-height: 1.02;
  font-weight: 600;
  letter-spacing: -.038em;
}
.hero-title-line { display: block; white-space: nowrap; }
.hero-title-word { display: inline-block; white-space: nowrap; }
.hero-title-accent {
  color: var(--color-primary);
}
.hero-title-char {
  display: inline-block;
  white-space: pre;
  will-change: transform, opacity, filter;
}
.hero-title-accent .hero-title-char {
  color: var(--color-primary);
  background: none;
  -webkit-text-fill-color: currentColor;
}
.hero-v2-copy > p {
  max-width: 530px;
  margin: 0 0 28px;
  color: var(--color-text-secondary);
  font-size: 18px;
  line-height: 1.6;
}
.hero-v2-actions { justify-content: flex-start; }
.hero-v2-actions .button {
  min-height: 50px;
  padding-inline: 22px;
}
.hero-v2-stats {
  max-width: 500px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  margin-top: 62px;
  color: var(--color-text-muted);
  font-size: 12px;
  line-height: 1.35;
}
.hero-v2-stats > span { min-width: 0; padding-right: 18px; }
.hero-v2-stats > span + span { padding-left: 18px; border-left: 1px solid rgba(126,20,189,.14); }
.hero-v2-stats strong { display: block; margin-bottom: 3px; color: var(--color-text); font-family: var(--font-display); font-size: 25px; line-height: 1; }
.hero-response > span { display: inline-flex; align-items: center; gap: 6px; }
.hero-response i { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.45); animation: availability-pulse 1.8s ease-out infinite; }
.hero-v2-media {
  position: relative;
  z-index: 3;
  min-width: 0;
  min-height: 680px;
}
.hero-v2-media::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  top: 76px;
  left: 50%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(156,29,231,.24), rgba(236,72,153,.12) 48%, transparent 70%);
  filter: blur(8px);
  transform: translateX(-50%);
}
.hero-digital-frame {
  position: absolute;
  z-index: 2;
  top: 42px;
  right: 32px;
  bottom: 0;
  width: min(470px, calc(100% - 44px));
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.68);
  border-bottom: 0;
  border-radius: 150px 32px 0 0;
  background: #d7dfe0;
  box-shadow: 0 28px 60px rgba(65,10,97,.16);
  transform-origin: bottom right;
}
.hero-digital-frame img { width: 100%; height: 100%; object-fit: cover; object-position: center top; filter: none; transform: none; }
.hero-course-status {
  position: absolute;
  z-index: 6;
  right: 24px;
  bottom: 26px;
  width: min(320px, calc(100% - 48px));
  display: grid;
  gap: 2px;
  padding: 20px 22px;
  border: 1px solid rgba(255,255,255,.68);
  border-radius: 18px;
  color: #fff;
  background: rgba(34,5,51,.74);
  box-shadow: var(--shadow-sevora-soft);
  backdrop-filter: blur(16px);
  text-decoration: none;
  transition: transform var(--motion-fast) var(--ease-emphasized), background var(--motion-fast) ease;
}
.hero-course-status:hover { background: rgba(65,10,97,.88); box-shadow: var(--shadow-sevora-lift); transform: translateY(-4px); }
.hero-course-status:focus-visible { outline-color: rgba(255,255,255,.9); }
.hero-course-status small { color: rgba(255,255,255,.7); font-size: 12px; text-transform: uppercase; letter-spacing: .07em; }
.hero-course-status strong { font-size: 18px; }
.hero-course-status span { display: flex; align-items: center; justify-content: space-between; color: rgba(255,255,255,.78); font-size: 13px; }
.hero-course-status b { font-size: 20px; font-weight: 400; }

.hero-motion-ready .hero-v2-panel { animation: hero-panel-in var(--motion-hero) var(--ease-emphasized) both; }
.hero-motion-ready .hero-v2-eyebrow { animation: hero-rise-in var(--motion-hero) var(--ease-emphasized) .3s both; }
.hero-motion-ready .hero-title-char { animation: hero-char-in 420ms var(--ease-emphasized) calc(.38s + (var(--char-index) * 22ms)) both; }
.hero-motion-ready .hero-v2-copy > p { animation: hero-rise-in var(--motion-hero) var(--ease-emphasized) .48s both; }
.hero-motion-ready .hero-v2-actions { animation: hero-rise-in var(--motion-hero) var(--ease-emphasized) .58s both; }
.hero-motion-ready .hero-v2-stats { animation: hero-rise-in var(--motion-hero) var(--ease-emphasized) .78s both; }
.hero-motion-ready .hero-digital-frame { animation: hero-image-reveal 680ms var(--ease-emphasized) .16s both; }
.hero-motion-ready .hero-course-status { animation: hero-rise-in 500ms var(--ease-emphasized) .9s both; }

@keyframes hero-panel-in { from { opacity: .001; transform: translateY(12px) scale(.995); } to { opacity: 1; transform: none; } }
@keyframes hero-rise-in { from { opacity: .001; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes hero-char-in { from { opacity: .001; filter: blur(5px); transform: translateY(14px); } to { opacity: 1; filter: blur(0); transform: none; } }
@keyframes hero-image-reveal { from { opacity: .001; clip-path: inset(100% 0 0 0 round 150px 32px 0 0); transform: translateY(24px); } to { opacity: 1; clip-path: inset(0 0 0 0 round 150px 32px 0 0); transform: none; } }

@media (max-width: 1023px) {
  .hero-v2 { padding-top: 28px; }
  .hero-v2-panel { grid-template-columns: minmax(0, 1fr) minmax(380px, .9fr); min-height: 650px; }
  .hero-v2-copy { padding-left: 48px; padding-right: 12px; }
  .hero-v2-title { font-size: clamp(38px, 4.4vw, 46px); }
  .hero-v2-media { min-height: 650px; }
  .hero-digital-frame { right: 18px; width: calc(100% - 26px); }
}

@media (max-width: 820px) {
  .hero-v2 { padding: 24px 0 72px; }
  .hero-v2-panel { grid-template-columns: 1fr; }
  .hero-v2-copy { max-width: none; padding: 56px 44px 32px; text-align: center; }
  .hero-v2-title, .hero-v2-copy > p { margin-left: auto; margin-right: auto; }
  .hero-v2-actions { justify-content: center; }
  .hero-v2-stats { margin: 44px auto 0; text-align: left; }
  .hero-v2-media { min-height: 540px; }
  .hero-digital-frame { top: 18px; right: 50%; width: min(470px, calc(100% - 64px)); transform: translateX(50%); }
  .hero-motion-ready .hero-digital-frame { animation-name: hero-image-reveal-centered; }
  .hero-course-status { right: 50%; transform: translateX(50%); }
  .hero-course-status:hover { transform: translate(50%,-4px); }
  .hero-motion-ready .hero-course-status { animation-name: hero-status-centered; }
}

@keyframes hero-image-reveal-centered { from { opacity: .001; clip-path: inset(100% 0 0 0 round 150px 32px 0 0); transform: translate(50%,24px); } to { opacity: 1; clip-path: inset(0 0 0 0 round 150px 32px 0 0); transform: translateX(50%); } }
@keyframes hero-status-centered { from { opacity: .001; transform: translate(50%,28px); } to { opacity: 1; transform: translateX(50%); } }

@media (max-width: 680px) {
  .hero-v2 { min-height: auto; padding: 16px 0 56px; }
  .hero-v2-panel { width: calc(100% - 32px); min-height: 0; border-radius: 24px; }
  .hero-v2-copy { padding: 38px 20px 24px; }
  .hero-v2-eyebrow { margin-bottom: 18px; font-size: 12px; }
  .hero-v2-title { margin-bottom: 18px; font-size: clamp(30px, 8.4vw, 36px); line-height: 1.04; }
  .hero-v2-copy > p { margin-bottom: 24px; font-size: 16px; line-height: 1.55; }
  .hero-v2 .button-row { grid-template-columns: 1fr; max-width: none; gap: 10px; }
  .hero-v2-actions .button { min-height: 50px; }
  .hero-v2-stats { margin-top: 34px; text-align: center; }
  .hero-v2-stats > span { padding-right: 8px; }
  .hero-v2-stats > span + span { padding-left: 8px; }
  .hero-v2-stats strong { font-size: 21px; }
  .hero-response > span { display: flex; justify-content: center; }
  .hero-v2-media { min-height: 430px; }
  .hero-digital-frame { top: 10px; bottom: 0; width: calc(100% - 32px); border-radius: 100px 24px 0 0; }
  .hero-digital-frame img { object-position: center 18%; }
  .hero-course-status { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-v2-panel, .hero-v2-eyebrow, .hero-title-char, .hero-v2-copy > p, .hero-v2-actions, .hero-v2-stats,
  .hero-digital-frame, .hero-course-status {
    animation: none !important;
    opacity: 1 !important;
    filter: none !important;
  }
  .hero-response i { animation: none; }
  .hero-course-status:hover { transform: none; }
  .faq-list details:hover, .faq-list details[open] { transform: none; }
}

@media (hover: none) {
  .hero-course-status:hover { box-shadow: var(--shadow-sevora-soft); transform: none; }
}

@media (prefers-reduced-motion: reduce) and (max-width: 820px), (hover: none) and (max-width: 820px) {
  .hero-course-status:hover { transform: translateX(50%); }
}

/* Neutral page canvases use the shared white diagonal pattern. Solid cards, forms,
   dialogs, media panels, and branded gradient sections remain pattern-free. */
.hero-v2,
.teacher,
.homepage-resources,
.group-courses,
.resources-page .resources-catalog,
.pricing-page,
.group-detail-page,
.resources-page,
.resource-detail-page,
.account-section,
.faq-page-section,
.recording-notice-section,
.group-recording-summary,
.level-test-body,
.group-story-section,
.group-before-section,
.group-closing-wrap,
.private-vibrant-section {
  background-color: var(--color-background);
  background-image: var(--background-pattern);
  background-size: 10px 10px;
}
