/* ===========================================================================
   casinossindni-es.com — main.css
   Схема: тёмный верх (топбар, шапка, герой, витрина) + светлое тело статьи.
   Зашитые требования, не ломать:
   · шапка на десктопе СТРОГО в одну строку (flex-wrap:nowrap, меню min-width:0)
   · на мобиле: строка 1 — лого + бургер, строка 2 — две широкие кнопки
   · брейкпоинт меню 900px
   · нет горизонтального скролла на 320 / 360 / 390 px
   · широкие таблицы скроллятся внутри .table-wrap
   · у всех grid/flex-детей min-width:0
   · картинок во внешних доменах нет, иконки — inline SVG sprite
   ======================================================================== */

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

:root{
  --dark:#0a1020; --dark2:#111c36; --dline:#26365e;
  --bg:#f6f8fc; --panel:#fff; --panel2:#eef2f9; --line:#dde4f0;
  /* --dim2 затемнён: прежний #7d8aa8 давал контраст 3.25 на светлом фоне при норме 4.5 */
  --txt:#0d1526; --dim:#4a5878; --dim2:#5f6d8a;
  --acc:#00c98d; --acc2:#00a273; --accd:#007a56;
  --gold:#ffc247; --gold2:#e0980d; --red:#ff5470; --blue:#4d7cff;
  /* --content = ширина контейнера: текст, таблицы, герой, витрина и подводки
     идут ОДНОЙ шириной по всему сайту. Ничего не сужаем локально. */
  --r:12px; --r-lg:18px; --s:16px; --content:1200px;
  --sans:"Segoe UI Variable Display","Segoe UI",Roboto,-apple-system,Helvetica,Arial,sans-serif;
  --sh:0 4px 16px rgba(13,21,38,.07); --sh-lg:0 22px 60px rgba(8,15,31,.16);
  --glow:0 10px 30px rgba(0,201,141,.35);
}

html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--txt);overflow-x:hidden;
  font:400 17.5px/1.72 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--accd);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--s)}
.small{font-size:14px;color:var(--dim2)}
.i{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:2.1;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em}
#sprite{display:none}

/* ══════════════════ ТЁМНЫЙ ВЕРХ ══════════════════ */
/* ⛔ БЕЗ overflow:hidden. Он резал раскрытое мобильное меню (оно position:absolute
   и выходит за нижнюю границу блока): на длинных страницах это не видно, а на
   короткой — например на 404 — нижние пункты просто исчезали.
   Фоновые градиенты живут в ::before с inset:0 и за пределы не выходят,
   так что обрезка тут не нужна вовсе. */
.dark-top{position:relative;background:var(--dark);color:#e9eefb}
.dark-top::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(880px 420px at 8% -12%,rgba(0,201,141,.22),transparent 62%),
    radial-gradient(680px 400px at 92% -6%,rgba(77,124,255,.20),transparent 60%),
    radial-gradient(900px 600px at 50% 118%,rgba(255,194,71,.10),transparent 68%)}
.dark-top>*{position:relative;z-index:1}
.dark-top a{color:#cfe0ff}

.topbar{border-bottom:1px solid rgba(255,255,255,.08);font-size:13.4px;color:#9fb0d4}
.topbar .wrap{display:flex;gap:8px 26px;flex-wrap:wrap;justify-content:center;
  align-items:center;padding-top:9px;padding-bottom:9px}
.topbar span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.topbar b{color:#fff;font-weight:600}
.topbar .i{width:15px;height:15px;color:var(--acc)}

/* ⛔ z-index обязателен. .dark-top>* даёт z-index:1 И шапке, И герою — шапка
   получает свой контекст наложения, и z-index:999 у раскрытого .nav-menu
   оказывается заперт внутри него. При равных z-index выигрывает то, что ниже
   по DOM, то есть герой: меню видно, но клики забирают H1 и лид.
   Проверять не «открылось ли меню», а elementFromPoint по центру пунктов. */
.site-header{position:relative;z-index:3;border-bottom:1px solid rgba(255,255,255,.09)}
.header-row{display:flex;align-items:center;gap:24px;min-height:72px;flex-wrap:nowrap}
.logo{flex:0 0 auto;display:inline-flex;align-items:center;gap:11px;color:#fff;
  font-size:21px;font-weight:800;letter-spacing:-.5px;white-space:nowrap;text-decoration:none}
.logo:hover{text-decoration:none}
.logo-mark{width:38px;height:38px;flex:0 0 auto;border-radius:11px;display:grid;
  place-items:center;background:linear-gradient(140deg,var(--acc),#0089c9 65%,var(--blue));
  box-shadow:0 6px 18px rgba(0,201,141,.4)}
.logo-mark svg{width:21px;height:21px;fill:none;stroke:#04231c;stroke-width:2.4;
  stroke-linecap:round;stroke-linejoin:round}
.logo em{font-style:normal;color:var(--acc)}

.nav-menu{display:flex;align-items:center;gap:19px;flex:1 1 auto;min-width:0;
  flex-wrap:nowrap;overflow:hidden;font-size:14.8px;font-weight:500}
.nav-menu>a{color:#b9c6e4;white-space:nowrap;padding:6px 0;
  position:relative;text-decoration:none}
.nav-menu>a:hover{color:#fff;text-decoration:none}
.nav-menu>a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--acc);transition:right .2s ease}
.nav-menu>a:hover::after{right:0}

.header-cta{display:flex;gap:10px;flex:0 0 auto}
.header-mobile-cta{display:none}
.burger{display:none;flex:0 0 auto;width:46px;height:42px;border-radius:11px;
  border:1px solid var(--dline);background:rgba(255,255,255,.05);cursor:pointer;padding:11px}
.burger span{display:block;height:2.4px;background:#fff;border-radius:2px;margin:3px 0}
.burger.is-open span:nth-child(2){opacity:0}

/* ── кнопки ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--sans);font-weight:750;font-size:15px;line-height:1;padding:14px 22px;
  border-radius:12px;white-space:nowrap;border:none;cursor:pointer;text-decoration:none;
  transition:transform .13s ease,box-shadow .13s ease,filter .13s ease}
.btn:hover{transform:translateY(-2px);text-decoration:none}
.btn-main{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#03231a;
  box-shadow:var(--glow)}
.btn-main:hover{filter:brightness(1.07);color:#03231a;box-shadow:0 14px 36px rgba(0,201,141,.45)}
.btn-alt{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#2c1c00;
  box-shadow:0 10px 28px rgba(224,152,13,.36)}
.btn-alt:hover{color:#2c1c00}
.btn-ghost{background:rgba(255,255,255,.07);color:#eaf0ff;border:1px solid var(--dline)}
.btn-ghost:hover{color:#fff}

/* ── герой ── */
.hero{padding:42px var(--s) 38px}   /* боковые обязательны: см. комментарий у .page */
.crumbs{font-size:13.4px;color:#8a9cc0;margin-bottom:14px}
.crumbs a{color:#a9bada}
.badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  letter-spacing:.3px;color:#031f19;background:linear-gradient(135deg,var(--acc),#37e0ad);
  padding:8px 15px;border-radius:999px;box-shadow:0 8px 22px rgba(0,201,141,.32)}
.hero h1{font-size:clamp(30px,5vw,52px);line-height:1.08;letter-spacing:-1.4px;
  margin:18px 0 14px;color:#fff;font-weight:800}
.hero .lead{font-size:19.5px;line-height:1.66;color:#bdcbe9;margin:0}
/* первый экран идёт по той же оси и той же ширине, что и тело статьи:
   раньше лид резался по 68ch и занимал половину экрана на десктопе */
.hero>*{max-width:var(--content);margin-inline:auto}
.hero .lead strong,.hero .lead b{color:#fff;font-weight:650}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(178px,1fr));gap:13px;
  margin:28px 0 6px}
.fact{position:relative;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r);padding:15px 16px 15px 19px;min-width:0}
.fact::before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:4px;
  border-radius:3px;background:var(--acc)}
.fact:nth-child(2)::before{background:var(--blue)}
.fact:nth-child(3)::before{background:var(--red)}
.fact:nth-child(4)::before{background:var(--gold)}
.fact b{display:block;font-size:26px;line-height:1.15;font-weight:800;color:#fff;
  letter-spacing:-.8px}
.fact span{display:block;font-size:13.4px;color:#93a4c6;line-height:1.45;margin-top:3px}
.byline{display:flex;align-items:center;gap:11px;margin-top:24px;padding-top:18px;
  border-top:1px solid rgba(255,255,255,.1);font-size:14px;color:#93a4c6}
.byline .av{width:34px;height:34px;flex:0 0 auto;border-radius:50%;display:grid;
  place-items:center;background:linear-gradient(140deg,var(--acc),#7ba0ff);
  color:#04231c;font-weight:800;font-size:12px}
.byline b{color:#dbe4f7;font-weight:600}

/* ══════════════════ ВИТРИНА ══════════════════ */
.offers{padding-bottom:52px}
.offers-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  flex-wrap:wrap;margin-bottom:18px}
.offers-head h2{margin:0;font-size:clamp(22px,3vw,30px);letter-spacing:-.8px;color:#fff;
  font-weight:800}
.offers-head h2::after{display:none}
.offers-head p{margin:6px 0 0;color:#a6b6d6;font-size:15px}   /* без локального сужения */
.offer-row{position:relative;display:grid;gap:18px;align-items:center;padding:18px 20px;
  grid-template-columns:44px minmax(160px,1.15fr) 74px 1.4fr auto;
  background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.03));
  border:1px solid rgba(255,255,255,.1);border-radius:var(--r-lg);margin-bottom:13px;
  transition:border-color .16s ease,transform .16s ease}
.offer-row:hover{border-color:rgba(0,201,141,.45);transform:translateY(-2px)}
.offer-row>*{min-width:0}
.offer-top{border-color:rgba(255,194,71,.55);
  background:linear-gradient(180deg,rgba(255,194,71,.14),rgba(255,255,255,.04))}
.ribbon{position:absolute;top:-11px;left:20px;font-size:11.5px;font-weight:800;
  letter-spacing:.7px;text-transform:uppercase;color:#2c1c00;
  background:linear-gradient(135deg,var(--gold),var(--gold2));padding:5px 12px;
  border-radius:999px;box-shadow:0 6px 16px rgba(224,152,13,.4)}
.offer-pos{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  font-weight:800;font-size:16px;background:rgba(255,255,255,.09);color:#cdd9f2;
  border:1px solid rgba(255,255,255,.13)}
.offer-top .offer-pos{background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:#2c1c00;border:none}
.offer-brand{display:flex;align-items:center;gap:12px;min-width:0}
/* логотипы брендов 280×140 (2:1) — плашка держит пропорцию, картинка вписывается целиком */
.offer-logo{width:88px;height:44px;flex:0 0 auto;border-radius:10px;overflow:hidden;
  display:grid;place-items:center;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1)}
.offer-logo img{width:100%;height:100%;object-fit:contain;display:block}
.offer-name{min-width:0}
.offer-name b{display:block;font-size:17.5px;color:#fff;font-weight:700;letter-spacing:-.3px}
.offer-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:4px}
.tag{font-size:11.2px;font-weight:600;padding:3px 8px;border-radius:999px;
  background:rgba(255,255,255,.09);color:#a9bada;white-space:nowrap}
.tag-ok{background:rgba(0,201,141,.16);color:#6fe9c2}
.tag-warn{background:rgba(255,84,112,.15);color:#ff9aae}
.offer-ring{position:relative;width:64px;height:64px;flex:0 0 auto}
.offer-ring svg{transform:rotate(-90deg)}
.offer-ring i{position:absolute;inset:0;display:grid;place-items:center;font-style:normal;
  font-weight:800;font-size:17px;color:#fff}
.offer-kvs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 18px}
.offer-f{min-width:0}
.offer-f span{display:block;font-size:11px;letter-spacing:.5px;text-transform:uppercase;
  color:#8092b5}
.offer-f b{font-size:14px;font-weight:600;color:#e4ebfa;line-height:1.4}
.offer-f.wide{grid-column:1/-1}
.offer-f.wide b{font-weight:500;font-size:13.4px;color:#b9c6e4}
/* бонус — главный коммерческий довод карточки, поэтому вынесен строкой и подсвечен */
.offer-bonus{grid-column:1/-1;padding:7px 12px;border-radius:8px;
  border-left:3px solid var(--gold);
  background:linear-gradient(90deg,rgba(255,194,71,.17),rgba(255,194,71,0))}
.offer-bonus span{color:#e0b45a}
.offer-bonus b{font-size:15px;font-weight:750;color:#ffd98a}
.offer-act{display:flex;flex-direction:column;gap:7px;align-items:stretch;flex:0 0 auto}
.offers-foot{margin:6px 0 0;font-size:13.4px;color:#8092b5}

@media(max-width:1040px){
  .offer-row{grid-template-columns:40px minmax(150px,1fr) 66px auto}
  .offer-row .offer-kvs{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .offer-row{grid-template-columns:38px 1fr 60px;row-gap:14px}
  .offer-row .offer-kvs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .offer-row .offer-act{grid-column:1/-1;flex-direction:row;align-items:center;gap:14px}
  .offer-row .offer-act .btn{flex:1 1 auto}
}

/* ══════════════════ СВЕТЛОЕ ТЕЛО ══════════════════ */
/* ⛔ padding пишем ЧЕТЫРЬМЯ значениями: короткая запись «34px 0 10px» обнуляет
   боковые отступы .wrap (та же специфичность, правило идёт позже) — на мобиле
   текст и картинки упирались в края экрана. */
.page{padding:34px var(--s) 10px}

/* Единая колонка контента задаётся ниже, в конце файла — см. «КОЛОНКА КОНТЕНТА».
   Правило обязано идти ПОСЛЕ .table-wrap, .toc и прочих блочных правил:
   у них свой `margin: X 0`, а при равной специфичности побеждает то, что ниже. */
.trust{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:13px;
  margin:0 0 28px}
.tcard{display:flex;gap:12px;background:var(--panel);border:1px solid var(--line);
  border-radius:var(--r);padding:15px 16px;box-shadow:var(--sh);min-width:0}
.tcard .i{width:22px;height:22px;color:var(--acc2);margin-top:2px}
.tcard b{display:block;font-size:15.4px;line-height:1.35;font-weight:700}
.tcard span{font-size:13.6px;color:var(--dim2);line-height:1.45}

.toc{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:20px 22px;margin:26px 0;box-shadow:var(--sh);counter-reset:toc}
.toc b{display:flex;align-items:center;gap:9px;font-size:12.6px;letter-spacing:1.3px;
  text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.toc ol{margin:0;padding:0;list-style:none;columns:2;column-gap:34px;font-size:15.6px}
.toc li{break-inside:avoid;margin-bottom:8px;counter-increment:toc}
.toc li::before{content:counter(toc,decimal-leading-zero);color:var(--acc2);font-weight:800;
  font-size:12.5px;margin-right:9px}
.toc a{color:var(--txt);text-decoration:none}
.toc a:hover{color:var(--acc2);text-decoration:underline}

h1{font-size:clamp(29px,4.6vw,45px);line-height:1.12;letter-spacing:-1px;margin:0 0 16px}
h2{display:flex;align-items:center;gap:13px;font-size:clamp(23px,3vw,32px);
  letter-spacing:-.9px;margin:36px 0 14px;font-weight:800;line-height:1.18;
  scroll-margin-top:84px}
/* градиент затемнён: на прежнем #00a273→#0089c9 белый текст давал контраст 3.27 при норме 4.5 */
h2 .n{width:38px;height:38px;flex:0 0 auto;border-radius:11px;display:grid;place-items:center;
  font-style:normal;font-size:15px;font-weight:800;color:#fff;
  background:linear-gradient(140deg,#00714f,#005f8f)}
h3{font-size:clamp(19px,2.2vw,22.5px);line-height:1.3;margin:24px 0 8px;font-weight:700}
p{margin:0 0 15px}
ul,ol{margin:0 0 16px;padding-left:22px}
li{margin-bottom:7px}
.lead{font-size:20px;line-height:1.62}
strong{font-weight:650}


.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);
  border-radius:var(--r);margin:18px 0;background:var(--panel);box-shadow:var(--sh)}
.table-wrap table{width:100%;border-collapse:collapse;font-size:15.2px;min-width:520px}
.table-wrap th{background:var(--dark2);color:#fff;text-align:left;padding:12px 14px;
  font-size:12.4px;letter-spacing:.6px;text-transform:uppercase;font-weight:700}
.table-wrap td{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.table-wrap tr:last-child td{border-bottom:none}
.table-wrap tr:nth-child(even) td{background:var(--panel2)}
/* картинка живёт в своих пропорциях: жёсткий aspect-ratio 16/9 с object-fit:cover
   обрезал реальные 1200×630 и 1200×675 по краям */
.content-img{display:block;width:100%;max-width:var(--content);height:auto;
  margin:1.6rem auto;border-radius:var(--r-lg)}

.faq h3{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--acc2);
  border-radius:0 var(--r) var(--r) 0;padding:13px 17px;margin:16px 0 0;font-size:18.5px;
  box-shadow:var(--sh)}
.faq p{padding:0 17px;margin-top:11px}


/* ══════════════════ ПОДВАЛ ══════════════════ */
.site-footer{background:var(--dark);color:#93a4c6;padding:34px 0 22px;margin-top:44px;
  font-size:15px}
.site-footer .logo{color:#fff;font-size:19px}
.site-footer a{color:#dfe4d6}
.site-footer .small{color:#8697b8}
.foot-cols{display:grid;grid-template-columns:1.5fr 1fr 1.2fr;gap:30px}
.foot-cols>*{min-width:0}
.foot-legal{display:flex;flex-direction:column;gap:7px;font-size:14.5px}
.foot-legal b,.foot-rg b{display:block;color:#fff;font-size:12.5px;letter-spacing:1.1px;
  text-transform:uppercase;margin-bottom:10px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);margin-top:24px;padding-top:16px;
  display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.age{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto;
  border-radius:50%;border:2px solid var(--gold);color:var(--gold);font-weight:800;
  font-size:12.5px}

/* ══════════════════ КОЛОНКА КОНТЕНТА ══════════════════
   Текст, таблицы, врезки, оглавление и картинки — ОДНОЙ ширины и по одной оси.
   ⛔ Правило стоит здесь, в самом конце статических стилей, не выше: у .table-wrap,
   .table-wrap, .toc и .trust свой `margin: X 0`, и при равной
   специфичности он обнулял `margin:auto` — таблицы уезжали влево на 134px
   относительно текста и выглядели «вылезшими» за колонку.
   При добавлении новых блоков в тело статьи проверять этим же замером:
   left и width у <p> и у .table-wrap должны совпадать. */
.page>*{max-width:var(--content);margin-inline:auto}

/* ══════════════════ ШАПКА: порог бургера ══════════════════
   .nav-menu{overflow:hidden} режет непоместившиеся пункты МОЛЧА — без
   горизонтального скролла и без переноса, то есть ни один автотест по
   scrollWidth этого не увидит. Поэтому порог бургера подобран замером:
   он должен срабатывать РАНЬШЕ, чем меню начинает обрезаться.
   Проверять после любой правки состава меню — прогоном на 901…1280. */
@media(max-width:1180px){
  .header-row{min-height:60px;gap:12px}
  .burger{display:block;margin-left:auto}
  .header-cta{display:none}
  .nav-menu{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;
    align-items:stretch;gap:0;overflow:visible;background:var(--dark2);
    border-bottom:1px solid var(--dline);box-shadow:var(--sh-lg);padding:8px 0;z-index:999}
  .nav-menu.is-open{display:flex}
  .nav-menu>a{display:block;padding:12px 20px;font-size:16px}
  .nav-menu>a::after{display:none}
  .header-mobile-cta{display:flex;gap:10px;padding-bottom:12px}
  .header-mobile-cta .btn{flex:1 1 0;min-width:0;padding:15px 8px;font-size:15px}
}

/* контент перестраивается по-прежнему на 900 — это не про шапку */
@media(max-width:900px){
  .toc ol{columns:1}
  .foot-cols{grid-template-columns:1fr;gap:24px}
  .hero{padding:32px var(--s) 30px}
  /* три строки галочек над логотипом съедали треть первого экрана на телефоне */
  .topbar{display:none}
}

/* видимый фокус: без него навигация с клавиатуры вслепую */
:focus-visible{outline:3px solid var(--acc);outline-offset:3px;border-radius:4px}
.dark-top :focus-visible{outline-color:var(--gold)}

/* пропуск навигации: до контента иначе идут топбар, 5 пунктов меню и 2 кнопки */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--acc);
  color:#03231a;font-weight:800;padding:12px 18px;border-radius:0 0 var(--r) 0}
.skip-link:focus{left:0;text-decoration:none}

/* На 320px колонка бренда в карточке сжимается до ~47px, и тег «Sin licencia
   declarada» (125px, nowrap) вылезал за экран. Раньше это прятал
   .dark-top{overflow:hidden} — то есть переполнение было, его просто не было видно.
   Отдаём названию и тегам отдельную строку под логотипом. */
@media(max-width:420px){
  .offer-brand{flex-wrap:wrap;gap:9px 11px}
  .offer-name{flex:1 1 100%}
  .tag{white-space:normal}
}

@media(max-width:600px){
  body{font-size:17px}
  .page{padding:24px var(--s) 6px}   /* НЕ «24px 0 6px» — обнулит боковые отступы */
  .hero .lead{font-size:18.5px}
    h2{gap:10px}
  h2 .n{width:32px;height:32px;font-size:13px;border-radius:9px}
  /* страховка от grid-blowout на инлайновых сетках из контента */
  [style*="grid-template-columns"]{grid-template-columns:1fr!important}
}
