:root{
  --bg:#272d47;
  --text:#d1d1d1;
  --muted:#6b7280;
  --border:#e5e7eb;
  --primary:#fe284a;
  --primary-ink:#ffffff;
  --info:#0ea5e9;
  --notice-bg:#eff6ff;
}

*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  -webkit-text-size-adjust:100%;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(1100px,100%);margin:0 auto;padding:16px}

.wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px}
.site-header{position:sticky;top:0;backdrop-filter:saturate(150%) blur(8px);border-bottom:1px solid var(--border);z-index:50;width: min(1100px, 100%);margin: 0 auto;}
.brand{display:inline-flex;align-items:center;gap:10px}
.top-cta{display:flex;align-items:center;gap:12px}
.bonus-badge{display:none;color:var(--muted);font-weight:600}
.top-actions{display:flex;gap:8px}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border-radius:10px;border:1px solid transparent;
  font-weight:600;text-decoration:none;transition:transform .1s ease,opacity .2s ease,border-color .2s;
  cursor:pointer;white-space:nowrap
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn.primary{background:var(--primary);color:var(--primary-ink)}
.btn.outline{border-color:var(--border);background:#fff;color:#000}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}

.site-main .section{padding:16px 16px;border-top:1px solid var(--border)}
h1,h2,h3{line-height:1.25;margin:0 0 10px}
h1{font-size:1.4rem}
h2{font-size:1.2rem;margin-top:8px}
h3{font-size:1.05rem}

.hero-figure{margin:8px 0 6px}
.hero-figure figcaption{font-size:.9rem;color:var(--muted);margin-top:6px}

.notice{padding:12px 14px;border-radius:12px;margin:12px 0}
.notice.info{background:var(--notice-bg);border:1px solid #dbeafe;color:#0f172a}

.check{padding-left:18px}
.check li{margin:6px 0}

.table-wrap{width:100%;overflow:auto;border:1px solid var(--border);border-radius:12px}
.table{border-collapse:collapse;width:100%;min-width:560px}
.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--border);text-align:left}
.table th{background:#242d54;font-weight:700}

details{border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin:10px 0;}
details[open]{background:inherit;}
details summary{cursor:pointer;font-weight:600;list-style:none}
details summary::-webkit-details-marker{display:none}

.reviews{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.review{border:1px solid var(--border);border-radius:12px;padding:12px}
.review header{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}
.review .name{font-weight:700}
.review time{color:var(--muted);font-size:.9rem}
.review .tags{color:var(--muted);font-size:.9rem;margin-top:8px}
.review .tags span{display:inline-block;background:#242d54;border-radius:999px;padding:2px 8px;margin-right:6px}

.review-form{margin-top:16px;border:1px solid var(--border);border-radius:12px;padding:12px}
.review-form .grid{display:grid;gap:10px}
.review-form label{display:grid;gap:6px}
.review-form input, .review-form textarea{
  width:100%;padding:10px;border:1px solid var(--border);border-radius:10px;background:#fff;font:inherit
}
.review-form .hp{position:absolute;left:-9999px}
.form-msg{min-height:1.2em;color:var(--muted);margin-top:8px}

.sticky-cta{position:sticky;bottom:0;backdrop-filter:saturate(150%) blur(8px);border-top:1px solid var(--border);padding:10px 12px;z-index:60}
.sticky-inner{display:flex;align-items:center;justify-content:space-evenly;gap:10px}
.sticky-text{font-weight:600}

.site-footer{margin-top:16px;border-top:1px solid var(--border);}
.site-footer .footer-nav{display:flex;flex-wrap:wrap;gap:12px;padding:12px 0}
.site-footer .footer-nav a{color:var(--muted)}
.site-footer .disclaimer{color:var(--muted);font-size:.95rem}
.site-footer .copy{color:var(--muted);font-size:.9rem}

/* Mobile-first улучшения */
@media (min-width: 640px){
  .container{padding:20px}
  h1{font-size:1.8rem}
  h2{font-size:1.35rem}
  .bonus-badge{display:inline-block}
  .review-form .grid{grid-template-columns:1fr 1fr}
}

@media (min-width: 960px){
  .wrap{padding:14px 20px}
  .site-main .section{padding:20px}
  .sticky-cta{padding:12px 16px}
}

/* Простая анимация появления (опционально через JS добавляется класс .reveal) */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.reveal.in{opacity:1;transform:none}

/* 18+ Age Gate */
.age-gate[hidden]{display:none}
.age-gate{
  position:fixed;inset:0;background:rgba(0,0,0,.6);
  display:grid;place-items:center;padding:16px;z-index:1000
}
.age-card{
  width:min(540px,100%);background:#fff;border-radius:16px;border:1px solid var(--border);
  padding:18px;box-shadow:0 10px 30px rgba(0,0,0,.12)
}
.age-card h2{margin:0 0 8px}
.age-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.age-note{color:var(--muted);font-size:.9rem;margin-top:6px}

/* Safe-area for iOS */
@supports(padding:max(0px)){
  .sticky-cta{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
}
/* ========== TOC (Оглавление) — зиг-заг таймлайн ========== */
.toc-section { padding-top: 8px; }

.toc {
  position: relative;
  padding: 10px 0 4px;
}

/* Вертикальная/центральная линия */
.toc::before{
  content:"";
  position:absolute;
  top:0; bottom:0;
  left:12px; /* мобайл: линия слева */
  width:2px;
  background: repeating-linear-gradient(
    to bottom,
    var(--border) 0 10px,
    transparent 10px 20px
  );
  pointer-events:none;
}

.toc-list{
  list-style:none;
  margin: 8px 0 0;
  padding: 0 0 0 24px; /* отступ под линию слева */
  display:grid;
  gap:12px;
}

/* Карточка пункта */
.toc-item a{
  display:grid;
  grid-template-columns: auto 1fr auto;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02);
  text-decoration:none;
  transition: transform .12s ease, box-shadow .12s ease, border-color .2s ease;
}

.toc-item a:hover{
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
  border-color:#ddd;
}
.toc-item a:focus-visible{
  outline:2px solid var(--primary);
  outline-offset:2px;
}

.toc-num{
  font-variant-numeric: tabular-nums;
  font-weight:700;
  color:var(--primary);
  min-width:2.4ch;
}
.toc-text{ font-weight:600; }
.toc-arrow{ opacity:.55; }

/* Точка у линии (мобайл) */
.toc-item{ position:relative; }
.toc-item::after{
  content:"";
  position:absolute;
  top:50%;
  left:-18px;
  transform: translateY(-50%);
  width:10px;height:10px;border-radius:50%;
  background:var(--primary);
  box-shadow:0 0 0 3px #fff;
}

/* ——— Планшет/десктоп: зиг-заг вокруг центральной линии ——— */
@media (min-width: 760px){
  .toc{
    padding: 18px 0 10px;
  }
  .toc::before{
    left:50%;
    transform:translateX(-50%);
  }
  .toc-list{
    padding:0;
    grid-template-columns: repeat(12, 1fr);
    gap:16px 14px;
  }

  /* Левые пункты */
  .toc-item:nth-child(odd){
    grid-column: 1 / span 5;
    justify-self: start;
  }
  /* Правые пункты */
  .toc-item:nth-child(even){
    grid-column: 8 / span 5;
    justify-self: end;
  }

  /* Точки возле центральной линии */
  .toc-item:nth-child(odd)::after{
    left: auto;
    right: -14px; /* точка справа от карточки, ближе к центру */
  }
  .toc-item:nth-child(even)::after{
    left: -14px; /* точка слева от карточки, ближе к центру */
  }
}

/* Анкор-смещение: чтобы заголовки не прятались под шапкой */
.section { scroll-margin-top: 72px; }

