/* Броско фитнес — дизайн v6. Собрано build-yii-v6.py из v6-src/.
   Руками не править: правка потеряется при следующей сборке. */
/* ---- original.css ---- */
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-c3909442456a8f357a.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-1f275d522571c81eb7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-f283e584f001db04b3.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-2dea6190c113af6179.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-05795f7954ba178292.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-05ea99a48ece3c624f.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ============================================================
   БРОСКО ФИТНЕС — концепт редизайна
   Фирменная система: коралл-градиент, сердце-линия, спортивный курсив
   ============================================================ */

:root{
  /* Фирменные цвета (сняты с текущего сайта brosko.ru) */
  --red:      #E0342A;   /* логотип, контур сердца */
  --coral:    #F05B2D;   /* основной акцент, кнопки */
  --amber:    #FA9C30;   /* второй стоп градиента */
  --gold:     #E3A21E;   /* спираль внутри сердца */
  --grad:     linear-gradient(100deg, #E0342A 0%, #F05B2D 42%, #FA9C30 100%);
  --grad-soft:linear-gradient(100deg, rgba(224,52,42,.14) 0%, rgba(250,156,48,.14) 100%);

  --ink:   #141010;
  --ink-2: #1D1614;
  --ink-3: #2B2220;
  --peach: #FBF1E9;
  --peach-2:#EEBAA2;
  --paper: #FFFFFF;
  --muted: #8D8078;
  --line:  rgba(20,16,16,.10);

  --display: 'Montserrat', 'Proxima Nova', 'PT Sans', system-ui, sans-serif;
  --text: 'PT Sans', 'Proxima Nova', system-ui, -apple-system, sans-serif;

  --wrap: 1240px;
  --r: 18px;
}
*,*::before,*::after{ box-sizing:border-box; }
/* ВАЖНО: не ставим overflow-x:hidden на html/body — это делает <html>
   скролл-контейнером, window.scrollY залипает на 0 и анимации появления
   перестают срабатывать. Горизонтальный вылет режем локально:
   .marquee-clip и .hero имеют собственный overflow:hidden. */
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--text); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; }
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 24px; }
/* ---------- Типографика ---------- */
.h1,.h2,.h3,.h4{
  font-family:var(--display); font-style:italic; font-weight:900;
  text-transform:uppercase; line-height:.94; letter-spacing:-.02em; margin:0;
}
.h1{ font-size:clamp(36px, 5.9vw, 80px); }
.h2{ font-size:clamp(30px, 4.6vw, 60px); }
.h3{ font-size:clamp(21px, 2.4vw, 30px); }
.h4{ font-size:clamp(17px, 1.6vw, 21px); letter-spacing:0; }
.eyebrow{
  font-family:var(--display); font-weight:800; font-size:12px;
  text-transform:uppercase; letter-spacing:.22em; color:var(--coral);
  display:inline-flex; align-items:center; gap:10px; margin:0 0 18px;
}
.eyebrow::before{
  content:""; width:34px; height:2px; background:var(--grad); border-radius:2px;
}
.eyebrow.on-dark{ color:var(--amber); }
.grad-text{
  background:var(--grad); -webkit-background-clip:text; background-clip:text;
  color:transparent; -webkit-text-fill-color:transparent;
}
.lead{ font-size:clamp(16px,1.35vw,19px); color:#5B514C; max-width:62ch; }
.on-dark .lead, .dark .lead{ color:rgba(255,255,255,.66); }
/* ---------- Кнопки ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--display); font-weight:800; font-style:italic;
  text-transform:uppercase; letter-spacing:.04em; font-size:14px;
  padding:17px 32px; border-radius:60px; border:0; position:relative;
  transition:transform .25s cubic-bezier(.2,.7,.3,1), box-shadow .25s, background .25s, color .25s;
  white-space:nowrap;
}
.btn-primary{ background:var(--grad); color:#fff; box-shadow:0 10px 26px -10px rgba(240,91,45,.75); }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 18px 38px -12px rgba(240,91,45,.85); }
.btn-ghost{ background:transparent; color:var(--ink); border:2px solid var(--line); }
.btn-ghost:hover{ border-color:var(--coral); color:var(--coral); transform:translateY(-3px); }
.btn-ghost-light{ background:transparent; color:#fff; border:2px solid rgba(255,255,255,.28); }
.btn-ghost-light:hover{ border-color:var(--amber); color:var(--amber); transform:translateY(-3px); }
.btn-sm{ padding:13px 24px; font-size:13px; }
/* ---------- Фирменное сердце (SVG-знак) ----------
   Цвета задаются переменными --h1c / --h2c — они наследуются
   внутрь shadow-дерева <use>, поэтому знак легко перекрашивается. */
.heart{ display:inline-block; vertical-align:middle; overflow:visible; }
.heart.white{ --h1c:#fff; --h2c:rgba(255,255,255,.72); }
/* ============================================================
   ШАПКА
   ============================================================ */
.topbar{
  background:var(--ink); color:rgba(255,255,255,.62);
  font-size:13px; letter-spacing:.01em;
}
.topbar .wrap{ display:flex; align-items:center; gap:22px; height:42px; }
.topbar a:hover{ color:var(--amber); }
.city-pick{
  display:inline-flex; align-items:center; gap:7px; color:#fff; font-weight:700;
}
.city-pick svg{ opacity:.85; }
.topbar-right{ margin-left:auto; display:flex; align-items:center; gap:20px; }
.soc{ display:flex; gap:9px; }
.soc a{
  width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.09);
  display:grid; place-items:center; transition:.22s;
}
.soc a:hover{ background:var(--grad); transform:translateY(-2px); }
.soc svg{ width:13px; height:13px; fill:#fff; }
header.site{
  position:sticky; top:0; z-index:90; background:rgba(255,255,255,.94);
  backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line); transition:box-shadow .3s, height .3s;
}
header.site .wrap{ display:flex; align-items:center; gap:30px; height:84px; transition:height .3s; }
header.site.small .wrap{ height:66px; }
header.site.small{ box-shadow:0 8px 30px -18px rgba(20,16,16,.4); }
/* Логотип — оригинальный знак Броско (белый фон убран, поднято разрешение) */
.logo{ display:block; flex-shrink:0; line-height:0; }
.logo img{ width:184px; height:auto; transition:transform .4s cubic-bezier(.2,.7,.3,1); }
.logo:hover img{ transform:scale(1.04); }
header.site.small .logo img{ width:164px; }
footer.site .logo img{ width:196px; }
nav.main{ display:flex; gap:28px; margin-left:auto; }
nav.main a{
  font-family:var(--display); font-weight:700; font-size:14px;
  text-transform:uppercase; letter-spacing:.04em; position:relative; padding:6px 0;
}
nav.main a::after{
  content:""; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--grad); border-radius:2px; transition:width .28s;
}
nav.main a:hover::after{ width:100%; }
.head-actions{ display:flex; align-items:center; gap:18px; }
.head-phone{
  font-family:var(--display); font-weight:800; font-size:16px; white-space:nowrap;
}
.head-phone small{ display:block; font-size:10px; color:var(--muted); letter-spacing:.16em; text-transform:uppercase; font-weight:700; }
.burger{ display:none; width:44px; height:44px; border:0; background:transparent; padding:0; }
.burger i{ display:block; height:2px; background:var(--ink); margin:5px auto; width:24px; border-radius:2px; transition:.28s; }
.burger.open i:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.open i:nth-child(2){ opacity:0; }
.burger.open i:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-menu{
  position:fixed; inset:0; z-index:80; background:var(--ink); color:#fff;
  padding:110px 26px 40px; display:flex; flex-direction:column; gap:6px;
  transform:translateY(-100%); transition:transform .45s cubic-bezier(.4,0,.2,1); overflow-y:auto;
}
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{
  font-family:var(--display); font-weight:900; font-style:italic; text-transform:uppercase;
  font-size:30px; padding:11px 0; border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu .btn{ margin-top:26px; }
/* ============================================================
   ГЕРОЙ
   ============================================================ */
.hero{
  position:relative; background:var(--ink); color:#fff; overflow:hidden;
  min-height:min(88vh, 780px); display:flex; align-items:center;
  padding:90px 0 130px;
}
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{
  width:100%; height:100%; object-fit:cover; object-position:60% 30%;
  opacity:.5; filter:grayscale(.35) contrast(1.06);
  animation:heroZoom 22s ease-in-out infinite alternate;
}
@keyframes heroZoom{ from{ transform:scale(1); } to{ transform:scale(1.09); } }
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(92deg, var(--ink) 6%, rgba(20,16,16,.88) 38%, rgba(20,16,16,.30) 72%, rgba(20,16,16,.75) 100%),
    linear-gradient(0deg, rgba(20,16,16,.9) 0%, transparent 42%);
}
/* фирменная диагональная штриховка */
.hero-stripes{
  position:absolute; right:-8%; top:-20%; width:60%; height:150%; z-index:1; opacity:.5;
  background:repeating-linear-gradient(72deg, rgba(250,156,48,.16) 0 2px, transparent 2px 26px);
  pointer-events:none;
}
.hero-heart{
  position:absolute; right:-70px; bottom:-90px; width:520px; height:500px; z-index:1;
  opacity:.15; pointer-events:none; transform:rotate(-9deg);
}
.hero .wrap{ position:relative; z-index:3; }
.hero-grid{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:50px; align-items:end; }
.hero h1{ margin:0 0 26px; }
.hero h1 .line{ display:block; overflow:hidden; }
.hero h1 .line > span{ display:block; animation:riseIn .9s cubic-bezier(.16,1,.3,1) both; }
.hero h1 .line:nth-child(2) > span{ animation-delay:.1s; }
.hero h1 .line:nth-child(3) > span{ animation-delay:.2s; }
@keyframes riseIn{ from{ transform:translateY(105%); } to{ transform:translateY(0); } }
.hero-sub{
  font-size:clamp(16px,1.4vw,19px); color:rgba(255,255,255,.72); max-width:47ch; margin:0 0 34px;
  animation:fadeUp .9s .38s both;
}
.hero-cta{ display:flex; gap:14px; flex-wrap:wrap; animation:fadeUp .9s .5s both; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(22px);} to{ opacity:1; transform:none; } }
.hero-badge{
  display:inline-flex; align-items:center; gap:12px; padding:9px 9px 9px 18px;
  border:1px solid rgba(255,255,255,.16); border-radius:60px; margin-bottom:26px;
  font-size:13px; color:rgba(255,255,255,.8); backdrop-filter:blur(6px);
  background:rgba(255,255,255,.04); animation:fadeUp .8s .15s both;
}
.hero-badge b{ color:#fff; font-weight:700; }
.hero-badge .pill{
  background:var(--grad); color:#fff; font-family:var(--display); font-weight:800;
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; padding:6px 13px; border-radius:40px;
}
/* карточка «пробная» */
.hero-card{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r); padding:28px; width:290px; backdrop-filter:blur(12px);
  animation:fadeUp .9s .62s both;
}
.hero-card .heart{ width:34px; height:32px; margin-bottom:16px; }
.hero-card b{ font-family:var(--display); font-style:italic; font-weight:900; text-transform:uppercase; font-size:25px; line-height:1; display:block; margin-bottom:10px; }
.hero-card p{ margin:0 0 20px; font-size:14px; color:rgba(255,255,255,.62); }
.hero-card .btn{ width:100%; }
/* белый скос внизу героя */
.hero-cut{
  position:absolute; left:0; right:0; bottom:-2px; height:110px; z-index:4;
  background:var(--paper); clip-path:polygon(0 62%, 100% 0, 100% 100%, 0 100%);
}
/* ============================================================
   БЕГУЩАЯ СТРОКА
   ============================================================ */
.marquee-clip{ overflow:hidden; position:relative; z-index:6; margin:-26px 0 70px; }
.marquee{
  background:var(--grad); color:#fff; overflow:hidden; padding:16px 0;
  transform:rotate(-1.1deg) scale(1.04); position:relative;
}
.marquee .heart{ --h1c:#fff; --h2c:rgba(255,255,255,.7); }
.marquee-track{ display:flex; width:max-content; animation:slide 26s linear infinite; }
.marquee span{
  font-family:var(--display); font-weight:900; font-style:italic; text-transform:uppercase;
  font-size:clamp(16px,1.9vw,26px); letter-spacing:.02em; padding:0 22px;
  display:inline-flex; align-items:center; gap:22px; white-space:nowrap;
}
.marquee .heart{ width:21px; height:20px; }
@keyframes slide{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
/* ============================================================
   ОБЩИЕ СЕКЦИИ
   ============================================================ */
section{ position:relative; }
.sec{ padding:96px 0; }
.sec-head{ max-width:760px; margin-bottom:54px; }
.sec-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.sec-head.center .eyebrow{ justify-content:center; }
.sec-head p{ margin:20px 0 0; }
.dark{ background:var(--ink); color:#fff; }
.dark .h2, .dark .h3{ color:#fff; }
.peach-bg{ background:var(--peach); }
/* ---------- Цифры ---------- */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px; background:var(--line); border-radius:var(--r); overflow:hidden; }
.stat{ background:var(--paper); padding:38px 28px; transition:background .3s; }
.stat:hover{ background:var(--peach); }
.stat b{
  display:block; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(38px,4.4vw,60px); line-height:1; letter-spacing:-.03em;
  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.stat span{ display:block; margin-top:12px; font-size:14px; color:var(--muted); line-height:1.4; }
/* ---------- Направления ---------- */
.prog-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.prog{
  position:relative; border-radius:var(--r); overflow:hidden; aspect-ratio:3/4;
  background:var(--ink-2); isolation:isolate; display:flex; align-items:flex-end;
  transition:transform .4s cubic-bezier(.2,.7,.3,1);
}
.prog:hover{ transform:translateY(-8px); }
.prog img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2;
  filter:grayscale(.5) contrast(1.05); transition:transform .7s cubic-bezier(.2,.7,.3,1), filter .5s;
}
.prog:hover img{ transform:scale(1.1); filter:grayscale(0) contrast(1.05); }
.prog::after{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(0deg, rgba(20,16,16,.94) 4%, rgba(20,16,16,.42) 48%, rgba(20,16,16,.12) 100%);
  transition:background .45s;
}
.prog:hover::after{ background:linear-gradient(0deg, rgba(224,52,42,.92) 0%, rgba(240,91,45,.34) 55%, rgba(20,16,16,.14) 100%); }
.prog-in{ position:relative; padding:26px; color:#fff; width:100%; }
.prog-num{
  position:absolute; top:18px; right:24px; z-index:1;
  font-family:var(--display); font-weight:900; font-style:italic; font-size:58px;
  color:transparent; -webkit-text-stroke:1.5px rgba(255,255,255,.34); line-height:1;
  pointer-events:none;
}
.prog h3{ font-family:var(--display); font-weight:900; font-style:italic; text-transform:uppercase; font-size:26px; margin:0 0 8px; letter-spacing:-.01em; }
.prog p{ margin:0; font-size:14px; color:rgba(255,255,255,.72); line-height:1.45; }
.prog-tag{
  display:inline-block; font-family:var(--display); font-weight:800; font-size:10px;
  letter-spacing:.18em; text-transform:uppercase; padding:5px 11px; border-radius:30px;
  background:rgba(255,255,255,.16); margin-bottom:14px;
}
/* ---------- Пульс ---------- */
.pulse-sec{ padding:110px 0; overflow:hidden; }
.pulse-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.pulse-vis{ position:relative; }
.pulse-svg{ width:100%; height:auto; overflow:visible; }
.pulse-line{
  fill:none; stroke:url(#gPulse); stroke-width:4; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:1000; stroke-dashoffset:0;
}
html.anim .pulse-line{ stroke-dashoffset:1000; }
html.anim .in-view .pulse-line{ animation:draw 2.2s cubic-bezier(.5,0,.2,1) forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.pulse-heart-wrap{
  animation:beat 1.5s ease-in-out infinite;
  transform-box:fill-box; transform-origin:center;
}
html.anim .pulse-heart-wrap{ opacity:0; }
html.anim .in-view .pulse-heart-wrap{ opacity:1; transition:opacity .5s 1.9s; }
@keyframes beat{ 0%,100%{ transform:scale(1);} 14%{ transform:scale(1.14);} 28%{ transform:scale(1);} 42%{ transform:scale(1.09);} 56%{ transform:scale(1);} }
.pulse-facts{ display:grid; gap:16px; margin-top:34px; }
.pfact{ display:flex; gap:18px; align-items:flex-start; padding:20px 22px; border-radius:14px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09); }
.pfact b{ font-family:var(--display); font-weight:900; font-style:italic; font-size:34px; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; min-width:88px; }
.pfact span{ font-size:15px; color:rgba(255,255,255,.7); }
/* ---------- Преимущества ---------- */
.adv-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.adv{
  padding:38px 32px 34px; border-radius:var(--r); background:var(--paper);
  border:1px solid var(--line); position:relative; overflow:hidden;
  transition:transform .35s cubic-bezier(.2,.7,.3,1), box-shadow .35s, border-color .35s;
}
.adv::before{
  content:""; position:absolute; left:0; top:0; height:4px; width:0; background:var(--grad); transition:width .45s;
}
.adv:hover{ transform:translateY(-7px); box-shadow:0 26px 50px -30px rgba(20,16,16,.4); border-color:transparent; }
.adv:hover::before{ width:100%; }
.adv .heart{ width:36px; height:34px; margin-bottom:20px; }
.adv h3{ font-family:var(--display); font-weight:900; font-style:italic; text-transform:uppercase; font-size:20px; margin:0 0 12px; line-height:1.1; }
.adv p{ margin:0; font-size:15px; color:#5B514C; }
/* ---------- Всё включено ---------- */
.incl-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.incl{
  display:flex; align-items:center; gap:14px; padding:20px 22px; border-radius:14px;
  background:var(--paper); border:1px solid var(--line);
  font-family:var(--display); font-weight:700; font-size:15px;
  transition:.3s;
}
.incl:hover{ border-color:var(--coral); transform:translateX(5px); }
.incl .dot{ width:9px; height:9px; border-radius:50%; background:var(--grad); flex-shrink:0; }
/* ---------- Абонемент ---------- */
.abon{ display:grid; grid-template-columns:1fr 1fr; gap:0; border-radius:24px; overflow:hidden; }
.abon-l{ background:var(--ink); color:#fff; padding:60px 54px; position:relative; overflow:hidden; }
.abon-l .heart{ position:absolute; right:-50px; bottom:-60px; width:280px; height:270px; opacity:.12; transform:rotate(-10deg); }
.abon-r{ background:var(--grad); color:#fff; padding:60px 54px; }
.abon ul{ list-style:none; margin:26px 0 0; padding:0; display:grid; gap:14px; }
.abon li{ display:flex; gap:13px; align-items:flex-start; font-size:16px; }
.abon li .heart{ width:18px; height:17px; flex-shrink:0; margin-top:4px; position:static; opacity:1; transform:none; }
.abon-r .heart{ --h1c:#fff; --h2c:rgba(255,255,255,.75); }
.abon-r .h3{ color:#fff; }
.abon-r .btn{ margin-top:30px; background:#fff; color:var(--coral); }
.abon-r .btn:hover{ transform:translateY(-3px); }
.abon-r p{ color:rgba(255,255,255,.85); }
/* ---------- Клубы ---------- */
.clubs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.club{
  padding:26px 24px; border-radius:16px; background:var(--paper); border:1px solid var(--line);
  transition:.32s; position:relative; overflow:hidden;
}
.club:hover{ background:var(--ink); border-color:var(--ink); transform:translateY(-6px); }
.club:hover .club-addr, .club:hover .club-tel{ color:#fff; }
.club-no{
  font-family:var(--display); font-weight:900; font-style:italic; font-size:13px;
  color:var(--coral); letter-spacing:.1em; margin-bottom:12px;
}
.club-addr{ font-family:var(--display); font-weight:700; font-size:16px; line-height:1.3; transition:.32s; }
.club-tel{ margin-top:9px; font-size:14px; color:var(--muted); transition:.32s; }
.cities{ display:flex; flex-wrap:wrap; gap:10px; margin-top:44px; }
.city-chip{
  padding:10px 20px; border-radius:40px; border:1px solid var(--line);
  font-family:var(--display); font-weight:700; font-size:14px; transition:.28s;
}
.city-chip:hover{ background:var(--grad); color:#fff; border-color:transparent; transform:translateY(-3px); }
/* ---------- Цитата / миссия ---------- */
.mission{ padding:120px 0; text-align:center; position:relative; overflow:hidden; }
.mission .heart{ width:64px; height:60px; margin-bottom:34px; }
.mission blockquote{
  margin:0 auto; max-width:900px;
  font-family:var(--display); font-weight:800; font-style:italic; text-transform:uppercase;
  font-size:clamp(22px,3.2vw,42px); line-height:1.14; letter-spacing:-.02em;
}
.mission cite{ display:block; margin-top:30px; font-style:normal; font-size:14px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); font-family:var(--display); font-weight:700; }
/* ---------- Франшиза ---------- */
.franch{
  border-radius:24px; overflow:hidden; background:var(--ink); color:#fff;
  display:grid; grid-template-columns:1.25fr .75fr; align-items:center; position:relative;
}
.franch-in{ padding:64px 54px; position:relative; z-index:2; }
.franch-img{ position:relative; height:100%; min-height:320px; }
.franch-img img{ width:100%; height:100%; object-fit:cover; filter:grayscale(.4); }
.franch-img::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--ink) 0%, rgba(20,16,16,.25) 55%, rgba(224,52,42,.4) 100%); }
.franch-stats{ display:flex; gap:40px; margin:30px 0 34px; flex-wrap:wrap; }
.franch-stats div b{ display:block; font-family:var(--display); font-weight:900; font-style:italic; font-size:34px; line-height:1; background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; }
.franch-stats div span{ font-size:13px; color:rgba(255,255,255,.6); }
/* ---------- Форма ---------- */
.form-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:start; }
.form-card{ background:var(--paper); border-radius:24px; padding:44px; box-shadow:0 30px 70px -45px rgba(20,16,16,.55); border:1px solid var(--line); }
.fields{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.full{ grid-column:1/-1; }
.field label{ font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); font-family:var(--display); font-weight:700; }
.field input, .field select{
  font:inherit; font-size:16px; padding:14px 16px; border-radius:12px;
  border:1.5px solid var(--line); background:#FCFAF9; transition:.25s; width:100%;
}
.field input:focus, .field select:focus{ outline:none; border-color:var(--coral); background:#fff; box-shadow:0 0 0 4px rgba(240,91,45,.1); }
.consent{ display:flex; gap:11px; align-items:flex-start; margin-top:20px; font-size:13px; color:var(--muted); line-height:1.45; }
.consent input{ margin-top:3px; accent-color:var(--coral); width:17px; height:17px; flex-shrink:0; }
.form-card .btn{ width:100%; margin-top:22px; }
.form-ok{ display:none; text-align:center; padding:26px 0 6px; }
.form-ok .heart{ width:48px; height:45px; margin-bottom:16px; }
.form-ok b{ display:block; font-family:var(--display); font-weight:900; font-style:italic; text-transform:uppercase; font-size:24px; margin-bottom:8px; }
.form-ok p{ color:var(--muted); font-size:15px; margin:0; }
/* ---------- Футер ---------- */
footer.site{ background:var(--ink); color:rgba(255,255,255,.6); padding:70px 0 32px; font-size:15px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:44px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.09); }
.foot-col h4{ font-family:var(--display); font-weight:800; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:#fff; margin:0 0 18px; }
.foot-col a{ display:block; padding:6px 0; transition:.24s; }
.foot-col a:hover{ color:var(--amber); transform:translateX(4px); }
.foot-phone{ font-family:var(--display); font-weight:900; font-style:italic; font-size:26px; color:#fff; display:block; margin-bottom:8px; }
.foot-bottom{ padding-top:26px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.38); }
/* ---------- Появление при скролле ----------
   По умолчанию ВСЁ видно. Скрытое стартовое состояние включается только
   классом .anim на <html>, который ставит скрипт — и только на широких
   экранах. Так контент не может «пропасть» ни при какой ошибке. */
.reveal{ transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
html.anim .reveal{ opacity:0; transform:translateY(34px); }
html.anim .reveal.in-view{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.09s; }
.reveal.d2{ transition-delay:.18s; }
.reveal.d3{ transition-delay:.27s; }
.reveal.d4{ transition-delay:.36s; }
/* ---------- Плашка «концепт» ---------- */
.concept-tag{
  position:fixed; left:18px; bottom:18px; z-index:120;
  background:rgba(20,16,16,.9); color:#fff; backdrop-filter:blur(8px);
  padding:10px 14px 10px 16px; border-radius:40px; font-size:12px;
  display:flex; align-items:center; gap:11px; box-shadow:0 12px 30px -14px rgba(0,0,0,.6);
}
.concept-tag .heart{ width:15px; height:14px; }
.concept-tag button{ background:rgba(255,255,255,.12); border:0; color:#fff; width:20px; height:20px; border-radius:50%; line-height:1; font-size:13px; }
.concept-tag button:hover{ background:var(--coral); }
/* ============================================================
   АДАПТИВ
   ============================================================ */
/* Промежуточные ширины: шапка перестаёт помещаться в одну строку,
   поэтому поджимаем меню, логотип и телефон по шагам. */
@media (max-width:1300px){
  header.site .wrap{ gap:20px; }
  nav.main{ gap:18px; min-width:0; }
  nav.main a{ font-size:13px; }
  .head-actions{ gap:14px; }
  .head-phone{ font-size:15px; }
  .logo img{ width:162px; }
  header.site.small .logo img{ width:148px; }
}
@media (max-width:1150px){
  .head-phone{ display:none; }
}
@media (max-width:1080px){
  .prog-grid{ grid-template-columns:repeat(2,1fr); }
  .incl-grid{ grid-template-columns:repeat(2,1fr); }
  .clubs-grid{ grid-template-columns:repeat(2,1fr); }
  .foot-grid{ grid-template-columns:1fr 1fr; gap:36px; }
  .pulse-grid{ grid-template-columns:1fr; gap:44px; }
  .form-grid{ grid-template-columns:1fr; gap:40px; }
  .franch{ grid-template-columns:1fr; }
  .franch-img{ min-height:220px; order:-1; }
  .franch-img::after{ background:linear-gradient(0deg, var(--ink) 0%, rgba(20,16,16,.2) 70%); }
}
@media (max-width:900px){
  nav.main, .head-actions .head-phone, .head-actions .btn{ display:none; }
  .burger{ display:block; margin-left:auto; }
  .topbar .wrap{ gap:14px; font-size:12px; }
  .topbar-right .soc{ display:none; }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-card{ width:100%; max-width:360px; }
  .adv-grid{ grid-template-columns:1fr; }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .abon{ grid-template-columns:1fr; }
  .abon-l, .abon-r{ padding:44px 30px; }
}
@media (max-width:620px){
  body{ font-size:16px; }
  .wrap{ padding:0 18px; }
  .sec{ padding:66px 0; }
  .hero{ padding:60px 0 100px; min-height:auto; }
  .hero-heart{ width:320px; height:308px; right:-90px; bottom:-60px; }
  .hero-badge{ flex-direction:column; align-items:flex-start; gap:9px; padding:14px 18px; border-radius:16px; }
  .hero-badge .pill{ order:-1; }
  .hero-cta .btn{ width:100%; }
  .prog-grid{ grid-template-columns:1fr; }
  .prog{ aspect-ratio:4/3; }
  .prog-num{ top:-140px; font-size:48px; }
  .incl-grid, .clubs-grid{ grid-template-columns:1fr; }
  .foot-grid{ grid-template-columns:1fr; gap:30px; }
  .fields{ grid-template-columns:1fr; }
  .form-card{ padding:28px 22px; }
  .mission{ padding:80px 0; }
  .franch-in{ padding:40px 26px; }
  .topbar .city-pick span.hide-xs{ display:none; }
  .topbar .wrap > a:not(.city-pick){ display:none; }
  .concept-tag{ left:12px; bottom:12px; font-size:11px; }
  .logo img{ width:150px; }
  header.site.small .logo img{ width:140px; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  html.anim .reveal{ opacity:1 !important; transform:none !important; }
  html.anim .pulse-line{ stroke-dashoffset:0 !important; }
  html.anim .pulse-heart-wrap{ opacity:1 !important; }
}
/* ===== Внутренние страницы ===== */
.main a.cur{ color:var(--coral); }
.page-hero{ position:relative; background:var(--ink); color:#fff; overflow:hidden;
  padding:150px 0 90px; }
.page-hero>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.34; filter:grayscale(.45); }
.page-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(105deg, rgba(20,16,16,.94) 0%, rgba(20,16,16,.72) 46%, rgba(20,16,16,.34) 100%); }
.page-hero .wrap{ position:relative; z-index:2; }
.page-hero .h1{ font-size:clamp(34px,5.4vw,70px); margin:0; }
.page-hero .lead{ max-width:620px; margin-top:22px; color:rgba(255,255,255,.76); }
.crumbs{ display:flex; gap:10px; align-items:center; font-size:13px;
  color:rgba(255,255,255,.5); margin-bottom:26px; }
.crumbs a:hover{ color:var(--amber); }
.page-hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:38px; }
.concept-tag{ left:auto; right:18px; }
/* 760px не хватало на вторую строку центрированного заголовка. */
.sec-head.center{ max-width:1040px; }
/* ===== Слайдер =====
   Прокрутку делает сам браузер: overflow-x + scroll-snap. Это даёт свайп
   на телефоне и трекпаде бесплатно, скриптом остаются только стрелки.
   Число видимых карточек задаётся переменной --cols прямо в разметке,
   дробное значение (2.2) оставляет справа «хвост» следующей карточки —
   подсказку, что ряд листается. */
.slider{ position:relative; }
.slider-track{ --cols:4; --sgap:20px;
  display:flex; gap:var(--sgap); overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; padding-bottom:4px;
  scrollbar-width:none; -ms-overflow-style:none; }
.slider-track::-webkit-scrollbar{ display:none; }
.slider-track>*{ scroll-snap-align:start;
  flex:0 0 calc((100% - (var(--cols) - 1) * var(--sgap)) / var(--cols)); }
.slider-nav{ display:flex; gap:10px; margin-top:26px; }
.slider-nav button{ width:48px; height:48px; border-radius:50%; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  background:var(--paper); border:1px solid var(--line); color:var(--ink);
  font-size:20px; line-height:1; transition:.25s; }
.slider-nav button:hover:not([disabled]){ border-color:var(--coral); color:var(--coral); }
.slider-nav button[disabled]{ opacity:.3; cursor:default; }
.sec.dark .slider-nav button, .page-hero .slider-nav button{
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.2); color:#fff; }
@media (max-width:1080px){ .slider-track{ --cols:2.2; } }
@media (max-width:620px){ .slider-track{ --cols:1.1; --sgap:14px; } }
/* ===== Акции в герое =====
   Заказчик просил не оставлять правую половину первого экрана пустой
   (замечания 03 и 12). Герой становится двухколоночным только там,
   где слайдер действительно есть, — у остальных страниц вёрстка прежняя. */
.page-hero.with-promo .wrap{ display:grid; gap:56px; align-items:center;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
.page-hero.with-promo .hero-promo .slider-track{ --cols:1; --sgap:16px; }
.promo{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r); padding:30px 32px 34px; backdrop-filter:blur(6px); }
.promo-tag{ display:inline-block; font-family:var(--display); font-weight:800;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  padding:7px 14px; border-radius:30px; background:var(--grad); color:#fff; }
.promo h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:clamp(22px,2.2vw,30px); line-height:1.1;
  margin:18px 0 12px; }
.promo p{ margin:0 0 24px; font-size:15px; line-height:1.55;
  color:rgba(255,255,255,.7); }
.promo .btn{ width:100%; justify-content:center; }
.page-hero .note{ color:rgba(255,255,255,.4); }
@media (max-width:1080px){
  .page-hero.with-promo .wrap{ grid-template-columns:minmax(0,1fr); gap:42px; }
}
/* ===== Результаты клиентов ===== */
.res{ background:var(--paper); border:1px solid var(--line); border-radius:18px;
  overflow:hidden; display:flex; flex-direction:column; }
.res-ph{ aspect-ratio:3/4; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:20px; font-size:13px; color:var(--muted);
  border-bottom:1px solid var(--line);
  background:repeating-linear-gradient(135deg, rgba(250,156,48,.07) 0 12px,
    transparent 12px 24px); }
.res-in{ padding:20px 22px 24px; }
.res-in h3{ font-family:var(--display); font-weight:900; font-style:italic;
  font-size:19px; margin:0 0 6px; }
.res-in p{ margin:0; font-size:14px; color:var(--muted); }
/* ===== Источники выручки франчайзи ===== */
.src-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.src{ background:var(--paper); border:1px solid var(--line); border-radius:var(--r);
  padding:30px 30px 32px; transition:.3s; }
.src:hover{ border-color:var(--coral); transform:translateY(-4px); }
.src b{ display:block; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:38px; line-height:1; background:var(--grad); -webkit-background-clip:text;
  background-clip:text; color:transparent; }
.src h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:19px; margin:16px 0 10px; }
.src p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--muted); }
@media (max-width:1080px){ .src-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .src-grid{ grid-template-columns:minmax(0,1fr); } }
/* ===== Фотогалерея клуба ===== */
.shot{ border-radius:18px; overflow:hidden; position:relative; }
.shot img{ display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.shot figcaption{ position:absolute; left:0; right:0; bottom:0; padding:34px 22px 18px;
  font-family:var(--display); font-weight:800; font-size:14px; color:#fff;
  background:linear-gradient(transparent, rgba(20,16,16,.82)); }
/* ===== Отзывы ===== */
.rev{ background:var(--paper); border:1px solid var(--line); border-radius:18px;
  padding:30px 32px 34px; display:flex; flex-direction:column; gap:16px; }
.sec.dark .rev{ background:var(--ink-3); border-color:rgba(255,255,255,.08); }
.rev q{ font-size:16px; line-height:1.6; quotes:"\00ab" "\00bb"; }
.rev .who{ font-family:var(--display); font-weight:800; font-size:14px;
  margin-top:auto; }
.rev .who span{ display:block; font-weight:400; font-family:var(--body);
  font-size:13px; color:var(--muted); margin-top:4px; }
.tbd{ border-bottom:2px dashed rgba(250,156,48,.6); cursor:help; }
.note{ font-size:13px; color:var(--muted); margin-top:18px; }
.dark .note{ color:rgba(255,255,255,.42); }
.dark .incl{ background:var(--ink-3); border-color:rgba(255,255,255,.08); color:#fff; }
.dark .incl:hover{ border-color:var(--coral); }
@media (max-width:900px){ .page-hero{ padding:120px 0 64px; } }
/* Семь и восемь пунктов меню («Абонементы», «Расписание») выдавливают кнопку
   из .wrap раньше, чем срабатывает поджатие шапки из концепта.
   С восьмым пунктом порог пришлось поднять с 1500 до 1700px. */
@media (max-width:1700px){
  header.site .wrap{ gap:18px; }
  nav.main{ gap:16px; min-width:0; }
  nav.main a{ font-size:13px; }
  .head-actions{ gap:12px; }
  .head-phone{ font-size:15px; }
  .logo img{ width:156px; }
  header.site.small .logo img{ width:144px; }
}
/* С восемью пунктами меню телефон в шапке перестаёт помещаться уже на 1600px.
   Кнопка «Пробная тренировка» важнее: телефон уходит, она остаётся.
   Если заказчику нужен телефон на 1440 — убираем из меню «Почему Броско». */
@media (max-width:1600px){ .head-phone{ display:none; } }
@media (max-width:1080px){ .form-grid{ grid-template-columns:minmax(0,1fr); } }
/* Ниже 400px нижняя граница clamp у .h2 (30px) не вмещает длинные слова
   вроде «администраторов» — опускаем её ещё на шаг. */
@media (max-width:400px){ .h2{ font-size:26px; } }
/* ===== Каталог направлений ===== */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; }
.filters button{ font-family:var(--display); font-weight:800; font-size:12px;
  letter-spacing:.1em; text-transform:uppercase; padding:11px 20px; border-radius:30px;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  transition:background .3s, color .3s, border-color .3s, transform .3s; }
.filters button:hover{ transform:translateY(-2px); border-color:var(--coral); }
.filters button.on{ background:var(--grad); color:#fff; border-color:transparent; }
.prog-grid.cat{ grid-template-columns:repeat(3,1fr); }
.prog.hide{ display:none; }
.prog-meta{ display:flex; align-items:center; gap:14px; margin-top:16px;
  font-size:12px; color:rgba(255,255,255,.66); font-family:var(--display);
  font-weight:700; letter-spacing:.04em; }
.dots{ display:inline-flex; gap:4px; }
.dots i{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.26); }
.dots i.on{ background:var(--amber); }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.step{ background:var(--ink-3); border-radius:var(--r); padding:30px 26px;
  border:1px solid rgba(255,255,255,.07); }
.step b{ display:block; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:40px; background:var(--grad); -webkit-background-clip:text;
  background-clip:text; color:transparent; line-height:1; }
.step h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:19px; margin:16px 0 10px; }
.step p{ margin:0; font-size:14px; color:rgba(255,255,255,.62); line-height:1.5; }
.step-bar{ display:flex; height:12px; border-radius:30px; overflow:hidden;
  margin:44px 0 0; background:rgba(255,255,255,.08); }
.step-bar i{ display:block; }
.sched-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r); }
table.sched{ border-collapse:collapse; width:100%; min-width:820px; font-size:14px; }
table.sched th, table.sched td{ padding:14px 16px; text-align:left;
  border-bottom:1px solid var(--line); }
table.sched thead th{ background:var(--peach); font-family:var(--display);
  font-weight:800; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
table.sched td:first-child{ font-family:var(--display); font-weight:900;
  font-style:italic; color:var(--coral); white-space:nowrap; }
table.sched tbody tr:hover{ background:rgba(250,156,48,.07); }
table.sched td span{ display:block; font-size:12px; color:var(--muted); }
@media (max-width:1080px){ .prog-grid.cat{ grid-template-columns:repeat(2,1fr); }
  .steps{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .prog-grid.cat{ grid-template-columns:1fr; }
  .steps{ grid-template-columns:1fr; } }
/* ---- brosko-napravleniya.html ---- */
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-f44e7241c210c69384.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-0eb22e3d769a66a92d.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-a187b077090fe8ae3f.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/fonts/redesign/original-06b16db7a969135d48.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-c3909442456a8f357a.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-1f275d522571c81eb7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-f283e584f001db04b3.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/redesign/original-2dea6190c113af6179.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-05795f7954ba178292.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'PT Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/redesign/original-05ea99a48ece3c624f.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ---- brosko-uslugi.html ---- */
/* ===== Услуги ===== */
.svc-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.svc{ display:grid; grid-template-columns:1fr; border-radius:var(--r);
  overflow:hidden; border:1px solid var(--line); background:#fff;
  transition:transform .35s, box-shadow .35s, border-color .35s; }
.svc:hover{ transform:translateY(-7px); border-color:transparent;
  box-shadow:0 32px 60px -34px rgba(20,16,16,.45); }
.svc-photo{ position:relative; aspect-ratio:16/9; overflow:hidden; }
.svc-photo img{ position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; filter:grayscale(.4); transition:transform .7s, filter .5s; }
.svc:hover .svc-photo img{ transform:scale(1.07); filter:grayscale(0); }
.svc-tag{ position:absolute; top:16px; left:16px; z-index:2;
  font-family:var(--display); font-weight:800; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; padding:6px 13px; border-radius:30px;
  background:var(--grad); color:#fff; }
.svc-in{ padding:30px 32px; }
.svc-in h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:24px; margin:0 0 12px; letter-spacing:-.01em; }
.svc-in p{ margin:0 0 18px; font-size:15px; color:var(--muted); line-height:1.55; }
.svc-in ul{ list-style:none; margin:0; padding:0; }
.svc-in li{ display:flex; gap:11px; align-items:flex-start; padding:8px 0;
  font-size:15px; border-top:1px solid rgba(20,16,16,.07); }
.svc-in li .heart{ width:16px; height:15px; flex:none; margin-top:4px; }
.pay-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pay{ background:var(--ink-2); border:1px solid rgba(255,255,255,.08);
  border-radius:var(--r); padding:32px 30px; transition:transform .35s, border-color .35s; }
.pay:hover{ transform:translateY(-7px); border-color:var(--coral); }
.pay .heart{ width:30px; height:29px; margin-bottom:18px; }
.pay h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:20px; margin:0 0 10px; color:#fff; }
.pay p{ margin:0 0 18px; font-size:15px; color:rgba(255,255,255,.62); line-height:1.5; }
.pay .price{ font-family:var(--display); font-weight:800; font-size:13px;
  letter-spacing:.06em; color:var(--amber); }
.faq{ max-width:860px; margin:0 auto; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{ list-style:none; cursor:pointer; padding:26px 54px 26px 0;
  position:relative; font-family:var(--display); font-weight:800; font-size:19px;
  transition:color .3s; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--coral); }
.faq summary::after{ content:""; position:absolute; right:8px; top:50%;
  width:14px; height:14px; margin-top:-7px;
  border-right:2px solid var(--coral); border-bottom:2px solid var(--coral);
  transform:rotate(45deg) translateY(-25%); transition:transform .3s; }
.faq details[open] summary::after{ transform:rotate(225deg) translateY(-25%); }
.faq details p{ margin:0; padding:0 54px 28px 0; color:var(--muted);
  font-size:16px; line-height:1.6; }
@media (max-width:1080px){ .svc-grid{ grid-template-columns:1fr; }
  .pay-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .pay-grid{ grid-template-columns:1fr; }
  .svc-in{ padding:26px 24px; } .faq summary{ font-size:17px; } }
/* ---- brosko-abonementy.html ---- */
/* ===== Франшиза ===== */
.econ{ display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  background:rgba(255,255,255,.1); border-radius:var(--r); overflow:hidden; }
.econ div{ background:var(--ink-2); padding:38px 30px; }
.econ b{ display:block; font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(28px,3.2vw,42px); background:var(--grad);
  -webkit-background-clip:text; background-clip:text; color:transparent; line-height:1.05; }
.econ span{ display:block; margin-top:12px; font-size:14px; color:rgba(255,255,255,.6);
  line-height:1.45; }
.formats{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.fmt{ border:1px solid var(--line); border-radius:var(--r); padding:34px 30px;
  background:#fff; transition:transform .35s, box-shadow .35s, border-color .35s; }
.fmt:hover{ transform:translateY(-7px); border-color:transparent;
  box-shadow:0 30px 56px -32px rgba(20,16,16,.42); }
.fmt.hot{ background:var(--ink); color:#fff; border-color:transparent; }
.fmt .pill{ display:inline-block; font-family:var(--display); font-weight:800;
  font-size:10px; letter-spacing:.18em; text-transform:uppercase; padding:5px 12px;
  border-radius:30px; background:var(--grad); color:#fff; margin-bottom:18px; }
.fmt h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:26px; margin:0 0 6px; }
.fmt .area{ font-family:var(--display); font-weight:900; font-size:15px;
  color:var(--coral); margin-bottom:20px; }
.fmt ul{ list-style:none; margin:0; padding:0; }
.fmt li{ display:flex; gap:11px; align-items:flex-start; padding:9px 0;
  font-size:15px; border-top:1px solid rgba(20,16,16,.07); }
.fmt.hot li{ border-top-color:rgba(255,255,255,.1); }
.fmt li .heart{ width:18px; height:17px; flex:none; margin-top:4px; }
.tl{ display:grid; grid-template-columns:repeat(3,1fr); gap:26px 20px; }
.tl-item{ position:relative; padding-top:26px; border-top:2px solid var(--line); }
.tl-item::before{ content:""; position:absolute; top:-6px; left:0; width:52px;
  height:10px; border-radius:30px; background:var(--grad); }
.tl-item b{ display:block; font-family:var(--display); font-weight:900;
  font-style:italic; font-size:14px; letter-spacing:.14em; color:var(--coral);
  text-transform:uppercase; }
.tl-item h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:20px; margin:12px 0 10px; }
.tl-item p{ margin:0; font-size:15px; color:var(--muted); line-height:1.5; }
.geo{ display:grid; grid-template-columns:1.1fr .9fr; gap:34px; align-items:center; }
.geo-photos{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.geo-photos img{ border-radius:14px; aspect-ratio:4/3; object-fit:cover; width:100%; }
.quote-card{ display:grid; grid-template-columns:320px 1fr; gap:0;
  border-radius:var(--r); overflow:hidden; background:var(--ink); color:#fff; }
.quote-card img{ width:100%; height:100%; object-fit:cover; min-height:300px; }
.quote-in{ padding:52px 54px; }
.quote-in blockquote{ margin:0; font-family:var(--display); font-weight:700;
  font-style:italic; font-size:clamp(19px,2vw,25px); line-height:1.45; }
.quote-in cite{ display:block; margin-top:26px; font-style:normal; font-size:14px;
  color:rgba(255,255,255,.55); }
.quote-in cite b{ display:block; color:#fff; font-family:var(--display);
  font-weight:800; font-size:16px; margin-bottom:4px; }
@media (max-width:1080px){ .econ{ grid-template-columns:repeat(2,1fr); }
  .formats{ grid-template-columns:1fr; } .tl{ grid-template-columns:repeat(2,1fr); }
  .geo{ grid-template-columns:1fr; } .quote-card{ grid-template-columns:1fr; }
  .quote-card img{ min-height:240px; } .quote-in{ padding:38px 30px; } }
@media (max-width:620px){ .econ{ grid-template-columns:1fr; }
  .tl{ grid-template-columns:1fr; } .geo-photos{ grid-template-columns:repeat(2,1fr); } }
/* ===== Абонементы ===== */
.fmt .cost{ font-family:var(--display); font-weight:900; font-style:italic;
  font-size:clamp(30px,3.4vw,44px); line-height:1; margin:0 0 4px; }
.fmt .cost small{ display:block; font-size:12px; font-style:normal;
  font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); margin-bottom:8px; }
.fmt.hot .cost small{ color:rgba(255,255,255,.55); }
.fmt .cost b{ background:var(--grad); -webkit-background-clip:text;
  background-clip:text; color:transparent; }
.fmt .per{ font-size:14px; color:var(--muted); margin:0 0 22px; }
.fmt.hot .per{ color:rgba(255,255,255,.6); }
.fmt .btn{ width:100%; justify-content:center; margin-top:24px; }
table.sched.cmp{ min-width:640px; }
table.sched.cmp td:first-child{ font-family:var(--body); font-weight:400;
  font-style:normal; color:var(--ink); white-space:normal; }
table.sched.cmp th:not(:first-child), table.sched.cmp td:not(:first-child){
  text-align:center; width:120px; }
table.sched.cmp .yes{ color:#2E9E5B; font-weight:700; }
table.sched.cmp .no{ color:rgba(20,16,16,.28); }
/* ---- brosko-raspisanie.html ---- */
/* ===== Расписание ===== */
.sched-note{ display:flex; flex-wrap:wrap; gap:14px; align-items:center;
  justify-content:space-between; margin-bottom:22px; font-size:14px;
  color:var(--muted); }
table.sched.week{ min-width:980px; }
table.sched.week td:not(:first-child){ min-width:132px; }
table.sched.week td b{ display:block; font-family:var(--display); font-weight:800;
  font-size:14px; font-style:normal; color:var(--ink); }
table.sched.week td.off{ color:rgba(20,16,16,.28); }
.legend{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.legend div{ display:flex; gap:10px; align-items:center; font-size:15px;
  padding:14px 18px; border:1px solid var(--line); border-radius:14px;
  background:#fff; }
.legend .heart{ width:16px; height:15px; flex:none; }
@media (max-width:1080px){ .legend{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .legend{ grid-template-columns:1fr; } }
/* ---- brosko-kluby.html ---- */
/* ===== Клубы ===== */
.club-search{ display:flex; gap:12px; flex-wrap:wrap; align-items:center;
  margin-bottom:34px; }
.club-search input{ flex:1; min-width:280px; padding:16px 20px; font:inherit;
  font-size:16px; border:1px solid var(--line); border-radius:30px; background:#fff;
  color:var(--ink); outline:none; transition:border-color .3s, box-shadow .3s; }
.club-search input:focus{ border-color:var(--coral);
  box-shadow:0 0 0 4px rgba(240,91,45,.12); }
.club-search .found{ font-size:14px; color:var(--muted); }
.clubs-list{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.ccard{ display:grid; grid-template-columns:240px 1fr; border:1px solid var(--line);
  border-radius:var(--r); overflow:hidden; background:#fff;
  transition:transform .35s, box-shadow .35s, border-color .35s; }
.ccard:hover{ transform:translateY(-6px); border-color:transparent;
  box-shadow:0 30px 58px -34px rgba(20,16,16,.45); }
.ccard.hide{ display:none; }
.ccard-photo{ position:relative; overflow:hidden; min-height:260px; }
.ccard-photo img{ position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; filter:grayscale(.35); transition:transform .7s, filter .5s; }
.ccard:hover .ccard-photo img{ transform:scale(1.07); filter:grayscale(0); }
.ccard-no{ position:absolute; top:14px; left:14px; z-index:2;
  font-family:var(--display); font-weight:800; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; padding:6px 12px; border-radius:30px;
  background:var(--grad); color:#fff; }
.ccard-in{ padding:28px 30px; display:flex; flex-direction:column; }
.ccard-in h3{ font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:21px; margin:0 0 6px; letter-spacing:-.01em; }
.ccard-metro{ font-size:14px; color:var(--muted); margin:0 0 18px; }
.ccard-rows{ margin:0 0 18px; }
.ccard-rows div{ display:flex; gap:11px; align-items:flex-start; padding:7px 0;
  font-size:15px; border-top:1px solid rgba(20,16,16,.07); }
.ccard-rows div:first-child{ border-top:0; }
.ccard-rows .heart{ width:16px; height:15px; flex:none; margin-top:4px; }
.ccard-rows a:hover{ color:var(--coral); }
.ccard-feats{ display:flex; flex-wrap:wrap; gap:7px; margin-bottom:22px; }
.ccard-feats span{ font-size:12px; padding:5px 11px; border-radius:30px;
  background:var(--peach); color:var(--ink); }
.ccard-cta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:auto; }
.ccard-cta .btn{ padding:12px 18px; font-size:11px; }
.empty{ display:none; padding:46px 0; text-align:center; color:var(--muted); }
.empty.on{ display:block; }
.city-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.city-card{ position:relative; border-radius:var(--r); overflow:hidden;
  aspect-ratio:4/3; display:flex; align-items:flex-end; isolation:isolate;
  transition:transform .4s; }
.city-card:hover{ transform:translateY(-7px); }
.city-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  z-index:-2; filter:grayscale(.55); transition:transform .7s, filter .5s; }
.city-card:hover img{ transform:scale(1.09); filter:grayscale(0); }
.city-card::after{ content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(0deg, rgba(20,16,16,.9) 6%, rgba(20,16,16,.15) 70%);
  transition:background .4s; }
.city-card:hover::after{ background:linear-gradient(0deg, rgba(224,52,42,.9) 0%, rgba(240,91,45,.3) 60%, rgba(20,16,16,.1) 100%); }
.city-card b{ position:relative; padding:20px 22px; color:#fff;
  font-family:var(--display); font-weight:900; font-style:italic;
  text-transform:uppercase; font-size:18px; }
@media (max-width:1080px){ .clubs-list{ grid-template-columns:1fr; }
  .city-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:620px){ .ccard{ grid-template-columns:1fr; }
  .ccard-photo{ min-height:200px; }
  .city-grid{ grid-template-columns:repeat(2,1fr); } }
/* ---- brosko-o-kompanii.html ---- */
/* ===== О компании ===== */
.about-split{ display:grid; gap:46px; align-items:center;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.about-split .h2{ font-size:clamp(28px,3.4vw,44px); }
.about-split p{ font-size:17px; line-height:1.65; color:var(--muted); }
.dark .about-split p{ color:rgba(255,255,255,.66); }
.about-photos{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.about-photos img{ width:100%; border-radius:14px; aspect-ratio:3/4; object-fit:cover; }
.about-photos img:nth-child(1), .about-photos img:nth-child(4){ aspect-ratio:3/3.4; }
.about-split .incl-grid{ grid-template-columns:1fr; }
@media (max-width:900px){ .about-split{ grid-template-columns:minmax(0,1fr); gap:30px; } }
/* ---- brosko-blog.html ---- */
/* ===== Блог ===== */
.post-meta{ display:flex; gap:14px; align-items:center; margin-top:16px;
  font-family:var(--display); font-weight:700; font-size:12px; letter-spacing:.04em;
  color:var(--muted); }
.post-meta span::before{ content:"·"; margin-right:14px; }
.post-meta span:first-child::before{ content:""; margin:0; }
.svc.post .svc-in h3{ font-size:21px; }
.svc.post:hover .svc-in h3{ color:var(--coral); }
.svc.post .svc-in h3{ transition:color .3s; }
.post-wide{ grid-column:1/-1; }
.post-wide .svc-photo{ aspect-ratio:21/9; }
.post-wide .svc-in h3{ font-size:clamp(24px,3vw,34px); }
.steps.three{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1080px){ .steps.three{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .steps.three{ grid-template-columns:1fr; } }
.sub{ display:grid; grid-template-columns:1fr auto; gap:18px; align-items:end;
  max-width:720px; }
@media (max-width:620px){ .sub{ grid-template-columns:1fr; }
  .post-wide .svc-photo{ aspect-ratio:16/9; } }
/* ---- contrast-premium.css ---- */
@font-face{font-family:Manrope;src:url('/fonts/redesign/Manrope-Bold.ttf');font-weight:700;font-display:swap}
@font-face{font-family:'Golos Text';src:url('/fonts/redesign/GolosText-variable.ttf');font-weight:100 900;font-display:swap}
:root{--red:#E40005;--coral:#E40005;--amber:#F4A900;--gold:#F4A900;--grad:#F4A900;--grad-soft:#F5F0E8;--ink:#3D3D3D;--ink-2:#3D3D3D;--ink-3:#3D3D3D;--peach:#F5F0E8;--peach-2:#E8E4DC;--paper:#fff;--muted:#68645e;--line:#d9d5ce;--display:Manrope,sans-serif;--text:'Golos Text',sans-serif;--r:8px;--h1c:#F4A900;--h2c:#E40005;--wrap:1320px}
body{font-family:var(--text);font-size:17px;line-height:1.6;color:var(--ink)}
.h1,.h2,.h3,.h4,h3,.hero-card b,.stat b,.adv h3,.res-in h3,.franch-stats b,.mission blockquote,.form-ok b,.foot-phone,.club-addr{font-family:var(--display)!important;font-weight:700!important;font-style:normal!important;text-transform:none!important;letter-spacing:-.035em;line-height:1.12}
.h1{font-size:clamp(38px,4.7vw,68px)}
.h2{font-size:clamp(30px,3.7vw,52px)}
.h3{font-size:clamp(24px,2.5vw,34px)}
.grad-text,.stat b,.franch-stats div b{background:none;color:inherit;-webkit-text-fill-color:currentColor}
.grad-text{position:relative}
.hero .grad-text{color:var(--ink);text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:9px;text-decoration-thickness:5px}
.eyebrow{color:var(--ink);font:500 12px var(--text);letter-spacing:.15em}
.eyebrow::before{background:var(--red);width:22px;height:4px;border-radius:0}
.eyebrow.on-dark{color:#fff}
.lead,.adv p{color:#5c5852}
.btn{font:500 14px/1.3 var(--text);text-transform:none;letter-spacing:0;border-radius:5px;padding:17px 23px;white-space:normal;text-align:center;min-height:48px;box-shadow:none;transition:background .2s,color .2s}
.btn-primary{background:var(--amber);color:var(--ink);box-shadow:none}
.btn-primary:hover{background:#E8E4DC;color:var(--ink);box-shadow:none;transform:none}
.btn-ghost-light{border:1px solid currentColor;color:inherit}
.btn-ghost-light:hover{color:inherit;background:#ffffff18;border-color:currentColor;transform:none}
.btn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:4px}
.topbar{background:var(--ink);color:#e8e4dc}
.topbar .wrap{height:38px}
.topbar a:hover{color:#fff}
.soc a:hover{background:var(--red);transform:none}
header.site{background:#fff;backdrop-filter:none;border-bottom:1px solid var(--line)}
header.site .wrap{gap:22px;height:92px}
header.site.small .wrap{height:76px}
.logo img,header.site.small .logo img{width:154px;height:auto}
nav.main{gap:19px}
nav.main a{font:500 12px var(--text);text-transform:none;letter-spacing:0;white-space:nowrap}
.head-phone{font-size:14px}
.head-actions{gap:16px}
.head-actions .btn{font-size:13px;padding:14px 17px}
.btn-sm{font-size:13px}
.hero{background:var(--peach);color:var(--ink);min-height:730px;padding:70px 0 62px;overflow:hidden}
.hero-bg{left:54%;right:0;top:0;bottom:0}
.hero-bg img{opacity:1;filter:none;animation:none;object-fit:cover;object-position:57% center}
.hero-bg::after{display:none}
.hero-stripes,.hero-heart,.hero-cut{display:none}
.hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:62px;align-items:end}
.hero-grid>div:first-child{padding-right:10px;min-width:0}
.hero h1{margin-bottom:28px}
.hero h1 .line{overflow:visible}
.hero h1 .line>span{animation:none}
.hero-badge{background:none;backdrop-filter:none;border:0;border-radius:0;padding:0;margin-bottom:28px;display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--ink);animation:none}
.hero-badge b{color:var(--ink)}
.hero-badge .pill{color:var(--ink);background:none;border-left:4px solid var(--red);padding:0 0 0 10px;border-radius:0;font:500 11px var(--text)}
.hero-sub{font-size:16px;color:var(--ink);max-width:45ch;animation:none;margin-bottom:28px}
.hero-cta{animation:none;gap:10px;max-width:530px}
.hero-cta .btn{font-size:14px;padding:17px 20px}
.hero-cta .btn-ghost-light{color:var(--ink);background:var(--peach);border-color:var(--ink)}
.hero-card{background:var(--ink);color:#fff;border:0;border-radius:8px;padding:26px;width:330px;justify-self:end;backdrop-filter:none;animation:none;margin-top:370px;position:relative}
.hero-card .heart{width:30px;height:28px;margin-bottom:15px}
.hero-card b{font-size:24px}
.hero-card p{color:#e8e4dc;font-size:14px}
.hero-card .btn{color:#fff}
.marquee-clip{margin:0 0 50px}
.marquee{transform:none;background:var(--amber);color:var(--ink);padding:14px 0}
.marquee span{font:500 16px var(--text);text-transform:none;letter-spacing:0}
.marquee .heart{--h1c:var(--ink);--h2c:var(--ink)}
.sec{padding:88px 0}
.sec-head{margin-bottom:38px;max-width:850px}
.stats{border-radius:0;background:none;gap:0;border-bottom:1px solid var(--line)}
.stat{border-right:1px solid var(--line);padding:26px 30px 36px}
.stat:last-child{border-right:0}
.stat b{font-size:48px;color:var(--ink)}
.stat span{color:var(--muted);font-size:14px}
.prog{display:block;aspect-ratio:auto;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);overflow:hidden;isolation:auto}
.prog:hover{transform:none}
.prog img{position:static;width:100%;height:240px;object-fit:cover;filter:none;transform:none!important}
.prog:hover img{filter:none}
.prog::after{display:none}
.prog-in{padding:22px;color:var(--ink)}
.prog-in h3{font-size:24px;margin:12px 0}
.prog-in p{font-size:14px;line-height:1.55;color:var(--muted)}
.prog-num{position:static;font:500 12px var(--text);color:var(--muted);opacity:1}
.prog-tag{background:var(--peach);color:var(--ink);font-style:normal;letter-spacing:.04em;font-size:10px;display:inline-block;margin-left:8px;border-radius:3px}
.prog-meta{color:var(--muted);font-style:normal}
.slider-track{--cols:3.15;--sgap:22px}
.slider-nav button{border-radius:5px;background:#fff;border-color:var(--ink);color:var(--ink)}
.slider-nav button:hover:not([disabled]){background:var(--amber);color:var(--ink);border-color:var(--ink)}
.pulse-sec{background:var(--ink);padding:90px 0}
.pulse-facts{gap:20px}
.dark .lead{color:#e8e4dc}
.pulse-vis{background:var(--ink);border:1px solid #ffffff38;border-radius:8px;padding:24px}
.pulse-svg text{font-style:normal!important;font-family:var(--text)!important}
.pulse-line{stroke:var(--amber)}
#why{background:var(--peach)}
.adv{border:0;border-radius:8px;background:#fff;padding:28px;box-shadow:none}
.adv::before{display:none}
.adv:hover{transform:none;box-shadow:none}
.adv h3{font-size:23px}
.adv p{font-size:15px}
.adv .support-art{width:100%;height:190px;object-fit:contain;margin:0 0 22px}
.adv .heart{display:none}
.res{border-radius:6px}
.res-ph{background:var(--peach);color:var(--ink);border-bottom:1px solid var(--line);aspect-ratio:4/3}
.res-in h3{font-size:21px}
#services .sec-head{min-height:270px;padding-right:340px;max-width:none;background:url('/img/redesign/objects.webp') right center/300px auto no-repeat}
.incl{border-radius:5px;background:#fff}
.incl .dot{background:var(--red);width:5px;height:5px;border-radius:0}
.abon{border-radius:8px}
.abon-l{background:var(--ink)}
.abon-r{background:var(--amber);color:var(--ink)}
.abon-r .h3,.abon-r p,.abon-r .eyebrow{color:var(--ink)}
.abon-r .btn{background:var(--ink);color:#fff}
.abon-r .heart{--h1c:var(--ink);--h2c:var(--ink)}
.abon .h3{font-size:32px}
.abon-l> .heart{display:none}
.abon-r li,.abon-r p{font-size:16px}
.mission{background:#fff;color:var(--ink);padding:90px 0;border-bottom:1px solid var(--line)}
.mission blockquote{font-size:clamp(28px,3.2vw,46px);max-width:1100px;margin:auto}
.mission .heart{width:42px;height:40px;margin-bottom:24px}
.mission .grad-text{color:var(--ink)}
.mission cite{color:var(--muted)}
.club{border-radius:6px;background:#fff}
.club:hover{background:var(--peach);transform:none}
.club-addr{font-size:22px}
.club-no{color:var(--muted)}
.city-chip{border-radius:4px}
.city-chip:hover{background:var(--amber);color:var(--ink)}
.franch{background:var(--ink);border-radius:8px}
.franch-in{padding:50px}
.franch-img img{filter:none}
.franch-img::after{display:none}
.franch-stats div b{color:var(--amber);font-style:normal}
.franch-stats div span{color:#e8e4dc}
.franch p{color:#e8e4dc}
#form{background:var(--peach);border-top:1px solid var(--line)}
.form-card{border-radius:8px;box-shadow:none;border:1px solid var(--line)}
.field label{color:var(--ink);font:500 12px var(--text);letter-spacing:.04em}
.field input,.field select{border-radius:4px;background:#fff;border:1px solid #8a857d}
.consent{color:var(--muted)}
.field input:focus,.field select:focus{border-color:var(--ink);box-shadow:none}
.field input:invalid:not(:placeholder-shown){border-color:var(--red)}
footer.site{background:var(--ink);color:#e8e4dc}
footer.site .logo img{width:180px}
.foot-bottom{color:#e8e4dc}
.concept-tag{background:var(--ink);border-radius:4px;box-shadow:none;font-size:11px}
.concept-tag .heart{display:none}
.mobile-menu a{font-family:var(--display);font-weight:700;font-style:normal;text-transform:none;font-size:25px}
.mobile-menu .btn{color:var(--ink)}
.demo-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;background:#3d3d3d;color:#fff;padding:18px 24px;border:2px solid #F4A900;border-radius:6px;z-index:999;box-shadow:0 8px 35px #0003;font:16px/1.5 var(--text)}
.demo-toast[hidden]{display:none}
@media(min-width:1251px){nav.main{display:flex}.burger{display:none}.head-phone{display:none}}
@media(max-width:1250px){nav.main{display:none}.burger{display:block;margin-left:auto}.head-actions{margin-left:auto}.head-actions .btn{display:inline-flex}.hero-grid{gap:34px}.hero-card{width:300px}.hero .h1{font-size:clamp(38px,4.9vw,60px)}}
@media(max-width:900px){header.site .wrap{height:76px}.head-actions .btn{display:none}.hero{padding:42px 0 36px;min-height:0;display:block}.hero-bg{position:relative;left:auto;right:auto;height:380px;margin:0 18px 28px}.hero-bg img{object-position:center}.hero .wrap{position:static}.hero-grid{grid-template-columns:1fr;gap:26px}.hero-grid>div:first-child{padding:0}.hero .h1{font-size:clamp(35px,7vw,56px)}.hero-badge{margin-bottom:20px}.hero-card{margin:0;width:100%;max-width:none;justify-self:stretch;padding:24px}.hero-sub{max-width:none}.hero-cta{max-width:none}.hero-card b br{display:none}.hero-card .heart{float:right}.hero-card .btn{width:auto}.sec{padding:64px 0}.prog img{height:230px}.slider-track{--cols:2.2}.pulse-grid{grid-template-columns:1fr}.pulse-vis{max-width:600px}.adv-grid{grid-template-columns:1fr}.adv{display:grid;grid-template-columns:160px 1fr;gap:0 24px}.adv .support-art{grid-row:1/3;height:140px;margin:0}.adv h3{align-self:end}.adv p{align-self:start}#services .sec-head{padding-right:260px;background-size:230px}.mission{padding:65px 0}.abon .h3{font-size:28px}.stat b{font-size:38px}}
@media(max-width:620px){.wrap{padding:0 20px}.hero-bg{height:250px;margin:0 20px 28px}.hero .h1{font-size:clamp(31px,8.5vw,48px);line-height:1.15}.hero h1 .line>span{overflow-wrap:anywhere}.hero-badge{padding:0;border:0;border-radius:0;gap:10px}.hero .grad-text{text-decoration-thickness:3px;text-underline-offset:6px}.hero-sub{font-size:15px;line-height:1.65}.hero-cta .btn{width:100%;padding:17px 12px;font-size:14px}.hero-card{padding:24px}.hero-card b{font-size:23px}.hero-card p{font-size:14px}.marquee-clip{margin-bottom:24px}.marquee span{font-size:14px}.stat{padding:22px 15px}.stat b{font-size:32px}.stat span{font-size:12px}.stats .stat:nth-child(2){border-right:0}.stats .stat:nth-child(-n+2){border-bottom:1px solid var(--line)}.h2{font-size:31px;line-height:1.15}.sec-head{margin-bottom:28px}.slider-track{--cols:1.08;--sgap:14px}.prog img{height:230px}.prog-in{padding:22px}.prog-in h3{font-size:23px}.adv{display:block;padding:24px}.adv .support-art{height:180px;margin:0 0 20px}#services .sec-head{padding-right:0;padding-top:180px;min-height:0;background-position:top center;background-size:250px}.incl-grid{grid-template-columns:1fr 1fr;gap:10px}.incl{font-size:13px;padding:15px 12px}.abon-l,.abon-r{padding:32px 24px}.abon .h3{font-size:27px}.mission blockquote{font-size:28px}.club-addr{font-size:21px}.franch-in{padding:32px 24px}.franch-stats{gap:22px}.franch-stats div b{font-size:30px}.form-card{padding:26px 20px}.foot-phone{font-size:24px}.concept-tag{font-size:10px;max-width:calc(100% - 24px);padding:8px 12px}.topbar .wrap{height:36px}.hero-grid{min-width:0}.hero h1 .line{min-width:0}.fields,.field,.form-card,.form-grid,.hero-cta{min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media(min-width:901px){.hero-grid>div:first-child{align-self:start}.hero-card{margin-top:300px}.hero{padding-top:65px;padding-bottom:55px}}
.hero-grid>div:first-child::after{content:'';display:block;width:155px;height:87px;background:url('/img/redesign/module.svg') left center/contain no-repeat;margin-top:20px}
.pfact b{font-style:normal!important;font-weight:700!important;color:#F4A900!important;-webkit-text-fill-color:#F4A900!important;background:none!important}
.pfact span{color:#E8E4DC}
.prog-meta{color:#68645e}
.prog-tag{color:#3D3D3D}
.dots i{background:#d9d5ce}
.dots i.on{background:#3D3D3D}
@media(max-width:900px){.hero-grid>div:first-child::after{width:110px;height:62px;margin-top:14px}}
.mobile-menu:not(.open){visibility:hidden;pointer-events:none}
.mobile-menu.open{visibility:visible;pointer-events:auto}
.prog-num{position:absolute;top:14px;left:14px;background:#fff;padding:5px 9px;border-radius:3px;z-index:2}
.prog-tag{margin-left:0}
.club-no{font-style:normal}
.hero .h1 .line{position:relative}
#form .reveal>p[style*='italic']{font-style:normal!important;font-weight:700!important}
@media(max-width:1080px){.slider-track{--cols:2.2!important}}
@media(max-width:620px){.slider-track{--cols:1.08!important}.hero-card b br{display:initial}.mobile-menu{padding-top:132px}.mobile-menu a{font-size:23px;padding:10px 0}.mobile-menu .btn{font-size:19px}.hero-card b{line-height:1.15}}
.prog-num{right:auto;bottom:auto;width:auto}
/* ---- internal-premium.css ---- */
/* Internal pages — complete brand layer, loaded after the shared system. */
:root{--body:'Golos Text',sans-serif}
.inner-page [style*="font-style:italic"]{font-style:normal!important}
.inner-page h1,.inner-page h2,.inner-page h3,.inner-page h4{font-style:normal!important;font-weight:700!important;text-transform:none!important;overflow-wrap:anywhere}
.inner-page img,.inner-page a:hover img{filter:none!important;transform:none!important;animation:none!important}
.inner-page .page-hero{background:#F5F0E8;color:#3D3D3D;padding:64px 0 70px;min-height:520px;isolation:isolate}
.inner-page .page-hero>img{left:56%;right:0;width:44%;height:100%;opacity:1;object-fit:cover;object-position:center;filter:none}
.inner-page .page-hero::after{display:none}
.inner-page .page-hero .h1{font-size:clamp(34px,4vw,58px);line-height:1.12;color:#3D3D3D}
.inner-page .page-hero:not(.with-promo) .wrap>:is(.h1,.lead,.page-hero-cta,.crumbs,.eyebrow){max-width:51%}
.inner-page .page-hero .lead{color:#3D3D3D;font-size:17px;line-height:1.65}
.inner-page .page-hero .eyebrow{color:#3D3D3D}
.inner-page .crumbs{color:#68645e;margin-bottom:28px}
.inner-page .page-hero-cta .btn-ghost-light{color:#3D3D3D;border-color:#3D3D3D;background:#F5F0E8}
.inner-page .page-hero-cta{margin-top:28px}
.inner-page .page-hero.with-promo{min-height:620px}
.inner-page .page-hero.with-promo .wrap{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:80px;align-items:center}
.inner-page .hero-promo{min-width:0;width:100%;max-width:390px;justify-self:end;margin-top:90px}
.inner-page .page-hero.with-promo .hero-promo .slider-track{--cols:1!important;--sgap:16px}
.inner-page .promo{background:#3D3D3D;border:0;backdrop-filter:none;border-radius:8px;padding:30px;color:#fff}
.inner-page .promo-tag{background:#F4A900;color:#3D3D3D;border-radius:3px;font:500 11px 'Golos Text';letter-spacing:.08em}
.inner-page .promo h3{font-size:28px;color:#fff}
.inner-page .promo p{color:#E8E4DC}
.inner-page .page-hero .note{color:#3D3D3D;background:#fff;padding:10px 14px;border-radius:4px}
.inner-page .page-hero .slider-nav button{background:#fff;color:#3D3D3D;border-color:#3D3D3D}
.inner-page .page-hero .page-art{object-fit:contain;background:#fff;padding:45px}
.inner-page .adv{display:block}
.inner-page .adv .heart{display:inline-block}
.inner-page .adv::before{display:none}
.inner-page .adv .support-art~.heart{display:none}
.inner-page .src,.inner-page .fmt,.inner-page .rev,.inner-page .svc,.inner-page .ccard,.inner-page .shot,.inner-page .quote-card{border-radius:8px;box-shadow:none}
.inner-page .src:hover,.inner-page .fmt:hover,.inner-page .svc:hover,.inner-page .ccard:hover,.inner-page .city-card:hover,.inner-page .pay:hover{transform:none;box-shadow:none;border-color:#3D3D3D}
.inner-page .src b,.inner-page .econ b,.inner-page .fmt .cost,.inner-page .fmt .cost b,.inner-page .step b,.inner-page .tl-item b{font-family:Manrope;font-style:normal;font-weight:700;background:none;color:#3D3D3D;-webkit-text-fill-color:currentColor}
.inner-page .econ{border-radius:8px;background:#ffffff30}
.inner-page .econ div{background:#3D3D3D}
.inner-page .econ b,.inner-page .dark .src b,.inner-page .dark .step b{color:#F4A900}
.inner-page .econ span{color:#E8E4DC}
.inner-page .src h3,.inner-page .fmt h3,.inner-page .pay h3,.inner-page .step h3,.inner-page .tl-item h3,.inner-page .svc-in h3,.inner-page .ccard-in h3{line-height:1.2}
.inner-page .fmt .pill,.inner-page .svc-tag,.inner-page .ccard-no{background:#F4A900;color:#3D3D3D;border-radius:3px;font:500 11px 'Golos Text';letter-spacing:.05em}
.inner-page .fmt .area{color:#3D3D3D;font-weight:500}
.inner-page .fmt.hot .area,.inner-page .fmt.hot .cost b{color:#F4A900}
.inner-page .fmt.hot .per,.inner-page .fmt.hot .cost small{color:#E8E4DC}
.inner-page .pay{background:#3D3D3D;border-radius:8px;border-color:#ffffff30}
.inner-page .pay p{color:#E8E4DC}
.inner-page .pay .price{color:#F4A900}
.inner-page .steps .step{background:#fff;border:1px solid #d9d5ce;color:#3D3D3D}
.inner-page .steps .step p{color:#68645e}
.inner-page .dark .steps .step{background:#3D3D3D;color:#fff;border-color:#ffffff38}
.inner-page .dark .steps .step p{color:#E8E4DC}
.inner-page .tl-item::before{background:#F4A900;border-radius:0;height:5px;top:-4px}
.inner-page .tl-item b{color:#3D3D3D;font-size:13px;letter-spacing:.07em}
.inner-page .quote-in blockquote{font-style:normal;font-weight:500;font-family:'Golos Text';line-height:1.6}
.inner-page .quote-in cite{color:#E8E4DC}
.inner-page .shot figcaption{position:static;padding:16px 20px;background:#fff;color:#3D3D3D;font:500 14px/1.45 'Golos Text'}
.inner-page .dark .shot figcaption{background:#3D3D3D;color:#fff;border:1px solid #ffffff38;border-top:0}
.inner-page .city-card{display:flex;flex-direction:column;background:#fff;aspect-ratio:auto;border:1px solid #d9d5ce;isolation:auto;border-radius:8px}
.inner-page .city-card img{position:static;aspect-ratio:4/3;z-index:auto}
.inner-page .city-card::after{display:none}
.inner-page .city-card b{color:#3D3D3D;font-style:normal;font-weight:700;text-transform:none;font-size:20px;padding:16px 18px;width:100%}
.inner-page .ccard{grid-template-columns:minmax(0,.8fr) minmax(0,1fr)}
.inner-page .ccard-in{min-width:0;padding:26px}
.inner-page .ccard-photo{min-width:0}
.inner-page .ccard-in h3{font-size:23px}
.inner-page .ccard-feats span{border-radius:3px}
.inner-page .ccard-rows div{overflow-wrap:anywhere}
.inner-page .ccard-cta .btn{font-size:13px}
.inner-page .club-search input{border-radius:4px;border-color:#8a857d;min-width:0;flex:1 1 280px}
.inner-page .club-search input:focus{box-shadow:none;outline:3px solid #E40005;outline-offset:3px}
.inner-page .svc-tag{top:16px;left:16px}
.inner-page .svc-in{padding:28px}
.inner-page .svc-photo img{opacity:1}
.inner-page .svc-in p{color:#68645e}
.inner-page .filters button{border-radius:4px;color:#3D3D3D;font:500 13px 'Golos Text';text-transform:none;letter-spacing:0;min-height:44px;padding:12px 18px;border-color:#d9d5ce}
.inner-page .filters button.on{background:#F4A900;color:#3D3D3D;border-color:#3D3D3D}
.inner-page .filters button:hover{transform:none;border-color:#3D3D3D}
.inner-page .post.hide{display:none}
.inner-page .post-meta{font:400 13px 'Golos Text';color:#68645e}
.inner-page .post-wide .svc-photo img{object-position:center 35%}
.inner-page .faq summary{font:700 20px/1.4 Manrope;color:#3D3D3D}
.inner-page .faq summary:hover{color:#3D3D3D}
.inner-page .faq details[open]{background:#F5F0E8;padding-left:18px;padding-right:18px}
.inner-page .faq details p{color:#68645e}
.inner-page table.sched{font-family:'Golos Text';background:#fff}
.inner-page table.sched th{font-family:'Golos Text';font-weight:500;text-transform:none;letter-spacing:0;font-size:13px;background:#F5F0E8;color:#3D3D3D}
.inner-page table.sched td:first-child{font-family:'Golos Text';font-style:normal;font-weight:500;color:#3D3D3D}
.inner-page table.sched.cmp .yes{color:#3D3D3D}
.inner-page table.sched.cmp .no,.inner-page table.sched.week td.off{color:#68645e}
.inner-page .sched-wrap{border-radius:6px}
.inner-page .legend div{border-radius:4px}
.inner-page .about-photos img,.inner-page .geo-photos img{border-radius:6px}
.inner-page .dark .about-split p,.inner-page .dark .note{color:#E8E4DC}
.inner-page .dark .rev .who span{color:#E8E4DC}
.inner-page .page-hero .grad-text{color:#3D3D3D}
.inner-page .src .tbd{border-bottom-color:#F4A900}
.inner-page .form-card input,.inner-page .form-card select{max-width:100%}
.inner-page .sec-head{max-width:950px}
.inner-page section,.inner-page .wrap,.inner-page .form-grid,.inner-page .formats,.inner-page .fmt,.inner-page .step,.inner-page .pay,.inner-page .svc-grid,.inner-page .svc,.inner-page .about-split,.inner-page .geo{min-width:0}
@media(min-width:1251px){.inner-page nav.main{display:flex}.inner-page .burger{display:none}.inner-page nav.main a{font-size:12px}.inner-page header.site .wrap{gap:22px}.inner-page nav.main{gap:19px}}
@media(max-width:1250px){.inner-page nav.main{display:none}.inner-page .burger{display:block}.inner-page .page-hero.with-promo .wrap{gap:40px}.inner-page .page-hero .h1{font-size:46px}}
@media(max-width:1080px){.inner-page .page-hero.with-promo .wrap{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.inner-page .page-hero>img{left:55%;width:45%}.inner-page .ccard{grid-template-columns:240px minmax(0,1fr)}.inner-page .hero-promo{margin-top:70px}.inner-page .page-hero .h1{font-size:42px}.inner-page .hero-promo .slider-track{--cols:1!important}}
@media(max-width:900px){.inner-page .page-hero{padding:0 0 40px;min-height:0}.inner-page .page-hero>img{position:relative;left:auto;right:auto;top:auto;width:100%;height:300px;object-position:center}.inner-page .page-hero .wrap{padding-top:32px}.inner-page .page-hero:not(.with-promo) .wrap>:is(.h1,.lead,.page-hero-cta,.crumbs,.eyebrow){max-width:none}.inner-page .page-hero.with-promo .wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:30px}.inner-page .hero-promo{margin-top:0;justify-self:stretch;max-width:none}.inner-page .page-hero.with-promo{min-height:0}.inner-page .page-hero .h1{font-size:42px}.inner-page .page-hero .page-art{height:260px;padding:25px}.inner-page .hero-promo .note{margin-bottom:0}.inner-page .adv .support-art{max-width:340px;margin-left:auto;margin-right:auto}}
@media(max-width:620px){.inner-page .page-hero .h1{font-size:32px;line-height:1.15}.inner-page .page-hero>img{height:240px}.inner-page .page-hero-cta .btn{width:100%}.inner-page .page-hero .lead{font-size:16px}.inner-page .promo{padding:26px}.inner-page .promo h3{font-size:25px}.inner-page .ccard{grid-template-columns:minmax(0,1fr)}.inner-page .ccard-photo{height:220px;min-height:0}.inner-page .city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inner-page .city-card b{font-size:16px;padding:12px}.inner-page .svc-in{padding:24px}.inner-page .quote-in{padding:28px 24px}.inner-page .geo-photos{gap:10px}.inner-page .fmt{padding:28px 24px}.inner-page .incl-grid{grid-template-columns:1fr}.inner-page .faq summary{font-size:18px}.inner-page .faq details[open]{padding-left:12px;padding-right:12px}.inner-page .about-photos{gap:10px}.inner-page .step{padding:26px 24px}}
html.anim .inner-page .reveal{opacity:1;transform:none}
.inner-page .page-hero>img{opacity:1!important}
.inner-page .field textarea{font:inherit;font-size:16px;line-height:1.5;padding:14px 16px;border-radius:4px;border:1px solid #8a857d;background:#fff;width:100%;min-height:130px;resize:vertical;color:#3D3D3D;max-width:100%}
.inner-page .field textarea:focus-visible{outline:3px solid #E40005;outline-offset:4px}
.inner-page .page-hero .wrap{min-width:0}
.inner-page .step-bar i:nth-child(1){background:#3D3D3D!important}
.inner-page .step-bar i:nth-child(2){background:#F4A900!important}
.inner-page .step-bar i:nth-child(3){background:#E8E4DC!important}
.inner-page .step-bar i:nth-child(4){background:#E40005!important}
.inner-page .shot{margin:0}
@media(min-width:901px){.inner-page .page-hero.with-promo:has(>img.page-art) .wrap>div:first-child{align-self:start}.inner-page .page-hero.with-promo:has(>img.page-art) .hero-promo{margin-top:210px}.inner-page .page-hero.with-promo>img.page-art{top:0;height:270px;object-fit:contain;object-position:center;padding:20px 40px}}
/* ---- brand-revision-v3.css ---- */
/* Company presentation and the complete illustration system. */
.company-home{background:#F5F0E8;border-top:1px solid #d9d5ce;border-bottom:1px solid #d9d5ce}
.company-home-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:70px;align-items:center}
.company-home-copy .h2{font-size:clamp(38px,4.4vw,64px);line-height:1.1;margin:0 0 24px}
.company-home-copy .lead{max-width:46ch;color:#3d3d3d;font-size:18px}
.company-home-values{display:flex;gap:9px;flex-wrap:wrap;margin:26px 0}
.company-home-values span{font:500 13px/1.4 'Golos Text';background:#fff;border:1px solid #d9d5ce;border-radius:4px;padding:10px 12px}
.company-home-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.company-home-actions .btn-ghost{border:1px solid #3d3d3d;background:transparent;color:#3d3d3d}
.company-home-actions .btn-ghost:hover{transform:none;background:#fff;color:#3d3d3d}
.company-home-module{display:block;width:140px;margin-top:24px}
.company-home-visual{background:#fff;border-radius:8px;overflow:hidden}
.company-home-visual>img{width:100%;aspect-ratio:3/2;object-fit:contain;padding:24px}
.company-home-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#3d3d3d;color:#fff}
.company-home-facts>div{padding:24px 20px;border-right:1px solid #ffffff35}
.company-home-facts>div:last-child{border-right:0}
.company-home-facts b{display:block;color:#F4A900;font:700 34px/1.2 Manrope}
.company-home-facts span{display:block;font:400 13px/1.5 'Golos Text';margin-top:8px}
.image-provenance{color:#68645e;border-left:3px solid #F4A900;padding:4px 0 4px 14px;max-width:75ch;margin:0 0 24px;font-size:13px;line-height:1.5}
.dark .image-provenance{color:#E8E4DC}
.inner-page .ccard-photo,.inner-page .city-card{background:#fff}
.inner-page .ccard-photo img{object-fit:contain;padding:14px}
.inner-page .city-card img{object-fit:contain;padding:18px;background:#fff}
.inner-page .shot img{object-fit:contain;background:#fff;padding:16px}
.inner-page .geo-photos img{object-fit:contain;background:#fff;padding:14px}
.inner-page .about-photos{gap:16px}
.inner-page .about-photos img,.inner-page .about-photos img:nth-child(1),.inner-page .about-photos img:nth-child(4){object-fit:contain;background:#fff;padding:18px;aspect-ratio:1/1;border:1px solid #E8E4DC}
.inner-page .quote-card>img{object-fit:contain;background:#fff;padding:30px}
.inner-page .about-split .h2{line-height:1.15}
.inner-page .about-split{gap:56px}
.inner-page #history{border-top:1px solid #d9d5ce}
.inner-page #history .tl-item{padding:26px 20px 24px;border:1px solid #d9d5ce;border-top:3px solid #F4A900;border-radius:4px;background:#fff}
.inner-page #history .tl-item::before{display:none}
.inner-page #history .tl-item b{color:#3d3d3d;font-size:16px}
.inner-page #history .tl-item h3{font-size:22px}
.inner-page #jobs .incl{background:#3d3d3d;border-color:#ffffff38}
.inner-page #jobs .incl .dot{background:#F4A900}
#franchise .franch-img{background:#fff}
#franchise .franch-img img{object-fit:contain;padding:28px}
#franchise .franch-img::after{display:none}
@media(max-width:900px){.company-home-grid{grid-template-columns:minmax(0,1fr);gap:32px}.company-home-copy .lead{max-width:none}.company-home-visual{max-width:650px;width:100%;margin:auto}.company-home-copy .h2{font-size:46px}.inner-page .about-split{gap:32px}}
@media(max-width:620px){.company-home-copy .h2{font-size:38px}.company-home-copy .lead{font-size:16px}.company-home-actions .btn{width:100%}.company-home-module{width:110px}.company-home-facts>div{padding:18px 12px}.company-home-facts b{font-size:26px}.company-home-facts span{font-size:11px}.company-home-visual>img{padding:15px}.inner-page .about-photos{gap:10px}.inner-page .about-photos img{padding:12px}.inner-page .city-card img{padding:10px}.inner-page #history .tl-item h3{font-size:21px}}
/* ---- client-v5.css ---- */
/* Client revision: large campaign canvas, comfort-led typography, quiet motion. */
/* Straight brand support: decorative, without messages or horizontal motion. */
.brand-support-line{height:38px;position:relative;isolation:isolate;overflow:hidden;border:0;background:#fff;--warm-x:50%;--warm-on:0}
.brand-support-line .support-rail,.brand-support-line .support-cap,.brand-support-line .support-core{position:absolute;top:16px;height:5px;left:0;right:0;pointer-events:none}
.brand-support-line .support-rail{background:#F4A900}
.brand-support-line .support-cap{left:auto;width:32px;background:#E40005;z-index:1}
.brand-support-line .support-halo{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 110px 30px at var(--warm-x) 19px,#f4a90070,transparent 80%);opacity:var(--warm-on);transition:opacity .45s;z-index:2}
.brand-support-line .support-core{background:radial-gradient(ellipse 90px 8px at var(--warm-x) 50%,#fff9df,#ffe19c 35%,transparent 100%);opacity:var(--warm-on);transition:opacity .45s;z-index:3}
.campaign{--warm-x:50%;--warm-y:50%;--warm-on:0}
.campaign>.campaign-warm-light{position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle 210px at var(--warm-x) var(--warm-y),#ffe9acb3 0%,#ffc14970 22%,#ffb50025 51%,transparent 77%);opacity:var(--warm-on);mix-blend-mode:screen;transition:opacity .5s}
@media(prefers-reduced-motion:reduce){.campaign>.campaign-warm-light,.brand-support-line .support-halo,.brand-support-line .support-core{transition:none}}
.campaign{position:relative;background:#F5F0E8;isolation:isolate;overflow:hidden}
.campaign [hidden]{display:none!important}
.campaign-slide{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);max-width:1600px;min-height:610px;margin:0 auto;align-items:stretch}
.campaign-copy{padding:75px 35px 90px max(32px,calc((100vw - 1280px)/2));align-self:center;position:relative;z-index:2}
.campaign h1{font:700 clamp(40px,4.6vw,70px)/1.08 Manrope,sans-serif;letter-spacing:-.055em;margin:25px 0;color:inherit}
.campaign-copy>p:not(.eyebrow){font:400 18px/1.65 'Golos Text',sans-serif;max-width:480px;margin:0 0 30px}
.campaign-copy .eyebrow{font-size:11px;line-height:1.5;letter-spacing:.1em}
.campaign-art{display:flex;align-items:center;justify-content:center;background:#fff;min-width:0;overflow:hidden}
.campaign-art img{width:100%;height:100%;max-height:640px;object-fit:contain;padding:35px}
.campaign-art.photo img{object-fit:cover;padding:0;object-position:62% center}
.campaign-slide.orange{background:#F4A900;color:#3D3D3D}
.campaign-slide.dark{background:#3D3D3D;color:#fff}
.campaign-slide.dark .eyebrow{color:#fff}
.campaign-slide.orange .btn-primary{background:#3D3D3D;color:#fff;border-color:#3D3D3D}
.campaign-controls{position:relative;max-width:1280px;margin:-60px auto 0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 25px 18px;height:60px;color:#3D3D3D}
.campaign-controls>span{font:500 12px 'Golos Text';letter-spacing:.1em;background:#fff;padding:8px 13px;border-radius:30px}
.campaign-controls>div{display:flex;gap:8px}
.campaign-controls button{border:1px solid #E8E4DC;background:#fff;color:#3D3D3D;height:40px;min-width:40px;border-radius:50%;font:500 15px 'Golos Text';cursor:pointer;transition:background .2s,transform .2s}
.campaign-controls button:hover{transform:translateY(-2px)}
.campaign-dots button[aria-pressed=true]{background:#F4A900;border-color:#3D3D3D}
.campaign-controls button:focus-visible{outline:3px solid #E40005;outline-offset:3px}
.campaign-slide.active .campaign-copy{animation:campaign-in .55s both}
.campaign-slide.active .campaign-art img{animation:art-in .7s both}
.rhythm-wrap{background:#fff;border-bottom:1px solid #E8E4DC}
.rhythm{display:grid;grid-template-columns:1fr 1.25fr auto;gap:30px;align-items:center;min-height:115px;padding-top:20px;padding-bottom:20px}
.rhythm-title{display:flex;align-items:center;gap:20px;font:500 11px 'Golos Text';letter-spacing:.12em}
.rhythm-orbit{width:25px;height:25px;border:2px solid #F4A900;border-radius:50% 50% 8px 50%;transform:rotate(35deg);position:relative}
.rhythm-orbit:after{content:'';position:absolute;width:5px;height:5px;background:#E40005;border-radius:50%;right:-3px;top:-3px}
.rhythm-words{display:flex;gap:20px;justify-content:center}
.rhythm-words span{font:700 clamp(17px,1.8vw,25px)/1.3 Manrope,sans-serif;letter-spacing:-.04em;animation:rhythm-breathe 7s infinite}
.rhythm-words span:nth-child(2){animation-delay:1.7s}
.rhythm-words span:nth-child(3){animation-delay:3.4s}
.rhythm>a{font:500 12px 'Golos Text';text-decoration:none;border-bottom:2px solid #F4A900;padding-bottom:6px}
.comfort-mission{background:#3D3D3D!important;color:#fff;padding:95px 25px;text-align:center}
.comfort-mission h2{font:700 clamp(34px,4vw,56px)/1.12 Manrope;letter-spacing:-.05em;margin:25px 0}
.comfort-mission p:last-child{font-size:18px;line-height:1.7;opacity:.85}
.company-home-values{display:grid!important;grid-template-columns:1fr 1fr;gap:12px!important}
.company-home-values span{display:flex;align-items:center;min-height:85px;padding:18px!important;font:700 18px/1.25 Manrope!important;border-left:4px solid #F4A900!important;background:#fff!important}
.company-home-values span:nth-child(4){border-left-color:#E40005!important}
.inner-page.directions-revised .page-hero>img{left:43%;width:57%;object-fit:cover}
.directions-revised .page-hero .wrap>:is(.h1,.lead,.page-hero-cta,.crumbs,.eyebrow){max-width:39%}
.directions-revised .page-hero .h1{font-size:clamp(34px,4vw,58px)}
.kit-art{display:block;width:100%;max-height:220px;object-fit:contain;background:#fff;border-radius:7px;margin:25px 0}
.v5-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:45px 0}
.v5-benefits article{border:1px solid #ffffff35;border-radius:8px;padding:26px 22px}
.v5-benefits article>span{font:700 40px Manrope;color:#F4A900;display:block;margin-bottom:25px}
.v5-benefits h3{font:700 22px/1.2 Manrope;margin-bottom:18px}
.v5-benefits p{font-size:15px;line-height:1.7;color:#ffffffcf}
.src b small{display:block;font:400 12px/1.6 'Golos Text';letter-spacing:0;margin-top:6px}
.v5-zone-tags{display:flex;gap:16px;flex-wrap:wrap;padding-top:20px}
.v5-zone-tags span{padding:18px 22px;border:1px solid #ffffff35}
.slider{position:relative}
.slider-controls{justify-content:center!important;gap:14px!important;margin-top:24px!important}
.slider-btn{width:50px!important;height:50px!important;border:1px solid #3D3D3D!important;background:#fff!important;color:#3D3D3D!important;opacity:1!important}
.dark .slider-btn{border-color:#F4A900!important}
.slider-btn:disabled{opacity:.35!important}
.slider-track{scrollbar-width:thin;scrollbar-color:#F4A900 transparent;scroll-padding:2px}
.slider-track::-webkit-scrollbar{height:5px}
.slider-track::-webkit-scrollbar-thumb{background:#F4A900;border-radius:4px}
.filters{gap:8px!important}
.filters button{white-space:normal}
.prog .prog-in p{min-height:75px}
.prog-meta{margin-top:20px}
.format-benefits .h2{max-width:850px}
.format-benefits .btn{margin-top:5px}
.slider-nav{justify-content:center!important;gap:14px!important;margin-top:24px!important}
.slider-nav button{width:50px!important;height:50px!important;border:1px solid #3D3D3D!important;background:#fff!important;color:#3D3D3D!important;opacity:1!important}
.slider-nav button:disabled{opacity:.35!important}
.dark .slider-nav button{border-color:#F4A900!important}
.v5-catalog-link{display:inline-block;margin-top:24px;color:#3D3D3D;border-bottom:2px solid #F4A900}
@keyframes campaign-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes art-in{from{opacity:.6;transform:scale(1.025)}to{opacity:1;transform:none}}
@keyframes rhythm-breathe{0%,20%,100%{color:#3D3D3D;transform:translateY(0)}35%,50%{color:#b67b00;transform:translateY(-3px)}}
@media(min-width:1500px){.campaign-copy{padding-left:80px}.campaign-slide{min-height:630px}}
@media(max-width:1050px){.campaign-slide{min-height:530px}.campaign-copy{padding:50px 28px 80px}.campaign h1{font-size:48px}.campaign-copy>p:not(.eyebrow){font-size:16px}.campaign-art img{padding:20px}.rhythm{gap:20px}.rhythm-words{gap:12px}.v5-benefits{grid-template-columns:1fr 1fr}.rhythm-title{gap:10px}.directions-revised .page-hero .wrap>:is(.h1,.lead,.page-hero-cta,.crumbs,.eyebrow){max-width:43%}}
@media(max-width:900px){.inner-page.directions-revised .page-hero>img{left:auto;width:100%;height:300px;object-position:center}.directions-revised .page-hero .wrap>:is(.h1,.lead,.page-hero-cta,.crumbs,.eyebrow){max-width:none}}
@media(max-width:760px){.campaign-slide{grid-template-columns:1fr;min-height:0}.campaign-copy{padding:35px 24px 28px;order:1}.campaign h1{font-size:clamp(36px,7vw,48px);margin:20px 0}.campaign-copy>p:not(.eyebrow){max-width:none;font-size:16px;margin-bottom:22px}.campaign-art{order:2;min-height:0;height:280px}.campaign-art img{max-height:none;height:280px;object-fit:contain;padding:20px}.campaign-art.photo img{object-position:65% 48%;object-fit:cover}.campaign-controls{height:65px;padding:12px 20px;margin:0;background:#F5F0E8}.campaign-controls>span{font-size:10px;padding:7px 10px}.campaign-controls button{height:36px;min-width:36px;font-size:13px}.campaign-controls>div{gap:5px}.rhythm{grid-template-columns:1fr auto;gap:20px;min-height:120px}.rhythm-title{grid-column:1/-1}.rhythm-words{justify-content:start;flex-wrap:wrap;gap:15px}.rhythm-words span{font-size:17px}.rhythm>a{font-size:10px;max-width:90px}.comfort-mission{padding:65px 20px}.comfort-mission p:last-child{font-size:16px}.company-home-values span{font-size:16px!important;min-height:85px;padding:16px!important}.v5-benefits{grid-template-columns:1fr;gap:14px;margin-top:30px}.v5-benefits article{padding:24px}.v5-benefits article>span{margin-bottom:15px;font-size:32px}.kit-art{max-height:200px}.prog .prog-in p{min-height:0}}
@media(prefers-reduced-motion:reduce){.campaign-slide.active .campaign-copy,.campaign-slide.active .campaign-art img,.rhythm-words span{animation:none}.campaign-controls button{transition:none}}
/* ---- pravki.css ---- */
/* Правки заказчика 22–27.10.2026. Файл собирается pravki.py, руками не править. */

/* Иллюстрации брендбука вписывались в белое поле (object-fit:contain + padding),
   и живые фото выглядели «не по размеру» — замечание заказчика от 27.10. Правило одно
   на все блоки: любое фото из съёмки заполняет свой слот. !important — потому что
   исходные правила сидят на более весомых селекторах вроде #franchise .franch-img img.
   Размеры слотов не трогаем: height:100% растягивал фото на всю карточку направления,
   и заголовок с описанием уезжали под обрез — «слетели названия» (замечание 28.10). */
img[src^="assets/photo-"] {
  object-fit: cover !important;
  padding: 0 !important;
  background: none !important;
}
.city-card img[src^="assets/photo-"],
.geo-photos img[src^="assets/photo-"] { aspect-ratio: 3 / 2; height: auto; }
/* Слайды-баннеры упирались в 1600px, справа оставалась полоса фона — заказчик просил
   «ширину на страницу». */
.campaign-slide { max-width: none; }
/* На странице тренировок заголовок заезжал под фото: ограничиваем колонку текста.
   Жёлтую линию-отбивку убрали — заказчик спросил «что за жёлтые вертикальные полосы». */
@media (min-width: 901px) {
  .inner-page .page-hero:not(.with-promo) .wrap > :is(.h1, .lead, .page-hero-cta, .crumbs, .eyebrow) {
    max-width: min(51%, 520px);
    padding-right: 16px;
  }
}
/* Карточка клуба: фото стояло узкой колонкой во всю высоту и резало кадр «по пол-лица»
   (замечание заказчика). Ставим его сверху целой полосой 3:2. */
@media (min-width: 621px) {
  .inner-page .ccard { grid-template-columns: minmax(0, 1fr) !important; }
  .inner-page .ccard-photo { min-height: 0; aspect-ratio: 3 / 2; }
}
/* Поиск клуба: слева город, справа улица. */
.club-search { flex-wrap: wrap; }
.club-search select {
  font: inherit; font-size: 16px; padding: 14px 16px; border: 1px solid #8a857d;
  border-radius: 4px; background: #fff; color: #3D3D3D; min-width: 220px;
}
.club-search input:disabled { background: #f1ede6; color: #8a857d; }
/* Результат выбора города — карточка в формате клубов Оренбурга (замечание 28.10). */
.city-result { width: 100%; max-width: 520px; }
.city-result .ccard { display: block; }
.city-card > a { color: inherit; text-decoration: none; display: block; }
/* display:grid у списка клубов перебивал атрибут hidden при выборе другого города. */
.clubs-list[hidden] { display: none; }
/* Карточки городов: под названием — адрес, телефон и часы работы. */
.city-rows {
  display: grid; gap: 6px; padding: 0 18px 18px; font-size: 15px; line-height: 1.5;
}
.city-rows .city-addr { color: #3D3D3D; }
.city-rows .city-hours { color: #6b665f; font-size: 14px; }
.city-rows .city-tel { color: #3D3D3D; text-decoration: none; border-bottom: 2px solid #F4A900; justify-self: start; }
/* В тёмной карточке «Полгода» описание шло инлайновым var(--muted) — серый по тёмному,
   читать невозможно. Инлайн перебивается только !important. */
.inner-page .fmt.hot p { color: rgba(255, 255, 255, .78) !important; }
/* Абонементов стало пять: месяц, три месяца, полгода, год и персональные тренировки. */
@media (min-width: 1100px) {
  .formats { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
  /* пять колонок узкие: «Персональные» рвались посреди слова */
  .formats .fmt h3 { font-size: clamp(19px, 1.5vw, 26px); }
}
/* Кнопка «Расписание другого клуба» была текстовой ссылкой и терялась. */
.sched-note .btn-sched-other {
  display: inline-block;
  padding: 10px 18px;
  border: 1px solid #3D3D3D;
  border-radius: 4px;
  font-weight: 600;
  color: #3D3D3D;
  text-decoration: none;
  white-space: nowrap;
}
.sched-note .btn-sched-other:hover { background: #F4A900; border-color: #F4A900; }
.sched-note .sched-club { font-weight: 700; color: #3D3D3D; }
/* Вкладки типа расписания: групповые / тренажёрный зал / кроссфит. */
.sched-kinds { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 18px; }
.sched-kinds button {
  font: inherit; font-size: 15px; padding: 10px 18px; cursor: pointer;
  border: 1px solid #8a857d; border-radius: 4px; background: #fff; color: #3D3D3D;
}
.sched-kinds button.on { background: #3D3D3D; color: #fff; border-color: #3D3D3D; }
.sched-kind-note {
  margin: 0 0 24px; padding: 16px 18px; border-left: 3px solid #F4A900;
  background: #fff; font-size: 15px; line-height: 1.6;
}
/* Акции: один баннер во всю ширину, слайды листаются скроллом и точками. */
.akcii-banner { background: #F4A900; color: #3D3D3D; }
.akcii-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.akcii-track::-webkit-scrollbar { display: none; }
.akcia { scroll-snap-align: start; padding: 40px 0 34px; min-height: 230px; }
.akcia b { display: block; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.akcia h3 { font: 700 clamp(28px, 3.4vw, 44px)/1.1 Manrope, sans-serif; margin: 14px 0 10px; }
.akcia p { margin: 0 0 22px; font-size: 17px; line-height: 1.55; max-width: 60ch; }
.akcia .btn-primary { background: #3D3D3D; color: #fff; border-color: #3D3D3D; }
/* Заказчик 28.10: «нет ручного скроллинга», «стрелки для скроллинга» — листаем и кнопками. */
.akcii-nav { display: flex; gap: 10px; align-items: center; justify-content: center; padding: 0 0 22px; }
.akcii-nav button {
  width: 42px; height: 42px; padding: 0; cursor: pointer; font-size: 18px; line-height: 1;
  border: 1px solid #3D3D3D; border-radius: 4px; background: transparent; color: #3D3D3D;
}
.akcii-nav button:hover { background: #3D3D3D; color: #F4A900; }
.akcii-nav .akcii-dots { padding: 0; }
.akcii-dots { display: flex; gap: 10px; justify-content: center; padding: 0 0 22px; }
.akcii-dots button {
  width: 11px; height: 11px; padding: 0; border-radius: 50%; cursor: pointer;
  border: 1px solid #3D3D3D; background: transparent;
}
.akcii-dots button.on { background: #3D3D3D; }
.akcii-banner .note { padding-bottom: 18px; }
/* Истории клиенток: присланные кадры — готовые коллажи «до/после», кадрировать нельзя,
   поэтому карточка подстраивается под пропорции снимка. */
.res img[src^="assets/photo-"] {
  width: 100%; display: block; aspect-ratio: 1 / 1;
  object-fit: contain !important;          /* коллаж нельзя резать: половина кадра — «до» */
  background: #f6f3ee; border-bottom: 1px solid #e3ded5;
}
.res { align-self: start; background: #fff; overflow: hidden; }
.res-in h3 { font-size: 20px; margin: 0 0 6px; }
.res-in p { margin: 0; color: #6b665f; font-size: 15px; }
/* Шапка страницы клуба: слева узкая колонка текста, справа широкое поле рекламы.
   Заказчик 29.10: «это поле меньше, а второе под рекламу больше, акция — баннер-картинка,
   скроллинг и кнопка внизу, а не посередине». 30.10 (правка 7): «вот в такой же пропорции
   поле где написано фитнес клуб, например Броско Поляничко, и вот такого размера рекламный
   баннер» — то есть как баннер .campaign на главной: во всю ширину экрана, картинка во всю
   высоту поля, перелистывание и кнопка — внизу по баннеру. Пропорции и отступы взяты
   у .campaign-slide / .campaign-copy, чтобы колонки совпадали с главной страницей. */
.inner-page .page-hero.with-promo.klub-hero { padding: 0; min-height: 0; overflow: hidden; }
.inner-page .page-hero.with-promo.klub-hero .wrap {
  display: grid; align-items: stretch; gap: 0;
  max-width: none; width: 100%; padding: 0; min-height: 610px;
  grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);
}
.klub-hero .klub-hero-text {
  align-self: center;
  padding: 64px 35px 70px max(32px, calc((100vw - 1280px) / 2));
}
.klub-hero .klub-hero-text > * { max-width: none; }
.klub-hero .klub-hero-text .h1 { font-size: clamp(34px, 3.4vw, 54px); }
.klub-promo { position: relative; background: #3D3D3D; color: #fff; overflow: hidden; }
.klub-promo-track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 100%; height: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.klub-promo-track::-webkit-scrollbar { display: none; }
.klub-promo .akcia { scroll-snap-align: start; padding: 0; min-height: 0; position: relative; }
/* Баннер акции — во всю высоту поля: из ЕРП придёт готовая картинка такого же размера. */
.klub-promo .akcia img[src^="assets/photo-"] {
  width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover !important; display: block;
}
.klub-promo .akcia-text {
  position: absolute; inset: auto 0 0; z-index: 1; padding: 40px 30px 94px; color: #fff;
  background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.78));
}
.klub-promo .akcia h3 { font-size: clamp(26px, 2.4vw, 36px); margin: 10px 0 8px; color: #fff; }
.klub-promo .akcia p { font-size: 16px; margin: 0; max-width: 46ch; }
/* Кнопка и перелистывание — внизу по баннеру: заказчик 30.10 «и здесь кнопку». */
.klub-promo-niz {
  position: absolute; inset: auto 0 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 18px 25px;
}
.klub-promo .akcii-nav { padding: 0; }
/* Только стрелки: точки лежат внутри .akcii-nav, под `button` они попадали тоже. */
.klub-promo .akcii-nav > button {
  border-radius: 50%; background: #fff; border-color: #fff; color: #3D3D3D;
}
.klub-promo .akcii-dots { padding: 0; }
.klub-promo .akcii-dots button { border-color: #fff; background: transparent; }
.klub-promo .akcii-dots button.on { background: #fff; }
.klub-promo-niz .btn-primary { white-space: nowrap; }
/* Пометка про заглушки — уголком, чтобы не закрывать баннер. */
.klub-promo .note {
  position: absolute; top: 0; left: 0; z-index: 2; margin: 0;
  padding: 7px 14px; font-size: 12px; border-radius: 0 0 6px 0;
  color: #3D3D3D; background: #F5F0E8 !important;
}
@media (max-width: 1080px) {
  .inner-page .page-hero.with-promo.klub-hero .wrap {
    grid-template-columns: minmax(0, 1fr); min-height: 0;
  }
  .klub-hero .klub-hero-text { padding: 48px 24px 40px; }
  .klub-promo { min-height: 420px; }
}
/* Страница клуба: галерея и место под виртуальный тур. */
.klub-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.klub-gallery figure { margin: 0; }
.klub-gallery img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 4px; display: block;
}
.klub-gallery figcaption { font-size: 14px; color: #6b665f; padding-top: 8px; }
.klub-tour {
  display: grid; place-items: center; min-height: 320px; border: 2px dashed #8a857d;
  border-radius: 4px; background: #fff; text-align: center; padding: 32px;
}
.klub-tour b { display: block; font-size: 20px; margin-bottom: 8px; }
.klub-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 40px; }
.klub-facts div { border-bottom: 1px solid #e3ded5; padding-bottom: 14px; }
.klub-facts span { display: block; font-size: 14px; color: #6b665f; margin-bottom: 4px; }
.klub-facts b, .klub-facts a { font-size: 18px; color: #3D3D3D; }
@media (max-width: 900px) {
  .klub-gallery { grid-template-columns: repeat(2, 1fr); }
  .klub-facts { grid-template-columns: 1fr; }
}
@media (max-width: 560px) { .klub-gallery { grid-template-columns: 1fr; } }
/* Сетка расписания на страницах клубов: правила со страницы расписания. */
/* ===== Каталог направлений ===== */
.filters{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; }
.post.hide{display:none}
