:root{
  --bg:#ffffff;
  --bg-soft:#f5f6f8;
  --surface:#ffffff;
  --border:#e2e5ea;
  --text:#1b2430;
  --text-muted:#59606d;
  --green:#0f7a3d;
  --green-dark:#0b5c2d;
  --green-tint:#e9f5ee;
  --red:#c8212b;
  --red-dark:#9c1a22;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:14px;
  --container:1120px;
  --content-w:700px;
  --header-h:60px;
  --font-head:'Manrope',system-ui,-apple-system,sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

/* ---------- utility ---------- */
.visually-hidden{
  position:absolute !important;
  width:1px;height:1px;
  padding:0;margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

/* ---------- focus ---------- */
a:focus-visible,button:focus-visible{
  outline:2px solid var(--green);
  outline-offset:2px;
  border-radius:4px;
}

/* ---------- listing ---------- */
.listing{padding:34px 16px 8px;background:var(--bg)}
.listing-inner{max-width:var(--container);margin:0 auto}
.listing h2{font-family:var(--font-head);font-weight:800;font-size:1.4rem;letter-spacing:-.01em;margin:0 0 18px;max-width:22ch}

.casino-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-md);
  padding:16px;
  margin-bottom:16px;
  display:grid;
  gap:14px;
}
.casino-card__top{display:flex;align-items:flex-start;gap:12px}
.casino-card__rank{
  font-family:var(--font-head);
  font-weight:800;
  font-size:1.05rem;
  color:var(--text-muted);
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  flex:none;
}
.casino-card__brand{display:flex;align-items:center;gap:12px;flex:1;min-width:0}
.casino-card__brand img{
  width:56px;height:56px;
  aspect-ratio:1/1;
  object-fit:contain;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  background:#fff;
  flex:none;
}
.casino-card__name{font-family:var(--font-head);font-weight:800;font-size:1.05rem;margin:0 0 4px}

.rating{display:flex;align-items:center;gap:7px}
.rating__stars{display:inline-flex;gap:2px}
.rating__stars svg{width:14px;height:14px;fill:var(--text)}
.rating__stars svg.star--half{fill:var(--border)}
.rating__stars svg.star--empty{fill:none;stroke:var(--border);stroke-width:1}
.rating__num{font-size:.82rem;color:var(--text-muted);font-weight:600}

.casino-card__bonus{
  background:var(--bg-soft);
  border-radius:var(--radius-sm);
  padding:11px 13px;
}
.casino-card__label{
  display:inline-block;
  font-family:var(--font-head);
  font-weight:700;
  font-size:.72rem;
  color:var(--green-dark);
  background:var(--green-tint);
  padding:2px 8px;
  border-radius:999px;
  margin-bottom:6px;
}
.casino-card__bonus p{margin:0;font-weight:600;font-size:.95rem}

.casino-card__features{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.casino-card__features li{display:flex;align-items:flex-start;gap:8px;font-size:.88rem;color:var(--text-muted)}
.casino-card__features li svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--green)}

.casino-card__cta{
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--green);
  color:#fff;
  font-family:var(--font-head);
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
  padding:13px 18px;
  border-radius:var(--radius-sm);
  transition:background-color .15s ease;
}
.casino-card__cta:hover{background:var(--green-dark)}

@media (min-width:640px){
  .casino-card{grid-template-columns:1.4fr 1.1fr 1.3fr auto;align-items:center;gap:18px}
  .casino-card__top{grid-column:1}
  .casino-card__bonus{grid-column:2}
  .casino-card__features{grid-column:3}
  .casino-card__cta{grid-column:4;padding:13px 26px}
}
@media (min-width:860px){
  .listing{padding:48px 16px 12px}
  .listing h2{font-size:1.7rem}
  .casino-card{padding:20px}
}

/* ---------- content ---------- */
.content{padding:38px 16px}
.content-inner{max-width:var(--content-w);margin:0 auto}
.content h2{
  font-family:var(--font-head);
  font-weight:800;
  font-size:1.35rem;
  line-height:1.25;
  letter-spacing:-.01em;
  margin:2.1em 0 .6em;
  scroll-margin-top:calc(var(--header-h) + 16px);
}
.content h2:first-child{margin-top:0}
.content h3{
  font-family:var(--font-head);
  font-weight:700;
  font-size:1.08rem;
  margin:1.6em 0 .5em;
}
.content p{margin:0 0 1em;color:var(--text)}
.content ul,.content ol{margin:0 0 1.2em;padding-left:1.3em}
.content li{margin-bottom:.45em}
.content strong{font-weight:700}

.table-wrap{
  overflow-x:auto;
  margin:0 0 1.4em;
  border:1px solid var(--border);
  border-radius:var(--radius-sm);
  -webkit-overflow-scrolling:touch;
}
.content table{
  border-collapse:collapse;
  width:100%;
  min-width:420px;
  font-size:.92rem;
}
.content table td{
  border-bottom:1px solid var(--border);
  padding:10px 14px;
  vertical-align:top;
}
.content table tr:last-child td{border-bottom:none}
.content table tr:first-child td{
  background:var(--bg-soft);
  font-family:var(--font-head);
}
.content table p{margin:0}

@media (min-width:860px){
  .content{padding:56px 16px}
  .content h2{font-size:1.55rem}
  .content h3{font-size:1.18rem}
}

/* ---------- author bio ---------- */
.author-bio{background:var(--bg-soft);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:28px 16px}
.author-bio__inner{max-width:var(--content-w);margin:0 auto}
.author-bio__name{font-family:var(--font-head);font-weight:800;font-size:1.05rem;margin:0 0 3px}
.author-bio__role{font-size:.85rem;color:var(--green-dark);font-weight:600;margin:0 0 12px}
.author-bio__text{font-size:.92rem;color:var(--text-muted);margin:0;max-width:64ch}

/* ---------- legal grid ---------- */
.legal-info{padding:32px 16px}
.legal-info__inner{max-width:var(--container);margin:0 auto}
.legal-grid{display:grid;gap:20px;grid-template-columns:1fr}
.legal-grid__item h3{font-family:var(--font-head);font-weight:700;font-size:.92rem;margin:0 0 6px}
.legal-grid__item p{font-size:.82rem;color:var(--text-muted);margin:0;line-height:1.5}
@media (min-width:640px){.legal-grid{grid-template-columns:1fr 1fr}}
@media (min-width:960px){.legal-grid{grid-template-columns:repeat(4,1fr)}}

/* ---------- footer ---------- */
.site-footer{background:var(--text);color:#cfd3da;padding:30px 16px 26px}
.site-footer__inner{max-width:var(--container);margin:0 auto}
.site-footer__disclaimer{display:flex;align-items:flex-start;gap:12px;margin:0 0 20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.14)}
.adm-logo{width:34px;height:34px;flex:none}
.adm-logo path{stroke:#8a919c}
.adm-logo text{fill:#8a919c}
.site-footer__disclaimer p{margin:0;font-size:.78rem;line-height:1.55;max-width:60ch}
.site-footer__nav{display:flex;flex-wrap:wrap;gap:16px;margin:0 0 18px}
.site-footer__nav a{font-size:.83rem;color:#cfd3da;text-decoration:none}
.site-footer__nav a:hover{color:#fff}
.site-footer__copy{font-size:.75rem;color:#8a919c;margin:0}

/* ---------- back to top ---------- */
.back-to-top{
  position:fixed;
  right:16px;
  bottom:16px;
  width:44px;height:44px;
  border-radius:50%;
  border:none;
  background:var(--text);
  color:#fff;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(20,24,32,.25);
  z-index:90;
}
.back-to-top svg{width:18px;height:18px}
.back-to-top[hidden]{display:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .header-cta,.casino-card__cta{transition:none}
}
