/* Validated moodboard implementation, mobile-first. */

:root {
  --color-lilac: #D72665;
  --page-padding: clamp(20px, 5.2vw, 72px);
  --section-gap: clamp(56px, 8vw, 96px);
  --content-max: 1180px;
  --size-hero-main: clamp(66px, 23.5vw, 134px);
  --size-hero-script: clamp(45px, 14vw, 78px);
  --size-h2-main: clamp(48px, 14vw, 92px);
  --size-h2-script: clamp(38px, 11vw, 68px);
}

body {
  background:
    radial-gradient(88% 32% at 88% 4%, rgba(23, 78, 166, .26), transparent 66%),
    linear-gradient(180deg, #031027 0%, #061a3a 38%, #031027 100%);
}

h1, h2, h3, h4, h5, h6 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}

main > section:not(.hero) {
  width: min(100%, var(--content-max));
  margin-inline: auto;
  padding: var(--section-gap) var(--page-padding);
}

.hero::after {
  content: none !important;
  display: none !important;
}

.site-header {
  border-bottom-color: rgba(169, 190, 217, .1);
}

.hero {
  min-height: 100svh;
  display: grid;
  align-items: end;
  padding: max(92px, calc(68px + env(safe-area-inset-top))) var(--page-padding) max(42px, calc(26px + env(safe-area-inset-bottom)));
  background: #031027;
  box-shadow: inset 0 -3px 0 #031027;
}

.hero__media {
  inset: 0;
}

.hero__video {
  object-position: 54% 48%;
  transform: none;
  filter: brightness(1.06) saturate(1.04) contrast(1.08);
}

.hero__veil {
  background:
    radial-gradient(ellipse 42% 58% at 58% 54%, transparent 0%, rgba(3, 12, 29, .02) 58%, rgba(3, 12, 29, .14) 100%),
    linear-gradient(180deg, rgba(3, 12, 29, .12) 0%, rgba(3, 12, 29, 0) 52%, rgba(3, 12, 29, .68) 84%, #031027 100%),
    linear-gradient(90deg, rgba(3, 12, 29, .82) 0%, rgba(3, 12, 29, .38) 38%, rgba(3, 12, 29, 0) 72%);
}

.hero__content {
  width: min(620px, 100%);
  min-height: calc(100svh - 166px);
  margin: 0;
  padding: 0;
  text-align: left;
}

.hero-title {
  align-items: start;
  text-align: left;
}

.hero-title__pre {
  margin-bottom: 18px;
  color: #DE6C97;
  font-size: 11px;
  letter-spacing: .18em;
}

.hero-title__main {
  line-height: .72;
  letter-spacing: -.055em;
}

.hero-title__script {
  margin: -7px 0 0 clamp(18px, 7vw, 92px);
  color: #D72665;
}

.hero__lead {
  width: min(430px, 100%);
  margin: 25px 0 0;
  color: #edf6ff;
  font-size: clamp(16px, 4.2vw, 19px);
  line-height: 1.48;
}

.hero__cta-row {
  justify-content: flex-start;
  margin-top: 24px;
}

.hero__cta-note {
  width: min(420px, 100%);
  margin: 12px 0 0;
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}

.btn {
  min-height: 48px;
  border-radius: var(--radius-pill);
  font-size: 12.5px;
  letter-spacing: .16em;
}

.btn--primary {
  background: #D72665;
  color: #FFFFFF;
  box-shadow: 0 12px 34px rgba(215, 38, 101, .28);
}

.eh {
  margin-bottom: clamp(42px, 10vw, 78px);
}

.eh__eyebrow,
.credentials__eyebrow,
.support__live {
  color: #DE6C97;
  letter-spacing: .18em;
}

.eh__main {
  letter-spacing: -.04em;
}

.eh__script,
.script-glow {
  color: #D72665;
}

.audience {
  position: relative;
}

.audience__list {
  display: block;
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

.audience__list li {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 0 12px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(169, 190, 217, .17);
}

.audience__num {
  position: static;
  grid-row: 1 / span 2;
  color: #D72665;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 24px;
  line-height: 1.4;
}

.audience__list h3 {
  grid-column: 2;
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(24px, 7vw, 38px);
  font-weight: 400;
  line-height: 1;
}

.audience__list p {
  grid-column: 2;
  margin: 8px 0 0;
  color: var(--color-silver);
  font-size: 15px;
  line-height: 1.5;
}

.audience__answer-row {
  width: 100%;
  margin: 52px 0 0;
}

.audience-video {
  width: min(100%, 290px);
  margin: 0;
}

.audience-video__frame {
  position: relative;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border: 8px solid #171b23;
  border-radius: 34px;
  background: #11151c;
  box-shadow: 0 22px 48px rgba(0, 0, 0, .38), 0 0 0 1px rgba(237, 246, 255, .15);
}

.audience-video__frame::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 7px;
  width: 34%;
  height: 5px;
  transform: translateX(-50%);
  border-radius: var(--radius-pill);
  background: #090b10;
  box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
  pointer-events: none;
}

.audience-video video {
  width: 100%;
  height: 100%;
  border-radius: 25px;
  object-fit: contain;
  background: #030c1d;
}

.audience-video figcaption {
  width: 100%;
  margin-top: 28px;
  text-align: left;
}

.audience-video::before {
  content: none;
  display: none;
}

.audience-video figcaption strong {
  max-width: 100%;
  font-size: clamp(24px, 7vw, 32px);
  line-height: .98;
  overflow-wrap: normal;
  word-break: normal;
}

.evidence-note {
  border: 0;
  border-left: 1px solid rgba(215, 38, 101, .55);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.trainer {
  align-items: center;
}

.trainer__media > img,
.trainer__media-stage,
.credentials__document,
.shot,
.plan {
  border-radius: 6px;
}

.trainer__media > img {
  filter: none;
  object-position: center 40%;
}

.trainer__media-stage {
  width: 31%;
  border: 4px solid #071a3a;
  box-shadow: 0 18px 44px rgba(0, 0, 0, .34);
}

.trainer__quote {
  border-left-color: rgba(215, 38, 101, .6);
}

.credentials {
  text-align: center;
}

.credentials__intro {
  width: min(760px, 100%);
  margin-inline: auto;
}

.credentials__title {
  font-size: clamp(34px, 10.5vw, 72px);
  letter-spacing: -.035em;
}

.credentials__gallery {
  margin-top: 46px;
}

.credentials__line {
  display: none;
}

.credentials__rail {
  margin-inline: 0;
  padding: 6px 2px 24px;
  display: flex;
  grid-template-rows: none;
  grid-auto-flow: row;
  grid-auto-columns: auto;
}

.credentials__rail > div {
  flex: 0 0 min(78vw, 286px);
}

.credentials__rail > div:nth-child(n) {
  transform: none;
}

.credential-card__copy {
  min-width: 0;
  width: 100%;
  overflow: hidden;
}

.credential-card__copy strong,
.credential-card__copy span {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: normal;
  word-break: normal;
}

.credential-card__copy > span:not(.credential-card__category):not(.credential-card__year) {
  overflow-wrap: anywhere;
}

.credentials__rail .credential-card__copy strong {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 500;
  line-height: 1.28;
  letter-spacing: -.01em;
  text-wrap: balance;
}

.benefits {
  background: transparent !important;
}

.benefits::before,
.benefits::after {
  content: none !important;
  display: none !important;
}

.course-map__list {
  counter-reset: benefits;
  display: grid;
  max-width: none;
  gap: 0;
  padding: 0;
}

.course-map__list::before {
  content: none;
  display: none;
}

.course-map {
  max-width: none;
  margin: 0;
  padding: 0;
}

.course-map__item {
  counter-increment: benefits;
  position: relative;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  column-gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(169, 190, 217, .16);
  background: transparent;
}

.course-map__item::before {
  content: none;
  display: none;
}

.course-map__num {
  display: block;
  grid-column: 1;
  grid-row: 1 / span 2;
  color: #D72665;
  font-family: var(--font-display);
  font-style: italic;
  font-size: 24px;
  line-height: 1.2;
}

.course-map__dot {
  display: none;
}

.course-map__item h3 {
  grid-column: 2;
  font-family: var(--font-display);
  font-size: clamp(20px, 5.8vw, 28px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.025em;
}

.course-map__item p {
  grid-column: 2;
  margin-top: 10px;
  max-width: 38em;
  font-size: 14px;
  line-height: 1.55;
}

.support-sec {
  padding-block: clamp(40px, 7vw, 76px) !important;
}

.support {
  isolation: isolate;
  padding: clamp(30px, 7vw, 56px) clamp(22px, 6vw, 64px);
  border: 1px solid rgba(215, 38, 101, .38);
  border-radius: 22px;
  background:
    radial-gradient(70% 120% at 8% 16%, rgba(23, 78, 166, .22), transparent 72%),
    linear-gradient(135deg, rgba(13, 47, 115, .34), rgba(3, 16, 39, .72));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .18);
}

.support > * {
  position: relative;
  z-index: 1;
}

.support::before {
  z-index: 0;
}

.support__title {
  font-family: var(--font-display);
  font-size: clamp(30px, 9.2vw, 58px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: .88;
  text-wrap: balance;
}

.support__text {
  color: #edf6ff;
  font-size: clamp(16px, 2vw, 19px);
  line-height: 1.65;
}

.support__punch {
  color: #a9bed9;
  line-height: 1.55;
}

.support__cta {
  width: 100%;
  max-width: 260px;
  padding-inline: 12px;
  border-color: transparent;
  color: #FFFFFF;
  background: #D72665;
  box-shadow: 0 14px 34px rgba(215, 38, 101, .25);
}

.support__cta:hover,
.support__cta:focus-visible,
.support__cta:active {
  border-color: transparent;
  color: #FFFFFF;
  background: #C11F58;
  box-shadow: 0 16px 38px rgba(215, 38, 101, .32);
}

@media (max-width: 340px) {
  .support {
    padding-inline: 14px;
  }
}

.program__list {
  border-top: 1px solid rgba(169, 190, 217, .16);
}

.program__grid {
  max-width: none;
  margin: 0;
  padding: 0;
}

.module {
  border-bottom-color: rgba(169, 190, 217, .16);
}

/* Отзывы: та же королевская синева, карточки по референсу:
   белый «пузырь» скриншота на глубокой синей карточке,
   стрелки-кружки в строке подписи. */
.reviews {
  max-width: none !important;
  width: 100% !important;
  padding-inline: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding))) !important;
  background: transparent !important;
}

.reviews__sparkles {
  display: none;
}

.shots-wrap {
  grid-template-columns: minmax(0, 1fr) auto auto;
  column-gap: 10px;
  align-items: center;
}

.chat__note {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  margin: 0 0 18px;
  margin-inline: 0;
  text-align: left;
}

.shots__nav {
  position: static;
  grid-row: 1;
  margin-bottom: 18px;
  transform: none;
  width: 44px;
  height: 44px;
  background: transparent;
}

.shots__nav--prev {
  grid-column: 2;
  left: auto;
}

.shots__nav--next {
  grid-column: 3;
  right: auto;
}

.shots {
  grid-column: 1 / -1;
  padding: 6px 0 12px;
}

.shots__status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.shots {
  gap: 18px;
  padding-block: 20px 30px;
}

.shot,
.shot:nth-child(odd),
.shot:nth-child(even) {
  transform: none;
}

.shot {
  flex-basis: min(84vw, 420px);
  padding: clamp(16px, 4.5vw, 30px);
  border: 1px solid rgba(169, 190, 217, .22);
  border-radius: 20px;
  background:
    radial-gradient(120% 90% at 18% 0%, rgba(23, 78, 166, .5) 0%, rgba(23, 78, 166, 0) 62%),
    linear-gradient(165deg, #123061 0%, #081C3E 100%);
  box-shadow: 0 22px 54px rgba(2, 8, 20, .5);
  backdrop-filter: none;
}

.shot img {
  border: 0;
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(2, 8, 20, .35);
}

.pricing__grid {
  gap: 16px;
}

/* Тарифы как «спа-меню» kkmasaje: стеклянная карта, имя антиквой и цена
   на одной строке, пункты разделены волосяными линейками вместо буллетов. */
.plan {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto minmax(0, 1fr) auto;
  column-gap: 16px;
  align-items: baseline;
  padding: 30px 26px 26px;
  border-color: rgba(237, 246, 255, .16);
  border-radius: var(--radius-lg);
  background: rgba(237, 246, 255, .05);
  box-shadow: none;
}

.plan--featured {
  border-color: rgba(215, 38, 101, .6);
  background: linear-gradient(170deg, rgba(13, 47, 115, .5), rgba(7, 26, 58, .85));
  box-shadow: 0 18px 46px rgba(215, 38, 101, .16);
}

.plan__name {
  grid-column: 1;
  grid-row: 1;
  font-family: var(--font-display);
  font-size: clamp(24px, 2.2vw, 30px);
  font-weight: 400;
  letter-spacing: -.01em;
  text-transform: none;
}

.plan__script {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  white-space: nowrap;
  transform: none;
  color: var(--color-ice);
}

.plan__price {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  margin: 0;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(24px, 2vw, 28px);
  color: #D72665;
}

.plan__list {
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
  margin: 18px 0 24px;
  border-top: 1px solid rgba(169, 190, 217, .18);
  gap: 0;
}

.plan__list li {
  padding: 11px 0;
  border-bottom: 1px solid rgba(169, 190, 217, .14);
}

.plan__list li::before {
  content: none;
  display: none;
}

.plan__cta {
  grid-column: 1 / -1;
  grid-row: 3;
}

.faq__item {
  border-color: rgba(169, 190, 217, .18);
  border-radius: 0;
  background: transparent;
}

.final {
  max-width: none !important;
  width: 100% !important;
  padding-top: clamp(72px, 10vw, 112px) !important;
  padding-bottom: max(84px, calc(60px + env(safe-area-inset-bottom))) !important;
}

.site-footer {
  border-top-color: rgba(169, 190, 217, .1);
  background: #031027;
}

@media (min-width: 760px) {
  .hero {
    align-items: center;
    padding-top: 130px;
    padding-bottom: 70px;
  }

  .hero__video {
    object-fit: contain;
    object-position: center;
  }

  .hero__media {
    inset: auto;
    top: calc(50% + 24px);
    right: clamp(20px, 4vw, 56px);
    width: min(47vw, 460px, calc((100svh - 132px) * .5625));
    aspect-ratio: 9 / 16;
    transform: translateY(-50%);
    padding: 9px;
    border: 1px solid rgba(237, 246, 255, .24);
    border-radius: 34px;
    background: #080b12;
    box-shadow:
      0 32px 90px rgba(3, 12, 29, .66),
      inset 0 0 0 1px rgba(255, 255, 255, .045);
    z-index: 0;
  }

  .hero__media::before {
    content: "";
    position: absolute;
    z-index: 4;
    top: 14px;
    left: 50%;
    width: 72px;
    height: 18px;
    transform: translateX(-50%);
    border-radius: var(--radius-pill);
    background: #05070b;
    mix-blend-mode: normal;
  }

  .hero__video {
    border-radius: 25px;
  }

  .hero__veil {
    inset: 9px;
    border-radius: 25px;
    background:
      radial-gradient(ellipse 46% 58% at 55% 55%, transparent 0%, rgba(3, 12, 29, .015) 64%, rgba(3, 12, 29, .12) 100%),
      linear-gradient(180deg, rgba(3, 12, 29, .04), transparent 62%, rgba(3, 12, 29, .26) 100%);
  }

  .hero__content {
    width: min(42vw, 590px);
    min-height: 0;
    margin-left: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding)));
  }

  .audience {
    display: grid;
    grid-template-columns: minmax(0, .82fr) minmax(380px, 1.18fr);
    gap: clamp(52px, 7vw, 100px);
    align-items: start;
  }

  .audience > .eh {
    grid-column: 1 / -1;
  }

  .audience__answer-row {
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column-reverse;
    gap: 48px;
  }

  .audience-video__frame {
    border-width: 9px;
  }

  .trainer {
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: clamp(60px, 8vw, 118px);
  }

  .credentials__gallery {
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
    align-items: start;
    gap: clamp(40px, 5vw, 72px);
    text-align: left;
  }

  .credentials__rail > div {
    flex: 0 0 min(84%, 300px);
  }

  .course-map__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    margin: 0;
    border-block: 1px solid rgba(169, 190, 217, .16);
  }

  .course-map__item {
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 14px;
    min-height: 0;
    padding: 26px clamp(18px, 3vw, 28px);
    border-right: 1px solid rgba(169, 190, 217, .16);
    border-bottom: 1px solid rgba(169, 190, 217, .16);
  }

  .course-map__item:nth-child(2n) {
    border-right: 0;
  }

  .course-map__item:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .course-map__item h3 {
    font-size: clamp(21px, 2.65vw, 28px);
    text-wrap: balance;
  }

  .course-map__item::before {
    font-size: 23px;
  }

  .course-map__item p {
    font-size: 14px;
    line-height: 1.5;
  }

  .support {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px clamp(50px, 7vw, 96px);
    align-items: start;
    max-width: 1080px;
    margin-inline: auto;
    padding-block: 58px;
  }

  .support__live,
  .support__title,
  .support__text,
  .support__punch,
  .support__cta {
    margin: 0;
  }

  .support__live,
  .support__title {
    grid-column: 1;
  }

  .support__text,
  .support__punch {
    grid-column: 2;
  }

  .support__cta {
    grid-column: 2;
    width: fit-content;
    margin-top: 8px;
  }

  .pricing__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 760px) and (max-width: 999px) {
  .audience {
    display: block;
  }

  .audience__answer-row {
    width: 100%;
    margin-top: 52px;
  }

  .support {
    display: block;
  }

  .credentials__gallery {
    grid-template-columns: minmax(0, 1fr);
    gap: 42px;
    text-align: center;
  }

  .credentials__rail {
    padding-inline: 2px;
  }

  .credentials__rail > div {
    flex-basis: min(72vw, 340px);
  }

  .credentials__rail .credential-card__copy {
    text-align: left;
  }

  .support__title,
  .support__text,
  .support__punch,
  .support__cta {
    margin-top: 16px;
  }
}

@media (min-width: 760px) and (max-width: 999px) and (max-height: 700px) {
  .hero__media {
    right: 7vw;
  }

  .hero__content {
    width: 38vw;
  }
}

@media (min-width: 760px) and (max-width: 1099px) {
  .hero__media {
    width: min(44vw, 450px, calc((100svh - 132px) * .5625));
  }

  .hero__content {
    width: 36vw;
  }

  .hero-title__main {
    font-size: clamp(86px, 10.5vw, 108px);
  }

  .hero-title__script {
    font-size: clamp(48px, 6.4vw, 64px);
    margin-left: clamp(12px, 3vw, 34px);
  }
}

@media (min-width: 1000px) and (max-width: 1099px) {
  .hero__media {
    right: 10vw;
  }

  .hero__content {
    width: 40vw;
  }

  .support {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    column-gap: 40px;
  }

  .support__title {
    font-size: 48px;
  }
}

@media (min-width: 1100px) {
  .hero__content {
    width: min(48vw, 680px);
    margin-left: max(64px, calc((100vw - 1440px) / 2 + 64px));
  }

  .hero__media {
    right: max(22vw, calc((100vw - 1440px) / 2 + 64px));
    width: min(34vw, 420px, calc((100svh - 132px) * .5625));
  }

  .support__title {
    font-size: clamp(52px, 4vw, 58px);
  }
  .course-map__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 1040px;
    margin-inline: auto;
  }

  .course-map__item,
  .course-map__item:nth-child(2n) {
    grid-template-columns: 44px minmax(0, 1fr);
    column-gap: 18px;
    row-gap: 10px;
    padding: 30px clamp(28px, 3vw, 44px);
    border-right: 1px solid rgba(169, 190, 217, .16);
    border-bottom: 1px solid rgba(169, 190, 217, .16);
  }

  .course-map__item:nth-child(2n) {
    border-right: 0;
  }

  .course-map__item:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .course-map__num,
  .course-map__item h3,
  .course-map__item p {
    display: block;
  }

  .course-map__num {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    color: #D72665;
    font-size: 24px;
  }

  .course-map__item h3,
  .course-map__item p {
    grid-column: 2;
  }

  .course-map__item h3 {
    font-size: clamp(23px, 2vw, 29px);
    line-height: 1.08;
  }

  .hero-title__main {
    font-size: clamp(112px, 10vw, 154px);
  }

  .hero-title__script {
    font-size: clamp(62px, 5.6vw, 88px);
  }

  .shots {
    overflow: visible;
  }

  .shot {
    flex: 1 1 0;
    min-width: 0;
  }

  .program > .eh {
    width: min(100%, 1180px);
    margin-bottom: clamp(46px, 5vw, 72px);
  }

  .program > .eh .eh__main {
    max-width: 9em;
    font-size: clamp(82px, 8vw, 126px);
    line-height: .86;
  }

  .program > .eh .eh__script {
    margin-top: -.16em;
    margin-left: 2.15em;
    font-size: clamp(54px, 4.8vw, 78px);
  }

  .program__grid {
    width: min(100%, 1180px);
    margin-top: 0;
  }

  .program__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid rgba(169, 190, 217, .16);
  }

  .module {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 24px;
    min-height: 260px;
    padding: 34px clamp(28px, 3vw, 46px);
    border-right: 1px solid rgba(169, 190, 217, .16);
  }

  .module:nth-child(2n) {
    border-right: 0;
  }

  .module__num {
    font-size: 24px;
    color: #D72665;
    text-shadow: none;
  }

  .module h3 {
    font-size: clamp(30px, 2.6vw, 42px);
    line-height: 1.02;
  }

  .module p {
    max-width: 38em;
    font-size: 15px;
    line-height: 1.6;
  }

  .program__extra {
    width: min(100%, 48em);
    max-width: 48em;
    margin-top: 34px;
    padding-inline: var(--page-padding);
  }
}

@media (min-width: 1350px) and (max-width: 1599px) {
  .hero__content {
    margin-left: 14vw;
  }

  .hero__media {
    right: 20vw;
  }
}

@media (min-width: 1600px) {
  .hero__content {
    margin-left: max(64px, calc((100vw - 1440px) / 2 + 7vw));
  }

  .hero__media {
    right: 25vw;
    width: min(28vw, 480px, calc((100svh - 132px) * .5625));
  }

  .hero-title__main {
    font-size: clamp(160px, 8.8vw, 180px);
  }

  .hero-title__script {
    font-size: clamp(88px, 4.7vw, 96px);
  }
}

/* Audience chapter: one editorial composition, not three disconnected zones. */
@media (min-width: 1000px) {
  .audience {
    display: grid;
    grid-template-columns: minmax(440px, .98fr) minmax(320px, .62fr);
    grid-template-rows: auto auto;
    column-gap: clamp(56px, 7vw, 124px);
    row-gap: 0;
    align-items: start;
  }

  .audience > .eh {
    grid-column: 1;
    grid-row: 1;
    width: min(100%, 720px);
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .audience > .eh .eh__eyebrow {
    margin-bottom: 14px;
  }

  .audience > .eh .eh__main {
    max-width: 7.4em;
    font-size: clamp(64px, 5.5vw, 104px);
    line-height: .88;
    text-wrap: balance;
  }

  .audience > .eh .eh__script {
    margin-top: -.18em;
    margin-left: 1.7em;
    font-size: clamp(48px, 4vw, 76px);
  }

  .audience__list {
    grid-column: 1;
    grid-row: 2;
    width: min(100%, 720px);
    max-width: none;
    margin: -68px 0 0;
    padding: 0;
  }

  .audience__list li {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 0 18px;
    min-height: 0;
    padding: 22px 0;
  }

  .audience__list h3 {
    max-width: 13em;
    font-size: clamp(28px, 2.25vw, 42px);
    line-height: 1.02;
    text-wrap: balance;
  }

  .audience__list p {
    max-width: 43em;
    font-size: 15px;
  }

  .audience__answer-row {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    width: 100%;
    margin: 0;
    gap: clamp(30px, 3vw, 48px);
  }

  .audience-video {
    width: min(100%, 360px);
    margin-inline: auto;
  }

  .audience-video figcaption {
    margin-top: 20px;
  }

  .audience-video figcaption strong {
    font-size: clamp(28px, 2.3vw, 38px);
    line-height: 1.02;
  }

  .audience__answer-row .evidence-note {
    max-width: 420px;
    margin-inline: auto;
    padding: 18px 0 18px 20px;
  }
}

@media (min-width: 1000px) and (max-width: 1199px) {
  .audience {
    grid-template-columns: minmax(0, 1fr) minmax(280px, .58fr);
    column-gap: 44px;
  }

  .audience > .eh .eh__main {
    font-size: clamp(58px, 6vw, 72px);
  }

  .audience > .eh .eh__script {
    margin-left: 1.15em;
    font-size: clamp(42px, 4.8vw, 56px);
  }

  .audience-video {
    width: min(100%, 310px);
  }

  .audience__list {
    margin-top: -18px;
  }
}

@media (max-width: 759px) {
  .audience > .eh {
    margin-bottom: 30px;
  }

  .audience > .eh .eh__main {
    max-width: 8.5em;
    font-size: clamp(48px, 15vw, 68px);
    line-height: .9;
  }

  .audience > .eh .eh__script {
    margin-top: -.15em;
    margin-left: .65em;
  }

  .audience__list li {
    padding-block: 18px;
  }

  .audience__answer-row {
    margin-top: 40px;
    gap: 32px;
  }

  .audience-video {
    width: min(88vw, 300px);
  }

  .program > .eh .eh__main {
    max-width: 100%;
    font-size: clamp(36px, 11.25vw, 50px);
    line-height: .92;
    letter-spacing: -.045em;
  }

  .program > .eh .eh__script {
    margin-left: .55em;
    font-size: clamp(38px, 12vw, 54px);
  }
}

@media (min-width: 760px) and (max-width: 999px) {
  .audience > .eh {
    margin-bottom: 32px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__sparkles,
  .reviews__sparkles,
  .final__sparkles {
    animation: none !important;
  }
}

/* ============================================================
   kkmasaje editorial layer: язык композиции референса kkmasaje.es
   в синей палитре курса. Тире-линейка перед надзаголовками,
   курсивные «журнальные» номера, арочный портрет, призрачные
   слова-вотермарки, значок стажа.
   ============================================================ */

/* журнальные номера: маленькие, курсивные, как в списке принципов референса */
.module__num {
  font-style: italic;
  font-size: 24px;
  line-height: 1.4;
  color: #D72665;
  text-shadow: none;
}

@media (min-width: 1100px) {
  .module {
    grid-template-columns: 46px minmax(0, 1fr);
    min-height: 0;
  }

  .module h3 {
    font-size: clamp(26px, 2.2vw, 34px);
  }

  .audience__list li {
    grid-template-columns: 44px minmax(0, 1fr);
  }

  .audience__list h3 {
    font-size: clamp(25px, 2vw, 34px);
  }
}

/* арочный портрет Алины: фирменная арка референса */
.trainer__media > img {
  border-radius: 50% 50% 6px 6px / 26% 26% 6px 6px;
}

/* значок стажа на портрете, как «+10 años» у референса */
.trainer__badge {
  position: absolute;
  left: clamp(-6px, -1vw, -14px);
  bottom: 40px;
  z-index: 2;
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 13px 20px 11px;
  border: 1px solid rgba(168, 216, 255, .32);
  border-radius: var(--radius-md);
  background: linear-gradient(160deg, rgba(13, 47, 115, .96), rgba(7, 26, 58, .98));
  box-shadow: 0 16px 40px rgba(3, 12, 29, .55);
}

.trainer__badge-num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 32px;
  line-height: 1;
  color: #D72665;
}

.trainer__badge-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--color-silver);
}

/* призрачные слова-вотермарки, как «Kateryna» и «The space» у референса */
.ghost {
  position: absolute;
  z-index: 0;
  margin: 0;
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  line-height: .8;
}

.ghost--trainer {
  top: .1em;
  right: -2%;
  font-family: var(--font-display);
  font-size: clamp(110px, 20vw, 270px);
  color: rgba(237, 246, 255, .04);
}

.ghost--reviews {
  top: 18px;
  right: 3%;
  font-family: var(--font-accent);
  font-size: clamp(84px, 14vw, 190px);
  color: rgba(215, 38, 101, .3);
  transform: rotate(-4deg);
}

.trainer,
.reviews {
  overflow-x: clip;
}

.trainer > .ghost ~ * {
  position: relative;
  z-index: 1;
}

/* панель поддержки в общей стеклянной пластике меню */
.support {
  border-color: rgba(237, 246, 255, .16);
  border-radius: var(--radius-lg);
}

/* светлая глава: отключить тёмные шёлк/глиттер band--royal под бумагой */
.reviews.band--royal::before,
.reviews.band--royal::after {
  content: none;
  display: none;
}

/* журнальные номера: колонка не уже 52px от кромки до заголовка */
@media (min-width: 760px) and (max-width: 1099px) {
  .course-map__item {
    grid-template-columns: 40px minmax(0, 1fr);
  }
}

/* 1100–1349: оптическое центрирование группы hero (текст + телефон) */
@media (min-width: 1100px) and (max-width: 1349px) {
  .hero__content {
    margin-left: calc(24vw - 178px);
  }

  .hero__media {
    right: calc(29vw - 181px);
  }
}

/* связка заголовка «для кого» со списком на широких экранах */
/* строка медиа-колонки не раздувает первую строку сетки:
   заголовок и список связаны фиксированным редакционным зазором */
@media (min-width: 1000px) {
  .audience {
    grid-template-rows: auto 1fr;
  }

  .audience__list {
    margin-top: 28px;
  }
  .audience-video {
    width: min(100%, 322px);
  }
}

/* ≥1100 все три отзыва видны целиком: стрелки и счётчик не нужны */
@media (min-width: 1100px) {
  .shots__nav,
  .shots__status {
    display: none;
  }

  .shots {
    padding-inline: var(--page-padding);
  }
}

/* ============================================================
   FAQ: светлая синяя полоса (двухтоновая блочность), финал
   с малиновым дыханием под CTA.
   ============================================================ */

.faq {
  max-width: none !important;
  width: 100% !important;
  padding-inline: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding))) !important;
  background: #091D3F;
}

/* тёмный финал с розовым дыханием под CTA */
.final {
  background:
    radial-gradient(70% 55% at 50% 100%, rgba(215, 38, 101, .22) 0%, rgba(215, 38, 101, 0) 70%);
}

/* ============================================================
   Блочность и структура (UX-ревизия 2026-08-10):
   двухтоновые полосы секций, карточки вместо повторного шаблона
   хеарлайнов, читаемые заголовки пунктов, мобильное видео без
   «телефона в телефоне», sticky-CTA на мобильных.
   ============================================================ */

/* --- двухтоновые полосы: «для кого» и «программа» на 8–10% светлее --- */
.audience,
.program {
  max-width: none !important;
  width: 100% !important;
  padding-inline: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding))) !important;
  background: #091D3F;
}

/* --- заголовки пунктов «для кого»: читаемое начертание вместо капители --- */
.audience__list h3 {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
  color: var(--color-ice);
}

@media (min-width: 1000px) {
  .audience__list h3 {
    font-size: clamp(18px, 1.5vw, 20px);
  }
}

/* --- «что тебя ждёт»: карточки со светлой заливкой вместо линеек --- */
.course-map__list,
.course-map__list .course-map__item,
.course-map__list .course-map__item:nth-child(2n),
.course-map__list .course-map__item:nth-last-child(-n + 2) {
  border: 0;
}

.course-map__list {
  gap: 14px;
}

.course-map__list .course-map__item {
  padding: 22px 22px 24px;
  border: 1px solid rgba(169, 190, 217, .2);
  border-radius: var(--radius-md);
  background: rgba(23, 78, 166, .14);
}

.course-map__item h3 {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.35;
  text-transform: none;
  color: var(--color-ice);
}

@media (min-width: 760px) {
  .course-map__list {
    gap: 16px;
  }
}

/* --- программа: модули карточками с тонкой обводкой на светлой полосе --- */
.program__list,
.program__list .module,
.program__list .module:first-child,
.program__list .module:last-child,
.program__list .module:nth-child(2n) {
  border: 0;
}

.program__list {
  gap: 14px;
}

.program__list .module {
  padding: 24px 22px;
  border: 1px solid rgba(169, 190, 217, .22);
  border-radius: var(--radius-md);
  background: rgba(3, 12, 29, .5);
}

@media (min-width: 1100px) {
  .program__list {
    gap: 18px;
  }

  .program__list .module {
    padding: 30px clamp(28px, 3vw, 40px);
  }
}

/* --- мобильная версия: видео-ответ без корпуса телефона --- */
@media (max-width: 759px) {
  .audience-video {
    width: 100%;
  }

  .audience-video__frame {
    border: 0;
    border-radius: var(--radius-lg);
    background: #030c1d;
    box-shadow: 0 18px 44px rgba(0, 0, 0, .35);
  }

  .audience-video__frame::after {
    content: none;
    display: none;
  }

  .audience-video video {
    border-radius: var(--radius-lg);
  }
}

/* --- sticky-CTA на мобильных: появляется после hero, прячется у финала --- */
.sticky-cta {
  position: fixed;
  left: 16px;
  right: 16px;
  bottom: max(12px, env(safe-area-inset-bottom));
  z-index: 60;
  display: none;
  min-height: 48px;
  box-shadow: 0 14px 40px rgba(3, 12, 29, .55), 0 12px 34px rgba(215, 38, 101, .3);
}

@media (max-width: 899px) {
  body.show-sticky-cta .sticky-cta {
    display: inline-flex;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .sticky-cta {
    transition: transform var(--motion-base) var(--ease-out), opacity var(--motion-base) ease;
  }
}

/* слова-вотермарки живут в CSS content: чисто визуальный слой,
   вне текстового DOM (и вне зоны контраст-проверок) */
.ghost--trainer::before {
  content: "танец";
}

.ghost--reviews::before {
  content: "спасибо";
}

/* ============================================================
   Ревизия 2026-08-10, вторая волна: капс убран в подписи видео
   и в модулях программы; неон-свечение каллиграфии — только hero;
   мелкие лейблы документов в мягком малиновом.
   ============================================================ */

.audience-video figcaption strong {
  font-family: var(--font-body);
  font-size: clamp(19px, 5vw, 22px);
  font-weight: 600;
  line-height: 1.3;
}

.module h3 {
  font-family: var(--font-body);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.4;
}

@media (min-width: 1100px) {
  .module h3 {
    font-size: 19px;
  }
}

.credentials__secondary-label,
.credential-card__category {
  color: #DE6C97;
}

.plan__script {
  text-shadow: none;
}

/* один неон на страницу: свечение каллиграфии живёт только в hero */
.script-glow {
  text-shadow: none;
}

.hero .script-glow {
  text-shadow: var(--glow-script);
}

/* карточки отзывов на планшете и десктопе */
@media (min-width: 768px) {
  .shot {
    flex-basis: 400px;
  }

  .shots {
    padding-inline: 0;
  }
}

@media (min-width: 1100px) {
  .shot {
    flex: 1 1 0;
    min-width: 0;
    padding: 24px;
  }
}

/* ============================================================
   Акценты: Coolvetica 400, БЕЛАЯ.
   У шрифта одно начертание, вес выше 400 даст faux-bold.
   ============================================================ */

.script-glow,
.brand__script,
body.nav-open .site-nav__cta {
  font-style: normal;
  font-weight: 400;
  color: #FFFFFF;
}

.hero-title__script,
.eh__script,
.eh__script--solo,
.final-title__script,
.trainer__media-cap,
.support__punch .script-glow {
  transform: none;
}

/* белое свечение вместо малинового у единственного неона в hero */
.hero .script-glow {
  text-shadow: var(--glow-text);
}

/* курсивная антиква крупнее каллиграфии по массе: чуть уменьшить кегли */
:root {
  --size-hero-script: clamp(24px, 7vw, 40px);
  --size-h2-script: clamp(20px, 5.5vw, 30px);
}

.eh__script--solo {
  font-size: clamp(24px, 6.5vw, 38px);
}

.final-title__script {
  font-size: clamp(22px, 6.5vw, 36px);
  margin-top: 14px;
  margin-left: 0;
}

/* акцентные строки базовым шрифтом: спокойная сансовая подпись
   под антиквой, без курсивной посадки и сдвигов */
.hero-title__script {
  margin: 12px 0 0 4px;
  font-size: var(--size-hero-script);
  letter-spacing: .01em;
}

.eh__script,
.audience > .eh .eh__script,
.program > .eh .eh__script {
  margin: 12px 0 0;
  font-size: var(--size-h2-script);
  letter-spacing: .01em;
}

.trainer__media-cap {
  left: 14px;
  bottom: 12px;
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .05em;
}

.support__punch .script-glow {
  font-size: 18px;
  padding-top: 0;
}

.brand__script {
  font-size: 15px;
  transform: none;
  letter-spacing: .02em;
}

.ghost--reviews {
  font-size: clamp(60px, 11vw, 140px);
}

/* ============================================================
   Шрифтовая система: Golos Text (текст) + FoglihtenNo06 (display)
   + Coolvetica (акценты, единственный вес 400).
   FoglihtenNo06 остаётся только у имени курса и финала.
   ============================================================ */

.hero-title__main,
.final-title__main,
.brand__serif {
  font-family: "FoglihtenNo06", Georgia, serif;
}

/* «спасибо» с фона отзывов убрано */
.ghost--reviews {
  display: none;
}

/* акценты: Coolvetica, у неё единственный вес 400 (жирнее = faux bold) */
.script-glow {
  font-weight: 400;
}

:root {
  --size-h2-script: clamp(17px, 4.6vw, 24px);
  --size-h2-main: clamp(44px, 12vw, 82px);
}

.eh__script--solo {
  font-size: clamp(22px, 6vw, 34px);
}

.support__punch .script-glow {
  font-size: 17px;
}

/* «в тонусе»: как надзаголовок «программа · 4 недели», но белый.
   Трекинговый капс в Coolvetica (вес только 400) */
.hero-title__script {
  margin: 18px 0 0 6px;
  font-family: var(--font-accent);
  font-size: clamp(14px, 3.8vw, 17px);
  font-weight: 400;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.brand__script {
  font-family: var(--font-accent);
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
}

/* «сегодня» тем же шрифтом, что «начнём» */
.final-title__script {
  margin-top: 10px;
  font-family: "FoglihtenNo06", Georgia, serif;
  font-size: clamp(26px, 8vw, 48px);
  font-weight: 400;
  letter-spacing: 0;
}



/* ============================================================
   МОДУЛЬНАЯ СЕТКА
   12 колонок на десктопе (≥1000px), 4 на мобиле,
   единый межколонник --grid-gutter. Все многоколонные секции
   и мокапы телефонов посажены на линии сетки.
   Токены --gcol/--gspan-N нужны только там, где элемент
   не является ребёнком грид-контейнера (fixed-позиция hero,
   карточки в горизонтальных лентах).
   ============================================================ */

:root {
  --grid-gutter: 24px;
  --grid-container: min(100vw, var(--content-max));
  --grid-content: calc(var(--grid-container) - 2 * var(--page-padding));
  /* мобильная сетка: 4 колонки */
  --gcol: calc((var(--grid-content) - 3 * var(--grid-gutter)) / 4);
  --gspan-2: calc(2 * var(--gcol) + 1 * var(--grid-gutter));
  --gspan-3: calc(3 * var(--gcol) + 2 * var(--grid-gutter));
  --gspan-4: var(--grid-content);
}

@media (min-width: 1000px) {
  :root {
    /* десктопная сетка: 12 колонок */
    --gcol: calc((var(--grid-content) - 11 * var(--grid-gutter)) / 12);
    --gspan-3: calc(3 * var(--gcol) + 2 * var(--grid-gutter));
    --gspan-4: calc(4 * var(--gcol) + 3 * var(--grid-gutter));
    --gspan-5: calc(5 * var(--gcol) + 4 * var(--grid-gutter));
    --gspan-6: calc(6 * var(--gcol) + 5 * var(--grid-gutter));
    --gspan-8: calc(8 * var(--gcol) + 7 * var(--grid-gutter));
  }
}

/* --- мобила: мокап телефона и нумерованные списки на линиях --- */

.audience-video {
  width: var(--gspan-3);
}

.audience__list li {
  grid-template-columns: var(--gcol) minmax(0, 1fr);
  gap: 0 var(--grid-gutter);
}

/* --- десктоп: каждая секция на 12 колонках --- */

@media (min-width: 1000px) {
  .hero__content {
    width: var(--gspan-6);
  }

  .hero__media {
    right: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding)));
    width: min(var(--gspan-5), calc((100svh - 132px) * .5625));
  }

  .audience {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
  }

  .audience__list {
    grid-column: 1 / 8;
  }

  .audience__answer-row {
    grid-column: 8 / 13;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 48px var(--grid-gutter);
  }

  .audience__answer-row .evidence-note {
    grid-row: 1;
    grid-column: 1 / -1;
  }

  .audience__answer-row .audience-video {
    grid-row: 2;
    grid-column: 1 / 5;
    width: 100%;
  }

  .trainer {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
  }

  .trainer__media {
    grid-column: 1 / 7;
  }

  .trainer__media ~ * {
    grid-column: 8 / 13;
  }

  .credentials__gallery {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
  }

  .credentials__gallery > :first-child {
    grid-column: 1 / 9;
  }

  .credentials__gallery > :last-child {
    grid-column: 9 / 13;
  }

  .credentials__rail > div {
    flex: 0 0 var(--gspan-3);
  }

  .support {
    max-width: none;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px var(--grid-gutter);
  }

  .support__live,
  .support__title {
    grid-column: 1 / 6;
  }

  .support__text,
  .support__punch,
  .support__cta {
    grid-column: 7 / 13;
  }

  .pricing__grid {
    column-gap: var(--grid-gutter);
  }

  .faq__list {
    width: var(--gspan-8);
    max-width: none;
    padding-inline: 0;
  }

  .shot {
    flex-basis: var(--gspan-3);
  }

  .audience__list li {
    grid-template-columns: var(--gcol) minmax(0, 1fr);
    gap: 0 var(--grid-gutter);
  }
}

/* --- контейнеры без двойного паддинга: горизонтальный отступ даёт секция --- */

.pricing__grid,
.program__grid {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

@media (min-width: 1000px) {
  /* hero сам даёт --page-padding, добавляем только центрирующий излишек */
  .hero__content {
    margin-left: max(0px, calc((100vw - var(--content-max)) / 2));
  }

  .credentials__gallery > :first-child {
    width: 100%;
    max-width: none;
  }

  .shot {
    flex: 0 0 var(--gspan-3);
  }
}

/* --- панель .support: карточка на линиях сетки, внутренние колонки = линии 2–11 --- */

.support {
  max-width: none;
  margin-inline: 0;
}

@media (min-width: 1000px) {
  .support {
    padding-inline: calc(var(--gcol) + var(--grid-gutter));
    grid-template-columns: repeat(10, minmax(0, 1fr));
  }

  .support__live,
  .support__title {
    grid-column: 1 / 6;
  }

  .support__text,
  .support__punch,
  .support__cta {
    grid-column: 6 / 11;
  }
}

/* --- credentials: галерея без двойного паддинга, отступ даёт секция --- */

.credentials__gallery {
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

/* ============================================================
   Название курса «ТЕЛО В ТОНУСЕ»: во всех вхождениях
   (шапка, hero, футер) один шрифт — display, и капс.
   ============================================================ */

.brand__serif,
.brand__script,
.hero-title__main,
.hero-title__script {
  font-family: var(--font-display);
  text-transform: uppercase;
}

/* ============================================================
   «В ТОНУСЕ» = «ТЕЛО»: тот же кегль и тот же трекинг.
   Размер обеих строк из одного токена --size-hero-main,
   брейкпоинтные значения перенесены в токен.
   ============================================================ */

@media (min-width: 760px) and (max-width: 999px) {
  :root { --size-hero-main: clamp(62px, 9.3vw, 92px); }
}

@media (min-width: 1000px) {
  :root { --size-hero-main: clamp(110px, 11.2vw, 132px); }
}

@media (min-width: 1600px) {
  :root { --size-hero-main: clamp(110px, 11.2vw, 132px); }
}

.hero-title__main,
.hero-title__script {
  font-size: var(--size-hero-main);
  letter-spacing: -.055em;
  line-height: .72;
}

.hero-title__script {
  margin: .10em 0 0 .02em;
}

/* --- видео-мокап на мобиле: на всю ширину сетки (4 колонки) --- */

@media (max-width: 999px) {
  .audience-video {
    width: 100%;
  }
}

/* --- футер: лого-надпись убрана, остаётся только юридическая строка --- */

.site-footer__brand {
  display: none;
}

/* ============================================================
   Hero-лукап, финал по вердикту панели судей (3 линзы, Borda):
   рукописный версал «Т» — Marck Script (канонический силуэт,
   масса пера = Golos 700), остальное — Golos Text 700 капсом,
   как надзаголовок «Авторский онлайн-курс растяжки».
   Кегль калиброван по ширине «ТОНУСЕ»: лукап в край колонок,
   без переполнения (замеры 360–1920).
   ============================================================ */

.hero-title__main,
.hero-title__script {
  font-family: var(--font-body);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: .96;
  text-transform: none;
}

.hero-title__script {
  margin: .04em 0 0 .02em;
}

/* ============================================================
   Все заголовки единым стилем с hero-лукапом «Тело в тонусе»:
   Golos 400, строчные, трекинг -.015em. Антиква уходит
   с заголовков; курсивные номера и цены остаются акцентами.
   ============================================================ */

.eh__main,
.final-title__main,
.final-title__script,
.credentials__title,
.support__title,
.plan__script {
  font-family: var(--font-body);
  font-weight: 400;
  letter-spacing: -.015em;
  text-transform: none;
}

/* --- номера списка: прижаты к тексту, к которому относятся
   (закон близости), а не к краю колонки --- */

.audience__list li .audience__num {
  justify-self: end;
}

/* --- шапка: лого-надпись тем же стилем, что hero-лукап --- */

.brand__serif,
.brand__script {
  font-family: var(--font-body);
  font-weight: 400;
  text-transform: none;
  letter-spacing: -.01em;
}

.brand__serif {
  font-size: 19px;
}

.brand__script {
  font-size: 19px;
  margin-left: -3px;
}

/* --- хайлайты: розовые слова в заголовках и розовые имена тарифов --- */

.eh__main .hl {
  color: #D72665;
  font-style: normal;
}

.plan__script {
  color: #D72665;
}

/* ============================================================
   Цена тарифа: жирным и с переносом (как в промежуточной
   версии до «спа-меню»): своя строка под именем, Golos 700.
   ============================================================ */

.plan {
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  align-items: start;
}

.plan__price {
  grid-column: 1 / -1;
  grid-row: 2;
  justify-self: start;
  margin: 6px 0 0;
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 700;
  font-size: clamp(26px, 2.4vw, 32px);
  letter-spacing: -.01em;
  color: var(--color-ice);
}

.plan__list {
  grid-row: 3;
}

.plan__cta {
  grid-row: 4;
}

/* ============================================================
   Hero-лукап и шапка: каллиграфическая антиква с засечками
   (FoglihtenNo06), компоновка прежняя — две строки, строчные.
   Кегль перекалиброван под ширину «тонусе» в антикве.
   ============================================================ */

:root {
  --size-hero-main: clamp(56px, 19.4vw, 111px);
}

@media (min-width: 760px) and (max-width: 999px) {
  :root { --size-hero-main: clamp(50px, 7.8vw, 78px); }
}

@media (min-width: 1000px) {
  :root { --size-hero-main: clamp(92px, 9.3vw, 110px); }
}

.hero-title__main,
.hero-title__script,
.brand__serif,
.brand__script {
  font-family: var(--font-display);
  letter-spacing: -.01em;
}

/* --- «в тонусе» меньше «Тела» и НЕ капсом: у Foglihten строчные
   нарисованы как капитель, поэтому строчные формы берём из Golos --- */

.hero-title__script {
  font-family: var(--font-body);
  font-style: italic;
  letter-spacing: -.015em;
}

.hero-title__script {
  font-size: calc(var(--size-hero-main) * .40);
}

/* ============================================================
   Персональное сопровождение «один на один».
   Ч/б фото Алины с чернильной вуалью и паспарту, поверх него
   две матовые плашки-аккордеона (details) с программами.
   Мобайл: карточки наезжают на нижнюю часть фото.
   Десктоп: карточки на колонках 1-7, фото на 7-12 (перехлёст
   ровно в одну колонку сетки).
   ============================================================ */

.indiv__stage {
  position: relative;
}

.indiv__media {
  position: relative;
  margin: 0;
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 3 / 3.9;
  background: #0a1b3d;
  box-shadow: 0 22px 54px rgba(3, 12, 29, .5);
}

.indiv__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 68%;
  display: block;
  filter: contrast(1.05) brightness(.94);
}

/* рамки-паспарту нет: фото вписано как остальные медиа сайта,
   чистый кадр со скруглением и тенью */

/* чернильно-синяя вуаль + нижняя виньетка под плашки */
.indiv__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(7, 26, 58, .30) 0%, rgba(13, 47, 115, .14) 38%, rgba(3, 16, 39, .56) 74%, rgba(3, 16, 39, .9) 100%),
    radial-gradient(90% 60% at 50% 30%, rgba(23, 78, 166, .16), transparent 70%);
}

.indiv__cards {
  position: relative;
  z-index: 3;
  margin: -112px 0 0;
}

.indiv__card {
  overflow: hidden;
  border: 1px solid rgba(237, 246, 255, .18);
  border-radius: var(--radius-lg);
  background: rgba(9, 27, 60, .58);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
  backdrop-filter: blur(16px) saturate(1.15);
  box-shadow: 0 24px 56px rgba(3, 12, 29, .46);
}

.indiv__card + .indiv__card {
  margin-top: 12px;
}

.indiv__card[open] {
  background: rgba(7, 20, 46, .93);
  -webkit-backdrop-filter: blur(24px) saturate(1.1);
  backdrop-filter: blur(24px) saturate(1.1);
}

@supports not (backdrop-filter: blur(1px)) {
  .indiv__card,
  .indiv__card[open] {
    background: #0a1e42;
  }
}

.indiv__card summary {
  list-style: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 44px;
  padding: 18px 20px;
  cursor: pointer;
  transition: background-color .2s ease;
}

.indiv__card summary::-webkit-details-marker {
  display: none;
}

.indiv__card summary:hover {
  background: rgba(237, 246, 255, .04);
}

.indiv__num {
  font-family: var(--font-display);
  font-style: italic;
  font-size: 21px;
  line-height: 1;
  color: #D72665;
}

.indiv__card-title {
  color: var(--color-ice);
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: -.01em;
  line-height: 1.3;
}

.indiv__card-sub {
  display: block;
  margin-top: 3px;
  color: var(--color-silver);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.indiv__card[open] .indiv__card-sub {
  display: none;
}

.indiv .eh__script {
  font-weight: 400;
}

/* плюс, переходящий в минус */
.indiv__toggle {
  position: relative;
  width: 16px;
  height: 16px;
  flex: none;
}

.indiv__toggle::before,
.indiv__toggle::after {
  content: "";
  position: absolute;
  left: 1px;
  top: 7.5px;
  width: 14px;
  height: 1px;
  background: rgba(237, 246, 255, .75);
  transition: transform .25s ease;
}

.indiv__toggle::after {
  transform: rotate(90deg);
}

.indiv__card[open] .indiv__toggle::after {
  transform: rotate(0deg);
}

.indiv__body {
  padding: 2px 20px 20px;
}

.indiv__lead {
  margin: 0 0 6px;
  color: var(--color-silver);
  font-size: 14.5px;
  line-height: 1.55;
}

.indiv__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.indiv__list li {
  padding: 11px 0;
  border-top: 1px solid rgba(169, 190, 217, .15);
  color: var(--color-silver);
  font-size: 14px;
  line-height: 1.5;
}

.indiv__list strong {
  color: var(--color-ice);
  font-weight: 600;
}

.indiv__price {
  margin: 14px 0 0;
  color: var(--color-ice);
  font-weight: 700;
  font-size: 27px;
  letter-spacing: -.01em;
}

.indiv__price small {
  margin-left: 8px;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--color-silver);
}

.indiv__cta {
  display: flex;
  justify-content: center;
  margin-top: 14px;
}

.indiv__note {
  margin: 18px 0 0;
  color: var(--color-silver);
  font-size: 13px;
  line-height: 1.55;
}

@media (min-width: 760px) and (max-width: 999px) {
  .indiv__media {
    aspect-ratio: 16 / 10;
  }

  .indiv__media img {
    object-position: 50% 24%;
  }

  .indiv__cards {
    margin: -140px 40px 0;
  }
}

@media (min-width: 1000px) {
  .indiv__stage {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
    align-items: center;
  }

  .indiv__media {
    grid-column: 7 / 13;
    grid-row: 1;
    aspect-ratio: 3 / 3.1;
  }

  .indiv__media img {
    object-position: 50% 60%;
  }

  .indiv__cards {
    grid-column: 1 / 9;
    grid-row: 1;
    align-self: start;
    margin: 0;
    padding-top: 56px;
  }

  .indiv__note {
    margin-inline: 2px;
  }
}

/* ============================================================
   Ревизия «один на один»: новое фото (Алина на шпагате
   у замка, тёплые натуральные цвета) + розово-неоновые акценты.
   Кадр горизонтальной позы: на мобиле почти квадрат,
   на десктопе широкий бэнд на всю сетку, плашки наезжают
   на «тихую» зону травы снизу слева.
   ============================================================ */

.indiv__media {
  aspect-ratio: 4 / 4;
}

.indiv__media img {
  object-position: 50% 85%;
  filter: saturate(1.04) contrast(1.02) brightness(.98);
}

/* вуаль мягче (цвета натуральные), виньетка под плашки
   + лёгкое розовое свечение снизу */
.indiv__media::after {
  background:
    linear-gradient(180deg, rgba(3, 16, 39, .30) 0%, rgba(3, 16, 39, 0) 30%, rgba(3, 16, 39, .06) 62%, rgba(3, 16, 39, .82) 100%),
    radial-gradient(70% 46% at 24% 96%, rgba(215, 38, 101, .20), transparent 70%);
}

/* неон: розовый ореол у плашек, розовая кромка у раскрытой */
.indiv__card {
  box-shadow: 0 24px 56px rgba(3, 12, 29, .46), 0 10px 44px rgba(215, 38, 101, .14);
}

.indiv__card[open] {
  border-color: rgba(215, 38, 101, .5);
  box-shadow: 0 24px 64px rgba(3, 12, 29, .5), 0 0 52px rgba(215, 38, 101, .2);
}

.indiv__card summary:hover .indiv__toggle::before,
.indiv__card summary:hover .indiv__toggle::after {
  background: #DE6C97;
}

.indiv__price {
  color: #D72665;
  text-shadow: 0 0 16px rgba(215, 38, 101, .3);
}

.indiv__price small {
  text-shadow: none;
}

@media (min-width: 760px) and (max-width: 999px) {
  .indiv__media {
    aspect-ratio: 16 / 10;
  }

  .indiv__media img {
    object-position: 50% 78%;
  }
}

@media (min-width: 1000px) {
  .indiv__stage {
    display: block;
  }

  .indiv__media {
    aspect-ratio: 21 / 9;
  }

  .indiv__media img {
    object-position: 50% 78%;
  }

  .indiv__cards {
    width: var(--gspan-6);
    margin: -140px 0 0;
    padding-top: 0;
  }

  .indiv__note {
    width: var(--gspan-6);
  }
}

/* ============================================================
   Ревизия 2: Алина выше в кадре (замка меньше), розоватые
   плашки, раскрытие карточки ПОВЕРХ сайта (модальная карточка
   с затемнением, а не вниз по потоку).
   ============================================================ */

.indiv__media {
  aspect-ratio: 4 / 3.2;
}

.indiv__media img {
  object-position: 50% 100%;
}

@media (min-width: 760px) and (max-width: 999px) {
  .indiv__media img {
    object-position: 50% 94%;
  }
}

@media (min-width: 1000px) {
  .indiv__media img {
    object-position: 50% 92%;
  }
}

/* розоватое стекло у закрытых плашек */
.indiv__card {
  border-color: rgba(222, 108, 151, .32);
  background:
    linear-gradient(150deg, rgba(215, 38, 101, .16) 0%, rgba(96, 26, 70, .28) 34%, rgba(13, 47, 115, .48) 70%, rgba(9, 27, 60, .68) 100%);
  -webkit-backdrop-filter: blur(20px) saturate(1.05);
  backdrop-filter: blur(20px) saturate(1.05);
}

.indiv__card summary:hover {
  background: rgba(215, 38, 101, .08);
}

/* --- раскрытая карточка: всплывает поверх сайта --- */

.indiv__card[open] {
  position: fixed;
  z-index: 1200;
  left: 50%;
  top: max(24px, 9svh);
  width: min(92vw, 560px);
  margin-left: calc(min(92vw, 560px) / -2);
  max-height: min(88svh, 760px);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  background:
    linear-gradient(180deg, rgba(215, 38, 101, .14) 0%, rgba(215, 38, 101, 0) 140px),
    rgba(7, 20, 46, .97);
  border-color: rgba(215, 38, 101, .55);
  box-shadow: 0 40px 110px rgba(2, 8, 20, .75), 0 0 64px rgba(215, 38, 101, .22);
  animation: indiv-pop .28s ease both;
}

/* затемнение сайта под карточкой: отдельный fixed-слой */
.indiv__dim {
  position: fixed;
  inset: 0;
  z-index: 5;
  background: rgba(2, 10, 26, .74);
  -webkit-backdrop-filter: blur(7px);
  backdrop-filter: blur(7px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}

body.indiv-modal .indiv__dim {
  opacity: 1;
  pointer-events: auto;
}

/* при открытой модалке контейнер карточек встаёт над шапкой и всем сайтом */
body.indiv-modal .indiv__cards {
  z-index: 2000;
}

.indiv__card[open] summary {
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(10, 24, 52, .96);
  border-bottom: 1px solid rgba(215, 38, 101, .25);
}

.indiv__card[open] + .indiv__card {
  margin-top: 12px;
}

@keyframes indiv-pop {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes indiv-dim {
  from { opacity: 0; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .indiv__card[open],
  .indiv__card[open]::before {
    animation: none;
  }
}

body.indiv-modal {
  overflow: hidden;
}


/* ============================================================
   Ревизия 3: заголовок прижат к фото-блоку; две программы
   читаются равнозначными: на десктопе и планшете две
   одинаковые плашки бок о бок с равным наездом на траву,
   на мобиле одинаковые карточки на одном фоне под фото.
   ============================================================ */

.indiv .eh {
  margin-bottom: clamp(20px, 4.4vw, 34px);
}

/* мобила: без наезда, обе карточки на одном фоне - равный вес */
.indiv__cards {
  margin: 16px 0 0;
}

@media (min-width: 760px) and (max-width: 999px) {
  .indiv__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
    align-items: stretch;
    margin: -88px 24px 0;
  }

  .indiv__card + .indiv__card {
    margin-top: 0;
  }

  .indiv__note {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1000px) {
  .indiv__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--grid-gutter);
    align-items: stretch;
    width: var(--gspan-8);
    margin: -116px auto 0;
    padding-top: 0;
  }

  .indiv__card {
    margin: 0;
  }

  .indiv__card + .indiv__card {
    margin-top: 0;
  }

  .indiv__note {
    grid-column: 1 / -1;
    width: auto;
    text-align: center;
  }
}

/* Кадр вокруг Алины: сохраняем шпагат целиком, убираем передний план газона. */
.indiv__media {
  aspect-ratio: 16 / 10;
}

.indiv__media img {
  object-position: 50% 68%;
}

@media (min-width: 760px) {
  .indiv__media {
    aspect-ratio: 16 / 7;
  }

  .indiv__media img {
    object-position: 50% 70%;
  }

  .indiv__cards {
    margin: 20px auto 0;
  }
}

/* Единое спокойное оформление стоимости персонального сопровождения. */
.indiv__price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin: 12px 0 0;
  color: var(--color-ice);
  font-size: 18px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: normal;
  text-shadow: none;
}

.indiv__price-label,
.indiv__price-period {
  color: var(--color-silver);
  font-size: 14px;
  font-weight: 400;
}

.indiv__price-value {
  white-space: nowrap;
}

/* Секции задают внешние поля; вложенные заголовки их не дублируют. */
main > section > .eh {
  padding-inline: 0;
}

.indiv > .eh {
  width: 100%;
  margin: 0 0 24px;
  gap: 10px;
}

.indiv .eh__eyebrow {
  margin: 0;
  line-height: 1.4;
}

.indiv .eh__main {
  line-height: 1.08;
}

.indiv .eh__script {
  margin: 0;
}

.indiv__cards {
  width: 100%;
  margin: 20px 0 0;
}

.indiv__note {
  text-align: left;
  width: 100%;
}

/* Шапка на тех же внешних направляющих, что и секции. */
.site-header {
  padding-inline: max(var(--page-padding), calc((100vw - var(--content-max)) / 2 + var(--page-padding)));
  transition: transform .24s ease, background-color .24s ease, box-shadow .24s ease;
}

.site-header.is-hidden:not(:focus-within) {
  transform: translateY(-100%);
  pointer-events: none;
}

body.nav-open .site-header {
  transform: none;
  pointer-events: auto;
}

@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}

/* После перехода на 12 колонок заголовок должен занимать ширину списка. */
@media (min-width: 1000px) {
  .audience > .eh {
    grid-column: 1 / 8;
    width: 100%;
  }

  .audience__list {
    margin-top: 28px;
  }

  .faq > .eh,
  .faq__list {
    width: var(--gspan-8);
    margin-inline: 0;
  }
}

.program__extra {
  padding-inline: 0;
  margin-inline: 0;
}

/* Тарифы и персональное сопровождение: связанный переход без двойного интервала. */
main > section.pricing {
  padding-bottom: clamp(24px, 3vw, 36px);
}

main > section.indiv {
  padding-top: clamp(24px, 3vw, 36px);
}

.indiv > .eh {
  gap: 10px;
  margin-bottom: clamp(24px, 3vw, 32px);
}

.indiv__heading {
  max-width: 18em;
  font-family: var(--font-body);
  font-size: clamp(30px, 4.4vw, 54px);
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: -.035em;
  color: var(--color-ice);
  text-wrap: balance;
}

.indiv__subtitle {
  font-family: var(--font-body);
  font-size: clamp(17px, 2vw, 23px);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: normal;
  color: var(--color-silver);
}

.indiv__subtitle span {
  color: #DE6C97;
  white-space: nowrap;
}
