/* характер: elizeche — из design/characters.json */
:root{
  --bg:#0a0a0a;
  --surface:#151515;
  --ink:#f4f1ea;
  --ink-2:#d9d4cc;
  --muted:#b3ada4;
  --muted-2:#9a948b;
  --line:#2b2b2b;
  --line-2:#1c1c1c;
  --line-dot:#3a3a3a;
  --brand:#ffc53d;
  --brand-soft:#1f1707;
  --accent:#f26b1d;
  --action:#ffc53d;
  --action-hover:#ffd466;
  --action-ink:#160f00;
  --status:#2e9e4f;
  --dark:#0a0a0a;
  --naranja:#f26b1d;
  --naranja-ink:#1b0a00;
  --r-btn:12px;
  --r-img:14px;
  --display:'Big Shoulders Display', Impact, 'Arial Narrow', sans-serif;
  --body:Barlow, system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* =========================================================================
   core.css — общее для всех характеров: сброс, кнопки, ссылки, карта,
   липкая панель, анимация. Композиция каждого характера — в своём файле.
   Токены приходят из design/characters.json.
   ========================================================================= */

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:64px}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.6 var(--body);
  -webkit-font-smoothing:antialiased;
}
img,svg,iframe{display:block;max-width:100%}
/* height:auto обязателен: иначе атрибут height у <img> перебивает aspect-ratio
   и кадр растягивается. Правила с явной высотой перебивают это по специфичности. */
img{height:auto}
h1,h2,h3{margin:0}
p{margin:0}
ul,ol,dl,dd{margin:0;padding:0}
/* у figure браузерный отступ 40px по бокам — из-за него фото не занимали свою ячейку */
figure{margin:0}
ul{list-style:none}
a{color:inherit}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;z-index:200;background:var(--bg);padding:10px 16px}

/* -------------------------------------------------------------- кнопки -- */
.btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:54px;padding:0 24px;border-radius:var(--r-btn);
  font:700 16px/1 var(--body);text-decoration:none;border:0;cursor:pointer;
  transition:background .15s ease,transform .1s ease;
}
.btn--action{background:var(--action);color:var(--action-ink)}
.btn--action:hover{background:var(--action-hover)}
.btn--invert{background:var(--bg);color:var(--ink)}
.btn--invert:hover{opacity:.9}
.btn:active{transform:translateY(1px)}
.btn--sm{min-height:46px;padding:0 20px;font-size:15px;display:inline-flex}
.wa{flex:0 0 auto}


/* Фирменный знак клиента. Если в content.json есть business.logo — в шапке
   и подвале выводится он вместо словесного знака. Высота фиксирована,
   ширина свободная: подходит и квадратной эмблеме, и вытянутому логотипу. */
.brand__logo{height:var(--logo-h,34px);width:auto;max-width:var(--logo-max,180px);object-fit:contain;flex:0 0 auto;mix-blend-mode:var(--logo-blend,normal);border-radius:var(--logo-r,0)}
@media (min-width:880px){.brand__logo{height:var(--logo-h-d,42px);max-width:var(--logo-max-d,240px)}}

/* ------------------------------------------------------- мелкие детали -- */
.status{display:inline-flex;align-items:center;gap:9px}
.status i{width:7px;height:7px;border-radius:50%;background:var(--status);flex:0 0 auto}

.ulink{
  display:inline-block;font-size:14px;text-decoration:none;
  border-bottom:1px solid var(--line-dot);padding-bottom:3px;
}
.ulink:hover{border-bottom-color:var(--brand);color:var(--brand)}
.ulink--muted{color:var(--muted)}
.links{display:flex;flex-wrap:wrap;gap:18px;margin-top:16px}

.note{margin-top:14px;font-size:13px;line-height:1.6;color:var(--muted-2)}

/* ---------------------------------------------------------------- карта -- */
.map{border:1px solid var(--line);border-radius:var(--r-img);overflow:hidden;background:var(--surface)}
.map iframe{width:100%;height:220px;border:0}

/* ------------------------------------------------------ липкая панель -- */
.sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  display:flex;align-items:center;gap:12px;padding:10px 16px;
  background:var(--bg);border-top:1px solid var(--line);
}
.sticky__txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.sticky__lbl{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sticky__val{font:600 15px/1.2 var(--body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky .btn{margin-left:auto;flex:0 0 auto}

/* ------------------------------------------- полоска «это пример» -------- */
/* Цвета берём из главной пары характера (ink/bg) — контраст гарантирован
   в любой палитре, в том числе у тёмного barber, где ink светлый. */
.ejemplo{
  display:flex;align-items:center;justify-content:center;gap:6px 12px;flex-wrap:wrap;
  padding:8px 16px;background:var(--ink);color:var(--bg);
  font:600 12px/1.35 var(--body);text-align:center;text-decoration:none;
}
.ejemplo__q{
  flex:0 0 auto;border:1px solid currentColor;border-radius:999px;
  padding:2px 9px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;
}
.ejemplo__t{display:none}
.ejemplo__c{flex:0 0 auto;text-decoration:underline;text-underline-offset:3px}
.ejemplo:hover .ejemplo__c{text-decoration-thickness:2px}
@media (min-width:600px){
  .ejemplo{font-size:13px;padding:9px 20px}
  .ejemplo__t{display:inline}
}

/* ------------------------------------------------------------ анимация -- */
@keyframes riseIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.rise{opacity:0}
.rise.in{animation:riseIn .6s ease both}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rise{opacity:1}
  html{scroll-behavior:auto}
}

@media (min-width:880px){
  html{scroll-padding-top:80px}
  .map iframe{height:380px}
  .sticky{display:none}
}

/* =========================================================================
   elizeche.css — зал силы и единоборств (Elizeche Training Center).
   Макет — Claude Design, вариант Г. Телефон 1:1 с макетом 390, компьютер
   с 1080 px, планшет — телефонная раскладка по центру (max 640).
   ========================================================================= */

@property --num { syntax: '<integer>'; initial-value: 180; inherits: false; }

html{scroll-padding-top:24px}
body{background:var(--bg);color:var(--ink);overflow-x:clip}
.solo-d{display:none}
.kicker{font:700 11.5px/1.3 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--brand)}
.h2{font:900 44px/.95 var(--display);text-transform:uppercase;color:var(--ink)}
.h2--osc{color:#0a0a0a}
.i-wa{flex:0 0 auto}

/* ---------------------------------------------------------------- пояс -- */
.cinto{position:fixed;left:0;top:0;right:0;height:10px;background:#1c1c1c;z-index:150;pointer-events:none;
  background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.666% - 1px),rgba(255,255,255,.1) calc(16.666% - 1px),rgba(255,255,255,.1) 16.666%)}
.cinto__fill{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0) * 100%);background:var(--c,#f4f1ea);
  transition:width .15s linear,background-color .5s ease}
.cinto__nudo{position:absolute;top:-1px;width:26px;height:31px;overflow:visible;
  left:clamp(0px,calc(var(--p,0) * 100% - 13px),calc(100% - 30px));transition:left .15s linear;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))}
.cinto__nudo *{fill:var(--c,#f4f1ea);transition:fill .5s ease}
.cinto__nudo .b{opacity:.85}
.cinto.fin .cinto__fill{box-shadow:inset 0 -1px 0 var(--brand),inset 0 1px 0 var(--brand)}
.cinto.fin .cinto__nudo{animation:apretar .6s cubic-bezier(.3,0,.2,1) both;transform-origin:50% 20%}
.cinto.fin .cinto__nudo *{stroke:var(--brand);stroke-width:.9}
@keyframes apretar{0%{transform:scale(1.4)}60%{transform:scale(.92)}100%{transform:scale(1)}}

/* ---------------------------------------------------------------- шапка -- */
.top{display:flex;align-items:center;gap:20px;padding:20px 20px 0;max-width:1440px;margin:0 auto}
.marca{display:flex;align-items:center;gap:6px;text-decoration:none}
.marca__tigre{width:44px;height:46px;object-fit:contain}
.marca__txt{width:112px;height:32px;object-fit:contain;object-position:left center}
.menu{display:none}
.top__wa{margin-left:auto;width:44px;height:44px;border-radius:50%;border:2px solid var(--brand);color:var(--brand);
  display:flex;align-items:center;justify-content:center;text-decoration:none;font-weight:800}
.top__wa span{display:none}

/* --------------------------------------------------------- первый экран -- */
.hero{padding:0 20px;text-align:center}
.hero__k{margin-top:10px;white-space:nowrap}
.hero__escena{display:flex;flex-direction:column;align-items:center}
.tri{position:relative;width:250px;aspect-ratio:300/250;margin-top:8px}
.tri__vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#111;
  clip-path:polygon(7.3% 8.4%,92.7% 8.4%,50% 90.6%)}
.tri__neon{position:absolute;inset:0;width:100%;height:100%;overflow:visible;stroke:#ffe08a;
  filter:drop-shadow(0 0 3px var(--brand)) drop-shadow(0 0 10px rgba(255,170,30,.75)) drop-shadow(0 0 26px rgba(255,140,20,.45))}
.js .tri__neon,.js .tri__vid{opacity:0}
.tri.on .tri__neon{animation:encender 1.7s ease-out both}
.tri.on .tri__vid{animation:proyectar 1.3s cubic-bezier(.3,0,.2,1) .55s both}
@keyframes encender{0%{opacity:0}7%{opacity:.85}11%{opacity:.12}19%{opacity:1}23%{opacity:.4}31%{opacity:1}100%{opacity:1}}
@keyframes proyectar{from{opacity:0;filter:brightness(2)}to{opacity:1;filter:none}}
.hero__lema{margin-top:10px;font:900 36px/.95 var(--display);letter-spacing:.01em;text-transform:uppercase}
.hero__l1,.hero__l2{display:block}
.hero__sub{display:none}

/* ------------------------------------------- оранжевая бумага (общая) -- */
.papel{position:relative;background:var(--naranja);color:var(--naranja-ink)}
.roto{position:absolute;left:0;top:-18px;width:100%;height:20px;fill:var(--naranja);display:block}
.roto--abajo{top:auto;bottom:-18px}
.tajo{position:absolute;overflow:visible;z-index:2;pointer-events:none}
.tajo g.r,.zarpa g.r{transform-box:fill-box;transform-origin:20% 0}
.js .tajo g.r{transform:scale(.2,0);opacity:0}
.tajo.rasga g.r{animation:tajo .17s cubic-bezier(.75,0,1,1) both}
.tajo.rasga g.r:nth-of-type(2){animation-delay:.06s}
.tajo.rasga g.r:nth-of-type(3){animation-delay:.12s}
.tajo--hero.rasga g.r{animation-delay:1.3s}
.tajo--hero.rasga g.r:nth-of-type(2){animation-delay:1.36s}
.tajo--hero.rasga g.r:nth-of-type(3){animation-delay:1.42s}
@keyframes tajo{0%{transform:scale(.2,0);opacity:1}70%{transform:scale(1.08,1.04);opacity:1}100%{transform:none;opacity:1}}
/* удар расходится волной: ближние к разрыву элементы дёргаются сильнее и раньше */
.golpe .ola{animation:ola-1 .62s linear .2s both;transform-origin:85% 0}
.golpe .ola:nth-child(2n){animation-name:ola-2;animation-delay:.24s;transform-origin:10% 50%}
.golpe .ola:nth-child(3n){animation-name:ola-3;animation-delay:.28s;transform-origin:50% 100%}
.golpe .ola:last-child{animation-name:ola-4;animation-delay:.32s}
@keyframes ola-1{0%{transform:none}9%{transform:translate(-6px,4px) rotate(-1.1deg)}21%{transform:translate(3px,-2px) rotate(.7deg)}34%{transform:translate(-2px,1px) rotate(-.4deg)}48%{transform:translate(1px,-1px) rotate(.2deg)}64%{transform:translate(-.5px,0) rotate(-.1deg)}100%{transform:none}}
@keyframes ola-2{0%{transform:none}10%{transform:translate(-4px,3px) rotate(.8deg)}23%{transform:translate(2.5px,-1px) rotate(-.5deg)}37%{transform:translate(-1.2px,.6px) rotate(.25deg)}53%{transform:translate(.5px,0)}100%{transform:none}}
@keyframes ola-3{0%{transform:none}11%{transform:translate(-3px,2px) rotate(-.5deg)}25%{transform:translate(1.8px,-1px) rotate(.3deg)}40%{transform:translate(-.8px,.4px)}58%{transform:translate(.3px,0)}100%{transform:none}}
@keyframes ola-4{0%{transform:none}12%{transform:translate(-2px,1.5px) rotate(.3deg)}27%{transform:translate(1.2px,-.6px) rotate(-.2deg)}44%{transform:translate(-.5px,.2px)}100%{transform:none}}

/* кнопки */
.btn-oro,.btn-linea,.btn-negro{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 22px;
  border-radius:var(--r-btn);font:800 17px/1 var(--body);text-decoration:none;white-space:nowrap;box-sizing:border-box}
.btn-oro{background:var(--brand);color:var(--action-ink)}
.btn-oro:hover{background:var(--action-hover)}
.btn-linea{border:2px solid var(--brand);color:var(--brand)}
.btn-linea:hover{background:var(--brand-soft)}
.btn-linea--claro{border-color:var(--ink);color:var(--ink)}
.btn-linea--claro:hover{background:#1a1a1a}
.btn-negro{background:#0a0a0a;color:var(--brand)}
.btn-negro:hover{background:#1c1c1c}

/* --------------------------------------------------- «¿Qué venís a buscar?» -- */
.elige{margin-top:34px}
.tajo--hero{right:18px;top:-22px;width:72px;height:70px}
.elige__in{padding:12px 20px 22px;display:flex;flex-direction:column}
.elige__in > *{position:relative}
.elige__q{font:800 15px/1.3 var(--body);color:#0a0a0a}
.caminos{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.camino{position:relative;height:58px;padding:0 12px;border-radius:12px;border:2px solid #0a0a0a;background:#0a0a0a;color:#fff;
  text-align:left;display:flex;flex-direction:column;justify-content:center;gap:2px;overflow:hidden;cursor:pointer;font:inherit}
.camino__t{position:relative;z-index:1;font:800 clamp(12px,3.6vw,16px)/1.1 var(--body);white-space:nowrap}
.camino__s{position:relative;z-index:1;font:500 12px/1.2 var(--body);color:#bdb6ac;white-space:nowrap}
.camino[aria-pressed="true"]{background:var(--brand);color:#0a0a0a;cursor:default}
.camino[aria-pressed="true"] .camino__s{color:#3a2a00}
/* текст поверх разрыва читается: золотой ореол вокруг букв */
.camino[aria-pressed="true"] .camino__t,.camino[aria-pressed="true"] .camino__s{text-shadow:0 0 2px #ffc53d,0 0 2px #ffc53d,0 0 4px #ffc53d,0 0 6px #ffc53d}
.zarpa{position:absolute;right:-8px;top:-4px;width:auto;height:calc(100% + 8px);aspect-ratio:90/64;overflow:visible;display:none}
.camino[aria-pressed="true"] .zarpa{display:block}
.camino:focus-visible{outline:3px solid #fff;outline-offset:2px}
.js .camino[aria-pressed="true"] .zarpa g.r{animation:tajo .15s cubic-bezier(.75,0,1,1) both}
.js .camino[aria-pressed="true"] .zarpa g.r:nth-of-type(2){animation-delay:.05s}
.js .camino[aria-pressed="true"] .zarpa g.r:nth-of-type(3){animation-delay:.1s}
.js .camino[aria-pressed="true"]{animation:golpe-t .34s cubic-bezier(.3,0,.2,1) .14s both}
@keyframes golpe-t{0%{transform:none}20%{transform:translate(-3px,2px) rotate(-1deg)}45%{transform:translate(2px,-1px) rotate(.6deg)}70%{transform:translate(-1px,0)}100%{transform:none}}

.tuplan{margin-top:22px;padding:14px 16px 12px;border-radius:14px;background:#0a0a0a;color:var(--ink);display:flex;flex-direction:column;gap:8px}
.tuplan__info{display:flex;flex-direction:column;gap:6px;min-width:0}
.tuplan__lbl{font:700 11px/1 var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.tuplan__fila{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;white-space:nowrap}
.tuplan__plan{font:800 clamp(20px,6.6vw,26px)/1 var(--display)}
.tuplan__precio{font:900 clamp(23px,7.6vw,30px)/1 var(--display);color:var(--brand)}
.tuplan__precio small{font-size:14px;font-weight:800}
.tuplan__inc{font-size:13.5px;line-height:1.3;color:var(--muted);min-height:18px}
.cifra{counter-reset:num var(--num);transition:--num 1.6s cubic-bezier(.45,0,.55,1)}
.cifra::after{content:counter(num)}
.ap-a{display:inline-block;animation:ap-a .9s cubic-bezier(.3,0,.2,1) both}
.ap-b{display:inline-block;animation:ap-b .9s cubic-bezier(.3,0,.2,1) both}
@keyframes ap-a{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes ap-b{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tuplan__acc{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0 10px}
.tuplan__cta{grid-column:1/-1;grid-row:1;min-height:48px}
.tuplan__partner,.tuplan__prem{grid-row:2;min-height:40px;display:flex;align-items:center;gap:6px;font:700 13.5px/1.2 var(--body);text-decoration:none;white-space:nowrap}
.tuplan__partner{grid-column:1;color:var(--ink)}
.tuplan__prem{grid-column:2;color:var(--muted)}
.tuplan__partner:hover,.tuplan__prem:hover{color:var(--brand)}
.datos{margin-top:14px;display:flex;justify-content:space-between;gap:8px;font:600 12.5px/1.2 var(--body);color:var(--naranja-ink)}
.datos li{display:flex;align-items:center;gap:5px;white-space:nowrap}

/* ------------------------------------------------------------- секции -- */
.sec{padding:60px 20px;max-width:1440px;margin:0 auto}
.sec__cab{display:flex;flex-direction:column;gap:14px}
.sec__cab .h2{margin-top:10px}
.sec__lead{font-size:15px;line-height:1.45;color:var(--muted)}
.sec__nota{font-size:15px;color:var(--muted)}

/* планы */
.planes__grid{margin-top:24px;display:flex;flex-direction:column;gap:22px}
.plan{position:relative;padding:20px;border-radius:16px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.plan--top{border:2px solid var(--brand)}
.plan__badge{position:absolute;right:16px;top:-13px;height:26px;padding:0 12px;border-radius:13px;background:var(--brand);color:var(--action-ink);
  font:800 12px/26px var(--body);letter-spacing:.08em;text-transform:uppercase}
.plan__n{font:800 30px/1 var(--display)}
.plan__p{font:900 46px/1 var(--display);color:var(--brand)}
.plan__p small{font-size:22px}
.plan__inc{display:flex;flex-direction:column;gap:8px;font:600 15px/1.3 var(--body);margin:2px 0 6px}
.plan__inc li{display:flex;align-items:center;gap:9px}
.plan__inc svg{color:var(--brand);flex:0 0 auto}
.plan > a{margin-top:auto}

/* напарник */
.franja{margin:20px 0}
.tajo--partner{right:26px;top:-22px;width:64px;height:74px}
.franja__in{padding:36px 20px 44px;display:flex;flex-direction:column;gap:14px;max-width:1440px;margin:0 auto;box-sizing:border-box}
.franja__in > *{position:relative}
.franja__ico{width:52px;height:52px;border-radius:50%;background:#0a0a0a;color:var(--brand);display:flex;align-items:center;justify-content:center}
.franja__txt{display:flex;flex-direction:column;gap:12px}
.franja__txt .h2{font-size:38px}
.franja__txt p{font:600 16px/1.45 var(--body)}
.franja .btn-negro{min-height:54px}

/* часы */
.horarios{display:flex;flex-direction:column;gap:18px}
.horarios .h2{margin-top:10px}
.horarios__h{font:900 clamp(54px,16.5vw,64px)/1 var(--display);color:var(--brand);margin:6px 0 4px;white-space:nowrap}
.clases{border-top:1px solid var(--line)}
.clases li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.clases div{display:flex;flex-direction:column;gap:2px}
.clases b{font:800 16px/1.2 var(--body)}
.clases span{font-size:14px;color:var(--muted)}
.clases em{font:900 26px/1 var(--display);font-style:normal;color:var(--brand)}
.horarios__cta{margin-top:22px}

/* профе */
.profe{background:#111;max-width:none;display:grid;grid-template-columns:160px 1fr;grid-template-areas:"k k" "f f" "t t";gap:0 16px}
.profe__txt{display:contents}
.profe__txt > .kicker{grid-area:k}
.profe__foto{grid-column:1;grid-row:3;width:160px;height:205px;object-fit:cover;border-radius:12px;border:2px solid var(--brand);margin-top:18px}
.profe .h2--xl{grid-column:1/-1;grid-row:2;margin-top:10px;font-size:46px}
.profe__facts{grid-column:2;grid-row:3;margin-top:18px;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0}
.profe__facts li{display:flex;flex-direction:column;gap:1px}
.profe__facts b{font:900 24px/1 var(--display);color:var(--brand)}
.profe__facts span{font-size:14px}
.profe__hist,.cita,.enlace-oro,.curso{grid-column:1/-1}
.profe__hist{margin-top:18px;font-size:16px;line-height:1.55;color:var(--ink-2)}
.profe .kicker{grid-row:1}
.cita{position:relative;margin-top:24px;padding-left:40px}
.cita__garra{position:absolute;left:-2px;top:-8px;width:31px;height:33px;fill:var(--brand)}
.cita blockquote{margin:0;font:900 30px/1 var(--display);text-transform:uppercase}
.cita figcaption{margin-top:8px;font-size:14px;color:var(--muted)}
.enlace-oro{margin-top:14px;display:flex;align-items:center;gap:10px;min-height:44px;font:700 15px/1.3 var(--body);color:var(--brand);text-decoration:none}
.enlace-oro:hover{text-decoration:underline}
.curso{margin-top:10px;border-radius:16px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.curso img{width:100%;height:210px;object-fit:cover;object-position:50% 88%}
.curso div{padding:16px 18px 18px;display:flex;flex-direction:column;gap:6px}
.curso h3{font:800 24px/1 var(--display);text-transform:uppercase}
.curso p{font-size:14.5px;line-height:1.45;color:var(--muted)}

/* сообщество */
.comunidad .h2{font-size:40px}
.galeria{margin-top:24px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.galeria figure{position:relative;border-radius:12px;overflow:hidden;background:#1a1a1a;aspect-ratio:4/5}
.galeria img{width:100%;height:100%;object-fit:cover}
.galeria figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:70px;background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.78))}
.galeria figcaption{position:absolute;left:12px;bottom:10px;z-index:1;font:800 20px/1 var(--display);text-transform:uppercase;color:#fff}
.enlace{margin-top:14px;display:inline-flex;align-items:center;gap:9px;min-height:44px;font:700 15px/1.3 var(--body);text-decoration:none}
.enlace:hover{color:var(--brand)}

/* отзывы */
.resenas{padding-top:8px;display:flex;flex-direction:column;gap:14px}
.resenas__num{font:900 84px/.85 var(--display);color:var(--brand);margin-top:10px}
.resenas__est,.resena__est{display:flex;gap:2px;color:var(--brand)}
.resenas__nota{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"k k" "n e" "n c";column-gap:14px;align-items:end}
.resenas__nota .kicker{grid-area:k}
.resenas__num{grid-area:n}
.resenas__est{grid-area:e;padding-bottom:4px}
.resenas__nota .sec__nota{grid-area:c;font-size:14px;padding-bottom:4px}
.resenas__lista{display:flex;flex-direction:column;gap:14px}
.resena{margin:0;padding:18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.resena p{font-size:16px;line-height:1.5}
.resena footer{font:700 13.5px/1 var(--body);color:var(--muted)}

/* как добраться */
.ubicacion{padding-top:8px;display:flex;flex-direction:column;gap:14px}
.ubicacion__txt{display:flex;flex-direction:column;gap:10px}
.ubicacion .h2{font-size:40px}
.ubicacion__dir{font-size:16px}
.ubicacion__btns{order:3;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
.ubicacion__btns a{padding:0 10px;font-size:16px}
.mapa{position:relative;display:block;border-radius:16px;overflow:hidden;border:1px solid var(--line);aspect-ratio:350/220;background:#161616}
.mapa img{width:100%;height:100%;object-fit:cover}
.mapa__pin{position:absolute;left:50%;top:50%;width:44px;height:58px;margin:-56px 0 0 -22px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.6))}
.mapa__pin path{fill:var(--brand);stroke:#0a0a0a;stroke-width:1.5}
.mapa__pin circle{fill:#0a0a0a}
.mapa__osm{position:absolute;right:6px;bottom:4px;font-size:10px;color:rgba(255,255,255,.6)}

/* финал */
.final{margin-top:30px}
.tajo--final-r{right:22px;top:-16px;width:58px;height:68px}
.tajo--final-l{display:none}
.final__in{padding:72px 20px 48px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.final__in > *{position:relative}
.final__pre{font:800 17px/1.3 var(--body);color:var(--naranja-ink)}
.final__t{font:900 96px/1 var(--display);text-transform:uppercase;color:#0a0a0a;display:inline-block}
.final__t.ruge{animation:rugir .95s cubic-bezier(.3,0,.2,1) both}
@keyframes rugir{0%{transform:scale(.9);opacity:.35}35%{transform:scale(1.09);opacity:1}47%{transform:scale(1.06) translateX(-4px)}57%{transform:scale(1.04) translateX(4px)}67%{transform:scale(1.02) translateX(-2px)}79%{transform:translateX(1px)}100%{transform:none;opacity:1}}
.final__cta{width:100%;max-width:350px;min-height:56px;font-size:18px}

/* подвал: пояс здесь уже чёрный */
.pie{background:#050505}
.pie__cinto{position:relative;height:14px;background:#111;border-top:1px solid #333;border-bottom:1px solid #333}
.pie__nudo{position:absolute;left:50%;top:-2px;width:36px;height:43px;margin-left:-18px;overflow:visible}
.pie__nudo *{fill:#1a1a1a;stroke:#3a3a3a;stroke-width:.6}
.pie__in{padding:36px 20px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;max-width:1440px;margin:0 auto}
.pie__cintotxt{font:700 12px/1.3 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.pie__marca{display:flex;flex-direction:column;align-items:center;gap:10px}
.pie__marca img{width:180px;height:52px;object-fit:contain}
.pie__marca p{font:900 18px/1.1 var(--display);text-transform:uppercase}
.pie__datos{font-size:14px;line-height:1.6;color:var(--muted)}
.pie__redes{display:flex;gap:12px}
.pie__redes a{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ink)}
.pie__redes a:hover{border-color:var(--brand);color:var(--brand)}

/* очень узкие телефоны (старый iPhone SE, 320) */
@media (max-width:359px){
  .camino{padding:0 10px}
  .camino__s{font-size:11px}
  .camino__t{font-size:11.5px}
  .datos{font-size:11.5px}
  .tuplan__fila{flex-direction:column;align-items:flex-start;gap:6px}
}

/* ------------------------------------------------ планшет (640–1079) -- */
@media (min-width:640px) and (max-width:1079px){
  .top,.hero,.elige__in,.sec,.franja__in,.final__in,.pie__in{max-width:640px;margin-left:auto;margin-right:auto}
  .profe{max-width:none;padding-left:calc(50% - 300px);padding-right:calc(50% - 300px)}
  .tri{width:300px}
  .hero__lema{font-size:44px}
  .galeria{grid-template-columns:repeat(3,minmax(0,1fr))}
  .tajo--hero{right:calc(50% - 300px)}
}

/* ------------------------------------------------ компьютер (≥1080) -- */
@media (min-width:1080px){
  html{scroll-padding-top:24px}
  .solo-d{display:inline}
  .solo-m{display:none}
  .kicker{font-size:14px;letter-spacing:.18em}
  .cinto{height:10px}
  .top{padding:24px 96px 0;box-sizing:border-box}
  .marca{gap:10px}
  .marca__tigre{width:54px;height:56px}
  .marca__txt{width:140px;height:40px}
  .menu{display:flex;gap:30px;margin-left:auto;font:600 16px/1 var(--body)}
  .menu a{text-decoration:none;padding:14px 0}
  .menu a:hover{color:var(--brand)}
  .top__wa{margin-left:10px;width:auto;height:44px;padding:0 18px;border-radius:22px;gap:8px}
  .top__wa span{display:inline}

  .hero{padding:0 96px;max-width:1440px;margin:0 auto;box-sizing:border-box}
  .hero__k{margin-top:20px}
  .hero__escena{--tw:clamp(300px,26vw,380px);display:grid;grid-template-columns:minmax(0,1fr) var(--tw) minmax(0,1fr);grid-template-areas:"l1 tri l2" "sl tri sr";column-gap:32px;align-items:end;margin-top:16px}
  .hero__lema{display:contents}
  .tri{grid-area:tri;width:var(--tw);margin:0;align-self:start}
  /* «SATISFECHOS» ≈ 4,9 кегля в ширину — кегль считаем от ширины колонки, чтобы слово всегда помещалось */
  .hero__l1,.hero__l2{font:900 min(84px,calc((min(100vw,1440px) - 192px - var(--tw) - 64px) / 9.9))/.92 var(--display);text-transform:uppercase;align-self:end}
  .hero__l1{grid-area:l1;text-align:right}
  .hero__l2{grid-area:l2;text-align:left}
  .hero__sub{display:block;font-size:16px;line-height:1.45;color:var(--muted);align-self:start;margin-top:40px}
  .hero__sub--l{grid-area:sl;text-align:right;justify-self:end;max-width:400px}
  .hero__sub--r{grid-area:sr;text-align:left;max-width:400px}

  .elige{margin-top:40px}
  .roto{top:-22px;height:24px}
  .roto--abajo{top:auto;bottom:-22px}
  /* когти не должны закрывать текст последней кнопки: держим их у правого края контейнера */
  .tajo--hero{right:max(20px,calc(50% - 650px));top:-30px;width:120px;height:150px}
  .elige__in{max-width:1440px;margin:0 auto;padding:26px 96px 44px;box-sizing:border-box}
  .elige__q{font-size:18px}
  .caminos{margin-top:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
  .camino{height:76px;padding:0 16px}
  .camino__t{font-size:min(20px,1.6vw)}
  .camino__s{font-size:14px}
  .tuplan{margin-top:24px;padding:20px 24px;flex-direction:row;align-items:center;justify-content:space-between;gap:24px}
  .tuplan__fila{justify-content:flex-start;align-items:baseline;gap:16px}
  .tuplan__plan,.tuplan__precio{font-size:34px}
  .tuplan__precio small{font-size:20px;font-weight:800}
  .tuplan__inc{font-size:15px}
  .tuplan__acc{display:flex;align-items:center;gap:22px}
  .tuplan__cta{order:3;min-height:56px;padding:0 24px;font-size:18px}
  .tuplan__prem{order:1;font-size:15px}
}
@media (min-width:1080px) and (max-width:1359px){
  .tuplan__prem{display:none}
  .tajo--hero{right:8px;width:100px;height:125px}
}
@media (min-width:1080px){
  .tuplan__partner{order:2;font-size:15px;gap:8px}
  .datos{margin-top:40px;justify-content:flex-start;gap:40px;font-size:15px;font-weight:700}
  .datos li{gap:7px}

  .sec{padding:110px 96px 100px;box-sizing:border-box}
  .sec__cab{flex-direction:row;justify-content:space-between;align-items:flex-end;gap:40px}
  .sec__lead{max-width:440px;text-align:right;font-size:17px;line-height:1.5}
  .h2{font-size:72px}
  .planes__grid{margin-top:30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
  .plan{padding:28px}
  .plan__n{font-size:34px}
  .plan__p{font-size:52px}

  .franja{margin:24px 0}
  .tajo--partner{right:160px;top:-26px;width:110px;height:130px}
  .franja__in{flex-direction:row;align-items:center;justify-content:space-between;gap:60px;padding:56px 96px 64px}
  .franja__ico{width:84px;height:84px;flex:0 0 auto}
  .franja__ico svg{width:40px;height:40px}
  .franja__txt{flex:1;max-width:760px}
  .franja__txt .h2{font-size:52px}
  .franja__txt p{font-size:18px}
  .franja .btn-negro{min-height:60px;font-size:19px;flex:0 0 auto}

  .horarios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:80px;padding-top:90px}
  .horarios__h{font-size:min(112px,calc((min(100vw,1440px) - 272px) / 10.4))}
  .horarios__b{display:flex;flex-direction:column;justify-content:flex-end}
  .clases b{font-size:20px}
  .horarios__cta{align-self:flex-start;min-height:56px;margin-top:26px}

  .profe{grid-template-columns:400px minmax(0,1fr);grid-template-areas:none;gap:0 72px;padding:100px max(96px,calc(50% - 624px))}
  .profe__foto{grid-column:1;grid-row:1/span 9;width:400px;height:512px;border-radius:16px;margin-top:0}
  .profe .kicker{grid-column:2;grid-row:1}
  .profe .h2--xl{grid-column:2;grid-row:2;font-size:80px}
  .profe__facts{grid-column:2;grid-row:3;flex-direction:row;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:22px;padding:0}
  .profe__facts span{font-size:16px}
  .profe__hist,.cita,.enlace-oro,.curso{grid-column:2}
  .profe__hist{font-size:18px;line-height:1.6;max-width:720px;margin-top:22px}
  .cita{max-width:740px}
  .cita blockquote{font-size:40px}
  .enlace-oro{font-size:16px}
  .curso{display:flex;gap:22px;align-items:center;padding:16px}
  .curso img{width:220px;height:140px;border-radius:10px;flex:0 0 auto}
  .curso div{padding:0}
  .curso h3{font-size:28px}
  .curso p{font-size:16px}

  .comunidad .h2{font-size:72px}
  .galeria{margin-top:36px;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
  .enlace{font-size:16px}

  .resenas{display:grid;grid-template-columns:300px minmax(0,1fr);gap:60px;padding-top:20px}
  .resenas__nota{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
  .resenas__num{font-size:150px}
  .resenas__est{margin-top:18px}
  .resenas__est svg{width:22px;height:22px}
  .resenas__nota .sec__nota{font-size:16px}
  .resenas__lista{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}
  .resena p{font-size:17px}

  .ubicacion{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,720px);gap:60px;align-items:center;padding-top:20px;padding-bottom:110px}
  .ubicacion .h2{font-size:72px}
  .ubicacion__dir{font-size:19px}
  .ubicacion__btns{display:flex;gap:14px;margin-top:12px}
  .ubicacion__btns a{min-height:54px;padding:0 24px;font-size:17px}
  .mapa{aspect-ratio:720/420;border-radius:18px}

  .final{margin-top:40px}
  .tajo--final-r{right:calc(50% - 540px);top:0;width:160px;height:200px}
  .tajo--final-l{display:block;left:calc(50% - 630px);top:60px;width:120px;height:150px}
  .final__in{padding:70px 96px 80px;gap:16px}
  .final__pre{font-size:22px}
  .final__t{font-size:190px}
  .final__cta{width:auto;max-width:none;padding:0 36px;min-height:62px;font-size:20px}

  .pie__cinto{height:16px}
  .pie__in{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-areas:"m d c" "m d r";align-items:center;text-align:left;padding:56px 96px;gap:14px 40px;box-sizing:border-box}
  .pie__marca{grid-area:m;align-items:flex-start}
  .pie__marca img{width:220px;height:64px;object-position:left center}
  .pie__marca p{font-size:20px}
  .pie__datos{grid-area:d;font-size:15px;line-height:1.7}
  .pie__cintotxt{grid-area:c;justify-self:end}
  .pie__redes{grid-area:r;justify-self:end}
  .pie__redes a{width:48px;height:48px}
}

@media (prefers-reduced-motion:reduce){
  .js .tri__neon,.js .tri__vid,.js .tajo g.r{opacity:1;transform:none}
  .cifra{transition:none}
}

/* ------------------------------------------- женская группа «Tigresas» -- */
.tigresas{padding-top:0}
.tigresas__card{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:var(--surface);border:2px solid var(--brand)}
.tigresas__foto{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 30%}
.tigresas__txt{padding:22px 20px 24px;display:flex;flex-direction:column;gap:12px}
.tigresas .h2{margin-top:-2px}
.tigresas__dias{display:flex;align-items:center;gap:8px;font:900 28px/1 var(--display);color:var(--brand)}
.tigresas__p{font-size:16px;line-height:1.5;color:var(--ink-2)}
.tigresas .btn-oro{margin-top:6px}
@media (min-width:1080px){
  .tigresas{padding-top:0;padding-bottom:100px}
  .tigresas__card{flex-direction:row;align-items:stretch}
  .tigresas__foto{width:44%;aspect-ratio:auto;min-height:420px}
  .tigresas__txt{padding:48px 56px;justify-content:center;gap:16px;max-width:620px}
  .tigresas__dias{font-size:40px}
  .tigresas__p{font-size:18px}
  .tigresas .btn-oro{align-self:flex-start;min-height:56px}
}
