/* Marketing site layout — restrained neumorphism on top of neu.css + medtap.css */

body{ min-height:100dvh; }

.m-wrap{
  max-width:1080px; margin:0 auto;
  padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));
}
.m-wrap-wide{
  max-width:1180px; margin:0 auto;
  padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));
}

@media (max-width:640px){
  .m-wrap, .m-wrap-wide{
    padding-inline:max(18px, env(safe-area-inset-left)) max(18px, env(safe-area-inset-right));
  }
}

.eyebrow{
  font-size:11px; font-weight:700; letter-spacing:.11em;
  text-transform:uppercase; color:var(--muted);
}

/* ── Marketing header ─────────────────────────────────────────────────── */

.m-topbar{
  position:sticky; top:0; z-index:40;
  display:flex; align-items:center; gap:10px;
  min-height:var(--topbar-h, 66px);
  padding-inline:max(20px, env(safe-area-inset-left)) max(20px, env(safe-area-inset-right));
  background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.m-topbar .brand{ text-decoration:none; color:inherit; min-width:0; }
.m-topbar .brand span:last-child{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

.m-nav{
  display:flex; align-items:center; gap:4px;
  margin-left:8px;
}

.m-nav a{
  padding:8px 12px; border-radius:999px;
  font-size:13.5px; font-weight:600; color:var(--text-2);
  text-decoration:none; -webkit-tap-highlight-color:transparent;
}
.m-nav a:hover{ color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, transparent); }
.m-nav a.is-on{ color:var(--accent); }

.m-topbar-actions{
  display:flex; align-items:center; gap:6px; margin-left:auto;
}

.m-menu-btn{ display:none; flex-shrink:0; }

.m-mobile-nav{
  display:none;
  position:fixed; inset:var(--topbar-h, 66px) 0 auto 0;
  z-index:39;
  padding:16px max(18px, env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
  background:color-mix(in srgb, var(--bg) 96%, transparent);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  box-shadow:0 12px 32px color-mix(in srgb, var(--sh-dark) 18%, transparent);
}

.m-mobile-nav.is-open{ display:block; }

.m-mobile-nav nav{
  display:flex; flex-direction:column; align-items:stretch; gap:4px;
}

.m-mobile-nav nav a{
  display:block;
  padding:12px 14px;
  border-radius:var(--r-sm);
  font-size:15px; font-weight:600;
  color:var(--text);
  text-decoration:none;
}
.m-mobile-nav nav a:hover,
.m-mobile-nav nav a.is-on{
  color:var(--accent);
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
}

.m-mobile-nav-actions{
  display:flex; flex-direction:column; gap:10px;
  margin-top:16px; padding-top:16px;
  border-top:1px solid var(--line);
}

body.m-nav-open{ overflow:hidden; }

@media (max-width:820px){
  .m-topbar{
    padding-inline:max(16px, env(safe-area-inset-left)) max(16px, env(safe-area-inset-right));
  }
  .m-nav{ display:none; }
  .m-topbar-actions .btn{ display:none; }
  .m-menu-btn{ display:inline-grid; }
}

/* ── Hero ─────────────────────────────────────────────────────────────── */

.m-hero{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:48px; align-items:center;
  padding-block:56px 48px;
}
@media (max-width:960px){
  .m-hero{ grid-template-columns:1fr; gap:36px; padding-block:36px 32px; }
}

.m-hero h1{
  font-size:clamp(32px,5vw,50px); font-weight:800;
  letter-spacing:-.035em; line-height:1.05;
  text-wrap:balance; margin:14px 0 0;
}
.m-hero h1 em{ font-style:normal; color:var(--accent); }
.m-hero .lede{
  margin-top:16px; max-width:52ch;
  font-size:16px; line-height:1.62; color:var(--text-2);
}
.m-hero .lede + .lede{ margin-top:12px; }

.m-hero-actions,
.hero-actions{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:14px 18px;
  margin-top:32px;
}
.m-hero-actions .btn,
.hero-actions .btn{ flex:0 0 auto; }

.m-hero-visual{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
  gap:22px;
  align-items:stretch;
}

/* Patient demo (existing animation) */
.demo{ padding:24px; border-radius:var(--r-xl); min-width:0; }
.demo-head{ display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.demo-head .dot{ flex:0 0 auto; }
.demo-head b{ font-size:13px; font-weight:700; letter-spacing:-.01em; }
.demo-rail{ height:4px; border-radius:99px; background:var(--sh-dark); overflow:hidden; margin-bottom:18px; }
.demo-rail i{
  display:block; height:100%; width:0; border-radius:99px;
  background:var(--accent-fill);
  animation:demo-rail 9s var(--ease,cubic-bezier(.4,0,.2,1)) infinite;
}
.demo-fields{ display:flex; flex-direction:column; gap:14px; }
.demo-field{ opacity:.35; animation:demo-field 9s ease infinite both; }
.demo-field:nth-child(1){ animation-delay:.3s; }
.demo-field:nth-child(2){ animation-delay:1.5s; }
.demo-field:nth-child(3){ animation-delay:2.7s; }
.demo-label{ font-size:11px; font-weight:600; color:var(--muted); margin-bottom:6px; }
.demo-value{
  border-radius:var(--r-sm); padding:11px 13px;
  font-size:12.5px; color:var(--text); font-variant-numeric:tabular-nums;
}
.demo-tick{
  display:inline-flex; align-items:center; gap:4px;
  margin-top:7px; font-size:10.5px; font-weight:600; color:var(--green);
}
.demo-tick svg{ width:11px; height:11px; }
.demo-foot{
  display:flex; align-items:flex-start; gap:8px;
  margin-top:18px; padding-top:16px; border-top:1px solid var(--line);
  font-size:11.5px; color:var(--muted); line-height:1.5;
}
.demo-foot svg{ width:13px; height:13px; flex:0 0 auto; margin-top:2px; }

@keyframes demo-rail{
  0%{ width:0 } 8%{ width:6% } 22%{ width:30% } 42%{ width:55% }
  62%{ width:80% } 78%,100%{ width:100% }
}
@keyframes demo-field{
  0%,4%{ opacity:.3; transform:translateY(5px) }
  12%,88%{ opacity:1; transform:none }
  100%{ opacity:1; transform:none }
}
@media (prefers-reduced-motion:reduce){
  .demo-field{ animation:none; opacity:1; }
  .demo-rail i{ animation:none; width:100%; }
}

/* Today queue mock */
.m-queue{ padding:24px; border-radius:var(--r-xl); min-width:0; }
.m-queue-head{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; margin-bottom:16px;
}
.m-queue-head b{ font-size:13px; font-weight:700; }
.m-queue-live{
  font-size:10.5px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--green);
}
.m-queue-cards{ display:flex; flex-direction:column; gap:12px; }
.m-qcard{
  display:grid; grid-template-columns:auto 1fr auto;
  align-items:center; gap:12px;
  padding:12px 14px; border-radius:var(--r);
  background:var(--surface);
  box-shadow:var(--d1), var(--b1);
}
.m-qcard .avatar{
  width:34px; height:34px; border-radius:11px;
  display:grid; place-items:center;
  font-size:11px; font-weight:700;
  background:color-mix(in srgb, var(--accent) 14%, var(--surface));
  color:var(--accent);
}
.m-qcard .name{ font-size:12.5px; font-weight:700; letter-spacing:-.01em; line-height:1.3; }
.m-qcard .meta{ font-size:11px; color:var(--muted); margin-top:4px; line-height:1.35; }
.m-qcard .pill{ font-size:10.5px; padding:5px 9px; white-space:nowrap; }

/* ── Bands ────────────────────────────────────────────────────────────── */

.m-band{ padding:52px 0; border-top:1px solid var(--line); }
.m-band h2{
  font-size:clamp(22px,3vw,30px); font-weight:800;
  letter-spacing:-.03em; margin-top:10px; text-wrap:balance;
}
.m-band .lede{
  margin-top:12px; max-width:58ch;
  font-size:15px; line-height:1.62; color:var(--text-2);
}

/* Outcome tiles — flat with inset icon wells */
.m-outcomes{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px; margin-top:28px;
}
@media (max-width:900px){ .m-outcomes{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .m-outcomes{ grid-template-columns:1fr; } }

.m-outcome{ padding:20px; border-radius:var(--r-lg); }
.m-outcome .well{
  width:38px; height:38px; border-radius:12px;
  display:grid; place-items:center; margin-bottom:12px;
}
.m-outcome .well svg{ width:17px; height:17px; color:var(--accent); }
.m-outcome h3{ font-size:15px; font-weight:700; letter-spacing:-.015em; }
.m-outcome p{ margin-top:6px; font-size:13px; line-height:1.55; color:var(--text-2); }

/* Platform modules — raised neu cards */
.m-modules{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:14px; margin-top:28px;
}
.m-module{
  padding:20px; border-radius:var(--r-lg);
  display:flex; flex-direction:column; gap:10px; min-height:100%;
}
.m-module .well{
  width:40px; height:40px; border-radius:13px;
  display:grid; place-items:center;
  background:color-mix(in srgb, var(--accent) 10%, var(--surface));
}
.m-module .well svg{ width:18px; height:18px; color:var(--accent); }
.m-module h3{ font-size:15px; font-weight:700; letter-spacing:-.015em; }
.m-module p{ font-size:13px; line-height:1.55; color:var(--text-2); flex:1; }
.m-module a{
  font-size:13px; font-weight:600; color:var(--accent); text-decoration:none;
}
.m-module a:hover{ text-decoration:underline; }

/* Steps */
.m-steps{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px; margin-top:28px;
}
@media (max-width:820px){ .m-steps{ grid-template-columns:1fr; } }

.m-step{ padding:20px; border-radius:var(--r-lg); }
.m-step .n{
  display:flex; align-items:center; justify-content:center;
  width:30px; height:30px; border-radius:10px; margin-bottom:12px;
  font-size:12.5px; font-weight:700; color:var(--accent);
}
.m-step h3{ font-size:15px; font-weight:700; }
.m-step p{ margin-top:8px; font-size:13.5px; line-height:1.58; color:var(--text-2); }

/* Trust */
.m-trust-grid{
  display:grid; grid-template-columns:1fr minmax(0,.85fr);
  gap:24px; align-items:start; margin-top:28px;
}
@media (max-width:820px){ .m-trust-grid{ grid-template-columns:1fr; } }

.m-trust-list{
  display:flex; flex-direction:column; gap:12px;
  font-size:14px; line-height:1.55; color:var(--text-2);
}
.m-trust-list li{ display:flex; gap:10px; align-items:flex-start; }
.m-trust-list svg{ width:16px; height:16px; flex:0 0 auto; margin-top:3px; color:var(--green); }

.m-trust-callout{ padding:22px; border-radius:var(--r-lg); }
.m-trust-callout h3{ font-size:16px; font-weight:700; margin-bottom:8px; }
.m-trust-callout p{ font-size:13.5px; line-height:1.58; color:var(--text-2); margin-bottom:14px; }

/* Gate */
.m-gate{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  gap:20px; align-items:start;
  padding-block:8px 56px;
}
@media (max-width:900px){ .m-gate{ grid-template-columns:1fr; } }

.signin{ padding:24px; border-radius:var(--r-xl); display:flex; flex-direction:column; gap:16px; }
.signin h2{ font-size:18px; font-weight:700; letter-spacing:-.02em; }

.who{ display:flex; align-items:center; gap:12px; }
.who .avatar{
  width:40px; height:40px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background:var(--accent-fill); color:#fff;
  font-weight:700; font-size:15px; text-transform:uppercase;
}
.who .email{ font-size:14px; font-weight:600; overflow-wrap:anywhere; }

.doors{ display:flex; flex-direction:column; gap:14px; }

.door{
  display:flex; flex-direction:column; gap:12px;
  padding:20px; border-radius:var(--r-xl);
  text-align:left; width:100%; color:inherit; text-decoration:none;
  -webkit-tap-highlight-color:transparent;
}
.door-practice{ order:-1; }
.door-secondary{ opacity:.92; }
.door-top{ display:flex; align-items:center; gap:14px; }
.door .thumb-icon{ width:44px; height:44px; border-radius:14px; flex:0 0 auto; }
.door .thumb-icon svg{ width:20px; height:20px; }
.door h3{ font-size:16px; font-weight:700; letter-spacing:-.02em; }
.door .go{ margin-left:auto; color:var(--muted); flex:0 0 auto; display:flex; }
.door .go svg{ width:18px; height:18px; }
.door:hover .go{ color:var(--accent); }
.door p{ font-size:13px; line-height:1.55; color:var(--text-2); margin:0; }
.door .meta{ display:flex; flex-wrap:wrap; gap:7px; }

.m-patient-link{
  margin-top:12px; font-size:13px; color:var(--muted); text-align:center;
}
.m-patient-link a{ color:var(--accent); font-weight:600; }

/* Sub-page hero */
.m-page-hero{ padding-block:48px 32px; }
.m-page-hero h1{
  font-size:clamp(28px,4.5vw,42px); font-weight:800;
  letter-spacing:-.03em; line-height:1.08; text-wrap:balance;
  margin-top:12px;
}
.m-page-hero .lede{
  margin-top:14px; max-width:58ch;
  font-size:16px; line-height:1.62; color:var(--text-2);
}
.m-page-hero .lede + .lede{ margin-top:12px; }
.m-page-hero .hero-actions,
.m-page-hero .m-hero-actions{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:14px 18px;
  margin-top:28px;
}

.m-feature-row{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:32px; align-items:center; padding-block:40px;
  border-top:1px solid var(--line);
}
@media (max-width:820px){
  .m-feature-row{ grid-template-columns:1fr; gap:20px; }
  .m-feature-row.flip .m-feature-copy{ order:2; }
}
.m-feature-copy h2{ font-size:22px; font-weight:800; letter-spacing:-.02em; }
.m-feature-copy p{ margin-top:10px; font-size:14px; line-height:1.6; color:var(--text-2); }
.m-feature-copy ul{ margin-top:12px; padding-left:18px; color:var(--text-2); font-size:14px; line-height:1.6; }
.m-feature-copy li{ margin-bottom:6px; }

.m-cta-band{
  padding:40px 0 56px; text-align:center;
  border-top:1px solid var(--line);
}
.m-cta-band h2{ font-size:clamp(22px,3vw,28px); font-weight:800; letter-spacing:-.02em; }
.m-cta-band p{ margin-top:10px; color:var(--text-2); font-size:15px; }
.m-cta-band .btn{ margin-top:20px; }

/* Footer */
.m-footer{
  border-top:1px solid var(--line);
  padding:40px 0 48px;
}
.m-foot-grid{
  display:grid; grid-template-columns:1.4fr repeat(3,minmax(0,1fr));
  gap:28px 20px;
}
@media (max-width:820px){
  .m-foot-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:480px){
  .m-foot-grid{ grid-template-columns:1fr; }
}

.m-foot-brand .wordmark-sm{
  font-size:16px; font-weight:800; letter-spacing:-.03em; color:var(--accent);
}
.m-foot-brand p{ margin-top:8px; font-size:13px; color:var(--muted); line-height:1.5; max-width:28ch; }

.m-foot-col h4{
  font-size:11px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); margin-bottom:10px;
}
.m-foot-col a{
  display:block; font-size:13px; color:var(--text-2);
  text-decoration:none; padding:4px 0;
}
.m-foot-col a:hover{ color:var(--accent); }

.m-foot-bottom{
  margin-top:28px; padding-top:18px; border-top:1px solid var(--line);
  font-size:12px; color:var(--muted);
  display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center;
}

.hidden{ display:none !important; }

/* ── Landing page ─────────────────────────────────────────────────────── */

.m-landing-hero{
  padding-block:56px 48px;
  border-bottom:1px solid var(--line);
}
.m-landing-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:48px;
  align-items:center;
}
@media (max-width:900px){
  .m-landing-hero-inner{ grid-template-columns:1fr; gap:36px; }
  .m-landing-hero{ padding-block:36px 32px; }
}

.m-landing-title{
  font-size:clamp(32px,5vw,50px);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.04;
  text-wrap:balance;
}
.m-landing-brand{ display:block; color:var(--accent); }
.m-landing-tagline{ display:block; margin-top:4px; color:var(--text); }

.m-landing-lede{
  margin-top:18px; max-width:46ch;
  font-size:17px; line-height:1.6; color:var(--text-2);
}

.m-metrics{
  list-style:none; padding:0; margin:24px 0 0;
  display:flex; flex-wrap:wrap; gap:8px 20px;
}
.m-metrics li{
  font-size:14px; color:var(--text-2);
}
.m-metrics strong{
  font-weight:800; color:var(--text);
  margin-right:4px;
}

/* Tap demo — single vertical flow */
.m-tap-demo{
  padding:28px 24px 24px;
  border-radius:var(--r-xl);
  min-width:0;
}
.tap-stage{
  display:flex; flex-direction:column; align-items:center;
  gap:0;
  min-height:320px;
}
.tap-phone{
  width:min(100%, 168px);
  padding:10px;
  border-radius:28px;
  background:var(--surface);
  box-shadow:var(--d1), var(--b1);
  animation:tap-phone 7s var(--ease,cubic-bezier(.4,0,.2,1)) infinite;
}
.tap-screen{
  border-radius:20px;
  padding:16px 14px;
  min-height:148px;
}
.tap-screen-head{
  font-size:11px; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted);
  margin-bottom:12px;
}
.tap-field{
  display:flex; justify-content:space-between; gap:10px;
  padding:9px 0;
  border-bottom:1px solid var(--line);
  font-size:12px;
  opacity:.28;
  animation:tap-field 7s ease infinite;
}
.tap-field:nth-child(2){ animation-delay:0s; }
.tap-field:nth-child(3){ animation-delay:.15s; }
.tap-field:nth-child(4){ animation-delay:.3s; }
.tap-field span{ color:var(--muted); }
.tap-field b{ font-weight:700; color:var(--text); font-variant-numeric:tabular-nums; }

.tap-link{
  width:2px; height:28px;
  background:linear-gradient(var(--accent-fill), color-mix(in srgb, var(--accent) 30%, transparent));
  opacity:0;
  animation:tap-link 7s ease infinite;
}
.tap-contact{
  position:relative;
  display:grid; place-items:center;
  width:64px; height:64px;
}
.tap-tag{
  width:56px; height:56px;
  border-radius:16px;
  display:grid; place-items:center;
  color:var(--accent);
}
.tap-tag svg{ width:22px; height:22px; }
.tap-ring{
  position:absolute; inset:0;
  border:2px solid var(--accent-fill);
  border-radius:18px;
  opacity:0;
  animation:tap-ring 7s ease infinite;
}
.tap-result{
  margin-top:20px;
  opacity:0;
  animation:tap-result 7s ease infinite;
}
.tap-result .pill{ font-size:11px; }

@keyframes tap-phone{
  0%,14%{ transform:translateY(0); }
  24%,32%{ transform:translateY(18px); }
  70%,100%{ transform:translateY(0); }
}
@keyframes tap-ring{
  0%,22%{ opacity:0; transform:scale(.85); }
  28%{ opacity:.9; transform:scale(1); }
  36%,100%{ opacity:0; transform:scale(1.2); }
}
@keyframes tap-link{
  0%,26%{ opacity:0; }
  32%,48%{ opacity:.7; }
  54%,100%{ opacity:0; }
}
@keyframes tap-field{
  0%,30%{ opacity:.28; }
  38%,72%{ opacity:1; }
  80%,100%{ opacity:.28; }
}
@keyframes tap-result{
  0%,48%{ opacity:0; transform:translateY(6px); }
  56%,78%{ opacity:1; transform:none; }
  86%,100%{ opacity:0; }
}

@media (prefers-reduced-motion:reduce){
  .tap-phone, .tap-ring, .tap-link, .tap-field, .tap-result{
    animation:none !important;
  }
  .tap-phone{ transform:translateY(18px); }
  .tap-field, .tap-result{ opacity:1; }
}

/* Story list */
.m-story-list{ display:flex; flex-direction:column; }
.m-story-row{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:16px 24px;
  padding-block:32px;
  border-bottom:1px solid var(--line);
}
.m-story-row:first-child{ padding-top:0; }
.m-story-row:last-child{ border-bottom:0; padding-bottom:0; }
.m-story-num{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; border-radius:11px;
  font-size:13px; font-weight:800; color:var(--accent);
  background:var(--surface);
  box-shadow:inset 2px 2px 5px var(--sh-dark), inset -2px -2px 5px var(--sh-light);
}
.m-story-row h2{
  font-size:clamp(20px,2.8vw,26px);
  font-weight:800; letter-spacing:-.025em;
  line-height:1.15;
}
.m-story-row p{
  margin-top:8px;
  font-size:15px; line-height:1.6; color:var(--text-2);
  max-width:52ch;
}

.m-band-tight{ padding-block:40px; }
.m-section-title{
  font-size:clamp(20px,2.5vw,24px);
  font-weight:800; letter-spacing:-.02em;
}

/* FAQ — flat, no card chrome */
.m-faq-list{
  display:flex; flex-direction:column;
  margin-top:20px;
  border-top:1px solid var(--line);
}
.m-faq-item{
  border-bottom:1px solid var(--line);
}
.m-faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:16px 0;
  font-size:15px; font-weight:600;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.m-faq-item summary::-webkit-details-marker{ display:none; }
.m-faq-item summary::after{
  content:'+';
  font-size:18px; font-weight:500; color:var(--muted);
}
.m-faq-item[open] summary::after{ content:'−'; color:var(--accent); }
.m-faq-item .m-faq-a{
  padding:0 0 16px;
  font-size:14px; line-height:1.6; color:var(--text-2);
  max-width:58ch;
}
.m-faq-item .m-faq-a a{ color:var(--accent); font-weight:600; }
