/* =============================================================================
   MIRA MARKETING SITE — design system
   Token tiers mirror the Mira app (design_system/tokens/tokens.css):
     1 PRIMITIVES  logo-derived OKLCH ramps (brand #488BE7, accent #009EAB)
     2 SEMANTIC    intent aliases; light default, dark + sepia override this tier
     3 COMPONENT   per-component knobs resolving to semantic tokens
   Components never read a primitive directly — re-theme by editing tokens only.
   WCAG 2.2 AA: focus-visible rings, 44px targets, reduced-motion/contrast support.
   ============================================================================= */

/* ---- TIER 1: PRIMITIVES ---- */
:root{
  --brand-50:#F0F6FF; --brand-100:#DFECFF; --brand-200:#C2DBFF; --brand-300:#98C3FF;
  --brand-400:#66A4FC; --brand-500:#488BE7; --brand-600:#3072CC; --brand-700:#1C5AAD;
  --brand-800:#11478C; --brand-900:#0D366B; --brand-950:#072449;

  --accent-50:#E2FBFF; --accent-100:#C7F5FB; --accent-200:#95E9F4; --accent-300:#4ED6E5;
  --accent-400:#00B8C8; --accent-500:#009EAB; --accent-600:#00838F; --accent-700:#006973;
  --accent-800:#00535B; --accent-900:#003F46; --accent-950:#002B2F;

  --neutral-50:#F5F6F7; --neutral-100:#E9EBEE; --neutral-200:#D6D9DD; --neutral-300:#BCC1C6;
  --neutral-400:#9FA3AA; --neutral-500:#878C93; --neutral-600:#6F747B; --neutral-700:#595D63;
  --neutral-800:#46494E; --neutral-900:#35373B; --neutral-950:#232527;

  --success-50:#EAFBED; --success-100:#D6F5DB; --success-200:#B4E9BE; --success-300:#89D599;
  --success-400:#5DBA75; --success-500:#3AA35A; --success-600:#188A42; --success-700:#007031;
  --success-800:#005925; --success-900:#00441B; --success-950:#002E10;

  --warning-50:#FFF4E3; --warning-100:#FCE8C8; --warning-200:#F6D49B; --warning-300:#E8B863;
  --warning-400:#D09821; --warning-500:#B58000; --warning-600:#976B00; --warning-700:#7A5500;
  --warning-800:#614300; --warning-900:#4A3200; --warning-950:#322100;

  --error-50:#FFF3F1; --error-100:#FFE4E0; --error-200:#FFCBC4; --error-300:#FFA59A;
  --error-400:#F4796D; --error-500:#DD5B52; --error-600:#C2423B; --error-700:#A22C28;
  --error-800:#831F1C; --error-900:#641815; --error-950:#440F0C;

  --info-50:#F0F6FF; --info-100:#DFEDFF; --info-200:#C0DCFF; --info-300:#95C3FF;
  --info-400:#63A5F8; --info-500:#458CE4; --info-600:#2C74C9; --info-700:#175CAA;
  --info-800:#0D4889; --info-900:#0A3769; --info-950:#062448;

  --coral-500:#F0623A;

  /* Type — fluid */
  --font-sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono:ui-monospace,"SF Mono",Menlo,monospace;
  --text-xs:clamp(.75rem,.72rem + .15vw,.8125rem);
  --text-sm:clamp(.8125rem,.79rem + .15vw,.875rem);
  --text-base:clamp(.9375rem,.9rem + .2vw,1rem);
  --text-lg:clamp(1.0625rem,1rem + .35vw,1.1875rem);
  --text-xl:clamp(1.25rem,1.12rem + .55vw,1.5rem);
  --text-2xl:clamp(1.6rem,1.35rem + 1vw,2.1rem);
  --text-3xl:clamp(2.1rem,1.7rem + 1.7vw,3rem);
  --text-4xl:clamp(2.5rem,1.9rem + 2.6vw,4rem);
  --w-reg:400; --w-med:500; --w-semi:600; --w-bold:700; --w-black:800;

  /* Space, radius, shadow, motion */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem;
  --space-20:5rem; --space-24:6rem;
  --radius-sm:.375rem; --radius-md:.5rem; --radius-lg:.75rem; --radius-xl:1rem;
  --radius-2xl:1.5rem; --radius-full:9999px;
  --ease:cubic-bezier(.2,.8,.2,1); --dur:200ms; --dur-fast:120ms;
  --maxw:1180px;

  /* ---- TIER 2: SEMANTIC — LIGHT (default) ---- */
  --bg:var(--neutral-50);
  --bg-grad:radial-gradient(1200px 600px at 15% -10%, var(--brand-100) 0%, transparent 60%),
            radial-gradient(900px 500px at 100% 0%, var(--accent-100) 0%, transparent 55%),
            var(--neutral-50);
  --surface:#FFFFFF;
  --surface-2:var(--neutral-50);
  --surface-hover:var(--neutral-100);
  --text:var(--neutral-900);
  --text-muted:var(--neutral-600);
  --text-subtle:var(--neutral-500);
  --primary:var(--brand-600); --primary-hover:var(--brand-700); --primary-active:var(--brand-800);
  --primary-subtle:var(--brand-50); --on-primary:#FFFFFF;
  --accent:var(--accent-700); --accent-hover:var(--accent-800); --on-accent:#FFFFFF;
  --border:var(--neutral-200); --border-strong:var(--neutral-500);
  --focus:var(--brand-600);
  --success:var(--success-600); --success-bg:var(--success-50);
  --warning:var(--warning-600); --warning-bg:var(--warning-50);
  --danger:var(--error-600);   --danger-bg:var(--error-50);
  --info:var(--info-600);      --info-bg:var(--info-50);
  --shadow-color:var(--neutral-950);
  --shadow-sm:0 1px 2px color-mix(in srgb,var(--shadow-color) 6%,transparent),0 1px 3px color-mix(in srgb,var(--shadow-color) 10%,transparent);
  --shadow-md:0 4px 14px color-mix(in srgb,var(--shadow-color) 10%,transparent),0 2px 6px color-mix(in srgb,var(--shadow-color) 6%,transparent);
  --shadow-lg:0 18px 40px color-mix(in srgb,var(--shadow-color) 16%,transparent),0 6px 14px color-mix(in srgb,var(--shadow-color) 8%,transparent);
  --shadow-xl:0 30px 70px color-mix(in srgb,var(--shadow-color) 22%,transparent);
  --glass-bg:rgba(255,255,255,.66); --glass-border:rgba(255,255,255,.7); --glass-blur:18px;
  --hero-grad:linear-gradient(135deg,var(--brand-600),var(--brand-800) 55%,var(--accent-700));
  --ring:color-mix(in srgb,var(--brand-600) 35%,transparent);

  /* ---- TIER 3: COMPONENT ---- */
  --button-radius:var(--radius-md);
  --input-bg:var(--surface);
  --input-border:var(--border-strong);
  --input-border-error:var(--danger);
  --card-bg:var(--surface);
  --card-radius:var(--radius-xl);
  --card-shadow:var(--shadow-sm);
  --focus-ring-width:2px;
  --focus-ring-offset:2px;
}

/* ---- DARK ---- */
[data-theme="dark"]{
  --ink:color-mix(in srgb,var(--brand-950) 62%,#06070c);
  --bg:var(--ink);
  --bg-grad:radial-gradient(1200px 820px at 6% -8%, color-mix(in srgb,var(--brand-600) 30%,transparent) 0%, transparent 60%),
            radial-gradient(1100px 720px at 100% 4%, color-mix(in srgb,var(--accent-600) 24%,transparent) 0%, transparent 56%),
            radial-gradient(1000px 820px at 52% 116%, color-mix(in srgb,var(--brand-700) 26%,transparent) 0%, transparent 60%),
            var(--ink);
  --surface:color-mix(in srgb,var(--brand-900) 42%,#0b0e16);
  --surface-2:color-mix(in srgb,var(--brand-950) 55%,#070910);
  --surface-hover:color-mix(in srgb,var(--brand-800) 38%,#10141c);
  --text:var(--neutral-50);
  --text-muted:var(--neutral-300);
  --text-subtle:var(--neutral-400);
  --primary:var(--brand-400); --primary-hover:var(--brand-300); --primary-active:var(--brand-200);
  --primary-subtle:color-mix(in srgb,var(--brand-900) 45%,var(--neutral-950)); --on-primary:var(--neutral-950);
  --accent:var(--accent-400); --accent-hover:var(--accent-300); --on-accent:var(--neutral-950);
  --border:color-mix(in srgb,var(--brand-700) 34%,#1b2434); --border-strong:color-mix(in srgb,var(--brand-300) 42%,var(--neutral-400));
  --focus:var(--brand-400);
  --success:var(--success-500); --success-bg:color-mix(in srgb,var(--success-900) 45%,var(--neutral-950));
  --warning:var(--warning-500); --warning-bg:color-mix(in srgb,var(--warning-900) 45%,var(--neutral-950));
  --danger:var(--error-500);    --danger-bg:color-mix(in srgb,var(--error-900) 45%,var(--neutral-950));
  --info:var(--brand-400);      --info-bg:color-mix(in srgb,var(--brand-900) 45%,var(--neutral-950));
  --shadow-color:#000000;
  --shadow-sm:0 1px 2px color-mix(in srgb,var(--shadow-color) 50%,transparent);
  --shadow-md:0 6px 18px color-mix(in srgb,var(--shadow-color) 55%,transparent);
  --shadow-lg:0 22px 48px color-mix(in srgb,var(--shadow-color) 60%,transparent);
  --shadow-xl:0 34px 80px color-mix(in srgb,var(--shadow-color) 70%,transparent);
  --glass-bg:rgba(22,26,41,.6); --glass-border:rgba(255,255,255,.10); --glass-blur:18px;
  --hero-grad:linear-gradient(135deg,var(--brand-700),var(--brand-950) 55%,var(--accent-900));
  --ring:color-mix(in srgb,var(--brand-400) 40%,transparent);
}

/* ---- SEPIA — warm reading theme (teal + terracotta, intentionally not brand hues) ---- */
[data-theme="sepia"]{
  --bg:#F4ECDD;
  --bg-grad:radial-gradient(1100px 600px at 12% -10%, #EFE2C9 0%, transparent 60%),
            radial-gradient(900px 500px at 100% 0%, #E9DBBE 0%, transparent 55%), #F4ECDD;
  --surface:#FBF5E9;
  --surface-2:#F1E7D3;
  --surface-hover:#EFE3CC;
  --text:#3A2F1E;
  --text-muted:#6B5A41;
  --text-subtle:#8A7757;
  --primary:#1F5A6B; --primary-hover:#174856; --primary-active:#103641;
  --primary-subtle:#E6EEEF; --on-primary:#FBF5E9;
  --accent:#A85A2A; --accent-hover:#8C4A22; --on-accent:#FBF5E9;
  --border:#E0D2B6; --border-strong:#8A784E;
  --focus:#1F5A6B;
  --success:#3E7A3A; --success-bg:#E7EFDD;
  --warning:#9A6B0E; --warning-bg:#F3E7C8;
  --danger:#A33B30;  --danger-bg:#F3DDD6;
  --info:#1F5A6B;    --info-bg:#E6EEEF;
  --shadow-color:#503C1E;
  --shadow-sm:0 1px 2px color-mix(in srgb,var(--shadow-color) 10%,transparent);
  --shadow-md:0 6px 16px color-mix(in srgb,var(--shadow-color) 14%,transparent);
  --shadow-lg:0 20px 44px color-mix(in srgb,var(--shadow-color) 18%,transparent);
  --shadow-xl:0 30px 70px color-mix(in srgb,var(--shadow-color) 22%,transparent);
  --glass-bg:rgba(251,245,233,.7); --glass-border:rgba(255,255,255,.6); --glass-blur:16px;
  --hero-grad:linear-gradient(135deg,#1F5A6B,#103641 55%,#A85A2A);
  --ring:color-mix(in srgb,var(--focus) 35%,transparent);
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]):not([data-theme="sepia"]):not([data-theme="dark"]){
    color-scheme: dark;
    --ink:color-mix(in srgb,var(--brand-950) 62%,#06070c);
    --bg:var(--ink);
    --bg-grad:radial-gradient(1200px 820px at 6% -8%, color-mix(in srgb,var(--brand-600) 30%,transparent) 0%, transparent 60%),
              radial-gradient(1100px 720px at 100% 4%, color-mix(in srgb,var(--accent-600) 24%,transparent) 0%, transparent 56%),
              radial-gradient(1000px 820px at 52% 116%, color-mix(in srgb,var(--brand-700) 26%,transparent) 0%, transparent 60%),
              var(--ink);
    --surface:color-mix(in srgb,var(--brand-900) 42%,#0b0e16); --surface-2:color-mix(in srgb,var(--brand-950) 55%,#070910); --surface-hover:color-mix(in srgb,var(--brand-800) 38%,#10141c);
    --text:var(--neutral-50); --text-muted:var(--neutral-300); --text-subtle:var(--neutral-400);
    --primary:var(--brand-400); --primary-hover:var(--brand-300); --primary-active:var(--brand-200);
    --primary-subtle:color-mix(in srgb,var(--brand-900) 45%,var(--neutral-950)); --on-primary:var(--neutral-950);
    --accent:var(--accent-400); --accent-hover:var(--accent-300); --on-accent:var(--neutral-950);
    --border:color-mix(in srgb,var(--brand-700) 34%,#1b2434); --border-strong:color-mix(in srgb,var(--brand-300) 42%,var(--neutral-400)); --focus:var(--brand-400);
    --success:var(--success-500); --success-bg:color-mix(in srgb,var(--success-900) 45%,var(--neutral-950));
    --warning:var(--warning-500); --warning-bg:color-mix(in srgb,var(--warning-900) 45%,var(--neutral-950));
    --danger:var(--error-500); --danger-bg:color-mix(in srgb,var(--error-900) 45%,var(--neutral-950));
    --info:var(--brand-400); --info-bg:color-mix(in srgb,var(--brand-900) 45%,var(--neutral-950));
    --shadow-color:#000000;
    --shadow-sm:0 1px 2px color-mix(in srgb,var(--shadow-color) 50%,transparent);
    --shadow-md:0 6px 18px color-mix(in srgb,var(--shadow-color) 55%,transparent);
    --shadow-lg:0 22px 48px color-mix(in srgb,var(--shadow-color) 60%,transparent);
    --shadow-xl:0 34px 80px color-mix(in srgb,var(--shadow-color) 70%,transparent);
    --glass-bg:rgba(22,26,41,.6); --glass-border:rgba(255,255,255,.10);
    --hero-grad:linear-gradient(135deg,var(--brand-700),var(--brand-950) 55%,var(--accent-900));
    --ring:color-mix(in srgb,var(--brand-400) 40%,transparent);
  }
}

/* Accessibility preferences */
@media (prefers-reduced-motion:reduce){:root{--dur:0ms;--dur-fast:0ms}*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
@media (prefers-reduced-transparency:reduce){:root{--glass-bg:var(--surface);--glass-blur:0px}}
@media (prefers-contrast:more){:root{--border:var(--border-strong);--glass-blur:0px}}

/* ============================== BASE ============================== */
*{box-sizing:border-box}
html{scroll-padding-top:88px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;
  color:var(--text);background:var(--bg-grad);background-attachment:fixed;
  min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
h1,h2,h3,h4{margin:0;line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
p{margin:0;text-wrap:pretty}
img{max-width:100%;height:auto;display:block}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
ul,ol{margin:0}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--radius-sm)}
:focus:not(:focus-visible){outline:none}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--space-6)}
.muted{color:var(--text-muted)}
.center{text-align:center}
.eyebrow{font-size:var(--text-xs);font-weight:var(--w-semi);letter-spacing:.12em;
  text-transform:uppercase;color:var(--accent);display:inline-block}
section{scroll-margin-top:88px}
.section{padding-block:var(--space-20)}
.section-sm{padding-block:var(--space-12)}
.sec-head{max-width:62ch;margin-bottom:var(--space-10)}
.sec-head.center{margin-inline:auto}
.sec-head h2{font-size:var(--text-3xl);font-weight:var(--w-bold)}
.sec-head p{color:var(--text-muted);margin-top:var(--space-3);font-size:var(--text-lg)}
.lead{font-size:var(--text-lg);color:var(--text-muted)}
.skip-link{position:absolute;left:var(--space-3);top:-60px;z-index:200;background:var(--primary);
  color:var(--on-primary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);
  font-weight:var(--w-semi);transition:top var(--dur-fast)}
.skip-link:focus{top:var(--space-3);text-decoration:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ============================== NAV ============================== */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(var(--glass-blur));
  -webkit-backdrop-filter:blur(var(--glass-blur));background:var(--glass-bg);
  border-bottom:1px solid var(--glass-border)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.nav{background:var(--surface)}}
.nav-in{display:flex;align-items:center;gap:var(--space-4);height:64px}
.logo{display:flex;align-items:center;gap:var(--space-3);font-weight:var(--w-bold);
  font-size:var(--text-lg);letter-spacing:-.02em;color:var(--text)}
.logo:hover{text-decoration:none}
.logo .mark{width:34px;height:34px;border-radius:10px;object-fit:cover;display:block;box-shadow:var(--shadow-sm)}
.nav-links{display:flex;gap:var(--space-1);margin-left:var(--space-4);align-items:center;list-style:none;padding:0}
.nav-links a,.nav-links .navbtn{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);
  color:var(--text-muted);font-weight:var(--w-med);font-size:var(--text-sm);
  transition:background var(--dur-fast),color var(--dur-fast);background:none;border:0;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.nav-links a:hover,.nav-links .navbtn:hover{background:var(--surface-hover);color:var(--text);text-decoration:none}
.nav-links a[aria-current]{color:var(--primary);background:var(--primary-subtle)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}
.has-menu{position:relative}
.menu-panel{position:absolute;top:calc(100% + 10px);left:0;min-width:520px;background:var(--surface);
  border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);
  padding:var(--space-3);display:grid;grid-template-columns:1fr 1fr;gap:2px;opacity:0;visibility:hidden;
  transform:translateY(6px);transition:opacity var(--dur-fast),transform var(--dur-fast),visibility var(--dur-fast);z-index:60}
.has-menu:hover .menu-panel,.has-menu:focus-within .menu-panel{opacity:1;visibility:visible;transform:translateY(0)}
.menu-item{display:flex;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);color:var(--text)}
.menu-item:hover{background:var(--surface-hover);text-decoration:none}
.menu-item .mi-ico{flex:0 0 36px;height:36px;width:36px;display:grid;place-items:center;border-radius:var(--radius-md);
  background:var(--primary-subtle);color:var(--primary)}
.menu-item b{display:block;font-size:var(--text-sm);font-weight:var(--w-semi)}
.menu-item span{display:block;font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}
.nav-toggle{display:none;background:none;border:1px solid var(--border-strong);border-radius:var(--radius-md);
  width:42px;height:42px;align-items:center;justify-content:center;color:var(--text);cursor:pointer}

/* theme segmented control */
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--radius-full);padding:3px}
.seg button{border:0;background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;
  font-size:var(--text-sm);font-weight:var(--w-med);min-width:40px;height:34px;padding:0 10px;
  border-radius:var(--radius-full);transition:all var(--dur-fast);display:inline-flex;align-items:center;justify-content:center;gap:6px}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}
.seg svg{width:16px;height:16px}

/* ============================== BUTTONS ============================== */
.btn{font:inherit;font-weight:var(--w-semi);font-size:var(--text-sm);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:44px;
  padding:0 var(--space-5);border-radius:var(--radius-md);border:1px solid transparent;
  transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast),box-shadow var(--dur-fast);
  white-space:nowrap;text-decoration:none}
.btn:hover{text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn svg{width:18px;height:18px}
.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}
.btn-primary:hover{background:var(--primary-hover);box-shadow:var(--shadow-md)}
.btn-primary:active{background:var(--primary-active)}
.btn-accent{background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow-sm)}
.btn-accent:hover{background:var(--accent-hover)}
.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}
.btn-secondary:hover{background:var(--surface-hover)}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:var(--surface-hover)}
.btn-on-hero{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.4);backdrop-filter:blur(6px)}
.btn-on-hero:hover{background:rgba(255,255,255,.26)}
.btn-on-hero.solid{background:#fff;color:var(--brand-700);border-color:transparent}
.btn-on-hero.solid:hover{background:rgba(255,255,255,.9)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;box-shadow:none}
.btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-xs)}
.btn-lg{min-height:52px;padding:0 var(--space-6);font-size:var(--text-base)}
.btn-block{width:100%}

/* ============================== HERO ============================== */
.hero{margin-top:var(--space-10);border-radius:var(--radius-2xl);overflow:hidden;
  background:var(--hero-grad);color:#fff;box-shadow:var(--shadow-lg);position:relative}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 320px at 85% 8%, rgba(255,255,255,.18),transparent 60%)}
.hero-in{position:relative;z-index:1;padding:var(--space-16) var(--space-12)}
.hero .eyebrow{color:rgba(255,255,255,.88)}
.hero h1{font-size:var(--text-4xl);font-weight:var(--w-black);margin:var(--space-4) 0;max-width:20ch}
.hero p{color:rgba(255,255,255,.92);max-width:60ch;font-size:var(--text-lg)}
.hero-cta{display:flex;gap:var(--space-3);margin-top:var(--space-8);flex-wrap:wrap}
.hero-meta{display:flex;gap:var(--space-6);flex-wrap:wrap;margin-top:var(--space-8);
  color:rgba(255,255,255,.85);font-size:var(--text-sm);font-weight:var(--w-med)}
.hero-meta span{display:inline-flex;align-items:center;gap:8px}
.hero-meta svg{width:18px;height:18px;flex:none}
.hero-split{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-10);align-items:center}
.hero-visual{position:relative;z-index:1}

/* ============================== CARDS / GRID ============================== */
.grid{display:grid;gap:var(--space-5)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  padding:var(--space-6);box-shadow:var(--shadow-sm)}
.card.interactive{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur)}
.card.interactive:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}
.card h3{font-size:var(--text-lg);font-weight:var(--w-semi);margin-bottom:var(--space-2)}
.card p{color:var(--text-muted);font-size:var(--text-sm)}
.card-ico{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-md);
  background:var(--primary-subtle);color:var(--primary);margin-bottom:var(--space-4)}
.card-ico svg{width:24px;height:24px}
.card-ico.accent{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}
a.card{color:inherit}
a.card:hover{text-decoration:none}
.card-link{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-4);
  font-weight:var(--w-semi);font-size:var(--text-sm);color:var(--primary)}
.card-link svg{width:16px;height:16px;transition:transform var(--dur-fast)}
a.card:hover .card-link svg,.card-link:hover svg{transform:translateX(3px)}

/* feature row (icon + text list) */
.flist{list-style:none;padding:0;display:grid;gap:var(--space-4)}
.flist li{display:flex;gap:var(--space-3);align-items:flex-start}
.flist .fi{flex:0 0 28px;height:28px;width:28px;display:grid;place-items:center;border-radius:var(--radius-md);
  background:var(--success-bg);color:var(--success);margin-top:2px}
.flist .fi svg{width:16px;height:16px}
.flist b{font-weight:var(--w-semi);display:block}
.flist span.d{color:var(--text-muted);font-size:var(--text-sm)}

/* split feature block */
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-12);align-items:center}
.split.rev .split-media{order:-1}

/* ============================== BADGES / CHIPS ============================== */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:var(--w-semi);
  padding:4px 11px;border-radius:var(--radius-full);border:1px solid transparent;background:var(--primary-subtle);color:var(--primary)}
.badge.dot::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.badge-info{background:var(--info-bg);color:var(--info)}
.badge-success{background:var(--success-bg);color:var(--success)}
.badge-warning{background:var(--warning-bg);color:var(--warning)}
.badge-danger{background:var(--danger-bg);color:var(--danger)}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:var(--w-med);
  padding:7px 13px;border-radius:var(--radius-full);background:var(--surface);border:1px solid var(--border);color:var(--text-muted)}
.chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}

/* ============================== STATS ============================== */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-6);text-align:center}
.stat .num{font-size:var(--text-3xl);font-weight:var(--w-black);letter-spacing:-.03em;color:var(--primary);
  font-variant-numeric:tabular-nums}
.stat .lbl{color:var(--text-muted);font-size:var(--text-sm);margin-top:4px}

/* logo strip */
.logostrip{display:flex;flex-wrap:wrap;gap:var(--space-6) var(--space-8);align-items:center;justify-content:center;opacity:.85}
.logostrip .chip{background:var(--surface);font-weight:var(--w-semi);color:var(--text)}

/* ============================== TABLE ============================== */
.table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm);overflow:hidden;overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
thead th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--surface-2);color:var(--text-muted);
  font-weight:var(--w-semi);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}
tbody td,tbody th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);text-align:left;font-weight:var(--w-reg)}
tbody tr:last-child td,tbody tr:last-child th{border-bottom:0}
tbody th{font-weight:var(--w-semi)}
.t-yes{color:var(--success);font-weight:var(--w-bold)}
.t-no{color:var(--text-subtle)}
.t-warn{color:var(--warning);font-weight:var(--w-semi)}
.t-yes,.t-no{display:inline-flex;align-items:center;justify-content:center}
.t-yes svg,.t-no svg{width:20px;height:20px;flex:none}
table td,table th{vertical-align:middle}
.col-mira{background:var(--primary-subtle)}

/* ============================== PRICING ============================== */
.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);align-items:stretch}
.plan{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);position:relative}
.plan.featured{border-color:var(--primary);box-shadow:var(--shadow-lg)}
.plan.featured::before{content:"Most popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--primary);color:var(--on-primary);font-size:var(--text-xs);font-weight:var(--w-semi);
  padding:4px 12px;border-radius:var(--radius-full)}
.plan h3{font-size:var(--text-xl);font-weight:var(--w-bold)}
.plan .ptag{color:var(--text-muted);font-size:var(--text-sm);min-height:2.6em;margin-top:4px}
.plan .price{font-size:var(--text-2xl);font-weight:var(--w-black);margin:var(--space-4) 0 var(--space-2)}
.plan .price small{font-size:var(--text-sm);font-weight:var(--w-med);color:var(--text-muted)}
.plan ul{list-style:none;padding:0;margin:var(--space-4) 0;display:grid;gap:var(--space-3);flex:1}
.plan li{display:flex;gap:10px;font-size:var(--text-sm);align-items:flex-start}
.plan li svg{width:18px;height:18px;color:var(--success);flex:none;margin-top:2px}

/* ============================== FAQ ============================== */
.faq{display:grid;gap:var(--space-3);max-width:820px;margin-inline:auto}
.faq details{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}
.faq summary{cursor:pointer;padding:var(--space-4) var(--space-5);font-weight:var(--w-semi);
  display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.4em;color:var(--primary);transition:transform var(--dur-fast);line-height:1}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-body{padding:0 var(--space-5) var(--space-5);color:var(--text-muted)}

/* ============================== CTA BAND ============================== */
.cta-band{background:var(--hero-grad);color:#fff;border-radius:var(--radius-2xl);padding:var(--space-16) var(--space-12);
  text-align:center;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.cta-band::after{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 50% -20%,rgba(255,255,255,.18),transparent 60%)}
.cta-band > *{position:relative;z-index:1}
.cta-band h2{font-size:var(--text-3xl);font-weight:var(--w-bold);max-width:20ch;margin-inline:auto}
.cta-band p{color:rgba(255,255,255,.92);max-width:54ch;margin:var(--space-3) auto 0;font-size:var(--text-lg)}
.cta-band .hero-cta{justify-content:center}

/* prose (resources/legal) */
.prose{max-width:760px;margin-inline:auto}
.prose h2{font-size:var(--text-2xl);margin-top:var(--space-10);margin-bottom:var(--space-3)}
.prose h3{font-size:var(--text-xl);margin-top:var(--space-8);margin-bottom:var(--space-2)}
.prose p,.prose li{color:var(--text);font-size:var(--text-base);line-height:1.7}
.prose p{margin-block:var(--space-4)}
.prose ul,.prose ol{padding-left:var(--space-6);display:grid;gap:var(--space-2)}

/* page hero (non-home) */
.phero{padding-block:var(--space-16) var(--space-10)}
.phero .eyebrow{margin-bottom:var(--space-3)}
.phero h1{font-size:var(--text-4xl);font-weight:var(--w-black);max-width:18ch}
.phero p{margin-top:var(--space-4);max-width:62ch;font-size:var(--text-lg);color:var(--text-muted)}
.phero .hero-cta{margin-top:var(--space-6)}
.breadcrumb{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-4);display:flex;gap:8px;flex-wrap:wrap}
.breadcrumb a{color:var(--text-muted)}
.breadcrumb a:hover{color:var(--primary)}

/* mock browser visual */
.mock{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);
  box-shadow:var(--shadow-xl);overflow:hidden}
.mock-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--surface-2);border-bottom:1px solid var(--border)}
.mock-dot{width:11px;height:11px;border-radius:50%}
.mock-url{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);
  height:28px;display:flex;align-items:center;gap:7px;padding:0 12px;font-size:var(--text-xs);color:var(--text-muted);font-family:var(--font-mono)}
.mock-url svg{width:13px;height:13px;color:var(--success)}
.mock-body{display:grid;grid-template-columns:1fr .8fr;min-height:240px}
.mock-page{padding:var(--space-5);display:grid;gap:10px;align-content:start}
.mock-line{height:10px;border-radius:var(--radius-full);background:var(--surface-hover)}
.mock-chat{border-left:1px solid var(--border);background:var(--surface-2);padding:var(--space-4);display:grid;gap:10px;align-content:start}
.mock-msg{border-radius:var(--radius-lg);padding:10px 12px;font-size:var(--text-xs);line-height:1.5;border:1px solid var(--border);background:var(--surface)}
.mock-msg.me{background:var(--primary-subtle);border-color:transparent;justify-self:end;max-width:80%}
.mock-msg.ai{max-width:92%}
.mock-prov{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:var(--w-semi);
  color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);padding:2px 8px;border-radius:var(--radius-full)}

/* ============================== FORM ============================== */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--space-4)}
.field label{font-size:var(--text-sm);font-weight:var(--w-med);color:var(--text)}
.field .req{color:var(--danger)}
.field .hint{font-size:var(--text-xs);color:var(--text-subtle)}
.field .err{font-size:var(--text-xs);color:var(--danger);font-weight:var(--w-med)}
.input{font:inherit;font-size:var(--text-sm);min-height:44px;padding:0 var(--space-3);background:var(--surface);
  color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);width:100%}
select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236F747B' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}
textarea.input{padding-top:var(--space-2);min-height:120px;resize:vertical;line-height:1.6}
.input::placeholder{color:var(--text-subtle)}
.input:hover{border-color:var(--primary)}
.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
.input[aria-invalid="true"]{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 22%,transparent)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-4)}
.form-note{font-size:var(--text-xs);color:var(--text-subtle);margin-top:var(--space-2)}
.form-success{background:var(--success-bg);border:1px solid var(--success);color:var(--success);
  border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);font-weight:var(--w-med);display:none}
.form-success.show{display:block}
.checkrow{display:flex;gap:10px;align-items:flex-start;margin-bottom:var(--space-4)}
.checkrow input{margin-top:3px;width:18px;height:18px;accent-color:var(--primary);flex:none}
.checkrow label{font-size:var(--text-sm);color:var(--text-muted)}

/* ============================== FOOTER ============================== */
.site-footer{margin-top:var(--space-24);border-top:1px solid var(--border);background:var(--surface)}
.footer-in{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:var(--space-8);padding-block:var(--space-16) var(--space-10)}
.footer-brand .logo{margin-bottom:var(--space-4)}
.footer-brand p{color:var(--text-muted);font-size:var(--text-sm);max-width:34ch}
.footer-col h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text-subtle);
  font-weight:var(--w-semi);margin-bottom:var(--space-4)}
.footer-col ul{list-style:none;padding:0;display:grid;gap:var(--space-3)}
.footer-col a{color:var(--text-muted);font-size:var(--text-sm)}
.footer-col a:hover{color:var(--primary)}
.footer-bottom{border-top:1px solid var(--border);padding-block:var(--space-5);display:flex;
  justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;
  font-size:var(--text-sm);color:var(--text-subtle)}
.footer-social{display:flex;gap:var(--space-3)}
.footer-social a{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-md);
  border:1px solid var(--border);color:var(--text-muted)}
.footer-social a:hover{color:var(--primary);border-color:var(--primary)}
.footer-social svg{width:18px;height:18px}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}

/* ============================== RESPONSIVE ============================== */
@media (max-width:1024px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .price-grid{grid-template-columns:repeat(2,1fr)}
  .footer-in{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1 / -1}
}
@media (max-width:880px){
  .grid-3,.grid-2{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr);gap:var(--space-8)}
  .split{grid-template-columns:1fr;gap:var(--space-8)}
  .split.rev .split-media{order:0}
  .hero-split{grid-template-columns:1fr}
  .hero-in{padding:var(--space-10) var(--space-6)}
  .cta-band{padding:var(--space-12) var(--space-6)}
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .form-grid{grid-template-columns:1fr}
  /* mobile nav drawer */
  .nav-links.open{display:flex;position:fixed;inset:64px 0 auto 0;flex-direction:column;
    background:var(--surface);border-bottom:1px solid var(--border);margin:0;padding:var(--space-4);
    gap:var(--space-1);box-shadow:var(--shadow-lg);max-height:calc(100vh - 64px);overflow:auto}
  .nav-links.open a,.nav-links.open .navbtn{padding:var(--space-3);font-size:var(--text-base);width:100%}
  .nav-links.open .has-menu{width:100%}
  .nav-links.open .menu-panel{position:static;grid-template-columns:1fr;min-width:0;box-shadow:none;
    border:0;opacity:1;visibility:visible;transform:none;padding:0;background:transparent}
  .menu-item{padding:var(--space-2) var(--space-3)}
}
@media (max-width:560px){
  .grid-4{grid-template-columns:1fr}
  .price-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .footer-in{grid-template-columns:1fr}
  .mock-body{grid-template-columns:1fr}
  .mock-chat{border-left:0;border-top:1px solid var(--border)}
  .hero-meta{gap:var(--space-3)}
}

/* ---- real product screenshots ---- */
.shot{border:1px solid var(--border);border-radius:var(--radius-xl);overflow:hidden;
  box-shadow:var(--shadow-lg);background:var(--surface);margin:0;max-width:100%}
.shot img{display:block;width:100%;height:auto}
.shot figcaption{font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-3) var(--space-4);
  border-top:1px solid var(--border);background:var(--surface-2)}
.shot .mock-bar{border-bottom:1px solid var(--border)}
.showcase-wide{max-width:1040px;margin-inline:auto}
.badge.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 30%,transparent)}

/* ---- modern bullet markers (contextual feature-list chips) ---- */
.flist{gap:var(--space-5)}
.flist .fi{flex:0 0 36px;height:36px;width:36px;border-radius:11px;
  background:linear-gradient(145deg, color-mix(in srgb,var(--primary) 18%,var(--surface)), color-mix(in srgb,var(--accent) 16%,var(--surface)));
  color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);
  box-shadow:0 2px 6px color-mix(in srgb,var(--shadow-color) 26%,transparent), inset 0 1px 0 color-mix(in srgb,#fff 28%,transparent);
  margin-top:0;transition:transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast)}
.flist .fi svg{width:19px;height:19px;stroke-width:2.1}
.flist li:hover .fi{transform:translateY(-1px);box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 22%,transparent)}
.flist b{font-size:var(--text-base)}
[data-theme="dark"] .flist .fi{background:linear-gradient(145deg, color-mix(in srgb,var(--primary) 26%,var(--surface)), color-mix(in srgb,var(--accent) 20%,var(--surface)));border-color:color-mix(in srgb,var(--primary) 36%,transparent)}
/* pricing "included" checks: keep semantic check, give it a soft success chip */
.plan li svg{width:16px;height:16px;color:var(--success);background:var(--success-bg);border-radius:var(--radius-full);padding:2px;box-sizing:content-box;flex:none}

/* =====================================================================
   NAV-MENU wrapper + MOBILE REFINEMENTS (override earlier rules)
   ===================================================================== */
.nav-menu{display:flex;align-items:center;gap:var(--space-2);flex:1;min-width:0}
.split-body,.split-media,.showcase-wide{min-width:0}
.grid>*{min-width:0}
html,body{overflow-x:clip}
.nav-cta{display:inline-flex;flex:0 0 auto;margin-left:var(--space-2)}
.shot-zoom{display:block;cursor:zoom-in}

@media (max-width:880px){
  /* one clear hamburger on the right; theme + CTA move into the drawer */
  .nav-toggle{display:inline-flex}
  .nav-cta{margin-left:auto;min-height:38px;padding:0 var(--space-4)}
  .nav-menu{display:none}
  .nav-menu.open{display:flex;flex-direction:column;align-items:stretch;position:fixed;inset:64px 0 auto 0;
    background:var(--surface);border-bottom:1px solid var(--border);padding:var(--space-4);gap:var(--space-2);
    box-shadow:var(--shadow-lg);max-height:calc(100dvh - 64px);overflow:auto;z-index:60}
  .nav-menu.open .nav-links{display:flex;flex-direction:column;margin:0;width:100%;gap:2px}
  .nav-menu.open .nav-links a,.nav-menu.open .nav-links .navbtn{padding:var(--space-3);font-size:var(--text-base);width:100%}
  .nav-menu.open .has-menu{width:100%}
  .nav-menu.open .menu-panel{position:static;grid-template-columns:1fr;min-width:0;box-shadow:none;border:0;
    opacity:1;visibility:visible;transform:none;padding:0 0 var(--space-2) var(--space-4);background:transparent}
  /* theme switcher pinned to the top of the drawer (CTA lives in the top bar) */
  .nav-menu.open .nav-right{order:-1;margin-left:0;width:100%;align-items:center;justify-content:flex-start;gap:var(--space-3);
    border-bottom:1px solid var(--border);padding-bottom:var(--space-4);margin-bottom:var(--space-2)}
  .nav-menu.open .seg{flex:0 0 auto}

  /* tighter vertical rhythm — kills the dead whitespace */
  .section{padding-block:var(--space-12)}
  .section-sm{padding-block:var(--space-8)}
  .sec-head{margin-bottom:var(--space-6)}
  section{margin-top:0}
  .hero{margin-top:var(--space-6)}
  .cta-band{padding:var(--space-10) var(--space-5)}

  /* full-width stacked CTAs (consistent tap targets) */
  .hero-cta{flex-direction:column;align-items:stretch;width:100%}
  .hero-cta .btn{width:100%}

  /* product screenshots: fit the screen; tap to open full-size for detail */
  .shot .shot-zoom{min-width:0}
  .shot img{width:100%}

  /* trusted-app tags: one swipeable row, no jagged wrap */
  .chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-2);
    scroll-snap-type:x proximity}
  .chips .chip{flex:0 0 auto;scroll-snap-align:start}

  /* problem/feature cards: give the icon more presence */
  .card-ico{width:48px;height:48px}
  .card-ico svg{width:26px;height:26px}

  /* hero heading no longer clipped under the sticky bar */
  .phero{padding-top:var(--space-10)}
}

/* keep stats a 2x2 grid on phones instead of a tall single column */
@media (max-width:560px){
  .stats{grid-template-columns:repeat(2,1fr);gap:var(--space-6)}
  .cta-band h2{font-size:var(--text-2xl)}
}
html{scroll-padding-top:80px}

/* ---- custom checkbox (clear in light / dark / sepia) ---- */
.checkrow input[type="checkbox"]{
  appearance:none;-webkit-appearance:none;margin:2px 0 0;flex:none;
  width:20px;height:20px;border:1.5px solid var(--border-strong);border-radius:var(--radius-sm);
  background:var(--surface);cursor:pointer;display:inline-grid;place-content:center;
  transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}
.checkrow input[type="checkbox"]::after{
  content:"";width:5px;height:10px;margin-bottom:2px;border:solid var(--on-primary);
  border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform var(--dur-fast) var(--ease)}
.checkrow input[type="checkbox"]:hover{border-color:var(--primary)}
.checkrow input[type="checkbox"]:checked{background:var(--primary);border-color:var(--primary)}
.checkrow input[type="checkbox"]:checked::after{transform:rotate(45deg) scale(1)}
.checkrow input[type="checkbox"]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.checkrow label{cursor:pointer}
