:root {
  --bg: #140f1f;
  --panel: #20172f;
  --line: #3f2f58;
  --text: #f2eafc;
  --gold: #d4b15f;
  --gold-soft: #f1dfab;
  --warn: #ff8aa2;
}
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  background:
    linear-gradient(rgba(12, 8, 20, 0.84), rgba(12, 8, 20, 0.84)),
    url("../../assets/backgrounds/bg.png") center/cover fixed no-repeat,
    linear-gradient(180deg, #0f0a18, #1a1327);
  color: var(--text);
  line-height: 1.55;
}
.shell { width: min(1080px, 92%); margin: 0 auto; }
.header { border-bottom: 1px solid var(--line); background: rgba(10, 7, 16, .88); }
.header .shell, .footer .shell { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .8rem; padding: .9rem 0; }
.title { font-size: 1.25rem; font-weight: 700; letter-spacing: .02em; }
.title span, h3 span { color: var(--warn); font-weight: 700; }
nav a, .footer a { color: var(--gold-soft); text-decoration: none; margin-right: .9rem; }
nav { display: flex; flex-wrap: wrap; gap: .65rem; }
.royal-header {
  background: linear-gradient(115deg, rgba(13, 8, 21, 0.97), rgba(37, 24, 56, 0.97));
}
.royal-head-grid {
  display: grid !important;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 1rem;
}
.royal-title {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}
.royal-mark {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 2px solid #d4b15f;
  display: inline-block;
  position: relative;
  transform: rotate(45deg);
}
.royal-mark::before {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: 3px;
  background: linear-gradient(135deg, #f1dfab, #d4b15f);
}
.royal-header-note {
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  border: 1px solid #705536;
  border-radius: 999px;
  padding: .35rem .55rem;
  background: rgba(66, 46, 16, 0.24);
}
.royal-nav { justify-self: end; }
.royal-nav a {
  position: relative;
  margin-right: .85rem;
}
.royal-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 1px;
  background: #f1dfab;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s ease;
}
.royal-nav a:hover::after { transform: scaleX(1); }
main { padding: 1rem 0 2rem; }
.panel { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); padding: 1rem; margin-bottom: 1rem; }
.intro h1 { margin-top: 0; font-size: clamp(1.6rem, 3vw, 2.45rem); }
.mini { background: #2a1e3f; border-left: 4px solid var(--gold); padding: .7rem; border-radius: 7px; }
.mini.warning { border-left-color: var(--warn); }
.hero-columns { display: grid; grid-template-columns: 1.2fr .8fr; gap: .8rem; align-items: start; }
.hero-panel {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #2a1e3f;
  padding: .8rem;
}
.hero-panel h2 { margin: 0 0 .4rem; font-size: 1.05rem; color: var(--gold-soft); }
.editorial-order ul { margin: 0; padding-left: 1.1rem; }
.trust-timeline {
  margin: 0;
  padding-left: 1.2rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #261b38;
  padding: .85rem .85rem .85rem 1.8rem;
}
.trust-timeline li { margin-bottom: .45rem; }
.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .8rem; }
.cards article {
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: .8rem;
  background: #261b37;
  display: flex;
  flex-direction: column;
  gap: .35rem;
  position: relative;
  overflow: hidden;
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.cards article::before {
  content: "";
  position: absolute;
  inset: -125% auto auto -30%;
  width: 60%;
  height: 230%;
  transform: rotate(17deg);
  background: linear-gradient(90deg, transparent, rgba(241, 223, 171, 0.14), transparent);
  pointer-events: none;
}
.cards article:hover {
  transform: translateY(-5px);
  border-color: #735a3e;
  box-shadow: 0 14px 24px rgba(6, 2, 12, 0.4);
}
.cards article:hover::before { animation: royalShine .9s ease; }
.cards img { width: 140px; max-width: 100%; height: 40px; object-fit: contain; filter: brightness(1.1); }
.card-logo-link { display: inline-flex; width: fit-content; }
.royal-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .55rem;
}
.tier-badge {
  font-size: .7rem;
  letter-spacing: .05em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: .22rem .5rem;
  border: 1px solid #745d3f;
}
.tier-elite { background: rgba(212, 177, 95, 0.2); color: #f3e4ba; }
.tier-prime { background: rgba(184, 166, 226, 0.17); color: #e4d8ff; }
.tier-core { background: rgba(142, 138, 167, 0.2); color: #d0cce2; }
.score-token {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 2px solid #d4b15f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .78rem;
  font-weight: 700;
  color: #f4e6bf;
  background: radial-gradient(circle at 35% 35%, #4c3867, #281b3d);
}
.card-cta {
  display: inline-block;
  margin-top: auto;
  background: var(--gold);
  color: #2a1b03;
  text-decoration: none;
  font-weight: 700;
  padding: .45rem .75rem;
  border-radius: 8px;
}
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.two-col ul { margin: .45rem 0 0; padding-left: 1.1rem; }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
table { width: 100%; border-collapse: collapse; min-width: 560px; background: #261b38; }
th, td { text-align: left; padding: .68rem; border-bottom: 1px solid var(--line); vertical-align: top; }
th { background: #2b2040; color: var(--gold-soft); }
.three-col { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
details { border: 1px solid var(--line); border-radius: 8px; margin-bottom: .6rem; padding: .7rem; background: #261b38; }
.regulator-logos {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
}
.regulator-logos a {
  display: inline-flex;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: .3rem .45rem;
  background: #2a1e3f;
}
.regulator-logos img { height: 32px; width: auto; object-fit: contain; display: block; }
.footer { border-top: 1px solid var(--line); background: rgba(10, 7, 16, .88); }
.royal-footer { background: linear-gradient(180deg, rgba(18, 11, 28, 0.95), rgba(10, 7, 16, 0.95)); }
.royal-foot-grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr auto;
  align-items: center;
  gap: .9rem;
}
.royal-foot-nav { order: 2; }
.royal-foot-nav a { margin-right: .75rem; }
.royal-foot-brand {
  order: 1;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 700;
}
.royal-foot-grid p { order: 3; margin: 0; }

.content-page { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); padding: 1rem; margin-top: 1rem; }

.overlay { position: fixed; inset: 0; display: none; place-items: center; background: rgba(0, 0, 0, .78); z-index: 1000; }
.overlay.show { display: grid; }
.overlay-card { width: min(420px, 92%); background: #1d1630; border: 1px solid var(--line); border-radius: 12px; padding: 1rem; }
.overlay-actions { display: flex; gap: .7rem; }
button { border: 0; border-radius: 8px; cursor: pointer; padding: .6rem .85rem; font-weight: 700; background: var(--gold); color: #2a1b03; }
button.secondary { background: #4a3968; color: var(--text); }
.cookie-banner { position: fixed; left: 50%; transform: translateX(-50%); bottom: 1rem; width: min(780px, 94%); display: none; align-items: center; justify-content: space-between; gap: .8rem; background: #1d1630; border: 1px solid var(--line); border-radius: 12px; padding: .8rem; z-index: 990; }
.cookie-banner.show { display: flex; }
.cookie-banner p { margin: 0; }

@media (max-width: 760px) {
  .two-col, .hero-columns { grid-template-columns: 1fr; }
  .cookie-banner { flex-direction: column; align-items: flex-start; }
  .royal-head-grid, .royal-foot-grid { grid-template-columns: 1fr; }
  .royal-nav { justify-self: start; }
  nav { justify-content: flex-start; }
  .royal-header-note { width: fit-content; }
  table { min-width: 500px; }
}

@keyframes royalShine {
  from { transform: translateX(-180%) rotate(17deg); }
  to { transform: translateX(360%) rotate(17deg); }
}
