 :root {
  --tfp-bg: #ffffff;
  --tfp-surface: #f7f9fc;
  --tfp-elev: #eef2f9;
  --tfp-text: #1a1f36;
  --tfp-muted: #5b647a;
  --tfp-primary: #1e66f5; /* azur vibrante */
  --tfp-primary-ink: #0a2a7a;
  --tfp-accent: #ff6b3d; /* corail */
  --tfp-green: #17b26a;
  --tfp-red: #e5484d;
  --tfp-warning: #f59f00;
  --tfp-ring: 0 0 0 3px rgba(30,102,245,.25);
  --tfp-radius-lg: 16px;
  --tfp-radius-md: 12px;
  --tfp-radius-sm: 10px;
  --tfp-shadow-1: 0 10px 30px rgba(16,24,40,.08);
  --tfp-shadow-2: 0 12px 40px rgba(30,102,245,.15);
}
* { box-sizing: border-box }
html { scroll-behavior: smooth }
body {
  margin: 0;
  font-family: "Plus Jakarta Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--tfp-text);
  background: var(--tfp-bg);
  line-height: 1.6;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block }
a { color: var(--tfp-primary); text-decoration: none }
a:focus-visible, button:focus-visible { outline: none; box-shadow: var(--tfp-ring) }

/* Skip link */
.tfp-skip { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden }
.tfp-skip:focus { position:fixed; left:16px; top:16px; width:auto; height:auto; padding:10px 14px; background:#000; color:#fff; z-index:10000; border-radius:8px }

/* Top header 18+ */
.tfp-topbar {
  position: sticky; top: 0; z-index: 999; width: 100%;
  background: linear-gradient(90deg, #0b1020, #101935);
  color: #fff; font-size: 14px; letter-spacing: .2px;
}
.tfp-topbar-inner { max-width: 1180px; margin: 0 auto; padding: 8px 16px; display: flex; align-items: center; gap: 12px }
.tfp-topbar-badge { width: 28px; height: 28px; border-radius: 50%; overflow: hidden; flex: 0 0 28px; border: 2px solid rgba(255,255,255,.35) }
.tfp-topbar-text { opacity: .9 }

/* Header */
.tfp-header { max-width: 1180px; margin: 0 auto; padding: 20px 16px; display:flex; align-items:center; justify-content:space-between }
.tfp-brand { display:flex; align-items:center; gap:12px; color: inherit }
.tfp-brand-mark { width: 50px; height: 50px; }
.tfp-brand-name { font-weight: 800; letter-spacing: .2px }
.tfp-nav { display:flex; gap: 14px; flex-wrap:wrap }
.tfp-nav a { padding:8px 12px; border-radius:10px; color: var(--tfp-muted) }
.tfp-nav a:hover { background: var(--tfp-elev); color: var(--tfp-text) }

/* Hero */
.tfp-hero { position: relative; overflow: clip; }
.tfp-hero-wrap { max-width:1180px; margin:0 auto; padding: 28px 16px 10px }
.tfp-hero-badge { display:inline-flex; gap:8px; align-items:center; background: #ecf1ff; color: var(--tfp-primary-ink); border:1px solid #d7e2ff; padding:6px 10px; border-radius:999px; font-weight:600; font-size:13px }
.tfp-hero-title { font-family: "Newsreader", Georgia, serif; font-size: clamp(28px, 4vw, 48px); line-height:1.15; margin: 14px 0 10px }
.tfp-hero-sub { font-size: clamp(14px, 1.7vw, 18px); color: var(--tfp-muted); max-width: 860px }
.tfp-hero-ctas { display:flex; gap:12px; margin-top:18px; flex-wrap:wrap }

.tfp-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:12px 18px; border-radius: 12px; border:none; cursor:pointer; font-weight:700; transition: transform .18s ease, box-shadow .18s ease, background .3s ease }
.tfp-btn--primary { color:#fff; background: linear-gradient(135deg, var(--tfp-primary), #5b8dff); box-shadow: var(--tfp-shadow-2) }
.tfp-btn--primary:hover { transform: translateY(-1px); filter: saturate(1.05) }
.tfp-btn--ghost { background: var(--tfp-surface); color: var(--tfp-text); border: 1px solid var(--tfp-elev) }
.tfp-btn--ghost:hover { background: var(--tfp-elev) }

.tfp-hero-list { display:grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; margin-top: 24px }
.tfp-hero-item { display:flex; gap:8px; align-items:center; background: var(--tfp-surface); padding:10px 12px; border-radius: 12px; border:1px solid var(--tfp-elev) }
.tfp-hero-item i { width: 18px; height: 18px; background: url('../images/checkmark.svg') center/contain no-repeat; flex:0 0 18px }

/* Casino Card */
.tfp-section { padding: 28px 16px }
.tfp-wrap { max-width: 1180px; margin: 0 auto }
.tfp-card-grid { display:grid; grid-template-columns: repeat(1, minmax(0,1fr)); gap: 18px }

.tfp-casino {
  position: relative; border-radius: var(--tfp-radius-lg); background: #ffffff; border:1px solid var(--tfp-elev);
  box-shadow: var(--tfp-shadow-1); overflow: hidden; display:grid; grid-template-columns: 1.2fr .8fr; min-height: 240px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.tfp-casino:hover { transform: translateY(-2px); box-shadow: 0 18px 50px rgba(16,24,40,.12) }
.tfp-casino .tfp-corner { position:absolute; right:12px; top:12px; font-weight:800; color:#fff; background: linear-gradient(135deg, #111827, #28334c); border-radius: 10px; padding:6px 10px; font-size: 13px }
.tfp-casino .tfp-cert { position:absolute; left:12px; top:12px; display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border-radius: 999px; background: #eafaf1; color: #0a6b42; font-weight:700; border:1px solid #d1f5e4 }
.tfp-casino-main { padding: 22px 18px 18px; display:grid; grid-template-columns: 200px 1fr; gap: 16px; align-items:center }
.tfp-logo {
  width:200px; height:100px; border-radius: 16px; display:grid; place-items:center;
  background: conic-gradient(from 180deg at 50% 50%, #fff 0 25%, #ffe7e1 25% 50%, #fff1ec 50% 75%, #ffe7e1 75%);
  border:1px solid #ffe1d7; color: #c6451f; font-weight: 800; letter-spacing: .5px;
}
.tfp-casino-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap }
.tfp-stars { display:inline-flex; gap:4px }
.tfp-star { width:16px; height:16px; background:url('../images/star.svg') center/contain no-repeat }
.tfp-score { font-weight:800; color:#0b1220 }
.tfp-casino-sub { color: var(--tfp-muted); margin-top:6px }

.tfp-casino-meta { margin-top:10px; display:grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap:10px }
.tfp-pill { background: var(--tfp-surface); border:1px solid var(--tfp-elev); border-radius: 10px; padding:8px 10px }
.tfp-pill strong { display:block; font-size:12px; color: var(--tfp-muted) }
.tfp-pill span { font-weight:800; color:#0b1220 }

.tfp-casino-side { padding: 22px 18px; border-left:1px solid var(--tfp-elev); display:grid; gap: 12px; align-content:center; background: linear-gradient(180deg, #f9fbff, #f6faff) }
.tfp-benefits { display:grid; gap:8px; font-size: 14px; color: var(--tfp-text) }
.tfp-benefits li { list-style: none; display:flex; gap:8px; align-items:flex-start }
.tfp-benefits li i { width:18px; height:18px; background: url('../images/checkmark.svg') center/contain no-repeat; flex:0 0 18px; filter:hue-rotate(120deg) }
.tfp-players { font-size: 13px; color: var(--tfp-muted) }
.tfp-players strong { color: var(--tfp-green) }

.tfp-cta { display:flex; gap:10px; flex-wrap:wrap; align-items:center }
.tfp-cta .tfp-btn { width: 100% }

/* Content blocks */
.tfp-block { background: var(--tfp-surface); border:1px solid var(--tfp-elev); border-radius: var(--tfp-radius-lg); padding: 18px; box-shadow: var(--tfp-shadow-1) }
.tfp-block h2 { margin:0 0 10px; font-size: clamp(20px, 2.6vw, 28px) }
.tfp-bullets { padding-left: 18px }

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

/* FAQ */
.tfp-faq details { background: #fff; border:1px solid var(--tfp-elev); border-radius: 12px; padding: 12px 14px }
.tfp-faq summary { cursor: pointer; font-weight:700; list-style: none }
.tfp-faq summary::-webkit-details-marker { display:none }

/* Footer */
.tfp-footer { padding: 28px 16px; background: #0b1020; color:#c9d1e6; margin-top: 24px }
.tfp-footer a { color: #9bb4ff }
.tfp-footer .tfp-wrap { display:grid; gap:18px }
.tfp-logos { display:flex; gap:16px; align-items:center; flex-wrap:wrap; justify-content: center;}
.tfp-logos a{
  width:200px; background-color: #fff; padding: 10px; border-radius: 10px; height: -webkit-fill-available; display: flex; align-items: center;
}
.tfp-logos img { }
.tfp-legal { display:flex; gap:10px; flex-wrap:wrap }
.tfp-legal a { padding:8px 10px; border-radius:10px; background: rgba(255,255,255,.04) }
.tfp-copy { opacity:.8; font-size: 13px }

/* Cookie banner */
.tfp-cookie {
  position: fixed; inset: auto 16px 16px 16px; z-index: 9999; max-width: 760px; margin: 0 auto;
  background: #0b1020; color:#e6ecff; border:1px solid #1a2340; border-radius: 14px; box-shadow: 0 12px 50px rgba(0,0,0,.35);
  display:none; padding: 16px; gap: 12px
}
.tfp-cookie.show { display:grid }
.tfp-cookie-actions { display:flex; gap:10px; flex-wrap:wrap }

/* Responsive */
@media (max-width: 960px) {
  .tfp-hero-list { grid-template-columns: repeat(2, minmax(0,1fr)) }
  .tfp-casino { grid-template-columns: 1fr }
  .tfp-casino-side { border-left: none; border-top:1px solid var(--tfp-elev) }
  .tfp-cta .tfp-btn { width:auto; flex: 1 1 auto }
  .tfp-grid-2 { grid-template-columns: 1fr }
}

@media (max-width: 520px) {
  .tfp-topbar-inner { padding: 8px 12px }
  .tfp-hero-wrap { padding: 22px 12px 6px }
  .tfp-section { padding: 22px 12px }
  .tfp-casino-main { grid-template-columns: 1fr }
  .tfp-logo { width: 100%; height: 84px; justify-self:flex-start; margin-top: 40px; }
  .tfp-nav{
    gap: 0px;
  }
  .tfp-header{
    flex-wrap: wrap;
  }
  .tfp-hero-list{
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }
}

.tfp-table-wrap { margin-top:14px; background:#fff; border:1px solid var(--tfp-elev); border-radius: 12px; overflow:hidden; box-shadow: var(--tfp-shadow-1) }
.tfp-table-scroll { overflow:auto; -webkit-overflow-scrolling: touch }
table { width:100%; border-collapse: collapse; min-width: 760px }
caption { text-align:left; padding: 12px 14px; font-weight: 700; background: #f2f6ff; color: var(--tfp-primary-ink); border-bottom:1px solid var(--tfp-elev) }
thead th { text-align:left; padding:12px 14px; font-weight:700; color:#0b1220; background: #f9fbff; border-bottom:1px solid var(--tfp-elev) }
tbody td { padding:12px 14px; border-bottom:1px solid var(--tfp-elev) }
tbody tr:hover { background: #fafcff }

.tfp-operator { display:flex; align-items:center; gap:10px }
.tfp-operator img { width:auto; height:26px; background-color: #000 }
.tfp-badge { display:inline-block; padding:4px 8px; border-radius:999px; background:#eafaf1; color:#0a6b42; font-weight:700; font-size:12px; border:1px solid #d1f5e4 }

.tfp-card{background:var(--tfp-surface);border:1px solid var(--tfp-elev);border-radius:16px;padding:18px;box-shadow:var(--tfp-shadow-1)}

.tfp-form{display:grid;gap:12px;max-width:640px}.tfp-field{display:grid;gap:6px}.tfp-input, .tfp-textarea{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--tfp-elev);font:inherit}.tfp-input:focus, .tfp-textarea:focus{outline:none;box-shadow:var(--tfp-ring)}

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

.tfp-list{columns:2}