/* ==== АТЛАНТА · дизайн-система внутренних страниц ==== */
:root{
  --wine:#6B112B; --bordo:#7B132E; --rose:#AB5672; --pink:#DB8AA2;
  --pink-air:#E29DB1; --powder:#F0CDD6; --powder-2:#F2D5DD; --white:#FFF;
  --ink:#33141E; --mut:#8A6472; --blush:#FBF4F6;
  --line:rgba(107,17,43,.16); --strap:rgba(107,17,43,.32);
  --logo-full:url("../img/logo.svg"); --znak:url("../img/znak.png");
  --fd:'Golos Text','PT Sans',system-ui,Arial,sans-serif;
  --fb:'Golos Text','PT Sans',system-ui,Arial,sans-serif; --r:14px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--fb); font-size:16px; line-height:1.65; color:var(--ink);
  background:var(--white); -webkit-font-smoothing:antialiased; overflow-x:hidden}
::selection{background:var(--powder); color:var(--wine)}
img,video{max-width:100%; display:block}
a{color:var(--wine); text-decoration:none}
[id]{scroll-margin-top:96px}
.container{max-width:1180px; margin:0 auto; padding:0 28px}
h1,h2,h3{font-family:var(--fd); font-weight:400; color:var(--wine); line-height:1.12}
h1{font-size:clamp(40px,5.4vw,66px)}
h2{font-size:clamp(32px,4.2vw,48px)}
h3{font-size:clamp(22px,2.4vw,27px)}
em{font-style:italic; color:var(--rose)}
p{max-width:62ch}
.lead{font-size:18px; color:var(--mut)}

/* подвесы */
.eyebrow{display:flex; flex-direction:column; align-items:flex-start; gap:14px;
  font:600 11px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase;
  color:var(--rose); margin-bottom:22px}
.eyebrow::before{content:''; width:1px; height:36px;
  background:linear-gradient(to bottom, var(--strap), rgba(107,17,43,0))}
.eyebrow.center{align-items:center; margin-left:auto; margin-right:auto}
@keyframes sway{0%,100%{transform:rotate(-.5deg)}50%{transform:rotate(.5deg)}}
@keyframes swayFar{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg) translateY(2px)}}
@keyframes dropIn{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes settle{0%{opacity:0; transform:translateY(-14px) rotate(-1.2deg)}
  60%{opacity:1; transform:translateY(4px) rotate(.6deg)}100%{opacity:1; transform:none}}
@keyframes fadeUp{from{opacity:0; transform:translateY(24px)}to{opacity:1; transform:none}}
.suspend{position:relative}
.suspend .straps{position:absolute; top:-150px; left:50%; height:150px; width:120px;
  transform:translateX(-50%); pointer-events:none}
.suspend .straps i{position:absolute; top:0; bottom:0; left:50%; width:1px; background:var(--strap);
  transform-origin:top center; animation:dropIn 1s cubic-bezier(.6,0,.2,1) both}
.suspend .straps i:first-child{transform:rotate(6deg)}
.suspend .straps i:last-child{transform:rotate(-6deg)}
.hang{transform-origin:50% -150px; animation:settle 1.6s cubic-bezier(.34,1.3,.4,1) .15s both,
  swayFar 12s ease-in-out 1.9s infinite}
.hang::before{content:''; position:absolute; top:-5px; left:50%; width:9px; height:9px;
  transform:translateX(-50%); border-radius:50%; background:var(--wine); z-index:2}

/* шапка */
.hdr{position:fixed; inset:0 0 auto 0; z-index:60; padding:18px 0;
  transition:background .35s, box-shadow .35s, padding .35s}
.hdr.on{background:rgba(255,255,255,.94); backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line); padding:12px 0}
.hdr-in{display:flex; align-items:center; gap:30px}
.brand{display:flex; align-items:center; gap:12px; margin-right:auto}
.brand-mark{width:40px; height:40px; background:var(--znak) center/contain no-repeat}
.brand-name{font:500 19px/1 var(--fd); letter-spacing:.1em; color:var(--wine); text-transform:uppercase; padding-left:.34em}
.brand-sub{display:block; font:600 7.5px/1 var(--fb); letter-spacing:.1em; color:var(--rose); text-transform:uppercase; margin-top:5px}
.nav{display:flex; gap:22px}
.nav a{font:600 11.5px/1 var(--fb); letter-spacing:.13em; text-transform:uppercase; color:var(--ink); padding:6px 0; position:relative}
.nav a::after{content:''; position:absolute; left:0; right:100%; bottom:0; height:1px; background:var(--wine); transition:right .3s}
.nav a:hover{color:var(--wine)}
.nav a:hover::after,.nav a.act::after{right:0}
.nav a.act{color:var(--wine)}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font:600 12px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase;
  padding:17px 30px; border-radius:8px; border:1px solid var(--wine);
  cursor:pointer; transition:all .3s; white-space:nowrap}
.btn-primary{background:var(--wine); color:var(--powder-2)}
.btn-primary:hover{background:var(--bordo); transform:translateY(-2px); box-shadow:0 12px 28px -14px rgba(107,17,43,.55)}
.btn-ghost{background:transparent; color:var(--wine)}
.btn-ghost:hover{background:var(--wine); color:var(--powder-2)}
.btn-sm{padding:13px 22px}
.btn-light{background:var(--powder-2); border-color:var(--powder-2); color:var(--wine)}
.btn-light:hover{background:var(--white); border-color:var(--white); transform:translateY(-2px)}
.btn-ghost-light{background:transparent; border-color:rgba(240,205,214,.55); color:var(--powder-2)}
.btn-ghost-light:hover{background:rgba(240,205,214,.14)}
.burger{display:none; width:44px; height:44px; border:1px solid var(--line); border-radius:8px;
  background:transparent; cursor:pointer; position:relative; z-index:80}
.burger span{position:absolute; left:12px; right:12px; height:1.5px; background:var(--wine); transition:.3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:22px}.burger span:nth-child(3){top:28px}
.burger.x span:nth-child(1){top:22px; transform:rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){top:22px; transform:rotate(-45deg)}
.menu{position:fixed; inset:0; z-index:70; background:linear-gradient(160deg, var(--blush), var(--powder-2));
  display:flex; flex-direction:column; justify-content:center; padding:96px 36px 40px;
  transform:translateY(-102%); transition:transform .5s cubic-bezier(.7,0,.2,1); overflow-y:auto}
.menu.open{transform:none}
.menu a{font:400 26px/1.75 var(--fd); color:var(--wine); border-bottom:1px solid var(--line)}
.menu a:last-of-type{border-bottom:none}
.menu .btn{margin-top:22px; align-self:flex-start}

/* hero страницы */
.page-hero{position:relative; padding:170px 0 90px; overflow:hidden;
  background:
    radial-gradient(52vw 52vw at 88% 12%, rgba(242,213,221,.55), rgba(242,213,221,0) 70%),
    radial-gradient(36vw 36vw at 4% 92%, rgba(240,205,214,.4), rgba(240,205,214,0) 70%), var(--white)}
.page-hero .container{display:grid; grid-template-columns:1.08fr .92fr; gap:64px; align-items:center}
.crumbs{font:600 10.5px/1 var(--fb); letter-spacing:.14em; text-transform:uppercase;
  color:var(--mut); margin-bottom:26px; display:flex; gap:12px; align-items:center}
.crumbs a{color:var(--rose)}
.crumbs span::before{content:'·'; margin-right:12px; color:var(--line)}
.page-hero h1{margin-bottom:22px}
.page-hero .lead{margin-bottom:36px}
.hero-cta{display:flex; gap:16px; flex-wrap:wrap; align-items:center; margin-bottom:26px}
.hero-note{font-size:13.5px; color:var(--mut)}
.hero-note b{color:var(--wine); font-weight:600}
.hero-photo{width:min(420px,100%); aspect-ratio:3/4; margin:0 auto; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; box-shadow:0 40px 80px -50px rgba(107,17,43,.4); position:relative}
.hero-photo img{width:100%; height:100%; object-fit:cover}
.hero-photo figcaption{position:absolute; left:14px; bottom:14px; font:600 10px/1.6 var(--fb);
  letter-spacing:.14em; text-transform:uppercase; color:var(--wine);
  background:rgba(255,255,255,.82); backdrop-filter:blur(4px); padding:8px 13px; border-radius:8px}

/* секции */
.sec{padding:104px 0}
.sec-blush{background:linear-gradient(180deg, var(--white), var(--blush) 22%, var(--blush) 78%, var(--white))}
.sec-head{max-width:640px; margin-bottom:52px}
.sec-head.center{margin-left:auto; margin-right:auto; text-align:center}
.sec-head p{margin-top:16px}
.rv{opacity:0; transform:translateY(26px); transition:opacity .9s cubic-bezier(.2,.65,.2,1), transform .9s cubic-bezier(.2,.65,.2,1); transition-delay:var(--d,0s)}
.rv.in{opacity:1; transform:none}

/* факты */
.facts{display:grid; grid-template-columns:repeat(4,1fr); gap:0 34px; border-top:1px solid var(--line)}
.fact{padding:24px 0; border-bottom:1px solid var(--line)}
.fact b{display:block; font-family:var(--fd); font-weight:500; font-size:22px; color:var(--wine); margin-bottom:6px}
.fact span{font-size:13.5px; color:var(--mut); line-height:1.6; display:block}

/* блоки снарядов */
.app-row{display:grid; grid-template-columns:.92fr 1.08fr; gap:60px; align-items:center;
  padding:70px 0; border-top:1px solid var(--line)}
.app-row:first-of-type{border-top:none; padding-top:20px}
.app-media{position:relative; aspect-ratio:3/4; max-width:400px; width:100%; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; justify-self:center}
.app-media img{width:100%; height:100%; object-fit:cover}
.app-media.ghost{display:flex; align-items:flex-end;
  background:radial-gradient(90% 70% at 70% 16%, rgba(226,157,177,.5), rgba(226,157,177,0) 70%),
  linear-gradient(165deg, var(--blush), var(--powder-2))}
.app-media.ghost::before{content:''; position:absolute; right:-60px; bottom:-70px; width:300px; height:300px;
  background:var(--znak) center/contain no-repeat; opacity:.14}
.ph-tag{margin:16px; font:600 10px/1.7 var(--fb); letter-spacing:.14em; text-transform:uppercase;
  color:var(--rose); background:rgba(255,255,255,.78); backdrop-filter:blur(4px); padding:8px 13px; border-radius:8px}
.app-row.rev .app-media{order:2}
.app-copy .eyebrow{margin-bottom:16px}
.app-copy h3{font-size:clamp(26px,3vw,34px); margin-bottom:14px}
.app-copy p{color:var(--mut); font-size:15.5px}
.app-meta{display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 26px}
.app-meta span{font:600 10.5px/1 var(--fb); letter-spacing:.16em; text-transform:uppercase;
  color:var(--wine); border:1px solid var(--line); border-radius:8px; padding:9px 13px; background:var(--white)}

/* шаги занятия */
.steps{display:grid; grid-template-columns:repeat(4,1fr); gap:26px; padding-top:44px; align-items:start}
.step{position:relative; border:1px solid var(--line); border-radius:var(--r); background:var(--white);
  padding:34px 24px 28px; transform-origin:50% -60px}
.step::before{content:''; position:absolute; left:50%; width:1px; background:var(--strap);
  top:calc(-1 * var(--h,34px)); height:var(--h,34px)}
.step::after{content:''; position:absolute; top:-4px; left:50%; transform:translateX(-50%);
  width:7px; height:7px; border-radius:50%; background:var(--rose)}
.step:nth-child(2){--h:54px; margin-top:20px}
.step:nth-child(3){--h:38px; margin-top:4px}
.step:nth-child(4){--h:60px; margin-top:26px}
.step:hover{animation:sway 2.8s ease-in-out infinite; background:var(--blush)}
.step i{font:500 15px/1 var(--fd); font-style:normal; color:var(--rose); display:block; margin-bottom:14px}
.step b{display:block; font-family:var(--fd); font-weight:500; font-size:21px; color:var(--wine); margin-bottom:8px}
.step span{font-size:13.5px; color:var(--mut); line-height:1.65}

/* фото-дуо и видео */
.duo{display:grid; grid-template-columns:1.08fr .92fr; gap:22px}
.duo figure{position:relative; border:1px solid var(--line); border-radius:var(--r); overflow:hidden}
.duo figure:first-child{aspect-ratio:3/3.6}
.duo figure:last-child{aspect-ratio:3/3.6; margin-top:44px}
.duo img{width:100%; height:100%; object-fit:cover}
.duo figcaption{position:absolute; left:14px; bottom:14px; font:600 10px/1.6 var(--fb);
  letter-spacing:.14em; text-transform:uppercase; color:var(--wine);
  background:rgba(255,255,255,.82); backdrop-filter:blur(4px); padding:8px 13px; border-radius:8px}
.vid-card{position:relative; width:min(360px,100%); aspect-ratio:9/16; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; justify-self:center; box-shadow:0 40px 80px -50px rgba(107,17,43,.4)}
.vid-card video{width:100%; height:100%; object-fit:cover}
.vid-wrap{display:grid; grid-template-columns:1fr .9fr; gap:64px; align-items:center}

/* списки */
.tick{columns:2; column-gap:56px; list-style:none; margin-top:30px}
.tick li{break-inside:avoid; padding:14px 0 14px 26px; border-bottom:1px solid var(--line);
  font-size:15px; position:relative}
.app-copy .tick{columns:1}
.tick li::before{content:''; position:absolute; left:0; top:23px; width:14px; height:1px; background:var(--rose)}

/* цены превью */
.p-single{display:flex; gap:14px; flex-wrap:wrap; margin:34px 0 8px}
.p-chip{border:1px solid var(--line); border-radius:8px; padding:16px 22px; background:var(--white); min-width:150px}
.p-chip b{font-family:var(--fd); font-size:24px; font-weight:500; color:var(--wine); display:block; margin-top:6px}
.p-chip span{font:600 10.5px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--mut)}
.p-note{margin-top:16px; font-size:13px; color:var(--mut)}

/* FAQ */
.faq{max-width:760px; margin:0 auto; border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:20px;
  align-items:baseline; padding:26px 4px; font-family:var(--fd); font-weight:500; font-size:22px; color:var(--wine)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+'; font-family:var(--fb); font-weight:400; font-size:22px; color:var(--rose); transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 4px 26px; color:var(--mut); font-size:15px}

/* CTA-полоса */
.strip{background:
  radial-gradient(58% 90% at 88% 8%, rgba(123,19,46,.9), rgba(123,19,46,0) 70%), var(--wine);
  padding:92px 0; text-align:center}
.strip h2{color:var(--powder-2); margin-bottom:14px}
.strip p{color:rgba(242,213,221,.78); margin:0 auto 34px; max-width:52ch}
.strip .row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}

/* футер */
.foot{background:linear-gradient(180deg, var(--white), var(--blush)); border-top:1px solid var(--line);
  padding:80px 0 36px; text-align:center}
.foot-logo{width:170px; height:170px; margin:0 auto 24px; background:var(--logo-full) center/contain no-repeat}
.foot-nav{display:flex; gap:12px 26px; justify-content:center; flex-wrap:wrap; margin-bottom:26px}
.foot-nav a{font:600 11px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--ink); transition:color .3s}
.foot-nav a:hover{color:var(--wine)}
.foot-c{font-size:14px; color:var(--mut); margin-bottom:36px}
.foot-c a{color:var(--wine)}
.legal{border-top:1px solid var(--line); padding-top:26px; display:flex; gap:10px 28px;
  justify-content:center; flex-wrap:wrap; font-size:12.5px; color:var(--mut)}
.legal a{color:var(--mut); border-bottom:1px dotted var(--strap)}
.legal a:hover{color:var(--wine)}

/* адаптив */
@media(max-width:1060px){
  .nav,.hdr-cta{display:none}
  .burger{display:block}
  .page-hero{padding:130px 0 70px}
  .page-hero .container{grid-template-columns:1fr; gap:56px}
  .facts{grid-template-columns:1fr 1fr}
  .app-row{grid-template-columns:1fr; gap:38px; padding:56px 0}
  .app-row.rev .app-media{order:0}
  .steps{grid-template-columns:1fr 1fr}
  .vid-wrap{grid-template-columns:1fr; gap:48px}
  .duo{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .container{padding:0 20px}
  .sec{padding:74px 0}
  .facts{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr; gap:30px}
  .step:nth-child(n){margin-top:2px; --h:28px}
  .duo{grid-template-columns:1fr}
  .duo figure:last-child{margin-top:0}
  .tick{columns:1}
  .brand-sub{display:none}
  .brand-name{font-size:16px}
  .foot-logo{width:135px; height:135px}
  .hero-photo{width:100%}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important; transition:none !important}
  .rv{opacity:1; transform:none}
  html{scroll-behavior:auto}
}

/* ==== контейнер под виджет Fitbase ==== */
.widget-section{padding:92px 0}
.widget-wrap{max-width:1280px; margin:0 auto; padding:0 20px}
.widget-shell{position:relative; width:100%; min-height:540px; border:1px solid var(--line);
  border-radius:var(--r); background:linear-gradient(180deg, var(--white), var(--blush));
  display:flex; align-items:center; justify-content:center; overflow:hidden}
.widget-shell::before,.widget-shell::after{content:''; position:absolute; width:220px; height:220px;
  border:1px solid rgba(171,86,114,.22); border-radius:50%; pointer-events:none}
.widget-shell::before{left:-70px; top:-70px}
.widget-shell::after{right:-70px; bottom:-70px}
.widget-ph{text-align:center; max-width:540px; padding:64px 30px; position:relative; z-index:1}
.widget-ph .ico{width:64px; height:64px; margin:0 auto 26px; border:1px solid var(--strap);
  border-radius:50%; position:relative}
.widget-ph .ico::before,.widget-ph .ico::after{content:''; position:absolute; left:50%; top:-34px;
  height:35px; width:1px; background:var(--strap); transform-origin:bottom center}
.widget-ph .ico::before{transform:rotate(9deg)}
.widget-ph .ico::after{transform:rotate(-9deg)}
.widget-ph h3{margin-bottom:12px}
.widget-ph p{color:var(--mut); font-size:15px; margin:0 auto 30px; max-width:44ch}
.widget-ph .row{display:flex; gap:14px; justify-content:center; flex-wrap:wrap}
.note-inline{max-width:1240px; margin:24px auto 0; padding:0 20px; font-size:13px; color:var(--mut); text-align:center}

/* ==== живой виджет Fitbase ==== */
.widget-live{border:1px solid var(--line); border-radius:var(--r); background:var(--white); padding:14px; min-height:560px}
.widget-live #fitbaseWidgetContainer{min-height:520px}
.widget-noscript{padding:60px 20px; text-align:center; color:var(--mut)}
.note-inline a{border-bottom:1px solid var(--line)}

/* ==== абонементы: карточки планов ==== */
.plans{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; align-items:stretch; padding-top:38px}
.plan{position:relative; border:1px solid var(--line); border-radius:var(--r); background:var(--white);
  padding:36px 26px 30px; display:flex; flex-direction:column; transform-origin:50% -56px; transition:border-color .3s, box-shadow .3s, background .3s}
.plan::before{content:''; position:absolute; left:50%; width:1px; background:var(--strap); top:calc(-1 * var(--h,32px)); height:var(--h,32px)}
.plan::after{content:''; position:absolute; top:-4px; left:50%; transform:translateX(-50%); width:7px; height:7px; border-radius:50%; background:var(--rose)}
.plan:nth-child(2){--h:50px; margin-top:20px}
.plan:nth-child(3){--h:36px; margin-top:6px}
.plan:nth-child(4){--h:58px; margin-top:26px}
.plan:hover{border-color:var(--pink); background:var(--blush); box-shadow:0 24px 48px -30px rgba(107,17,43,.35); animation:sway 2.8s ease-in-out infinite}
.plan .cnt{font-family:var(--fd); font-size:48px; font-weight:400; color:var(--wine); line-height:1}
.plan .cnt small{font-size:18px; color:var(--rose)}
.plan .lbl{font:600 10.5px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--mut); margin:8px 0 22px}
.plan .sum{font-family:var(--fd); font-size:30px; font-weight:500; color:var(--ink); margin-top:auto}
.plan .per{font-size:13px; color:var(--mut); margin-top:6px}
.plan .btn{margin-top:22px}
.plan.feat{border-color:var(--pink)}
.plan-tag{position:absolute; top:16px; right:16px; font:600 9px/1 var(--fb); letter-spacing:.14em; text-transform:uppercase;
  color:var(--wine); background:var(--powder); border-radius:8px; padding:7px 10px}

.plan-extra{display:grid; grid-template-columns:1fr 1.05fr; gap:24px; margin-top:24px; align-items:stretch}
.plan-single{border:1px solid var(--line); border-radius:var(--r); background:var(--white); padding:34px 30px; display:flex; flex-direction:column; gap:18px; justify-content:center}
.plan-single .pair{display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding-bottom:16px; border-bottom:1px solid var(--line)}
.plan-single .pair:last-child{border-bottom:none; padding-bottom:0}
.plan-single .pair b{font-family:var(--fd); font-weight:500; font-size:22px; color:var(--wine)}
.plan-single .pair .v{font:600 17px/1 var(--fb); color:var(--ink)}
.plan-single .pair small{display:block; font-size:12.5px; color:var(--mut); font-weight:400; letter-spacing:0; margin-top:4px}

.plan-unlim{position:relative; border-radius:var(--r); overflow:hidden; padding:44px 40px;
  background:linear-gradient(160deg, var(--wine), var(--bordo)); color:var(--powder-2); display:flex; flex-direction:column}
.plan-unlim .wm{position:absolute; right:-70px; bottom:-70px; width:290px; height:290px; background:var(--znak) center/contain no-repeat; opacity:.12; filter:brightness(0) invert(1); pointer-events:none}
.plan-unlim .eyebrow{color:var(--pink-air); margin-bottom:14px}
.plan-unlim .eyebrow::before{background:linear-gradient(to bottom, rgba(240,205,214,.6), rgba(240,205,214,0))}
.plan-unlim h3{color:var(--powder-2); font-size:26px}
.plan-unlim .big{font-family:var(--fd); font-size:56px; font-weight:400; line-height:1.02; margin:12px 0 8px}
.plan-unlim p{color:rgba(242,213,221,.82); font-size:14.5px; position:relative; z-index:1}
.plan-unlim .btn{margin-top:auto; align-self:flex-start; position:relative; z-index:1}

@media(max-width:1060px){ .plans{grid-template-columns:1fr 1fr} .plan-extra{grid-template-columns:1fr} }
@media(max-width:620px){ .plans{grid-template-columns:1fr} .plan:nth-child(n){margin-top:2px; --h:28px} }

/* ==== контакты ==== */
.cont{display:grid; grid-template-columns:1fr 1.05fr; gap:56px; align-items:start}
.c-list{border-top:1px solid var(--line)}
.c-row{display:grid; grid-template-columns:150px 1fr; gap:18px; padding:18px 4px; border-bottom:1px solid var(--line); font-size:15.5px; margin:0}
.c-row dt{font:600 10.5px/2.4 var(--fb); letter-spacing:.12em; text-transform:uppercase; color:var(--rose)}
.c-row dd{margin:0; color:var(--ink)}
.c-row dd a{border-bottom:1px solid var(--line); transition:border-color .3s}
.c-row dd a:hover{border-color:var(--wine)}
.c-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:26px}
.map-embed{position:relative; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  aspect-ratio:4/3.4; background:linear-gradient(160deg, var(--blush), var(--powder-2))}
.map-embed iframe{position:absolute; inset:0; width:100%; height:100%; border:0; filter:grayscale(.15) contrast(1.02)}
.reqs{border-top:1px solid var(--line); max-width:760px}
.reqs .c-row dd{color:var(--mut)}
@media(max-width:1060px){ .cont{grid-template-columns:1fr; gap:40px} .map-embed{aspect-ratio:4/3} }
@media(max-width:620px){ .c-row{grid-template-columns:1fr; gap:2px; padding:14px 4px} }

/* ==== мобильное приложение ==== */
.device{width:288px; aspect-ratio:9/18.6; border:11px solid #2a1018; border-radius:42px; background:#2a1018;
  box-shadow:0 50px 90px -50px rgba(107,17,43,.55); position:relative; overflow:hidden}
.device::before{content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:120px; height:22px;
  background:#2a1018; border-radius:0 0 14px 14px; z-index:5}
.device .scr{position:absolute; inset:0; border-radius:31px; overflow:hidden; background:linear-gradient(180deg,var(--white),var(--blush)); display:flex; flex-direction:column}
.app-top{padding:30px 18px 14px; display:flex; align-items:center; gap:9px; border-bottom:1px solid var(--line)}
.app-top .mk{width:26px; height:26px; background:var(--znak) center/contain no-repeat}
.app-top b{font:500 15px/1 var(--fd); letter-spacing:.14em; text-transform:uppercase; color:var(--wine); padding-left:.24em}
.app-days{display:flex; gap:6px; padding:14px 16px 8px}
.app-days span{flex:1; text-align:center; font:600 10px/2.2 var(--fb); color:var(--mut); border-radius:6px}
.app-days span.on{background:var(--wine); color:var(--powder-2)}
.app-list{padding:6px 16px; display:flex; flex-direction:column; gap:9px; overflow:hidden}
.app-cl{border:1px solid var(--line); border-radius:9px; background:var(--white); padding:11px 12px; display:flex; gap:11px; align-items:center}
.app-cl .t{font:600 12px/1.2 var(--fb); color:var(--wine); white-space:nowrap}
.app-cl .m{flex:1; min-width:0}
.app-cl .m b{display:block; font:500 13px/1.2 var(--fd); color:var(--ink)}
.app-cl .m span{font:500 10px/1.4 var(--fb); color:var(--mut)}
.app-cl .s{width:8px; height:8px; border-radius:50%; background:var(--pink)}
.app-nav{margin-top:auto; display:flex; justify-content:space-around; padding:12px 0 16px; border-top:1px solid var(--line); background:var(--white)}
.app-nav i{width:20px; height:20px; border-radius:5px; background:var(--powder); display:block}
.app-nav i.on{background:var(--wine)}

.store-row{display:flex; gap:14px; flex-wrap:wrap; margin:6px 0 20px}
.store{display:inline-flex; align-items:center; gap:11px; background:#2a1018; color:var(--powder-2);
  border-radius:9px; padding:11px 18px; position:relative; transition:transform .3s, opacity .3s; min-width:180px}
.store:hover{transform:translateY(-2px)}
.store svg{width:24px; height:24px; flex-shrink:0; fill:var(--powder-2)}
.store .st{display:flex; flex-direction:column; line-height:1.15}
.store .st small{font:400 9px/1.3 var(--fb); letter-spacing:.05em; opacity:.8}
.store .st b{font:600 14px/1.2 var(--fb)}
.store.soon{opacity:.62; pointer-events:none}
.store .badge{position:absolute; top:-9px; right:-9px; font:600 8.5px/1 var(--fb); letter-spacing:.12em; text-transform:uppercase;
  color:var(--wine); background:var(--powder); border-radius:20px; padding:5px 9px; box-shadow:0 4px 10px -4px rgba(107,17,43,.5)}

.feat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:38px}
.feat{position:relative; border:1px solid var(--line); border-radius:var(--r); background:var(--white); padding:32px 26px; transform-origin:50% -56px; transition:border-color .3s, box-shadow .3s, background .3s}
.feat::before{content:''; position:absolute; left:34px; top:calc(-1 * var(--h,30px)); width:1px; height:var(--h,30px); background:var(--strap)}
.feat::after{content:''; position:absolute; top:-4px; left:34px; transform:translateX(-50%); width:7px; height:7px; border-radius:50%; background:var(--rose)}
.feat:nth-child(2){--h:48px} .feat:nth-child(3){--h:34px} .feat:nth-child(5){--h:44px} .feat:nth-child(6){--h:30px}
.feat:hover{border-color:var(--pink); background:var(--blush); box-shadow:0 22px 44px -30px rgba(107,17,43,.35)}
.feat .ico{width:42px; height:42px; margin-bottom:20px}
.feat .ico svg{width:100%; height:100%; stroke:var(--wine); fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round}
.feat h3{font-size:20px; margin-bottom:9px}
.feat p{font-size:14px; color:var(--mut); line-height:1.65}
@media(max-width:1060px){ .feat-grid{grid-template-columns:1fr 1fr} }
@media(max-width:620px){ .feat-grid{grid-template-columns:1fr} .feat:nth-child(n){--h:26px} .device{width:260px} }

/* ==== афиша событий ==== */
.filters{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:40px}
.filters button{font:600 11px/1 var(--fb); letter-spacing:.14em; text-transform:uppercase; color:var(--ink);
  border:1px solid var(--line); background:var(--white); border-radius:8px; padding:12px 20px; cursor:pointer; transition:all .25s}
.filters button:hover{border-color:var(--pink)}
.filters button.on{background:var(--wine); color:var(--powder-2); border-color:var(--wine)}

.events{display:grid; grid-template-columns:repeat(2,1fr); gap:24px}
.ev{position:relative; border:1px solid var(--line); border-radius:var(--r); background:var(--white); overflow:hidden;
  display:grid; grid-template-columns:104px 1fr; transition:border-color .3s, box-shadow .3s; transform-origin:50% -50px}
.ev:hover{border-color:var(--pink); box-shadow:0 24px 48px -32px rgba(107,17,43,.35)}
.ev-date{background:linear-gradient(165deg, var(--wine), var(--bordo)); color:var(--powder-2);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:22px 8px; text-align:center}
.ev-date .d{font-family:var(--fd); font-size:34px; font-weight:500; line-height:1}
.ev-date .mo{font:600 9.5px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; opacity:.85}
.ev-date.tba .d{font-size:20px; letter-spacing:.05em}
.ev-body{padding:24px 26px}
.ev-kind{font:600 9.5px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--rose); margin-bottom:10px; display:inline-block}
.ev-body h3{font-size:21px; margin-bottom:9px}
.ev-body p{font-size:13.5px; color:var(--mut); line-height:1.6; margin-bottom:16px}
.ev-meta{display:flex; gap:16px; flex-wrap:wrap; font-size:12.5px; color:var(--mut); margin-bottom:18px}
.ev-meta span{display:inline-flex; align-items:center; gap:6px}
.ev-meta b{color:var(--ink); font-weight:600}
.ev.soon{opacity:.9}
.ev-empty{grid-column:1/-1; border:1px dashed var(--line); border-radius:var(--r); padding:56px 30px; text-align:center; color:var(--mut)}
.ev-empty h3{margin-bottom:10px}
.ev-empty p{max-width:46ch; margin:0 auto 26px; font-size:15px}
@media(max-width:760px){ .events{grid-template-columns:1fr} }
@media(max-width:620px){ .ev{grid-template-columns:84px 1fr} .ev-date .d{font-size:28px} }

/* ==== тренеры ==== */
.coach{display:grid; grid-template-columns:.92fr 1.08fr; gap:60px; align-items:start}
.coach-photo{position:relative; aspect-ratio:4/5; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  display:flex; align-items:flex-end}
.coach-photo img{width:100%; height:100%; object-fit:cover}
.coach-photo.ghost{background:
  radial-gradient(90% 70% at 68% 16%, rgba(226,157,177,.5), rgba(226,157,177,0) 70%),
  linear-gradient(165deg, var(--blush), var(--powder-2))}
.coach-photo.ghost::before{content:''; position:absolute; right:-56px; bottom:-70px; width:300px; height:300px;
  background:var(--znak) center/contain no-repeat; opacity:.14}
.coach-role{font:600 11px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--rose); margin-bottom:16px; display:block}
.coach-info h2{margin-bottom:20px}
.coach-info .lead{margin-bottom:24px}
.coach-info p{color:var(--mut); font-size:15px; margin-bottom:16px}
.coach-info p.ink{color:var(--ink)}
.coach-tags{display:flex; flex-wrap:wrap; gap:10px; margin:24px 0}
.coach-tags span{font:600 10.5px/1 var(--fb); letter-spacing:.16em; text-transform:uppercase; color:var(--wine);
  border:1px solid var(--line); border-radius:8px; padding:10px 14px; background:var(--white)}

.certs{margin-top:30px}
.certs .lbl{font:600 10.5px/1 var(--fb); letter-spacing:.1em; text-transform:uppercase; color:var(--rose); margin-bottom:16px}
.cert-row{display:flex; gap:16px; flex-wrap:wrap}
.cert-tile{position:relative; width:150px; aspect-ratio:3/4; border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
  display:flex; align-items:flex-end; background:linear-gradient(160deg, var(--white), var(--powder-2))}
.cert-tile img{width:100%; height:100%; object-fit:cover}
.cert-tile .ph-tag{margin:12px; font-size:9px}
.cert-tile::after{content:''; position:absolute; top:-40px; right:-40px; width:120px; height:120px; border:1px solid rgba(171,86,114,.3); border-radius:50%}

.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-top:38px}
.tcard{position:relative; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; background:var(--white);
  transform-origin:50% -50px; transition:border-color .3s, box-shadow .3s}
.tcard::before{content:''; position:absolute; left:50%; top:calc(-1 * var(--h,30px)); width:1px; height:var(--h,30px); background:var(--strap); z-index:2}
.tcard::after{content:''; position:absolute; top:-4px; left:50%; transform:translateX(-50%); width:7px; height:7px; border-radius:50%; background:var(--rose); z-index:2}
.tcard:nth-child(2){--h:46px} .tcard:nth-child(3){--h:32px}
.tcard:hover{border-color:var(--pink); box-shadow:0 24px 48px -32px rgba(107,17,43,.35)}
.tcard-ph{position:relative; aspect-ratio:4/5; display:flex; align-items:flex-end;
  background:radial-gradient(90% 70% at 68% 16%, rgba(226,157,177,.4), rgba(226,157,177,0) 70%), linear-gradient(165deg, var(--blush), var(--powder-2))}
.tcard-ph::before{content:''; position:absolute; right:-40px; bottom:-50px; width:200px; height:200px; background:var(--znak) center/contain no-repeat; opacity:.12}
.tcard-ph .ph-tag{margin:14px}
.tcard-body{padding:22px 22px 26px}
.tcard-body b{display:block; font-family:var(--fd); font-weight:500; font-size:21px; color:var(--wine); margin-bottom:5px}
.tcard-body span{font:500 12px/1.5 var(--fb); color:var(--mut)}
@media(max-width:1060px){ .coach{grid-template-columns:1fr; gap:40px} .team-grid{grid-template-columns:1fr 1fr} }
@media(max-width:620px){ .team-grid{grid-template-columns:1fr} .tcard:nth-child(n){--h:26px} }

/* ==== ПРОХОД ПО РАЗНООБРАЗИЮ: варианты и живость ==== */

/* пилюли и мягкие формы */
.btn{border-radius:999px}
.tag,.plan-tag,.filters button,.ph-tag,.m-cap{border-radius:999px}
.hero-photo figcaption,.duo figcaption{border-radius:999px}

/* компактный герой: только текст, без подвешенной колонки */
.page-hero.compact{padding:158px 0 36px}
.page-hero.compact .container{grid-template-columns:1fr; max-width:840px; gap:0}
.page-hero.compact .lead{margin-bottom:30px}

/* зеркальный герой: фото слева */
.page-hero.flip .container > div:first-child{order:2}
.page-hero.flip .container > .suspend{order:1}

/* полноэкранный фото-герой */
.page-hero.bleed{padding:190px 0 110px; background:
  linear-gradient(180deg, rgba(43,8,20,.42), rgba(43,8,20,.66)),
  var(--bg) center 38%/cover no-repeat}
.page-hero.bleed .container{grid-template-columns:1fr; max-width:860px}
.page-hero.bleed h1,.page-hero.bleed .lead{color:var(--powder-2)}
.page-hero.bleed .lead{color:rgba(242,213,221,.85)}
.page-hero.bleed .crumbs, .page-hero.bleed .crumbs a{color:rgba(242,213,221,.75)}
.page-hero.bleed .hero-note{color:rgba(242,213,221,.8)}
.page-hero.bleed .hero-note b{color:var(--white)}
.page-hero.bleed .btn-ghost{border-color:rgba(240,205,214,.6); color:var(--powder-2)}
.page-hero.bleed .btn-ghost:hover{background:rgba(240,205,214,.15)}

/* видео в герое */
.hero-photo video{width:100%; height:100%; object-fit:cover}

/* издательский нумерованный список (Взрослым) */
.numlist{list-style:none; counter-reset:n; border-top:1px solid var(--line); max-width:840px}
.numlist li{counter-increment:n; display:grid; grid-template-columns:96px 1fr; gap:26px;
  padding:30px 4px; border-bottom:1px solid var(--line); align-items:baseline}
.numlist li::before{content:counter(n, decimal-leading-zero); font-family:var(--fd);
  font-size:44px; color:var(--rose); line-height:1}
.numlist b{display:block; font-family:var(--fd); font-weight:400; font-size:23px; color:var(--wine); margin-bottom:6px}
.numlist span{color:var(--mut); font-size:14.5px; line-height:1.65}
@media(max-width:620px){ .numlist li{grid-template-columns:56px 1fr; gap:16px} .numlist li::before{font-size:30px} }

/* арочные формы (Детям) */
.arch{border-radius:200px 200px var(--r) var(--r) !important;
  -webkit-clip-path:inset(0 round 200px 200px var(--r) var(--r));
  clip-path:inset(0 round 200px 200px var(--r) var(--r))}
.facts.soft{border-top:none; gap:18px}
.facts.soft .fact{background:var(--white); border:1px solid var(--line); border-radius:26px 26px var(--r) var(--r);
  border-bottom:1px solid var(--line); padding:28px 24px; text-align:center}
.facts.soft .fact b{font-size:21px}
.facts.soft .fact span{max-width:none}

/* мягкая финальная полоса вместо тёмной */
.strip.soft{background:linear-gradient(180deg, var(--blush), var(--powder-2))}
.strip.soft h2{color:var(--wine)}
.strip.soft p{color:var(--mut)}
.strip.soft .btn-light{background:var(--wine); border-color:var(--wine); color:var(--powder-2)}
.strip.soft .btn-light:hover{background:var(--bordo); border-color:var(--bordo)}
.strip.soft .btn-ghost-light{border-color:var(--wine); color:var(--wine)}
.strip.soft .btn-ghost-light:hover{background:var(--wine); color:var(--powder-2)}

/* заголовки живее: чуть плотнее интерлиньяж, без сплошного якоря на верхний регистр */
h1{line-height:1.06}
h2{line-height:1.1}

/* картинки героев: отдельный слой + честная обрезка, чтобы скругления не «текли» при качании */
.hero-photo{transform:translateZ(0); isolation:isolate; -webkit-backface-visibility:hidden; backface-visibility:hidden}
.hero-photo img{border-radius:inherit}

/* ==== связка подвеса качается целиком ==== */
.swing{position:relative; transform-origin:50% -70px;
  animation:swayHang 7.5s ease-in-out infinite, fadeSwing 1s ease-out both}
@keyframes swayHang{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}
@keyframes fadeSwing{from{opacity:0}to{opacity:1}}
.swing::after{content:''; position:absolute; top:-5px; left:50%; width:9px; height:9px;
  transform:translateX(-50%); border-radius:50%; background:var(--wine); z-index:2}

/* ==== наклон карточек за курсором (вместо автокачания) ==== */
.dir-card,.plan,.step,.feat,.tcard,.ev,.p-star{
  transition:transform .55s cubic-bezier(.2,.85,.25,1.15), border-color .3s, box-shadow .3s, background .3s;
  will-change:transform}
.dir-card:hover,.plan:hover,.step:hover,.p-star:hover{animation:none}

/* ==== мягкий зум фото при наведении ==== */
.app-media img,.duo img,.hero-photo img,.coach-photo img,.m img{transition:transform .8s cubic-bezier(.2,.6,.2,1)}
.app-media:hover img,.duo figure:hover img,.hero-photo:hover img,.coach-photo:hover img{transform:scale(1.045)}

/* ==== кнопка-кольцо «наверх» ==== */
.totop{position:fixed; right:26px; bottom:26px; z-index:55; width:52px; height:76px;
  background:none; border:0; padding:0; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .35s}
.totop::before{content:''; position:absolute; top:0; left:50%; width:1px; height:26px; background:var(--strap)}
.totop i{position:absolute; left:2px; right:2px; bottom:0; height:48px; border:1.6px solid var(--wine);
  border-radius:50%; background:rgba(255,255,255,.86); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; transition:transform .3s, background .3s}
.totop i::after{content:''; width:9px; height:9px; border-left:1.6px solid var(--wine);
  border-top:1.6px solid var(--wine); transform:rotate(45deg) translate(1px,1px)}
.totop:hover i{transform:translateY(-3px); background:var(--white)}
.totop.on{opacity:1; pointer-events:auto}
@media(max-width:1060px){ .totop{display:none} }

/* ==== калькулятор абонемента ==== */
.calc{border:1px solid var(--line); border-radius:var(--r); background:var(--white); padding:34px 30px; margin:34px 0 26px}
.calc > label{font:600 11px/1 var(--fb); letter-spacing:.12em; text-transform:uppercase; color:var(--rose)}
.calc-row{display:flex; align-items:center; gap:20px; margin:18px 0 6px}
.calc-row output{font-family:var(--fd); font-size:32px; color:var(--wine); min-width:1.4ch; text-align:center}
.rng{flex:1; -webkit-appearance:none; appearance:none; height:2px; background:var(--line); border-radius:2px; outline:none}
.rng::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; width:22px; height:22px; border-radius:50%;
  background:var(--wine); border:4px solid var(--powder-2); box-shadow:0 4px 10px -3px rgba(107,17,43,.5); cursor:pointer}
.rng::-moz-range-thumb{width:22px; height:22px; border-radius:50%; background:var(--wine); border:4px solid var(--powder-2); cursor:pointer}
.calc-res{margin-top:18px; padding-top:18px; border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:10px 28px; align-items:baseline}
.calc-res span{font-size:13.5px; color:var(--mut)}
.calc-res b{font-family:var(--fd); font-weight:500; font-size:21px; color:var(--wine); margin:0 3px}
.calc-note{font-size:12.5px; color:var(--mut); margin-top:12px}

/* ==== фиксы подвесов и качелей ==== */
.hero-visual .swing{width:min(430px,86%)}
.hero-visual .logo-card{width:100%}
.suspend .straps, .hero-visual .straps{top:-70px !important; height:70px !important; width:90px !important}
.straps::before{content:''; position:absolute; top:-4px; left:50%; transform:translateX(-50%);
  width:7px; height:7px; border:1px solid var(--strap); border-radius:50%; background:var(--white); z-index:2}

/* карточки-подвесы: общий «потолок», ровная лесенка, качание от точки крепления */
.dir-card,.step,.plan,.feat,.tcard{
  --drop:26px; --lift:0px; margin-top:var(--lift) !important;
  transform-origin:50% calc(-1 * var(--drop));
  animation:sway 6.4s ease-in-out infinite}
.dir-card::before,.step::before,.plan::before,.feat::before,.tcard::before{
  content:''; position:absolute; left:50%; top:calc(-1 * var(--drop)); width:1px; height:var(--drop);
  background:var(--strap); transform:translateX(-50%)}
.dir-card::after,.step::after,.plan::after,.feat::after,.tcard::after{
  content:''; position:absolute; left:50%; top:calc(-1 * var(--drop) - 3px); width:7px; height:7px;
  border-radius:50%; background:var(--rose); transform:translateX(-50%)}
/* 3 колонки (направления, функции): общий потолок, разные стропы */
.dir-card:nth-child(3n+1),.feat:nth-child(3n+1){--drop:26px; --lift:0px}
.dir-card:nth-child(3n+2),.feat:nth-child(3n+2){--drop:60px; --lift:34px; animation-duration:7.1s; animation-delay:-2s}
.dir-card:nth-child(3n),.feat:nth-child(3n){--drop:44px; --lift:18px; animation-duration:6.7s; animation-delay:-4s}
/* 4 колонки (абонементы, шаги) */
.plan:nth-child(4n+1){--drop:26px; --lift:0px}
.plan:nth-child(4n+2){--drop:58px; --lift:32px; animation-delay:-1.6s; animation-duration:7.1s}
.plan:nth-child(4n+3){--drop:40px; --lift:14px; animation-delay:-3.2s; animation-duration:6.7s}
.plan:nth-child(4n){--drop:66px; --lift:40px; animation-delay:-4.8s; animation-duration:7.4s}
.step:nth-child(4n+1){--drop:26px; --lift:0px}
.step:nth-child(4n+2){--drop:58px; --lift:32px; animation-delay:-1.6s; animation-duration:7.1s}
.step:nth-child(4n+3){--drop:40px; --lift:14px; animation-delay:-3.2s; animation-duration:6.7s}
.step:nth-child(4n){--drop:66px; --lift:40px; animation-delay:-4.8s; animation-duration:7.4s}
/* тренеры (3 карточки) */
.tcard:nth-child(3n+1){--drop:26px; --lift:0px}
.tcard:nth-child(3n+2){--drop:56px; --lift:30px; animation-delay:-2s}
.tcard:nth-child(3n){--drop:40px; --lift:14px; animation-delay:-4s}
/* наведение: наклон к курсору замирает поверх качания */
.dir-card:hover,.plan:hover,.step:hover,.feat:hover,.tcard:hover{animation-play-state:paused}
/* сетки не растягивают карточки — лесенка работает; зазоры, чтобы стропы висели в воздухе */
.dir-grid{align-items:start !important; row-gap:66px !important; padding-top:44px}
.steps{align-items:start !important; row-gap:78px !important; padding-top:48px !important}
.plans{align-items:start !important; row-gap:78px !important; padding-top:48px}
.feat-grid{align-items:start !important; row-gap:66px !important; padding-top:8px}
.team-grid{align-items:start !important; row-gap:60px !important}

/* кольцо «наверх»: строп + кольцо — одно целое, улетают вместе */
.totop{transform-origin:50% -18px}
.totop.go{animation:totopFly .62s cubic-bezier(.45,0,.25,1) both}
@keyframes totopFly{0%{transform:translateY(0)}34%{transform:translateY(11px)}100%{transform:translateY(-30px)}}

/* ================= НАВИГАЦИЯ v2 ================= */

/* --- десктоп: пилюли + информативные выпадающие --- */
.hdr-in{gap:22px}
.nav{display:flex; gap:2px; align-items:center}
.nav-item{position:relative}
.nav > a, .nav-btn{
  display:inline-flex; align-items:center; gap:7px;
  font:500 14.5px/1 var(--fb); letter-spacing:0; text-transform:none;
  color:var(--ink); padding:11px 15px; border-radius:999px;
  background:transparent; border:0; cursor:pointer; white-space:nowrap;
  transition:background .25s, color .25s;
}
.nav > a::after{display:none}
.nav > a:hover, .nav-btn:hover{background:var(--blush); color:var(--wine)}
.nav > a.act{color:var(--wine); background:var(--powder-2)}
.nav-item.act > .nav-btn{color:var(--wine); background:var(--powder-2)}
.chev{width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translate(-1px,-1px); transition:transform .25s; opacity:.75}
.nav-item.open .chev{transform:rotate(-135deg) translate(-2px,-2px)}

.sub{position:absolute; top:calc(100% + 12px); left:50%; width:272px; z-index:70;
  transform:translateX(-50%) translateY(-6px);
  background:var(--white); border:1px solid var(--line); border-radius:20px; padding:10px;
  box-shadow:0 30px 60px -32px rgba(107,17,43,.5);
  display:flex; flex-direction:column; gap:2px;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .25s, transform .25s, visibility .25s}
.sub::before{content:''; position:absolute; top:-12px; left:0; right:0; height:12px}
.sub::after{content:''; position:absolute; top:0; left:24px; right:24px; height:2px; border-radius:2px;
  background:linear-gradient(90deg, var(--wine), var(--pink))}
.nav-item:hover .sub, .nav-item.open .sub, .nav-item:focus-within .sub{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0)}
.sub a{display:block; padding:11px 14px; border-radius:13px; transition:background .2s}
.sub a b{display:block; font:500 14.5px/1.3 var(--fb); color:var(--ink); transition:color .2s}
.sub a small{display:block; font:400 12px/1.4 var(--fb); color:var(--mut); margin-top:2px}
.sub a:hover{background:var(--blush)}
.sub a:hover b{color:var(--wine)}
.sub a.act{background:var(--powder-2)}
.sub a.act b{color:var(--wine)}

/* --- мобильное меню: приоритеты вместо простыни --- */
.menu{justify-content:flex-start; padding:88px 22px 32px; overflow-y:auto;
  background:linear-gradient(168deg, var(--white) 0%, var(--blush) 45%, var(--powder-2) 100%)}
.menu-inner{width:100%; max-width:520px; margin:0 auto; display:flex; flex-direction:column; gap:22px}
.menu-top{display:flex; align-items:center; gap:12px}
.menu-mark{width:46px; height:46px; background:var(--znak) center/contain no-repeat; flex:none}
.menu-top b{font:500 17px/1 var(--fd); letter-spacing:.16em; text-transform:uppercase; color:var(--wine); padding-left:.16em}
.menu-top span{display:block; font:500 10px/1 var(--fb); letter-spacing:.14em; text-transform:uppercase; color:var(--rose); margin-top:5px}
.menu-main{display:flex; flex-direction:column}
.menu-main a{display:flex; align-items:center; justify-content:space-between; gap:14px;
  font:400 27px/1.35 var(--fd); color:var(--wine); border-bottom:1px solid var(--line); padding:15px 2px}
.menu-main a::after{content:''; width:8px; height:8px; flex:none;
  border-right:1.5px solid var(--rose); border-bottom:1.5px solid var(--rose); transform:rotate(-45deg)}
.menu-main a.act{color:var(--rose)}
.menu-grid{display:grid; grid-template-columns:1fr 1fr; gap:9px}
.menu-grid a{display:block; border:1px solid var(--line); border-radius:14px; padding:14px 15px;
  background:rgba(255,255,255,.62); font:500 13.5px/1.3 var(--fb); color:var(--ink)}
.menu-grid a.act{color:var(--wine); background:var(--white); border-color:var(--pink)}
.menu-foot{border-top:1px solid var(--line); padding-top:20px; display:flex; flex-direction:column; gap:12px}
.menu-foot .row{display:flex; gap:10px}
.menu-foot .row .btn{flex:1; padding:15px 14px}
.menu-foot p{font-size:12.5px; color:var(--mut); line-height:1.6; margin:0}
.menu .btn{margin-top:0; align-self:auto}
.menu.open .menu-inner > *{animation:menuIn .5s cubic-bezier(.2,.7,.2,1) both}
.menu.open .menu-inner > *:nth-child(1){animation-delay:.05s}
.menu.open .menu-inner > *:nth-child(2){animation-delay:.11s}
.menu.open .menu-inner > *:nth-child(3){animation-delay:.17s}
.menu.open .menu-inner > *:nth-child(4){animation-delay:.23s}
@keyframes menuIn{from{opacity:0; transform:translateY(16px)}to{opacity:1; transform:none}}

/* --- липкая панель записи на мобильном --- */
.mbar{position:fixed; left:0; right:0; bottom:0; z-index:56; display:none; gap:10px; align-items:center;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.93); backdrop-filter:blur(12px); border-top:1px solid var(--line);
  transition:opacity .3s, transform .3s}
.mbar .btn{flex:1; padding:16px 18px}
.mbar-ic{width:54px; height:54px; flex:none; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:999px; background:var(--white)}
.mbar-ic svg{width:21px; height:21px; stroke:var(--wine); fill:none; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round}
.menu.open ~ .mbar{opacity:0; transform:translateY(100%); pointer-events:none}
@media(max-width:1060px){ .mbar{display:flex} body{padding-bottom:84px} }
@media(max-width:620px){
  .menu{padding:80px 18px 28px}
  .menu-main a{font-size:24px; padding:13px 2px}
  .menu-grid a{padding:13px 13px; font-size:13px}
  .mbar .btn{font-size:11.5px; padding:15px 12px}
}

/* ==== аренда: строки услуг ==== */
.rent{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start}
.rent-list{border-top:1px solid var(--line)}
.r-row{display:grid; grid-template-columns:1fr auto; gap:20px 28px; align-items:baseline;
  padding:22px 2px; border-bottom:1px solid var(--line)}
.r-l b{display:block; font-family:var(--fd); font-weight:400; font-size:21px; color:var(--wine); margin-bottom:5px}
.r-l small{display:block; font-size:13.5px; line-height:1.6; color:var(--mut); max-width:46ch}
.r-val{font:500 15px/1.3 var(--fb); color:var(--ink); white-space:nowrap; text-align:right}
@media(max-width:1060px){ .rent{grid-template-columns:1fr; gap:38px} }
@media(max-width:620px){ .r-row{grid-template-columns:1fr; gap:6px} .r-val{text-align:left} }

/* ==== галерея: скрытые фильтром элементы ==== */
.m[hidden]{display:none}

/* ================= АДАПТИВ: общий слой ================= */
img,video,iframe{max-width:100%}
img{height:auto}
.facts-3{grid-template-columns:repeat(3,1fr)}
.map-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:16px}
.map-actions .btn{flex:1 1 auto}

/* виджеты Fitbase: не ломают вёрстку на узких экранах */
.widget-live{max-width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch}
.widget-wrap{max-width:100%}

/* планшеты */
@media(min-width:621px) and (max-width:1060px){
  .facts-3{grid-template-columns:1fr 1fr}
  .plan-extra{gap:20px}
  .app-row{gap:34px}
  .vid-wrap{gap:40px}
}
/* лесенка подвесов ровняется на узких экранах */
@media(max-width:1060px){
  .dir-card,.step,.plan,.feat,.tcard{--drop:26px !important; --lift:0px !important}
  .dir-grid,.steps,.plans,.feat-grid,.team-grid{row-gap:52px !important; padding-top:36px}
  .sec{padding:86px 0}
  .plan-unlim{padding:38px 30px}
  .calc{padding:28px 22px}
  .widget-section{padding:74px 0}
  .widget-live{min-height:460px}
}
/* фильтры разделов: прокрутка вместо трёх строк */
@media(max-width:820px){
  .filters{flex-wrap:nowrap; overflow-x:auto; -webkit-overflow-scrolling:touch;
    margin-left:-20px; margin-right:-20px; padding:2px 20px 8px; scrollbar-width:none}
  .filters::-webkit-scrollbar{display:none}
  .filters button{flex:0 0 auto}
  .facts-3{grid-template-columns:1fr}
}
/* телефоны */
@media(max-width:620px){
  .sec{padding:70px 0}
  .page-hero{padding:118px 0 56px}
  .page-hero.compact{padding:126px 0 26px}
  .page-hero.bleed{padding:132px 0 76px}
  .sec-head{margin-bottom:38px}
  .faq summary{font-size:19px; padding:22px 2px}
  .faq details p{font-size:14.5px; padding-bottom:22px}
  .plan-unlim{padding:32px 24px}
  .plan-unlim .big{font-size:44px}
  .plan-single{padding:26px 22px}
  .calc-res{gap:8px 18px}
  .calc-row output{font-size:26px}
  .device{width:100%; max-width:280px}
  .coach-photo,.cert-tile{width:100%}
  .cert-tile{max-width:180px; aspect-ratio:3/4}
  .app-meta span{padding:8px 11px; font-size:10px}
  .widget-live{padding:8px; min-height:420px}
  .ev-body{padding:20px 18px}
  .ev-date{padding:16px 6px}
  .ev-date .d{font-size:26px}
  .foot{padding:62px 0 30px}
}
/* маленькие телефоны */
@media(max-width:430px){
  .container{padding:0 16px}
  h1{font-size:clamp(32px,9vw,42px)}
  h2{font-size:clamp(27px,7.4vw,34px)}
  .lead{font-size:16.5px}
  .hero-cta{gap:10px}
  .hero-cta .btn,.strip .row .btn,.c-actions .btn{width:100%}
  .btn{padding:16px 22px}
  .store{min-width:0; width:100%}
  .store-row{gap:10px}
  .p-chip{min-width:0; flex:1 1 100%}
  .numlist li{grid-template-columns:44px 1fr; gap:12px; padding:24px 2px}
  .numlist li::before{font-size:26px}
  .app-media,.hero-photo{max-width:100%}
  .mbar{padding:8px 12px calc(8px + env(safe-area-inset-bottom, 0px))}
  .mbar .btn{font-size:11px; padding:14px 10px}
  .mbar-ic{width:48px; height:48px}
  body{padding-bottom:76px}
}
/* высокие узкие экраны в альбомной ориентации */
@media(max-height:520px) and (orientation:landscape){
  .menu{padding-top:70px}
  .menu-main a{font-size:20px; padding:9px 2px}
}

/* ФИКС: стили nav v2 идут после медиазапросов и перебивали скрытие меню */
@media(max-width:1060px){
  .nav,.hdr-cta{display:none !important}
  .burger{display:block !important}
  .hdr-in{gap:16px}
}
@media(min-width:1061px){
  .burger,.mbar{display:none !important}
  body{padding-bottom:0}
}

/* ФИКС: при открытом меню бургер-крестик должен быть НАД оверлеем */
body.menu-open .hdr{z-index:80; background:transparent !important; box-shadow:none !important; backdrop-filter:none}
body.menu-open .hdr .brand{opacity:0; pointer-events:none}
body.menu-open .burger{background:rgba(255,255,255,.6)}

/* элементы сеток не должны распирать колонку своим минимальным размером */
.app-row > *,.duo > *,.cont > *,.rent > *,.coach > *,.vid-wrap > *{min-width:0}
.app-media,.hero-photo,.coach-photo{min-width:0}

@media(max-width:430px){
  .filters{margin-left:-16px; margin-right:-16px; padding-left:16px; padding-right:16px}
  .menu-foot .row{flex-direction:column}
  .menu-foot .row .btn{width:100%; min-width:0}
  .menu-foot p{font-size:13px}
  .p-name{min-width:0}
  .cert-row{gap:12px}
}

@media(max-width:430px){
  .btn{white-space:normal; text-align:center; line-height:1.35}
  .nav-btn,.mbar .btn{white-space:nowrap}
}

/* ФИКС: кнопки внутри мобильного меню перебивались правилом .menu a */
.menu a.btn{font:600 12px/1.25 var(--fb); letter-spacing:.1em; text-transform:uppercase;
  border-bottom:none; border-radius:999px}
.menu a.btn.btn-primary{color:var(--powder-2); background:var(--wine); border-color:var(--wine)}
.menu a.btn.btn-ghost{color:var(--wine); background:transparent}
.menu a.menu-top{border-bottom:none}

/* ==== рамка виджета YCLIENTS ==== */
.widget-live{padding:0; overflow:hidden}
.widget-live iframe{display:block; width:100%; height:760px; border:0}
@media(max-width:1060px){ .widget-live iframe{height:700px} }
@media(max-width:620px){ .widget-live iframe{height:620px} }

/* ==== типографика: обычные шрифты, вес вместо антиквы ==== */
h1,h2,h3,.plan .cnt,.plan .sum,.plan-unlim .big,.numlist li::before,.numlist b,
.step b,.fact b,.p-name,.r-l b,.coach-info h1,.ev-body h3,.faq summary,.tcard-body b,
.app-cl .m b,.app-top b,.brand-name,.menu-top b,.menu-main a,.calc-row output,.calc-res b{
  font-family:var(--fb); font-weight:600; letter-spacing:-0.01em}
h1{font-weight:700; letter-spacing:-0.02em}
h2{font-weight:700; letter-spacing:-0.015em}
.plan-unlim .big,.calc-row output{font-weight:700}
.brand-name,.menu-top b{font-weight:600; letter-spacing:.16em}
.eyebrow{letter-spacing:.08em; font-weight:600}
body{font-size:16.5px; line-height:1.6}
.lead{line-height:1.6}

/* спокойнее кегль заголовков — жирный гротеск крупнее смотрится тяжело */
h1{font-size:clamp(34px,4.2vw,52px)}
h2{font-size:clamp(26px,3.2vw,38px)}
h3{font-size:clamp(20px,2.1vw,24px)}
.plan-unlim .big{font-size:clamp(34px,4vw,46px)}

/* ==== блок записи вместо встроенной формы ==== */
.book{border:1px solid var(--line); border-radius:var(--r); background:var(--white);
  padding:44px 40px; max-width:840px; margin:0 auto}
.book-in h3{margin-bottom:12px}
.book-in p{color:var(--mut); font-size:15.5px; max-width:62ch; margin-bottom:26px}
.book-actions{display:flex; gap:12px; flex-wrap:wrap}
@media(max-width:620px){ .book{padding:30px 22px} .book-actions .btn{width:100%} }

/* ==== рамка недельной сетки ==== */
.widget-live{padding:0; border-radius:var(--r); overflow:hidden}
.wide-frame{display:block; width:100%; height:1150px; border:0}
@media(max-width:1060px){ .wide-frame{height:980px} }
@media(max-width:620px){ .wide-frame{height:840px} }

/* ================= ВЫРАВНИВАНИЕ БЛОКОВ ================= */
/* лесенка убрана: одинаковые подвесы, одинаковые верх и низ карточек */
.dir-card,.step,.plan,.feat,.tcard{
  --drop:26px !important; --lift:0 !important; margin-top:0 !important;
  animation:none !important; transform-origin:50% -26px}
.dir-card::before,.step::before,.plan::before,.feat::before,.tcard::before{
  top:-26px !important; height:26px !important}
.dir-card::after,.step::after,.plan::after,.feat::after,.tcard::after{top:-29px !important}

/* равная высота и прижатые к низу кнопки */
.dir-grid,.plans,.feat-grid,.team-grid,.steps{align-items:stretch !important; padding-top:40px}
.dir-card,.plan,.feat,.step,.tcard{display:flex; flex-direction:column; height:100%}
.dir-card .more,.plan .btn,.feat .btn{margin-top:auto}
.plan .sum{margin-top:auto}
.plan .per{margin-bottom:4px}

/* пять направлений: последний ряд по центру, карточки одной ширины */
.dir-grid{display:flex !important; flex-wrap:wrap; justify-content:center; gap:26px}
.dir-card{flex:1 1 300px; max-width:352px}
@media(max-width:860px){ .dir-card{flex:1 1 260px; max-width:100%} }

/* убираем декоративную «палку» над надписями — читалась как случайная черта */
.eyebrow::before{display:none}
.eyebrow{gap:0}

/* крупные цифры: без разреженности */
.plan-unlim .big,.p-star .big,.plan .cnt,.plan .sum,.p-name,.p-sum{letter-spacing:-0.015em}
.plan .lbl{margin:6px 0 20px}

/* ровные вертикальные отступы */
.sec-head{margin-bottom:44px}
.sec-head p{margin-top:14px}
.app-row{padding:64px 0}
.facts .fact{padding:24px 26px 24px 0}

.dir-grid .dir-card{height:auto; align-self:stretch}

@media(max-width:430px){
  .rent-list,.r-row,.r-l,.r-val{min-width:0}
  .r-row{grid-template-columns:1fr}
  .r-val{text-align:left; white-space:normal}
}

/* декоративный знак всегда обрезается карточкой */
.p-star,.plan-unlim,.tcard-ph,.app-media.ghost{overflow:hidden}
/* прокручиваемые фильтры без выхода за контейнер */
@media(max-width:820px){ .filters{margin-left:0; margin-right:0; padding-left:0; padding-right:0} }

/* ==== заголовки: живой шрифт вместо сухого гротеска ==== */
h1,h2,h3,
.plan .cnt,.plan .sum,.plan-unlim .big,.p-star .big,.p-name,.p-chip b,
.numlist li::before,.numlist b,.step b,.fact b,.r-l b,.ev-body h3,
.faq summary,.tcard-body b,.coach-info h1,.calc-row output,.calc-res b,.book-in h3{
  font-family:var(--fd) !important; font-weight:600; letter-spacing:0}
h1{font-weight:600; font-size:clamp(35px,4.4vw,54px); line-height:1.12}
h2{font-weight:600; font-size:clamp(27px,3.4vw,40px); line-height:1.16}
h3{font-weight:600; font-size:clamp(21px,2.2vw,26px); line-height:1.25}
.plan-unlim .big,.p-star .big{font-weight:600; letter-spacing:0}
.faq summary{font-size:20px}
/* подписи, кнопки и меню остаются обычным гротеском */
.eyebrow,.btn,.nav>a,.nav-btn,.sub a b,.menu-grid a,.brand-name,.menu-top b,
.plan .lbl,.m-cap,.ph-tag,.app-meta span,.chips li,.filters button,.crumbs,
.p-per,.p-sum,.r-val,.foot-nav a,.legal,.hero-kicker,.hero-note{font-family:var(--fb) !important}
.menu-main a{font-family:var(--fd) !important; font-weight:600}

/* ==== встроенные виджеты YCLIENTS ==== */
.widget-card{border:1px solid var(--line); border-radius:var(--r); background:var(--white);
  overflow:hidden; max-width:620px; margin:0 auto}
.widget-card iframe{display:block; width:100%; height:820px; border:0}
.store-card{max-width:1000px}
.store-card iframe{height:900px}
@media(max-width:1060px){ .widget-card iframe{height:780px} .store-card iframe{height:860px} }
@media(max-width:620px){ .widget-card iframe{height:700px} .store-card iframe{height:780px} }

/* ==== заголовки: Prata ==== */
:root{--fd:'Prata','PT Serif',Georgia,'Times New Roman',serif}
h1,h2,h3,
.plan .cnt,.plan .sum,.plan-unlim .big,.p-star .big,.p-name,.p-chip b,
.numlist li::before,.numlist b,.step b,.fact b,.r-l b,.ev-body h3,
.faq summary,.tcard-body b,.coach-info h1,.calc-row output,.calc-res b,.book-in h3{
  font-family:var(--fd) !important; font-weight:400; letter-spacing:0}
h1{font-weight:400; font-size:clamp(35px,4.4vw,54px); line-height:1.1}
h2{font-weight:400; font-size:clamp(27px,3.4vw,40px); line-height:1.16}
h3{font-weight:400; font-size:clamp(21px,2.2vw,26px); line-height:1.28}
.faq summary{font-size:20px}

/* логотип — антиквой, как на знаке */
.brand-name,.menu-top b{font-family:var(--fd) !important; font-weight:400 !important; letter-spacing:.2em}
.brand-sub,.menu-top span{font-family:var(--fb) !important}

/* ==== мобильное меню v3: компактный список ==== */
.menu{padding:76px 20px 26px}
.menu-inner{gap:18px; max-width:460px}
.menu-top{gap:11px; padding-bottom:4px}
.menu-mark{width:38px; height:38px}
.menu-top b{font-size:19px; letter-spacing:.18em}
.menu-top span{font-size:9.5px; letter-spacing:.12em; margin-top:4px}

.menu-list{display:flex; flex-direction:column; border-top:1px solid var(--line)}
.menu-list a{display:flex; align-items:center; justify-content:space-between; gap:12px;
  font:500 17px/1.3 var(--fb) !important; color:var(--ink);
  padding:15px 2px; border-bottom:1px solid var(--line); letter-spacing:0}
.menu-list a::after{content:''; width:7px; height:7px; flex:none; opacity:.55;
  border-right:1.5px solid var(--rose); border-bottom:1.5px solid var(--rose); transform:rotate(-45deg)}
.menu-list a.act{color:var(--wine); font-weight:600}
.menu-list a.act::after{opacity:1}

.menu-foot{border-top:none; padding-top:4px; gap:10px}
.menu-foot .row{gap:10px}
.menu-foot p{font-size:12.5px; line-height:1.55; color:var(--mut)}
.menu a.btn{padding:15px 18px}
@media(max-width:430px){
  .menu{padding:70px 16px 22px}
  .menu-list a{font-size:16px !important; padding:14px 2px}
  .menu-foot .row{flex-direction:row}
  .menu-foot .row .btn{width:auto}
}
@media(max-height:700px){
  .menu-list a{padding:11px 2px; font-size:15.5px !important}
  .menu-inner{gap:14px}
}

/* ==== рамки не перехватывают прокрутку страницы ==== */
.frame{position:relative}
.frame > iframe{pointer-events:none}
.frame.on > iframe{pointer-events:auto}
.frame-veil{position:absolute; inset:0; z-index:3; cursor:pointer;
  display:flex; align-items:flex-end; justify-content:center; padding-bottom:18px;
  background:linear-gradient(180deg, rgba(255,255,255,0) 62%, rgba(255,255,255,.72) 100%);
  transition:opacity .25s}
.frame.on .frame-veil{opacity:0; pointer-events:none}
.frame-veil span{font:600 11px/1 var(--fb); letter-spacing:.08em; text-transform:uppercase;
  color:var(--wine); background:var(--white); border:1px solid var(--line);
  border-radius:999px; padding:11px 18px; box-shadow:0 10px 24px -14px rgba(107,17,43,.5)}

/* магазин абонементов: на мобильном во всю ширину и выше */
@media(max-width:620px){
  .store-card{max-width:100%; border-radius:var(--r)}
  .store-card iframe{height:1000px}
  .widget-card iframe{height:760px}
  .widget-wrap{padding:0 16px}
}
@media(max-width:430px){
  .store-card iframe{height:1050px}
  .frame-veil span{font-size:10px; padding:10px 14px}
}

/* виджеты во всю высоту содержимого — страница листается как обычно */
.widget-card iframe{height:1000px}
.store-card iframe{height:1500px}
.wide-frame{height:1250px}
@media(max-width:1060px){ .widget-card iframe{height:960px} .store-card iframe{height:1500px} .wide-frame{height:1050px} }
@media(max-width:620px){ .widget-card iframe{height:900px} .store-card iframe{height:1600px} .wide-frame{height:900px} }

/* метка выгодного тарифа */
.p-star h3 .best,.plan-tag{font:600 9.5px/1 var(--fb) !important; letter-spacing:.1em; text-transform:uppercase}
.p-star h3 .best{display:inline-block; vertical-align:middle; margin-left:10px;
  color:var(--wine); background:var(--powder); border-radius:999px; padding:7px 11px}

/* высоты виджетов по фактическому содержимому, без пустоты снизу */
.widget-card iframe{height:780px}
.store-card iframe{height:620px}
.wide-frame{height:1150px}
@media(max-width:1060px){ .widget-card iframe{height:760px} .store-card iframe{height:640px} .wide-frame{height:1000px} }
@media(max-width:620px){ .widget-card iframe{height:720px} .store-card iframe{height:700px} .wide-frame{height:880px} }
@media(max-width:430px){ .store-card iframe{height:720px} }

/* ==== фото направления: горизонтальный скролл ==== */
.shots{display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:6px; min-width:0}
.shots::-webkit-scrollbar{display:none}
.shots img{flex:0 0 auto; width:min(300px,78%); aspect-ratio:3/4; object-fit:cover;
  border:1px solid var(--line); border-radius:var(--r); scroll-snap-align:start; display:block}
@media(max-width:1060px){ .shots img{width:min(260px,72%)} }
@media(max-width:620px){ .shots img{width:82%} .shots{gap:10px} }

/* ==== видео-фон в шапке ==== */
.page-hero.has-video{position:relative; overflow:hidden; background:var(--wine)}
.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0}
.page-hero.has-video::after{content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(180deg, rgba(43,8,20,.52), rgba(43,8,20,.74))}
.page-hero.has-video .container{position:relative; z-index:2}

/* шапка поверх тёмного героя — светлая, пока страница не прокручена */
body.hero-dark .hdr:not(.on) .brand-name,
body.hero-dark .hdr:not(.on) .nav > a,
body.hero-dark .hdr:not(.on) .nav-btn{color:var(--powder-2)}
body.hero-dark .hdr:not(.on) .brand-sub{color:rgba(242,213,221,.75)}
body.hero-dark .hdr:not(.on) .brand-mark{filter:brightness(0) invert(1); opacity:.9}
body.hero-dark .hdr:not(.on) .nav > a:hover,
body.hero-dark .hdr:not(.on) .nav-btn:hover{background:rgba(255,255,255,.16); color:var(--white)}
body.hero-dark .hdr:not(.on) .nav > a.act,
body.hero-dark .hdr:not(.on) .nav-item.act > .nav-btn{background:rgba(255,255,255,.2); color:var(--white)}
body.hero-dark .hdr:not(.on) .burger{border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.14)}
body.hero-dark .hdr:not(.on) .burger span{background:var(--white)}

/* ==== фото направления: стрелки и перетаскивание ==== */
.shots-wrap{position:relative; min-width:0}
.shots{cursor:grab}
.shots.drag{cursor:grabbing; scroll-snap-type:none; user-select:none}
.shots-nav{position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:42px; height:42px; border-radius:50%; border:1px solid var(--line);
  background:rgba(255,255,255,.94); color:var(--wine); font-size:21px; line-height:1;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:opacity .25s, background .25s; box-shadow:0 10px 22px -14px rgba(107,17,43,.55)}
.shots-nav:hover{background:var(--white)}
.shots-nav.prev{left:8px} .shots-nav.next{right:8px}
.shots-nav[disabled]{opacity:0; pointer-events:none}
@media(max-width:620px){ .shots-nav{display:none} }

/* расписание: рамка по ширине содержимого, без пустых полей */
.widget-wrap:has(.wide-frame){max-width:1120px; margin:0 auto; padding:0 28px}
.wide-frame{max-width:1060px; margin:0 auto; height:980px}
@media(max-width:1060px){ .wide-frame{height:940px} }
@media(max-width:620px){ .widget-wrap:has(.wide-frame){padding:0 16px} .wide-frame{height:880px} }

/* фото направления: одна карточка целиком, без «полутора» */
.shots img{width:100% !important; flex:0 0 100% !important; aspect-ratio:4/5}
@media(max-width:620px){ .shots img{aspect-ratio:3/4} }

/* вкладки афиши */
.ev-pane[hidden]{display:none}
.ev-empty{border:1px dashed var(--line); border-radius:var(--r); padding:52px 30px; text-align:center}
.ev-empty h3{margin-bottom:12px}
.ev-empty p{max-width:52ch; margin:0 auto 24px; color:var(--mut); font-size:15px}
.ev-pane .events{margin-bottom:8px}

/* ============ ФИНАЛЬНЫЕ ПРАВКИ ============ */

/* карта: обёртка .frame не должна ломать абсолютное позиционирование iframe */
.map-embed .frame{position:absolute; inset:0}
.map-embed .frame iframe{position:absolute; inset:0; width:100%; height:100%}

/* видео аренды: герой в кадре целиком */
.hero-bg{object-position:center 32%}
@media(max-width:620px){ .hero-bg{object-position:center 28%} }

/* расписание на телефоне: без внутренней прокрутки */
@media(max-width:620px){ .wide-frame{height:1500px} }
@media(max-width:430px){ .wide-frame{height:1600px} }

/* кнопка «наверх» — теперь и на телефоне, над нижней панелью */
@media(max-width:1060px){
  .totop{display:block; right:14px; bottom:96px; width:44px; height:60px}
  .totop::before{height:18px}
  .totop i{height:42px}
  .totop i::after{width:8px; height:8px}
}

/* нижняя панель: аккуратнее и компактнее */
.mbar{gap:12px; padding:9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.96); border-top:1px solid var(--line);
  box-shadow:0 -10px 30px -22px rgba(107,17,43,.5)}
.mbar .btn{flex:1; padding:15px 16px; font-size:11.5px; letter-spacing:.08em; border-radius:999px}
.mbar-ic{width:50px; height:50px; border-color:var(--line); background:var(--blush)}
.mbar-ic svg{width:19px; height:19px}
@media(max-width:430px){
  .mbar{gap:10px; padding:8px 12px calc(8px + env(safe-area-inset-bottom, 0px))}
  .mbar .btn{padding:14px 10px; font-size:11px}
  .mbar-ic{width:46px; height:46px}
}

/* фото направлений: видно, что их несколько */
@media(max-width:620px){ .shots-nav{display:flex} .shots-nav.prev{left:6px} .shots-nav.next{right:6px}
  .shots-nav{width:36px; height:36px; font-size:18px} }

/* ==== шапка главной с видео ==== */
.hero{position:relative; overflow:hidden}
.hero > .hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:50% 32%; z-index:0}
.hero::after{content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(105deg, rgba(43,8,20,.82) 0%, rgba(43,8,20,.62) 46%, rgba(43,8,20,.42) 100%)}
.hero > .container,.hero > .hero-in{position:relative; z-index:2}
body.hero-dark .hero h1,body.hero-dark .hero .hero-kicker{color:var(--powder-2)}
body.hero-dark .hero .lead{color:rgba(242,213,221,.88)}
body.hero-dark .hero .hero-note{color:rgba(242,213,221,.8)}
body.hero-dark .hero .hero-note b{color:var(--white)}
body.hero-dark .hero .btn-ghost{border-color:rgba(240,205,214,.65); color:var(--powder-2)}
body.hero-dark .hero .btn-ghost:hover{background:rgba(240,205,214,.16)}
body.hero-dark .hero .hero-kicker::before{background:rgba(240,205,214,.6)}
body.hero-dark .hero .ring{border-color:rgba(240,205,214,.28)}

/* кадрирование видео: герой не обрезается по пояс */
.page-hero.has-video .hero-bg{object-position:50% 28%}

/* больше воздуха перед «Подробнее» в карточках направлений */
.dir-card p{margin-bottom:26px}
.dir-card .more{margin-top:auto; padding-top:6px}

/* ==== мобильные доработки ==== */
/* кнопка «наверх» теперь и на телефоне */
@media(max-width:1060px){
  .totop{display:block; right:14px; bottom:104px; width:44px; height:60px}
  .totop::before{height:18px}
  .totop i{height:42px}
  .totop i::after{width:8px; height:8px}
}

/* нижняя панель: аккуратнее и компактнее */
.mbar{gap:8px; padding:9px 14px calc(9px + env(safe-area-inset-bottom, 0px));
  background:rgba(255,255,255,.96); border-top:1px solid var(--line);
  box-shadow:0 -10px 30px -22px rgba(107,17,43,.5)}
.mbar .btn{flex:1; padding:15px 12px; font-size:12px; letter-spacing:.06em; border-radius:999px}
.mbar-ic{width:50px; height:50px; border-color:var(--line); background:var(--blush)}
.mbar-ic svg{width:19px; height:19px}
@media(max-width:430px){
  .mbar{padding:8px 12px calc(8px + env(safe-area-inset-bottom, 0px)); gap:8px}
  .mbar .btn{font-size:11.5px; padding:14px 10px}
  .mbar-ic{width:46px; height:46px}
  .totop{bottom:96px}
}

/* карта: обёртка .frame должна растягиваться на всю плитку */
.map-embed .frame{position:absolute; inset:0}
.map-embed .frame > iframe{position:absolute; inset:0; width:100%; height:100%}

/* подсказка, что фото листаются */
.shots-hint{display:flex; align-items:center; gap:8px; margin-top:10px;
  font:500 12px/1 var(--fb); color:var(--mut)}
.shots-dots{display:flex; gap:6px}
.shots-dots i{width:7px; height:7px; border-radius:50%; background:var(--powder-2);
  border:1px solid var(--line); transition:background .25s, transform .25s}
.shots-dots i.on{background:var(--wine); border-color:var(--wine); transform:scale(1.15)}

/* расписание: блокируем перехват прокрутки только на телефоне */
.frame-mobile > iframe{pointer-events:auto}
.frame-mobile .frame-veil{display:none}
@media(max-width:1060px){
  .frame-mobile > iframe{pointer-events:none}
  .frame-mobile.on > iframe{pointer-events:auto}
  .frame-mobile .frame-veil{display:flex}
  .frame-mobile.on .frame-veil{opacity:0; pointer-events:none}
}

/* подсказка «листайте» — заметнее */
.shots-hint{margin-top:12px; font:600 11px/1 var(--fb) !important; letter-spacing:.08em;
  text-transform:uppercase; color:var(--rose)}
.shots-hint i,.shots-hint span:first-child i{width:8px; height:8px}
.shots-hint i.on{transform:scale(1.2)}

/* карточка с логотипом (шапка «Аренды») */
.logo-card{position:relative; width:min(430px,100%); aspect-ratio:1/1;
  border:1px solid var(--line); border-radius:var(--r);
  background:url("../img/logo.svg") center 54%/86% no-repeat,
    radial-gradient(120% 120% at 50% 0%, var(--white) 30%, var(--blush) 76%, var(--powder-2) 100%);
  box-shadow:0 40px 80px -50px rgba(107,17,43,.35)}
.page-hero .suspend.swing{display:flex; justify-content:center}
@media(max-width:1060px){ .logo-card{width:min(380px,86%)} }
@media(max-width:620px){ .logo-card{width:min(300px,82%)} }

/* ============ МОБИЛЬНЫЕ ПРАВКИ ============ */
@media(max-width:620px){
  /* фото в шапках — статичные, без подвеса и качания */
  .suspend .straps,.hero-visual .straps,.straps{display:none !important}
  .swing::after{display:none !important}
  .swing{animation:none !important; transform:none !important; padding-top:0 !important}
  .page-hero .suspend{margin-top:0}
}

/* липкой панели больше нет */
.mbar{display:none !important}
body{padding-bottom:0 !important}

/* кнопка «наверх» на телефоне — простой круг без стропы */
@media(max-width:1060px){
  .totop{width:46px; height:46px; right:16px; bottom:20px}
  .totop::before{display:none}
  .totop i{position:static; width:46px; height:46px; border-radius:50%;
    background:rgba(255,255,255,.95); box-shadow:0 10px 24px -14px rgba(107,17,43,.55)}
  .totop.go{animation:none}
  .totop.go i{animation:totopFly .6s cubic-bezier(.45,0,.25,1) both}
}

/* ===== Форма заявки на абонемент ===== */
.order-wrap{max-width:760px; margin:0 auto; padding:0 20px}
.order-form{background:var(--white); border:1px solid var(--line); border-radius:calc(var(--r) + 6px);
  padding:34px 32px; box-shadow:0 24px 60px -40px rgba(107,17,43,.4)}
.order-form .row{display:grid; gap:18px; grid-template-columns:1fr 1fr; margin-bottom:18px}
.order-form .row.one{grid-template-columns:1fr}
.order-form .row[hidden]{display:none}
.field{display:flex; flex-direction:column; gap:7px}
.field label{font-size:13px; color:var(--mut); letter-spacing:.02em}
.field label .req{color:var(--rose)}
.field input,.field select{font:inherit; font-size:15px; color:var(--ink); background:var(--blush);
  border:1px solid var(--line); border-radius:var(--r); padding:14px 16px; transition:border-color .2s, background .2s}
.field input:focus,.field select:focus{outline:none; border-color:var(--rose); background:var(--white)}
.field input::placeholder{color:#B99BA6}
.field.err input,.field.err select{border-color:#C8385A; background:#FFF6F8}
.field .hint{font-size:12px; color:#C8385A; min-height:0}
.field.err .hint{min-height:16px}

.seg{display:flex; gap:10px; flex-wrap:wrap}
.seg input{position:absolute; opacity:0; pointer-events:none}
.seg label{display:inline-flex; align-items:center; padding:12px 22px; border:1px solid var(--line);
  border-radius:999px; cursor:pointer; font-size:14px; color:var(--wine); background:var(--white); transition:.2s}
.seg input:checked + label{background:var(--wine); border-color:var(--wine); color:var(--powder-2)}
.seg input:focus-visible + label{outline:2px solid var(--rose); outline-offset:2px}

.order-form .agree{display:flex; gap:12px; align-items:flex-start; margin:6px 0 22px; font-size:13px; color:var(--mut)}
.order-form .agree input{margin-top:2px; width:18px; height:18px; accent-color:var(--wine); flex:none}
.order-form .agree a{color:var(--wine); border-bottom:1px solid var(--line)}
.order-form .send{width:100%}
.order-form .send[disabled]{opacity:.6; pointer-events:none}
.hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}

.order-note{margin-top:16px; font-size:13px; color:var(--mut); text-align:center;
  max-width:56ch; margin-left:auto; margin-right:auto; text-wrap:balance}
.order-note a{color:var(--wine); border-bottom:1px solid var(--line)}
/* номер телефона не должен разрываться между строками */
.order-wrap a[href^="tel:"]{white-space:nowrap}
.order-msg{margin-top:18px; padding:16px 18px; border-radius:var(--r); font-size:14px; display:none}
.order-msg.ok{display:block; background:#F0F8F2; border:1px solid #BFE0C8; color:#245C36}
.order-msg.no{display:block; background:#FFF6F8; border:1px solid #F0C4CF; color:#8C1F3C}

@media (max-width:720px){
  .order-form{padding:26px 20px}
  .order-form .row{grid-template-columns:1fr; gap:16px; margin-bottom:16px}
  .seg label{padding:11px 18px; font-size:13px}
}

.plans.plans-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.plans.plans-3{grid-template-columns:1fr}}
