:root{
  /* Core palette */
  --bg:#0b0f1a;
  --panel:#121829;
  --panel-2:#171f33;
  --line:#263047;
  --text:#e6e9f0;
  --muted:#9aa3b2;

  /* Brand */
  --primary:#6a5cff;
  --primary-2:#00d2ff;

  /* Status */
  --success:#29e3a8;
  --warning:#ffd166;
  --danger:#ff5c7c;

  /* Shape & depth */
  --radius:16px;
  --radius-lg:20px;
  --shadow:0 10px 30px rgba(0,0,0,.35);
}

/* Base / reset */
*{box-sizing:border-box}
html,body{height:100%}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  font:16px/1.6 "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 600px at 80% -40%, rgba(106,92,255,0.18), transparent),
    radial-gradient(800px 400px at 10% 0%, rgba(0,210,255,0.14), transparent),
    var(--bg);
  background-repeat:no-repeat;
}

/* Links */
a{color:var(--primary-2);text-decoration:none}
a:hover{text-decoration:underline}

/* Media (global)
   Default: rounded images for a more presentable look.
   Use .no-round to opt out for specific images (e.g., logos).
*/
img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius:var(--radius);
}
img.no-round{border-radius:0}

/* Layout */
.container{width:100%;max-width:1200px;margin:0 auto;padding:0 20px}
.section{padding:56px 0}

/* Grid */
.grid{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}

@media (max-width: 920px){
  .grid-2{grid-template-columns:1fr}
  .grid-3{grid-template-columns:1fr 1fr}
}
@media (max-width: 620px){
  .grid-3{grid-template-columns:1fr}
}

/* Typography */
.h1{font-size:40px;line-height:1.1;margin:0 0 14px}
.h2{font-size:28px;line-height:1.2;margin:0 0 12px}
.lead{color:var(--muted);font-size:18px}
.kicker{
  display:inline-block;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--primary-2);
  margin-bottom:10px;
}
.muted{color:var(--muted)}

@media (max-width: 920px){
  .h1{font-size:32px}
}
@media (max-width: 620px){
  .h1{font-size:28px}
}

/* Header */
.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(11,15,26,.6);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
}
.header-bar{display:flex;align-items:center;justify-content:space-between;min-height:64px}

.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:700;letter-spacing:.2px}
.brand-mark{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:8px;
  background:linear-gradient(135deg,var(--primary),var(--primary-2));
  box-shadow:0 6px 16px rgba(0,210,255,.25);
}
.brand-text{font-size:18px}
.brand-text .accent{color:var(--primary-2)}

.nav{display:flex;gap:14px;align-items:center}
.nav-link{color:#fff;text-decoration:none;padding:10px 12px;border-radius:10px}
.nav-link:hover{color:var(--text);background:var(--panel)}

.nav-toggle{display:none;background:transparent;border:0;width:40px;height:40px;border-radius:10px}
.nav-toggle .bar{display:block;width:24px;height:2px;background:var(--text);margin:5px auto}

@media (max-width: 900px){
  .nav-toggle{display:block}
  .nav{
    position:fixed;
    inset:64px 0 auto 0;
    display:grid;
    gap:8px;
    padding:16px;
    background:rgba(11,15,26,.98);
    border-top:1px solid var(--line);
    transform:translateY(-120%);
    transition:transform .25s ease;
  }
  body.nav-open .nav{transform:translateY(0)}
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:14px;
  padding:12px 18px;
  font-weight:600;
  text-decoration:none;
  cursor:pointer;
}
.btn-primary{
  color:#0b0f1a;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));
  box-shadow:0 10px 20px rgba(0,210,255,.25);
}
.btn-primary:hover{filter:saturate(1.1) brightness(1.05)}
.btn-ghost{color:var(--text);background:transparent;border:1px solid var(--line)}
.btn-ghost:hover{background:var(--panel)}

/* Cards */
.card{
  background:linear-gradient(180deg, rgba(23,31,51,.7), rgba(18,24,41,.9));
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.card-inner{
  padding:22px;
}



/* Home hero */
.hero{padding:80px 0 40px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.badges{display:flex;gap:16px;flex-wrap:wrap;margin-top:14px;color:var(--muted);font-size:14px}

/* Feature list */
.features{list-style:none;margin:0;padding:0}
.features li{display:flex;gap:12px;align-items:flex-start}
.features .dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));
  margin-top:8px;
}

/* Quick links */
.quick a{
  display:block;
  padding:18px;
  border-radius:16px;
  text-decoration:none;
  color:var(--text);
  background:linear-gradient(180deg, rgba(106,92,255,.12), rgba(0,210,255,.08));
  border:1px solid var(--line);
}
.quick a:hover{filter:saturate(1.1)}

/* Tables */
.table, table{width:100%;border-collapse:collapse}
th,td{border:1px solid var(--line);padding:10px 12px;vertical-align:top}
thead th{background:var(--panel)}

/* Table UX */
.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table-wrap table{min-width:760px}
tbody tr{transition:background .2s ease}
tbody tr:hover{background:rgba(255,255,255,.03)}

/* Lists */
.no-bullets{list-style:none;margin:0;padding:0}

/* Forms */
.form{max-width:560px}
.field{display:flex;flex-direction:column}
.field span{font-weight:600;margin-bottom:6px}
input[type="text"],input[type="email"],select,textarea{
  background:#0b0d11;
  color:var(--text);
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-2)}

.alert{padding:12px 14px;border-radius:12px;margin:12px 0;font-weight:600}
.alert.success{background:rgba(41,227,168,.10);border:1px solid rgba(41,227,168,.45);color:#b9f5dc}
.alert.error{background:rgba(255,92,124,.10);border:1px solid rgba(255,92,124,.45);color:#ffd0d0}

/* FAQ <details> */
details{border:1px solid var(--line);border-radius:14px;padding:12px 14px;background:var(--panel)}
details+details{margin-top:10px}
summary{cursor:pointer;font-weight:600}
summary::-webkit-details-marker{display:none}
summary:after{content:"\25BC";float:right;transition:transform .2s}
details[open] summary:after{transform:rotate(180deg)}

/* Quotes */
blockquote{
  margin:0;
  padding:14px 16px;
  border-left:3px solid rgba(0,210,255,.55);
  background:linear-gradient(180deg, rgba(106,92,255,.10), rgba(0,210,255,.06));
  border-radius:14px;
  color:var(--text);
}

/* Utility */
.m-0{margin:0}
.mt-3{margin-top:12px}
.mt-4{margin-top:16px}
.mt-6{margin-top:24px}
.mt-8{margin-top:32px}

/* === Media helpers === */
.media-img{width:100%;height:auto;object-fit:cover;border-radius:18px}
.icon-img{height:50px;object-fit:contain;display:block;border-radius:0}

/* === Image placeholders === */
.image-slot{
  width:100%;
  height:260px;
  border-radius:18px;
  border:1px dashed var(--line);
  background:linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,0));
  display:flex;
  align-items:center;
  justify-content:center;
}
.image-slot--hero{height:300px}
.image-slot--section{height:220px}
.image-slot--small{height:140px}

.image-slot--hero img{
  width:100%;
  height:100%;
  object-fit:cover;
}

/* === Hover interactivity === */
.hover-card{transition:transform .25s ease, box-shadow .25s ease}
.hover-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.45)}

/* === Scroll animation === */
.animate-on-scroll .animate-item{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .6s ease, transform .6s ease;
}
.animate-on-scroll.visible .animate-item{opacity:1;transform:none}
.stagger-2{transition-delay:.15s}
.stagger-3{transition-delay:.3s}

/* === List hover (non-destructive) === */
.list-hover li{
  border-radius:12px;
  padding:8px 10px;
  transition:background .2s ease, transform .2s ease;
}
.list-hover li:hover{background:rgba(255,255,255,.04);transform:translateX(2px)}

/* Blockquotes */
blockquote{
  margin:0;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid var(--line);
  background:linear-gradient(180deg, rgba(106,92,255,.10), rgba(0,210,255,.06));
  color:var(--text);
}

/* === Footer v2 (single source of truth) === */
footer.site-footer{margin-top:56px;padding:40px 0 18px;background:var(--bg);border-top:1px solid var(--line)}
.footer__surface{background:var(--panel);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:22px}
.footer__grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:start}
.footer__logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em;color:var(--text);text-decoration:none}
.footer__mark{width:36px;height:36px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.03);display:grid;place-items:center;flex:0 0 auto;padding:6px}
.footer__desc{color:var(--muted);margin:10px 0 0;max-width:52ch}
.footer__cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.footer__cta .btn{padding:10px 14px;font-size:14px}
.footer__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.footer__title{margin:0 0 8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.footer__list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer__list li{color:var(--muted)}
.footer__list a{color:var(--text);text-decoration:none}
.footer__list a:hover{text-decoration:none;color:var(--primary-2)}
.footer__bottom{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);background:transparent}
.footer__bottom-inner{display:flex;gap:12px;align-items:center;justify-content:space-between;color:var(--muted);font-size:14px}
.footer__links a{color:var(--muted);text-decoration:none}
.footer__links a:hover{color:var(--text)}

@media (max-width: 920px){
  .footer__grid{grid-template-columns:1fr}
  .footer__nav{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 620px){
  .footer__surface{padding:18px}
  .footer__nav{grid-template-columns:1fr}
  .footer__bottom-inner{flex-direction:column;align-items:flex-start}
}

.divider-wrap{
  margin: 28px 0 22px;
  display: flex;
  justify-content: center;
}

.divider-line{
  position: relative;
  width: 100%;
  max-width: 900px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--primary),
    var(--primary-2),
    var(--primary),
    transparent
  );
  opacity: 0.95;
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(0,210,255,.10);
}

/* Анімований блік */
.divider-line::after{
  content: "";
  position: absolute;
  top: 0;
  left: -30%;
  width: 30%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255,255,255,.8),
    transparent
  );
  animation: divider-glow 2.8s linear infinite;
}

@keyframes divider-glow{
  from{ left: -30%; }
  to{ left: 100%; }
}

@media (max-width: 920px){
  .divider-wrap{margin: 20px 0 16px;}
  .divider-line{max-width: 100%;}
}

/* === Progress bar === */
.progress{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:2px;
  z-index:999;
  background:transparent;
}
.progress__bar{
  display:block;
  height:100%;
  width:100%;
  transform:scaleX(0);
  transform-origin:left center;
  background:linear-gradient(90deg,var(--primary),var(--primary-2));
  box-shadow:0 6px 16px rgba(0,210,255,.20);
}

/* === Toast === */
.toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%) translateY(16px);
  opacity:0;
  pointer-events:none;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:rgba(18,24,41,.92);
  backdrop-filter: blur(10px);
  box-shadow:var(--shadow);
  font-weight:700;
  transition:opacity .2s ease, transform .2s ease;
  z-index:1000;
}
.toast--show{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

/* === Sticky bottom bar === */
.sticky-bar{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  padding:12px 0;
  background:rgba(11,15,26,.70);
  backdrop-filter:saturate(140%) blur(10px);
  border-top:1px solid var(--line);
  transform:translateY(110%);
  transition:transform .22s ease;
  z-index:998;
}
.sticky-bar--show{transform:translateY(0)}
.sticky-bar__inner{
  max-width:1200px;
  margin:0 auto;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.sticky-bar__left{display:flex;flex-direction:column;gap:2px}
.sticky-bar__title{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.sticky-bar__code{font-weight:900;letter-spacing:.06em}
.sticky-bar__right{display:flex;gap:10px;flex-wrap:wrap}

@media (max-width: 620px){
  .sticky-bar__inner{flex-direction:column;align-items:stretch}
  .sticky-bar__right .btn{width:100%}
}

.card,
.image-slot,
.image-box,
.section,
.panel,
.media-wrap {
  overflow: hidden;
}


/* === GUIDE: wide image placeholders (2–3 per page) === */
.hero-visual{margin-top:22px}
.wide-visual{margin: 10px 0 6px}
.image-slot--wide{
  width: 100%;
  min-height: 220px;
  border-radius: 22px;
}

.hero-visual{
  height:100%;
  min-height:300px;   /* або під твій дизайн */
  overflow:hidden;
}

.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;   /* заповнює весь блок */
  border-radius:18px; /* або як у дизайні */
}

@media (min-width: 860px){
  .image-slot--wide{min-height: 260px}
}

/* === Promo strip inside hero (CSS-only, no scripts) === */
.promo-strip{margin-top: 16px}
.promo-strip__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
  padding: 14px 16px;
  border-radius: 18px;
  border:1px solid var(--line);
  background: linear-gradient(180deg, rgba(23,31,51,.72), rgba(18,24,41,.92));
}
.promo-strip__label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.promo-strip__code{font-weight:800;font-size:18px;margin-top:2px}
.promo-strip__left{display:flex;flex-direction:column}
.promo-strip__right{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width: 640px){
  .promo-strip__inner{flex-direction:column;align-items:flex-start}
}

/* === Section focus (CSS-only interactivity) === */
.section:target .card{
  box-shadow: 0 18px 50px rgba(0,210,255,.10);
  outline: 1px solid rgba(0,210,255,.18);
}

/* === Guide alignment with /promo-code/ === */
/* Keep anchor jumps clean with sticky header */
#overview, #plinko, #crash, #dice, #mines, #fair, #bankroll, #faq, #responsible{scroll-margin-top:90px}

/* Guide page: give space for the sticky bottom bar when it appears */
.page-guide{padding-bottom:84px}

/* Slightly more consistent spacing for wide visuals */
.container.wide-visual{margin-top:18px}

.hero-visual{
  min-height:300px;
  overflow:hidden;
}

.hero-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.hero-visual{ margin-bottom: 18px; }

@media (max-width: 920px){
  .hero-visual{ margin-bottom: 14px; }
}

.card.hover-card{
  margin-top: 18px;
}

/* Ensure 2-column layout works on Affiliate Program page */
.grid{display:grid; gap:18px;}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start;}
@media (max-width: 860px){
  .grid-2{grid-template-columns:1fr;}
}

/* --- Affiliate Program: force grids to behave (override conflicts) --- */
.section .container.grid.grid-2{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  align-items: start !important;
}

.section .container.grid.grid-2 > *{
  min-width: 0 !important;
}

/* Mobile */
@media (max-width: 860px){
  .section .container.grid.grid-2{
    grid-template-columns: 1fr !important;
  }
}