:root{
  --bg:#0e1020; --panel:#141735; --panel2:#0b0f26; --card:#101432;
  --text:#ecf1ff; --muted:#9fb0d3; --line:rgba(255,255,255,.08);
  --accent:#6a7dff; --accent2:#4958f2;
  --good:#22c997; --warn:#ffb020; --bad:#ff5c7a;
  --shadow:0 14px 40px rgba(0,0,0,.35); --r:18px;
}
:root.light{
  --bg:#f4f6ff; --panel:#ffffff; --panel2:#eef2ff; --card:#ffffff;
  --text:#0c1030; --muted:#5d6a8e; --line:rgba(10,16,30,.12);
  --accent:#3b57ff; --accent2:#2b45e7;
  --good:#179b73; --warn:#b57700; --bad:#e03b58;
  --shadow:0 10px 28px rgba(10,16,30,.12);
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(180deg,var(--bg),var(--panel2));color:var(--text);
     font:16px/1.55 Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:28px 18px 60px}
.section{margin-top:30px}
h1,h2,h3{letter-spacing:.2px}
h1{font-size:clamp(28px,4vw,42px);margin:0;font-weight:900}
h2{font-size:clamp(22px,3vw,30px);margin:0 0 12px 0;font-weight:900}
h3{margin:0 0 8px 0}
p{margin:0 0 10px 0}
small.m{color:var(--muted)}

header.hero{display:grid;gap:14px;justify-items:start;padding:34px 18px;margin:0 -18px 24px;
  background:radial-gradient(1200px 520px at 20% -10%, #202664 0, transparent 60%);
  border-bottom:1px solid var(--line)}
.kicker{display:inline-flex;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);
  border-radius:999px;color:var(--muted);background:rgba(255,255,255,.04)}
.controls{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;gap:10px;align-items:center;padding:12px 16px;border-radius:12px;border:0;cursor:pointer;font-weight:800}
.btn.primary{background:linear-gradient(180deg,var(--accent),var(--accent2));color:#fff;box-shadow:var(--shadow)}
.btn.ghost{background:none;border:1px solid var(--accent);color:var(--accent)}
.btn.small{padding:8px 12px;border-radius:10px;font-weight:700}

.nav{display:flex;gap:10px;flex-wrap:wrap}
.switch{display:inline-flex;gap:8px;align-items:center}
.toggle{width:46px;height:26px;border-radius:999px;background:#222b55;position:relative;border:1px solid var(--line);cursor:pointer}
.toggle i{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;transition:all .25s ease}
:root.light .toggle{background:#dfe5ff}
:root.light .toggle i{left:22px}

.box{padding:16px;border:1px solid var(--line);border-radius:var(--r);
     background:linear-gradient(180deg,var(--panel),var(--card));box-shadow:var(--shadow)}

/* toolbar */
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:6px 0 20px}
.group{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--card))}
.select, .input, .range{background:rgba(255,255,255,.06);border:1px solid var(--line);color:#7493f3;padding:10px 12px;border-radius:10px}
.range{accent-color:var(--accent)}
.input.search{min-width:220px}
label{color:var(--muted);font-size:14px;font-weight:700}

/* grid/cards */
.grid{display:grid;gap:14px}
@media (min-width:900px){.grid{grid-template-columns:1fr 1fr}}
.card{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;
      padding:14px;border:1px solid var(--line);border-radius:var(--r);
      background:linear-gradient(180deg,var(--panel),var(--card));box-shadow:var(--shadow)}
.rank{width:46px;height:46px;display:grid;place-items:center;border-radius:12px;background:#1b2044;color:#cfe1ff;font-weight:900;font-size:18px;border:1px solid var(--line)}
.logo{width:86px;height:86px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#0d1130}
.mid{display:grid;gap:6px}
.title{display:flex;align-items:center;gap:8px;font-weight:900;font-size:18px}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.pill{font-size:12px;color:#7a9bff;border:1px solid var(--line);padding:2px 8px;border-radius:999px;background:rgba(255,255,255,.05)}
.stars{display:inline-flex;gap:2px}
.stars svg{width:16px;height:16px}
.row{display:flex;flex-wrap:wrap;gap:12px;color:#7a9bff}
.row .k{color:var(--muted)}
.actions{display:grid;gap:8px}
.score{display:inline-flex;align-items:center;gap:8px;font-weight:900}
.score b{font-size:20px}
.score .bar{width:120px;height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;border:1px solid var(--line)}
.score .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--good),var(--accent));width:0%}

/* providers carousel */
.carousel{display:flex;gap:10px;overflow:auto;scroll-snap-type:x mandatory;padding-bottom:6px}
.carousel .prov{flex:0 0 auto;width:190px;border:1px solid var(--line);border-radius:12px;padding:12px;background:linear-gradient(180deg,var(--panel),var(--card));scroll-snap-align:start}
.carousel .prov .logo{width:64px;height:64px}

/* info grid */
.info{display:grid;gap:14px}
@media(min-width:900px){.info{grid-template-columns:1fr 1fr}}
.info .i{padding:14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(180deg,var(--panel),var(--card))}

/* FAQ */.q{border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--card))}
.q summary{list-style:none;cursor:pointer;padding:12px 14px;display:flex;align-items:center;gap:10px;font-weight:800}
.q summary::-webkit-details-marker{display:none}
.q .ic{width:18px;height:18px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:6px}
.q .ans{padding:0 14px 14px 44px;color:#dfe6ff}
.q[open] .ic{background:linear-gradient(180deg,var(--accent),var(--accent2));border-color:transparent}

/* modal */
.modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;background:rgba(5,8,20,.55)}
.modal .box{max-width:760px;width:92%}

/* footer */
footer{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:14px}
.badge18{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:4px 8px;border-radius:999px;background:#1b2044;color:#cfe1ff}

/* --- Bonus section base styling --- */
.bonus-section{border:1px dashed var(--line);border-radius:14px;background:linear-gradient(180deg,var(--card),var(--panel));box-shadow:var(--shadow)}
.bonus-grid{display:grid;gap:18px;grid-template-columns:1fr 1fr}
.bcard{border:1px solid var(--line);border-radius:14px;padding:12px;background:linear-gradient(180deg,var(--panel),var(--card));box-shadow:var(--shadow)}
.bcard.alt{background:linear-gradient(180deg,var(--card),var(--panel));}
.bcard-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.bicon{width:28px;height:28px;flex:0 0 28px;border-radius:10px;background:var(--accent);
  -webkit-mask-size:18px 18px;mask-size:18px 18px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
.bicon.gift{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\'><path fill=\'black\' d=\'M20 7h-2.2A3 3 0 0 0 12 5a3 3 0 0 0-5.8 2H4a1 1 0 0 0-1 1v3h18V8a1 1 0 0 0-1-1ZM9 5a1 1 0 1 1 0 2H7a1 1 0 1 1 0-2h2Zm6 0a1 1 0 1 1 0 2h-2a1 1 0 1 1 0-2h2Zm-7 9H3v5a2 2 0 0 0 2 2h5v-7Zm6 0h7v5a2 2 0 0 1-2 2h-5v-7Z\'/></svg>')}
.bicon.repeat{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\' viewBox=\'0 0 24 24\'><path fill=\'black\' d=\'M17 1l4 4-4 4V6H7a3 3 0 0 0-3 3v2H2V9a5 5 0 0 1 5-5h10V1Zm-6 17H7v3l-4-4 4-4v3h4a3 3 0 0 0 3-3v-2h2v2a5 5 0 0 1-5 5Z\'/></svg>')}


/* --- Bonus tables: mobile-friendly & no overflow --- */
.btable-wrap{border:1px solid var(--line);border-radius:12px;overflow-x:auto;overflow-y:hidden;background:var(--panel);max-width:100%;-webkit-overflow-scrolling:touch}
.btable{width:100%;border-collapse:separate;border-spacing:0;border-radius:12px;overflow:hidden;min-width:680px}
.btable thead th{font-weight:700;text-align:left;padding:10px 12px;background:rgba(255,255,255,0.04);border-bottom:1px solid var(--line)}
.btable tbody td{padding:10px 12px;border-top:1px solid rgba(255,255,255,0.06);word-break:break-word;overflow-wrap:anywhere;white-space:normal}
.align-r{text-align:right}

/* Grid collapse earlier for small screens */
@media (max-width: 900px){
  .bonus-grid{grid-template-columns:1fr}
}

/* Optional ultra-small stacking (turn table into vertical list on very narrow screens) */
@media (max-width: 480px){
  .btable{min-width:520px}
}


/* ===== Text blocks: icons & beautification (no content changes) ===== */

/* Info cards styling */
#info .info{display:grid;gap:14px;grid-template-columns:1fr 1fr}
@media (max-width: 980px){ #info .info{grid-template-columns:1fr} }
#info .info .i{
  position:relative;border:1px solid var(--line);border-radius:14px;
  padding:14px 14px 12px 56px;background:linear-gradient(180deg,var(--panel),var(--card));
  box-shadow:var(--shadow);
}
#info .info .i h3{margin:2px 0 6px 0}
#info .info .i::before{
  content:"";position:absolute;left:14px;top:16px;width:28px;height:28px;border-radius:12px;
  background:linear-gradient(180deg,var(--accent),#6a7dff);
  -webkit-mask-size:18px 18px;mask-size:18px 18px;-webkit-mask-position:center;mask-position:center;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)
}
/* Icons per block order */
#info .info .i:nth-child(1)::before{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M3 3h18v4H3V3Zm0 6h10v12H3V9Zm12 0h6v12h-6V9Z"/></svg>')}
#info .info .i:nth-child(2)::before{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M20 7h-2.2A3 3 0 0 0 12 5a3 3 0 0 0-5.8 2H4a1 1 0 0 0-1 1v3h18V8a1 1 0 0 0-1-1Z"/></svg>')}
#info .info .i:nth-child(3)::before{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M5 4h14l-1 14H6L5 4Zm4 17h6v1H9v-1Z"/></svg>')}
#info .info .i:nth-child(4)::before{-webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12.1 21 4 13a5.6 5.6 0 0 1 8-7.8L12 5l.1.2A5.6 5.6 0 0 1 20 13l-8 8Z"/></svg>')}

/* Enhance check lists across sections */
.section .check{padding-left:0;margin:10px 0 0 0;list-style:none;display:grid;gap:6px}
.section .check li{position:relative;padding-left:28px}
.section .check li::before{
  content:"";position:absolute;left:0;top:4px;width:20px;height:20px;border-radius:8px;background:var(--accent);
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="m9 16.2-3.5-3.5L4 14.2 9 19l11-11-1.5-1.5L9 16.2Z"/></svg>');
  -webkit-mask-size:16px 16px;mask-size:16px 16px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat
}

/* FAQs: beautify and add question icons (works with dynamic markup) */.faq .item{border:1px solid var(--faq-border);border-radius:12px;background:linear-gradient(180deg,var(--panel),var(--card));margin:10px 0;overflow:hidden}.faq .q::before{
  content:"";width:22px;height:22px;border-radius:8px;background:var(--accent);
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M10.5 7.5A3.5 3.5 0 1 1 14 11h-2a1.5 1.5 0 0 1 0-3h1a1.5 1.5 0 1 0-1.5-1.5h-1ZM11 17h2v2h-2v-2Z"/></svg>');
  -webkit-mask-size:16px 16px;mask-size:16px 16px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat
}.faq .item.open .a{display:block}.faq .item.open .q{border-bottom:1px solid var(--faq-border)}

/* Section headings: subtle underline & icon flair without touching content */
.section.box > h2{
  position:relative;padding-left:40px;margin-bottom:10px
}
.section.box > h2::before{
  content:"";position:absolute;left:0;top:2px;width:28px;height:28px;border-radius:12px;background:linear-gradient(180deg,var(--accent),#6a7dff);
  -webkit-mask-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 2 4 5v6c0 5 4 9 8 11 4-2 8-6 8-11V5l-8-3Z"/></svg>');
  -webkit-mask-size:18px 18px;mask-size:18px 18px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat
}
.section.box > h2::after{
  content:"";display:block;height:1px;background:linear-gradient(90deg,var(--accent),transparent);margin-top:8px;opacity:.6
}

/* Ensure bonuses tables remain tidy on mobile after extra spacing changes */
.btable-wrap{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
.btable{min-width:680px}
@media (max-width: 520px){ .btable{min-width:520px} }


/* ===== FAQ adjustments (only FAQ block) ===== */
/* Remove blue icons *//* Tidy spacing without icon offset *//* Keep default answer behavior *//* Mobile: question one line with ellipsis; answer one line below with ellipsis when open */
@media (max-width: 640px){.faq .a{
    display:none; /* closed by default */
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    margin-top:0;
  }}



/* ===== FAQ (ported from stable ref) ===== */


/* FAQ */
.faq{display:grid;gap:10px}

/* ===== Mobile vertical layout for rating cards ===== */
@media (max-width: 760px){
  /* one column list already set on .grid under 900px; here we stack inner card parts */
  #cards .card{
    grid-template-columns: 1fr;
    align-items: stretch;
    gap: 10px;
  }
  #cards .card .rank{
    width: 36px; height: 36px; font-size: 16px; border-radius: 10px;
    order: 0; justify-self: start;
  }
  #cards .card .logo{
    width: 72px; height: 72px; border-radius: 12px;
    order: 0; justify-self: start;
  }
  #cards .card .mid{
    order: 1; display: grid; gap: 8px;
  }
  #cards .card .title{ font-size: 17px; }
  #cards .card .badges{ gap: 6px }
  #cards .card .stars{ order: 1 }
  #cards .card .row{
    order: 2;
    display:flex; flex-direction: column; gap: 6px;
  }
  #cards .card .row .k{ color: var(--muted) }
  #cards .card .score{ order: 3; justify-content:flex-start }
  #cards .card .actions{
    order: 4; 
    display:grid; grid-auto-flow: row; grid-template-columns: 1fr;
  }
  #cards .card .actions .btn,
  #cards .card .actions a.btn{
    width: 100%;
  }
}


/* ===== Bonuses tables: mobile horizontal scroll (no layout overflow) ===== */
@media (max-width: 760px){
  .bonus-section .btable-wrap{
    display:block;
    width:100%;
    overflow-x:auto !important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    padding-bottom:8px;
    /* full-bleed horizontal scroll inside padded containers */
    margin-right: calc(-1 * var(--gap, 16px));
    padding-right: var(--gap, 16px);
    contain: content;
  }
  .bonus-section .btable{
    min-width: 640px; /* force sideways scroll */
    table-layout: auto;
  }
  .bonus-section .btable thead th,
  .bonus-section .btable tbody td{
    white-space: nowrap; /* keep cells on one line for horizontal scroll */
  }
}


/* ===== Bonuses tables: robust horizontal scroll (fix for grid/flex containers & iOS) ===== */
.bonus-grid, .bonus-grid > *{ min-width:0 } /* allow child overflow inside CSS grid */
.bcard{ min-width:0 } /* ensure scroll containers don't get constrained by intrinsic min width */

@media (max-width: 820px){
  .bonus-section .btable-wrap{
    position: relative;
    display:block;
    width:100%; max-width:100vw;
    overflow-x: scroll !important; /* stronger than auto for iOS */
    overflow-y:hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x; /* explicitly allow horizontal touch scroll */
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    padding-bottom:10px;
    margin-right: calc(-1 * var(--page-pad, 16px));
    padding-right: var(--page-pad, 16px);
    background-clip: padding-box;
  }
  .bonus-section .btable{
    min-width: 720px; /* wider than common mobile widths */
  }
  .bonus-section .btable th,
  .bonus-section .btable td{
    white-space: nowrap;
  }
}

/* Optional helper: show gentle gradient hint for scroll (non-intrusive) */
@media (max-width: 820px){
  .bonus-section .btable-wrap::after{
    content:"";
    position:absolute; right:2px; top:0; bottom:0; width:18px; pointer-events:none;
    background:linear-gradient(90deg, rgba(0,0,0,0), rgba(0,0,0,.12));
  }
}
.cmp-table {
    border-collapse: separate;
    border-spacing: 0 8px;
    position: relative;
    display: block;
    width: 100%;
    max-width: 100vw;
    overflow-x: scroll !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
    overscroll-behavior-x: contain;
    scrollbar-width: thin;
    padding-bottom: 10px;
}