:root{
  --bg:#0B0D16;
  --bg-deep:#070911;
  --surface:#141726;
  --surface-2:#1B1F30;
  --line:#262B40;
  --pink:#FF2D8E;
  --pink-light:#FF5FA2;
  --pink-deep:#D81B77;
  --cyan:#3FE0F0;
  --cyan-deep:#22B8D6;
  --violet:#7B5CFF;
  --text:#FFFFFF;
  --muted:#9AA0B5;
  --muted-2:#6B7189;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Exo 2",system-ui,"Segoe UI",sans-serif;
  font-size:17px;
  line-height:1.72;
  -webkit-text-size-adjust:100%;
  overflow-x:hidden;
}

h1,h2,h3,.bem-mark,.bem-logo,.bem-kpi-val{
  font-family:"Tenor Sans",Georgia,serif;
  font-weight:400;
  letter-spacing:.2px;
}

a{color:var(--cyan);text-decoration:none}
a:hover{color:var(--cyan-deep)}
p{margin:0 0 14px}
img{max-width:100%;height:auto;display:block}

/* ---------- beam: несущая геометрия ---------- */

.bem-shell{max-width:1140px;margin:0 auto;padding:0 22px}

.bem-beam{
  height:14px;
  margin:0;
  background:
    repeating-linear-gradient(135deg,rgba(63,224,240,.16) 0 9px,transparent 9px 18px),
    linear-gradient(180deg,var(--surface-2) 0%,var(--bg-deep) 100%);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.bem-beam-accent{
  height:6px;
  background:linear-gradient(90deg,var(--cyan),var(--pink));
  border:0;
  opacity:.9;
}

/* несущая секция: вертикальные опоры по краям */
.bem-span{
  position:relative;
  padding:34px 0 30px;
  border-bottom:1px solid var(--line);
}
.bem-span::before,
.bem-span::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  width:3px;
  background:linear-gradient(180deg,rgba(63,224,240,.55),rgba(255,45,142,.15));
}
.bem-span::before{left:0}
.bem-span::after{right:0}
.bem-span > .bem-shell{padding:0 34px}

.bem-span h2{
  font-size:29px;
  line-height:1.26;
  margin:0 0 6px;
  padding-left:16px;
  border-left:6px solid var(--pink);
}
.bem-span h3{
  font-size:21px;
  margin:26px 0 8px;
  color:var(--cyan);
  padding-bottom:6px;
  border-bottom:1px dashed var(--line);
}
.bem-rider{
  display:inline-block;
  margin:0 0 16px 16px;
  font-size:13px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--muted-2);
}

/* ---------- шапка: лого слева, кнопки столбиком справа в две строки ---------- */

.bem-head{
  position:sticky;
  top:0;
  z-index:40;
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.bem-head-in{
  max-width:1140px;
  margin:0 auto;
  padding:10px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.bem-logo{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:25px;
  letter-spacing:1px;
  color:var(--text);
}
.bem-logo:hover{color:var(--text)}
.bem-logo-word{
  background:linear-gradient(90deg,#3FE0F0,#FF2D8E);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.bem-logo-sub{
  display:block;
  font-family:"Exo 2",sans-serif;
  font-size:11px;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--muted-2);
}
.bem-head-stack{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:7px;
  min-width:186px;
}

.bem-btn{
  display:block;
  text-align:center;
  padding:9px 20px;
  border-radius:8px;
  font-family:"Exo 2",sans-serif;
  font-size:15px;
  font-weight:600;
  letter-spacing:.3px;
  color:#fff;
}
.bem-btn:hover{color:#fff}
.bem-btn-main{
  background:linear-gradient(180deg,#FF5FA2 0%,#FF2D8E 100%);
  box-shadow:0 4px 14px rgba(216,27,119,.34);
}
.bem-btn-sec{
  background:var(--surface-2);
  border:1px solid var(--line);
}
.bem-btn-wide{
  display:inline-block;
  padding:15px 40px;
  font-size:18px;
}

/* ---------- hero ---------- */

.bem-hero{
  background:
    radial-gradient(900px 340px at 18% -10%,rgba(123,92,255,.20),transparent 62%),
    linear-gradient(180deg,var(--bg-deep),var(--bg));
  padding:40px 0 34px;
  border-bottom:1px solid var(--line);
}
.bem-hero h1{
  font-size:39px;
  line-height:1.2;
  margin:0 0 14px;
  max-width:24ch;
}
.bem-hero-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:30px;
  align-items:start;
}
.bem-lead{font-size:18px;color:#E4E7F2}
.bem-hero-frame{
  border:1px solid var(--line);
  border-top:5px solid var(--pink);
  border-bottom:5px solid var(--cyan);
  background:var(--surface);
  padding:9px;
}
.bem-hero-frame figcaption{
  margin-top:9px;
  font-size:13px;
  color:var(--muted);
}

.bem-kpi{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:10px;
  margin:24px 0 22px;
}
.bem-kpi-cell{
  background:var(--surface);
  border:1px solid var(--line);
  border-left:4px solid var(--cyan);
  padding:13px 14px;
}
.bem-kpi-cell:nth-child(2n){border-left-color:var(--pink)}
.bem-kpi-val{display:block;font-size:24px;line-height:1.2;color:var(--text)}
.bem-kpi-key{
  display:block;
  margin-top:4px;
  font-size:12px;
  letter-spacing:1.3px;
  text-transform:uppercase;
  color:var(--muted-2);
}

/* ---------- карточки и панели ---------- */

.bem-cols{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(252px,1fr));
  gap:16px;
  margin:18px 0;
}
.bem-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-top:4px solid var(--line);
  padding:16px 17px;
}
.bem-card:nth-child(3n+1){border-top-color:var(--cyan)}
.bem-card:nth-child(3n+2){border-top-color:var(--pink)}
.bem-card:nth-child(3n+3){border-top-color:var(--violet)}
.bem-card h3{margin-top:0;border-bottom:0;padding-bottom:0}
.bem-card p:last-child{margin-bottom:0}

.bem-note{
  background:var(--surface-2);
  border-left:5px solid var(--violet);
  padding:15px 18px;
  margin:20px 0;
  color:#DDE1EE;
}
.bem-mark{color:var(--cyan)}
.bem-hot{color:var(--pink-light)}
.bem-em{font-style:normal;color:#fff;border-bottom:1px solid var(--pink-deep)}

.bem-list{margin:0 0 16px;padding-left:20px}
.bem-list li{margin-bottom:7px}
.bem-list li::marker{color:var(--pink)}

/* ---------- таблицы ---------- */

.bem-tw{overflow-x:auto;margin:18px 0;border:1px solid var(--line)}
table{border-collapse:collapse;width:100%;min-width:560px;font-size:15px}
caption{
  text-align:left;
  padding:11px 14px;
  background:var(--surface-2);
  color:var(--muted);
  font-size:14px;
  letter-spacing:.6px;
}
th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line)}
thead th{
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  color:var(--cyan);
  font-weight:600;
  white-space:nowrap;
}
tbody tr:nth-child(2n){background:rgba(27,31,48,.55)}
tfoot td{background:var(--surface-2);color:var(--text)}

/* ---------- галерея: ряды по 3 между балками ---------- */

.bem-rack{margin:22px 0}
.bem-row3{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  padding:16px 0;
}
.bem-tile{
  background:var(--surface);
  border:1px solid var(--line);
  padding:8px;
  position:relative;
}
.bem-tile::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:0;
  height:3px;
  background:linear-gradient(90deg,var(--cyan),var(--pink));
  opacity:.65;
}
.bem-tile img{width:100%;aspect-ratio:8/5;object-fit:cover}
.bem-tile figcaption{
  padding:9px 4px 8px;
  font-size:13px;
  line-height:1.5;
  color:var(--muted);
}
.bem-tile-sq img{aspect-ratio:1/1}

.bem-wide{
  border:1px solid var(--line);
  border-left:6px solid var(--pink);
  background:var(--surface);
  padding:10px;
  margin:20px 0;
}
.bem-wide figcaption{margin-top:9px;font-size:13px;color:var(--muted)}

/* ---------- клуб ---------- */

.bem-tiers{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
  margin:18px 0;
  align-items:end;
}
.bem-tier{
  background:var(--surface);
  border:1px solid var(--line);
  border-bottom:5px solid var(--cyan-deep);
  padding:13px 12px;
}
.bem-tier:nth-child(4){border-bottom-color:var(--violet)}
.bem-tier:nth-child(5){border-bottom-color:var(--pink)}
.bem-tier-name{display:block;font-size:18px;font-family:"Tenor Sans",serif}
.bem-tier-num{display:block;margin-top:5px;font-size:13px;color:var(--muted)}

/* ---------- отзыв ---------- */

.bem-voice{
  background:var(--surface-2);
  border:1px solid var(--line);
  border-top:4px solid var(--cyan);
  padding:18px 20px;
  margin:22px 0;
}
.bem-voice-sign{font-size:13px;color:var(--muted-2)}

/* ---------- FAQ ---------- */

.bem-faq details{
  background:var(--surface);
  border:1px solid var(--line);
  border-left:4px solid var(--pink-deep);
  margin-bottom:9px;
  padding:0 16px;
}
.bem-faq summary{
  cursor:pointer;
  padding:13px 0;
  font-size:17px;
  color:#fff;
  list-style:none;
}
.bem-faq summary::-webkit-details-marker{display:none}
.bem-faq summary::before{content:"— ";color:var(--cyan)}
.bem-faq details[open] summary{color:var(--cyan)}
.bem-faq details p{margin:0 0 14px;color:#D9DDEB}

/* ---------- CTA ---------- */

.bem-cta{
  text-align:center;
  padding:30px 20px;
  background:
    linear-gradient(180deg,var(--surface),var(--bg-deep));
  border:1px solid var(--line);
  border-top:5px solid var(--pink);
  margin:26px 0;
}
.bem-cta p{color:var(--muted);max-width:62ch;margin:0 auto 18px}

/* ---------- подвал ---------- */

.bem-foot{
  background:var(--bg-deep);
  border-top:1px solid var(--line);
  padding:28px 0 36px;
  color:var(--muted);
  font-size:14px;
}
.bem-foot-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:18px;
}
.bem-foot-h{
  font-size:15px;
  font-family:"Tenor Sans",Georgia,serif;
  color:var(--muted);
  margin:0 0 8px;
  letter-spacing:1.4px;
  text-transform:uppercase;
}
.bem-age{
  margin-top:20px;
  padding-top:14px;
  border-top:1px solid var(--line);
  color:var(--muted-2);
  font-size:13px;
}

/* ---------- мобильная раскладка ---------- */

@media (max-width:980px){
  .bem-hero-grid{grid-template-columns:1fr}
  .bem-kpi{grid-template-columns:repeat(3,1fr)}
  .bem-tiers{grid-template-columns:repeat(3,1fr)}
}

@media (max-width:640px){
  body{font-size:16px}
  .bem-shell{padding:0 14px}
  .bem-span > .bem-shell{padding:0 18px}
  .bem-head-in{padding:8px 14px;gap:10px}
  .bem-logo{font-size:19px;gap:8px}
  .bem-logo-sub{font-size:9px;letter-spacing:1.6px}
  .bem-head-stack{min-width:0;width:auto;gap:5px}
  .bem-btn{padding:7px 13px;font-size:13px}
  .bem-hero h1{font-size:27px}
  .bem-lead{font-size:16px}
  .bem-span h2{font-size:23px;padding-left:11px;border-left-width:4px}
  .bem-span h3{font-size:19px}
  .bem-kpi{grid-template-columns:repeat(2,1fr)}
  .bem-kpi-val{font-size:20px}
  .bem-row3{grid-template-columns:repeat(2,1fr);gap:10px}
  .bem-tiers{grid-template-columns:repeat(2,1fr)}
  .bem-btn-wide{padding:13px 24px;font-size:16px;width:100%}
  table{font-size:14px;min-width:480px}
  th,td{padding:8px 10px}
}

@media (max-width:380px){
  .bem-row3{grid-template-columns:1fr}
  .bem-btn{font-size:12px;padding:6px 10px}
}
