/* РПК — гостевой каталог живого покера. Red Luxe (AGENTS.md, docs/design/red-luxe.md).
 *
 * КОНЦЕПТ: вечер в зале. Лампа над столом, сукно, фишки и карты — сцена
 * героя; ниже ведомость игр под этой же лампой. Форму держит материал: плита,
 * блик по верхней грани, волосок. Рамок нет, золота нет, капсул нет.
 * Красный — только на том, что происходит сейчас, и на действии.
 *
 * Движение: в покое не больше двух бесконечных анимаций (лампа дышит, живой
 * турнир пульсирует). Остальное — один раз при появлении. prefers-reduced-motion
 * гасит всё поимённо в конце файла.
 */

/* ── Шрифты: вариативные сабсеты платформы, свои файлы ─────────────────── */
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700 800;font-display:swap;src:url(/assets/fonts/v2/v-unb-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+2116}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700 800;font-display:swap;src:url(/assets/fonts/v2/v-unb-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+2013,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2039,U+203A,U+20AC,U+2122,U+2192}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/v2/v-mnr-cyr.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+2116,U+20BD}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/v2/v-mnr-lat.woff2) format('woff2');unicode-range:U+0000-00FF,U+00D7,U+2013,U+2018-201A,U+201C-201E,U+2022,U+2026,U+2039,U+203A,U+20AC,U+2122,U+2192}

:root{
  --bg:#050608;--bg2:#0a0b0e;
  --s1:#111318;--s2:#17191f;--s3:#1d2027;--s4:#23262e;
  --line:rgba(255,255,255,.07);--line2:rgba(255,255,255,.12);
  --t1:#f5f7fa;--t2:#c9ced6;--t3:#9ba2ae;--t4:#6b717d;
  --red:#c61f32;--red2:#d62839;--red3:#b3142a;--wine:#7e1322;--deep:#5a0e18;
  --metal:#c7ceda;--live:#4ec27d;
  --ui:'Manrope','Manrope Fallback',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --disp:'Unbounded','Unbounded Fallback',-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --wrap:1200px;--gut:24px;
  --ease:cubic-bezier(.23,1,.32,1);
  --plate:linear-gradient(180deg,#1d2027,#15171d);
  --plate-hi:linear-gradient(180deg,#242731,#1a1c23);
  --shine:inset 0 1px 0 rgba(255,255,255,.07);
  --shadow:0 18px 40px rgba(0,0,0,.42);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}

/* ── Полосы прокрутки — один в один с главной pokersystem.ru ─────────────
 * Тонкая, без рельсов и стрелок, почти незаметная, под курсором красная.
 * Ленты (галерея, карточки, быстрые срезы) прячут полосу своим селектором. */
*{ scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.16) transparent; }
::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.16); border:3px solid transparent; background-clip:content-box; border-radius:999px; }
::-webkit-scrollbar-thumb:hover{ background:rgba(255,89,101,.55); background-clip:content-box; }
::-webkit-scrollbar-thumb:active{ background:var(--red); background-clip:content-box; }
::-webkit-scrollbar-corner{ background:transparent; }
@media (hover:none) and (pointer:coarse){ ::-webkit-scrollbar{ width:0; height:0; } }
body.rpc{
  margin:0;color:var(--t1);background:var(--bg) linear-gradient(180deg,var(--bg) 0%,var(--bg2) 100%);/* сплошной цвет нужен дорожке скроллбара: без него она белая */
  font:16.5px/1.55 var(--ui);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;
  position:relative;overflow-x:hidden;min-height:100dvh;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit}
.ri{width:1em;height:1em;flex:none;vertical-align:-.15em}
.is-hidden{display:none!important}
:focus-visible{outline:2px solid var(--red2);outline-offset:3px;border-radius:6px}

.main{position:relative;z-index:1}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gut)}

/* ── Типографика ───────────────────────────────────────────────────────── */
.h1{margin:12px 0 0;font:800 clamp(34px,5vw,58px)/1.04 var(--disp);letter-spacing:-.02em;max-width:22ch}
.h2{margin:0;font:800 clamp(22px,2.6vw,30px)/1.15 var(--disp);letter-spacing:-.015em}
.h3{margin:26px 0 8px;font:700 19px/1.3 var(--ui)}
.kicker{margin:0;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--t3)}
.kicker--red{color:var(--red2)}
.lead{margin:16px 0 0;font-size:18px;line-height:1.55;color:var(--t2);max-width:58ch}
.lead b{color:var(--t1);font-weight:700}
.lead--narrow{max-width:56ch}
.lead a{color:var(--metal)}
.note{margin:12px 0 0;font-size:14px;line-height:1.55;color:var(--t3);max-width:70ch}
.note--live{color:var(--metal)}
.note a{color:var(--metal)}
.prose{max-width:72ch;color:var(--t2);line-height:1.68}
.prose p{margin:12px 0 0}
.prose .h2{margin-top:8px;color:var(--t1)}
.prose .h2 + p{margin-top:10px}
.prose strong{color:var(--t1)}
.prose a{color:var(--metal)}
.legend{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:13.5px;color:var(--t3)}
.legend__bar{width:3px;height:16px;border-radius:2px;background:linear-gradient(180deg,var(--red2),var(--red3));flex:none}
.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.more{display:inline-flex;align-items:center;gap:8px;margin-top:18px;color:var(--metal);font-weight:600;font-size:15px}
.more:hover{color:#fff}
.link{display:inline-flex;align-items:center;justify-content:center;gap:6px;color:var(--metal);font-size:14.5px;padding:8px 4px}
.link:hover{color:#fff}
em{font-style:normal}

/* ── Кнопки: заливка несёт действие, вторичные графитом ────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 20px;border:0;border-radius:12px;
  background:linear-gradient(135deg,var(--red3) 0%,var(--red) 54%,var(--red2) 100%);color:#fff;font-weight:700;font-size:15px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 14px 30px rgba(179,20,42,.26);cursor:pointer;white-space:nowrap;
  transition:filter .18s ease,box-shadow .18s ease;
}
.btn:hover{filter:brightness(1.07);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 16px 34px rgba(179,20,42,.32)}
.btn:active{filter:brightness(.96)}
.btn--big{min-height:52px;padding:0 26px;font-size:16px;border-radius:14px}
.btn--ghost{
  background:var(--plate);color:var(--t1);box-shadow:var(--shine),0 8px 20px rgba(0,0,0,.28);
}
.btn--ghost:hover{background:var(--plate-hi);filter:none}
.btn[disabled]{opacity:.55;cursor:default;filter:none}
.btn .ri{font-size:1.05em}

/* ── Шапка ─────────────────────────────────────────────────────────────── */
.top{position:sticky;top:0;z-index:40;background:rgba(6,7,10,.72);border-bottom:1px solid var(--line)}
/* Размытие — на псевдоэлементе: backdrop-filter на самой шапке сделал бы её
   containing block для fixed-панели разделов на телефоне. */
.top::before{content:"";position:absolute;inset:0;z-index:-1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.top__in{display:flex;align-items:center;gap:18px;height:64px}
.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand__chip{
  position:relative;width:34px;height:34px;border-radius:50%;
  background:radial-gradient(circle at 50% 42%,#e0304a 0 9px,#8d0d21 9.5px 14px,#c61f32 14.5px 100%);
  box-shadow:0 6px 14px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.28);
}
.brand__chip i{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(rgba(255,255,255,.62) 0 10deg,transparent 12deg 45deg);-webkit-mask:radial-gradient(circle,transparent 11px,#000 11.5px 15.5px,transparent 16px);mask:radial-gradient(circle,transparent 11px,#000 11.5px 15.5px,transparent 16px)}
.brand__t{display:flex;flex-direction:column;line-height:1.05}
.brand__t b{font:800 15px/1 var(--disp);letter-spacing:.12em}
.brand__t span{font-size:11.5px;color:var(--t3);margin-top:4px;letter-spacing:.02em}
.citypick{position:relative;flex:none}
.citypick summary{
  list-style:none;display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:10px;cursor:pointer;
  background:var(--plate);box-shadow:var(--shine);color:var(--t1);font-weight:600;font-size:14.5px;
}
.citypick summary::-webkit-details-marker{display:none}
.citypick summary .ri{color:var(--red2)}
.citypick__chev{color:var(--t3);transition:transform .2s var(--ease)}
.citypick[open] .citypick__chev{transform:rotate(180deg)}
.citypick__pop{
  position:absolute;left:0;top:calc(100% + 8px);min-width:260px;max-height:70vh;overflow:auto;padding:8px;border-radius:14px;z-index:50;
  background:linear-gradient(180deg,#1b1e25,#121419);box-shadow:var(--shine),0 24px 50px rgba(0,0,0,.55);
  animation:pop .22s var(--ease) backwards;
}
@keyframes pop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.citypick__pop a{display:flex;justify-content:space-between;gap:12px;padding:9px 12px;border-radius:9px;font-size:14.5px;color:var(--t2)}
.citypick__pop a:hover,.citypick__pop a.is-on{background:rgba(255,255,255,.05);color:#fff}
.citypick__pop a i{color:var(--t4);font-style:normal}
.citypick__all{color:var(--metal)!important;margin-top:4px;border-top:1px solid var(--line)}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:10px;font-size:14.5px;color:var(--t2);transition:background .16s ease,color .16s ease}
.nav a:hover{color:#fff;background:rgba(255,255,255,.04)}
.nav a[aria-current]{color:#fff;background:rgba(255,255,255,.06)}
.nav a[aria-current] .ri{color:var(--red2)}
.nav .ri{font-size:17px;color:var(--t3)}
.top__add{
  flex:none;display:inline-flex;align-items:center;min-height:38px;padding:0 14px;border-radius:10px;font-size:14px;font-weight:600;color:var(--t2);
  background:var(--plate);box-shadow:var(--shine);transition:background .16s ease,color .16s ease;
}
.top__add:hover{background:var(--plate-hi);color:#fff}

/* ── Герой ─────────────────────────────────────────────────────────────── */
.hero{position:relative;padding:44px 0 26px}
.hero::after{content:"";position:absolute;left:var(--gut);right:var(--gut);bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(198,31,50,.5) 22%,rgba(199,206,218,.18) 55%,transparent)}
.hero--page{padding:34px 0 30px}
.hero--page .h1{max-width:26ch}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:36px;align-items:center}
.hero__text{min-width:0}
.hero__text .crumbs{margin-bottom:14px}
.hero .stats{margin-top:30px}
.crumbs{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:13px;color:var(--t3);margin:0 0 10px}
.crumbs a{color:var(--t3)}
.crumbs a:hover{color:#fff}
.crumbs a+a::before,.crumbs a+span::before{content:"/";margin-right:8px;color:var(--t4)}
.crumbs span{color:var(--t2)}

/* Сцена: сукно под лампой, фишки и карты. Одна на экран. */
.scene{position:relative;height:300px;perspective:900px}
.scene__felt{
  position:absolute;inset:26% 4% 8%;border-radius:50%/48%;
  background:
    radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.06),transparent 60%),
    radial-gradient(100% 100% at 50% 40%,#6a1120 0%,#3b0b14 52%,#22070d 100%);
  box-shadow:0 0 0 10px #15171d,0 0 0 12px rgba(255,255,255,.06),0 30px 60px rgba(0,0,0,.55),inset 0 -20px 60px rgba(0,0,0,.35);
  transform:rotateX(52deg);transform-origin:50% 60%;
  animation:felt 1.1s var(--ease) backwards;
}
.scene__felt::after{content:"";position:absolute;inset:14% 12%;border-radius:50%/48%;background:radial-gradient(60% 50% at 50% 30%,rgba(255,255,255,.06),transparent 70%)}
@keyframes felt{from{opacity:0;transform:rotateX(70deg) translateY(30px)}to{opacity:1;transform:rotateX(52deg)}}
.scene__chips{position:absolute;left:24%;bottom:30%;width:64px;height:90px}
.chip{
  position:absolute;left:0;width:64px;height:64px;border-radius:50%;
  background:radial-gradient(circle at 50% 44%,#2a2d36 0 18px,#15171d 18.5px 26px,#2a2d36 26.5px 100%);
  box-shadow:0 8px 16px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.18),0 0 0 1px rgba(255,255,255,.1);
  animation:drop .5s var(--ease) backwards;
}
.chip::after{content:"";position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(rgba(255,255,255,.5) 0 11deg,transparent 13deg 40deg);-webkit-mask:radial-gradient(circle,transparent 19px,#000 19.5px 25px,transparent 25.5px);mask:radial-gradient(circle,transparent 19px,#000 19.5px 25px,transparent 25.5px)}
.chip--1{bottom:0;animation-delay:.25s}
.chip--2{bottom:11px;animation-delay:.34s}
.chip--3{bottom:22px;animation-delay:.43s;background:radial-gradient(circle at 50% 44%,#d8253d 0 18px,#8d0d21 18.5px 26px,#d8253d 26.5px 100%)}
.chip--4{bottom:33px;left:30px;animation-delay:.55s;background:radial-gradient(circle at 50% 44%,#dfe4ec 0 18px,#8c939f 18.5px 26px,#dfe4ec 26.5px 100%)}
.chip--4::after{background:repeating-conic-gradient(rgba(0,0,0,.35) 0 11deg,transparent 13deg 40deg)}
@keyframes drop{from{opacity:0;transform:translateY(-40px) scale(.9)}to{opacity:1;transform:none}}
.scene__card{
  position:absolute;right:22%;bottom:34%;width:74px;height:104px;border-radius:9px;background:linear-gradient(180deg,#fbfbfd,#e9ebf0);
  color:#1a1c22;box-shadow:0 14px 28px rgba(0,0,0,.55),inset 0 0 0 1px rgba(0,0,0,.08);
  transform-origin:50% 100%;animation:deal .7s var(--ease) backwards;
}
.scene__card b{position:absolute;left:8px;top:6px;font:800 22px/1 var(--disp)}
.scene__card i{position:absolute;right:8px;bottom:6px;font-size:30px;font-style:normal;transform:rotate(180deg)}
.scene__card--a{transform:rotate(-12deg) translateX(-30px);animation-delay:.6s;z-index:1}
.scene__card--k{transform:rotate(9deg) translateX(20px);animation-delay:.75s;color:var(--red)}
.scene__card--k b{color:var(--red)}
@keyframes deal{from{opacity:0;transform:translate(120px,-60px) rotate(30deg)}}
.scene__dealer{
  position:absolute;left:58%;bottom:24%;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 50% 40%,#fff,#c7ceda);
  color:#1a1c22;font:800 13px/30px var(--disp);text-align:center;box-shadow:0 6px 12px rgba(0,0,0,.5);animation:drop .5s var(--ease) .9s backwards;
}

/* Цифры героя: холодный металл, Unbounded */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:18px 18px 18px 0;border-right:1px solid var(--line);margin-right:18px}
.stat:last-child{border-right:0;margin-right:0}
.stat b{display:block;font:800 clamp(28px,3.4vw,40px)/1 var(--disp);letter-spacing:-.02em;
  background:linear-gradient(180deg,#fff 20%,#c7ceda 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{display:block;margin-top:8px;font-size:14px;color:var(--t2)}
.stat span i{display:block;font-style:normal;font-size:12.5px;color:var(--t3);margin-top:2px}

/* Быстрые срезы */
.quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.quick__i{
  display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 15px;border-radius:11px;font-size:14.5px;font-weight:600;color:var(--t1);
  background:var(--plate);box-shadow:var(--shine),0 6px 14px rgba(0,0,0,.25);transition:background .16s ease;
}
.quick__i:hover{background:var(--plate-hi)}
.quick__i i{font-style:normal;font-size:12px;color:var(--t3)}
.quick__i.is-on{background:linear-gradient(135deg,var(--red3),var(--red));color:#fff}
.quick__i .ri{color:var(--red2)}

/* Поиск города */
.search{display:flex;gap:10px;margin-top:22px;max-width:560px}
/* min-width:0 обязателен: без него поле держит собственную ширину поля ввода
   (~195px), строка не ужимается и кнопка «Найти игры» уезжает за край
   экрана на телефонах уже 360px (08.09.2026). */
.search__f{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:0 14px;border-radius:12px;background:var(--s1);box-shadow:var(--shine),inset 0 0 0 1px var(--line)}
.search__f .ri{color:var(--red2);font-size:18px}
.search__f input{flex:1;min-width:0;background:none;border:0;color:#fff;font:inherit;font-size:16px;min-height:48px;outline:none}
.search__f input::placeholder{color:var(--t4)}
.search__f:focus-within{box-shadow:var(--shine),inset 0 0 0 1px var(--line2)}

/* ── Секции ────────────────────────────────────────────────────────────── */
.sec{padding:44px 0}
.sec--tight{padding:22px 0}
.sec--links{padding-bottom:52px}
.sec__head{display:flex;align-items:flex-end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.sec__head .kicker{width:100%;margin-bottom:8px}
.sec__more{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--t3);font-size:14px;transition:color .16s ease}
.sec__more:hover{color:#fff}
.sec__more .ri{transition:transform .22s var(--ease)}
.sec__more:hover .ri{transform:translateX(3px)}
.empty{padding:26px 22px;border-radius:14px;background:var(--s1);box-shadow:var(--shine);color:var(--t3);font-size:15px}
.empty b{display:block;color:var(--t1);font-size:17px;margin-bottom:6px}
.empty a{color:var(--metal)}

/* Появление */
.will-reveal{opacity:0;transform:translateY(14px)}
.will-reveal.is-in{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}

/* ── Ведомость событий ─────────────────────────────────────────────────── */
.board{border-top:1px solid var(--line)}
.day{display:flex;align-items:baseline;gap:12px;padding:24px 0 10px;color:var(--t3);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.day b{color:#fff}
.ev{
  display:grid;grid-template-columns:86px 40px minmax(0,1fr) auto;gap:16px;align-items:center;
  padding:15px 14px 15px 16px;border-bottom:1px solid var(--line);position:relative;transition:background .2s ease;
}
.ev::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:2px;background:linear-gradient(180deg,var(--red2),var(--red3));opacity:0;transition:opacity .2s ease}
.ev--exact::before{opacity:.75}
.ev:hover{background:rgba(255,255,255,.028)}
.ev__t{font:800 20px/1 var(--disp);letter-spacing:-.02em;color:#eef0f4;white-space:nowrap}
.ev__t i{display:block;font:500 12.5px/1.3 var(--ui);color:var(--t3);margin-top:6px}
.live{color:var(--live);font-weight:600;position:relative;padding-left:14px}
.live::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--live);box-shadow:0 0 0 0 rgba(78,194,125,.6);animation:pulse 1.8s ease-out infinite}
@keyframes pulse{to{box-shadow:0 0 0 9px rgba(78,194,125,0)}}
.ev__b{display:block;min-width:0}
.ev__b b{display:block;font-size:16.5px;font-weight:700;line-height:1.28}
.ev:hover .ev__b b{color:#fff}
.ev__c{display:block;font-size:14.5px;color:var(--t2);margin-top:4px}
.ev__c em,.ccard__where em,.crow__b em,.chero__where em{position:relative;padding-left:12px;color:var(--t1)}
.ev__c em::before,.ccard__where em::before,.crow__b em::before,.chero__where em::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--line,var(--metal))}
.ev__tags{display:block;margin-top:5px;font-size:13px;color:var(--t3);letter-spacing:.01em}
.ev__tags i{font-style:normal}
.ev__tags i+i::before{content:"·";margin:0 6px;color:var(--t4)}
.ev__fee{text-align:right;white-space:nowrap}
.ev__fee b{display:block;font-size:16px;font-weight:700}
.ev__fee.is-free b{color:var(--live)}
.ev__fee i{display:block;font-style:normal;font-size:12.5px;color:var(--t3);margin-top:4px}
.ev[hidden],.day[hidden]{display:none}
.logo{--sz:40px;width:var(--sz);height:var(--sz);border-radius:50%;overflow:hidden;flex:none;display:grid;place-items:center;background:var(--s2);box-shadow:var(--shine),0 4px 10px rgba(0,0,0,.4)}
.logo img{width:100%;height:100%;object-fit:cover}
.logo--mono{background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--acc,#c61f32) 60%,#000),color-mix(in srgb,var(--acc,#c61f32) 25%,#000));color:#fff;font:800 calc(var(--sz)*.36)/1 var(--disp)}
.ev__logo{grid-column:2}
.ev--solo{grid-template-columns:86px minmax(0,1fr) auto}

/* ── Расписание с фасетами ─────────────────────────────────────────────── */
.sched{display:grid;grid-template-columns:270px minmax(0,1fr);gap:34px;align-items:start}
.sched__side{position:sticky;top:80px}
.sched__open{display:none}
.facets{padding:6px 0 0}
.facets__top{display:flex;align-items:center;gap:10px;padding:0 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px}
.facets__top b{font-size:15px}
.facets__top output{color:var(--t3);font-size:13px;margin-left:auto}
.facets__close{display:none;background:none;border:0;color:var(--t2);padding:6px;cursor:pointer;font-size:20px}
.facet{border:0;margin:0 0 18px;padding:0}
.facet legend{padding:0 0 8px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);font-weight:700}
.facet__in{display:flex;flex-direction:column;gap:2px}
.facet__i{display:flex;align-items:center;cursor:pointer;padding:6px 8px;border-radius:9px;transition:background .16s ease;min-height:36px}
.facet__i:hover{background:rgba(255,255,255,.04)}
.facet__i.is-extra{display:none}
.facet__in.is-open .facet__i.is-extra{display:flex}
.facet__i input{appearance:none;width:16px;height:16px;margin:0 10px 0 0;border-radius:5px;flex:none;background:var(--s2);box-shadow:var(--shine),inset 0 0 0 1px var(--line2);transition:background .16s ease;position:relative}
.facet__i input:checked{background:linear-gradient(180deg,var(--red2),var(--red3));box-shadow:none}
.facet__i input:checked::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.facet__i span{display:flex;align-items:baseline;gap:8px;font-size:14.5px;color:var(--t2);min-width:0;flex:1}
.facet__i input:checked+span{color:#fff}
.facet__i span i{font-style:normal;font-size:12px;color:var(--t4);margin-left:auto}
.facet__more{margin-top:4px;padding:6px 8px;background:none;border:0;color:var(--metal);font-size:13.5px;cursor:pointer;text-align:left}
.facet__more:hover{color:#fff}
.facets__foot{display:flex;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.facets__foot .btn{flex:1;min-height:40px}
.facets__foot [data-facets-close]{display:none}

/* ── Гистограмма стартов ───────────────────────────────────────────────── */
.hours{padding:14px 0 0}
.hours__bars{display:flex;align-items:flex-end;gap:8px;height:120px}
.hours__b{flex:1;height:var(--h);border-radius:6px 6px 3px 3px;position:relative;background:linear-gradient(180deg,rgba(199,206,218,.7),rgba(199,206,218,.18));box-shadow:inset 0 1px 0 rgba(255,255,255,.2);transform-origin:bottom;transform:scaleY(0)}
.hours.is-in .hours__b{transform:none;transition:transform .7s var(--ease)}
.hours.is-in .hours__b:nth-child(n){transition-delay:calc(var(--i,0)*.03s)}
.hours__b.is-peak{background:linear-gradient(180deg,var(--red2),rgba(198,31,50,.3))}
.hours__b.is-empty{background:rgba(255,255,255,.05);box-shadow:none}
.hours__b i{position:absolute;top:-20px;left:0;right:0;text-align:center;font-style:normal;font-size:12.5px;color:var(--t2);font-weight:600}
.hours__ax{display:flex;gap:8px;margin-top:8px}
.hours__ax span{flex:1;text-align:center;font-size:11.5px;color:var(--t4)}

/* ── Плитки станций, районы, ссылки ────────────────────────────────────── */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.tile{position:relative;display:block;padding:16px 16px 14px 18px;border-radius:14px;background:var(--plate);box-shadow:var(--shine),0 10px 24px rgba(0,0,0,.3);transition:background .2s ease}
.tile:hover{background:var(--plate-hi)}
.tile__dot{position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 3px 3px 0;background:var(--line,var(--metal))}
.kicker .tile__dot{position:static;display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px;vertical-align:-1px}
.tile b{display:block;font-size:15.5px;font-weight:700}
.tile__s{display:block;font-size:13px;color:var(--t3);margin-top:5px}
.tile__s em{display:block;color:var(--t4);font-size:12px;margin-top:3px}
.dlist{border-top:1px solid var(--line)}
.dlist__i{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 16px;align-items:center;padding:15px 8px 15px 0;border-bottom:1px solid var(--line);transition:background .16s ease}
.dlist__i:hover{background:rgba(255,255,255,.028)}
.dlist__i b{font-size:16.5px;font-weight:700}
.dlist__i span{grid-column:1;font-size:13.5px;color:var(--t3)}
.dlist__i .ri{grid-column:2;grid-row:1/3;color:var(--t4);font-size:18px;transition:transform .22s var(--ease)}
.dlist__i:hover .ri{transform:translateX(3px);color:#fff}
.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.links a{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 15px;border-radius:11px;background:var(--plate);box-shadow:var(--shine);color:var(--t2);font-size:14.5px;transition:background .18s ease,color .18s ease}
.links a:hover{background:var(--plate-hi);color:#fff}
.links a i{font-style:normal;color:var(--t4);font-size:12.5px}
.citygrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.citygrid__i{display:block;padding:14px 16px;border-radius:12px;background:var(--plate);box-shadow:var(--shine);transition:background .18s ease}
.citygrid__i:hover{background:var(--plate-hi)}
.citygrid__i b{display:block;font-size:15.5px;font-weight:700}
.citygrid__i span{display:block;font-size:12.5px;color:var(--t3);margin-top:4px}
.citygrid__more{display:none}
/* Телефон: два столбца и первые 12 городов, остальные — по кнопке, иначе список
   на 60 городов растягивает главную на четыре экрана. */
@media (max-width:860px){
  .citygrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .citygrid__i{padding:11px 12px;border-radius:10px}
  .citygrid__i b{font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .citygrid__i span{font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .citygrid.is-fold .citygrid__i:nth-child(n+13){display:none}
  .citygrid.is-fold .citygrid__more{display:flex;grid-column:1/-1;justify-content:center;min-height:44px;margin-top:2px}
}

/* ── Клубы: карточки с фото и строки ───────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.ccard{display:block;border-radius:18px;overflow:hidden;background:var(--plate);box-shadow:var(--shine),var(--shadow);transition:background .2s ease,box-shadow .2s ease}
.ccard:hover{background:var(--plate-hi);box-shadow:var(--shine),0 22px 50px rgba(0,0,0,.5)}
.ccard__media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#0d0f13}
.ccard__media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.ccard:hover .ccard__media img{transform:scale(1.04)}
.ccard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(8,9,12,.85))}
.ccard__felt{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(80% 70% at 50% 40%,color-mix(in srgb,var(--acc,#c61f32) 45%,#000),#0b0c10 100%)}
.ccard__felt i{font:800 46px/1 var(--disp);color:rgba(255,255,255,.85);letter-spacing:-.03em;font-style:normal}
.ccard__mark{position:absolute;left:14px;top:12px;padding:6px 10px;border-radius:8px;background:rgba(6,7,10,.55);backdrop-filter:blur(6px);z-index:1;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#fff;letter-spacing:.02em}
.ccard__mark .ri{color:var(--red2)}
.ccard__body{display:flex;gap:14px;padding:16px 18px 18px;align-items:flex-start}
.ccard__logo{margin-top:-38px;position:relative;z-index:1;box-shadow:0 8px 18px rgba(0,0,0,.6),0 0 0 3px #15171d}
.ccard__text{min-width:0;flex:1}
.ccard__promo{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red2);font-weight:700;margin-bottom:4px}
.ccard__text>b{display:block;font-size:18px;font-weight:800;line-height:1.2}
.ccard__where{display:block;font-size:13.5px;color:var(--t2);margin-top:6px}
.ccard__next{display:block;font-size:13px;color:var(--t3);margin-top:8px}
.clist{border-top:1px solid var(--line)}
.crow{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:13px 6px 13px 0;border-bottom:1px solid var(--line);transition:background .16s ease;position:relative}
.crow::before{content:"";position:absolute;left:-16px;top:10px;bottom:10px;width:3px;border-radius:2px;background:linear-gradient(180deg,var(--red2),var(--red3));opacity:0}
.crow--exact::before{opacity:.75}
.crow:hover{background:rgba(255,255,255,.028)}
.crow__b b{display:block;font-size:16px;font-weight:700}
.crow__b span{display:block;font-size:13.5px;color:var(--t2);margin-top:3px}
.crow__r{font-size:13.5px;color:var(--t3);text-align:right;white-space:nowrap}
.crow__arrow{color:var(--t4);font-size:18px;transition:transform .22s var(--ease)}
.crow:hover .crow__arrow{transform:translateX(3px);color:#fff}

/* ── Страница клуба ────────────────────────────────────────────────────── */
.chero{position:relative;padding:34px 0 26px;overflow:hidden}
.chero--photo{padding-top:120px}
.chero__bg{position:absolute;inset:0;z-index:0}
.chero__bg img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.chero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,6,8,.35) 0%,rgba(5,6,8,.78) 45%,var(--bg) 100%)}
.chero__in{position:relative;z-index:1}
.chero__row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;margin-top:14px}
.chero__logo{box-shadow:0 12px 30px rgba(0,0,0,.6),0 0 0 4px rgba(255,255,255,.06)}
.chero__where{margin:10px 0 0;font-size:15.5px;color:var(--t2)}
.chero__rhythm{display:flex;align-items:center;gap:8px;margin:10px 0 0;font-size:14px;color:var(--t3)}
.chero__rhythm .ri{color:var(--red2)}
.chero__act{display:flex;flex-direction:column;gap:10px;min-width:220px}
.chero .stats{margin-top:26px}
.gallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none;margin:0 calc(var(--gut)*-1);padding-left:var(--gut);padding-right:var(--gut)}
.gallery::-webkit-scrollbar{display:none}
.gallery__i{flex:none;width:min(320px,72vw);aspect-ratio:4/3;border-radius:14px;overflow:hidden;scroll-snap-align:start;background:var(--s1);box-shadow:var(--shine)}
.gallery__i img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gallery__i:hover img{transform:scale(1.04)}

/* ── Турнир ────────────────────────────────────────────────────────────── */
.tags{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:16px;font-size:14px;color:var(--t2)}
.tags i{font-style:normal}
.tags i.is-quiet{color:var(--t3)}
.specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin:26px 0 0}
.specs div{padding:14px 16px;border-radius:12px;background:var(--plate);box-shadow:var(--shine)}
.specs dt{font-size:12.5px;color:var(--t3);letter-spacing:.02em}
.specs dd{margin:6px 0 0;font:800 18px/1.2 var(--disp);letter-spacing:-.01em}
.clubbox{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 24px;border-radius:18px;background:var(--plate);box-shadow:var(--shine),var(--shadow)}
.clubbox--photo{grid-template-columns:200px minmax(0,1fr) auto}
.clubbox__photo{display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden}
.clubbox__photo img{width:100%;height:100%;object-fit:cover}
.clubbox__head{display:flex;gap:14px;align-items:center}
.clubbox__head .h2{font-size:22px}
.clubbox__head a:hover{color:#fff}
.clubbox__where{margin:6px 0 0;font-size:14.5px;color:var(--t2);line-height:1.5}
.clubbox__act{display:flex;flex-direction:column;gap:9px;min-width:220px}

/* ── Шаги вечера, глоссарий, комбинации ────────────────────────────────── */
.steps{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative}
.steps::before{content:"";position:absolute;left:0;right:0;top:11px;height:1px;background:var(--line2)}
.steps li{position:relative;padding:28px 18px 0 0}
.steps li::before{content:"";position:absolute;left:0;top:6px;width:11px;height:11px;border-radius:50%;background:var(--red2);box-shadow:0 0 0 4px var(--bg)}
.steps li b{display:block;font:800 18px/1 var(--disp);letter-spacing:-.01em}
.steps li span{display:block;margin-top:8px;font-weight:700;font-size:15px}
.steps li p{margin:6px 0 0;font-size:14px;color:var(--t3);line-height:1.5}
.gloss{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin:0}
.gloss div{padding:16px 18px;border-radius:12px;background:var(--plate);box-shadow:var(--shine)}
.gloss dt{font-weight:800;font-size:16px}
.gloss dd{margin:6px 0 0;color:var(--t2);font-size:14.5px;line-height:1.5}
.hands{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.hands li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.hands b{font:800 20px/1 var(--disp);color:var(--t3)}
.hands span{font-weight:700;font-size:16px}
.hands span i{display:block;font-style:normal;font-weight:400;font-size:13.5px;color:var(--t3);margin-top:2px}
.hands em{font:700 16px/1 var(--ui);letter-spacing:.06em;color:var(--metal);white-space:nowrap}

/* ── Рейтинг ───────────────────────────────────────────────────────────── */
.lbctl{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.sel{display:flex;flex-direction:column;gap:6px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--t3);font-weight:700}
.sel select{min-height:44px;padding:0 40px 0 14px;border-radius:11px;border:0;background:var(--plate) ;color:#fff;font:600 15px var(--ui);box-shadow:var(--shine);appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--t3) 50%),linear-gradient(135deg,var(--t3) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
.lb{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.lb__i{display:grid;grid-template-columns:52px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:13px 10px 13px 0;border-bottom:1px solid var(--line)}
.lb__i.is-top .lb__n{color:var(--red2)}
.lb__n{font:800 22px/1 var(--disp);color:var(--t3);text-align:center}
.lb__who{font-weight:700;font-size:16px;letter-spacing:.02em}
.lb__who i{display:block;font-style:normal;font-weight:400;font-size:12.5px;color:var(--t4);margin-top:2px;letter-spacing:0}
.lb__g{font-size:13.5px;color:var(--t3);text-align:right}
.lb__p{font:800 18px/1 var(--disp);text-align:right;min-width:88px}
.lb__p i{display:block;font:600 12px/1 var(--ui);margin-top:5px;color:var(--t4)}
.lb__p i.up{color:var(--live)}
.lb__p i.down{color:var(--red2)}
.sec--rating{padding:26px 0 56px}
.rating-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:26px;align-items:center;padding:30px 32px;border-radius:20px;
  background:radial-gradient(70% 120% at 100% 0%,rgba(198,31,50,.22),transparent 60%),var(--plate);box-shadow:var(--shine),var(--shadow)}
.rating-cta .lead{margin-top:10px}

/* ── Тренажёр ──────────────────────────────────────────────────────────── */
.trainer{max-width:640px}
.spot{display:none;padding:24px;border-radius:20px;background:var(--plate);box-shadow:var(--shine),var(--shadow)}
.spot.is-on{display:block;animation:pop .35s var(--ease) backwards}
.spot__k{margin:0;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--t3);font-weight:700}
.table{position:relative;height:190px;margin:18px 0 6px;border-radius:50%/46%;background:radial-gradient(100% 100% at 50% 40%,#6a1120 0%,#3b0b14 55%,#22070d 100%);box-shadow:0 0 0 8px #15171d,0 0 0 9px var(--line2),inset 0 -14px 40px rgba(0,0,0,.35)}
.table__s{position:absolute;width:42px;height:42px;border-radius:50%;background:var(--s3);box-shadow:var(--shine),0 6px 12px rgba(0,0,0,.5);display:grid;place-items:center;font:800 11px/1 var(--disp);color:var(--t2)}
.table__s.is-me{background:linear-gradient(135deg,var(--red3),var(--red2));color:#fff;box-shadow:0 0 0 4px rgba(214,40,57,.25),0 6px 14px rgba(0,0,0,.5)}
.table__s:nth-child(1){left:6%;top:50%;margin-top:-21px}
.table__s:nth-child(2){left:24%;top:-8px}
.table__s:nth-child(3){right:24%;top:-8px}
.table__s:nth-child(4){right:6%;top:50%;margin-top:-21px}
.table__s:nth-child(5){right:24%;bottom:-8px}
.table__s:nth-child(6){left:24%;bottom:-8px}
.table__pot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:800 14px/1 var(--disp);color:rgba(255,255,255,.7);letter-spacing:.06em}
.spot__q{margin:18px 0 0;font-size:17px;line-height:1.5}
.spot__act{display:flex;gap:10px;margin-top:18px}
.spot__act .btn{flex:1}
.spot__act .btn.is-right{background:linear-gradient(135deg,#2e8a55,#4ec27d);color:#fff}
.spot__act .btn.is-wrong{background:var(--s1);color:var(--t4)}
.spot__why{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.spot__why b{display:block;font-size:16px}
.spot__why p{margin:8px 0 14px;color:var(--t2);line-height:1.55}
.spot--end .h2{margin-top:8px;font-size:40px}
.spot--end .h2 span{color:var(--red2)}

/* ── Карта ─────────────────────────────────────────────────────────────── */
.mapbox{position:relative;aspect-ratio:16/9;max-height:640px;border-radius:22px;overflow:hidden;background:#0b0c11;box-shadow:var(--shine),var(--shadow)}
.mapbox--compact{aspect-ratio:21/9;max-height:460px}
/* Обложка до загрузки: план города — сетка, свечение и точки по координатам */
.mapbox__cover{position:absolute;inset:0}
.mapbox__grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask:radial-gradient(75% 75% at 50% 50%,#000,transparent);mask:radial-gradient(75% 75% at 50% 50%,#000,transparent)}
.mapbox__glow{position:absolute;inset:0;background:radial-gradient(40% 50% at 50% 50%,rgba(198,31,50,.16),transparent 70%)}
.mapbox__pin{position:absolute;left:var(--x);top:var(--y);width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--metal);box-shadow:0 0 0 0 rgba(199,206,218,.5);animation:pulse 2.6s ease-out infinite;animation-delay:var(--d)}
.mapbox__pin.is-exact{background:var(--red2);box-shadow:0 0 0 0 rgba(214,40,57,.6)}
.mapbox__cta{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(180deg,rgba(11,12,17,.15),rgba(11,12,17,.55))}
.mapbox__note{margin:0;font-size:13px;color:var(--t2);text-align:center;padding:0 20px;text-shadow:0 1px 8px #000}

/* Leaflet в нашем стиле: тайлы OSM затемняем фильтром, всё остальное — своё */
.lmap{position:absolute;inset:0;background:#0b0c11}
.lmap .leaflet-tile-pane{filter:invert(1) hue-rotate(200deg) brightness(.62) contrast(1.15) saturate(.18)}
.lmap .leaflet-tile-pane::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(70% 70% at 50% 50%,transparent 55%,rgba(5,6,8,.55))}
.lmap .leaflet-control-attribution{background:rgba(6,7,10,.7);color:var(--t4);font:11px var(--ui);padding:3px 8px;border-radius:8px 0 0 0}
.lmap .leaflet-control-attribution a{color:var(--t3)}
.lmap .leaflet-bar{border:0;box-shadow:var(--shine),0 10px 24px rgba(0,0,0,.5);border-radius:12px;overflow:hidden}
.lmap .leaflet-bar a{width:40px;height:40px;line-height:40px;background:var(--plate);color:#fff;border-bottom:1px solid var(--line);font:400 20px/40px var(--ui)}
.lmap .leaflet-bar a:hover{background:var(--plate-hi)}
.lmap__me{width:40px;height:40px;margin-bottom:8px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--red3),var(--red2));color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 10px 24px rgba(179,20,42,.35)}
.lmap__me.is-busy{opacity:.6}
/* Ветка 2ГИС: кнопки и карточка клуба рисуются нами поверх канвы —
   классы контролов MapGL собраны сборщиком и от версии к версии меняются. */
.lmap__ui{position:absolute;right:12px;bottom:28px;z-index:2;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.lmap__zoom{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;box-shadow:var(--shine),0 10px 24px rgba(0,0,0,.5)}
.lmap__z{width:40px;height:40px;border:0;border-bottom:1px solid var(--line);background:var(--plate);color:#fff;font:400 20px/40px var(--ui);cursor:pointer}
.lmap__z:last-child{border-bottom:0}
.lmap__z:hover{background:var(--plate-hi)}
.lmap__ui .lmap__me{margin-bottom:0}
.lpop-gl{width:280px;transform:translateY(calc(-100% - 54px))}
.lpop-box{position:relative;border-radius:16px;background:var(--plate);color:var(--t1);box-shadow:var(--shine),0 24px 50px rgba(0,0,0,.65);font:14px/1.45 var(--ui)}
.lpop-box::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;margin-left:-7px;background:#1a1c23;transform:rotate(45deg);border-radius:0 0 3px 0}
.lpop-box__x{position:absolute;top:8px;right:8px;z-index:1;width:28px;height:28px;border:0;border-radius:8px;background:rgba(0,0,0,.45);color:#fff;font:18px/28px var(--ui);cursor:pointer}
/* Метка: логотип клуба в кольце, у наших клубов кольцо красное и пульс */
.pin{background:none;border:0}
/* Коробка метки нужна ТОЛЬКО ветке 2ГИС: MapGL не задаёт размер обёртки,
   а .pin__body позиционируется абсолютно и без него схлопнется. Правило
   обязано быть привязано к .lmap--gl: у Leaflet метка позиционируется
   классом .leaflet-marker-icon{position:absolute}, и общий `.lmap .pin`
   его перебивал по весу — метки отрывались от слоя и уезжали с мест. */
.lmap--gl .pin{position:relative;width:44px;height:52px}
.pin__body{position:absolute;left:2px;top:2px;width:40px;height:40px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);overflow:hidden;background:var(--plate);box-shadow:0 0 0 3px #0b0c11,0 0 0 5px var(--metal),0 12px 22px rgba(0,0,0,.6);animation:pindrop .5s var(--ease) backwards;animation-delay:var(--d)}
.pin__body img,.pin__body i{transform:rotate(45deg);width:100%;height:100%;object-fit:cover;display:grid;place-items:center;font:800 16px var(--disp);color:#fff;font-style:normal}
.pin--exact .pin__body{box-shadow:0 0 0 3px #0b0c11,0 0 0 5px var(--red2),0 12px 22px rgba(0,0,0,.6)}
.pin__ring{display:none}
.pin--exact .pin__ring{display:block;position:absolute;left:22px;top:22px;width:0;height:0;border-radius:50%;box-shadow:0 0 0 0 rgba(214,40,57,.55);animation:pulse 2.4s ease-out infinite}
@keyframes pindrop{from{opacity:0;transform:rotate(-45deg) translateY(-30px)}}
.leaflet-marker-icon.pin:hover .pin__body{box-shadow:0 0 0 3px #0b0c11,0 0 0 5px #fff,0 14px 26px rgba(0,0,0,.7)}
/* Карточка клуба на карте */
.lpop-wrap .leaflet-popup-content-wrapper{padding:0;border-radius:16px;background:var(--plate);color:var(--t1);box-shadow:var(--shine),0 24px 50px rgba(0,0,0,.65)}
.lpop-wrap .leaflet-popup-content{margin:0;width:280px!important;font:14px/1.45 var(--ui)}
.lpop-wrap .leaflet-popup-tip{background:#1a1c23}
.lpop-wrap .leaflet-popup-close-button{color:#fff;top:8px;right:8px;width:28px;height:28px;border-radius:8px;background:rgba(0,0,0,.45);font-size:18px;line-height:28px}
.lpop{display:block;color:var(--t1)}
.lpop__photo{display:block;aspect-ratio:16/9;overflow:hidden;border-radius:16px 16px 0 0}
.lpop__photo img{width:100%;height:100%;object-fit:cover}
.lpop__b{display:block;padding:14px 16px 8px}
.lpop__b b{display:block;font-size:16px;font-weight:800;line-height:1.2}
.lpop__b span{display:block;color:var(--t2);font-size:13px;margin-top:4px}
.lpop__b em{display:block;color:var(--t3);font-size:12.5px;margin-top:6px;font-style:normal}
.lpop__b i{display:block;color:var(--red2);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-top:8px;font-style:normal}
.lpop__go{display:block;padding:10px 16px 14px;color:var(--metal);font-weight:700;font-size:14px}
.lpop:hover .lpop__go{color:#fff}

/* ── Предложения, форма ────────────────────────────────────────────────── */
.offer{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.offer__i{padding:24px;border-radius:18px;background:var(--plate);box-shadow:var(--shine),var(--shadow);display:flex;flex-direction:column;gap:12px}
.offer__i p{margin:0;color:var(--t2);line-height:1.55;flex:1}
.offer__i--main{background:radial-gradient(80% 100% at 100% 0%,rgba(198,31,50,.26),transparent 60%),var(--plate)}
.form{max-width:760px}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field--wide{grid-column:1/-1}
.field span{font-size:13px;color:var(--t2);font-weight:600}
.field input,.field textarea{min-height:46px;padding:10px 14px;border-radius:11px;border:0;background:var(--s1);color:#fff;font:inherit;box-shadow:var(--shine),inset 0 0 0 1px var(--line)}
.field textarea{resize:vertical}
.field input:focus,.field textarea:focus{outline:none;box-shadow:var(--shine),inset 0 0 0 1px var(--line2)}
.check{display:flex;gap:12px;align-items:flex-start;margin-top:16px;font-size:14.5px;color:var(--t2);cursor:pointer}
.check input{width:18px;height:18px;margin:2px 0 0;flex:none;accent-color:var(--red)}
.check a{color:var(--metal)}
.form__hp{position:absolute;left:-9999px}
.form__err{padding:12px 16px;border-radius:11px;background:rgba(198,31,50,.14);color:#fff;font-size:14.5px}
.ok{padding:24px;border-radius:16px;background:var(--plate);box-shadow:var(--shine)}
.ok b{font-size:18px}
.ok p{margin:8px 0 16px;color:var(--t2)}

/* ── FAQ ───────────────────────────────────────────────────────────────── */
.faq{max-width:80ch;margin-top:16px;border-top:1px solid var(--line)}
.faq__i{border-bottom:1px solid var(--line)}
.faq__i summary{display:flex;align-items:center;gap:14px;padding:16px 0;cursor:pointer;font-size:16.5px;font-weight:700;list-style:none}
.faq__i summary::-webkit-details-marker{display:none}
.faq__chev{margin-left:auto;color:var(--t3);transition:transform .22s var(--ease)}
.faq__i[open] .faq__chev{transform:rotate(180deg)}
.faq__i p{margin:0 0 18px;color:var(--t2);line-height:1.6;max-width:70ch}

/* ── Подвал ────────────────────────────────────────────────────────────── */
.foot{position:relative;z-index:1;margin-top:40px;padding:44px 0 32px;border-top:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}
.foot__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px}
.foot__brand b{font:800 15px/1 var(--disp);letter-spacing:.04em}
.foot__brand p{margin:12px 0 0;font-size:13.5px;color:var(--t3);line-height:1.55;max-width:34ch}
.foot__col{display:flex;flex-direction:column;gap:9px}
.foot__col b{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--t3);margin-bottom:4px}
.foot__col a{font-size:14.5px;color:var(--t2)}
.foot__col a:hover{color:#fff}
.foot__nums{display:flex;flex-wrap:wrap;gap:22px;margin:32px 0 0;padding-top:22px;border-top:1px solid var(--line);font-size:13.5px;color:var(--t3)}
.foot__nums b{display:inline-block;font:800 15px var(--disp);color:var(--metal);margin-right:6px;font-variant-numeric:tabular-nums}
.foot__legal{margin:18px 0 0;font-size:12.5px;color:var(--t4);line-height:1.6;max-width:96ch}
.foot__legal a{color:var(--t3)}

/* ── Телефон ───────────────────────────────────────────────────────────── */
@media (max-width:1120px){
  .hero__grid{grid-template-columns:minmax(0,1fr)}
  .scene{display:none}
  .foot__grid{grid-template-columns:1fr 1fr}
  .offer{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;gap:18px 0}
}
@media (max-width:1120px){
  :root{--gut:16px}
  body.rpc{padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  .top__in{height:58px;gap:10px}
  .brand__t span{display:none}
  .top__add{display:none}
  .citypick{margin-left:auto}
  .citypick__pop{left:auto;right:0}
  /* Разделы — нижней панелью, как в приложении */
  .nav{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));gap:0;
    background:rgba(9,10,14,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .nav a{flex:1;flex-direction:column;gap:3px;padding:6px 2px;font-size:10.5px;min-height:48px;justify-content:center;border-radius:10px}
  .nav .ri{font-size:20px}
  .nav a[aria-current]{background:none}
  .hero{padding:24px 0 18px}
  .h1{font-size:clamp(28px,8vw,40px)}
  .hero .stats{margin-top:22px}
  .stats{grid-template-columns:1fr 1fr}
  .stat{padding:14px 12px 14px 0;margin-right:12px}
  .stat:nth-child(2n){border-right:0;margin-right:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .scene{display:none}
  .quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:18px calc(var(--gut)*-1) 0;padding:0 var(--gut) 4px}
  .quick::-webkit-scrollbar{display:none}
  .quick__i{flex:none}
  .sec{padding:30px 0}
  .ev{grid-template-columns:64px minmax(0,1fr);gap:8px 12px;padding:14px 10px 14px 14px}
  .ev__t{font-size:18px}
  .ev__logo{display:none}
  .ev__fee{grid-column:2;text-align:left;display:flex;gap:10px;align-items:baseline;margin-top:2px}
  .ev__fee i{margin:0}
  .sched{grid-template-columns:1fr;gap:14px}
  .sched__open{display:inline-flex;align-self:flex-start}
  .sched__open i{font-style:normal;min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;line-height:18px;text-align:center;padding:0 5px}
  .sched__open i:empty{display:none}
  .sched__side{position:fixed;inset:0;z-index:60;display:none;background:rgba(0,0,0,.55);padding-top:8vh}
  .sched__side.is-open{display:block}
  .facets{position:absolute;left:0;right:0;bottom:0;max-height:92vh;overflow:auto;padding:14px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;background:#111318;box-shadow:0 -20px 50px rgba(0,0,0,.6);animation:sheet .3s var(--ease) backwards}
  @keyframes sheet{from{transform:translateY(30px);opacity:0}}
  .facets__close{display:block;margin-left:8px}
  .facets__foot [data-facets-close]{display:inline-flex}
  body.has-sheet{overflow:hidden}
  .cards{grid-template-columns:1fr}
  .crow{grid-template-columns:44px minmax(0,1fr) auto}
  .crow__r{display:none}
  .chero--photo{padding-top:80px}
  .chero__row{grid-template-columns:auto minmax(0,1fr);gap:14px}
  .chero__act{grid-column:1/-1;flex-direction:row;flex-wrap:wrap}
  .chero__act .btn{flex:1}
  .clubbox,.clubbox--photo{grid-template-columns:1fr;gap:16px;padding:18px}
  .clubbox__photo{max-width:100%;aspect-ratio:16/9}
  .clubbox__act{min-width:0}
  .rating-cta{grid-template-columns:1fr;padding:24px 20px}
  .steps{grid-template-columns:1fr;gap:0;padding-left:20px}
  .steps::before{left:0;right:auto;top:0;bottom:0;width:1px;height:auto}
  .steps li{padding:0 0 22px 18px}
  .steps li::before{left:-25px;top:6px}
  .lb__i{grid-template-columns:40px minmax(0,1fr) auto;gap:10px}
  .lb__g{display:none}
  .form__grid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr}
  .spot__act{flex-direction:column}
  .table{height:150px}
  .table__s{width:36px;height:36px;font-size:10px}
  .hours__bars{height:90px}
  .mapbox,.mapbox--compact{aspect-ratio:4/3;max-height:none}
  .pin__body{width:34px;height:34px;left:5px;top:5px}
  .pin--exact .pin__ring{left:22px;top:20px}
  .hero--page .h1{font-size:clamp(26px,7vw,36px)}
}
@media (max-width:520px){
  /* «Определить мой город и ближайший клуб» одной строкой шире экрана —
     на телефоне пускаем её в две строки. */
  .near__btn{white-space:normal;text-align:left;line-height:1.25;padding-block:10px;height:auto}
}
@media (max-width:420px){
  .stats{grid-template-columns:1fr 1fr}
  .stat b{font-size:26px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .live::before,.mapbox__pin,.pin__ring,.pin__body{animation:none}
  .scene__felt,.chip,.scene__card,.scene__dealer,.citypick__pop,.spot.is-on,.facets{animation:none}
  .will-reveal{opacity:1;transform:none;transition:none}
  .hours__b{transform:none;transition:none}
  .ccard__media img,.gallery__i img,.sec__more .ri,.crow__arrow,.dlist__i .ri{transition:none}
}

/* ── «Рядом со мной» ───────────────────────────────────────────────────── */
.near{margin-top:18px}
.near__btn{gap:10px}
.near__btn.is-done{background:var(--plate);color:var(--t1);box-shadow:var(--shine)}
.near__hint{margin:8px 0 0;font-size:12.5px;color:var(--t4);max-width:52ch}
.near__out{margin-top:14px}
.near__title{margin:0 0 10px;font-size:15px;color:var(--t2)}
.near__title a{color:var(--metal);font-weight:700}
.near__list{display:grid;gap:8px}
.near__i{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 14px 8px 8px;border-radius:14px;background:var(--plate);box-shadow:var(--shine);position:relative;transition:background .18s ease}
.near__i:hover{background:var(--plate-hi)}
.near__i--exact::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--red2)}
.near__i img,.near__ph{width:56px;height:56px;border-radius:10px;object-fit:cover;background:radial-gradient(circle at 50% 30%,#3b0b14,#15171d)}
.near__b b{display:block;font-size:15.5px;font-weight:700}
.near__b span{display:block;font-size:13px;color:var(--t3);margin-top:3px}
.near__i em{font:800 15px var(--disp);color:var(--metal);white-space:nowrap}
.sec__head--sub{margin-top:24px}
.sec__head--sub .h3{margin:0}

/* ── Партнёры и проверенные клубы ──────────────────────────────────────── */
.vmark{display:inline-grid;place-items:center;width:16px;height:16px;margin-right:6px;border-radius:50%;background:linear-gradient(135deg,var(--red3),var(--red2));color:#fff;font-size:11px;vertical-align:-2px}
.vmark .ri{width:10px;height:10px}
.ev--partner{background:linear-gradient(90deg,rgba(198,31,50,.10),transparent 42%)}
.ev--partner:hover{background:linear-gradient(90deg,rgba(198,31,50,.14),rgba(255,255,255,.028) 42%)}
.ev--partner::before{opacity:1}
.ev__partner{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--red2);margin-bottom:3px}
.ccard--partner{background:radial-gradient(80% 100% at 100% 0%,rgba(198,31,50,.18),transparent 60%),var(--plate)}
.ccard--partner .ccard__promo{color:var(--red2)}
.ccard--partner .ccard__mark{background:linear-gradient(135deg,var(--red3),var(--red2))}
.crow--partner{background:linear-gradient(90deg,rgba(198,31,50,.10),transparent 50%)}
.crow__partner{display:inline-block;margin-left:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:var(--red2)}
.sec--partners{padding-top:34px}
.note--wide{max-width:80ch;margin:0 0 18px}
.cards--partners .ccard__media{aspect-ratio:16/9}

/* ── Партнёр — компактная плита: слева зал/сукно, справа суть ─────────────
   Задача блока — «куда пойти», а не витрина: три партнёра в ряд на мониторе,
   два на планшете, на телефоне лента со снапом, чтобы не съедать экран. */
.passes{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.pass{display:grid;grid-template-columns:104px minmax(0,1fr);min-width:0;border-radius:18px;overflow:hidden;background:var(--plate);box-shadow:var(--shine),var(--shadow);position:relative;animation:pop .5s var(--ease) backwards;animation-delay:calc(var(--i,0)*.08s)}
.pass__media{position:relative;display:block;min-height:100%;background:#0d0f13;overflow:hidden}
.pass__media>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .9s var(--ease)}
.pass:hover .pass__media>img{transform:scale(1.04)}
.pass__media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(21,23,29,.85))}
.pass__felt{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(90% 80% at 50% 45%,color-mix(in srgb,var(--acc,#c61f32) 40%,#000),#0b0c10 100%)}
.pass__felt img{width:62%;max-width:72px;height:auto;filter:drop-shadow(0 10px 16px rgba(0,0,0,.6));opacity:.95}
.pass__felt i{font:800 30px/1 var(--disp);color:rgba(255,255,255,.9);font-style:normal;letter-spacing:-.04em}
.pass__body{display:flex;flex-direction:column;gap:5px;min-width:0;padding:14px 16px 14px 14px}
.pass__kick{display:inline-flex;align-items:center;gap:5px;font-size:11px}
.pass__kick .ri{font-size:13px}
.pass__name{margin:0;font:800 19px/1.15 var(--disp);letter-spacing:-.015em;overflow-wrap:anywhere}
.pass__name a:hover{color:#fff}
.pass__where{margin:0;font-size:13px;line-height:1.35;color:var(--t2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pass__where em{position:relative;padding-left:11px;color:var(--t1);font-style:normal}
.pass__where em::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--line,var(--metal))}
.pass__line{margin:4px 0 0;font-size:13px;line-height:1.35;color:var(--t2);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pass__line b{font:800 20px/1 var(--disp);letter-spacing:-.03em;margin-right:6px;vertical-align:-1px;background:linear-gradient(180deg,#fff 20%,#c7ceda 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.pass__line b .ri{-webkit-text-fill-color:#fff;font-size:18px}
.pass__line strong{color:var(--t1);font-weight:700}
.pass__line i{font-style:normal;color:var(--t3)}
.pass__line i::before{content:"·";margin:0 5px;color:var(--t4)}
.pass__act{display:flex;gap:8px;margin-top:auto;padding-top:8px;flex-wrap:wrap}
.pass__act .btn{flex:1 1 auto;min-height:36px;padding:0 12px;font-size:13px;white-space:nowrap}
@media (max-width:1200px){.pass{grid-template-columns:92px minmax(0,1fr)}.pass__act .btn{padding:0 10px}.pass__act .btn--ghost .ri{display:none}}
@media (max-width:600px){
  .passes{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 calc(var(--gut)*-1);padding:2px var(--gut) 8px;-webkit-overflow-scrolling:touch}
  .passes::-webkit-scrollbar{display:none}
  .pass{flex:none;width:min(360px,88vw);scroll-snap-align:start}
  .pass{grid-template-columns:84px minmax(0,1fr)}
  .pass__felt img{max-width:56px}
  .pass__body{padding:12px 14px 12px 12px}
  .pass__act .btn--ghost .ri{display:none}
}
@media (prefers-reduced-motion:reduce){.pass{animation:none}.pass__media>img{transition:none}}
@media (max-width:860px){.near__btn{width:100%}}
