/* ═══════════════════════════════════════════════════════════════════════
   High Tech Websites — "Product-led" direction
   Indigo system, rounded cards with depth, generated portal UI mockups.
   ═══════════════════════════════════════════════════════════════════════ */

:root{
  /* surfaces */
  --white:#FFFFFF;
  --soft:#F4F6FD;      /* section tint */
  --tint:#EAEEFE;      /* indigo wash */
  --line:#DFE4F3;
  --line-2:#E9ECF8;

  /* ink */
  --ink:#0E1330;       /* headings */
  --body:#414B6B;      /* body copy on white / soft  */
  --body-2:#5A6382;    /* small meta on white        */

  /* indigo */
  --indigo:#4338CA;    /* primary action / links     */
  --indigo-d:#372FB0;  /* hover                      */
  --indigo-t:#EDEBFC;  /* pale fill                  */

  /* dark surfaces */
  --dark:#0B1024;
  --dark-2:#141B3A;
  --dark-card:#18204A;
  --dark-line:#2C3663;
  --on-dark:#FFFFFF;
  --on-dark-2:#C3CBE9;
  --lav:#B9C0FF;       /* accent text on dark        */

  /* status */
  --ok:#0F7A4E;
  --ok-bg:#E4F6EC;
  --warn:#9A4A05;
  --warn-bg:#FDEEDF;
  --bad:#B3261E;
  --bad-bg:#FCE9E7;

  --r-s:10px; --r-m:16px; --r-l:22px; --r-xl:28px;
  --sh-1:0 1px 2px rgba(14,19,48,.06), 0 2px 6px rgba(14,19,48,.05);
  --sh-2:0 2px 4px rgba(14,19,48,.05), 0 10px 24px rgba(14,19,48,.08);
  --sh-3:0 4px 8px rgba(14,19,48,.06), 0 24px 60px rgba(14,19,48,.14);
  --sh-4:0 10px 20px rgba(11,16,36,.14), 0 40px 90px rgba(11,16,36,.26);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:16px; line-height:1.6;
  color:var(--body); background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
img,svg{max-width:100%}
a{color:var(--indigo)}
h1,h2,h3,h4{color:var(--ink); margin:0; line-height:1.12; letter-spacing:-.022em; font-weight:800}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}

.wrap{width:100%; max-width:1200px; margin:0 auto; padding:0 24px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-9999px;top:0;background:var(--indigo);color:#fff;padding:12px 18px;z-index:99;border-radius:0 0 10px 0}
.skip:focus{left:0}
:focus-visible{outline:3px solid var(--indigo); outline-offset:2px; border-radius:6px}

/* ── buttons ───────────────────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:600; font-size:.94rem; line-height:1;
  padding:12px 18px; border-radius:12px; text-decoration:none;
  border:1px solid transparent; white-space:nowrap; cursor:pointer;
  transition:background .15s, border-color .15s, transform .12s, box-shadow .15s;
}
.btn-lg{padding:15px 24px; font-size:1rem; border-radius:14px}
.btn-solid{background:var(--indigo); color:#fff; box-shadow:0 1px 2px rgba(14,19,48,.2), 0 6px 18px rgba(67,56,202,.28)}
.btn-solid:hover{background:var(--indigo-d); transform:translateY(-1px)}
.btn-line{background:var(--white); color:var(--indigo); border-color:var(--line); box-shadow:var(--sh-1)}
.btn-line:hover{border-color:#BFC7EA; transform:translateY(-1px)}
.btn-quiet{background:transparent; color:var(--ink); border-color:var(--line)}
.btn-quiet:hover{background:var(--soft)}
.btn-ghost{background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.35)}
.btn-ghost:hover{background:rgba(255,255,255,.14)}
.full{width:100%}

/* ── utility bar ───────────────────────────────────────────────────── */
.util{background:var(--dark); color:var(--on-dark-2); font-size:.8rem}
.util-in{
  max-width:1200px; margin:0 auto; padding:9px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.util-l{min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.util-r{display:flex; align-items:center; gap:10px; flex:0 0 auto}
.util-r a{color:var(--lav); text-decoration:none; font-weight:700}
.util-r a:hover{text-decoration:underline}
.util-sep{color:var(--on-dark-2)}

/* ── nav ───────────────────────────────────────────────────────────── */
.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.88); backdrop-filter:saturate(1.6) blur(12px);
  border-bottom:1px solid var(--line-2);
}
.nav-in{
  max-width:1200px; margin:0 auto; padding:11px 24px;
  display:flex; align-items:center; gap:22px;
}
.mark{display:inline-flex; align-items:center; gap:10px; text-decoration:none; flex:0 0 auto}
.mark-badge{
  width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:var(--indigo);
  color:#fff;font-weight:800;font-size:.95rem;display:grid;place-items:center;
  box-shadow:0 4px 12px rgba(67,56,202,.35);
}
.mark-text{color:var(--ink); font-weight:600; font-size:.98rem; letter-spacing:-.01em; white-space:nowrap}
.mark-text b{font-weight:800}
.nav-links{display:flex; align-items:center; gap:17px; flex:1 1 auto; min-width:0}
.nav-links a{
  color:var(--body); text-decoration:none; font-size:.875rem; font-weight:500; white-space:nowrap;
  padding:6px 0; border-bottom:2px solid transparent;
}
.nav-links a:hover{color:var(--indigo); border-bottom-color:var(--indigo)}
.nav-act{display:flex; align-items:center; gap:10px; flex:0 0 auto}
.tel{color:var(--ink); text-decoration:none; font-weight:600; font-size:.875rem}
.tel:hover{color:var(--indigo)}
.menu{display:none; margin-left:auto; position:relative}
.menu summary{
  list-style:none; width:42px;height:42px;border-radius:12px;border:1px solid var(--line);
  display:grid; place-content:center; gap:5px; cursor:pointer; background:var(--white);
}
.menu summary::-webkit-details-marker{display:none}
.menu summary span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px}
.menu-panel{
  position:absolute; right:0; top:52px; width:min(78vw,270px);
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-m);
  box-shadow:var(--sh-3); padding:8px; display:grid;
}
.menu-panel a{
  padding:11px 12px; border-radius:9px; text-decoration:none; color:var(--ink);
  font-size:.95rem; font-weight:500;
}
.menu-panel a:hover{background:var(--soft)}
.menu-panel .menu-cta{
  background:var(--indigo); color:#fff; font-weight:700; text-align:center; margin-top:8px;
}
.menu-panel .menu-cta:hover{background:var(--indigo-d)}
.menu-panel .menu-tel{color:var(--indigo); font-weight:700; text-align:center; margin-top:4px}

/* ── generic section ───────────────────────────────────────────────── */
.sec{padding:88px 0; position:relative}
.sec-soft{background:var(--soft); border-block:1px solid var(--line-2)}
.sec-dark{background:var(--dark); color:var(--on-dark-2); overflow:hidden}
.grid-bg{
  position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:linear-gradient(rgba(185,192,255,.075) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(185,192,255,.075) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000,transparent 75%);
          mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000,transparent 75%);
}
.sec-dark .wrap{position:relative; z-index:1}

.head{max-width:760px; margin-bottom:52px}
.head-tight{margin-bottom:30px}
.eyebrow{
  font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:.72rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase;
  color:var(--indigo); margin-bottom:16px;
}
.eyebrow.on-dark{color:var(--lav)}
h2{font-size:clamp(1.85rem,3.6vw,2.75rem)}
.head h2{margin-bottom:16px}
h2.on-dark,h3.on-dark{color:var(--on-dark)}
.sub{font-size:1.06rem; color:var(--body); max-width:66ch}
.sub.on-dark{color:var(--on-dark-2)}
.hl{color:var(--indigo)}
.hl-d{color:var(--lav)}
.center{text-align:center}

/* ── hero ──────────────────────────────────────────────────────────── */
.hero{position:relative; padding:64px 0 92px; background:var(--white); overflow:hidden}
.hero-glow{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(760px 520px at 82% 6%, rgba(99,102,241,.20), transparent 62%),
    radial-gradient(620px 460px at 8% 0%, rgba(59,130,246,.14), transparent 60%),
    linear-gradient(180deg,#F3F5FE 0%, #FFFFFF 62%);
}
.hero-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);
  gap:56px; align-items:center;
}
.pill{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--white); border:1px solid var(--line); border-radius:999px;
  padding:7px 15px 7px 12px; font-size:.82rem; font-weight:600; color:var(--ink);
  box-shadow:var(--sh-1); margin-bottom:24px;
}
.pill-dot{width:8px;height:8px;border-radius:50%;background:#16A34A;box-shadow:0 0 0 4px rgba(22,163,74,.16)}
h1{font-size:clamp(2.5rem,5.4vw,3.9rem); letter-spacing:-.035em; margin-bottom:22px}
.lede{font-size:1.14rem; color:var(--body); max-width:52ch; margin-bottom:30px}
.cta-row{display:flex; gap:12px; flex-wrap:wrap}
.hero-facts{margin-top:30px; display:grid; gap:11px}
.hero-facts li{display:flex; gap:11px; align-items:flex-start; font-size:.93rem; color:var(--body-2); max-width:50ch}
.tick{width:19px;height:19px;flex:0 0 19px;margin-top:1px;fill:none;stroke:var(--indigo);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ── product mockup: window ────────────────────────────────────────── */
.hero-app{position:relative; min-width:0}
.app-window{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-l);
  box-shadow:var(--sh-3); overflow:hidden;
}
.app-bar{
  display:flex; align-items:center; gap:7px; padding:11px 14px;
  background:#F7F8FD; border-bottom:1px solid var(--line-2);
}
.app-bar .d{width:9px;height:9px;border-radius:50%;display:block}
.d1{background:#E5A5A0}.d2{background:#E8CD9A}.d3{background:#A8D9B6}
.app-url{
  margin-left:8px; flex:1; background:var(--white); border:1px solid var(--line-2);
  border-radius:7px; padding:4px 10px; font-size:.72rem; color:var(--body-2);
  font-family:"JetBrains Mono",ui-monospace,monospace; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.app-body{display:grid; grid-template-columns:148px minmax(0,1fr); min-height:0}
.app-side{
  background:#FAFBFF; border-right:1px solid var(--line-2); padding:14px 10px; display:grid;
  gap:3px; align-content:start;
}
.side-item{
  display:flex; align-items:center; gap:9px; padding:8px 10px; border-radius:8px;
  font-size:.8rem; font-weight:600; color:var(--body-2);
}
.side-item.on{background:var(--indigo-t); color:var(--indigo)}
.si{
  width:15px;height:15px;flex:0 0 15px;
  fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;
}
.app-main{padding:16px; display:grid; gap:12px; align-content:start; background:var(--white)}
.app-head{display:flex; align-items:center; justify-content:space-between; gap:10px}
.app-title{font-weight:800; color:var(--ink); font-size:1rem; letter-spacing:-.02em}

.chip{
  display:inline-flex; align-items:center; gap:6px; border-radius:999px;
  padding:4px 10px; font-size:.7rem; font-weight:700; letter-spacing:.01em; white-space:nowrap;
}
.chip-live{background:var(--ok-bg); color:var(--ok)}
.chip-live i{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip-warn{background:var(--warn-bg); color:var(--warn)}
.chip-idle{background:var(--tint); color:var(--indigo)}

.ui-card{
  border:1px solid var(--line-2); border-radius:var(--r-m); padding:14px;
  background:var(--white); box-shadow:var(--sh-1);
}
.ui-card-top{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:11px}
.ui-h{font-weight:700; color:var(--ink); font-size:.88rem}
.checklist{display:grid; gap:7px}
.checklist li{
  display:flex; align-items:center; gap:9px; font-size:.82rem; color:var(--body);
}
.checklist li i{width:15px;height:15px;flex:0 0 15px;border-radius:50%;position:relative}
.checklist li.ok i{background:var(--ok-bg); box-shadow:inset 0 0 0 1.5px rgba(15,122,78,.35)}
.checklist li.ok i::after{
  content:""; position:absolute; left:4.5px; top:3px; width:4px; height:7px;
  border:solid var(--ok); border-width:0 1.8px 1.8px 0; transform:rotate(42deg);
}
.checklist li.bad i{background:var(--bad-bg); box-shadow:inset 0 0 0 1.5px rgba(179,38,30,.35)}
.checklist li.bad i::after{
  content:"!"; position:absolute; inset:0; display:grid; place-items:center;
  color:var(--bad); font-size:.62rem; font-weight:800;
}
.checklist li.bad{color:var(--bad); font-weight:600}
.checklist li.bad b{font-weight:800}
.ui-note{
  margin-top:11px; font-size:.76rem; color:var(--warn); background:var(--warn-bg);
  border-radius:9px; padding:8px 10px; line-height:1.45;
}
.ui-row{display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap}
.ui-kind{font-weight:700; color:var(--ink); font-size:.84rem; display:block}
.ui-meta{font-size:.74rem; color:var(--body-2); display:block}
.redact{display:grid; gap:6px; margin:11px 0}
.redact i{display:block; height:9px; border-radius:5px; background:linear-gradient(90deg,#E7EAF7,#EFF1FA)}
.redact i:nth-child(1){width:100%}
.redact i:nth-child(2){width:86%}
.redact i:nth-child(3){width:52%}
.redact.sm i{height:8px}
.ui-actions{display:flex; gap:7px; flex-wrap:wrap}
.app-main .ui-actions{justify-content:flex-end}
.mini{
  font-size:.75rem; font-weight:700; padding:7px 13px; border-radius:9px;
  border:1px solid var(--line); color:var(--body); background:var(--white);
}
.mini-solid{background:var(--indigo); color:#fff; border-color:var(--indigo)}

.toast{
  position:absolute; left:-26px; bottom:92px; z-index:2;
  display:flex; gap:11px; align-items:center;
  background:var(--white); border:1px solid var(--line); border-radius:15px;
  padding:12px 16px 12px 12px; box-shadow:var(--sh-3); max-width:min(300px,84%);
}
.toast b{display:block; color:var(--ink); font-size:.85rem; line-height:1.3}
.toast div span{display:block; font-size:.78rem; color:var(--body-2); line-height:1.35}
.toast-badge{
  width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:var(--indigo);color:#fff;
  font-weight:800; display:grid; place-items:center; font-size:.95rem;
}
.toast-badge.sm{width:28px;height:28px;flex:0 0 28px;border-radius:8px;font-size:.82rem}

.mock-note{
  margin-top:14px; font-size:.75rem; color:var(--body-2);
  font-family:"JetBrains Mono",ui-monospace,monospace; letter-spacing:.01em;
}
.mock-note.on-dark{color:var(--on-dark-2)}
.mock-note.center{text-align:center; margin-top:26px}

/* ── real work strip ───────────────────────────────────────────────── */
.strip{background:var(--dark); padding:34px 0; color:var(--on-dark-2)}
.strip-lead{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:.7rem; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--lav); margin-bottom:18px;
}
.strip-row{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.strip-item{
  display:grid; gap:5px; text-decoration:none; padding:16px 18px;
  border:1px solid var(--dark-line); border-radius:var(--r-m); background:var(--dark-2);
  transition:border-color .15s, transform .15s;
}
.strip-item:hover{border-color:#4A5599; transform:translateY(-2px)}
.strip-name{color:var(--on-dark); font-weight:700; font-size:1rem; letter-spacing:-.015em}
.tagline{color:var(--on-dark-2); font-size:.82rem}
.status{
  justify-self:start; margin-top:4px; font-size:.68rem; font-weight:800; letter-spacing:.09em;
  text-transform:uppercase; padding:4px 9px; border-radius:999px;
}
.status.live{background:#0C3B26; color:#7FE3B0}
.status.soon{background:#3C2A0B; color:#F2C980}

/* ── the loop ──────────────────────────────────────────────────────── */
.loop-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px}
.loop-card{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:28px 26px 26px; box-shadow:var(--sh-2); display:flex; flex-direction:column;
}
.loop-num{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:.78rem; font-weight:700;
  color:var(--indigo); background:var(--indigo-t); width:38px; height:38px; border-radius:11px;
  display:grid; place-items:center; margin-bottom:16px;
}
.loop-card h3{font-size:1.28rem; margin-bottom:10px}
.loop-card>p{font-size:.96rem; margin-bottom:22px}
.mini-ui{
  margin-top:auto; border:1px solid var(--line-2); border-radius:var(--r-m);
  background:#FBFCFF; overflow:hidden;
}
.mini-ui-bar{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:10px 13px; border-bottom:1px solid var(--line-2); background:var(--white);
  font-size:.8rem; font-weight:700; color:var(--ink);
}
.scanlist{padding:8px 13px 12px}
.scanlist li{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:7px 0; border-bottom:1px dashed var(--line-2); font-size:.82rem; color:var(--body);
}
.scanlist li:last-child{border-bottom:0}
.scanlist b{font-size:.72rem; font-weight:800; padding:3px 8px; border-radius:6px}
.pass{background:var(--ok-bg); color:var(--ok)}
.fail{background:var(--bad-bg); color:var(--bad)}
.run{background:var(--tint); color:var(--indigo)}
.draft{padding:13px}
.draft-kind{font-size:.72rem; font-weight:800; color:var(--indigo); letter-spacing:.02em}
.draft-body{
  margin-top:8px; font-size:.85rem; color:var(--ink); line-height:1.5;
  background:var(--white); border:1px solid var(--line-2); border-radius:10px; padding:10px 12px;
}
.draft-foot{display:block; font-size:.71rem; color:var(--body-2); margin-top:4px}
.approve-demo{padding:13px}
.ad-row{margin-bottom:2px}

/* ── phone section ─────────────────────────────────────────────────── */
.phone-sec{padding:96px 0}
.phone-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.86fr); gap:60px; align-items:center}
.phone-list{display:grid; gap:18px; margin:32px 0 34px}
.phone-list li{display:flex; gap:14px; align-items:flex-start}
.pn{
  width:28px;height:28px;flex:0 0 28px;border-radius:9px;background:var(--dark-card);
  border:1px solid var(--dark-line); color:var(--lav); font-weight:800; font-size:.8rem;
  display:grid; place-items:center;
}
.phone-list b{display:block; color:var(--on-dark); font-size:.98rem; margin-bottom:3px}
.phone-list span:not(.pn){display:block; color:var(--on-dark-2); font-size:.92rem; line-height:1.5}

.phone-stage{display:flex; flex-direction:column; align-items:center}
.phone{
  width:min(330px,84vw); background:#05070F; border-radius:44px; padding:11px;
  box-shadow:var(--sh-4), inset 0 0 0 1.5px #333C68;
  position:relative;
}
.phone::after{ /* side button */
  content:""; position:absolute; right:-2px; top:130px; width:3px; height:56px;
  background:#2B3157; border-radius:0 3px 3px 0;
}
.phone-screen{
  background:#F5F7FD; border-radius:34px; overflow:hidden; padding:0 0 6px;
  position:relative; display:grid; gap:10px; align-content:start;
}
.ph-status{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 20px 6px; font-size:.75rem; font-weight:700; color:var(--ink);
}
.phone-screen::before{ /* notch */
  content:""; position:absolute; top:9px; left:50%; transform:translateX(-50%);
  width:92px; height:22px; background:#05070F; border-radius:999px; z-index:3;
}
.ph-icons{display:flex; gap:5px; align-items:center}
.ph-icons i{display:block; background:var(--ink)}
.ph-icons .sig{
  width:13px;height:9px;
  clip-path:polygon(0 62%,20% 62%,20% 100%,0 100%, 27% 40%,47% 40%,47% 100%,27% 100%, 54% 16%,74% 16%,74% 100%,54% 100%);
}
.ph-icons .wifi{width:12px;height:9px;clip-path:polygon(50% 100%,0 34%,50% 8%,100% 34%)}
.ph-icons .batt{
  width:19px;height:9.5px;border-radius:2.5px;background:transparent;
  box-shadow:inset 0 0 0 1.2px var(--ink); position:relative;
}
.ph-icons .batt::after{
  content:""; position:absolute; left:1.6px; top:1.6px; bottom:1.6px; width:11px;
  border-radius:1px; background:var(--ink);
}
.ph-icons .batt::before{
  content:""; position:absolute; right:-3px; top:3px; width:2px; height:3.5px;
  border-radius:0 1.5px 1.5px 0; background:var(--ink); opacity:.55;
}

.ph-notif{
  margin:2px 12px 0; display:flex; gap:10px; align-items:center;
  background:var(--white); border:1px solid var(--line); border-radius:15px;
  padding:10px 12px; box-shadow:var(--sh-2);
}
.ph-notif b{display:block; font-size:.8rem; color:var(--ink); line-height:1.3}
.ph-notif span:not(.toast-badge){display:block; font-size:.76rem; color:var(--body-2); line-height:1.35}
.ph-head{display:flex; align-items:center; justify-content:space-between; padding:6px 18px 0}
.ph-title{font-weight:800; color:var(--ink); font-size:1.02rem; letter-spacing:-.02em}
.ph-card{
  margin:0 12px; background:var(--white); border:1px solid var(--line-2);
  border-radius:var(--r-m); padding:13px; box-shadow:var(--sh-1);
}
.ph-card.muted{opacity:.72}
.ph-draft{
  margin-top:9px; font-size:.82rem; color:var(--ink); line-height:1.5;
  background:#FBFCFF; border:1px solid var(--line-2); border-radius:10px; padding:9px 11px;
}
.ph-actions{display:grid; gap:7px; margin-top:11px}
.ph-btn{
  text-align:center; font-size:.82rem; font-weight:700; padding:11px 12px; border-radius:11px;
  border:1px solid var(--line); color:var(--body); background:var(--white);
}
.ph-approve{
  background:var(--indigo); color:#fff; border-color:var(--indigo);
  box-shadow:0 6px 16px rgba(67,56,202,.32);
}
.ph-tabs{
  margin-top:6px; display:grid; grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--line-2); background:var(--white); padding:9px 0 12px;
}
.ph-tabs span{
  display:grid; justify-items:center; gap:4px; font-size:.66rem; font-weight:600; color:var(--body-2);
}
.ph-tabs span.on{color:var(--indigo)}
.ph-tabs .si{width:16px;height:16px;flex:0 0 16px}

/* ── features ──────────────────────────────────────────────────────── */
.feat-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px}
.feat{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-l);
  padding:26px 24px; box-shadow:var(--sh-1); transition:transform .15s, box-shadow .15s;
}
.feat:hover{transform:translateY(-3px); box-shadow:var(--sh-2)}
.feat-ic{
  width:42px;height:42px;border-radius:12px; background:var(--indigo-t); color:var(--indigo);
  display:grid; place-items:center; margin-bottom:15px;
}
.feat-ic svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.feat h3{font-size:1.08rem; margin-bottom:8px}
.feat p{font-size:.94rem}

.onboard{
  margin-top:34px; background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-xl); padding:32px 30px; box-shadow:var(--sh-2);
}
.onboard-head{margin-bottom:24px}
.onboard-head h3{font-size:1.4rem; margin-bottom:6px}
.onboard-head p{color:var(--body-2)}
.onboard-steps{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px}
.onboard-steps li{display:grid; gap:6px; align-content:start; padding-top:2px}
.on-n{
  width:30px;height:30px;border-radius:50%; background:var(--indigo); color:#fff;
  font-weight:800; font-size:.85rem; display:grid; place-items:center; margin-bottom:4px;
}
.onboard-steps b{color:var(--ink); font-size:.98rem; font-weight:700; line-height:1.3}
.onboard-steps span:not(.on-n){font-size:.9rem; color:var(--body); line-height:1.5}

/* ── audit ─────────────────────────────────────────────────────────── */
.audit-sec{background:linear-gradient(180deg,var(--white),#F1F4FE)}
.audit-shell{
  max-width:840px; margin:0 auto; background:var(--white);
  border:1px solid var(--line); border-radius:var(--r-xl);
  padding:44px 40px; box-shadow:var(--sh-3);
}
.audit-shell .head{margin-left:auto;margin-right:auto}
.audit-form{display:flex; gap:10px; flex-wrap:wrap}
.field{
  flex:1 1 260px; min-width:0; padding:15px 17px; font:inherit; font-size:1rem;
  color:var(--ink); background:var(--white);
  border:1px solid var(--line); border-radius:13px;
}
.field::placeholder{color:#666E8C}
.field:focus{outline:none; border-color:var(--indigo); box-shadow:0 0 0 4px rgba(67,56,202,.14)}
.audit-form .btn{padding:15px 24px; font-size:1rem; border-radius:13px}
.audit-note{margin-top:13px; font-size:.86rem; color:var(--body-2)}
#auditStage:not(:empty),#auditResult:not(:empty){margin-top:24px}

/* live scan steps — audit.js emits li.audit-step > i + span, then .on / .done */
#auditSteps{display:grid; gap:8px}
.audit-step{
  display:flex; align-items:center; gap:11px;
  padding:11px 14px; border:1px solid var(--line-2); border-radius:11px;
  font-size:.92rem; color:var(--body-2); background:#FBFCFF;
  opacity:0; transform:translateY(4px);
  animation:auditIn .34s ease forwards;
  transition:border-color .2s, background .2s, color .2s;
}
@keyframes auditIn{to{opacity:1; transform:none}}
.audit-step i{
  width:16px;height:16px;flex:0 0 16px;border-radius:50%;position:relative;
  background:var(--tint); box-shadow:inset 0 0 0 1.5px var(--line);
}
.audit-step.on{
  color:var(--ink); background:var(--white); border-color:#C7CDF0;
  box-shadow:0 0 0 3px rgba(67,56,202,.10);
}
.audit-step.on i{
  background:var(--indigo-t); box-shadow:inset 0 0 0 1.5px var(--indigo);
  animation:auditPulse 1s ease-in-out infinite;
}
@keyframes auditPulse{50%{box-shadow:inset 0 0 0 1.5px var(--indigo), 0 0 0 4px rgba(67,56,202,.14)}}
.audit-step.done{color:var(--body); background:var(--white); border-color:var(--line-2)}
.audit-step.done i{background:var(--ok-bg); box-shadow:inset 0 0 0 1.5px rgba(15,122,78,.4)}
.audit-step.done i::after{
  content:""; position:absolute; left:5px; top:3.5px; width:4px; height:7px;
  border:solid var(--ok); border-width:0 1.9px 1.9px 0; transform:rotate(42deg);
}

/* result */
#auditResult{opacity:0; transition:opacity .35s ease}
#auditResult.show{opacity:1}
.audit-head{display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-bottom:22px}
.audit-ring{
  width:92px;height:92px;flex:0 0 92px;border-radius:50%;
  display:grid; place-content:center; text-align:center;
  border:4px solid var(--line); background:var(--white); box-shadow:var(--sh-1);
}
.audit-ring span{display:block; font-size:2rem; font-weight:800; line-height:1; color:var(--ink); letter-spacing:-.03em}
.audit-ring small{font-size:.72rem; color:var(--body-2); font-weight:600}
.audit-ring.ring-good{border-color:#0F7A4E} .audit-ring.ring-good span{color:#0B5D3B}
.audit-ring.ring-mid{border-color:#9A4A05}  .audit-ring.ring-mid span{color:#8A4205}
.audit-ring.ring-bad{border-color:#B3261E}  .audit-ring.ring-bad span{color:#9F211A}
.audit-head h3{font-size:clamp(1.3rem,2.6vw,1.75rem); margin-bottom:4px}
.audit-url{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:.84rem; color:var(--body-2);
  overflow-wrap:anywhere;
}

.audit-stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin-bottom:24px;
}
.audit-stats>div{
  background:#FBFCFF; border:1px solid var(--line-2); border-radius:var(--r-m);
  padding:14px 15px; min-width:0;
}
.audit-stats b{
  display:block; font-size:1.12rem; font-weight:800; color:var(--ink);
  letter-spacing:-.02em; overflow-wrap:anywhere;
}
.audit-stats small{
  display:block; margin-top:4px; font-size:.7rem; font-weight:700; letter-spacing:.11em;
  text-transform:uppercase; color:var(--body-2);
}

.audit-findings{display:grid; gap:12px; margin-bottom:26px}
.audit-findings li{
  border:1px solid var(--line-2); border-left:4px solid var(--line); border-radius:var(--r-m);
  padding:15px 17px; background:var(--white); box-shadow:var(--sh-1);
  opacity:0; animation:auditIn .4s ease forwards;
}
.audit-findings .sev{
  display:block; margin-bottom:6px; font-size:.68rem; font-weight:800;
  letter-spacing:.12em; text-transform:uppercase; color:var(--body-2);
}
.audit-findings h4{font-size:1.02rem; margin-bottom:6px}
.audit-findings p{font-size:.94rem; color:var(--body)}
.audit-findings li.sev-high{border-left-color:#B3261E} .audit-findings li.sev-high .sev{color:#B3261E}
.audit-findings li.sev-med{border-left-color:#9A4A05}  .audit-findings li.sev-med .sev{color:#9A4A05}
.audit-findings li.sev-low{border-left-color:var(--indigo)} .audit-findings li.sev-low .sev{color:var(--indigo)}

.audit-clean{
  border:1px solid var(--line-2); border-left:4px solid #0F7A4E; border-radius:var(--r-m);
  padding:20px 22px; background:#FBFCFF; margin-bottom:26px;
}
.audit-clean h4{font-size:1.1rem; margin-bottom:8px}
.audit-clean p{font-size:.95rem; color:var(--body); margin-bottom:12px}
.audit-clean p:last-child{margin-bottom:0}
.audit-next{display:grid; gap:9px; margin:0 0 14px}
.audit-next li{
  position:relative; padding-left:22px; font-size:.94rem; color:var(--body); line-height:1.5;
}
.audit-next li::before{
  content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%;
  background:var(--indigo);
}
.audit-next b{color:var(--ink)}
.audit-error{
  border:1px solid #F0CFCC; border-left:4px solid #B3261E; border-radius:var(--r-m);
  padding:16px 18px; background:var(--bad-bg); color:#8E1E17; font-weight:600;
}
.audit-cta{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
  padding-top:22px; border-top:1px solid var(--line-2);
}
.audit-cta .btn-pill{
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--indigo); color:#fff; text-decoration:none; font-weight:600; font-size:.96rem;
  padding:14px 22px; border-radius:13px;
  box-shadow:0 1px 2px rgba(14,19,48,.2), 0 6px 18px rgba(67,56,202,.28);
}
.audit-cta .btn-pill:hover{background:var(--indigo-d)}
.audit-cta span{font-size:.88rem; color:var(--body-2)}

/* ── proof ─────────────────────────────────────────────────────────── */
.proof-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px}
.proof{
  background:var(--dark-2); border:1px solid var(--dark-line); border-radius:var(--r-l);
  padding:28px 26px;
}
.proof-tag{
  display:inline-block; font-family:"JetBrains Mono",ui-monospace,monospace;
  font-size:.68rem; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--lav); background:rgba(185,192,255,.12); border-radius:999px;
  padding:5px 11px; margin-bottom:16px;
}
.proof h3{color:var(--on-dark); font-size:1.2rem; margin-bottom:10px}
.proof p{color:var(--on-dark-2); font-size:.95rem}

/* ── pricing ───────────────────────────────────────────────────────── */
.plan-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch}
.plan{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:30px 28px; display:flex; flex-direction:column; box-shadow:var(--sh-1); position:relative;
}
.plan-feature{
  border-color:var(--indigo); box-shadow:var(--sh-3);
  outline:3px solid rgba(67,56,202,.10); outline-offset:0;
}
.plan-flag{
  position:absolute; top:-13px; left:28px; background:var(--indigo); color:#fff;
  font-size:.7rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  padding:5px 12px; border-radius:999px; box-shadow:0 6px 16px rgba(67,56,202,.3);
}
.plan h3{font-size:1.3rem; margin-bottom:4px}
.plan-for{color:var(--body-2); font-size:.92rem}
.price{
  font-size:2.6rem; font-weight:800; color:var(--ink); letter-spacing:-.035em;
  margin:16px 0 20px; line-height:1;
}
.price span{font-size:.95rem; font-weight:600; color:var(--body-2); letter-spacing:0}
.plan ul{display:grid; gap:11px; margin-bottom:26px}
.plan li{
  position:relative; padding-left:26px; font-size:.94rem; color:var(--body); line-height:1.45;
}
.plan li::before{
  content:""; position:absolute; left:0; top:4px; width:17px; height:17px; border-radius:50%;
  background:var(--indigo-t);
}
.plan li::after{
  content:""; position:absolute; left:5.5px; top:7.5px; width:5px; height:8px;
  border:solid var(--indigo); border-width:0 2px 2px 0; transform:rotate(42deg);
}
.plan .btn{margin-top:auto}
.plan-foot{margin-top:26px; font-size:.94rem; color:var(--body-2); text-align:center}
.plan-foot a{font-weight:600}

/* ── towns ─────────────────────────────────────────────────────────── */
.towns{display:flex; flex-wrap:wrap; gap:12px}
.towns span{
  background:var(--white); border:1px solid var(--line); border-radius:13px;
  padding:14px 22px; font-weight:700; color:var(--ink); font-size:1rem; box-shadow:var(--sh-1);
}

/* ── contact ───────────────────────────────────────────────────────── */
.contact-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:52px; align-items:start}
.contact-lines{display:grid; gap:8px; margin-top:28px}
.contact-lines a{color:var(--lav); text-decoration:none; font-weight:700; font-size:1.05rem}
.contact-lines a:hover{text-decoration:underline}
.contact-lines span{color:var(--on-dark-2); font-size:.95rem}
.form-card{
  background:var(--white); border-radius:var(--r-xl); padding:30px 28px; box-shadow:var(--sh-4);
}
.form-card form{display:grid; gap:12px}
.frow{display:grid; grid-template-columns:1fr 1fr; gap:12px}
.form-card input,.form-card select,.form-card textarea{
  width:100%; min-width:0; padding:13px 15px; font:inherit; font-size:.97rem; color:var(--ink);
  background:var(--white); border:1px solid var(--line); border-radius:12px;
}
.form-card textarea{min-height:132px; resize:vertical}
.form-card input::placeholder,.form-card textarea::placeholder{color:#666E8C}
.form-card :is(input,select,textarea):focus{
  outline:none; border-color:var(--indigo); box-shadow:0 0 0 4px rgba(67,56,202,.14);
}
.notice{
  display:none; margin-top:16px; padding:16px 18px; border-radius:14px;
  background:var(--indigo-t); border:1px solid #CFCBF6;
}
.notice p{margin-bottom:8px; font-size:.92rem; color:var(--body)}
.notice a{font-weight:700}

/* ── footer ────────────────────────────────────────────────────────── */
.foot{background:var(--dark); color:var(--on-dark-2); padding:64px 0 30px}
.foot-cols{
  display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:36px;
  padding-bottom:38px; border-bottom:1px solid var(--dark-line);
}
.foot .mark-text{color:var(--on-dark)}
.foot-brand p{margin:16px 0 14px; font-size:.92rem; max-width:38ch; color:var(--on-dark-2)}
.foot-tel{color:var(--lav); font-weight:700; text-decoration:none; font-size:1.02rem}
.foot h4{color:var(--on-dark); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:15px; font-weight:700}
.foot-cols div a{display:block; color:var(--on-dark-2); text-decoration:none; font-size:.93rem; padding:5px 0}
.foot-cols div a:hover{color:var(--on-dark)}
.foot-base{
  display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap;
  padding-top:22px; font-size:.85rem; color:var(--on-dark-2);
}

/* ═══ RESPONSIVE ══════════════════════════════════════════════════════ */
@media (max-width:1120px){
  .nav-links{gap:13px}
  .nav-links a{font-size:.83rem}
}
@media (max-width:980px){
  .nav-links,.nav-act{display:none}
  .menu{display:block}
  .hero-grid{grid-template-columns:1fr; gap:48px}
  .lede{max-width:60ch}
  .phone-grid{grid-template-columns:1fr; gap:44px}
  .contact-grid{grid-template-columns:1fr; gap:34px}
  .loop-grid,.feat-grid,.proof-grid,.plan-grid,.strip-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .onboard-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .foot-cols{grid-template-columns:1fr 1fr; gap:30px}
}
@media (max-width:720px){
  .sec,.phone-sec{padding:64px 0}
  .hero{padding:44px 0 68px}
  .wrap{padding:0 18px}
  .head{margin-bottom:38px}
  .loop-grid,.feat-grid,.proof-grid,.plan-grid,.strip-row{grid-template-columns:minmax(0,1fr)}
  .onboard-steps{grid-template-columns:minmax(0,1fr); gap:22px}
  .app-body{grid-template-columns:1fr}
  .app-side{
    display:flex; gap:6px; overflow:hidden; border-right:0;
    border-bottom:1px solid var(--line-2); padding:9px 10px;
  }
  .side-item{padding:6px 9px; font-size:.74rem}
  .side-item:nth-child(n+4){display:none}
  .toast{position:static; max-width:100%; margin-top:14px}
  .util-l{display:none}
  .util-in{justify-content:center; gap:12px; padding:8px 18px}
  .plan-feature{margin-top:14px}
  .audit-shell{padding:30px 20px; border-radius:var(--r-l)}
  .audit-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .audit-ring{width:76px;height:76px;flex:0 0 76px;border-width:3px}
  .audit-ring span{font-size:1.65rem}
  .audit-cta{gap:12px}
  .audit-cta .btn-pill{width:100%}
  .form-card{padding:22px 18px}
  .foot-cols{grid-template-columns:1fr; gap:26px}
  .foot-base{flex-direction:column; gap:6px}
  .cta-row .btn{flex:1 1 100%}
  .frow{grid-template-columns:1fr}
  .towns span{padding:12px 16px; font-size:.94rem}
}
@media (max-width:400px){
  .wrap{padding:0 16px}
  h1{font-size:2.2rem}
  .price{font-size:2.25rem}
  .mark-text{font-size:.92rem}
}

@media (prefers-reduced-motion:reduce){
  *{transition:none !important; animation:none !important}
  /* these start at opacity:0 and are revealed BY an animation — with animation
     suppressed they must be shown outright, never left invisible. */
  .audit-step,.audit-findings li{opacity:1 !important; transform:none !important}
  #auditResult{opacity:1 !important}
}

/* ── merged from the page build-out (services + commercial) ──
   Duplicate rules defined identically by both builders were de-duplicated. */
/* ═══════════════════════════════════════════════════════════════════════
   add-services.css — additions for web / ai / photography / marketing.
   Loaded AFTER assets/v2.css. Nothing here overrides an existing v2 rule
   except the two current-page nav states, which v2.css does not define.
   Every colour is taken from a v2.css token — no new palette.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── current page state in the nav ─────────────────────────────────────
   v2.css styles :hover but has no resting "you are here" state, and the
   brief requires the nav to be otherwise byte-identical to index.html's. */
.nav-links a[aria-current="page"]{color:var(--indigo); border-bottom-color:var(--indigo)}
.menu-panel a[aria-current="page"]{background:var(--soft); color:var(--indigo); font-weight:700}
/* ── centred closing CTA band ──────────────────────────────────────────
   The live pages all end on a centred "cta-strip". v2.css has .center and
   .head but no centred CTA block, so this is the one layout it lacks. */
.cta-band{max-width:820px; margin:0 auto; text-align:center}
.cta-band h2{margin-bottom:14px}
.cta-band .sub{margin:0 auto 26px}
.cta-band .cta-row{justify-content:center}
/* a CTA row that follows body copy directly rather than a list */
.cta-row.push{margin-top:28px}
/* ── "what's included" check list ──────────────────────────────────────
   Same tick treatment as .plan li, but as a standalone multi-column list.
   .plan li is scoped to .plan, so it cannot be reused directly. */
.inc-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px}
.inc-grid li{
  position:relative; padding:15px 18px 15px 48px;
  border:1px solid var(--line); border-radius:var(--r-m); background:var(--white);
  color:var(--body); font-size:.95rem; line-height:1.4; box-shadow:var(--sh-1);
}
.inc-grid li::before{
  content:""; position:absolute; left:17px; top:16px; width:18px; height:18px;
  border-radius:50%; background:var(--indigo-t);
}
.inc-grid li::after{
  content:""; position:absolute; left:22.5px; top:19.5px; width:5px; height:8px;
  border:solid var(--indigo); border-width:0 2px 2px 0; transform:rotate(42deg);
}
.inc-grid.on-dark li{background:var(--dark-2); border-color:var(--dark-line); color:var(--on-dark-2)}
.inc-grid.on-dark li::before{background:rgba(185,192,255,.16)}
.inc-grid.on-dark li::after{border-color:var(--lav)}
/* ── two-up card row (v2 only ships a 3-up .feat-grid) ─────────────── */
.duo-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px}
/* ── category label inside a .feat card ────────────────────────────────
   Reuses the .draft-kind type token; only the box model changes. */
.feat .draft-kind{display:block; margin-bottom:9px}
.feat .feat-price{
  display:block; margin-top:12px; font-weight:800; color:var(--ink);
  font-size:1.05rem; letter-spacing:-.02em;
}
/* ── FAQ accordion (ai.html) ────────────────────────────────────────
   NOTE: pricing/care also needed a FAQ, so this block is kept BYTE-IDENTICAL
   to the .faq rules in add-commercial.css. If the two files are ever folded
   into v2.css, this component must be de-duplicated, not merged twice. */
.faq{display:grid; gap:12px; max-width:860px}
.faq details{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-m); box-shadow:var(--sh-1);
}
.faq summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:18px 22px; font-weight:700; color:var(--ink); font-size:1rem; line-height:1.4;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:""; flex:0 0 9px; width:9px; height:9px; margin-top:-5px;
  border:solid var(--indigo); border-width:0 2.2px 2.2px 0; transform:rotate(45deg);
  transition:transform .18s ease, margin-top .18s ease;
}
.faq details[open] summary::after{transform:rotate(-135deg); margin-top:3px}
.faq details>p{padding:0 22px 20px; font-size:.96rem; color:var(--body); max-width:72ch}
/* ── a plain stack of mockups outside a .loop-card ─────────────────── */
.mock-stack{display:grid; gap:14px}
.mock-stack .mini-ui{margin-top:0}
@media (max-width:720px){
  .inc-grid,.duo-grid{grid-template-columns:minmax(0,1fr)}
  .cta-band .cta-row .btn{flex:1 1 100%}
  .faq summary{padding:16px 18px}
  .faq details>p{padding:0 18px 18px}
}
/* ═══════════════════════════════════════════════════════════════════════
   add-commercial.css — components needed by pricing / work / realtors /
   care / free / portal that assets/v2.css does not ship.

   Rules followed: v2.css is never edited or overridden, only extended.
   Everything below uses v2 tokens (colours, radii, shadows) so the pages
   stay inside the Product-led design system.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── single-column page hero ────────────────────────────────────────────
   v2 only ships .hero-grid (two columns, copy + product mockup). Interior
   pages that have no mockup need a measured single column instead.       */
.hero-solo{position:relative; z-index:1; max-width:900px}
.hero-solo .lede{max-width:58ch}
/* ── project cards — work.html ──────────────────────────────────────── */
.proj-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px}
.proj{
  display:grid; gap:8px; align-content:start; text-decoration:none;
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-l);
  padding:26px 24px; box-shadow:var(--sh-1);
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
a.proj:hover{transform:translateY(-3px); box-shadow:var(--sh-2); border-color:#BFC7EA}
.proj-kind{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:.7rem; font-weight:700;
  letter-spacing:.13em; text-transform:uppercase; color:var(--indigo);
}
.proj h3{font-size:1.12rem; line-height:1.34}
.proj p{font-size:.94rem; color:var(--body)}
.proj-go{font-size:.88rem; font-weight:700; color:var(--indigo)}
.proj .status{margin-top:6px}
/* ── static number panels — work.html ───────────────────────────────────
   Written as plain text, never counted up by script: the live page used
   data-target attributes and rendered 0 with JavaScript off.            */
.stats-row{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
.stat{
  background:var(--dark-2); border:1px solid var(--dark-line); border-radius:var(--r-l);
  padding:24px 22px;
}
.stat b{
  display:block; font-size:2.35rem; font-weight:800; color:var(--on-dark);
  letter-spacing:-.03em; line-height:1;
}
.stat small{display:block; margin-top:10px; font-size:.88rem; color:var(--on-dark-2); line-height:1.45}
/* ── four-across plans — pricing.html carries Essentials as well ────── */
.plan-grid.plan-4{grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px}
.plan-grid.plan-4 .plan{padding:26px 22px}
.plan-grid.plan-4 .price{font-size:2.15rem}
/* ── offer bridge — pricing.html ────────────────────────────────────── */
.bridge{
  display:flex; align-items:center; justify-content:space-between; gap:26px; flex-wrap:wrap;
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-xl);
  padding:26px 28px; box-shadow:var(--sh-2); margin-top:22px;
}
.bridge-copy{flex:1 1 420px; min-width:0}
.bridge b{
  display:block; color:var(--ink); font-size:1.14rem; font-weight:800;
  letter-spacing:-.02em; margin-bottom:7px;
}
.bridge p{font-size:.95rem; color:var(--body)}
.bridge .btn{flex:0 0 auto}
/* ── two-column ticked list — pricing.html add-ons ──────────────────── */
.check-cols{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 32px}
.check-cols li{position:relative; padding-left:27px; font-size:.96rem; color:var(--body); line-height:1.5}
.check-cols li::before{
  content:""; position:absolute; left:0; top:4px; width:18px; height:18px;
  border-radius:50%; background:var(--indigo-t);
}
.check-cols li::after{
  content:""; position:absolute; left:6px; top:7.5px; width:5px; height:8px;
  border:solid var(--indigo); border-width:0 2px 2px 0; transform:rotate(42deg);
}
.check-cols a{font-weight:600}
/* ── FAQ — pricing.html and care.html ───────────────────────────────── */
.faq{display:grid; gap:12px; max-width:860px}
/* ── stage label inside the numbered step card — care.html ──────────────
   v2's .onboard-steps span:not(.on-n) rule out-specifies plain helper
   classes, so the stage word needs its own matching-specificity rule.   */
.onboard-steps span.step-kind{
  font-family:"JetBrains Mono",ui-monospace,monospace; font-size:.68rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--indigo); line-height:1.4;
}
/* ── summary row at the foot of a portal mock card — care.html ──────── */
.ui-foot{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-top:13px; padding-top:12px; border-top:1px solid var(--line-2);
}
.ui-foot small{font-size:.78rem; color:var(--body-2); font-weight:600}
.ui-foot b{font-size:1.2rem; font-weight:800; color:var(--ink); letter-spacing:-.02em}
/* .phone-stage centres its child, which would shrink a card to max-content
   and overflow narrow screens — the mock card fills the column instead. */
.phone-stage>.ui-card{align-self:stretch; width:100%}
/* ── narrow single-column form — free.html claim ────────────────────── */
.form-narrow{max-width:580px; margin:0 auto}
/* ── links inside dark cards ────────────────────────────────────────────
   v2 sets a{color:var(--indigo)}
globally, which is unreadable on the dark
   card surface. Dark-card links take the lavender accent instead.        */
.proof a{color:var(--lav); font-weight:600}
/* ── responsive ─────────────────────────────────────────────────────── */
@media (max-width:980px){
  .proj-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plan-grid.plan-4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .proj-grid,.check-cols,.stats-row{grid-template-columns:minmax(0,1fr)}
  .plan-grid.plan-4{grid-template-columns:minmax(0,1fr)}
  .bridge{padding:22px 20px; gap:18px}
  .bridge .btn{width:100%}
  .faq summary{padding:16px 18px}
  .faq details>p{padding:0 18px 18px}
  .stat b{font-size:2.1rem}
}
