/* 
  СИЛА ДУХА - v5 FINAL с нуля
  Только темная тема, фикс hero сдвига вправо, все баги закрыты
*/
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden}
body{font-family:'Manrope','Inter',system-ui,sans-serif;line-height:1.6;overflow-x:hidden;min-height:100vh;background:#0a0a0b;color:#f5f5f7}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{cursor:pointer;border:0;background:none;font:inherit}

/* THEME - только темная */
:root{
  --primary:#E53935;--primary-light:#FF5A57;--primary-dark:#B71C1C;
  --bg:#0a0a0b;--bg-soft:#141416;--bg-card:#1c1c1f;
  --text:#f5f5f7;--text-soft:#a1a1aa;
  --border:rgba(255,255,255,.08);
  --glass:rgba(255,255,255,.06);--glass-border:rgba(255,255,255,.12);
  --shadow:0 10px 40px rgba(0,0,0,.5);--shadow-red:0 8px 30px rgba(229,57,53,.35);
  --shadow-glass:0 8px 32px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.15);
}
body{background:var(--bg);color:var(--text)}

/* CURSOR GLOW */
#cursor-glow{
  position:fixed;top:0;left:0;width:700px;height:700px;
  background:radial-gradient(circle at center, rgba(229,57,53,.18) 0%, rgba(229,57,53,.06) 30%, transparent 70%);
  pointer-events:none;z-index:9999;transform:translate(-50%,-50%);
  mix-blend-mode:screen;transition:opacity .3s;opacity:0;
}
body:hover #cursor-glow{opacity:1}

/* HEADER - крупная шапка, размеры через переменные (редактор меняет на лету) */
.header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(12,12,14,.55);
  backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.06);
  color:#ffffff;transition:all .35s;
}
.header.scrolled{background:rgba(8,8,10,.97);box-shadow:0 4px 30px rgba(0,0,0,.5);border-bottom-color:rgba(255,255,255,.12)}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2.5vw;height:var(--header-h,120px);max-width:1560px;margin:0 auto;color:#fff;gap:1.5em;flex-wrap:nowrap;
}
.logo{display:flex;align-items:center;gap:1em;font-weight:900;font-size:var(--logo-text,22px);white-space:nowrap;flex-shrink:0;letter-spacing:-.02em;color:#fff}
.logo span{color:var(--primary-light)}
.logo-mark{width:var(--logo-size,64px);height:var(--logo-size,64px);background:var(--primary);border-radius:18px;display:grid;place-items:center;color:white;font-weight:900;box-shadow:var(--shadow-red);overflow:hidden;flex-shrink:0}
.logo-mark img{width:100%;height:100%;object-fit:cover}
.nav{display:flex;align-items:center;gap:1.9em;flex:0 1 auto;min-width:0}
.nav a{font-weight:600;font-size:var(--nav-size,15px);white-space:nowrap;letter-spacing:.02em;position:relative;padding:.3em 0;color:#fff;opacity:.9;transition:all .25s}
.nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--primary);transition:width .35s}
.nav a:hover,.nav a.active{opacity:1;color:var(--primary-light)}
.nav a:hover::after,.nav a.active::after{width:100%}
.header-actions{display:flex;align-items:center;gap:1.1em;color:#fff;flex-shrink:0}
.phone{font-weight:800;letter-spacing:.02em;display:flex;align-items:center;gap:.5em;color:#fff;font-size:var(--head-action,16px)}
.header-actions .btn{font-size:var(--head-action,16px);padding:.95em 1.8em}
.mobile-toggle{display:none;width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);place-items:center;color:white}

/* КАРТИНКИ — общий ползунок размера (редактор) */
[data-img-key]{transform:scale(var(--iw-scale,1));transform-origin:center center;transition:transform .25s}
.service-card:hover img{transform:scale(calc(var(--iw-scale,1) * 1.1))}
.gallery-item:hover img{transform:scale(calc(var(--iw-scale,1) * 1.08))}
.trainer-card:hover .trainer-photo img{transform:scale(calc(var(--iw-scale,1) * 1.04))}
.summer-card:hover .summer-card-img img{transform:scale(calc(var(--iw-scale,1) * 1.06))}

/* ФОН БЛОКА — картинка + размытие + затемнение (из редактора) */
[data-block]{position:relative;isolation:isolate}
/* слой 1 — сама картинка фона, всегда полной непрозрачности.
   Класс blk-bg ставится только когда фон выбран, поэтому свои ::after
   у футера и карточек галереи не затрагиваются. */
.blk-bg::before{
  content:'';position:absolute;inset:-3%;z-index:-1;pointer-events:none;
  background-image:var(--blk-bgimg,none);background-size:cover;background-position:center;
  filter:blur(var(--blk-bgblur,0px));
  transition:filter .3s;
}
/* слой 2 — затемнение. Именно его крутит ползунок «Затемнение фона» */
.blk-bg::after{
  content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:#0a0a0b;opacity:var(--blk-bgdark,0);
  transition:opacity .3s;
}
[data-block].is-hidden{display:none !important}

/* ШИРИНА СОДЕРЖИМОГО БЛОКА — ползунок в редакторе (--blk-width).
   Работает для всех секций, кнопок, карточек — одна настройка на блок. */
[data-block] .section-inner,
[data-block] .hero-inner,
[data-block] .industry-inner,
[data-block] .trial-inner,
[data-block] .container{
  max-width:var(--blk-width,1440px);
  margin-left:auto;margin-right:auto;
}
/* сетки-обёртки внутри секции тянутся на всю доступную ширину */
[data-block] .prices-wrap,
[data-block] .summer-grid,
[data-block] .trainers-grid,
[data-block] .gallery-grid,
[data-block] .why-grid,
[data-block] .services-grid,
[data-block] .maps-grid{max-width:100%}
/* ползунок «ширина колонок с фото» меняет число колонок только когда его трогали */
[data-block] .trainers-grid{grid-template-columns:var(--card-cols,repeat(2,1fr))}
[data-block] .summer-grid{grid-template-columns:var(--card-cols,repeat(3,1fr))}
.ed-img-sm .ed-hud{display:none !important}

/* BUTTONS - стеклянные, крупнее */
.btn{
  position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.8em;
  padding:1.1em 2.4em;border-radius:999px;font-weight:900;font-size:1rem;
  letter-spacing:.03em;text-transform:uppercase;transition:all .45s cubic-bezier(.16,1,.3,1);
  overflow:hidden;isolation:isolate;will-change:transform;
  box-shadow:var(--shadow-glass), 0 4px 12px rgba(0,0,0,.15);color:white;
}
.btn::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.28) 0%, rgba(255,255,255,.08) 40%, rgba(255,255,255,.02) 100%);
  backdrop-filter:blur(22px) saturate(200%);-webkit-backdrop-filter:blur(22px) saturate(200%);
  border:1px solid rgba(255,255,255,.22);border-radius:inherit;z-index:-2;transition:all .45s;
}
.btn::after{
  content:'';position:absolute;inset:1px;background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  z-index:-1;transform:scale(.94);border-radius:inherit;transition:all .45s;
}
.btn:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 12px 40px rgba(229,57,53,.4)}
.btn:hover::after{transform:scale(1);filter:brightness(1.15)}
.btn .shine{
  position:absolute;top:-50%;left:-50%;width:200%;height:200%;
  background:linear-gradient(120deg, transparent 20%, rgba(255,255,255,.4) 50%, transparent 80%);
  transform:translateX(-100%) rotate(15deg);transition:transform .8s;pointer-events:none;z-index:1;
}
.btn:hover .shine{transform:translateX(100%) rotate(15deg)}
.btn-ghost::after{background:transparent}
.btn-ghost::before{background:rgba(255,255,255,.08);backdrop-filter:blur(16px)}
.btn-ghost:hover::before{background:rgba(229,57,53,.12)}
.btn-white{color:var(--primary)!important}
.btn-white::before{background:linear-gradient(135deg, rgba(255,255,255,.95), rgba(255,255,255,.85));border-color:rgba(255,255,255,.9);backdrop-filter:blur(12px)}
.btn-white::after{background:#ffffff!important}
.btn-white:hover{box-shadow:0 12px 40px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.5)}
.btn-lg{padding:1.35em 3.2em !important;font-size:1.15rem !important;min-height:56px !important}
.btn-sm{padding:.8em 1.6em;font-size:.9rem}

/* HERO - первый блок.
   Устроен как остальные блоки: секция + внутренний контейнер 1440px,
   внутри две равные колонки. Слева текст и кнопки, справа фото.
   Фон блока (картинка, размытие, затемнение) — общий механизм [data-block]::before */
html,body{overflow-x:hidden !important;max-width:100vw}
.hero{
  position:relative;isolation:isolate;overflow:hidden;
  padding:calc(var(--header-h,120px) + 18px) 0 0;
  background:#0a0a0b;color:#f5f5f7;
}
/* Затемнение первого блока держится на одном ползунке с фоном:
   0 — фото видно полностью, 100 — читаемый чёрный */
.hero-darken{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg, rgba(10,10,11,.9) 0%, rgba(10,10,11,.5) 40%, rgba(10,10,11,0) 75%);
  opacity:var(--hero-wash,.7);
}
.floating-text{
  position:absolute;font-weight:900;line-height:1;opacity:.04;pointer-events:none;z-index:0;
  color:var(--text);text-transform:uppercase;letter-spacing:-.04em;white-space:nowrap;user-select:none;
}
.floating-text.red{color:var(--primary);opacity:.05}
.floating-text.parallax{will-change:transform}
.floating-text.why-bg,.floating-text.team-bg,.floating-text.footer-bg{display:none!important}

.hero-inner{
  position:relative;z-index:10;box-sizing:border-box;
  width:100%;max-width:1440px;margin:0 auto;padding:0 2.5vw;
  display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:stretch;min-height:560px;
}
.hero-content{min-width:0;align-self:center;padding-bottom:56px;display:flex;flex-direction:column;justify-content:center;text-align:left}
.hero-badge{display:inline-flex;align-items:center;gap:.6em;padding:.5em 1.2em;border-radius:999px;background:rgba(229,57,53,.15);border:1px solid rgba(229,57,53,.3);color:var(--primary-light);font-weight:700;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.4em;backdrop-filter:blur(12px);justify-content:flex-start;align-self:flex-start}
.hero .reveal{opacity:1;transform:translateY(0);visibility:visible}
.hero-title{font-size:clamp(2.2rem,4.2vw,4.2rem);font-weight:900;line-height:.92;letter-spacing:-.04em;margin-bottom:.35em;color:#fff;text-align:left;max-width:100%;word-break:break-word}
.hero-title span{color:var(--primary-light);position:relative}
.hero-desc{font-size:clamp(1rem,1.4vw,1.12rem);line-height:1.5;color:rgba(255,255,255,.78);max-width:52ch;margin:1em 0 1.6em;text-align:left}
.hero-cta{display:flex;flex-wrap:wrap;gap:1em;align-items:center;justify-content:flex-start;width:100%;margin-bottom:.8em}
.hero-note{font-size:.85rem;color:rgba(255,255,255,.6);margin-top:1em;display:flex;align-items:center;gap:.6em;text-align:left;justify-content:flex-start}
.hero-note::before{content:'';width:28px;height:1px;background:var(--primary);display:inline-block}

/* Правая половина — фото во всю высоту блока */
.hero-visual{position:relative;min-width:0;align-self:stretch;min-height:520px}
.hero-visual-img{position:absolute;inset:0;overflow:hidden}
.hero-visual-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.hero-visual-card{position:absolute;bottom:6%;left:0;transform:translateX(-12%);z-index:5;max-width:min(360px,70vw);background:rgba(20,20,22,.9);backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:20px;padding:1.1em 1.3em;display:flex;align-items:center;gap:1em;box-shadow:var(--shadow);animation:floatCard 4s ease-in-out infinite}
@keyframes floatCard{0%,100%{transform:translateX(-12%) translateY(0)}50%{transform:translateX(-12%) translateY(-10px)}}
.hero-visual-card b{font-size:1.8rem;font-weight:900;color:var(--primary)}

/* SECTIONS */
.section{position:relative;padding:100px 0;overflow:hidden}
.section-inner{max-width:1440px;margin:0 auto;padding:0 2.5vw;position:relative;z-index:1}
.section-kicker{font-weight:800;letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;margin-bottom:1em;display:flex;align-items:center;gap:.8em;color:var(--primary)}
.section-kicker::before{content:'';width:36px;height:2px;background:currentColor}
.section-title{font-size:clamp(2rem,4.5vw,3.6rem);font-weight:900;line-height:.95;letter-spacing:-.03em;margin-bottom:.6em}
.section-title span{color:var(--primary)}

/* FLOATING TEXT - absolute, не в потоке, не двигает контент */
.floating-text{
  position:absolute;font-weight:900;line-height:1;opacity:.04;pointer-events:none;z-index:0;
  color:var(--text);text-transform:uppercase;letter-spacing:-.04em;white-space:nowrap;user-select:none;
}
.floating-text.red{color:var(--primary);opacity:.06}
.floating-text.parallax{will-change:transform}
.floating-text.why-bg,.floating-text.team-bg,.floating-text.footer-bg{display:none!important}

/* WHY US - яркий текст, цифры влево 50% */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6em;margin-top:2em}
.why-item{position:relative;display:flex;gap:0;padding:1.7em 1.6em 1.5em 1.7em;border-radius:24px;background:#1e1e21;border:1px solid rgba(255,255,255,.08);transition:all .4s;overflow:hidden;box-shadow:0 4px 20px rgba(0,0,0,.2)}
.why-item:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.4);border-color:rgba(229,57,53,.2)}
.why-num{
  font-size:7.2rem;font-weight:900;line-height:.8;color:var(--primary);
  opacity:.16;min-width:0;letter-spacing:-.06em;transition:all .5s;
  position:absolute;left:.06em;top:.05em;z-index:0;pointer-events:none;
  text-shadow:0 0 20px rgba(229,57,53,.4);
}
.why-item .why-content{position:relative;z-index:1;padding-left:0;margin-top:.85em}
.why-item:hover .why-num{opacity:.26;transform:scale(1.05)}
.why-content h3{font-size:1.25rem;font-weight:900;margin-bottom:.5em;color:#ffffff;letter-spacing:-.01em}
.why-content p{color:#d4d4d8;font-size:1.02rem;line-height:1.65;font-weight:500}

/* SERVICES */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6em;margin-top:3em}
.service-card{position:relative;border-radius:28px;overflow:hidden;aspect-ratio:4/3;isolation:isolate;transition:all .5s;background:var(--bg-card);border:1px solid var(--border)}
.service-card img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.service-card::before{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.15) 100%);z-index:1}
.service-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 20px 60px rgba(0,0,0,.4)}
.service-content{position:absolute;left:0;right:0;top:0;bottom:0;z-index:2;padding:1.8em;display:flex;flex-direction:column;gap:.8em;align-items:center;justify-content:center;text-align:center}
.service-title{font-size:1.4rem;font-weight:900;color:white;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.service-desc{font-size:.92rem;color:rgba(255,255,255,.8);max-width:22ch;transform:translateY(8px);opacity:0;transition:all .4s}
.service-card:hover .service-desc{transform:translateY(0);opacity:1}
.service-arrow{position:absolute;top:1.4em;right:1.4em;z-index:2;width:44px;height:44px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:white;transition:all .4s;transform:rotate(-45deg)}
.service-card:hover .service-arrow{background:var(--primary);transform:rotate(0deg) scale(1.1)}

/* PRICES - фикс восстановление блока цен */
.prices-wrap{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:1.8em !important;margin-top:3em !important;min-height:200px !important}
.price-card{background:#ffffff !important;border:1px solid rgba(0,0,0,.06) !important;border-radius:24px !important;padding:0 !important;overflow:hidden !important;position:relative !important;transition:all .4s !important;display:flex !important;flex-direction:column !important;box-shadow:0 8px 32px rgba(0,0,0,.06) !important}
.price-card:hover{transform:translateY(-6px) !important;box-shadow:0 20px 50px rgba(0,0,0,.12) !important}
.price-card .btn{box-shadow:0 6px 20px rgba(229,57,53,.3) !important;color:#fff !important}
.price-card .btn::before{backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(135deg,rgba(255,255,255,.3),rgba(255,255,255,.08))}
.price-card .btn::after{transform:scale(1)}
.price-card .btn:hover{box-shadow:0 10px 28px rgba(229,57,53,.45) !important}
.price-card.featured{border-color:var(--primary) !important;box-shadow:0 0 0 1px var(--primary), var(--shadow-red) !important}
.price-card-header{padding:1.8em 1.8em 1.2em !important;border-bottom:1px solid rgba(0,0,0,.06) !important;position:relative !important;background:#ffffff !important}
.price-card-header::before{content:'' !important;position:absolute !important;top:0 !important;left:0 !important;right:0 !important;height:3px !important;background:var(--primary) !important}
.price-card-name{font-size:1.45rem !important;font-weight:900 !important;line-height:1.12 !important;letter-spacing:-.01em !important;color:#0a0a0b !important;text-transform:uppercase}
.price-card-body{padding:1.6em 1.8em !important;flex:1 !important;display:flex !important;flex-direction:column !important;gap:.9em !important;background:#ffffff !important}
.price-item{display:flex !important;justify-content:space-between !important;align-items:center !important;padding:.9em 1.1em !important;border-radius:12px !important;background:#f7f7f8 !important;border:1px solid rgba(0,0,0,.04) !important;transition:all .3s !important}
.price-item:hover{background:rgba(229,57,53,.08) !important;border-color:rgba(229,57,53,.15) !important}
.price-item b{color:#0a0a0b !important;font-weight:800 !important;font-size:1.08rem !important}
.price-item span{color:#52525b !important;font-size:.9rem !important;display:block}
.price-val{font-weight:900;font-size:1.45rem;color:#E53935;white-space:nowrap;font-variant-numeric:tabular-nums}
.price-card-footer{padding:1.2em 1.8em 1.8em !important;margin-top:auto !important;background:#ffffff !important}

/* TRIAL - фикс дубля 01, убран ::before */
.trial-section{padding:100px 0;background:#f7f7f8;color:#0a0a0b;overflow:hidden}
.trial-inner{max-width:1440px;margin:0 auto;padding:0 2.5vw;display:grid;grid-template-columns:.88fr 1.12fr;gap:3.4vw;align-items:center}
.trial-kicker{display:flex;align-items:center;gap:.8em;font-size:.82rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:1.2em}
.trial-kicker::before{display:none!important;content:''!important}
.trial-title{font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:900;line-height:.95;margin-bottom:.55em;color:#0a0a0b;position:relative;z-index:1}
.trial-title span{color:var(--primary)}
.trial-desc{color:#52525b;font-size:1.08rem;line-height:1.55;max-width:none;width:100%}
.trial-card{background:#f0f0f2;border-radius:20px;padding:1.2em 1.2em 1.2em 1.6em;position:relative;overflow:hidden;display:flex;gap:2em;align-items:center;min-height:420px}
.trial-list{flex:1;display:flex;flex-direction:column;gap:1em;z-index:1}
.trial-list-item{display:flex;align-items:center;gap:.9em;font-size:.95rem;color:#0a0a0b}
.trial-num{width:36px;height:36px;background:#111113;color:white;border-radius:8px;display:grid;place-items:center;font-weight:800;font-size:.85rem;flex-shrink:0}
.trial-visual{width:38%;height:100%;position:absolute;right:0;top:0;bottom:0;border-radius:0 20px 20px 0;overflow:hidden}
.trial-visual img{width:100%;height:100%;object-fit:cover}

/* INDUSTRY - та же схема: контейнер 1440px, две равные колонки,
   фото без подложки и рамки, вплотную к низу блока */
.industry-section{padding:80px 0 0;background:var(--bg);color:var(--text);position:relative;overflow:hidden}
.industry-inner{
  box-sizing:border-box;width:100%;max-width:1440px;margin:0 auto;padding:0 2.5vw;
  display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:stretch;min-height:560px;
}
.industry-content{min-width:0;align-self:flex-end;padding-bottom:80px}
.industry-title{font-size:clamp(1.9rem,3.2vw,2.8rem);font-weight:900;line-height:.95;margin-bottom:1em;color:#ffffff}
.industry-title span{color:var(--primary)}
.industry-steps{margin:2em 0;display:flex;flex-direction:column;gap:2.2em;position:relative}
.industry-step{position:relative;padding-left:1em}
.industry-step-num{
  position:absolute;left:-.1em;top:-.6em;font-size:9rem;font-weight:900;line-height:1;
  color:var(--primary);opacity:.16;letter-spacing:-.06em;pointer-events:none;
  text-shadow:0 0 30px rgba(229,57,53,.5), 0 0 60px rgba(229,57,53,.2);
}
.industry-step-content{
  position:relative;z-index:1;background:rgba(255,255,255,.08);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:1.3em 1.5em;margin-left:2.2em;
  box-shadow:0 8px 32px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.15);transition:all .4s;
}
.industry-step:hover .industry-step-content{transform:translateX(6px);background:rgba(229,57,53,.12);border-color:rgba(229,57,53,.25)}
.industry-step b{display:block;font-size:1.15rem;font-weight:900;margin-bottom:.3em;color:#ffffff;letter-spacing:-.01em}
.industry-step span{color:#e4e4e7;font-size:.95rem;line-height:1.5;font-weight:500}
.industry-visual{position:relative;min-width:0;align-self:stretch;overflow:hidden;background:none;border:0;border-radius:0;min-height:420px}
.industry-visual img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}

/* GALLERY - ограничена 1440px, не на всю ширину */
.gallery-section{padding:0 0 80px;background:var(--bg)}
.gallery-header{padding:80px 2.5vw 40px;max-width:1440px;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1em}
.gallery-title{font-size:clamp(2rem,4vw,3.2rem);font-weight:900}
.gallery-title span{color:var(--primary)}
.gallery-grid{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:280px;gap:0;
  grid-auto-flow:dense;background:var(--bg);
  max-width:1440px;margin:0 auto;padding:0 2.5vw;border-radius:28px;overflow:hidden;
}
.gallery-item{position:relative;overflow:hidden;cursor:pointer;isolation:isolate;background:#111}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:all .7s}
.gallery-item::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.15);z-index:1;transition:all .4s}
.gallery-item::after{content:'';position:absolute;inset:0;background:radial-gradient(400px 200px at 50% 50%, rgba(229,57,53,.35), transparent 70%);opacity:0;z-index:1;transition:opacity .5s}
.gallery-item:hover::before{background:rgba(0,0,0,.35)}
.gallery-item:hover::after{opacity:1}
.gallery-item.wide{grid-column:span 2}
.gallery-item.tall{grid-row:span 2}
.gallery-item.big{grid-column:span 2;grid-row:span 2}
.gallery-caption{position:absolute;left:1.2em;right:1.2em;bottom:1.2em;z-index:2;color:white;font-weight:700;opacity:0;transform:translateY(10px);transition:all .4s;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.gallery-item:hover .gallery-caption{opacity:1;transform:translateY(0)}

/* TRAINERS - фикс съехали имена, большие отступы, картинка чуть уже, текст шире крупнее */
.trainers-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2em;margin-top:3em}
.trainer-card{display:flex;gap:1.4em;padding:1.1em 1.4em;border-radius:28px;background:var(--bg-card);border:1px solid var(--border);transition:all .4s;overflow:hidden;align-items:flex-start;min-height:280px}
.trainer-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:rgba(255,255,255,.12)}
.trainer-photo{width:var(--tr-photow,240px);flex-shrink:0;height:auto;align-self:stretch;border-radius:20px;overflow:hidden;background:var(--bg-soft);aspect-ratio:3/4;min-height:240px}
.trainer-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s}
.trainer-info{flex:1;min-width:0;padding-top:.2em;display:flex;flex-direction:column;gap:.3em;max-width:100%}
.trainer-name{font-size:2.4rem;font-weight:900;margin-bottom:.2em;line-height:1;letter-spacing:-.02em;color:#fff;word-break:break-word}
.trainer-pos{font-size:1.05rem;font-weight:800;color:var(--primary);text-transform:uppercase;margin-bottom:.8em;letter-spacing:.04em;line-height:1.2}
.trainer-ach{font-size:1.15rem;line-height:1.6;color:#d4d4d8;font-weight:500;flex:1}
.trainers-cta{margin-top:3em;text-align:center;position:relative;z-index:2;padding-top:1em;clear:both}

/* SUMMER */
.summer-section{padding:100px 0;background:#f7f7f8;color:#0a0a0b}
.summer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6em;margin-top:2.5em}
/* карточка по умолчанию — как была. Если выставлена высота (--sum-h) или режим
   "по фото" (--sum-fit:contain), фото показывается в натуральных пропорциях. */
.summer-card{border-radius:24px;overflow:hidden;aspect-ratio:4/3.2;position:relative;background:white;border:1px solid rgba(0,0,0,.06);box-shadow:0 8px 32px rgba(0,0,0,.06);transition:all .4s;display:flex;flex-direction:column}
[data-block] .summer-card{aspect-ratio:var(--sum-ar,4/3.2);height:var(--sum-h,auto)}
.summer-card-img{flex:1;position:relative;overflow:hidden;min-height:0}
.summer-card-img img{width:100%;height:var(--sum-img-h,100%);object-fit:var(--sum-fit,cover);transition:transform .6s}
.summer-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.12)}
.summer-card-footer{display:none}


/* CONTACTS - фикс странные иконки, переносы, белые карточки */
.contacts-section{padding:100px 0;background:var(--bg);color:var(--text)}
.contacts-inner{max-width:1440px;margin:0 auto;padding:0 2.5vw;display:grid;grid-template-columns:1fr 1fr;gap:4vw;align-items:start}
.contacts-list{display:flex;flex-direction:column;gap:1.2em;margin-top:2em}
.contact-item{display:grid;grid-template-columns:56px 1fr;gap:1em;align-items:start;padding:1.2em 1.4em;background:#ffffff;border:1px solid rgba(0,0,0,.06);border-radius:20px;transition:all .3s;box-shadow:0 4px 24px rgba(0,0,0,.06);min-height:92px}
.contact-item:hover{border-color:rgba(229,57,53,.25);transform:translateY(-2px);box-shadow:0 12px 32px rgba(229,57,53,.12), 0 4px 24px rgba(0,0,0,.06)}
.contact-item div{flex:1;min-width:0;overflow:hidden}
.contact-item b{display:block;font-weight:800;font-size:1.05rem;color:#0a0a0b;margin-bottom:.25em;word-break:break-word;line-height:1.2}
.contact-item span{display:block;color:#52525b;font-size:.92rem;line-height:1.5;word-break:break-word}
.contact-item a{color:var(--primary);font-weight:700;text-decoration:none}
.contact-item a:hover{text-decoration:underline}
.contact-icon{width:56px;height:56px;background:#ffffff;border:1px solid rgba(229,57,53,.12);color:var(--primary);border-radius:14px;display:grid;place-items:center;flex-shrink:0;box-shadow:0 2px 8px rgba(229,57,53,.08)}
.contact-icon svg{width:22px;height:22px;stroke:var(--primary);fill:none;stroke-width:2}
.contact-form{background:#ffffff;border:1px solid rgba(0,0,0,.06);border-radius:28px;padding:2.2em;position:sticky;top:100px;box-shadow:0 20px 60px rgba(0,0,0,.12), 0 0 0 1px rgba(229,57,53,.06);color:#0a0a0b}
.contact-form h3{color:#0a0a0b;font-size:1.4rem;font-weight:900;margin-bottom:.3em}
.contact-form p{color:#52525b;font-size:.95rem;margin-bottom:1.2em;line-height:1.5}
.form{display:flex;flex-direction:column;gap:1.1em}
.input{width:100%;padding:1em 1.3em;border-radius:14px;background:#f7f7f8;border:1px solid rgba(0,0,0,.08);color:#0a0a0b;font-size:.98rem;transition:all .3s;outline:none}
.input::placeholder{color:#71717a}
.input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(229,57,53,.15);background:#ffffff}
.textarea{min-height:110px;resize:vertical}
.checkbox{display:flex;gap:.8em;align-items:flex-start;font-size:.85rem;color:#52525b;line-height:1.4}
.messenger-options{display:flex;gap:.6em;flex-wrap:wrap;margin-top:.6em}
.messenger-options label{display:flex;align-items:center;gap:.4em;padding:.5em .9em;background:#f7f7f8;border:1px solid rgba(0,0,0,.08);color:#0a0a0b;border-radius:999px;font-size:.85rem;cursor:pointer}

/* MAPS */
.maps-section{padding:0 0 80px;background:var(--bg)}
.maps-inner{max-width:1440px;margin:0 auto;padding:0 2.5vw}
.maps-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.6em;margin-top:2em}
.map-card{border-radius:28px;overflow:hidden;background:var(--bg-card);border:1px solid var(--border);position:relative;box-shadow:var(--shadow);transition:all .4s}
.map-card:hover{transform:translateY(-4px)}
.map-iframe{width:100%;height:380px;border:0;filter:grayscale(.15) contrast(1.05)}
.map-info{
  position:absolute;left:1.2em;bottom:1.2em;right:1.2em;
  background:rgba(12,12,14,.92);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:1em 1.2em;display:flex;justify-content:space-between;align-items:center;gap:1em;color:#fff;
}
.map-info b{color:#fff;font-weight:800;font-size:1.05rem;word-break:break-word}
.map-info span{color:rgba(255,255,255,.72);font-size:.85rem;display:block;margin-top:.2em}
.map-info .btn{flex-shrink:0}

/* CTA */
.cta-section{padding:60px 0;background:#f7f7f8}
.cta-inner{max-width:1440px;margin:0 auto;padding:0 2.5vw}
.cta-card{
  background:var(--primary);border-radius:32px;padding:3em;display:grid;grid-template-columns:1.2fr .8fr;gap:2em;align-items:center;color:white;
  position:relative;overflow:hidden;box-shadow:var(--shadow-red);
}
.cta-card::before{content:'';position:absolute;right:-10%;top:-20%;font-size:22vw;font-weight:900;opacity:.08;line-height:1;pointer-events:none;content:'FIGHT';color:white}
.cta-card h3{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:900;line-height:.95;margin-bottom:.5em;color:white;position:relative;z-index:1}
.cta-card p{opacity:.92;font-size:1.1rem;position:relative;z-index:1;color:rgba(255,255,255,.92)}
.cta-actions{position:relative;z-index:1;display:flex;gap:1em;justify-content:flex-end;flex-wrap:wrap}

/* FOOTER - фикс переносов строк */
.footer{padding:80px 0 0;background:var(--bg-soft);border-top:1px solid var(--border);position:relative;overflow:hidden}
.footer::after{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, var(--primary), transparent);opacity:.6}
.footer-grid{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr;gap:3em;max-width:1440px;margin:0 auto;padding:0 2.5vw 40px}
.footer-brand .logo{margin-bottom:1em}
.footer-brand p{color:var(--text-soft);font-size:.95rem;line-height:1.6;margin-bottom:1.2em;word-break:break-word}
.footer h4{font-size:.9rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:1.2em;color:var(--text)}
.footer-links{display:flex;flex-direction:column;gap:.7em}
.footer-links a,.footer-links span{font-size:.92rem;color:var(--text-soft);transition:color .2s;word-break:break-word;line-height:1.4}
.footer-links a:hover{color:var(--text)}
.footer-bottom{max-width:1440px;margin:0 auto;padding:1.8em 2.5vw;border-top:1px solid var(--border);display:flex;justify-content:space-between;gap:1em;flex-wrap:wrap;color:var(--text-soft);font-size:.9rem;background:rgba(0,0,0,.2);word-break:break-word}
.footer-glow{position:absolute;left:50%;bottom:-40%;width:80%;height:80%;background:radial-gradient(ellipse at center, rgba(229,57,53,.12), transparent 70%);transform:translateX(-50%);filter:blur(40px);pointer-events:none}

/* MARQUEE */
.marquee-strip{
  background:var(--primary);color:white;padding:1em 0;overflow:hidden;white-space:nowrap;
  position:relative;margin:0;z-index:2;
  border-top:1px solid rgba(255,255,255,.15);border-bottom:1px solid rgba(255,255,255,.15);
}
.marquee-track{display:inline-flex;animation:marquee 120s linear infinite;gap:3em;will-change:transform}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-item{font-weight:900;font-size:1.15rem;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;gap:1.2em;white-space:nowrap}
.marquee-item::after{content:'•';opacity:.6;margin-left:1.2em}

/* MODAL */
.modal{position:fixed;inset:0;z-index:2000;display:none;place-items:center;padding:2vw;background:rgba(0,0,0,.6);backdrop-filter:blur(12px)}
.modal.open{display:grid}
.modal-box{background:#1c1c1f;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:2.5em;max-width:520px;width:100%;box-shadow:var(--shadow);transform:scale(.96) translateY(12px);transition:transform .4s;color:#fff}
.modal.open .modal-box{transform:scale(1) translateY(0)}

/* REVEAL */
.reveal{opacity:1;transform:translateY(0);transition:all .8s cubic-bezier(.16,1,.3,1)}
.reveal:not(.in){opacity:0;transform:translateY(28px)}
.reveal.in{opacity:1;transform:translateY(0)}
.reveal-d1{transition-delay:.08s}.reveal-d2{transition-delay:.16s}.reveal-d3{transition-delay:.24s}
@keyframes pulseRed{0%,100%{box-shadow:0 0 0 0 rgba(229,57,53,.4)}50%{box-shadow:0 0 0 18px rgba(229,57,53,0)}}
.pulse{animation:pulseRed 2.5s infinite}

/* UTIL */
.w-full{width:100%}.container{max-width:1440px;margin:0 auto;padding:0 2.5vw}

/* RESPONSIVE - фикс hero на мобиле v6 с !important */
@media(max-width:1340px){
  .header-actions .phone{display:none}
}
@media(max-width:1100px){
  /* мобильная = та же сетка, что на ПК, только menьше */
  .hero-inner{grid-template-columns:1.08fr .92fr;gap:2vw}
  .hero-visual{min-height:400px}
  .hero-visual-card{left:8px;transform:none}
  @keyframes floatCard{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
  .industry-inner{grid-template-columns:1.06fr .94fr;gap:2vw;min-height:0}
  .industry-visual{min-height:380px}
  .industry-content{padding-bottom:40px}
  .why-grid{grid-template-columns:repeat(2,1fr)}
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .prices-wrap{grid-template-columns:1fr 1fr !important}
  .maps-grid{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}
  .summer-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .trainer-photo{width:200px;min-height:280px}
  .contacts-inner{grid-template-columns:1fr 1fr;gap:2em}
  .ed-panel{width:100%}
  .ed-hud{width:min(250px,calc(100vw - 40px))}
}
@media(max-width:760px){
  /* СТРУКТУРА КАК НА ПК, ТОЛЬКО УМЕНЬШЕННАЯ: фото сбоку, 2 колонки везде */
  html{font-size:14px}
  .header-inner{height:72px}
  .logo-mark{width:44px!important;height:44px!important;border-radius:12px}
  .logo{font-size:15px!important}
  .nav{display:none;position:fixed;top:72px;left:0;right:0;background:rgba(10,10,11,.98);border-bottom:1px solid rgba(255,255,255,.1);flex-direction:column;padding:1.2em 3vw;gap:1em;align-items:flex-start;color:white}
  .nav.open{display:flex}
  .mobile-toggle{display:grid}
  .section{padding:44px 0}
  .section-kicker{font-size:.68rem}
  .section-title{font-size:clamp(1.4rem,6.4vw,2rem);line-height:1}

  /* HERO: текст слева, фото справа — как на ПК */
  .hero-inner{grid-template-columns:1.05fr .95fr;gap:12px;min-height:0;padding:0 3vw 32px}
  .hero-title{font-size:clamp(1.35rem,6vw,2.1rem);letter-spacing:-.02em}
  .hero-desc{font-size:.82rem;margin:.6em 0 1em;line-height:1.45}
  .hero-badge{font-size:.6rem;padding:.35em .8em;margin-bottom:.9em;gap:.4em}
  .hero-cta{display:flex;flex-wrap:wrap;gap:8px}
  .hero-cta .btn{padding:.7em 1em;font-size:.72rem;white-space:nowrap;gap:.4em}
  .hero-note{font-size:.68rem}
  .hero-visual{min-height:280px;align-self:center}
  .hero-visual-card{left:6px;bottom:6px;transform:none;padding:.5em .6em;gap:.5em;border-radius:12px;max-width:88%}
  .hero-visual-card b{font-size:1.05rem}
  .hero-visual-card strong{font-size:.68rem}
  .hero-visual-card span{font-size:.6rem}
  .marquee-strip{padding:.6em 0}.marquee-track{font-size:.78rem}

  /* СЕТКИ — две колонки, как на ПК */
  .why-grid{grid-template-columns:repeat(2,1fr);gap:.8em}
  .services-grid{grid-template-columns:repeat(2,1fr);gap:.8em}
  .prices-wrap{grid-template-columns:1fr 1fr !important;gap:.9em !important;margin-top:1.6em !important}
  .maps-grid{grid-template-columns:1fr 1fr;gap:.9em}
  .summer-grid{grid-template-columns:repeat(3,1fr);gap:.7em}
  .gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;grid-auto-flow:dense}
  .gallery-item.wide,.gallery-item.big{grid-column:span 1;grid-row:span 1}
  .footer-grid{grid-template-columns:repeat(2,1fr);gap:1.4em;padding-bottom:28px}
  .contacts-inner{grid-template-columns:1fr 1fr;gap:.9em;padding:0 3vw}

  /* карточки цен меньше, но в 2 колонки */
  .price-card{border-radius:16px !important}
  .price-card-header{padding:1em .9em .7em !important}
  .price-card-body{padding:.9em .9em !important;gap:.55em !important}
  .price-card-footer{padding:.8em .9em 1em !important}
  .price-card .btn{padding:.7em .9em;font-size:.72rem}
  .price-card-name{font-size:.95rem !important}

  /* тренеры: фото слева маленькое, текст справа — как на ПК */
  .trainers-grid{grid-template-columns:repeat(2,1fr);gap:.8em;margin-top:1.6em}
  .trainer-card{flex-direction:column;padding:.7em;gap:.7em;min-height:0;border-radius:18px}
  .trainer-photo{width:100%;min-height:0;aspect-ratio:3/4;border-radius:12px;align-self:stretch}
  .trainer-name{font-size:1.05rem;line-height:1.05}
  .trainer-pos{font-size:.66rem}
  .trainer-ach{font-size:.75rem;line-height:1.45}

  /* trial/industry — горизонталь сохраняется */
  .trial-inner{grid-template-columns:1fr}
  .trial-card{flex-direction:row;min-height:190px;padding:.8em 0 .8em .9em;gap:.8em;border-radius:16px;overflow:hidden}
  .trial-visual{position:absolute;width:36%;height:100%;border-radius:0}
  .cta-card{grid-template-columns:1.15fr .85fr;gap:1em;padding:1.2em;border-radius:20px}
  .cta-actions{justify-content:flex-end}
  .industry-inner{grid-template-columns:1.05fr .95fr;gap:12px;min-height:0}
  .industry-visual{min-height:220px}
  .industry-content{padding-bottom:24px}
  #constructor-panel{width:100%;right:-100%}
  .floating-text{font-size:20vw !important}
  .hero-visual-img{border-radius:16px}
}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--primary);border-radius:999px}
::-webkit-scrollbar-track{background:var(--bg-soft)}
::selection{background:var(--primary);color:white}

/* ==========================================================
   РЕДАКТОР САЙТА — карандаши, панели, ползунки
   Видно только админу/заказчику (body.ed-on ставит JS)
   ========================================================== */
.ed-root{position:relative;z-index:9000}
body:not(.ed-on) .ed-pen,
body:not(.ed-on) .ed-hud,
body:not(.ed-on) .ed-bar{opacity:0;pointer-events:none}

/* --- нижняя панель --- */
.ed-bar{
  position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:9500;
  display:flex;align-items:center;gap:8px;padding:8px 12px;max-width:96vw;flex-wrap:wrap;
  background:rgba(16,16,18,.96);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
  border:1px solid rgba(255,255,255,.12);border-radius:999px;
  box-shadow:0 14px 44px rgba(0,0,0,.55), 0 0 0 1px rgba(229,57,53,.18);
  color:#fff;transition:opacity .25s;
}
.ed-bar-dot{width:8px;height:8px;border-radius:999px;background:#22c55e;box-shadow:0 0 8px #22c55e;flex-shrink:0}
.ed-bar-title{font-weight:800;font-size:13px;letter-spacing:.02em;white-space:nowrap}
.ed-bar-sep{width:1px;height:20px;background:rgba(255,255,255,.12);flex-shrink:0}
.ed-bar-user{font-size:12px;color:#a1a1aa;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ed-bar-btn{
  display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;
  font-size:12.5px;font-weight:700;white-space:nowrap;transition:.2s;text-decoration:none;
}
.ed-bar-btn:hover{background:rgba(255,255,255,.14)}
.ed-bar-btn--primary{background:var(--primary);border-color:transparent}
.ed-bar-btn--primary:hover{background:var(--primary-light)}
.ed-bar-btn--icon{padding:8px 10px}
.ed-bar-btn.is-dirty{box-shadow:0 0 0 2px rgba(234,179,8,.55)}
.ed-bar-btn.is-saving{opacity:.75}
.ed-bar-btn.is-err{background:#B71C1C}
.ed-bar-btn > b{font-weight:700}
.ed-badge{background:var(--primary);color:#fff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:800}
.ed-bar-btn .ed-badge{background:#fff;color:#111}

/* --- карандаши --- */
.ed-pen{
  position:absolute;z-index:9400;width:26px;height:26px;padding:0;margin:0;
  display:grid;place-items:center;border-radius:8px;
  background:var(--primary);color:#fff;border:1px solid rgba(255,255,255,.25);
  box-shadow:0 4px 14px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:opacity .18s, transform .18s;
}
.ed-pen--block{top:10px;left:10px}
.ed-pen--text{top:-11px;right:-11px;width:22px;height:22px;border-radius:7px}
.ed-pen--img{top:10px;right:10px}
body.ed-on [data-editable-block]:hover > .ed-pen--block,
body.ed-on [data-editable-key]:hover > .ed-pen--text,
body.ed-on [data-editable]:not([data-editable-block]):hover > .ed-pen--text,
body.ed-on [data-img-key]:hover + .ed-pen--img,
body.ed-on *:hover > .ed-pen--img{opacity:1;pointer-events:auto}
.ed-pen:hover{transform:scale(1.12);background:var(--primary-light)}
body.ed-on [data-editable-block]:hover{outline:2px dashed rgba(229,57,53,.55);outline-offset:-2px}
body.ed-on [data-img-key]{outline:2px dashed rgba(229,57,53,.5);outline-offset:2px}
body.ed-on [data-editable-key]:hover,body.ed-on [data-editable]:not([data-editable-block]):hover{outline:1px dashed rgba(229,57,53,.4);outline-offset:3px}
[contenteditable="true"]{
  outline:2px solid var(--primary)!important;background:rgba(229,57,53,.1)!important;
  border-radius:6px;min-height:1em;cursor:text;
}
.ed-saved-flash{animation:edFlash .9s ease}
@keyframes edFlash{0%{background:rgba(34,197,94,.35)}100%{background:transparent}}

/* --- угловой блок ползунков у картинки --- */
.ed-hud{
  position:absolute;left:10px;bottom:10px;z-index:9420;width:250px;padding:10px 12px;
  background:rgba(10,10,12,.94);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.14);
  border-radius:14px;box-shadow:0 12px 36px rgba(0,0,0,.5);
  display:none;flex-direction:column;gap:6px;color:#fff;
}
body.ed-on *:hover > .ed-hud{display:flex}
.ed-hud-row{display:grid;grid-template-columns:62px 1fr 44px;align-items:center;gap:8px;font-size:11px;color:#d4d4d8}
.ed-hud-row input[type=range]{width:100%;accent-color:var(--primary);cursor:ew-resize}
.ed-hud-val{font-weight:800;text-align:right;color:#fff;font-size:11px}
.ed-hud-btn{
  margin-top:2px;padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.12);color:#fff;font-size:11.5px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:6px;
}
.ed-hud-btn:hover{background:var(--primary)}

/* --- боковая панель --- */
.ed-panel{
  position:fixed;top:0;right:0;bottom:0;width:390px;max-width:94vw;z-index:9600;
  background:#121214;border-left:1px solid rgba(255,255,255,.1);
  box-shadow:-20px 0 60px rgba(0,0,0,.6);
  display:flex;flex-direction:column;transform:translateX(102%);
  transition:transform .3s cubic-bezier(.16,1,.3,1);color:#f5f5f7;
}
.ed-panel.is-open{transform:none}
.ed-scrim{position:fixed;inset:0;z-index:9550;background:rgba(0,0,0,.45);opacity:0;pointer-events:none;transition:opacity .3s}
.ed-scrim.is-on{opacity:1;pointer-events:auto}
.ed-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 18px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.ed-panel-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);font-weight:800}
.ed-panel-title{font-size:19px;font-weight:900;margin-top:3px;word-break:break-word}
.ed-panel-close{width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:#fff;display:grid;place-items:center;flex-shrink:0}
.ed-panel-close:hover{background:rgba(255,255,255,.14)}
.ed-panel-body{flex:1;overflow-y:auto;padding:14px 18px 24px;display:flex;flex-direction:column;gap:16px}
.ed-panel-body::-webkit-scrollbar{width:8px}
.ed-panel-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,.2);border-radius:999px}
.ed-panel-foot{display:flex;gap:8px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.08)}
.ed-panel-done{flex:1;padding:12px;border-radius:12px;background:var(--primary);color:#fff;font-weight:800;border:0}
.ed-panel-reset{padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.07);color:#d4d4d8;border:1px solid rgba(255,255,255,.1);font-size:12.5px;font-weight:700}

.ed-group{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:12px 13px 14px}
.ed-group-title{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#a1a1aa;margin-bottom:10px}
.ed-row{margin-bottom:12px}
.ed-row:last-child{margin-bottom:0}
.ed-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:5px}
.ed-label{font-size:12.5px;font-weight:700;color:#e4e4e7}
.ed-hint{font-size:10.5px;color:#71717a}
.ed-ctl{display:grid;grid-template-columns:46px 1fr 26px;align-items:center;gap:8px}
.ed-ctl--color{grid-template-columns:34px 1fr 26px}
.ed-ctl--pick{grid-template-columns:1fr}
.ed-ctl--check{grid-template-columns:auto 1fr;gap:9px;cursor:pointer;font-size:12.5px;color:#d4d4d8}
.ed-out{font-size:11.5px;font-weight:800;color:var(--primary-light);text-align:right;font-variant-numeric:tabular-nums}
.ed-range{width:100%;accent-color:var(--primary);cursor:ew-resize}
.ed-reset-one{width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.07);color:#a1a1aa;border:1px solid rgba(255,255,255,.08);font-size:12px;display:grid;place-items:center}
.ed-reset-one:hover{background:rgba(255,255,255,.16);color:#fff}
.ed-color{width:34px;height:30px;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:none;cursor:pointer}
.ed-color-text,.ed-input,.ed-select{width:100%;padding:8px 10px;border-radius:9px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#f5f5f7;font-size:12.5px;font-family:inherit}
.ed-input:focus,.ed-select:focus{outline:none;border-color:var(--primary)}
.ed-check{width:18px;height:18px;accent-color:var(--primary)}
.ed-thumb-row{display:flex;align-items:center;gap:8px}
.ed-thumb{width:54px;height:54px;border-radius:10px;overflow:hidden;background:#0a0a0b;border:1px solid rgba(255,255,255,.1);flex-shrink:0}
.ed-thumb img{width:100%;height:100%;object-fit:cover}
.ed-pick-btn{padding:8px 12px;border-radius:9px;background:var(--primary);color:#fff;font-size:12px;font-weight:700;border:0}
.ed-pick-btn--ghost{background:rgba(255,255,255,.07);color:#d4d4d8;border:1px solid rgba(255,255,255,.1)}
.ed-wide-btn{width:100%;padding:10px;border-radius:11px;background:rgba(255,255,255,.07);border:1px dashed rgba(255,255,255,.2);color:#e4e4e7;font-size:12.5px;font-weight:700}
.ed-wide-btn:hover{background:rgba(255,255,255,.13)}
.ed-save-img{width:100%;padding:14px;border-radius:13px;background:var(--primary);color:#fff;font-weight:800;font-size:14px;border:0}
.ed-save-img:disabled{opacity:.6}
.ed-empty{padding:18px;text-align:center;color:#71717a;font-size:12.5px}
.ed-gal-list{display:flex;flex-direction:column;gap:7px;margin-bottom:10px;max-height:290px;overflow-y:auto}
.ed-gal-item{display:grid;grid-template-columns:48px 1fr 30px;gap:8px;align-items:center;background:rgba(255,255,255,.05);border-radius:10px;padding:6px}
.ed-gal-item img{width:48px;height:48px;object-fit:cover;border-radius:7px}
.ed-gal-title{width:100%;padding:6px 8px;border-radius:7px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.08);color:#f5f5f7;font-size:12px}
.ed-gal-del{width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}

/* --- тулбар текста --- */
.ed-text-toolbar{
  position:absolute;z-index:9600;display:none;align-items:center;gap:4px;padding:6px;
  background:rgba(16,16,18,.98);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);
  border-radius:13px;box-shadow:0 12px 36px rgba(0,0,0,.55);
}
.ed-text-toolbar button{min-width:30px;height:30px;padding:0 8px;border-radius:8px;background:rgba(255,255,255,.07);color:#fff;font-size:13px;font-weight:700}
.ed-text-toolbar button:hover{background:rgba(255,255,255,.18)}
.ed-text-toolbar .ed-tb-save{background:var(--primary)}
.ed-text-toolbar input[type=color]{width:30px;height:30px;padding:0;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:none;cursor:pointer}
.ed-text-toolbar select{height:30px;border-radius:8px;background:rgba(255,255,255,.07);color:#fff;border:1px solid rgba(255,255,255,.1);font-size:12px;padding:0 6px}
.ed-tb-sep{width:1px;height:20px;background:rgba(255,255,255,.12);margin:0 2px}

/* --- окно выбора файла и заявок --- */
.ed-picker{position:fixed;inset:0;z-index:9700;display:none;place-items:center;padding:3vh 2vw;background:rgba(0,0,0,.7);backdrop-filter:blur(10px)}
.ed-picker.is-open{display:grid}
.ed-picker-box{width:100%;max-width:760px;max-height:92vh;display:flex;flex-direction:column;background:#141416;border:1px solid rgba(255,255,255,.1);border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.6);color:#f5f5f7;overflow:hidden}
.ed-picker-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.08)}
.ed-picker-head h3{margin:0;font-size:18px;font-weight:900}
.ed-picker-tabs{display:flex;gap:8px;padding:14px 20px 0}
.ed-picker-tab{padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.06);color:#d4d4d8;font-size:13px;font-weight:700;border:1px solid rgba(255,255,255,.1)}
.ed-picker-tab.is-active{background:var(--primary);color:#fff;border-color:transparent}
.ed-picker-pane{padding:16px 20px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.ed-drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:38px 20px;border:2px dashed rgba(255,255,255,.18);border-radius:18px;color:#a1a1aa;text-align:center;cursor:pointer;transition:.2s}
.ed-drop:hover,.ed-drop.is-over{border-color:var(--primary);background:rgba(229,57,53,.07);color:#e4e4e7}
.ed-drop b{color:#f5f5f7;font-size:15px}
.ed-drop span{font-size:12px}
.ed-upload-list{display:flex;flex-direction:column;gap:6px}
.ed-up-row{display:flex;justify-content:space-between;gap:10px;padding:8px 11px;border-radius:9px;background:rgba(255,255,255,.05);font-size:12.5px}
.ed-up-row b{color:#22c55e;font-weight:700}
.ed-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:9px;max-height:56vh;overflow-y:auto}
.ed-media-item{aspect-ratio:1;border-radius:11px;overflow:hidden;cursor:pointer;background:#0a0a0b;border:2px solid transparent;transition:.2s}
.ed-media-item:hover{border-color:var(--primary);transform:scale(1.03)}
.ed-media-item img{width:100%;height:100%;object-fit:cover}
.ed-leads-list{padding:8px 20px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}
.ed-lead{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);border-radius:13px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.ed-lead-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.ed-lead-date{font-size:11px;color:#71717a}
.ed-lead-msg{color:#a1a1aa;font-size:12.5px}
.ed-lead a{color:var(--primary-light)}

/* --- уведомления --- */
.ed-toast{
  position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:9900;
  background:#22c55e;color:#06280f;padding:11px 20px;border-radius:999px;
  font-size:13px;font-weight:800;box-shadow:0 10px 30px rgba(0,0,0,.45);
  max-width:90vw;text-align:center;transition:opacity .3s, transform .3s;
}
.ed-toast--err{background:var(--primary);color:#fff}
.ed-toast--out{opacity:0;transform:translate(-50%,8px)}

/* ==========================================================
   ВИЗУАЛЬНЫЙ ПАКЕТ 11.0 — шапка, анимации, trial, массаж, карты
   ========================================================== */

/* --- 8+9+10. ШАПКА: всегда сверху, светящийся контур, бокс-паттерн --- */
.header{
  background:rgba(12,12,14,.55);
  border-bottom:1px solid rgba(229,57,53,.35);
  box-shadow:0 1px 0 rgba(229,57,53,.18), 0 6px 28px rgba(229,57,53,.10), 0 2px 12px rgba(0,0,0,.4);
}
.header.scrolled{
  background:rgba(12,12,14,.55);
  border-bottom-color:rgba(229,57,53,.55);
  box-shadow:0 1px 0 rgba(229,57,53,.3), 0 8px 34px rgba(229,57,53,.16), 0 4px 20px rgba(0,0,0,.55);
}

/* --- 1. ЛОГОТИП + МЕНЮ: перелив стекла --- */
.logo-mark{position:relative}
.logo-mark::after{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:linear-gradient(115deg, transparent 25%, rgba(255,255,255,.16) 44%, rgba(255,255,255,.34) 50%, rgba(255,255,255,.16) 56%, transparent 75%);
  background-size:280% 100%;background-position:220% 0;
  animation:glassSweep 7.5s linear infinite;mix-blend-mode:screen;pointer-events:none;
}
.logo-text{
  background:linear-gradient(100deg,#fff 38%,#ffc4c0 48%,#ffd9d6 50%,#ffc4c0 52%,#fff 62%);
  background-size:260% 100%;background-position:120% 0;
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:glassSweepText 8.5s linear infinite;
}
@keyframes glassSweep{
  0%{background-position:220% 0}
  100%{background-position:-120% 0}
}
@keyframes glassSweepText{
  0%{background-position:130% 0}
  100%{background-position:-150% 0}
}
/* меню: стеклянная капсула с переливом при наведении */
.nav a{position:relative;overflow:hidden;border-radius:12px;padding:.55em .85em}
.nav a::before{
  content:'';position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .3s;
  background:linear-gradient(120deg, rgba(255,255,255,.045), rgba(229,57,53,.12) 55%, rgba(255,255,255,.06));
  backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.10);
  z-index:-1;
}
.nav a:hover::before{opacity:1}
.nav a::after{bottom:4px;left:.85em;right:.85em;width:0;height:2px;
  background:linear-gradient(90deg,var(--primary-light),#ffb3ad);box-shadow:0 0 10px rgba(229,57,53,.65)}
.nav a .glass-sheen{
  position:absolute;top:0;bottom:0;width:60%;left:-70%;pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35), transparent);
  transform:skewX(-18deg);transition:none;opacity:0;
}
.nav a:hover .glass-sheen{opacity:1;left:120%;transition:left .6s ease}

/* --- 2. КРАСНЫЕ КНОПКИ: убрать стеклянный контур, выступающий за край --- */
.btn::before{backdrop-filter:none;-webkit-backdrop-filter:none;border:none}
.btn-glass::before{background:rgba(255,255,255,.16);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18)}
.btn-ghost::before{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14)}

/* --- 3. HERO-КАРТИНКА: поворот и увеличение при наведении --- */
.hero-visual-img img{
  transition:transform .8s cubic-bezier(.16,1,.3,1), filter .8s;
  will-change:transform;
}
.hero-visual:hover .hero-visual-img img{
  transform:scale(1.06) rotate(1.6deg);
  filter:saturate(1.12) contrast(1.04);
}
.hero-visual{border-radius:0}

/* --- 5+12. TRIAL: подсветка номеров по очереди + живая анимация --- */
.trial-num{
  position:relative;z-index:1;
}
@keyframes trialGlow{
  0%,9%{background:rgba(229,57,53,.14);color:var(--primary);box-shadow:0 0 0 rgba(229,57,53,0)}
  12%,20%{background:var(--primary);color:#fff;box-shadow:0 8px 26px rgba(229,57,53,.5), 0 0 0 6px rgba(229,57,53,.14)}
  26%,100%{background:rgba(229,57,53,.14);color:var(--primary);box-shadow:0 0 0 rgba(229,57,53,0)}
}
.trial-list-item .trial-num{animation:trialGlow calc(.9s * var(--tn,6) * 1.15) ease-in-out infinite;animation-delay:calc(var(--ti,0) * .9s)}
.trial-list-item{transition:transform .35s, box-shadow .35s}
.trial-list-item:hover{transform:translateX(8px)}
.trial-list-item:hover .trial-num{
  background:var(--primary);color:#fff;
  box-shadow:0 10px 30px rgba(229,57,53,.55), 0 0 0 8px rgba(229,57,53,.12);
  animation:none;transform:scale(1.18) rotate(-6deg);
}
.trial-num{transition:background .3s,color .3s,box-shadow .3s,transform .3s}
.trial-card{position:relative;overflow:hidden}
.trial-card::before{
  content:'';position:absolute;top:-40%;left:-30%;width:60%;height:180%;pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.25), transparent);
  transform:skewX(-20deg);animation:trialSheen 6.5s ease-in-out infinite;z-index:2;
}
@keyframes trialSheen{
  0%,60%{left:-60%}
  100%{left:130%}
}
.trial-visual::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(120deg, rgba(229,57,53,.14), transparent 55%);
  opacity:.7;pointer-events:none;
}
.trial-visual img{transition:transform .9s cubic-bezier(.16,1,.3,1)}
.trial-card:hover .trial-visual img{transform:scale(1.08) rotate(-1deg)}

/* --- 4. WHY: появление сдвигом + живой номер --- */
.why-item.fx-pre{opacity:0;transform:translateY(26px);transition:opacity .6s ease, transform .6s cubic-bezier(.16,1,.3,1)}
.why-item.fx-on{opacity:1;transform:none}
.why-item.fx-on:nth-child(2){transition-delay:.08s}
.why-item.fx-on:nth-child(3){transition-delay:.16s}
.why-item.fx-on:nth-child(4){transition-delay:.24s}
.why-item.fx-on:nth-child(5){transition-delay:.32s}
.why-item.fx-on:nth-child(6){transition-delay:.4s}
.why-num{position:relative}
.why-item:hover .why-num{
  color:var(--primary-light);opacity:.3;
  text-shadow:0 0 24px rgba(229,57,53,.5);
  transform:rotate(-4deg) scale(1.06);
}
.why-num{transition:color .35s,text-shadow .35s,transform .35s}
.why-item::after{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px;
  background:linear-gradient(90deg,transparent,var(--primary),transparent);
  opacity:0;transition:opacity .35s;
}
.why-item:hover::after{opacity:1;animation:lineRun 1.6s linear infinite}
@keyframes lineRun{0%{transform:translateX(-30%)}100%{transform:translateX(30%)}}

/* --- 11. ЛЕТАЮЩИЕ ИКОНКИ БОКСА ПО ФОНУ БЛОКОВ --- */
.fx-icon{
  position:absolute;pointer-events:none;user-select:none;z-index:0;
  opacity:.13;color:var(--px-c, #ffffff);
  animation:fxFloat var(--fx-d,16s) ease-in-out infinite alternate;
  filter:drop-shadow(0 0 12px rgba(229,57,53,.12));
}
.fx-icon.fx-red{color:rgba(229,57,53,.55);opacity:.16}
.fx-icon svg{display:block}
/* v12.2: монохромные «призрачные» иконки с прозрачным фоном (альфа-канал), слегка заметные */
.fx-icon.fx-icon-img{opacity:.55;filter:none}
.fx-icon.fx-icon-img img{display:block;object-fit:contain;filter:blur(.3px) brightness(.9)}
@keyframes fxFloat{
  0%{transform:translate(0,0) rotate(-8deg) scale(1)}
  50%{transform:translate(var(--fx-x,18px), calc(var(--fx-y,26px) * -1)) rotate(7deg) scale(1.12)}
  100%{transform:translate(calc(var(--fx-x,18px) * -1), var(--fx-y,26px)) rotate(-5deg) scale(.96)}
}
.fx-word{
  position:absolute;pointer-events:none;user-select:none;z-index:0;
  font-weight:900;text-transform:uppercase;letter-spacing:.12em;line-height:1;
  color:rgba(255,255,255,.06);white-space:nowrap;
  animation:fxFloat var(--fx-d,20s) ease-in-out infinite alternate;
}
.fx-word.fx-red{color:rgba(229,57,53,.1)}

/* --- 7. HERO-BADGE: печатающийся текст --- */
.hero-badge{font-size:.98rem;padding:.6em 1.3em}
.hero-badge .typed-caret{
  display:inline-block;width:2px;height:1em;background:var(--primary-light);
  margin-left:3px;vertical-align:-2px;animation:caretBlink .8s steps(1) infinite;
}
@keyframes caretBlink{0%,55%{opacity:1}56%,100%{opacity:0}}

/* --- 8. ТЕЛЕФОН В ШАПКЕ: контурный прямоугольник --- */
.header-actions .phone{
  display:inline-flex !important;align-items:center;gap:.55em;
  padding:.7em 1.15em;border-radius:12px;
  border:1.5px solid rgba(229,57,53,.55);color:#fff;background:transparent;
  font-weight:800;letter-spacing:.02em;transition:all .3s;
  box-shadow:inset 0 0 0 0 rgba(229,57,53,0);
}
.header-actions .phone:hover{
  border-color:var(--primary);color:var(--primary-light);
  box-shadow:0 0 18px rgba(229,57,53,.35), inset 0 0 12px rgba(229,57,53,.12);
  transform:translateY(-1px);
}
@media(max-width:1340px){.header-actions .phone{display:inline-flex !important}}
@media(max-width:900px){.header-actions .phone span{display:none}.header-actions .phone{padding:.7em}}

/* --- карты: дизайн-карточки --- */
.map-card{
  position:relative;border-radius:26px;overflow:hidden;isolation:isolate;
  background:#141416;border:1px solid rgba(255,255,255,.08);
  transition:transform .5s cubic-bezier(.16,1,.3,1), box-shadow .5s, border-color .5s;
}
.map-card:hover{transform:translateY(-8px);border-color:rgba(229,57,53,.35);box-shadow:0 26px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(229,57,53,.2)}
.map-card::before{
  content:'';position:absolute;top:0;left:-60%;width:50%;height:100%;z-index:3;pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.16), transparent);
  transform:skewX(-18deg);transition:left .8s ease;
}
.map-card:hover::before{left:130%}
.map-iframe{filter:grayscale(35%) contrast(1.06);transition:filter .5s;display:block;width:100%;height:280px;border:0}
.map-card:hover .map-iframe{filter:grayscale(0%) contrast(1)}
.map-info{
  display:flex;align-items:center;justify-content:space-between;gap:1em;
  padding:1.15em 1.4em;background:linear-gradient(180deg,#17171a,#101012);
  border-top:1px solid rgba(255,255,255,.07);
}
.map-info b{display:block;font-size:1.08rem}
.map-info span{display:block;margin-top:.25em;color:var(--text-soft);font-size:.85rem;line-height:1.4}
.map-badge{
  position:absolute;top:14px;left:14px;z-index:4;
  padding:.42em .95em;border-radius:999px;font-size:.74rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase;
  background:rgba(10,10,11,.88);backdrop-filter:blur(10px);border:1px solid rgba(229,57,53,.5);color:#ffb3ad;
  box-shadow:0 6px 18px rgba(0,0,0,.4);
}

/* --- МАССАЖНАЯ СТУДИЯ --- */
.massage-section{position:relative;overflow:hidden}
.massage-pattern{
  position:absolute;inset:0;pointer-events:none;user-select:none;overflow:hidden;z-index:0;
}
.massage-pattern span{
  position:absolute;white-space:nowrap;font-weight:900;text-transform:uppercase;letter-spacing:.14em;
  color:rgba(229,57,53,.05);line-height:1;filter:blur(1.4px);
  animation:massageRow 60s linear infinite;
}
.massage-pattern span:nth-child(even){color:rgba(255,255,255,.022);animation-duration:80s;animation-direction:reverse}
@keyframes massageRow{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.massage-inner{position:relative;z-index:1}
.massage-title span{color:var(--primary)}
.massage-gallery{
  display:grid;grid-template-columns:repeat(6,1fr);gap:.9em;margin-top:1.8em;
}
.massage-gallery a{
  display:block;border-radius:16px;overflow:hidden;aspect-ratio:3/4;position:relative;
  border:1px solid rgba(255,255,255,.08);transition:transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s, border-color .45s;
  background:#1a1a1d;
}
.massage-gallery a img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1);display:block}
.massage-gallery a::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.55));opacity:0;transition:opacity .4s;
}
.massage-gallery a:hover{transform:translateY(-8px) rotate(-1deg);border-color:rgba(229,57,53,.4);box-shadow:0 18px 44px rgba(0,0,0,.5)}
.massage-gallery a:hover img{transform:scale(1.09)}
.massage-gallery a:hover::after{opacity:1}
@media(max-width:1100px){.massage-gallery{grid-template-columns:repeat(3,1fr);gap:.8em}}
@media(max-width:760px){.massage-gallery{grid-template-columns:repeat(3,1fr);gap:.55em}.massage-gallery a{border-radius:10px}}
.massage-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1.4em;flex-wrap:wrap}
.massage-cta{display:inline-flex;align-items:center;gap:.6em;padding:.8em 1.5em;border-radius:14px;
  border:1.5px solid rgba(229,57,53,.5);color:#ffb3ad;font-weight:800;letter-spacing:.03em;text-transform:uppercase;font-size:.86rem;
  transition:all .3s;background:rgba(229,57,53,.07)}
.massage-cta:hover{background:rgba(229,57,53,.16);color:#fff;box-shadow:0 8px 26px rgba(229,57,53,.3);transform:translateY(-2px)}
.massage-phone{font-weight:900;font-size:1.35rem;letter-spacing:.02em;color:#fff}
.massage-phone:hover{color:var(--primary-light)}

/* ==========================================================
   КАБИНЕТ v11 — стили для dashboard.php
   ========================================================== */
.cab-wrap{padding:calc(var(--header-h,120px) + 30px) 0 80px;background:#0a0a0b;min-height:100vh}
.cab-hero{
  display:flex;align-items:center;justify-content:space-between;gap:1.2em;flex-wrap:wrap;
  margin-bottom:2em;padding:1.4em 1.6em;border-radius:24px;
  background:linear-gradient(135deg,#17171b,#101013);border:1px solid rgba(255,255,255,.08);
}
.cab-hero-user{display:flex;align-items:center;gap:1.1em}
.cab-avatar{
  width:74px;height:74px;border-radius:22px;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(135deg,var(--primary),#8f1410);color:#fff;font-weight:900;font-size:1.5rem;
  border:2px solid rgba(229,57,53,.4);overflow:hidden;box-shadow:0 8px 24px rgba(229,57,53,.25);
}
.cab-avatar-sm{width:44px;height:44px;border-radius:14px;font-size:1rem;flex-shrink:0}
.cab-avatar-img{width:100%;height:100%;object-fit:cover;display:block}
.cab-avatar-init{letter-spacing:.02em}
.cab-name{margin:0;font-size:1.6rem;font-weight:900;letter-spacing:-.02em}
.cab-role-tag{display:inline-block;margin-top:.3em;padding:.28em .9em;border-radius:999px;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cab-role-user{background:rgba(229,57,53,.14);color:#ff8f86;border:1px solid rgba(229,57,53,.3)}
.cab-role-trainer{background:rgba(59,130,246,.16);color:#93c5fd;border:1px solid rgba(59,130,246,.35)}
.cab-role-owner,.cab-role-admin{background:rgba(251,191,36,.14);color:#fcd34d;border:1px solid rgba(251,191,36,.32)}
.cab-btn-ghost{
  display:inline-flex;align-items:center;padding:.6em 1.2em;border-radius:12px;
  border:1.5px solid rgba(255,255,255,.16);color:#fff;font-weight:700;font-size:.88rem;transition:all .3s;
}
.cab-btn-ghost:hover{border-color:var(--primary);color:var(--primary-light)}
.cab-btn-mini{
  display:inline-flex;align-items:center;padding:.5em 1em;border-radius:10px;
  background:rgba(229,57,53,.12);border:1px solid rgba(229,57,53,.3);color:#ffb3ad;
  font-weight:800;font-size:.82rem;transition:all .25s;cursor:pointer;
}
.cab-btn-mini:hover{background:rgba(229,57,53,.24);color:#fff}
.cab-chip{
  display:inline-flex;align-items:center;gap:.3em;padding:.32em .85em;border-radius:999px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:.8rem;
}
.cab-chip-btn{cursor:pointer;transition:all .25s}
.cab-chip-btn:hover{border-color:rgba(229,57,53,.4)}
.cab-chip-on{background:rgba(229,57,53,.16);border-color:rgba(229,57,53,.45);color:#ffb3ad}
.cab-chip b{color:var(--primary-light);font-size:1.05em;margin-right:.2em}

.cab-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4em;align-items:start}
.cab-col{display:flex;flex-direction:column;gap:1.4em;min-width:0}
.cab-card{
  background:#141416;border:1px solid rgba(255,255,255,.08);border-radius:24px;padding:1.5em;
  transition:border-color .3s;
}
.cab-card:hover{border-color:rgba(255,255,255,.14)}
.cab-card-flush{padding:0;overflow:hidden}
.cab-card-pad{padding:1.3em 1.5em 1.5em}
.cab-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1em}
.cab-card-head h2,.cab-card-head h3{margin:0;font-size:1.15rem;font-weight:900;letter-spacing:-.01em}
.cab-empty{color:var(--text-soft);font-size:.85rem;padding:.4em 0}

/* Клубная карта */
.club-card{
  position:relative;border-radius:24px 24px 0 0;padding:1.4em 1.5em 1.1em;color:#fff;
  overflow:hidden;min-height:190px;display:flex;flex-direction:column;justify-content:space-between;
}
.club-card::before{
  content:'СД';position:absolute;right:-14px;bottom:-34px;font-size:8rem;font-weight:900;
  color:rgba(255,255,255,.09);letter-spacing:-.05em;pointer-events:none;
}
.club-card-base{background:linear-gradient(135deg,#3d3f45,#232528)}
.club-card-silver{background:linear-gradient(135deg,#9099a5,#4b515c 60%,#333840)}
.club-card-amber{background:linear-gradient(135deg,#ffcf8a,#f5a94b 55%,#c57c1f);color:#221503;text-shadow:none}
.club-card-red{background:linear-gradient(135deg,#ff8f8a,#e53935 55%,#8f1410)}
.club-card-top{display:flex;justify-content:space-between;align-items:center}
.club-card-logo{font-size:.68rem;letter-spacing:.18em;font-weight:800;opacity:.85}
.club-card-type{font-weight:900;font-size:1.05rem;letter-spacing:.05em}
.club-card-name{font-size:1.35rem;font-weight:900;margin:.7em 0 .2em;text-transform:uppercase;letter-spacing:.03em}
.club-card-bottom{display:flex;justify-content:space-between;align-items:flex-end}
.club-card-label{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.club-card-value{font-size:1.05rem;font-weight:800;letter-spacing:.12em;margin-top:.15em}
.club-card-discount{font-size:2rem;font-weight:900;line-height:1}
.club-card-sheen{
  position:absolute;top:-20%;left:-70%;width:55%;height:140%;pointer-events:none;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.32), transparent);
  transform:skewX(-18deg);animation:trialSheen 5.5s ease-in-out infinite;
}

/* Прогресс до следующей карты */
.cab-stat-row{display:flex;gap:1.4em;align-items:center;flex-wrap:wrap}
.cab-stat{display:flex;flex-direction:column;align-items:center;padding:.4em 1em;border-right:1px solid rgba(255,255,255,.08)}
.cab-stat-num{font-size:2.2rem;font-weight:900;color:var(--primary-light);line-height:1}
.cab-stat-label{font-size:.75rem;color:var(--text-soft);margin-top:.3em}
.cab-progress{flex:1;min-width:170px}
.cab-progress-head{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-soft);margin-bottom:.4em}
.cab-progress-head b{color:var(--primary-light)}
.cab-progress-bar{height:9px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.cab-progress-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--primary),#ff8f86);box-shadow:0 0 12px rgba(229,57,53,.5);transition:width .8s}
.cab-max-tier{color:var(--primary-light);font-weight:700;font-size:.9rem}
.cab-terms{margin-top:1.1em;border-top:1px solid rgba(255,255,255,.07);padding-top:.9em}
.cab-terms summary{cursor:pointer;font-weight:800;font-size:.88rem;color:#ffb3ad}
.cab-terms ul{margin:.7em 0 0;padding-left:1.2em;color:var(--text-soft);font-size:.83rem;line-height:1.65}
.cab-terms li{margin-bottom:.2em}
.cab-terms b{color:#fff}

/* Профиль спортсмена */
.cab-profile-form{display:flex;flex-direction:column;gap:.7em}
.cab-profile-form label{display:flex;flex-direction:column;gap:.3em;font-size:.8rem;color:var(--text-soft);font-weight:700}
.cab-profile-grid{display:grid;grid-template-columns:auto 1fr;gap:1.2em;align-items:start}
.cab-photo-wrap{display:flex;flex-direction:column;gap:.6em;align-items:center}
.cab-photo{
  width:130px;height:150px;border-radius:18px;background:#1b1b1f;display:grid;place-items:center;
  border:1px dashed rgba(255,255,255,.16);overflow:hidden;font-size:1.8rem;font-weight:900;color:var(--text-soft);
}
.cab-photo-md{width:110px;height:130px}
.cab-photo img{width:100%;height:100%;object-fit:cover}
.cab-fields{display:grid;grid-template-columns:1fr 1fr;gap:.7em}
.cab-saved{color:#7ee08f;font-weight:700;font-size:.88rem}
.cab-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:.6em;flex:1}
.cab-metric{background:#1a1a1e;border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:.75em .9em;display:flex;flex-direction:column;gap:.2em}
.cab-metric span{font-size:.68rem;color:var(--text-soft);letter-spacing:.06em;text-transform:uppercase}
.cab-metric b{font-size:1.05rem;font-weight:900}

/* Достижения */
.cab-achv{margin-top:.2em}
.cab-achv-list{display:flex;flex-direction:column;gap:.5em}
.cab-achv-item{
  display:flex;align-items:center;gap:.8em;padding:.6em .9em;border-radius:12px;
  background:#191920;border:1px solid rgba(255,255,255,.07);
}
.cab-achv-kind{
  flex-shrink:0;padding:.28em .7em;border-radius:999px;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  background:rgba(251,191,36,.14);color:#fcd34d;border:1px solid rgba(251,191,36,.3);
}
.cab-achv-text{flex:1;min-width:0;display:flex;flex-direction:column}
.cab-achv-text b{font-size:.92rem}
.cab-achv-text span{font-size:.78rem;color:var(--text-soft)}
.cab-achv-date{color:var(--text-soft);font-size:.78rem;flex-shrink:0}
.cab-del{
  margin-left:auto;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex-shrink:0;
  background:rgba(229,57,53,.12);color:#ff9b96;border:1px solid transparent;cursor:pointer;font-size:.8rem;transition:all .2s;
}
.cab-del:hover{background:var(--primary);color:#fff}

/* Расписание */
.cab-sched{display:grid;grid-template-columns:repeat(7,1fr);gap:.5em}
.cab-sched-day{background:#18181c;border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:.6em .55em;min-height:120px}
.cab-sched-head{font-weight:900;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--primary-light);margin-bottom:.45em;text-align:center}
.cab-sched-items{display:flex;flex-direction:column;gap:.35em}
.cab-lesson{
  position:relative;background:#202025;border:1px solid rgba(255,255,255,.07);border-radius:10px;
  padding:.5em .6em;font-size:.74rem;line-height:1.35;display:flex;flex-direction:column;
}
.cab-lesson b{color:var(--primary-light);font-size:.78rem}
.cab-lesson span{color:var(--text-soft);font-style:italic;font-size:.7rem}
.cab-lesson .cab-del{position:absolute;top:2px;right:2px;width:18px;height:18px;font-size:.6rem;border-radius:6px;opacity:0;transition:opacity .2s}
.cab-lesson:hover .cab-del{opacity:1}
.cab-inline-form{display:flex;gap:.5em;flex-wrap:wrap;align-items:center}
.cab-inline-form .input{background:#1a1a1e;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.55em .8em;color:#fff;font-size:.85rem}

/* Посещения */
.cab-visits{display:flex;flex-direction:column;gap:.4em;max-height:220px;overflow:auto}
.cab-visit{
  display:flex;align-items:center;gap:.7em;padding:.5em .8em;border-radius:10px;
  background:#191920;border:1px solid rgba(255,255,255,.06);font-size:.83rem;
}
.cab-visit span{color:var(--text-soft);font-size:.76rem}
.cab-visit b{margin-right:auto}
.cab-visit i{color:var(--text-soft);font-size:.76rem}

/* Тренер */
.cab-trainer{display:grid;grid-template-columns:270px 1fr;gap:1.4em;align-items:start}
.cab-trainer-side{position:sticky;top:calc(var(--header-h,120px) + 16px)}
.cab-trainer-main{display:flex;flex-direction:column;min-width:0}
.cab-athlete-list{display:flex;flex-direction:column;gap:.4em}
.cab-athlete-item{
  display:flex;align-items:center;gap:.7em;padding:.6em .7em;border-radius:14px;
  background:#141416;border:1px solid rgba(255,255,255,.07);transition:all .25s;color:#fff;
}
.cab-athlete-item:hover{border-color:rgba(229,57,53,.3);transform:translateX(3px)}
.cab-athlete-item.active{border-color:var(--primary);background:rgba(229,57,53,.08)}
.cab-athlete-item div:last-child{display:flex;flex-direction:column;min-width:0}
.cab-athlete-item b{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cab-athlete-item span{font-size:.72rem;color:var(--text-soft)}
.cab-athlete-head{display:flex;align-items:flex-start;gap:1.1em;flex-wrap:wrap}
.cab-athlete-head > div{flex:1;min-width:200px}
.cab-athlete-head .btn{flex-shrink:0}
.cab-goals{margin-top:1em;padding:.7em 1em;border-radius:12px;background:rgba(229,57,53,.07);border:1px solid rgba(229,57,53,.15);font-size:.88rem}

/* Чат */
.cab-chat-peer{
  display:inline-flex;padding:.45em 1em;margin:0 .4em .6em 0;border-radius:999px;cursor:pointer;
  background:rgba(229,57,53,.1);border:1px solid rgba(229,57,53,.3);color:#ffb3ad;font-weight:800;font-size:.84rem;transition:all .25s;
}
.cab-chat-peer:hover{background:rgba(229,57,53,.22);color:#fff}
.cab-chat-body{
  height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.55em;padding:.9em;
  background:#101013;border:1px solid rgba(255,255,255,.06);border-radius:16px;margin-bottom:.7em;
}
.cab-msg{display:flex;flex-direction:column;max-width:76%;align-items:flex-start}
.cab-msg-mine{align-self:flex-end;align-items:flex-end}
.cab-msg-bub{
  padding:.6em .95em;border-radius:16px 16px 16px 4px;background:#222227;font-size:.9rem;line-height:1.45;
}
.cab-msg-mine .cab-msg-bub{background:linear-gradient(135deg,var(--primary),#b71c1c);border-radius:16px 16px 4px 16px}
.cab-msg-time{font-size:.66rem;color:var(--text-soft);margin-top:.25em;padding:0 .3em}
.cab-chat-form{display:flex;gap:.6em}
.cab-chat-form .input{flex:1;background:#1a1a1e;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:.7em 1em;color:#fff}

/* Owner */
.cab-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1em;margin-bottom:1.4em}
.cab-stat-card{
  background:linear-gradient(135deg,#18181c,#111114);border:1px solid rgba(255,255,255,.08);
  border-radius:20px;padding:1.1em 1.2em;display:flex;flex-direction:column;gap:.15em;
}
.cab-stat-card b{font-size:2rem;font-weight:900;color:var(--primary-light);line-height:1.05}
.cab-stat-card span{color:var(--text-soft);font-size:.8rem}
.cab-owner-grid{display:grid;grid-template-columns:340px 1fr;gap:1.4em;align-items:start}
.cab-audit{display:flex;flex-direction:column;gap:.35em;max-height:340px;overflow:auto}
.cab-audit-row{display:flex;gap:.8em;align-items:center;padding:.45em .7em;border-radius:10px;background:#16161a;font-size:.78rem;flex-wrap:wrap}
.cab-audit-when{color:var(--text-soft);font-size:.7rem;flex-shrink:0}
.cab-audit-act{color:#ffb3ad;font-weight:800;background:rgba(229,57,53,.1);padding:.2em .6em;border-radius:6px}
.cab-audit-what{color:var(--text-soft)}

/* Мобильная версия кабинета */
@media(max-width:1100px){
  .cab-grid{grid-template-columns:1fr}
  .cab-trainer{grid-template-columns:220px 1fr}
  .cab-owner-grid{grid-template-columns:280px 1fr}
  .cab-sched{grid-template-columns:repeat(7,1fr);gap:.35em}
  .cab-stats{grid-template-columns:repeat(2,1fr)}
  .cab-fields{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .cab-wrap{padding:calc(var(--header-h,72px) + 14px) 0 50px}
  .cab-grid{grid-template-columns:1fr}
  .cab-trainer{grid-template-columns:1fr}
  .cab-trainer-side{position:static}
  .cab-athlete-list{flex-direction:row;overflow-x:auto;padding-bottom:.4em;margin:-.2em -.4em;padding:.2em .4em .6em}
  .cab-athlete-item{flex-shrink:0}
  .cab-owner-grid{grid-template-columns:1fr}
  .cab-stats{grid-template-columns:repeat(2,1fr);gap:.6em}
  .cab-stat-card b{font-size:1.4rem}
  .cab-sched{grid-template-columns:repeat(4,1fr);gap:.4em}
  .cab-sched-day{min-height:90px}
  .cab-profile-grid{grid-template-columns:1fr}
  .cab-photo-wrap{flex-direction:row}
  .cab-metrics{grid-template-columns:repeat(2,1fr)}
  .cab-fields{grid-template-columns:1fr 1fr}
  .cab-hero{padding:1em}
  .cab-avatar{width:54px;height:54px;border-radius:16px;font-size:1.1rem}
  .cab-name{font-size:1.2rem}
  .cab-card{padding:1em}
  .club-card-name{font-size:1.05rem}
  .cab-chat-form{flex-direction:column}
  .cab-message{max-width:90%}
}

/* ==========================================================
   ПАКЕТ 11.1 — VK-кнопка, cookie-баннер, кнопки-альбомы, МЕНЮ
   ========================================================== */

/* --- Плавающая кнопка VK слева снизу --- */
.vk-float{
  position:fixed;left:16px;bottom:18px;z-index:9400;
  display:inline-flex;align-items:center;gap:.5em;
  padding:.75em 1.05em .75em .75em;border-radius:999px;
  background:linear-gradient(135deg,#2563eb,#1d4ed8);
  border:1px solid rgba(255,255,255,.22);color:#fff;
  box-shadow:0 10px 30px rgba(37,99,235,.4), inset 0 1px 0 rgba(255,255,255,.25);
  font-weight:800;font-size:.83rem;letter-spacing:.02em;
  transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s;
  text-decoration:none;
}
.vk-float:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 16px 40px rgba(37,99,235,.55)}
.vk-float svg{display:block}
.vk-float::before{
  content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.28) 50%, transparent 70%);
  background-size:260% 100%;background-position:210% 0;
  animation:glassSweep 6.5s linear infinite;
}
@media(max-width:760px){.vk-float{bottom:12px;left:10px;padding:.6em .85em .6em .6em;font-size:.74rem}}

/* --- Cookie-баннер --- */
.cookie-bar{
  position:fixed;left:50%;bottom:16px;transform:translate(-50%,140%);z-index:9500;
  width:min(620px,calc(100vw - 24px));
  display:flex;align-items:center;gap:1em;flex-wrap:wrap;
  padding:.95em 1.2em;border-radius:18px;
  background:rgba(18,18,22,.92);backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 18px 50px rgba(0,0,0,.55);
  color:#e4e4e7;font-size:.8rem;line-height:1.45;
  transition:transform .45s cubic-bezier(.16,1,.3,1);
}
.cookie-bar.show{transform:translate(-50%,0)}
.cookie-bar-text{flex:1;min-width:240px;box-sizing:border-box}
.cookie-bar-text a{color:#ffb3ad;text-decoration:underline}
.cookie-btn{
  padding:.55em 1.5em;border-radius:999px;border:0;
  background:var(--primary);color:#fff;font-weight:800;font-size:.85rem;letter-spacing:.03em;
  transition:all .3s;cursor:pointer;text-transform:uppercase;
}
.cookie-btn:hover{background:var(--primary-light);box-shadow:0 6px 22px rgba(229,57,53,.45)}
@media(max-width:760px){.cookie-bar{bottom:64px;font-size:.72rem;padding:.8em 1em}}

/* --- Кнопки-альбомы (галерея / летняя площадка) --- */
.gallery-links{display:flex;gap:1em;justify-content:center;flex-wrap:wrap;margin-top:1.8em;padding:0 2.5vw}
.summer-links{display:flex;gap:1em;justify-content:center;flex-wrap:wrap;margin-top:1.8em}
.gallery-link-btn{
  display:inline-flex;align-items:center;gap:.6em;
  padding:.95em 1.9em;border-radius:999px;text-decoration:none;
  font-weight:900;font-size:.92rem;letter-spacing:.05em;text-transform:uppercase;
  color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.05));
  border:1.5px solid rgba(229,57,53,.6);
  box-shadow:0 8px 26px rgba(229,57,53,.22), inset 0 1px 0 rgba(255,255,255,.18);
  transition:all .35s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;
}
.gallery-link-btn:hover{transform:translateY(-3px);background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 14px 36px rgba(229,57,53,.5)}
.gallery-link-btn svg{display:block}
.gallery-link-star{color:#ffd24a;font-size:1.05em}
.gallery-link-btn--light{color:#0a0a0b;background:#fff;border-color:rgba(229,57,53,.55);box-shadow:0 8px 26px rgba(0,0,0,.10)}
.gallery-link-btn--light:hover{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}
@media(max-width:760px){.gallery-link-btn{padding:.7em 1.2em;font-size:.74rem;gap:.45em}}

/* --- Мобильная кнопка МЕНЮ --- */
@media(max-width:760px){
  .mobile-toggle{width:auto;height:44px;padding:0 16px;border-radius:12px;place-items:center}
  .mobile-toggle-label{font-weight:900;font-size:.72rem;letter-spacing:.14em;color:#fff}
  .mobile-toggle::after{content:'▾';margin-left:.5em;color:var(--primary-light);font-size:.9em}
}

/* ==========================================================
   МОБИЛЬНАЯ ВЕРСИЯ — пакет правок 11.1 (≤760px)
   ========================================================== */
@media(max-width:760px){
  /* 3. Шрифты меньше, глобально чуть компактнее */
  html{font-size:13px}

  /* 4. Меньше воздуха сверху/снизу у блоков */
  .section{padding:26px 0}
  .trial-section,.summer-section,.contacts-section{padding:30px 0}
  .gallery-section{padding:0 0 26px}
  .gallery-header{padding:30px 3vw 18px}
  .maps-section{padding:0 0 26px}
  .industry-section{padding:26px 0 0}
  .services-grid,.trainers-grid,.prices-wrap{margin-top:1.1em !important}
  .why-grid{margin-top:1em}
  .section-title{margin-bottom:.45em}
  .footer{padding:36px 0 0}

  /* 1. Кнопка «Отправить заявку» в модалке в 2 раза меньше */
  .modal-box{padding:1.3em}
  .modal-box h3{font-size:1.05rem !important;margin-bottom:.2em}
  .modal-box p{font-size:.8rem;margin-bottom:.8em !important}
  #app-form{gap:.6em}
  #app-form .input{padding:.65em .9em;font-size:.8rem;border-radius:10px}
  #app-form .btn-glass{padding:.6em 1.3em !important;font-size:.75rem !important;min-height:0 !important;border-radius:10px}
  #app-form .messenger-options{margin:.4em 0 !important}
  #app-form .checkbox{font-size:.7rem}

  /* 2. Убрать кнопку «Направления» в hero на мобильных */
  .hero-cta .btn-ghost{display:none}
  /* 1б. Сама «Отправить заявку» в hero тоже компактнее */
  .hero-cta .btn-glass{min-height:0 !important}

  /* 5. Тексту первого блока чуть уже — фотке больше места */
  .hero-inner{grid-template-columns:.9fr 1.1fr;gap:10px;padding:0 3vw 20px;min-height:0}
  .hero{padding-top:calc(var(--header-h,120px) + 8px)}
  .hero-content{padding-bottom:10px}
  .hero-visual{min-height:250px}
  .hero-title{font-size:clamp(1.2rem,5.6vw,1.8rem)}
  .hero-desc{font-size:.78rem;line-height:1.4;margin:.5em 0 .8em}
  .hero-note{display:none}

  /* 6. WHY: цифры меньше, текст занимает весь блок, не вылазит */
  .why-grid{grid-template-columns:repeat(2,1fr);gap:.7em}
  .why-item{padding:.95em .9em .85em .95em;border-radius:16px}
  .why-num{font-size:3.2rem;left:.08em;top:.08em;opacity:.14}
  .why-item .why-content{margin-top:.4em;width:100%;min-width:0}
  .why-content h3{font-size:.92rem;margin-bottom:.35em;line-height:1.15}
  .why-content p{font-size:.72rem;line-height:1.5;overflow-wrap:break-word}

  /* 7. TRIAL: текст/цифры больше не залазят на фотку — фото уходит под список */
  .trial-inner{grid-template-columns:1fr;gap:1em}
  .trial-kicker{margin-bottom:.6em}
  .trial-title{font-size:1.35rem;margin-bottom:.4em}
  .trial-desc{font-size:.82rem}
  .trial-cta .btn{width:100%;justify-content:center;font-size:.72rem !important;padding:.9em 1em !important;min-height:0 !important}
  .trial-card{flex-direction:column;align-items:stretch;min-height:0;padding:1em 1em 0;gap:.9em;border-radius:16px}
  .trial-list{gap:.6em}
  .trial-list-item{font-size:.78rem}
  .trial-num{width:28px;height:28px;font-size:.66rem;border-radius:7px}
  .trial-visual{position:static;width:100%;height:170px;border-radius:10px;margin:0}
  .trial-visual::after{border-radius:10px}

  /* 8. ЦЕНЫ: 1 блок в ряд, кнопка крупнее, название категории крупнее */
  .prices-wrap{grid-template-columns:1fr !important;gap:.9em !important}
  .price-card-header{padding:1em 1.1em .8em !important}
  .price-card-name{font-size:1.12rem !important;line-height:1.15 !important}
  .price-card-body{padding:.9em 1.1em !important}
  .price-item b{font-size:.85rem}
  .price-item span{font-size:.72rem !important}
  .price-val{font-size:.95rem}
  .price-card-footer{padding:.9em 1.1em 1.1em !important}
  .price-card .btn{padding:.95em 1.2em !important;font-size:.85rem !important;width:100%;justify-content:center}

  /* 9. ИНДУСТРИЯ: текст и кнопка сверху, фото снизу */
  .industry-inner{display:flex;flex-direction:column;gap:14px;min-height:0}
  .industry-content{order:0;padding-bottom:0}
  .industry-visual{order:1;min-height:230px;border-radius:16px;overflow:hidden}
  .industry-title{font-size:1.3rem;margin-bottom:.5em}
  .industry-section> .section-inner > p,.industry-content>p{font-size:.82rem !important;margin-bottom:.6em !important}
  .industry-steps{margin:1em 0;gap:1.1em}
  .industry-step-num{font-size:3.6rem;left:0;top:-.5em}
  .industry-step-content{margin-left:1.4em;padding:.85em 1em;border-radius:12px}
  .industry-step b{font-size:.85rem}
  .industry-step span{font-size:.74rem}
  .industry-content .btn{margin-top:.8em !important;padding:.8em 1.4em !important;font-size:.8rem !important;min-height:0 !important}

  /* 10. ТРЕНЕРЫ: одна карточка в ряд, друг за другом */
  .trainers-grid{grid-template-columns:1fr !important;gap:.9em;margin-top:1.1em}
  .trainer-card{flex-direction:column;padding:.9em;gap:.9em;border-radius:18px;min-height:0}
  .trainer-photo{width:100%;max-width:320px;margin:0 auto;min-height:0;aspect-ratio:3/4;border-radius:14px}
  .trainer-name{font-size:1.3rem}
  .trainer-pos{font-size:.78rem;margin-bottom:.5em}
  .trainer-ach{font-size:.82rem;line-height:1.5}
  .trainers-cta{margin-top:1.3em}
  .trainers-cta .btn{font-size:.78rem !important;padding:.85em 1.4em !important;min-height:0 !important}

  /* 11. ЛЕТНЯЯ ПЛОЩАДКА: фото друг за другом, не огромные */
  .summer-grid{grid-template-columns:1fr !important;gap:.9em;max-width:520px;margin-left:auto;margin-right:auto;margin-top:1.2em}
  .summer-card{aspect-ratio:16/10 !important;border-radius:16px}
  .summer-section .section-title{font-size:clamp(1.15rem,5.4vw,1.7rem)}
  .summer-section p{font-size:.8rem}

  /* 12. КОНТАКТЫ: форма под контактным текстом */
  .contacts-inner{grid-template-columns:1fr;gap:1.2em;padding:0 3vw}
  .contact-form{position:static;top:auto;padding:1.2em;border-radius:18px}
  .contacts-list{gap:.8em;margin-top:1em}
  .contact-item{padding:.85em 1em;min-height:0;border-radius:14px;grid-template-columns:44px 1fr}
  .contact-icon{width:44px;height:44px;border-radius:11px}
  .contact-form h3{font-size:1.05rem}
  .contact-form .btn-glass{padding:.8em 1.2em !important;font-size:.8rem !important;min-height:0 !important}

  /* 13. КАРТЫ: по одной в ряд */
  .maps-grid{grid-template-columns:1fr;gap:1em}
  .map-iframe{height:220px}
  .map-info{position:static;flex-direction:column;align-items:flex-start;gap:.7em;border-top:1px solid rgba(255,255,255,.07)}
  .map-info .btn{width:100%}

  /* Footer чуть компактнее */
  .footer-grid{gap:1em;padding-bottom:18px}
  .footer-brand p{font-size:.78rem}
  .footer-links a,.footer-links span{font-size:.78rem}
}

/* планшетная аккуратность */
@media(min-width:761px) and (max-width:1100px){
  .prices-wrap{grid-template-columns:1fr 1fr !important}
  .trial-inner{grid-template-columns:1fr;gap:24px}
}

/* --- НОВОСТНАЯ СТРАНИЦА (пакет 11.1) --- */
.vk-feed{display:flex;flex-direction:column;gap:1.2em;margin-top:2em;max-width:860px}
.vk-post{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:1.2em;background:#141416;border:1px solid rgba(255,255,255,.08);border-radius:20px;overflow:hidden}
.vk-post-photos{display:grid;grid-template-columns:1fr;gap:2px;min-height:220px}
.vk-post-photos--grid{grid-template-columns:1fr 1fr}
.vk-post-photos img{width:100%;height:100%;object-fit:cover;min-height:110px}
.vk-post-body{padding:1.2em 1.3em;display:flex;flex-direction:column;gap:.6em}
.vk-post-meta{display:flex;align-items:center;gap:.5em;color:#8ab4f8;font-size:.78rem;font-weight:700}
.vk-post-body p{color:var(--text-soft);font-size:.9rem;line-height:1.6}
.vk-post-more{margin-top:auto;color:var(--primary-light);font-weight:800;font-size:.84rem}
.vk-widget-wrap{display:flex;gap:1.4em;align-items:flex-start;margin-top:2em;flex-wrap:wrap}
#vk_community_widget{background:#141416;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1.2em;min-height:460px;display:flex;align-items:center;justify-content:center}
.vk-widget-fallback{display:flex;flex-direction:column;align-items:center;gap:.8em;text-align:center;color:#8ab4f8;padding:2em}
.vk-widget-fallback b{color:#fff;font-size:1.1rem}
.vk-widget-fallback span{color:var(--text-soft);font-size:.85rem;max-width:26ch}
.vk-widget-fallback i{color:var(--primary-light);font-style:normal;font-weight:800}
.vk-side-cards{display:flex;flex-direction:column;gap:.9em;flex:1;min-width:260px}
.vk-side-card{display:flex;flex-direction:column;gap:.2em;padding:1.1em 1.3em;background:#141416;border:1px solid rgba(255,255,255,.08);border-radius:18px;transition:all .3s}
.vk-side-card:hover{border-color:rgba(229,57,53,.4);transform:translateX(4px)}
.vk-side-card span{font-size:1.3rem}
.vk-side-card b{font-size:.95rem;color:#fff}
.vk-side-card i{color:var(--text-soft);font-style:normal;font-size:.78rem}
.vk-owner-help{margin-top:2em;padding:1em 1.3em;background:rgba(251,191,36,.06);border:1px solid rgba(251,191,36,.25);border-radius:16px;color:var(--text-soft);font-size:.88rem;line-height:1.65;max-width:860px}
.vk-owner-help summary{cursor:pointer;color:#fcd34d;font-weight:800}
.vk-owner-help ol{margin:.8em 0;padding-left:1.4em;display:flex;flex-direction:column;gap:.4em}
.vk-owner-help code{background:rgba(255,255,255,.1);padding:.1em .5em;border-radius:6px;color:#fff}
@media(max-width:760px){.vk-post{grid-template-columns:1fr}.vk-feed{margin-top:1.2em}.vk-widget-wrap{flex-direction:column}#vk_community_widget{width:100%;min-height:380px}}

/* --- смена пароля в кабинете --- */
.cab-passcard{margin-bottom:1.4em;cursor:default}
.cab-passcard-sum{cursor:pointer;font-weight:800;font-size:.95rem;color:#ffb3ad;list-style:none;display:flex;align-items:center;gap:.5em}
.cab-passcard-sum::before{content:'🔑';font-size:.9em}
.cab-passcard-open[open] .cab-passcard-sum{color:#fff}
.cab-passcard .input{background:#1a1a1e;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:.6em .9em;color:#fff}

/* --- Пакет 11.2: цены крупнее, кнопка, строки ±, badge полная ширина, fadeup --- */
.price-item{position:relative}
.price-row-del{
  position:absolute;top:50%;right:-6px;transform:translateY(-50%);
  width:26px;height:26px;border-radius:8px;border:0;
  background:rgba(229,57,53,.1);color:#c62828;font-size:15px;font-weight:700;line-height:1;
  display:grid;place-items:center;cursor:pointer;transition:all .2s;
}
.price-row-del:hover{background:var(--primary);color:#fff}
.price-row-add{
  margin-top:.7em;width:100%;padding:.7em;border-radius:12px;
  background:rgba(229,57,53,.08);border:1.5px dashed rgba(229,57,53,.4);color:#c62828;
  font-weight:800;font-size:.85rem;cursor:pointer;transition:all .25s;
}
.price-row-add:hover{background:rgba(229,57,53,.16)}
.btn-price{min-height:56px;font-size:1.05rem !important;padding:1em 2.4em !important}
.gallery-link-more{
  margin-left:.35em;font-weight:800;color:#ffb3ad;opacity:.85;
  font-size:.86em;text-transform:none;letter-spacing:.02em;
}
.gallery-link-btn--light .gallery-link-more{color:var(--primary)}
/* hero badge на мобиле — на всю ширину */
@media(max-width:760px){
  .hero-badge{width:100%;align-self:stretch;justify-content:center}
  .hero-stats{display:none !important}
  /* шапка закреплена, не сворачивается при скролле */
  .header{transform:none !important;transition:background .3s,-webkit-transform 0s !important;will-change:auto}
  .header-inner{height:64px !important}
  /* цены: названия категорий ×2 */
  .price-card-name{font-size:2rem !important;line-height:1.1 !important}
  .price-item b{font-size:1.3rem !important}
  .price-item span{font-size:1.1rem !important}
  .price-val{font-size:1.7rem}
  .price-item{padding:1em 1.1em !important}
  .btn-price{font-size:1.05rem !important;padding:1em 2em !important;min-height:60px}
  /* описание тренеров крупнее х2 */
  .trainer-ach{font-size:1.18rem;line-height:1.6}
  .trainer-pos{font-size:.95rem;margin-bottom:.6em}
  .trainer-name{font-size:1.5rem}
  /* летняя площадка: фото в пределах экрана, не сплющенные */
  .summer-grid{max-width:100% !important;padding:0;gap:.9em;margin-top:1.1em}
  .summer-card{aspect-ratio:16/10 !important;border-radius:14px;overflow:hidden}
  .summer-card-img{height:54vw;max-height:300px}
  .summer-card-img img{width:100%;height:100%;object-fit:cover}
}

/* --- Пакет 11.3: кнопка «Отправить заявку» над фото справа, блок без нижних отступов --- */
@media(max-width:760px){
  /* высота шапки в переменной тоже 64px — убирает лишний «воздух» сверху */
  html{--header-h:64px !important}
  .hero-inner{position:relative;padding-bottom:0 !important;min-height:0}
  .hero-content{padding-bottom:0 !important}
  .hero{padding-bottom:0}
  /* кнопка парит поверх фото с правой стороны */
  .hero-cta{
    position:absolute;top:6px;right:0;left:auto;width:auto;margin:0;z-index:45;
    justify-content:flex-end;pointer-events:none;
  }
  .hero-cta .btn-glass{
    pointer-events:auto;
    padding:.55em .9em !important;font-size:.68rem !important;min-height:0 !important;
    border-radius:12px;box-shadow:0 10px 26px rgba(229,57,53,.45);
  }
  /* текстовая колонка не перекрывает кнопку */
  .hero-visual-img{border-radius:16px}
}

/* --- Пакет 11.4: ГАРАНТИРОВАННЫЙ фикс летней площадки на мобильной ---
   Нейтрализуем любые моб.отклонения пользовательских слайдеров редактора
   (--sum-h в px, --sum-ar:auto, --sum-fit:contain): карточка всегда
   16/10 и запирается в границах экрана, фото — строгий object-fit:cover. */
@media(max-width:760px){
  [data-block] .summer-card{
    aspect-ratio:16/10 !important;
    height:auto !important;min-height:0 !important;max-height:none !important;
    width:100% !important;max-width:100% !important;
    overflow:hidden !important;border-radius:14px;
  }
  .summer-card{aspect-ratio:16/10 !important;height:auto !important}
  .summer-card .summer-card-img{
    flex:none;height:auto !important;aspect-ratio:16/10;width:100%;overflow:hidden !important;
  }
  .summer-card .summer-card-img img{
    width:100% !important;height:100% !important;max-width:none !important;
    object-fit:cover !important;object-position:center center;
    transform:none !important;display:block;
  }
  [data-block] .summer-grid,
  .summer-grid{
    display:grid;grid-template-columns:1fr !important;
    width:100% !important;max-width:560px !important;
    margin-left:auto !important;margin-right:auto !important;
    gap:.9em;padding-left:0;padding-right:0;
  }
  .summer-section{overflow-x:hidden}
}

/* --- Пакет 11.4: кнопки тренеров для редактора --- */
.trainer-add{
  margin:1em auto 0;display:flex;align-items:center;gap:.4em;
  padding:.85em 1.7em;border-radius:999px;
  background:rgba(229,57,53,.1);border:1.5px dashed rgba(229,57,53,.55);color:#ffb3ad;
  font-weight:800;font-size:.9rem;cursor:pointer;letter-spacing:.03em;transition:all .3s;
}
.trainer-add:hover{background:rgba(229,57,53,.22);color:#fff;transform:translateY(-2px)}
/** 11.6: крестик удаления — в ЛЕВОМ верхнем углу карточки (по фото),
    чтобы не пересекаться с карандашом редактирования имени (правый верхний угол).
    В планшетной/мобильной раскладке фото идёт первым блоком, крестик остаётся на фото. */
.trainer-card{position:relative}
.trainer-del{
  position:absolute;top:10px;left:10px;right:auto;z-index:14;
  width:28px;height:28px;border-radius:9px;border:0;
  background:rgba(229,57,53,.9);color:#fff;font-size:16px;font-weight:700;line-height:1;
  display:grid;place-items:center;cursor:pointer;transition:all .25s;opacity:0;
}
.trainer-card:hover .trainer-del{opacity:1}
.trainer-del:hover{background:#B71C1C;transform:scale(1.08)}
.trainer-cta{display:flex;flex-direction:column;gap:.8em;align-items:center}
.trainers-cta .btn{margin:0}

/* --- Пакет 11.6: список «Все пользователи» со сменой роли (owner/admin) --- */
.cab-users{display:flex;flex-direction:column;gap:.55em;max-height:520px;overflow:auto}
.cab-urow{
  display:flex;align-items:center;gap:.8em;padding:.55em .8em;
  border:1px solid var(--border);border-radius:14px;background:var(--bg-soft);
}
.cab-urow-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1em}
.cab-urow-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-urow-info span{font-size:.76rem;color:var(--text-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-urow .cab-role-tag{margin-top:0;flex-shrink:0}
.cab-role-set{width:auto;min-width:140px;max-width:180px;padding:.42em .7em;font-size:.85rem;flex-shrink:0}
@media (max-width:640px){
  .cab-urow{flex-wrap:wrap;gap:.5em}
  .cab-urow-info{flex:1 1 50%}
  .cab-role-set{min-width:120px;flex:1 1 auto}
}

/* --- Пакет 11.6: фото-заглушка на отдельных страницах меню --- */
.page-photo{
  margin:2.2em auto 0;max-width:1080px;border-radius:24px;overflow:hidden;
  border:1px solid var(--border);background:var(--bg-soft);
  aspect-ratio:21/9;position:relative;
}
.page-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:760px){
  .page-photo{border-radius:16px;aspect-ratio:4/3;margin-top:1.6em}
}

/* --- Пакет 11.8: мобильный hero (уверенность скрыта, кнопка по центру фото, бейдж компактнее),
     и блок цен (названия категорий ×1.5, по центру, скругление сильнее) --- */
@media(max-width:760px){
  /* заголовок «Обретите уверенность в себе» на мобильной не показываем */
  .hero-title{display:none !important}
  /* бейдж «Первая тренировка бесплатно» — компактнее, в одну строку */
  .hero-badge{
    font-size:.52rem !important;letter-spacing:.04em !important;
    padding:.4em .9em !important;gap:.35em !important;
    white-space:nowrap;margin-bottom:.8em !important;
  }
  .hero-badge svg{width:12px;height:12px;flex:0 0 auto}
  /* кнопка «Отправить заявку» — чуть крупнее и по центру верха фото.
     Фото — правая колонка 1.1fr грида (.9fr+1.1fr), её центр ≈ 71vw => right ≈ 29% */
  .hero-cta{
    top:10px !important;right:29% !important;left:auto !important;
    transform:translateX(50%);
    width:auto !important;margin:0 !important;z-index:45;
  }
  .hero-cta .btn-glass{
    font-size:.86rem !important;padding:.75em 1.35em !important;
    min-height:0 !important;border-radius:14px;
    box-shadow:0 12px 30px rgba(229,57,53,.5);
  }
}

/* цены: название категории ×1.5, по центру; карточки сильнее скруглены */
.price-card{border-radius:36px !important}
.price-card-name{font-size:2.2rem !important;line-height:1.1 !important;text-align:center !important}
@media(max-width:760px){
  .price-card{border-radius:26px !important}
  .price-card-name{font-size:2.5rem !important;line-height:1.08 !important;text-align:center !important}
  .price-card-header{padding:1em 1.2em .8em !important}
}

/* ==================== ПАКЕТ 12.0: кабинет v12 ==================== */
/* Календарь месяца */
.cab-cal{margin-top:.4em}
.cab-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7em}
.cab-cal-title{font-weight:800;font-size:1rem}
.cab-cal-navbtn{
  width:34px;height:34px;border-radius:10px;border:1px solid var(--border);
  background:var(--bg-soft);color:var(--text);cursor:pointer;font-size:1.05rem;line-height:1;
  transition:all .2s;display:grid;place-items:center;padding:0;
}
.cab-cal-navbtn:hover{border-color:var(--primary);color:var(--primary)}
.cab-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.cab-cal-wd{text-align:center;font-size:.68rem;color:var(--text-soft);font-weight:700;padding:.2em 0;text-transform:uppercase}
.cab-cal-day{
  position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:10px;
  background:var(--bg-soft);color:var(--text);cursor:pointer;font-size:.8rem;font-weight:600;
  transition:all .15s;padding:0;display:flex;align-items:flex-start;justify-content:flex-start;
  padding:5px;
}
.cab-cal-day:hover{border-color:var(--primary);transform:translateY(-1px)}
.cab-cal-day--other{opacity:.32}
.cab-cal-day--today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.cab-cal-day--sel{background:rgba(229,57,53,.16);border-color:var(--primary)}
.cab-cal-dot,.cab-cal-dots{position:absolute;bottom:3px;left:5px;right:5px;display:flex;gap:2px;flex-wrap:wrap}
.cab-cal-dot{width:5px;height:5px;border-radius:99px;background:var(--primary)}
.cab-cal-dot--rec{background:#9aa3ad}
.cab-cal-panel{margin-top:.9em;border-top:1px solid var(--border);padding-top:.9em}
.cab-cal-panel h3{font-size:.95rem;margin:0 0 .5em}
.cab-cal-lessons{display:flex;flex-direction:column;gap:.5em}
.cab-cal-add{display:flex;gap:.45em;margin-top:.8em;flex-wrap:wrap}
.cab-cal-add .input{flex:1 1 auto;min-width:0;padding:.5em .7em;font-size:.85rem}
.cab-cal-add .input[type=time]{max-width:100px}
.cab-cal-add .cab-btn-mini{padding:.55em 1em}

/* Занятие с комментариями */
.cab-lesson2{
  border:1px solid var(--border);border-radius:12px;background:var(--bg-soft);
  padding:.6em .7em;
}
.cab-lesson2-top{display:flex;gap:.6em;align-items:center;flex-wrap:wrap}
.cab-lesson2-top b{color:var(--primary);font-size:.86rem}
.cab-lesson2-top .cab-l2-title{font-weight:700}
.cab-lesson2-top .cab-l2-note{color:var(--text-soft);font-size:.8rem}
.cab-lesson2-top .cab-l2-who{font-size:.78rem;color:var(--text-soft)}
.cab-lesson2-top .cab-l2-rec{font-size:.7rem;color:var(--text-soft);border:1px dashed var(--border);border-radius:99px;padding:.1em .5em}
.cab-lesson2-top .cab-del{margin-left:auto}
.cab-comments{margin-top:.5em;border-top:1px dashed var(--border);padding-top:.5em;display:flex;flex-direction:column;gap:.35em}
.cab-comment{font-size:.8rem;display:flex;gap:.5em;align-items:baseline;flex-wrap:wrap}
.cab-comment b{color:var(--primary-light)}
.cab-comment i{color:var(--text-soft);font-style:normal;font-size:.7rem}
.cab-comment .cab-c-role{font-size:.64rem;color:var(--text-soft);border:1px solid var(--border);border-radius:99px;padding:0 .45em}
.cab-comment-form{display:flex;gap:.4em;margin-top:.45em}
.cab-comment-form .input{flex:1;padding:.4em .6em;font-size:.8rem}
.cab-comment-form .cab-btn-mini{font-size:.78rem;padding:.4em .8em}

/* Единое расписание (борд) */
.cab-board-live{
  font-size:.72rem;color:#6ee7b7;display:inline-flex;align-items:center;gap:.4em;
  border:1px solid rgba(110,231,183,.3);border-radius:99px;padding:.2em .7em;
}
.cab-board-live--off{color:#ff8a80;border-color:rgba(255,138,128,.3)}
.cab-board-day{margin-top:.9em}
.cab-board-day-head{font-weight:800;font-size:.95rem;margin-bottom:.45em;display:flex;gap:.6em;align-items:baseline}
.cab-board-day-head span{color:var(--text-soft);font-weight:600;font-size:.76rem}
.cab-board-nav{display:flex;gap:.5em;align-items:center;margin-bottom:.4em}
.cab-role-mk{font-size:.62rem;padding:.1em .5em;border-radius:99px;text-transform:uppercase;font-weight:800;letter-spacing:.05em}

/* Уровни карты — форма админа */
.cab-tiers{display:flex;flex-direction:column;gap:.6em}
.cab-tier-row{display:flex;align-items:center;gap:.6em;flex-wrap:wrap}
.cab-tier-swatch{width:34px;height:22px;border-radius:6px;flex:0 0 auto;border:1px solid rgba(0,0,0,.12)}
.cab-tier-row .input{padding:.45em .6em;font-size:.82rem}
.cab-tier-row input[name^=name]{max-width:140px}
.cab-tier-row input[type=number]{max-width:74px}
.cab-tier-row label{display:inline-flex;gap:.35em;align-items:center;font-size:.8rem;color:var(--text-soft)}

/* Достижение: фото грамоты */
.cab-achv-photo img{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}
.cab-achv-up{cursor:pointer;font-size:1rem;opacity:.75;transition:.2s;line-height:1}
.cab-achv-up:hover{opacity:1;transform:scale(1.12)}

@media(max-width:640px){
  .cab-cal-day{font-size:.7rem;padding:3px}
  .cab-cal-add .input{flex:1 1 100%}
  .cab-cal-add .input[type=time]{max-width:none}
}

/* ==================== ПАКЕТ 12.1: мобильный hero «ЗАПИСАТЬСЯ», заголовки ×1.5, блоки цен, отступы ==================== */
@media(max-width:760px){
  /* 1. HERO: кнопка перестаёт «парить» и стоит в потоке под текстом; текст чуть выше */
  .hero{padding-top:calc(var(--header-h,64px) + 4px) !important}
  .hero-content{align-self:start !important;padding-top:0 !important;padding-bottom:0 !important;justify-content:flex-start}
  .hero-badge{margin-top:0 !important;margin-bottom:.9em !important}
  .hero-cta{
    position:static !important;transform:none !important;width:100% !important;
    pointer-events:auto !important;margin:0 0 .15em !important;justify-content:flex-start;
  }
  .hero-cta .btn-glass{font-size:.8rem !important;padding:.72em 1.35em !important;border-radius:16px}
  .hero-note{font-size:.66rem !important;margin-top:.55em !important;line-height:1.35}
  .hero-stats{margin-top:1.3em !important;gap:1.3em !important}
  .hero-stats b{font-size:1.5rem !important}
  .hero-stats span{font-size:.72rem !important}

  /* 2. Названия блоков — примерно ×1.5 крупнее */
  .section-title{font-size:clamp(2.05rem,9.4vw,3.05rem) !important;line-height:1.03 !important}

  /* 3. Карточки цен: воздух, тени, видимая граница (отделяем от светлого фона) */
  .prices-wrap{gap:1.5em !important;margin-top:2.1em !important}
  .price-card{
    box-shadow:0 26px 60px rgba(15,15,20,.20), 0 6px 18px rgba(15,15,20,.14), 0 0 0 1px rgba(15,15,20,.06) !important;
    border:1px solid rgba(15,15,20,.09) !important;
  }
  .price-card-header{padding:1.5em 1.5em 1em !important}
  .price-card-body{padding:1.2em 1.5em !important;gap:.7em !important}
  .price-card-footer{padding:1.1em 1.5em 1.5em !important}

  /* 4. Больше отступов от краёв во всех секциях */
  .section-inner{padding:0 6vw !important}
  .hero-inner{padding:0 6vw 28px !important}
  .contacts-inner{padding:0 6vw !important}

  /* 5. «Летняя площадка»: фото вертикальнее (чуть вытянутее квадрата, не обрезает людей) */
  .summer-card{aspect-ratio:1/1.12 !important}
  .summer-card .summer-card-img{aspect-ratio:1/1.12 !important;height:auto !important}
}

/* ==================== ПАКЕТ 12.2 ==================== */
/* --- Лента отзывов Яндекс.Карт (в «почему мы», невысокая, во всю ширину) --- */
.reviews-band{margin-top:2.6em;border-top:1px dashed rgba(255,255,255,.14);padding-top:1.5em}
.reviews-band-head{display:flex;align-items:center;justify-content:space-between;gap:1.2em;flex-wrap:wrap;margin-bottom:1.1em}
.reviews-award{display:flex;align-items:center;gap:.8em;background:linear-gradient(135deg,rgba(255,196,0,.14),rgba(255,196,0,.05));border:1px solid rgba(255,196,0,.35);border-radius:16px;padding:.65em 1em}
.reviews-award-badge{font-size:1.7rem;line-height:1}
.reviews-award b{display:block;font-size:.95rem;color:#ffd977}
.reviews-award span{display:block;font-size:.7rem;color:var(--text-soft);max-width:44ch;line-height:1.35}
.reviews-more-wrap{position:relative}
.reviews-more-btn{cursor:pointer;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;font-weight:700;font-size:.84rem;border-radius:999px;padding:.6em 1.15em;display:inline-flex;align-items:center;gap:.5em;transition:.2s;white-space:nowrap}
.reviews-more-btn:hover{border-color:var(--primary);background:rgba(229,57,53,.12)}
.reviews-more-menu{position:absolute;right:0;top:calc(100% + 8px);min-width:250px;background:#18181b;border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:.4em;opacity:0;pointer-events:none;transform:translateY(-6px);transition:.18s;z-index:80;box-shadow:0 18px 44px rgba(0,0,0,.55)}
.reviews-more-menu.open{opacity:1;pointer-events:auto;transform:none}
.reviews-more-menu a{display:block;padding:.6em .8em;border-radius:10px;color:#fff;font-size:.84rem;text-decoration:none;transition:.15s}
.reviews-more-menu a:hover{background:rgba(229,57,53,.14);color:#ffb3ad}
.rev-viewport{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.rev-track{display:flex;gap:.9em;width:max-content;animation:revScroll 110s linear infinite;padding:.15em 0}
.rev-viewport:hover .rev-track{animation-play-state:paused}
@keyframes revScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.rev-card{flex:0 0 300px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:.85em .95em;display:flex;flex-direction:column;gap:.45em}
.rev-card-top{display:flex;align-items:center;justify-content:space-between;gap:.6em}
.rev-card-top b{font-size:.86rem}
.rev-stars{color:#ffc400;font-size:.78rem;letter-spacing:.1em}
.rev-card p{font-size:.78rem;line-height:1.45;color:rgba(255,255,255,.82);margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rev-club{font-size:.62rem;color:var(--text-soft);text-transform:uppercase;letter-spacing:.05em}

/* --- Пунктирные полупрозрачные линии-выделения у карточек цен --- */
.price-card{outline:2px dashed rgba(229,57,53,.38);outline-offset:9px}
@media(max-width:760px){.price-card{outline:2px dashed rgba(229,57,53,.4);outline-offset:7px}}

/* --- Кнопка «наверх» на всех страницах --- */
#to-top{
  position:fixed;right:18px;bottom:18px;z-index:9600;width:52px;height:52px;border-radius:999px;
  border:1px solid rgba(255,255,255,.18);cursor:pointer;
  background:rgba(20,20,22,.88);backdrop-filter:blur(10px);
  color:#fff;display:grid;place-items:center;font-size:1.25rem;line-height:1;
  opacity:0;pointer-events:none;transform:translateY(14px);transition:all .3s;
  box-shadow:0 10px 28px rgba(0,0,0,.5), 0 0 0 1px rgba(229,57,53,.22);
}
#to-top.show{opacity:1;pointer-events:auto;transform:none}
#to-top:hover{background:var(--primary);border-color:var(--primary)}
@media(max-width:760px){#to-top{width:44px;height:44px;font-size:1.05rem;right:12px;bottom:12px}}

/* --- Мобильные правки 12.2 --- */
@media(max-width:760px){
  /* кнопки: больше воздуха внутри + текст чуть крупнее */
  .btn{padding:.85em 1.6em !important;font-size:.8rem !important}
  .hero-cta .btn-glass{padding:.85em 1.6em !important;font-size:.86rem !important}
  /* текст «Привейте любовь к спорту» крупнее */
  .hero-desc{font-size:.95rem !important;line-height:1.5 !important}
  /* первый блок: картинка упирается в низ секции, без отступа */
  .hero-inner{padding-bottom:0 !important}
  .hero-visual{align-self:end !important}
  .hero{padding-bottom:0 !important}
  /* летняя площадка: ещё заметнее вертикальнее */
  .summer-card,
  [data-block] .summer-card{aspect-ratio:4/4.8 !important}
  .summer-card .summer-card-img,
  [data-block] .summer-card .summer-card-img{aspect-ratio:4/4.8 !important;height:auto !important}
  .summer-card .summer-card-img img{aspect-ratio:4/4.8 !important;height:100% !important}
  /* отзывы: карточки уже и без того компактные */
  .rev-card{flex:0 0 260px}
  .reviews-band-head{flex-direction:column;align-items:flex-start;gap:.8em}
}

/* ==================== ПАКЕТ 12.3 ==================== */
/* --- Стильный едва заметный фоновый паттерн по теме клуба (перчатка, груша, шлем, гиря, кубок, скакалка) --- */
:root{
  --sd-pat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(26,34) scale(2.3) rotate(-12)'%3E%3Cpath d='M7 10.5h10'/%3E%3Cpath d='M9 5h6a3 3 0 013 3v4'/%3E%3Cpath d='M6 7v9a4 4 0 004 4h1a5 5 0 005-5v-3'/%3E%3Cpath d='M18 12h2a2 2 0 012 2v1a4 4 0 01-4 4h-1'/%3E%3Cpath d='M6 7a2 2 0 012-2h1'/%3E%3C/g%3E%3Cg transform='translate(200,42) scale(2.2) rotate(9)'%3E%3Cpath d='M12 1.5v3'/%3E%3Cpath d='M8 4.5h8l1 1.5v9.5a5 5 0 01-5 5h0a5 5 0 01-5-5V6l1-1.5z'/%3E%3Cpath d='M7 9.5h10'/%3E%3Cpath d='M7.6 13h8.8'/%3E%3C/g%3E%3Cg transform='translate(120,140) scale(2.5) rotate(-5)'%3E%3Cpath d='M4 14v-3a8 8 0 0116 0v3'/%3E%3Cpath d='M4 14h16'/%3E%3Cpath d='M7 14v3a2 2 0 002 2h6a2 2 0 002-2v-3'/%3E%3C/g%3E%3Cg transform='translate(34,214) scale(2.3) rotate(7)'%3E%3Cpath d='M9 5a3 3 0 016 0'/%3E%3Cpath d='M7.5 5v3.2c-2.5 1-4.5 3.6-4.5 6.8 0 3.9 3.1 7 9 7s9-3.1 9-7c0-3.2-2-5.8-4.5-6.8V5'/%3E%3C/g%3E%3Cg transform='translate(216,222) scale(2.1) rotate(-8)'%3E%3Cpath d='M7 4h10v5a5 5 0 01-10 0V4z'/%3E%3Cpath d='M7 6H4a3 3 0 003 3'/%3E%3Cpath d='M17 6h3a3 3 0 01-3 3'/%3E%3Cpath d='M12 14v4'/%3E%3Cpath d='M8.5 21h7'/%3E%3Cpath d='M10 18h4'/%3E%3C/g%3E%3Cg transform='translate(232,150) scale(1.6) rotate(5)'%3E%3Cpath d='M5 2v4'/%3E%3Cpath d='M4 6h2'/%3E%3Cpath d='M19 2v4'/%3E%3Cpath d='M18 6h2'/%3E%3Cpath d='M5 6c0 8 14 8 14 0'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
/* паттерн под контентом всех секций саitа */
section[data-block]{position:relative}
section[data-block]::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:var(--sd-pat) repeat;background-size:300px;
  opacity:.05;
}
/* светлые фоны — иконки инвертируем в тёмные */
#trial::after,#prices::after,#summer::after,#cta::after,[data-block="prices"]::after{filter:invert(.94);opacity:.065}
/* cекция массажа уже имеет свою полосу NEW — там паттерн не нужен */
#massage::after{content:none}

/* --- Пунктир у цен — ровно по контуру блока --- */
.price-card{outline:2px dashed rgba(229,57,53,.38) !important;outline-offset:0 !important}

/* --- Свечения: акцентные слова заголовков, бейдж hero, орб за ценами --- */
.section-title span, .industry-title span, .massage-title span{
  text-shadow:0 0 26px rgba(229,57,53,.55), 0 0 60px rgba(229,57,53,.28);
  animation:sdGlowPulse 4.4s ease-in-out infinite;
}
@keyframes sdGlowPulse{
  0%,100%{text-shadow:0 0 22px rgba(229,57,53,.45),0 0 52px rgba(229,57,53,.22)}
  50%{text-shadow:0 0 32px rgba(229,57,53,.7),0 0 78px rgba(229,57,53,.36)}
}
.hero-badge{animation:sdBadgeGlow 3.4s ease-in-out infinite}
@keyframes sdBadgeGlow{
  0%,100%{box-shadow:0 0 0 rgba(229,57,53,0)}
  50%{box-shadow:0 0 26px rgba(229,57,53,.42)}
}
.prices-wrap{position:relative}
.prices-wrap::before{
  content:'';position:absolute;inset:-14% -8%;pointer-events:none;z-index:0;
  background:radial-gradient(55% 60% at 50% 45%, rgba(229,57,53,.16), transparent 70%);
  filter:blur(30px);
}
.prices-wrap>*{position:relative;z-index:1}
.hero-visual-glow{animation:sdOrb 7s ease-in-out infinite alternate}
@keyframes sdOrb{from{opacity:.7;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}

/* --- Курсор: лёгкая светло-красная размытая сфера по всему сайту --- */
#cursor-glow{
  width:520px;height:520px;opacity:.55;
  background:radial-gradient(circle at center, rgba(255,110,102,.16) 0%, rgba(229,57,53,.08) 34%, transparent 68%);
}
body:hover #cursor-glow{opacity:.55}
@media (hover:none),(pointer:coarse){#cursor-glow{display:none !important}}

/* --- Массажная студия: компактнее внутри --- */
#massage{padding:56px 0 60px !important}
.massage-head{margin-bottom:1.2em !important}
.massage-inner .massage-title{margin-bottom:.3em}
.massage-gallery{margin-top:1em !important;gap:.9em}

/* --- Мобильные правки 12.3 --- */
@media(max-width:760px){
  /* 1. выбор клуба в «больше отзывов» — раскрывается влево-виглядно, не за экран */
  .reviews-more-menu{right:auto !important;left:0 !important;min-width:min(280px,86vw)}
  /* 2. кнопка пробного занятия — крупнее, в 2 строки */
  #trial .trial-cta .btn{font-size:.86rem !important;white-space:normal !important;text-align:center !important;line-height:1.32 !important;padding:.85em 1.2em !important;min-height:0}
  /* 3. стрелка на карточках услуг — меньше */
  .service-arrow{width:30px !important;height:30px !important;top:.8em !important;right:.8em !important}
  .service-arrow svg{width:13px;height:13px}
  /* 5. кнопки в ценовых блоках — крупнее */
  .prices-wrap .btn,.price-card .btn{font-size:.86rem !important;padding:.78em 1.15em !important}
  /* 6. кнопка «Узнать подробнее» в industry — по центру */
  #industry .btn-glass{display:table !important;margin:1.3em auto 0 !important}
  /* 7. летняя площадка: фото целиком, без белого низа */
  .summer-card{background:#141416 !important;border:1px solid rgba(255,255,255,.12) !important}
  .summer-card .summer-card-img{background:#141416 !important}
  .summer-card .summer-card-img img{object-fit:contain !important;object-position:center center !important}
  /* 8. кнопка «наверх» на мобиле — гарантировано видима */
  #to-top{z-index:11000 !important;width:46px;height:46px;right:12px;bottom:88px}
}

/* ==================== ПАКЕТ 12.4 ==================== */
/* --- Паттерн: 9 иконок, крупнее, размытее, тише, плавный дрейф --- */
:root{
  --sd-pat:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(30,40) scale(2.6) rotate(-12)'%3E%3Cpath d='M7 10.5h10'/%3E%3Cpath d='M9 5h6a3 3 0 013 3v4'/%3E%3Cpath d='M6 7v9a4 4 0 004 4h1a5 5 0 005-5v-3'/%3E%3Cpath d='M18 12h2a2 2 0 012 2v1a4 4 0 01-4 4h-1'/%3E%3Cpath d='M6 7a2 2 0 012-2h1'/%3E%3C/g%3E%3Cg transform='translate(250,40) scale(2.4) rotate(10)'%3E%3Cpath d='M12 1.5v3'/%3E%3Cpath d='M8 4.5h8l1 1.5v9.5a5 5 0 01-5 5h0a5 5 0 01-5-5V6l1-1.5z'/%3E%3Cpath d='M7 9.5h10'/%3E%3Cpath d='M7.6 13h8.8'/%3E%3C/g%3E%3Cg transform='translate(140,150) scale(2.7) rotate(-6)'%3E%3Cpath d='M4 14v-3a8 8 0 0116 0v3'/%3E%3Cpath d='M4 14h16'/%3E%3Cpath d='M7 14v3a2 2 0 002 2h6a2 2 0 002-2v-3'/%3E%3C/g%3E%3Cg transform='translate(320,140) scale(1.7) rotate(5)'%3E%3Cpath d='M5 2v4'/%3E%3Cpath d='M4 6h2'/%3E%3Cpath d='M19 2v4'/%3E%3Cpath d='M18 6h2'/%3E%3Cpath d='M5 6c0 8 14 8 14 0'/%3E%3C/g%3E%3Cg transform='translate(30,220) scale(2.5) rotate(8)'%3E%3Cpath d='M9 5a3 3 0 016 0'/%3E%3Cpath d='M7.5 5v3.2c-2.5 1-4.5 3.6-4.5 6.8 0 3.9 3.1 7 9 7s9-3.1 9-7c0-3.2-2-5.8-4.5-6.8V5'/%3E%3C/g%3E%3Cg transform='translate(230,240) scale(2.3) rotate(-9)'%3E%3Cpath d='M7 4h10v5a5 5 0 01-10 0V4z'/%3E%3Cpath d='M7 6H4a3 3 0 003 3'/%3E%3Cpath d='M17 6h3a3 3 0 01-3 3'/%3E%3Cpath d='M12 14v4'/%3E%3Cpath d='M8.5 21h7'/%3E%3Cpath d='M10 18h4'/%3E%3C/g%3E%3Cg transform='translate(60,330) scale(2.2) rotate(-4)'%3E%3Cpath d='M3 10v4'/%3E%3Cpath d='M6 8.5v7'/%3E%3Cpath d='M9 11h6'/%3E%3Cpath d='M18 8.5v7'/%3E%3Cpath d='M21 10v4'/%3E%3C/g%3E%3Cg transform='translate(300,320) scale(2.3) rotate(6)'%3E%3Cpath d='M18 10a6 6 0 10-12 0c0 4-2 5-2 5h16s-2-1-2-5'/%3E%3Cpath d='M10.3 21a2 2 0 003.4 0'/%3E%3C/g%3E%3Cg transform='translate(170,300) scale(2) rotate(-10)'%3E%3Cpath d='M4 15l11-11a4.24 4.24 0 016 6L10 21a4.24 4.24 0 01-6-6z'/%3E%3Cpath d='M13 7l4 4'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
section[data-block]::after{
  background-size:400px;opacity:.035;filter:blur(.9px);
  animation:sdPatDrift 150s linear infinite;
}
@keyframes sdPatDrift{from{background-position:0 0}to{background-position:400px 400px}}
#trial::after,#prices::after,#summer::after,#cta::after{filter:invert(.94) blur(.9px)}
/* в первом блоке паттерн не нужен — там свои крупные надписи */
#home::after,#massage::after{content:none}

/* --- hero: чуть меньше пустоты до шапки --- */
html{--header-h:112px !important}
.hero{padding-top:calc(var(--header-h,112px) + 4px) !important}
@media(max-width:760px){
  html{--header-h:64px !important}
  .hero{padding-top:calc(var(--header-h,64px) + 2px) !important}
}

/* --- «СИЛА ДУХА» в шапке — красная с подсветкой как «ВЫБРАТЬ НАС» --- */
.logo-text{
  background:linear-gradient(100deg,#e53935 38%,#ff9d97 50%,#e53935 62%) !important;
  background-size:260% 100% !important;background-position:120% 0;
  -webkit-background-clip:text !important;background-clip:text !important;-webkit-text-fill-color:transparent !important;
  animation:glassSweepText 8.5s linear infinite !important;
  filter:drop-shadow(0 0 12px rgba(229,57,53,.55));
}
.hero-title span{animation:sdGlowPulse 4.4s ease-in-out infinite}

/* --- floating-надписи: без рерней, размытее, тише --- */
.floating-text{letter-spacing:-.07em !important;opacity:.02 !important;filter:blur(2.5px)}
.floating-text.red{opacity:.026 !important}

/* --- Мягкая красная подсветка под фото тренера в первом блоке --- */
.hero-visual-wrap::after{
  content:'';position:absolute;left:4%;right:4%;bottom:-6%;height:34%;z-index:0;pointer-events:none;
  background:radial-gradient(55% 100% at 50% 100%, rgba(229,57,53,.42), rgba(229,57,53,.12) 45%, transparent 72%);
  filter:blur(26px);animation:sdGlowPulse 5.5s ease-in-out infinite;
}
.hero-visual-img{position:relative;z-index:1}
#footer-logo,.logo-mark{position:relative;z-index:1}

/* --- Разделители блоков: пунктир на смене фона, серая полоска на одинаковом --- */
#why,#trial,#services,#prices,#industry,#summer,#massage,#contacts,#cta{
  border-top:2px dashed rgba(229,57,53,.28);
  box-shadow:0 -10px 24px -14px rgba(229,57,53,.25);
}
#trainers,#gallery{border-top:1px solid rgba(255,255,255,.075)}

/* --- Массажные надписи: наклонные, плотные, темнее --- */
.massage-pattern{transform:rotate(-8deg) scale(1.3)}
.massage-pattern span{color:rgba(229,57,53,.03) !important;filter:blur(1.7px) !important}
.massage-pattern span:nth-child(even){color:rgba(255,255,255,.012) !important}

/* --- Отзывы: рейтинг клубов --- */
.reviews-score{display:flex;align-items:center;gap:.75em;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:.6em 1em}
.reviews-score-num{display:flex;align-items:baseline;gap:.18em}
.reviews-score-num b{font-size:1.7rem;font-weight:900;color:#ffd977;line-height:1}
.reviews-score-num span{color:#ffc400;font-size:1rem}
.reviews-score-det b{display:block;font-size:.78rem;color:#fff}
.reviews-score-det span{display:block;font-size:.68rem;color:var(--text-soft);line-height:1.4}

/* --- Летняя площадка (моб): фото заполняют карточку полностью --- */
@media(max-width:760px){
  .summer-card .summer-card-img img{object-fit:cover !important;object-position:center 25% !important;width:100% !important;height:100% !important}
}

/* --- Мобильные тренеры: имя/направление по центру низа фото, описание по кнопке --- */
.trainer-more{display:none}
@media(max-width:760px){
  .trainers-grid{gap:1.35em !important;margin-top:1.5em !important}
  .trainer-card{border-radius:26px !important;position:relative;overflow:hidden;padding:.6em !important}
  .trainer-photo{border-radius:20px !important}
  .trainer-photo img{object-position:center top !important}
  .trainer-info{
    position:absolute;left:0;right:0;bottom:0;z-index:2;
    display:flex;flex-direction:column;align-items:center;text-align:center;gap:.1em;
    padding:2.2em .7em .9em;
    background:linear-gradient(180deg,transparent,rgba(10,10,12,.94) 58%);
  }
  .trainer-name{font-size:1rem !important;line-height:1.1}
  .trainer-pos{font-size:.62rem !important;letter-spacing:.06em;text-transform:uppercase}
  .trainer-more{
    display:inline-flex;align-items:center;gap:.4em;margin-top:.5em;
    padding:.42em 1em;border-radius:999px;cursor:pointer;
    background:rgba(229,57,53,.16);border:1px solid rgba(229,57,53,.45);
    color:#ffb3ad;font-size:.68rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
  }
  .trainer-ach{display:none !important}
  /* раскрытое состояние */
  .trainer-card.open .trainer-info{
    position:static;background:none;padding:.55em .4em .15em;
  }
  .trainer-card.open .trainer-ach{
    display:block !important;font-size:.78rem !important;line-height:1.5;color:var(--text-soft);
    padding:.1em .3em .2em;
  }
  .trainer-card.open .trainer-photo{aspect-ratio:3/3.4 !important}
}

/* ==================== ПАКЕТ 12.5 ==================== */
/* --- Паттерн: в 1.5 раза плотнее и ещё прозрачнее --- */
section[data-block]::after{
  background-size:266px;opacity:.022;
  animation:sdPatDrift2 120s linear infinite;
}
@keyframes sdPatDrift2{from{background-position:0 0}to{background-position:266px 266px}}

/* --- floating-тексты hero ещё тише --- */
.floating-text{opacity:.016 !important;filter:blur(3px)}
.floating-text.red{opacity:.02 !important}

/* --- Моб: меньше отступа сверху в первом блоке --- */
@media(max-width:760px){
  .hero{padding-top:calc(var(--header-h,64px) - 8px) !important}
}

/* --- Массажная студия компактнее по высоте (ПК и моб) --- */
#massage{padding:36px 0 40px !important}
#massage .massage-head{margin-bottom:1.2em !important}
#massage .massage-title{margin-bottom:.55em}
#massage .massage-gallery{margin-top:.1em}

/* --- Пунктиры-разделители на ПК ярче --- */
@media(min-width:761px){
  #why,#trial,#services,#prices,#industry,#summer,#massage,#contacts,#cta{
    border-top:2px dashed rgba(229,57,53,.5) !important;
    box-shadow:0 -14px 30px -14px rgba(229,57,53,.4);
  }
  #trainers,#gallery{border-top:1px solid rgba(255,255,255,.14) !important}
}

/* --- Летняя площадка (моб): убиваем старый max-height, который резал фото --- */
@media(max-width:760px){
  .summer-card .summer-card-img{max-height:none !important;height:auto !important}
  .summer-card .summer-card-img img{height:100% !important}
}

/* --- Подсветка под фото тренера в первом блоке — сильнее --- */
.hero-visual-wrap::after{
  left:-2%;right:-2%;bottom:-10%;height:44%;
  background:radial-gradient(58% 100% at 50% 100%, rgba(229,57,53,.68), rgba(229,57,53,.22) 46%, transparent 75%);
  filter:blur(32px);
}
.hero-visual-glow{opacity:.9 !important}

/* --- VK-кнопка всегда поверх баннеров/кнопок --- */
.vk-float{z-index:9600 !important}
@media(max-width:760px){
  .vk-float{z-index:9600 !important;bottom:16px !important;left:12px !important;padding:.65em 1em .65em .7em !important}
  .vk-float svg{width:22px !important;height:22px !important}
}

/* --- Отзывы: кнопка под каруселью, на ПК прижата вправо-вверх --- */
.reviews-band-inner{position:relative}
.reviews-more-wrap{margin-top:1em}
@media(min-width:761px){
  .reviews-more-wrap{position:absolute;top:1.2em;right:.5em;margin:0;z-index:5}
  .reviews-band-head{padding-right:230px}
}
@media(max-width:760px){
  .reviews-band-head{flex-direction:row !important;align-items:stretch !important;flex-wrap:nowrap !important;gap:.6em !important}
  .reviews-band-head .reviews-award{flex:1 1 50%;min-width:0;padding:.55em .75em !important;border-radius:12px !important;align-items:center}
  .reviews-band-head .reviews-award b{font-size:.78rem !important}
  .reviews-band-head .reviews-award span{font-size:.6rem !important;line-height:1.35}
  .reviews-award-badge{font-size:1.25rem !important}
  .reviews-band-head .reviews-score{flex:1 1 50%;min-width:0;padding:.5em .75em !important;gap:.5em;border-radius:12px !important}
  .reviews-score-num b{font-size:1.35rem !important}
  .reviews-score-det b{font-size:.66rem !important;line-height:1.3}
  .reviews-score-det span{font-size:.58rem !important}
  /* выпадашка вверх, чтобы не уплывала под экран */
  .reviews-more-wrap{position:relative !important;margin-top:1em;text-align:center}
  .reviews-more-btn{width:100%;justify-content:center}
  .reviews-more-menu{bottom:calc(100% + 8px) !important;top:auto !important;left:0 !important;right:0 !important;min-width:0 !important}
}

/* --- Красная подсветка поверх нижней части фото тренера (поверх img) --- */
.hero-visual-wrap::before{
  content:'';position:absolute;left:0;right:0;bottom:0;height:32%;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,transparent, rgba(229,57,53,.14) 45%, rgba(229,57,53,.34));
  filter:blur(8px);border-radius:inherit;
}
.hero-visual-img{position:relative;z-index:1}

/* --- Подсветка hero-фото: усиление 2 --- */
.hero-visual-wrap::before{
  background:linear-gradient(180deg,transparent 10%, rgba(229,57,53,.26) 55%, rgba(229,57,53,.6)) !important;
  filter:blur(10px);
}
.hero-visual-wrap::after{
  background:radial-gradient(62% 100% at 50% 100%, rgba(229,57,53,.85), rgba(229,57,53,.3) 46%, transparent 78%) !important;
}

/* --- Живая подсветка под/поверх низа hero-фото (DOM-элемент) --- */
.hero-light-under{
  position:absolute;left:-4%;right:-4%;bottom:-2%;height:38%;z-index:3;pointer-events:none;
  background:
    radial-gradient(70% 100% at 50% 102%, rgba(229,57,53,.5), rgba(229,57,53,.18) 42%, transparent 72%),
    linear-gradient(180deg, transparent 30%, rgba(229,57,53,.35));
  filter:blur(18px);
  animation:sdGlowPulse 5.5s ease-in-out infinite;
}
.hero-visual-wrap{position:relative}

/* ==================== ПАКЕТ 12.6 ==================== */
/* --- Паттерн-иконки: только на СВЕТЛЫХ блоках --- */
section[data-block]::after{content:none !important;display:none}
#trial::after,#prices::after,#summer::after,#cta::after{
  content:'' !important;display:block;position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:var(--sd-pat);background-size:266px;
  opacity:.05;filter:invert(.94) blur(.9px);
  animation:sdPatDrift2 120s linear infinite;
}
/* контент секций над паттерном */
#trial .trial-inner,#prices .section-inner,#summer .section-inner,#cta .cta-inner,#cta .section-inner{position:relative;z-index:1}

/* --- Моб: ещё меньше пустоты сверху в hero --- */
@media(max-width:760px){
  .hero{padding-top:calc(var(--header-h,64px) - 16px) !important}
}

/* --- Моб: фото тренеров выше (меньше обрезка) --- */
@media(max-width:760px){
  .trainer-photo{aspect-ratio:3/4.35 !important}
  .trainer-card.open .trainer-photo{aspect-ratio:3/3.8 !important}
}

/* --- floating-надписи hero: совсем тихие и размытые --- */
.floating-text{opacity:.012 !important;filter:blur(4px)}
.floating-text.red{opacity:.015 !important}

/* --- Подсветка hero-фото: шаровая, глубже красный, меньше прозрачности --- */
.hero-light-under{
  left:8% !important;right:8% !important;bottom:-8% !important;height:54% !important;
  background:radial-gradient(ellipse 100% 100% at 50% 100%, rgba(229,57,53,.6), rgba(229,57,53,.26) 42%, transparent 72%) !important;
  filter:blur(20px) !important;
  border-radius:50%;
}
.hero-visual-wrap::before{
  background:radial-gradient(80% 70% at 50% 100%, rgba(229,57,53,.32), transparent 66%) !important;
  filter:blur(14px) !important;
}
.hero-visual-wrap::after{
  background:radial-gradient(60% 95% at 50% 102%, rgba(229,57,53,.7), rgba(229,57,53,.2) 44%, transparent 75%) !important;
  filter:blur(30px) !important;border-radius:50%;
}

/* --- Ревью: ПК-кнопка рядом с рейтингом, моб — под каруселью --- */
@media(min-width:761px){
  .reviews-more-wrap--below{display:none !important}
  .reviews-band-head .reviews-more-wrap{position:static !important;margin:0 !important}
  .reviews-band-head{padding-right:0 !important}
}
@media(max-width:760px){
  .reviews-band-head .reviews-more-wrap{display:none !important}
  .reviews-more-wrap--below{display:block !important;text-align:center;margin-top:1em}
}

/* --- VK-кнопка максимально видимая, поднимается над cookie-баннером --- */
.vk-float{z-index:99999 !important}
@media(max-width:760px){
  .vk-float{bottom:14px !important;left:12px !important}
  .vk-float.vk-raised{bottom:190px !important}
}


/* --- Подсветка hero-фото: точечная настройка ядра --- */
.hero-light-under{
  bottom:-3% !important;height:60% !important;left:5% !important;right:5% !important;
  background:radial-gradient(ellipse 90% 95% at 50% 100%, rgba(229,57,53,.75), rgba(229,57,53,.32) 40%, rgba(229,57,53,.08) 62%, transparent 74%) !important;
  filter:blur(16px) !important;
}

/* --- Подсветка hero-фото: ядро поднято в видимую зону --- */
.hero-light-under{
  inset:auto;left:4%;right:4%;top:44%;bottom:0;height:auto;
  background:radial-gradient(ellipse 88% 88% at 50% 56%, rgba(229,57,53,.78), rgba(229,57,53,.3) 38%, rgba(229,57,53,.1) 58%, transparent 73%) !important;
  filter:blur(14px) !important;
}

/* ==================== ПАКЕТ 12.7 ==================== */
/* --- Свечение hero: ТОЛЬКО за фотографией --- */
.hero-visual-wrap::before{content:none !important}
.hero-light-under{
  z-index:0 !important;left:-7% !important;right:-7% !important;top:26% !important;bottom:-5% !important;height:auto !important;
  background:radial-gradient(ellipse 82% 82% at 50% 62%, rgba(229,57,53,.66), rgba(229,57,53,.24) 45%, transparent 72%) !important;
  filter:blur(28px) !important;
}
.hero-visual-img{position:relative;z-index:1}
.hero-visual-glow{z-index:0}

/* --- ПК отзывы: три плашки одинакового размера --- */
@media(min-width:761px){
  .reviews-band-head{display:grid !important;grid-template-columns:1fr 1fr 1fr !important;gap:.9em !important;align-items:stretch}
  .reviews-band-head .reviews-award{display:flex;align-items:center;justify-content:center;height:100%;text-align:left}
  .reviews-band-head .reviews-score{display:flex;align-items:center;justify-content:center;height:100%}
  .reviews-band-head .reviews-more-wrap{display:flex;height:100%}
  .reviews-band-head .reviews-more-btn{width:100%;height:100%;justify-content:center;font-size:.92rem}
}

/* --- Моб: бела-красный крупный лого + крупное меню с тремя полосками --- */
@media(max-width:760px){
  .logo-text{
    background:linear-gradient(100deg,#ffffff 12%,#ffc9c5 38%,#e53935 66%,#a91f1c 96%) !important;
    -webkit-background-clip:text !important;background-clip:text !important;
    filter:drop-shadow(0 0 11px rgba(229,57,53,.5));
    font-weight:900;letter-spacing:-.02em;
  }
  .logo{font-size:28px !important}
  .mobile-toggle-label{font-size:1.12rem !important;letter-spacing:.06em;display:inline-flex;align-items:center}
  .mobile-toggle-label::before{
    content:'';display:inline-block;width:17px;height:12px;margin-right:.55em;
    border-top:2.5px solid #fff;border-bottom:2.5px solid #fff;
    background:linear-gradient(#fff,#fff) center/100% 2.5px no-repeat, transparent;
    background-repeat:no-repeat;background-position:center;background-size:100% 2.5px;
  }
}

/* --- Свежая площадка: пунктирный контур, подсветка, тень --- */
.summer-card{
  outline:2px dashed rgba(229,57,53,.5) !important;
  box-shadow:0 0 26px rgba(229,57,53,.14), 0 14px 36px rgba(0,0,0,.32) !important;
}
.summer-card:hover{box-shadow:0 0 40px rgba(229,57,53,.25), 0 18px 44px rgba(0,0,0,.4) !important}
@media(max-width:760px){
  .summer-card{outline-color:rgba(229,57,53,.4) !important;box-shadow:0 0 18px rgba(229,57,53,.16), 0 10px 26px rgba(0,0,0,.35) !important}
}

/* ==================== ПАКЕТ 12.8 ==================== */
/* --- Паттерн-иконки на светлых блоках: статично (без анимации, без драг-фпс) --- */
#trial::after,#prices::after,#summer::after,#cta::after{
  animation:none !important;
}

/* --- Модалка «Звони по телефону» вместо формы заявки --- */
.modal-call{position:relative;padding:2.6em 2em 2.4em !important;text-align:center !important;background:#131315 !important;border:1px solid rgba(229,57,53,.4) !important;border-radius:24px !important;box-shadow:0 0 60px rgba(229,57,53,.18), 0 30px 80px rgba(0,0,0,.6) !important}
.modal-call-title{font-size:clamp(1.3rem,4vw,1.9rem);font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#fff;margin-bottom:.4em}
.modal-call-phone{display:inline-block;font-size:clamp(1.7rem,6vw,2.7rem);font-weight:900;color:var(--primary-light);text-decoration:none;margin:.35em 0 .5em;letter-spacing:.02em;animation:sdGlowPulse 3.2s ease-in-out infinite}
.modal-call-text{font-size:clamp(1.05rem,3.6vw,1.4rem);color:#fff;line-height:1.5}
.modal-call-text b{color:var(--primary-light)}

/* --- Industry: красная аура ЗА фото справа (как у hero-тренера) --- */
.industry-visual{position:relative;overflow:visible !important;background:none}
.industry-visual::before{
  content:'';position:absolute;left:2%;right:2%;top:38%;bottom:-6%;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 84% 84% at 50% 64%, rgba(229,57,53,.6), rgba(229,57,53,.22) 44%, transparent 72%);
  filter:blur(30px);border-radius:50%;
  animation:sdGlowPulse 5.5s ease-in-out infinite;
}
.industry-visual img{position:relative;z-index:1}
@media(max-width:760px){
  .industry-visual::before{left:-6%;right:-6%;top:24%;bottom:-8%}
}

/* --- Направления (rich-страницы бокс/женский бокс) --- */
.dir-rich{margin-top:2em;max-width:1100px}
.dir-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:2em;margin:2em 0 2.4em;align-items:stretch}
.dir-hero-img{border-radius:22px;overflow:hidden;outline:2px dashed rgba(229,57,53,.4);box-shadow:0 0 26px rgba(229,57,53,.12),0 14px 34px rgba(0,0,0,.4);min-height:320px}
.dir-hero-text p,.dir-text p{color:var(--text-soft);line-height:1.72;font-size:1.03rem;margin-bottom:1em}
.dir-grid{display:grid;grid-template-columns:1fr 1fr;gap:1em;margin:1.4em 0 2em}
.dir-grid-img{border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:#141416;outline:1px solid rgba(255,255,255,.09)}
.dir-banner{border-radius:20px;overflow:hidden;aspect-ratio:21/7;margin:1.2em 0 2em;background:#141416;outline:1px solid rgba(255,255,255,.09)}
.dir-h{font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:900;text-transform:uppercase;color:#fff;margin:.9em 0 .7em;position:relative;padding-left:.6em;border-left:3px solid var(--primary)}
.dir-list{list-style:none;display:grid;gap:.6em;margin:.6em 0 1.4em;padding:0}
.dir-list li{position:relative;padding:.85em 1.1em .85em 2.6em;background:#17171a;border:1px solid rgba(255,255,255,.08);border-radius:12px;color:#dcdcdf;line-height:1.55}
.dir-list li::before{content:'●';color:var(--primary);position:absolute;left:1.1em;top:.95em;font-size:.7em}
.dir-cta{margin-top:2.2em;display:flex;flex-wrap:wrap;gap:1.1em;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#1b1b1e,#241414);border:1px solid rgba(229,57,53,.35);border-radius:18px;padding:1.4em 1.6em;box-shadow:0 0 34px rgba(229,57,53,.12)}
.dir-cta b{color:#fff;font-size:1.05rem;max-width:30ch;line-height:1.5}
@media(max-width:760px){.dir-grid{grid-template-columns:1fr}.dir-banner{aspect-ratio:16/9}.dir-cta{justify-content:center;text-align:center}}

/* --- Текстовые баннеры-надписи со старого сайта --- */
.dir-strip{margin:1.2em 0 2em;display:flex;justify-content:center;border-radius:14px;overflow:hidden;background:rgba(255,255,255,.03);padding:.8em}
.dir-strip img{max-width:100%;height:auto;object-fit:contain}
/* --- Industry glow: ярче --- */
.industry-visual::before{
  background:radial-gradient(ellipse 86% 88% at 50% 62%, rgba(229,57,53,.85), rgba(229,57,53,.36) 42%, transparent 70%) !important;
  filter:blur(22px) !important;top:26% !important;bottom:-10% !important;
}
/* --- Моб-шапка ≤400px: всё влезает --- */
@media (max-width:400px){
  .logo{font-size:24px !important;gap:8px !important}
  .logo img{width:34px !important;height:34px !important}
  .mobile-toggle-label{font-size:1rem !important}
  .header-mobile-extra .icon-btn{width:44px !important;height:44px !important}
  .header-main{gap:10px !important;padding-left:12px !important;padding-right:12px !important}
}
/* --- Моб-шапка ≤370px: ещё компактнее --- */
@media (max-width:370px){
  .logo{font-size:21px !important;gap:6px !important}
  .logo img{width:30px !important;height:30px !important}
  .mobile-toggle-label{font-size:.92rem !important}
  .mobile-menu-btn{padding:.5em .7em !important;gap:.45em !important}
  .header-mobile-extra .icon-btn{width:40px !important;height:40px !important}
  .header-main{gap:8px !important;padding-left:10px !important;padding-right:10px !important}
}

/* ==================== ПАКЕТ 12.9 ==================== */
/* --- Шапка: только лого, крупнее пункты меню --- */
.logo img, .logo-mark img{min-width:52px;min-height:52px}
.logo-mark{width:58px !important;height:58px !important;border-radius:16px}
.nav a{font-size:17px !important;font-weight:700 !important;letter-spacing:.03em;padding:.5em .28em}
@media(min-width:1500px){.nav a{font-size:18px !important}}
@media(max-width:1100px){.nav a{font-size:15.5px !important}}
@media(max-width:760px){
  .logo-mark{width:34px !important;height:34px !important;border-radius:10px}
  .logo img{min-width:34px;min-height:34px}
}
/* --- Оптимизация: мягкие градиенты вместо filter:blur на крупных glow --- */
.hero-light-under{filter:none !important;
  background:radial-gradient(ellipse 78% 78% at 50% 88%, rgba(229,57,53,.62), rgba(229,57,53,.3) 40%, rgba(229,57,53,.12) 58%, transparent 74%) !important}
.hero-visual-wrap::before{filter:none !important;
  background:radial-gradient(68% 58% at 50% 92%, rgba(229,57,53,.34), rgba(229,57,53,.14) 52%, transparent 72%) !important}
.industry-visual::before{filter:none !important;
  background:radial-gradient(ellipse 72% 74% at 50% 60%, rgba(229,57,53,.8), rgba(229,57,53,.38) 38%, rgba(229,57,53,.12) 56%, transparent 72%) !important}
.floating-text{filter:blur(2px) !important}
/* композитинг: выносим в отдельные слои то, что реально анимируется/свайпается */
.service-card .service-content,.trainer-card,.modal-call-phone{will-change:transform}
.services-grid .service-card img{will-change:transform}
/* --- Контакты: CTA вместо формы --- */
.contact-cta{text-align:center;padding:2.6em 2em;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5em}
.contact-cta-icon{width:64px;height:64px;border-radius:50%;background:rgba(229,57,53,.14);border:1px solid rgba(229,57,53,.45);display:grid;place-items:center;color:var(--primary-light);margin-bottom:.6em}
.contact-cta h3{font-size:clamp(1.3rem,3vw,1.8rem);font-weight:900;text-transform:uppercase;color:#fff}
.contact-cta p{color:var(--text-soft);max-width:34ch;line-height:1.6}
.contact-cta-phone{font-size:clamp(1.6rem,4.5vw,2.3rem);font-weight:900;color:var(--primary-light);text-decoration:none;margin-top:.2em;animation:sdGlowPulse 3.2s ease-in-out infinite}
.contact-cta .btn{max-width:340px}
/* --- Цены на персональные (страница персонально) --- */
.dir-price{display:grid;grid-template-columns:1fr 1fr;gap:1em;max-width:720px;margin:.4em 0 1.4em}
.dir-price-card{background:linear-gradient(140deg,#191a1e,#221414);border:1px solid rgba(229,57,53,.4);border-radius:18px;padding:1.4em 1.6em;text-align:center;box-shadow:0 12px 34px rgba(0,0,0,.4)}
.dir-price-name{color:var(--text-soft);font-weight:700;text-transform:uppercase;font-size:.92rem;letter-spacing:.06em;margin-bottom:.5em}
.dir-price-value{font-size:clamp(1.7rem,4.5vw,2.4rem);font-weight:900;color:#fff}
@media(max-width:760px){.dir-price{grid-template-columns:1fr}}
/* --- Нижняя навигация по направлениям --- */
.dirnav{padding:50px 0 90px;background:#0a0a0b}
.dirnav .service-card.is-current{outline:2px dashed rgba(229,57,53,.55);outline-offset:3px;opacity:.85;pointer-events:none}
.dirnav .service-card.is-current .service-arrow{display:none}
/* 12.9 fix: CTA-контакты на светлом фоне секции */
.contact-cta h3{color:#161619 !important}
.contact-cta p{color:#4a4a50 !important}
.contact-cta-icon{background:rgba(229,57,53,.1)}

/* --- 12.10: контакты — равная высота колонок, график работы в CTA --- */
.contacts-inner{align-items:stretch !important}
.contact-cta{position:static !important;height:100%;justify-content:center !important}
.contact-cta-hours{display:flex;gap:.8em;align-items:flex-start;margin-top:1.2em;background:rgba(0,0,0,.03);border:1px solid rgba(0,0,0,.07);border-radius:14px;padding:.9em 1.1em;text-align:left}
.contact-cta-hours b{color:#161619;display:block;font-size:.98rem}
.contact-cta-hours span{color:#4a4a50;font-size:.92rem;line-height:1.5}
.contact-cta-hours .contact-icon{width:40px !important;height:40px !important;flex-shrink:0}

/* ==================== ПАКЕТ 12.13 ==================== */
/* --- Массажная студия: контент уже + мобильная лента ВК справа --- */
.massage-cols{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:2.6em;align-items:start}
.massage-left{max-width:760px}

.vk-phone{
  position:relative;width:330px;margin:0 auto;background:#0b0b0d;border-radius:46px;
  border:2px solid rgba(255,255,255,.08);
  box-shadow:0 0 0 9px #1c1c20, 0 0 0 10px rgba(229,57,53,.28), 0 34px 70px rgba(0,0,0,.55);
  padding:12px;overflow:hidden;
}
.vk-phone-notch{
  width:36%;height:22px;margin:2px auto 10px;background:#000;border-radius:999px;
  border:1px solid rgba(255,255,255,.06);
}
.vk-phone-screen{
  height:560px;border-radius:34px;overflow:hidden;background:#141416;
  display:flex;align-items:flex-start;justify-content:center;
}
.vk-widget-fallback{display:flex;flex-direction:column;gap:.35em;align-items:center;justify-content:center;height:100%;text-align:center;color:#fff;text-decoration:none;padding:1em}
.vk-widget-fallback b{font-size:1.05rem;color:var(--primary-light)}
.vk-widget-fallback span{color:var(--text-soft);font-size:.92rem}
.massage-vk{align-self:start;position:relative}
.massage-vk::before{
  content:'';position:absolute;inset:-8% -14%;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 62% 56% at 50% 46%, rgba(229,57,53,.32), transparent 66%);
}
@media(max-width:1100px){
  .massage-cols{grid-template-columns:1fr;gap:2em}
  .massage-left{max-width:none}
  .vk-phone{margin:0 auto}
}
@media(max-width:760px){
  .vk-phone{width:min(330px,92vw)}
  .vk-phone-screen{height:520px}
}


/* ==================== ПАКЕТ 12.15 — ОПТИМИЗАЦИЯ ПК ==================== */
:root{--sd-pat-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320'%3E%3Cg fill='none' stroke='%230e1013' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cg transform='translate(26,34) scale(2.3) rotate(-12)'%3E%3Cpath d='M7 10.5h10'/%3E%3Cpath d='M9 5h6a3 3 0 013 3v4'/%3E%3Cpath d='M6 7v9a4 4 0 004 4h1a5 5 0 005-5v-3'/%3E%3Cpath d='M18 12h2a2 2 0 012 2v1a4 4 0 01-4 4h-1'/%3E%3Cpath d='M6 7a2 2 0 012-2h1'/%3E%3C/g%3E%3Cg transform='translate(200,42) scale(2.2) rotate(9)'%3E%3Cpath d='M12 1.5v3'/%3E%3Cpath d='M8 4.5h8l1 1.5v9.5a5 5 0 01-5 5h0a5 5 0 01-5-5V6l1-1.5z'/%3E%3Cpath d='M7 9.5h10'/%3E%3Cpath d='M7.6 13h8.8'/%3E%3C/g%3E%3Cg transform='translate(120,140) scale(2.5) rotate(-5)'%3E%3Cpath d='M4 14v-3a8 8 0 0116 0v3'/%3E%3Cpath d='M4 14h16'/%3E%3Cpath d='M7 14v3a2 2 0 002 2h6a2 2 0 002-2v-3'/%3E%3C/g%3E%3Cg transform='translate(34,214) scale(2.3) rotate(7)'%3E%3Cpath d='M9 5a3 3 0 016 0'/%3E%3Cpath d='M7.5 5v3.2c-2.5 1-4.5 3.6-4.5 6.8 0 3.9 3.1 7 9 7s9-3.1 9-7c0-3.2-2-5.8-4.5-6.8V5'/%3E%3C/g%3E%3Cg transform='translate(216,222) scale(2.1) rotate(-8)'%3E%3Cpath d='M7 4h10v5a5 5 0 01-10 0V4z'/%3E%3Cpath d='M7 6H4a3 3 0 003 3'/%3E%3Cpath d='M17 6h3a3 3 0 01-3 3'/%3E%3Cpath d='M12 14v4'/%3E%3Cpath d='M8.5 21h7'/%3E%3Cpath d='M10 18h4'/%3E%3C/g%3E%3Cg transform='translate(232,150) scale(1.6) rotate(5)'%3E%3Cpath d='M5 2v4'/%3E%3Cpath d='M4 6h2'/%3E%3Cpath d='M19 2v4'/%3E%3Cpath d='M18 6h2'/%3E%3Cpath d='M5 6c0 8 14 8 14 0'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");}
.header{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:rgba(10,10,12,.93) !important}
.header.scrolled{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
.hero-visual-card{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:rgba(20,20,22,.95) !important}
.service-arrow{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
.btn-ghost::before,.btn-white::before,.hero-badge{backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
.hero-badge{background:rgba(229,57,53,.18) !important}
.hero-title span{animation:none !important;text-shadow:0 0 26px rgba(229,57,53,.45), 0 0 62px rgba(229,57,53,.22) !important}
.contact-cta-phone{animation:none !important;text-shadow:0 0 22px rgba(229,57,53,.4), 0 0 50px rgba(229,57,53,.2) !important}
.contact-cta .btn-glass{animation:none !important}
.hero-light-under,.hero-visual-wrap::before,.hero-visual-wrap::after,.industry-visual::before{animation:none !important}
#trial::after,#prices::after,#summer::after,#cta::after{
  background-image:var(--sd-pat-dark) !important;filter:blur(.7px) !important;opacity:.055 !important;
}
.massage-pattern span{animation-duration:110s !important}
img{content-visibility:auto}

/* ==================== ПАКЕТ 12.16 ==================== */
/* 1. Надпись СИЛА ДУХА рядом с логотипом */
.logo-word{display:flex;flex-direction:column;line-height:1;font-weight:900;font-size:calc(var(--logo-text,22px) * .86);letter-spacing:.05em;text-transform:uppercase}
.logo-word span{color:#fff}
.logo-word em{font-style:normal;color:var(--primary-light)}
@media(max-width:760px){.logo-word{font-size:13px}}

/* 2. Выпадающее подменю у НАПРАВЛЕНИЯ */
.nav-item--drop{position:relative;display:flex;align-items:center}
.nav-item--drop>a{display:inline-flex;align-items:center;gap:.45em}
.nav-caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--primary-light);transition:transform .25s;display:inline-block;flex-shrink:0}
.nav-item--drop:hover .nav-caret,.nav-item--drop.open .nav-caret{transform:rotate(180deg)}
.nav-drop{
  position:absolute;top:calc(100% + 16px);left:50%;min-width:280px;z-index:60;
  transform:translate(-50%,10px);background:#141416;border:1px solid rgba(255,255,255,.09);
  border-radius:16px;padding:.5em;opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;
  box-shadow:0 28px 70px rgba(0,0,0,.55);
}
.nav-drop::before{content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #141416}
.nav-item--drop:hover .nav-drop,.nav-item--drop:focus-within .nav-drop,.nav-item--drop.open .nav-drop{opacity:1;visibility:visible;transform:translate(-50%,0)}
.nav-drop a{display:block;padding:.7em 1.1em;border-radius:10px;color:#e9e9ec;font-size:.95rem;font-weight:700;letter-spacing:.02em;transition:background .15s,color .15s;white-space:normal}
.nav-drop a:hover{background:rgba(229,57,53,.14);color:#fff}
@media(max-width:760px){
  .nav-item--drop{flex-direction:column;align-items:flex-start}
  .nav-drop{position:static;transform:none;opacity:1;visibility:visible;display:none;box-shadow:none;margin-top:.2em;border-radius:12px;min-width:min(280px,86vw)}
  .nav-drop::before{display:none}
  .nav-item--drop.open .nav-drop,.nav-item--drop:hover .nav-drop,.nav-item--drop:focus-within .nav-drop{display:block;transform:none;opacity:1;visibility:visible}
}

/* 3. Межстрочный интервал заголовка hero на ПК */
@media(min-width:761px){.hero-title{line-height:1 !important}}

/* 4. Мобильный hero: минимальный нижний отступ */
@media(max-width:760px){
  .hero-inner{padding:0 6vw 2px !important;min-height:0 !important}
  .hero{padding-bottom:0 !important}
}

/* 5. Контакты: равные по высоте колонки, свечение заголовка CTA */
.contacts-col{display:flex;flex-direction:column}
.contacts-list{flex:1;display:flex;flex-direction:column;justify-content:space-between}
.contact-cta-title{
  font-size:clamp(1.75rem,3.6vw,2.5rem) !important;font-weight:900;text-transform:uppercase;line-height:1.05;
  background:linear-gradient(120deg,#e53935 0%,#ff7a6e 50%,#e53935 100%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;
  color:transparent !important;-webkit-text-fill-color:transparent;
  animation:ctaTitleShine 3.2s ease-in-out infinite;
}
@keyframes ctaTitleShine{0%,100%{background-position:0% 50%;transform:scale(1)}50%{background-position:100% 50%;transform:scale(1.035)}}

/* 6. Анимации на тач-устройствах (без hover) */
@media (hover:none) and (pointer:coarse){
  .service-card img{animation:touchZoom 8s ease-in-out infinite alternate}
  .trainer-photo img{animation:touchZoom 9s ease-in-out infinite alternate}
  .service-arrow{animation:touchArrow 2.6s ease-in-out infinite}
  .summer-card-img img{animation:touchZoom 10s ease-in-out infinite alternate}
}
@keyframes touchZoom{from{transform:scale(calc(var(--iw-scale,1) * 1))}to{transform:scale(calc(var(--iw-scale,1) * 1.05))}}
@keyframes touchArrow{0%,100%{transform:translateX(0)}50%{transform:translateX(7px)}}

/* 7. На свежем воздухе — мобильно: 3 в ряд, как уменьшенный ПК */
@media(max-width:760px){
  .summer-grid{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:.5em !important;max-width:100% !important;padding:0 !important}
  [data-block] .summer-card{aspect-ratio:4/3.2 !important;height:auto !important;min-height:0 !important;max-height:none !important;width:100% !important;max-width:100% !important;overflow:hidden !important;border-radius:10px !important}
  .summer-card{aspect-ratio:4/3.2 !important;height:auto !important}
  .summer-card .summer-card-img{flex:none !important;height:auto !important;aspect-ratio:4/3.2 !important;width:100%;overflow:hidden !important;min-height:0 !important;max-height:none !important}
  .summer-card .summer-card-img img{width:100% !important;height:100% !important;max-width:none !important;object-fit:cover !important;object-position:center center;display:block}
}

/* 12.16-fix: побеждаем [data-block]-правила 11.4 (summer — 3 в ряд на мобиле) */
@media(max-width:760px){
  [data-block] .summer-grid,
  #summer .summer-grid{
    grid-template-columns:repeat(3,1fr) !important;
    max-width:100% !important;margin-left:0 !important;margin-right:0 !important;
    gap:.5em !important;
  }
  [data-block] .summer-card,.summer-card{border-radius:10px !important}
}

/* 12.16-fix2: hero_title — межстрочный интервал считается от вложенного шрифта, не от 4.2rem заголовка */
.hero-title div{line-height:1.08}
.hero-title{word-spacing:.05em}

/* ==================== ПАКЕТ 12.17 ==================== */
/* логотипная надпись: крупнее на ПК, в одну строку на мобиле */
.logo-word{font-size:calc(var(--logo-text,22px) * 1.02)}
@media(max-width:760px){.logo-word{flex-direction:row;gap:.32em;font-size:17px;align-items:baseline}}
/* летняя площадка на мобиле: мельче заголовок, карточки выше */
@media(max-width:760px){
  #summer .section-title,.summer-section .section-title{font-size:clamp(1.25rem,5.8vw,1.8rem) !important;line-height:1.06 !important}
  [data-block] .summer-card,.summer-card{aspect-ratio:4/4.7 !important}
  .summer-card .summer-card-img{aspect-ratio:4/4.7 !important}
}
