/* AstroRasa — shared site styles.
   Brand: black ground, gold #C9A227. The official logo sits on black, so the
   header, hero and footer are black. Logo files are the delivered artwork with
   only their transparent margin removed — no pixel of the mark is altered. */

:root {
  /* BRAND_BLACK_V1: the logo is presented on black. Header, hero and footer
     are the logo's ground, so they are black rather than navy. Gold stays the
     accent; navy is kept as a token for surfaces that are not logo ground. */
  --navy:#000000; --navy-deep:#000000; --navy-soft:#12161F;
  --gold:#C9A227; --gold-soft:#E0C368; --gold-dim:rgba(201,162,39,.28);
  --ivory:#F8F5EE; --surface:#FFFFFF; --surface-2:#F2EEE4;
  --ink:#161C2B; --ink-soft:#55607A; --ink-faint:#8A93A6; --rule:#E4DFD3;
  --on-navy:#F7F4EC; --on-navy-soft:rgba(247,244,236,.78);
  --display:'Marcellus','Hoefler Text',Georgia,serif;
  --body:'Karla',system-ui,-apple-system,'Segoe UI',sans-serif;
  --radius:4px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --navy:#000000; --navy-deep:#000000; --navy-soft:#12161F;
    --gold:#D9B84A; --gold-soft:#E8CE78;
    --ivory:#0A0C11; --surface:#14171E; --surface-2:#1A1E27;
    --ink:#ECEFF4; --ink-soft:#A8B1C2; --ink-faint:#79839A; --rule:#242932;
  }
}
:root[data-theme="dark"] {
  --navy:#000000; --navy-deep:#000000; --navy-soft:#12161F;
  --gold:#D9B84A; --gold-soft:#E8CE78;
  --ivory:#0A0C11; --surface:#14171E; --surface-2:#1A1E27;
  --ink:#ECEFF4; --ink-soft:#A8B1C2; --ink-faint:#79839A; --rule:#242932;
}

*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  * { animation:none !important; transition:none !important; }
}
body {
  margin:0; background:var(--ivory); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img { max-width:100%; height:auto; display:block; }
.wrap { max-width:1100px; margin:0 auto; padding:0 24px; }
.narrow { max-width:700px; }
a:focus-visible,button:focus-visible { outline:2px solid var(--gold-soft); outline-offset:3px; }

/* BRAND NAME. It is written AstroRasa — never ASTRORASA, never astrorasa.
   Several styles here uppercase their text (nav, eyebrows, card tags, table
   headers), which silently mangles it.

   Two guards, and both are wanted. `.brand-name` protects the word itself, so
   it survives any uppercase style added later. `.has-brand` drops the
   uppercase from the WHOLE label, because "ASK AstroRasa" reads as a typo
   rather than as a brand rule — the letter-spacing is kept so the label still
   sits with its uppercase siblings. */
.brand-name { text-transform:none !important; }
.has-brand  { text-transform:none !important; letter-spacing:.06em; }

/* ── header ─────────────────────────────────────────────── */
.site-head {
  position:sticky; top:0; z-index:60;
  background:var(--navy); border-bottom:1px solid var(--gold-dim);
}
.site-head .wrap {
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; min-height:84px; padding-top:14px; padding-bottom:14px;
}
/* Clear space around the official lockup: never let anything crowd it. */
.brand { display:block; padding:6px 10px; flex:0 0 auto; }
.brand img { height:46px; width:auto; }
@media (max-width:560px){ .brand img { height:36px; } }

.site-nav { display:flex; gap:26px; align-items:center; }
.site-nav a {
  color:var(--on-navy-soft); text-decoration:none; font-size:14px;
  letter-spacing:.05em; text-transform:uppercase; white-space:nowrap;
}
.site-nav a:hover,.site-nav a:focus-visible { color:var(--gold-soft); }
@media (max-width:820px){ .site-nav { display:none; } }

/* ── buttons ────────────────────────────────────────────── */
.btn {
  display:inline-block; padding:14px 28px; border-radius:var(--radius);
  font-size:15.5px; letter-spacing:.02em; text-decoration:none;
  border:1px solid var(--gold); background:var(--gold); color:#000000;
  font-weight:600; transition:background .15s ease;
}
.btn:hover,.btn:focus-visible { background:var(--gold-soft); border-color:var(--gold-soft); }
.btn-ghost { background:transparent; color:var(--gold-soft); }
.btn-ghost:hover,.btn-ghost:focus-visible { background:rgba(201,162,39,.14); }
.cta-row { display:flex; gap:14px; flex-wrap:wrap; }

/* ── type ───────────────────────────────────────────────── */
h1,h2,h3 { font-family:var(--display); font-weight:400; text-wrap:balance; }
h2 { font-size:clamp(27px,3.3vw,36px); line-height:1.16; margin:0 0 16px; }
h3 { font-size:20px; margin:0 0 8px; }
.eyebrow {
  font-size:12px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin:0 0 14px; font-weight:600;
}
.lede { font-size:19px; color:var(--ink-soft); margin:0 0 10px; }
section p { color:var(--ink-soft); }
section { padding:78px 0; }
.alt { background:var(--surface); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }

/* ── cards ──────────────────────────────────────────────── */
.cards { display:grid; gap:18px; margin-top:40px; }
.cards-3 { grid-template-columns:repeat(3,1fr); }
.cards-2 { grid-template-columns:repeat(2,1fr); }
.card {
  background:var(--surface); border:1px solid var(--rule);
  border-radius:var(--radius); padding:28px 26px;
}
.card .tag {
  font-size:11.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold); margin:0 0 10px; font-weight:600;
}
.card p { margin:0 0 14px; font-size:15.5px; }
.card ul { margin:0; padding-left:18px; color:var(--ink-soft); font-size:15px; }
.card li { margin-bottom:5px; }
@media (max-width:900px){ .cards-3 { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .cards-3,.cards-2 { grid-template-columns:1fr; } }

/* ── footer ─────────────────────────────────────────────── */
.site-foot { background:var(--navy); color:rgba(247,244,236,.66); padding:56px 0 40px; font-size:15px; }
.site-foot a { color:rgba(247,244,236,.84); text-decoration:none; }
.site-foot a:hover,.site-foot a:focus-visible { color:var(--gold-soft); }
.foot-top { display:flex; justify-content:space-between; gap:36px; flex-wrap:wrap; }
.foot-links { display:flex; gap:24px; flex-wrap:wrap; }
.foot-legal {
  margin-top:36px; padding-top:22px; border-top:1px solid rgba(247,244,236,.14);
  font-size:13.5px; color:rgba(247,244,236,.52);
}
.foot-legal p { margin:0 0 8px; }

/* ── legal pages ────────────────────────────────────────── */
.doc { max-width:720px; margin:0 auto; padding:56px 24px 88px; }
.doc h1 { font-size:clamp(31px,4.4vw,42px); line-height:1.12; margin:0 0 10px; }
.doc .updated { color:var(--ink-faint); font-size:14.5px; margin:0 0 4px; }
.doc h2 {
  font-size:24px; margin:48px 0 12px; padding-top:24px;
  border-top:1px solid var(--rule);
}
.doc h3 { font-family:var(--body); font-size:17px; font-weight:600; margin:26px 0 6px; color:var(--ink); }
.doc p,.doc li { color:var(--ink-soft); }
.doc p { margin:0 0 16px; }
.doc ul { padding-left:22px; margin:0 0 18px; }
.doc li { margin-bottom:9px; }
.doc strong { color:var(--ink); font-weight:600; }
.doc a { color:var(--ink); text-decoration:underline; text-underline-offset:2px; }
.doc a:hover,.doc a:focus-visible { color:var(--gold); }
.callout {
  background:var(--surface); border-left:3px solid var(--gold);
  padding:20px 24px; margin:26px 0; border-radius:0 var(--radius) var(--radius) 0;
}
.callout p:last-child { margin-bottom:0; }
.scroll { overflow-x:auto; }
table { width:100%; border-collapse:collapse; margin:20px 0 24px; font-size:15.5px; }
th,td { text-align:left; padding:11px 12px; border-bottom:1px solid var(--rule); vertical-align:top; color:var(--ink-soft); }
th { color:var(--ink); font-weight:600; font-size:12.5px; letter-spacing:.07em; text-transform:uppercase; }
