/* ============================================================
   СКУЛЬПТОР ТЕЛА — STYLE
   Палитра: беж (фон) · синий · коралл · жёлтый акцент
   Настроение: современно, слегка агрессивно
   ============================================================ */

:root{
  --beige:        #f2ead9;
  --beige-2:      #e9dfc8;
  --sand:         #ddd0b2;
  --ink:          #14171f;
  --blue:         #1d3ff0;
  --blue-soft:    #5a70e8;
  --blue-mid:     #3f55dd;
  --blue-deep:    #0d1b49;
  --coral:        #ff5a3c;
  --coral-dark:   #e34227;
  --yellow:       #ffc72c;
  --white:        #fffdf8;
  --outline:      1.5px solid rgba(20,23,31,.22);

  --font-display: "Unbounded", "Arial Black", sans-serif;
  --font-body:    "Manrope", "Segoe UI", Arial, sans-serif;

  --shadow-hard:  7px 7px 0 var(--blue-deep);
  --shadow-coral: 7px 7px 0 var(--coral);

  --clip-card:    polygon(0 0, calc(100% - 28px) 0, 100% 28px, 100% 100%, 28px 100%, 0 calc(100% - 28px));
  --clip-img:     polygon(14px 0, 100% 0, 100% calc(100% - 20px), calc(100% - 20px) 100%, 0 100%, 0 20px);
  --container:    1240px;
}

/* ---------- base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }

html{ scroll-behavior:smooth; }

body{
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--beige);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

html, body, *{ touch-action:manipulation; }

.container{
  width:min(var(--container), 92%);
  margin-inline:auto;
}

section{ position:relative; }

::selection{ background:var(--coral); color:var(--white); }

/* ---------- typography ---------- */
.h1, h1, h2, h3, h4{
  font-family:var(--font-display);
  font-weight:900;
  line-height:1.04;
  text-transform:uppercase;
  letter-spacing:.01em;
}

.section__tag{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--coral);
  margin-bottom:18px;
}
.section__tag::before{
  content:"";
  width:34px; height:3px;
  background:currentColor;
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%);
}

.section__title{
  font-size:clamp(1.9rem, 4.6vw, 3.4rem);
  max-width:20ch;
}
.section__title em{
  font-style:normal;
  color:var(--coral);
  position:relative;
  white-space:nowrap;
  z-index:0;
  isolation:isolate;
}
.section__title em::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:.04em;
  height:.18em;
  background:var(--yellow);
  z-index:-2;
}

.section__lead{
  margin-top:22px;
  max-width:56ch;
  font-weight:500;
}

/* ---------- buttons ---------- */
.btn__m{ display:none; }
.btn{
  --pad:18px 26px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:var(--pad);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--white);
  background:var(--coral);
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
  position:relative;
  cursor:pointer;
  transition:transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s, background .22s, color .22s;
  white-space:nowrap;
  user-select:none;
}
.btn .arrow{
  font-style:normal;
  font-size:1.1rem;
  line-height:1;
  transition:transform .22s;
}
.btn:hover{
  transform:translate(-3px,-3px);
  box-shadow:6px 6px 0 var(--ink);
}
.btn:hover .arrow{ transform:translateX(4px); }
.btn:active{
  transform:translate(1px,1px);
  box-shadow:2px 2px 0 var(--ink);
  filter:brightness(.88);
}
.btn--coral:hover{ background:var(--coral-dark); }
.btn--coral:active{ background:var(--coral-dark); }
.btn--blue{ background:var(--blue-soft); }
.btn--blue:hover{ background:var(--blue-mid); }
.btn--blue:active{ background:var(--blue-mid); }
.btn--yellow{ background:var(--yellow); color:var(--ink); }
.btn--yellow:hover{ box-shadow:6px 6px 0 var(--ink); }

.btn--ghost{
  background:transparent;
  color:var(--ink);
}
.btn--ghost:hover{
  background:var(--blue);
  color:var(--white);
  box-shadow:6px 6px 0 var(--ink);
}

.btn--sm{ --pad:12px 20px; font-size:.68rem; }
.btn--lg{ --pad:20px 30px; font-size:.85rem; }
.btn--block{ width:100%; }

/* ---------- badges ---------- */
.badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--blue-deep);
  background:var(--white);
  padding:10px 18px;
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
}
.badge__dot{
  width:10px; height:10px;
  border-radius:50%;
  background:var(--coral);
  animation:pulse 1.4s ease-in-out infinite;
}
.badge--light{ color:var(--white); background:rgba(13,27,73,.55); border-color:var(--white); }

@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(255,90,60,.55); }
  55%    { box-shadow:0 0 0 9px rgba(255,90,60,0); }
}

/* ---------- ticker (top) ---------- */
.ticker{
  background:var(--ink);
  color:var(--beige);
  overflow:hidden;
  border-bottom:2px solid var(--ink);
}
.ticker__track{
  display:flex;
  width:max-content;
  animation:mq 26s linear infinite;
}
.ticker__group{
  display:flex;
  align-items:center;
  gap:28px;
  padding:10px 14px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.ticker__group b{ color:var(--coral); }

/* ---------- header ---------- */
.header{
  position:sticky;
  top:0;
  z-index:50;
  background:color-mix(in srgb, var(--beige) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:2px solid var(--ink);
  transition:background .3s, box-shadow .3s;
}
.header__inner{
  display:flex;
  align-items:center;
  gap:26px;
  padding:14px 0;
}

.logo{
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.logo__mark{
  width:46px; height:46px;
  display:grid;
  place-items:center;
  color:var(--white);
  background:var(--coral);
  border:2px solid var(--ink);
  transform:rotate(-8deg);
  transition:transform .2s;
}
.logo__mark svg{
  width:22px; height:22px;
  filter:drop-shadow(1px 1px 0 var(--ink));
}
.logo:hover .logo__mark{ transform:rotate(0deg) scale(1.06); }
.logo__text{
  font-family:var(--font-display);
  font-weight:900;
  font-size:.95rem;
  line-height:1.05;
  letter-spacing:.04em;
}
.logo__text--dark{ color:var(--white); }

.nav{
  margin-left:auto;
  display:flex;
  gap:6px;
}
.nav a{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:10px 14px;
  position:relative;
  color:var(--ink);
}
.nav a::after{
  content:"";
  position:absolute;
  left:14px; right:14px; bottom:4px;
  height:3px;
  background:var(--coral);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .22s;
}
.nav a:hover::after{ transform:scaleX(1); }

.header__cta{ margin-left:6px; }

.header__phone{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.78rem;
  letter-spacing:.04em;
  color:var(--blue-deep);
  white-space:nowrap;
  padding:10px 14px;
  border:2px solid var(--ink);
  background:var(--white);
  transition:background .2s, color .2s, transform .2s;
}
.header__phone svg{
  width:16px; height:16px;
  color:var(--coral);
}
.header__phone:hover{
  background:var(--blue);
  color:var(--white);
  transform:translateY(-2px);
}
.header__phone:hover svg{ color:var(--yellow); }

.footer__phone{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.85rem;
  color:var(--beige);
  padding:10px 16px;
  border:1.5px solid rgba(242,234,217,.35);
  background:rgba(255,255,255,.05);
  transition:border-color .2s, color .2s;
}
.footer__phone svg{
  width:17px; height:17px;
  color:var(--coral);
}
.footer__phone:hover{
  border-color:var(--coral);
  color:var(--white);
}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  width:44px; height:44px;
  align-items:center;
  justify-content:center;
  background:var(--coral);
  border:2px solid var(--ink);
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:20px; height:2px;
  background:var(--ink);
  transition:.25s;
}

/* ---------- hero ---------- */
.hero{
  padding:clamp(48px, 7vw, 96px) 0 clamp(56px, 7vw, 110px);
  overflow:hidden;
}

.hero__bg{ position:absolute; inset:0; pointer-events:none; }
.hero__shape--one{
  position:absolute;
  top:-120px; right:-90px;
  width:520px; height:520px;
  background:var(--blue);
  border:2px solid var(--ink);
  transform:rotate(24deg);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 60px),calc(100% - 60px) 100%,0 100%);
  opacity:.12;
}
.hero__shape--two{
  position:absolute;
  bottom:-140px; left:-120px;
  width:420px; height:420px;
  background:var(--coral);
  border:2px solid var(--ink);
  transform:rotate(-18deg);
  clip-path:polygon(0 0,100% 0,100% 100%,0 calc(100% - 44px));
  opacity:.10;
}
.hero__ghost{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(9rem, 26vw, 24rem);
  line-height:1;
  color:transparent;
  -webkit-text-stroke:2px rgba(29,63,240,.16);
  letter-spacing:.02em;
  pointer-events:none;
  user-select:none;
  white-space:nowrap;
}

.hero__grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:clamp(36px, 6vw, 80px);
  align-items:center;
}

.hero__title{
  font-size:clamp(2.6rem, 6.4vw, 4.9rem);
  margin:30px 0 24px;
}
.hero__title .line{ display:block; }
.hero__title .line--outline{
  color:transparent;
  -webkit-text-stroke:2px var(--ink);
}
.hero__title em{
  font-style:normal;
  color:var(--coral);
  position:relative;
  z-index:0;
  isolation:isolate;
}
.hero__title em::after{
  content:"";
  position:absolute;
  left:-2px; right:-2px; bottom:.06em;
  height:.22em;
  background:var(--yellow);
  z-index:-2;
}

.hero__lead{
  font-size:clamp(1.05rem, 1.7vw, 1.25rem);
  font-weight:500;
  max-width:46ch;
}
.hero__lead strong{ color:var(--blue-deep); }

.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:34px;
}

.hero__hint{
  margin-top:22px;
  font-size:.92rem;
  opacity:.75;
  max-width:52ch;
}

.hero__visual{ position:relative; }
.hero__frame{
  position:relative;
  clip-path:var(--clip-img);
  border:2px solid var(--ink);
  background:var(--sand);
  transform:rotate(1.2deg);
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.hero__frame img{
  width:100%;
  height:520px;
  object-fit:cover;
  filter:saturate(1.06) contrast(1.03);
}
.hero__visual:hover .hero__frame{ transform:rotate(0deg) scale(1.01); }

.hero__sticker{
  position:absolute;
  z-index:3;
  font-family:var(--font-display);
  font-weight:900;
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--white);
  padding:12px 18px;
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
}
.hero__sticker span{
  color:var(--yellow);
  margin-left:8px;
}
.hero__sticker--top{
  top:26px; left:-16px;
  background:var(--blue-soft);
  transform:rotate(-4deg);
  animation:float1 5s ease-in-out infinite;
}
.hero__sticker--bottom{
  bottom:30px; right:-14px;
  background:var(--coral);
  transform:rotate(3deg);
  animation:float2 6s ease-in-out infinite;
}
@keyframes float1{ 0%,100%{ transform:translateY(0) rotate(-4deg);} 50%{ transform:translateY(-10px) rotate(-4deg);} }
@keyframes float2{ 0%,100%{ transform:translateY(0) rotate(3deg);} 50%{ transform:translateY(8px) rotate(3deg);} }

.hero__caption{
  margin-top:36px;
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.7rem;
  letter-spacing:.3em;
  color:var(--blue-deep);
  text-transform:uppercase;
  justify-content:flex-end;
}
.hero__slash{ color:var(--coral); font-size:1.2rem; }

/* ---------- marquee ---------- */
.marquee{ overflow:hidden; border-block:2px solid var(--ink); }
.marquee__track{
  display:flex;
  width:max-content;
  animation:mq 22s linear infinite;
}
.marquee__group{
  display:flex;
  align-items:center;
  gap:34px;
  padding:18px 16px;
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(1.3rem, 2.6vw, 2rem);
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
}
.marquee__group b{ font-size:.9em; }

.marquee--navy{ background:var(--blue-deep); color:var(--beige); }
.marquee--navy b{ color:var(--coral); }
.marquee--coral{ background:var(--coral); color:var(--white); border-block-color:var(--ink); }
.marquee--coral b{ color:var(--yellow); }

@keyframes mq{ to{ transform:translateX(-50%);} }
.marquee__track, .ticker__track{ width:max-content; }
.marquee:hover .marquee__track{ animation-play-state:paused; }
.ticker:hover .ticker__track{ animation-play-state:paused; }

/* ---------- sections ---------- */
.section{ padding:clamp(64px, 9vw, 130px) 0; }
.section--alt{ background:var(--beige-2); }

.section__head{ margin-bottom:clamp(36px, 5vw, 60px); }

/* ---------- workouts (photo bg + glass cards) ---------- */
.workouts{
  position:relative;
  overflow:hidden;
  color:var(--white);
}
.workouts__bg{
  position:absolute;
  inset:0;
}
.workouts__bg img{
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(.55) saturate(1.05);
  transform:scale(1.03);
}
.workouts__shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(160deg, rgba(13,27,73,.88) 0%, rgba(13,27,73,.55) 50%, rgba(255,90,60,.30) 100%);
}
.workouts .container{
  position:relative;
  z-index:2;
}
.workouts .section__tag{ color:var(--yellow); }
.workouts .section__title{ color:var(--white); }
.workouts .section__lead{
  color:rgba(255,253,248,.86);
}
.workouts .section__title em{ color:var(--yellow); }
.workouts .section__title em::after{ background:var(--coral);   z-index:-2; }

/* ---------- cards (workout types) ---------- */
.cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(20px, 3vw, 40px);
}

.card{
  background:var(--white);
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s;
}
.card:hover{
  transform:translate(-5px,-5px);
  box-shadow:12px 12px 0 var(--ink);
}

/* glass cards */
.card--glass{
  background:rgba(255,255,255,.10);
  border:1.5px solid rgba(255,255,255,.38);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 24px 50px rgba(13,27,73,.35);
}
.card--glass:hover{
  background:rgba(255,255,255,.16);
  border-color:var(--yellow);
  box-shadow:0 30px 60px rgba(13,27,73,.45);
}
.card__badge{
  position:absolute;
  top:18px; left:18px;
  z-index:2;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.68rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--white);
  background:var(--blue-soft);
  padding:8px 14px;
  border:1.5px solid var(--ink);
  clip-path:var(--clip-card);
}
.card__badge--yellow{ background:var(--yellow); color:var(--ink); }
.card__body{
  padding:clamp(52px, 6vw, 64px) clamp(22px, 3vw, 34px) clamp(22px, 3vw, 34px);
  display:flex;
  flex-direction:column;
  gap:14px;
  flex:1;
}
.card--glass .card__body{ padding-top:clamp(56px, 6vw, 68px); }
.card__title{ font-size:clamp(1.25rem, 2vw, 1.55rem); color:var(--white); }
.card__text{ font-weight:500; color:rgba(255,253,248,.85); }
.card--glass .card__meta{
  color:var(--yellow);
  background:rgba(255,255,255,.10);
  border-left:4px solid var(--yellow);
  margin-top:10px;
  padding:8px 12px;
}
.card .btn{ margin-top:auto; }

/* ---------- mind ---------- */
.mind{ background:var(--beige-2); }
.mind__grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:clamp(32px, 5vw, 72px);
  align-items:center;
}
.mind__visual{
  position:relative;
}
.mind__visual img{
  width:100%;
  height:520px;
  object-fit:cover;
  border:2px solid var(--ink);
  clip-path:var(--clip-img);
  transform:rotate(-1.4deg);
  transition:transform .5s;
}
.mind__visual:hover img{ transform:rotate(0); }
.mind__num{
  position:absolute;
  right:-18px;
  bottom:24px;
  font-family:var(--font-display);
  font-weight:900;
  font-size:.85rem;
  line-height:1.15;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--white);
  background:var(--coral);
  padding:12px 16px;
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
  transform:rotate(3deg);
  text-align:center;
}
.mind__content > p:not(.section__tag){
  margin-top:20px;
  font-size:1.1rem;
  max-width:56ch;
}
.mind__content strong{ color:var(--blue-deep); }

.mind__list{
  margin-top:28px;
  display:flex;
  flex-direction:column;
}
.mind__list li{
  display:flex;
  gap:18px;
  padding:18px 0;
  border-top:1.5px dashed var(--sand);
}
.mind__list li:last-child{ border-bottom:1.5px dashed var(--sand); }
.mind__mark{
  font-family:var(--font-display);
  font-weight:900;
  color:var(--coral);
  font-size:1.2rem;
  line-height:1.6;
  flex-shrink:0;
}
.mind__list p{ font-weight:500; }

/* ---------- benefits ---------- */
.benefits{
  background:var(--blue-deep);
  color:var(--white);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 40px), calc(100% - 40px) 100%, 0 100%);
  padding-bottom:clamp(90px, 9vw, 150px);
}
.benefits .section__tag{ color:var(--coral); }
.benefits .section__title em{ color:var(--yellow); }
.benefits .section__title em::after{ background:var(--blue);   z-index:-2; }
.mind .section__title em::after{ bottom:calc(.04em - 1px);   z-index:-2; }



.benefits__grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:clamp(18px, 2.4vw, 30px);
}
.benefit{
  position:relative;
  background:rgba(255,253,248,.06);
  border:1.5px solid rgba(255,253,248,.18);
  clip-path:var(--clip-card);
  padding:clamp(24px, 3vw, 36px);
  transition:background .3s, transform .3s, border-color .3s;
}
.benefit::before{
  content:"";
  position:absolute;
  top:0; left:0;
  width:0; height:5px;
  background:var(--coral);
  transition:width .35s;
}
.benefit:hover{
  background:rgba(255,90,60,.14);
  transform:translateY(-6px);
  border-color:var(--coral);
}
.benefit:hover::before{ width:100%; }
.benefit__num{
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(2rem, 3.4vw, 2.7rem);
  color:transparent;
  -webkit-text-stroke:1.5px var(--coral);
  line-height:1;
}
.benefit h3{
  margin:18px 0 12px;
  font-size:clamp(1.05rem, 1.6vw, 1.3rem);
}
.benefit p{ color:rgba(255,253,248,.72); font-weight:500; }

/* ---------- choose / split ---------- */
.choose__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  gap:clamp(24px, 4vw, 56px);
  align-items:stretch;
}
.split{
  height:100%;
  min-width:0;
  background:rgba(255,253,248,.55);
  border:1.5px solid rgba(255,255,255,.75);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  box-shadow:0 20px 45px rgba(13,27,73,.18);
  clip-path:var(--clip-card);
  padding:clamp(24px, 3vw, 36px);
  display:flex;
  flex-direction:column;
  gap:18px;
  position:relative;
  transition:transform .35s, box-shadow .35s, background .35s;
}
.split:hover{
  transform:translate(-4px,-4px);
  box-shadow:10px 10px 0 var(--ink);
  background:rgba(255,253,248,.72);
}
.split__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  min-width:0;
}
.split__top h3{ font-size:clamp(1.2rem, 1.9vw, 1.5rem); white-space:nowrap; min-width:0; }
.split__badge{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.64rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--white);
  background:var(--blue-soft);
  padding:8px 12px;
  border:1.5px solid var(--ink);
  clip-path:var(--clip-card);
  white-space:nowrap;
}
.split__badge--yellow{ background:var(--yellow); color:var(--ink); }
.split > img{
  width:100%;
  height:300px;
  object-fit:cover;
  border:2px solid var(--ink);
  clip-path:var(--clip-img);
}
.split__intro{ font-weight:600; font-size:1.05rem; color:var(--coral); }
.split__label{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--blue-deep);
  margin-top:6px;
}
.split__list{
  display:flex;
  flex-direction:column;
}
.split__list li{
  display:flex;
  gap:12px;
  padding:12px 0;
  border-top:1.5px dashed var(--sand);
  font-weight:500;
}
.split__list b{ color:var(--coral); font-weight:900; }
.split__meta{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--blue-deep);
  background:var(--beige);
  border-left:4px solid var(--yellow);
  padding:10px 14px;
  margin-top:auto;
}
.split .btn{ margin-top:6px; }

/* ---------- CTA ---------- */
.cta{
  position:relative;
  padding:clamp(70px, 10vw, 150px) 0;
  color:var(--white);
  overflow:hidden;
}
.cta__bg{
  position:absolute;
  inset:0;
}
.cta__bg img{
  width:100%; height:100%;
  object-fit:cover;
  filter:brightness(.38) saturate(1.05);
  transform:scale(1.03);
}
.cta__bg::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(115deg, rgba(13,27,73,.92) 0%, rgba(13,27,73,.62) 45%, rgba(255,90,60,.35) 100%);
}
.cta__inner{
  position:relative;
  z-index:2;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
}
.cta__title{
  font-size:clamp(2rem, 5.4vw, 4rem);
  margin:26px 0 40px;
  max-width:30ch;
}
.cta__title em{
  font-style:normal;
  color:var(--yellow);
  position:relative;
}
.cta__title em::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:calc(.05em + 1px);
  height:.16em;
  background:var(--coral);
  z-index:-1;
}
.cta__choices{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(16px, 3vw, 32px);
  width:100%;
  max-width:960px;
}
.cta__choice{
  background:rgba(255,253,248,.08);
  border:1.5px solid rgba(255,253,248,.25);
  clip-path:var(--clip-card);
  padding:clamp(22px, 3vw, 32px);
  display:flex;
  flex-direction:column;
  gap:20px;
  text-align:left;
  backdrop-filter:blur(4px);
  transition:background .3s, transform .3s;
}
.cta__choice:hover{ background:rgba(255,253,248,.14); transform:translateY(-5px); }
.cta__choice p{ font-size:1.05rem; }
.cta__choice p span{ color:var(--coral); font-weight:900; margin-left:.32em; }
.cta__choice strong{ font-family:var(--font-display); font-size:1.05rem; text-transform:uppercase; }
.cta__note{
  margin-top:36px;
  font-size:1.02rem;
  opacity:.9;
}
.cta__note b{ color:var(--yellow); }

/* ---------- photo band ---------- */
.photoband{
  position:relative;
  height:clamp(280px, 44vw, 520px);
  overflow:hidden;
  border-block:2px solid var(--ink);
  background:var(--blue-deep);
}
.photoband img{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(.9) contrast(1.05);
  transition:transform 1.2s cubic-bezier(.2,.7,.2,1);
}
.photoband:hover img{ transform:scale(1.05); }
.photoband__word{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-family:var(--font-display);
  font-weight:900;
  font-size:clamp(4rem, 13vw, 11rem);
  letter-spacing:.02em;
  text-transform:uppercase;
  color:var(--white);
  -webkit-text-stroke:2px var(--ink);
  text-shadow:6px 6px 0 var(--ink), -6px -6px 0 rgba(255,90,60,.35);
  mix-blend-mode:overlay;
}
.photoband__tag{
  position:absolute;
  bottom:22px; left:50%;
  transform:translateX(-50%);
  font-family:var(--font-display);
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--yellow);
  padding:10px 18px;
  border:2px solid var(--ink);
  clip-path:var(--clip-card);
  white-space:nowrap;
}

/* ---------- footer ---------- */
.footer{ background:var(--ink); color:var(--beige); }
.footer__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:26px;
  padding:44px 0;
}
.footer__nav{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-left:auto;
}
.footer__nav a{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.7rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:8px 12px;
  color:var(--beige);
  transition:color .2s;
}
.footer__nav a:hover{ color:var(--coral); }
.footer__copy{
  width:100%;
  text-align:center;
  font-size:.85rem;
  opacity:.6;
  border-top:1px dashed rgba(242,234,217,.2);
  padding-top:26px;
}
.footer__credit{
  width:100%;
  text-align:center;
  font-size:.78rem;
  opacity:.6;
  margin-top:-14px;
}
.footer__credit a{
  color:var(--yellow);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
.footer__credit a:hover{ color:var(--coral); }

/* ---------- reveal animations ---------- */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
  transition-delay:var(--d, 0s);
}
.reveal.in{
  opacity:1;
  transform:none;
}

/* ---------- SIGNUP MODAL ---------- */
.modal{
  position:fixed;
  inset:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s, visibility .3s;
}
.modal.is-open{
  opacity:1;
  visibility:visible;
}
.modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(13,27,73,.55);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.modal__dialog{
  position:relative;
  width:100%;
  max-width:440px;
  max-height:calc(100vh - 40px);
  overflow-y:auto;
  background:var(--white);
  border:2px solid var(--ink);
  box-shadow:12px 12px 0 var(--ink);
  padding:clamp(22px, 4vw, 34px);
  transform:translateY(20px) scale(.97);
  transition:transform .3s cubic-bezier(.2,.7,.2,1);
}
.modal.is-open .modal__dialog{
  transform:translateY(0) scale(1);
}
.modal__close{
  position:absolute;
  top:14px; right:14px;
  width:38px; height:38px;
  border:2px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-size:1rem;
  cursor:pointer;
  line-height:1;
  transition:transform .2s, box-shadow .2s;
}
.modal__close:hover{
  transform:translate(-2px,-2px);
  box-shadow:4px 4px 0 var(--ink);
}
.modal__tag{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.6rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--coral);
  margin-bottom:6px;
}
.modal__title{
  font-family:var(--font-display);
  font-size:clamp(1.2rem, 2.2vw, 1.6rem);
  line-height:1.1;
  margin-bottom:16px;
}

/* form */
.form{ display:flex; flex-direction:column; gap:12px; }
.form__field{ display:flex; flex-direction:column; gap:4px; }
.form__label{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.6rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--blue-deep);
}
.form__label b{ color:var(--coral); }
.form__field input{
  font-family:var(--font-body);
  font-size:.95rem;
  padding:11px 12px;
  border:2px solid var(--ink);
  background:var(--beige);
  color:var(--ink);
  outline:none;
  transition:box-shadow .2s, background .2s;
}
.form__field input:focus{
  box-shadow:4px 4px 0 var(--blue);
  background:var(--white);
}
.form__field input[readonly]{
  background:var(--yellow);
  font-weight:800;
  cursor:default;
}
.form__submit{ --pad:16px 20px; }

/* sending spinner — «печать очереди», цвет под кнопку */
.form__spin-wrap{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:28px 0 16px;
}
.form__spin-wrap[hidden]{ display:none; }
.form__spin-wrap i{
  width:40px; height:40px;
  background:var(--coral);
  border:1px solid var(--ink);
  box-shadow:3px 3px 0 var(--ink);
  animation:spinner-dot 1s ease-in-out infinite;
}
.form__spin-wrap i:nth-child(2){ animation-delay:.18s; }
.form__spin-wrap i:nth-child(3){ animation-delay:.36s; }
.form__spin-wrap--blue i{ background:var(--blue-soft); }
@keyframes spinner-dot{
  0%,100%{ transform:translateY(0) scale(1); box-shadow:3px 3px 0 var(--ink); }
  35%    { transform:translateY(-26px) scale(1.15); box-shadow:5px 12px 0 var(--ink); }
}

/* calendar */
.calendar{
  border:2px solid var(--ink);
  background:var(--beige);
  padding:10px;
}
.calendar__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.calendar__month{
  font-family:var(--font-display);
  font-weight:700;
  font-size:.75rem;
  text-transform:capitalize;
}
.calendar__nav{
  width:30px; height:30px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  cursor:pointer;
  font-size:.9rem;
}
.calendar__nav:hover,
.calendar__nav:active{
  background:var(--blue-soft);
  color:var(--white);
}
.calendar--stretch .calendar__nav:hover,
.calendar--stretch .calendar__nav:active{
  background:var(--coral);
}
.calendar__grid{
  display:grid;
  grid-template-columns:repeat(7, 1fr);
  gap:3px;
}
.calendar__weekday{
  text-align:center;
  font-family:var(--font-display);
  font-weight:700;
  font-size:.56rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:2px 0;
  color:var(--blue-deep);
}
.calendar__day{
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1.5px solid transparent;
  background:var(--white);
  font-weight:700;
  font-size:.82rem;
  cursor:pointer;
  transition:background .15s, transform .15s, border-color .15s;
}
.calendar__day:hover:not(.calendar__day--off):not(.calendar__day--selected){
  background:var(--sand);
  transform:translateY(-1px);
}
.calendar__day--off{
  background:transparent;
  color:rgba(20,23,31,.28);
  cursor:default;
  text-decoration:line-through;
}
.calendar__day--selected{
  background:var(--coral);
  color:var(--white);
  border-color:var(--ink);
  box-shadow:3px 3px 0 var(--ink);
  transform:translateY(-2px);
}
.calendar--stretch .calendar__day--selected{
  background:var(--blue-soft);
}
.calendar__hint{
  margin-top:8px;
  font-size:.72rem;
  color:var(--ink);
  font-weight:500;
}
.form__note{
  font-size:.72rem;
  color:rgba(20,23,31,.6);
  text-align:center;
}

/* success state */
.form__success{
  text-align:center;
  padding:18px 10px;
}
.form__success-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:48px; height:48px;
  border:2px solid var(--ink);
  background:var(--yellow);
  font-size:1.3rem;
  margin-bottom:12px;
}
.form__success h4{
  font-family:var(--font-display);
  font-size:1.05rem;
  margin:0;
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- responsive ---------- */
@media (max-width: 1024px){
  .hero__ghost{ opacity:.5; }
  .cards{ grid-template-columns:1fr; }
  .mind__grid{ grid-template-columns:1fr; }
  .mind__visual img{ height:420px; }
  .hero__grid{ grid-template-columns:1fr; }
  .hero__visual{ max-width:620px; }
}

@media (max-width: 860px){
  body{ font-size:16px; }
  .nav{ display:none; }
  .header__cta{ display:none; }
  .nav-toggle{ display:flex; margin-left:auto; }
  /* на мобильных кнопки короче: «Иду» вместо «Записаться на …» */
  .btn__t{ display:none; }
  .btn__m{ display:inline; }

  .nav.nav--open{
    display:flex;
    position:absolute;
    top:100%;
    left:0; right:0;
    flex-direction:column;
    background:var(--beige);
    border-bottom:2px solid var(--ink);
    padding:14px;
    gap:2px;
    box-shadow:0 20px 40px rgba(13,27,73,.18);
  }
  .nav.nav--open a{ padding:14px; border-top:1px dashed var(--sand); }

  .benefits__grid{ grid-template-columns:1fr; }
  .cta__choices{ grid-template-columns:1fr; }
  .hero__frame img{ height:420px; }
  .header__phone{ padding:8px 10px; font-size:.68rem; }
  .header__phone svg{ width:14px; height:14px; }
}

@media (max-width: 480px){
  .hero__actions .btn{ width:100%; }
  .logo__text{ font-size:.8rem; }
  .header__inner{ gap:14px; }
  .split__top h3{ white-space:normal; }
  .footer__inner{ justify-content:center; text-align:center; }
  .footer__nav{ margin-left:0; justify-content:center; width:100%; }
  .modal{ padding:10px; }
  .modal__dialog{
    max-height:calc(100vh - 20px);
    box-shadow:8px 8px 0 var(--ink);
    padding:20px 16px;
  }
  .calendar__weekday{ font-size:.55rem; letter-spacing:.02em; }
  .calendar__day{ font-size:.82rem; }

  .cta__choice .btn,
  .split .btn{
    width:100%;
    white-space:normal;
    --pad:16px 14px;
    font-size:.72rem;
  }

  .split{
    padding:20px 18px;
    gap:14px;
  }
  .split > img{ height:200px; }
  .split__top{ flex-wrap:wrap; }
  .split__top h3{ font-size:1.2rem; }
}