/* ==========================================================
   dressesdioma.com — Non Gamstop Casinos UK
   Design: CLEAN CONVERT | v3.9.7
   ========================================================== */

@font-face{font-family:'Inter';font-display:swap}

:root {
  --bg:#FFFFFF;
  --bg-alt:#F8F9FA;
  --border:#E5E7EB;
  --text:#111827;
  --muted:#6B7280;
  --accent:#16A34A;
  --dark:#0f172a;
  --dark2:#1e293b;
  --radius:8px;
  --font:'Inter',system-ui,sans-serif;
  --max-w:1100px;
}

/* ─── RESET ─── */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0 }
html { scroll-behavior:smooth }
body { font-family:var(--font); color:var(--text); background:var(--bg); line-height:1.7; font-size:16px }
img { max-width:100%; height:auto }
a { color:var(--accent); text-decoration:none }
a:hover { text-decoration:underline }
ul, ol { padding-left:1.5rem }
table { border-collapse:collapse; width:100% }
th, td { padding:.6rem 1rem; border:1px solid var(--border); text-align:left }
th { background:#F3F4F6; font-weight:600 }

/* ─── CONTAINER ─── */
.container { max-width:var(--max-w); margin:0 auto; padding:0 1rem }

/* ─── HEADER ─── */
.site-header {
  position:sticky; top:0; z-index:100;
  background:var(--dark); color:#fff;
  border-bottom:2px solid var(--accent);
  box-shadow:0 2px 8px rgba(0,0,0,.3);
}
.header-inner { display:flex; align-items:center; justify-content:space-between; padding:.75rem 1rem }
.site-logo { display:flex; align-items:center; gap:.5rem; color:#fff; font-weight:700; font-size:1.1rem }
.logo-icon { font-size:1.4rem }
.desktop-nav { display:flex; align-items:center; gap:1.5rem }
.desktop-nav a { color:#e2e8f0; font-size:.875rem; font-weight:500; transition:color .2s }
.desktop-nav a:hover { color:#fff; text-decoration:none }
.nav-cta { background:var(--accent); color:#fff!important; padding:.4rem 1rem; border-radius:var(--radius); font-weight:700!important }
.nav-cta:hover { background:#15803d; text-decoration:none!important }
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:.5rem }
.hamburger span { display:block; width:24px; height:2px; background:#fff; transition:.3s }

/* ─── MOBILE NAV ─── */
.mobile-nav { display:none }
@media(max-width:768px) {
  .mobile-nav.open {
    display:flex; flex-direction:column;
    background:var(--dark2); padding:1rem;
    border-top:1px solid #334155;
  }
  .mobile-nav a { color:#e2e8f0; padding:.6rem 0; font-size:.9rem; border-bottom:1px solid #334155 }
  .mobile-nav .nav-cta { margin-top:.5rem; text-align:center }
  .desktop-nav { display:none }
  .hamburger { display:flex }
}

/* ─── HERO ─── */
.hero { background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%)!important; color:#fff; padding:3.5rem 0 }
.hero-inner { display:grid; grid-template-columns:1fr; gap:2rem }
.hero-badge { display:inline-block; background:var(--accent); color:#fff; padding:.3rem .8rem; border-radius:20px; font-size:.8rem; font-weight:600; margin-bottom:1rem }
.hero h1 { font-size:clamp(1.5rem,3vw,2.4rem); line-height:1.3; color:#f1f5f9; margin-bottom:1rem }
.hero-desc { color:#cbd5e1; font-size:1.05rem; margin-bottom:1.5rem }
.hero-stats { display:flex; gap:2rem; margin-bottom:1.5rem; flex-wrap:wrap }
.stat { text-align:center }
.stat strong { display:block; font-size:1.5rem; color:var(--accent); font-weight:700 }
.stat span { font-size:.8rem; color:#94a3b8 }
.hero-cta-wrap { margin-bottom:1.5rem }
.trust-stars { margin-top:.75rem; color:#fbbf24; font-size:.875rem }
.trust-stars span { color:#94a3b8; margin-left:.25rem }
.hero-author { display:flex; align-items:center; gap:.75rem; margin-top:1rem; padding:.75rem; background:rgba(255,255,255,.05); border-radius:var(--radius) }
.hero-author img { border-radius:50%; border:2px solid var(--accent); object-fit:cover }
.hero-author strong { display:block; color:#f1f5f9; font-size:.9rem }
.hero-author span { font-size:.8rem; color:#94a3b8 }

/* ─── WARNING BANNER ─── */
.warning-banner { background:#fef3c7; border-top:3px solid #f59e0b; border-bottom:3px solid #f59e0b; padding:.75rem 0; font-size:.9rem }
.warning-banner .container { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap }

/* ─── BUTTONS ─── */
.btn-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:linear-gradient(135deg,#16A34A,#15803d);
  color:#fff; padding:14px 28px;
  border-radius:var(--radius); font-weight:700;
  text-decoration:none; font-size:1rem;
  animation:pulse 2s infinite;
  transition:transform .2s;
  border:none; cursor:pointer;
}
.btn-primary:hover { transform:translateY(-2px); text-decoration:none; color:#fff }
.btn-large { padding:16px 36px; font-size:1.1rem }
@keyframes pulse {
  0%,100% { box-shadow:0 0 0 0 rgba(22,163,74,.4) }
  50% { box-shadow:0 0 0 8px rgba(22,163,74,0) }
}

/* ─── SECTIONS ─── */
.content-section { padding:3rem 0 }
.section-white { background:var(--bg) }
.section-alt { background:var(--bg-alt) }
.section-dark { background:var(--dark); color:#e2e8f0 }
.section-dark h2 { color:#f1f5f9 }
.section-dark p { color:#cbd5e1 }
.section-dark table { color:#e2e8f0 }
.section-dark th { background:#1e293b; color:#f1f5f9 }
.section-dark td { border-color:#334155 }
.section-dark th { border-color:#334155 }
.content-section h2 {
  display:block; width:100%; float:none; clear:both;
  font-size:clamp(1.3rem,2.5vw,1.9rem); margin-bottom:1.25rem; line-height:1.3
}
.section-body { font-size:.975rem; line-height:1.75 }
.section-body p { margin-bottom:1rem }
.section-body ul, .section-body ol { margin-bottom:1rem }
.section-body li { margin-bottom:.4rem }
.section-body table { margin:1.5rem 0; border-radius:var(--radius); overflow:hidden }
.section-body strong { font-weight:600 }

/* ─── H2 BANNERS ─── */
.h2-banner-wrap {
  display:block; width:calc(100% + 2rem); margin-left:-1rem;
  overflow:hidden; line-height:0; clear:both; margin-bottom:1.5rem;
}
.h2-banner-img { display:block; width:100%; aspect-ratio:3/1; object-fit:cover }
@media(max-width:767px) { .h2-banner-img { aspect-ratio:1/1; object-position:center top } }
.h2-banner-wrap figcaption { font-size:11px; color:#6b7280; text-align:right; padding:4px 8px 0; font-style:italic; line-height:1.4 }
.section-dark .h2-banner-wrap figcaption { color:#94a3b8 }

/* ─── VITRINA ─── */
.vitrina-section { padding:3rem 0 }
.vitrina-title { font-size:clamp(1.3rem,2.5vw,1.9rem); color:#f1f5f9; margin-bottom:.75rem; text-align:center }
.vitrina-desc { color:#94a3b8; text-align:center; margin-bottom:2rem }
.vitrina-grid { display:flex; flex-direction:column; gap:1rem }
.casino-card {
  display:grid; grid-template-columns:60px 1fr auto;
  align-items:center; gap:1rem;
  background:#1e293b; border:1px solid #334155;
  border-radius:var(--radius); padding:1.25rem;
  transition:transform .2s, box-shadow .2s;
}
.casino-card:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.3) }
.casino-card.top-pick { border-color:var(--accent); background:linear-gradient(135deg,#1e293b,#162032) }
.casino-rank { font-size:1.5rem; font-weight:700; color:var(--accent); text-align:center }
.casino-badge { display:inline-block; background:var(--accent); color:#fff; padding:.2rem .6rem; border-radius:4px; font-size:.75rem; font-weight:600; margin-bottom:.4rem }
.casino-name { font-size:1.1rem; font-weight:700; color:#f1f5f9; margin-bottom:.3rem }
.casino-license { font-size:.8rem; color:#94a3b8; margin-bottom:.3rem }
.casino-bonus { font-size:.875rem; color:#fbbf24; font-weight:600; margin-bottom:.5rem }
.casino-features { display:flex; flex-wrap:wrap; gap:.3rem }
.feature-tag { background:#0f172a; color:#94a3b8; padding:.2rem .5rem; border-radius:4px; font-size:.75rem }
.casino-cta { display:flex; flex-direction:column; align-items:center; gap:.5rem; min-width:140px }
.casino-rating { color:#fbbf24; font-weight:600; font-size:.875rem }
.vitrina-disclaimer { text-align:center; color:#94a3b8; font-size:.8rem; margin-top:1.5rem }
@media(max-width:768px) {
  .casino-card { grid-template-columns:1fr; text-align:center }
  .casino-features { justify-content:center }
  .casino-cta { width:100% }
  .casino-cta .btn-primary { width:100%; justify-content:center }
}

/* ─── AUTHOR BOX ─── */
.author-section { padding:3rem 0 }
.author-box { display:grid; grid-template-columns:140px 1fr; gap:2rem; align-items:start; background:var(--bg-alt); border-radius:var(--radius); padding:2rem; border:1px solid var(--border) }
.author-box img { border-radius:50%; object-fit:cover; border:3px solid var(--accent) }
.author-box h2 { font-size:1.4rem; margin-bottom:.25rem }
.author-title { color:var(--accent); font-size:.9rem; font-weight:600; margin-bottom:.75rem; display:block }
.author-bio { color:var(--muted); font-size:.925rem; line-height:1.7; margin-bottom:1rem }
.author-expertise strong { display:block; margin-bottom:.5rem; font-size:.9rem }
.author-expertise ul { font-size:.875rem; color:var(--muted) }
.author-expertise li { margin-bottom:.25rem }
.author-link { display:inline-block; margin-top:.75rem; color:var(--accent); font-weight:600; font-size:.875rem }
@media(max-width:600px) { .author-box { grid-template-columns:1fr; text-align:center } .author-box img { margin:0 auto } }

/* ─── REVIEWED BY ─── */
.reviewed-section { padding:3rem 0 }
.reviewed-section h2 { font-size:clamp(1.2rem,2.5vw,1.7rem); margin-bottom:2rem; text-align:center }
.reviewed-by-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem }
@media(max-width:768px) { .reviewed-by-cards { grid-template-columns:1fr } }
.reviewer-card { background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:1.25rem; display:flex; gap:1rem; align-items:flex-start }
.reviewer-card img { border-radius:50%; object-fit:cover; flex-shrink:0; border:2px solid var(--accent) }
.reviewer-name { display:block; font-weight:700; font-size:.925rem }
.reviewer-title { display:block; color:var(--accent); font-size:.8rem; margin-bottom:.3rem }
.reviewer-stars { color:#fbbf24; font-size:.9rem; margin-bottom:.4rem }
.reviewer-quote { font-size:.85rem; color:var(--muted); font-style:italic; margin-bottom:.4rem }
.reviewer-date { font-size:.75rem; color:var(--muted) }

/* ─── FAQ ─── */
.faq-section { padding:3rem 0 }
.faq-section h2 { font-size:clamp(1.2rem,2.5vw,1.7rem); margin-bottom:2rem; text-align:center }
.faq-container { max-width:800px; margin:0 auto }
.faq-item { border:1px solid var(--border); border-radius:var(--radius); margin-bottom:.75rem; overflow:hidden }
.faq-question {
  width:100%; display:flex; justify-content:space-between; align-items:center;
  padding:1rem 1.25rem; background:var(--bg-alt); border:none; cursor:pointer;
  font-size:.95rem; font-weight:600; text-align:left; color:var(--text);
  transition:background .2s;
}
.faq-question:hover { background:#ececec }
.faq-question[aria-expanded="true"] { background:var(--dark); color:#f1f5f9 }
.faq-question[aria-expanded="true"] .faq-icon { transform:rotate(45deg) }
.faq-icon { font-size:1.2rem; flex-shrink:0; transition:transform .2s; color:var(--accent) }
.faq-answer { padding:1rem 1.25rem; font-size:.9rem; line-height:1.7; color:var(--muted) }

/* ─── FOOTER ─── */
.site-footer { background:var(--dark); color:#94a3b8; padding:2.5rem 0 1.5rem }
.footer-top { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; padding-bottom:1.5rem; border-bottom:1px solid #334155 }
.footer-logo { color:#fff; font-weight:700; display:flex; align-items:center; gap:.4rem }
.footer-nav { display:flex; gap:1.5rem; flex-wrap:wrap }
.footer-nav a { color:#94a3b8; font-size:.85rem }
.footer-nav a:hover { color:#fff }
.footer-disclaimer { font-size:.8rem; line-height:1.6 }
.footer-disclaimer p { margin-bottom:.75rem }
.footer-disclaimer a { color:#94a3b8 }
.footer-disclaimer a:hover { color:#fff }

/* ─── STICKY CTA ─── */
.sticky-cta {
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:50;
  background:var(--dark); border-top:2px solid var(--accent);
  padding:.75rem 1rem; text-align:center;
}
.sticky-cta .btn-primary { width:100%; max-width:400px; justify-content:center }
@media(max-width:768px) { .sticky-cta { display:block } }

/* ─── POPUP ─── */
.popup-overlay {
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,.7); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:1rem;
}
.popup-overlay[hidden] { display:none }
.popup-box { background:#fff; border-radius:12px; padding:2rem; max-width:420px; width:100%; position:relative; text-align:center }
.popup-close { position:absolute; top:.75rem; right:.75rem; background:none; border:none; cursor:pointer; font-size:1.2rem; color:var(--muted) }
.popup-badge { display:inline-block; background:var(--accent); color:#fff; padding:.3rem .8rem; border-radius:20px; font-size:.8rem; font-weight:600; margin-bottom:1rem }
.popup-box h3 { font-size:1.3rem; margin-bottom:.75rem; color:var(--dark) }
.popup-box p { color:var(--muted); margin-bottom:1rem; font-size:.9rem }
.popup-box .btn-primary { width:100%; justify-content:center }
.popup-disclaimer { font-size:.75rem; color:var(--muted); margin-top:.75rem }

/* ─── KEYFRAMES (required 4+) ─── */
@keyframes fadeIn {
  from { opacity:0; transform:translateY(20px) }
  to   { opacity:1; transform:translateY(0) }
}
@keyframes slideIn {
  from { transform:translateX(-100%) }
  to   { transform:translateX(0) }
}
@keyframes bounceIn {
  0%   { transform:scale(.3); opacity:0 }
  60%  { transform:scale(1.1); opacity:1 }
  100% { transform:scale(1) }
}
@keyframes shimmer {
  0%   { background-position:-200% 0 }
  100% { background-position:200% 0 }
}

/* ─── FILTER TABS ─── */
.filter-tabs { display:flex; gap:.5rem; flex-wrap:wrap; justify-content:center }
.filter-tab {
  padding:.5rem 1rem; border-radius:20px;
  background:#0f172a; color:#94a3b8;
  border:1px solid #334155; cursor:pointer;
  font-size:.85rem; transition:.2s;
}
.filter-tab.active,.filter-tab:hover { background:var(--accent); color:#fff; border-color:var(--accent) }

/* ─── STAR RATING ─── */
.star-rating { display:flex; gap:.3rem; justify-content:center; margin:.4rem 0 }
.star-btn { background:none; border:none; cursor:pointer; font-size:1.3rem; transition:transform .15s }
.star-btn:hover { transform:scale(1.2) }

/* ─── TABLE OVERFLOW ─── */
.section-body table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch }

/* ─── ANIMATION ON SCROLL ─── */
.casino-card { animation:fadeIn .4s ease both }
.faq-item { animation:fadeIn .3s ease both }
