:root {
  --navy-990: #020a0f;
  --navy-960: #061620;
  --navy-920: #0b2330;
  --navy-860: #123747;
  --navy-760: #245d70;
  --cream-70: #fbf6ec;
  --paper-100: #f2eadc;
  --paper-200: #e8dccb;
  --ink-950: #102331;
  --ink-850: #203947;
  --ink-700: #405e6b;
  --ink-600: #5c7480;
  --amber-500: #d9a03e;
  --amber-300: #f0c779;
  --white: #fffdf8;
  --dark-body: #dbe8ee;
  --dark-muted: #c7d6dd;
  --line-light: rgba(16, 35, 49, 0.12);
  --line-dark: rgba(255, 255, 255, 0.16);
  --shadow-soft: 0 24px 70px rgba(6, 22, 32, 0.12);
  --shadow-deep: 0 30px 90px rgba(2, 10, 15, 0.35);
  --radius-sm: 14px;
  --radius-md: 24px;
  --radius-lg: 36px;
  --container: 1180px;
}

*, *::before, *::after { box-sizing: border-box; }
html { font-size: 16px; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Manrope", system-ui, sans-serif;
  color: var(--ink-850);
  background:
    radial-gradient(circle at 88% 4%, rgba(217, 160, 62, 0.12), transparent 30rem),
    linear-gradient(180deg, var(--cream-70), #f7efe3 58%, #f0e6d6);
  line-height: 1.72;
}
body.nav-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--amber-300); outline-offset: 4px; }
.skip-link { position: absolute; left: 1rem; top: -5rem; z-index: 1000; padding: .75rem 1rem; border-radius: 999px; color: var(--white); background: var(--navy-960); transition: top .2s ease; }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 2rem), var(--container)); margin-inline: auto; }
.narrow { max-width: 830px; }
.site-shell { min-height: 100vh; overflow-x: clip; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 500;
  background: rgba(6, 22, 32, 0.92);
  color: var(--white);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line-dark);
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 82px; }
.brand { display: inline-flex; align-items: center; min-width: 188px; max-width: 282px; }
.brand img { width: 100%; max-height: 58px; object-fit: contain; object-position: left center; }
.nav-menu { display: flex; align-items: center; gap: 1rem; }
.nav-links { display: flex; align-items: center; gap: .14rem; }
.nav-links a { padding: .68rem .66rem; border-radius: 999px; color: #e9f2f5; font-weight: 800; font-size: .86rem; }
.nav-links a:hover, .nav-links a[aria-current="page"] { background: rgba(255,255,255,.1); color: var(--white); }
.nav-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line-dark); border-radius: 999px; background: rgba(255,255,255,.06); }
.nav-toggle span { display: block; width: 18px; height: 2px; background: var(--white); margin: 4px auto; border-radius: 99px; }

.button, .button-light, .button-secondary, .text-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  border-radius: 999px;
  font-weight: 900;
  line-height: 1.2;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.button, .button-light { padding: .9rem 1.15rem; background: var(--amber-500); color: #10130d; box-shadow: 0 12px 26px rgba(217,160,62,.25); }
.button-light { background: var(--amber-300); }
.button-secondary { padding: .85rem 1.05rem; color: var(--ink-950); border: 1px solid var(--line-light); background: rgba(255,255,255,.65); }
.section-dark .button-secondary, .hero .button-secondary, .page-hero .button-secondary { color: var(--white); border-color: var(--line-dark); background: rgba(255,255,255,.08); }
.button:hover, .button-light:hover, .button-secondary:hover, .text-link:hover { transform: translateY(-2px); }
.text-link { color: var(--navy-760); justify-content: flex-start; font-size: .95rem; }
.text-link::after { content: "→"; }
.section-dark .text-link, .page-hero .text-link { color: var(--amber-300); }

.section, .page-hero, .hero { padding: clamp(4rem, 7vw, 7rem) 0; }
.page-hero, .hero, .section-dark, .footer {
  background:
    radial-gradient(circle at top left, rgba(217,160,62,.14), transparent 28rem),
    linear-gradient(135deg, var(--navy-990), var(--navy-920));
  color: var(--white);
}
.page-hero { padding-top: clamp(4.5rem, 8vw, 7.5rem); }
.home-hero { padding-top: clamp(5rem, 9vw, 8rem); }
.section-muted { background: rgba(255,255,255,.58); border-block: 1px solid rgba(16,35,49,.08); }
.hero-grid, .split-grid, .content-grid, .contact-grid { display: grid; gap: clamp(1.4rem, 3vw, 2.25rem); align-items: start; }
.hero-grid { grid-template-columns: minmax(0, 1.04fr) minmax(320px, .96fr); align-items: center; }
.split-grid, .content-grid, .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.contact-single { max-width: 920px; }
.contact-single .contact-card { padding: clamp(1.5rem, 3vw, 2.5rem); }
.hero-inner { max-width: 920px; }
.breadcrumbs { display: flex; gap: .55rem; align-items: center; color: var(--dark-muted); font-size: .92rem; margin-bottom: 1rem; }
.breadcrumbs a { color: var(--amber-300); }
.eyebrow, .tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  letter-spacing: .105em;
  text-transform: uppercase;
  font-weight: 900;
}
.eyebrow { padding: .45rem .8rem; background: rgba(217,160,62,.14); color: #9b6b1f; font-size: .76rem; }
.section-dark .eyebrow, .hero .eyebrow, .page-hero .eyebrow, .footer .eyebrow { color: var(--amber-300); background: rgba(255,255,255,.08); }
.tag { padding: .32rem .62rem; background: rgba(217,160,62,.14); color: #7b551a; font-size: .68rem; }
.section-dark .tag, .panel-dark .tag { color: var(--amber-300); background: rgba(255,255,255,.1); }
.headline, .section-title, h2, h3 { font-family: "Space Grotesk", "Manrope", sans-serif; line-height: 1.06; letter-spacing: -.045em; color: inherit; }
.headline { margin: 1rem 0; font-size: clamp(2.45rem, 6vw, 5.25rem); max-width: 12ch; }
.page-hero .headline { max-width: 13ch; }
.section-title { margin: .95rem 0; font-size: clamp(2rem, 4vw, 3.3rem); max-width: 14ch; }
h2 { font-size: clamp(1.55rem, 3vw, 2.35rem); margin: .8rem 0; }
h3 { font-size: 1.25rem; margin: .55rem 0 .7rem; }
.subheadline { max-width: 58rem; font-size: clamp(1.05rem, 1.7vw, 1.2rem); color: var(--ink-700); }
p { margin: 0 0 1rem; color: var(--ink-700); }
.hero-note { max-width: 48rem; color: var(--dark-muted); font-size: .98rem; }
.section-dark p, .section-dark .subheadline, .hero p, .hero .subheadline, .page-hero p, .page-hero .subheadline, .footer p { color: var(--dark-body); }
.cta-row, .hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.35rem; }

.jump-strip { position: sticky; top: 82px; z-index: 300; background: rgba(251,246,236,.92); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line-light); }
.jump-strip-inner { display: flex; gap: .55rem; overflow-x: auto; padding: .75rem 0; scrollbar-width: thin; }
.jump-strip a { flex: 0 0 auto; padding: .45rem .72rem; border-radius: 999px; color: var(--ink-700); font-weight: 800; font-size: .85rem; border: 1px solid rgba(16,35,49,.08); background: rgba(255,255,255,.56); }

.card-grid, .stats-grid, .process-grid, .route-grid, .testimonial-grid { display: grid; gap: 1rem; margin-top: 1.4rem; }
.card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.stats-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.process-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.route-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.testimonial-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card, .stats-card, .answer-box, .panel-light, .contact-card, .proof-card, .faq-item, .schedule-card {
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(16,35,49,.1);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-soft);
  padding: clamp(1.1rem, 2vw, 1.6rem);
}
.section-dark .card, .route-card, .panel-dark {
  background: rgba(255,255,255,.08);
  border: 1px solid var(--line-dark);
  border-radius: var(--radius-md);
  box-shadow: none;
  padding: clamp(1.1rem, 2vw, 1.6rem);
  color: var(--white);
}
.card p, .stats-card p, .answer-box p, .panel-light p, .contact-card p, .proof-card p, .schedule-card p { color: var(--ink-700); }
.panel-dark p, .route-card p, .section-dark .card p { color: var(--dark-body); }
.philosophy-band {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(1.4rem, 4vw, 3rem);
  align-items: stretch;
  padding: clamp(1.6rem, 4vw, 3rem);
  border-radius: var(--radius-lg);
  background:
    radial-gradient(circle at 90% 10%, rgba(217,160,62,.18), transparent 18rem),
    rgba(255,255,255,.78);
  border: 1px solid rgba(16,35,49,.1);
  box-shadow: var(--shadow-soft);
}
.philosophy-band .section-title { max-width: none; }
.philosophy-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; align-items: stretch; }
.philosophy-points article {
  min-height: 100%;
  padding: 1.15rem;
  border-radius: 22px;
  background: var(--white);
  border: 1px solid rgba(16,35,49,.1);
}
.philosophy-points strong { display: block; color: var(--ink-950); font-family: "Space Grotesk", sans-serif; font-size: 1.08rem; line-height: 1.15; margin-bottom: .55rem; }
.philosophy-points p { margin: 0; color: var(--ink-700); font-size: .95rem; }
.stats-card { min-height: 150px; }
.stats-card strong { display: block; color: var(--navy-920); font-family: "Space Grotesk", sans-serif; font-size: clamp(1.7rem, 3vw, 2.4rem); line-height: 1; margin-bottom: .55rem; }
.stats-card p { margin-bottom: 0; }
.bullet-list { padding: 0; margin: 1rem 0 0; list-style: none; display: grid; gap: .7rem; }
.bullet-list li { position: relative; padding-left: 1.35rem; color: var(--ink-700); }
.bullet-list li::before { content: ""; position: absolute; left: 0; top: .72em; width: .48rem; height: .48rem; border-radius: 999px; background: var(--amber-500); }
.section-dark .bullet-list li, .panel-dark .bullet-list li { color: var(--dark-body); }

.image-card { margin: 0; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid rgba(255,255,255,.16); background: var(--navy-960); box-shadow: var(--shadow-deep); }
.image-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.image-card figcaption { padding: .9rem 1rem; color: var(--dark-body); background: rgba(6,22,32,.96); font-size: .92rem; }
.teacher-card img { object-fit: contain; background: radial-gradient(circle at center, rgba(217,160,62,.12), transparent 58%), var(--navy-990); }
.hero-visual { transform: rotate(1deg); }
.teacher-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
  grid-template-areas:
    "copy portrait"
    "stats stats"
    "actions actions";
  align-items: center;
  gap: clamp(1.4rem, 3vw, 3.2rem);
}
.teacher-copy { grid-area: copy; }
.teacher-copy .section-title { max-width: 22ch; }
.teacher-copy .subheadline { max-width: 62rem; }
.teacher-card-compact {
  grid-area: portrait;
  width: 100%;
  max-width: 360px;
  justify-self: end;
}
.teacher-card-compact img {
  aspect-ratio: 1 / 1;
  max-height: 360px;
}
.teacher-stats {
  grid-area: stats;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
}
.teacher-actions {
  grid-area: actions;
  justify-content: flex-start;
  margin-top: 0;
}
.proof-card { display: grid; gap: .9rem; align-content: start; }
.proof-card blockquote { margin: .3rem 0; font-family: "Space Grotesk", sans-serif; color: var(--ink-950); font-size: 1.12rem; line-height: 1.35; }
.proof-card img { border-radius: 18px; border: 1px solid var(--line-light); width: 100%; height: auto; object-fit: contain; background: var(--paper-100); }
.proof-card p { font-size: .9rem; color: var(--ink-600); }
.proof-card--text, .proof-card-text { min-height: 220px; align-content: center; }
.proof-card--image { padding: 1.25rem; }
.proof-card--image img { justify-self: center; max-width: 920px; }
.testimonial-stack { display: grid; gap: 1.2rem; max-width: 980px; margin: 1.6rem auto 0; }
.testimonial-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; margin-top: 1.6rem; }
.proof-card--gallery { padding: 1rem; gap: .75rem; }
.proof-card--gallery:nth-child(5) { grid-column: 1 / -1; max-width: 620px; justify-self: center; }
.proof-card__head { display: grid; gap: .55rem; min-height: 128px; align-content: start; }
.proof-card__head blockquote { font-size: clamp(1rem, 1.7vw, 1.2rem); }
.testimonial-shot {
  display: grid;
  place-items: center;
  height: clamp(300px, 34vw, 480px);
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(16,35,49,.12);
  background:
    radial-gradient(circle at 50% 15%, rgba(217,160,62,.14), transparent 16rem),
    #060c10;
}
.testimonial-shot img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: contain;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.route-mini { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .7rem; }
.route-mini a { padding: 1rem; min-height: 92px; border-radius: 20px; background: rgba(255,255,255,.08); border: 1px solid var(--line-dark); color: var(--white); font-weight: 900; }

.table-wrap { overflow-x: auto; border-radius: 18px; border: 1px solid var(--line-light); }
table { width: 100%; border-collapse: collapse; min-width: 520px; background: rgba(255,255,255,.62); }
th, td { padding: .82rem .9rem; border-bottom: 1px solid rgba(16,35,49,.1); text-align: left; }
th { color: var(--ink-950); background: rgba(217,160,62,.14); font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; }
td { color: var(--ink-700); }
.table-note, .reply-note { font-size: .92rem; color: var(--ink-600); margin-top: .9rem; }
.check-table th:not(:first-child),
.check-table td:not(:first-child) { text-align: center; }
.check-table th:first-child,
.check-table td:first-child { min-width: 230px; }
.check-table td:last-child,
.check-table th:last-child { text-align: left; min-width: 180px; }
.check-box { display: inline-block; width: 1.05rem; height: 1.05rem; border: 2px solid rgba(16,35,49,.36); border-radius: 4px; background: rgba(255,255,255,.82); vertical-align: middle; }
.resource-section { margin-top: 2rem; }
.definition-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 1.2rem; }
.definition-card { border: 1px solid var(--line-light); border-radius: 20px; padding: 1rem; background: rgba(255,255,255,.66); }
.priority-list { counter-reset: priority; display: grid; gap: .9rem; margin-top: 1.2rem; }
.priority-item { counter-increment: priority; display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: start; padding: 1rem; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px solid var(--line-light); }
.priority-item::before { content: counter(priority); display: grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 999px; background: var(--amber-500); color: #14130e; font-weight: 900; }
.weekly-plan { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .85rem; margin-top: 1.2rem; }
.weekly-day { padding: 1rem; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px solid var(--line-light); }
.weekly-day strong { display: block; color: var(--ink-950); margin-bottom: .35rem; }
.revision-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: 1rem;
  align-items: stretch;
}
.map-principle {
  display: grid;
  gap: .8rem;
  padding: clamp(1.2rem, 2.5vw, 2rem);
  border-radius: var(--radius-lg);
  background: rgba(255,255,255,.78);
  border: 1px solid var(--line-light);
  box-shadow: var(--shadow-soft);
}
.map-contrast {
  display: grid;
  gap: .85rem;
}
.contrast-card {
  padding: 1rem;
  border-radius: 20px;
  border: 1px solid var(--line-light);
  background: rgba(255,255,255,.68);
}
.contrast-card strong { display: block; color: var(--ink-950); margin-bottom: .25rem; }
.status-card[data-status="secure"] { border-color: rgba(42,123,84,.24); }
.status-card[data-status="shaky"] { border-color: rgba(217,160,62,.34); }
.status-card[data-status="unknown"] { border-color: rgba(92,116,128,.28); }
.status-card[data-status="repeat"] { border-color: rgba(160,48,48,.26); }
.topic-map { display: grid; gap: 1rem; margin-top: 1.5rem; }
.topic-group {
  overflow: hidden;
  border: 1px solid var(--line-light);
  border-radius: var(--radius-md);
  background: rgba(255,255,255,.74);
  box-shadow: var(--shadow-soft);
}
.topic-group__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.15rem;
  background: linear-gradient(135deg, rgba(217,160,62,.16), rgba(255,255,255,.62));
  border-bottom: 1px solid var(--line-light);
}
.topic-group__header h3 { margin: 0; }
.topic-group__header span { color: var(--ink-600); font-weight: 800; font-size: .9rem; }
.topic-row {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) minmax(420px, 1.55fr) minmax(170px, .7fr);
  gap: .75rem;
  align-items: center;
  padding: .85rem 1rem;
  border-bottom: 1px solid rgba(16,35,49,.08);
}
.topic-row:last-child { border-bottom: 0; }
.topic-name { color: var(--ink-950); font-weight: 900; }
.status-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; }
.status-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  justify-content: center;
  padding: .45rem .5rem;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(16,35,49,.12);
  color: var(--ink-700);
  font-size: .78rem;
  font-weight: 900;
}
.status-chip .check-box { width: .82rem; height: .82rem; border-width: 1.6px; }
.notes-line {
  min-height: 2.1rem;
  border-bottom: 2px solid rgba(16,35,49,.18);
  color: var(--ink-600);
  font-size: .82rem;
}
.diagnosis-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .85rem; margin-top: 1.2rem; }
.diagnosis-card {
  display: grid;
  gap: .55rem;
  padding: 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.74);
  border: 1px solid var(--line-light);
}
.diagnosis-card h3 { margin: 0; }
.diagnosis-card .weak-label { color: var(--ink-600); font-size: .9rem; }
.diagnosis-card .better-label { color: var(--ink-950); font-weight: 900; }
.worksheet-callout {
  padding: clamp(1.2rem, 2.5vw, 2rem);
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(217,160,62,.16), rgba(255,255,255,.72));
  border: 1px solid rgba(217,160,62,.28);
}
.paper-check-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .85rem; margin-top: 1.2rem; }
.paper-check {
  padding: 1rem;
  border-radius: 20px;
  background: rgba(255,255,255,.08);
  border: 1px solid var(--line-dark);
  color: var(--white);
}
.paper-check span { display: block; color: var(--amber-300); font-weight: 900; margin-bottom: .4rem; }
.paper-check p { color: var(--dark-body); margin: 0; }

.faq-list { display: grid; gap: .8rem; margin-top: 1.2rem; }
.faq-item { padding: 0; overflow: hidden; }
.faq-question { width: 100%; border: 0; background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.25rem; color: var(--ink-950); font-weight: 900; text-align: left; }
.faq-icon { color: var(--amber-500); font-size: 1.4rem; }
.faq-answer { padding: 0 1.25rem 1.1rem; }
.faq-answer p { margin: 0; }

.contact-form { display: grid; gap: 1rem; margin-top: 1rem; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.field { display: grid; gap: .35rem; }
label { color: var(--ink-950); font-weight: 900; }
input, select, textarea { width: 100%; border: 1px solid rgba(16,35,49,.18); border-radius: 16px; padding: .85rem .9rem; background: rgba(255,255,255,.9); color: var(--ink-950); }
textarea { min-height: 150px; resize: vertical; }
.consent-line { display: flex; gap: .6rem; align-items: flex-start; font-size: .92rem; line-height: 1.5; color: var(--ink-700); }
.consent-line input { width: auto; margin-top: .25rem; }
.consent-line a { color: var(--navy-760); text-decoration: underline; text-underline-offset: 3px; }
.hp-field { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
.status-message { padding: .85rem 1rem; border-radius: 16px; font-weight: 800; }
.status-message[data-status="success"] { background: rgba(42, 123, 84, .12); color: #1e6c48; }
.status-message[data-status="error"] { background: rgba(160, 48, 48, .12); color: #8a2626; }
.status-message[data-status="pending"] { background: rgba(217,160,62,.14); color: #7b551a; }

.footer { padding: 4rem 0; }
.footer-grid { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.4fr); gap: 2rem; }
.footer-brand img { max-width: 310px; margin-bottom: 1rem; }
.footer-small { font-size: .95rem; }
.footer-columns { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.footer-column strong { color: var(--white); display: block; margin-bottom: .65rem; }
.footer-column ul { padding: 0; margin: 0; list-style: none; display: grid; gap: .45rem; }
.footer-column a { color: var(--dark-body); }
.footer-column a:hover { color: var(--amber-300); }
.floating-wa { position: fixed; z-index: 450; right: 1rem; bottom: 1rem; }
.floating-wa a { display: inline-flex; padding: .8rem 1rem; border-radius: 999px; background: #1f8f58; color: white; font-weight: 900; box-shadow: var(--shadow-deep); }

.reveal { opacity: 0; transform: translateY(16px); transition: opacity .45s ease, transform .45s ease; }
.reveal.is-visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: .08s; }
.reveal-delay-2 { transition-delay: .14s; }
.reveal-delay-3 { transition-delay: .2s; }

@media (max-width: 1040px) {
  .nav-toggle { display: inline-block; }
  .nav-menu { position: fixed; inset: 82px 0 auto 0; display: none; min-height: calc(100vh - 82px); padding: 1rem; background: rgba(6,22,32,.98); align-items: stretch; flex-direction: column; }
  .nav-menu.is-open { display: flex; }
  .nav-links { display: grid; gap: .35rem; }
  .nav-links a { padding: .95rem 1rem; }
  .nav-cta { width: 100%; }
  .hero-grid, .split-grid, .content-grid, .contact-grid, .footer-grid { grid-template-columns: 1fr; }
  .card-grid, .process-grid, .testimonial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-grid, .route-mini, .stats-grid, .definition-grid, .weekly-plan, .revision-lead, .diagnosis-grid, .paper-check-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .teacher-overview {
    grid-template-columns: 1fr;
    grid-template-areas:
      "copy"
      "portrait"
      "stats"
      "actions";
  }
  .teacher-card-compact { justify-self: start; }
  .teacher-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .philosophy-band { grid-template-columns: 1fr; }
  .testimonial-gallery { grid-template-columns: 1fr; }
  .proof-card--gallery:nth-child(5) { grid-column: auto; max-width: none; }
  .topic-row { grid-template-columns: 1fr; }
  .status-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .container { width: min(calc(100% - 1.2rem), var(--container)); }
  .nav-wrap { min-height: 74px; }
  .brand { min-width: 170px; max-width: 218px; }
  .nav-menu { inset: 74px 0 auto 0; min-height: calc(100vh - 74px); }
  .jump-strip { top: 74px; }
  .section, .page-hero, .hero { padding: 3.4rem 0; }
  .headline { max-width: 11ch; }
  .card-grid, .stats-grid, .process-grid, .route-grid, .testimonial-grid, .route-mini, .form-row, .footer-columns, .definition-grid, .weekly-plan, .revision-lead, .diagnosis-grid, .paper-check-grid { grid-template-columns: 1fr; }
  .teacher-stats { grid-template-columns: 1fr; }
  .teacher-card-compact { max-width: 320px; }
  .philosophy-points { grid-template-columns: 1fr; }
  .testimonial-shot { height: min(420px, 78vw); }
  .proof-card__head { min-height: auto; }
  .topic-group__header { align-items: flex-start; flex-direction: column; }
  .status-options { grid-template-columns: 1fr; }
  .cta-row { flex-direction: column; align-items: stretch; }
  .button, .button-light, .button-secondary { width: 100%; }
  .floating-wa { left: .7rem; right: .7rem; }
  .floating-wa a { width: 100%; justify-content: center; }
  .proof-card img, .testimonial-grid-full .proof-card img { height: auto; max-height: none; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
  .reveal { opacity: 1; transform: none; }
}
@media print {
  .topbar, .floating-wa, .jump-strip, .footer, .nav-toggle { display: none !important; }
  body { background: white; color: black; }
  .section, .page-hero, .hero { padding: 1rem 0; background: white !important; color: black !important; }
}
