/* ═══ Novaru marketing site ══════════════════════════
   Palette mirrors the app tokens (css/style.css):
   teal #0E3D42 / #17646B · gold #E9A13B · indigo #241F5C
   bg #F6FAF9 · border #D9E6E4 · text #1A1A22 / #46605E
════════════════════════════════════════════════════ */
:root{
  --primary:#0E3D42;
  --primary-dark:#072A2E;
  --primary-light:#17646B;
  --gold:#E9A13B;
  --gold-deep:#855410;
  --gold-light:#F7D9A8;
  --secondary:#241F5C;
  --bg:#F6FAF9;
  --surface:#fff;
  --surface2:#EFF5F4;
  --tint-teal:#DCEAE8;
  --border:#D9E6E4;
  --text:#1A1A22;
  --text2:#46605E;
  --text3:#61807D;
  --radius:20px;
  --shadow-sm:0 1px 2px rgba(14,61,66,.06),0 4px 12px rgba(14,61,66,.06);
  --shadow-lg:0 2px 6px rgba(14,61,66,.08),0 24px 60px -12px rgba(14,61,66,.25);
  --font-display:"Fraunces",Georgia,serif;
  --font-body:"Inter",system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}

/* Standalone legal/privacy pages: deliberately plain, printable and readable
   without the marketing page's animation or product artwork. */
.legal-page{background:#fff}
.legal-head{border-bottom:1px solid var(--border);background:var(--bg)}
.legal-head-in{height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.legal-head-in>a:last-child{font-size:13px;color:var(--primary);font-weight:600}
.legal-wrap{max-width:820px;padding-top:68px;padding-bottom:80px}
.legal-kicker{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;margin-bottom:12px}
.legal-wrap h1{font-size:clamp(38px,6vw,60px);margin-bottom:16px}
.legal-lead{font-size:19px;line-height:1.65;color:var(--text2);max-width:66ch}
.legal-meta{font-size:12.5px;color:var(--text3);margin-top:18px;padding-bottom:34px;border-bottom:1px solid var(--border)}
.legal-wrap section{padding-top:34px}
.legal-wrap section h2{font:600 24px/1.25 var(--font-display);margin-bottom:12px}
.legal-wrap section p,.legal-wrap section li{font-size:15px;color:#314846;line-height:1.75}
.legal-wrap section p+p{margin-top:12px}
.legal-wrap section ul,.legal-wrap section ol{padding-left:22px;margin:10px 0}.legal-wrap section li+li{margin-top:7px}
.legal-wrap section a,.legal-note a{color:var(--primary-light);text-decoration:underline;text-underline-offset:2px}
.legal-note{margin-top:40px;padding:18px 20px;border-radius:12px;background:var(--surface2);border:1px solid var(--border);font-size:13px;color:var(--text2);line-height:1.65}
.legal-foot{padding:25px 0;background:var(--primary-dark);color:#9FC3C1;font-size:12.5px}.legal-foot a{text-decoration:underline}
@media print{.legal-head,.legal-foot{display:none}.legal-wrap{padding:0;max-width:none}.legal-wrap section{break-inside:avoid}}

.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.wrap-narrow{max-width:780px}

h1,h2{font-family:var(--font-display);font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--primary)}
h1 em,h2 em{font-style:italic;color:var(--primary-light)}
.section-dark h2{color:#fff}
.section-dark h2 em{color:var(--gold)}

/* ═══ Buttons ═══ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font:600 15px/1 var(--font-body);
  padding:12px 22px;border-radius:999px;border:1.5px solid transparent;
  cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s;
  white-space:nowrap;
}
.btn:hover{transform:translateY(-1px)}
.btn-lg{padding:16px 30px;font-size:16px}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 8px 20px -6px rgba(14,61,66,.45)}
.btn-primary:hover{background:var(--primary-dark)}
.btn-gold{background:var(--gold);color:#3A2204;box-shadow:0 8px 20px -6px rgba(233,161,59,.55)}
.btn-gold:hover{background:#F0B056}
.btn-outline{border-color:var(--primary);color:var(--primary);background:transparent}
.btn-outline:hover{background:var(--tint-teal)}
.btn-ghost{color:var(--primary);background:transparent}
.btn-ghost:hover{background:var(--tint-teal)}

/* ═══ Nav ═══ */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(246,250,249,.85);backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;transition:border-color .2s;
}
.nav.scrolled{border-color:var(--border)}
.nav-inner{display:flex;align-items:center;gap:32px;height:72px}
.brand{display:flex;align-items:center;gap:10px}
.brand-mark{
  width:36px;height:36px;border-radius:10px;background:var(--primary);
  color:var(--gold);font:600 20px/36px var(--font-display);text-align:center;
}
.brand-word{font:600 21px var(--font-display);color:var(--primary);letter-spacing:.01em}
.nav-links{display:flex;gap:26px;margin-left:auto}
.nav-links a{font:500 14.5px var(--font-body);color:var(--text2);transition:color .15s}
.nav-links a:hover{color:var(--primary)}
.nav-cta{display:flex;gap:10px}
.nav-burger{display:none;background:none;border:0;cursor:pointer;padding:8px}
.nav-burger span{display:block;width:22px;height:2px;background:var(--primary);margin:5px 0;border-radius:2px}

/* ═══ Hero ═══ */
.hero{
  padding:72px 0 40px;position:relative;overflow:hidden;
  background:
    radial-gradient(1000px 500px at 85% -10%, var(--tint-teal) 0%, transparent 60%),
    radial-gradient(700px 400px at -10% 30%, #EFEDFA 0%, transparent 55%),
    var(--bg);
}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:48px;align-items:center}
.hero-eyebrow{
  display:inline-block;font:600 12.5px var(--font-body);letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold-deep);background:var(--gold-light);
  padding:7px 14px;border-radius:999px;margin-bottom:22px;
}
.hero h1{font-size:clamp(40px,5.2vw,64px);margin-bottom:20px}
.hero-sub{font-size:18px;color:var(--text2);max-width:44ch;margin-bottom:30px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero-proof{display:flex;align-items:center;gap:14px;color:var(--text3);font-size:13.5px;max-width:40ch}
.proof-avatars{display:flex}
.proof-avatars img{
  width:38px;height:38px;border-radius:50%;object-fit:cover;
  border:2.5px solid var(--bg);margin-left:-10px;
}
.proof-avatars img:first-child{margin-left:0}

/* ═══ Mockup frames (shared) ═══ */
.mock-frame{
  background:var(--surface);border-radius:var(--radius);
  box-shadow:var(--shadow-lg);border:1px solid var(--border);
  overflow:hidden;
}
.mock-bar{
  display:flex;align-items:center;gap:6px;
  padding:11px 16px;background:var(--surface2);border-bottom:1px solid var(--border);
}
.mock-bar i{width:10px;height:10px;border-radius:50%;background:#D3E0DE}
.mock-bar i:first-child{background:#F0A9A0}
.mock-bar i:nth-child(2){background:#F2D398}
.mock-bar i:nth-child(3){background:#A8D5B4}
.mock-url{
  margin:0 auto;font:500 11px var(--font-body);color:var(--text3);
  background:var(--surface);padding:3px 26px;border-radius:6px;border:1px solid var(--border);
}
.mock-app{display:flex;min-height:340px}
.m-side{
  width:54px;background:var(--primary);display:flex;flex-direction:column;
  align-items:center;padding:14px 0;gap:18px;flex-shrink:0;
}
.m-logo{
  width:30px;height:30px;border-radius:8px;background:rgba(255,255,255,.12);
  color:var(--gold);font:600 16px/30px var(--font-display);text-align:center;
}
.m-nav{display:flex;flex-direction:column;gap:12px;width:100%;align-items:center}
.m-nav span{width:26px;height:26px;border-radius:8px;background:rgba(255,255,255,.14)}
.m-nav span.on{background:var(--gold)}
.m-body{flex:1;padding:18px 20px;background:var(--bg);min-width:0}
.m-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px}
.m-title{font:600 15px var(--font-body);color:var(--primary)}
.m-date{font-size:11.5px;color:var(--text3)}
.m-chipset{display:flex;gap:6px}
.m-chip{
  font:600 10.5px var(--font-body);color:var(--text2);
  background:var(--surface);border:1px solid var(--border);
  padding:5px 12px;border-radius:999px;
}
.m-chip.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.m-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}
.m-stat{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:10px 12px;
}
.m-stat small{display:block;font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em}
.m-stat b{display:block;font:600 17px var(--font-body);color:var(--primary);margin:2px 0}
.m-stat em{font-style:normal;font-size:10.5px;color:var(--text3)}
.m-stat em.up{color:#1E7F6B;font-weight:600}
.m-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.m-panel-head{display:flex;justify-content:space-between;font:600 12px var(--font-body);color:var(--text2);margin-bottom:12px}
.m-dot-legend{display:flex;align-items:center;gap:5px;font-weight:500;font-size:10.5px;color:var(--text3)}
.m-dot-legend i{width:8px;height:8px;border-radius:2px;background:var(--primary-light);display:inline-block}
.m-dot-legend i.g{background:var(--gold)}
.m-chart{display:flex;align-items:flex-end;gap:9px;height:110px}
.m-chart>div{
  flex:1;height:var(--h);border-radius:6px 6px 3px 3px;
  background:var(--gold);position:relative;overflow:hidden;min-width:0;
}
.m-chart>div i{position:absolute;left:0;right:0;bottom:0;height:var(--p);background:var(--primary-light);border-radius:0}
.m-chart>div.now{outline:2px solid var(--gold);outline-offset:2px}

/* ═══ Hero visual extras ═══ */
.hero-visual{position:relative}
.hero-mock{transform:rotate(.6deg)}
.float-card{
  position:absolute;display:flex;align-items:center;gap:10px;
  background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:10px 16px 10px 12px;box-shadow:var(--shadow-lg);
  animation:floaty 5s ease-in-out infinite;
}
.float-card b{display:block;font-size:12.5px;color:var(--text)}
.float-card small{font-size:11px;color:var(--text3)}
.fc-icon{
  width:32px;height:32px;border-radius:50%;background:#E4F2EE;color:#1E7F6B;
  display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;
}
.fc-icon.fc-cal{background:var(--gold-light);font-size:14px}
.fc-1{bottom:-18px;left:-14px}
.fc-2{top:-16px;right:-8px;animation-delay:2.5s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* ═══ Trust strip ═══ */
.strip{background:var(--primary);color:#fff;padding:26px 0;margin-top:56px}
.strip-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.strip-item{text-align:center}
.strip-item b{display:block;font:500 24px var(--font-display);color:var(--gold)}
.strip-item span{font-size:13px;color:#B7D2D0}

/* ═══ Sections ═══ */
.section{padding:96px 0}
.section-tint{background:var(--surface2)}
.section-dark{background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);color:#DCEAE8}
.section-head{text-align:center;max-width:640px;margin:0 auto 56px}
.section-head h2{font-size:clamp(30px,3.6vw,44px);margin-bottom:14px}
.section-head p{color:var(--text2);font-size:16.5px}
.section-dark .section-head p{color:#9FC3C1}
.kicker{
  font:600 12px var(--font-body);letter-spacing:.14em;text-transform:uppercase;
  color:var(--primary-light);margin-bottom:14px;
}
.kicker-gold{color:var(--gold)}

/* ═══ Product shots ═══ */
.shot-tabs{display:flex;justify-content:center;gap:8px;margin-bottom:30px;flex-wrap:wrap}
.shot-tab{
  font:600 14px var(--font-body);color:var(--text2);
  background:var(--surface);border:1.5px solid var(--border);
  padding:11px 24px;border-radius:999px;cursor:pointer;transition:all .15s;
}
.shot-tab:hover{border-color:var(--primary-light);color:var(--primary)}
.shot-tab.on{background:var(--primary);border-color:var(--primary);color:#fff}
.shot{display:none;max-width:960px;margin:0 auto}
.shot.on{display:block;animation:shotIn .35s ease}
@keyframes shotIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* Billing mock */
.pos-grid{display:grid;grid-template-columns:180px 1fr 210px;gap:12px;min-width:0}
.pos-client,.pos-cart{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px}
.m-card-title{font:600 12px var(--font-body);color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.m-field{font:600 14px var(--font-body);color:var(--text)}
.m-field.dim{font-weight:400;color:var(--text3);font-size:12.5px;margin-bottom:10px}
.m-tagrow{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.m-tag{font:600 10px var(--font-body);background:var(--surface2);border:1px solid var(--border);color:var(--text2);padding:4px 9px;border-radius:999px}
.m-tag.gold{background:var(--gold-light);border-color:var(--gold-light);color:var(--gold-deep)}
.m-wallet{background:var(--tint-teal);border-radius:10px;padding:9px 12px}
.m-wallet small{display:block;font-size:10px;color:var(--text2)}
.m-wallet b{font-size:15px;color:var(--primary)}
.m-cats{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.m-cats span{font:600 11px var(--font-body);padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text2)}
.m-cats span.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.m-svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.m-svc{
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  padding:10px 11px;font:500 11.5px/1.35 var(--font-body);color:var(--text);
}
.m-svc b{display:block;color:var(--primary);margin-top:4px;font-size:12px}
.m-svc.on{border-color:var(--primary-light);background:var(--tint-teal);box-shadow:inset 0 0 0 1px var(--primary-light)}
.m-line{display:flex;justify-content:space-between;font-size:12px;padding:6px 0;border-bottom:1px dashed var(--border)}
.m-line.dim{color:#1E7F6B}
.m-line b{font-weight:600}
.m-total{display:flex;justify-content:space-between;padding:10px 0 12px;font:600 13px var(--font-body)}
.m-total b{font-size:17px;color:var(--primary)}
.m-paybtn{
  background:var(--primary);color:#fff;text-align:center;font:600 12.5px var(--font-body);
  border-radius:10px;padding:11px;box-shadow:0 6px 14px -4px rgba(14,61,66,.4);
}

/* Appointments mock */
.m-cal{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.m-cal-col{
  position:relative;height:230px;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;padding:34px 8px 8px;
}
.m-cal-col small{
  position:absolute;top:9px;left:12px;font:600 11px var(--font-body);color:var(--text2);
}
.m-appt{
  position:absolute;left:8px;right:8px;top:calc(34px + var(--top));height:var(--h);
  border-radius:8px;padding:6px 9px;overflow:hidden;
}
.m-appt b{display:block;font-size:11px;line-height:1.3}
.m-appt span{font-size:9.5px;opacity:.75}
.m-appt.t1{background:var(--tint-teal);color:var(--primary);border-left:3px solid var(--primary-light)}
.m-appt.t2{background:#EFEDFA;color:var(--secondary);border-left:3px solid var(--secondary)}
.m-appt.t3{background:var(--gold-light);color:var(--gold-deep);border-left:3px solid var(--gold)}
.m-online{
  position:absolute;top:5px;right:6px;font:700 8px var(--font-body);font-style:normal;
  background:#fff;color:#1E7F6B;padding:2px 6px;border-radius:999px;
  text-transform:uppercase;letter-spacing:.04em;
}

/* Reports mock */
.m-hbar{display:grid;grid-template-columns:64px 1fr 52px;align-items:center;gap:10px;margin-bottom:10px;font-size:11.5px}
.m-hbar span{color:var(--text2);font-weight:500}
.m-hbar div{height:12px;border-radius:999px;background:var(--surface2);overflow:hidden}
.m-hbar div i{display:block;height:100%;width:var(--w);border-radius:999px;background:linear-gradient(90deg,var(--primary-light),var(--primary))}
.m-hbar b{text-align:right;color:var(--primary);font-weight:600}

/* ═══ Features ═══ */
.feat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:30px 28px;box-shadow:var(--shadow-sm);
  transition:transform .2s ease,box-shadow .2s ease;
}
.feat:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.feat-ic{
  width:48px;height:48px;border-radius:14px;background:var(--tint-teal);
  display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:18px;
}
.feat h3{font:600 17.5px var(--font-body);color:var(--primary);margin-bottom:8px}
.feat p{font-size:14.5px;color:var(--text2)}

/* ═══ Booking split ═══ */
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.split-copy h2{font-size:clamp(28px,3.2vw,40px);margin-bottom:16px}
.split-copy p{color:var(--text2);margin-bottom:22px}
.split-copy .kicker{margin-bottom:12px}
.ticks{list-style:none}
.ticks li{
  padding:9px 0 9px 34px;position:relative;font-weight:500;color:var(--text);
  border-bottom:1px solid var(--border);font-size:15px;
}
.ticks li:last-child{border-bottom:0}
.ticks li::before{
  content:"✓";position:absolute;left:0;top:8px;
  width:22px;height:22px;border-radius:50%;background:var(--tint-teal);color:var(--primary);
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.split-visual{display:flex;justify-content:center}
.phone{
  width:290px;background:var(--primary-dark);border-radius:40px;padding:10px;
  box-shadow:var(--shadow-lg);position:relative;
}
.phone-notch{
  position:absolute;top:10px;left:50%;transform:translateX(-50%);
  width:110px;height:22px;background:var(--primary-dark);border-radius:0 0 14px 14px;z-index:2;
}
.phone-screen{background:var(--bg);border-radius:32px;overflow:hidden}
.phone-hero{height:140px;width:100%;object-fit:cover}
.phone-body{padding:16px 18px 20px}
.phone-body>b{font:600 18px var(--font-display);color:var(--primary)}
.phone-body>small{display:block;color:var(--text3);font-size:11.5px;margin:2px 0 14px}
.phone-svc{
  display:flex;justify-content:space-between;align-items:center;
  background:var(--surface);border:1px solid var(--border);border-radius:10px;
  padding:10px 12px;margin-bottom:8px;font-size:12.5px;
}
.phone-svc b{color:var(--primary)}
.phone-cta{
  margin-top:14px;background:var(--gold);color:#3A2204;text-align:center;
  font:600 13.5px var(--font-body);padding:12px;border-radius:12px;
}

/* ═══ Trust / dark ═══ */
.trust-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.trust-photo{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg)}
.trust-photo img{height:460px;width:100%;object-fit:cover}
.trust-photo figcaption{
  position:absolute;inset:auto 0 0 0;padding:80px 28px 26px;
  background:linear-gradient(180deg,transparent,rgba(7,42,46,.92));
}
.trust-photo blockquote{
  font:500 19px/1.45 var(--font-display);font-style:italic;color:#fff;margin-bottom:10px;
}
.trust-photo cite{font:500 12.5px var(--font-body);font-style:normal;color:var(--gold-light)}
.trust-points{display:grid;gap:8px}
.tp{padding:18px 22px;border-radius:16px;transition:background .2s}
.tp:hover{background:rgba(255,255,255,.06)}
.tp b{display:block;font-size:16.5px;color:#fff;margin-bottom:5px}
.tp b::before{content:"— ";color:var(--gold)}
.tp p{font-size:14px;color:#9FC3C1}

/* ═══ Pricing ═══ */
.price-card{
  max-width:880px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:20px;
  background:var(--surface);border:1px solid var(--border);border-radius:28px;
  padding:44px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden;
}
.price-card::before{
  content:"";position:absolute;top:-120px;right:-120px;width:320px;height:320px;
  border-radius:50%;background:radial-gradient(circle,var(--gold-light),transparent 65%);opacity:.7;
}
.price-left{position:relative}
.price-badge{
  display:inline-block;font:700 11px var(--font-body);letter-spacing:.1em;text-transform:uppercase;
  background:var(--gold-light);color:var(--gold-deep);padding:7px 14px;border-radius:999px;margin-bottom:18px;
}
.price-num{font:500 40px/1.1 var(--font-display);color:var(--primary);margin-bottom:14px}
.price-left p{color:var(--text2);font-size:15px;margin-bottom:24px;max-width:36ch}
.price-left .btn{margin:0 10px 10px 0}
.price-ticks{list-style:none;position:relative;align-self:center}
.price-ticks li{
  padding:11px 0 11px 34px;position:relative;font-weight:500;font-size:15px;
  border-bottom:1px solid var(--border);
}
.price-ticks li:last-child{border-bottom:0}
.price-ticks li::before{
  content:"✓";position:absolute;left:0;top:10px;
  width:22px;height:22px;border-radius:50%;background:var(--tint-teal);color:var(--primary);
  font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;
}

/* ═══ FAQ ═══ */
details{
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  padding:20px 26px;margin-bottom:12px;box-shadow:var(--shadow-sm);
}
details summary{
  font:600 16px var(--font-body);color:var(--primary);cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;gap:12px;
}
details summary::after{
  content:"+";font:400 24px var(--font-display);color:var(--primary-light);transition:transform .2s;
}
details[open] summary::after{transform:rotate(45deg)}
details p{margin-top:12px;color:var(--text2);font-size:15px}

/* ═══ Final CTA ═══ */
.final-cta{
  text-align:center;padding:110px 24px;
  background:
    radial-gradient(800px 400px at 50% 120%, rgba(233,161,59,.25), transparent 60%),
    linear-gradient(180deg,var(--primary-dark),var(--primary));
}
.final-cta h2{font-size:clamp(30px,4vw,48px);color:#fff;margin-bottom:16px}
.final-cta p{color:#9FC3C1;margin-bottom:32px;font-size:17px}

/* ═══ Footer ═══ */
.footer{background:var(--primary-dark);color:#9FC3C1;padding:56px 0 0}
.footer-inner{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:44px}
.footer .brand-word{color:#fff}
.footer-tag{font-size:13.5px;margin-top:12px;max-width:30ch}
.footer-cols{display:flex;gap:72px}
.footer-cols b{display:block;color:#fff;font-size:13.5px;margin-bottom:14px}
.footer-cols a{display:block;font-size:13.5px;margin-bottom:9px;color:#9FC3C1;transition:color .15s}
.footer-cols a:hover{color:var(--gold)}
.footer-base{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);padding-top:20px;padding-bottom:24px;
  font-size:12.5px;color:#6E9694;
}

/* ═══ Reveal on scroll ═══ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* ═══ Responsive ═══ */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:56px}
  .hero{padding-top:48px}
  .hero-visual{max-width:640px;margin:0 auto;width:100%}
  .split{grid-template-columns:1fr;gap:48px}
  .trust-grid{grid-template-columns:1fr;gap:32px}
  .price-card{grid-template-columns:1fr;padding:34px 28px}
  .feat-grid{grid-template-columns:repeat(2,1fr)}
  .strip-inner{grid-template-columns:repeat(2,1fr);row-gap:24px}
  .nav-links{display:none}
  .nav-links.open{
    display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;
    background:var(--bg);border-bottom:1px solid var(--border);
    padding:20px 24px;gap:18px;box-shadow:var(--shadow-lg);
  }
  .nav-burger{display:block;margin-left:auto}
  .nav-cta .btn-ghost{display:none}
}
@media(max-width:640px){
  .section{padding:72px 0}
  .feat-grid{grid-template-columns:1fr}
  .m-stats{grid-template-columns:repeat(2,1fr)}
  .pos-grid{grid-template-columns:1fr;gap:10px}
  .m-svc-grid{grid-template-columns:repeat(2,1fr)}
  .m-cal{grid-template-columns:1fr 1fr}
  .m-cal-col:nth-child(3){display:none}
  .fc-2{display:none}
  .fc-1{left:8px;bottom:-14px}
  .strip-item b{font-size:20px}
  .footer-cols{gap:44px}
  .price-left .btn{width:100%;margin-right:0}
}

/* ═══ Feature groups ═══
   The feature list outgrew a single six-card grid once billing stopped being
   the whole product. Grouping it lets a salon owner find the part they came
   for — and lets a salesperson walk the page in the order they pitch. */
.feat-group-title{
  font:600 12px var(--font-body);letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-deep);margin:44px 0 18px;display:flex;align-items:center;gap:14px;
}
.feat-group-title:first-of-type{margin-top:0}
.feat-group-title::after{
  content:"";flex:1;height:1px;background:var(--border);
}
@media (max-width:900px){
  .feat-group-title{margin:32px 0 14px}
}

/* ═══ Tiers ═══
   Two cards rather than one, because the product has two plans and the page
   used to claim it had none. Pro is visually lifted, not louder: the pitch is
   "everything already works, this adds reach", which a shouting card undercuts. */
.tier-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;
  max-width:880px;margin:0 auto 24px;
}
/* Three cards need the room two did, and each one loses about 60px of width.
   The padding comes in with it — a 34px inset on a 320px card leaves the
   feature list too narrow to hold "Automated WhatsApp" on one line. */
.tier-grid-3{grid-template-columns:repeat(3,1fr);max-width:1080px;gap:18px}
.tier-grid-3 .tier{padding:32px 24px}
.tier{
  background:var(--surface);border:1px solid var(--border);border-radius:24px;
  padding:34px 30px;box-shadow:var(--shadow-sm);position:relative;
}
/* Plus is the card the ladder is built to sell, so it gets the lift Pro used
   to have when there were only two. Pro keeps the gold — it is still the top
   plan — but a quieter treatment, because two shouting cards is none. */
.tier-plus{
  border-color:var(--primary);box-shadow:var(--shadow-lg);
  background:linear-gradient(180deg,var(--tint-teal) 0%,var(--surface) 34%);
}
.tier-pro{
  border-color:var(--gold);
  background:linear-gradient(180deg,var(--gold-light) 0%,var(--surface) 30%);
}
.tier-badge{
  position:absolute;top:-12px;right:24px;
  font:700 10.5px var(--font-body);letter-spacing:.1em;text-transform:uppercase;
  background:var(--gold);color:#20180A;padding:6px 13px;border-radius:999px;
}
.tier-badge-teal{background:var(--primary);color:#fff}
.tier-name{font:600 22px var(--font-display);color:var(--primary);margin-bottom:6px}
.tier-name em{font-style:italic;color:var(--gold-deep)}
.tier-name em.em-teal{color:var(--primary)}
.tier-line{font-size:14px;color:var(--text2);margin-bottom:20px}
.tier .price-ticks li{font-size:14px}
.price-card-cta{margin-top:8px}
/* Three abreast needs more width than two did, so it folds a step earlier —
   and folds to TWO before it folds to one, because a 3-up grid squeezed into
   a tablet is unreadable long before a 2-up is. */
@media (max-width:1080px){
  /* Source order is the price ladder, so 2-up wraps to One+Plus / Pro — the
     recommended card is already on the first row and Pro reads as the step
     beyond it. Nothing to reorder. */
  .tier-grid-3{grid-template-columns:1fr 1fr;max-width:880px}
}
@media (max-width:900px){
  .tier-grid,.tier-grid-3{grid-template-columns:1fr;max-width:520px}
  .tier-grid-3 .tier{padding:30px 24px}
}

/* ═══ Tier pricing ═══
   The discounted figure is the price now, so it is the one set in the display
   face. The original sits under it struck through rather than beside it —
   side-by-side reads as a comparison between two products, which is exactly
   what this page must not say when the two cards next to each other ARE two
   products. */
.price-note{
  display:inline-block;margin-top:14px;font:600 12.5px var(--font-body);
  color:var(--gold-deep);background:var(--gold-light);
  padding:7px 15px;border-radius:999px;
}
/* Setup is a term of every plan, not a feature of one, so it sits under the
   section head rather than as a bullet on a card — a bullet would read as
   something Plus gives you and One does not, which is the opposite of true. */
.price-sub{
  margin:12px auto 0;max-width:560px;
  font-size:13.5px;line-height:1.6;color:var(--text2);
}
.price-fine{font-size:13.5px;line-height:1.65;color:var(--text2);margin-top:-4px}
.tier-price{margin:0 0 22px;padding-bottom:20px;border-bottom:1px solid var(--border)}
.tp-main{
  font:500 40px var(--font-display);color:var(--primary);
  line-height:1.05;letter-spacing:-.02em;
}
.tp-cur{font-size:26px;vertical-align:.12em;margin-right:2px}
.tp-per{font:400 15px var(--font-body);color:var(--text3);margin-left:4px}
.tp-was{font-size:13.5px;color:var(--text3);margin-top:7px}
.tp-was b{color:var(--primary);font-weight:600}
.tp-alt{font-size:13.5px;color:var(--text2);margin-top:3px}
.tp-alt s{color:var(--text3);margin-left:3px}
.tp-tag{
  display:inline-block;margin-top:13px;
  font:700 11px var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  background:var(--tint-teal);color:var(--primary);padding:6px 12px;border-radius:999px;
}
.tp-tag-gold{background:var(--gold-light);color:var(--gold-deep)}

/* ── Shipped vs coming ─────────────────────────────────────────
   Some cards describe capability that is on the roadmap rather than in the
   product. Saying so is not a hedge: a prospect who asks to see the campaign
   builder mid-demo and finds there isn't one costs more than the feature was
   ever going to win. An explicit roadmap also reads as a company that ships. */
.feat{position:relative}
.feat-next{
  display:inline-block;margin-bottom:9px;
  font:700 10px var(--font-body);letter-spacing:.09em;text-transform:uppercase;
  background:var(--gold-light);color:var(--gold-deep);padding:4px 9px;border-radius:999px;
}
.feat-note{
  display:block;margin-top:9px;padding-top:9px;border-top:1px solid var(--border);
  font-size:12.5px;color:var(--text3);
}
.feat-legend{
  margin:-6px 0 26px;font-size:13.5px;color:var(--text3);
}
.feat-legend b{color:var(--gold-deep);font-weight:700}
.price-ticks li .tick-next{
  display:inline-block;margin-left:6px;vertical-align:1px;
  font:700 9.5px var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  background:var(--gold-light);color:var(--gold-deep);padding:2px 7px;border-radius:999px;
}
.price-ticks li small{display:block;margin-top:3px;font-size:12px;color:var(--text3)}

/* ── Proof band ────────────────────────────────────────────────
   Real figures from the salon Novaru runs, not a testimonial. A fabricated
   quote was sitting here with a fabricated attribution; numbers that can be
   checked are both honest and more persuasive than a sentence anyone could
   have written. */
.proof{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--border);border:1px solid var(--border);
  border-radius:var(--radius);overflow:hidden;margin-top:26px;
}
.proof div{background:var(--surface);padding:20px 18px;text-align:center}
.proof b{display:block;font:700 26px var(--font-display);color:var(--primary);line-height:1.1}
.proof span{display:block;margin-top:6px;font-size:12.5px;color:var(--text3);line-height:1.35}
.section-dark .proof{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.14)}
.section-dark .proof div{background:rgba(255,255,255,.06)}
.section-dark .proof b{color:#fff}
.section-dark .proof span{color:rgba(255,255,255,.72)}
.proof-note{margin-top:12px;font-size:12.5px;color:var(--text3);text-align:center}
.section-dark .proof-note{color:rgba(255,255,255,.6)}

/* ── Comparison ────────────────────────────────────────────────
   Nothing on the page addressed what a salon is actually replacing, which is
   almost always a register and a paper diary rather than a competitor. */
.cmp{width:100%;border-collapse:collapse;margin-top:8px;font-size:14.5px}
.cmp th,.cmp td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}
.cmp thead th{
  font:700 12px var(--font-body);letter-spacing:.08em;text-transform:uppercase;
  color:var(--text3);border-bottom:2px solid var(--border);white-space:nowrap;
}
.cmp thead th.is-us{color:var(--primary)}
.cmp tbody th{font-weight:600;color:var(--text);width:26%}
.cmp td{color:var(--text2)}
.cmp td.is-us{background:var(--tint-teal);color:var(--primary);font-weight:600}
.cmp tbody tr:last-child th,.cmp tbody tr:last-child td{border-bottom:0}
.cmp-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);
  border:1px solid var(--border);background:var(--surface)}
.cmp-foot{margin-top:14px;font-size:13.5px;color:var(--text3)}

/* ── Offline, given its own moment ─────────────────────────────
   The strongest differentiator on the page was a stat chip. */
.offline{
  display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;
  background:var(--primary);color:#fff;border-radius:var(--radius);padding:44px 46px;
}
.offline h2{font:600 30px var(--font-display);line-height:1.15;margin-bottom:14px;color:#fff}
.offline p{color:rgba(255,255,255,.82);font-size:15.5px;margin-bottom:10px}
.offline .kicker{color:var(--gold);margin-bottom:12px}
.offline-demo{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  border-radius:14px;padding:20px 22px}
.offline-row{display:flex;align-items:center;gap:11px;padding:9px 0;font-size:14px;
  color:rgba(255,255,255,.9);border-bottom:1px solid rgba(255,255,255,.09)}
.offline-row:last-child{border-bottom:0}
.offline-dot{width:9px;height:9px;border-radius:50%;flex:none}
.dot-red{background:#F87171}.dot-amber{background:var(--gold)}.dot-green{background:#4ADE80}

/* ── Mobile ────────────────────────────────────────────────────
   Most traffic to this page arrives from an Instagram bio on a phone, so the
   small screen is the primary one rather than the fallback. The new sections
   are handled here; the comparison keeps its own horizontal scroll with the
   row label pinned, because collapsing a comparison into stacked cards loses
   the comparison. */
@media (max-width:900px){
  .offline{grid-template-columns:1fr;gap:28px;padding:34px 26px}
  .offline h2{font-size:25px}
  .proof{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .offline{padding:28px 20px;border-radius:16px}
  .offline h2{font-size:22px}
  .offline p{font-size:14.5px}
  .offline-demo{padding:16px 16px}
  .offline-row{font-size:13px;gap:9px}

  .proof b{font-size:22px}
  .proof div{padding:16px 12px}
  .proof span{font-size:11.5px}

  .cmp{font-size:13.5px}
  .cmp th,.cmp td{padding:11px 12px}
  .cmp tbody th{
    width:auto;min-width:126px;position:sticky;left:0;z-index:1;
    background:var(--surface);box-shadow:1px 0 0 var(--border);
  }
  .cmp thead th{font-size:11px}
  .cmp-scroll{position:relative}
  /* A hint that the table moves — without it the third column reads as absent. */
  .cmp-scroll::after{
    content:"swipe →";position:absolute;top:9px;right:11px;
    font:600 10px var(--font-body);letter-spacing:.08em;text-transform:uppercase;
    color:var(--text3);pointer-events:none;
  }

  .feat-legend{font-size:13px}
  .feat-next{font-size:10.5px;padding:4px 9px}
  .price-ticks li .tick-next{font-size:10.5px}
  .price-ticks li small{font-size:11.5px}
}
/* Nothing on the page may force a sideways scroll of the PAGE itself; the
   comparison scrolls inside its own container instead. */
html,body{max-width:100%;overflow-x:hidden}
