/* ==========================================================================
   Casino Cards — 1:1 parity with live realmoneycasinorank.com/css/styles.css
   Verified against live CSS fetched directly this session.
   Scoped under .casinos-section to defeat components.css 4-col grid.
   ========================================================================== */

/* ── Keyframes ── */
@keyframes cc-shimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(200%); }
}
@keyframes cc-flicker {
  0%,100% { opacity:.7; transform:scaleY(1) translateY(0); }
  25%     { opacity:1;  transform:scaleY(1.1) translateY(-1px); }
  50%     { opacity:.8; transform:scaleY(.95) translateY(0); }
  75%     { opacity:1;  transform:scaleY(1.05) translateY(-1px); }
}
@keyframes cc-pulse {
  0%,100% { opacity:.5; }
  50%     { opacity:1; }
}

/* ════════════════════════════════════════════
   SECTION — 1280px wide, matching live site
   (staging was capped at 900px — that was the
    root cause of everything being squashed)
   ════════════════════════════════════════════ */
.casinos-section {
  position: relative;
  z-index: 1;
  padding: 56px 0 72px;
}
.casinos-section__inner {
  max-width: 1280px !important;
  margin: 0 auto;
  padding: 0 24px;
}
.casinos-section__header {
  margin-bottom: 40px;
  text-align: center;
}
.casinos-section__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #e0a84b;
  margin-bottom: 12px;
}
.casinos-section__title {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  font-weight: 400;
  color: #f0f3f6;
  margin-bottom: 8px;
}
.casinos-section__sub {
  font-size: .875rem;
  color: #8b949e;
  max-width: 520px;
  margin: 0 auto;
}

/* ════════════════════════════════════════════
   BASE CARD
   Hard-reset components.css 4-col grid, then
   apply live card styles exactly.
   ════════════════════════════════════════════ */
.casinos-section .casino-card {
  display: block !important;
  grid-template-columns: unset !important;
  grid-template-rows: unset !important;
  align-items: unset !important;
  gap: unset !important;
  padding: 0 !important;
  background: #1c2636;
  border: 1px solid rgba(240,246,252,0.08);
  border-radius: 12px;
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
  transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.casinos-section .casino-card:hover {
  border-color: rgba(240,246,252,0.14);
  box-shadow: 0 4px 16px rgba(0,0,0,.28);
  transform: translateY(-2px);
}

/* Featured #1 */
.casinos-section .casino-card--featured {
  border-color: rgba(224,168,75,0.25);
  background: linear-gradient(180deg, rgba(224,168,75,0.04) 0%, #1c2636 120px);
  box-shadow: 0 4px 24px rgba(224,168,75,0.12), 0 0 0 1px rgba(224,168,75,0.25);
}
.casinos-section .casino-card--featured::before {
  content: '';
  display: block;
  height: 3px;
  background: linear-gradient(90deg, #e0a84b, #eab96a);
}
.casinos-section .casino-card--featured::after {
  content: '';
  position: absolute;
  top: -20px; left: 10%; right: 10%;
  height: 60px;
  background: radial-gradient(ellipse, rgba(224,168,75,0.08) 0%, transparent 70%);
  pointer-events: none;
  filter: blur(20px);
  animation: cc-pulse 4s ease-in-out infinite;
}
.casinos-section .casino-card--featured:hover {
  box-shadow: 0 8px 40px rgba(224,168,75,0.18), 0 0 0 1px rgba(224,168,75,0.25);
}

/* Runner-up #2 #3 */
.casinos-section .casino-card--runner-up {
  border-color: rgba(224,168,75,0.1);
  background: linear-gradient(180deg, rgba(224,168,75,0.02) 0%, #1c2636 80px);
}
.casinos-section .casino-card--runner-up::before {
  content: '';
  display: block;
  height: 2px;
  background: linear-gradient(90deg, transparent 10%, rgba(224,168,75,0.25) 50%, transparent 90%);
}
.casinos-section .casino-card--runner-up:hover {
  border-color: rgba(224,168,75,0.25);
  box-shadow: 0 4px 24px rgba(224,168,75,0.12), 0 0 0 1px rgba(224,168,75,0.25);
}

/* Badge hover glows */
.casinos-section .casino-card:has(.casino-card__badge--flame):hover  { box-shadow: 0 6px 32px rgba(255,100,40,.12), 0 0 20px rgba(255,100,40,.05); }
.casinos-section .casino-card:has(.casino-card__badge--bolt):hover   { box-shadow: 0 6px 32px rgba(91,156,246,.12), 0 0 20px rgba(91,156,246,.05); }
.casinos-section .casino-card:has(.casino-card__badge--shield):hover { box-shadow: 0 6px 32px rgba(91,156,246,.12), 0 0 20px rgba(91,156,246,.05); }
.casinos-section .casino-card:has(.casino-card__badge--slots):hover  { box-shadow: 0 6px 32px rgba(63,185,80,.12),  0 0 20px rgba(63,185,80,.05); }
.casinos-section .casino-card:has(.casino-card__badge--germany):hover{ box-shadow: 0 6px 32px rgba(255,204,0,.1),   0 0 20px rgba(255,204,0,.04); }

/* ════════════════════════════════════════════
   HEADER  (rank · badge · rating row)
   ════════════════════════════════════════════ */
.casinos-section .casino-card__header {
  display: flex !important;
  align-items: center;
  gap: 12px;
  padding: 20px 20px 0;
  flex-wrap: wrap;
}

.casinos-section .casino-card__rank {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: .875rem;
  font-weight: 700;
  font-family: inherit;
  color: #e0a84b;
  background: rgba(224,168,75,0.15);
  border: 1px solid rgba(224,168,75,0.25);
  flex-shrink: 0;
}
.casinos-section .casino-card--featured .casino-card__rank {
  width: 42px; height: 42px;
  font-size: 1rem;
  background: linear-gradient(135deg, #e0a84b, #eab96a);
  color: #0d1117;
  border: none;
  box-shadow: 0 2px 8px rgba(224,168,75,.3);
}
.casinos-section .casino-card[data-rank="2"] .casino-card__rank {
  color: #c0c0c0;
  background: rgba(192,192,192,.12);
  border-color: rgba(192,192,192,.3);
}
.casinos-section .casino-card[data-rank="3"] .casino-card__rank {
  color: #cd7f32;
  background: rgba(205,127,50,.12);
  border-color: rgba(205,127,50,.3);
}

/* Badges */
.casinos-section .casino-card__badge {
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: 4px 12px;
  border-radius: 100px;
  background: #161d2a;
  color: #8b949e;
  border: 1px solid rgba(240,246,252,0.08);
}
.casinos-section .casino-card__badge--gold {
  background: rgba(224,168,75,0.15);
  color: #e0a84b;
  border-color: rgba(224,168,75,0.25);
  position: relative;
  overflow: hidden;
}
.casinos-section .casino-card__badge--gold::after {
  content: '';
  position: absolute; top: 0; left: 0;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(224,168,75,.25), transparent);
  animation: cc-shimmer 3.5s ease-in-out 1s infinite;
}
.casinos-section .casino-card__badge--flame {
  background: rgba(255,100,40,.12); color: #ff8c42; border-color: rgba(255,140,66,.3);
}
.casinos-section .casino-card__badge--flame::after { content: ' 🔥'; font-size: .65rem; }
.casinos-section .casino-card__badge--shield {
  background: rgba(91,156,246,.1); color: #5b9cf6; border-color: rgba(91,156,246,.25);
}
.casinos-section .casino-card__badge--shield::after { content: ' 🛡️'; font-size: .65rem; }
.casinos-section .casino-card__badge--crown {
  background: rgba(224,168,75,.1); color: #e0a84b; border-color: rgba(224,168,75,.25);
}
.casinos-section .casino-card__badge--crown::after { content: ' 👑'; font-size: .65rem; }
.casinos-section .casino-card__badge--bolt {
  background: rgba(91,156,246,.1); color: #5b9cf6; border-color: rgba(91,156,246,.25);
}
.casinos-section .casino-card__badge--bolt::after { content: ' ⚡'; font-size: .65rem; }
.casinos-section .casino-card__badge--slots {
  background: rgba(63,185,80,.1); color: #3fb950; border-color: rgba(63,185,80,.25);
}
.casinos-section .casino-card__badge--slots::after { content: ' 🎰'; font-size: .65rem; }
.casinos-section .casino-card__badge--bonus {
  background: rgba(224,168,75,.1); color: #e0a84b; border-color: rgba(224,168,75,.25);
}
.casinos-section .casino-card__badge--bonus::after { content: ' 🏆'; font-size: .65rem; }
.casinos-section .casino-card__badge--germany {
  background: rgba(255,204,0,.08); color: #ffcc00; border-color: rgba(255,204,0,.2);
}
.casinos-section .casino-card__badge--germany::after { content: ' 🇩🇪'; font-size: .65rem; }

/* Rating */
.casinos-section .casino-card__rating {
  display: flex !important;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  font-size: .875rem;
  font-weight: 600;
  color: #f0f3f6;
}
.casinos-section .casino-card__stars { display: flex; gap: 2px; }

/* ════════════════════════════════════════════
   BODY
   Mobile:  block, padding 20px
   768px+:  grid 100px|1fr, gap 24px, pad 24/28
   1024px+: grid 120px|1fr
   — exact mirror of live CSS —
   ════════════════════════════════════════════ */
.casinos-section .casino-card__body {
  display: block !important;
  padding: 20px !important;
}

/* Logo */
.casinos-section .casino-card__logo-wrap {
  margin-bottom: 12px;
  position: relative;
  width: auto !important;
}
.casinos-section .casino-card__logo-img {
  display: block;
  width: 72px !important;
  height: 72px !important;
  border-radius: 12px;
  object-fit: contain;
  padding: 8px;
  background: linear-gradient(145deg, #1a1a2e, #151525);
  border: 1px solid rgba(240,246,252,0.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 2px 8px rgba(0,0,0,.25);
  transition: border-color .5s, box-shadow .5s, background .5s;
  flex-shrink: 0;
}
.casinos-section .casino-card__logo-wrap--tinted .casino-card__logo-img {
  border-color: var(--logo-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 8px rgba(0,0,0,.3), 0 0 18px var(--logo-glow);
  background: linear-gradient(145deg, var(--logo-bg), #151525);
}
.casinos-section .casino-card--featured .casino-card__logo-img {
  border-color: rgba(224,168,75,0.25);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.03), 0 2px 12px rgba(224,168,75,.15);
}
.casinos-section .casino-card--featured .casino-card__logo-wrap--tinted .casino-card__logo-img {
  border-color: var(--logo-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 2px 12px var(--logo-glow), 0 0 24px var(--logo-glow);
}

/* Info */
.casinos-section .casino-card__info { min-width: 0; }

.casinos-section .casino-card__name {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: #f0f3f6;
  margin-bottom: 4px;
}
.casinos-section .casino-card__meta {
  font-size: .8125rem;
  color: #8b949e;
  margin-bottom: 12px;
}

/* Bonus box */
/* CARD 1 ONLY — force bonus width to fill info column (diagnosis fix) */
.casinos-section .casino-card[data-rank="1"] .casino-card__bonus {
  width: 100%;
  box-sizing: border-box;
  display: block;
}

.casinos-section .casino-card__bonus {
  background: rgba(22,29,42,0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(240,246,252,0.14);
  border-left: 3px solid #e0a84b;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 16px;
  box-sizing: border-box;
  width: auto;
}
.casinos-section .casino-card--featured .casino-card__bonus {
  border-left-width: 4px;
  background: linear-gradient(135deg, rgba(224,168,75,0.04), #161d2a);
}
.casinos-section .casino-card__bonus-text {
  font-size: 1.0625rem;
  font-weight: 700;
  color: #e0a84b;
  margin-bottom: 4px;
}
.casinos-section .casino-card__bonus-terms {
  font-size: .75rem;
  color: #8b949e;
  line-height: 1.5;
}

/* Features */
.casinos-section .casino-card__features {
  list-style: none;
  padding: 0;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px;
  margin-bottom: 16px;
}
.casinos-section .casino-card__features li {
  font-size: .875rem;
  color: #8b949e;
  padding-left: 22px;
  position: relative;
  line-height: 1.4;
}
.casinos-section .casino-card__features li::before {
  content: '\2713';
  position: absolute;
  left: 0;
  color: #3fb950;
  font-weight: 700;
  font-size: .8125rem;
}

/* Payment pills */
.casinos-section .casino-card__payments {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px;
}
.casinos-section .casino-card__payment {
  font-size: .75rem;
  font-weight: 500;
  padding: 4px 10px;
  background: rgba(240,246,252,.03);
  border: 1px solid rgba(240,246,252,0.08);
  border-radius: 100px;
  color: #8b949e;
  transition: border-color .15s, color .15s;
}
.casinos-section .casino-card__payment:hover {
  border-color: rgba(224,168,75,0.25);
  color: #f0f3f6;
  background: rgba(224,168,75,0.04);
}

/* ════════════════════════════════════════════
   FOOTER + CTA
   CTA lives in casino-card__footer exactly
   like the live site — NOT inside info column
   ════════════════════════════════════════════ */
.casinos-section .casino-card__footer {
  display: flex !important;
  align-items: center;
  gap: 16px;
  padding: 20px !important;
  border-top: 1px solid rgba(240,246,252,0.08);
  /* reset components.css */
  width: auto !important;
  flex-direction: row !important;
  min-width: unset !important;
}
.casinos-section .casino-card__cta {
  display: inline-block !important;
  padding: 12px 32px;
  width: 100%;
  background: linear-gradient(135deg, #e0a84b, #eab96a);
  color: #0d1117 !important;
  font-weight: 700;
  font-size: .9375rem;
  border-radius: 100px;
  box-shadow: 0 2px 12px rgba(224,168,75,.15);
  transition: transform .15s ease, box-shadow .25s ease, filter .15s ease;
  text-align: center;
  text-decoration: none;
  flex-shrink: 0;
  border: none;
  line-height: normal;
  box-sizing: border-box;
}
.casinos-section .casino-card__cta:hover {
  color: #0d1117 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(224,168,75,.25);
  filter: brightness(1.08);
}
.casinos-section .casino-card__cta:active {
  transform: translateY(0);
  box-shadow: 0 1px 6px rgba(224,168,75,.1);
}
.casinos-section .casino-card__review-link {
  font-size: .875rem;
  color: #8b949e;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}
.casinos-section .casino-card__review-link:hover { color: #e0a84b; }

/* ════════════════════════════════════════════
   768px+ — grid body, exact live CSS
   ════════════════════════════════════════════ */
@media (min-width: 768px) {
  .casinos-section .casino-card__header { padding: 20px 28px 0; }

  .casinos-section .casino-card__body {
    display: grid !important;
    grid-template-columns: 100px 1fr !important;
    gap: 24px !important;
    padding: 24px 28px !important;
    align-items: start;
  }
  .casinos-section .casino-card__logo-wrap {
    margin-bottom: 0;
    width: 100px !important;
  }
  .casinos-section .casino-card__logo-img {
    width: 100px !important;
    height: 100px !important;
    padding: 10px;
  }
  .casinos-section .casino-card__features {
    grid-template-columns: 1fr 1fr !important;
  }
  .casinos-section .casino-card__footer { padding: 20px 28px !important; }
  .casinos-section .casino-card__cta { width: auto; }
  .casinos-section__inner { padding: 0 32px; }
}

/* ════════════════════════════════════════════
   1024px+ — wider logo, 3-col features
   ════════════════════════════════════════════ */
@media (min-width: 1024px) {
  .casinos-section .casino-card__body {
    grid-template-columns: 120px 1fr !important;
  }
  .casinos-section .casino-card__logo-wrap { width: 120px !important; }
  .casinos-section .casino-card__logo-img {
    width: 120px !important;
    height: 120px !important;
    padding: 12px;
  }
  .casinos-section .casino-card__features {
    grid-template-columns: 1fr 1fr 1fr !important;
  }
}

/* ════════════════════════════════════════════
   <600px — tighten padding
   ════════════════════════════════════════════ */
@media (max-width: 599px) {
  .casinos-section .casino-card__header { padding: 14px 16px 0; }
  .casinos-section .casino-card__body   { padding: 14px 16px 16px !important; }
  .casinos-section .casino-card__footer {
    padding: 14px 16px !important;
    flex-wrap: wrap;
  }
  .casinos-section .casino-card__cta { width: 100% !important; }
  .casinos-section__inner { padding: 0 16px; }
  /* Issue #3 fix — logo + info side-by-side flex row on mobile */
  .casinos-section .casino-card__body {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 12px !important;
    align-items: flex-start !important;
  }
  .casinos-section .casino-card__logo-wrap {
    margin-bottom: 0 !important;
    width: 72px !important;
    flex-shrink: 0 !important;
  }
  .casinos-section .casino-card__info {
    flex: 1 !important;
    min-width: 0 !important;
  }
}

/* ════════════════════════════════════════════
   STICKY EDITOR'S CHOICE WIDGET
   ════════════════════════════════════════════ */
.sticky-pick {
  position: fixed;
  right: 20px;
  bottom: 28px;
  z-index: 95;
  width: 248px;
  background: linear-gradient(145deg, #1e2a3a, #1c2636);
  border: 1px solid rgba(224,168,75,0.28);
  border-radius: 14px;
  box-shadow: 0 8px 40px rgba(0,0,0,.5), 0 0 0 1px rgba(224,168,75,0.12), 0 4px 24px rgba(224,168,75,.08);
  padding: 14px 16px 16px;
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition: opacity .3s ease, transform .3s ease;
}
.sticky-pick.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.sticky-pick__close {
  position: absolute;
  top: 9px; right: 11px;
  background: none;
  border: none;
  color: #8b949e;
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  padding: 2px 5px;
  border-radius: 4px;
  transition: color .15s;
}
.sticky-pick__close:hover { color: #f0f3f6; }
.sticky-pick__label {
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: #e0a84b;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.sticky-pick__dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #e0a84b;
  flex-shrink: 0;
  animation: cc-pulse 2s ease-in-out infinite;
}
.sticky-pick__body {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.sticky-pick__logo {
  width: 46px; height: 46px;
  border-radius: 10px;
  object-fit: contain;
  padding: 5px;
  background: linear-gradient(145deg, #1a1a2e, #151525);
  border: 1px solid rgba(224,168,75,0.25);
  flex-shrink: 0;
  display: block;
}
.sticky-pick__info { flex: 1; min-width: 0; }
.sticky-pick__name {
  font-family: 'DM Serif Display', Georgia, serif;
  font-size: .9rem;
  color: #f0f3f6;
  margin: 0 0 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sticky-pick__rating { font-size: .7rem; color: #e0a84b; font-weight: 600; }
.sticky-pick__bonus {
  font-size: .72rem;
  font-weight: 700;
  color: #e0a84b;
  margin-bottom: 10px;
  line-height: 1.4;
}
.sticky-pick__cta {
  display: block;
  width: 100%;
  padding: 9px 16px;
  background: linear-gradient(135deg, #e0a84b, #eab96a);
  color: #0d1117 !important;
  font-weight: 700;
  font-size: .8125rem;
  border-radius: 100px;
  text-align: center;
  text-decoration: none;
  box-shadow: 0 2px 10px rgba(224,168,75,.2);
  transition: filter .15s, transform .15s;
}
.sticky-pick__cta:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  color: #0d1117 !important;
}
.sticky-pick__tc {
  font-size: .6rem;
  color: #8b949e;
  text-align: center;
  margin-top: 6px;
  opacity: .75;
}
@media (max-width: 1024px) { .sticky-pick { display: none; } } /* Issue #2 fix — raised breakpoint so widget hides at tablet landscape */

@media (min-width: 768px) {
  .casinos-section .casino-card[data-rank="1"] .casino-card__body {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr) !important;
    gap: 24px !important;
    align-items: start !important;
  }
  .casinos-section .casino-card[data-rank="1"] .casino-card__info {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    justify-self: stretch !important;
    align-self: start !important;
  }
  .casinos-section .casino-card[data-rank="1"] .casino-card__title,
  .casinos-section .casino-card[data-rank="1"] .casino-card__meta,
  .casinos-section .casino-card[data-rank="1"] .casino-card__bonus,
  .casinos-section .casino-card[data-rank="1"] .casino-card__terms,
  .casinos-section .casino-card[data-rank="1"] .casino-card__features,
  .casinos-section .casino-card[data-rank="1"] .casino-card__payments,
  .casinos-section .casino-card[data-rank="1"] .casino-card__footer {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
  }
  .casinos-section .casino-card[data-rank="1"] .casino-card__bonus {
    white-space: normal !important;
  }
}
