/* AIRaah — design tokens, refined for an editorial/minimal look (fleava.com-inspired) */

:root {
  --color-navy: #0b1f44; --color-ink: #0a0b0d; --color-blue: #1489ff; --color-cyan: #19c8ff; --color-purple: #7a4dff; --color-orange: #ff6a1a;
  --color-bg: #faf9f6; --color-soft: #f1efe9; --color-text: #2b2823; --color-muted: #78756d; --color-heading: #15130f;
  --color-surface: #ffffff; --color-surface-border: rgba(21,19,15,0.1); --color-glass: rgba(255,255,255,0.7);
  --shadow-soft: 0 20px 60px -20px rgba(21,19,15,0.16); --shadow-card: 0 12px 32px -16px rgba(21,19,15,0.14);
  --font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif; --font-hand: 'Caveat', cursive;
  --radius-xl: 1.25rem; --radius-lg: 1rem;
  --gradient-primary: linear-gradient(135deg, var(--color-blue), var(--color-cyan));
  --gradient-vivid: linear-gradient(135deg, var(--color-blue) 0%, var(--color-cyan) 50%, var(--color-purple) 100%);
  --glow-blue: 0 0 40px -8px rgba(20,137,255,.4);
  --glow-cyan: 0 0 40px -8px rgba(25,200,255,.35);
  --glow-purple: 0 0 40px -8px rgba(122,77,255,.3);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg:#0a0b0d; --color-soft:#151619; --color-text:#d7d9dd; --color-muted:#8c8e95; --color-heading:#f8f8f6;
    --color-surface:#141519; --color-surface-border:rgba(255,255,255,0.09); --color-glass:rgba(20,21,25,0.7);
    --shadow-soft:0 20px 60px -20px rgba(0,0,0,0.6); --shadow-card:0 12px 32px -16px rgba(0,0,0,0.55);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --color-bg:#0a0b0d; --color-soft:#151619; --color-text:#d7d9dd; --color-muted:#8c8e95; --color-heading:#f8f8f6;
  --color-surface:#141519; --color-surface-border:rgba(255,255,255,0.09); --color-glass:rgba(20,21,25,0.7);
  --shadow-soft:0 20px 60px -20px rgba(0,0,0,0.6); --shadow-card:0 12px 32px -16px rgba(0,0,0,0.55);
  color-scheme: dark;
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; } }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; min-height:100%; display:flex; flex-direction:column; background:var(--color-bg); color:var(--color-text); font-family:var(--font-sans); line-height:1.5; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
.font-hand { font-family: var(--font-hand); }
.text-gradient { background: linear-gradient(90deg, var(--color-blue), var(--color-cyan)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.glass-panel { background: var(--color-glass); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border:1px solid var(--color-surface-border); }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--color-ink); color:#fff; padding:.75rem 1rem; border-radius:0 0 .5rem 0; z-index:100; }
.skip-link:focus { left:0; }
:focus-visible { outline:2px solid var(--color-blue); outline-offset:2px; }

/* Shared base type (admin + public fallback) — public overrides below via body.site */
p { margin:0 0 1.1rem; color:var(--color-text); line-height:1.75; }
p:last-child { margin-bottom:0; }

/* Buttons, cards, grid, form fields, icon tiles — SHARED with the admin CMS.
   Keep these bare rules intact; body.site below layers public-only overrides
   on top via the extra ancestor class (higher specificity, no admin impact). */
.btn { display:inline-flex; align-items:center; gap:.5rem; justify-content:center; border-radius:.65rem; padding:.85rem 1.6rem; font-weight:600; font-size:.88rem; cursor:pointer; border:none; transition:transform .18s, box-shadow .18s, filter .18s, border-color .18s; }
.btn-primary { background:var(--color-blue); color:#fff; }
.btn-primary:hover { filter:brightness(1.08); transform:translateY(-1px); }
.btn-secondary { background:transparent; color:var(--color-heading); border:1px solid var(--color-surface-border); }
.btn-secondary:hover { border-color:var(--color-heading); transform:translateY(-1px); }
.card { background:var(--color-surface); border:1px solid var(--color-surface-border); border-radius:var(--radius-xl); padding:1.5rem; box-shadow:none; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.card h3 { margin:0 0 .5rem; }
a.card:hover, .card.hoverable:hover { transform:translateY(-4px); box-shadow:var(--shadow-card); border-color:color-mix(in srgb, var(--color-blue) 30%, var(--color-surface-border)); }
.grid { display:grid; gap:1.5rem; }
.grid-2 { grid-template-columns:1fr; } @media (min-width:640px){ .grid-2{ grid-template-columns:1fr 1fr; } }
.grid-3 { grid-template-columns:1fr; } @media (min-width:640px){ .grid-3{ grid-template-columns:1fr 1fr; } } @media (min-width:1024px){ .grid-3{ grid-template-columns:repeat(3,1fr); } }
.grid-4 { grid-template-columns:1fr; } @media (min-width:640px){ .grid-4{ grid-template-columns:1fr 1fr; } } @media (min-width:1024px){ .grid-4{ grid-template-columns:repeat(4,1fr); } }
.form-field { margin-bottom:1.1rem; }
.form-field label { display:block; font-size:.85rem; font-weight:600; color:var(--color-heading); margin-bottom:.35rem; }
.form-field input, .form-field select, .form-field textarea { width:100%; border-radius:.75rem; border:1px solid var(--color-surface-border); background:var(--color-surface); color:var(--color-text); padding:.65rem .85rem; font:inherit; }
.form-field .error { color:#dc2626; font-size:.8rem; margin-top:.3rem; }
.form-field .hint { color:var(--color-muted); font-size:.78rem; margin-top:.3rem; }
.icon-tile { width:2.75rem; height:2.75rem; border-radius:.75rem; display:inline-flex; align-items:center; justify-content:center; background:var(--color-soft); border:1px solid var(--color-surface-border); color:var(--color-blue); flex-shrink:0; }
.icon-tile svg { width:1.4rem; height:1.4rem; }
.stat-card-link { display:block; }
.drilldown-row { border-radius:.6rem; margin-left:-.5rem; margin-right:-.5rem; padding-left:.5rem; padding-right:.5rem; transition:background .15s; }
.drilldown-row:hover { background:var(--color-soft); }

/* ==================================================================================
   PUBLIC SITE — fleava.com-template direction: pinned full-bleed dark sections, huge
   thin numbered headlines, a minimal top-right nav with a fullscreen overlay menu,
   and a jewel-tone "signature" color block. Everything below is scoped to body.site
   (set only by View::page(), never by the admin layout) so the admin CMS is untouched.
   ================================================================================== */
body.site {
  --ink:#0a0806; --cream:#f6ead8; --mist:#b9b2a6; --mist-dim:#7d766a;
  --line:rgba(255,255,255,.14); --line-soft:rgba(255,255,255,.08);
  /* Fixed warm-gold "brand chrome" accent — used by permanently-dark surfaces
     (hero, signature block, nav overlay, tour) regardless of the light/dark toggle. */
  --signature:#e0a94e; --signature-2:#6b4416; --signature-glow:#f2c877;
  --font-display:'Manrope', ui-sans-serif, system-ui, sans-serif;

  /* Toggle-aware brand accent — coral in light mode, gold in dark mode. */
  --accent:#ee5a2e; --accent-strong:#d8481e; --accent-soft:#fbe0d0;

  --color-bg:#fcf0e5; --color-soft:#fbe3d1; --color-text:#332c22; --color-muted:#7a6f5f; --color-heading:#1c140c;
  --color-surface:#ffffff; --color-surface-border:rgba(28,20,12,.12);
  --shadow-soft:0 20px 60px -20px rgba(28,20,12,.18); --shadow-card:0 12px 32px -16px rgba(28,20,12,.14);
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) body.site {
    --accent:#e0a94e; --accent-strong:#f2c877; --accent-soft:rgba(224,169,78,.14);
    --color-bg:#0b0906; --color-soft:#161209; --color-text:#c9c4ba; --color-muted:#948d80; --color-heading:#f5efe4;
    --color-surface:#161209; --color-surface-border:rgba(255,255,255,.1);
    --shadow-soft:0 20px 60px -20px rgba(0,0,0,.6); --shadow-card:0 12px 32px -16px rgba(0,0,0,.55);
  }
}
html[data-theme="dark"] body.site {
  --accent:#e0a94e; --accent-strong:#f2c877; --accent-soft:rgba(224,169,78,.14);
  --color-bg:#0b0906; --color-soft:#161209; --color-text:#c9c4ba; --color-muted:#948d80; --color-heading:#f5efe4;
  --color-surface:#161209; --color-surface-border:rgba(255,255,255,.1);
  --shadow-soft:0 20px 60px -20px rgba(0,0,0,.6); --shadow-card:0 12px 32px -16px rgba(0,0,0,.55);
}

/* Type — thin huge display headings (Manrope) over roomy Inter body copy */
body.site h1, body.site h2, body.site h3 { font-family:var(--font-display); color:var(--color-heading); margin:0; text-wrap:balance; }
body.site h4, body.site h5, body.site h6 { color:var(--color-heading); margin:0 0 .5rem; font-weight:600; font-size:1rem; }
body.site h1 { font-size:clamp(2.6rem, 1.7rem + 4vw, 5rem); font-weight:250; line-height:1.03; letter-spacing:-.03em; }
body.site h2 { font-size:clamp(2rem, 1.5rem + 2.2vw, 3.2rem); font-weight:250; line-height:1.08; letter-spacing:-.02em; }
body.site h3 { font-size:1.15rem; font-weight:600; letter-spacing:-.01em; margin-bottom:.5rem; }
body.site p { color:var(--color-text); }
body.site .lead { font-size:1.1rem; color:var(--color-muted); line-height:1.75; }
body.site .text-gradient { background:none; -webkit-background-clip:initial; background-clip:initial; color:var(--accent); }
body.site .final-cta .text-gradient, body.site .signature .text-gradient, body.site .hero-section .text-gradient { color:var(--signature-glow); }
body.site .eyebrow { display:flex; align-items:center; gap:.6rem; font-size:.76rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--color-muted); margin:0 0 1.4rem; }
body.site .eyebrow::before { content:""; width:20px; height:1px; background:var(--accent); flex-shrink:0; }

body.site :focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

body.site .container { max-width:1360px; margin:0 auto; padding:0 clamp(20px,4vw,64px); }

/* ---------- Nav: minimal mark + hamburger, fullscreen overlay menu ---------- */
body.site .site-header { position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(7,8,10,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line-soft); }
body.site .site-header .bar { height:auto; padding:1.15rem 0; display:flex; align-items:center; justify-content:space-between; }
body.site .brand { display:flex; align-items:center; gap:.55rem; font-family:var(--font-display); font-weight:600; font-size:1.05rem; letter-spacing:-.01em; color:#f4f2ea; }
body.site .brand-raah { color:var(--signature-glow); }
body.site .nav-cta { padding:.55rem 1.1rem; font-size:.8rem; }
@media (max-width:1023px) { body.site .nav-cta { display:none; } }
body.site .brand .badge { width:2rem; height:2rem; border-radius:.6rem; background:#fff; display:flex; align-items:center; justify-content:center; padding:.3rem; }
body.site .brand .badge img { width:100%; height:100%; object-fit:contain; }
body.site .brand .tagline { display:none; }
body.site .primary-nav { display:none; align-items:center; gap:.3rem; }
body.site .primary-nav a { padding:.5rem .85rem; border-radius:.5rem; font-size:.88rem; font-weight:500; color:rgba(244,242,234,.72); }
body.site .primary-nav a:hover { color:#f4f2ea; }
body.site .primary-nav a.active { color:var(--signature-glow); }
@media (min-width:1024px) { body.site .primary-nav { display:flex; } }
body.site .header-actions { display:flex; align-items:center; gap:.75rem; }
body.site .theme-toggle { width:2.25rem; height:2.25rem; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.04); display:flex; align-items:center; justify-content:center; cursor:pointer; color:#f4f2ea; }
body.site .menu-toggle { display:flex; flex-direction:column; gap:5px; width:30px; padding:8px 0; background:none; border:none; cursor:pointer; align-items:stretch; border-radius:0; }
@media (min-width:1024px) { body.site .menu-toggle { display:none; } }
body.site .menu-toggle span { display:block; height:1px; background:#f4f2ea; width:100%; transition:transform .35s ease, opacity .25s ease; }
body.site .menu-toggle.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
body.site .menu-toggle.open span:nth-child(2) { opacity:0; }
body.site .menu-toggle.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

body.site .mobile-menu { position:fixed; inset:0; z-index:45; background:#0a0b0e; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  clip-path:circle(0% at calc(100% - 2.25rem) 2.5rem); transition:clip-path .55s cubic-bezier(.65,0,.35,1); pointer-events:none; border:none; }
body.site .mobile-menu.open { clip-path:circle(150% at calc(100% - 2.25rem) 2.5rem); pointer-events:auto; }
body.site .mobile-menu .container { box-sizing:border-box; min-height:100dvh; display:flex; flex-direction:column; justify-content:center; gap:.15rem; padding:6rem clamp(20px,4vw,64px) 1.5rem; }
body.site .mobile-menu .container a { font-family:var(--font-display); font-weight:250; font-size:clamp(1.8rem,5vw,3rem); color:var(--mist); letter-spacing:-.02em; padding:.3rem 0; display:flex; align-items:baseline; gap:.6rem; border-radius:0; }
body.site .mobile-menu .container a:hover, body.site .mobile-menu .container a.active { background:none; color:var(--cream); }
body.site .mobile-menu .container a sup { font-family:var(--font-sans); font-weight:500; font-size:.85rem; color:var(--signature-glow); }
body.site .mobile-menu-foot { border-top:1px solid var(--line-soft); padding:1.5rem clamp(20px,4vw,64px) 2.5rem; display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; font-size:.8rem; color:var(--mist-dim); }
body.site .mobile-menu-foot h5 { margin:0 0 .5rem; font-weight:600; color:var(--mist); text-transform:uppercase; font-size:.68rem; letter-spacing:.1em; }
body.site .mobile-menu-foot a { color:var(--mist-dim); font-family:var(--font-sans); font-size:.8rem; font-weight:400; letter-spacing:normal; padding:0; }
body.site .mobile-menu-foot a:hover { color:var(--cream); }
@media (max-width:820px) { body.site .mobile-menu-foot { grid-template-columns:1fr 1fr; } body.site .mobile-menu .container a { font-size:clamp(1.6rem,8vw,2.4rem); } }
body.site .mobile-menu.open ~ #airaah-companion { display:none; }

/* ---------- Companion (persistent draggable character) ---------- */
body.site .companion-mount { position:fixed; left:0; top:0; z-index:60; width:4rem; height:4rem; touch-action:none; }
body.site .companion-avatar { width:100%; height:100%; border-radius:999px; background:var(--color-soft); box-shadow:var(--shadow-soft); border:1px solid var(--color-surface-border); display:flex; align-items:center; justify-content:center; cursor:grab; padding:.45rem; }
body.site .companion-mount.dragging .companion-avatar { cursor:grabbing; }
body.site .companion-avatar:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
body.site .companion-avatar .airaah-character-img { filter:drop-shadow(0 4px 8px rgba(10,10,20,.22)); }

body.site .companion-panel, body.site .companion-bubble { position:fixed; z-index:61; width:min(90vw, 300px); border-radius:1.1rem; background:var(--color-surface); border:1px solid var(--color-surface-border); box-shadow:var(--shadow-soft); }
body.site .companion-panel-head { display:flex; align-items:center; gap:.7rem; padding:.9rem 1.1rem; border-bottom:1px solid var(--color-surface-border); }
body.site .companion-panel-head strong { display:block; font-size:.88rem; color:var(--color-heading); }
body.site .companion-panel-head span { display:block; font-size:.72rem; color:var(--color-muted); }
body.site .companion-close, body.site .companion-bubble-close { margin-left:auto; background:none; border:none; color:var(--color-muted); font-size:1.2rem; line-height:1; cursor:pointer; padding:.2rem; }
body.site .companion-close:hover, body.site .companion-bubble-close:hover { color:var(--color-heading); }
body.site .companion-panel-body { display:flex; flex-direction:column; gap:.4rem; padding:.9rem 1.1rem 1.1rem; }
body.site .companion-action { text-align:left; border-radius:.7rem; border:1px solid var(--color-surface-border); background:var(--color-soft); padding:.65rem .85rem; font-size:.85rem; font-weight:600; color:var(--color-heading); cursor:pointer; font-family:inherit; }
body.site .companion-action:hover { border-color:var(--accent); }
body.site .companion-panel-body a { border-radius:.7rem; border:1px solid var(--color-surface-border); padding:.6rem .85rem; font-size:.82rem; font-weight:500; color:var(--color-heading); }
body.site .companion-panel-body a:hover { border-color:var(--accent); background:var(--color-soft); }
body.site .companion-divider { height:1px; background:var(--color-surface-border); margin:.2rem 0; }

body.site .companion-bubble { padding:1rem 1.1rem; font-size:.85rem; color:var(--color-text); }
body.site .companion-bubble p { margin:0; padding-right:1.2rem; }
body.site .companion-bubble-close { position:absolute; top:.5rem; right:.6rem; }

/* Guided tour */
body.site .companion-tour-catch { position:fixed; inset:0; z-index:300; background:transparent; }
body.site .companion-tour-box { position:fixed; z-index:301; border-radius:.85rem; border:2px solid var(--signature-glow); box-shadow:0 0 0 9999px rgba(5,6,9,.72); pointer-events:none; transition:left .35s ease, top .35s ease, width .35s ease, height .35s ease; }
body.site .companion-tour-caption { position:fixed; z-index:302; width:min(90vw, 320px); background:var(--ink); color:var(--cream); border:1px solid var(--line); border-radius:1rem; padding:1.1rem 1.2rem; box-shadow:var(--shadow-soft); }
body.site .companion-tour-step { display:block; font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--mist-dim); margin-bottom:.5rem; }
body.site .companion-tour-caption p { margin:0 0 1rem; color:var(--cream); font-size:.92rem; line-height:1.6; }
body.site .companion-tour-nav { display:flex; gap:.5rem; }
body.site .companion-tour-nav button { flex:1; border-radius:.6rem; border:1px solid var(--line); background:none; color:var(--cream); padding:.5rem .6rem; font-size:.8rem; font-weight:600; cursor:pointer; font-family:inherit; }
body.site .companion-tour-nav button:hover { border-color:var(--cream); }
body.site .companion-tour-nav button:disabled { opacity:.35; cursor:default; }
body.site .companion-tour-nav button[data-tour="next"] { background:var(--signature); border-color:var(--signature); }

@media (max-width:640px) { body.site .companion-mount { width:3.5rem; height:3.5rem; } }

/* ---------- Buttons (public overrides) + arrow-link ---------- */
body.site .btn { border-radius:.6rem; }
body.site .btn-primary { background:var(--accent); color:#fff; }
body.site .btn-primary:hover { background:var(--accent-strong); }
body.site .btn-secondary { color:var(--color-heading); border-color:var(--color-surface-border); }
body.site .btn-arrow { display:inline-flex; align-items:center; gap:.5rem; padding:0; background:none; border:none; border-bottom:1px solid var(--color-surface-border); color:var(--color-heading); font-weight:600; font-size:.92rem; cursor:pointer; border-radius:0; }
body.site .btn-arrow svg { transition:transform .2s; }
body.site .btn-arrow:hover svg { transform:translateX(3px); }
body.site .btn-arrow:hover { border-bottom-color:var(--color-heading); }
body.site .on-ink .btn-arrow, body.site .on-ink.btn-arrow { color:var(--cream); border-bottom-color:var(--line); }
body.site .on-ink .btn-arrow:hover, body.site .on-ink.btn-arrow:hover { border-bottom-color:var(--cream); }
body.site .on-ink .btn-secondary, body.site .on-ink.btn-secondary { color:var(--cream); border-color:var(--line); }
body.site .on-ink .btn-secondary:hover, body.site .on-ink.btn-secondary:hover { border-color:var(--cream); }

/* ---------- Footer ---------- */
body.site .site-footer { background:var(--ink); color:var(--cream); }
body.site .footer-grid { display:grid; gap:2.5rem; padding:5rem 0 3rem; grid-template-columns:1fr; border-top:1px solid var(--line-soft); }
@media (min-width:640px){ body.site .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ body.site .footer-grid{ grid-template-columns:1.4fr repeat(3,1fr); } }
body.site .footer-grid h4 { margin:0 0 1rem; font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--mist); }
body.site .footer-grid ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.65rem; }
body.site .footer-grid a { color:var(--mist-dim); font-size:.875rem; }
body.site .footer-grid a:hover { color:var(--cream); }
body.site .footer-bottom { border-top:1px solid var(--line-soft); }
body.site .footer-bottom .container { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem 0; font-size:.78rem; color:var(--mist-dim); }
body.site .footer-bottom .left { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
body.site .footer-bottom a:hover { color:var(--cream); }
body.site .admin-login-btn { border:1px solid var(--line); border-radius:999px; padding:.3rem .85rem; font-size:.75rem; font-weight:600; color:var(--mist) !important; }
body.site .admin-login-btn:hover { border-color:var(--cream); color:var(--cream) !important; }

/* ---------- Page hero (interior pages) ---------- */
body.site .page-hero { position:relative; padding:clamp(9rem,20vh,12rem) 0 clamp(4rem,8vh,6rem); background:var(--ink); overflow:hidden; }
body.site .page-hero::before { content:""; position:absolute; inset:0; background-image:radial-gradient(circle, rgba(255,255,255,.06) 1px, transparent 1px); background-size:30px 30px; mask-image:radial-gradient(ellipse 70% 55% at 15% 40%, #000 20%, transparent 75%); }
body.site .page-hero .container { position:relative; }
body.site .page-hero .eyebrow { color:var(--mist-dim); }
body.site .page-hero .eyebrow::before { background:var(--signature-glow); }
body.site .page-hero h1 { color:var(--cream); max-width:16em; }
body.site .page-hero p.desc { margin-top:1.4rem; max-width:36rem; color:var(--mist); font-size:1.08rem; }
body.site .breadcrumbs { display:flex; gap:.4rem; font-size:.8rem; color:var(--mist-dim); margin-bottom:1.5rem; }
body.site .breadcrumbs a { color:var(--mist-dim); } body.site .breadcrumbs a:hover { color:var(--cream); }

/* ---------- Legal / long-form reference content ---------- */
body.site .legal-content h2 { font-family:var(--font-sans); font-size:1.3rem; font-weight:700; letter-spacing:normal; line-height:1.3; margin:2.5rem 0 .75rem; color:var(--color-heading); }
body.site .legal-content h2:first-child { margin-top:0; }
body.site .legal-content p { color:var(--color-muted); }

/* ---------- Sections / cards / grid (public overrides) ---------- */
body.site .section { padding:clamp(4rem,9vh,7rem) 0; }
body.site .card { border-radius:1rem; }
body.site a.card:hover { transform:translateY(-3px); box-shadow:none; border-color:color-mix(in srgb, var(--accent) 35%, var(--color-surface-border)); }
body.site .icon-tile { color:var(--accent); background:var(--accent-soft); border-color:transparent; }

/* ---------- Numbered text-list (expertise / services / stack) ---------- */
body.site .x-list { border-top:1px solid var(--color-surface-border); }
body.site .x-row { display:grid; grid-template-columns:2.75rem 1fr auto; align-items:baseline; gap:1.5rem; padding:1.6rem 0; border-bottom:1px solid var(--color-surface-border); transition:padding-left .25s ease; }
body.site a.x-row { cursor:pointer; }
body.site a.x-row:hover, body.site .x-row.static:hover { padding-left:.5rem; }
body.site .x-num { font-size:.82rem; color:var(--color-muted); font-variant-numeric:tabular-nums; }
body.site .x-name { font-family:var(--font-display); font-weight:280; font-size:clamp(1.4rem,1rem + 1.6vw,2.2rem); color:var(--color-heading); letter-spacing:-.015em; }
body.site .x-desc { font-size:.9rem; color:var(--color-muted); max-width:20rem; text-align:right; display:none; }
@media (min-width:760px){ body.site .x-desc{ display:block; } }
body.site .x-list.on-ink { border-top-color:var(--line-soft); }
body.site .x-list.on-ink .x-row { border-bottom-color:var(--line-soft); }
body.site .x-list.on-ink .x-num { color:var(--mist-dim); }
body.site .x-list.on-ink .x-name { color:var(--cream); }
body.site .x-list.on-ink .x-desc { color:var(--mist-dim); }

/* ---------- Forms (public overrides) ---------- */
body.site .form-field input, body.site .form-field select, body.site .form-field textarea { border-radius:.6rem; }

/* ---------- Signature block (full-bleed jewel-tone section) ---------- */
body.site .signature { position:relative; padding:clamp(6rem,16vh,10rem) 0; overflow:hidden; color:var(--cream);
  background:radial-gradient(120% 100% at 14% 12%, var(--signature-glow) 0%, var(--signature-2) 42%, #170f07 78%); }
body.site .signature::after { content:""; position:absolute; inset:0; background-image:repeating-linear-gradient(100deg, rgba(255,255,255,.05) 0 1px, transparent 1px 46px); opacity:.5; pointer-events:none; }
body.site .signature .container { position:relative; z-index:1; }
body.site .signature h2, body.site .signature h3 { color:var(--cream); max-width:15em; }
body.site .signature .eyebrow { color:#f4ddb0; }
body.site .signature .eyebrow::before { background:#f4ddb0; }
body.site .signature .lead, body.site .signature p { color:#f0e2c8; }
body.site .signature .lead { margin-top:1.6rem; max-width:32rem; }

/* ---------- final-cta ---------- */
body.site .final-cta { background:var(--ink); color:var(--cream); padding:clamp(4.5rem,9vh,6.5rem) 0; }
body.site .final-cta h2, body.site .final-cta h3 { color:var(--cream); }
body.site .final-cta p { color:var(--mist); }

/* ---------- Home hero (cinematic) ---------- */
body.site .hero-section { position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--ink); border-bottom:1px solid var(--line-soft); }
body.site .hero-mesh { position:absolute; inset:-10%; z-index:0; pointer-events:none; overflow:hidden; }
body.site .hero-mesh span { position:absolute; border-radius:50%; filter:blur(70px); opacity:.5; animation:hero-drift 20s ease-in-out infinite; }
body.site .hero-mesh span:nth-child(1) { width:44vw; height:44vw; right:-8vw; top:-6vw; background:radial-gradient(circle at 35% 35%, var(--signature-glow), var(--signature) 45%, transparent 72%); }
body.site .hero-mesh span:nth-child(2) { width:32vw; height:32vw; right:12vw; bottom:-10vw; background:radial-gradient(circle at 40% 40%, #f2c877, transparent 70%); opacity:.55; animation-delay:-8s; }
body.site .hero-mesh span:nth-child(3) { width:20vw; height:20vw; left:-6vw; bottom:10vh; background:radial-gradient(circle, var(--signature-glow), transparent 70%); opacity:.25; animation-delay:-14s; }
@keyframes hero-drift { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-3%,3%) scale(1.07); } }
body.site .hero-dotgrid { position:absolute; inset:0; z-index:0; pointer-events:none; background-image:radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px); background-size:32px 32px; mask-image:radial-gradient(ellipse 60% 55% at 25% 60%, #000 20%, transparent 75%); }
body.site .hero-content { position:relative; z-index:1; width:100%; padding:clamp(9rem,18vh,13rem) 0 clamp(3rem,6vh,4.5rem); }
@media (prefers-reduced-motion: reduce) { body.site .hero-mesh span { animation:none; } }
body.site .slide-meta { display:flex; gap:1.5rem; align-items:baseline; font-size:.82rem; color:var(--mist); margin-bottom:1.3rem; font-variant-numeric:tabular-nums; }
body.site .slide-meta b { color:var(--cream); font-weight:600; }
body.site .hero-slide h1 { color:var(--cream); max-width:15em; }
body.site .hero-slide p.lede { margin-top:1.5rem; max-width:34rem; font-size:1.08rem; color:var(--mist); }
body.site .hero-cta-row { margin-top:2.4rem; display:flex; flex-wrap:wrap; align-items:center; gap:1.75rem; }
body.site .hero-foot { display:flex; justify-content:space-between; align-items:flex-end; margin-top:3rem; flex-wrap:wrap; gap:1.5rem; }

/* Hero character + floating hand-written tags */
body.site .hero-character { position:relative; display:flex; align-items:center; justify-content:center; min-height:22rem; }
body.site .hero-tag { position:absolute; font-family:var(--font-hand); font-weight:600; color:var(--signature-glow); font-size:1.4rem; line-height:1.3; }
body.site .hero-tag-hi { top:-.5rem; right:-.5rem; text-align:right; }
body.site .hero-tag-hi span { display:block; font-family:var(--font-sans); font-weight:500; font-size:.82rem; color:var(--mist); letter-spacing:.02em; }
body.site .hero-tag-list { bottom:2.5rem; right:-1.5rem; text-align:left; opacity:.9; }
@media (max-width:900px) { body.site .hero-tag { display:none; } }

/* People/impact section — abstract visual in place of photography */
body.site .impact-visual { position:relative; aspect-ratio:4/3; border-radius:1.5rem; overflow:hidden;
  background:radial-gradient(120% 120% at 30% 20%, var(--signature-glow), var(--signature-2) 55%, var(--ink) 100%); }
body.site .impact-visual-glow { position:absolute; width:55%; height:55%; border-radius:50%; background:rgba(255,255,255,.22); filter:blur(46px); top:8%; left:10%; }
body.site .impact-visual-ring { position:absolute; width:65%; aspect-ratio:1; border:2px solid rgba(255,255,255,.3); border-radius:50%; bottom:-12%; right:-10%; }
body.site .impact-bubble { position:absolute; bottom:1.5rem; left:1.5rem; right:1.5rem; max-width:14rem; background:var(--color-surface); color:var(--color-heading); padding:1rem 1.2rem; border-radius:1rem; box-shadow:var(--shadow-soft); font-family:var(--font-display); font-weight:600; line-height:1.35; }
body.site .impact-bubble strong { color:var(--accent); }

/* Stats strip */
body.site .stats-strip { padding-top:0; padding-bottom:4.5rem; }
body.site .stat-block { text-align:center; }
body.site .stat-value { display:block; font-family:var(--font-display); font-weight:700; font-size:clamp(1.9rem,1.5rem + 1.6vw,2.8rem); color:var(--color-heading); }
body.site .stat-label { display:block; margin-top:.3rem; font-size:.82rem; color:var(--color-muted); }

/* ---------- Floating "AI terminal" visual ---------- */
body.site .tech-terminal { position:relative; z-index:1; border-radius:.85rem; background:#050609; border:1px solid var(--line-soft); box-shadow:var(--shadow-soft); overflow:hidden; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:.82rem; animation:terminal-float 6s ease-in-out infinite; }
@keyframes terminal-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@media (prefers-reduced-motion: reduce) { body.site .tech-terminal { animation:none; } }
body.site .tech-terminal .tt-bar { display:flex; gap:.4rem; padding:.7rem .9rem; background:rgba(255,255,255,.05); }
body.site .tech-terminal .tt-bar span { width:.6rem; height:.6rem; border-radius:50%; background:rgba(255,255,255,.25); }
body.site .tech-terminal .tt-body { padding:1.1rem 1.2rem 1.4rem; color:#cfe3ff; min-height:8.5rem; }
body.site .tech-terminal .tt-line { white-space:pre-wrap; word-break:break-word; line-height:1.7; }
body.site .tech-terminal .tt-prompt { color:var(--signature-glow); }
body.site .tech-terminal .tt-cursor { display:inline-block; width:.5em; height:1.1em; background:var(--signature-glow); vertical-align:text-bottom; margin-left:2px; animation:tt-blink 1s step-end infinite; }
@keyframes tt-blink { 50% { opacity:0; } }

/* ---------- Hero banner slider ---------- */
body.site .hero-dots { display:flex; align-items:center; gap:1rem; font-size:.85rem; color:var(--mist); }
body.site .hero-dots button.dot { width:.5rem; height:.5rem; border-radius:999px; border:none; padding:0; background:rgba(255,255,255,.25); cursor:pointer; transition:background .2s,width .2s; }
body.site .hero-dots button.dot.active { background:var(--signature-glow); width:1.4rem; }
body.site .slider-ctl { display:flex; align-items:center; gap:1rem; }
body.site .slider-ctl button.ctl { background:none; border:1px solid var(--line); color:var(--cream); border-radius:999px; padding:.5rem 1.1rem; cursor:pointer; font:inherit; font-size:.8rem; transition:border-color .2s,background .2s; }
body.site .slider-ctl button.ctl:hover { border-color:var(--signature-glow); background:rgba(242,200,119,.1); }
body.site .hero-slide { display:none; }
body.site .hero-slide.active { display:block; }

/* ---------- Scroll-reveal ---------- */
body.site .reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
body.site .reveal.is-visible { opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce) { body.site .reveal { opacity:1; transform:none; transition:none; } }

/* ---------- Product gallery / lightbox ---------- */
body.site .product-gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(7rem, 1fr)); gap:.75rem; margin-bottom:2rem; }
body.site .product-gallery-thumb { padding:0; border:1px solid var(--color-surface-border); border-radius:.6rem; overflow:hidden; cursor:zoom-in; background:none; aspect-ratio:4/3; }
body.site .product-gallery-thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .2s; }
body.site .product-gallery-thumb:hover img { transform:scale(1.05); }
body.site .product-lightbox { position:fixed; inset:0; z-index:200; background:rgba(3,4,6,.94); display:flex; align-items:center; justify-content:center; padding:2rem; }
body.site .product-lightbox[hidden] { display:none; }
body.site .product-lightbox img { max-width:min(90vw, 1100px); max-height:85vh; border-radius:.5rem; object-fit:contain; }
body.site .product-lightbox-close { position:absolute; top:1.25rem; right:1.5rem; background:none; border:none; color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
body.site .product-lightbox-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.1); border:none; color:#fff; font-size:2.5rem; line-height:1; width:3rem; height:3rem; border-radius:999px; cursor:pointer; }
body.site .product-lightbox-nav.prev { left:1rem; } body.site .product-lightbox-nav.next { right:1rem; }
body.site .product-lightbox-nav:hover { background:rgba(255,255,255,.2); }

/* ---------- Guided intake wizard ---------- */
body.site .wizard-progress { display:flex; gap:.4rem; margin-bottom:1.5rem; }
body.site .wizard-progress span { flex:1; height:4px; border-radius:999px; background:var(--color-surface-border); font-size:0; }
body.site .wizard-progress span.done { background:var(--accent); }
body.site .wizard-progress span.active { background:var(--accent); opacity:.5; }
body.site .js-wizard .wizard-step { display:none; }
body.site .js-wizard .wizard-step.current { display:block; }
body.site .category-grid { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
body.site .category-card { display:flex; flex-direction:column; align-items:flex-start; gap:.35rem; text-align:left; padding:1rem; border:1.5px solid var(--color-surface-border); border-radius:.85rem; background:var(--color-surface); cursor:pointer; font:inherit; }
body.site .category-card:hover { border-color:var(--accent); }
body.site .category-card.selected { border-color:var(--accent); background:var(--color-soft); box-shadow:0 0 0 3px var(--accent-soft); }
body.site .category-card strong { color:var(--color-heading); font-size:.92rem; }
body.site .wizard-nav { display:flex; gap:.75rem; margin-top:1.5rem; }
body.site .branch-panel[hidden] { display:none; }

body.site .hero-visual { position:relative; margin:0 auto; display:flex; max-width:28rem; width:100%; align-items:center; justify-content:center; }
@media (min-width:1024px) { body.site .hero-visual { max-width:33rem; justify-content:flex-start; } }

table.admin-table { width:100%; border-collapse:collapse; font-size:.9rem; }
table.admin-table th, table.admin-table td { text-align:left; padding:.7rem .8rem; border-bottom:1px solid var(--color-surface-border); }
table.admin-table th { color:var(--color-muted); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.admin-shell { display:flex; min-height:100vh; }
.admin-sidebar { width:230px; background:var(--color-navy); color:#fff; padding:1.25rem .9rem; flex-shrink:0; display:flex; flex-direction:column; transition:width .2s ease; }
.admin-brand { display:flex; align-items:center; gap:.6rem; padding:.4rem .3rem 1.25rem; }
.admin-brand-mark { width:1.9rem; height:1.9rem; border-radius:.55rem; background:var(--gradient-primary); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:.9rem; flex-shrink:0; }
.admin-brand-name { font-weight:700; font-size:1.05rem; white-space:nowrap; overflow:hidden; }
.admin-nav { flex:1; overflow-y:auto; }
.admin-nav-group { font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.4); margin:1.1rem .75rem .4rem; white-space:nowrap; }
.admin-nav-group:first-child { margin-top:0; }
.admin-sidebar a { display:flex; align-items:center; gap:.65rem; padding:.55rem .75rem; border-radius:.6rem; color:rgba(255,255,255,.75); font-size:.87rem; margin-bottom:.15rem; white-space:nowrap; }
.admin-sidebar a:hover, .admin-sidebar a.active { background:rgba(255,255,255,.1); color:#fff; }
.admin-nav-icon { width:1.1rem; height:1.1rem; flex-shrink:0; display:flex; }
.admin-nav-icon svg { width:100%; height:100%; }
.admin-collapse-btn { display:flex; align-items:center; gap:.65rem; padding:.55rem .75rem; margin:.5rem 0 0; border-radius:.6rem; background:none; border:1px solid rgba(255,255,255,.12); color:rgba(255,255,255,.6); font-size:.82rem; cursor:pointer; white-space:nowrap; }
.admin-collapse-btn:hover { color:#fff; border-color:rgba(255,255,255,.3); }
.admin-collapse-btn svg { width:1.1rem; height:1.1rem; flex-shrink:0; transition:transform .2s; }
.admin-logout { margin-top:.6rem; }
.admin-main { flex:1; padding:2rem; background:var(--color-soft); min-width:0; }
.admin-topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.5rem; gap:1rem; flex-wrap:wrap; }
.admin-topbar-actions { display:flex; align-items:center; gap:.75rem; }
.admin-avatar { width:2.25rem; height:2.25rem; border-radius:999px; background:var(--color-navy); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.78rem; font-weight:700; flex-shrink:0; }
.sidebar-collapsed .admin-sidebar { width:4.2rem; }
.sidebar-collapsed .admin-brand-name, .sidebar-collapsed .admin-nav-label, .sidebar-collapsed .admin-nav-group { display:none; }
.sidebar-collapsed .admin-sidebar a, .sidebar-collapsed .admin-collapse-btn { justify-content:center; }
.sidebar-collapsed .admin-collapse-btn svg { transform:rotate(180deg); }
.admin-empty { text-align:center; padding:3rem 1rem; color:var(--color-muted); }
.admin-empty-icon { width:2.75rem; height:2.75rem; margin:0 auto .75rem; border-radius:999px; background:var(--color-soft); display:flex; align-items:center; justify-content:center; color:var(--color-muted); }
.admin-empty-icon svg { width:1.4rem; height:1.4rem; }
.admin-empty p { margin:0; font-size:.9rem; }
.stat-card { display:flex; flex-direction:column; gap:.6rem; }
.stat-card-head { display:flex; align-items:center; gap:.6rem; color:var(--color-muted); font-size:.82rem; }
.stat-card-head .admin-nav-icon { width:1.15rem; height:1.15rem; color:var(--color-blue); }
.stat-card h3 { margin:0; font-size:1.8rem; }
.stat-card a.stat-link { font-size:.78rem; font-weight:600; color:var(--color-blue); }
.admin-table-toolbar { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.admin-search { position:relative; width:16rem; max-width:100%; }
.admin-search svg { position:absolute; left:.7rem; top:50%; transform:translateY(-50%); width:1rem; height:1rem; color:var(--color-muted); }
.admin-search input { width:100%; padding:.5rem .75rem .5rem 2.1rem; border-radius:.6rem; border:1px solid var(--color-surface-border); background:var(--color-surface); font-size:.85rem; color:var(--color-text); }

/* CRM: quick stats strip above the pipeline */
.crm-stats { display:grid; grid-template-columns:repeat(4, 1fr); gap:1rem; margin-bottom:1.25rem; }
.crm-stat { background:var(--color-surface); border:1px solid var(--color-surface-border); border-radius:1rem; padding:1rem 1.15rem; display:flex; flex-direction:column; gap:.2rem; }
.crm-stat-value { font-size:1.45rem; font-weight:700; color:var(--color-heading); }
.crm-stat-label { font-size:.78rem; color:var(--color-muted); }
@media (max-width:900px) { .crm-stats { grid-template-columns:repeat(2, 1fr); } }

/* CRM Deal Pipeline — vertical accordion of stages */
.crm-stages { display:flex; flex-direction:column; gap:.85rem; }
.crm-stage { background:var(--color-surface); border:1px solid var(--color-surface-border); border-radius:1rem; overflow:hidden; border-left:4px solid var(--stage-color); }
.crm-stage-head { width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 1.1rem; background:none; border:none; cursor:pointer; text-align:left; font:inherit; }
.crm-stage-title { display:flex; align-items:center; gap:.55rem; font-weight:700; font-size:.92rem; color:var(--color-heading); }
.crm-dot { width:.6rem; height:.6rem; border-radius:999px; background:var(--stage-color); flex-shrink:0; }
.crm-stage-meta { display:flex; align-items:center; gap:.75rem; }
.crm-column-count { background:var(--color-soft); border-radius:999px; padding:.1rem .6rem; font-size:.75rem; font-weight:600; color:var(--color-muted); min-width:1.6rem; text-align:center; }
.crm-stage-total { font-size:.82rem; font-weight:600; color:var(--stage-color); min-width:3.5rem; text-align:right; }
.crm-stage-chevron { width:1.1rem; height:1.1rem; color:var(--color-muted); transition:transform .2s; display:flex; }
.crm-stage.is-collapsed .crm-stage-chevron { transform:rotate(-90deg); }
.crm-stage-body { max-height:200rem; transition:max-height .25s ease, opacity .2s ease; opacity:1; background:var(--color-soft); }
.crm-stage.is-collapsed .crm-stage-body { max-height:0; opacity:0; }
.crm-stage-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(16rem, 1fr)); gap:.75rem; padding:0 1.1rem 1.1rem; }
.crm-stage-body.drag-over .crm-stage-grid { background:color-mix(in srgb, var(--color-blue) 8%, transparent); border-radius:.75rem; }
.crm-column-empty { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; gap:.4rem; text-align:center; color:var(--color-muted); font-size:.78rem; padding:1.5rem 0; opacity:.7; }
.crm-column-empty svg { width:1.5rem; height:1.5rem; }
.crm-card { background:var(--color-surface); border:1px solid var(--color-surface-border); border-radius:.75rem; padding:.75rem; transition:box-shadow .15s, transform .15s; }
.crm-card:hover { box-shadow:var(--shadow-card); transform:translateY(-2px); }
.crm-card.dragging { opacity:.4; }
.crm-card-link { display:block; color:inherit; cursor:pointer; }
.crm-card-title { margin:0; font-size:.85rem; font-weight:600; color:var(--color-heading); }
.crm-card-tag { margin:.3rem 0 0; font-size:.72rem; color:var(--color-blue); }
.crm-card-company { display:flex; align-items:center; gap:.4rem; margin-top:.5rem; font-size:.75rem; color:var(--color-text); }
.crm-card-logo { width:1.35rem; height:1.35rem; border-radius:.4rem; object-fit:cover; flex-shrink:0; }
.crm-card-logo-fallback { display:flex; align-items:center; justify-content:center; background:var(--gradient-primary); color:#fff; font-weight:700; font-size:.65rem; }
.crm-card-foot { display:flex; justify-content:space-between; align-items:center; margin-top:.6rem; font-size:.75rem; color:var(--color-muted); }
.crm-card-foot strong { color:var(--color-heading); }
.crm-card-move { display:block; width:100%; margin-top:.6rem; padding:.4rem .5rem; font-size:.75rem; border-radius:.5rem; border:1px solid var(--color-surface-border); background:var(--color-surface); color:var(--color-muted); cursor:pointer; }
.crm-card-move:hover, .crm-card-move:focus { border-color:var(--color-blue); color:var(--color-heading); }
.badge-status { display:inline-block; padding:.2rem .6rem; border-radius:999px; font-size:.72rem; font-weight:600; }
.badge-status.DRAFT { background:#fef3c7; color:#92400e; }
.badge-status.PUBLISHED { background:#dcfce7; color:#166534; }
.badge-status.ARCHIVED { background:#e5e7eb; color:#374151; }
.alert { border-radius:.75rem; padding:.9rem 1.1rem; font-size:.9rem; margin-bottom:1.25rem; }
.alert-error { background:#fef2f2; color:#991b1b; border:1px solid #fecaca; }
.alert-success { background:#f0fdf4; color:#166534; border:1px solid #bbf7d0; }
.alert-amber { background:#fffbeb; color:#92400e; border:1px solid #fde68a; }
