/* ==========================================================================
   Book of Ra (DE) — one-page editorial layout
   Palette: navy #181934 · coral #f53b57 · cyan #4bcffa · cream/gold accents
   ========================================================================== */

:root{
  --navy:#181934;
  --navy-2:#23244a;
  --coral:#f53b57;
  --coral-dark:#d92846;
  --cyan:#4bcffa;
  --cyan-soft:#eaf9ff;
  --gold:#c8a24a;
  --cream:#fdf7e9;
  --ink:#1b1c2b;
  --muted:#5c5f74;
  --line:#e5e7ef;
  --bg:#ffffff;
  --bg-alt:#f6f7fb;
  --radius:14px;
  --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(24,25,52,.06), 0 2px 8px rgba(24,25,52,.05);
  --shadow-md:0 4px 12px rgba(24,25,52,.08), 0 12px 32px rgba(24,25,52,.08);
  --font-head:"Rubik", "Helvetica Neue", Arial, sans-serif;
  --font-body:"Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  --header-h:66px;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 12px);}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} *{animation:none!important;transition:none!important} }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%; height:auto; display:block}

h1,h2,h3{font-family:var(--font-head); color:var(--navy); line-height:1.2; margin:0 0 .5em; letter-spacing:-.01em}
h1{font-size:clamp(2rem, 1.35rem + 2.6vw, 3.05rem); font-weight:700}
h2{font-size:clamp(1.5rem, 1.15rem + 1.5vw, 2.1rem); font-weight:600}
h3{font-size:1.13rem; font-weight:600}
p{margin:0 0 1.05em}

a{color:var(--coral-dark); text-decoration:none}
a:hover{text-decoration:underline}

.wrap{width:min(1160px, calc(100% - 40px)); margin-inline:auto}
.wrap.narrow{width:min(820px, calc(100% - 40px))}

.skip{position:absolute;left:-9999px;top:0;background:var(--coral);color:#fff;padding:10px 16px;z-index:100;border-radius:0 0 8px 0}
.skip:focus{left:0}

:where(a,button,summary):focus-visible{outline:3px solid var(--cyan); outline-offset:2px; border-radius:4px}

/* ---------------------------------------------------------------- header */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--navy);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header.is-stuck{box-shadow:0 6px 24px rgba(24,25,52,.28)}

.header-inner{display:flex; align-items:center; gap:20px; height:var(--header-h)}

.logo{display:inline-flex; align-items:center; gap:9px; color:#fff; font-family:var(--font-head); font-size:1.06rem; letter-spacing:-.015em; flex:0 0 auto}
.logo:hover{text-decoration:none}
.logo-mark{color:var(--gold); font-size:1.35rem; line-height:1}
.logo-text{font-weight:400; color:#c9cadd}
.logo-text strong{font-weight:700; color:#fff}

.site-nav{display:flex; gap:22px; margin-left:auto; align-items:center}
.site-nav a{
  color:#c9cadd; font-size:.94rem; font-weight:500; padding:6px 0;
  border-bottom:2px solid transparent; transition:color .15s, border-color .15s;
}
.site-nav a:hover{color:#fff; text-decoration:none; border-bottom-color:rgba(255,255,255,.35)}
.site-nav a.is-active{color:#fff; border-bottom-color:var(--coral)}

.header-cta{display:flex; gap:10px; align-items:center; flex:0 0 auto}

.nav-toggle{display:none; margin-left:auto; width:42px; height:38px; background:transparent; border:1px solid rgba(255,255,255,.25); border-radius:8px; cursor:pointer; padding:9px 9px; flex-direction:column; justify-content:space-between}
.nav-toggle span{display:block; height:2px; background:#fff; border-radius:2px; transition:transform .2s, opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------------------------------------------------------------- buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-body); font-weight:600; font-size:.94rem;
  padding:10px 20px; border-radius:999px; border:1.5px solid transparent;
  transition:background-color .16s, color .16s, border-color .16s, transform .12s, box-shadow .16s;
  white-space:nowrap; cursor:pointer; text-align:center;
}
.btn:hover{text-decoration:none; transform:translateY(-1px)}
.btn-primary{background:var(--coral); color:#fff; box-shadow:0 4px 14px rgba(245,59,87,.28)}
.btn-primary:hover{background:var(--coral-dark); box-shadow:0 6px 18px rgba(245,59,87,.36)}
.btn-outline{background:#fff; color:var(--navy); border-color:var(--navy)}
.btn-outline:hover{background:var(--navy); color:#fff}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.55)}
.btn-outline-light:hover{background:#fff; color:var(--navy); border-color:#fff}
.btn-ghost{background:transparent; color:#fff; border-color:rgba(255,255,255,.3); padding:9px 16px; font-size:.9rem}
.btn-ghost:hover{border-color:#fff; background:rgba(255,255,255,.08)}
.btn-lg{padding:14px 30px; font-size:1.01rem}
.btn-mini{padding:7px 15px; font-size:.85rem; border-radius:999px}

.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin:26px 0 14px}

.link-arrow{display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:.95rem; color:var(--coral-dark)}
.link-arrow::after{content:"→"; transition:transform .15s}
.link-arrow:hover{text-decoration:none}
.link-arrow:hover::after{transform:translateX(3px)}

/* ---------------------------------------------------------------- hero */
.hero{
  background:
    radial-gradient(1200px 420px at 78% -10%, rgba(75,207,250,.16), transparent 60%),
    linear-gradient(180deg, #fbfaf6 0%, #ffffff 100%);
  border-bottom:1px solid var(--line);
  padding:clamp(38px, 5vw, 68px) 0 clamp(34px, 4.5vw, 58px);
}
.hero-grid{display:grid; grid-template-columns:1.06fr .94fr; gap:clamp(28px, 4vw, 56px); align-items:center}

.eyebrow{
  font-family:var(--font-head); font-size:.78rem; font-weight:600; letter-spacing:.1em;
  text-transform:uppercase; color:var(--muted); margin:0 0 14px;
}
.hero-copy h1{margin-bottom:.42em}
.lead{font-size:1.08rem; color:#3a3c52; max-width:36em}

.usp{list-style:none; padding:0; margin:22px 0 0; display:grid; gap:9px}
.usp li{position:relative; padding-left:30px; font-size:.99rem; color:#33354a}
.usp li::before{
  content:""; position:absolute; left:0; top:.52em; width:16px; height:16px;
  border-radius:50%; background:var(--cyan-soft); border:1.5px solid var(--cyan);
}
.usp li::after{content:""; position:absolute; left:5px; top:.78em; width:6px; height:3px; border-left:2px solid var(--navy); border-bottom:2px solid var(--navy); transform:rotate(-45deg)}

.micro{font-size:.83rem; color:var(--muted); margin:0}

.hero-art{margin:0}
.hero-art a{display:block; border-radius:var(--radius); overflow:hidden; border:1px solid rgba(200,162,74,.45); box-shadow:var(--shadow-md); background:var(--cream)}
.hero-art a:hover img{transform:scale(1.02)}
.hero-art img{width:100%; transition:transform .35s ease}
.hero-art figcaption{font-size:.82rem; color:var(--muted); margin-top:10px; text-align:center}

/* ---------------------------------------------------------------- fact strip */
.strip{background:var(--navy); color:#fff; padding:20px 0}
.strip-grid{display:grid; grid-template-columns:repeat(6, 1fr); gap:14px}
.strip-grid > div{display:flex; flex-direction:column; gap:2px; padding:4px 10px; border-left:2px solid rgba(255,255,255,.14)}
.strip-grid > div:first-child{border-left:0}
.strip-k{font-size:.74rem; text-transform:uppercase; letter-spacing:.07em; color:#9a9cbb; font-weight:600}
.strip-v{font-family:var(--font-head); font-size:1.02rem; font-weight:600; color:#fff}

/* ---------------------------------------------------------------- sections */
.section{padding:clamp(44px, 5.5vw, 76px) 0}
.section.alt{background:var(--bg-alt); border-block:1px solid var(--line)}
.section > .wrap > h2{margin-bottom:.55em}
.section > .wrap.narrow > h2{margin-bottom:.5em}

.answer{font-size:1.06rem; color:#2c2e42; border-left:4px solid var(--coral); padding-left:18px; margin-bottom:1.6em}
.muted-p{color:var(--muted); font-size:.98rem}
.center-p{max-width:62ch; margin-inline:auto; text-align:center; margin-bottom:2em}
.h3-standalone{margin-top:2.4em; font-size:1.3rem}
.note{font-size:.9rem; color:var(--muted); background:#fbfbfd; border:1px solid var(--line); border-radius:var(--radius-sm); padding:16px 18px; margin-top:26px}

/* ways */
.ways{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:8px 0 30px}
.way{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px 22px; position:relative; box-shadow:var(--shadow-sm)}
.way-num{font-family:var(--font-head); font-size:.8rem; font-weight:700; color:var(--gold); letter-spacing:.08em; display:block; margin-bottom:8px}
.way h3{margin-bottom:.45em}
.way p{font-size:.94rem; color:#464962; margin-bottom:.9em}

/* infobox */
.infobox{background:var(--cream); border:1px solid rgba(200,162,74,.4); border-left:4px solid var(--gold); border-radius:var(--radius-sm); padding:22px 24px; margin:30px 0}
.infobox.cyan{background:var(--cyan-soft); border-color:rgba(75,207,250,.5); border-left-color:var(--cyan)}
.infobox h3{margin-bottom:.4em; font-size:1.06rem}
.infobox p{margin:0; font-size:.96rem; color:#33364c}

/* mechanics */
.mech-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:6px}
.mech-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:24px 22px; box-shadow:var(--shadow-sm)}
.mech-card h3{padding-bottom:12px; border-bottom:2px solid var(--cyan); display:inline-block}
.mech-card ul{margin:6px 0 0; padding-left:20px}
.mech-card li{font-size:.93rem; color:#464962; margin-bottom:8px}

/* ---------------------------------------------------------------- tables */
.table-scroll{overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:var(--shadow-sm); -webkit-overflow-scrolling:touch}
table{width:100%; border-collapse:collapse; font-size:.94rem; min-width:600px}
caption{caption-side:top; text-align:left; padding:16px 18px 4px; font-size:.86rem; color:var(--muted); font-weight:500}
thead th{background:var(--navy); color:#fff; font-family:var(--font-head); font-weight:600; font-size:.86rem; letter-spacing:.02em; text-align:left; padding:13px 18px; white-space:nowrap}
tbody th{text-align:left; font-weight:600; color:var(--navy); font-family:var(--font-body)}
tbody th, tbody td{padding:12px 18px; border-top:1px solid var(--line); vertical-align:top}
tbody tr:nth-child(even){background:#fafbfe}
.facts tbody td:nth-child(4){font-variant-numeric:tabular-nums; font-weight:600; color:var(--navy)}
.paytable tbody td{font-variant-numeric:tabular-nums}
.ast{color:var(--coral); font-weight:700}
.footnote{font-size:.85rem; color:var(--muted); margin-top:16px; max-width:78ch}

/* ---------------------------------------------------------------- cards grid */
.cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(232px, 1fr)); gap:20px}
.cards.small{grid-template-columns:repeat(auto-fill, minmax(214px, 1fr))}

.card{
  display:flex; flex-direction:column; background:#fff;
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
  box-shadow:var(--shadow-sm); transition:transform .18s, box-shadow .18s, border-color .18s;
}
.card:hover{transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:rgba(200,162,74,.55)}
.card.featured{border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,162,74,.13), var(--shadow-sm)}

.card-media{display:block; background:var(--navy); line-height:0; border-bottom:1px solid var(--line)}
.card-media img{width:100%; aspect-ratio:198/116; object-fit:cover}

.card-body{padding:16px 18px 8px; flex:1}
.card-body h3{font-size:1.02rem; margin-bottom:.35em}
.card-body p{font-size:.89rem; color:#4c4f66; margin-bottom:.7em; line-height:1.55}
.card-meta{font-size:.8rem!important; color:var(--muted)!important; font-variant-numeric:tabular-nums; border-top:1px dashed var(--line); padding-top:9px; margin-bottom:0!important}

.badge{display:inline-block; background:var(--cream); color:#8a6d1f; border:1px solid rgba(200,162,74,.5); font-size:.7rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:3px 9px; border-radius:999px; margin-bottom:9px}

.card-actions{display:flex; gap:8px; padding:12px 18px 18px}
.card-actions .btn{flex:1}

/* ---------------------------------------------------------------- steps */
.steps-layout{display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(26px,4vw,50px); align-items:start}
.steps{list-style:none; counter-reset:step; padding:0; margin:0; display:grid; gap:18px}
.steps li{counter-increment:step; position:relative; padding:22px 24px 22px 74px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm)}
.steps li::before{
  content:counter(step); position:absolute; left:22px; top:22px;
  width:36px; height:36px; border-radius:50%; background:var(--navy); color:#fff;
  font-family:var(--font-head); font-weight:600; font-size:1rem;
  display:flex; align-items:center; justify-content:center;
}
.steps h3{margin-bottom:.4em}
.steps p{font-size:.94rem; color:#464962; margin-bottom:.8em}
.steps .btn{margin-top:4px}

.steps-art{margin:0; position:sticky; top:calc(var(--header-h) + 22px)}
.steps-art a{display:block; border-radius:var(--radius); overflow:hidden; border:1px solid rgba(200,162,74,.45); box-shadow:var(--shadow-md)}
.steps-art img{width:100%}
.steps-art figcaption{font-size:.82rem; color:var(--muted); margin-top:10px; text-align:center}

/* ---------------------------------------------------------------- faq */
.faq{display:grid; gap:12px}
.faq details{background:#fff; border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow-sm); overflow:hidden}
.faq details[open]{border-color:rgba(75,207,250,.6)}
.faq summary{
  cursor:pointer; list-style:none; padding:17px 52px 17px 20px; position:relative;
  font-family:var(--font-head); font-weight:600; font-size:1.02rem; color:var(--navy);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:""; position:absolute; right:20px; top:50%; width:10px; height:10px;
  border-right:2px solid var(--coral); border-bottom:2px solid var(--coral);
  transform:translateY(-70%) rotate(45deg); transition:transform .2s;
}
.faq details[open] summary::after{transform:translateY(-25%) rotate(-135deg)}
.faq summary:hover{background:#fbfbfd}
.faq-body{padding:0 20px 18px; border-top:1px solid var(--line); padding-top:16px}
.faq-body p{font-size:.96rem; color:#3d4057; margin-bottom:.8em}
.faq-body p:last-child{margin-bottom:0}

/* ---------------------------------------------------------------- cta band */
.cta-band{background:linear-gradient(120deg, var(--navy) 0%, var(--navy-2) 100%); color:#fff; padding:clamp(34px,4.5vw,54px) 0}
.cta-band-inner{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap}
.cta-band h2{color:#fff; margin-bottom:.25em; font-size:clamp(1.35rem,1.1rem+1vw,1.8rem)}
.cta-band p{color:#c2c4dc; margin:0; font-size:1rem}
.cta-band .cta-row{margin:0}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--navy); color:#b6b8d0; padding:52px 0 26px; font-size:.92rem}
.footer-grid{display:grid; grid-template-columns:1.35fr 1fr 1fr 1.25fr; gap:34px}
.footer-brand .logo-mark{font-size:1.3rem}
.footer-brand .logo-text{font-family:var(--font-head); font-size:1.05rem}
.footer-brand p{margin-top:12px; font-size:.88rem; line-height:1.6}
.site-footer h2{color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.09em; margin-bottom:14px; font-weight:600}
.footer-col ul{list-style:none; padding:0; margin:0; display:grid; gap:9px}
.footer-col a{color:#b6b8d0; font-size:.9rem}
.footer-col a:hover{color:#fff}
.footer-col.rg p{font-size:.86rem; line-height:1.6}
.age{display:inline-block; border:2px solid var(--coral); color:#fff; font-family:var(--font-head); font-weight:700; font-size:.9rem; border-radius:50%; width:44px; height:44px; line-height:40px; text-align:center; margin:0 0 12px}
.tel{color:#fff; font-weight:600; border-bottom:1px dotted rgba(255,255,255,.5)}
.nowrap{white-space:nowrap; color:#d5d6e6}

.footer-bottom{border-top:1px solid rgba(255,255,255,.12); margin-top:38px; padding-top:22px}
.disclosure{font-size:.83rem; line-height:1.6; color:#9c9ebb; max-width:92ch}
.disclosure strong{color:#d5d6e6}
.copyright{font-size:.8rem; color:#82849f; margin:10px 0 0}

/* ---------------------------------------------------------------- responsive */
@media (max-width:1040px){
  .site-nav{gap:16px}
  .site-nav a{font-size:.88rem}
  .header-cta .btn-ghost{display:none}
  .strip-grid{grid-template-columns:repeat(3,1fr); row-gap:16px}
  .strip-grid > div:nth-child(3n+1){border-left:0}
}

@media (max-width:880px){
  body{font-size:16px}
  .hero-grid{grid-template-columns:1fr}
  .hero-art{order:-1; max-width:560px; margin-inline:auto; width:100%}
  .ways, .mech-grid{grid-template-columns:1fr}
  .steps-layout{grid-template-columns:1fr}
  .steps-art{position:static; max-width:560px; margin-inline:auto}
  .footer-grid{grid-template-columns:1fr 1fr; gap:30px}
}

@media (max-width:760px){
  .nav-toggle{display:flex}
  .header-inner{gap:10px}
  .logo{font-size:.95rem; min-width:0}
  .header-cta{order:3}
  .header-cta .btn{padding:9px 13px; font-size:.85rem}
  .site-nav{
    position:absolute; left:0; right:0; top:var(--header-h);
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--navy); border-bottom:1px solid rgba(255,255,255,.12);
    padding:6px 20px 16px; margin:0;
    display:none; box-shadow:0 12px 24px rgba(0,0,0,.28);
  }
  .site-nav.is-open{display:flex}
  .site-nav a{padding:12px 0; border-bottom:1px solid rgba(255,255,255,.08)}
  .site-nav a.is-active{border-bottom-color:var(--coral)}
  .cards{grid-template-columns:repeat(auto-fill, minmax(158px,1fr)); gap:14px}
  .cards.small{grid-template-columns:repeat(auto-fill, minmax(158px,1fr))}
  .card-body{padding:13px 14px 6px}
  .card-actions{padding:10px 14px 14px; gap:6px}
  .btn-mini{padding:7px 10px; font-size:.79rem}
  .cta-band-inner{flex-direction:column; align-items:flex-start}
  .answer{padding-left:14px}
}

@media (max-width:400px){
  .header-inner{gap:8px}
  .logo-text{font-size:.9rem}
  .header-cta .btn{padding:9px 11px; font-size:.8rem}
}

@media (max-width:520px){
  .strip-grid{grid-template-columns:repeat(2,1fr)}
  .strip-grid > div{border-left:0; padding-left:0}
  .footer-grid{grid-template-columns:1fr}
  .cta-row .btn{flex:1 1 100%}
}

@media print{
  .site-header,.cta-band,.card-actions,.nav-toggle{display:none}
  body{font-size:12pt}
}
