/* ==========================================================================
   DossierSlot — slots.css
   Concept: catalogo / libreria arcade. BEM (block__element--modifier).
   ========================================================================== */

:root {
  --ds-bg: #1a1033;
  --ds-bg-deep: #120a26;
  --ds-panel: #261848;
  --ds-panel-2: #2f1f59;
  --ds-line: #40307a;
  --ds-magenta: #ff3d81;
  --ds-magenta-soft: #ff7aa8;
  --ds-gold: #ffc857;
  --ds-text: #e9e3ff;
  --ds-muted: #b9aee0;
  --ds-violet: #8f5bff;
  --ds-cyan: #4fe0d6;
  --ds-ink: #1a1033;
  --ds-radius: 14px;
  --ds-radius-sm: 9px;
  --ds-pill: 999px;
  --ds-wrap: 1140px;
  --ds-prose: 780px;
  --ds-gutter: 16px;
  --ds-tile-min: 140px;
  --ds-glow-m: 0 0 0 1px rgba(255, 61, 129, .55), 0 0 22px rgba(255, 61, 129, .28);
  --ds-glow-g: 0 0 0 1px rgba(255, 200, 87, .55), 0 0 20px rgba(255, 200, 87, .22);
  --ds-font: "Rubik", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
}

@media (min-width: 420px) { :root { --ds-tile-min: 160px; } }
@media (min-width: 720px) { :root { --ds-gutter: 28px; } }

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 1rem; }

body {
  margin: 0;
  font-family: var(--ds-font);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--ds-text);
  background-color: var(--ds-bg);
  background-image:
    radial-gradient(900px 480px at 85% -120px, rgba(255, 61, 129, .20), transparent 70%),
    radial-gradient(700px 420px at -10% 10%, rgba(143, 91, 255, .22), transparent 70%);
  background-repeat: no-repeat;
  overflow-wrap: break-word;
}

img, svg { max-width: 100%; }
h1, h2, h3, h4 { line-height: 1.18; margin: 0 0 .6em; font-weight: 800; letter-spacing: -.01em; }
h1 { font-size: clamp(1.9rem, 6.2vw, 3.1rem); font-weight: 900; }
h2 { font-size: clamp(1.4rem, 4vw, 1.95rem); }
h3 { font-size: 1.15rem; font-weight: 700; }
p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.3em; }
a { color: var(--ds-gold); text-underline-offset: .18em; }
a:hover { color: #ffe0a0; }
strong { font-weight: 700; color: #fff; }
small { font-size: .82rem; }

:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 3px; border-radius: 4px; }

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

.skip-link {
  position: absolute; left: 12px; top: -80px; z-index: 50;
  padding: .7rem 1rem; border-radius: var(--ds-radius-sm);
  background: var(--ds-gold); color: var(--ds-ink); font-weight: 700; text-decoration: none;
}
.skip-link:focus { top: 12px; color: var(--ds-ink); }

.wrap { width: 100%; max-width: var(--ds-wrap); margin-inline: auto; padding-inline: var(--ds-gutter); }

/* ---------- Header ------------------------------------------------------ */
.site-head { background: rgba(18, 10, 38, .82); border-bottom: 1px solid var(--ds-line); }
.site-head__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  max-width: var(--ds-wrap); margin-inline: auto; padding: 12px var(--ds-gutter);
}
.site-head__casino {
  display: inline-flex; align-items: center; gap: .4em;
  padding: .42rem .95rem; border-radius: var(--ds-pill);
  border: 1px solid var(--ds-gold); color: var(--ds-gold);
  font-size: .86rem; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: background-color .15s, color .15s, box-shadow .15s;
}
.site-head__casino:hover { background: var(--ds-gold); color: var(--ds-ink); box-shadow: var(--ds-glow-g); }

.wordmark { display: inline-flex; align-items: center; gap: .55rem; color: #fff; text-decoration: none; min-width: 0; }
.wordmark:hover { color: #fff; }
.wordmark__icon { width: 34px; height: 34px; flex: none; filter: drop-shadow(0 0 8px rgba(255, 61, 129, .55)); }
.wordmark__text { font-size: 1.28rem; font-weight: 900; letter-spacing: -.02em; line-height: 1; }
.wordmark__text b { font-weight: 900; color: var(--ds-magenta); }

.chip-rail { border-top: 1px solid rgba(64, 48, 122, .6); }
.chip-rail__list {
  display: flex; gap: 8px; list-style: none; margin: 0 auto; max-width: var(--ds-wrap);
  padding: 10px var(--ds-gutter); overflow-x: auto; scrollbar-width: none;
  -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; scroll-padding-inline: var(--ds-gutter);
}
.chip-rail__list::-webkit-scrollbar { display: none; }
.chip-rail__item { flex: none; scroll-snap-align: start; }
.chip-rail__item--sep { margin-left: 6px; padding-left: 14px; border-left: 1px solid var(--ds-line); }
.chip-rail__chip {
  display: inline-block; padding: .36rem .9rem; border-radius: var(--ds-pill);
  background: var(--ds-panel); border: 1px solid var(--ds-line);
  color: var(--ds-text); font-size: .88rem; font-weight: 600; text-decoration: none; white-space: nowrap;
  transition: border-color .15s, box-shadow .15s, color .15s;
}
.chip-rail__chip:hover { border-color: var(--ds-magenta); color: #fff; box-shadow: var(--ds-glow-m); }
.chip-rail__chip[aria-current] { background: var(--ds-magenta); border-color: var(--ds-magenta); color: var(--ds-ink); font-weight: 700; }

/* ---------- Notice bar (affiliazione, 18+, licenze) ---------------------- */
.notice-bar { background: var(--ds-bg-deep); border-bottom: 1px solid var(--ds-line); font-size: .8rem; line-height: 1.45; color: var(--ds-muted); }
.notice-bar__inner { max-width: var(--ds-wrap); margin-inline: auto; padding: 10px var(--ds-gutter); display: grid; gap: 6px; }
.notice-bar__item { margin: 0; padding-left: 14px; position: relative; }
.notice-bar__item::before { content: ""; position: absolute; left: 0; top: .45em; width: 6px; height: 6px; border-radius: 50%; background: var(--ds-magenta); }
.notice-bar__item--age::before { background: var(--ds-gold); }
.notice-bar__item--lic::before { background: var(--ds-violet); }
@media (min-width: 900px) { .notice-bar__inner { grid-template-columns: 1.3fr 1fr 1.3fr; gap: 24px; } }

/* ---------- Breadcrumb --------------------------------------------------- */
.crumbs { padding-top: 18px; font-size: .84rem; }
.crumbs__list { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; color: var(--ds-muted); }
.crumbs__item + .crumbs__item::before { content: "›"; margin: 0 .55em; color: var(--ds-magenta); }
.crumbs__link { color: var(--ds-muted); }
.crumbs__link:hover { color: var(--ds-gold); }

/* ---------- Hero --------------------------------------------------------- */
.hero { padding: 34px 0 10px; }
.hero__grid { display: grid; gap: 28px; align-items: center; }
.hero__eyebrow {
  display: inline-block; margin-bottom: 14px; padding: .25rem .8rem; border-radius: var(--ds-pill);
  border: 1px solid var(--ds-magenta); color: var(--ds-magenta-soft);
  font-size: .76rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase;
}
.hero__title span { color: var(--ds-magenta); text-shadow: 0 0 26px rgba(255, 61, 129, .55); }
.hero__lead { font-size: 1.08rem; color: var(--ds-text); max-width: 62ch; }
.hero__meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 18px; padding: 0; list-style: none; font-size: .86rem; color: var(--ds-muted); }
.hero__meta a { color: var(--ds-text); }
.hero__stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; list-style: none; margin: 0; padding: 0; }
.hero__stat { padding: .5rem .7rem; line-height: 1.35; border-radius: var(--ds-radius-sm); background: var(--ds-panel); border: 1px solid var(--ds-line); font-size: .82rem; color: var(--ds-muted); }
.hero__stat b { display: block; font-size: 1.15rem; font-weight: 800; color: var(--ds-gold); line-height: 1.2; }
.hero__reels { display: none; }
@media (min-width: 900px) {
  .hero { padding: 54px 0 18px; }
  .hero__grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .hero__stats { display: flex; flex-wrap: wrap; }
  .hero__reels {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 16px;
    border-radius: 22px; background: linear-gradient(160deg, var(--ds-panel-2), var(--ds-bg-deep));
    border: 1px solid var(--ds-line); box-shadow: var(--ds-glow-m), inset 0 0 40px rgba(143, 91, 255, .25);
    transform: rotate(-2deg);
  }
  .hero__reel { aspect-ratio: 3 / 4; border-radius: 12px; display: grid; place-items: center; }
  .hero__reel:nth-child(2) { transform: translateY(-10px); }
  .hero__reel svg { width: 58%; height: auto; fill: #fff; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .35)); }
}

.page-hero { padding: 22px 0 6px; }
.page-hero__panel {
  position: relative; overflow: hidden; padding: 26px 22px; border-radius: 20px;
  background: linear-gradient(135deg, var(--ds-panel-2) 0%, var(--ds-panel) 55%, #3a1552 100%);
  border: 1px solid var(--ds-line); box-shadow: inset 0 0 60px rgba(143, 91, 255, .16);
}
.page-hero__panel::after {
  content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 61, 129, .45), transparent 68%); pointer-events: none;
}
.page-hero__panel > * { position: relative; z-index: 1; }
.page-hero__title { margin-bottom: .4em; }
.page-hero__lead { max-width: 68ch; margin-bottom: .6em; font-size: 1.05rem; }
.page-hero__meta { margin: 0; font-size: .86rem; color: var(--ds-muted); }
@media (min-width: 720px) { .page-hero__panel { padding: 40px 40px; } }

/* ---------- Sections / prose -------------------------------------------- */
.section { padding: 30px 0; }
.section--panel { background: rgba(18, 10, 38, .55); border-block: 1px solid rgba(64, 48, 122, .55); }
.section__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 6px 20px; margin-bottom: 16px; }
.section__title { margin: 0; }
.section__title::before {
  content: ""; display: inline-block; width: .5em; height: .5em; margin-right: .45em; border-radius: 3px;
  background: var(--ds-magenta); box-shadow: 0 0 12px var(--ds-magenta); transform: rotate(45deg) translateY(-.12em);
}
.section__note { margin: 0; font-size: .82rem; color: var(--ds-muted); }
.prose { max-width: var(--ds-prose); }
.prose > :last-child { margin-bottom: 0; }
.prose > h2 { margin-top: 1.7em; padding-top: .2em; }
.prose > h2:first-child { margin-top: 0; }
.prose > h3 { margin-top: 1.5em; color: var(--ds-gold); }
.prose > ul:not([class]) > li, .prose > ol:not([class]) > li { margin-bottom: .4em; }
.prose > ul:not([class]) > li::marker, .prose > ol:not([class]) > li::marker { color: var(--ds-magenta); font-weight: 700; }
.prose--wide { max-width: none; }
.wrap.prose--wide { max-width: var(--ds-wrap); }
.prose--wide > .table-scroll--facts { max-width: var(--ds-prose); }
.prose--wide > p, .prose--wide > ul:not([class]), .prose--wide > ol, .prose--wide > h2, .prose--wide > h3, .prose--wide > .callout, .prose--wide > .check-list, .prose--wide > .help-list { max-width: var(--ds-prose); }

/* ---------- Slot filter -------------------------------------------------- */
.slot-filter { display: none; }
.js .slot-filter {
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px 20px; margin-bottom: 16px; padding: 14px;
  border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line);
}
.slot-filter__group { display: flex; flex-direction: column; gap: 6px; min-width: 0; border: 0; margin: 0; padding: 0; }
.slot-filter__label { display: block; padding: 0; margin: 0; font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-muted); }
.slot-filter__select {
  appearance: none; min-width: 170px; max-width: 100%; padding: .5rem 2.2rem .5rem .85rem; border-radius: var(--ds-pill);
  border: 1px solid var(--ds-line); color: var(--ds-text); font: inherit; font-size: .9rem; font-weight: 500;
  background: var(--ds-bg-deep) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23ffc857' stroke-width='2'/%3E%3C/svg%3E") no-repeat right .85rem center / 12px 8px;
}
.slot-filter__buttons { display: flex; flex-wrap: wrap; gap: 6px; }
.slot-filter__btn {
  padding: .46rem .9rem; border-radius: var(--ds-pill); border: 1px solid var(--ds-line);
  background: var(--ds-bg-deep); color: var(--ds-text); font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer;
  transition: border-color .15s, box-shadow .15s;
}
.slot-filter__btn:hover { border-color: var(--ds-magenta); }
.slot-filter__btn[aria-pressed="true"] { background: var(--ds-magenta); border-color: var(--ds-magenta); color: var(--ds-ink); box-shadow: var(--ds-glow-m); }
.slot-filter__count { align-self: flex-end; margin: 0 0 0 auto; font-size: .86rem; color: var(--ds-muted); }
.slot-filter__count b { color: var(--ds-gold); }
.slot-grid__empty { margin: 14px 0 0; padding: 18px; border: 1px dashed var(--ds-line); border-radius: var(--ds-radius); text-align: center; color: var(--ds-muted); }

/* ---------- Slot grid + tile --------------------------------------------- */
.slot-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(var(--ds-tile-min), 1fr)); gap: 8px;
  list-style: none; margin: 0; padding: 0;
}
@media (min-width: 420px) { .slot-grid { gap: 14px; } }
@media (min-width: 900px) { .slot-grid { gap: 18px; } }

.slot-tile {
  position: relative; display: flex; flex-direction: column; min-width: 0; overflow: hidden;
  border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.slot-tile[hidden] { display: none; }
.slot-tile:hover, .slot-tile:focus-within { transform: translateY(-3px); border-color: var(--ds-magenta); box-shadow: var(--ds-glow-m); }
.slot-tile__cover { position: relative; aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; }
.slot-tile__cover::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 50% 46%, rgba(255, 255, 255, .34), transparent 52%),
    repeating-linear-gradient(115deg, rgba(255, 255, 255, .07) 0 10px, transparent 10px 22px);
}
.slot-tile__cover::after { content: ""; position: absolute; inset: auto 0 0 0; height: 45%; background: linear-gradient(to top, rgba(18, 10, 38, .6), transparent); }
.slot-tile__cover--v1, .hero__reel--v1, .casino-row__logo--v1 { background: linear-gradient(135deg, #ff3d81, #7b2ff7); }
.slot-tile__cover--v2, .hero__reel--v2, .casino-row__logo--v2 { background: linear-gradient(135deg, #ffc857, #ff3d81); }
.slot-tile__cover--v3, .hero__reel--v3, .casino-row__logo--v3 { background: linear-gradient(135deg, #26d0ce, #5b2be0); }
.slot-tile__cover--v4, .casino-row__logo--v4 { background: linear-gradient(135deg, #8f5bff, #2a1470); }
.slot-tile__cover--v5, .casino-row__logo--v5 { background: linear-gradient(135deg, #ff7a3d, #b5179e); }
.slot-tile__cover--v6, .casino-row__logo--v6 { background: linear-gradient(135deg, #3d5bff, #b23dff); }
.slot-tile__symbol { position: relative; z-index: 1; width: 46%; height: auto; max-height: 72%; fill: #fff; filter: drop-shadow(0 4px 10px rgba(18, 10, 38, .45)); }
.slot-tile__flag {
  position: absolute; z-index: 2; top: 8px; left: 8px; padding: .12rem .55rem; border-radius: var(--ds-pill);
  background: var(--ds-ink); color: var(--ds-gold); border: 1px solid var(--ds-gold);
  font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
}
.slot-tile__body { display: flex; flex-direction: column; flex: 1; gap: 4px; padding: 10px 10px 12px; }
.slot-tile__name { margin: 0; font-size: .98rem; font-weight: 700; line-height: 1.25; color: #fff; }
.slot-tile__provider { margin: 0; font-size: .8rem; color: var(--ds-muted); }
.slot-tile__badges { display: flex; flex-wrap: wrap; gap: 5px; margin: 4px 0 8px; }
.slot-tile__badge { display: inline-block; padding: .14rem .55rem; border-radius: var(--ds-pill); font-size: .72rem; font-weight: 700; line-height: 1.5; white-space: nowrap; border: 1px solid transparent; }
.slot-tile__badge--rtp { background: rgba(255, 200, 87, .14); border-color: rgba(255, 200, 87, .6); color: var(--ds-gold); }
.slot-tile__badge--bassa { background: rgba(79, 224, 214, .12); border-color: rgba(79, 224, 214, .55); color: var(--ds-cyan); }
.slot-tile__badge--media { background: rgba(143, 91, 255, .2); border-color: rgba(170, 135, 255, .7); color: #cdb8ff; }
.slot-tile__badge--alta { background: rgba(255, 61, 129, .15); border-color: rgba(255, 61, 129, .65); color: var(--ds-magenta-soft); }
.slot-tile__link { margin-top: auto; font-size: .86rem; font-weight: 700; color: var(--ds-gold); text-decoration: none; }
.slot-tile__link::after { content: " →"; }
.slot-tile__link:hover { text-decoration: underline; }

/* ---------- Casino list -------------------------------------------------- */
.casino-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.casino-row {
  display: grid; grid-template-columns: auto 52px minmax(0, 1fr); gap: 12px; align-items: center;
  padding: 14px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line);
  transition: border-color .15s, box-shadow .15s;
}
.casino-row:hover { border-color: var(--ds-gold); box-shadow: var(--ds-glow-g); }
.casino-row--top { border-color: var(--ds-magenta); box-shadow: var(--ds-glow-m); }
.casino-row__rank { width: 1.9rem; height: 1.9rem; display: grid; place-items: center; border-radius: 50%; background: var(--ds-bg-deep); border: 1px solid var(--ds-line); font-size: .86rem; font-weight: 800; color: var(--ds-gold); }
.casino-row__logo { width: 52px; height: 52px; display: grid; place-items: center; border-radius: 12px; font-size: 1rem; font-weight: 900; color: #fff; letter-spacing: -.02em; text-shadow: 0 1px 3px rgba(18, 10, 38, .6); }
.casino-row__name { margin: 0; font-size: 1.05rem; color: #fff; }
.casino-row__meta { margin: 0; font-size: .78rem; color: var(--ds-muted); }
.casino-row__facts { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.6fr); gap: 10px; margin: 0; }
.casino-row__fact { min-width: 0; padding: 8px 10px; border-radius: var(--ds-radius-sm); background: var(--ds-bg-deep); }
.casino-row__fact dt { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-muted); }
.casino-row__fact dd { margin: 0; font-size: .92rem; font-weight: 600; line-height: 1.35; color: #fff; }
.casino-row__rating { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; font-size: .9rem; }
.casino-row__score { font-weight: 800; color: var(--ds-gold); }
.casino-row__actions { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: stretch; gap: 6px; text-align: center; }
.casino-row__cta, .btn {
  display: inline-flex; align-items: center; justify-content: center; padding: .72rem 1.25rem; border-radius: var(--ds-pill);
  background: linear-gradient(135deg, #ff3d81, #ff6b9d); color: var(--ds-ink); border: 0; cursor: pointer;
  font: inherit; font-weight: 800; font-size: .96rem; text-decoration: none; text-align: center;
  box-shadow: 0 6px 20px rgba(255, 61, 129, .35); transition: transform .15s, box-shadow .15s, filter .15s;
}
.casino-row__cta:hover, .btn:hover { color: var(--ds-ink); transform: translateY(-1px); filter: brightness(1.08); box-shadow: 0 8px 28px rgba(255, 61, 129, .55); }
.btn--gold { background: linear-gradient(135deg, #ffc857, #ffdc8f); box-shadow: 0 6px 20px rgba(255, 200, 87, .28); }
.btn--gold:hover { box-shadow: 0 8px 28px rgba(255, 200, 87, .45); }
.btn--ghost { background: transparent; color: var(--ds-text); border: 1px solid var(--ds-line); box-shadow: none; }
.btn--ghost:hover { color: #fff; border-color: var(--ds-magenta); box-shadow: var(--ds-glow-m); }
.casino-row__review { font-size: .84rem; color: var(--ds-text); }
.casino-row__review--soon { color: var(--ds-muted); font-style: italic; }
@media (min-width: 900px) {
  .casino-row { grid-template-columns: auto 56px minmax(0, 1.1fr) minmax(0, 2.2fr) auto 170px; gap: 18px; padding: 14px 18px; }
  .casino-row__logo { width: 56px; height: 56px; }
  .casino-row__facts, .casino-row__rating, .casino-row__actions { grid-column: auto; }
  .casino-row__rating { flex-direction: column; align-items: flex-start; gap: 2px; }
}

.star-meter {
  --ds-score: 0; display: inline-block; flex: none; width: 5.5em; height: 1.1em;
  background: linear-gradient(90deg, var(--ds-gold) calc(var(--ds-score) / 5 * 100%), #55458a 0);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1.5l2.6 5.4 5.9.8-4.3 4.1 1 5.9L10 14.9l-5.2 2.8 1-5.9L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") 0 0 / 1.1em 1.1em repeat-x;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M10 1.5l2.6 5.4 5.9.8-4.3 4.1 1 5.9L10 14.9l-5.2 2.8 1-5.9L1.5 7.7l5.9-.8z'/%3E%3C/svg%3E") 0 0 / 1.1em 1.1em repeat-x;
}

/* ---------- Tables ------------------------------------------------------- */
.table-scroll { margin: 0 0 1.3em; overflow-x: auto; border-radius: var(--ds-radius); border: 1px solid var(--ds-line); background: var(--ds-panel); }
.data-table { width: 100%; min-width: 540px; border-collapse: collapse; font-size: .92rem; }
.data-table caption { caption-side: bottom; padding: 9px 14px; text-align: left; font-size: .78rem; color: var(--ds-muted); border-top: 1px solid var(--ds-line); }
.data-table th, .data-table td { padding: 11px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(64, 48, 122, .7); }
.data-table thead th { background: var(--ds-bg-deep); color: var(--ds-gold); font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.data-table tbody th { font-weight: 700; color: #fff; }
.data-table tbody tr:last-child > * { border-bottom: 0; }
.data-table tbody tr:hover > * { background: rgba(143, 91, 255, .1); }
.data-table--facts { min-width: 0; }
.data-table--facts tbody th { width: 42%; color: var(--ds-muted); font-weight: 600; }

.pill { display: inline-block; padding: .12rem .6rem; border-radius: var(--ds-pill); font-size: .76rem; font-weight: 700; white-space: nowrap; border: 1px solid var(--ds-line); background: var(--ds-bg-deep); color: var(--ds-text); }
.pill--gold { border-color: rgba(255, 200, 87, .6); color: var(--ds-gold); }
.pill--bassa { border-color: rgba(79, 224, 214, .55); color: var(--ds-cyan); }
.pill--media { border-color: rgba(170, 135, 255, .7); color: #cdb8ff; }
.pill--alta { border-color: rgba(255, 61, 129, .65); color: var(--ds-magenta-soft); }
.pill-list { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0 0 1.1em; padding: 0; }

/* ---------- Cards, steps, pro/contro, callout --------------------------- */
.card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(230px, 100%), 1fr)); gap: 14px; list-style: none; margin: 0 0 1.3em; padding: 0; }
.info-card { padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.info-card__icon { width: 38px; height: 38px; margin-bottom: 10px; padding: 8px; border-radius: 10px; background: linear-gradient(135deg, #ff3d81, #7b2ff7); fill: #fff; display: block; }
.info-card__title { margin: 0 0 .35em; font-size: 1.04rem; color: #fff; }
.info-card__text { margin: 0; font-size: .92rem; color: var(--ds-muted); }
.info-card__value { display: block; margin-bottom: 4px; font-size: 1.5rem; font-weight: 900; color: var(--ds-gold); line-height: 1.1; }

.step-list { list-style: none; counter-reset: step; margin: 0 0 1.3em; padding: 0; display: grid; gap: 10px; }
.step-list__item { counter-increment: step; position: relative; padding: 16px 16px 16px 66px; min-height: 66px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.step-list__item::before {
  content: counter(step); position: absolute; left: 14px; top: 14px; width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 50%; background: var(--ds-bg-deep); border: 2px solid var(--ds-magenta); color: var(--ds-magenta-soft);
  font-weight: 900; font-size: 1.05rem; box-shadow: 0 0 14px rgba(255, 61, 129, .45);
}
.step-list__title { margin: 0 0 .25em; font-size: 1.04rem; color: #fff; }
.step-list__text { margin: 0; font-size: .94rem; color: var(--ds-muted); }

.pro-con { display: grid; gap: 14px; margin: 0 0 1.3em; }
@media (min-width: 720px) { .pro-con { grid-template-columns: 1fr 1fr; } }
.pro-con__col { padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); border-top: 3px solid var(--ds-cyan); }
.pro-con__col--con { border-top-color: var(--ds-magenta); }
.pro-con__title { margin: 0 0 .6em; font-size: 1.04rem; color: var(--ds-cyan); }
.pro-con__col--con .pro-con__title { color: var(--ds-magenta-soft); }
.pro-con__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: .94rem; }
.pro-con__list li { position: relative; padding-left: 1.6em; margin: 0; }
.pro-con__list li::before { content: "+"; position: absolute; left: 0; top: 0; width: 1.15em; font-weight: 900; color: var(--ds-cyan); text-align: center; }
.pro-con__col--con .pro-con__list li::before { content: "–"; color: var(--ds-magenta); }

.callout { margin: 0 0 1.3em; padding: 16px 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); border-left: 4px solid var(--ds-gold); }
.callout--warn { border-left-color: var(--ds-magenta); }
.callout--note { border-left-color: var(--ds-violet); }
.callout__title { margin: 0 0 .3em; font-size: .78rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: var(--ds-gold); }
.callout--warn .callout__title { color: var(--ds-magenta-soft); }
.callout--note .callout__title { color: #cdb8ff; }
.callout > :last-child { margin-bottom: 0; }

.cta-band {
  display: grid; gap: 14px; align-items: center; margin: 0 0 1.3em; padding: 20px; border-radius: var(--ds-radius);
  background: linear-gradient(135deg, #3a1552, var(--ds-panel-2)); border: 1px solid var(--ds-magenta); box-shadow: var(--ds-glow-m);
}
.cta-band__title { margin: 0 0 .2em; font-size: 1.15rem; font-weight: 800; color: #fff; }
.cta-band__text { margin: 0; font-size: .92rem; color: var(--ds-muted); }
.cta-band__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.cta-band__note { margin: 0; font-size: .76rem; color: var(--ds-muted); }
@media (min-width: 720px) { .cta-band { grid-template-columns: 1fr auto; padding: 24px 28px; } }

/* ---------- Paytable (key facts) ---------------------------------------- */
.paytable { margin: 0 0 1.5em; border-radius: 18px; overflow: hidden; background: var(--ds-bg-deep); border: 2px solid var(--ds-gold); box-shadow: var(--ds-glow-g), inset 0 0 50px rgba(143, 91, 255, .2); }
.paytable__head { margin: 0; padding: 10px 16px; background: linear-gradient(90deg, #ffc857, #ff3d81); color: var(--ds-ink); font-size: .84rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; text-align: center; }
.paytable__rows { list-style: none; margin: 0; padding: 6px 0; }
.paytable__row { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 4px 12px; align-items: center; margin: 0; padding: 10px 16px; border-bottom: 1px dashed rgba(64, 48, 122, .9); }
.paytable__row:last-child { border-bottom: 0; }
.paytable__symbol { grid-row: span 2; width: 44px; height: 44px; padding: 9px; border-radius: 10px; fill: #fff; }
.paytable__label { font-size: .9rem; color: var(--ds-muted); line-height: 1.35; }
.paytable__value { font-size: 1.02rem; font-weight: 800; color: var(--ds-gold); line-height: 1.3; }
@media (min-width: 560px) {
  .paytable__row { grid-template-columns: 44px minmax(0, 1fr) auto; }
  .paytable__symbol { grid-row: auto; }
  .paytable__value { text-align: right; }
}

/* ---------- FAQ accordion ------------------------------------------------ */
.faq-acc { display: grid; gap: 10px; max-width: var(--ds-prose); }
.faq-acc__item { border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); overflow: hidden; }
.faq-acc__heading { margin: 0; font-size: 1rem; }
.faq-acc__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 15px 16px;
  background: none; border: 0; color: #fff; font: inherit; font-weight: 700; text-align: left; cursor: pointer;
}
.faq-acc__btn:hover { color: var(--ds-gold); }
.faq-acc__btn::after {
  content: ""; flex: none; width: 10px; height: 10px; margin-right: 4px; border-right: 2px solid var(--ds-magenta); border-bottom: 2px solid var(--ds-magenta);
  transform: rotate(45deg); transition: transform .2s;
}
.faq-acc__btn[aria-expanded="true"]::after { transform: rotate(-135deg) translate(-3px, -3px); }
.faq-acc__panel { padding: 0 16px 16px; color: var(--ds-text); font-size: .96rem; }
.faq-acc__panel[hidden] { display: none; }
.faq-acc__panel > :last-child { margin-bottom: 0; }

/* ---------- Author / team ------------------------------------------------ */
.author-card { display: grid; gap: 14px; max-width: var(--ds-prose); padding: 20px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.author-card__avatar { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #ffc857, #ff3d81); color: var(--ds-ink); font-size: 1.3rem; font-weight: 900; }
.author-card__label { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-magenta-soft); }
.author-card__name { margin: 0 0 .1em; font-size: 1.15rem; font-weight: 800; color: #fff; }
.author-card__role { margin: 0 0 .5em; font-size: .86rem; color: var(--ds-gold); }
.author-card__bio { margin: 0 0 .5em; font-size: .94rem; color: var(--ds-muted); }
.author-card__meta { margin: 0; font-size: .84rem; color: var(--ds-muted); }
@media (min-width: 560px) { .author-card { grid-template-columns: 64px minmax(0, 1fr); gap: 18px; padding: 24px; } }

/* ---------- Review ------------------------------------------------------- */
.score-card { display: grid; gap: 20px; padding: 20px; border-radius: 20px; background: linear-gradient(150deg, var(--ds-panel-2), var(--ds-panel)); border: 1px solid var(--ds-magenta); box-shadow: var(--ds-glow-m); }
.score-card__id { display: flex; align-items: center; gap: 14px; min-width: 0; }
.score-card__logo { flex: none; width: 68px; height: 68px; font-size: 1.3rem; border-radius: 16px; }
.score-card__name { margin: 0; font-size: 1.3rem; color: #fff; }
.score-card__tag { margin: 0; font-size: .84rem; color: var(--ds-muted); }
.score-card__ring {
  --ds-pct: 0; width: 128px; height: 128px; margin: 0 auto; display: grid; place-items: center; border-radius: 50%;
  background: radial-gradient(closest-side, var(--ds-panel) 80%, transparent 81%), conic-gradient(var(--ds-gold) calc(var(--ds-pct) * 1%), #4a3a78 0);
  box-shadow: 0 0 28px rgba(255, 200, 87, .25);
}
.score-card__num { margin: 0; font-size: 2.3rem; font-weight: 900; color: var(--ds-gold); line-height: 1; text-align: center; }
.score-card__num small { display: block; margin-top: 4px; font-size: .72rem; font-weight: 600; color: var(--ds-muted); }
.score-card__bars { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.score-card__bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; font-size: .88rem; }
.score-card__bar b { color: var(--ds-gold); }
.score-card__track { grid-column: 1 / -1; height: 8px; border-radius: var(--ds-pill); background: var(--ds-bg-deep); overflow: hidden; }
.score-card__fill { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #ff3d81, #ffc857); }
.score-card__offer { padding: 16px; border-radius: var(--ds-radius); background: var(--ds-bg-deep); border: 1px dashed var(--ds-gold); text-align: center; }
.score-card__offer-label { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-muted); }
.score-card__offer-value { margin: .15em 0 .7em; font-size: 1.2rem; font-weight: 800; color: #fff; line-height: 1.3; }
.score-card__offer .btn { width: 100%; }
.score-card__offer-note { margin: .7em 0 0; font-size: .74rem; color: var(--ds-muted); }
@media (min-width: 900px) {
  .score-card { grid-template-columns: 150px minmax(0, 1fr) 290px; align-items: center; padding: 28px; gap: 28px; }
  .score-card__id { grid-column: 1 / -1; }
}

/* ---------- Guide layout ------------------------------------------------- */
.article-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.toc { padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.toc__title { margin: 0 0 .6em; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-gold); }
.toc__list { margin: 0; padding: 0; list-style: none; counter-reset: toc; display: grid; gap: 6px; font-size: .93rem; }
.toc__list li { counter-increment: toc; display: flex; gap: .6em; }
.toc__list li::before { content: counter(toc, decimal-leading-zero); color: var(--ds-magenta); font-weight: 800; font-size: .8rem; padding-top: .15em; }
.toc__list a { color: var(--ds-text); text-decoration: none; }
.toc__list a:hover { color: var(--ds-gold); text-decoration: underline; }
@media (min-width: 980px) {
  .article-layout { grid-template-columns: 260px minmax(0, 1fr); gap: 44px; align-items: start; }
  .toc { position: sticky; top: 18px; }
}

/* ---------- Forms -------------------------------------------------------- */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 22px; }
@media (min-width: 860px) { .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 32px; align-items: start; } }
.contact-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.contact-list__item { padding: 16px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.contact-list__label { margin: 0; font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-magenta-soft); }
.contact-list__value { margin: .1em 0 0; font-weight: 600; color: #fff; }
.contact-list__hint { margin: .2em 0 0; font-size: .86rem; color: var(--ds-muted); }
.form { display: grid; gap: 14px; padding: 20px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); }
.form__title { margin: 0; }
.form__field { display: grid; gap: 6px; }
.form__label { font-size: .88rem; font-weight: 600; }
.form__input, .form__textarea, .form__select {
  width: 100%; padding: .7rem .85rem; border-radius: var(--ds-radius-sm); border: 1px solid var(--ds-line);
  background: var(--ds-bg-deep); color: var(--ds-text); font: inherit;
}
.form__textarea { min-height: 140px; resize: vertical; }
.form__input:focus-visible, .form__textarea:focus-visible, .form__select:focus-visible { border-color: var(--ds-gold); }
.form__check { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; font-size: .88rem; color: var(--ds-muted); }
.form__check input, .check-list__item input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--ds-magenta); }
.form__note { margin: 0; font-size: .8rem; color: var(--ds-muted); }

.check-list { list-style: none; margin: 0 0 1.3em; padding: 0; display: grid; gap: 8px; }
.check-list__item { margin: 0; }
.check-list__item label { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 12px 14px; border-radius: var(--ds-radius-sm); background: var(--ds-panel); border: 1px solid var(--ds-line); cursor: pointer; }
.check-list__item label:hover { border-color: var(--ds-magenta); }

.help-list { list-style: none; margin: 0 0 1.3em; padding: 0; display: grid; gap: 12px; }
.help-list__item { margin: 0; padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); border-left: 4px solid var(--ds-gold); }
.help-list__name { margin: 0 0 .2em; font-size: 1.05rem; color: #fff; }
.help-list__phone { display: inline-block; margin: 0 0 .3em; font-size: 1.5rem; font-weight: 900; color: var(--ds-gold); text-decoration: none; letter-spacing: .02em; }
.help-list__text { margin: 0; font-size: .92rem; color: var(--ds-muted); }

.age-badge { display: inline-grid; place-items: center; flex: none; width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--ds-magenta); color: #fff; font-weight: 900; font-size: .95rem; }

.updated { margin: 22px 0 0; font-size: .86rem; color: var(--ds-muted); }
.error-box { padding: 60px 0 70px; text-align: center; }
.error-box__code { margin: 0; font-size: clamp(5rem, 26vw, 10rem); font-weight: 900; line-height: 1; color: var(--ds-magenta); text-shadow: 0 0 40px rgba(255, 61, 129, .6); }
.error-box__code span { color: var(--ds-gold); text-shadow: 0 0 40px rgba(255, 200, 87, .5); }
.error-box__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 22px; }

/* ---------- Footer ------------------------------------------------------- */
.site-foot { margin-top: 40px; background: var(--ds-bg-deep); border-top: 1px solid var(--ds-line); font-size: .9rem; color: var(--ds-muted); }
.site-foot__grid { display: grid; gap: 28px; padding-block: 36px 24px; }
.site-foot__about p { margin: 12px 0 0; max-width: 44ch; }
.site-foot__title { margin: 0 0 .7em; font-size: .76rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-gold); }
.site-foot__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 7px; }
.site-foot__links a { color: var(--ds-text); text-decoration: none; }
.site-foot__links a:hover { color: var(--ds-gold); text-decoration: underline; }
.site-foot__rg { display: flex; gap: 14px; align-items: flex-start; padding: 18px 0; border-top: 1px solid var(--ds-line); }
.site-foot__rg p { margin: 0; font-size: .84rem; }
.site-foot__legal { padding: 16px 0 28px; border-top: 1px solid var(--ds-line); font-size: .8rem; }
.site-foot__legal p { margin: 0 0 .5em; }
@media (min-width: 560px) { .site-foot__grid { grid-template-columns: 1fr 1fr; } .site-foot__about { grid-column: 1 / -1; } }
@media (min-width: 900px) { .site-foot__grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; } .site-foot__about { grid-column: auto; } }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .slot-tile:hover, .slot-tile:focus-within, .casino-row__cta:hover, .btn:hover { transform: none; }
}

/* ---------- Spacing helpers --------------------------------------------- */
.wrap--spaced { margin-top: 26px; }
.section__note--foot { margin-top: 14px; }

/* ==========================================================================
   Fase 2: firma, fonti, LinkedIn, box test, indice recensioni, pagina autore
   ========================================================================== */
.byline { margin: 0 0 18px; font-size: .86rem; line-height: 1.6; color: var(--ds-muted); }
.page-hero__panel .byline { margin-bottom: 0; }
.byline a { color: var(--ds-text); }
.byline a:hover { color: var(--ds-gold); }

.btn-in {
  display: inline-flex; align-items: center; gap: .55rem; margin-top: 12px; padding: .42rem .95rem .42rem .5rem;
  border-radius: var(--ds-pill); border: 1px solid var(--ds-gold); color: var(--ds-gold);
  font-size: .86rem; font-weight: 700; text-decoration: none; transition: background-color .15s, color .15s, box-shadow .15s;
}
.btn-in:hover { background: var(--ds-gold); color: var(--ds-ink); box-shadow: var(--ds-glow-g); }
.btn-in__glyph { width: 22px; height: 22px; flex: none; fill: var(--ds-gold); }
.btn-in__ink { fill: var(--ds-ink); }
.btn-in:hover .btn-in__glyph { fill: var(--ds-ink); }
.btn-in:hover .btn-in__ink { fill: var(--ds-gold); }
.author-card__name a { color: inherit; text-decoration-color: var(--ds-magenta); }
.author-card[id] { scroll-margin-top: 1rem; }

.sources { max-width: var(--ds-prose); padding: 18px 20px; border-radius: var(--ds-radius); border: 1px dashed var(--ds-line); background: rgba(18, 10, 38, .5); }
.sources__title { margin: 0 0 .6em; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ds-gold); }
.sources__list { margin: 0; padding-left: 1.3em; display: grid; gap: 6px; font-size: .88rem; color: var(--ds-muted); }
.sources__list li::marker { color: var(--ds-magenta); font-weight: 700; }

.casino-row__facts { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.casino-row__fact--wide { grid-column: 1 / -1; }
@media (min-width: 900px) {
  .casino-row { grid-template-columns: auto 56px minmax(0, 1fr) minmax(0, 2.6fr) auto 170px; }
  .casino-row__facts { grid-template-columns: minmax(96px, auto) minmax(96px, auto) minmax(0, 1fr); }
  .casino-row__fact dt { white-space: nowrap; }
  .casino-row__fact--wide { grid-column: auto; }
}

.score-card__metrics { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.score-card__metric { padding: 12px 14px; border-radius: var(--ds-radius-sm); background: var(--ds-bg-deep); border: 1px solid var(--ds-gold); box-shadow: var(--ds-glow-g); font-size: .8rem; color: var(--ds-muted); line-height: 1.3; }
.score-card__metric b { display: block; font-size: 1.6rem; font-weight: 900; color: var(--ds-gold); line-height: 1.1; }

.test-box { margin-top: 18px; padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); border-left: 4px solid var(--ds-cyan); }
.test-box__title { margin: 0 0 .7em; font-size: 1.15rem; }
.test-box__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr)); gap: 10px; margin: 0; }
.test-box__item { padding: 10px 12px; border-radius: var(--ds-radius-sm); background: var(--ds-bg-deep); }
.test-box__item dt { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-cyan); }
.test-box__item dd { margin: 2px 0 0; font-size: .9rem; color: var(--ds-muted); font-style: italic; }
.test-box__note { margin: 12px 0 0; font-size: .82rem; color: var(--ds-muted); }

.review-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: 16px; }
.review-card { display: flex; flex-direction: column; gap: 12px; padding: 18px; border-radius: var(--ds-radius); background: var(--ds-panel); border: 1px solid var(--ds-line); transition: border-color .15s, box-shadow .15s; }
.review-card:hover { border-color: var(--ds-magenta); box-shadow: var(--ds-glow-m); }
.review-card__head { display: flex; align-items: center; gap: 12px; }
.review-card__name { margin: 0; font-size: 1.15rem; color: #fff; }
.review-card__score { display: flex; align-items: center; gap: 8px; margin: 2px 0 0; font-size: .9rem; }
.review-card__score b { color: var(--ds-gold); }
.review-card__facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.review-card__facts > div:last-child { grid-column: 1 / -1; }
.review-card__facts > div { min-width: 0; padding: 8px 10px; border-radius: var(--ds-radius-sm); background: var(--ds-bg-deep); }
.review-card__facts dt { font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-muted); }
.review-card__facts dd { margin: 0; font-size: .9rem; font-weight: 700; color: var(--ds-gold); line-height: 1.3; }
.review-card__verdict { flex: 1; margin: 0; font-size: .92rem; color: var(--ds-text); }
.review-card__actions { display: grid; gap: 8px; }

.profile-hero { display: grid; gap: 18px; }
.profile-hero__portrait { width: 96px; height: 96px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #ffc857, #ff3d81); color: var(--ds-ink); font-size: 2rem; font-weight: 900; box-shadow: 0 0 0 4px var(--ds-bg-deep), 0 0 0 5px var(--ds-gold), 0 0 26px rgba(255, 200, 87, .35); }
.profile-hero__role { margin: 0 0 .6em; font-weight: 600; color: var(--ds-gold); }
@media (min-width: 720px) { .profile-hero { grid-template-columns: 120px minmax(0, 1fr); align-items: start; gap: 28px; } .profile-hero__portrait { width: 120px; height: 120px; font-size: 2.5rem; } }

/* ---------- aggiunte del build ---------- */
/* DossierSlot: schedario, conto del budget, loghi, esiti e ritocchi per telefono.
   Movimento: solo transform e opacity, ease-out forte, hover solo con mouse, pressione su :active. */
:root { --ds-ease: cubic-bezier(.23, 1, .32, 1); }
html { -webkit-tap-highlight-color: transparent; }
a, button, select, summary, .slot-filter__btn { touch-action: manipulation; }
button, .btn, .casino-row__cta, .slot-filter__btn, .chip-rail__chip { -webkit-user-select: none; user-select: none; }
input, select, textarea { font-size: 16px; }

/* occhiello delle sezioni e apertura */
.ds-eyebrow { margin: 0 0 .35rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ds-magenta-soft); }
.ds-intro { font-size: 1.06rem; color: var(--ds-text); }
.section > .wrap > .prose, .section > .wrap > .table-scroll, .section > .wrap > .pro-con, .section > .wrap > .step-list, .section > .wrap > .faq-acc { margin-top: 1rem; }
.prose + .table-scroll, .table-scroll + .prose, .prose + .prose { margin-top: 1.1rem; }
.prose h3 { margin-top: 1.4em; }
.section__head { flex-direction: column; align-items: flex-start; gap: 0; }

/* ---------- schedario ---------- */
.sched { margin-top: 1rem; display: grid; gap: 18px; }
.sched-bolli { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.sched-bolli li { padding: 4px 12px; border-radius: var(--ds-pill); font-size: .8rem; font-weight: 700; color: var(--ds-ink); background: var(--ds-gold); }
.sched-bolli li:nth-child(2) { background: var(--ds-cyan); }
.sched-bolli li:nth-child(3) { background: var(--ds-magenta-soft); }
.sched-filter { margin: 0; }
.sched-search { min-width: 0; width: 100%; background-image: none; padding-right: 14px; -webkit-appearance: none; appearance: none; }
.sched > .sched-calc + .sched-filter { margin-top: 6px; }
.sched-tile__acts { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: .6rem 0 0; }
.sched-pick {
  font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; border: 0; border-radius: var(--ds-pill);
  padding: 6px 14px; color: var(--ds-ink); background: var(--ds-gold);
  transition: transform 140ms var(--ds-ease), background-color 140ms ease;
}
.sched-pick:active { transform: scale(.96); }
.slot-tile .slot-tile__link { margin-top: 0; }
.slot-tile .slot-tile__link::after { display: none; }

.sched-calc {
  border-radius: 18px; padding: 20px; background: linear-gradient(160deg, var(--ds-panel-2), var(--ds-panel));
  border: 1px solid var(--ds-line); box-shadow: var(--ds-glow-g);
}
.sched-calc.is-flash { animation: sched-flash 700ms var(--ds-ease); }
@keyframes sched-flash { 0% { box-shadow: 0 0 0 3px var(--ds-gold), 0 0 34px rgba(255, 200, 87, .55); } 100% { box-shadow: var(--ds-glow-g); } }
.sched-calc__title { margin: 0 0 .8rem; font-size: 1.25rem; }
.sched-calc__fields { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
.sched-field { display: grid; gap: 6px; font-size: .85rem; font-weight: 600; color: var(--ds-muted); }
.sched-field--wide { grid-column: 1 / -1; }
.sched-in { position: relative; display: block; }
.sched-in i { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-style: normal; font-weight: 700; color: var(--ds-gold); pointer-events: none; }
.sched-field input, .sched-field select {
  width: 100%; min-height: 48px; padding: 10px 36px 10px 14px; border-radius: 12px; border: 1px solid var(--ds-line);
  background: var(--ds-bg-deep); color: var(--ds-text); font-family: inherit; font-weight: 700;
}
.sched-field select { padding-right: 14px; }
.sched-field input:focus-visible, .sched-field select:focus-visible { outline: 3px solid var(--ds-gold); outline-offset: 2px; }
.sched-out { display: block; margin-top: 16px; }
.sched-stats { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sched-stat { padding: 12px 14px; border-radius: 12px; background: rgba(18, 10, 38, .55); border: 1px solid var(--ds-line); display: grid; gap: 2px; align-content: start; }
.sched-stat small { color: var(--ds-muted); font-size: .76rem; line-height: 1.3; }
.sched-stat b { font-size: 1.35rem; color: var(--ds-gold); font-variant-numeric: tabular-nums; line-height: 1.2; }
.sched-stat span { font-size: .74rem; color: var(--ds-muted); }
.sched-line { margin: 14px 0 0; font-size: .95rem; }
.sched-nota { margin: 0; font-size: .8rem; color: var(--ds-muted); }
.sched-duo { display: grid; gap: 18px; }
.sched-card { margin: 0; }
.sched-card__feat, .sched-card__src { margin: .8rem 0 0; font-size: .9rem; }
.sched-card__src { color: var(--ds-muted); font-size: .8rem; }
.sched-card .sched-card__feat, .sched-card .sched-card__src { padding: 0 14px; }
.sched-card .sched-card__src { padding-bottom: 14px; }
@media (min-width: 720px) {
  .sched-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .sched-calc__fields { grid-template-columns: 1fr 1fr 2fr; }
  .sched-field--wide { grid-column: auto; }
}
@media (min-width: 960px) {
  .sched-duo { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); align-items: start; }
  .sched-duo .sched-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sched-duo .sched-calc__fields { grid-template-columns: 1fr 1fr; }
  .sched-duo .sched-field--wide { grid-column: 1 / -1; }
}

/* loghi reali degli operatori nelle righe e nella score card */
.ds-logo { padding: 0; overflow: hidden; background: #fff; }
.ds-logo img { width: 100%; height: 100%; object-fit: contain; display: block; }

/* esiti nelle tabelle */
.ds-si, .ds-no { display: inline-block; padding: 1px 10px; border-radius: var(--ds-pill); font-size: .82rem; font-weight: 700; white-space: nowrap; }
.ds-si { color: var(--ds-ink); background: var(--ds-cyan); }
.ds-no { color: var(--ds-muted); background: rgba(185, 174, 224, .12); border: 1px solid var(--ds-line); }
.ds-go {
  display: inline-block; padding: 5px 14px; border-radius: var(--ds-pill); font-weight: 700; font-size: .85rem; text-decoration: none;
  color: #fff; background: var(--ds-magenta); transition: transform 140ms var(--ds-ease);
}
.ds-go:active { transform: scale(.96); }
.data-table td, .data-table th { vertical-align: top; }
.pill-list a.pill { text-decoration: none; }

/* pressione e hover: hover solo con un puntatore preciso */
.btn, .casino-row__cta, .slot-filter__btn, .chip-rail__chip { transition: transform 140ms var(--ds-ease), background-color 160ms ease, color 160ms ease, box-shadow 160ms ease; }
.btn:active, .casino-row__cta:active, .slot-filter__btn:active, .chip-rail__chip:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
  .sched-pick:hover { background: #ffd885; }
  .ds-go:hover { background: #ff5c96; color: #fff; }
}
@media (hover: none), (pointer: coarse) {
  .slot-tile:hover, .casino-row:hover { transform: none; }
}

/* telefono: la barra dei capitoli resta in alto senza far saltare la pagina */
.chip-rail__list { overscroll-behavior-x: contain; }
.table-scroll { overscroll-behavior-x: contain; }

/* prima apparizione: le tile entrano in sequenza breve */
@media (prefers-reduced-motion: no-preference) {
  .js .sched .slot-tile { animation: sched-in 320ms var(--ds-ease) both; }
  .js .sched .slot-tile:nth-child(2) { animation-delay: 30ms; }
  .js .sched .slot-tile:nth-child(3) { animation-delay: 60ms; }
  .js .sched .slot-tile:nth-child(4) { animation-delay: 90ms; }
  .js .sched .slot-tile:nth-child(5) { animation-delay: 120ms; }
  .js .sched .slot-tile:nth-child(6) { animation-delay: 150ms; }
  .js .sched .slot-tile:nth-child(n+7) { animation-delay: 180ms; }
  @keyframes sched-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) {
  .sched-calc.is-flash { animation: none; }
}

/* immagini dei giochi nelle tile e nella scheda */
.slot-tile__cover--img::before, .slot-tile__cover--img::after { display: none; }
.slot-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.slot-tile__cover--img .slot-tile__flag { z-index: 1; box-shadow: 0 2px 10px rgba(0, 0, 0, .45); }
.sched-card__img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
@media (hover: hover) and (pointer: fine) {
  .slot-tile__img { transition: transform 260ms var(--ds-ease); }
  .slot-tile:hover .slot-tile__img { transform: scale(1.04); }
}

/* ritratti della redazione */
.author-card__avatar { overflow: hidden; padding: 0; }
.ds-face { display: block; border-radius: 50%; object-fit: cover; }
.author-card__avatar .ds-face { width: 100%; height: 100%; }
.ds-face--mid { width: 96px; height: 96px; flex: none; box-shadow: 0 0 0 3px var(--ds-gold); }
.ds-face--big { width: 160px; height: 160px; margin-top: 18px; box-shadow: 0 0 0 4px var(--ds-gold), var(--ds-glow-m); }
.ds-team { display: grid; gap: 16px; margin-top: 1rem; }
.ds-person { display: flex; gap: 18px; align-items: flex-start; padding: 18px; border-radius: 16px; background: var(--ds-panel); border: 1px solid var(--ds-line); }
.ds-person .author-card__bio { margin: 0; }
@media (min-width: 720px) { .ds-team { grid-template-columns: 1fr 1fr; } }
