/*
 * Editorial portal stylesheet — rebuilt component architecture.
 * Base/variables -> controls -> ranking -> reading -> data -> closing -> policy -> responsive.
 * The cascade and computed geometry are retained from the supplied source.
 */
:root {
  --body-ink:#192c28;
  --secondary-ink:#63756f;
  --primary-green:#11794d;
  --deep-green:#085c39;
  --signal-red:#c84240;
  --line-subtle:#dce7e1;
  --page-tint:#f6f9f7;
  --pure-white:#fff;
  --card-elevation:0 14px 32px rgba(24,51,40,.055);
}

body {
  overflow-x:clip;
}

button,a {
  touch-action:manipulation;
}

a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid #d4664d;
  outline-offset:3px;
}

a:hover {
  color:var(--deep-green);
}

:is(.masthead-action, .entry-action-link):hover {
  background:var(--deep-green);
  color:white;
}

img,svg {
  max-width:100%;
}

section[id],h2[id],h3[id],details[id] {
  scroll-margin-top:88px;
}

.primary-links a:hover {
  color:var(--primary-green);
}

.comparison-heading {
  max-width:1120px;
}

.comparison-notice {
  background:#ecf6f1;
  border:1px solid #d5e7dc;
  padding:10px 13px;
  border-radius:10px;
  color:#385a47;
  font-size:.78rem;
  line-height:1.55;
  margin:0 0 12px;
  display:flex;
  align-items:flex-start;
  gap:9px;
}

.notice-marker {
  display:block;
  width:8px;
  height:8px;
  flex:none;
  border-radius:50%;
  background:#13834f;
  margin-top:6px;
}

.offer-collection {
  display:grid;
  gap:12px;
}

.offer-entry {
  background:white;
  border:1px solid var(--line-subtle);
  border-radius:15px;
  box-shadow:var(--card-elevation);
  min-width:0;
  overflow:hidden;
}

.offer-entry:first-child {
  border-color:#afd9c1;
}

.offer-entry--limited {
  border-color:#edcfcd;
  background:#fffdfc;
}

.entry-grid {
  padding:14px;
  display:grid;
  gap:13px;
}

.entry-identity {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}

.entry-index {
  display:flex;
  align-items:center;
  justify-content:center;
  flex:none;
  width:30px;
  height:30px;
  background:#edf4ef;
  color:#277650;
  border-radius:9px;
  font-weight:800;
  font-size:.76rem;
}

.offer-entry:first-child .entry-index {
  background:#14774b;
  color:white;
}

.entry-emblem {
  width:74px;
  height:54px;
  display:grid;
  place-items:center;
  flex:none;
  background:#f9fbfa;
  border:1px solid #ebf1ed;
  border-radius:9px;
  overflow:hidden;
}

.entry-emblem img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  aspect-ratio:14/9;
  padding:3px;
}

.entry-heading {
  min-width:0;
}

.entry-heading h3 {
  font-size:1rem;
  line-height:1.2;
  letter-spacing:-.015em;
  margin:0 0 5px;
}

.entry-tag {
  display:inline-flex;
  background:#edf6f0;
  color:#22744b;
  border-radius:20px;
  padding:3px 8px;
  font-size:.66rem;
  font-weight:750;
}

.offer-entry--limited .entry-tag {
  background:#feeeee;
  color:#a93632;
}

.entry-bonus {
  min-width:0;
}

.bonus-caption {
  display:block;
  text-transform:uppercase;
  letter-spacing:.085em;
  font-size:.68rem;
  font-weight:800;
  color:var(--secondary-ink);
  margin-bottom:5px;
}

.entry-bonus>strong {
  font-size:1.05rem;
  display:block;
  line-height:1.4;
  letter-spacing:-.01em;
}

.bonus-facts {
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
}

.bonus-facts span {
  font-size:.71rem;
  color:#486057;
  border:1px solid #e0ebe4;
  border-radius:7px;
  padding:4px 7px;
  background:#fafcfb;
}

.bonus-facts b {
  color:#1d4033;
  font-weight:800;
}

.entry-points {
  padding:11px 0 9px;
  margin:0;
  border-top:1px solid #ebf1ed;
  border-bottom:1px solid #ebf1ed;
  list-style:none;
  display:grid;
  gap:7px;
}

.entry-points li {
  display:flex;
  align-items:flex-start;
  gap:7px;
  font-size:.8rem;
  color:#466052;
  line-height:1.45;
}

.positive-mark {
  width:16px;
  height:16px;
  flex:none;
  margin-top:1px;
}

.entry-action-panel {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
}

.entry-action-link {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  background:var(--primary-green);
  color:#fff;
  text-decoration:none;
  border-radius:10px;
  padding:12px 16px;
  font-weight:750;
  font-size:.87rem;
  min-height:44px;
}

.entry-action-panel small {
  text-align:center;
  color:var(--secondary-ink);
  font-size:.69rem;
}

.comparison-epilogue {
  background:#fff;
  border:1px solid var(--line-subtle);
  border-radius:12px;
  margin:16px 0 20px;
  padding:18px 20px;
  color:#43594e;
}

.comparison-epilogue p {
  margin:0;
  font-size:.92rem;
}

.reading-grid {
  display:grid;
  min-width:0;
}

.reading-content {
  min-width:0;
  padding:4px 0 22px;
}

.reading-content>section,.reading-content>details,.editorial-supplement {
  padding:23px 20px;
  margin:0 0 15px;
  background:#fff;
  border:1px solid var(--line-subtle);
  border-radius:13px;
  box-shadow:0 5px 20px rgba(24,51,40,.025);
}

.reading-content h2 {
  font-size:clamp(1.24rem,4.4vw,1.65rem);
  letter-spacing:-.027em;
  line-height:1.27;
  margin:0 0 14px;
}

.reading-content h3 {
  font-size:1.06rem;
  line-height:1.35;
  letter-spacing:-.015em;
  margin:21px 0 9px;
}

.reading-content h2+h3 {
  margin-top:6px;
}

.reading-content p {
  margin:0 0 14px;
  font-size:.94rem;
  color:#3b5148;
  line-height:1.76;
}

.reading-content p:last-child {
  margin-bottom:0;
}

.reading-content ul,.reading-content ol {
  margin:0 0 15px;
  padding-left:23px;
}

.reading-content li {
  margin-bottom:8px;
  color:#3b5148;
  line-height:1.67;
  font-size:.92rem;
}

.reading-content strong {
  color:#263d33;
}

.reading-content a {
  color:#126e47;
  text-underline-offset:3px;
}

.reading-content blockquote {
  border-left:3px solid var(--primary-green);
  padding-left:14px;
  margin:15px 0;
  color:#3b5148;
}

.reading-content>section:has(>h2) h3:not(:first-child) {
  margin-top:22px;
}

.reading-content>section#recensioni-casino h3 {
  border-top:1px solid #e8eee9;
  padding-top:20px;
  margin-top:22px;
  font-size:1.09rem;
}

.reading-content>section#recensioni-casino h3:first-of-type {
  border-top:0;
  padding-top:4px;
}

.reading-content .methodology-insight {
  padding:16px;
  border-radius:10px;
  background:#eef7f1;
  border:1px solid #d8e9de;
  margin-top:20px;
}

.reading-content .methodology-insight h3 {
  margin:0 0 8px;
}

.reading-content .methodology-insight p {
  margin:0;
}

.chapter-directory {
  overflow:hidden;
}

.chapter-directory summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  cursor:pointer;
  list-style:none;
}

.chapter-directory summary::-webkit-details-marker {
  display:none;
}

.chapter-directory summary h2 {
  margin:0!important;
  font-size:1.07rem!important;
}

.chapter-directory summary:after {
  content:"+";
  font-size:1.6rem;
  color:var(--primary-green);
  line-height:1;
}

.chapter-directory[open] summary:after {
  content:"−";
}

.chapter-directory nav {
  margin-top:16px;
}

.chapter-directory ul {
  columns:1;
  list-style:none;
  margin:0;
  padding:0;
}

.chapter-directory li {
  break-inside:avoid;
  margin:0 0 8px;
}

.chapter-directory a {
  display:inline-block;
  text-decoration:none;
  font-weight:600;
  font-size:.85rem;
  color:#446252;
}

.chapter-directory a:hover {
  text-decoration:underline;
}

.responsive-data {
  width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin:14px 0 18px;
  border:1px solid #e0e9e3;
  border-radius:10px;
}

.responsive-data table {
  min-width:560px;
  margin:0!important;
  border:0!important;
  width:100%;
  border-collapse:collapse;
}

.reading-content table {
  width:100%;
  border-collapse:collapse;
  font-size:.81rem;
  margin:14px 0 18px;
  line-height:1.45;
}

.reading-content th,.reading-content td {
  padding:11px 12px;
  border-bottom:1px solid #e6eee8;
  text-align:left;
  vertical-align:top;
  overflow-wrap:normal;
}

.reading-content th {
  background:#f1f7f3;
  color:#234d36;
  font-weight:800;
}

.reading-content tr:last-child td {
  border-bottom:0;
}

.reading-content td {
  color:#3c5146;
}

.editorial-supplement {
  border-left:3px solid #c9e1d1!important;
}

.age-emblem {
  font-size:1rem;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid #e06257;
  border-radius:9px;
  color:#d4544a;
  width:42px;
  height:42px;
  flex:none;
}

.site-closing {
  background:#15382b;
  color:#e6f4ec;
  margin-top:0;
  padding:30px 0 22px;
}

.closing-primary {
  display:flex;
  flex-direction:column;
  gap:22px;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.17);
}

.closing-brand {
  display:flex;
  align-items:flex-start;
  gap:12px;
}

.closing-brand .portal-symbol {
  width:39px;
  height:39px;
}

.closing-brand strong {
  display:block;
  color:white;
}

.closing-brand p {
  max-width:380px;
  margin:5px 0 0;
  font-size:.78rem;
  line-height:1.6;
  color:#bfdbcd;
}

.closing-navigation {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px 20px;
}

.closing-navigation a {
  color:#e0f0e7;
  font-size:.79rem;
  text-decoration:none;
}

.closing-navigation a:hover {
  text-decoration:underline;
  color:white;
}

.closing-advisory {
  display:flex;
  align-items:flex-start;
  gap:13px;
  padding:22px 0;
  border-bottom:1px solid rgba(255,255,255,.17);
}

.closing-advisory p {
  margin:0;
  color:#d2e3d8;
  font-size:.78rem;
  line-height:1.65;
}

.closing-meta {
  display:flex;
  gap:9px;
  justify-content:space-between;
  flex-wrap:wrap;
  padding-top:17px;
  color:#a7c8b8;
  font-size:.74rem;
}

.closing-meta a {
  color:#d8eadd;
  text-decoration:none;
}

.privacy-banner {
  background:white;
  padding:44px 0 30px;
  border-bottom:1px solid var(--line-subtle);
}

.privacy-banner h1 {
  font-size:clamp(1.9rem,5vw,2.6rem);
  letter-spacing:-.035em;
  line-height:1.2;
  margin:0 0 9px;
}

.privacy-banner p {
  color:var(--secondary-ink);
  margin:0;
}

.privacy-document {
  padding:24px 0 50px;
}

.privacy-document > .page-frame > article {
  max-width:860px;
  margin-inline:auto;
  background:white;
  border:1px solid var(--line-subtle);
  border-radius:14px;
  padding:23px 20px;
}

.privacy-document h2 {
  margin:27px 0 8px;
  font-size:1.16rem;
}

.privacy-document h2:first-child {
  margin-top:0;
}

.privacy-document p,.privacy-document li {
  color:#3d5148;
  line-height:1.76;
  font-size:.93rem;
}

.privacy-notice strong {
  display:block;
}

.privacy-notice p {
  margin:6px 0 0;
}

@media (min-width:620px) {
  .page-frame {
    width:min(100% - 48px,1120px);
  }

  .entry-emblem {
    width:100px;
    height:68px;
  }

  .entry-grid {
    padding:19px 21px;
  }

  .entry-points {
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:16px;
  }

  .entry-action-panel {
    align-items:flex-start;
  }

  .entry-action-panel small {
    text-align:left;
  }

  .reading-content>section,.reading-content>details,.editorial-supplement {
    padding:27px 30px;
  }

  .chapter-directory ul {
    columns:2;
  }

  .comparison-epilogue {
    padding:22px 27px;
  }

}

@media (min-width:840px) {
  .entry-grid {
    grid-template-columns:minmax(170px,1.1fr) minmax(265px,1.6fr) minmax(185px,1.25fr) minmax(130px,.9fr);
    align-items:center;
    gap:20px;
    padding:20px 22px;
  }

  .entry-identity {
    align-items:center;
    gap:9px;
  }

  .entry-emblem {
    width:78px;
    height:67px;
  }

  .entry-index {
    width:27px;
    height:29px;
  }

  .entry-heading h3 {
    font-size:.91rem;
  }

  .entry-bonus>strong {
    font-size:1.02rem;
  }

  .entry-points {
    display:grid;
    grid-template-columns:1fr;
    border:0;
    padding:0;
    gap:7px;
  }

  .entry-action-panel {
    align-items:stretch;
  }

  .entry-action-panel small {
    text-align:center;
  }

  .reading-content>section,.reading-content>details,.editorial-supplement {
    padding:32px 38px;
  }

  .reading-content h2 {
    font-size:1.65rem;
  }

  .chapter-directory ul {
    columns:3;
  }

  .privacy-document > .page-frame > article {
    padding:36px 46px;
  }

}

@media (min-width:1120px) {
  .entry-emblem {
    width:91px;
    height:70px;
  }

  .entry-grid {
    grid-template-columns:minmax(205px,1.1fr) minmax(290px,1.6fr) minmax(220px,1.2fr) minmax(135px,.82fr);
  }

  .entry-heading h3 {
    font-size:1rem;
  }

}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }

  *,*::before,*::after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important;
  }

}

