/* =========================================================
   Passion Health design tokens
   Pattern: restrained, data-forward (Mito-style system)
   Palette: Passion purple + ink + white, with purple-derived neutrals
   ========================================================= */
:root{
  color-scheme: light;

  /* Color */
  --color-ink:#1E1A33;            /* text primary (deep indigo-black) */
  --color-white:#FFFFFF;          /* text light, surfaces */
  --color-brand:#382870;          /* Passion Health indigo (logo wordmark): primary action, emphasis */
  --color-brand-strong:#281860;   /* hover, pressed (logo tile shade) */
  --color-brand-soft:#ECE8F6;     /* selected, included */
  --color-accent:#F89020;         /* Passion Health orange (logo dot): small accents only */
  --color-tint:#F6F4FA;           /* quiet surface */
  --color-line:#E6E2EF;           /* dividers */
  --color-line-strong:#D1CBE0;    /* control borders */
  --color-muted:#56506B;          /* secondary text */
  --color-faint:#6B6680;          /* captions, metadata */
  --color-danger:#B42318;         /* error state only */
  --color-scrim:rgba(30,26,51,.48);
  --color-on-dark:rgba(255,255,255,.9);
  --color-on-dark-muted:#B9B3CC;
  --color-on-dark-line:rgba(255,255,255,.4);
  --color-on-dark-rule:rgba(255,255,255,.14);
  --color-on-dark-fill:rgba(255,255,255,.12);
  --color-on-dark-fill-hover:rgba(255,255,255,.22);
  --color-nav-glass:rgba(255,255,255,.92);
  --hero-veil-strong:rgba(30,26,51,.52);
  --hero-veil-soft:rgba(30,26,51,.12);

  /* Hero art: tints and shades of Passion purple */
  --hero-sky-1:#1C1340; --hero-sky-2:#382870; --hero-sky-3:#8C7CC2; --hero-sky-4:#D7CFEA; --hero-sky-5:#F3F0FA;
  --hero-glow-1:#FFFFFF; --hero-glow-2:#FBE3C6;
  --hero-hill-1a:#9F90CC; --hero-hill-1b:#8678B8;
  --hero-hill-2a:#6A5BA3; --hero-hill-2b:#584A8F;
  --hero-hill-3a:#43366F; --hero-hill-3b:#362A5C;
  --hero-hill-4a:#2A2048; --hero-hill-4b:#1E1A33;

  /* Typography */
  --font-display:"Newsreader", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono:"Fragment Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --text-xs:12px;   --lh-xs:16px;
  --text-sm:14px;   --lh-sm:20px;
  --text-base:16px; --lh-base:24px;
  --text-lg:18px;   --lh-lg:27px;
  --text-xl:42px;   --lh-xl:46.2px;
  --text-2xl:48px;  --lh-2xl:52.8px;
  --weight-regular:400; --weight-medium:500;

  /* Spacing (4px base) */
  --space-1:1px; --space-2:4px; --space-3:6px; --space-4:8px; --space-5:10px; --space-6:12px;
  --space-7:14px; --space-8:16px; --space-9:20px; --space-10:24px; --space-11:32px; --space-12:36px;
  --space-13:40px; --space-14:44px; --space-15:48px; --space-16:56px; --space-17:64px; --space-18:80px;

  /* Shape */
  --radius-pill:9999px;   /* radius-sm: buttons, chips, inputs */
  --radius-md:4px;        /* tags */
  --radius-lg:8px;        /* list rows, small cards */
  --radius-xl:12px;       /* cards, drawers, modals */

  /* Elevation */
  --shadow-sm:0 10px 15px -3px rgba(30,26,51,.10), 0 4px 6px -4px rgba(30,26,51,.10);
  --shadow-md:0 25px 50px -12px rgba(30,26,51,.25);

  /* Motion */
  --ease:cubic-bezier(.4,0,.2,1); --ease-out:cubic-bezier(0,0,.2,1); --ease-pulse:cubic-bezier(.4,0,.6,1);
  --dur-fast:.15s; --dur-base:.2s; --dur-panel:.3s; --dur-slow:.7s; --dur-pulse:2s; --dur-marquee:65s;

  /* Layout */
  --gutter:clamp(var(--space-8), 4vw, var(--space-13));
  --nav-h:64px;
  --maxw:1200px;

  /* Aliases used by rendered markup */
  --ink:var(--color-ink); --brand:var(--color-brand); --brand-soft:var(--color-brand-soft); --tint:var(--color-tint);
  --line:var(--color-line); --muted:var(--color-muted); --faint:var(--color-faint);
  --foot-ink:var(--color-white); --foot-muted:var(--color-on-dark-muted);
}
@media (max-width: 600px){
  :root{ --text-2xl:36px; --lh-2xl:40px; --text-xl:32px; --lh-xl:36px; }
}

/* Base */
*{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + var(--space-8)); -webkit-text-size-adjust:100%}
body{margin:0; background:var(--color-white); color:var(--color-ink); font:var(--weight-regular) var(--text-base)/var(--lh-base) var(--font-sans); -webkit-font-smoothing:antialiased}
body.locked{overflow:hidden}
a{color:var(--color-brand); text-underline-offset:3px; transition:color var(--dur-fast) var(--ease)}
a:hover{color:var(--color-brand-strong)}
:focus-visible{outline:2px solid var(--color-brand); outline-offset:2px; border-radius:var(--radius-md)}
h1,h2,h3,h4{margin:0; font-weight:var(--weight-regular); text-wrap:balance}
h1,h2{font-family:var(--font-display); letter-spacing:-.01em}
h2{font-size:var(--text-2xl); line-height:var(--lh-2xl)}
h3{font-size:var(--text-lg); line-height:var(--lh-lg); font-weight:var(--weight-medium)}
h4{font-size:var(--text-base); line-height:var(--lh-base); font-weight:var(--weight-medium)}
p{margin:0}
b, strong{font-weight:var(--weight-medium)}
.sr{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.tabnum{font-variant-numeric:tabular-nums}
.wrap{max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter)}
section{padding-block:var(--space-18)}
@media (max-width: 600px){ section{padding-block:var(--space-16)} }
.sec-head{display:grid; gap:var(--space-6); margin-bottom:var(--space-11); max-width:760px}
.sec-head.center{margin-inline:auto; text-align:center; justify-items:center}
.sub{color:var(--color-muted); font-size:var(--text-lg); line-height:var(--lh-lg); max-width:62ch}
.kicker{display:inline-flex; flex-wrap:wrap; align-items:center; gap:var(--space-4); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand)}
.draft{display:inline-flex; align-items:center; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted); border:1px solid var(--color-line-strong); border-radius:var(--radius-pill); padding:var(--space-1) var(--space-4)}
.note{color:var(--color-faint); font-size:var(--text-sm); line-height:var(--lh-sm); margin-top:var(--space-8); max-width:92ch}
.fine{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-faint)}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:var(--space-4); min-height:44px; border-radius:var(--radius-pill); padding:var(--space-5) var(--space-10); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; text-decoration:none; border:1px solid transparent; transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-base) var(--ease)}
.btn:active:not(:disabled){transform:translateY(1px)}
.btn:disabled, .btn[aria-disabled="true"]{opacity:.4; cursor:not-allowed}
.btn-primary{background:var(--color-brand); color:var(--color-white)}
.btn-primary:hover:not(:disabled){background:var(--color-brand-strong); color:var(--color-white)}
.btn-outline{background:var(--color-white); color:var(--color-ink); border-color:var(--color-line-strong)}
.btn-outline:hover:not(:disabled){border-color:var(--color-ink); color:var(--color-ink)}
.btn-white{background:var(--color-white); color:var(--color-ink)}
.btn-white:hover:not(:disabled){background:var(--color-brand-soft); color:var(--color-ink)}
.btn-glass{background:transparent; color:var(--color-white); border-color:var(--color-on-dark-line)}
.btn-glass:hover{background:var(--color-on-dark-fill); color:var(--color-white)}
.btn-sm{min-height:36px; padding:var(--space-3) var(--space-8)}
.linkbtn{background:none; border:0; padding:0; color:var(--color-brand); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; text-align:left; text-decoration:underline; text-underline-offset:3px}
.linkbtn:hover{color:var(--color-brand-strong)}
.x{border:1px solid var(--color-line); background:var(--color-white); width:36px; height:36px; border-radius:var(--radius-pill); cursor:pointer; font-size:var(--text-lg); line-height:1; color:var(--color-ink); flex:none; transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease)}
.x:hover{background:var(--color-tint); border-color:var(--color-line-strong)}

/* Banner + nav */
.banner{background:var(--color-brand); color:var(--color-white); text-align:center; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); padding:var(--space-4) var(--gutter)}
.nav{position:sticky; top:0; z-index:50; background:var(--color-nav-glass); backdrop-filter:saturate(1.4) blur(12px); -webkit-backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid var(--color-line)}
.nav .wrap{display:flex; align-items:center; gap:var(--space-10); min-height:var(--nav-h); position:relative}
.logo{display:grid; gap:var(--space-1); align-content:center; justify-items:start; text-decoration:none; color:var(--color-ink); font:var(--weight-medium) var(--text-lg)/1.1 var(--font-sans)}
.logo-img{display:block; height:30px; width:auto}
footer .logo-img{height:32px}
.mobile-menu .logo-img{height:28px}
.logo:hover{color:var(--color-ink)}
@media (max-width: 420px){ .nav .logo small{display:none} }
.logo small{display:block; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); margin-top:0}
.mark-bg{fill:var(--color-brand)} .mark-fg{fill:var(--color-white)} .mark-line{stroke:var(--color-brand)}
.links{display:flex; gap:var(--space-9); align-items:center}
.links a{color:var(--color-ink); text-decoration:none; font-size:var(--text-sm); line-height:var(--lh-sm); font-weight:var(--weight-medium)}
.links a:hover{color:var(--color-brand)}
.menu-btn{background:none; border:0; padding:var(--space-4) 0; font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); cursor:pointer; display:inline-flex; align-items:center; gap:var(--space-3); transition:color var(--dur-fast) var(--ease)}
.menu-btn:hover, .menu-btn[aria-expanded="true"]{color:var(--color-brand)}
.menu-btn svg{transition:transform var(--dur-base) var(--ease)}
.menu-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.nav-cta{margin-left:auto; display:flex; gap:var(--space-5); align-items:center}
.icon-ink{stroke:var(--color-ink)} .icon-fill{fill:var(--color-ink)}
.cart-btn{border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); height:40px; padding:0 var(--space-7); display:inline-flex; align-items:center; gap:var(--space-4); font:var(--weight-medium) var(--text-sm)/1 var(--font-sans); color:var(--color-ink); cursor:pointer; transition:border-color var(--dur-fast) var(--ease)}
.cart-btn:hover{border-color:var(--color-ink)}
.cart-count{min-width:22px; height:22px; border-radius:var(--radius-pill); background:var(--color-brand); color:var(--color-white); font:var(--weight-regular) var(--text-xs)/1 var(--font-mono); display:grid; place-items:center; padding:0 var(--space-3)}
.cart-count[data-zero="true"]{background:var(--color-tint); color:var(--color-muted)}
.hamburger{display:none; border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); width:40px; height:40px; place-items:center; cursor:pointer; transition:border-color var(--dur-fast) var(--ease)}
.hamburger:hover{border-color:var(--color-ink)}
@media (max-width: 1020px){ .links{display:none} .nav-cta .hide-sm{display:none} .hamburger{display:grid} }
.mega{position:absolute; top:calc(100% + var(--space-3)); left:var(--gutter); z-index:60; background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); box-shadow:var(--shadow-sm); padding:var(--space-9); display:grid; gap:var(--space-10); animation:pop var(--dur-base) var(--ease-out)}
.mega[hidden]{display:none!important}
.mega.tests{grid-template-columns:repeat(3, minmax(190px, 1fr)); width:min(780px, calc(100vw - 48px))}
.mega.care{grid-template-columns:minmax(220px, 1fr); width:300px}
.mega .menu-h{margin:0 0 var(--space-4); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.mega ul{list-style:none; margin:0; padding:0; display:grid; gap:var(--space-1)}
.mega a, .mega button.item-link{display:block; width:calc(100% + 20px); text-align:left; background:none; border:0; padding:var(--space-4) var(--space-5); margin-inline:calc(var(--space-5) * -1); border-radius:var(--radius-lg); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); text-decoration:none; cursor:pointer; transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.mega a small, .mega button.item-link small{display:block; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted)}
.mega a:hover, .mega button.item-link:hover{background:var(--color-tint); color:var(--color-brand)}
.subnav{border-bottom:1px solid var(--color-line); background:var(--color-white)}
.subnav .wrap{display:flex; align-items:center; gap:var(--space-5); min-height:52px}
.scroller{display:flex; gap:var(--space-4); overflow-x:auto; scrollbar-width:none; padding-block:var(--space-4); flex:1; min-width:0}
.scroller::-webkit-scrollbar{display:none}
.pill{white-space:nowrap; border:1px solid var(--color-line); background:var(--color-white); color:var(--color-ink); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; text-decoration:none; transition:border-color var(--dur-fast) var(--ease)}
.pill:hover{border-color:var(--color-ink); color:var(--color-ink)}
.subnav .label{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); white-space:nowrap}
@media (max-width: 600px){ .subnav .label{display:none} }
.mobile-menu{position:fixed; inset:0; z-index:95; background:var(--color-white); overflow-y:auto; padding:var(--space-9) var(--gutter) var(--space-13)}
.mobile-menu[hidden]{display:none!important}
.mobile-menu .top-row{display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-5)}
.mobile-menu .menu-h{margin:var(--space-9) 0 var(--space-3); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.mobile-menu a, .mobile-menu button.item-link{display:block; width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--color-line); padding:var(--space-6) 0; font:var(--weight-regular) var(--text-lg)/var(--lh-lg) var(--font-sans); color:var(--color-ink); text-decoration:none; cursor:pointer}
.mobile-menu a:hover, .mobile-menu button.item-link:hover{color:var(--color-brand)}

/* Hero */
.hero{position:relative; overflow:hidden; color:var(--color-white); padding-block:var(--space-18) var(--space-17); isolation:isolate}
.hero-art{position:absolute; inset:0; z-index:-2; width:100%; height:100%}
.hero::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, var(--hero-veil-strong) 0%, var(--hero-veil-soft) 44%, var(--hero-veil-soft) 62%, var(--hero-veil-strong) 100%)}
.hero .wrap{display:grid; justify-items:center; text-align:center; gap:var(--space-9)}
.hero :focus-visible{outline-color:var(--color-white)}
.badge{display:inline-flex; align-items:center; gap:var(--space-4); background:var(--color-on-dark-fill); border:1px solid var(--color-on-dark-line); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono)}
.badge i{width:7px; height:7px; border-radius:var(--radius-pill); background:var(--color-accent); display:inline-block; animation:pulse var(--dur-pulse) var(--ease-pulse) infinite}
.hero h1{font-size:var(--text-2xl); line-height:var(--lh-2xl); max-width:18ch}
.hero .lead{font-size:var(--text-lg); line-height:var(--lh-lg); max-width:58ch; color:var(--color-on-dark)}
.chips{display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-4); max-width:780px}
.chip{border:1px solid var(--color-on-dark-line); background:var(--color-on-dark-fill); color:var(--color-white); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); transition:background-color var(--dur-fast) var(--ease)}
.chip:hover{background:var(--color-on-dark-fill-hover)}
.hero-ctas{display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-6)}
.trustline{display:flex; flex-wrap:wrap; justify-content:center; gap:var(--space-3) var(--space-9); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-on-dark)}

/* Concierge search */
.concierge{width:min(740px, 100%); background:var(--color-white); color:var(--color-ink); border-radius:var(--radius-xl); box-shadow:var(--shadow-md); text-align:left; position:relative; transition:box-shadow var(--dur-fast) var(--ease)}
.concierge:focus-within{box-shadow:var(--shadow-md), 0 0 0 2px var(--color-brand)}
.cg-head{display:flex; align-items:center; gap:var(--space-5); padding:var(--space-7) var(--space-9) 0}
.avatar{width:28px; height:28px; border-radius:7px; background:none; display:grid; place-items:center; flex:none; overflow:hidden}
.avatar img{width:28px; height:28px; display:block}
.cg-title{font-weight:var(--weight-medium); font-size:var(--text-sm); line-height:var(--lh-sm)}
.cg-mode{margin-left:auto; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); display:flex; gap:var(--space-3); align-items:center; white-space:nowrap}
.cg-mode i{width:6px; height:6px; border-radius:var(--radius-pill); background:var(--color-faint); display:inline-block}
.cg-mode.live{color:var(--color-brand)} .cg-mode.live i{background:var(--color-accent); animation:pulse var(--dur-pulse) var(--ease-pulse) infinite}
.log{display:flex; flex-direction:column; gap:var(--space-5); padding:var(--space-7) var(--space-9) 0; max-height:380px; overflow-y:auto}
.log[hidden]{display:none!important}
.msg{max-width:90%; padding:var(--space-5) var(--space-7); border-radius:var(--radius-xl); font-size:var(--text-sm); line-height:var(--lh-sm); white-space:pre-wrap; overflow-wrap:anywhere}
.msg.bot{background:var(--color-tint); border-top-left-radius:var(--radius-md)}
.msg.me{background:var(--color-brand); color:var(--color-white); align-self:flex-end; border-top-right-radius:var(--radius-md)}
.rec{background:var(--color-white); border:1px solid var(--color-line-strong); border-radius:var(--radius-lg); padding:var(--space-6); margin-top:var(--space-5); display:grid; gap:var(--space-4); white-space:normal}
.rec-row{display:flex; justify-content:space-between; gap:var(--space-5); font-size:var(--text-sm); line-height:var(--lh-sm)}
.rec-row span:last-child{font-family:var(--font-mono); font-variant-numeric:tabular-nums}
.rec .btn{justify-self:start}
.ask-row{display:flex; gap:var(--space-5); align-items:flex-end; padding:var(--space-6) var(--space-6) var(--space-6) var(--space-9)}
.ask-row textarea{flex:1; min-width:0; border:0; resize:none; font:var(--weight-regular) var(--text-lg)/var(--lh-lg) var(--font-sans); color:var(--color-ink); background:transparent; padding:var(--space-5) 0; min-height:48px; max-height:140px}
.ask-row textarea::placeholder{color:var(--color-faint)}
.ask-row textarea:focus{outline:none}
@media (max-width: 600px){ .ask-row textarea{font-size:var(--text-base); line-height:var(--lh-base); min-height:72px} }
.send{width:44px; height:44px; border-radius:var(--radius-pill); border:0; background:var(--color-brand); display:grid; place-items:center; cursor:pointer; flex:none; transition:background-color var(--dur-fast) var(--ease), transform var(--dur-base) var(--ease)}
.send:hover:not(:disabled){background:var(--color-brand-strong)}
.send:active:not(:disabled){transform:scale(.96)}
.send:disabled{opacity:.4; cursor:not-allowed}
.stop{border:1px solid var(--color-line-strong); background:var(--color-white); color:var(--color-ink); border-radius:var(--radius-pill); padding:var(--space-4) var(--space-7); font:var(--weight-medium) var(--text-sm)/1 var(--font-sans); cursor:pointer}
.stop:hover{border-color:var(--color-ink)}
.cg-foot{border-top:1px solid var(--color-line); padding:var(--space-4) var(--space-9); font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-faint); background:var(--color-tint); border-radius:0 0 var(--radius-xl) var(--radius-xl)}
.suggest{position:absolute; left:var(--space-6); right:var(--space-6); top:calc(100% - 44px); z-index:20; background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); box-shadow:var(--shadow-sm); padding:var(--space-4); max-height:340px; overflow-y:auto; animation:pop var(--dur-base) var(--ease-out)}
.suggest[hidden]{display:none!important}
.sg{display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--space-5); align-items:center; width:100%; text-align:left; background:none; border:0; border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); cursor:pointer; font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); transition:background-color var(--dur-fast) var(--ease)}
.sg:hover, .sg[aria-selected="true"]{background:var(--color-tint)}
.sg .t{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand); background:var(--color-brand-soft); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); min-width:48px; text-align:center}
.sg .t.test{background:var(--color-white); color:var(--color-ink); box-shadow:inset 0 0 0 1px var(--color-line-strong)}
.sg .t.marker{background:var(--color-tint); color:var(--color-muted)}
.sg b{font-weight:var(--weight-medium)}
.sg small{display:block; color:var(--color-muted); font-size:var(--text-xs); line-height:var(--lh-xs)}
.sg .p{font-family:var(--font-mono); font-variant-numeric:tabular-nums}
.sg-ask{border-top:1px solid var(--color-line); margin-top:var(--space-2); padding-top:var(--space-5)}

/* Marquee */
.marquee{display:flex; align-items:stretch; border-bottom:1px solid var(--color-line); background:var(--color-white)}
.mq-label{flex:none; display:flex; align-items:center; padding:0 var(--space-8) 0 var(--gutter); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); border-right:1px solid var(--color-line)}
.mq-viewport{flex:1; min-width:0; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 var(--space-13), #000 calc(100% - var(--space-13)), transparent); mask-image:linear-gradient(90deg, transparent, #000 var(--space-13), #000 calc(100% - var(--space-13)), transparent)}
.mq-group{display:flex}
.mq-label{text-decoration:none}
.mq-label:hover{color:var(--color-brand)}
.mq-track{display:flex; width:max-content; animation:marquee var(--dur-marquee) linear infinite}
.marquee:hover .mq-track, .marquee:focus-within .mq-track{animation-play-state:paused}
.mq-item{flex:none; display:inline-flex; align-items:center; gap:var(--space-8); background:none; border:0; padding:var(--space-6) 0 var(--space-6) var(--space-8); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-mono); color:var(--color-ink); cursor:pointer; white-space:nowrap; transition:color var(--dur-fast) var(--ease)}
.mq-item::after{content:""; width:4px; height:4px; border-radius:var(--radius-pill); background:var(--color-line-strong)}
.mq-item:hover{color:var(--color-brand)}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (max-width: 600px){ .mq-label{display:none} }

/* Panels */
.panels{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 1080px){ .panels{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width: 600px){ .panels{grid-template-columns:minmax(0,1fr)} }
.panel{position:relative; background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-10); display:flex; flex-direction:column; gap:var(--space-6); transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-base) var(--ease)}
.panel:hover{border-color:var(--color-line-strong); box-shadow:var(--shadow-sm)}
.panel.featured{border-color:var(--color-brand); box-shadow:inset 0 0 0 1px var(--color-brand)}
.panel.featured:hover{box-shadow:inset 0 0 0 1px var(--color-brand), var(--shadow-sm)}
.ribbon{position:absolute; top:calc(var(--space-6) * -1); left:var(--space-9); background:var(--color-accent); color:var(--color-ink); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); padding:var(--space-2) var(--space-5); border-radius:var(--radius-pill)}
.count-badge{align-self:flex-start; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand); background:var(--color-brand-soft); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3)}
.video-chip{align-self:flex-start; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-ink); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); box-shadow:inset 0 0 0 1px var(--color-line-strong)}
.panel p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.cats{display:flex; flex-wrap:wrap; gap:var(--space-3)}
.cat{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-muted); background:var(--color-tint); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3)}
.price{display:flex; align-items:baseline; gap:var(--space-3); margin-top:auto; padding-top:var(--space-3); flex-wrap:wrap}
.price b{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em}
.price span{color:var(--color-muted); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono)}
.panel-actions{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4)}
.panel-actions .btn{padding-inline:var(--space-5)}
.for{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-muted); background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5)}
.for b{color:var(--color-ink)}
.insured-bar{margin-top:var(--space-9); display:flex; flex-wrap:wrap; gap:var(--space-7) var(--space-9); align-items:center; justify-content:space-between; background:var(--color-tint); border-radius:var(--radius-xl); padding:var(--space-9) var(--space-10)}
.insured-bar p{color:var(--color-muted)}
.insured-bar b{color:var(--color-ink)}
.sub-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:end; gap:var(--space-5); margin:var(--space-17) 0 var(--space-9)}
.sub-head > div{display:grid; gap:var(--space-4)}
.sub-head h3{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em}
.concern-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 980px){ .concern-grid{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width: 600px){ .concern-grid{grid-template-columns:minmax(0,1fr)} }

/* Steps */
.steps{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 820px){ .steps{grid-template-columns:minmax(0,1fr)} }
.step{background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-10); display:grid; gap:var(--space-5); align-content:start}
.step .num{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand)}
.step p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}

/* Biomarker library */
.lib{display:grid; grid-template-columns:260px minmax(0,1fr); gap:var(--space-11); align-items:start}
.lib-nav{position:sticky; top:calc(var(--nav-h) + var(--space-8)); display:grid; gap:var(--space-1); border-left:1px solid var(--color-line); padding-left:var(--space-4)}
.lib-nav button{display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:var(--space-4); align-items:center; width:100%; text-align:left; background:none; border:0; border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-muted); cursor:pointer; transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.lib-nav button:hover{color:var(--color-ink); background:var(--color-tint)}
.lib-nav button[aria-current="true"]{color:var(--color-ink); background:var(--color-brand-soft); font-weight:var(--weight-medium)}
.lib-nav .ct{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.idx{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted)}
@media (max-width: 900px){
  .lib{grid-template-columns:minmax(0,1fr); gap:var(--space-8)}
  .lib-nav{position:static; display:flex; overflow-x:auto; scrollbar-width:none; border-left:0; padding:0 0 var(--space-2); gap:var(--space-4)}
  .lib-nav::-webkit-scrollbar{display:none}
  .lib .lib-nav button{flex:0 0 auto; width:auto; white-space:nowrap; grid-template-columns:auto auto auto; border:1px solid var(--color-line); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7)}
}
.lib-tools{display:flex; flex-wrap:wrap; gap:var(--space-5); align-items:center; margin-bottom:var(--space-10)}
.search{flex:1 1 260px; min-width:0; height:44px; border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); padding:0 var(--space-8); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}
.search::placeholder{color:var(--color-faint)}
.search:hover{border-color:var(--color-muted)}
.search:focus{outline:none; border-color:var(--color-brand); box-shadow:0 0 0 1px var(--color-brand)}
.legend{display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center}
.tag{display:inline-flex; align-items:center; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); white-space:nowrap}
.tag.panel-t{background:var(--color-brand-soft); color:var(--color-brand)}
.tag.addon-t{background:var(--color-white); color:var(--color-ink); box-shadow:inset 0 0 0 1px var(--color-line-strong)}
.tag.calc-t{background:var(--color-tint); color:var(--color-muted)}
.lib-sec{padding-bottom:var(--space-13); margin-bottom:var(--space-13); border-bottom:1px solid var(--color-line)}
.lib-sec:last-child{border-bottom:0; margin-bottom:0}
.lib-sec[hidden]{display:none!important}
.lib-sec header{display:grid; grid-template-columns:44px minmax(0,1fr); gap:var(--space-7); align-items:start; margin-bottom:var(--space-9)}
.idx-box{width:44px; height:44px; border:1px solid var(--color-line-strong); border-radius:var(--radius-lg); display:grid; place-items:center; font:var(--weight-regular) var(--text-sm)/1 var(--font-mono); color:var(--color-brand)}
.lib-sec header h3{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em}
.lib-sec header p{color:var(--color-muted); margin-top:var(--space-2)}
.lib-sec header .stats{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); margin-top:var(--space-4)}
.mk-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--space-6)}
@media (max-width: 640px){ .mk-grid{grid-template-columns:minmax(0,1fr)} }
.mk{background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-8); display:flex; flex-direction:column; gap:var(--space-4); text-align:left; cursor:pointer; font:inherit; color:inherit; transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-base) var(--ease), transform var(--dur-base) var(--ease)}
.mk:hover{border-color:var(--color-line-strong); box-shadow:var(--shadow-sm)}
.mk:active{transform:translateY(1px)}
.mk[hidden]{display:none!important}
.mk-top{display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--space-3) var(--space-5); align-items:flex-start}
.mk-top h4{margin:0; font-size:var(--text-base); line-height:var(--lh-base); font-weight:var(--weight-medium); flex:1 1 140px}
.mk-detail[hidden]{display:none!important}
.guide-link{font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-brand); text-decoration:underline; text-underline-offset:3px; align-self:flex-start}
.guides{display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-6); align-items:center; font-size:var(--text-sm); line-height:var(--lh-sm); margin-top:var(--space-4)}
.guides span{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.cities{display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center}
.cities > span{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); margin-right:var(--space-2)}
.h1-eyebrow{display:flex; width:max-content; max-width:100%; margin:0 auto var(--space-8); font-family:var(--font-mono); letter-spacing:0}
.review{display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-6); align-items:center; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); margin-top:var(--space-4)}
.mk p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.mk .more{align-self:flex-start; background:none; border:0; padding:0; text-align:left; cursor:pointer; color:var(--color-brand); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); margin-top:auto}
.mk .more:hover{color:var(--color-brand-strong); text-decoration:underline; text-underline-offset:3px}
.inchips{display:flex; flex-wrap:wrap; gap:var(--space-3); margin-top:var(--space-6); align-items:center}
.inchips span{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint); margin-right:var(--space-2)}
.inchip{border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); padding:var(--space-2) var(--space-6); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); cursor:pointer; transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}
.inchip:hover{border-color:var(--color-brand); background:var(--color-brand-soft)}
.alsoin{display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.lib-empty{padding:var(--space-11); text-align:center; color:var(--color-muted); background:var(--color-tint); border:1px dashed var(--color-line-strong); border-radius:var(--radius-xl)}

/* Shop */
.shop-tools{display:flex; flex-wrap:wrap; gap:var(--space-5); margin-bottom:var(--space-8)}
.cat-filter{display:flex; flex-wrap:wrap; gap:var(--space-3)}
.cat-filter button{border:1px solid var(--color-line); background:var(--color-white); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); cursor:pointer; transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}
.cat-filter button:hover{border-color:var(--color-ink)}
.cat-filter button[aria-pressed="true"]{background:var(--color-ink); border-color:var(--color-ink); color:var(--color-white)}
.catalog{background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); overflow:hidden; display:grid; grid-template-columns:repeat(2, minmax(0,1fr))}
@media (max-width: 800px){ .catalog{grid-template-columns:minmax(0,1fr)} }
.item{display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:var(--space-2) var(--space-7); align-items:center; padding:var(--space-7) var(--space-9); border-bottom:1px solid var(--color-line); transition:background-color var(--dur-fast) var(--ease)}
.item:hover{background:var(--color-tint)}
.item:nth-child(odd){border-right:1px solid var(--color-line)}
@media (max-width: 800px){ .item:nth-child(odd){border-right:0} }
.item .nm{font-weight:var(--weight-medium)}
.item .ds{grid-column:1 / 2; color:var(--color-muted); font-size:var(--text-xs); line-height:var(--lh-xs)}
.item .cg{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand); margin-right:var(--space-3)}
.item .pr{font-family:var(--font-mono); font-variant-numeric:tabular-nums; grid-row:1 / span 2; grid-column:2}
.add{grid-row:1 / span 2; grid-column:3; border:1px solid var(--color-brand); background:var(--color-white); color:var(--color-brand); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; min-width:84px; transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}
.add:hover:not(:disabled){background:var(--color-brand-soft)}
.add[aria-pressed="true"], .add[aria-pressed="true"]:hover{background:var(--color-brand); color:var(--color-white)}
.add:disabled{border-color:var(--color-line-strong); color:var(--color-faint); background:var(--color-white); cursor:not-allowed}
.empty{padding:var(--space-9); color:var(--color-muted)}

/* Locations */
.loc{display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:var(--space-9); align-items:start}
@media (max-width: 900px){ .loc{grid-template-columns:minmax(0,1fr)} }
.loc-card{background:var(--color-tint); border-radius:var(--radius-xl); padding:var(--space-10); display:grid; gap:var(--space-7); grid-template-columns:minmax(0,1fr)}
.zip-row{display:flex; gap:var(--space-4)}
.zip-row input{flex:1; min-width:0; width:100%; height:44px; border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); padding:0 var(--space-8); font:var(--weight-regular) var(--text-base)/var(--lh-base) var(--font-mono); color:var(--color-ink); transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}
.zip-row input::placeholder{color:var(--color-faint); font-family:var(--font-sans); font-size:var(--text-sm)}
.zip-row input:hover{border-color:var(--color-muted)}
.zip-row input:focus{outline:none; border-color:var(--color-brand); box-shadow:0 0 0 1px var(--color-brand)}
.zip-row input[aria-invalid="true"]{border-color:var(--color-danger); box-shadow:0 0 0 1px var(--color-danger)}
.loc-results{display:grid; gap:var(--space-5)}
.site{display:grid; grid-template-columns:40px minmax(0,1fr) auto; gap:var(--space-6); align-items:center; background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-7); transition:border-color var(--dur-fast) var(--ease)}
.site .ic{width:40px; height:40px; border-radius:var(--radius-lg); display:grid; place-items:center; background:var(--color-brand-soft); color:var(--color-brand)}
.site .ic.lab{background:var(--color-tint); color:var(--color-ink)}
.site b{display:block; font-weight:var(--weight-medium)}
.site small{display:block; color:var(--color-muted); font-size:var(--text-xs); line-height:var(--lh-xs)}
.site-links{display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-6); margin-top:var(--space-2); font-size:var(--text-xs); line-height:var(--lh-xs)}
.site-links a{color:var(--color-brand); font-weight:var(--weight-medium)}
.site .dist{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted); white-space:nowrap}
.site .pick{grid-column:2 / -1; justify-self:start}
.site.chosen{border-color:var(--color-brand); box-shadow:inset 0 0 0 1px var(--color-brand)}
.outlinks{display:flex; flex-wrap:wrap; gap:var(--space-4) var(--space-7); font-size:var(--text-sm); line-height:var(--lh-sm)}
.hint{font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-muted)}
.err{font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-danger)}

/* Video, scans, features, trust, tables, FAQ */
.video-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 900px){ .video-grid{grid-template-columns:minmax(0,1fr)} }
.vcard{background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-10); display:grid; gap:var(--space-4); align-content:start}
.vcard .big{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); color:var(--color-brand)}
.vcard p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.scan-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 900px){ .scan-grid{grid-template-columns:minmax(0,1fr)} }
.scan-col{background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl); padding:var(--space-10)}
.scan-col > p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm); margin:var(--space-2) 0 var(--space-6)}
.scan{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-2) var(--space-7); padding:var(--space-6) 0; border-top:1px solid var(--color-line)}
.scan .when{grid-column:1 / -1; color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.scan .how{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-brand); text-align:right}
.not-offered{margin-top:var(--space-8); font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-muted); background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-6) var(--space-7)}
.duo{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--space-8)}
@media (max-width: 900px){ .duo{grid-template-columns:minmax(0,1fr)} }
.feature{border-radius:var(--radius-xl); padding:var(--space-13); display:grid; gap:var(--space-7); align-content:start; background:var(--color-tint)}
@media (max-width: 600px){ .feature{padding:var(--space-10)} }
.feature.a{background:var(--color-brand-soft)}
.feature.b{background:var(--color-tint)}
.feature h2{font-size:var(--text-xl); line-height:var(--lh-xl)}
.feature .sub{font-size:var(--text-base); line-height:var(--lh-base)}
.feature ul{margin:0; padding:0; list-style:none; display:grid; gap:var(--space-5)}
.feature li{display:grid; grid-template-columns:18px minmax(0,1fr); gap:var(--space-5); color:var(--color-muted)}
.feature li b{color:var(--color-ink)}
.feature li svg{margin-top:var(--space-1)}
.feature .btn{justify-self:start}
.chk-bg{fill:var(--color-brand)} .chk-fg{stroke:var(--color-white)}
.trust{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:var(--space-10); border-top:1px solid var(--color-line); padding-top:var(--space-10)}
@media (max-width: 900px){ .trust{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width: 520px){ .trust{grid-template-columns:minmax(0,1fr)} }
.trust div{display:grid; gap:var(--space-4); align-content:start}
.trust b{font:var(--weight-regular) var(--text-2xl)/var(--lh-2xl) var(--font-display); color:var(--color-brand)}
.trust span{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.tbl-wrap{overflow-x:auto; background:var(--color-white); border:1px solid var(--color-line); border-radius:var(--radius-xl)}
table{width:100%; border-collapse:collapse; font-size:var(--text-sm); line-height:var(--lh-sm)}
th, td{padding:var(--space-7) var(--space-9); text-align:left; border-bottom:1px solid var(--color-line); vertical-align:top}
tr:last-child td{border-bottom:0}
thead th{background:var(--color-white); font-weight:var(--weight-medium)}
tbody th{font-weight:var(--weight-regular); background:transparent}
tr:last-child th{border-bottom:0}
thead th small{display:block; font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted); margin-top:var(--space-2)}
td:first-child{font-weight:var(--weight-medium); color:var(--color-ink); min-width:170px}
td{color:var(--color-muted)}
.col-hi{background:var(--color-brand-soft)}
thead th.col-hi{color:var(--color-brand)}
.yes{color:var(--color-brand); font-weight:var(--weight-medium)}
.plans table{min-width:720px}
.cmp table{min-width:760px}
.faq{display:grid; max-width:860px; margin-inline:auto; border-top:1px solid var(--color-line)}
details{border-bottom:1px solid var(--color-line)}
summary{cursor:pointer; list-style:none; padding:var(--space-9) 0; font-size:var(--text-lg); line-height:var(--lh-lg); font-weight:var(--weight-regular); display:flex; justify-content:space-between; gap:var(--space-8); transition:color var(--dur-fast) var(--ease)}
summary:hover{color:var(--color-brand)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+"; font:var(--weight-regular) var(--text-lg)/var(--lh-lg) var(--font-mono); color:var(--color-brand); flex:none}
details[open] summary::after{content:"–"}
details p{color:var(--color-muted); padding-bottom:var(--space-9); max-width:70ch}

/* Footer */
footer{background:var(--color-ink); color:var(--color-white); padding-block:var(--space-17) var(--space-13)}
footer :focus-visible{outline-color:var(--color-white)}
.foot-grid{display:grid; grid-template-columns:1.4fr repeat(3, minmax(0,1fr)) 1.4fr; gap:var(--space-11)}
@media (max-width: 980px){ .foot-grid{grid-template-columns:repeat(2, minmax(0,1fr))} }
@media (max-width: 520px){ .foot-grid{grid-template-columns:minmax(0,1fr)} }
footer .logo, footer .logo:hover{color:var(--color-white)}
footer .foot-h{margin:0 0 var(--space-6); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-on-dark-muted)}
footer ul{list-style:none; margin:0; padding:0; display:grid; gap:var(--space-4)}
footer a{color:var(--color-white); text-decoration:none; font-size:var(--text-sm); line-height:var(--lh-sm)}
footer a:hover{color:var(--color-white); text-decoration:underline}
footer p{color:var(--color-on-dark-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.news{display:flex; gap:var(--space-4); margin-top:var(--space-5)}
.news input{flex:1; min-width:0; height:36px; border-radius:var(--radius-pill); border:1px solid var(--color-on-dark-line); background:transparent; color:var(--color-white); padding:0 var(--space-7); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans)}
.news input::placeholder{color:var(--color-on-dark-muted)}
.news input:focus{outline:none; border-color:var(--color-white)}
.legal{margin-top:var(--space-13); padding-top:var(--space-9); border-top:1px solid var(--color-on-dark-rule); color:var(--color-on-dark-muted); font-size:var(--text-xs); line-height:var(--lh-xs); display:grid; gap:var(--space-4)}
.legal .src{display:flex; flex-wrap:wrap; gap:var(--space-3) var(--space-8)}
.legal .src a{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-on-dark-muted)}
.status{font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-on-dark-muted); margin-top:var(--space-4)}

/* Drawers, modals, toast */
.scrim{position:fixed; inset:0; z-index:80; background:var(--color-scrim); animation:fade var(--dur-base) var(--ease)}
.scrim[hidden]{display:none!important}
.drawer{position:fixed; top:0; right:0; bottom:0; z-index:85; width:min(480px, 100%); background:var(--color-white); box-shadow:var(--shadow-md); display:flex; flex-direction:column; padding-top:env(safe-area-inset-top, 0px); padding-bottom:env(safe-area-inset-bottom, 0px); animation:slidein var(--dur-panel) var(--ease-out)}
.drawer[hidden]{display:none!important}
.drawer-head{display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); padding:var(--space-8) var(--space-10); border-bottom:1px solid var(--color-line)}
.drawer-head > div{display:grid; gap:var(--space-2)}
.drawer-head h3{font-size:var(--text-lg); line-height:var(--lh-lg); font-weight:var(--weight-medium)}
#marker .drawer-head h3{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em}
.drawer-body{flex:1; overflow-y:auto; padding:var(--space-9) var(--space-10); display:grid; gap:var(--space-9); align-content:start}
.drawer-foot{border-top:1px solid var(--color-line); padding:var(--space-8) var(--space-10); display:grid; gap:var(--space-5); background:var(--color-white)}
.dsec{display:grid; gap:var(--space-3)}
.dsec h4{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.dsec p{color:var(--color-ink)}
.takeaway{font-size:var(--text-lg); line-height:var(--lh-lg); background:var(--color-brand-soft); border-radius:var(--radius-lg); padding:var(--space-7) var(--space-8); color:var(--color-ink)}
.payer{display:grid; gap:var(--space-4)}
.seg{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4)}
.seg button{border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-lg); padding:var(--space-5) var(--space-6); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-sans); color:var(--color-ink); cursor:pointer; text-align:left; transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}
.seg button:hover{border-color:var(--color-ink)}
.seg button[aria-pressed="true"]{border-color:var(--color-brand); background:var(--color-brand-soft); color:var(--color-brand); box-shadow:inset 0 0 0 1px var(--color-brand)}
.lines{display:grid; gap:var(--space-4)}
.line{display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:var(--space-5); align-items:center; font-size:var(--text-sm); line-height:var(--lh-sm)}
.line .amt{font-family:var(--font-mono); font-variant-numeric:tabular-nums}
.line .rm{border:0; background:none; color:var(--color-faint); cursor:pointer; font-size:var(--text-lg); line-height:1; padding:var(--space-2); border-radius:var(--radius-md); transition:color var(--dur-fast) var(--ease)}
.line .rm:hover{color:var(--color-ink)}
.toggle{display:flex; gap:var(--space-5); align-items:flex-start; background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-6); font-size:var(--text-sm); line-height:var(--lh-sm); cursor:pointer}
.toggle input{margin-top:var(--space-1); accent-color:var(--color-brand)}
.tip{font-size:var(--text-sm); line-height:var(--lh-sm); background:var(--color-brand-soft); color:var(--color-ink); border-radius:var(--radius-lg); padding:var(--space-5) var(--space-6)}
.warnbox{font-size:var(--text-sm); line-height:var(--lh-sm); background:var(--color-tint); color:var(--color-ink); border-left:2px solid var(--color-brand); border-radius:var(--radius-md); padding:var(--space-6)}
.total{display:flex; justify-content:space-between; align-items:baseline; font-size:var(--text-lg); line-height:var(--lh-lg); font-weight:var(--weight-medium)}
/* Checkout: patient details */
.stepno{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.stepno:focus{outline:none}
.ptform{display:grid; gap:var(--space-8)}
.frow{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:var(--space-6)}
.frow3{grid-template-columns:minmax(0,1fr) 84px 104px}
@media (max-width:440px){ .frow3{grid-template-columns:repeat(2, minmax(0,1fr))} .frow3 .fld:first-child{grid-column:1 / -1} }
.fld{display:grid; gap:var(--space-2); min-width:0; align-content:start}
.fld label{font-size:var(--text-sm); line-height:var(--lh-sm); font-weight:var(--weight-medium); color:var(--color-ink)}
.optl{font-weight:var(--weight-regular); color:var(--color-faint)}
.fld input, .fld select{width:100%; min-width:0; height:44px; border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-pill); padding:0 var(--space-7); font:var(--weight-regular) var(--text-base)/var(--lh-base) var(--font-sans); color:var(--color-ink); transition:border-color var(--dur-fast) var(--ease)}
.fld input:hover, .fld select:hover{border-color:var(--color-muted)}
.fld input:focus, .fld select:focus{outline:none; border-color:var(--color-brand); box-shadow:0 0 0 1px var(--color-brand)}
.fld [aria-invalid="true"]{border-color:var(--color-danger); box-shadow:0 0 0 1px var(--color-danger)}
.fh{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-faint)}
.fe{font-size:var(--text-xs); line-height:var(--lh-xs); color:var(--color-danger)}
.fe[hidden]{display:none}
.consent{display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--space-2) var(--space-5); align-items:start; background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-6); font-size:var(--text-sm); line-height:var(--lh-sm); cursor:pointer}
.consent input{margin:var(--space-1) 0 0; width:18px; height:18px; accent-color:var(--color-brand)}
.consent input[aria-invalid="true"]{outline:2px solid var(--color-danger); outline-offset:1px}
.consent .fe{grid-column:2}
.ptrev{display:grid; grid-template-columns:auto minmax(0,1fr); gap:var(--space-3) var(--space-7); font-size:var(--text-sm); line-height:var(--lh-sm); margin:0}
.ptrev dt{color:var(--color-muted)}
.ptrev dd{margin:0; color:var(--color-ink); overflow-wrap:anywhere}
.backlink{justify-self:center}
.overlay{position:fixed; inset:0; z-index:90; background:var(--color-scrim); display:grid; place-items:center; padding:var(--space-8); animation:fade var(--dur-base) var(--ease)}
.overlay[hidden]{display:none!important}
.modal{width:min(620px, 100%); max-height:calc(100% - 32px); overflow-y:auto; background:var(--color-white); border-radius:var(--radius-xl); box-shadow:var(--shadow-md); padding:var(--space-10); animation:pop var(--dur-base) var(--ease-out)}
.modal-top{display:flex; justify-content:space-between; align-items:center; gap:var(--space-6); margin-bottom:var(--space-8)}
.progress{height:4px; background:var(--color-tint); border-radius:var(--radius-pill); overflow:hidden; margin-bottom:var(--space-9)}
.progress i{display:block; height:100%; background:var(--color-brand); width:0; transition:width var(--dur-panel) var(--ease)}
.q h3{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em; margin-bottom:var(--space-3)}
.q p{color:var(--color-muted); margin-bottom:var(--space-8)}
.opts{display:grid; gap:var(--space-5)}
.opt{text-align:left; border:1px solid var(--color-line-strong); background:var(--color-white); border-radius:var(--radius-xl); padding:var(--space-7) var(--space-8); font:var(--weight-medium) var(--text-base)/var(--lh-base) var(--font-sans); color:var(--color-ink); cursor:pointer; display:grid; gap:var(--space-1); transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease)}
.opt small{font-weight:var(--weight-regular); color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.opt:hover{border-color:var(--color-brand); background:var(--color-tint)}
.qnav{display:flex; justify-content:space-between; align-items:center; margin-top:var(--space-9)}
.back{border:0; background:none; color:var(--color-muted); font:var(--weight-medium) var(--text-sm)/1 var(--font-sans); cursor:pointer; padding:var(--space-4) 0; transition:color var(--dur-fast) var(--ease)}
.back:hover{color:var(--color-ink)}
.res{display:grid; gap:var(--space-7)}
.res .kicker{color:var(--color-brand)}
.res h3{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display); letter-spacing:-.01em}
.res-price{display:flex; flex-wrap:wrap; align-items:baseline; gap:var(--space-4) var(--space-6); background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-7) var(--space-8)}
.res-price b{font:var(--weight-regular) var(--text-xl)/var(--lh-xl) var(--font-display)}
.res-price span{color:var(--color-muted); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono)}
.res ul{margin:0; padding-left:var(--space-9); display:grid; gap:var(--space-3); color:var(--color-muted)}
.res .fineb{font-size:var(--text-sm); line-height:var(--lh-sm); color:var(--color-muted); background:var(--color-tint); border-radius:var(--radius-lg); padding:var(--space-5) var(--space-6)}
.res-actions{display:flex; flex-wrap:wrap; gap:var(--space-5); align-items:center}
.groups{display:grid; gap:var(--space-5); margin-top:var(--space-7)}
.group{border:1px solid var(--color-line); border-radius:var(--radius-lg); padding:var(--space-6) var(--space-7)}
.group b{display:flex; justify-content:space-between; gap:var(--space-5); font-weight:var(--weight-medium)}
.group b span{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-faint)}
.group p{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm); margin-top:var(--space-2)}
.toast{width:max-content; max-width:calc(100% - 32px); position:fixed; left:50%; bottom:calc(env(safe-area-inset-bottom, 0px) + var(--space-9)); transform:translateX(-50%); z-index:99; background:var(--color-ink); color:var(--color-white); border-radius:var(--radius-pill); padding:var(--space-3) var(--space-3) var(--space-3) var(--space-9); display:flex; gap:var(--space-7); align-items:center; font-size:var(--text-sm); line-height:var(--lh-sm); box-shadow:var(--shadow-md); animation:toastin var(--dur-base) var(--ease-out)}
.toast[hidden]{display:none!important}
.toast button{background:var(--color-white); color:var(--color-ink); border:0; border-radius:var(--radius-pill); padding:var(--space-3) var(--space-7); font:var(--weight-medium) var(--text-sm)/var(--lh-sm) var(--font-sans); cursor:pointer; white-space:nowrap; transition:background-color var(--dur-fast) var(--ease)}
.toast button:hover{background:var(--color-brand-soft)}

/* Motion */
@keyframes pulse{50%{opacity:.4}}
@keyframes fade{from{opacity:0}}
@keyframes pop{from{opacity:0; transform:translateY(6px)}}
@keyframes slidein{from{opacity:0; transform:translateX(24px)}}
@keyframes toastin{from{opacity:0; transform:translate(-50%, 8px)}}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *, *::before, *::after{transition:none!important; animation:none!important}
  .mq-viewport{overflow-x:auto; -webkit-mask-image:none; mask-image:none}
}

/* multi-page additions */
.crumbs{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted); padding:var(--space-5) 0 0}
.crumbs a{color:var(--color-muted); text-decoration:none}
.crumbs a:hover{color:var(--color-brand)}
.crumbs span[aria-current]{color:var(--color-ink)}
.page-hero{padding-top:var(--space-9)}
.page-hero h1{font:var(--weight-regular) var(--text-3xl)/1.1 var(--font-display); letter-spacing:-.02em; margin:var(--space-3) 0 var(--space-5); color:var(--color-ink)}
.page-hero .lead{font-size:var(--text-lg); line-height:var(--lh-lg); color:var(--color-muted); max-width:62ch}
.page-hero .kicker{display:inline-block}
.lib-nav a{display:grid; grid-template-columns:24px minmax(0,1fr) auto; gap:var(--space-4); align-items:center; width:100%; text-align:left; border-radius:var(--radius-lg); padding:var(--space-4) var(--space-5); font:var(--weight-regular) var(--text-sm)/var(--lh-sm) var(--font-body); color:var(--color-muted); text-decoration:none}
.lib-nav a:hover{color:var(--color-ink); background:var(--color-tint)}
a.item-link{text-decoration:none; color:inherit}
.lib-sec header h2{font:var(--weight-regular) var(--text-xl)/1.2 var(--font-display); margin:0}
.mk-top h3{margin:0; font-size:var(--text-base); line-height:var(--lh-base); font-weight:var(--weight-medium); flex:1 1 140px; font-family:inherit}
.catchips{display:flex; flex-wrap:wrap; gap:var(--space-3)}
.catchips .inchip{text-decoration:none}
.catchips .ct{margin-left:var(--space-3); font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted)}
.mklist{list-style:none; margin:0; padding:0; display:grid; gap:var(--space-2)}
.mklist li{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto; gap:var(--space-5); padding:var(--space-3) 0; border-bottom:1px solid var(--color-line); font-size:var(--text-sm); line-height:var(--lh-sm)}
.mklist li em{font:var(--weight-regular) var(--text-xs)/var(--lh-xs) var(--font-mono); color:var(--color-muted)}
.mklist a{color:var(--color-brand)}
.alsogrid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:var(--space-5)}
.also{display:grid; gap:var(--space-2); padding:var(--space-7); border:1px solid var(--color-line); border-radius:var(--radius-xl); background:var(--color-white); text-decoration:none; color:var(--color-ink)}
.also:hover{border-color:var(--color-brand)}
.also b{font:var(--weight-medium) var(--text-lg)/var(--lh-lg) var(--font-display)}
.also span:last-child{color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)}
.sitelist{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:var(--space-4)}
.sitelist li{display:grid; gap:2px; padding:var(--space-5); border:1px solid var(--color-line); border-radius:var(--radius-lg); background:var(--color-white); font-size:var(--text-sm); line-height:var(--lh-sm)}
.sitelist li span{color:var(--color-muted)}
.sitelist a{color:var(--color-brand)}
.citysec{margin-top:var(--space-8)}
.citysec h3{margin:0 0 var(--space-4)}
.jump{font-size:var(--text-sm); line-height:1.9; color:var(--color-muted)}
.jump a{color:var(--color-brand); white-space:nowrap}
.faqs{max-width:820px; margin:0 auto}
.center{text-align:center}
@media (max-width:720px){ .mklist li{grid-template-columns:1fr} .page-hero h1{font-size:var(--text-2xl)} }

.phone-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}.phone-actions .btn{flex:1 1 auto;text-align:center}

/* defined Nov 7, 2026: these two were used but never set, so panel-page H1s fell back to body size */
:root{--text-3xl:56px; --font-body:var(--font-sans)}

/* condition links, Nov 7 2026 */
.finds .group{display:flex; flex-direction:column; gap:var(--space-3)}.finds .find-link{margin-top:auto; font-weight:var(--weight-medium); color:var(--color-brand); text-decoration:none}.finds .find-link:hover{text-decoration:underline}@media (min-width:760px){.finds{grid-template-columns:repeat(2,minmax(0,1fr))}}.finds-wrap{margin:0 0 var(--space-12)} .finds-not{margin-top:var(--space-5)}.sub-head-links{display:flex; flex-wrap:wrap; gap:var(--space-3)}.cond-line{margin:var(--space-3) 0 0; color:var(--color-muted); font-size:var(--text-sm); line-height:var(--lh-sm)} .cond-line a{color:var(--color-brand)}.mk-cond a{color:var(--color-brand)}

/* footer contact line (Nov 7 2026) */
.foot-contact a{overflow-wrap:anywhere}
