:root {
  --red: #bc2823;
  --red-light: #d0302a;
  --signal: #ea1111;
  --cream: #faf9f1;
  --white: #fff;
  --ink: #2a1d18;
  --soft-ink: #3e312c;
  --muted: #645953;
  --divider: #e5ded8;
  --blush: #f8e2db;
  --red-field: radial-gradient(140% 120% at 15% 0%, #d0302a 0%, #bc2823 60%);
  --shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);
  --shadow-xl: 0 12px 30px rgba(42, 29, 24, .16);
  --display: Arial, "Helvetica Neue", sans-serif;
  --body: "Atkinson Hyperlegible", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--cream); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--cream);
  font-family: var(--body);
  font-size: 16px;
  line-height: 1.18;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, summary { font: inherit; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.section { padding: 96px 0; }
.section--compact { padding-block: 40px; }
.cream { background: var(--cream); }
.red-band { color: var(--white); background: var(--red-field); }
.ink-band { color: var(--cream); background: var(--ink); }

.hero { min-height: 820px; color: var(--white); background: var(--red-field); }
.nav {
  min-height: 73px;
  display: grid;
  grid-template-columns: 190px 1fr auto;
  gap: 32px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, .22);
}
.logo { display: inline-flex; width: 164px; }
.logo img { width: 100%; filter: brightness(0) invert(1); }
.nav__links { display: flex; justify-content: center; gap: 32px; }
.nav__links a { color: rgba(255,255,255,.92); text-decoration: none; }
.nav__links a:hover { text-decoration: underline; text-underline-offset: 5px; }
.hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(390px, .95fr);
  gap: 64px;
  align-items: center;
  padding-block: 64px 72px;
}
.hero__copy { display: grid; justify-items: start; gap: 24px; }
h1, .section-title, .medium-title, .card-title, .tariff__title, .tariff__price strong {
  font-family: var(--display);
  font-weight: 600;
}
h1 {
  max-width: 740px;
  margin: 0;
  font-size: clamp(48px, 5.3vw, 68px);
  line-height: 1;
  letter-spacing: -.03em;
}
.lead { max-width: 660px; margin: 0; color: rgba(255,255,255,.9); }
.eyebrow {
  margin: 0;
  color: var(--red);
  font-size: 13px;
  line-height: 1.18;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.eyebrow--light { color: rgba(255,255,255,.78); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; padding-top: 8px; }
.button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 20px;
  border: 0;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 600;
  line-height: 1.1;
}
.button--large { min-width: 180px; }
.button--light { color: var(--red); background: var(--white); }
.button--signal { color: var(--white); background: var(--signal); }
.button--dark { color: var(--cream); background: var(--ink); }
.button--outline { color: var(--red); border: 1px solid var(--red); background: transparent; }
.button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid rgba(234,17,17,.4); outline-offset: 4px; }
.date-pill, .photo-pill {
  display: inline-flex;
  padding: 11px 16px;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 9999px;
  line-height: 1.1;
}
.hero__photo {
  position: relative;
  min-height: 620px;
  margin: 0;
  overflow: hidden;
  border-radius: 32px;
  background: #cf5d57;
  box-shadow: 0 32px 64px -16px rgba(61,0,23,.45);
}
.hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(42,29,24,.35)); pointer-events: none; }
.hero__photo img { width: 100%; height: 100%; min-height: 620px; object-fit: cover; object-position: 66% center; }
.photo-pill { position: absolute; z-index: 1; right: 24px; bottom: 24px; color: var(--white); background: rgba(255,255,255,.14); backdrop-filter: blur(10px); }

.section-title {
  max-width: 920px;
  margin: 0 0 48px;
  font-size: clamp(40px, 4.5vw, 56px);
  line-height: 1.05;
  letter-spacing: -.03em;
}
.section-title--light { color: var(--white); }
.medium-title { margin: 0; font-size: clamp(30px, 3vw, 36px); line-height: 1.12; letter-spacing: -.02em; }
.body-copy { margin: 0; }
.body-copy--light { color: rgba(255,255,255,.88); }
.editorial, .section-intro {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: 64px;
  align-items: start;
}
.editorial > .section-title, .section-intro > .section-title { margin-bottom: 0; }
.section-intro { align-items: end; margin-bottom: 48px; }
.white-card { padding: 36px; border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }
.dark-card { padding: 36px; border-radius: 16px; background: rgba(208,48,42,.2); box-shadow: var(--shadow-xl); }
.copy-list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.copy-list li { position: relative; }
.copy-list li.has-source-bullet { padding-left: 22px; }
.source-bullet { position: absolute; left: 0; color: var(--red); font-weight: 700; }
.copy-list--large { gap: 18px; }
.copy-list--columns { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px 28px; margin-bottom: 28px; }
.copy-list--light { color: rgba(255,255,255,.9); }
.copy-list--light .source-bullet { color: #dc8580; }

.benefits { display: grid; gap: 32px; }
.benefit {
  display: grid;
  grid-template-columns: minmax(360px, .92fr) minmax(0, 1.08fr);
  gap: 48px;
  align-items: center;
  padding-block: 32px;
  border-top: 1px solid rgba(255,255,255,.2);
}
.benefit:last-child { border-bottom: 1px solid rgba(255,255,255,.2); }
.benefit__copy { display: grid; gap: 20px; }
.benefit .copy-list li { color: rgba(255,255,255,.92); }
.benefit .source-bullet { color: rgba(255,255,255,.7); }
.card-title { margin: 0; font-size: 28px; line-height: 1.1; letter-spacing: -.02em; }
.video-frame { position: relative; overflow: hidden; aspect-ratio: 16/9; border-radius: 24px; background: #140d0b; box-shadow: var(--shadow-xl); }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.outcomes { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 48px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--divider); }
.outcomes li { display: grid; grid-template-columns: 38px 1fr; gap: 16px; padding: 24px 0; border-bottom: 1px solid var(--divider); }
.outcomes li span { color: var(--red); font-weight: 700; }
.outcomes p { margin: 0; }
.blush-panel { padding: 56px; border-radius: 32px; background: var(--blush); }
.split-panel { display: grid; grid-template-columns: minmax(280px,.8fr) minmax(0,1.2fr); gap: 56px; }

.process-panel { display: grid; grid-template-columns: minmax(0,1fr) minmax(360px,.88fr); gap: 72px; padding: 64px; border-radius: 32px; background: rgba(255,255,255,.08); }
.process-panel .section-title { margin: 0; }
.process-equation { margin: 0 0 16px; color: rgba(255,255,255,.72); }
.process-list { margin: 0; padding: 0; list-style: none; }
.process-list li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; align-items: center; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.22); font-family: var(--display); font-size: 24px; line-height: 1.1; }
.process-list li:first-child { padding-top: 0; }
.process-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.process-list span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 8px; color: var(--red); background: var(--white); font-family: var(--body); font-size: 14px; font-weight: 700; }

.course-intro { display: grid; grid-template-columns: minmax(0,.78fr) minmax(420px,1.22fr); gap: 64px; align-items: center; }
.course-intro__copy { display: grid; gap: 24px; }
.course-intro .section-title { margin: 0; }
.program { padding-top: 120px; }
.modules { border-top: 1px solid var(--divider); }
.module { border-bottom: 1px solid var(--divider); }
.module summary { display: grid; grid-template-columns: 48px 1fr; gap: 20px; align-items: center; padding: 26px 0; cursor: pointer; font-family: var(--display); font-size: 26px; line-height: 1.1; font-weight: 600; }
.module summary > span:first-child { color: var(--red); font-family: var(--body); font-size: 16px; }
.module__body { max-width: 800px; padding: 0 0 28px 68px; color: var(--soft-ink); }
.center { display: flex; justify-content: center; padding-top: 40px; }
.statement { text-align: center; }
.statement .medium-title { max-width: 860px; margin-inline: auto; }

.included { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; margin: 0 0 40px; padding: 0; list-style: none; border-top: 1px solid var(--divider); border-left: 1px solid var(--divider); }
.included li { min-height: 104px; display: flex; align-items: center; padding: 24px; border-right: 1px solid var(--divider); border-bottom: 1px solid var(--divider); background: rgba(255,255,255,.45); }
.tariffs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; align-items: stretch; }
.tariff { display: flex; flex-direction: column; gap: 20px; padding: 32px; border-radius: 16px; background: var(--white); box-shadow: var(--shadow); }
.tariff--featured { color: var(--white); background: var(--red-field); box-shadow: var(--shadow-xl); }
.tariff--featured .eyebrow, .tariff--featured .copy-list li { color: var(--white); }
.tariff--featured .source-bullet { color: rgba(255,255,255,.75); }
.tariff__title { margin: 0; font-size: 34px; line-height: 1.08; letter-spacing: -.02em; }
.tariff__price { display: flex; flex-wrap: wrap; gap: 12px; align-items: baseline; }
.tariff__price strong { font-size: 34px; line-height: 1; }
.tariff__price span { color: var(--muted); text-decoration: line-through; }
.tariff--featured .tariff__price span { color: rgba(255,255,255,.68); }
.tariff__list { flex: 1; }
.tariff .button { width: 100%; }
.tariff-notes { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; padding-top: 28px; color: var(--muted); }
.tariff-notes p { width: 100%; margin: 0; text-align: center; }
.tariff-notes span { padding: 9px 14px; border: 1px solid var(--divider); border-radius: 12px; }

.gifts-wrap .section-title { max-width: 960px; }
.gifts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.gifts li { padding: 32px; border-top: 1px solid rgba(255,255,255,.3); }
.gifts li > span { display: block; margin-bottom: 20px; color: rgba(255,255,255,.62); font-size: 24px; }
.gifts p { margin: 0; }

.teacher { display: grid; grid-template-columns: minmax(360px,.82fr) minmax(0,1.18fr); gap: 72px; align-items: center; }
.teacher__photo { position: relative; min-height: 680px; margin: 0; overflow: hidden; border-radius: 32px; background: var(--blush); }
.teacher__photo img { width: 100%; height: 100%; min-height: 680px; object-fit: contain; object-position: center bottom; }
.photo-pill--dark { color: var(--white); border: 0; background: rgba(42,29,24,.76); }
.teacher__copy { display: grid; justify-items: start; gap: 20px; }
.teacher__copy .section-title { margin: 0; }
.teacher-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0; width: 100%; margin: 12px 0; padding: 0; list-style: none; border-top: 1px solid var(--divider); }
.teacher-stats li { min-height: 100px; padding: 22px 18px 22px 0; border-bottom: 1px solid var(--divider); }
.teacher-stats li:nth-child(odd) { margin-right: 18px; border-right: 1px solid var(--divider); }

.reviews { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; border-top: 1px solid var(--divider); }
.review { border-bottom: 1px solid var(--divider); }
.review__summary { min-height: 132px; display: grid; grid-template-columns: 64px 1fr; gap: 18px; align-items: center; padding: 24px 0; cursor: pointer; }
.review__summary img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; background: var(--blush); }
.review__identity { display: grid; gap: 7px; }
.review__identity strong { font-weight: 600; }
.muted { color: var(--muted); }
.review__body { padding: 0 0 28px 82px; color: var(--soft-ink); }
.review__body p { margin: 0 0 12px; }
.review__body p:last-child { margin-bottom: 0; }

.faq-layout { grid-template-columns: minmax(260px,.72fr) minmax(0,1.28fr); }
.faq { border-top: 1px solid var(--divider); }
.faq__item { border-bottom: 1px solid var(--divider); }
.faq__item summary { padding: 24px 0; cursor: pointer; font-weight: 600; }
.faq__answer { padding: 0 48px 24px 0; color: var(--soft-ink); }
.faq__answer p { margin: 0 0 10px; }
.faq__answer p:last-child { margin-bottom: 0; }
summary { list-style: none; }
summary::-webkit-details-marker { display: none; }

.footer { padding: 72px 0; color: var(--white); background: var(--red-field); }
.footer__grid { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); gap: 72px; }
.footer__brand { display: grid; gap: 28px; }
.footer__brand > img { width: 164px; filter: brightness(0) invert(1); }
.footer__contact { max-width: 680px; display: grid; gap: 10px; color: rgba(255,255,255,.84); }
.footer__contact p { margin: 0; }
.footer__links { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.footer__links a { color: var(--white); text-underline-offset: 4px; }

@media (max-width: 980px) {
  .nav { grid-template-columns: 1fr auto; }
  .nav__links { display: none; }
  .hero__grid, .editorial, .section-intro, .split-panel, .process-panel, .course-intro, .teacher { grid-template-columns: 1fr; }
  .hero__grid { gap: 40px; }
  .benefit { grid-template-columns: minmax(280px,.86fr) minmax(0,1.14fr); gap: 32px; }
  .tariffs { grid-template-columns: 1fr; }
  .included, .gifts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .process-panel { padding: 48px; }
  .teacher__photo, .teacher__photo img { min-height: 560px; }
}

@media (max-width: 680px) {
  body { font-size: 14px; line-height: 1.18; }
  .shell { width: min(100% - 32px, 1180px); }
  .section { padding: 64px 0; }
  .section--compact { padding-block: 24px; }
  .nav { min-height: 64px; gap: 16px; }
  .logo { width: 134px; }
  .nav .button { min-height: 38px; padding: 9px 13px; }
  .hero { min-height: 0; }
  .hero__grid { padding-block: 48px 56px; }
  h1 { font-size: 42px; line-height: 1.02; }
  .section-title { margin-bottom: 36px; font-size: 38px; line-height: 1.05; }
  .medium-title { font-size: 30px; }
  .hero__photo, .hero__photo img { min-height: 470px; }
  .hero__actions { width: 100%; align-items: stretch; }
  .hero__actions > * { flex: 1 1 100%; }
  .white-card, .dark-card { padding: 24px; }
  .copy-list--columns, .outcomes, .included, .gifts, .teacher-stats, .reviews { grid-template-columns: 1fr; }
  .benefit { display: block; padding-block: 28px; }
  .benefit__copy { margin-top: 24px; }
  .card-title { font-size: 24px; }
  .blush-panel, .process-panel { padding: 32px 24px; }
  .process-list li { font-size: 22px; }
  .module summary { grid-template-columns: 40px 1fr; gap: 12px; padding-block: 22px; font-size: 22px; }
  .module__body { padding-left: 0; }
  .included li { min-height: 84px; }
  .tariff { padding: 24px; }
  .tariff__title, .tariff__price strong { font-size: 30px; }
  .teacher__photo, .teacher__photo img { min-height: 480px; }
  .teacher-stats li:nth-child(odd) { margin-right: 0; border-right: 0; }
  .review__summary { grid-template-columns: 52px 1fr; gap: 14px; min-height: 112px; }
  .review__summary img { width: 52px; height: 52px; }
  .review__body { padding-left: 0; }
  .footer__grid { grid-template-columns: 1fr; gap: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
