/* /assets/site.css */
/* ============================================================
   Orbis Systems — orbismerchant.com · foundation stylesheet
   Single-authored (Phase 1). Page partials are appended after
   the marker at the end of this file — never edit above it
   from a page task.
   Tokens: Orbis DS export e1f3d1 + marketing deltas (README).
   Rule of the system: BLUE = GO, RED = STOP (danger only).
   Self-hosted fonts. No external origins. CSP style-src 'self'.
   ============================================================ */

/* ---- Fonts (self-hosted woff2; Inter stacks fall back to Noto Sans Arabic) ---- */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/inter-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/inter-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/inter-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/inter-700.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/spacegrotesk-500.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/spacegrotesk-600.woff2') format('woff2')}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/spacegrotesk-700.woff2') format('woff2')}
@font-face{font-family:'Noto Sans Arabic';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/noto-arabic-400.woff2') format('woff2')}
@font-face{font-family:'Noto Sans Arabic';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/noto-arabic-600.woff2') format('woff2')}

/* ---- Tokens ---- */
:root{
  /* brand blues (BLUE = GO) */
  --blue-anchor:#0A44D1;--blue-anchor-600:#093BB8;--blue-anchor-700:#07308F;
  --blue-electric:#0062E6;--blue-electric-600:#0056CC;
  --blue-50:#EAF1FE;--blue-100:#D6E4FD;--blue-200:#AEC9FB;--blue-300:#7BA6F6;
  /* marketing navy */
  --navy:#0A2A6B;--navy-deep:#071B49;--footer-bg:#060E26;
  --on-navy-link:#D5E1F7;--on-navy-body:#B7C6E4;--on-navy-fine:#9EB6E8;--on-navy-selected:#BFD3FF;
  /* ink */
  --ink:#1A1D24;--ink-900:#1F2328;--ink-700:#3A3F47;--ink-muted:#6B7178;
  /* surfaces */
  --surface:#FFFFFF;--page:#F4F5F7;--sunken:#ECEEF0;--field:#ECEEF2;
  --border:#E2E4E8;--border-strong:#CACDD3;--border-input:#D3D7DD;--divider:#EEEFF1;
  --surface-dark:rgba(24,27,33,.9);
  /* feedback (RED = STOP) */
  --success:#16A34A;--success-50:#E7F6ED;--success-text:#147A38;
  --warning:#D97706;--warning-50:#FCF1E2;--warning-text:#B45309;
  --danger:#C81E2D;--danger-600:#AE1626;--danger-50:#FBE9EB;
  /* accents — icon chips / data-viz only, never buttons */
  --amber:#D97706;--amber-bright:#F7B23B;--amber-bright-2:#FFCE7A;--amber-bright-rgb:247,178,59;
  --amber-text:#9A5208;--amber-tint:#FBEED6; /* a11y 2026-07-11: was #B4610A (4.14:1 on --page); #9A5208 = 5.37:1 on --page, 5.11:1 on --amber-tint, 5.86:1 on white */
  --teal-text:#0B6570;--teal-tint:#D9F1F2;--teal-tint-strong:#BFE6E8; /* a11y: was #0E7C87 (4.19:1 on --teal-tint); #0B6570 = 5.73:1 on tint, 6.76:1 on white */
  --chart-bar:#B9C9E6;--chart-bar-active:#5E7FB8;--chart-track:#EDF0F5;
  /* gradients */
  --gradient-display:linear-gradient(118deg,#0A44D1 0%,#0062E6 52%,#2E8BFF 100%);
  --gradient-hero:linear-gradient(164deg,#071B49 0%,#0A2A6B 32%,#0A44D1 100%);
  --gradient-wipe:linear-gradient(165deg,#0A2A6B 0%,#0A44D1 55%,#0E5AE6 100%);
  /* type */
  --font-body:'Inter','Noto Sans Arabic',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Space Grotesk','Inter','Noto Sans Arabic',system-ui,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  /* shadows (navy-tinted, restrained) */
  --shadow-sm:0 1px 2px rgba(31,35,40,.06),0 1px 3px rgba(31,35,40,.08);
  --shadow-md:0 12px 30px -18px rgba(31,35,40,.35);
  --shadow-lg:0 24px 60px -48px rgba(31,35,40,.4);
  --shadow-pill:0 8px 30px -14px rgba(20,30,60,.28),inset 0 1px 0 rgba(255,255,255,.65);
  --shadow-menu:0 24px 54px -26px rgba(15,18,24,.45);
  /* radii (marketing scale: inputs 10–12, cards 14–18, pills 999) */
  --r-input:10px;--r-btn:12px;--r-chip:11px;--r-card:16px;--r-card-lg:18px;--r-panel:22px;--r-pill:999px;
  /* layout */
  --wrap:1240px;--wrap-tight:1120px;--header-clear:104px;
  /* focus */
  --focus-ring:0 0 0 3px rgba(0,98,230,.35);
}

/* ---- Reset / base ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:110px;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);background:var(--page);color:var(--ink-900);
  font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#orbis-root{min-height:100vh;overflow-x:clip;position:relative}
img,svg{max-width:100%}
img{display:block;height:auto}
a{color:var(--blue-electric);text-decoration:none}
a:hover{color:var(--blue-anchor)}
button{font-family:var(--font-body)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;color:var(--ink);line-height:1.08;letter-spacing:-.02em}
p{color:var(--ink-700)}
strong{color:var(--ink-900);font-weight:600}
::selection{background:var(--blue-100);color:var(--ink-900)}
:focus-visible{outline:3px solid var(--blue-electric);outline-offset:2px;border-radius:4px}

/* ---- Helpers ---- */
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:24px;padding-right:24px}
.wrap-tight{max-width:var(--wrap-tight);margin:0 auto;padding-left:24px;padding-right:24px}
.page-top{padding-top:var(--header-clear)}
.tnum{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-48px;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;z-index:2000;transition:top .15s}
.skip-link:focus{top:12px;color:#fff}
.muted{color:var(--ink-muted)}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* ---- Kicker (mono uppercase eyebrow) + section furniture ---- */
.kicker{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--blue-anchor)}
.kicker-amber{color:var(--amber-text)}
.kicker-onnavy{color:var(--on-navy-selected)}
.kicker-muted{color:var(--ink-muted)}
.kicker-tick{display:inline-block;width:16px;height:3px;border-radius:2px;background:currentColor;vertical-align:middle;margin-right:10px}
.sec-rule{display:flex;align-items:center;gap:16px;margin-bottom:26px}
.sec-rule::after{content:"";flex:1;height:1px;background:var(--border)}
.sec-head{max-width:760px}
.sec-head h2{font-size:clamp(28px,4vw,44px);letter-spacing:-.03em;line-height:1.06;margin-top:12px}
.sec-head p{font-size:17px;line-height:1.6;margin-top:14px}
.display{font-size:clamp(34px,5.4vw,58px);letter-spacing:-.03em;line-height:1.03}
.grad-text{background-image:var(--gradient-display);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--blue-anchor);padding-bottom:.1em}

/* ---- Buttons (verbs; blue = go) ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:0 22px;border:1px solid transparent;border-radius:var(--r-btn);
  font-family:var(--font-body);font-size:14.5px;font-weight:600;cursor:pointer;white-space:nowrap;
  transition:background-color .2s,border-color .2s,color .2s,transform .12s}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--blue-anchor);color:#fff}
.btn-primary:hover{background:var(--blue-anchor-600);color:#fff}
.btn-primary:active{background:var(--blue-anchor-700)}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{background:#111318;color:#fff}
.btn-ghost{background:transparent;color:var(--ink-900);border-color:var(--border-strong)}
.btn-ghost:hover{background:var(--surface);color:var(--ink-900)}
.btn-pill{border-radius:var(--r-pill);min-height:44px;padding:0 22px;font-size:14.5px} /* consistency: align pill CTA font size with body .btn (audit finding 10a) */
.btn-lg{min-height:52px;padding:0 26px;font-size:15.5px}
.btn-block{width:100%}
.btn[disabled]{opacity:.6;cursor:default;transform:none}

/* ---- Header · marketing glass pill (fixed) ---- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:14px 20px}
.header-pill{position:relative;max-width:var(--wrap-tight);margin:0 auto;min-height:62px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px 12px 6px 22px;
  background:rgba(255,255,255,.85);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.7);border-radius:var(--r-pill);box-shadow:var(--shadow-pill)}
.brand{display:inline-flex;align-items:center;gap:11px;min-height:44px;color:var(--ink-900)}
.brand:hover{color:var(--ink-900)}
.brand svg{flex:none}
.brand-lockup{display:inline-flex;align-items:baseline;gap:7px}
.brand-word{font-family:var(--font-display);font-weight:700;font-size:14px;letter-spacing:.16em;line-height:1;color:inherit}
.brand-sub{font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:.16em;line-height:1;color:var(--ink-muted)}
.header-nav{display:flex;align-items:center;gap:24px;font-size:13.5px;font-weight:500}
.header-nav a{color:var(--ink-700);padding:12px 0;min-height:44px;display:inline-flex;align-items:center;
  background-image:linear-gradient(var(--blue-anchor),var(--blue-anchor));background-repeat:no-repeat;
  background-position:0 100%;background-size:0% 2px;background-origin:content-box;
  transition:background-size .32s cubic-bezier(.22,.7,.2,1),color .22s}
.header-nav a:hover{color:var(--blue-anchor);background-size:100% 2px}
.header-nav a[aria-current="page"]{color:var(--blue-anchor)}
.header-actions{display:flex;align-items:center;gap:10px}
.nav-toggle{width:44px;height:44px;border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);
  display:none;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-900);
  transition:border-color .25s,background-color .25s}
.nav-toggle:hover{border-color:var(--border-strong);background:var(--page)}
/* no-JS: toggle hidden, links inline/wrapped — navigation works without JS */
.no-js .nav-toggle{display:none}
.no-js .header-pill{flex-wrap:wrap;border-radius:28px}
.no-js .header-nav{flex-wrap:wrap;position:static}
/* JS + narrow: links collapse into a sheet below the pill */
@media (max-width:1023px){
  .js .nav-toggle{display:inline-flex}
  .js .header-nav{display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;
    flex-direction:column;align-items:stretch;gap:2px;padding:10px;
    background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card-lg);box-shadow:var(--shadow-menu)}
  .js .header-nav.open{display:flex}
  .js .header-nav a{min-height:48px;padding:13px 14px;border-radius:var(--r-chip);font-size:15px;font-weight:600;color:var(--ink-900);background-image:none}
  .js .header-nav a:hover{background-color:var(--page);color:var(--blue-anchor)}
}
@media (max-width:700px){
  .js .header-cta{display:none}
}

/* ---- Header · legal (sticky glass bar) ---- */
.legal-header{position:sticky;top:0;z-index:100;background:rgba(244,245,247,.82);
  -webkit-backdrop-filter:saturate(160%) blur(8px);backdrop-filter:saturate(160%) blur(8px);
  border-bottom:1px solid var(--border)}
.legal-header-in{max-width:var(--wrap-tight);margin:0 auto;padding:0 24px;height:64px;
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.legal-back{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--ink-700);min-height:44px}
.legal-back:hover{color:var(--blue-anchor)}

/* ---- Cards / chips / stars ---- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:26px;box-shadow:var(--shadow-sm)}
.card-raise{box-shadow:var(--shadow-lg);transition:transform .25s,border-color .25s}
.card-raise:hover{transform:translateY(-3px);border-color:var(--border-strong)}
.chip{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 13px;
  border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);
  font-size:12.5px;font-weight:600;color:var(--ink-900)}
.stars{display:inline-flex;gap:3px;color:var(--amber)}
.stars svg{width:15px;height:15px;fill:currentColor}
.stars-onnavy{color:#fff}

/* ---- Forms (matched set with site.js + api/contact.js) ---- */
.form-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:34px;box-shadow:var(--shadow-lg)}
.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}
.field label{font-size:13px;font-weight:600;color:var(--ink-700)}
.field label .opt{font-weight:400;color:var(--ink-muted)}
.field input,.field select,.field textarea{width:100%;font-family:var(--font-body);font-size:16px;color:var(--ink-900);
  background:var(--surface);border:1px solid var(--border-input);border-radius:var(--r-input);
  min-height:48px;padding:0 14px;transition:border-color .2s,box-shadow .2s}
.field textarea{min-height:110px;padding:12px 14px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue-electric);box-shadow:0 0 0 3px rgba(0,98,230,.16)}
.field .err{display:none;color:var(--danger);font-size:12.5px}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger);box-shadow:0 0 0 3px rgba(200,30,45,.14)}
.field.invalid .err{display:block}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field-row .field{margin-bottom:0}
@media (max-width:560px){.field-row{grid-template-columns:1fr}}
/* segmented control — real radios, works without JS */
.seg{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--field);border-radius:var(--r-btn);padding:4px}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg label{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:9px;
  font-size:13.5px;font-weight:600;color:var(--ink-700);cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s}
.seg input:checked + label{background:var(--surface);color:var(--ink-900);box-shadow:var(--shadow-sm)}
.seg input:focus-visible + label{box-shadow:var(--focus-ring)}
.seg-label{font-size:13px;font-weight:600;color:var(--ink-700);margin-bottom:8px}
/* honeypot */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{font-size:12.5px;line-height:1.55;color:var(--ink-muted);margin-top:8px;text-align:center}
.form-error{display:none;color:var(--danger);text-align:center;font-size:12.5px;margin-top:6px}
.form-error.show{display:block}
/* success swap */
.form-ok{display:none;flex-direction:column;align-items:center;text-align:center;padding:36px 12px}
.form-ok .big{width:64px;height:64px;border-radius:var(--r-pill);background:var(--success-50);color:var(--success-text);
  display:flex;align-items:center;justify-content:center}
.form-ok .big svg{width:30px;height:30px}
.form-ok h3{font-size:24px;margin-top:22px;color:var(--ink-900)}
.form-ok p{font-size:15px;line-height:1.6;margin-top:12px;max-width:360px}
.form-sent .form-body{display:none}
.form-sent .form-ok{display:flex}

/* ---- Legal shell (sticky TOC + body) ---- */
.legal-main{max-width:var(--wrap-tight);margin:0 auto;padding:56px 24px 100px}
.legal-main h1{font-size:clamp(34px,5vw,52px);letter-spacing:-.03em;line-height:1.03;margin:12px 0 0;color:var(--ink)}
.legal-meta{font-size:15px;color:var(--ink-muted);margin-top:14px}
.legal-grid{display:grid;grid-template-columns:220px 1fr;gap:56px;margin-top:48px;align-items:start}
.legal-toc{position:sticky;top:104px}
.legal-toc .cap{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink-muted);margin-bottom:12px;padding-left:16px}
.legal-toc a{display:block;padding:7px 0 7px 16px;border-left:2px solid var(--border);
  font-size:13.5px;color:var(--ink-muted);line-height:1.35;transition:color .2s,border-color .2s}
.legal-toc a:hover{color:var(--ink-900)}
.legal-toc a.active{color:var(--blue-anchor);border-left-color:var(--blue-anchor);font-weight:600}
.legal-body h2{font-size:24px;letter-spacing:-.02em;color:var(--ink-900);margin:44px 0 14px;scroll-margin-top:110px}
.legal-body h2:first-child{margin-top:0}
.legal-body h3{font-size:17px;color:var(--ink-900);margin:24px 0 8px}
.legal-body p{font-size:15.5px;line-height:1.7;margin:0 0 14px;max-width:660px}
.legal-body ul{margin:0 0 14px;padding-left:20px;max-width:660px}
.legal-body li{font-size:15.5px;line-height:1.7;color:var(--ink-700);margin:0 0 7px}
.legal-body .placeholder{background:var(--warning-50);border:1px solid var(--warning);border-radius:var(--r-input);
  padding:12px 14px;color:var(--warning-text);font-size:14px;font-weight:600}
@media (max-width:860px){
  .legal-grid{grid-template-columns:1fr;gap:24px}
  .legal-toc{position:static;margin-bottom:24px}
}

/* ---- Footer · marketing (dark navy; skyline variant on landing only) ---- */
.site-footer{position:relative;overflow:hidden;background:var(--footer-bg);border-top:1px solid var(--navy);color:#fff}
.footer-sky{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.footer-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,46,.56) 0%,rgba(8,18,46,.5) 24%,rgba(7,17,44,.4) 70%,rgba(5,12,32,.84) 100%)} /* a11y: 24% stop .18->.5 so bright skyline pixels can't surface under footer column titles */
.footer-inner{position:relative;z-index:2;max-width:var(--wrap);margin:0 auto;padding:64px 24px 0}
.footer-grid{display:flex;justify-content:space-between;gap:40px 56px;flex-wrap:wrap}
.footer-brand{max-width:310px;display:flex;flex-direction:column;gap:15px}
.footer-brand-row{display:inline-flex;align-items:center;gap:11px}
.footer-brand .brand-word{color:#fff;font-size:13px}
.footer-brand .brand-sub{color:var(--on-navy-fine);font-size:13px}
.footer-blurb{font-size:13.5px;color:var(--on-navy-body);line-height:1.65}
.footer-marks{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.mark-chip{height:26px;padding:0 9px;border-radius:6px;background:#fff;display:inline-flex;align-items:center;gap:3px;
  font-size:11px;font-weight:700;color:var(--ink)}
.mark-visa{font-style:italic;font-weight:800;letter-spacing:-.02em;color:#1A1F71}
.mark-mc{padding:0 8px;justify-content:center}
.mark-apple{background:#0B0D12;color:#fff;font-weight:600;gap:2px}
.mark-gpay{color:#3C4043;font-weight:600}
.mark-amex{background:#016FD0;color:#fff;font-weight:800;font-size:10px;letter-spacing:.02em}
.footer-cols{display:flex;gap:54px;flex-wrap:wrap}
.footer-col{display:flex;flex-direction:column;gap:2px}
.footer-col-title{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--on-navy-body);margin-bottom:4px} /* a11y: was rgba(190,208,244,.62) — 1.62:1 worst-pixel over landing skyline; solid #B7C6E4 removes the alpha cap */
.footer-col a{color:var(--on-navy-link);font-size:14px;line-height:1.3;min-height:44px;display:inline-flex;align-items:center;transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-giant{margin:44px 0 0;line-height:.82;pointer-events:none;user-select:none;text-align:center}
.footer-giant span{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(38px,11.5vw,166px);
  letter-spacing:-.04em;white-space:nowrap;color:#fff;opacity:.96;text-shadow:0 10px 50px rgba(2,10,34,.6)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:26px;padding:20px 0 28px;border-top:1px solid rgba(255,255,255,.16)}
.footer-mono{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--on-navy-fine)}
@media (max-width:520px){.footer-cols{gap:28px 40px}}

/* ---- Footer · legal (compact white) ---- */
.legal-footer{background:var(--surface);border-top:1px solid var(--border)}
.legal-footer-in{max-width:var(--wrap-tight);margin:0 auto;padding:18px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:8px 28px;flex-wrap:wrap}
.legal-footer-nav{display:flex;flex-wrap:wrap;gap:0 22px}
.legal-footer-nav a{font-size:13.5px;color:var(--ink-muted);min-height:44px;display:inline-flex;align-items:center}
.legal-footer-nav a:hover{color:var(--blue-anchor)}
.legal-footer-nav a[aria-current="page"]{color:var(--ink-900);font-weight:600}
.legal-footer-tel{font-size:13.5px;font-weight:600;color:var(--ink-700);min-height:44px;display:inline-flex;align-items:center}
.legal-footer-tel:hover{color:var(--blue-anchor)}
.legal-footer-cw{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--ink-muted)}

/* ---- Scroll reveals (gated: no-JS shows everything) ---- */
.js .reveal{opacity:0;transform:translateY(24px);
  transition:opacity .6s cubic-bezier(.22,.7,.2,1),transform .7s cubic-bezier(.22,.7,.2,1)}
.js .reveal.in{opacity:1;transform:none}
.js .reveal-d1{transition-delay:.08s}
.js .reveal-d2{transition-delay:.16s}
.js .reveal-d3{transition-delay:.24s}

/* ---- Marquee (CSS-only infinite loop; duplicate content aria-hidden) ---- */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;align-items:center;gap:34px;width:max-content;animation:om-marquee 46s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes om-marquee{to{transform:translateX(-50%)}}

/* ---- Page-transition wipe (markup injected by site.js; none in pages) ---- */
#om-transition{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
  background:var(--gradient-wipe);transform:translateY(0);
  transition:transform .62s cubic-bezier(.76,0,.24,1);will-change:transform}
#om-transition.om-up{transform:translateY(-100%)}
#om-transition.om-parked{transition:none;transform:translateY(100%)}
#om-transition.om-done{display:none}
.om-tr-inner{display:flex;flex-direction:column;align-items:center;gap:18px;opacity:1;transition:opacity .3s}
#om-transition.om-fade .om-tr-inner{opacity:0}
.om-tr-mark{position:relative;width:70px;height:70px;display:flex;align-items:center;justify-content:center}
.om-tr-mark::before{content:"";position:absolute;inset:0;border-radius:50%;
  border:2px solid rgba(255,255,255,.28);border-top-color:#fff;animation:om-tr-spin 4s linear infinite}
.om-tr-word{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.26em;color:#fff}

@keyframes om-tr-spin{to{transform:rotate(360deg)}}
@keyframes om-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes om-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes om-pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* ---- Reduced motion: kill transitions/animations; wipe near-instant; marquee paused ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  html{scroll-behavior:auto}
  .js .reveal{opacity:1!important;transform:none!important}
  .marquee-track{animation:none!important}
  .om-tr-mark::before{animation:none!important}
}

/* ===== PAGE PARTIALS BELOW ===== */

/* ===== PARTIAL: 10-demos.css ===== */
/* ===== dmr / dmc / dmt · demos (static extractions of the prototype iframes) =====
   Fonts and colors are each demo's OWN values (system stacks; receipt blue #0C61DB /
   ink #14161B) — deliberately NOT the site's loaded Inter or token set, so the
   compositions match the reference captures pixel-for-pixel. Do not "tokenize" these. */

/* ---------- dmr · register (ipad-pos) ----------
   Fills its host (the landing iPad frame: fixed height, overflow hidden, radius 26px).
   Designed around ~924 x 540. */
.dmr-root{
  position:relative;width:100%;height:100%;display:flex;flex-direction:column;
  background:#F4F5F7;color:#1F2328;overflow:hidden;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
.dmr-root *{box-sizing:border-box;}

.dmr-top{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#fff;border-bottom:1px solid #E7E9EE;flex:none;}
.dmr-logo{width:30px;height:30px;flex:none;}
.dmr-store{display:flex;flex-direction:column;line-height:1.15;}
.dmr-store b{font-size:14px;font-weight:750;letter-spacing:-.01em;}
.dmr-store span{font-size:11px;color:#6B7178;}
.dmr-search{margin-left:8px;display:flex;align-items:center;gap:7px;color:#9AA0A8;font-size:13px;background:#F4F5F7;border:1px solid #E7E9EE;border-radius:9px;padding:8px 12px;min-width:150px;}
.dmr-reg{margin-left:auto;display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:#3A3F47;}
.dmr-dot{width:26px;height:26px;border-radius:50%;background:#EAF1FE;color:#0A44D1;display:grid;place-items:center;font-size:10px;font-weight:800;}

.dmr-body{flex:1;display:flex;min-height:0;}
.dmr-menu{flex:1.65;padding:16px 18px;overflow:hidden;}
.dmr-cats{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px;}
.dmr-cat{font-size:12.5px;font-weight:600;color:#6B7178;padding:7px 13px;border-radius:999px;border:1px solid #E7E9EE;background:#fff;white-space:nowrap;}
.dmr-cat.dmr-on{background:#1F2328;color:#fff;border-color:#1F2328;}
.dmr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:11px;}
.dmr-tile{background:#fff;border:1px solid #E7E9EE;border-radius:14px;overflow:hidden;text-align:left;padding:0;}
.dmr-thumb{height:86px;display:grid;place-items:center;position:relative;}
.dmr-thumb svg{width:52px;height:52px;filter:drop-shadow(0 4px 7px rgba(20,30,60,.14));}
.dmr-tmeta{padding:9px 11px 11px;background:#fff;}
.dmr-tname{font-size:12.5px;font-weight:650;letter-spacing:-.01em;line-height:1.25;}
.dmr-tsub{font-size:11px;color:#9AA0A8;margin-top:2px;}
.dmr-tprice{font-size:12.5px;color:#1F2328;font-weight:700;margin-top:4px;font-variant-numeric:tabular-nums;}

/* category-tinted thumb backgrounds (from the source's CATBG map) */
.dmr-bg-produce{background:linear-gradient(135deg,#E9F7E6,#F5FBF3);}
.dmr-bg-dairy{background:linear-gradient(135deg,#E9F1FE,#F6F9FF);}
.dmr-bg-bread{background:linear-gradient(135deg,#FBEFD9,#FEF8EE);}
.dmr-bg-snacks{background:linear-gradient(135deg,#FBE6EB,#FEF4F7);}
.dmr-bg-condiments{background:linear-gradient(135deg,#F2ECFB,#F9F5FE);}
.dmr-bg-drinks{background:linear-gradient(135deg,#E3F4F5,#F2FBFB);}

.dmr-order{flex:1;min-width:266px;max-width:330px;background:#fff;border-left:1px solid #E7E9EE;display:flex;flex-direction:column;}
.dmr-ohead{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px;}
.dmr-ohead .dmr-t{font-size:16px;font-weight:750;}
.dmr-clr{font-size:12px;color:#6B7178;padding:4px 6px;border-radius:6px;}
.dmr-lines{flex:1;overflow:hidden;padding:2px 18px;}
.dmr-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#9AA0A8;gap:12px;padding:20px;}
.dmr-empty svg{opacity:.5;}
.dmr-empty p{font-size:13.5px;margin:0;max-width:190px;line-height:1.5;}
.dmr-charge{
  margin:6px 18px 18px;height:56px;border-radius:14px;background:#0A44D1;color:#fff;
  font-size:16px;font-weight:750;display:flex;align-items:center;justify-content:center;gap:9px;
  font-variant-numeric:tabular-nums;opacity:.4;box-shadow:none;
}

/* ---------- dmc · Apple Pay phone + cards (cards-fall) ----------
   Scene is 460 x 440; host centers it. Rest transforms from the source's `rest` map. */
.dmc-scene{
  position:relative;width:460px;height:440px;
  transform:scale(var(--dmc-s,1));
  animation:dmcSceneFloat 7s ease-in-out infinite;
  font-family:-apple-system,BlinkMacSystemFont,'Inter',system-ui,sans-serif;
}
.dmc-scene *{box-sizing:border-box;}
@keyframes dmcSceneFloat{
  0%,100%{transform:scale(var(--dmc-s,1)) translateY(0);}
  50%{transform:scale(var(--dmc-s,1)) translateY(-8px);}
}
@media (max-width:520px){.dmc-scene{--dmc-s:.82;}}
@media (prefers-reduced-motion:reduce){.dmc-scene{animation:none;}}

/* payment cards */
.dmc-card{position:absolute;width:210px;height:132px;border-radius:16px;box-shadow:0 26px 50px -22px rgba(10,20,45,.6),0 2px 6px rgba(10,20,45,.16);overflow:hidden;}
.dmc-visa{left:50%;top:50%;background:linear-gradient(140deg,#20356e,#0e1c44);transform:translate(-50%,-50%) translate(-150px,-16px) rotate(-13deg);}
.dmc-mc{left:50%;top:50%;background:linear-gradient(140deg,#2b2f38,#111318);transform:translate(-50%,-50%) translate(150px,-14px) rotate(13deg);}
.dmc-chip{position:absolute;top:20px;left:20px;width:30px;height:22px;border-radius:5px;background:linear-gradient(135deg,#E9CE86,#B78C3E);}
.dmc-chip::after{content:"";position:absolute;inset:5px 6px;border:1px solid rgba(120,90,30,.5);border-radius:2px;}
.dmc-wave{position:absolute;top:22px;left:58px;width:16px;height:18px;opacity:.9;}
.dmc-brand{position:absolute;bottom:14px;right:16px;}
.dmc-brand-visa{color:#fff;font-style:italic;font-weight:800;font-size:22px;letter-spacing:-.02em;}
.dmc-num{position:absolute;bottom:16px;left:18px;font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:12px;font-weight:600;opacity:.9;}
.dmc-visa .dmc-num{color:#cdd8f5;}
.dmc-mc .dmc-num{color:#c9cdd6;}

/* iPhone (Apple Pay success) */
.dmc-phone{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:178px;height:360px;border-radius:40px;
  background:linear-gradient(145deg,#3a3d42,#111318 55%,#0a0b0e);padding:6px;
  box-shadow:0 44px 84px -30px rgba(5,10,25,.72),0 0 0 1px rgba(255,255,255,.07) inset;z-index:6;}
.dmc-screen{position:relative;width:100%;height:100%;border-radius:34px;background:#fff;overflow:hidden;}
.dmc-island{position:absolute;top:10px;left:50%;transform:translateX(-50%);width:78px;height:23px;border-radius:14px;background:#000;z-index:4;}
.dmc-sbar{position:absolute;top:13px;left:0;right:0;height:20px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;z-index:3;}
.dmc-time{font-size:13px;font-weight:600;color:#0b0d12;letter-spacing:.02em;}
.dmc-sicons{display:flex;align-items:center;gap:5px;color:#0b0d12;}
.dmc-pcard{position:absolute;top:52px;left:15px;right:15px;height:104px;border-radius:13px;overflow:hidden;
  background:linear-gradient(160deg,#20242c 0%,#0b0d11 60%);box-shadow:0 14px 26px -12px rgba(0,0,0,.55);}
.dmc-shine{position:absolute;top:-40%;left:-10%;width:80%;height:180%;transform:rotate(20deg);
  background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.14) 45%,rgba(255,255,255,.03));}
.dmc-pchip{position:absolute;top:14px;left:14px;width:26px;height:19px;border-radius:4px;background:linear-gradient(135deg,#E9CE86,#B78C3E);}
.dmc-pwave{position:absolute;top:15px;left:46px;width:14px;height:16px;opacity:.85;}
.dmc-pnum{position:absolute;bottom:13px;left:15px;color:#c7ccd6;font-size:10px;font-weight:600;letter-spacing:.12em;font-variant-numeric:tabular-nums;}
.dmc-pvisa{position:absolute;bottom:10px;right:14px;text-align:right;color:#fff;}
.dmc-pvisa .dmc-v{font-style:italic;font-weight:800;font-size:16px;letter-spacing:-.02em;line-height:.9;}
.dmc-done{position:absolute;left:0;right:0;top:196px;display:flex;flex-direction:column;align-items:center;gap:11px;}
.dmc-check{width:46px;height:46px;border-radius:50%;border:2.5px solid #0a84ff;display:flex;align-items:center;justify-content:center;}
.dmc-lbl{font-size:14px;font-weight:400;color:#3a3f47;}

/* ---------- dmt · receipt-options terminal screen (receipt-screen-static + replay glyph) ----------
   Blue #0C61DB / ink #14161B are this demo's own reverse-engineered values — keep them. */
.dmt-device{
  position:relative;width:100%;height:100%;background:#FFFFFF;overflow:hidden;color:#14161B;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.dmt-device *{box-sizing:border-box;}
.dmt-screen{position:absolute;inset:0;display:flex;flex-direction:column;padding:26px 26px 30px;}
.dmt-topbar{display:flex;align-items:center;justify-content:space-between;height:26px;flex:0 0 auto;}
.dmt-brand{display:flex;align-items:center;gap:7px;color:var(--ink-700);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.dmt-mark{width:16px;height:16px;border-radius:5px;background:linear-gradient(150deg,#0C61DB,#0A4CB0);box-shadow:0 2px 5px rgba(12,97,219,.35);}
.dmt-iconbtn{width:34px;height:34px;border-radius:50%;color:#9AA1AC;display:grid;place-items:center;}
.dmt-iconbtn svg{width:19px;height:19px;}
.dmt-stage{position:relative;flex:1 1 auto;display:flex;}
.dmt-view{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding-top:6%;}
.dmt-badge{position:relative;width:92px;height:92px;border-radius:26px;background:#FFFFFF;display:grid;place-items:center;color:#0C61DB;margin-top:6px;box-shadow:0 10px 22px -6px rgba(12,97,219,.30),0 3px 8px rgba(20,22,27,.08),0 0 0 1px rgba(20,30,60,.03);}
.dmt-badge svg{width:46px;height:46px;}
.dmt-eyebrow{display:inline-flex;align-items:center;gap:6px;margin-top:22px;color:#0C61DB;font-size:13px;font-weight:600;}
.dmt-eyebrow svg{width:15px;height:15px;}
.dmt-heading{margin:8px 8px 0;text-align:center;font-size:25px;line-height:1.24;font-weight:640;letter-spacing:-.015em;color:#14161B;max-width:19ch;}
.dmt-options{width:100%;margin-top:30px;display:flex;flex-direction:column;gap:12px;}
.dmt-option{display:flex;align-items:center;gap:14px;width:100%;padding:15px 16px;background:#FFFFFF;border:1px solid #ECEEF2;border-radius:18px;box-shadow:0 1px 2px rgba(20,22,27,.04);color:#14161B;}
.dmt-opt-icon{flex:0 0 auto;width:44px;height:44px;border-radius:13px;background:#EAF1FD;color:#0C61DB;display:grid;place-items:center;}
.dmt-opt-icon svg{width:23px;height:23px;}
.dmt-opt-text{flex:1 1 auto;min-width:0;}
.dmt-opt-label{font-size:17px;font-weight:600;letter-spacing:-.005em;margin-right:.35em;}
.dmt-opt-desc{font-size:13px;font-weight:500;color:#6B7280;margin-top:1px;}
.dmt-opt-chev{flex:0 0 auto;color:#C3C9D2;display:grid;place-items:center;}
.dmt-opt-chev svg{width:20px;height:20px;}
.dmt-ghost{margin-top:auto;align-self:center;padding:12px 14px;color:#6B7280;font-size:15px;font-weight:600;}

/* crop wrappers — replace the prototype's iframe viewports (24px screen padding baked in) */
.dmt-crop-landing{height:610px;padding:24px;overflow:hidden;border-radius:26px;background:#FFFFFF;}
.dmt-crop-sms{width:100%;max-width:344px;height:648px;padding:24px;overflow:hidden;border-radius:22px;background:#FFFFFF;}

/* ===== PARTIAL: 20-landing.css ===== */
/* ===== lp · landing ===== */
/* Landing (index) partial. Prefixes: .lp- and .hero-. Composes the foundation
   (site.css): tokens, .btn, .kicker, .sec-rule, .card, .stars, forms, .marquee.
   All motion here is decorative CSS-only; the foundation's reduced-motion
   block kills every animation/transition globally. */

/* ---- lp keyframes ---- */
/* lp-drift removed 2026-07-11 (perf finding 1): animating background-position
   re-rasterized the full-hero dot layer every frame */
@keyframes lp-deblur{from{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}
@keyframes lp-drop{from{transform:translateY(105%)}to{transform:translateY(0)}}
@keyframes lp-ripple{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.7);opacity:0}}

/* ---- shared landing section furniture ---- */
.lp-wrap-mid{max-width:1180px;margin:0 auto}
.lp-h2{font-size:clamp(32px,4.5vw,52px);letter-spacing:-.03em;line-height:1.05;margin:0}
.lp-lede{font-size:16px;line-height:1.7;color:var(--ink-700);max-width:680px;margin:18px 0 0}

/* ============ HERO ============ */
.lp-hero{position:relative;padding:188px 24px 90px;overflow:hidden;background:var(--gradient-hero)}
.hero-glow{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 92% at 50% -14%,rgba(84,132,246,.5) 0%,rgba(10,42,107,0) 58%),
  radial-gradient(84% 66% at 102% -6%,rgba(60,150,255,.4),transparent 56%),
  radial-gradient(70% 60% at -2% 6%,rgba(12,80,235,.42),transparent 56%)}
.hero-dots{position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(255,255,255,.15) 1.2px,transparent 1.2px);background-size:27px 27px;
  -webkit-mask-image:radial-gradient(120% 78% at 50% 0%,#000,transparent 60%);
  mask-image:radial-gradient(120% 78% at 50% 0%,#000,transparent 60%)}
.hero-inner{max-width:var(--wrap);margin:0 auto;position:relative;display:flex;align-items:center;gap:36px;flex-wrap:wrap}
.hero-copy{flex:1 1 560px;min-width:340px}
.hero-kicker{font-family:var(--font-mono);font-size:11.5px;font-weight:600;letter-spacing:.2em;
  color:var(--amber-bright-2);animation:om-rise .6s cubic-bezier(.22,.7,.2,1) .05s both}
.hero-h1{position:relative;font-family:var(--font-display);font-weight:700;
  font-size:clamp(52px,7.5vw,112px);line-height:.95;letter-spacing:-.04em;margin:24px 0 0;color:#FFFFFF;
  animation:lp-deblur 1s cubic-bezier(.22,.7,.2,1) .06s both}
.hero-line{position:relative;display:block}
.hero-word{display:inline-block;white-space:nowrap}
.hero-gap{display:inline-block;width:.26em}
.hero-lm{display:inline-block;overflow:hidden;vertical-align:top}
.hero-l{display:inline-block;animation:lp-drop .7s cubic-bezier(.22,.7,.2,1) both}
.hero-amber{color:var(--amber-bright)}
.hero-l1{animation-delay:.12s}.hero-l2{animation-delay:.165s}.hero-l3{animation-delay:.21s}
.hero-l4{animation-delay:.255s}.hero-l5{animation-delay:.3s}.hero-l6{animation-delay:.345s}
.hero-l7{animation-delay:.39s}.hero-l8{animation-delay:.435s}.hero-l9{animation-delay:.48s}
.hero-sub{font-size:24px;line-height:1.4;font-weight:600;color:#FFFFFF;max-width:560px;margin:22px 0 0;
  animation:om-rise .6s cubic-bezier(.22,.7,.2,1) .5s both}
.hero-sub2{font-size:15px;line-height:1.6;color:#9FB6E1;max-width:520px;margin:14px 0 0;
  animation:om-rise .6s cubic-bezier(.22,.7,.2,1) .58s both}
.hero-ctas{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:36px 0 0;
  animation:om-rise .6s cubic-bezier(.22,.7,.2,1) .68s both}
.hero-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:54px;
  border-radius:var(--r-pill);font-size:15.5px;font-weight:600;
  transition:background-color .25s,border-color .25s,transform .15s}
.hero-btn:active{transform:scale(.96)}
.hero-btn-primary{padding:0 30px;background:var(--blue-anchor);color:#FFFFFF}
.hero-btn-primary:hover{background:var(--blue-anchor-600);color:#FFFFFF}
.hero-btn-primary:active{background:var(--blue-anchor-700)}
.hero-btn-ghost{padding:0 26px;background:rgba(255,255,255,.06);color:#FFFFFF;font-size:15px;
  border:1.5px solid rgba(255,255,255,.42)}
.hero-btn-ghost:hover{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.72);color:#FFFFFF}
.hero-chips{display:flex;align-items:center;flex-wrap:wrap;gap:8px 15px;margin:24px 0 0;
  font-size:13px;font-weight:500;color:#C6D4F2;animation:om-rise .6s cubic-bezier(.22,.7,.2,1) .74s both}
.hero-chip{display:inline-flex;align-items:center;gap:7px}
.hero-chip-dot{width:7px;height:7px;border-radius:50%;background:var(--amber-bright);
  box-shadow:0 0 0 3px rgba(247,178,59,.25);animation:om-pulse 2.2s ease-in-out infinite}
.hero-chip-sep{opacity:.4}

/* hero terminal mock (pure HTML/CSS; no hardware named) */
.hero-stage{flex:1.2 1 448px;min-width:340px;display:flex;justify-content:center;position:relative;
  padding:8px 0 96px;transform:scale(1.06);transform-origin:center;
  animation:om-rise .75s cubic-bezier(.22,.7,.2,1) .5s both}
.hero-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-47%) rotate(-4deg);
  width:474px;height:552px;border-radius:48px;
  background:linear-gradient(158deg,rgba(10,68,209,.07),rgba(0,98,230,.028) 58%,rgba(10,68,209,.055));
  border:1px solid rgba(10,68,209,.10);
  box-shadow:0 44px 100px -54px rgba(10,68,209,.55),inset 0 1px 0 rgba(255,255,255,.5);pointer-events:none}
.hero-halo{position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);width:540px;height:540px;
  background:radial-gradient(closest-side,rgba(0,98,230,.13),transparent 72%);pointer-events:none}
.hero-shadow{position:absolute;left:50%;bottom:72px;width:336px;height:62px;border-radius:50%;
  transform:translateX(-50%);
  background:radial-gradient(closest-side,rgba(11,16,30,.64),rgba(11,16,30,0) 74%);filter:blur(15px);pointer-events:none}
.hero-float{position:relative;animation:om-float 9s ease-in-out infinite}
.hero-vcard{position:absolute;bottom:-56px;left:50%;transform:translateX(-56%) rotate(4deg);
  width:192px;height:122px;border-radius:12px;background:linear-gradient(160deg,#252C40,#0F1421);
  border:1px solid rgba(255,255,255,.16);box-shadow:0 28px 54px -16px rgba(31,35,40,.5)}
.hero-vchip{position:absolute;top:15px;left:16px;width:27px;height:20px;border-radius:4px;
  background:linear-gradient(135deg,#D8B45C,#A97F2E)}
.hero-vlogo{position:absolute;bottom:10px;right:14px;font-style:italic;font-weight:800;font-size:16px;
  letter-spacing:-.02em;color:#F4F6FF}
.hero-dev{position:relative;width:292px;height:470px;border-radius:38px;
  background:linear-gradient(155deg,#FAFBFC,#E7E9EE 55%,#D8DBE1);border:1px solid #AFB4BF;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -3px 8px rgba(0,0,0,.13),
  0 44px 90px -28px rgba(31,35,40,.4),0 24px 60px -18px rgba(0,98,230,.16);
  transform:perspective(1200px) rotateY(-8deg) rotateX(4deg)}
.hero-dev-btn-r{position:absolute;right:-3px;top:106px;width:4px;height:56px;border-radius:3px;background:#AEB3BD}
.hero-dev-btn-l{position:absolute;left:-3px;top:96px;width:4px;height:34px;border-radius:3px;background:#AEB3BD}
.hero-screen{position:absolute;inset:12px;background:#FFFFFF;border-radius:28px;border:1px solid #E1E3E9;
  overflow:hidden;display:flex;flex-direction:column;padding:16px 18px 15px}
.hero-scr-top{display:flex;align-items:center;justify-content:space-between}
.hero-scr-brand{font-size:10px;font-weight:600;color:var(--ink-muted);letter-spacing:.04em}
.hero-total-block{text-align:center;margin-top:18px}
.hero-total-label{font-size:9.5px;font-weight:700;letter-spacing:.24em;color:var(--blue-anchor)}
.hero-total{font-size:40px;font-weight:600;letter-spacing:-.02em;color:#14171C;margin-top:6px}
.hero-tip{font-size:11.5px;color:var(--ink-muted);margin-top:4px}
.hero-tip b{color:var(--blue-anchor);font-weight:600}
.hero-tap{flex:1;display:flex;align-items:center;justify-content:center;position:relative}
.hero-ripple{position:absolute;width:118px;height:118px;border-radius:var(--r-pill);
  border:1.5px solid rgba(0,98,230,.45);animation:lp-ripple 2.4s ease-out infinite}
.hero-ripple:nth-child(2){animation-delay:.8s}
.hero-ripple:nth-child(3){animation-delay:1.6s}
.hero-tap-core{width:64px;height:64px;border-radius:var(--r-pill);background:rgba(0,98,230,.07);
  border:1.5px solid rgba(0,98,230,.65);display:flex;align-items:center;justify-content:center;color:var(--blue-electric)}
.hero-tap-core svg{transform:rotate(90deg)}
.hero-paymsg{text-align:center;font-size:12px;color:var(--ink-muted)}
.hero-brands{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:12px}
.hero-bchip{height:20px;border-radius:4px;display:inline-flex;align-items:center;padding:0 7px;
  border:1px solid #E1E3E9;background:#fff}
.hero-bchip-visa{font-style:italic;font-weight:800;font-size:10px;letter-spacing:-.02em;color:#1A1F71}
.hero-bchip-mc{padding:0 6px}
.hero-bchip-apple{padding:0 8px;background:#000;border-color:#000;gap:3px;font-weight:600;font-size:9.5px;color:#fff}
.hero-bchip-gpay{gap:3px;font-weight:600;font-size:9px;color:#3C4043}
.hero-bchip-amex{background:#2E77BC;border-color:#2E77BC;font-weight:800;font-size:8.5px;letter-spacing:.04em;color:#fff}
.hero-fchip{position:absolute;display:flex;align-items:center;gap:9px;background:var(--surface-dark);
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;padding:10px 14px;box-shadow:0 18px 40px -12px rgba(31,35,40,.4);color:#FAFAFA}
.hero-fchip-top{top:-26px;right:-40px;animation:om-float 7s ease-in-out -2s infinite}
.hero-fchip-bot{bottom:34px;left:-58px;animation:om-float 8s ease-in-out -5s infinite}
.hero-fchip-ico{width:24px;height:24px;border-radius:var(--r-pill);background:rgba(0,98,230,.28);
  border:1px solid rgba(120,170,255,.7);display:inline-flex;align-items:center;justify-content:center;flex:none}
.hero-fchip-txt{display:flex;flex-direction:column;gap:1px}
.hero-fchip-t{font-size:12.5px;font-weight:600}
.hero-fchip-d{font-size:10.5px;color:rgba(255,255,255,.72)}
@media (max-width:760px){
  .lp-hero{padding-top:150px}
  .hero-stage{transform:none;padding-bottom:80px}
  .hero-fchip-top{right:-6px}
  .hero-fchip-bot{left:-6px}
}

/* ---- integrations marquee card (in-hero) ---- */
.lp-marq{position:relative;max-width:var(--wrap-tight);margin:58px auto 0;padding:22px 26px 20px;
  background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.55);border-radius:20px;
  box-shadow:0 30px 66px -36px rgba(4,14,40,.82)}
.lp-marq-head{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px}
.lp-marq-rule-l,.lp-marq-rule-r{width:64px;height:1px}
.lp-marq-rule-l{background:linear-gradient(90deg,transparent,#CBD6E6)}
.lp-marq-rule-r{background:linear-gradient(90deg,#CBD6E6,transparent)}
.lp-marq-label{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.2em;color:var(--ink-muted)}
.lp-marq .marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.lp-marq-row{display:flex;align-items:center}
.lp-mchip{display:inline-flex;align-items:center;gap:8px;padding:11px 26px;opacity:.72;transition:opacity .3s;cursor:default}
.lp-mchip:hover{opacity:1}
.lp-mword{font-weight:800;font-size:16px;letter-spacing:-.01em;color:#5A6472}
.lp-mword-i{font-style:italic}
.lp-mvisa{font-style:italic;font-weight:800;font-size:19px;letter-spacing:-.02em;color:#1A3B8B}
.lp-msvg-i{font-style:italic}
.lp-mapple{gap:4px;font-weight:600;font-size:16px;color:var(--ink-900)}
.lp-marq-note{margin:15px auto 0;max-width:660px;text-align:center;font-size:11px;line-height:1.5;color:var(--ink-muted)}

/* ============ UP & RUNNING (4 steps) ============ */
.lp-ur{background-color:#0B1C3A;
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:56px 56px;padding:92px 24px 98px}
.lp-ur-head{text-align:center;max-width:660px;margin:0 auto 58px}
.lp-ur-head h2{font-size:clamp(30px,4.4vw,50px);letter-spacing:-.03em;line-height:1.05;margin:0;color:#FFFFFF}
.lp-ur-lede{font-size:17px;line-height:1.6;color:var(--on-navy-body);margin:16px 0 0}
.lp-ur-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.lp-ur-step{padding:0 30px;border-right:1px solid rgba(255,255,255,.12)}
.lp-ur-step:last-child{border-right:0}
.lp-ur-num{font-family:var(--font-display);font-weight:700;font-size:52px;letter-spacing:-.02em;
  color:rgba(var(--amber-bright-rgb),.42);line-height:1;margin-bottom:26px}
.lp-ur-ico{width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16);display:inline-flex;align-items:center;justify-content:center;
  color:#FFFFFF;margin-bottom:18px}
.lp-ur-title{font-family:var(--font-display);font-size:19px;font-weight:600;color:#FFFFFF;
  letter-spacing:-.01em;margin-bottom:9px}
.lp-ur-p{font-size:14px;line-height:1.62;color:#9FB2D6;margin:0}
@media (max-width:1000px){
  .lp-ur-grid{grid-template-columns:1fr 1fr;gap:40px 0}
  .lp-ur-step:nth-child(2n){border-right:0}
}
@media (max-width:600px){
  .lp-ur-grid{grid-template-columns:1fr;gap:36px}
  .lp-ur-step{border-right:0;padding:0 4px}
}

/* ============ DASHBOARD (#product) ============ */
.lp-dash{padding:84px 24px 92px}
.lp-badge-dash{display:inline-flex;align-items:center;gap:7px;margin-bottom:15px;min-height:27px;
  padding:0 12px;border-radius:var(--r-pill);background:var(--blue-50);border:1px solid #CFE0FC;
  color:var(--blue-anchor);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.lp-dash-grid{display:grid;grid-template-columns:1fr minmax(320px,368px);gap:60px;align-items:center}
.lp-dash-lede{font-size:16.5px;line-height:1.65;color:var(--ink-700);max-width:460px;margin:20px 0 0}
.lp-feats{display:flex;flex-direction:column;gap:16px;margin-top:30px}
.lp-feat{display:flex;gap:13px;align-items:flex-start}
.lp-feat-ico{width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.lp-feat-ico-blue{background:var(--blue-50);color:var(--blue-anchor)}
.lp-feat-ico-teal{background:var(--teal-tint);color:var(--teal-text)}
.lp-feat-ico-amber{background:var(--amber-tint);color:var(--amber-text)}
.lp-feat-t{font-size:15px;font-weight:600;color:var(--ink-900)}
.lp-feat-d{font-size:13.5px;color:var(--ink-muted);margin-top:2px}
@media (max-width:900px){.lp-dash-grid{grid-template-columns:1fr;gap:48px}}

/* phone mock (fully static) */
.lp-ph-wrap{display:flex;justify-content:center;position:relative}
.lp-ph-halo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:440px;height:440px;
  background:radial-gradient(closest-side,rgba(0,98,230,.13),transparent 72%);pointer-events:none}
.lp-phone{position:relative;width:322px;
  background:linear-gradient(148deg,#4a4d52 0%,#111216 16%,#0e0f12 84%,#54575c 100%);
  border-radius:52px;padding:12px;
  box-shadow:0 50px 100px -52px rgba(12,16,24,.72),0 0 0 1px rgba(0,0,0,.55),
  0 0 0 2.5px rgba(196,201,210,.4),inset 0 1px 2px rgba(255,255,255,.22)}
.lp-ph-btn{position:absolute;width:3px;background:linear-gradient(90deg,#5a5d63,#2a2c30)}
.lp-ph-btn-1{left:-3px;top:120px;height:32px;border-radius:2px 0 0 2px}
.lp-ph-btn-2{left:-3px;top:164px;height:52px;border-radius:2px 0 0 2px}
.lp-ph-btn-3{left:-3px;top:226px;height:52px;border-radius:2px 0 0 2px}
.lp-ph-btn-4{right:-3px;top:184px;height:72px;border-radius:0 2px 2px 0;background:linear-gradient(270deg,#5a5d63,#2a2c30)}
.lp-ph-screen{background:var(--page);border-radius:42px;overflow:hidden;position:relative}
.lp-ph-island{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:92px;height:24px;
  border-radius:14px;background:#05060A;z-index:6;
  box-shadow:0 0 0 1px rgba(255,255,255,.05),0 2px 6px rgba(0,0,0,.3);
  display:flex;align-items:center;justify-content:flex-end;padding-right:11px}
.lp-ph-cam{width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#3a4a66,#0a0e18);
  box-shadow:inset 0 0 2px rgba(120,150,220,.6)}
.lp-ph-sbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px 4px;
  font-size:12px;font-weight:600;color:var(--ink-900);background:#FFFFFF}
.lp-ph-sicons{display:inline-flex;gap:5px;align-items:center}
.lp-ph-store{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 14px;
  background:#FFFFFF;border-bottom:1px solid #F0F1F3}
.lp-ph-store-l{display:inline-flex;align-items:center;gap:9px}
.lp-ph-store-meta{display:flex;flex-direction:column;line-height:1.1}
.lp-ph-store-name{font-size:13px;font-weight:700;color:var(--ink-900)}
.lp-ph-live{font-size:10px;color:var(--success-text);font-weight:700;letter-spacing:.04em;
  display:inline-flex;align-items:center;gap:4px}
.lp-ph-live-dot{width:5px;height:5px;border-radius:var(--r-pill);background:var(--success)}
.lp-ph-avatar{width:30px;height:30px;border-radius:var(--r-pill);background:var(--blue-50);
  color:var(--blue-anchor);display:inline-flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700}
.lp-ph-body{padding:13px;display:flex;flex-direction:column;gap:10px;background:var(--page)}
.lp-ph-card{background:#FFFFFF;border-radius:14px;padding:15px 16px}
.lp-ph-cap{font-size:12px;color:var(--ink-muted);font-weight:500}
.lp-ph-sales{font-family:var(--font-display);font-weight:700;font-size:29px;letter-spacing:-.02em;
  margin-top:3px;color:var(--ink-900)}
.lp-ph-deltarow{display:flex;align-items:center;gap:6px;margin-top:6px;font-size:11px}
.lp-ph-up{color:var(--success-text);font-weight:600;background:var(--success-50);border-radius:5px;padding:2px 7px}
.lp-ph-vs{color:var(--ink-muted)}
.lp-ph-spark{width:100%;height:42px;display:block;margin-top:10px}
.lp-ph-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lp-ph-tile{background:#FFFFFF;border-radius:12px;padding:12px 13px}
.lp-ph-tile-cap{font-size:10.5px;color:var(--ink-muted);font-weight:500}
.lp-ph-tile-num{font-size:18px;font-weight:600;margin-top:3px;color:var(--ink-900)}
.lp-ph-tile-up{font-size:10px;color:var(--success-text);font-weight:600;margin-top:3px}
.lp-ph-tile-down{font-size:10px;color:var(--danger);font-weight:600;margin-top:3px}
.lp-ph-catcard{background:#FFFFFF;border-radius:14px;padding:13px 14px 12px}
.lp-ph-cathead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.lp-ph-cathead b{font-size:11px;font-weight:600;color:var(--ink-900)}
.lp-ph-cathead span{font-size:10px;color:var(--ink-muted)}
.lp-ph-catbar{display:flex;height:9px;gap:3px}
.lp-ph-catbar span{border-radius:3px}
.lp-cat1{flex:42;background:#0E9AA7}
.lp-cat2{flex:31;background:var(--amber)}
.lp-cat3{flex:17;background:#E0567A}
.lp-cat4{flex:10;background:#6D5BD0}
.lp-ph-leg{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:11px}
.lp-ph-leg span{display:inline-flex;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-700)}
.lp-ph-leg b{font-weight:700}
.lp-ph-sw{width:7px;height:7px;border-radius:2px;flex:none}
.lp-sw1{background:#0E9AA7}.lp-sw2{background:var(--amber)}.lp-sw3{background:#E0567A}.lp-sw4{background:#6D5BD0}
.lp-ph-recent{background:#FFFFFF;border-radius:14px;overflow:hidden}
.lp-ph-rhead{display:flex;align-items:center;justify-content:space-between;padding:12px 14px 10px}
.lp-ph-rhead b{font-size:12.5px;font-weight:600;color:var(--ink-900)}
.lp-ph-rhead span{font-size:10.5px;color:var(--ink-muted)}
.lp-ph-row{display:flex;align-items:center;gap:9px;padding:11px 14px;border-bottom:1px solid var(--page)}
.lp-ph-row:last-child{border-bottom:0}
.lp-ph-paytag{font-size:8.5px;font-weight:700;letter-spacing:.05em;padding:3px 7px;border-radius:6px;flex:none}
.lp-ph-paytag-ap{background:var(--divider);color:var(--ink-900)}
.lp-ph-paytag-zelle{background:#F3EAFE;color:#6D1ED4}
.lp-ph-paytag-visa{background:var(--blue-50);color:var(--blue-anchor)}
.lp-ph-amt{flex:1;min-width:0;font-size:13px;font-weight:600;color:var(--ink-900)}
.lp-ph-time{display:block;font-size:10px;font-weight:400;color:var(--ink-muted);margin-top:1px}
.lp-ph-refund{flex:none;background:rgba(0,98,230,.08);color:var(--blue-electric);
  border:1px solid rgba(0,98,230,.24);border-radius:8px;padding:6px 12px;font-size:11.5px;font-weight:600}
.lp-ph-nonref{flex:none;font-size:10.5px;color:var(--ink-muted);white-space:nowrap}
.lp-ph-tabs{display:flex;justify-content:space-around;align-items:center;padding:11px 0 14px;
  background:#FFFFFF;border-top:1px solid #F0F1F3}
.lp-ph-tab{color:#B4B9C0}
.lp-ph-tab-on{color:var(--blue-anchor)}
.lp-dchip{position:absolute;display:flex;align-items:center;gap:8px;background:rgba(17,17,17,.86);
  border:1px solid rgba(255,255,255,.12);
  border-radius:11px;padding:9px 12px;box-shadow:0 18px 40px -14px rgba(31,35,40,.5);color:#FAFAFA}
.lp-dchip-top{top:22px;right:-8px;animation:om-float 7s ease-in-out -1s infinite}
.lp-dchip-bot{bottom:64px;left:-10px;animation:om-float 8s ease-in-out -4s infinite}
.lp-dchip-ico{width:22px;height:22px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center}
.lp-dchip-ico-green{background:rgba(22,163,74,.28);border:1px solid rgba(120,220,150,.6)}
.lp-dchip-ico-blue{background:rgba(0,98,230,.28);border:1px solid rgba(120,170,255,.6)}
.lp-dchip-txt{display:flex;flex-direction:column;gap:1px}
.lp-dchip-t{font-size:11.5px;font-weight:600}
.lp-dchip-d{font-size:9.5px;color:#A8ADB5}

/* ============ WHAT YOU GET wrapper + WAYS TO PAY ============ */
.lp-wyg{background:linear-gradient(180deg,#FFFFFF 0%,#F5F8FF 100%);border-top:1px solid var(--border);padding:84px 24px 0}
.lp-pay{padding:6px 0 46px}
.lp-pay-inner{max-width:var(--wrap);margin:0 auto;padding:0 24px;display:flex;flex-wrap:wrap;
  gap:36px 52px;align-items:center}
.lp-pay-copy{flex:1 1 420px;min-width:300px}
.lp-pay-kick{display:inline-flex;align-items:center;margin-bottom:16px}
.lp-pay-lede{font-size:16px;line-height:1.65;color:var(--ink-700);margin:18px 0 0;max-width:430px}
.lp-pay-fine{font-size:13px;line-height:1.55;color:var(--ink-muted);margin:9px 0 0;max-width:430px}
.lp-pay-groups{margin-top:26px;display:flex;flex-direction:column;gap:15px}
.lp-pay-cap{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-muted);margin-bottom:9px}
.lp-pay-chips{display:flex;flex-wrap:wrap;gap:8px}
.lp-paychip{height:24px;padding:0 9px;border-radius:6px;display:inline-flex;align-items:center;gap:5px;
  font-weight:700;font-size:10.5px;letter-spacing:.01em;border:1px solid rgba(31,35,40,.08);background:#FFFFFF;color:var(--ink-700)}
.lp-paychip-visa{color:#1A1F71;font-style:italic;font-weight:800}
.lp-paychip-amex{background:#016FD0;color:#FFFFFF}
.lp-paychip-apple{background:#0B0D12;color:#fff;gap:3px}
.lp-paychip-gpay{color:#3C4043;gap:3px}
.lp-paychip-klarna{background:#FFB3C7;color:#17120E}
.lp-paychip-afterpay{background:#B2FCE4;color:#0A0A0A}
.lp-paychip-affirm{background:#4A4AF4;color:#FFFFFF}
.lp-paychip-zelle{background:#6D1ED4;color:#FFFFFF;font-weight:800;padding:0 10px}
.lp-paychip-ebt{background:var(--blue-50);color:var(--blue-anchor);font-weight:800;border-color:rgba(10,68,209,.2)}
.lp-paychip-wic{background:var(--success-50);color:var(--success-text);font-weight:800;border-color:rgba(20,122,56,.2)}
.lp-paychip-otc{background:var(--teal-tint);color:var(--teal-text);font-weight:800;border-color:rgba(14,124,135,.2)}
.lp-pay-stage{flex:1 1 480px;min-width:300px;align-self:stretch;position:relative;min-height:470px;
  display:flex;align-items:center;justify-content:center;overflow:visible}
.lp-pay-halo1{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120%;height:88%;
  background:radial-gradient(52% 50% at 50% 50%,rgba(10,68,209,.16),rgba(10,68,209,0) 70%);filter:blur(10px);pointer-events:none}
.lp-pay-halo2{position:absolute;top:46%;left:34%;transform:translate(-50%,-50%);width:52%;height:48%;
  background:radial-gradient(circle,rgba(14,154,167,.12),transparent 66%);filter:blur(16px);pointer-events:none}
.lp-pay-halo3{position:absolute;top:56%;left:66%;transform:translate(-50%,-50%);width:50%;height:46%;
  background:radial-gradient(circle,rgba(217,119,6,.10),transparent 66%);filter:blur(16px);pointer-events:none}
.lp-pay-rings{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,112%);
  aspect-ratio:1;pointer-events:none;
  -webkit-mask-image:radial-gradient(closest-side,#000 52%,transparent 100%);
  mask-image:radial-gradient(closest-side,#000 52%,transparent 100%)}
.lp-pay-rings span{position:absolute;border-radius:50%;border:1.5px solid rgba(10,68,209,.05)}
.lp-pay-rings span:nth-child(1){inset:3%}
.lp-pay-rings span:nth-child(2){inset:15%;border-color:rgba(10,68,209,.08)}
.lp-pay-rings span:nth-child(3){inset:27%;border-color:rgba(10,68,209,.12)}
.lp-pay-rings span:nth-child(4){inset:39%;border-color:rgba(10,68,209,.16)}
.lp-pay-scene{position:relative}

/* ---- feature card grid ---- */
.lp-wyg-grid{max-width:var(--wrap);margin:58px auto 0;border-top:1px solid #E7EDF7;padding:58px 0 84px}
.lp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin-top:44px}
.lp-card{border-radius:14px;padding:26px;display:flex;flex-direction:column;gap:14px;
  transition:transform .25s,border-color .25s,box-shadow .25s}
.lp-card:hover{transform:translateY(-4px);border-color:var(--border-strong);
  box-shadow:0 16px 36px -20px rgba(31,35,40,.28)}
.lp-card-teal{background:linear-gradient(160deg,#D9F1F2 0%,#F1FBFB 100%);border:1px solid var(--teal-tint-strong)}
.lp-card-purple{background:linear-gradient(160deg,#E9E3FB 0%,#F7F4FE 100%);border:1px solid #DAD0F6}
.lp-card-amber{background:linear-gradient(160deg,#FCEAD2 0%,#FEF7EC 100%);border:1px solid #F3DFC2}
.lp-card-pink{background:linear-gradient(160deg,#FBE0E8 0%,#FEF2F6 100%);border:1px solid #F5CEDA}
.lp-card-blue{background:linear-gradient(160deg,#DCE9FE 0%,#F1F6FE 100%);border:1px solid #CBDDFB}
.lp-card-green{background:linear-gradient(160deg,#D7F1E0 0%,#EFFBF3 100%);border:1px solid #C2E8CF}
.lp-card-ico{width:44px;height:44px;border-radius:12px;background:#FFFFFF;
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.lp-card-teal .lp-card-ico{color:var(--teal-text);box-shadow:0 7px 18px -8px rgba(14,124,135,.5)}
.lp-card-purple .lp-card-ico{color:#5A48C0;box-shadow:0 7px 18px -8px rgba(90,72,192,.5)}
.lp-card-amber .lp-card-ico{color:var(--amber-text);box-shadow:0 7px 18px -8px rgba(180,97,10,.45)}
.lp-card-pink .lp-card-ico{color:#C13A5C;box-shadow:0 7px 18px -8px rgba(193,58,92,.45)}
.lp-card-blue .lp-card-ico{color:var(--blue-electric);box-shadow:0 7px 18px -8px rgba(0,98,230,.45)}
.lp-card-green .lp-card-ico{color:var(--success-text);box-shadow:0 7px 18px -8px rgba(20,122,56,.45)}
.lp-card-t{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--ink-900)}
.lp-card-p{font-size:14px;line-height:1.6;color:var(--ink-700);margin:8px 0 0}
.lp-card-p + .lp-card-p{margin-top:10px}
.lp-tagrow{display:flex;flex-wrap:wrap;gap:7px}
.lp-tag{font-size:11px;font-weight:600;color:var(--teal-text);background:var(--teal-tint);border-radius:7px;padding:4px 10px}
.lp-card-link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;
  color:var(--blue-anchor);margin-top:2px;min-height:44px}
.lp-card-link:hover{color:var(--blue-anchor-600)}
.lp-live-pill{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:11px;
  font-weight:600;color:var(--success-text);background:var(--success-50);border-radius:var(--r-pill);padding:4px 11px}
.lp-live-dot{width:6px;height:6px;border-radius:var(--r-pill);background:var(--success)}

/* ============ AT THE COUNTER ============ */
.lp-counter{background:var(--page);border-top:1px solid var(--border);padding:84px 24px 92px}
.lp-cn-grid{display:grid;grid-template-columns:minmax(300px,0.9fr) 1.1fr;gap:64px;align-items:center}
@media (max-width:1000px){.lp-cn-grid{grid-template-columns:1fr;gap:56px}}
.lp-term-wrap{display:flex;justify-content:center;position:relative}
.lp-term-halo{position:absolute;top:48%;left:50%;transform:translate(-50%,-50%);width:460px;height:460px;
  background:radial-gradient(closest-side,rgba(10,68,209,.16),transparent 72%);pointer-events:none}
.lp-term{position:relative;flex:none}
.lp-term-stand{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);width:78%;height:40px;
  background:linear-gradient(180deg,#CDD1D8,#9BA0A9);border-radius:0 0 20px 20px;
  box-shadow:0 34px 54px -22px rgba(20,30,60,.55)}
.lp-term-body{position:relative;width:372px;max-width:100%;border-radius:38px;
  background:linear-gradient(155deg,#FAFBFC,#E7E9EE 55%,#D8DBE1);border:1px solid #AFB4BF;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -3px 8px rgba(0,0,0,.13),
  0 48px 96px -34px rgba(20,30,60,.5),0 24px 60px -20px rgba(0,98,230,.18);
  padding:15px 15px 52px}
.lp-term-btn-r{position:absolute;right:-3px;top:128px;width:4px;height:60px;border-radius:3px;background:#AEB3BD}
.lp-term-btn-l{position:absolute;left:-3px;top:110px;width:4px;height:38px;border-radius:3px;background:#AEB3BD}
.lp-term-screen{border-radius:26px;overflow:hidden;background:#EEF1F6;border:1px solid #D3D7DE;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.lp-term-slot{position:absolute;left:0;right:0;bottom:17px;display:flex;flex-direction:column;align-items:center;gap:8px}
.lp-term-slot span{width:128px;height:5px;border-radius:3px;background:#C2C6CD;box-shadow:inset 0 1px 1px rgba(0,0,0,.18)}
.lp-cn-chip1{position:absolute;top:52px;left:-18px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;
  background:#FFFFFF;border:1px solid var(--border);border-radius:var(--r-pill);padding:7px 13px;
  box-shadow:0 12px 28px -14px rgba(31,35,40,.5);animation:om-float 7s ease-in-out infinite}
.lp-cn-chip1-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--amber-bright);flex:none}
.lp-cn-chip1 b{font-size:12px;font-weight:600;color:var(--ink-900)}
.lp-cn-chip2{position:absolute;bottom:150px;right:-18px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px;
  background:var(--blue-anchor);border-radius:var(--r-pill);padding:7px 13px;
  box-shadow:0 12px 28px -12px rgba(10,68,209,.7);animation:om-float 8s ease-in-out -3s infinite}
.lp-cn-chip2 b{font-size:12px;font-weight:600;color:#FFFFFF}
@media (max-width:520px){.lp-cn-chip1{left:0}.lp-cn-chip2{right:0}}
.lp-cn-lede{font-size:16.5px;line-height:1.6;color:var(--ink-700);margin:18px 0 28px;max-width:460px}
.lp-acc{border-top:1px solid var(--border)}
.lp-acc:last-of-type{border-bottom:1px solid var(--border)}
.lp-acc summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 2px;cursor:pointer;list-style:none}
.lp-acc summary::-webkit-details-marker{display:none}
.lp-acc-lab{display:flex;align-items:center;gap:14px}
.lp-acc-ico{width:40px;height:40px;border-radius:var(--r-chip);display:inline-flex;align-items:center;
  justify-content:center;flex:none}
.lp-acc-ico-blue{background:var(--blue-50);color:var(--blue-anchor)}
.lp-acc-ico-amber{background:var(--amber-tint);color:var(--amber-text)}
.lp-acc-ico-purple{background:#EFEBFB;color:#5A48C0}
.lp-acc-t{font-size:17.5px;font-weight:600;color:var(--ink-900)}
.lp-acc-chev{color:var(--ink-muted);flex:none;transition:transform .25s}
.lp-acc[open] .lp-acc-chev{transform:rotate(180deg)}
.lp-acc-p{font-size:15px;line-height:1.65;color:var(--ink-700);margin:0 2px 22px 56px;max-width:520px}

/* ============ iPad TERMINAL ============ */
.lp-ipad{position:relative;background:linear-gradient(165deg,#0A2A6B 0%,#0A44D1 52%,#0E5AE6 100%);
  border-top:1px solid #0a2358;padding:100px 24px;overflow:hidden}
.lp-ipad-halo1{position:absolute;top:-120px;left:-80px;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(120,170,255,.5),transparent 70%);filter:blur(10px);pointer-events:none}
.lp-ipad-halo2{position:absolute;bottom:-140px;right:-60px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(46,139,255,.4),transparent 70%);filter:blur(10px);pointer-events:none}
.lp-ipad-inner{position:relative;max-width:1100px;margin:0 auto;text-align:center}
.lp-ipad-kick{display:inline-flex;align-items:center;margin-bottom:18px}
.lp-ipad .kicker-tick{color:#9CC2FF}
.lp-ipad-h2{font-size:clamp(30px,4.4vw,50px);letter-spacing:-.03em;line-height:1.05;margin:0;color:#FFFFFF}
.lp-ipad-lede{font-size:16.5px;line-height:1.6;color:#D7E3FB;max-width:560px;margin:16px auto 0}
.lp-ipad-stage{margin-top:40px;display:flex;justify-content:center}
.lp-ipad-frame{position:relative;width:min(940px,100%);aspect-ratio:1000/700;
  background:linear-gradient(160deg,#20242C,#0C0E12);border-radius:40px;padding:15px;
  box-shadow:0 60px 130px -40px rgba(4,12,40,.8),0 0 0 1px rgba(255,255,255,.08) inset}
.lp-ipad-btn-l{position:absolute;top:50%;left:6px;transform:translateY(-50%);width:4px;height:56px;
  border-radius:3px;background:rgba(255,255,255,.14)}
.lp-ipad-btn-r{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:4px;height:34px;
  border-radius:3px;background:rgba(255,255,255,.1)}
.lp-ipad-screen{width:100%;height:100%;border-radius:26px;overflow:hidden;background:var(--page);position:relative}
.lp-ipad-bullets{display:flex;gap:26px;justify-content:center;flex-wrap:wrap;margin-top:34px;
  color:#D7E3FB;font-size:13.5px;font-weight:500}
.lp-ipad-bullets span{display:inline-flex;align-items:center;gap:8px}

/* ---- iPad register — purpose-built MOBILE layout (owner-directed 2026-07-20) ----
   On phones the desktop two-pane register was cramming its order rail on top of
   the clipped product grid inside the small iPad frame. At <=640px we drop the
   fixed iPad aspect-ratio and reflow to one column: the product tiles (scrollable)
   over a compact charge bar. The charge button already reads "Add items to charge"
   -> "Charge $X.XX" and taps through to the receipt prompt via the existing pay
   overlay, so this is CSS-only — demos.js is untouched. A small note points to the
   full register on desktop. */
.dmr-mobile-note{display:none}
@media (max-width:640px){
  #terminal .lp-ipad-frame{aspect-ratio:auto;height:min(72vh,560px);width:100%;padding:7px;border-radius:26px}
  #terminal .lp-ipad-btn-l,#terminal .lp-ipad-btn-r{display:none}
  .dmr-top{gap:10px;padding:11px 14px}
  .dmr-search{display:none}
  .dmr-body{flex-direction:column;min-height:0}
  .dmr-menu{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px 8px}
  .dmr-cats{margin-bottom:11px}
  .dmr-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .dmr-order{flex:0 0 auto;flex-direction:row;align-items:center;gap:10px;min-width:0;max-width:none;
    border-left:0;border-top:1px solid #E7E9EE;padding:10px 12px}
  .dmr-ohead,.dmr-lines{display:none}
  #terminal .dmi-totals,#terminal .dmi-totals.dmi-show{display:none}
  .dmr-charge{margin:0;flex:1 1 auto;height:50px;font-size:15px}
  .dmr-mobile-note{display:block;max-width:340px;margin:16px auto 0;
    font-size:12.5px;line-height:1.5;text-align:center;color:var(--on-navy-body)}
}

/* ============ PRICING ============ */
.lp-price{background:linear-gradient(180deg,#FFFFFF 0%,#EFF4FE 100%);border-top:1px solid #12306F;padding:84px 24px 92px}
.lp-price-head{max-width:640px}
.lp-price-h2{font-size:clamp(32px,4.5vw,52px);letter-spacing:-.03em;line-height:1.04;margin:0;
  color:var(--blue-anchor);background-image:linear-gradient(120deg,#0A2A6B,#0A44D1 46%,#0062E6);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.lp-price-lede{font-size:16.5px;line-height:1.7;color:var(--ink-700);margin:16px 0 0}
.lp-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px;margin-top:34px;align-items:stretch}
.lp-pcard{position:relative;border-radius:16px;padding:34px 28px 28px;display:flex;flex-direction:column;gap:20px;
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.lp-pcard:hover{transform:translateY(-4px)}
.lp-pcard-bar{position:absolute;top:0;left:0;right:0;height:4px;border-radius:15px 15px 0 0}
.lp-pcard-sb{background:linear-gradient(180deg,rgba(217,119,6,.07),rgba(217,119,6,0) 44%),#FFFFFF;
  border:1.5px solid #E6A94E;box-shadow:0 34px 66px -34px rgba(217,119,6,.5)}
.lp-pcard-sb:hover{border-color:var(--amber);box-shadow:0 44px 82px -30px rgba(217,119,6,.62)}
.lp-pcard-sb .lp-pcard-bar{background:var(--amber)}
.lp-pcard-ent{background:linear-gradient(180deg,rgba(10,68,209,.06),rgba(10,68,209,0) 44%),#FFFFFF;
  border:1px solid var(--border);box-shadow:0 22px 46px -34px rgba(20,30,60,.42)}
.lp-pcard-ent:hover{border-color:var(--blue-anchor);box-shadow:0 40px 76px -32px rgba(10,68,209,.5)}
.lp-pcard-ent .lp-pcard-bar{background:var(--blue-anchor)}
.lp-pcard-multi{background:linear-gradient(180deg,rgba(14,154,167,.06),rgba(14,154,167,0) 44%),#FFFFFF;
  border:1px solid var(--border);box-shadow:0 22px 46px -34px rgba(20,30,60,.42)}
.lp-pcard-multi:hover{border-color:#0E9AA7;box-shadow:0 40px 76px -32px rgba(14,154,167,.48)}
.lp-pcard-multi .lp-pcard-bar{background:#0E9AA7}
.lp-pcard-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}
.lp-pcard-name{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.lp-pcard-sb .lp-pcard-name{color:var(--warning-text)}
.lp-pcard-ent .lp-pcard-name{color:var(--blue-anchor)}
.lp-pcard-multi .lp-pcard-name{color:#0B7C87}
.lp-pill-pop{display:inline-flex;align-items:center;height:24px;padding:0 11px;border-radius:var(--r-pill);
  background:var(--amber);color:var(--ink-900);font-size:11px;font-weight:700;letter-spacing:.01em;flex:none;
  box-shadow:0 6px 16px -8px rgba(217,119,6,.7)}
.lp-pcard-pre{font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-muted);margin-top:15px}
.lp-price-line{margin-top:4px}
.lp-price-big{font-family:var(--font-display);font-weight:700;font-size:44px;letter-spacing:-.02em;color:#14171C}
.lp-price-word{font-family:var(--font-display);font-weight:700;font-size:37px;letter-spacing:-.02em;color:#14171C}
.lp-price-word-block{margin-top:15px}
.lp-price-per{font-size:17px;font-weight:600;color:var(--ink-muted);margin-left:5px}
.lp-price-sub{font-size:13px;color:var(--ink-muted);margin-top:5px}
.lp-pcard-desc{font-size:14.5px;line-height:1.6;color:var(--ink-700);margin:14px 0 0}
.lp-pcard-div{height:1px;background:var(--border)}
.lp-pcard-feats{display:flex;flex-direction:column;gap:12px}
.lp-pfeat{display:flex;gap:10px;align-items:flex-start}
.lp-pfeat-ck{flex:none;margin-top:1px}
.lp-pcard-sb .lp-pfeat-ck{color:var(--amber)}
.lp-pcard-ent .lp-pfeat-ck{color:var(--blue-electric)}
.lp-pcard-multi .lp-pfeat-ck{color:#0E9AA7}
.lp-pfeat span:last-child{font-size:14px;line-height:1.55;color:var(--ink-700)}
.lp-pcta{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;
  border-radius:var(--r-btn);font-size:15px;font-weight:600;
  transition:background-color .25s,border-color .25s,transform .15s}
.lp-pcta:active{transform:scale(.97)}
.lp-pcta-primary{background:var(--blue-anchor);color:#FFFFFF}
.lp-pcta-primary:hover{background:var(--blue-anchor-600);color:#FFFFFF}
.lp-pcta-primary:active{background:var(--blue-anchor-700)}
.lp-pcta-blue{background:#FFFFFF;color:var(--blue-anchor);border:1.5px solid #C9D6F5}
.lp-pcta-blue:hover{background:#F4F7FF;border-color:var(--blue-anchor);color:var(--blue-anchor)}
.lp-pcta-teal{background:#FFFFFF;color:#0B7C87;border:1.5px solid #A7DCE1}
.lp-pcta-teal:hover{background:#F0FAFB;border-color:#0E9AA7;color:#0B7C87}
.lp-price-note{text-align:center;font-size:12.5px;color:var(--ink-muted);margin:30px 0 0}

/* ============ OWNERS / TESTIMONIALS ============ */
.lp-own{background:linear-gradient(180deg,#F1F6FF 0%,#FFFFFF 62%);border-top:1px solid var(--border);padding:84px 24px 92px}
.lp-own-h2{max-width:820px}
.lp-own-lede{font-size:16px;line-height:1.6;color:var(--ink-700);max-width:580px;margin:18px 0 0}
.lp-nyc{margin-top:40px;border-radius:20px;padding:40px 34px;color:#FFFFFF;
  box-shadow:0 34px 72px -40px rgba(8,32,86,.92);position:relative;overflow:hidden;background:var(--navy);
  min-height:220px;display:flex;align-items:flex-end}
.lp-nyc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 36%;
  transform:scale(1.14)}
.lp-nyc-scrim{position:absolute;inset:0;
  background:linear-gradient(88deg,rgba(6,20,54,.93) 0%,rgba(7,26,72,.8) 40%,rgba(9,52,160,.32) 80%,rgba(10,68,209,.12) 100%)}
.lp-nyc-row{position:relative;width:100%;display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}
.lp-nyc-pin{width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.16);
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.lp-nyc-main{flex:1 1 320px;min-width:0}
.lp-nyc-t{font-family:var(--font-display);font-weight:700;font-size:clamp(21px,2.6vw,29px);
  letter-spacing:-.02em;line-height:1.16;color:#FFFFFF}
.lp-nyc-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.lp-nyc-pill{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.14);
  border-radius:var(--r-pill);padding:6px 13px;font-size:12.5px;font-weight:600}
.lp-nyc-dot{width:6px;height:6px;border-radius:var(--r-pill);background:#7BE8A0}
.lp-own-h3{font-size:clamp(24px,3vw,34px);letter-spacing:-.025em;line-height:1.1;margin:60px 0 0;color:var(--ink-900)}
.lp-tcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:22px;margin-top:26px}
.lp-tcard{background:#FFFFFF;border:1px solid var(--border);border-radius:18px;padding:28px;
  display:flex;flex-direction:column;gap:15px;
  transition:transform .28s cubic-bezier(.22,.7,.2,1),border-color .25s,box-shadow .25s}
.lp-tcard:hover{transform:translateY(-5px);border-color:#CFD9EC;box-shadow:0 24px 48px -26px rgba(31,35,40,.34)}
.lp-tquote{font-size:15.5px;line-height:1.7;color:var(--ink-900);margin:0;flex:1}
.lp-tq-mark{color:var(--amber-text);font-weight:700} /* a11y: was var(--amber) #D97706 (3.19:1 on white) */
.lp-tby{display:flex;align-items:center;gap:12px}
.lp-tava{width:42px;height:42px;border-radius:var(--r-pill);display:inline-flex;align-items:center;
  justify-content:center;flex:none;font-weight:700;font-size:13.5px;letter-spacing:.02em}
.lp-tava-teal{background:var(--teal-tint);color:var(--teal-text)}
.lp-tava-pink{background:#FBE9EE;color:#B02E50} /* a11y: was #C13A5C (4.47:1); #B02E50 = 5.37:1 on #FBE9EE */
.lp-tava-amber{background:var(--amber-tint);color:var(--amber-text)}
.lp-tava-purple{background:#EFEBFB;color:#5A48C0}
.lp-tava-white{background:rgba(255,255,255,.2);color:#FFFFFF}
.lp-tava-blue{background:var(--blue-50);color:var(--blue-anchor)}
.lp-tname{font-size:14px;font-weight:600;color:var(--ink-900)}
.lp-tstore{font-size:12.5px;color:var(--ink-muted)}
.lp-tcard-blue{background:var(--blue-anchor);border-color:var(--blue-anchor);color:#FFFFFF;
  box-shadow:0 26px 56px -30px rgba(10,68,209,.78)}
.lp-tcard-blue:hover{border-color:var(--blue-anchor);box-shadow:0 32px 66px -28px rgba(10,68,209,.92)}
.lp-tcard-blue .lp-tquote{color:#FFFFFF;font-size:16px;line-height:1.68;font-weight:500}
.lp-tcard-blue .lp-tq-mark{color:var(--amber-bright-2)} /* a11y: was --amber-bright #F7B23B (4.12:1 on anchor blue); #FFCE7A = 5.20:1 */
.lp-tcard-blue .lp-tname{color:#FFFFFF}
.lp-tcard-blue .lp-tstore{color:#C9D8F9}
.lp-own-cap{font-size:12.5px;color:var(--ink-muted);margin:18px 0 0}

/* ============ CONTACT / BOOKING ============ */
.lp-contact{position:relative;overflow:hidden;background:linear-gradient(180deg,#F4F5F7 0%,#E9F0FE 100%);padding:82px 24px 40px}
.lp-ct-halo{position:absolute;bottom:-160px;left:-120px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(46,139,255,.16),transparent 70%);pointer-events:none}
.lp-ct-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}
@media (max-width:900px){.lp-ct-grid{grid-template-columns:1fr;gap:44px}}
.lp-ct-langs{display:flex;flex-direction:column;gap:4px;margin:14px 0 0}
.lp-ct-lang1{font-size:17px;color:var(--ink-700)}
.lp-ct-lang2{font-size:15px;color:var(--ink-muted)}
.lp-ct-p{font-size:16px;line-height:1.65;color:var(--ink-700);margin:20px 0 0;max-width:420px}
.lp-ct-links{display:flex;flex-direction:column;gap:16px;margin-top:32px}
.lp-ct-link{display:inline-flex;align-items:center;gap:12px;font-size:15px;color:var(--ink-900);min-height:44px}
a.lp-ct-link:hover{color:var(--blue-anchor)}
.lp-ct-ico{width:40px;height:40px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.lp-ct-ico-blue{background:var(--blue-50);color:var(--blue-anchor)}
.lp-ct-ico-amber{background:var(--amber-tint);color:var(--amber-text)}
.lp-seg{margin-bottom:16px}
.lp-form-row{margin-bottom:16px}

/* ============ EVERY KIND OF SHOP (#shops) ============ */
.lp-shops{background:var(--page);border-top:1px solid var(--border);padding:84px 24px 92px}
.lp-shops-head{max-width:680px}
.lp-shops-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:38px}
.lp-shop{position:relative;margin:0;border-radius:var(--r-card-lg);overflow:hidden;aspect-ratio:3/4;
  background:var(--sunken);box-shadow:var(--shadow-sm);
  transition:transform .25s ease,box-shadow .25s ease}
.lp-shop:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.lp-shop-img{width:100%;height:100%;object-fit:cover}
.lp-shop-scrim{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,20,50,0) 32%,rgba(7,20,50,.32) 58%,rgba(7,20,50,.84) 100%)}
.lp-shop-cap{position:absolute;left:0;right:0;bottom:0;padding:20px 18px;
  display:flex;flex-direction:column;gap:5px}
.lp-shop-t{font-family:var(--font-display);font-weight:600;font-size:17px;line-height:1.2;
  letter-spacing:-.01em;color:#FFFFFF}
.lp-shop-d{font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.85)}
@media (max-width:960px){.lp-shops-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.lp-shops-grid{grid-template-columns:1fr;gap:16px}.lp-shop{aspect-ratio:16/10}}
@media (prefers-reduced-motion:reduce){.lp-shop{transition:none}.lp-shop:hover{transform:none}}
#orbis-root[dir="rtl"] .lp-shop-cap{text-align:right}

/* ============ TESTIMONIALS — placeholder state ============ */
/* Quotes are blurred and names are John/Jane Doe until real reviews exist.
   Remove `lp-own-sample` from #owners (and restore real quotes) to go live. */
.lp-own-sample .lp-tquote{filter:blur(5px);-webkit-user-select:none;user-select:none;cursor:default}
.lp-own-sample .lp-tquote span{pointer-events:none}
@media (prefers-reduced-motion:reduce){.lp-own-sample .lp-tquote{filter:blur(5px)}}

/* ============ ORBIT MOTIF — ambient concentric rings + tracing orbs ============ */
/* Reusable decoration placed BEHIND content in light/dark sections (the "Orbis"
   orbit motif from the prototype). Counter-rotating, faint, reduced-motion safe. */
.lp-orbit{position:absolute;top:50%;left:50%;pointer-events:none;z-index:0;width:0;height:0}
.lp-orbit-ring{position:absolute;top:0;left:0;border-radius:50%;border:1px solid rgba(10,68,209,.11);
  transform:translate(-50%,-50%)}
.lp-orbit-r1{width:380px;height:380px;animation:lp-orbit-spin 46s linear infinite}
.lp-orbit-r2{width:540px;height:540px;border-color:rgba(91,54,224,.10);animation:lp-orbit-spin 70s linear infinite reverse}
.lp-orbit-r3{width:720px;height:720px;border-style:dashed;border-color:rgba(10,68,209,.06)}
.lp-orbit-orb{position:absolute;top:-5px;left:50%;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;
  background:var(--blue-electric);box-shadow:0 0 0 5px rgba(0,98,230,.10),0 0 18px rgba(0,98,230,.5)}
.lp-orbit-r2 .lp-orbit-orb{width:9px;height:9px;margin-left:-4.5px;background:#5B36E0;
  box-shadow:0 0 0 4px rgba(91,54,224,.12),0 0 16px rgba(91,54,224,.5)}
@keyframes lp-orbit-spin{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.lp-orbit-ring{animation:none!important}}
/* dark-section variant (navy iPad, contact) */
.lp-orbit-dark .lp-orbit-r1{border-color:rgba(255,255,255,.12)}
.lp-orbit-dark .lp-orbit-r2{border-color:rgba(156,194,255,.14)}
.lp-orbit-dark .lp-orbit-r3{border-color:rgba(255,255,255,.07)}
.lp-orbit-dark .lp-orbit-orb{background:#9CC2FF;box-shadow:0 0 0 5px rgba(156,194,255,.12),0 0 18px rgba(156,194,255,.55)}
/* iPad ambient system — larger, centered in the dark band */
.lp-orbit-ipad .lp-orbit-r1{width:520px;height:520px}
.lp-orbit-ipad .lp-orbit-r2{width:760px;height:760px}
.lp-orbit-ipad .lp-orbit-r3{width:1020px;height:1020px}

/* ============ MADE FOR REAL COUNTERS (#real-counters) ============ */
.lp-rc{background:var(--page);border-top:1px solid var(--border);padding:84px 24px 92px}
.lp-rc-grid{display:grid;grid-template-columns:1fr 1.04fr;gap:56px;align-items:center}
.lp-rc-head{max-width:520px}
.lp-rc-head .lp-h2{font-size:clamp(30px,4vw,46px)}
.lp-rc-lede{font-size:16.5px;line-height:1.65;color:var(--ink-700);margin:18px 0 0}
.lp-rc-list{list-style:none;margin:24px 0 30px;display:flex;flex-direction:column;gap:14px}
.lp-rc-list li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--ink-700)}
.lp-rc-ck{flex:0 0 auto;width:26px;height:26px;border-radius:8px;background:var(--blue-50);color:var(--blue-anchor);
  display:grid;place-items:center;margin-top:1px}
.lp-rc-media{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.lp-rc-main{grid-column:1 / -1;position:relative;margin:0;border-radius:var(--r-card-lg);overflow:hidden;
  aspect-ratio:16/9;box-shadow:var(--shadow-md)}
.lp-rc-sm{margin:0;border-radius:var(--r-card);overflow:hidden;aspect-ratio:3/2.1;box-shadow:var(--shadow-sm)}
.lp-rc-main img,.lp-rc-sm img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.lp-rc-main:hover img,.lp-rc-sm:hover img{transform:scale(1.04)}
.lp-rc-badge{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-radius:var(--r-pill);padding:8px 14px;font-size:13px;font-weight:600;color:var(--ink-900);box-shadow:var(--shadow-md)}
.lp-rc-badge-dot{width:8px;height:8px;border-radius:50%;background:var(--success);
  box-shadow:0 0 0 0 rgba(22,163,74,.5);animation:lp-rc-pulse 2.2s ease-out infinite}
@keyframes lp-rc-pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.5)}70%{box-shadow:0 0 0 9px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
@media (max-width:900px){.lp-rc-grid{grid-template-columns:1fr;gap:34px}.lp-rc-head{max-width:none}}
@media (prefers-reduced-motion:reduce){.lp-rc-badge-dot{animation:none}.lp-rc-main img,.lp-rc-sm img,.lp-rc-main:hover img,.lp-rc-sm:hover img{transition:none;transform:none}}
#orbis-root[dir="rtl"] .lp-rc-badge{left:auto;right:16px}

/* ============ PHONE DASHBOARD — compacted to a realistic phone aspect ============ */
/* Was ~2.93:1 (too long). Category card removed in markup; spacing tightened here. */
.lp-ph-body{padding:11px;gap:8px}
.lp-ph-card{padding:13px 15px}
.lp-ph-sales{font-size:25px}
.lp-ph-spark{height:30px;margin-top:7px}
.lp-ph-tile{padding:10px 12px}
.lp-ph-row{padding:10px 14px}
.lp-ph-tabs{padding:9px 0 12px}
.lp-ph-store{padding:7px 16px 11px}

/* Legal-entity address in footers (Twilio 30474 — must match Trust Hub exactly) */
.legal-footer-addr{flex-basis:100%;width:100%;display:block;text-align:center;margin-top:5px;
  font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;color:var(--ink-muted)}
.footer-bottom .footer-mono[data-no-i18n]{letter-spacing:.02em}

/* ============ COSMIC / SPACE — starfield + a big hero orbit system ============ */
.lp-stars{position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    radial-gradient(1.5px 1.5px at 12% 22%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1px 1px at 27% 66%, rgba(180,205,255,.85), transparent 60%),
    radial-gradient(1.5px 1.5px at 41% 15%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1px 1px at 55% 82%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(2px 2px at 67% 33%, rgba(200,220,255,.9), transparent 60%),
    radial-gradient(1px 1px at 77% 57%, rgba(255,255,255,.75), transparent 60%),
    radial-gradient(1.5px 1.5px at 87% 25%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1px 1px at 92% 71%, rgba(180,205,255,.75), transparent 60%),
    radial-gradient(1px 1px at 7% 83%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1.5px 1.5px at 49% 47%, rgba(255,255,255,.65), transparent 60%),
    radial-gradient(1px 1px at 34% 39%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1px 1px at 63% 61%, rgba(200,220,255,.7), transparent 60%),
    radial-gradient(1px 1px at 18% 48%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(2px 2px at 82% 88%, rgba(255,255,255,.8), transparent 60%);
  animation:lp-twinkle 6.5s ease-in-out infinite}
@keyframes lp-twinkle{0%,100%{opacity:.5}50%{opacity:.95}}
/* big hero orbit — sweeps behind the terminal on the right */
.lp-orbit-hero{top:50%;left:auto;right:1%}
.lp-orbit-hero .lp-orbit-r1{width:520px;height:520px;border-color:rgba(156,194,255,.20)}
.lp-orbit-hero .lp-orbit-r2{width:770px;height:770px;border-color:rgba(123,166,246,.15)}
.lp-orbit-hero .lp-orbit-r3{width:1080px;height:1080px;border-color:rgba(255,255,255,.08)}
.lp-orbit-orb3{width:7px;height:7px;margin-left:-3.5px;background:#7BA6F6;
  box-shadow:0 0 0 4px rgba(123,166,246,.12),0 0 14px rgba(123,166,246,.65)}
/* a touch more presence on the existing (light-section) orbits */
.lp-orbit-r1{border-color:rgba(10,68,209,.13)}
.lp-orbit-r2{border-color:rgba(91,54,224,.12)}
@media (max-width:900px){.lp-orbit-hero{display:none}}
@media (prefers-reduced-motion:reduce){.lp-stars{animation:none;opacity:.7}}

/* ============ ACCENT — amber/yellow → cosmic violet ============ */
/* Signature accent = bright burnt orange — the complement of the brand blue, so it
   carries real contrast. Used across kickers, hero, CTAs, orbit orbs, demo badges,
   dividers and hovers. Gold review stars + the pastel feature cards keep amber. */
:root{
  --accent:#F4531A; --accent-bright:#FF7A3D; --accent-text:#BC4409; --accent-tint:#FFEDE3;
  --accent-glow:rgba(255,122,61,.62);
}
.kicker-amber{color:var(--accent-text)}
.hero-kicker{color:var(--accent-bright)}
.hero-amber{color:var(--accent-bright);text-shadow:0 0 26px var(--accent-glow)}
.hero-chip-dot{background:var(--accent-bright);box-shadow:0 0 10px var(--accent-glow)}
.lp-cn-chip1-dot{background:var(--accent-bright)}
/* pricing "Most Popular" highlight */
.lp-pill-pop{background:var(--accent);color:#fff;box-shadow:0 8px 18px -8px var(--accent-glow)}
.lp-pcard-sb .lp-pcard-name{color:var(--accent-text)}
.lp-pcard-sb:hover{border-color:var(--accent);box-shadow:0 44px 82px -30px rgba(124,58,237,.5)}
.lp-pcard-sb .lp-pcard-bar{background:var(--accent)}
.lp-pcard-sb .lp-pfeat-ck{color:var(--accent)}
/* contact accents */
.ct-form-tick{background:var(--accent)}
.ct-form-kicker{color:var(--accent-text)}
.lp-slot-tag-note{background:var(--accent-tint);color:var(--accent-text)}
/* testimonial quote marks */
.lp-tq-mark{color:var(--accent-text)}
.lp-tcard-blue .lp-tq-mark{color:var(--accent-bright)}

/* ============ MORE SPACE — shooting stars + starfields in dark sections ============ */
/* GPU-only (transform/opacity), long duty cycles, motion-safe. */
.lp-shoot{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;z-index:0;
  opacity:0;pointer-events:none;will-change:transform,opacity}
.lp-shoot::after{content:"";position:absolute;top:50%;right:3px;width:90px;height:1.4px;
  background:linear-gradient(270deg,rgba(255,255,255,.9),rgba(167,139,250,.4),transparent);transform:translateY(-50%);border-radius:2px}
@keyframes lp-shoot{
  0%{opacity:0;transform:translate(0,0) rotate(20deg) scale(.5)}
  4%{opacity:1}
  16%{opacity:1}
  24%{opacity:0;transform:translate(360px,132px) rotate(20deg) scale(1)}
  100%{opacity:0;transform:translate(360px,132px) rotate(20deg)}
}
.lp-shoot-1{top:15%;left:6%;animation:lp-shoot 9s ease-in 2.5s infinite}
.lp-shoot-2{top:30%;left:32%;animation:lp-shoot 12s ease-in 7s infinite}
.lp-shoot-3{top:10%;left:58%;animation:lp-shoot 15s ease-in 11s infinite}
@media (prefers-reduced-motion:reduce){.lp-shoot{display:none}}
/* keep section content above the starfields */
.lp-ur{position:relative;overflow:hidden}
.lp-ur>.lp-wrap-mid{position:relative;z-index:1}
.site-footer .footer-inner{position:relative;z-index:2}
.lp-stars-wide{opacity:.85}
/* a touch more presence on the hero orbit */
.lp-orbit-hero .lp-orbit-r1{border-color:rgba(167,139,250,.26)}
.lp-orbit-hero .lp-orbit-r2{border-color:rgba(123,166,246,.19)}
.lp-orbit-hero .lp-orbit-orb{box-shadow:0 0 0 5px rgba(167,139,250,.14),0 0 22px rgba(167,139,250,.6)}

/* ============ Payment section — remove dead space ============ */
.lp-pay{padding-bottom:18px}
.lp-pay-stage{min-height:398px;display:flex;align-items:center;justify-content:center}
.lp-wyg-grid{margin-top:18px;padding-top:44px}

/* ============ BOLDER SPACE + WIDER BURNT-ORANGE ACCENT ============ */
/* Orbit rings brighter/faster/thicker; tracing orbs are glowing orange, everywhere. */
.lp-orbit-ring{border-width:1.5px}
.lp-orbit-r1{border-color:rgba(10,68,209,.20);animation-duration:28s}
.lp-orbit-r2{border-color:rgba(244,83,26,.16);animation-duration:42s}
.lp-orbit-r3{border-color:rgba(10,68,209,.11)}
.lp-orbit-orb{width:14px;height:14px;margin-left:-7px;background:var(--accent);
  box-shadow:0 0 0 6px rgba(244,83,26,.16),0 0 26px var(--accent-glow)}
.lp-orbit-r2 .lp-orbit-orb{width:11px;height:11px;margin-left:-5.5px;background:#FF9A5B}
.lp-orbit-r3 .lp-orbit-orb3{width:9px;height:9px;margin-left:-4.5px;background:#FFC490;box-shadow:0 0 14px rgba(255,160,90,.75)}
.lp-orbit-dark .lp-orbit-r1{border-color:rgba(255,255,255,.20)}
.lp-orbit-dark .lp-orbit-r2{border-color:rgba(255,122,61,.30)}
.lp-orbit-dark .lp-orbit-r3{border-color:rgba(255,255,255,.12)}
.lp-orbit-dark .lp-orbit-orb{background:var(--accent-bright);box-shadow:0 0 0 6px rgba(255,122,61,.22),0 0 28px rgba(255,122,61,.85)}
.lp-orbit-hero{right:-3%}
.lp-orbit-hero .lp-orbit-r1{width:560px;height:560px;border-color:rgba(255,122,61,.34);animation-duration:24s}
.lp-orbit-hero .lp-orbit-r2{width:830px;height:830px;border-color:rgba(156,194,255,.26);animation-duration:38s}
.lp-orbit-hero .lp-orbit-r3{width:1160px;height:1160px;border-color:rgba(255,255,255,.14)}
.lp-orbit-hero .lp-orbit-orb{box-shadow:0 0 0 6px rgba(255,122,61,.22),0 0 32px rgba(255,122,61,.9)}
/* denser, brighter starfield (two layers) */
.lp-stars{opacity:1}
.lp-stars::before{content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(1.5px 1.5px at 16% 30%,#fff,transparent 60%),radial-gradient(1px 1px at 24% 76%,#bcd,transparent 60%),
    radial-gradient(2px 2px at 38% 44%,#fff,transparent 60%),radial-gradient(1px 1px at 52% 20%,#fff,transparent 60%),
    radial-gradient(1.5px 1.5px at 61% 70%,#ffe6d5,transparent 60%),radial-gradient(1px 1px at 72% 40%,#fff,transparent 60%),
    radial-gradient(2px 2px at 84% 60%,#fff,transparent 60%),radial-gradient(1px 1px at 93% 33%,#cde,transparent 60%),
    radial-gradient(1.5px 1.5px at 30% 12%,#fff,transparent 60%),radial-gradient(1px 1px at 46% 88%,#fff,transparent 60%),
    radial-gradient(1.5px 1.5px at 66% 15%,#fff,transparent 60%),radial-gradient(1px 1px at 12% 58%,#fff,transparent 60%);
  animation:lp-twinkle 4.5s ease-in-out .8s infinite}
@keyframes lp-twinkle{0%,100%{opacity:.45}50%{opacity:1}}
/* shooting stars — faster, bolder, orange-tinted trail */
.lp-shoot::after{width:120px;height:1.7px;background:linear-gradient(270deg,#fff,rgba(255,122,61,.7),transparent)}
.lp-shoot-1{animation-duration:6s;animation-delay:1.5s}
.lp-shoot-2{animation-duration:7s;animation-delay:3.5s}
.lp-shoot-3{animation-duration:8s;animation-delay:5.5s}
/* wider burnt-orange accent — hero glow, live/demo badges, live pills, ghost hovers */
.hero-glow{background:radial-gradient(58% 48% at 74% 32%,rgba(255,122,61,.13),transparent 62%),radial-gradient(52% 42% at 18% 22%,rgba(0,98,230,.16),transparent 66%)}
.dmi-livebadge{background:var(--accent);color:#fff}
.dmi-livebadge-dot{background:#fff}
.lp-live-pill{background:var(--accent-tint);color:var(--accent-text)}
.lp-live-dot{background:var(--accent)}
.btn-ghost:hover,.hero-btn-ghost:hover{border-color:var(--accent);color:var(--accent-text)}
.reveal.in .kicker-tick,.kicker .kicker-tick{background:currentColor}
@media (max-width:900px){.lp-orbit-hero{display:none}}
/* mid-page ambient orbits (light sections) */
.lp-shops,.lp-price{position:relative;overflow:clip}
.lp-shops>.wrap,.lp-price>.lp-wrap-mid{position:relative;z-index:1}
.lp-orbit-bg-l{top:36%;left:7%}
.lp-orbit-bg-r{top:30%;left:auto;right:5%}
.lp-orbit-bg .lp-orbit-r1{width:440px;height:440px}
.lp-orbit-bg .lp-orbit-r2{width:640px;height:640px}
.lp-orbit-bg .lp-orbit-r3{width:860px;height:860px}
@media (max-width:900px){.lp-orbit-bg{display:none}}
/* demo-clarity: counter demo badge host + hint spacing */
.lp-term-wrap{position:relative}
.dmi-hint-counter{margin:0 0 22px}
/* a11y: "Most Popular" pill — white on the deeper burnt orange = 5.3:1 (was 3.44:1);
   and gate the star ::before layer's twinkle under reduced-motion. */
.lp-pill-pop{background:var(--accent-text)}
@media (prefers-reduced-motion:reduce){.lp-stars::before{animation:none!important}}
/* make the hero orbit unmistakable (thicker, brighter, glowing rings) */
.lp-orbit-hero .lp-orbit-ring{border-width:2px}
.lp-orbit-hero .lp-orbit-r1{border-color:rgba(255,122,61,.44);box-shadow:0 0 14px rgba(255,122,61,.28)}
.lp-orbit-hero .lp-orbit-r2{border-color:rgba(156,194,255,.36);box-shadow:0 0 14px rgba(120,160,255,.18)}
.lp-orbit-hero .lp-orbit-r3{border-color:rgba(255,255,255,.20)}
.lp-orbit-hero .lp-orbit-orb{width:16px;height:16px;margin-left:-8px}

/* ===== PARTIAL: 30-about-contact.css ===== */
/* ===== ab · about ===== */

.ab-main{max-width:980px;width:100%;margin:0 auto;padding-left:24px;padding-right:24px;padding-bottom:40px}

/* hero — skyline band bleeding to the container edge */
.ab-hero{position:relative;margin:24px -24px 0;height:clamp(180px,30vw,300px);overflow:hidden}
.ab-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.ab-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,52,.42) 0%,rgba(8,18,44,.80) 100%)}
.ab-hero-text{position:absolute;left:0;right:0;bottom:0;padding:0 28px 26px;max-width:980px;margin:0 auto}
.ab-hero-kicker{letter-spacing:.2em;color:#E4EDFF} /* a11y: --on-navy-selected #BFD3FF hit 4.01:1 worst-pixel over the hero photo */
.ab-hero h1{font-size:clamp(34px,5.4vw,58px);letter-spacing:-.03em;line-height:1;margin:8px 0 0;color:#FFFFFF}

/* intro paragraphs */
.ab-lede{font-size:17px;line-height:1.72;color:var(--ink-700);max-width:660px;margin:28px 0 0}
.ab-lede + .ab-lede{margin-top:14px}

/* navy story panel + stats */
.ab-story{position:relative;overflow:hidden;margin-top:40px;background:linear-gradient(165deg,#0B1C3A 0%,#0A2A6B 100%);
  border-radius:var(--r-panel);padding:clamp(30px,4vw,48px);box-shadow:0 34px 80px -34px rgba(10,30,70,.55)}
.ab-story-glow{position:absolute;top:-100px;right:-80px;width:320px;height:320px;border-radius:50%;
  background:radial-gradient(closest-side,rgba(46,139,255,.28),transparent 70%);pointer-events:none}
.ab-story-copy{position:relative;max-width:640px}
.ab-story-copy h2{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.02em;line-height:1.08;margin:0;color:#FFFFFF}
.ab-story-copy p{font-size:16px;line-height:1.72;color:#C3D2EC;margin:18px 0 0}
.ab-stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:32px}
.ab-stat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:20px}
.ab-stat-v{font-family:var(--font-display);font-weight:700;font-size:25px;color:#FFFFFF;letter-spacing:-.01em;line-height:1}
.ab-stat-l{font-size:12.5px;color:#93A6CC;margin-top:6px}

/* values */
.ab-rule{margin-top:48px}
.ab-tick{background:var(--blue-electric)}
.ab-values{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px}
.ab-val-icon{width:42px;height:42px;border-radius:var(--r-chip);background:var(--blue-50);color:var(--blue-anchor);
  display:inline-flex;align-items:center;justify-content:center;margin-bottom:13px}
.ab-val h3{font-family:var(--font-display);font-size:17px;font-weight:650;color:var(--ink-900);letter-spacing:-.01em;margin:0 0 6px;line-height:1.3}
.ab-val p{font-size:14px;line-height:1.62;color:#5A6472;margin:0}

/* closing CTA band */
.ab-cta{margin:44px 0 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--r-card);padding:24px 28px}
.ab-cta-text{font-size:15.5px;color:var(--ink-900);font-weight:500;max-width:520px}

@media (max-width:760px){
  .ab-values{grid-template-columns:1fr}
  .ab-stats{grid-template-columns:1fr 1fr}
}

/* ===== ct · contact ===== */

.ct-main{max-width:1080px;width:100%;margin:0 auto;padding-left:24px;padding-right:24px;padding-bottom:48px}

/* hero — skyline band bleeding to the container edge */
.ct-hero{position:relative;margin:24px -24px 0;height:clamp(200px,32vw,320px);overflow:hidden}
.ct-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.ct-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,52,.40) 0%,rgba(8,18,44,.82) 100%)}
.ct-hero-text{position:absolute;left:0;right:0;bottom:0;padding:0 28px 28px;max-width:1080px;margin:0 auto}
.ct-hero-kicker{letter-spacing:.2em;color:#E4EDFF} /* a11y: #BFD3FF hit 4.39:1 worst-pixel over the hero photo */
.ct-hero h1{font-size:clamp(34px,5.4vw,58px);letter-spacing:-.03em;line-height:1;margin:8px 0 0;color:#FFFFFF}

.ct-lede{font-size:17px;line-height:1.7;color:var(--ink-700);max-width:640px;margin:28px 0 0}

/* contact-method cards */
.ct-methods{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:34px}
.ct-method{display:flex;flex-direction:column;gap:13px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--r-card);padding:24px;transition:transform .2s,border-color .2s,box-shadow .2s}
.ct-method:hover{transform:translateY(-3px);box-shadow:0 18px 40px -26px rgba(31,35,40,.32)}
.ct-m-blue:hover{border-color:#C9D6F5}
.ct-m-teal:hover{border-color:#A7DCE1}
.ct-m-amber:hover{border-color:#F0D69A}
.ct-m-icon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}
.ct-mi-blue{background:var(--blue-50);color:var(--blue-anchor)}
.ct-mi-teal{background:#E2F4F5;color:var(--teal-text)}
.ct-mi-amber{background:var(--amber-tint);color:var(--amber-text)}
.ct-method h3{font-family:var(--font-body);font-size:16px;font-weight:650;color:var(--ink-900);letter-spacing:-.01em;margin:0;line-height:1.3}
.ct-m-desc{font-size:14px;line-height:1.55;color:var(--ink-muted);margin:6px 0 0}
.ct-m-line{font-size:14px;font-weight:600;margin-top:auto}
.ct-ml-blue{color:var(--blue-anchor)}
.ct-ml-teal{color:#0B7C87}
.ct-ml-amber{color:var(--amber-text)}
.ct-method:hover .ct-m-line{text-decoration:underline}

/* book-a-walkthrough card (dark gradient; whole card clickable via stretched link) */
.ct-m-book{position:relative;background:linear-gradient(165deg,#0A2A6B,#0A44D1);border-color:#0A2A6B}
.ct-m-book:hover{border-color:#0A2A6B;box-shadow:0 22px 46px -26px rgba(10,68,209,.7)}
.ct-m-book .ct-m-icon{background:rgba(255,255,255,.16);color:#FFFFFF}
.ct-m-book h3{color:#FFFFFF}
.ct-m-book .ct-m-desc{color:#C3D2EC}
.ct-book-link{display:inline-flex;align-items:center;gap:6px;margin-top:auto;min-height:44px;
  font-size:14px;font-weight:600;color:#FFFFFF}
.ct-book-link:hover{color:#FFFFFF}
.ct-book-link::after{content:"";position:absolute;inset:0;border-radius:var(--r-card)}

/* split: form + side column */
.ct-split{display:grid;grid-template-columns:1.15fr .85fr;gap:34px;margin-top:40px;align-items:start}
.ct-form-card{border-radius:var(--r-card-lg);padding:clamp(24px,3vw,36px)}
.ct-form-kick{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.ct-form-tick{width:16px;height:3px;border-radius:2px;background:var(--amber);flex:none}
.ct-form-kicker{color:var(--amber-text)} /* a11y: one-off #B26A08 was 4.24:1 on white; token = 5.86:1 */
.ct-form-card h2{font-size:clamp(24px,3vw,32px);letter-spacing:-.02em;line-height:1.1;margin:8px 0 0;color:var(--ink-900)}
.ct-form-lede{font-size:15px;line-height:1.6;color:var(--ink-muted);margin:10px 0 22px}
.ct-send{box-shadow:0 10px 30px -12px rgba(10,68,209,.7)}
.ct-ok-back{display:inline-flex;align-items:center;gap:8px;margin-top:24px;min-height:44px;
  font-size:14.5px;font-weight:600;color:var(--blue-anchor)}
.ct-ok-back:hover{color:var(--blue-anchor-600)}

/* side column */
.ct-side{display:flex;flex-direction:column;gap:14px}
.ct-side-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:24px}
.ct-side-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.ct-side-star{width:34px;height:34px;border-radius:10px;background:var(--amber-tint);color:var(--amber-text);
  display:inline-flex;align-items:center;justify-content:center;flex:none}
.ct-side-card h3{font-family:var(--font-display);font-size:16px;font-weight:650;color:var(--ink-900);letter-spacing:-.01em;margin:0;line-height:1.3}
.ct-side-card > p{font-size:14px;line-height:1.62;color:var(--ink-700);margin:0}
.ct-side-rows{display:flex;flex-direction:column;gap:11px;margin-top:18px}
.ct-side-row{display:flex;align-items:center;gap:11px;font-size:14px;color:var(--ink-900)}
.ct-side-ic{width:32px;height:32px;border-radius:9px;background:var(--blue-50);color:var(--blue-anchor);
  display:inline-flex;align-items:center;justify-content:center;flex:none}

@media (max-width:900px){.ct-methods{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){.ct-split{grid-template-columns:1fr}}
@media (max-width:520px){.ct-methods{grid-template-columns:1fr}}

/* ===== PARTIAL: 40-faq-resources.css ===== */
/* ===== fq · faq ===== */
.fq-main{max-width:920px;width:100%;margin:0 auto;padding-left:24px;padding-right:24px;padding-bottom:40px}
.fq-hero{position:relative;margin:24px -24px 0;height:clamp(160px,26vw,240px);overflow:hidden}
.fq-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.fq-hero-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,20,52,.42) 0%,rgba(8,18,44,.78) 100%)}
.fq-hero-text{position:absolute;left:0;right:0;bottom:0;padding:0 28px 24px;max-width:920px;margin:0 auto}
.fq-hero-text .kicker{color:#E4EDFF} /* a11y: #BFD3FF hit 3.78:1 worst-pixel over the hero photo; #E4EDFF = 4.83:1 vs that pixel */
.fq-hero-text h1{font-size:clamp(32px,5vw,52px);letter-spacing:-.03em;line-height:1.02;margin:8px 0 0;color:#FFFFFF}
.fq-lede{font-size:16.5px;line-height:1.7;color:var(--ink-700);max-width:620px;margin:26px 0 0}
.fq-acc{margin-top:34px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card-lg);overflow:hidden}
.fq-acc details{border-bottom:1px solid var(--divider)}
.fq-acc details:last-child{border-bottom:0}
.fq-acc summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 24px;cursor:pointer;list-style:none}
.fq-acc summary::-webkit-details-marker{display:none}
.fq-acc summary:hover .fq-q{color:var(--blue-anchor)}
.fq-q{font-size:17px;font-weight:600;color:var(--ink-900);transition:color .2s}
.fq-chev{color:var(--ink-muted);flex:none;display:inline-flex;transition:transform .3s cubic-bezier(.22,.7,.2,1)}
.fq-acc details[open] .fq-chev{transform:rotate(180deg)}
.fq-a{font-size:15px;line-height:1.7;color:var(--ink-700);margin:0 24px 22px;max-width:640px}
.fq-cta{margin:34px 0 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--r-card);padding:22px 26px}
.fq-cta-text{font-size:15.5px;color:var(--ink-900);font-weight:500}
@media (prefers-reduced-motion:reduce){
  .fq-chev{transition:none}
}

/* ===== rc · resources ===== */
.rc-main{max-width:1000px;width:100%;margin:0 auto;padding-left:24px;padding-right:24px;padding-bottom:40px}
.rc-kicker{display:block;margin-top:36px}
.rc-h1{font-size:clamp(34px,5vw,54px);letter-spacing:-.03em;line-height:1.03;margin:12px 0 0}
.rc-lede{font-size:17px;line-height:1.7;color:var(--ink-700);max-width:600px;margin:18px 0 0}
.rc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:44px}
.rc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:26px;display:flex;flex-direction:column;gap:14px}
.rc-icon{width:44px;height:44px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.rc-icon-blue{background:var(--blue-50);color:var(--blue-anchor)}
.rc-icon-violet{background:#EFEBFB;color:#5A48C0}
.rc-icon-teal{background:#E2F4F5;color:var(--teal-text)}
.rc-card-title{font-family:var(--font-body);font-size:18px;font-weight:650;letter-spacing:-.01em;color:var(--ink-900)}
.rc-card-p{font-size:14px;line-height:1.6;color:var(--ink-700);margin:8px 0 0}
.rc-links{display:flex;flex-direction:column;margin-top:2px}
.rc-link{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-size:14px;color:var(--ink-900);transition:color .2s}
.rc-link:hover{color:var(--blue-anchor)}
.rc-link svg{flex:none}
.rc-cta{margin:40px 0 0;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--blue-50);border:1px solid var(--blue-100);border-radius:var(--r-card);padding:22px 26px}
.rc-cta-text{font-size:15.5px;color:var(--ink-900);font-weight:500}

/* ===== PARTIAL: 50-legal.css ===== */
/* ===== lg · legal set (shared by privacy / terms / disclaimer / return-refund / sms-opt-in) ===== */

/* [PLACEHOLDER — confirm] warning block: amber-tinted card from the foundation
   (.legal-body .placeholder) plus a leading warning icon. */
.lg-placeholder{display:flex;align-items:flex-start;gap:10px}
.lg-placeholder svg{flex:none;width:18px;height:18px;margin-top:2px;stroke:var(--warning)}

/* ===== PARTIAL: 55-misc.css ===== */
/* ===== ms · misc: disclaimer, return-refund, thank-you, 404 (single-column legal shell) ===== */
.ms-col{min-height:100vh;display:flex;flex-direction:column}
.ms-legal-main{flex:1;width:100%;max-width:820px;margin:0 auto;padding:56px 24px 72px}
.ms-legal-main h1{font-size:clamp(34px,5vw,52px);letter-spacing:-.03em;line-height:1.03;margin:12px 0 0;color:var(--ink)}
.ms-legal-body{margin-top:40px}
.ms-legal-body h2{font-size:22px;letter-spacing:-.02em;color:var(--ink-900);margin:36px 0 12px}
.ms-legal-body h2:first-child{margin-top:0}
.ms-legal-body p{font-size:15.5px;line-height:1.75;color:var(--ink-700);margin:0 0 14px;max-width:720px}
.ms-lede{font-size:16.5px;line-height:1.7;color:var(--ink-700);margin:22px 0 0;max-width:560px}
.ms-actions{margin-top:34px}

/* ===== PARTIAL: 60-sms.css ===== */
/* ===== sm · sms-opt-in ===== */

/* Register figure: phone-style rounded container around the inlined
   demo-receipt terminal screen (.dmt-crop-sms sizing lives in the dmt partial). */
.sm-figure{margin:14px 0 18px;max-width:520px}
.sm-phone{max-width:344px;margin:0 auto;border-radius:22px;overflow:hidden;
  border:1px solid #D3D7DE;background:#EEF1F6;box-shadow:0 26px 56px -32px rgba(20,30,60,.5)}
.sm-figcap{font-size:13px;color:var(--ink-muted);margin-top:10px;text-align:center}

/* Sample-message block: timestamp line + iMessage-style bubble with tail. */
.sm-msg{display:flex;flex-direction:column;align-items:flex-start;gap:7px;max-width:660px;margin:6px 0 4px}
.sm-msg-meta{align-self:center;font-size:11px;color:#9AA0A8;font-weight:500}
.sm-imsg{position:relative;align-self:flex-start;background:#E9E9EB;color:#0B0D12;
  border-radius:19px;padding:10px 15px;font-size:15px;line-height:1.45;max-width:342px;overflow-wrap:anywhere;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Inter,sans-serif}
.sm-imsg::before{content:"";position:absolute;left:-6px;bottom:-1px;width:20px;height:20px;
  background:#E9E9EB;border-bottom-right-radius:16px}
.sm-imsg::after{content:"";position:absolute;left:-9px;bottom:-1px;width:12px;height:20px;
  background:var(--page);border-bottom-right-radius:12px}
.sm-imsg-link{color:var(--blue-anchor)}

/* ===== PARTIAL: 70-orby (Phase 2 — JS-injected widget; nothing here renders without orby.js) ===== */
.orby-navbtn{height:44px;padding:0 13px 0 5px;border-radius:999px;border:1px solid var(--border,#E2E4E8);background:#FFFFFF;display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:#1F2328;font-size:13px;font-weight:600;transition:border-color .25s,background .25s,transform .15s}
.orby-navbtn:hover{border-color:#CACDD3;background:#F4F5F7}
.orby-navbtn:active{transform:scale(.96)}
.orby-face{position:relative;width:28px;height:28px;border-radius:50%;background:linear-gradient(150deg,#0A44D1,#0062E6);display:inline-flex;align-items:center;justify-content:center;flex:none}
.orby-dot{position:absolute;top:0;right:0;width:9px;height:9px;border-radius:50%;background:#16A34A;border:2px solid #fff}
.orby-face-lg{width:32px;height:32px}
.orby-panel{position:fixed;right:18px;top:84px;z-index:340;width:min(370px,calc(100vw - 24px));max-height:min(600px,calc(100vh - 100px));display:flex;flex-direction:column;background:#FFFFFF;border:1px solid #E2E4E8;border-radius:18px;box-shadow:0 24px 60px -20px rgba(20,23,28,.28);overflow:hidden;opacity:0;transform:translateY(8px) scale(.96);transition:opacity .24s,transform .24s}
.orby-panel.orby-open{opacity:1;transform:translateY(0) scale(1)}
.orby-panel[hidden]{display:none}
@media (max-width:520px){.orby-panel{right:12px;left:12px;width:auto;top:auto;bottom:12px;max-height:min(560px,calc(100vh - 24px))}}
.orby-head{display:flex;align-items:center;gap:9px;padding:12px 14px;border-bottom:1px solid #EEEFF1;background:#FFFFFF}
.orby-head-name{font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);font-size:12px;font-weight:700;letter-spacing:.16em;color:#1F2328}
.orby-close{margin-left:auto;width:44px;height:44px;display:grid;place-items:center;border:none;background:none;border-radius:10px;color:#6B7178;cursor:pointer}
.orby-close:hover{background:#F4F5F7;color:#1F2328}
.orby-msgs{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#F8F9FB;min-height:220px}
.orby-bubble{max-width:85%;padding:10px 13px;border-radius:14px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.orby-bot{align-self:flex-start;background:#fff;border:1px solid #E7E9EE;color:#1F2328;border-bottom-left-radius:4px}
.orby-user{align-self:flex-end;background:#0A44D1;color:#fff;border-bottom-right-radius:4px}
.orby-typing{color:#6B7178}
.orby-try{align-self:stretch}
.orby-try-label{font-family:var(--font-mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);font-size:10px;font-weight:700;letter-spacing:.14em;color:#98A2AE;text-transform:uppercase;margin:2px 2px 9px}
.orby-chips{display:flex;flex-direction:column;gap:8px}
.orby-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;min-height:46px;padding:8px 12px;background:#FFFFFF;border:1px solid #E4E7EC;border-radius:12px;cursor:pointer;transition:border-color .2s,background .2s;font:inherit}
.orby-chip:hover{border-color:#9DC0FF;background:#F6F9FF}
.orby-chip-main{display:inline-flex;align-items:center;gap:10px}
.orby-chip-ico{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;flex:none}
.orby-tint-blue{background:#EAF1FE;color:#0A44D1}
.orby-tint-amber{background:#FBEED6;color:#B4610A}
.orby-tint-teal{background:#E2F4F5;color:#0E7C87}
.orby-tint-violet{background:#EFEBFB;color:#5A48C0}
.orby-chip-q{font-size:13.5px;font-weight:600;color:#1F2328}
.orby-chip-chev{color:#B4BAC3;flex:none;display:inline-flex}
.orby-form{display:flex;gap:8px;padding:12px;border-top:1px solid #E2E4E8;background:#FFFFFF}
.orby-form input{flex:1;height:44px;border:1px solid #D3D7DD;border-radius:10px;padding:0 13px;font-size:16px;color:#1F2328;outline:none;font-family:inherit}
.orby-form input:focus-visible{border-color:#0062E6;box-shadow:0 0 0 3px rgba(0,98,230,.16)}
.orby-send{width:44px;height:44px;border:none;border-radius:10px;background:#0A44D1;color:#fff;cursor:pointer;display:grid;place-items:center}
.orby-send:hover{background:#093BB8}
@media (prefers-reduced-motion:reduce){.orby-panel{transition:none}.orby-navbtn{transition:none}}

/* ===== PARTIAL: 80-lang (Phase 3 — JS-injected language switcher; absent without JS) ===== */
.lang-switch{position:relative;display:inline-flex}
#lang-btn{height:44px;padding:0 10px;border-radius:999px;border:1px solid var(--border,#E2E4E8);background:#FFFFFF;display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#1F2328;font-size:12px;font-weight:700;letter-spacing:.06em;transition:border-color .25s,background .25s}
#lang-btn:hover{border-color:#CACDD3;background:#F4F5F7}
#lang-btn svg{flex:none}
#lang-chev{display:inline-flex;transition:transform .2s}
#lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:170px;background:#FFFFFF;border:1px solid #E2E4E8;border-radius:14px;box-shadow:0 18px 44px -18px rgba(20,23,28,.28);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:350;opacity:0;transform:translateY(-8px) scale(.97);pointer-events:none;transition:opacity .18s,transform .18s}
#lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:8px 12px;border:none;background:transparent;border-radius:9px;cursor:pointer;font-size:14px;font-weight:600;color:#1F2328;text-align:left;font-family:inherit}
#lang-menu button:hover{background:#F4F5F7}
#lang-menu [data-tick]{color:transparent;display:inline-flex}
@media (prefers-reduced-motion:reduce){#lang-menu,#lang-chev{transition:none}}
/* RTL adjustments: Arabic script must not inherit Latin letter-spacing */
#orbis-root[dir="rtl"] .kicker,#orbis-root[dir="rtl"] .footer-mono,#orbis-root[dir="rtl"] .brand-lockup,#orbis-root[dir="rtl"] .lp-marq-label{letter-spacing:0}
#orbis-root[dir="rtl"] #lang-menu{right:auto;left:0}
#orbis-root[dir="rtl"] .orby-panel{right:auto;left:18px}

/* ===== PARTIAL: 90-demos-interactive (JS-enhanced states only) ===== */
/* Every selector here is .dmi-prefixed or scoped under .js — nothing in this
   section can touch the no-JS render. Demo palettes stay each demo's own
   values (see 10-demos.css note); shared chrome reuses the site tokens. */

.dmi-vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;}

/* ---------- 1 · register (.dmr-) enhanced states ---------- */
.js .dmr-root[data-live] .dmr-cat{cursor:pointer;transition:background .15s,color .15s,border-color .15s;}
.js .dmr-root[data-live] .dmr-cat:hover{border-color:#CFD9EC;color:#1F2328;}
.js .dmr-root[data-live] .dmr-cat.dmr-on:hover{color:#fff;border-color:#1F2328;}
.js .dmr-root[data-live] .dmr-tile{cursor:pointer;transition:transform .12s,box-shadow .18s,border-color .18s;}
.js .dmr-root[data-live] .dmr-tile:hover{transform:translateY(-3px);box-shadow:0 14px 28px -16px rgba(31,35,40,.42);border-color:#CFD9EC;}
.js .dmr-root[data-live] .dmr-tile:active{transform:translateY(0) scale(.97);}
.js .dmr-root[data-live] .dmr-clr{cursor:pointer;transition:background .15s,color .15s;}
.js .dmr-root[data-live] .dmr-clr:hover{background:#F4F5F7;color:#1F2328;}
.dmr-tile.dmi-hide{display:none;}
.dmr-tile.dmi-bump{animation:dmiBump .34s cubic-bezier(.22,.7,.2,1);}
@keyframes dmiBump{0%{transform:none}35%{transform:translateY(-6px) scale(1.03)}100%{transform:none}}
.dmi-qtag{position:absolute;top:6px;right:6px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;
  background:#0A44D1;color:#fff;font-size:11px;font-weight:800;display:none;align-items:center;justify-content:center;
  box-shadow:0 4px 10px -3px rgba(10,68,209,.7);}
.dmr-tile.dmi-has .dmi-qtag{display:flex;}

.dmi-line{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #F4F5F7;
  animation:dmiSlideIn .32s cubic-bezier(.22,.7,.2,1);}
@keyframes dmiSlideIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.dmi-lthumb{width:40px;height:40px;border-radius:9px;display:grid;place-items:center;flex:none;}
.dmi-lthumb svg{width:26px;height:26px;filter:none;}
.dmi-lmid{flex:1;min-width:0;}
.dmi-lnm{font-size:13px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dmi-lpr{font-size:11.5px;color:#6B7178;font-variant-numeric:tabular-nums;margin-top:1px;}
.dmi-step{display:flex;align-items:center;gap:8px;}
.dmi-step button{width:24px;height:24px;border-radius:7px;border:1px solid #E7E9EE;background:#fff;color:#1F2328;
  font-size:15px;line-height:1;cursor:pointer;display:grid;place-items:center;font-family:inherit;padding:0;}
.dmi-step button:hover{background:#F4F5F7;}
.dmi-step b{font-size:13px;font-variant-numeric:tabular-nums;min-width:14px;text-align:center;}
.dmi-totals{display:none;padding:12px 18px;border-top:1px solid #E7E9EE;font-size:12.5px;color:#6B7178;}
.dmi-totals.dmi-show{display:block;}
.dmi-trow{display:flex;justify-content:space-between;padding:3px 0;font-variant-numeric:tabular-nums;}
.dmi-trow.dmi-grand{color:#1F2328;font-weight:750;font-size:15px;padding-top:7px;}
.js .dmr-root[data-live] .dmr-charge.dmi-live{opacity:1;cursor:pointer;
  box-shadow:0 14px 30px -12px rgba(10,68,209,.6);transition:background .2s,transform .12s,opacity .2s;}
.js .dmr-root[data-live] .dmr-charge.dmi-live:hover{background:#093BB8;}
.js .dmr-root[data-live] .dmr-charge.dmi-live:active{transform:scale(.985);}

.dmi-pay{position:absolute;inset:0;z-index:6;background:rgba(12,20,45,.5);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:none;align-items:center;justify-content:center;}
.dmi-pay.dmi-show{display:flex;animation:dmiFade .25s;}
@keyframes dmiFade{from{opacity:0}to{opacity:1}}
.dmi-sheet{width:340px;max-width:88%;background:#fff;border-radius:22px;padding:30px 26px 26px;text-align:center;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.6);}
.dmi-amt{font-size:34px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#1F2328;}
.dmi-paysub{font-size:13px;color:#6B7178;margin-top:4px;}
.dmi-wave{margin:22px auto 6px;width:110px;height:110px;display:grid;place-items:center;position:relative;}
.dmi-ring{position:absolute;width:110px;height:110px;border-radius:50%;border:2px solid rgba(0,98,230,.4);
  animation:dmiRipple 1.8s ease-out infinite;}
.dmi-ring:nth-child(2){animation-delay:.6s;}
.dmi-ring:nth-child(3){animation-delay:1.2s;}
@keyframes dmiRipple{0%{transform:scale(.5);opacity:.9}100%{transform:scale(1.15);opacity:0}}
.dmi-core{width:60px;height:60px;border-radius:50%;background:rgba(0,98,230,.08);border:1.5px solid rgba(0,98,230,.6);
  color:#0062E6;display:grid;place-items:center;}
.dmi-core svg{transform:rotate(90deg);}
.dmi-check{margin:18px auto 8px;width:76px;height:76px;border-radius:50%;background:#16A34A;display:grid;place-items:center;
  box-shadow:0 16px 30px -12px rgba(22,163,74,.7);animation:dmiPop .4s cubic-bezier(.22,1.4,.5,1);}
@keyframes dmiPop{0%{transform:scale(.4);opacity:0}100%{transform:scale(1);opacity:1}}
.dmi-rq{font-size:13.5px;font-weight:650;margin-top:18px;color:#1F2328;}
.dmi-rcpt{display:flex;gap:8px;margin-top:12px;}
.dmi-rcpt button{flex:1;height:46px;border:1px solid #E7E9EE;background:#fff;border-radius:12px;font-size:13px;
  font-weight:650;color:#1F2328;cursor:pointer;transition:.15s;font-family:inherit;}
.dmi-rcpt button:hover{border-color:#0A44D1;color:#0A44D1;background:#EAF1FE;}
.dmi-rcpt button.dmi-sel{border-color:#0A44D1;color:#fff;background:#0A44D1;}
.dmi-rcpt.dmi-locked button:not(.dmi-sel){opacity:.45;pointer-events:none;}
.dmi-muted-x{margin-top:14px;background:none;border:0;color:#6B7178;font-size:12.5px;cursor:pointer;font-family:inherit;}
.dmi-muted-x:hover{color:#1F2328;}

/* ---------- 2 · receipt chooser (.dmt-) enhanced states ---------- */
.js .dmt-device[data-live] .dmt-option{cursor:pointer;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,border-color .18s,background .2s,color .2s;}
.js .dmt-device[data-live] .dmt-option:hover{transform:translateY(-1px);border-color:#CFE0FA;
  box-shadow:0 6px 16px -8px rgba(12,97,219,.30),0 1px 2px rgba(20,22,27,.05);}
.js .dmt-device[data-live] .dmt-option:hover .dmt-opt-chev{color:#0C61DB;}
.js .dmt-device[data-live] .dmt-option:active{transform:translateY(0) scale(.995);}
.js .dmt-device[data-live] .dmt-ghost{cursor:pointer;border-radius:12px;transition:color .15s,background .15s;}
.js .dmt-device[data-live] .dmt-ghost:hover{color:#565C66;background:#F3F5F8;}
.dmt-option.dmi-selected{background:linear-gradient(150deg,#0C61DB,#0A4CB0);border-color:transparent;color:#fff;
  box-shadow:0 12px 24px -10px rgba(12,97,219,.55);transform:translateY(-1px);}
.dmt-option.dmi-selected .dmt-opt-desc{color:rgba(255,255,255,.82);}
.dmt-option.dmi-selected .dmt-opt-icon{background:rgba(255,255,255,.18);color:#fff;}
.dmt-option.dmi-selected .dmt-opt-chev{color:#fff;}
.dmt-options.dmi-locked .dmt-option:not(.dmi-selected){opacity:.45;}
.dmt-options.dmi-locked .dmt-option,.dmt-options.dmi-locked ~ .dmt-ghost{pointer-events:none;}
button.dmi-replay{border:0;background:transparent;cursor:pointer;font-family:inherit;padding:0;
  transition:background .15s,color .15s;}
button.dmi-replay:hover{background:#F2F4F8;color:#565C66;}

.dmi-parts{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;}
.dmi-particle{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%);
  will-change:transform,opacity;}
.js .dmt-device[data-live] .dmt-badge{position:relative;}

/* entrance replay (classes only appear under JS) */
@keyframes dmiBadgePop{0%{transform:scale(.28);opacity:0}58%{transform:scale(1.09);opacity:1}78%{transform:scale(.97)}100%{transform:scale(1);opacity:1}}
@keyframes dmiFadeUp{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes dmiPopUp{0%{opacity:0;transform:translateY(16px) scale(.98)}100%{opacity:1;transform:none}}
.dmt-device.dmi-play .dmt-badge{animation:dmiBadgePop .62s .10s cubic-bezier(.34,1.56,.64,1) both;}
.dmt-device.dmi-play .dmt-eyebrow{animation:dmiFadeUp .5s .46s cubic-bezier(.2,.7,.3,1) both;}
.dmt-device.dmi-play .dmt-heading{animation:dmiFadeUp .55s .54s cubic-bezier(.2,.7,.3,1) both;}
.dmt-device.dmi-play .dmt-option{animation:dmiPopUp .58s cubic-bezier(.34,1.56,.64,1) both;}
.dmt-device.dmi-play .dmt-option:nth-of-type(1){animation-delay:.76s;}
.dmt-device.dmi-play .dmt-option:nth-of-type(2){animation-delay:.86s;}
.dmt-device.dmi-play .dmt-option:nth-of-type(3){animation-delay:.96s;}
.dmt-device.dmi-play .dmt-ghost{animation:dmiFadeUp .5s 1.12s ease both;}

/* select ↔ success cross-fade */
.js .dmt-device[data-live] .dmt-view{transition:opacity .22s ease,transform .28s ease;}
.dmt-view.dmi-leaving{opacity:0;transform:scale(.985);pointer-events:none;}
.dmt-view.dmi-off{display:none;}
.dmi-succ{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;padding-top:16%;opacity:0;visibility:hidden;transform:scale(.98);
  transition:opacity .28s ease,transform .32s cubic-bezier(.2,.7,.3,1);}
.dmi-succ.dmi-show{opacity:1;visibility:visible;transform:none;}
.dmi-succ-hero{position:relative;margin-top:6px;}
.dmi-succ-badge{position:relative;width:92px;height:92px;border-radius:26px;background:#FFFFFF;display:grid;
  place-items:center;color:#0C61DB;
  box-shadow:0 10px 22px -6px rgba(12,97,219,.30),0 3px 8px rgba(20,22,27,.08),0 0 0 1px rgba(20,30,60,.03);}
.dmi-succ-badge svg{width:46px;height:46px;}
.dmi-draw{stroke-dasharray:34;stroke-dashoffset:34;}
.dmi-drawn .dmi-draw{animation:dmiDraw .5s .08s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes dmiDraw{to{stroke-dashoffset:0}}
.dmi-succ-t{margin:26px 0 0;text-align:center;font-size:24px;font-weight:640;letter-spacing:-.015em;color:#14161B;
  font-family:inherit;line-height:1.2;}
.dmi-succ-s{margin:8px 0 0;text-align:center;font-size:15px;font-weight:500;color:#6B7280;}
.dmi-succ.dmi-show .dmi-succ-t{animation:dmiFadeUp .5s .34s ease both;}
.dmi-succ.dmi-show .dmi-succ-s{animation:dmiFadeUp .5s .44s ease both;}
.dmi-startover{cursor:pointer;margin-top:34px;background:#F3F5F8;border:1px solid #ECEEF2;border-radius:13px;
  padding:12px 22px;color:#565C66;font-size:15px;font-weight:600;font-family:inherit;min-height:44px;
  transition:background .15s,color .15s,border-color .15s;}
.dmi-succ.dmi-show .dmi-startover{animation:dmiFadeUp .5s .6s ease both;}
.dmi-startover:hover{background:#EAEDF2;color:#14161B;}

/* ---------- 3 · refund modal (JS-injected; zero markup in HTML) ---------- */
body.dmi-lock{overflow:hidden;}
.js .lp-phone button.dmi-refbtn{cursor:pointer;font-family:inherit;line-height:1.2;
  transition:background .18s,color .18s,border-color .18s;}
.js .lp-phone button.dmi-refbtn:hover{background:rgba(0,98,230,.16);color:var(--blue-anchor);border-color:var(--blue-electric);}
.dmi-scrim{position:fixed;inset:0;z-index:400;background:rgba(15,18,24,.55);
  -webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;
  padding:24px;animation:dmiFade .2s ease;}
.dmi-dialog{width:362px;max-width:100%;max-height:100%;overflow:auto;background:var(--surface);border-radius:22px;
  box-shadow:0 40px 100px -30px rgba(15,18,24,.55);animation:dmiDlgPop .28s cubic-bezier(.22,.7,.2,1);}
@keyframes dmiDlgPop{0%{opacity:0;transform:translateY(14px) scale(.97)}100%{opacity:1;transform:none}}
.dmi-dhead{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;
  border-bottom:1px solid var(--sunken);}
.dmi-dbrand{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:14px;color:var(--ink-900);}
.dmi-x{width:44px;height:44px;border-radius:10px;border:none;background:var(--page);color:var(--ink-muted);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s;}
.dmi-x:hover{background:var(--sunken);}
.dmi-dbody{padding:22px;}
.dmi-rsum{text-align:center;background:#F8F9FB;border:1px solid #EEF0F3;border-radius:14px;padding:18px;}
.dmi-rmeta{font-size:12px;color:var(--ink-muted);}
.dmi-ramt{font-family:var(--font-display);font-weight:700;font-size:38px;letter-spacing:-.02em;margin-top:6px;
  font-variant-numeric:tabular-nums;color:var(--ink);}
.dmi-rp{font-size:13.5px;line-height:1.6;color:var(--ink-700);text-align:center;margin:18px 4px 0;}
.dmi-ract{display:flex;gap:10px;margin-top:22px;}
.dmi-btn-ghost{flex:1;height:48px;border-radius:12px;border:1px solid var(--border-strong,#E2E4E8);
  background:var(--surface);color:var(--ink-700);font-size:14.5px;font-weight:600;cursor:pointer;
  font-family:inherit;transition:background .18s;}
.dmi-btn-ghost:hover{background:var(--page);}
.dmi-btn-primary{flex:1;height:48px;border-radius:12px;border:none;background:var(--blue-anchor);color:#FFFFFF;
  font-size:14.5px;font-weight:600;cursor:pointer;font-family:inherit;
  box-shadow:0 10px 26px -12px rgba(10,68,209,.7);transition:background .18s;}
.dmi-btn-primary:hover{background:var(--blue-anchor-600);}
.dmi-btn-block{display:block;width:100%;margin-top:22px;box-shadow:none;}
.dmi-pinhead{text-align:center;}
.dmi-pint{font-size:15px;font-weight:600;color:var(--ink-900);}
.dmi-pins{font-size:13px;color:var(--ink-muted);margin-top:4px;font-variant-numeric:tabular-nums;}
.dmi-dots{display:flex;justify-content:center;gap:14px;margin:22px 0 20px;}
.dmi-dot{width:13px;height:13px;border-radius:999px;background:transparent;border:2px solid #C9CDD3;
  transition:all .15s;}
.dmi-dot.dmi-on{background:var(--blue-anchor);border-color:var(--blue-anchor);}
.dmi-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.dmi-key{height:56px;min-width:44px;border-radius:12px;border:1px solid #EEF0F3;background:#F8F9FB;
  font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--ink-900);cursor:pointer;
  transition:all .12s;display:inline-flex;align-items:center;justify-content:center;}
.dmi-key:hover{background:var(--blue-50);border-color:var(--blue-200);}
.dmi-key:active{transform:scale(.96);}
.dmi-key-del{color:var(--ink-muted);font-family:inherit;}
.dmi-key-del:hover{background:var(--sunken);border-color:#EEF0F3;}
.dmi-cancel-link{display:block;margin:16px auto 0;background:none;border:none;color:var(--ink-muted);
  font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;padding:10px 14px;}
.dmi-cancel-link:hover{color:var(--blue-anchor);}
.dmi-rdone{padding:12px 2px 8px;text-align:center;}
.dmi-dcheck{width:70px;height:70px;border-radius:999px;background:#E7F6ED;display:inline-flex;
  align-items:center;justify-content:center;}
.dmi-dcheck .dmi-draw{stroke-dasharray:26;stroke-dashoffset:26;animation:dmiDraw .5s ease-out .05s forwards;}
.dmi-rdone-t{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.02em;margin:20px 0 0;
  color:var(--ink);}
.dmi-rdone-p{font-size:14px;color:var(--ink-700);margin:10px 0 0;font-variant-numeric:tabular-nums;}
.dmi-refno{font-family:var(--font-mono);font-size:11px;color:var(--ink-muted);margin-top:6px;letter-spacing:.05em;}

/* ---------- 4 · invitation copy: hint chip + LIVE DEMO badges ---------- */
.dmi-hint{display:inline-flex;align-items:center;gap:9px;margin-top:18px;padding:9px 14px;border-radius:999px;
  background:var(--blue-50);border:1px solid var(--blue-200);color:var(--blue-anchor);
  font-size:12.5px;font-weight:600;}
.dmi-hint-dot{width:8px;height:8px;border-radius:50%;background:var(--blue-electric);flex:none;position:relative;}
/* pulse = ::after ring on transform/opacity only (perf finding 5) — replaces the
   old box-shadow keyframes, which repainted the dot every animation frame */
.dmi-hint-dot::after,.dmi-livebadge-dot::after{content:"";position:absolute;inset:-2px;
  border-radius:50%;border:2px solid rgba(0,98,230,.45);pointer-events:none;
  animation:dmiPulse 1.8s ease-out infinite;}
@keyframes dmiPulse{0%{transform:scale(.55);opacity:.9}70%{transform:scale(2.1);opacity:0}100%{transform:scale(2.1);opacity:0}}
.js .lp-term,.js .lp-ipad-frame{position:relative;}
.dmi-livebadge{position:absolute;top:-12px;left:18px;z-index:8;display:inline-flex;align-items:center;gap:7px;
  padding:6px 12px;border-radius:999px;background:var(--ink);color:#fff;font-family:var(--font-mono);
  font-size:10px;font-weight:600;letter-spacing:.14em;box-shadow:0 10px 24px -10px rgba(31,35,40,.6);}
.dmi-livebadge-dot{width:7px;height:7px;border-radius:50%;background:#4ADE80;flex:none;position:relative;}

/* ---------- reduced motion: demos stay fully usable, nothing moves ---------- */
@media (prefers-reduced-motion: reduce){
  .dmr-tile.dmi-bump,.dmi-line,.dmi-check,.dmi-ring,.dmi-pay.dmi-show,
  .dmt-device.dmi-play .dmt-badge,.dmt-device.dmi-play .dmt-eyebrow,.dmt-device.dmi-play .dmt-heading,
  .dmt-device.dmi-play .dmt-option,.dmt-device.dmi-play .dmt-ghost,
  .dmi-succ.dmi-show .dmi-succ-t,.dmi-succ.dmi-show .dmi-succ-s,.dmi-succ.dmi-show .dmi-startover,
  .dmi-drawn .dmi-draw,.dmi-dcheck .dmi-draw,.dmi-scrim,.dmi-dialog,
  .dmi-hint-dot,.dmi-livebadge-dot{animation:none;}
  .dmi-hint-dot::after,.dmi-livebadge-dot::after{display:none;}
  .dmi-draw,.dmi-dcheck .dmi-draw{stroke-dashoffset:0;}
  .dmt-view,.dmi-succ,.dmt-option,.dmi-key,.dmi-dot{transition:none;}
}

/* ===== PARTIAL: 95-integration (a11y text-size floor + perf) 2026-07-11 ===== */
/* Mobile text-size floor (audit finding 8): eyebrow/caption furniture measured
   10.5-11px at 375px; bump to the 12.5px README floor on small screens only —
   desktop keeps the designed sizes. */
@media (max-width:520px){
  .kicker,.footer-mono,.lp-marq-note,.footer-col-title,.lp-marq-label{font-size:12.5px}
}
/* NOTE: content-visibility:auto on the below-fold landing sections was
   evaluated 2026-07-11 and DROPPED: in headless Chrome 1440x900 it mis-lands
   anchor navigation (/#pricing arrived ~460px off target both with generic
   900px estimates and with exact CDP-measured intrinsic sizes; control build
   without content-visibility landed exactly at scroll-padding 110px). Anchor
   deep-links are used sitewide, so correctness wins over the paint savings. */

/* ===== PARTIAL3: p1-landing.css ===== */
/* ===== PARTIAL: p1-landing.css (partials3) ===== */
/* ===== lp · landing — 2026-07-11 owner-directed pass =====
   (a) marquee rebalance after the trademark-note removal
   (b) #product phone mock ~15% smaller, chips re-anchored
   (c) pricing-ladder "Everything in …, plus:" label
   (d) 3-step booking form: legends, slot list, progress, Next/Back
   All selectors lp-prefixed per the page-prefix contract; appended after the
   foundation so same-specificity overrides win by order. */

/* ---- (a) marquee: note removed; rebalance the card's bottom breathing room ---- */
.lp-marq{padding-bottom:26px}

/* ---- (b) #product phone mock: ~15% smaller (322px -> 274px) ---- */
.lp-phone{width:274px;border-radius:46px;padding:10px}
.lp-ph-screen{border-radius:38px}
.lp-ph-halo{width:376px;height:376px}
/* chips are anchored to .lp-ph-wrap; pull them in so they keep hugging the
   narrower phone edge (wrap column is unchanged, phone lost ~24px per side),
   and lift them off the store row / tab bar like the original composition */
.lp-dchip-top{right:0;top:12px}
.lp-dchip-bot{left:0;bottom:74px}
@media (max-width:900px){
  /* single-column: the wrap spans the page, keep chips near the phone */
  .lp-dchip-top{right:calc(50% - 165px)}
  .lp-dchip-bot{left:calc(50% - 165px)}
}

/* ---- (c) pricing ladder label ---- */
.lp-pcard-plus{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ink-muted);margin:0 0 12px}

/* ---- (d) booking form: stacked no-JS fieldsets ---- */
.lp-fs-step{border:0;padding:0;margin:0 0 26px;min-width:0}
.lp-fs-step:last-of-type{margin-bottom:0}
.lp-fs-legend{font-family:var(--font-display);font-size:18px;font-weight:600;
  letter-spacing:-.01em;color:var(--ink-900);padding:0;margin-bottom:14px}
.lp-fs-hint{font-size:13px;color:var(--ink-muted);margin:-6px 0 12px}

/* slot list */
.lp-slots{display:flex;flex-direction:column;gap:8px}
.lp-slot{position:relative;display:flex;align-items:center;gap:12px;min-height:48px;
  padding:10px 14px;background:var(--field);border:1px solid var(--border-input);
  border-radius:var(--r-input);cursor:pointer}
.lp-slot input{flex:none;width:18px;height:18px;accent-color:var(--blue-anchor);margin:0}
.lp-slot-txt{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0;flex-wrap:wrap}
.lp-slot-day{font-size:14.5px;font-weight:600;color:var(--ink-900)}
.lp-slot-time{font-size:13.5px;color:var(--ink-700)}
.lp-slot-tag{flex:none;font-size:11px;font-weight:700;letter-spacing:.03em;
  padding:3px 9px;border-radius:var(--r-pill)}
.lp-slot-tag-open{background:var(--success-50);color:var(--success-text)}
.lp-slot-tag-full{background:var(--sunken);color:var(--ink-muted)}
.lp-slot-tag-flex{background:var(--blue-50);color:var(--blue-anchor)}
.lp-slot-tag-note{background:var(--amber-tint);color:var(--amber-text)}
.lp-slot:hover{border-color:var(--border-strong)}
.lp-slot:has(input:checked){background:var(--blue-50);border-color:var(--blue-electric);
  box-shadow:0 0 0 1px var(--blue-electric)}
.lp-slot:has(input:focus-visible){box-shadow:var(--focus-ring)}
/* booked rows: visibly out of play, radio disabled = not focusable */
.lp-slot-full{cursor:not-allowed;background:var(--page);border-style:dashed}
.lp-slot-full:hover{border-color:var(--border-input)}
.lp-slot-full .lp-slot-day{color:var(--ink-muted);text-decoration:line-through;
  text-decoration-thickness:1px;text-decoration-color:var(--border-strong)}
.lp-slot-full input{accent-color:var(--border-strong)}

/* JS-injected chrome (absent without JS) */
.lp-fs-progress{font-family:var(--font-mono);font-size:11.5px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 14px}
.lp-fs-live .lp-fs-step{margin-bottom:0}
.lp-fs-nav{display:flex;justify-content:space-between;gap:12px;margin-top:18px}
.lp-fs-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  padding:0 22px;font-family:var(--font-body);font-size:14.5px;font-weight:600;
  border-radius:var(--r-btn);border:1px solid var(--border-strong);cursor:pointer}
/* `outline:none` removed 2026-07-15: it suppressed the global 3px solid focus ring
   (:83) on the booking form's Next/Back buttons and left only --focus-ring, a 35%-alpha
   box-shadow that is near-invisible on white. The glow is kept as an additive accent. */
.lp-fs-btn:focus-visible{box-shadow:var(--focus-ring)}
.lp-fs-back{background:var(--surface);color:var(--ink-700)}
.lp-fs-back:hover{background:var(--sunken)}
.lp-fs-next{background:var(--blue-anchor);border-color:var(--blue-anchor);color:#fff;
  margin-left:auto}
.lp-fs-next:hover{background:var(--blue-anchor-600)}

/* decorative step entry — transform/opacity only, and content is NEVER gated
   on it (display flips instantly in JS); PRM turns it off entirely */
@keyframes lp-fs-slide{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.lp-fs-in{animation:lp-fs-slide .32s ease}
@media (prefers-reduced-motion: reduce){
  .lp-fs-in{animation:none}
}

/* ===== PARTIAL3: p1-lang.css ===== */
/* ===== p1-lang · language switcher (header + footer instances) =====
   Component-owned classes only (.lang-switch-* / .lang-flag / .lang-item-*).
   The foundation's `.lang-switch{position:relative;display:inline-flex}` is
   reused, not redefined. The old #lang-btn/#lang-menu ID rules in the
   foundation are dead (the injector no longer emits those ids). */

.lang-switch-btn{height:44px;min-width:44px;padding:0 12px;border-radius:999px;
  border:1px solid var(--border,#E2E4E8);background:#FFFFFF;
  display:inline-flex;align-items:center;gap:7px;cursor:pointer;
  color:var(--ink-900,#1F2328);font-family:inherit;font-size:12px;font-weight:700;
  letter-spacing:.06em;transition:border-color .25s,background .25s}
.lang-switch-btn:hover{border-color:var(--border-strong,#CACDD3);background:var(--page,#F4F5F7)}
.lang-switch-btn:focus-visible,
.lang-switch-item:focus-visible{outline:2px solid var(--blue-electric,#0062E6);outline-offset:2px}

.lang-flag{display:inline-flex;width:16px;height:12px;border-radius:2.5px;overflow:hidden;
  flex:none;box-shadow:inset 0 0 0 1px rgba(20,23,28,.10)}
.lang-flag svg{display:block;width:100%;height:100%}

.lang-switch-chev{display:inline-flex;transition:transform .18s}
.lang-switch.is-open .lang-switch-chev{transform:rotate(180deg)}

.lang-switch-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:184px;
  background:#FFFFFF;border:1px solid var(--border,#E2E4E8);border-radius:14px;
  box-shadow:0 18px 44px -18px rgba(20,23,28,.28);padding:6px;
  display:flex;flex-direction:column;gap:2px;z-index:350;
  opacity:0;transform:translateY(-8px) scale(.97);pointer-events:none;
  transition:opacity .18s,transform .18s}
.lang-switch.is-open .lang-switch-menu{opacity:1;transform:none;pointer-events:auto}

.lang-switch-item{display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;min-height:44px;padding:8px 12px;border:none;background:transparent;
  border-radius:9px;cursor:pointer;font-size:14px;font-weight:600;
  color:var(--ink-900,#1F2328);text-align:left;font-family:inherit}
.lang-switch-item:hover{background:var(--page,#F4F5F7)}
.lang-switch-item.is-active{background:var(--blue-50,#EAF1FE);color:var(--blue-anchor,#0A44D1)}
.lang-item-main{display:inline-flex;align-items:center;gap:9px}
.lang-item-tick{display:inline-flex;color:transparent}
.lang-switch-item.is-active .lang-item-tick{color:var(--blue-anchor,#0A44D1)}

/* Footer (compact, on the navy footer) — height stays 44px for touch targets. */
.lang-switch--footer .lang-switch-btn{padding:0 10px;font-size:11px;
  background:transparent;border-color:rgba(255,255,255,.28);color:var(--on-navy-link,#D5E1F7)}
.lang-switch--footer .lang-switch-btn:hover{background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.5);color:#FFFFFF}
.lang-switch--footer .lang-switch-menu{top:auto;bottom:calc(100% + 8px)}

/* RTL: dropdown anchors to the other edge; item text aligns right. */
#orbis-root[dir="rtl"] .lang-switch-menu{right:auto;left:0}
#orbis-root[dir="rtl"] .lang-switch-item{text-align:right}

@media (prefers-reduced-motion:reduce){
  .lang-switch-menu,.lang-switch-chev,.lang-switch-btn{transition:none}
}

/* ---- Header actions: compact on phones so the nav toggle stays on-screen ----
   At <=700px the header CTA is already hidden (foundation :167). The injected
   "Ask ORBY" pill (~99px) + language switch (~74px) still overflowed the header
   row by ~85px on a 375px viewport, pushing .nav-toggle fully off-screen
   (unreachable) and clipping the flag. Collapse the Orby pill to its face icon
   and the language switch to its flag so the hamburger fits. Full functionality
   is kept — both stay tappable, just compact. (owner-directed 2026-07-20) */
@media (max-width:700px){
  .header-actions{gap:6px}
  .header-pill{padding-right:8px}
  .site-header .orby-navbtn{width:44px;padding:0;justify-content:center;gap:0}
  .site-header .orby-navlabel{display:none}
  .site-header .lang-switch-btn{width:44px;min-width:44px;padding:0;justify-content:center;gap:0}
  .site-header .lang-switch-label,.site-header .lang-switch-chev{display:none}
}

/* ===== PARTIAL3: p1-orby.css ===== */
/* ===== orby · p1 ORBY panel format (Phase 3 — overrides 70-orby; JS-injected,
   nothing here renders without orby.js). One cohesive rounded card:
   header / scrollable messages / footer (input row + disclaimer INSIDE the card). ===== */

/* Desktop: anchored top-right below the header launcher */
.orby-panel{width:min(380px,calc(100vw - 24px));max-height:min(72vh,640px)}

/* Messages area owns the internal scroll; min-height:0 lets the flex column
   shrink so the footer never pushes past the rounded bottom edge */
.orby-msgs{min-height:0}

/* Footer block: input row + disclaimer, one white slab inside the card */
.orby-foot{flex:none;background:#FFFFFF;border-top:1px solid #E2E4E8}
.orby-form{border-top:none;padding:12px 12px 4px}
.orby-disclaimer{margin:0;padding:6px 14px 11px;background:#FFFFFF;font-size:11.5px;line-height:1.45;color:#6B7178;text-align:center}

/* Mobile (<520px): full-width bottom sheet */
@media (max-width:520px){
  .orby-panel{left:0;right:0;bottom:0;top:auto;width:100%;max-width:none;max-height:78vh;border-radius:16px 16px 0 0;border-left:none;border-right:none;border-bottom:none;transform:translateY(14px)}
  .orby-panel.orby-open{transform:none}
  .orby-disclaimer{padding-bottom:calc(11px + env(safe-area-inset-bottom,0px))}
}

/* Motion is transform/opacity only (defined in 70-orby); with reduced motion
   the panel snaps — visibility is timer-driven in orby.js, never gated on a
   transition completing */
@media (prefers-reduced-motion:reduce){.orby-panel{transition:none;transform:none}}

/* ===== PARTIAL3: p2-tune.css ===== */
/* ===== p2-tune · perf pass support (2026-07-11) =====
   The language switcher now ships statically in each marketing page's header
   and footer (perf finding 6: the DOMContentLoaded injection was the page's
   only measured layout shift, CLS 0.014). i18n.js adopts and wires the static
   markup instead of building it. Without JavaScript the switcher can't do
   anything, so it follows the site's existing .no-js gating pattern
   (same as .no-js .nav-toggle) and is hidden — JS only ADDS behavior. */
.no-js .lang-switch{display:none}

/* ===== PARTIAL4: desktop-tier.css ===== */
/* ===== desktop-tier · fill-space pass (2026-07-15) =====
   The file had ZERO min-width queries: authored at --wrap:1240px and only ever
   shrinking, so above 1240px the page was frozen inside dead margin. Everything
   below is scoped >=1024px — every narrower viewport renders byte-identically to
   before this block existed. Static layout only; nothing gates content on JS.

   --wrap stays 1240px DELIBERATELY. It already matches Stripe (measured 1232px),
   and .lp-cards/.lp-tcards hold exactly 6 cards each — 1240 is the last width
   where auto-fit divides 3x2 cleanly. Widening orphans 2 cards onto row two. */
@media (min-width:1024px){
  /* The actual gap. These caps were ~56ch at 16.5px Inter — BELOW the 60-75ch
     readability floor, not above it. ~66ch fills the column AND obeys the rule. */
  .lp-dash-lede{max-width:560px}
  .lp-pay-lede{max-width:540px}
  .lp-cn-lede{max-width:540px}
  .lp-ct-p{max-width:540px}

  /* Was `1fr minmax(320px,368px)` => 764px | 368px, stranding 304px inside the
     column that already won the layout. Two equal tracks instead. .lp-phone is a
     fixed 322px so it centers in its half rather than hugging the gap.
     minmax(0,1fr) prevents the min-content grid blowout plain 1fr allows. */
  /* Equal tracks so the h2 and the lede wrap to the SAME measure — the raggedness
     between them (h2 ~730px, lede ~425px) is what read as unresolved. */
  .lp-dash-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px}

  /* The phone deliberately stays CENTERED in its track (.lp-ph-wrap :701 is
     display:flex + justify-content:center). Pinning it flex-end was tried and
     reverted: the floating "Refund approved" chip is absolutely positioned against
     this wrapper, and right-aligning clips it against the container edge. Centred,
     the halo (376px) also keeps its bleed room around a 274px phone. */
}

/* Short-laptop hero: at 1440x820 the hero measures 1044px and the next section
   begins exactly at the fold, so the page reads as ending there. Height-keyed —
   tall monitors keep the generous hero. */
@media (min-width:1024px) and (max-height:900px){
  .lp-hero{padding-top:140px;padding-bottom:64px}
}

/* ===== PARTIAL5: a11y-fixes.css ===== */
/* ===== a11y · forced-colors rescue (2026-07-15) =====
   .grad-text (:108) and .lp-price-h2 (:950) paint their type with
   background-clip:text + -webkit-text-fill-color:transparent, over a background-image,
   with color:var(--blue-anchor) as the intended fallback.

   In Windows High Contrast / forced-colors the UA drops the background-image but does
   NOT reset -webkit-text-fill-color — so the fallback colour never shows and the text
   renders transparent on transparent. Live effect: three section headings and the whole
   pricing headline become INVISIBLE. There were zero forced-colors blocks in the file.

   currentColor picks up the forced system colour, so the type returns as solid text. */
@media (forced-colors:active){
  .grad-text,
  .lp-price-h2{
    background-image:none;
    -webkit-text-fill-color:currentColor;
  }
}

/* ===== 2026-07-20 · owner-directed pass 2 ===== */

/* (A) Ways-to-pay: the Apple-Pay phone mock (.dmc-scene + .lp-pay-stage) was
   removed from index.html — the payment-method chips already make the point.
   Cap the copy for readable line length and spread the three chip groups into a
   row so the section reads as a clean full-width "every way to pay" band. */
.lp-pay-copy{max-width:960px}
.lp-pay-groups{flex-direction:row;flex-wrap:wrap;gap:20px 44px}
.lp-pay-groups>div{flex:0 1 auto}
@media (max-width:640px){.lp-pay-groups{flex-direction:column;gap:15px}}

/* (B) Ask C — amplify orange + retire teal (owner-approved 2026-07-20). Buttons
   stay blue; orange remains an accent (never a button). The pricing trio now
   reads orange (Small Business) / blue (Enterprise) / blue (Multi-location). */
#up-and-running .lp-ur-num{color:var(--accent)}            /* step numbers 01-04: faint gold -> vivid orange */
.lp-pcard-multi{background:linear-gradient(180deg,rgba(10,68,209,.06),rgba(10,68,209,0) 44%),#FFFFFF}
.lp-pcard-multi:hover{border-color:var(--blue-anchor);box-shadow:0 40px 76px -32px rgba(10,68,209,.42)}
.lp-pcard-multi .lp-pcard-bar{background:var(--blue-electric)}
.lp-pcard-multi .lp-pcard-name{color:var(--blue-anchor)}
.lp-pcard-multi .lp-pfeat-ck{color:var(--blue-electric)}
.lp-pcta-teal{background:#FFFFFF;color:var(--blue-anchor);border:1.5px solid var(--blue-200)}
.lp-pcta-teal:hover{background:var(--blue-50);border-color:var(--blue-electric);color:var(--blue-anchor)}

/* ===== 2026-07-20 · pass 3 — full teal purge + misc (owner-directed) =====
   Retire the teal third accent site-wide -> blue. Remapping the teal tokens
   (overriding the frozen defs via the cascade) turns every var(--teal-*) usage
   blue; the hardcoded-hex teal spots are fixed below. Contrast preserved:
   #0A44D1 on #EAF1FE ~= 8:1. */
:root{ --teal-text:#0A44D1; --teal-tint:#EAF1FE; --teal-tint-strong:#D6E4FD; }
.lp-card-teal{background:linear-gradient(160deg,#EAF1FE 0%,#F5F9FF 100%);border:1px solid #D6E4FD}
.lp-card-teal .lp-card-ico{box-shadow:0 7px 18px -8px rgba(10,68,209,.5)}
.lp-paychip-otc{border-color:rgba(10,68,209,.2)}
.lp-cat1{background:#0062E6}
.lp-sw1{background:#0062E6}
.ct-m-teal:hover{border-color:#AEC9FB}
.ct-mi-teal{background:#EAF1FE}
.ct-ml-teal{color:#0A44D1}
.rc-icon-teal{background:#EAF1FE}
.orby-tint-teal{background:#EAF1FE;color:#0A44D1}
.lp-pay-halo2{background:radial-gradient(circle,rgba(10,68,209,.12),transparent 66%)}

/* '+ more' integrations chip -> routes to Book a walkthrough */
.lp-chip-more{color:var(--blue-anchor);background:transparent;border:1px dashed var(--blue-200);
  font-weight:700;text-decoration:none;cursor:pointer}
.lp-chip-more:hover{background:var(--blue-50);border-color:var(--blue-electric);color:var(--blue-anchor)}

/* receipt-demo 'Secure by default' badge -> float lower-left so it clears the Orbis brand in the topbar */
.lp-cn-chip1{top:auto;bottom:44px}

/* ===== HARDWARE STRESS TEST (#hardware) — 2026-07-20 ===== */
.lp-hw{padding:56px 0}
.lp-hw-top{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;margin-top:22px}
.lp-hw-head{max-width:480px}
.lp-hw-head .lp-h2{margin:0 0 16px}
.lp-hw-lede{font-size:16.5px;line-height:1.6;color:var(--ink-700);margin:0 0 24px}
.lp-hw-photo{margin:0;border-radius:var(--r-card-lg);overflow:hidden;box-shadow:var(--shadow-lg);aspect-ratio:3/2}
.lp-hw-photo img{display:block;width:100%;height:100%;object-fit:cover}
.lp-hw-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}
.lp-hw-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
  padding:20px 20px 18px;box-shadow:var(--shadow-sm)}
.lp-hw-big{font-family:var(--font-display);font-weight:700;font-size:33px;letter-spacing:-.02em;line-height:1;
  background-image:var(--gradient-display);-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--blue-anchor)}
.lp-hw-big-accent{background:none;-webkit-text-fill-color:currentColor;color:var(--accent)}
.lp-hw-t{font-weight:700;font-size:15px;color:var(--ink-900);margin-top:12px}
.lp-hw-d{font-size:13.5px;line-height:1.5;color:var(--ink-muted);margin-top:5px}
@media (max-width:900px){.lp-hw-top{grid-template-columns:1fr;gap:28px}.lp-hw-head{max-width:none}.lp-hw-cards{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.lp-hw-cards{grid-template-columns:1fr}}

/* ===== iPad register: offline-mode toggle + warning bar ===== */
.dmr-wifi{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:700;color:#3A3F47;
  background:#EAF7EE;border:1px solid #CDECD6;border-radius:999px;padding:5px 10px;cursor:pointer;
  font-family:inherit;white-space:nowrap;flex:none;transition:background .15s,border-color .15s,color .15s}
.dmr-wifi-ico{display:inline-flex;color:#1E9E52}
.js .dmr-root[data-live] .dmr-wifi:hover{border-color:#B7DFC4}
.dmr-root.dmr-is-off .dmr-wifi{background:#FCF1E2;border-color:#F1D9AE;color:#8A5A12}
.dmr-root.dmr-is-off .dmr-wifi-ico{color:#D97706}
.dmr-offbar{display:flex;align-items:center;gap:8px;padding:9px 16px;background:var(--blue-50);color:var(--blue-anchor-700);
  font-size:12.5px;font-weight:600;border-bottom:1px solid #F1D9AE;flex:none}
.dmr-offbar svg{flex:none;color:var(--blue-anchor)}
@media (max-width:640px){.dmr-wifi-lbl{display:none}.dmr-wifi{padding:6px}}

/* ===== Plain-English section: two-button demo picker + iPad spotlight ===== */
.lp-rc-cta{display:flex;flex-wrap:wrap;gap:12px}
.dmi-spotlight{animation:dmiSpot 2.1s ease-out}
@keyframes dmiSpot{
  0%{box-shadow:0 0 0 0 rgba(244,83,26,0)}
  12%{box-shadow:0 0 0 5px rgba(244,83,26,.55),0 34px 90px -30px rgba(10,68,209,.5)}
  100%{box-shadow:0 0 0 0 rgba(244,83,26,0)}
}
@media (prefers-reduced-motion:reduce){.dmi-spotlight{animation:none}}
.lp-cn-links{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:20px}

/* ===== Hero → deeper "space" look + a much denser, brighter starfield (owner-directed 2026-07-20).
   Hero-scoped so the other .lp-stars sections (contact, up-and-running) are untouched. ===== */
.lp-hero{background:linear-gradient(168deg,#05122E 0%,#071B49 30%,#0A2A6B 66%,#0A44D1 100%)}
#hero .lp-stars{opacity:1}
#hero .lp-stars::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(1.6px 1.6px at 9% 18%,#fff,transparent 60%),
    radial-gradient(1px 1px at 20% 40%,#cfe0ff,transparent 60%),
    radial-gradient(2px 2px at 33% 61%,#fff,transparent 60%),
    radial-gradient(1px 1px at 44% 27%,#fff,transparent 60%),
    radial-gradient(1.4px 1.4px at 57% 51%,#dbe8ff,transparent 60%),
    radial-gradient(1px 1px at 69% 23%,#fff,transparent 60%),
    radial-gradient(2px 2px at 79% 45%,#fff,transparent 60%),
    radial-gradient(1px 1px at 88% 66%,#cfe0ff,transparent 60%),
    radial-gradient(1.5px 1.5px at 15% 72%,#fff,transparent 60%),
    radial-gradient(1px 1px at 37% 84%,#fff,transparent 60%),
    radial-gradient(1.4px 1.4px at 63% 79%,#ffe6d5,transparent 60%),
    radial-gradient(1px 1px at 84% 87%,#fff,transparent 60%),
    radial-gradient(2px 2px at 5% 52%,#fff,transparent 60%),
    radial-gradient(1px 1px at 50% 8%,#fff,transparent 60%),
    radial-gradient(1.5px 1.5px at 74% 9%,#cfe0ff,transparent 60%),
    radial-gradient(1px 1px at 26% 6%,#fff,transparent 60%),
    radial-gradient(1px 1px at 94% 14%,#fff,transparent 60%),
    radial-gradient(1.4px 1.4px at 3% 34%,#fff,transparent 60%);
  animation:lp-twinkle 5.5s ease-in-out .4s infinite}
@media (prefers-reduced-motion:reduce){#hero .lp-stars::after{animation:none}}
/* much denser starfield — two TILED layers (repeat across the whole hero) for real "space" depth */
#hero .lp-stars::after{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(1.4px 1.4px at 20px 30px,#fff,transparent),
    radial-gradient(1px 1px at 70px 95px,#cfe0ff,transparent),
    radial-gradient(1.7px 1.7px at 135px 50px,#fff,transparent),
    radial-gradient(1px 1px at 105px 150px,#fff,transparent),
    radial-gradient(1.3px 1.3px at 175px 115px,#dbe8ff,transparent),
    radial-gradient(1px 1px at 45px 178px,#fff,transparent),
    radial-gradient(1.6px 1.6px at 198px 25px,#fff,transparent),
    radial-gradient(1px 1px at 150px 198px,#e8f0ff,transparent);
  background-size:215px 215px;opacity:.95;animation:lp-twinkle 5.5s ease-in-out .4s infinite}
#hero .lp-stars::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    radial-gradient(2px 2px at 60px 80px,#fff,transparent),
    radial-gradient(1.2px 1.2px at 185px 40px,#cfe0ff,transparent),
    radial-gradient(1.5px 1.5px at 120px 175px,#ffe6d5,transparent),
    radial-gradient(1.2px 1.2px at 255px 120px,#fff,transparent),
    radial-gradient(2px 2px at 30px 225px,#fff,transparent),
    radial-gradient(1.2px 1.2px at 305px 205px,#fff,transparent);
  background-size:335px 300px;opacity:.9;animation:lp-twinkle 7s ease-in-out 1s infinite}
@media (prefers-reduced-motion:reduce){#hero .lp-stars::before{animation:none}}

/* ============================================================================
   ===== PARTIAL: 60-v4.css  ·  "The counter, at altitude" (2026-07-23) =======
   Everything below is APPENDED. The frozen foundation (lines 1-342) is
   untouched. This block: the three-rung surface ladder, the Signal support
   hues, the retirement of the blue display gradient, the scroll-motion
   vocabulary, and the four new sections (#proof, #orby, #faq, #partners).
   Contrast note: every pair used here was measured, not estimated. The pairs
   that FAIL and are therefore banned are recorded inline where they'd tempt.
   ============================================================================ */

:root{
  /* --- surface ladder: exactly one rung per section --- */
  --rung-light:#F6F8FC;      /* Signal base. Cool, never cream. */
  --rung-mid:#E9EEF7;
  --rung-ink:#0B1220;

  /* --- vertical density scale (replaces 13 hardcoded section paddings) --- */
  --band-tight:clamp(52px,6vw,76px);
  --band:clamp(64px,7.5vw,104px);
  --band-loose:clamp(76px,9vw,132px);

  /* --- Signal support hues -------------------------------------------------
     A parallel teal family. The `--teal-*` tokens were remapped to blue in the
     2026-07-20 purge and drive contact.html + resources.html, so they stay put:
     touching them would silently recolour two out-of-scope pages. */

  --violet:#6B4EF0;              /* 3.54:1 on ink — FILLS + the 2px tab bar only */
  --violet-on-ink:#9A87F7;       /* 6.4:1 on ink — all violet TEXT on ink */
  --violet-on-light:#5136C7;     /* 7.3:1 on light */
  --violet-tint:#F0EDFE;
  --violet-tint-border:#DCD4FB;

  /* --- accent split by ROLE. The old burnt-orange family drove ~25 rules and
     used one token for both fills and text; #F2801E as text on the light rung
     is 2.51:1, which fails even the 3:1 large-text floor. --- */
  --accent:#F2801E;              /* FILLS, borders, glows */
  --accent-bright:#FF9A4D;
  --accent-text:#9A5208;         /* 5.5:1 on light, 5.0:1 on mid — ALL text roles */
  --accent-tint:#FDF0E4;
  --accent-glow:rgba(242,128,30,.55);

  --hair-blue:rgba(10,68,209,.12);

  /* Two-tone focus ring, no alpha. The live `0 0 0 3px rgba(0,98,230,.35)`
     composites to 1.69:1 on light and 1.42:1 on ink — it fails 2.4.7 on both. */
  --focus-ring:0 0 0 3px #F6F8FC,0 0 0 6px #0B1220;
}

/* ---- rung scoping ---------------------------------------------------- */
[data-rung="light"]{background:var(--rung-light)}
[data-rung="mid"]{background:var(--rung-mid)}
[data-rung="ink"]{background:var(--rung-ink)}
/* --ink-muted is 4.24:1 on the mid rung and fails; darken it there only. */
[data-rung="mid"]{--ink-muted:#5F656D}
[data-rung="ink"]{--focus-ring:0 0 0 3px #0B1220,0 0 0 6px #FFFFFF}
[data-rung="ink"] :focus-visible{outline-color:#FFFFFF}

/* ---- the blue display gradient is retired -----------------------------
   `.grad-text` painted nine H2s plus four stat figures. A gradient headline is
   an accent; on every heading it is wallpaper, and it is what made the page
   read monochrome-blue. Neutralised rather than deleted so any instance missed
   in the HTML degrades to solid instead of to a 2.46:1 gradient on ink. */
.grad-text{background-image:none;-webkit-text-fill-color:currentColor;color:inherit}
.lp-hw-big{background-image:none;-webkit-text-fill-color:currentColor;color:var(--ink)}
.h2-acc-amber{color:var(--accent-text)}
[data-rung="ink"] .h2-acc-amber{color:#FFC489}
[data-rung="ink"] h2,[data-rung="ink"] h3{color:#FFFFFF}

/* ---- white-on-amber is 2.66:1. Banned at every size, on every element. ---- */
.lp-pill-pop{background:var(--accent);color:#0B1220;box-shadow:none}
.lp-live-pill{background:var(--accent-tint);color:var(--accent-text)}
.lp-hw-big-accent{background:none;-webkit-text-fill-color:currentColor;color:var(--accent-text)}

/* ============================ MOTION ====================================
   Four genuinely different mechanisms plus one per-character headline used
   exactly once. Not one entrance repeated twelve times.
   CSP: `style-src 'self'` with no 'unsafe-inline', so stagger indices are
   utility classes, never inline style attributes. */
.rv-i0{--rv-i:0}.rv-i1{--rv-i:1}.rv-i2{--rv-i:2}.rv-i3{--rv-i:3}
.rv-i4{--rv-i:4}.rv-i5{--rv-i:5}.rv-i6{--rv-i:6}.rv-i7{--rv-i:7}
.rv-xl{--rv-x:-28px}.rv-xr{--rv-x:28px}

/* V2 · media are UNCOVERED, not slid */
.js .reveal.rv-lift{opacity:0;clip-path:inset(14% 0 0 0);transform:none;
  transition:clip-path .78s cubic-bezier(.22,.7,.2,1),opacity .5s linear}
.js .reveal.rv-lift.in{opacity:1;clip-path:inset(0)}

/* V3 · split columns arrive from their own side */
.js .reveal.rv-slide{opacity:0;transform:translateX(var(--rv-x,-28px));
  transition:opacity .6s cubic-bezier(.22,.7,.2,1),transform .7s cubic-bezier(.22,.7,.2,1)}
.js .reveal.rv-slide.in{opacity:1;transform:none}
#orbis-root[dir="rtl"] .js .reveal.rv-slide,
.js #orbis-root[dir="rtl"] .reveal.rv-slide{transform:translateX(calc(-1 * var(--rv-x,-28px)))}
@media (max-width:900px){.js .reveal.rv-slide{transform:translateY(20px)}}

/* V4 · grid cards sweep. No scale — indistinguishable at scroll speed. */
.js .reveal.rv-pop{opacity:0;transform:translateY(14px);
  transition:opacity .5s cubic-bezier(.22,.7,.2,1),transform .64s cubic-bezier(.22,.7,.2,1);
  transition-delay:calc(min(var(--rv-i,0),7) * 55ms)}
.js .reveal.rv-pop.in{opacity:1;transform:none}
@media (max-width:900px){.js .reveal.rv-pop{transition-delay:0s}}

/* V5 · section furniture draws itself in */
.js .sec-rule::after{transform:scaleX(0);transform-origin:left;
  transition:transform .7s cubic-bezier(.22,.7,.2,1)}
.js .sec-rule.in::after{transform:scaleX(1)}
#orbis-root[dir="rtl"] .js .sec-rule::after{transform-origin:right}

/* V6 · the page's ONLY per-character reveal, on the Orby headline */
.js .rv-chars .rv-ch{display:inline-block;opacity:0;filter:blur(8px);transform:translateY(8px);
  transition:opacity .52s ease-out,filter .52s ease-out,transform .52s cubic-bezier(.22,.7,.2,1);
  transition-delay:calc(var(--ci,0) * 26ms)}
.js .rv-chars.in .rv-ch{opacity:1;filter:blur(0);transform:none}

@media (prefers-reduced-motion:reduce){
  .js .reveal.rv-lift,.js .reveal.rv-slide,.js .reveal.rv-pop,.js .rv-chars .rv-ch{
    opacity:1!important;transform:none!important;clip-path:none!important;filter:none!important;
    transition:none!important;transition-delay:0s!important}
  .js .sec-rule::after{transform:scaleX(1)!important;transition:none!important}
}

/* ==================== RUNG FLIPS =======================================
   Two sections change ground, and both had hardcoded text colours tuned for
   the OLD ground. Flipping the background alone leaves invisible headings. */

/* #up-and-running: dark navy -> MID. Seven stranded white-on-navy rules. */
#up-and-running{background:var(--rung-mid);background-image:none}
#up-and-running .lp-ur-head h2{color:var(--ink)}
#up-and-running .lp-ur-lede{color:var(--ink-700)}
#up-and-running .lp-ur-step{border-right-color:var(--hair-blue)}
#up-and-running .lp-ur-ico{background:#FFFFFF;border:1px solid var(--border);color:var(--blue-anchor)}
#up-and-running .lp-ur-title{color:var(--ink)}
#up-and-running .lp-ur-p{color:var(--ink-700)}
#up-and-running .lp-ur-num{color:var(--blue-anchor)}

/* #contact: light gradient -> INK. Four stranded dark-grey-on-light rules,
   plus a halo tuned to bloom on a light ground that reads as a smudge on ink. */
#contact{background:var(--rung-ink);background-image:none}
#contact .lp-ct-lang1{color:var(--on-navy-body)}
#contact .lp-ct-lang2{color:var(--on-navy-fine)}
#contact .lp-ct-p{color:var(--on-navy-body)}
#contact .lp-ct-link{color:#FFFFFF}
#contact a.lp-ct-link:hover{color:var(--on-navy-selected)}
#contact .lp-ct-halo{background:radial-gradient(closest-side,rgba(107,78,240,.22),transparent 70%)}
#contact .lp-ct-ico-blue{background:rgba(0,98,230,.18);color:#BFD3FF}
#contact .lp-ct-ico-amber{background:rgba(242,128,30,.18);color:#FFC489}
/* the form card stays a light surface — it is an input surface, not a band */
#contact .form-card{background:var(--surface)}

/* ==================== SPACE, DEMOTED ===================================
   The orbit ring appeared six times and the starfield four. The theme reads
   as a scene rather than a substrate, which is what "looks out of place"
   meant. One orbit, three starfields, both quieter and slower. */
.lp-orbit{display:none}
#hero .lp-orbit-hero{display:block;opacity:.10}
#hero .lp-orbit-hero .lp-orbit-ring{border-width:1px;animation-duration:60s}
#hero .lp-orbit-hero .lp-orbit-orb{opacity:.5}
.lp-shoot{display:none}                 /* three shooting stars, permanently */
#hero .lp-stars{opacity:.55}
#contact .lp-stars{opacity:.3}
.site-footer .lp-stars{opacity:.4}
@media (prefers-reduced-motion:reduce){
  #hero .lp-orbit-hero .lp-orbit-ring{animation:none}
  .lp-stars::before,.lp-stars::after{animation:none!important}
}

/* ==================== ELEVATION, UNIFIED ================================
   Cards were lifting on hover in four different ways and a 1px hairline sat
   under a wide soft ambient shadow (the "ghost card" tell). One language:
   hairline + rung contrast. Photos keep their scale, because that reads as
   the image responding rather than the box floating. */
.lp-hw-photo{box-shadow:none;border:1px solid var(--border);border-radius:18px;overflow:hidden}
.card-raise:hover{transform:none;border-color:var(--border-strong)}

/* ==================== #orby — the showpiece ============================= */
#orby{position:relative;padding:var(--band-loose) 0;overflow-x:clip;overflow-y:visible}
.ob-aurora{position:absolute;left:0;top:50%;width:900px;height:900px;
  margin-left:-75px;margin-top:-450px;transform:translateY(-50%);
  pointer-events:none;z-index:0}
.ob-aurora span{position:absolute;inset:0;display:block}
/* four diagonal sheens, every hue capped at 9-10% alpha, no animation */
.ob-a1{background:linear-gradient(115deg,transparent 30%,rgba(107,78,240,.10) 50%,transparent 70%)}
.ob-a2{background:linear-gradient(85deg,transparent 35%,rgba(46,139,255,.09) 50%,transparent 65%)}
.ob-a3{background:linear-gradient(155deg,transparent 30%,rgba(242,128,30,.10) 55%,transparent 75%)}
.ob-a4{background:linear-gradient(65deg,transparent 35%,rgba(10,68,209,.09) 50%,transparent 70%)}
@media (max-width:768px){.ob-aurora{display:none}}
.ob-in{position:relative;z-index:1;text-align:center}
.ob-mark{width:64px;height:64px;margin:0 auto 18px;display:block}
.ob-h2{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,4.6vw,56px);
  line-height:1.06;letter-spacing:-.03em;color:#FFFFFF;max-width:1120px;margin:0 auto}
.ob-drum{margin-top:18px;font-family:var(--font-mono);font-size:12.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--violet-on-ink)}
.ob-ask{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}
.ob-ask input{flex:1 1 260px;min-height:52px;padding:0 18px;border-radius:14px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);
  color:#FFFFFF;font-family:var(--font-body);font-size:16px;
  transition:border-color .2s,background-color .2s}
.ob-ask input::placeholder{color:rgba(246,248,252,.62)}
.ob-ask input:focus{outline:none;border-color:var(--violet);border-width:2px;background:rgba(255,255,255,.09)}
.ob-close{margin-top:22px;font-size:15.5px;line-height:1.6;color:var(--on-navy-body);text-align:center}

/* ==================== #faq — sticky rail + accordion ==================== */
#faq{padding:var(--band-tight) 0}
.fqh-grid{display:grid;grid-template-columns:minmax(260px,1fr) 1.55fr;gap:clamp(28px,4vw,64px);align-items:start}
.fqh-left{position:sticky;top:5rem}
.fqh-left h2{font-size:clamp(26px,3.4vw,40px);letter-spacing:-.03em;line-height:1.08;
  color:var(--ink);margin-top:12px}
.fqh-all{display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:18px;
  font-weight:600;font-size:15px;color:var(--blue-electric)}
.fqh-list{display:flex;flex-direction:column;gap:12px}
.fqh-item{border:1px solid var(--border);border-radius:22px;overflow:hidden;background:#FFFFFF;
  scroll-margin-top:110px;transition:background-color .6s cubic-bezier(.22,.7,.2,1)}
.fqh-item[open]{background:var(--rung-light)}
.fqh-item summary{display:flex;align-items:center;justify-content:space-between;gap:18px;
  min-height:44px;padding:20px 28px;cursor:pointer;list-style:none;
  font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--ink)}
.fqh-item summary::-webkit-details-marker{display:none}
.fqh-item summary:focus-visible{outline:3px solid var(--blue-electric);outline-offset:-3px}
.fqh-ico{position:relative;flex:none;width:22px;height:22px}
.fqh-ico i{position:absolute;background:var(--blue-anchor);border-radius:100vw;
  transition:transform .42s cubic-bezier(.22,.7,.2,1)}
.fqh-ico i:first-child{inset-inline-start:10px;top:0;width:2px;height:100%}
.fqh-ico i:last-child{top:10px;inset-inline-start:0;height:2px;width:100%}
.fqh-item[open] .fqh-ico i:first-child{transform:rotate(90deg)}
.fqh-item[open] .fqh-ico i:last-child{transform:rotate(-90deg)}
.fqh-a{padding:0 28px 24px;font-size:15.5px;line-height:1.65;color:var(--ink-700)}
.fqh-a a{color:var(--blue-electric);text-decoration:underline}
@media (max-width:1023px){.fqh-grid{grid-template-columns:1fr;gap:26px}.fqh-left{position:static}}

/* ==================== #partners — amber-owned on ink ==================== */
#partners{position:relative;padding:var(--band) 0;overflow:hidden}
.aff-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,4.5vw,64px);align-items:center}
.aff-h2{font-size:clamp(27px,3.8vw,44px);letter-spacing:-.03em;line-height:1.07;color:#FFFFFF;margin-top:12px}
.aff-lede{margin-top:16px;font-size:17px;line-height:1.62;color:var(--on-navy-body);max-width:56ch}
.aff-bullets{margin-top:26px;display:flex;flex-direction:column;gap:18px}
.aff-b{padding-inline-start:18px;border-inline-start:2px solid rgba(242,128,30,.5)}
.aff-b-t{font-family:var(--font-display);font-weight:600;font-size:15px;color:#FFC489}
.aff-b-p{margin-top:5px;font-size:15.5px;line-height:1.6;color:var(--on-navy-body)}
.aff-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:28px;
  min-height:52px;padding:0 30px;border-radius:100vw;border:0;
  background:var(--accent);color:#0B1220;   /* ink on amber = 7.03:1; white would be 2.66:1 */
  font-family:var(--font-body);font-weight:700;font-size:15.5px;
  transition:background-color .3s cubic-bezier(.4,0,.2,1)}
.aff-cta:hover{background:var(--accent-bright);color:#0B1220}
.aff-fine{margin-top:16px;font-size:13px;line-height:1.6;color:var(--on-navy-fine);max-width:52ch}
.aff-vis{position:relative;border-radius:22px;overflow:hidden;isolation:isolate}
.aff-vis img{width:100%;height:auto;display:block;filter:saturate(.88) contrast(1.04)}
.aff-glow{position:absolute;top:0;inset-inline-start:0;width:520px;height:520px;
  transform:translate(-50%,-50%);pointer-events:none;z-index:-1;opacity:.42;
  background:radial-gradient(circle farthest-side,#F2801E,#F2801E00)}
.aff-how{margin-top:clamp(38px,5vw,60px);display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.aff-step{padding:0 24px;border-inline-start:1px solid rgba(242,128,30,.28);
  font-size:15.5px;line-height:1.6;color:var(--on-navy-body)}
.aff-step:first-child{border-inline-start:0;padding-inline-start:0}
.aff-step b{display:block;font-family:var(--font-display);font-weight:600;color:#FFFFFF;margin-bottom:5px}
@media (max-width:900px){.aff-grid{grid-template-columns:1fr;gap:32px}
  .aff-how{grid-template-columns:1fr;gap:20px}
  .aff-step{border-inline-start:0;padding:0;border-top:1px solid rgba(242,128,30,.28);padding-top:18px}
  .aff-step:first-child{border-top:0;padding-top:0}}

/* ==================== #hardware — three blocks ==========================
   Block A: two PEER register options. Block B: the live free-hardware promise.
   Block C: the kit rail. One elevation language across all three: hairline
   only, nothing floats. */
#hardware{padding:var(--band) 0}
.hw-block{margin:clamp(48px,5vw,72px) 0}
.hw-block + .hw-block{border-top:1px solid var(--hair-blue);padding-top:clamp(48px,5vw,72px)}
.hw-h3{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;color:var(--ink)}
.hw-lede{margin-top:8px;font-size:15.5px;line-height:1.6;color:var(--ink-700);max-width:60ch}

/* --- Block A: peer register cards --- */
.hw-peers{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px}
.hw-card{display:flex;flex-direction:column;background:#FFFFFF;border:1px solid var(--border);
  border-radius:22px;overflow:hidden;box-shadow:none}
.hw-well{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--rung-light)}
/* the section's entire atmosphere budget: one amber quarter-circle per well */
.hw-well::before{content:"";position:absolute;top:0;inset-inline-start:0;width:520px;height:520px;
  transform:translate(-50%,-50%);pointer-events:none;opacity:.28;z-index:0;
  background:radial-gradient(circle farthest-side,#F2801E,#F2801E00)}
.hw-well img,.hw-well svg{position:relative;z-index:1;width:70%;height:70%;object-fit:contain}
.hw-body{display:flex;flex-direction:column;flex:1;padding:24px 26px 26px}
.hw-chip{align-self:flex-start;display:inline-flex;align-items:center;min-height:26px;padding:0 11px;
  border-radius:100vw;background:var(--rung-light);border:1px solid var(--border);
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-muted)}
.hw-name{margin-top:12px;font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--ink)}
.hw-cap{margin-top:9px;font-size:15px;line-height:1.6;color:var(--ink-700)}
.hw-pin{margin-top:auto;padding-top:18px;font-size:13.5px;line-height:1.5;color:var(--ink-muted)}
@media (max-width:900px){.hw-peers{grid-template-columns:1fr}}
@media (max-width:620px){.hw-well{aspect-ratio:16/10}}

/* --- Block B: the four stat figures, as a divided row, not cards.
   They must read as a different object from the #proof tiles. --- */
.lp-hw-stats .lp-hw-card{background:transparent;border:0;box-shadow:none;border-radius:0;
  padding:4px 24px;border-inline-start:1px solid var(--hair-blue)}
.lp-hw-stats .lp-hw-card:first-child{border-inline-start:0;padding-inline-start:0}
@media (max-width:620px){
  .lp-hw-stats .lp-hw-card{border-inline-start:0;padding:18px 0 0;border-top:1px solid var(--hair-blue)}
  .lp-hw-stats .lp-hw-card:first-child{border-top:0;padding-top:0}}

/* --- Block C: the kit rail --- */
.hw-rail-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.hw-rail-nav{display:flex;gap:8px}
.hw-rail-btn{width:44px;height:44px;border-radius:100vw;border:1px solid var(--border);
  background:#FFFFFF;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:border-color .2s,background-color .2s}
.hw-rail-btn:hover{border-color:var(--border-strong);background:var(--rung-light)}
.hw-rail{display:flex;gap:18px;margin-top:24px;overflow-x:auto;padding-bottom:6px;
  /* PROXIMITY, never mandatory: mandatory snap on a wide-item rail captures
     vertical swipes on iOS Safari and reads as the page refusing to scroll */
  scroll-snap-type:x proximity;scroll-behavior:smooth;
  touch-action:pan-x pan-y;overscroll-behavior-x:contain;
  scrollbar-width:thin}
.hw-rail::-webkit-scrollbar{height:6px}
.hw-rail::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100vw}
.hw-kit{flex:0 0 clamp(240px,72vw,300px);scroll-snap-align:start;
  background:#FFFFFF;border:1px solid var(--border);border-radius:18px;padding:22px;
  display:flex;flex-direction:column;gap:12px}
.hw-kit-ico{width:96px;height:96px;color:var(--blue-anchor)}
.hw-kit-t{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink)}
.hw-kit-p{font-size:14.5px;line-height:1.55;color:var(--ink-700)}

/* ==================== density: replace the flat 84/92px bands ==========
   Every band used one padding, so the three-rung ladder was doing all the
   compositional work alone. Vary by the section's job. */
#counter,#faq{padding-block:var(--band-tight)}
#product,#what-you-get,#shops,#hardware,#pricing,#partners,#owners,#up-and-running{padding-block:var(--band)}
#orby,#terminal,#real-counters,#contact{padding-block:var(--band-loose)}

/* ==================== touch targets on coarse pointers ================= */
@media (pointer:coarse){
  .dmi-chip,.lp-chip-more,.hw-rail-btn{min-height:44px}
}

/* Two ink sections already own a background and must keep it: the hero
   gradient and the register band. The rung attribute records WHICH rung they
   are (so the shared ink-rung text/focus rules apply) without repainting them. */
#hero[data-rung="ink"]{background:linear-gradient(168deg,#05122E 0%,#071B49 30%,#0A2A6B 66%,#0A44D1 100%)}
#terminal[data-rung="ink"]{background:linear-gradient(165deg,#0A2A6B 0%,#0A44D1 52%,#0E5AE6 100%)}
/* The hero H1 keeps its own colour treatment, including the amber lockup. */
#hero h1{color:#FFFFFF}

/* ==================== the six-colour pastel card wall ==================
   `#what-you-get` assigned each of six cards a different pastel — teal, purple,
   amber, pink, blue, green. That is the canonical colour-the-cards-at-random
   pattern, it fought the identity, and two of the six (#FCEAD2 amber, #FBE0E8
   pink) were warm cream/pink, the exact tone the brief rules out as a surface.
   The cards become white panels on the mid rung; ONE keeps a violet tint so the
   grid still reads as authored rather than flattened. Iconography and copy
   differentiate the cards now, not six unrelated hues. */
.lp-card-teal,.lp-card-amber,.lp-card-pink,.lp-card-blue,.lp-card-green{
  background:#FFFFFF;border:1px solid var(--border)}
.lp-card-purple{background:#FFFFFF;border:1px solid var(--border)}
/* the coloured drop-shadow under each icon chip was a zero-offset halo */
.lp-card-teal .lp-card-ico,.lp-card-amber .lp-card-ico,.lp-card-pink .lp-card-ico,
.lp-card-blue .lp-card-ico,.lp-card-green .lp-card-ico,.lp-card-purple .lp-card-ico{
  box-shadow:none;background:var(--rung-light);border:1px solid var(--border)}
.lp-card-teal .lp-card-ico{color:var(--blue-anchor)}
.lp-card-amber .lp-card-ico{color:var(--accent-text)}
.lp-card-blue  .lp-card-ico{color:var(--blue-anchor)}
.lp-card-green .lp-card-ico{color:var(--success-text)}
.lp-card-pink  .lp-card-ico{color:var(--blue-anchor)}
.lp-card-purple .lp-card-ico{color:var(--violet-on-light);background:var(--rung-light);border:1px solid var(--border)}

/* ==================== ink-rung text corrections ========================
   Flipping #contact and #partners to the ink rung stranded two token-driven
   text colours that were tuned for a LIGHT ground:
   `--amber-text:#9A5208` is a dark amber — 5.5:1 on light, but only 3.2:1 on
   #0B1220. `--ink-muted` is invisible there outright. */
[data-rung="ink"] .kicker,[data-rung="ink"] .kicker-amber{color:#FFC489}
[data-rung="ink"] .kicker-muted{color:var(--on-navy-fine)}
[data-rung="ink"] .muted,[data-rung="ink"] .lp-fine{color:var(--on-navy-fine)}
[data-rung="ink"] .sec-rule::after{background:rgba(255,255,255,.16)}
/* "Fully booked" measured 4.24:1 — just under the 4.5 floor. */
.lp-slot-tag-full{color:#5F656D}

/* Arabic renders in Noto Sans Arabic; Space Grotesk has no Arabic coverage, so
   display headings fell back to a system face mid-page. Route them explicitly. */
#orbis-root[dir="rtl"] h1,#orbis-root[dir="rtl"] h2,#orbis-root[dir="rtl"] h3,
#orbis-root[dir="rtl"] h4,#orbis-root[dir="rtl"] .ob-h2,#orbis-root[dir="rtl"] .hw-name{
  font-family:'Noto Sans Arabic','Inter',system-ui,sans-serif;letter-spacing:0}
#orbis-root[dir="rtl"] .kicker,#orbis-root[dir="rtl"] .ob-eyebrow,#orbis-root[dir="rtl"] .ob-drum{
  letter-spacing:0}

/* Ambient decoration is suspended off-screen and in a background tab (site.js
   block 11). Applies to the element and its ::before/::after layers, which is
   where the starfields actually live. */
.anim-paused,.anim-paused::before,.anim-paused::after,
.anim-paused *,.anim-paused *::before,.anim-paused *::after,
.anim-hidden .lp-stars,.anim-hidden .lp-stars::before,.anim-hidden .lp-stars::after,
.anim-hidden .lp-orbit-ring,.anim-hidden .marquee,.anim-hidden .lp-marq{
  animation-play-state:paused!important}

/* The iPad product render carries its own near-white studio background, which
   sat as a visible pale rectangle on top of the well's amber glow. Multiply
   drops the light background into the well so only the device reads. */
.hw-well img{mix-blend-mode:multiply}
/* the line diagram is already transparent — keep it out of the blend */
.hw-well svg{mix-blend-mode:normal}

/* ==================== final-check corrections (Fable review) ============
   .lp-price-h2 carried its own copy of the retired blue display gradient, so
   the pricing headline was still gradient-painted after .grad-text was
   neutralised. And .lp-price's navy border-top dates from when the section
   above it was dark; between two light surfaces it reads as a stray wire. */
.lp-price-h2{background-image:none;-webkit-text-fill-color:currentColor;color:var(--ink)}
.lp-price{border-top:1px solid var(--border)}

/* ============================================================================
   ===== PARTIAL: 70-pages.css · dedicated pages (2026-07-23) =================
   /pricing /partners /hardware /grocery /wholesale /bodega-deli /restaurants.
   Reuses the v4 system (rungs, rv-* motion, hw-*, aff-*, fqh-*); this block
   holds only what the standalone pages need on top of it. */

/* --- page hero: calm ink band, no scene --- */
.pg-hero{position:relative;background:linear-gradient(168deg,#05122E 0%,#071B49 34%,#0A2A6B 78%,#0B1220 100%);
  padding:calc(var(--header-clear) + 44px) 24px clamp(48px,7vw,84px);overflow:hidden}
.pg-hero .lp-stars{opacity:.35}
.pg-hero-in{max-width:var(--wrap-tight);margin:0 auto;position:relative}
.pg-hero h1{color:#FFFFFF;font-size:clamp(32px,4.8vw,56px);letter-spacing:-.03em;line-height:1.05;max-width:18ch}
.pg-hero-lede{margin-top:16px;font-size:17.5px;line-height:1.65;color:var(--on-navy-body);max-width:58ch}
.pg-hero-ctas{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.pg-kicker{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--on-navy-selected);margin-bottom:14px}
.pg-hero-fig{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.14);
  margin-top:clamp(28px,4vw,44px)}
.pg-hero-fig img{width:100%;height:clamp(200px,32vw,380px);object-fit:cover;display:block}
.pg-hero-split{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.pg-hero-split .pg-hero-fig{margin-top:0}
@media (max-width:900px){.pg-hero-split{grid-template-columns:1fr}}

/* --- generic page sections --- */
.pg-sec{padding:var(--band) 24px}
.pg-in{max-width:var(--wrap-tight);margin:0 auto}
.pg-sec h2{font-size:clamp(26px,3.6vw,40px);letter-spacing:-.03em;line-height:1.08;color:var(--ink);max-width:24ch}
[data-rung="ink"].pg-sec h2{color:#FFFFFF}
.pg-lede{margin-top:12px;font-size:16.5px;line-height:1.65;color:var(--ink-700);max-width:62ch}
[data-rung="ink"] .pg-lede{color:var(--on-navy-body)}

/* three/four-up feature rows, hairline-divided like the hardware stats */
.pg-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(26px,3.4vw,40px)}
.pg-row-4{grid-template-columns:repeat(4,1fr)}
.pg-cell{padding:4px 26px;border-inline-start:1px solid var(--hair-blue)}
.pg-cell:first-child{border-inline-start:0;padding-inline-start:0}
.pg-cell-t{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink)}
.pg-cell-p{margin-top:7px;font-size:14.5px;line-height:1.6;color:var(--ink-700)}
[data-rung="ink"] .pg-cell{border-inline-start-color:rgba(255,255,255,.12)}
[data-rung="ink"] .pg-cell-t{color:#FFFFFF}
[data-rung="ink"] .pg-cell-p{color:var(--on-navy-body)}
@media (max-width:900px){.pg-row,.pg-row-4{grid-template-columns:1fr 1fr;gap:26px 0}
  .pg-cell:nth-child(odd){border-inline-start:0;padding-inline-start:0}}
@media (max-width:560px){.pg-row,.pg-row-4{grid-template-columns:1fr;gap:20px}
  .pg-cell{border-inline-start:0;padding:18px 0 0;border-top:1px solid var(--hair-blue)}
  .pg-cell:first-child{border-top:0;padding-top:0}}

/* --- dual-pricing compare (two peer panels, no slider gimmick) --- */
.dp-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:clamp(26px,3.4vw,40px)}
.dp-panel{background:#FFFFFF;border:1px solid var(--border);border-radius:22px;padding:28px}
.dp-panel-hi{border-color:rgba(242,128,30,.5);border-width:2px}
.dp-tag{display:inline-flex;min-height:26px;align-items:center;padding:0 12px;border-radius:100vw;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase}
.dp-tag-trad{background:var(--sunken);color:var(--ink-muted)}
.dp-tag-orbis{background:var(--accent-tint);color:var(--accent-text)}
.dp-big{font-family:var(--font-display);font-weight:700;font-size:clamp(34px,4.4vw,52px);
  letter-spacing:-.03em;line-height:1;color:var(--ink);margin-top:16px}
.dp-big-sub{font-size:13.5px;color:var(--ink-muted);margin-top:6px}
.dp-list{margin-top:18px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.55;color:var(--ink-700)}
.dp-list li{list-style:none;padding-inline-start:24px;position:relative}
.dp-list li::before{content:"";position:absolute;inset-inline-start:0;top:.5em;width:12px;height:3px;
  border-radius:2px;background:var(--border-strong)}
.dp-panel-hi .dp-list li::before{background:var(--accent)}
@media (max-width:820px){.dp-compare{grid-template-columns:1fr}}
.dp-fine{margin-top:18px;font-size:12.5px;line-height:1.6;color:var(--ink-muted);max-width:74ch}

/* --- partner tracks --- */
.pt-tracks{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:clamp(26px,3.4vw,40px)}
.pt-card{background:#FFFFFF;border:1px solid var(--border);border-radius:22px;padding:28px;
  display:flex;flex-direction:column}
.pt-card-hi{border-color:rgba(242,128,30,.5);border-width:2px}
.pt-name{font-family:var(--font-display);font-weight:700;font-size:21px;color:var(--ink);margin-top:12px}
.pt-for{margin-top:6px;font-size:14px;color:var(--ink-muted)}
.pt-list{margin-top:16px;display:flex;flex-direction:column;gap:10px;font-size:15px;line-height:1.55;color:var(--ink-700)}
.pt-list li{list-style:none;padding-inline-start:26px;position:relative}
.pt-list li::before{content:"";position:absolute;inset-inline-start:2px;top:.32em;width:14px;height:8px;
  border-inline-start:2.5px solid var(--accent-text);border-bottom:2.5px solid var(--accent-text);
  transform:rotate(-45deg)}
.pt-pin{margin-top:auto;padding-top:18px;font-size:13.5px;color:var(--ink-muted)}
@media (max-width:820px){.pt-tracks{grid-template-columns:1fr}}

/* --- vertical pages: photo + checklist band --- */
.vt-band{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(28px,4vw,60px);align-items:center;
  margin-top:clamp(26px,3.4vw,40px)}
.vt-band-flip{grid-template-columns:1.05fr 1fr}
.vt-fig{border-radius:20px;overflow:hidden;border:1px solid var(--border)}
.vt-fig img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:4/3}
.vt-list{display:flex;flex-direction:column;gap:14px}
.vt-item{padding-inline-start:18px;border-inline-start:2px solid rgba(10,68,209,.35)}
.vt-item b{display:block;font-family:var(--font-display);font-weight:600;font-size:15.5px;color:var(--ink)}
.vt-item p{margin-top:4px;font-size:14.5px;line-height:1.6;color:var(--ink-700)}
@media (max-width:900px){.vt-band,.vt-band-flip{grid-template-columns:1fr}}

/* --- pricing page: reuse the landing pricing cards on a standalone page --- */
.pg-price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:22px;
  margin-top:clamp(26px,3.4vw,40px);align-items:stretch}

/* --- closing CTA band --- */
.pg-cta{background:var(--rung-ink);padding:var(--band) 24px;text-align:center;position:relative;overflow:hidden}
.pg-cta .lp-stars{opacity:.3}
.pg-cta h2{color:#FFFFFF;font-size:clamp(26px,3.8vw,44px);letter-spacing:-.03em;max-width:24ch;margin:0 auto}
.pg-cta p{margin:14px auto 0;color:var(--on-navy-body);font-size:16px;line-height:1.6;max-width:52ch}
.pg-cta .pg-hero-ctas{justify-content:center}

/* --- homepage tie-ins to the dedicated pages --- */
.lp-shop-more{display:inline-flex;align-items:center;gap:6px;margin-top:8px;
  font-size:13px;font-weight:600;color:#FFFFFF;min-height:32px}
.lp-shop-more:hover{color:var(--on-navy-selected)}
.lp-price-dp{margin-top:10px;font-size:15px;color:var(--ink-700)}
.lp-price-dp a{font-weight:600}
.aff-more{margin-top:14px}
.aff-more a{display:inline-flex;align-items:center;gap:7px;min-height:44px;
  font-weight:600;font-size:14.5px;color:#FFC489}
.aff-more a:hover{color:#FFFFFF}

/* ============================================================================
   ===== PARTIAL: 80-motion-v5.css · "real scroll animation throughout" ======
   Three Dripos-derived mechanics, no libraries, CSP-safe:
   (1) rounded-slab section overlap — each band slides up over the previous one
   (2) masked line-rise headings — site.js block 12 measures real line boxes
   (3) scroll-scrubbed photo de-zoom — CSS scroll-driven animation, no JS  */

/* (1) rounded slabs. The 28px overlap is absorbed by the band padding. */
main > section + section,.site-footer{position:relative;
  border-start-start-radius:28px;border-start-end-radius:28px;margin-top:-28px}
.site-footer{overflow:hidden}
@media (max-width:700px){main > section + section,.site-footer{
  border-start-start-radius:16px;border-start-end-radius:16px;margin-top:-16px}}

/* (2) masked line-rise. site.js wraps each measured line in .ln-mask > .ln.
   Lines rise from behind the mask with a slight settle, staggered by --li. */
.js .ln-split{display:block}
.js .ln-mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.js .ln{display:block;transform:translateY(114%) rotate(.8deg);transform-origin:0 100%;
  transition:transform .82s cubic-bezier(.22,.7,.2,1);
  transition-delay:calc(var(--li,0) * 110ms)}
#orbis-root[dir="rtl"] .js .ln{transform-origin:100% 100%}
.js .ln-split.in .ln{transform:none}
/* headings that were split no longer need the block-level rise */
.js .reveal.ln-split{opacity:1;transform:none}
/* block-mask fallback for non-split headings (ES/AR, resize, no-split cases) */
.js .reveal.rv-rise.h-mask{clip-path:inset(0 0 102% 0);transform:translateY(18px);opacity:1;
  transition:clip-path .7s cubic-bezier(.22,.7,.2,1),transform .7s cubic-bezier(.22,.7,.2,1)}
.js .reveal.rv-rise.h-mask.in{clip-path:inset(-0.15em 0 -0.2em 0);transform:none}

/* (3) photos de-zoom as they scroll into view — scrubbed, not triggered */
@supports (animation-timeline: view()) {
  @media not (prefers-reduced-motion: reduce) {
    .vt-fig img,.pg-hero-fig img,.lp-shop-img,.lp-hw-photo img,.aff-vis img{
      animation:pg-dezoom linear both;animation-timeline:view();
      animation-range:entry 0% cover 46%}
  }
}
@keyframes pg-dezoom{from{transform:scale(1.1)}to{transform:scale(1)}}

@media (prefers-reduced-motion:reduce){
  .js .ln{transform:none!important;transition:none!important}
  .js .reveal.rv-rise.h-mask{clip-path:none!important;transform:none!important;transition:none!important}
}

/* --- kit rail, upgraded from line icons to real product photos ---
   Same grammar as the register cards: light well, amber quarter-glow bleeding
   from the top corner (the Dripos radial-accent move), photo dropped in with
   multiply so its studio white disappears. */
.hw-kit-well{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  overflow:hidden;border-radius:12px;background:var(--rung-light);margin-bottom:2px}
.hw-kit-well::before{content:"";position:absolute;top:0;inset-inline-start:0;width:340px;height:340px;
  transform:translate(-50%,-50%);pointer-events:none;opacity:.26;z-index:0;
  background:radial-gradient(circle farthest-side,#F2801E,#F2801E00)}
.hw-kit-well img{position:relative;z-index:1;width:88%;height:88%;object-fit:contain;mix-blend-mode:multiply}
/* /hardware kit: four photo cards in a row on desktop */
#kit .hw-peers{grid-template-columns:repeat(4,1fr)}
@media (max-width:1024px){#kit .hw-peers{grid-template-columns:1fr 1fr}}
@media (max-width:560px){#kit .hw-peers{grid-template-columns:1fr}}
.hw-kit .hw-kit-t{margin-top:12px}

/* --- Orby chat preview ------------------------------------------------- */
.ob-grid{display:grid;grid-template-columns:.9fr 1.25fr;gap:clamp(26px,3.6vw,52px);
  align-items:center;margin-top:clamp(30px,4vw,46px);text-align:start;
  max-width:1040px;margin-inline:auto}
.ob-uses{display:flex;flex-direction:column;gap:22px}
.ob-use{padding-inline-start:18px;border-inline-start:2px solid rgba(154,135,247,.5)}
.ob-use-t{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--violet-on-ink)}
.ob-use-p{margin-top:5px;font-size:15px;line-height:1.6;color:var(--on-navy-body)}
.ob-chat{border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(255,255,255,.04);
  overflow:hidden}
.ob-chat-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.10)}
.ob-chat-brand{display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.12em;color:#FFFFFF}
.ob-pers{display:inline-flex;gap:4px;background:rgba(255,255,255,.07);border-radius:100vw;padding:3px}
.ob-per{min-height:34px;padding:0 16px;border:0;border-radius:100vw;background:transparent;
  cursor:pointer;font-family:var(--font-body);font-size:13.5px;font-weight:600;
  color:rgba(246,248,252,.66);transition:background-color .15s cubic-bezier(.4,0,.2,1),color .15s}
.ob-per[aria-pressed="true"]{background:var(--violet);color:#FFFFFF}
.ob-per:hover{color:#FFFFFF}
.ob-sample{margin-inline-start:auto;font-family:var(--font-mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(246,248,252,.55)}
.ob-thread{display:flex;flex-direction:column;gap:10px;padding:20px 18px;min-height:330px}
.ob-thread[hidden]{display:none}
.ob-msg{max-width:82%;border-radius:16px;padding:10px 14px;font-size:14.5px;line-height:1.5}
.ob-msg p{color:inherit}
.ob-u{align-self:flex-end;background:var(--blue-anchor);color:#FFFFFF;border-end-end-radius:5px}
.ob-b{align-self:flex-start;background:rgba(255,255,255,.08);color:var(--on-navy-body);
  border:1px solid rgba(255,255,255,.10);border-end-start-radius:5px}
/* playback: messages hold layout (opacity only) so the card never reflows */
.js .ob-chat.ob-playing .ob-msg{opacity:0;transform:translateY(10px)}
.js .ob-chat .ob-msg{transition:opacity .38s cubic-bezier(.22,.7,.2,1),transform .44s cubic-bezier(.22,.7,.2,1)}
.js .ob-chat.ob-playing .ob-msg.ob-in{opacity:1;transform:none}
.ob-chat .ob-ask{margin:0;padding:14px 18px;border-top:1px solid rgba(255,255,255,.10)}
@media (max-width:900px){.ob-grid{grid-template-columns:1fr}.ob-thread{min-height:0}
  .ob-sample{display:none}}
@media (prefers-reduced-motion:reduce){
  .js .ob-chat.ob-playing .ob-msg{opacity:1!important;transform:none!important}}

/* --- Orby chat: fleshed-out reply anatomy --- */
.ob-b-tag{display:block;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--violet-on-ink);margin-bottom:5px}
.ob-stat{display:flex;flex-direction:column;gap:3px}
.ob-stat-eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(246,248,252,.6)}
.ob-stat-big{font-family:var(--font-display);font-weight:700;font-size:26px;
  letter-spacing:-.02em;color:#FFFFFF;line-height:1.1}
.ob-stat-meta{font-size:13px;color:var(--on-navy-body)}
.ob-stat-break{font-size:12px;color:var(--on-navy-fine);padding-top:6px;margin-top:4px;
  border-top:1px solid rgba(255,255,255,.10)}

/* --- Industries dropdown, Dripos-mannered: a calm rounded panel, generous
   items, description under each label, arrowless until hover --- */
.nav-drop{position:relative;display:inline-flex}
.nav-drop-btn{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:12px 0;
  border:0;background:transparent;cursor:pointer;
  font-family:var(--font-body);font-size:13.5px;font-weight:500;color:var(--ink-700);
  transition:color .22s}
.nav-drop-btn:hover,.nav-drop.open .nav-drop-btn{color:var(--blue-anchor)}
.nav-drop-btn svg{transition:transform .25s cubic-bezier(.22,.7,.2,1)}
.nav-drop.open .nav-drop-btn svg{transform:rotate(180deg)}
.nav-drop-menu{position:absolute;top:calc(100% + 14px);inset-inline-start:50%;
  transform:translateX(-50%) translateY(6px);min-width:340px;padding:10px;
  background:var(--surface);border:1px solid var(--border);border-radius:18px;
  box-shadow:var(--shadow-menu);opacity:0;pointer-events:none;visibility:hidden;
  transition:opacity .22s cubic-bezier(.22,.7,.2,1),transform .28s cubic-bezier(.22,.7,.2,1),visibility 0s .28s;z-index:60}
#orbis-root[dir="rtl"] .nav-drop-menu{transform:translateX(50%) translateY(6px)}
.nav-drop.open .nav-drop-menu{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s,0s,0s;transform:translateX(-50%) translateY(0)}
#orbis-root[dir="rtl"] .nav-drop.open .nav-drop-menu{transform:translateX(50%) translateY(0)}
.header-nav .nav-drop-item{display:flex;flex-direction:column;align-items:stretch;gap:2px;min-height:0;
  padding:12px 14px;border-radius:12px;background-image:none;transition:background-color .18s}
.header-nav .nav-drop-item:hover{background-color:var(--page)}
.nav-drop-t{font-family:var(--font-display);font-weight:600;font-size:14.5px;color:var(--ink)}
.header-nav .nav-drop-item:hover .nav-drop-t{color:var(--blue-anchor)}
.nav-drop-d{font-size:12.5px;line-height:1.45;color:var(--ink-muted)}
/* mobile sheet: the dropdown flattens into the list */
@media (max-width:1023px){
  .js .nav-drop{display:block}
  .js .nav-drop-btn{width:100%;justify-content:space-between;min-height:48px;padding:13px 14px;
    border-radius:var(--r-chip);font-size:15px;font-weight:600;color:var(--ink-900)}
  .js .nav-drop-menu{position:static;transform:none;opacity:1;pointer-events:auto;
    min-width:0;padding:0 0 4px 10px;border:0;box-shadow:none;background:transparent;
    display:none}
  .js .nav-drop.open .nav-drop-menu{display:block}
  .js .nav-drop-d{display:none}
  .js .header-nav .nav-drop-item{padding:11px 14px}
}

/* --- Orbit Zero fee calculator --- */
.calc{background:#FFFFFF;border:1px solid var(--border);border-radius:22px;
  padding:clamp(20px,3vw,32px);margin-top:clamp(26px,3.4vw,40px)}
.calc-t{font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--ink)}
.calc-sub{margin-top:4px;font-size:14px;color:var(--ink-muted)}
.calc input[type="range"]{width:100%;margin-top:20px;accent-color:var(--accent);cursor:pointer;min-height:32px}
.calc-vol{margin-top:6px;font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--ink)}
.calc-vol-cap{font-family:var(--font-body);font-weight:400;font-size:14px;color:var(--ink-muted)}
.calc-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:20px}
.calc-cell{display:flex;flex-direction:column;gap:4px;padding:4px 24px;
  border-inline-start:1px solid var(--hair-blue)}
.calc-cell:first-child{border-inline-start:0;padding-inline-start:0}
.calc-label{font-size:13px;font-weight:600;color:var(--ink-700)}
.calc-big{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,3vw,32px);
  letter-spacing:-.02em;color:var(--ink)}
.calc-cell-hi .calc-big{color:var(--accent-text)}
.calc-yr{font-size:12.5px;color:var(--ink-muted)}
.calc-fine{margin-top:18px;font-size:12px;line-height:1.6;color:var(--ink-muted)}
@media (max-width:620px){.calc-grid{grid-template-columns:1fr;gap:16px}
  .calc-cell{border-inline-start:0;padding:0}}
.tick-flash{animation:tickFlash .9s cubic-bezier(.22,.7,.2,1)}
@keyframes tickFlash{0%{color:var(--blue-anchor)}100%{color:inherit}}

/* --- payments trust strip --- */
.pow{padding:26px 24px}
.pow-in{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.pow-lead{font-size:13.5px;color:var(--on-navy-fine)}
.pow-brand{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);
  font-weight:700;font-size:17px;color:#FFFFFF}
.pow-note{font-size:12.5px;color:var(--on-navy-fine)}
@media (max-width:620px){.pow-note{width:100%;text-align:center}}

/* review fixes (2026-07-24 final pass) */
#contact .form-card h3{color:var(--ink-900)}

.footer-pow{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;
  font-size:12px;color:var(--on-navy-fine)}
.footer-pow svg{vertical-align:-2px}

/* --- dashboard phone: sales-by-category rows (Meg Kim-style calm data) --- */
.lp-ph-cats{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.lp-ph-cat{display:grid;grid-template-columns:64px 1fr 44px;align-items:center;gap:8px;font-size:10.5px}
.lp-ph-cat-l{color:#5B6472;font-weight:600}
.lp-ph-cat-track{height:7px;border-radius:100vw;background:#EDF0F5;overflow:hidden}
.lp-ph-cat-fill{height:100%;border-radius:100vw;background:linear-gradient(90deg,#0A44D1,#2E8BFF)}
.lp-ph-cat-v{text-align:end;color:#1F2328;font-weight:700}
.lp-ph-cats-card{margin-top:10px}
.lp-ph-cat-fill{display:block;width:0}
.lp-ph-cat-fill[data-w="72"]{width:72%}
.lp-ph-cat-fill[data-w="48"]{width:48%}
.lp-ph-cat-fill[data-w="31"]{width:31%}

/* /assets/refresh.css */
/* Shared marketing tokens and shell. See DESIGN.md for ownership. */
@font-face{font-family:'Geist';font-style:normal;font-weight:100 900;font-display:swap;src:url('/assets/fonts/geist-sans.woff2') format('woff2')}
:root{
  --brand-blue:#0a44d1;
  --brand-orange:#ff974f;
  --brand-orange-rgb:255,151,79;
  --brand-aqua:#16b8a6;
  --brand-aqua-ink:#006b64;
  --brand-aqua-soft:#e4f8f5;
  --brand-ink:#142641;
  --brand-muted:#435d74;
  --font-body:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display:'Geist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --mint:#e4f4ec;--lilac:#eee8fc;--coral:#f4a493;
  --danger:#b51e30;--danger-50:#fbe9eb;
  --blue-anchor:#2463eb;
  --blue-anchor-600:#1b51c9;
  --blue-anchor-700:#163fa1;
  --blue-electric:#2463eb;
  --blue-electric-600:#1b51c9;
  --blue-50:#edf3ff;
  --blue-100:#dce8ff;
  --blue-200:#bad3ff;
  --blue-300:#8dcbff;
  --ink:#17251f;
  --ink-900:#17251f;
  --ink-700:#43544a;
  --ink-muted:#526059;
  --page:#f5f6f3;
  --surface:#fff;
  --sunken:#edf1eb;
  --field:#f2f5ef;
  --border:#dce3db;
  --border-strong:#b2bfb3;
  --border-input:#bac8be;
  --ice:#8dcbff;
  --navy:#102c5e;
  --navy-deep:#0a1731;
  --footer-bg:#08142c;
  --on-navy-link:#dbe8ff;
  --on-navy-body:#c1d0e8;
  --on-navy-fine:#afc4e4;
  --on-navy-selected:#b9dcff;
  --accent:#2463eb;
  --accent-bright:#8dcbff;
  --accent-text:#1b51c9;
  --accent-tint:#eaf1ff;
  --accent-glow:rgba(36,99,235,.2);
  --amber:#2463eb;
  --amber-bright:#8dcbff;
  --amber-bright-2:#bde3ff;
  --amber-bright-rgb:141,203,255;
  --amber-text:#1b51c9;
  --amber-tint:#eaf1ff;
  --violet:#78618e;
  --violet-on-light:#644b80;
  --violet-on-ink:#d7c9ed;
  --rung-light:#fff;
  --rung-mid:#f5f6f3;
  --rung-ink:#101c32;
  --r-btn:12px;
  --r-input:12px;
  --r-card:22px;
  --r-card-lg:26px;
  --wrap:1248px;
  --wrap-tight:1200px;
  --header-clear:112px;
  --focus-ring:0 0 0 3px rgba(36,99,235,.3);
  --scroll-thumb:#9caec8;
  --scroll-thumb-hover:#758ba9;
  --scroll-thumb-active:#536b8b;
  --scroll-track:#eef2f8;
}
html{scroll-padding-top:108px;scrollbar-gutter:stable;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:auto}
*{scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:auto}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--scroll-track)}
*::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--scroll-track);border-radius:20px}
*::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}
*::-webkit-scrollbar-thumb:active{background:var(--scroll-thumb-active)}
body{font-family:var(--font-body);color:var(--ink);background:var(--page)}
h1,h2,h3,h4{font-family:var(--font-display)}
button,input,textarea,select{font-family:var(--font-body)}
button,[role="button"],summary{cursor:pointer}
button:disabled,[aria-disabled="true"]{cursor:not-allowed}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--blue-anchor);outline-offset:4px}
::selection{background:#bed9ff;color:#101c32}
.skip-link{z-index:1001;transition:none}
/* Shared header. Plain disclosure labels open one quiet panel. */
.site-header.site-header-refresh{--nav-action:var(--brand-blue);--nav-ink:#1c293d;--nav-muted:#59667b;--nav-line:#dce4ef;position:fixed;inset:0 0 auto;padding:14px 14px 0;z-index:100;background:transparent;border:0;pointer-events:none}
/* Expanded navigation stays above consent choices and below the assistant dialog. */
.site-header.site-header-refresh.nav-open,.site-header.site-header-refresh:has(.refresh-menu[open]){z-index:2050}
.refresh-nav-inner{position:relative;display:flex;align-items:center;justify-content:space-between;gap:clamp(16px,1.8vw,28px);max-width:1280px;min-height:72px;margin:auto;padding:10px 10px 10px 24px;border:1px solid #fff;border-radius:999px;background:var(--brand-aqua-soft);box-shadow:0 10px 30px -18px #061c4540;pointer-events:auto}
.refresh-brand{display:inline-flex;align-items:center;gap:10px;flex:none;min-height:48px;color:var(--ink)}
.refresh-brand:hover{color:var(--ink)}
.refresh-brand-mark{width:32px;height:32px;flex:none;color:var(--blue-anchor)}
.refresh-brand-type{display:flex;align-items:baseline;gap:7px;line-height:1}
.refresh-brand-word{font-family:var(--font-display);font-size:19px;font-weight:700;letter-spacing:.03em}
.refresh-brand-sub{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.1em;color:var(--ink-muted)}
.site-header-refresh .refresh-brand-mark{width:26px;height:26px;color:var(--nav-action)}
.site-header-refresh .refresh-brand-word,.site-header-refresh .refresh-brand-sub{font-family:var(--font-mono);font-size:13px;font-weight:600;letter-spacing:.11em;color:#252a34}
.site-header-refresh .refresh-brand-sub{font-weight:400;color:#626b79}
.refresh-nav{display:flex;align-items:center;justify-content:center;gap:clamp(4px,.7vw,10px);flex:1;min-width:0}
.refresh-nav>a,.refresh-menu>summary{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 12px;border-radius:999px;color:var(--nav-ink);font-size:14px;font-weight:550;line-height:1.3;white-space:nowrap;transition:color 160ms ease,background-color 160ms ease}
.refresh-nav>a:hover,.refresh-nav>a:active,.refresh-nav>a[aria-current],.refresh-menu>summary:hover,.refresh-menu[open]>summary{color:var(--nav-action);background:rgba(255,255,255,.65)}
.refresh-menu{position:static;min-width:0}
.refresh-menu>summary{list-style:none}
.refresh-menu>summary::-webkit-details-marker{display:none}
.refresh-menu>summary::marker{content:""}
.refresh-menu>summary>svg{width:12px;height:12px;flex:none;transition:transform 180ms ease}
.refresh-menu[open]>summary>svg{transform:rotate(180deg)}
.refresh-menu-panel{position:absolute;top:calc(100% + 12px);left:0;right:0;z-index:1;display:grid;width:100%;max-width:1040px;max-height:calc(100dvh - 116px);overflow-y:auto;margin-inline:auto;padding:28px;border:1px solid var(--nav-line);border-radius:24px;background:#fff;box-shadow:0 24px 54px -24px #0b1f494d}
.refresh-menu-panel--feature{grid-template-columns:minmax(0,1fr) 248px;gap:28px}
.refresh-menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:6px 20px;list-style:none;margin:0;padding:0}
.refresh-menu-links>li{min-width:0}
.refresh-menu-link{display:flex;align-items:flex-start;gap:14px;min-height:84px;padding:14px 12px;border-radius:12px;color:var(--nav-ink);text-decoration:none;transition:background-color 160ms ease,color 160ms ease}
.refresh-menu-link:hover,.refresh-menu-link:active,.refresh-menu-link[aria-current]{background:#eef4fc;color:var(--nav-action)}
.refresh-link-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border:1px solid #dce7f8;border-radius:10px;background:#f4f8fe;color:var(--nav-action)}
.refresh-link-icon>svg{width:23px;height:23px}
.refresh-menu-copy{display:block;min-width:0;padding-top:1px}
.refresh-menu-copy>strong{display:block;font-size:15px;font-weight:600;line-height:1.35;letter-spacing:-.01em}
.refresh-menu-copy>span{display:block;margin-top:5px;color:var(--nav-muted);font-size:13px;font-weight:400;line-height:1.5;white-space:normal}
.refresh-menu-feature{display:flex;flex-direction:column;align-items:flex-start;gap:12px;border-left:1px solid var(--nav-line);padding-left:28px}
.refresh-menu-feature>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:12px}
.refresh-menu-feature>strong{margin-top:3px;color:var(--nav-ink);font-size:17px;line-height:1.3;font-weight:600;letter-spacing:-.02em}
.refresh-menu-feature>p{margin:0;color:var(--nav-muted);font-size:13px;line-height:1.55}
.refresh-menu-feature>a{display:inline-flex;align-items:center;gap:9px;min-height:40px;color:var(--nav-action);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:4px}
.refresh-menu-feature>a:hover{text-decoration-thickness:2px}
.refresh-menu-feature>a>svg{width:16px;height:16px}
.refresh-nav-action{display:flex;align-items:center;gap:10px;flex:none}
.refresh-nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:999px;background:var(--nav-action);color:#fff;font-size:14px;font-weight:550;line-height:1.3;white-space:nowrap;transition:background-color 160ms ease}
.refresh-nav-cta:hover,.refresh-nav-cta:active{background:#0338b4;color:#fff}
.refresh-cta-short{display:none}
.refresh-nav-orbis{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 8px;border:0;border-radius:999px;background:transparent;color:var(--nav-ink);font:550 14px/1.3 var(--font-body);white-space:nowrap;transition:color 160ms ease,background-color 160ms ease}
.refresh-nav-orbis:hover,.refresh-nav-orbis:active{color:var(--nav-action);background:rgba(255,255,255,.65)}
.refresh-orbis-mark{display:grid;place-items:center;flex:none;width:22px;height:22px;color:var(--nav-action)}
.refresh-orbis-mark svg{width:22px;height:22px}
.refresh-nav-orbis-mobile{display:none}
.refresh-nav-toggle{display:none;align-items:center;justify-content:center;width:44px;height:44px;flex:none;border:1px solid #d2dae7;border-radius:50%;background:#fff;color:#26334b;transition:background-color 160ms ease}
.refresh-nav-toggle:hover,.refresh-nav-toggle:active{background:#e5edff}
.refresh-nav-toggle .refresh-close-icon{display:none}
.nav-open .refresh-nav-toggle .refresh-menu-icon{display:none}
.nav-open .refresh-nav-toggle .refresh-close-icon{display:block}
/* Native details remain readable before enhancement and with JavaScript disabled. */
.site-header-refresh:not(.nav-ready) .refresh-nav{flex-wrap:wrap}
.site-header-refresh:not(.nav-ready) .refresh-menu[open]{flex-basis:100%;width:100%}
.site-header-refresh:not(.nav-ready) .refresh-menu-panel{position:static;width:100%;max-width:none;max-height:none;overflow:visible;margin:8px 0;box-shadow:none;grid-template-columns:1fr}
.site-header-refresh:not(.nav-ready) .refresh-menu-feature{display:none}
@media(min-width:1121px) and (prefers-reduced-motion:no-preference){.nav-ready .refresh-menu[open]>.refresh-menu-panel{animation:refresh-menu-enter 180ms cubic-bezier(.24,1,.4,1) both}}
@keyframes refresh-menu-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.site-footer.site-footer-refresh{background:var(--footer-bg);border:0}
.site-footer-refresh .footer-sky{object-position:center 48%;opacity:.74}
.site-footer-refresh .footer-scrim{background:linear-gradient(180deg,rgba(5,14,32,.93) 0%,rgba(5,14,32,.74) 42%,rgba(5,14,32,.5) 75%,rgba(5,14,32,.88) 100%)}
.site-footer-refresh .footer-inner{max-width:var(--wrap);padding:68px 24px 0}
.site-footer-refresh .footer-grid{display:grid;grid-template-columns:1.1fr 2fr;gap:64px}
.site-footer-refresh .footer-brand{max-width:300px;gap:22px}
.site-footer-refresh .refresh-brand{color:#fff;align-self:flex-start}
.site-footer-refresh .refresh-brand-mark{color:var(--ice)}
.site-footer-refresh .refresh-brand-sub{color:#bdcee9}
.site-footer-refresh .footer-blurb{font-size:14px;line-height:1.8;color:#c1d0e8;max-width:280px}
.site-footer-refresh .footer-cols{display:grid;grid-template-columns:.8fr .8fr 1.4fr;gap:40px}
.site-footer-refresh .footer-col-title{font-family:var(--font-body);font-size:12px;font-weight:600;color:#afc4e4;letter-spacing:0;text-transform:none;margin-bottom:10px}
.site-footer-refresh .footer-col a{font-size:13px;color:#e0eaff;min-height:40px;line-height:1.6;overflow-wrap:anywhere}
.site-footer-refresh .footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
.site-footer-refresh .footer-help{margin-top:12px}
.site-footer-refresh .footer-help:empty{display:none}
.site-footer-refresh .orby-navbtn{border:1px solid rgba(187,211,249,.25);background:rgba(255,255,255,.08);color:#e8f1ff;min-height:44px;border-radius:12px}
.site-footer-refresh .orby-navbtn:hover{background:rgba(255,255,255,.15);color:#fff}
.site-footer-refresh .orby-face{background:var(--blue-anchor)}
.site-footer-refresh .footer-giant{margin-top:64px;line-height:.88;letter-spacing:-.04em}
.site-footer-refresh .footer-giant span{font-size:clamp(36px,11.3vw,158px);letter-spacing:-.04em}
.site-footer-refresh .footer-bottom{display:grid;grid-template-columns:1fr auto;gap:14px 24px;margin-top:32px;padding:24px 0 32px}
.site-footer-refresh .footer-mono{font-family:var(--font-body);font-weight:400;font-size:11px;letter-spacing:0;line-height:1.8;color:#bdcee9}
.site-footer-refresh .footer-address{grid-column:1/-1;font-style:normal}
.refresh-legal-links{display:flex;align-items:center;flex-wrap:wrap;gap:0 20px}
.refresh-legal-links>a{display:inline-flex;align-items:center;min-height:36px;color:#c9d9f1;font-size:11px;line-height:1.6}
.refresh-legal-links>a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.site-footer-refresh :focus-visible{outline-color:var(--ice)}
.legal-main,.ms-legal-main{padding-top:144px}
.legal-toc{top:116px}
.legal-toc a{min-height:38px}
.legal-body p,.legal-body li,.ms-legal-body p{font-size:16px}
.js .reveal,.reveal,.js .rv-chars .rv-ch{opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important}
.js .sec-rule::after{transform:none!important}
.marketing-secondary .lp-stars,.marketing-secondary .lp-orbit,.marketing-secondary .lp-shoot{display:none!important}
.marketing-secondary main>.kicker,.marketing-secondary .pg-kicker,.marketing-secondary .sec-rule,.marketing-secondary .detail-eyebrow{display:none}
.marketing-secondary .detail-plan .detail-eyebrow{display:block;font-size:17px;font-weight:600;letter-spacing:0;text-transform:none}
.marketing-secondary .detail-device-body .detail-eyebrow{display:block;letter-spacing:0;text-transform:none;font-size:12px}
.marketing-secondary .h2-acc-amber{color:var(--blue-anchor)}
.marketing-secondary [data-rung="ink"] .h2-acc-amber{color:var(--ice)}
.marketing-secondary .aff-more a{color:var(--ice)}
.marketing-secondary .aff-cta{background:var(--blue-anchor);color:#fff}
.marketing-secondary .aff-cta:hover{background:var(--blue-anchor-600);color:#fff}
.marketing-secondary .pg-hero{background:var(--rung-ink)}
.marketing-secondary .field textarea{resize:none;min-height:120px}
.marketing-secondary .form-error{font-size:14px;line-height:1.7}
.marketing-secondary .form-ok{min-height:260px;justify-content:center}
.marketing-secondary .form-ok:focus{outline:none}
.marketing-secondary .detail-page .detail-wrap{width:min(1184px,calc(100% - 48px))}
@media(max-width:1040px){
  .site-footer-refresh .footer-grid{gap:36px;grid-template-columns:.9fr 2fr}
  .site-footer-refresh .footer-cols{gap:26px}
}
@media(max-width:1120px){
  .refresh-nav-inner{min-height:66px;gap:12px;flex-wrap:wrap;padding:8px 10px 8px 20px}
  .refresh-nav{order:3;flex-basis:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px 24px;padding-bottom:15px}
  .refresh-nav-action{margin-left:auto}
  .refresh-nav-orbis{display:none}
  .nav-ready .refresh-nav-toggle{display:inline-flex}
  .nav-ready .refresh-nav{position:absolute;left:0;right:0;top:calc(100% + 10px);display:none;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;max-height:calc(100dvh - 110px);overflow-y:auto;padding:10px 20px 18px;background:#fff;border:1px solid var(--nav-line);border-radius:22px;box-shadow:0 20px 30px -20px #101c3255}
  .nav-ready.nav-open .refresh-nav{display:flex}
  .nav-ready .refresh-menu{width:100%;flex:none}
  .nav-ready .refresh-menu+.refresh-menu{border-top:1px solid #e7edf5}
  .nav-ready .refresh-nav>a,.nav-ready .refresh-menu>summary,.nav-ready .refresh-nav-orbis-mobile{display:flex;align-items:center;width:100%;justify-content:space-between;min-height:54px;font-size:15px;padding:12px 4px}
  .refresh-nav-orbis-mobile{border:0;background:none;color:var(--nav-action);font-family:var(--font-body);font-weight:550;text-align:left}
  .refresh-menu-panel{position:static;max-width:none;max-height:none;overflow:visible;width:100%;margin:0;padding:0 0 12px;border:0;border-radius:0;box-shadow:none;background:transparent}
  .refresh-menu-panel--feature{grid-template-columns:1fr;gap:0}
  .refresh-menu-links{grid-template-columns:1fr;gap:2px}
  .refresh-menu-link{gap:12px;min-height:72px;padding:11px 8px}
  .refresh-link-icon{width:34px;height:34px;border-radius:8px}
  .refresh-link-icon>svg{width:21px;height:21px}
  .refresh-menu-copy{padding:0}
  .refresh-menu-copy>strong{font-size:14px}
  .refresh-menu-copy>span{margin-top:4px;font-size:13px}
  .refresh-menu-feature{display:none}
}
@media(max-width:820px){
  .site-footer-refresh .footer-grid{grid-template-columns:1fr;gap:42px}
  .site-footer-refresh .footer-brand{max-width:100%}
  .site-footer-refresh .footer-blurb{max-width:420px}
  .site-footer-refresh .footer-cols{grid-template-columns:.85fr .85fr 1.3fr;gap:28px}
  .site-footer-refresh .footer-bottom{grid-template-columns:1fr;gap:8px}
  .site-footer-refresh .footer-giant{margin-top:48px}
  .legal-main,.ms-legal-main{padding-top:124px}
}
@media(max-width:540px){
  .site-header.site-header-refresh{padding:10px 10px 0}
  .refresh-nav-inner{padding:6px 6px 6px 14px;gap:10px;min-height:60px}
  .site-header-refresh .refresh-brand{min-height:44px}
  .site-header-refresh .refresh-brand-sub{display:none}
  .refresh-cta-long{display:none}
  .refresh-cta-short{display:inline}
  .refresh-brand{gap:7px}
  .refresh-brand-mark{width:26px;height:26px}
  .refresh-brand-word{font-size:16px}
  .refresh-nav-cta{font-size:13px;padding:10px 15px;min-height:44px}
  .refresh-nav-cta svg{display:none}
  .refresh-nav-action{gap:8px}
  .site-footer-refresh .footer-inner{padding-top:48px}
  .site-footer-refresh .footer-cols{grid-template-columns:1fr 1fr;gap:28px}
  .site-footer-refresh .footer-col-contact{grid-column:1/-1}
  .site-footer-refresh .footer-giant span{font-size:clamp(29px,10.6vw,56px)}
  .refresh-legal-links{gap:0 18px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .site-header-refresh *,.site-footer-refresh *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .marketing-secondary *,.marketing-secondary *::before,.marketing-secondary *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media(forced-colors:active){
  html,*{scrollbar-color:auto}
  .site-header-refresh,.refresh-menu-panel,.refresh-link-icon,.refresh-nav-cta,.refresh-nav-toggle{border:1px solid CanvasText}
  .site-footer-refresh .footer-sky,.site-footer-refresh .footer-scrim{display:none}
  .site-footer-refresh .footer-inner,.site-footer-refresh .footer-inner a,.site-footer-refresh .footer-inner p,.site-footer-refresh .footer-inner span{color:CanvasText}
}


/* Retained footer and assistant typography. */
.site-footer-refresh .refresh-brand-word{font-weight:650;letter-spacing:-.015em}
.site-footer-refresh .footer-inner{padding-bottom:env(safe-area-inset-bottom)}
.orby-panel[aria-modal="true"]{z-index:2100}

/* Real page changes cross-fade where supported. Native links work without this enhancement. */
.page-transit[hidden]{display:none!important}
.page-transit{position:fixed;z-index:990;top:106px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:13px 20px;border:1px solid #bacbe3;border-radius:8px;background:#fff;color:#183051;box-shadow:0 12px 35px #071d3d20;font:550 13px/1.4 var(--font-body);pointer-events:none}
.page-transit-mark{position:relative;width:22px;height:22px;border:2px solid #d4e4fa;border-top-color:#0754df;border-right-color:var(--brand-orange);border-radius:50%;flex:none}
.page-transit-mark::after{content:"";position:absolute;inset:5px;background:#0754df;border-radius:50%}
.page-opening::before{content:"";position:fixed;inset:0 0 auto;height:3px;z-index:1002;background:var(--brand-orange);transform-origin:left}
@media(prefers-reduced-motion:no-preference){
 @view-transition{navigation:auto}
 .site-header-refresh{view-transition-name:orbis-navigation}
 ::view-transition-old(root){animation:orbis-page-out 180ms ease-out both}
 ::view-transition-new(root){animation:orbis-page-in 320ms cubic-bezier(.2,.8,.25,1) both}
 ::view-transition-group(orbis-navigation){animation-duration:260ms}
 .page-transit-mark{animation:orbis-route-spin 850ms linear infinite}
 .page-transit{animation:orbis-route-appear 180ms ease-out both}
 .page-opening::before{animation:orbis-route-track 1400ms ease-in-out infinite alternate}
}
@keyframes orbis-page-out{to{opacity:0}}
@keyframes orbis-page-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes orbis-route-spin{to{transform:rotate(360deg)}}
@keyframes orbis-route-appear{from{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes orbis-route-track{from{transform:scaleX(.12)}to{transform:scaleX(.82)}}
@media(max-width:600px){.page-transit{top:88px;font-size:12px;padding:11px 16px}}
@media(prefers-reduced-motion:reduce){.page-transit,.page-transit-mark,.page-opening::before{animation:none!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
@media(forced-colors:active){.page-transit{background:Canvas;color:CanvasText;border-color:CanvasText}.page-transit-mark{border-color:CanvasText;border-top-color:Highlight}.page-opening::before,.page-transit-mark::after{background:Highlight}}
.orby-form input{min-width:0}
.orby-head-name{font-family:var(--font-body);letter-spacing:0;font-size:14px}
.orby-try-label{font-family:var(--font-body);letter-spacing:0;text-transform:none;color:#526059}

/* Actual pending requests and recoverable errors share one restrained treatment. */
.orby-typing::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%}
.orby-panel .orby-bubble.orby-unavailable{background:#fff4e1;color:#62401c;border:1px solid #e7c99a}
.orby-send:disabled,.orby-chip:disabled{cursor:wait;opacity:.6}
:is(#partner-form,#contact-form,#booking-form)[aria-busy=true] [type=submit]::after{content:"";display:inline-block;width:14px;height:14px;margin-left:9px;vertical-align:-2px;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%}
.site-status-page .site-status-code{font:400 clamp(64px,10vw,96px)/1 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.065em;color:#0a44d1;margin-bottom:22px}
.site-status-page .ms-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 25px}
.site-status-link{display:inline-flex;align-items:center;min-height:44px;color:#0a44d1;font-size:15px;text-decoration:underline;text-underline-offset:4px}
@media(prefers-reduced-motion:no-preference){
 .orby-typing::before,:is(#partner-form,#contact-form,#booking-form)[aria-busy=true] [type=submit]::after{animation:orbis-request-pending 850ms linear infinite}
 .orby-unavailable,.marketing-secondary .form-error.show,.marketing-secondary .field.invalid .err{animation:orbis-feedback-in 180ms ease-out}
 .site-status-page>h1,.site-status-page>.ms-lede,.site-status-page>.ms-actions{animation:orbis-feedback-in 240ms ease-out}
}
@keyframes orbis-request-pending{to{transform:rotate(360deg)}}
@keyframes orbis-feedback-in{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:none}}

/* /assets/analytics.css */
/* Consent is a nonmodal page bar, with equivalent allow and decline actions. */
.analytics-settings {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  min-height: 44px;
  text-underline-offset: 4px;
}
.analytics-settings:hover { text-decoration: underline; }
.analytics-settings:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 3px; }
.analytics-choices[hidden],
.analytics-choices [hidden] { display: none !important; }
.analytics-choices {
  --cookie-ink: #f6f9ff;
  --cookie-muted: #c8d6eb;
  --cookie-line: #3e5475;
  position: fixed;
  z-index: 2000;
  inset: auto 16px max(16px, env(safe-area-inset-bottom));
  padding: 22px 28px;
  border: 1px solid var(--cookie-line);
  border-radius: 22px;
  background: #10254d;
  color: var(--cookie-ink);
  font-family: var(--font-body, sans-serif);
  box-shadow: 0 10px 36px rgba(5, 16, 36, .22);
  max-height: calc(100vh - 32px);
  max-height: min(70dvh, 520px);
  overflow-y: auto;
  overscroll-behavior: contain;
  animation: analytics-bar-in 220ms cubic-bezier(.2, .7, .2, 1) both;
}
.analytics-choices *,
.analytics-choices *::before,
.analytics-choices *::after { box-sizing: border-box; }
.analytics-choices.is-closing {
  pointer-events: none;
  animation: analytics-bar-out 160ms ease-in both;
}
.analytics-choices__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 20px 36px;
  max-width: 1500px;
  margin-inline: auto;
}
.analytics-choices__copy { min-width: 0; }
.analytics-choices h2 {
  margin: 0 0 7px;
  color: var(--cookie-ink);
  font: 600 16px/1.35 var(--font-body, sans-serif);
  letter-spacing: -.015em;
}
.analytics-choices h2:focus { outline: none; }
.analytics-choices p {
  max-width: 86ch;
  margin: 0;
  color: var(--cookie-muted);
  font-size: 14px;
  line-height: 1.55;
}
.analytics-choices .analytics-choices__gpc {
  margin-top: 6px;
  color: #e2ebfb;
  font-size: 12px;
}
.analytics-choices__privacy {
  display: inline;
  color: var(--cookie-ink);
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.analytics-choices__privacy:hover { color: #b6deff; }
.analytics-choices__actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.analytics-choices__actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 112px;
  min-height: 46px;
  padding: 11px 20px;
  border: 1px solid #dceaff;
  border-radius: 999px;
  background: #e2edff;
  color: #10254d;
  font: 600 14px/1.4 var(--font-body, sans-serif);
  cursor: pointer;
  transition: background-color 140ms ease, border-color 140ms ease;
}
.analytics-choices__actions button:hover { background: #fff; border-color: #fff; }
.analytics-choices__actions .analytics-choices__manage {
  min-width: 100px;
  border-color: var(--cookie-line);
  background: transparent;
  color: var(--cookie-ink);
}
.analytics-choices__actions .analytics-choices__manage:hover,
.analytics-choices__actions .analytics-choices__manage[aria-expanded="true"] { border-color: #8da5ca; background: #243d66; }
.analytics-choices__actions button:disabled {
  border-color: #526888;
  background: #344b6e;
  color: #bdcbe0;
  cursor: default;
}
.analytics-choices__details {
  display: grid;
  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);
  gap: 18px 36px;
  max-width: 1500px;
  margin: 20px auto 0;
  padding-top: 20px;
  border-top: 1px solid var(--cookie-line);
}
.analytics-choices__details h3 {
  margin: 0 0 8px;
  color: var(--cookie-ink);
  font: 600 14px/1.4 var(--font-body, sans-serif);
}
.analytics-choices__details p { font-size: 13px; }
.analytics-choices .analytics-choices__status { margin-top: 8px; color: #fff; }
.analytics-choices .analytics-choices__note { grid-column: 1 / -1; font-size: 12px; }
.analytics-choices :where(button, a):focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@keyframes analytics-bar-in {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes analytics-bar-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(10px); }
}
@media (max-width: 850px) {
  .analytics-choices { padding: 20px 24px; }
  .analytics-choices__row { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .analytics-choices__actions { justify-content: flex-end; }
}
@media (max-width: 540px) {
  .analytics-choices { inset-inline: 12px; bottom: max(12px, env(safe-area-inset-bottom)); padding: 18px; border-radius: 18px; }
  .analytics-choices p { font-size: 13px; }
  .analytics-choices__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .analytics-choices__actions button,
  .analytics-choices__actions .analytics-choices__manage { min-width: 0; min-height: 44px; padding: 10px 8px; font-size: 13px; }
  .analytics-choices__details { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .analytics-choices,
  .analytics-choices.is-closing { animation: none; }
  .analytics-choices__actions button { transition: none; }
}
@media (forced-colors: active) {
  .analytics-choices { background: Canvas; color: CanvasText; border-color: CanvasText; }
  .analytics-choices :where(h2, h3, p, a) { color: CanvasText; }
  .analytics-choices .analytics-choices__status,
  .analytics-choices .analytics-choices__gpc { color: CanvasText; }
  .analytics-choices__actions button,
  .analytics-choices__actions .analytics-choices__manage { border-color: ButtonText; background: ButtonFace; color: ButtonText; }
  .analytics-choices__actions button:disabled { border-color: GrayText; color: GrayText; }
  .analytics-choices__details { border-color: CanvasText; }
  .analytics-choices :where(button, a):focus-visible { outline-color: Highlight; }
}
@media print { .analytics-choices, .analytics-settings { display: none !important; } }

/* /assets/orbis-chat.css */
/* Shared Orbis conversation. Loaded after the legacy page styles.
   Brand values are owned by refresh.css; this component consumes them. */
.home-chat-host[data-orbis-chat],.home-chat-host[data-orby-inline]{min-height:484px}
.orbis-chat-host{
  width:100%;max-width:800px;margin-inline:auto;min-width:0;
}
.home-chat-host.orbis-chat-host{
  min-height:0;background:transparent;border:0;border-radius:18px;box-shadow:none;
}
.orbis-chat.orby-panel{
  --chat-blue:var(--brand-blue,#0a44d1);
  --chat-ink:var(--brand-ink,#142641);
  --chat-teal:var(--brand-aqua-ink,#006b64);
  --chat-mint:var(--brand-aqua-soft,#e4f8f5);
  --chat-border:#ccdceb;
  box-sizing:border-box;display:flex;flex-direction:column;
  width:min(420px,calc(100vw - 32px));height:560px;min-height:0;
  max-height:max(1px,calc(100vh - 112px));
  max-height:max(1px,calc(var(--orbis-visible-height,100dvh) - 112px));
  top:88px;right:20px;bottom:auto;left:auto;
  border:1px solid var(--chat-border);border-radius:18px;
  background:#fff;color:var(--chat-ink);
  box-shadow:0 16px 52px #14264124;
  overflow:hidden;isolation:isolate;
  font-family:var(--font-body,Arial,sans-serif);text-align:left;
  opacity:0;transform:translateY(10px);
  transition:opacity 200ms ease,transform 200ms ease;
}
.orbis-chat,.orbis-chat *, .orbis-chat *::before,.orbis-chat *::after{box-sizing:border-box}
.orbis-chat.orby-panel.orby-open{opacity:1;transform:none}
.orbis-chat.orby-panel.orbis-chat--modal{overflow-y:auto;overscroll-behavior-y:contain}
.orbis-chat.orby-panel.orbis-chat--inline{
  position:relative;inset:auto;width:100%;max-width:none;height:484px;
  max-height:none;z-index:1;opacity:1;transform:none;
  visibility:visible;pointer-events:auto;box-shadow:0 10px 30px #1426410c;
}
.orbis-chat[hidden],.orbis-chat [hidden]{display:none!important}
.orbis-chat .orby-head{
  position:relative;display:flex;align-items:center;flex:none;gap:11px;
  min-height:72px;margin:0;padding:14px 18px;
  border-bottom:1px solid #e0e9f1;background:#fff;
}
.orbis-chat .orby-face{
  width:38px;height:38px;border:0;border-radius:11px;
  background:var(--chat-blue);box-shadow:none;
}
.orbis-chat .orby-face svg{width:26px;height:26px}
.orbis-chat .orbis-chat-identity{display:grid;gap:3px;min-width:0}
.orbis-chat .orby-head-name{
  color:var(--chat-ink);font:650 16px/1.15 var(--font-body,Arial,sans-serif);
  letter-spacing:-.025em;text-transform:none;
}
.orbis-chat .orbis-chat-label{
  color:var(--chat-teal);font:500 12px/1.25 var(--font-body,Arial,sans-serif);
  letter-spacing:0;
}
.orbis-chat .orby-close{
  display:grid;place-items:center;flex:none;width:44px;height:44px;
  margin-left:auto;border:1px solid transparent;border-radius:10px;
  background:transparent;color:var(--chat-ink);cursor:pointer;
}
.orbis-chat .orby-msgs{
  flex:1;min-height:0;display:flex;flex-direction:column;gap:14px;
  padding:18px;background:#fff;overflow:auto;
  overscroll-behavior-y:contain;scrollbar-gutter:stable;
  scroll-padding-block:18px;
}
.orbis-chat .orby-bubble{
  flex:none;max-width:94%;margin:0;padding:12px 15px;
  font:400 14px/1.55 var(--font-body,Arial,sans-serif);
  letter-spacing:0;white-space:pre-wrap;overflow-wrap:anywhere;
  word-break:normal;border-radius:15px;animation:none;
}
.orbis-chat .orby-bot{
  align-self:flex-start;border:1px solid #dce7f2;
  border-bottom-left-radius:5px;background:#f3f7fc;color:var(--chat-ink);
}
.orbis-chat .orby-user{
  align-self:flex-end;border:1px solid var(--chat-blue);
  border-bottom-right-radius:5px;background:var(--chat-blue);color:#fff;
}
.orbis-chat .orby-bubble.orbis-welcome{
  max-width:100%;border-color:#cbe9e1;background:var(--chat-mint);
  white-space:normal;
}
.orbis-chat .orbis-welcome p{margin:0;color:var(--chat-ink);font:inherit}
.orbis-chat .orbis-welcome .orbis-welcome-title{
  margin-bottom:6px;color:var(--chat-teal);font-size:16px;
  font-weight:600;line-height:1.4;letter-spacing:-.02em;
}
.orbis-chat .orby-bubble a{
  color:inherit;font-weight:550;text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.orbis-chat .orby-try{flex:none;align-self:stretch;margin:0;padding:0}
.orbis-chat .orby-chips{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;max-width:400px;margin:0;
}
.orbis-chat .orby-chip{
  display:flex;align-items:center;justify-content:flex-start;gap:0;
  width:auto;min-width:0;min-height:44px;margin:0;padding:9px 12px;
  border:1px solid var(--chat-border);border-radius:9px;background:#fff;
  box-shadow:none;color:var(--chat-ink);text-align:left;cursor:pointer;
  transition:background 160ms ease,border-color 160ms ease,transform 160ms ease;
}
.orbis-chat .orby-chip-q{
  color:inherit;font:500 13px/1.35 var(--font-body,Arial,sans-serif);
  letter-spacing:-.01em;overflow-wrap:anywhere;
}
.orbis-chat .orby-foot{
  position:relative;flex:none;margin:0;padding:14px 18px 13px;
  border-top:1px solid #e0e9f1;background:#fff;
}
.orbis-chat .orby-form{
  display:flex;align-items:center;gap:5px;margin:0;padding:4px;
  border:1px solid #a8bfd4;border-radius:12px;background:#fff;
}
.orbis-chat .orby-form:focus-within{
  outline:2px solid var(--chat-blue);outline-offset:3px;
}
.orbis-chat .orby-form input{
  flex:1;width:100%;min-width:0;height:44px;margin:0;padding:0 9px;
  border:0;border-radius:7px;outline:0;box-shadow:none;background:transparent;
  color:var(--chat-ink);font:400 16px/1.4 var(--font-body,Arial,sans-serif);
}
.orbis-chat .orby-form input::placeholder{color:#5b6f82;opacity:1}
.orbis-chat .orby-form input:focus-visible{border:0;box-shadow:none;outline:0}
.orbis-chat .orby-send{
  flex:none;display:grid;place-items:center;width:44px;height:44px;min-height:44px;
  padding:0;border:1px solid transparent;border-radius:9px;
  background:var(--chat-blue);color:#fff;cursor:pointer;
  transition:background 160ms ease,transform 160ms ease,opacity 160ms ease;
}
.orbis-chat .orby-send:disabled{
  cursor:not-allowed;background:#dbe5ee;color:#526a80;opacity:1;
}
.orbis-chat.orbis-chat--busy .orby-send:disabled{cursor:wait}
.orbis-chat .orby-chip:disabled,.orbis-chat .orbis-retry:disabled{
  cursor:wait;opacity:.55;
}
.orbis-chat .orby-disclaimer{
  margin:9px 0 0;padding:0;border:0;background:transparent;
  color:#526579;font:400 11px/1.5 var(--font-body,Arial,sans-serif);text-align:left;
}
.orbis-chat .orby-disclaimer a{
  color:var(--chat-blue);text-decoration:underline;text-underline-offset:3px;
}
.orbis-chat .orbis-field-error{
  margin:8px 0 0;color:var(--danger,#95131b);font:500 12px/1.45 var(--font-body,Arial,sans-serif);
}
.orbis-chat .orby-bubble.orby-unavailable{
  color:var(--chat-ink);background:#fff;border:1px solid var(--brand-orange,#ff974f);
}
.orbis-chat .orbis-recovery{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;
  white-space:normal;
}
.orbis-chat .orbis-retry,.orbis-chat .orbis-recovery a{
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;
  font:550 13px/1.4 var(--font-body,Arial,sans-serif);cursor:pointer;
}
.orbis-chat .orbis-retry{
  padding:8px 14px;border:1px solid var(--chat-border);border-radius:8px;
  background:#fff;color:var(--chat-blue);
}
.orbis-chat .orbis-recovery a{color:var(--chat-blue)}
.orbis-chat .orbis-jump{
  position:absolute;right:18px;bottom:calc(100% + 10px);z-index:2;
  display:flex;align-items:center;justify-content:center;gap:10px;
  min-height:44px;padding:9px 14px;border:1px solid #a8bfd4;border-radius:22px;
  background:#fff;color:var(--chat-blue);box-shadow:0 4px 14px #14264114;
  font:550 12px/1.4 var(--font-body,Arial,sans-serif);cursor:pointer;
}
.orbis-chat .orby-typing{color:var(--chat-teal)}
.orbis-chat .orby-typing::before{
  content:"";display:inline-block;width:12px;height:12px;margin-right:9px;
  border:2px solid var(--brand-aqua,#16b8a6);border-top-color:var(--chat-teal);
  border-radius:50%;vertical-align:-1px;
}
.orbis-chat .orbis-chat-sr{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.orbis-chat :is(button,a):focus-visible,
.orbis-chat .orby-msgs:focus-visible,
.orbis-chat .orby-bubble:focus-visible{
  outline:2px solid var(--chat-blue);outline-offset:3px;
}
.orbis-chat .orby-msgs:focus-visible{outline-offset:-3px}
.orbis-chat .orby-user a:focus-visible{outline-color:#fff}
.orbis-chat button:enabled:active{transform:translateY(1px)}
@media(hover:hover){
  .orbis-chat .orby-chip:enabled:hover,.orbis-chat .orbis-retry:enabled:hover,
  .orbis-chat .orbis-jump:hover,.orbis-chat .orby-close:hover{
    border-color:var(--chat-blue);background:#edf4ff;color:var(--chat-blue);
  }
  .orbis-chat .orby-send:enabled:hover{background:#0736aa}
  .orbis-chat a:hover{text-decoration-thickness:2px}
}
@media(min-width:600px){
  .home-chat-host[data-orbis-chat],.home-chat-host[data-orby-inline]{min-height:440px}
  .orbis-chat.orby-panel.orbis-chat--inline{height:440px}
  .orbis-chat--inline .orby-head{padding:15px 22px}
  .orbis-chat--inline .orby-msgs{padding:20px 22px}
  .orbis-chat--inline .orby-foot{padding:15px 22px 14px}
  .orbis-chat--inline .orby-bubble{max-width:84%;font-size:15px}
  .orbis-chat--inline .orby-bubble.orbis-welcome{max-width:540px}
}
@media(max-width:599px){
  .orbis-chat.orby-panel.orbis-chat--modal{
    left:10px;right:10px;top:auto;width:auto;height:560px;
    bottom:calc(var(--orbis-viewport-bottom,0px) + max(10px,env(safe-area-inset-bottom,0px)));
    max-height:max(1px,calc(100vh - 20px));
    max-height:max(1px,calc(var(--orbis-visible-height,100dvh) - max(20px,env(safe-area-inset-bottom,0px) + 10px)));
    border:1px solid var(--chat-border);border-radius:18px;
  }
}
/* A short keyboard/landscape viewport uses one real outer scroll surface.
   Header, history and composer stay in normal flow instead of being clipped. */
.orbis-chat.orby-panel.orbis-chat--modal.orbis-chat--compact{
  --orbis-compact-gap:clamp(0px,calc((var(--orbis-visible-height,100dvh) - 1px) / 2),6px);
  display:block;top:auto;
  bottom:calc(var(--orbis-viewport-bottom,0px) + var(--orbis-compact-gap));
  height:max(1px,calc(var(--orbis-visible-height,100dvh) - var(--orbis-compact-gap) - var(--orbis-compact-gap)));
  max-height:max(1px,calc(var(--orbis-visible-height,100dvh) - var(--orbis-compact-gap) - var(--orbis-compact-gap)));
  overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable;scroll-padding-block:6px;
}
.orbis-chat--modal.orbis-chat--compact .orby-head{min-height:56px;padding:6px 14px}
.orbis-chat--modal.orbis-chat--compact .orby-face{width:32px;height:32px}
.orbis-chat--modal.orbis-chat--compact .orby-msgs{
  flex:none;height:auto;min-height:0;max-height:none;padding:14px;
  overflow:visible;overscroll-behavior-y:auto;scrollbar-gutter:auto;
}
.orbis-chat--modal.orbis-chat--compact .orby-foot{padding:10px 14px}
@media(max-width:359px){
  .orbis-chat .orby-head,.orbis-chat .orby-msgs{padding:14px}
  .orbis-chat .orby-foot{padding:13px 14px}
  .orbis-chat .orby-bubble{padding:11px 12px}
  .orbis-chat .orby-chip{padding:9px}
}
@media(prefers-reduced-motion:no-preference){
  .orbis-chat .orby-bubble:not(.orbis-welcome){animation:orbis-chat-message-in 180ms ease-out both}
  .orbis-chat .orby-typing::before{animation:orbis-chat-thinking 850ms linear infinite}
}
@keyframes orbis-chat-message-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes orbis-chat-thinking{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
  .orbis-chat.orby-panel,.orbis-chat *,.orbis-chat *::before{
    animation:none!important;transition:none!important;
  }
  .orbis-chat.orby-panel{transform:none}
  .orbis-chat button:enabled:active{transform:none}
}
@media(forced-colors:active){
  .orbis-chat.orby-panel,.orbis-chat .orby-head,.orbis-chat .orby-msgs,
  .orbis-chat .orby-foot,.orbis-chat .orby-form,.orbis-chat .orby-bubble,
  .orbis-chat .orby-bubble.orbis-welcome,.orbis-chat .orby-bubble.orby-unavailable,
  .orbis-chat .orby-chip,.orbis-chat .orbis-retry,.orbis-chat .orbis-jump{
    color:CanvasText;background:Canvas;border-color:CanvasText;box-shadow:none;
  }
  .orbis-chat .orby-head-name,.orbis-chat .orbis-chat-label,
  .orbis-chat .orbis-welcome p,.orbis-chat .orbis-welcome .orbis-welcome-title,
  .orbis-chat .orby-form input,.orbis-chat .orby-disclaimer{color:CanvasText}
  .orbis-chat .orby-send,.orbis-chat .orby-face{background:Highlight;color:HighlightText}
  .orbis-chat .orby-send:disabled{color:GrayText;background:Canvas;border-color:GrayText}
  .orbis-chat a,.orbis-chat .orbis-recovery a{color:LinkText}
  .orbis-chat :is(button,a):focus-visible,.orbis-chat .orby-msgs:focus-visible,
  .orbis-chat .orby-form:focus-within,.orbis-chat .orby-bubble:focus-visible{outline-color:Highlight}
  .orbis-chat .orby-typing::before{border-color:GrayText;border-top-color:Highlight}
}

/* /assets/payment-programs.css */
/* Program content: shared Orbis colors, restrained rules, responsive layouts. */
.orbis-programs,.payment-page,.dealer-working{--program-ink:#102b50;--program-blue:#084bd7;--program-orange:var(--brand-orange,#ff934a);color:var(--program-ink)}
.orbis-programs{background:#e7f5f3;border-block:1px solid #b5d8da}.programs-heading,.payments-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:32px}
.programs-heading h2,.payments-section-head h2,.payments-checklist h2,.payments-close h2{margin:0;font-size:clamp(30px,4.3vw,56px);line-height:1.05;letter-spacing:-.04em}.programs-heading h2 span,.payments-hero h1 span{color:var(--program-blue)}.programs-heading p,.payments-section-head p{max-width:44ch;margin:18px 0 0;font-size:17px;line-height:1.6;color:#294966}
.programs-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--program-blue);font-weight:600;font-size:15px;text-decoration:none;text-underline-offset:5px}.programs-link svg{flex:none;transition:transform 180ms ease-out}.programs-link:hover{text-decoration:underline}.programs-link:hover svg{transform:translateX(3px)}
.programs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid #91b4bf;border-bottom:1px solid #91b4bf}.programs-card{position:relative;min-width:0;padding:28px 28px 30px 0;color:inherit;text-decoration:none;border-radius:0}.programs-card+.programs-card{border-left:1px solid #a9c7ce;padding-left:28px}.programs-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;color:#0745bd;background:#d3e6ff;border-radius:12px;margin-bottom:28px}.programs-card:nth-child(2) .programs-icon,.payments-program-row:nth-child(2) .programs-icon{background:#bceae2;color:#075e5a}.programs-card:nth-child(3) .programs-icon,.payments-program-row:nth-child(3) .programs-icon{background:#ffe1c4;color:#8d3700}
.programs-card h3{font-size:23px;line-height:1.2;letter-spacing:-.025em;margin:0 0 12px;color:var(--program-ink)}.programs-card p{font-size:15px;line-height:1.65;margin:0;max-width:34ch;color:#294966}.programs-card-arrow{display:flex;margin-top:24px;color:var(--program-blue)}a.programs-card{transition:background-color 180ms ease-out}a.programs-card:hover{background:#d9ede9}a.programs-card:hover h3{text-decoration:underline;text-underline-offset:5px}
.programs-fees{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-top:32px}.programs-fees h3{font-size:24px;line-height:1.2;margin:0 0 12px;letter-spacing:-.03em}.programs-fees p{font-size:16px;line-height:1.65;max-width:55ch;margin:0;color:#294966}
.payment-page{background:#fff;padding:132px 24px 0}.payments-wrap{max-width:1120px;margin:auto}.payments-breadcrumb{display:flex;flex-wrap:wrap;gap:12px;font-size:13px;color:#365572;margin-bottom:40px}.payments-breadcrumb a{color:var(--program-blue)}.payments-hero{padding-bottom:64px;max-width:830px}.payments-hero h1{font-size:clamp(46px,8vw,92px);font-weight:600;line-height:.98;letter-spacing:-.055em;margin:0 0 28px;color:var(--program-ink)}.payments-hero p{font-size:clamp(18px,2vw,22px);line-height:1.55;max-width:45ch;margin:0 0 30px;color:#294966}
.payments-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;background:var(--program-orange);color:#15263d!important;padding:16px 24px;min-height:54px;font-size:16px;font-weight:600;border:1px solid transparent;border-radius:10px;transition:transform 160ms ease-out}.payments-button:hover{transform:translateY(-2px)}.payments-button:active{transform:none}
.payments-section{padding:64px 0;border-top:1px solid #b4c8d9;scroll-margin-top:120px}.payments-models{margin-top:32px}.programs-card .payments-model-sub{font-weight:600;color:#102b50;margin-bottom:10px}
.payments-zero{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:48px;background:#e7f1ff;border-left:5px solid var(--program-orange);padding:36px;border-radius:0 16px 16px 0}.payments-zero h2{font-size:clamp(26px,3vw,38px);line-height:1.12;letter-spacing:-.035em;margin:0 0 20px}.payments-zero p{font-size:16px;line-height:1.7;color:#294966;margin:0 0 18px}.payments-zero p:last-child{margin-bottom:0}
.payments-disclosure{margin-top:24px;border-block:1px solid #b4c8d9;padding:0 0 4px}.payments-disclosure summary{font-size:17px;font-weight:600;line-height:1.45;cursor:pointer;padding:20px 0;min-height:56px}.payments-disclosure p{font-size:15px;line-height:1.7;max-width:82ch;margin:0 0 18px;color:#294966}.payments-disclosure a{text-decoration:underline;text-underline-offset:3px}
.payments-program-row{display:grid;grid-template-columns:64px 1fr;gap:22px;padding:32px 0;border-top:1px solid #b4c8d9;scroll-margin-top:120px}.payments-program-row h3{font-size:28px;line-height:1.2;margin:0 0 14px;letter-spacing:-.03em}.payments-program-row p{font-size:16px;line-height:1.7;max-width:66ch;margin:0 0 12px;color:#294966}
.payments-checklist{display:grid;grid-template-columns:1fr 1fr;gap:64px}.payments-checklist p{font-size:17px;line-height:1.65;margin:24px 0 0;max-width:36ch;color:#294966}.payments-checklist ol{margin:0;padding-left:24px}.payments-checklist li{font-size:20px;color:var(--program-blue);padding:0 0 22px 8px}.payments-checklist li strong{display:block;font-size:18px;color:#102b50;margin-bottom:8px}.payments-checklist li span{font-size:15px;line-height:1.6;display:block;color:#294966}
.payments-close{padding:44px;margin:0 0 64px;border-radius:18px;background:#dceaff}.payments-close p{font-size:17px;line-height:1.6;max-width:52ch;margin:18px 0 26px}.payments-close .programs-link{margin-left:24px}.dealer-working .programs-link{margin-top:22px}
.programs-link:focus-visible,a.programs-card:focus-visible,.payments-button:focus-visible,.payments-disclosure summary:focus-visible,.payments-breadcrumb a:focus-visible{outline:3px solid #084bd7;outline-offset:5px}
@media(max-width:760px){.programs-heading,.payments-section-head,.programs-fees{align-items:flex-start;flex-direction:column;gap:18px}.programs-grid{grid-template-columns:1fr}.programs-card,.programs-card+.programs-card{padding:24px 0;border-left:0}.programs-card+.programs-card{border-top:1px solid #a9c7ce}.programs-card p{max-width:50ch}.programs-icon{margin-bottom:18px}.payments-hero{padding-bottom:42px}.payments-zero{grid-template-columns:1fr;gap:20px;padding:24px;margin-top:32px}.payments-section{padding:40px 0}.payments-checklist{grid-template-columns:1fr;gap:28px}.payment-page{padding:118px 20px 0}.payments-program-row{grid-template-columns:48px 1fr;gap:16px}.payments-program-row .programs-icon{width:44px;height:44px}.payments-close{padding:28px 22px;margin-bottom:40px}.payments-close .programs-link{display:flex;margin:16px 0 0}.payments-breadcrumb{margin-bottom:28px}}
@media(prefers-reduced-motion:no-preference){[data-program-reveal].program-enter{animation:program-enter 480ms cubic-bezier(.2,.7,.25,1) both}@keyframes program-enter{from{opacity:.45;transform:translateY(20px)}to{opacity:1;transform:none}}}
@media(prefers-reduced-motion:reduce){.programs-link svg,.payments-button,a.programs-card{transition:none}.programs-link:hover svg,.payments-button:hover{transform:none}}
@media(forced-colors:active){.programs-icon,.payments-button{border:1px solid ButtonText}.programs-card{border-color:CanvasText}}
.pricing-programs-link p{max-width:64ch;font-size:17px;line-height:1.65;margin:20px 0;color:#294966}.pg-sec .pg-in>.programs-link{color:#084bd7;margin-top:18px}.pg-sec .pg-in>p{max-width:68ch;line-height:1.65;margin-top:20px}

/* /assets/interior.css */
.interior-nav {
  --interior-nav-ink: #23354f;
  --interior-nav-muted: #536178;
  --interior-nav-divider: #8291a5;
  --interior-nav-focus: #0a44d1;
  margin-block-end: clamp(12px, 2vw, 24px);
  color: var(--interior-nav-muted);
  font-size: .875rem;
  line-height: 1.4;
}

.interior-nav--dark {
  --interior-nav-ink: #fff;
  --interior-nav-muted: #d4e2fa;
  --interior-nav-divider: #a7bedf;
  --interior-nav-focus: #fff;
}

.interior-nav ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 12px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.interior-nav li {
  display: flex;
  align-items: baseline;
  gap: 12px;
  min-width: 0;
}

.interior-nav li + li::before {
  content: '';
  flex: 0 0 5px;
  height: 5px;
  border-block-start: 1px solid var(--interior-nav-divider);
  border-inline-end: 1px solid var(--interior-nav-divider);
  align-self: center;
  transform: rotate(45deg);
}

.interior-nav a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 44px;
  padding-inline: 3px;
  border-radius: 3px;
  color: var(--interior-nav-ink);
  font-weight: 600;
  text-underline-offset: 4px;
}

.interior-nav a:hover { text-decoration: underline; }

.interior-nav a:focus-visible {
  outline: 2px solid var(--interior-nav-focus);
  outline-offset: 3px;
}

.interior-nav [aria-current='page'] {
  color: var(--interior-nav-muted);
  overflow-wrap: anywhere;
}

.contact-page > .interior-nav {
  width: min(100%, 1200px);
  margin-inline: auto;
}

.ab-main > .interior-nav { margin-block-end: 0; }
.ab-main > .interior-nav + .ab-hero { margin-block-start: 12px; }

.interior-related {
  padding: 0 24px clamp(32px, 5vw, 64px);
  color: #23354f;
}

.interior-related .pg-in {
  padding-block-start: clamp(24px, 4vw, 40px);
  border-block-start: 1px solid #d8e2f1;
}

.interior-related h2 {
  margin: 0 0 8px;
  font-size: clamp(19px, 2vw, 25px);
  line-height: 1.25;
}

.interior-related ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 clamp(18px, 3vw, 44px);
  margin: 0;
  padding: 0;
  list-style: none;
}

.interior-related a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  color: #0a44d1;
  font-size: .9375rem;
  font-weight: 600;
  text-underline-offset: 4px;
}

.interior-related a:hover { text-decoration: underline; }

@media (max-width: 720px) {
  .contact-page > .interior-nav { max-width: 560px; }
}

@media (max-width: 440px) {
  .interior-nav ol,
  .interior-nav li { column-gap: 8px; }
  .interior-related ul { display: grid; }
}

@media print {
  .interior-nav,
  .interior-related { display: none; }
}
