:root { --c-pink: #c636ab; --pad-bl: 85px; --c-dark: #262a36; }
body { color: #262a36; background: #fff; line-height: 1.5; }
.container { max-width: 1440px; }
.header { top: 16px; }
.header__inner { max-width: 1340px; height: 72px; background: #292d3bef; box-shadow: 0 12px 40px #17152618; backdrop-filter: blur(20px); padding-inline: 25px; }
.header__inner.is-out-hero { background: #292d3bf5; }
.header .logo__icon { width: 200px; }
.header .nav__list { font-size: 14px; gap: 25px; }
.nav-mobile__inner { max-width: 600px; margin: auto; padding-block: 55px; }
.nav-mobile__list { gap: 18px; font-size: 24px; }
.site-kicker { display: block; color: #a04692; font-size: 11px; font-weight: 600; letter-spacing: .15em; margin-bottom: 16px; }
.site-hero { padding: 115px 0 30px; background: #f6f3f7; }
.site-hero-layout { display: grid; grid-template-columns: 1fr 1.05fr; gap: 35px; align-items: stretch; }
.site-hero-copy { padding: 35px 0; }
.site-hero h1 { font: 600 clamp(40px,4.5vw,68px)/1.06 Montserrat,sans-serif; letter-spacing: -.05em; }
.site-hero h1 em { font-style: normal; color: #b934a2; }
.site-hero-copy > p { font-size: 17px; color: #686272; line-height: 1.65; max-width: 430px; margin: 26px 0; }
.site-hero-copy .studio-button { min-width: 270px; }
.site-hero-note { display: flex; gap: 10px; align-items: center; font-size: 11px; color: #7d7184; margin-top: 20px; }
.site-hero-visual { position: relative; min-height: 520px; border-radius: 32px; background: #272b37 url('../img/bg-hero-pad.png') center center / cover no-repeat; overflow: hidden; }
.site-hero-stamp { position: absolute; top: 22px; left: 22px; padding: 15px 19px; border-radius: 18px; background: #fffffff0; font: 500 16px/1.4 Montserrat,sans-serif; transform: rotate(-4deg); }
.site-hero-stamp strong { color: #af3497; font-weight: 600; }
.site-hero-visual-label { position: absolute; right: 22px; bottom: 22px; color: white; font-size: 10px; letter-spacing: .18em; }
.site-hero-links { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; margin-top: 25px; }
.site-hero-links a { display: flex; align-items: center; gap: 12px; padding: 20px; background: #fff; border: 1px solid #e8e0eb; border-radius: 18px; font-size: 13px; transition: border-color .2s; }
.site-hero-links a:hover { border-color: #cc64b5; }
.site-hero-links span { font-size: 10px; color: #b6499e; }
.site-hero-links b { margin-left: auto; font-size: 22px; font-weight: 400; }
.btn { padding: 14px 21px; gap: 16px; background: #ce3cb1; color: #fff; line-height: 1.35; transition: background .2s, transform .2s; }
.btn:hover { background: #ac268f; transform: translateY(-2px); }
.btn__text { font-size: 14px; font-weight: 600; }
.btn__decor { width: 23px; height: 23px; }
.btn__circle { background: none; }
.btn__circle::after { content: '↗'; position: absolute; inset: 0; font: 24px/23px Inter,sans-serif; }
.btn--shine::before { display: none; }
.dot-icon--pulse, .dot-icon--pulse .dot-icon__ring { animation: none; }
.directions__title, .why-choice__title, .abo__title, .schedule__title, .result__title { font: 600 clamp(30px,3.5vw,48px)/1.15 Montserrat,sans-serif; letter-spacing: -.035em; margin-bottom: 10px; }
.directions, .why-choice__inner, .abo, .result { text-align: left; }
.directions__title { text-align: left; }
.directions { gap: 0; }
.directions__grid { gap: 20px; margin-top: 28px; grid-template-columns: repeat(3,minmax(0,1fr)); }
.directions-card { border-radius: 26px; max-width: none; min-height: 535px; }
.directions-card__inner { margin: auto 14px 14px; padding: 24px 19px; text-align: left; background: #292d3bf2; border: 1px solid #ffffff20; border-radius: 20px; }
.directions-card__title { font-size: 26px; line-height: 1.15; font-weight: 600; letter-spacing: -.025em; }
.directions-card__text { color: #dad4df; font-size: 13px; line-height: 1.55; }
.directions-card__bottom { max-height: none; opacity: 1; transform: none; margin-top: 18px; gap: 17px; }
.directions-card__actions { justify-content: flex-start; flex-wrap: wrap; gap: 12px; }
.directions-card__link { gap: 6px; }
.directions-card__link-text { font-size: 11px; }
.directions-card .dot-icon { width: 15px; height: 15px; }
.directions-card .dot-icon__circle { width: 7px; height: 7px; background: #ef85d8; }
.directions-card .dot-icon__ring { border: 1px solid #ffffff30; }
.directions-card__btn { align-self: stretch; padding: 12px; }
.directions-card__btn .btn__text { font-size: 12px; }
.why-choice__inner { gap: 0; }
.why-choice__grid { gap: 14px; margin-top: 28px; }
.why-choice__item { padding: 25px 19px; background: #f6f3f7; border: 1px solid #eae2ed; border-radius: 22px; align-items: flex-start; gap: 18px; }
.why-choice__item img { height: 58px; margin: 0; }
.why-choice__item-title { font-size: 16px; line-height: 1.3; font-weight: 600; }
.why-choice__item-text { font-size: 13px; color: #78707e; line-height: 1.6; }
.section-running-line { margin-block: 45px; background: #f6f3f7; padding-block: 17px; }
.running-line__item { font-size: 34px; line-height: 1.25; font-weight: 500; color: #9e3b8e; opacity: 1; }
.abo__subtitle, .result__subtitle { margin: 0 0 25px; max-width: 720px; color: #77707e; font-size: 16px; line-height: 1.6; align-self: flex-start; }
.abo-tabs { align-self: flex-start; margin-bottom: 30px; }
.abo-tabs__track, .effects-tabs__track { gap: 8px; }
.abo-tabs__btn, .effects-tabs__btn { flex-basis: 230px; width: 230px; padding: 13px 20px; font-size: 14px; }
.abo-tabs__btn + .abo-tabs__btn, .effects-tabs__btn + .effects-tabs__btn { margin-left: 0; }
.abo-tabs__track > .abo-tabs__btn:not(:first-of-type):not(.abo-tabs__btn--active), .effects-tabs__track > .effects-tabs__btn:not(:first-of-type):not(.effects-tabs__btn--active) { border: 1px solid #af4b9e; border-radius: 100px; }
.abo-tabs__btn--active, .effects-tabs__btn--active { background: #be369f; }
.abo-panel .abo-grid { gap: 20px; align-items: stretch; }
.abo-card { flex: 1; min-width: 0; width: 100%; height: auto; min-height: 580px; padding: 28px; border-radius: 26px; background: #f6f3f7; border: 1px solid #e8dfea; gap: 22px; text-align: left; }
.abo-card:hover, .abo-card.abo-card--focus { background: #292d3b; color: #fff; box-shadow: 0 15px 35px #31233513; }
.abo-card:hover .abo-card__price, .abo-card--focus .abo-card__price { color: #ef8cdb; }
.abo-card__title { font-size: 24px; line-height: 1.2; font-weight: 600; }
.abo-card__lead, .abo-card__desc { font-size: 13px; line-height: 1.6; opacity: .8; }
.abo-card__price { font-size: 24px; line-height: 1.3; padding-top: 15px; font-weight: 600; }
.abo-price-amount { display: block; font-size: 34px; line-height: 1.15; letter-spacing: -.035em; }
.abo-price-term { display: block; font-size: 12px; font-weight: 400; color: #86738a; margin-top: 9px; }
.abo-card:hover .abo-price-term, .abo-card--focus .abo-price-term { color: #c5b7ce; }
.abo-card__list { font-size: 13px; line-height: 1.6; gap: 10px; }
.abo-card__btn { margin-top: auto; align-self: stretch; background: #ce3cb1; color: #fff; }
.effects { border-radius: 30px; overflow: hidden; }
.effects__title { font-weight: 600; letter-spacing: -.03em; }
.effects-panel__item { background: #242b3ccc; padding: 20px; border: 1px solid #ffffff16; border-radius: 20px; }
.effects-panel__subtitle { font-size: 22px; line-height: 1.25; }
.effects-panel__text { font-size: 14px; line-height: 1.6; }
.schedule { background: #292d3b; border-radius: 30px; padding-block: 38px; gap: 16px; }
.schedule .site-kicker { color: #e193d2; margin-bottom: 0; }
.schedule__title { margin-bottom: 0; }
.schedule-grid { border: 1px solid #ffffff20; border-radius: 18px; }
.schedule-grid__row { border-color: #ffffff18; }
.schedule-grid__cell { border-color: #ffffff18; }
.schedule-grid__row--head { background: #ffffff08; font-size: 16px; }
.schedule-grid__cell--time { font-size: 20px; }
.lesson-card { background: #ffffff08; border: 1px solid #ffffff16; border-radius: 14px; padding: 14px 10px; }
.lesson-card__title { font-size: 16px; }
.lesson-card__meta { font-size: 11px; opacity: .75; }
.schedule__nav-btn { background: #ffffff0e; border: 1px solid #ffffff20; }
.section-marathon { border-radius: 30px; overflow: hidden; max-width: 1340px; margin: 85px auto; }
.marathon { padding-block: 35px; }
.marathon__title { font: 600 45px/1.15 Montserrat,sans-serif; letter-spacing: -.035em; }
.marathon__subtitle { font-size: 24px; line-height: 1.35; }
.marathon__text, .marathon__list { font-size: 15px; line-height: 1.6; }
.marathon__date { font-size: 28px; line-height: 1.3; }
.result__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
.result-card { width: 100%; height: 480px; border-radius: 24px; overflow: hidden; padding: 12px; }
.result-card__overlay { height: auto; min-height: 135px; margin: auto 0 0; padding: 18px; border-radius: 16px; background: #fffffff0; text-align: left; gap: 6px; }
.result-card__name { font-size: 19px; line-height: 1.3; word-break: normal; }
.result-card__duration { font-size: 12px; color: #7c7282; }
.result-card__value { font-size: 28px; color: #b934a2; font-weight: 600; }
.section-gift { margin-block: 85px; }
.gift { height: auto; padding-block: 55px; border-radius: 30px; background: #f6f3f7; overflow: hidden; isolation: isolate; }
.gift__content { width: 100%; max-width: 850px; height: auto; background: #fffffff0; border: 1px solid #e7ddeb; border-radius: 26px; padding: 35px; gap: 20px; }
.gift__title { color: #a04692; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.gift__subtitle { font-size: 34px; line-height: 1.2; font-weight: 600; letter-spacing: -.03em; }
.gift__text { font-size: 14px; line-height: 1.6; color: #756a7c; }
.gift__image { z-index: -1; opacity: .55; }
.section-body-time { border-radius: 30px; overflow: hidden; max-width: 1340px; height: auto; min-height: 850px; }
.body-time { padding-bottom: 40px; }
.body-time__title { font-size: 48px; line-height: 1.1; letter-spacing: -.03em; }
.body-time__content { background: #371d1dcc; padding: 25px; border-radius: 22px; font-size: 14px; }
.body-time__content .fi-18 { font-size: 14px; line-height: 1.6; }
.body-time__subtitle { font-size: 24px; line-height: 1.3; }
.body-time__btn { background: #c96906; }
.faq { gap: 30px; }
.faq__head { max-width: none; }
.faq__title { font: 600 clamp(30px,3.5vw,48px)/1.15 Montserrat,sans-serif; letter-spacing: -.035em; }
.faq__list { width: 100%; gap: 12px; }
.faq-item { border: 1px solid #e7dfeb; border-radius: 20px; padding: 23px 25px; opacity: 1; background: #f9f7fa; }
.faq-item--open { background: #f4edf6; border-color: #d6b9d7; }
.faq-item__question { font-size: 19px; line-height: 1.35; }
.faq-item__body { font-size: 14px; line-height: 1.65; color: #756a7d; }
.faq-item--open .faq-item__body { max-height: 1200px; padding-top: 14px; }
.footer { max-width: none; background: #292d3b; border-radius: 36px 36px 0 0; }
.footer__inner { gap: 55px; padding-block: 65px 30px; }
.footer-cta__title { font-size: 38px; line-height: 1.2; letter-spacing: -.025em; }
.footer-cta__text { font-size: 14px; line-height: 1.65; color: #c2b8cd; }
.footer__bottom { max-width: 1000px; }
.footer-logo-nav__wrap { align-items: center; }
.footer-logo__icon { max-width: 310px; }
.footer-nav__list { font-size: 13px; }
.footer__legal, .footer__address { font-size: 11px; color: #b9b0c4; line-height: 1.6; }
.footer__legal { border-top: 1px solid #ffffff17; padding-top: 20px; }
#privacy .about, #notfound .about { display: block; padding-left: var(--pad-in); }
#notfound .schedule-card__btn-wrap { max-height: none; opacity: 1; pointer-events: auto; }
#privacy .about, #notfound .about { max-width: 1100px; margin-bottom: 60px; padding-block: 30px; }
#privacy .about__content, #notfound .about__content { max-width: 900px; margin: 30px auto 60px; padding: 35px; border: 1px solid #e7ddeb; background: #f9f7fa; border-radius: 25px; }
#privacy h2, #notfound h2 { line-height: 1.25; }
#privacy p, #privacy li, #notfound p { line-height: 1.7; }
#privacy > .container, #notfound > .container { max-width: 1050px; background: #f9f7fa; border: 1px solid #e7ddeb; border-radius: 26px; padding-block: 35px; margin-block: 24px 55px; }
#privacy h1, #notfound h1 { font-size: clamp(29px,4vw,48px); line-height: 1.2; letter-spacing: -.03em; margin-bottom: 20px; }
#privacy > .container > p, #privacy > .container > div { font-size: 15px; }
#notfound .btn > .btn__circle { display: none; }
#notfound .btn__decor::after { content: '↗'; font-size: 22px; }
@media (max-width: 1023px) {
  :root { --pad-bl: 50px; }
  .header .nav__list { gap: 16px; font-size: 12px; }
  .header .logo__icon { width: 170px; }
  .site-hero-layout { gap: 20px; }
  .site-hero-visual { min-height: 460px; }
  .site-hero-links a { font-size: 11px; padding: 16px; }
  .directions__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .why-choice__grid { grid-template-columns: repeat(3,1fr); }
  .why-choice__grid > :last-child { grid-column: auto; padding-bottom: 25px; }
  .abo-card { padding: 22px 18px; }
  .abo-card__title { font-size: 20px; }
  .abo-card__price { font-size: 21px; }
  .result__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-card { height: 480px; }
  .section-marathon, .section-body-time { margin-inline: 15px; }
}
@media (max-width: 767px) {
  :root { --pad-bl: 35px; }
  .header { top: 12px; }
  .header__inner { height: 62px; padding-inline: 18px; }
  .header .logo__icon { width: 165px; }
  .site-hero { padding-top: 100px; }
  .site-hero-layout { grid-template-columns: 1fr; gap: 22px; }
  .site-hero-copy { padding: 0; }
  .site-hero h1 { font-size: clamp(38px,10vw,56px); }
  .site-hero-copy > p { font-size: 14px; margin-block: 22px; }
  .site-hero-copy .studio-button { width: 100%; min-width: 0; }
  .site-hero-note { font-size: 10px; }
  .site-hero-visual { min-height: 380px; border-radius: 23px; }
  .site-hero-stamp { top: 17px; left: 17px; font-size: 13px; padding: 12px 15px; }
  .site-hero-links { grid-template-columns: 1fr; gap: 9px; margin-top: 18px; }
  .site-hero-links a { font-size: 12px; padding: 14px 18px; }
  .site-kicker { font-size: 9px; margin-bottom: 12px; }
  .directions__grid { grid-template-columns: 1fr; margin-top: 20px; }
  .directions-card { min-height: 520px; border-radius: 23px; }
  .directions-card__inner { padding: 23px 19px; }
  .directions-card__actions { flex-direction: row; }
  .why-choice__grid { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: none; gap: 10px; }
  .why-choice__grid > :nth-child(n) { grid-area: auto; }
  .why-choice__grid > :last-child { grid-column: 1 / -1; max-width: none; width: 100%; }
  .why-choice__item { padding: 20px 15px; gap: 14px; border-radius: 18px; }
  .why-choice__item-title { font-size: 15px; }
  .why-choice__item-text { font-size: 12px; }
  .running-line__item { font-size: 24px; }
  .section-running-line { margin-block: 30px; }
  .abo__subtitle, .result__subtitle { font-size: 14px; }
  .abo-tabs { align-self: stretch; }
  .abo-tabs__btn, .effects-tabs__btn { flex: 0 0 210px; width: 210px; font-size: 13px; }
  .abo-panel .abo-grid { gap: 15px; }
  .abo-card { flex: none; min-height: 0; padding: 25px; max-width: 100%; gap: 22px; }
  .abo-card__title { font-size: 24px; }
  .abo-card__list { font-size: 13px; }
  .abo-card__price { font-size: 24px; }
  .effects { border-radius: 23px; }
  .effects-panel__item { margin-inline: 12px; padding: 18px; }
  .effects-panel__body .fi-18 { font-size: 13px; line-height: 1.6; }
  .schedule { border-radius: 23px; padding-block: 28px; }
  .schedule__title { font-size: 28px; }
  .section-marathon { margin-block: 35px; border-radius: 23px; background: #f6f3f7; }
  .section-marathon .marathon { padding-block: 25px; }
  .marathon__title { font-size: 30px; margin-bottom: 12px; }
  .marathon__subtitle.fm-28 { font-size: 20px; }
  .marathon__list-wrap { width: 100%; }
  .marathon__btn { margin-top: 15px; }
  .result__grid { grid-template-columns: 1fr; gap: 16px; }
  .result-card { height: 490px; aspect-ratio: auto; }
  .result-card__name.fm-28 { font-size: 20px; }
  .section-gift { margin-block: 35px; }
  .gift { padding-block: 22px; border-radius: 23px; }
  .gift__content { padding: 23px 20px; border-radius: 18px; }
  .gift__subtitle { font-size: 25px; }
  .gift__text { font-size: 13px; }
  .gift__text ul { align-items: flex-start; padding-left: 15px; text-align: left; }
  .body-time__title { font-size: 31px; }
  .section-body-time { border-radius: 23px 23px 0 0; margin-bottom: 0; height: 384px; min-height: 0; }
  .body-time-mobile { width: calc(100% - 30px); border-radius: 0 0 23px 23px; padding: 25px; font-size: 14px; }
  .body-time-mobile .fi-18 { font-size: 13px; line-height: 1.65; }
  .body-time-mobile .fm-28 { font-size: 22px; line-height: 1.3; }
  .faq-item { padding: 20px 18px; border-radius: 17px; }
  .faq-item__question.fm-28 { font-size: 17px; }
  .footer { border-radius: 25px 25px 0 0; }
  .footer__inner { padding-block: 45px 25px; gap: 38px; }
  .footer-cta__title { font-size: 30px; }
  .footer-cta__text.fi-18 { font-size: 13px; }
  .footer-logo__icon { max-width: 260px; }
  .footer-nav__list { gap: 12px; }
  #privacy .about__content, #notfound .about__content { padding: 22px; margin-top: 20px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; transition: none !important; } }
