/* ============================================================================
   4550 Cherry Creek Casinos — shared design system
   ⛔ ALL colour lives in the :root block below. Never a hex anywhere else.
   Identity: slot-machine cherries + "4550". Navy + cherry-red, GOLD reserved
   for CTAs ONLY (rule 19). Motif = slot-reel / cherry payline.
   ============================================================================ */
:root{
  /* --- palette --- */
  --navy:#0E2A47;          /* primary: headings, frames, ranks */
  --navy-800:#0A2138;      /* raised navy surfaces */
  --navy-900:#07182A;      /* footer / deepest */
  --cherry:#D8112E;        /* accent + BONUS eye-catcher + stars (rule 6) */
  --cherry-ink:#AE0C23;
  --cherry-soft:#FCE9EC;   /* bonus panel tint */
  --cta:#F5A300;           /* RESERVED jackpot-gold — BUTTONS ONLY (rule 19) */
  --cta-hi:#FFBB33;        /* button hover */
  --cta-ink:#5A3800;       /* text on gold */
  --cream:#FBF6EE;         /* page bg */
  --surface:#FFFFFF;       /* cards */
  --surface-2:#F6EEE1;     /* alt bands */
  --ink:#17202E;           /* body text */
  --muted:#5E6675;         /* meta / secondary */
  --line:#EAE0D0;          /* hairlines */
  --line-2:#DED2BE;
  --leaf:#69B03B;          /* ONLY inside cherry-motif SVG art, never UI */
  --shadow:0 1px 2px rgba(14,42,71,.06),0 10px 28px -14px rgba(14,42,71,.24);
  --shadow-lg:0 22px 56px -20px rgba(14,42,71,.40);
  /* --- type --- */
  --disp:'Sora',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --sans:'Figtree',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --r:16px;
  --r-sm:10px;
  --wrap:1140px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--cream);
  font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--cherry-ink);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.section{padding-block:46px}
h1,h2,h3,h4{font-family:var(--disp);color:var(--navy);line-height:1.08;margin:0 0 .5em;
  font-weight:800;letter-spacing:-.01em}
h1{font-size:clamp(1.95rem,5vw,3rem)}
h2{font-size:clamp(1.6rem,4.2vw,2.35rem)}
h3{font-size:clamp(1.2rem,2.8vw,1.55rem)}
p{margin:0 0 1.05em}

/* ---- eyebrow with cherry glyph (nothing above a heading — used only where allowed) ---- */
.kick{display:inline-flex;align-items:center;gap:.5em;font-family:var(--disp);
  text-transform:uppercase;letter-spacing:.16em;color:var(--cherry);font-weight:700;font-size:.82rem}
.kick svg{width:1.05em;height:1.05em}

/* ============================ MASTHEAD ============================ */
.mast{background:var(--surface);border-bottom:1px solid var(--line)}
.mast .wrap{display:flex;align-items:center;gap:18px;height:74px}
.brand{display:flex;align-items:center}
.brand img{height:46px;width:auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:26px}
.nav a{color:var(--navy);font-weight:600;font-size:.98rem}
.nav a:hover{color:var(--cherry-ink);text-decoration:none}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;margin-left:auto}
.burger span{display:block;width:24px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px}

/* ---- slot-reel payline band (repeating motif) ---- */
.reelband{height:12px;background:var(--navy);
  background-image:
    radial-gradient(circle at 10px 6px, var(--cherry) 2.4px, transparent 2.6px),
    radial-gradient(circle at 22px 6px, var(--cherry) 2.4px, transparent 2.6px);
  background-size:44px 12px;background-repeat:repeat-x}

/* ============================ CTA (GOLD — reserved) ============================ */
.cta,.cta-lg,.cta-ghost{font-family:var(--disp);font-weight:800;letter-spacing:.02em;
  text-transform:uppercase;cursor:pointer;border:0;text-align:center;white-space:nowrap;
  transition:transform .12s ease,background .15s ease,box-shadow .15s ease;text-decoration:none}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  background:var(--cta);color:var(--cta-ink);padding:12px 20px;border-radius:999px;
  font-size:.98rem;box-shadow:0 2px 0 var(--cta-ink),0 8px 18px -8px rgba(90,56,0,.6)}
.cta:hover{background:var(--cta-hi);transform:translateY(-1px);text-decoration:none}
.cta:active{transform:translateY(1px);box-shadow:0 1px 0 var(--cta-ink)}
.cta-lg{display:flex;width:100%;align-items:center;justify-content:center;gap:.5em;
  background:var(--cta);color:var(--cta-ink);padding:15px 22px;border-radius:12px;font-size:1.05rem;
  box-shadow:0 3px 0 var(--cta-ink),0 10px 22px -10px rgba(90,56,0,.6)}
.cta-lg:hover{background:var(--cta-hi);transform:translateY(-1px);text-decoration:none}
.cta-ghost{display:inline-flex;align-items:center;gap:.4em;background:transparent;
  color:var(--navy);border:2px solid var(--cta);padding:8px 16px;border-radius:999px;font-size:.9rem}
.cta-ghost:hover{background:var(--cta);color:var(--cta-ink);text-decoration:none}
.cta .arw{font-size:1.05em;line-height:1}

/* ============================ HERO ============================ */
.hero{position:relative;background:var(--cream);
  background-image:
    radial-gradient(circle at 12px 14px, rgba(14,42,71,.045) 5px, transparent 5.5px);
  background-size:60px 60px;border-bottom:1px solid var(--line)}
.hero .wrap{padding-block:26px 22px}
.hero h1{max-width:16ch}
.lede{font-size:1.1rem;color:var(--ink);max-width:60ch;margin:.2em 0 .85em}

/* ---- byline (intentional, structured) ---- */
.byline{display:flex;align-items:center;gap:14px;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;padding:12px 16px;box-shadow:var(--shadow);max-width:640px}
.byline .ph{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none;
  border:2px solid var(--cherry)}
.byline .who{display:flex;flex-direction:column;gap:2px;min-width:0}
.byline .who b{font-family:var(--disp);color:var(--navy);font-size:1.02rem;font-weight:700}
.byline .who .role{color:var(--muted);font-size:.86rem}
.byline .meta{display:flex;flex-wrap:wrap;gap:6px 8px;margin-left:auto;justify-content:flex-end}
.byline .meta .m{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:var(--navy);
  background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px}
.byline .meta .m svg{width:13px;height:13px;color:var(--cherry)}
.byline .meta .m b{font-weight:700}

/* ============================ TOPLIST ROW CARDS (bespoke slot-reel) ============================ */
.toplist{display:flex;flex-direction:column;gap:16px;margin-top:22px}
.rowcard{position:relative;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;
  display:grid;align-items:center;
  grid-template-columns:64px 128px 1fr 240px 200px;gap:18px;padding:16px 18px 16px 12px}
.rowcard.top{border-color:var(--cherry);box-shadow:0 0 0 2px var(--cherry),var(--shadow-lg)}

/* rank as slot-reel window */
.rank{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  width:56px;height:64px;border-radius:12px;background:var(--navy);color:#fff;
  font-family:var(--disp);font-weight:800}
.rank .n{font-size:1.6rem;line-height:1}
.rank .lab{font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-top:2px}
.ribbon{position:absolute;top:-9px;left:50%;transform:translateX(-50%);white-space:nowrap;
  background:var(--cherry);color:#fff;font-family:var(--disp);font-weight:800;font-size:.56rem;
  letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:6px;box-shadow:var(--shadow)}

.logochip{display:flex;align-items:center;justify-content:center;background:#fff;
  border:1px solid var(--line);border-radius:12px;height:66px;padding:8px}
.logochip img{max-height:44px;width:auto;object-fit:contain}

.brandmeta{min-width:0}
.brandmeta .bn{font-family:var(--disp);font-weight:800;color:var(--navy);font-size:1.18rem;line-height:1.1}
.stars{display:inline-flex;align-items:center;gap:6px;margin-top:3px}
.stars .s{display:inline-flex;gap:1px}
.stars .s svg{width:15px;height:15px;color:var(--cherry)}
.stars .rt{font-weight:700;color:var(--navy);font-size:.9rem}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pill{font-size:.74rem;font-weight:600;color:var(--navy);background:var(--surface-2);
  border:1px solid var(--line-2);border-radius:6px;padding:3px 8px}

/* bonus block — the eye-catcher */
.bonus{background:var(--cherry-soft);border:1px solid #F4CDD3;border-radius:12px;
  padding:10px 14px;text-align:center}
.bonus .bl{font-family:var(--disp);font-weight:800;font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--cherry-ink)}
.bonus .ba{font-family:var(--disp);font-weight:800;color:var(--cherry);font-size:1.28rem;
  line-height:1.08;margin:2px 0 4px}
.bonus .bt{display:flex;justify-content:center;gap:5px;flex-wrap:wrap}
.bonus .bt span{font-size:.7rem;color:var(--navy);background:#fff;border:1px solid #F0C7CE;
  border-radius:5px;padding:2px 7px}

.act{display:flex;flex-direction:column;align-items:stretch;gap:7px}
.act .rev{font-size:.82rem;color:var(--navy);text-align:center;font-weight:600}
.act .rev:hover{color:var(--cherry-ink)}

/* ============================ generic content ============================ */
.band{background:var(--surface-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.prose h2{margin-top:0}
.prose{overflow-wrap:break-word}
.prose a,.authorbox a,.foot a{word-break:break-word}
.checks{list-style:none;padding:0;margin:0 0 1em}
.checks li{position:relative;padding-left:30px;margin-bottom:.55em}
.checks li::before{content:"";position:absolute;left:0;top:2px;width:20px;height:20px;
  background:no-repeat center/contain;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='16' r='5.4' fill='%23D8112E'/%3E%3Ccircle cx='15.5' cy='16' r='5.4' fill='%23AE0C23'/%3E%3Cpath d='M11 11 Q13 4 18 3' stroke='%2369B03B' stroke-width='1.7' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}

/* ---- section divider: cherry payline ---- */
.payline{height:26px;margin:8px 0;background:no-repeat center/auto 100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='26' viewBox='0 0 220 26'%3E%3Cline x1='0' y1='13' x2='90' y2='13' stroke='%23DED2BE' stroke-width='2'/%3E%3Cline x1='130' y1='13' x2='220' y2='13' stroke='%23DED2BE' stroke-width='2'/%3E%3Ccircle cx='104' cy='16' r='5.4' fill='%23D8112E'/%3E%3Ccircle cx='116' cy='16' r='5.4' fill='%23AE0C23'/%3E%3Cpath d='M106 11 Q110 3 116 3' stroke='%2369B03B' stroke-width='1.8' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}

/* ============================ FOOTER ============================ */
.foot{background:var(--navy-900);color:#c9d3e0;padding:40px 0 30px;margin-top:40px}
.foot a{color:#e6ecf4}
.disc{font-size:.82rem;color:#9fb0c6;border-top:1px solid rgba(255,255,255,.12);
  margin-top:22px;padding-top:16px}

/* ============================ rating bar (fractional) ============================ */
.rating{display:inline-flex;align-items:center;gap:7px;margin-top:3px}
.rating .bar{position:relative;font-family:var(--sans);font-size:16px;line-height:1;letter-spacing:2px}
.rating .bar .empty{color:var(--line-2)}
.rating .bar .fill{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;color:var(--cherry)}
.rating .rt{font-family:var(--disp);font-weight:800;color:var(--navy);font-size:.92rem}

/* ============================ deep reviews ============================ */
.reviews{display:flex;flex-direction:column;gap:22px;margin-top:22px}
.review{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:22px}
.review-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.review-head .logochip{height:60px;width:150px;flex:none}
.review-head h3{margin:0}
.review-head .verdict{color:var(--muted);font-size:.95rem;margin:2px 0 0}
.review-head .rnk{margin-left:auto;font-family:var(--disp);font-weight:800;color:var(--cherry);
  font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;background:var(--cherry-soft);
  border:1px solid #F4CDD3;border-radius:8px;padding:5px 10px}
.review-body{display:grid;grid-template-columns:1.3fr 1fr;gap:22px;margin-top:16px}
.subscores{display:flex;flex-direction:column;gap:9px}
.sub{display:grid;grid-template-columns:120px 1fr 34px;align-items:center;gap:10px;font-size:.9rem}
.sub .track{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}
.sub .val{height:100%;background:var(--navy);border-radius:999px}
.sub .num{font-family:var(--disp);font-weight:700;color:var(--navy);text-align:right}
.proscons{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pc h4{font-family:var(--disp);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;margin:0 0 7px}
.pc.pro h4{color:#1F7A46}.pc.con h4{color:var(--cherry-ink)}
.pc ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:.9rem}
.pc li{position:relative;padding-left:20px;line-height:1.4}
.pc.pro li::before{content:"+";position:absolute;left:0;color:#1F7A46;font-weight:800}
.pc.con li::before{content:"–";position:absolute;left:0;color:var(--cherry-ink);font-weight:800}
.review-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:18px;
  padding-top:16px;border-top:1px solid var(--line)}
.review-cta .rbonus{font-family:var(--disp);font-weight:700;color:var(--navy)}
.review-cta .rbonus b{color:var(--cherry)}
.review-cta .cta{margin-left:auto}

/* ============================ comparison table ============================ */
.cmp-wrap{overflow-x:auto;margin-top:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table.cmp{border-collapse:collapse;width:100%;min-width:640px;font-size:.94rem}
table.cmp th,table.cmp td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}
table.cmp thead th{font-family:var(--disp);color:#fff;background:var(--navy);font-weight:700;
  font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}
table.cmp tbody tr:last-child td{border-bottom:0}
table.cmp tbody tr:nth-child(even){background:var(--surface-2)}
table.cmp .b{font-family:var(--disp);font-weight:700;color:var(--navy)}
table.cmp .bo{color:var(--cherry);font-weight:700}

/* ============================ steps / faq / callout / author ============================ */
ol.steps{counter-reset:s;list-style:none;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:12px}
ol.steps li{position:relative;padding:14px 16px 14px 58px;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow)}
ol.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:14px;top:50%;
  transform:translateY(-50%);width:30px;height:30px;border-radius:9px;background:var(--navy);color:#fff;
  font-family:var(--disp);font-weight:800;display:flex;align-items:center;justify-content:center}
ol.steps li b{font-family:var(--disp);color:var(--navy)}
.faq{margin-top:16px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:16px 40px 16px 0;position:relative;
  font-family:var(--disp);font-weight:700;color:var(--navy);font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:8px;top:14px;font-size:1.5rem;color:var(--cherry);font-weight:400}
.faq details[open] summary::after{content:"–"}
.faq .ans{padding:0 0 16px}
.note{background:var(--surface-2);border-left:4px solid var(--cherry);border-radius:0 10px 10px 0;
  padding:14px 18px;margin:16px 0}
.note b{color:var(--navy);font-family:var(--disp)}
.authorbox{display:flex;gap:18px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r);padding:20px;box-shadow:var(--shadow);margin-top:24px}
.authorbox img{width:76px;height:76px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--cherry)}
.authorbox>div{min-width:0}
.authorbox a{overflow-wrap:anywhere}
.authorbox .ab-name{font-family:var(--disp);font-weight:800;color:var(--navy);font-size:1.1rem}
.authorbox .ab-role{color:var(--muted);font-size:.9rem;margin-bottom:6px}

/* ============================ footer layout ============================ */
.foot-top{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap}
.foot-brand{font-family:var(--disp);font-weight:800;color:#fff;font-size:1.2rem;margin:0 0 6px}
.foot-tag{max-width:44ch;margin:0;color:#aebccf}
.foot-nav{display:flex;flex-direction:column;gap:8px;text-align:right}
.foot-nav a{color:#dbe5f0;font-size:.92rem}

/* ============================ RESPONSIVE ============================ */
@media(max-width:900px){
  .rowcard{grid-template-columns:1fr;gap:12px;padding:16px;text-align:center;justify-items:center}
  .rank{position:static;flex-direction:row;gap:8px;width:auto;height:auto;padding:6px 12px;border-radius:999px}
  .rank .n{font-size:1.2rem}.rank .lab{margin-top:0}
  .ribbon{position:static;transform:none;margin-bottom:6px;display:inline-block}
  .logochip{height:60px;width:170px}
  .brandmeta{display:flex;flex-direction:column;align-items:center}
  .pills{justify-content:center}
  .bonus{width:100%;order:2}
  .brandmeta{order:1}
  .act{width:100%;order:3}
  .rc-inner{display:contents}
  .review-body{grid-template-columns:1fr;gap:16px}
  .review-cta{flex-direction:column;align-items:stretch}
  .review-cta .cta{margin-left:0;width:100%}
  .sub{grid-template-columns:110px 1fr 30px}
  .foot-top{flex-direction:column}
  .foot-nav{text-align:left}
  .authorbox{flex-direction:column;gap:12px}
  .authorbox img{width:64px;height:64px}
}
@media(max-width:760px){
  .nav{display:none}
  .burger{display:block}
  .nav.open{display:flex;position:absolute;top:74px;left:0;right:0;flex-direction:column;
    background:var(--surface);border-bottom:1px solid var(--line);padding:14px 20px;gap:14px;z-index:40}
  .byline{flex-wrap:wrap}
  .byline .meta{margin-left:0;width:100%;justify-content:flex-start}
}
/* mobile hero compaction so the first toplist card clears the fold (rule 1) */
@media(max-width:480px){
  .hero .wrap{padding-block:14px 14px}
  .hero h1{font-size:1.58rem;line-height:1.12;margin-bottom:.3em}
  .lede{font-size:1rem;line-height:1.45;margin-bottom:.6em}
  .byline{padding:10px 12px;gap:11px}
  .byline .ph{width:46px;height:46px}
  .byline .meta{gap:5px 6px;margin-top:2px}
  .byline .meta .m{padding:3px 8px;font-size:.76rem}
  .section{padding-block:30px}
  #toplist,.toplist-sec{padding-block-start:24px}
}
