/* ============================================================
   DynasticAI - Stage 3 brand system
   Locked Stage 2 visual identity. Private wealth standard.
   Palette, type, and components are canonical. Do not introduce
   bright colors, gradients beyond the quiet gold wash, emojis,
   or playful styling.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&display=swap');

:root{
  /* Core palette (Stage 2 lock) */
  --obsidian:#10151F;     /* primary background */
  --midnight:#141B27;     /* secondary panels */
  --slate:#1B2330;        /* card surfaces */
  --gold:#C6A15B;         /* primary accent */
  --champagne:#D6C7A1;    /* secondary accent */
  --parchment:#F4EFE6;    /* light text */
  --brown:#5E4636;        /* land brown */
  --estate:#263F36;       /* success / forest */
  --burgundy:#5C1F24;     /* risk */
  --steel:#384A63;        /* info */
  --ink:#1D1B18;
  --muted:#B8B1A4;        /* secondary text */
  --body:#D8D1C4;         /* body copy on dark */

  --border:rgba(255,255,255,.10);
  --hairline:rgba(198,161,91,.28);
  --surface:rgba(255,255,255,.03);
  --surface-2:rgba(255,255,255,.05);

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;

  --maxw:1180px;
  --radius:14px;
  --radius-sm:8px;

  /* Per-org accent. Defaults to gold; an org experience may re-tint this
     within the readiness app only. Kept muted to respect the luxury system. */
  --accent:var(--gold);
  --accent-soft:rgba(198,161,91,.10);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--obsidian);color-scheme:dark}
body{
  margin:0;background:var(--obsidian);color:var(--parchment);
  font-family:var(--sans);font-size:1rem;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:.005em;line-height:1.1;margin:0;color:var(--parchment)}
p{margin:0}
a{color:var(--champagne);text-decoration:none;transition:color .18s ease}
a:hover{color:var(--gold)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}
img{max-width:100%;display:block}
.tnum{font-variant-numeric:tabular-nums}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.section{padding:72px 0;border-bottom:1px solid var(--border)}
.section--tight{padding:56px 0}
.eyebrow{color:var(--gold);font-size:.8125rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin:0 0 16px}
.lede{font-size:1.125rem;line-height:1.7;color:var(--body)}
.muted{color:var(--muted)}
.measure{max-width:62ch}
.measure-narrow{max-width:48ch}

h1.display{font-size:clamp(2.4rem,6vw,3.5rem);line-height:1.02;letter-spacing:-.01em}
h2.title{font-size:clamp(1.8rem,4vw,2.125rem);line-height:1.12;max-width:22ch}
h3.card-title{font-size:1.5rem}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(16,21,31,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}
.site-header .bar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 24px;max-width:var(--maxw);margin:0 auto}
.logo{display:flex;align-items:center;gap:12px}
.logo-text{display:flex;flex-direction:column;line-height:1.08}
.seal{width:40px;height:40px;border-radius:50%;border:1px solid var(--hairline);display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,rgba(198,161,91,.16),rgba(198,161,91,.02));flex:none}
.seal span{font-family:var(--serif);font-weight:600;font-size:1.05rem;color:var(--gold);letter-spacing:.02em}
.logo .name{font-family:var(--serif);font-size:1.18rem;color:var(--parchment);line-height:1.1}
.logo .tag{font-size:.66rem;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-top:1px}
.nav{display:flex;align-items:center;gap:28px}
.nav a{color:var(--muted);font-size:.92rem;letter-spacing:.01em}
.nav a:hover{color:var(--parchment)}
.nav .btn{margin-left:4px}
.nav-toggle{display:none;background:none;border:1px solid var(--border);color:var(--parchment);border-radius:var(--radius-sm);padding:8px 12px;font-size:.9rem;cursor:pointer}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 22px;border-radius:6px;font-family:var(--sans);font-size:.95rem;font-weight:500;letter-spacing:.01em;border:1px solid var(--gold);color:var(--parchment);background:transparent;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}
.btn:hover{background:rgba(198,161,91,.10);color:var(--parchment)}
.btn--primary{background:var(--gold);color:#1a140a;border-color:var(--gold);font-weight:600}
.btn--primary:hover{background:var(--champagne);color:#1a140a}
.btn--ghost{border-color:var(--border);color:var(--champagne)}
.btn--ghost:hover{border-color:var(--gold);color:var(--parchment)}
.btn--lg{min-height:52px;padding:14px 28px;font-size:1rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}

/* ---------- hero ---------- */
.hero{position:relative;border-bottom:1px solid var(--border);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(900px 420px at 72% -8%,rgba(198,161,91,.12),transparent 60%)}
.hero .wrap{position:relative;z-index:1;padding-top:104px;padding-bottom:92px}
.hero .fineprint{margin-top:24px;font-size:.85rem;color:var(--muted)}

/* ---------- cards ---------- */
.grid{display:grid;gap:20px;margin-top:40px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px}
.card .rule{height:1px;width:46px;background:rgba(198,161,91,.8);margin-bottom:20px}
.card h3{font-size:1.5rem;margin-bottom:12px}
.card p{color:var(--body)}

/* ---------- pills / status ---------- */
.pill{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}
.pill--prelaunch{border-color:var(--hairline);color:var(--champagne)}
.pill--risk{background:rgba(92,31,36,.28);border-color:rgba(122,52,58,.6);color:#E2B7B7}
.pill--ok{background:rgba(38,79,54,.28);border-color:rgba(60,110,82,.6);color:#A9CDB8}
.pill--info{background:rgba(56,74,99,.28);border-color:rgba(80,104,138,.6);color:#AFC2DC}
.pill--action{border-color:var(--hairline);color:var(--champagne)}

/* ---------- footer ---------- */
.site-footer{background:var(--obsidian);border-top:1px solid var(--border)}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center;padding-top:36px;padding-bottom:36px}
.site-footer .links{display:flex;flex-wrap:wrap;gap:20px}
.site-footer a{color:var(--muted);font-size:.9rem}
.site-footer a:hover{color:var(--parchment)}
.site-footer .copy{color:var(--muted);font-size:.85rem}

/* ---------- legal / long-form ---------- */
.doc{max-width:760px}
.doc .eff{color:var(--muted);font-size:.9rem;margin:8px 0 0}
.doc h2{font-size:1.35rem;margin:40px 0 12px}
.doc h3{font-size:1.08rem;margin:26px 0 8px;color:var(--champagne);font-family:var(--sans);font-weight:600;letter-spacing:.01em}
.doc p{color:var(--body);margin:0 0 14px}
.doc ul{color:var(--body);margin:0 0 16px;padding-left:20px}
.doc li{margin:0 0 9px}
.doc .callout{background:var(--surface);border:1px solid var(--border);border-left:2px solid var(--gold);border-radius:var(--radius-sm);padding:16px 18px;margin:0 0 18px;color:var(--body)}

/* ---------- forms / assessment ---------- */
.app-shell{max-width:760px;margin:0 auto;padding:0 24px}
.progress{display:flex;gap:8px;margin:28px 0 8px}
.progress .tick{flex:1;height:3px;border-radius:2px;background:var(--border)}
.progress .tick.on{background:var(--accent)}
.step-label{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.q{margin:22px 0 6px}
.q .qtext{font-family:var(--serif);font-size:1.18rem;color:var(--parchment);margin-bottom:6px}
.q .qhelp{font-size:.86rem;color:var(--muted);margin-bottom:14px}
.opts{display:grid;gap:10px}
.opts.cols-2{grid-template-columns:repeat(2,1fr)}
.opt{display:flex;align-items:center;gap:12px;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:13px 15px;cursor:pointer;transition:border-color .15s ease,background .15s ease;color:var(--body);font-size:.95rem}
.opt:hover{border-color:var(--hairline)}
.opt input{accent-color:var(--gold);width:17px;height:17px;flex:none}
.opt.sel,.opt:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--parchment)}
select,input[type=text]{width:100%;background:var(--midnight);border:1px solid var(--border);color:var(--parchment);border-radius:var(--radius-sm);padding:12px 14px;font-family:var(--sans);font-size:.95rem}
select:focus,input:focus{border-color:var(--gold);outline:none}
.field-label{display:block;font-size:.92rem;color:var(--champagne);margin:0 0 7px;font-weight:500}
.consent{display:flex;gap:12px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin:18px 0}
.consent input{accent-color:var(--gold);width:18px;height:18px;margin-top:3px;flex:none}
.consent label{font-size:.9rem;color:var(--body)}
.step-nav{display:flex;justify-content:space-between;gap:12px;margin:30px 0 8px}

/* disclaimer banner */
.disclaimer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;font-size:.84rem;color:var(--muted);line-height:1.6}
.disclaimer strong{color:var(--champagne);font-weight:600}

/* ---------- readiness brief output ---------- */
.brief{margin-top:8px}
.brief-head{border:1px solid var(--hairline);border-radius:var(--radius);padding:26px 26px 24px;background:linear-gradient(160deg,rgba(198,161,91,.06),transparent)}
.brief-head .kicker{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.brief-section{border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-top:18px;background:var(--surface)}
.brief-section h3{font-family:var(--serif);font-size:1.25rem;margin-bottom:6px}
.brief-section .n{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.brief-list{list-style:none;margin:0;padding:0}
.brief-list li{position:relative;padding:12px 0 12px 26px;border-bottom:1px solid var(--border);color:var(--body)}
.brief-list li:last-child{border-bottom:none}
.brief-list li::before{content:"";position:absolute;left:0;top:18px;width:8px;height:8px;border-radius:50%;background:var(--gold);opacity:.85}
.brief-list li .lead-txt{color:var(--parchment)}
.tag-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}

/* ---------- admin ---------- */
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px}
.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px}
.metric .v{font-family:var(--serif);font-size:2.2rem;color:var(--parchment);line-height:1}
.metric .k{font-size:.82rem;color:var(--muted);margin-top:8px;letter-spacing:.02em}
.bars{margin-top:14px;display:grid;gap:12px}
.bar-row{display:grid;grid-template-columns:1fr;gap:6px}
.bar-row .bl{display:flex;justify-content:space-between;font-size:.9rem;color:var(--body)}
.bar-track{height:8px;border-radius:6px;background:var(--border);overflow:hidden}
.bar-fill{height:100%;background:var(--gold);border-radius:6px}
table.simple{width:100%;border-collapse:collapse;margin-top:8px}
table.simple th,table.simple td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--border);font-size:.92rem}
table.simple th{color:var(--muted);font-weight:600;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}
table.simple td{color:var(--body)}
table.simple td.num{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- helpers ---------- */
.hide{display:none !important}
.center{text-align:center}
.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mt-32{margin-top:32px}
.note-band{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-sm);padding:14px 16px;color:var(--muted);font-size:.86rem}

/* ---------- organization theming (readiness app) ---------- */
.org-band{display:flex;align-items:center;gap:14px;border:1px solid var(--border);border-left:2px solid var(--accent);background:var(--surface);border-radius:var(--radius-sm);padding:14px 16px;margin:0 0 18px}
.org-crest{width:38px;height:38px;flex:none;border-radius:50%;border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;background:var(--accent-soft);font-family:var(--serif);font-weight:600;color:var(--accent);font-size:.9rem;letter-spacing:.02em}
.org-band .ob-name{font-family:var(--serif);font-size:1.05rem;color:var(--parchment);line-height:1.15}
.org-band .ob-sub{font-size:.78rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-top:2px}
.org-chip{display:inline-flex;align-items:center;gap:7px;font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:5px 11px;border-radius:999px;border:1px solid var(--accent);color:var(--accent)}
.referrer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:8px}
@media (max-width:560px){.referrer-grid{grid-template-columns:1fr}}
.ref-card{display:flex;flex-direction:column;gap:4px;text-align:left;border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-sm);padding:15px 16px;cursor:pointer;transition:border-color .15s ease,background .15s ease;color:var(--parchment);font-family:var(--sans)}
.ref-card:hover{border-color:var(--accent)}
.ref-card .rc-name{font-family:var(--serif);font-size:1.05rem}
.ref-card .rc-sub{font-size:.82rem;color:var(--muted)}
.demo-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(56,74,99,.22);border:1px solid rgba(80,104,138,.55);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:16px;font-size:.82rem;color:#AFC2DC}
.demo-banner .pill{border-color:rgba(80,104,138,.7);color:#AFC2DC}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .grid-3{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .metric-grid{grid-template-columns:repeat(2,1fr)}
  .nav{display:none}
  .nav.open{display:flex;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--midnight);border-bottom:1px solid var(--border);padding:8px 0}
  .nav.open a{padding:13px 24px;border-top:1px solid var(--border);width:100%}
  .nav.open .btn{margin:12px 24px}
  .nav-toggle{display:inline-flex}
  .opts.cols-2{grid-template-columns:1fr}
}
@media (max-width:520px){
  .metric-grid{grid-template-columns:1fr}
  .hero .wrap{padding-top:72px;padding-bottom:64px}
}

/* ---------- print (downloadable summary) ---------- */
@media print{
  :root{--obsidian:#fff}
  html,body{background:#fff;color:#1D1B18}
  .site-header,.site-footer,.no-print,.nav,.cta-row,.step-nav{display:none !important}
  .app-shell{max-width:100%;padding:0}
  .brief-head{background:none;border:1px solid #C6A15B}
  .brief-section{background:none;border:1px solid #ccc;break-inside:avoid}
  h1,h2,h3{color:#10151F}
  .brief-list li{color:#1D1B18}.brief-list li .lead-txt{color:#10151F}
  .disclaimer{color:#444;border-color:#ccc}
  a{color:#1D1B18}
}
