/* =========================================================
   Summit Results — design system
   Palette: ink navy (from logo) / warm paper / ember accent
   ========================================================= */

:root{
  --ink:        #0B1220;
  --ink-2:      #131E30;
  --ink-3:      #1D2B41;
  --paper:      #F5F1E9;
  --paper-2:    #EBE5D9;
  --paper-3:    #DED6C6;
  --ember:      #E2542B;
  --ember-soft: #F07A52;
  --clay:       #C08B52;
  --sage:       #4E7A6B;
  --muted:      #6B7789;
  --muted-2:    #96A0AE;

  --font-display: "Fraunces", Georgia, "Times New Roman", serif;
  --font-body:    "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

  --shell: 1240px;
  --gut: 28px;

  --r-sm: 6px;
  --r-md: 14px;
  --r-lg: 24px;

  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.65;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }

/* --- grain overlay: kills the flat "generated" look ------- */
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:9999;
  pointer-events:none;
  opacity:.28;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.42'/%3E%3C/svg%3E");
}

/* ---------------- typography ------------------------------ */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  font-variation-settings:"SOFT" 0,"WONK" 1,"opsz" 40;
  line-height:1.02;
  letter-spacing:-.022em;
  margin:0;
  text-wrap:balance;
}

h1{ font-size:clamp(2.9rem,7.2vw,5.6rem); }
h2{ font-size:clamp(2.1rem,4.6vw,3.6rem); }
h3{ font-size:clamp(1.3rem,2.1vw,1.75rem); letter-spacing:-.015em; }
h4{ font-size:1.06rem; font-family:var(--font-body); font-weight:600; letter-spacing:-.01em; }

p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

.serif-it{
  font-style:italic;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 40;
  color:var(--ember);
}

.eyebrow{
  font-family:var(--font-body);
  font-size:.7rem;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:.7rem;
  margin:0 0 1.4rem;
}
.eyebrow::before{
  content:"";
  width:26px;
  height:1px;
  background:var(--ember);
  flex:none;
}
.eyebrow.center{ justify-content:center; }

.lead{
  font-size:clamp(1.06rem,1.5vw,1.24rem);
  line-height:1.6;
  color:var(--ink-3);
  max-width:56ch;
}

.dim{ color:var(--muted); }

/* ---------------- layout ---------------------------------- */
.shell{
  width:100%;
  max-width:var(--shell);
  margin-inline:auto;
  padding-inline:var(--gut);
}
.shell-wide{ max-width:1440px; }

section{ position:relative; }

/* grid children must be allowed to shrink below min-content */
.hero-grid > *, .split > *, .duo > *, .trio > *, .feature-row > *, .plans > *{ min-width:0; }

.band{ padding-block:clamp(72px,10vw,140px); }
.band-tight{ padding-block:clamp(56px,7vw,92px); }

.band-ink{
  background:var(--ink);
  color:var(--paper);
}
.band-ink h1,.band-ink h2,.band-ink h3{ color:var(--paper); }
.band-ink .lead{ color:#B9C3D2; }
.band-ink .eyebrow{ color:var(--muted-2); }

.band-paper2{ background:var(--paper-2); }

/* topographic contour motif — ties back to the summit mark */
.topo{
  position:absolute;
  inset:0;
  pointer-events:none;
  overflow:hidden;
  opacity:.5;
}
.topo svg{ position:absolute; width:1600px; height:auto; }
.topo path{ fill:none; stroke:currentColor; stroke-width:1; opacity:.14; }

/* ---------------- nav ------------------------------------- */
.nav{
  position:sticky;
  top:0;
  z-index:200;
  background:rgba(245,241,233,.82);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid rgba(11,18,32,.09);
  transition:box-shadow .3s var(--ease), background .3s var(--ease);
}
.nav.scrolled{ box-shadow:0 10px 34px -22px rgba(11,18,32,.5); }

.nav-in{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  height:84px;
}

.brand{
  display:flex;
  align-items:center;
  gap:13px;
  flex:none;
  transition:opacity .3s var(--ease);
}
.brand:hover{ opacity:.72; }
.brand-mark{
  height:30px;
  width:auto;
  display:block;
}
.brand-rule{
  width:1px;
  height:26px;
  background:currentColor;
  opacity:.2;
  display:block;
  flex:none;
}
.brand-word{
  height:15px;
  width:auto;
  display:block;
}
.foot .brand{ color:var(--paper); }
.nav .brand{ color:var(--ink); }

.nav-links{
  display:flex;
  align-items:center;
  gap:30px;
  margin-left:auto;
}
.nav-links a{
  position:relative;
  font-size:.88rem;
  font-weight:500;
  letter-spacing:.005em;
  color:var(--ink-3);
  padding:7px 0;
  transition:color .25s var(--ease);
}
.nav-links a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%;
  height:1.5px;
  background:var(--ember);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .38s var(--ease-out);
}
.nav-links a:hover{ color:var(--ink); }
.nav-links a:hover::after,
.nav-links a.active::after{ transform:scaleX(1); transform-origin:left; }
.nav-links a.active{ color:var(--ink); }

.nav-cta{ flex:none; }

.burger{
  display:none;
  width:44px; height:44px;
  border:1px solid rgba(11,18,32,.18);
  border-radius:var(--r-sm);
  background:transparent;
  cursor:pointer;
  padding:0;
  position:relative;
  flex:none;
}
.burger i{
  position:absolute;
  left:12px;
  width:20px; height:1.6px;
  background:var(--ink);
  transition:transform .34s var(--ease-out), opacity .2s;
}
.burger i:nth-child(1){ top:16px; }
.burger i:nth-child(2){ top:22px; }
.burger i:nth-child(3){ top:28px; }
.burger.open i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.burger.open i:nth-child(2){ opacity:0; }
.burger.open i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.mobile-menu{
  display:none;
  position:fixed;
  inset:84px 0 0;
  z-index:190;
  background:var(--paper);
  padding:34px var(--gut) 40px;
  flex-direction:column;
  gap:4px;
  overflow-y:auto;
}
.mobile-menu.show{ display:flex; }
.mobile-menu a{
  font-family:var(--font-display);
  font-size:2rem;
  font-weight:600;
  letter-spacing:-.02em;
  padding:14px 0;
  border-bottom:1px solid rgba(11,18,32,.09);
  opacity:0;
  transform:translateY(14px);
  animation:mmIn .5s var(--ease-out) forwards;
}
.mobile-menu a:nth-child(1){ animation-delay:.04s; }
.mobile-menu a:nth-child(2){ animation-delay:.09s; }
.mobile-menu a:nth-child(3){ animation-delay:.14s; }
.mobile-menu a:nth-child(4){ animation-delay:.19s; }
.mobile-menu a:nth-child(5){ animation-delay:.24s; }
.mobile-menu a:nth-child(6){ animation-delay:.29s; }
.mobile-menu .btn{
  margin-top:26px;
  font-family:var(--font-body);
  font-size:1rem;
  border-bottom:0;
  animation-delay:.34s;
}
@keyframes mmIn{ to{ opacity:1; transform:none; } }

/* ---------------- buttons --------------------------------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  padding:15px 26px;
  border-radius:var(--r-sm);
  font-size:.95rem;
  font-weight:600;
  letter-spacing:-.005em;
  border:1px solid transparent;
  cursor:pointer;
  position:relative;
  overflow:hidden;
  transition:transform .3s var(--ease-out), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
  isolation:isolate;
  text-align:center;
}
.btn svg{ width:15px; height:15px; flex:none; transition:transform .35s var(--ease-out); }
.btn:hover svg{ transform:translateX(4px); }

.btn-primary{
  background:var(--ember);
  color:#fff;
  box-shadow:0 12px 30px -14px rgba(226,84,43,.9);
}
.btn-primary::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--ink);
  transform:translateY(101%);
  transition:transform .42s var(--ease-out);
  z-index:-1;
}
.btn-primary:hover{ box-shadow:0 16px 34px -16px rgba(11,18,32,.7); }
.btn-primary:hover::before{ transform:translateY(0); }

.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:rgba(11,18,32,.22);
}
.btn-ghost:hover{ border-color:var(--ink); background:var(--ink); color:var(--paper); }

/* ghost button on any dark surface */
.band-ink .btn-ghost,
.hero .btn-ghost,
.cta .btn-ghost,
.demo-wrap .btn-ghost,
.ba-card.good .btn-ghost,
.plan.feature .btn-ghost,
.foot .btn-ghost{
  color:var(--paper);
  border-color:rgba(245,241,233,.32);
}
.band-ink .btn-ghost:hover,
.hero .btn-ghost:hover,
.cta .btn-ghost:hover,
.demo-wrap .btn-ghost:hover,
.ba-card.good .btn-ghost:hover,
.plan.feature .btn-ghost:hover,
.foot .btn-ghost:hover{
  background:var(--paper);
  color:var(--ink);
  border-color:var(--paper);
}

.btn-lg{ padding:18px 32px; font-size:1rem; }
.btn-block{ width:100%; }

/* text link with arrow */
.tlink{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight:600;
  font-size:.95rem;
  color:var(--ember);
  position:relative;
}
.tlink::after{
  content:"";
  position:absolute;
  left:0; bottom:-3px;
  width:100%; height:1.4px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .4s var(--ease-out);
}
.tlink:hover::after{ transform:scaleX(1); transform-origin:left; }
.tlink svg{ width:14px;height:14px; transition:transform .35s var(--ease-out); }
.tlink:hover svg{ transform:translateX(4px); }

/* ---------------- reveal animation ------------------------ */
.rv{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .75s var(--ease-out), transform .75s var(--ease-out);
  will-change:opacity,transform;
}
.rv.in{ opacity:1; transform:none; }
.rv[data-d="1"]{ transition-delay:.08s; }
.rv[data-d="2"]{ transition-delay:.16s; }
.rv[data-d="3"]{ transition-delay:.24s; }
.rv[data-d="4"]{ transition-delay:.32s; }
.rv[data-d="5"]{ transition-delay:.4s; }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .rv{ opacity:1; transform:none; }
}

/* =========================================================
   HOME HERO — switchboard
   ========================================================= */
.hero-home{
  padding-block:clamp(64px,8vw,104px) clamp(120px,14vw,190px);
}
.hero-home .topo{ opacity:1; }
.hero-home .topo path{ opacity:.2; }

.hero-home .hero-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);
  gap:clamp(36px,5vw,76px);
  align-items:center;
}

/* ridge silhouette, ties back to the mark */
.ridge{
  position:absolute;
  left:0; right:0; bottom:0;
  height:clamp(120px,16vw,220px);
  pointer-events:none;
  overflow:hidden;
  z-index:1;
}
.ridge svg{ width:100%; height:100%; display:block; }
.ridge .r3{ fill:#101B2E; }
.ridge .r2{ fill:#16243C; }
.ridge .r1{ fill:#1D2E4B; }

/* kicker */
.kicker{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 26px;
  opacity:0;
  animation:fadeUp .7s var(--ease-out) .08s forwards;
}
.kicker-num{
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:600;
  letter-spacing:-.02em;
  color:var(--ember);
  border:1px solid rgba(226,84,43,.42);
  border-radius:100px;
  padding:4px 12px;
  line-height:1.3;
  flex:none;
}
.kicker-rule{
  width:24px; height:1px;
  background:rgba(245,241,233,.28);
  flex:none;
}
.kicker > span:last-child{
  font-size:.74rem;
  font-weight:600;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--muted-2);
}

/* kinetic headline */
.kinetic{
  font-size:clamp(2.7rem,6vw,4.9rem);
  line-height:1.04;
}
.kinetic .line{
  display:block;
  overflow:hidden;
  padding-bottom:.02em;
}
.kinetic .line > span{
  display:block;
  transform:translateY(105%);
  animation:lineUp .95s var(--ease-out) forwards;
}
.kinetic .line:nth-child(1) > span{ animation-delay:.1s; }
.kinetic .line:nth-child(2) > span{ animation-delay:.2s; }

.cycle{
  display:block;
  position:relative;
  height:1.12em;
  overflow:hidden;
  opacity:0;
  animation:fadeIn .3s linear .5s forwards;
}
.cyc{
  position:absolute;
  left:0; top:0;
  white-space:nowrap;
  font-style:italic;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 40;
  color:var(--ember);
  transform:translateY(115%);
  opacity:0;
  animation:cyc 10.5s var(--ease-out) infinite;
  padding-bottom:.1em;
}
.cyc:nth-child(1){ animation-delay:.55s; }
.cyc:nth-child(2){ animation-delay:4.05s; }
.cyc:nth-child(3){ animation-delay:7.55s; }
@keyframes cyc{
  0%          { transform:translateY(115%); opacity:0; }
  3.5%        { transform:translateY(0);    opacity:1; }
  29%         { transform:translateY(0);    opacity:1; }
  33%         { transform:translateY(-115%);opacity:0; }
  100%        { transform:translateY(-115%);opacity:0; }
}
@keyframes fadeIn{ to{ opacity:1; } }

/* stat rail */
.hero-rail{
  display:flex;
  gap:clamp(22px,3vw,44px);
  margin-top:40px;
  padding-top:26px;
  border-top:1px solid rgba(245,241,233,.14);
  opacity:0;
  animation:fadeUp .8s var(--ease-out) .72s forwards;
}
.hero-rail b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(1.5rem,2.4vw,2rem);
  line-height:1;
  letter-spacing:-.035em;
  color:var(--paper);
  margin-bottom:7px;
}
.hero-rail span{
  font-size:.72rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted-2);
  font-weight:600;
}

/* ---------------- the switchboard ------------------------- */
.board{
  position:relative;
  background:linear-gradient(170deg,#16233A 0%,#0E1729 100%);
  border:1px solid rgba(245,241,233,.13);
  border-radius:var(--r-lg);
  padding:18px;
  box-shadow:0 44px 90px -44px rgba(0,0,0,.95);
  opacity:0;
  animation:fadeUp .9s var(--ease-out) .34s forwards;
}
.board::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:var(--r-lg);
  background:radial-gradient(110% 80% at 82% 0%, rgba(226,84,43,.15), rgba(226,84,43,0) 60%);
  pointer-events:none;
}

.board-head{
  display:flex;
  align-items:center;
  gap:11px;
  padding-bottom:15px;
  margin-bottom:15px;
  border-bottom:1px solid rgba(245,241,233,.1);
  position:relative;
}
.board-live{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.64rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#4ADE80;
  border:1px solid rgba(74,222,128,.3);
  background:rgba(74,222,128,.09);
  padding:5px 10px;
  border-radius:100px;
  flex:none;
}
.board-live i{
  width:6px; height:6px;
  border-radius:50%;
  background:#4ADE80;
  animation:blink 1.8s var(--ease) infinite;
}
@keyframes blink{ 0%,100%{opacity:1} 50%{opacity:.25} }

.board-title{
  font-size:.78rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted-2);
}
.board-count{
  margin-left:auto;
  font-size:.72rem;
  color:var(--muted-2);
  letter-spacing:.04em;
  flex:none;
}
.board-count b{
  font-family:var(--font-display);
  font-size:1.05rem;
  color:var(--paper);
  letter-spacing:-.02em;
  margin-right:4px;
}

/* active call row */
.board-active{
  display:flex;
  align-items:center;
  gap:13px;
  background:rgba(226,84,43,.1);
  border:1px solid rgba(226,84,43,.3);
  border-radius:var(--r-md);
  padding:13px 14px;
  margin-bottom:11px;
  position:relative;
}
.wave{
  display:flex;
  align-items:center;
  gap:2.5px;
  height:26px;
  flex:none;
}
.wave i{
  width:2.5px;
  border-radius:2px;
  background:var(--ember-soft);
  height:20%;
  animation:wv 1.1s var(--ease) infinite;
}
.wave i:nth-child(1){ animation-delay:0s }    .wave i:nth-child(2){ animation-delay:.07s }
.wave i:nth-child(3){ animation-delay:.14s }  .wave i:nth-child(4){ animation-delay:.21s }
.wave i:nth-child(5){ animation-delay:.28s }  .wave i:nth-child(6){ animation-delay:.35s }
.wave i:nth-child(7){ animation-delay:.42s }  .wave i:nth-child(8){ animation-delay:.49s }
.wave i:nth-child(9){ animation-delay:.56s }  .wave i:nth-child(10){ animation-delay:.63s }
.wave i:nth-child(11){ animation-delay:.7s }  .wave i:nth-child(12){ animation-delay:.77s }
.wave i:nth-child(13){ animation-delay:.84s } .wave i:nth-child(14){ animation-delay:.91s }
@keyframes wv{
  0%,100%{ height:18%; }
  50%    { height:100%; }
}
.board-active-txt{ min-width:0; }
.board-active-txt b{
  display:block;
  font-size:.9rem;
  font-weight:600;
  color:var(--paper);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.board-active-txt span{
  font-size:.74rem;
  color:#C09A8C;
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.board-chip{
  margin-left:auto;
  flex:none;
  font-size:.63rem;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  padding:5px 9px;
  border-radius:100px;
  display:inline-flex;
  align-items:center;
  gap:5px;
  white-space:nowrap;
}
.board-chip svg{ width:11px; height:11px; }
.board-chip.live{ color:#F7B3A0; background:rgba(226,84,43,.2); border:1px solid rgba(226,84,43,.4); }
.board-chip.ok{ color:#8DECB0; background:rgba(74,222,128,.12); border:1px solid rgba(74,222,128,.28); }
.board-chip.urgent{ color:#FCD34D; background:rgba(252,211,77,.12); border:1px solid rgba(252,211,77,.3); }

/* answered rows */
.board-rows{ display:flex; flex-direction:column; gap:7px; }
.brow{
  display:flex;
  align-items:center;
  gap:13px;
  padding:11px 14px;
  border-radius:var(--r-md);
  background:rgba(245,241,233,.045);
  border:1px solid rgba(245,241,233,.07);
  opacity:0;
  transform:translateY(12px);
  animation:rowIn .6s var(--ease-out) forwards;
}
@keyframes rowIn{ to{ opacity:1; transform:none; } }
.bt{
  font-size:.7rem;
  color:var(--muted-2);
  font-variant-numeric:tabular-nums;
  flex:none;
  width:58px;
}
.bd{ min-width:0; }
.bd b{
  display:block;
  font-size:.86rem;
  font-weight:600;
  color:#DCE3EC;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.bd > span{
  font-size:.73rem;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:block;
}

.board-foot{
  display:flex;
  align-items:center;
  gap:9px;
  margin-top:15px;
  padding-top:14px;
  border-top:1px solid rgba(245,241,233,.1);
  font-size:.78rem;
  color:var(--muted-2);
}

/* =========================================================
   HERO (shared / inner pages)
   ========================================================= */
.hero{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden;
  padding-block:clamp(74px,11vw,132px) clamp(64px,8vw,104px);
}
.hero .topo{ color:var(--paper); opacity:.85; }

.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:clamp(32px,5vw,72px);
  align-items:center;
  position:relative;
  z-index:2;
}

.hero h1{ color:var(--paper); line-height:1.08; }
.hero h1 .line{
  display:block;
  overflow:hidden;
  /* room so descenders and italic overhang are never clipped */
  padding:.06em .12em .14em 0;
  margin-bottom:-.14em;
}
.hero h1 .line:last-child{ margin-bottom:0; }
.hero h1 .line > span{
  display:block;
  transform:translateY(105%);
  animation:lineUp .95s var(--ease-out) forwards;
}
.hero h1 .line:nth-child(1) > span{ animation-delay:.06s; }
.hero h1 .line:nth-child(2) > span{ animation-delay:.16s; }
.hero h1 .line:nth-child(3) > span{ animation-delay:.26s; }
@keyframes lineUp{ to{ transform:none; } }

.hero-sub{
  margin-top:28px;
  max-width:50ch;
  color:#B9C3D2;
  font-size:clamp(1.04rem,1.4vw,1.18rem);
  opacity:0;
  animation:fadeUp .8s var(--ease-out) .42s forwards;
}
.hero-actions{
  margin-top:36px;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  opacity:0;
  animation:fadeUp .8s var(--ease-out) .54s forwards;
}
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:none; } }

.hero-note{
  margin-top:24px;
  font-size:.86rem;
  color:var(--muted-2);
  display:flex;
  align-items:center;
  gap:9px;
  opacity:0;
  animation:fadeUp .8s var(--ease-out) .64s forwards;
}
.hero-note svg{
  width:16px;
  height:16px;
  flex:none;
  color:var(--ember-soft);
}
.hero-note b{ color:var(--paper); font-weight:600; }
.pulse-dot{
  width:8px;height:8px;border-radius:50%;
  background:#4ADE80;
  position:relative;
  flex:none;
}
.pulse-dot::after{
  content:"";
  position:absolute; inset:0;
  border-radius:50%;
  background:#4ADE80;
  animation:pulse 2.1s var(--ease) infinite;
}
@keyframes pulse{
  0%{ transform:scale(1); opacity:.75; }
  75%,100%{ transform:scale(3.2); opacity:0; }
}

/* hero visual: live call card */
.hero-visual{
  position:relative;
  opacity:0;
  animation:fadeUp .9s var(--ease-out) .38s forwards;
}

.callcard{
  background:linear-gradient(168deg,#16233A 0%,#101A2B 100%);
  border:1px solid rgba(245,241,233,.11);
  border-radius:var(--r-lg);
  padding:24px;
  box-shadow:0 40px 80px -40px rgba(0,0,0,.9);
  position:relative;
  overflow:hidden;
}
.callcard::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(120% 90% at 18% 8%, rgba(226,84,43,.17), rgba(226,84,43,0) 62%);
  pointer-events:none;
}
.callcard-top{
  display:flex;
  align-items:center;
  gap:12px;
  padding-bottom:16px;
  border-bottom:1px solid rgba(245,241,233,.1);
  margin-bottom:16px;
  position:relative;
}
.avatar svg{ width:19px; height:19px; }
.avatar{
  width:40px;height:40px;
  border-radius:50%;
  background:linear-gradient(140deg,var(--ember),#B33A17);
  display:grid;place-items:center;
  font-weight:700;font-size:.85rem;color:#fff;
  flex:none;
  font-family:var(--font-body);
}
.callcard-top b{ display:block; font-size:.92rem; color:var(--paper); font-weight:600; }
.callcard-top span{ font-size:.76rem; color:var(--muted-2); }
.livetag{
  margin-left:auto;
  font-size:.64rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:700;
  color:#4ADE80;
  border:1px solid rgba(74,222,128,.3);
  background:rgba(74,222,128,.09);
  padding:5px 9px;
  border-radius:100px;
  display:flex; align-items:center; gap:6px;
  flex:none;
}

.transcript{
  display:flex;
  flex-direction:column;
  gap:11px;
  min-height:210px;
  position:relative;
}
.bubble{
  max-width:86%;
  padding:11px 14px;
  border-radius:14px;
  font-size:.87rem;
  line-height:1.5;
  opacity:0;
  transform:translateY(10px);
  animation:bubIn .5s var(--ease-out) forwards;
}
.bubble.ai{
  background:rgba(245,241,233,.07);
  border:1px solid rgba(245,241,233,.09);
  color:#DCE3EC;
  align-self:flex-start;
  border-bottom-left-radius:5px;
}
.bubble.caller{
  background:var(--ember);
  color:#fff;
  align-self:flex-end;
  border-bottom-right-radius:5px;
}
@keyframes bubIn{ to{ opacity:1; transform:none; } }

.bubble .who{
  display:block;
  font-size:.6rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.6;
  margin-bottom:4px;
  font-weight:600;
}

.typing{
  display:inline-flex; gap:4px; align-items:center; padding:4px 0;
}
.typing i{
  width:6px;height:6px;border-radius:50%;
  background:var(--muted-2);
  animation:dot 1.3s infinite;
}
.typing i:nth-child(2){ animation-delay:.16s; }
.typing i:nth-child(3){ animation-delay:.32s; }
@keyframes dot{
  0%,60%,100%{ transform:translateY(0); opacity:.4; }
  30%{ transform:translateY(-4px); opacity:1; }
}

.booked-chip{
  margin-top:16px;
  display:flex;
  align-items:center;
  gap:10px;
  background:rgba(74,222,128,.1);
  border:1px solid rgba(74,222,128,.26);
  color:#8DECB0;
  padding:11px 14px;
  border-radius:var(--r-md);
  font-size:.83rem;
  font-weight:600;
  opacity:0;
  transform:translateY(10px);
  animation:bubIn .55s var(--ease-out) 5.4s forwards;
}
.booked-chip svg{ width:16px;height:16px;flex:none; }

/* stat strip under the call card (no overlap) */
.card-stats{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  margin-top:14px;
  background:rgba(245,241,233,.11);
  border:1px solid rgba(245,241,233,.11);
  border-radius:var(--r-md);
  overflow:hidden;
}
.card-stats div{
  background:var(--ink-2);
  padding:15px 14px;
  text-align:center;
}
.card-stats b{
  display:block;
  font-family:var(--font-display);
  font-size:1.5rem;
  line-height:1;
  letter-spacing:-.03em;
  color:var(--paper);
  margin-bottom:6px;
}
.card-stats span{
  font-size:.68rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--muted-2);
  font-weight:600;
}

/* ---------------- marquee --------------------------------- */
.marquee{
  background:var(--ink-2);
  color:var(--paper);
  border-block:1px solid rgba(245,241,233,.09);
  padding:17px 0;
  overflow:hidden;
  white-space:nowrap;
  position:relative;
}
.marquee-track{
  display:inline-flex;
  align-items:center;
  gap:44px;
  animation:slide 34s linear infinite;
  will-change:transform;
}
.marquee:hover .marquee-track{ animation-play-state:paused; }
.marquee span{
  font-size:.78rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:600;
  color:#9BA7B8;
  display:inline-flex;
  align-items:center;
  gap:44px;
}
.marquee span::after{
  content:"";
  width:5px;height:5px;border-radius:50%;
  background:var(--ember);
  display:inline-block;
}
@keyframes slide{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* ---------------- generic sections ------------------------ */
.sec-head{
  max-width:62ch;
  margin-bottom:clamp(40px,5vw,64px);
}
.sec-head.center{ margin-inline:auto; text-align:center; }
.sec-head.center .eyebrow{ justify-content:center; }
.sec-head p{ margin-top:20px; }

/* two-col split */
.split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(34px,5vw,80px);
  align-items:center;
}
.split.rev > *:first-child{ order:2; }
.split-wide{ grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:start; }

/* three-up grid */
.trio{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(20px,2.4vw,30px);
}

/* ---------------- cards ----------------------------------- */
.card{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.1);
  border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  position:relative;
  overflow:hidden;
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out), border-color .45s var(--ease);
}
.card:hover{
  transform:translateY(-6px);
  box-shadow:0 34px 60px -34px rgba(11,18,32,.42);
  border-color:rgba(11,18,32,.2);
}
.card .num{
  font-family:var(--font-display);
  font-size:.9rem;
  font-weight:600;
  color:var(--ember);
  letter-spacing:.04em;
  display:block;
  margin-bottom:18px;
}
.card h3{ margin-bottom:12px; }
.card p{ color:var(--muted); font-size:.96rem; }

/* service duo */
.duo{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(20px,2.4vw,30px);
}
.svc{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.11);
  border-radius:var(--r-lg);
  padding:clamp(28px,3.4vw,44px);
  display:flex;
  flex-direction:column;
  position:relative;
  overflow:hidden;
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease-out);
}
.svc::after{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:3px;
  background:linear-gradient(90deg,var(--ember),var(--clay));
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .6s var(--ease-out);
}
.svc:hover{ transform:translateY(-7px); box-shadow:0 40px 70px -40px rgba(11,18,32,.45); }
.svc:hover::after{ transform:scaleX(1); }
.svc-ico{
  width:52px;height:52px;
  border-radius:13px;
  background:var(--ink);
  color:var(--paper);
  display:grid;place-items:center;
  margin-bottom:24px;
}
.svc-ico svg{ width:24px;height:24px; }
.svc h3{ margin-bottom:12px; }
.svc p{ color:var(--muted); }
.svc ul{
  list-style:none;
  padding:0;
  margin:22px 0 28px;
  display:flex;
  flex-direction:column;
  gap:11px;
}
.svc ul li{
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-size:.94rem;
  color:var(--ink-3);
}
.svc ul li svg{ width:17px;height:17px;color:var(--ember);flex:none;margin-top:3px; }
.svc .price{
  margin-top:auto;
  padding-top:22px;
  border-top:1px solid rgba(11,18,32,.1);
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:20px;
}
.svc .price b{
  font-family:var(--font-display);
  font-size:2.1rem;
  letter-spacing:-.03em;
  font-weight:600;
}
.svc .price span{ font-size:.86rem; color:var(--muted); }

/* ---------------- stats ----------------------------------- */
.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:clamp(18px,2.4vw,32px);
}
.stat{
  border-top:1px solid rgba(245,241,233,.18);
  padding-top:22px;
}
.band-paper2 .stat, .band:not(.band-ink) .stat{ border-top-color:rgba(11,18,32,.14); }
.stat b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(2.3rem,4.4vw,3.4rem);
  line-height:1;
  letter-spacing:-.035em;
  font-weight:600;
  margin-bottom:10px;
}
.stat span{ font-size:.9rem; color:var(--muted); line-height:1.45; display:block; }
.band-ink .stat span{ color:var(--muted-2); }

/* ---------------- pricing --------------------------------- */
.plans{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.2vw,26px);
  align-items:stretch;
}
.plan{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.12);
  border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  display:flex;
  flex-direction:column;
  position:relative;
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease-out);
}
.plan:hover{ transform:translateY(-6px); box-shadow:0 36px 64px -36px rgba(11,18,32,.4); }
.plan.feature{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
  box-shadow:0 34px 66px -34px rgba(11,18,32,.6);
}
.plan.feature h3{ color:var(--paper); }
.plan.feature .plan-price b{ color:var(--paper); }
.plan.feature li{ color:#C3CCD9; }
.plan-tag{
  position:absolute;
  top:-13px; left:50%;
  transform:translateX(-50%);
  background:var(--ember);
  color:#fff;
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:6px 14px;
  border-radius:100px;
  white-space:nowrap;
}
.plan h3{ margin-bottom:8px; }
.plan > p{ font-size:.92rem; color:var(--muted); min-height:44px; }
.plan.feature > p{ color:var(--muted-2); }
.plan-price{
  display:flex;
  align-items:baseline;
  gap:7px;
  margin:22px 0 6px;
}
.plan-price b{
  font-family:var(--font-display);
  font-size:clamp(2.6rem,4vw,3.3rem);
  line-height:1;
  letter-spacing:-.04em;
  font-weight:600;
}
.plan-price span{ font-size:.9rem; color:var(--muted); }
.plan .save{
  font-size:.8rem;
  color:var(--ember);
  font-weight:600;
  margin-bottom:20px;
}
.plan ul{
  list-style:none;
  padding:0;
  margin:22px 0 30px;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.plan li{
  display:flex;
  gap:11px;
  align-items:flex-start;
  font-size:.93rem;
  color:var(--ink-3);
  line-height:1.5;
}
.plan li svg{ width:16px;height:16px;flex:none;margin-top:3.5px;color:var(--ember); }
.plan .btn{ margin-top:auto; }

/* ---------------- demo form ------------------------------- */
.demo-wrap{
  background:var(--ink);
  color:var(--paper);
  border-radius:var(--r-lg);
  padding:clamp(30px,4vw,54px);
  position:relative;
  overflow:hidden;
}
.demo-wrap .topo{ color:var(--paper); }
.demo-inner{ position:relative; z-index:2; }
.demo-form{
  display:flex;
  gap:12px;
  margin-top:26px;
  max-width:520px;
}
.demo-form input{
  flex:1;
  min-width:0;
  background:rgba(245,241,233,.06);
  border:1px solid rgba(245,241,233,.2);
  border-radius:var(--r-sm);
  padding:16px 18px;
  color:var(--paper);
  font-family:inherit;
  font-size:1rem;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.demo-form input::placeholder{ color:#7C8798; }
.demo-form input:focus{
  outline:none;
  border-color:var(--ember);
  background:rgba(245,241,233,.09);
}
.demo-reassure{
  margin-top:14px;
  font-size:.82rem;
  color:var(--muted-2);
  display:flex;
  align-items:center;
  gap:8px;
}
.demo-reassure svg{ width:14px;height:14px;flex:none;color:#4ADE80; }
.demo-msg,
.demo-err{
  margin-top:16px;
  font-size:.9rem;
  font-weight:600;
  display:none;
  align-items:flex-start;
  gap:9px;
  max-width:52ch;
  line-height:1.45;
}
.demo-msg{ color:#8DECB0; }
.demo-err{ color:#FCA5A5; }
.demo-msg.show,
.demo-err.show{ display:flex; }
.demo-msg svg,
.demo-err svg{ width:17px; height:17px; flex:none; margin-top:2px; }

.demo-form input.invalid{
  border-color:#DC2626;
  background:rgba(220,38,38,.08);
}

/* ---------------- demo hero (AI receptionist) ------------- */
.demo-form-lg{ margin-top:30px; max-width:540px; }
.demo-form-lg input{ padding:18px 20px; font-size:1.05rem; }

.demo-trust{
  display:flex;
  flex-wrap:wrap;
  gap:10px 22px;
  margin-top:26px;
}
.demo-trust span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.83rem;
  color:var(--muted-2);
  font-weight:500;
}
.demo-trust svg{ width:15px; height:15px; color:var(--ember-soft); flex:none; }

/* mid-page demo callout */
.demo-strip{
  background:var(--ember);
  color:#fff;
  border-radius:var(--r-lg);
  padding:clamp(26px,3.4vw,42px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  flex-wrap:wrap;
  box-shadow:0 30px 60px -30px rgba(226,84,43,.7);
}
.demo-strip h3{ color:#fff; max-width:24ch; margin-bottom:8px; }
.demo-strip p{ color:rgba(255,255,255,.86); font-size:.95rem; max-width:46ch; }
.demo-strip .btn{
  background:#fff;
  color:var(--ink);
  border-color:#fff;
  flex:none;
}
.demo-strip .btn::before{ background:var(--ink); }
.demo-strip .btn:hover{ color:#fff; }

/* ---------------- calendar mock --------------------------- */
.calmock{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.12);
  border-radius:var(--r-lg);
  padding:24px;
  box-shadow:0 30px 60px -34px rgba(11,18,32,.4);
}
.calmock-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:20px;
}
.calmock-top b{ font-size:1rem; font-weight:600; }
.calmock-top span{ font-size:.78rem; color:var(--muted); }
.calgrid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:8px;
}
.calcol{ display:flex; flex-direction:column; gap:7px; }
.calcol > i{
  font-style:normal;
  font-size:.66rem;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
  text-align:center;
  font-weight:600;
  margin-bottom:3px;
}
.slot{
  height:30px;
  border-radius:5px;
  background:rgba(11,18,32,.055);
  border:1px solid rgba(11,18,32,.07);
  display:grid;
  place-items:center;
  font-size:.63rem;
  color:var(--muted);
  font-weight:600;
  transition:background .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease), transform .5s var(--ease-out);
}
.slot.filled{
  background:var(--ember);
  border-color:var(--ember);
  color:#fff;
  transform:scale(1.03);
}
.slot.filled.alt{ background:var(--ink); border-color:var(--ink); }

/* ---------------- before/after ---------------------------- */
.ba{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(16px,2vw,24px);
}
.ba-card{
  border-radius:var(--r-lg);
  padding:clamp(24px,3vw,34px);
  border:1px solid rgba(11,18,32,.12);
  background:var(--paper);
  position:relative;
  overflow:hidden;
}
.ba-card.bad{ background:var(--paper-2); }
.ba-card.good{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}
.ba-label{
  font-size:.68rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
  margin-bottom:18px;
  display:block;
}
.ba-card.good .ba-label{ color:#4ADE80; }
.ba-rows{ display:flex; flex-direction:column; gap:10px; }
.ba-row{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:.9rem;
  padding:11px 13px;
  border-radius:9px;
  background:rgba(11,18,32,.045);
}
.ba-card.good .ba-row{ background:rgba(245,241,233,.06); color:#D3DAE4; }
.ba-row svg{ width:16px;height:16px;flex:none; }
.ba-row.miss svg{ color:#DC2626; }
.ba-row.win svg{ color:#4ADE80; }
.ba-row b{ font-weight:600; }
.ba-foot{
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid rgba(11,18,32,.1);
  font-size:.86rem;
  color:var(--muted);
}
.ba-card.good .ba-foot{ border-top-color:rgba(245,241,233,.14); color:var(--muted-2); }
.ba-foot b{ color:var(--ink); font-size:1.05rem; }
.ba-card.good .ba-foot b{ color:#4ADE80; }

/* ---------------- process steps --------------------------- */
.steps{ display:flex; flex-direction:column; }
.step{
  display:grid;
  grid-template-columns:88px 1fr;
  gap:clamp(18px,3vw,44px);
  padding:clamp(26px,3vw,38px) 0;
  border-top:1px solid rgba(11,18,32,.13);
  align-items:start;
  transition:padding-left .4s var(--ease-out);
}
.step:last-child{ border-bottom:1px solid rgba(11,18,32,.13); }
.step:hover{ padding-left:10px; }
.band-ink .step{ border-color:rgba(245,241,233,.16); }
.step-n{
  font-family:var(--font-display);
  font-size:clamp(2rem,3.4vw,2.9rem);
  font-weight:600;
  letter-spacing:-.04em;
  color:var(--ember);
  line-height:1;
}
.step h3{ margin-bottom:10px; }
.step p{ color:var(--muted); max-width:62ch; }
.band-ink .step p{ color:#A9B4C3; }

/* ---------------- kill grid (website page) ---------------- */
.killgrid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:rgba(11,18,32,.13);
  border:1px solid rgba(11,18,32,.13);
  border-radius:var(--r-lg);
  overflow:hidden;
}
.kill{
  background:var(--paper);
  padding:clamp(24px,2.6vw,34px);
}
.kill b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(2.1rem,3.4vw,2.9rem);
  line-height:1;
  letter-spacing:-.04em;
  color:var(--ember);
  margin-bottom:14px;
}
.kill span{
  font-size:.93rem;
  color:var(--ink-3);
  line-height:1.5;
  display:block;
}

/* ---------------- spec list (website page) ---------------- */
.spec{ border-top:1px solid rgba(11,18,32,.14); }
.spec-row{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:clamp(20px,4vw,56px);
  padding:clamp(22px,2.6vw,30px) 0;
  border-bottom:1px solid rgba(11,18,32,.14);
  align-items:baseline;
}
.spec-k{
  font-size:.72rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  font-weight:700;
  color:var(--muted);
}
.spec-v b{
  display:block;
  font-size:clamp(1.05rem,1.5vw,1.2rem);
  font-weight:600;
  letter-spacing:-.012em;
  margin-bottom:8px;
}
.spec-v p{
  color:var(--muted);
  font-size:.95rem;
  max-width:64ch;
}

/* ---------------- comparison (website page) --------------- */
.vs{ display:flex; flex-direction:column; gap:12px; }
.vs-row{
  border:1px solid rgba(11,18,32,.14);
  border-radius:var(--r-md);
  padding:20px 22px;
  background:var(--paper);
}
.vs-row > div{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.vs-row b{ font-size:1rem; font-weight:600; letter-spacing:-.01em; }
.vs-row > div span{
  font-size:.8rem;
  color:var(--muted);
  font-weight:600;
  white-space:nowrap;
}
.vs-row p{ font-size:.92rem; color:var(--muted); }
.vs-row.hi{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper);
}
.vs-row.hi b{ color:var(--paper); }
.vs-row.hi > div span{ color:var(--ember-soft); }
.vs-row.hi p{ color:#B9C3D2; }

/* ---------------- about feature rows ---------------------- */
.feature-rows{ display:flex; flex-direction:column; gap:clamp(48px,6vw,88px); }
.feature-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(30px,5vw,72px);
  align-items:center;
}
.feature-row.rev .feature-art{ order:2; }
.feature-art{ position:relative; }
.scene{
  width:100%;
  height:auto;
  display:block;
  border-radius:var(--r-lg);
  box-shadow:0 34px 64px -36px rgba(11,18,32,.5);
}
.feature-txt h3{ margin-bottom:14px; }
.feature-txt > p{ color:var(--muted); }

/* proof / results strip */
.proof{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:rgba(245,241,233,.12);
  border:1px solid rgba(245,241,233,.12);
  border-radius:var(--r-lg);
  overflow:hidden;
}
.band:not(.band-ink) .proof{
  background:rgba(11,18,32,.12);
  border-color:rgba(11,18,32,.12);
}
.proof div{
  background:var(--ink);
  padding:clamp(22px,2.6vw,32px);
}
.band:not(.band-ink) .proof div{ background:var(--paper); }
.proof b{
  display:block;
  font-family:var(--font-display);
  font-size:clamp(1.9rem,3vw,2.5rem);
  line-height:1;
  letter-spacing:-.035em;
  color:var(--ember);
  margin-bottom:12px;
}
.proof span{
  display:block;
  font-size:.93rem;
  line-height:1.5;
  color:#A9B4C3;
}
.band:not(.band-ink) .proof span{ color:var(--ink-3); }

/* ---------------- contact funnel -------------------------- */
.funnel-steps{
  list-style:none;
  margin:0 0 clamp(22px,3vw,32px);
  padding:0;
  display:flex;
  align-items:center;
  gap:clamp(10px,2.4vw,26px);
  flex-wrap:wrap;
}
.funnel-steps li{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.82rem;
  font-weight:600;
  letter-spacing:.01em;
  color:var(--muted);
  transition:color .3s var(--ease);
}
.funnel-steps li span{
  width:26px; height:26px;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:.75rem;
  font-weight:700;
  border:1px solid rgba(11,18,32,.2);
  color:var(--muted);
  flex:none;
  transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);
}
.funnel-steps li + li::before{
  content:"";
  width:clamp(14px,3vw,34px);
  height:1px;
  background:rgba(11,18,32,.18);
  margin-right:clamp(1px,1vw,8px);
}
.funnel-steps li.is-active{ color:var(--ink); }
.funnel-steps li.is-active span{
  background:var(--ember);
  border-color:var(--ember);
  color:#fff;
}
.funnel-steps li.is-done{ color:var(--ink-3); }
.funnel-steps li.is-done span{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper);
}

.funnel-panel[hidden]{ display:none !important; }
.funnel-panel{ animation:panelIn .45s var(--ease-out); }
@keyframes panelIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }

.funnel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
  flex-wrap:wrap;
}
.funnel-head h3{ margin-bottom:6px; }
.funnel-head p{ color:var(--muted); font-size:.95rem; }
.funnel-back{
  background:none;
  border:1px solid rgba(11,18,32,.2);
  border-radius:var(--r-sm);
  padding:9px 15px;
  font-size:.85rem;
  font-weight:600;
  color:var(--ink-3);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:none;
  transition:border-color .25s var(--ease), color .25s var(--ease);
}
.funnel-back svg{ width:14px; height:14px; transform:rotate(180deg); }
.funnel-back:hover{ border-color:var(--ink); color:var(--ink); }

/* step 3 */
.funnel-done{ text-align:center; }
.done-mark{
  width:56px; height:56px;
  border-radius:50%;
  background:rgba(27,122,75,.12);
  color:#1B7A4B;
  display:grid;
  place-items:center;
  margin:0 auto 20px;
}
.done-mark svg{ width:26px; height:26px; }
.funnel-done h3{ margin-bottom:10px; }
.funnel-done > p{ color:var(--muted); max-width:46ch; margin-inline:auto; }
.done-next{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:rgba(11,18,32,.12);
  border:1px solid rgba(11,18,32,.12);
  border-radius:var(--r-md);
  overflow:hidden;
  margin:28px 0 26px;
  text-align:left;
}
.done-next div{ background:var(--paper); padding:18px 16px; }
.done-next b{
  display:block;
  font-family:var(--font-display);
  font-size:1.1rem;
  color:var(--ember);
  margin-bottom:7px;
  letter-spacing:-.02em;
}
.done-next span{ font-size:.88rem; color:var(--ink-3); line-height:1.45; display:block; }

/* contact strip under the funnel */
.contact-strip{
  display:flex;
  flex-wrap:wrap;
  gap:14px clamp(20px,3vw,40px);
  margin-top:clamp(26px,3vw,36px);
  padding-top:24px;
  border-top:1px solid rgba(11,18,32,.12);
}
.contact-strip div{
  display:flex;
  align-items:center;
  gap:9px;
  font-size:.9rem;
  color:var(--muted);
}
.contact-strip svg{ width:16px; height:16px; color:var(--ember); flex:none; }
.contact-strip a{ color:var(--ink-3); font-weight:500; }
.contact-strip a:hover{ color:var(--ember); }

@media (max-width:720px){
  .funnel-steps li{ font-size:.74rem; gap:7px; }
  .funnel-steps li span{ width:23px; height:23px; font-size:.68rem; }
  .done-next{ grid-template-columns:minmax(0,1fr); }
  .funnel-back{ width:100%; justify-content:center; }
}

/* ---------------- booking page ---------------------------- */
.cal-wrap{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.12);
  border-radius:var(--r-lg);
  padding:clamp(10px,1.4vw,18px);
  box-shadow:0 34px 64px -40px rgba(11,18,32,.34);
  min-height:560px;
}
.cal-embed{
  width:100%;
  min-height:540px;
  overflow:auto;
  border-radius:var(--r-md);
}
.cal-wrap.is-fallback{ min-height:0; }
.cal-fallback{
  padding:clamp(28px,4vw,48px) 20px;
  text-align:center;
  color:var(--muted);
  font-size:.98rem;
  max-width:46ch;
  margin-inline:auto;
}
.cal-fallback a{ color:var(--ember); font-weight:600; }
.cal-fallback a:hover{ text-decoration:underline; }

@media (max-width:720px){
  .cal-wrap{ min-height:480px; padding:8px; }
  .cal-embed{ min-height:460px; }
}

/* ---------------- legal pages ----------------------------- */
.legal{ max-width:70ch; }
.legal-sec{ margin-bottom:clamp(30px,3.4vw,44px); }
.legal-sec h3{
  font-size:clamp(1.15rem,1.8vw,1.4rem);
  margin-bottom:14px;
}
.legal-sec p{
  color:var(--muted);
  font-size:.98rem;
  line-height:1.72;
  margin-bottom:1em;
}
.legal-sec a{ color:var(--ember); font-weight:500; }
.legal-sec a:hover{ text-decoration:underline; }

/* ---------------- faq ------------------------------------- */
.faq{ border-top:1px solid rgba(11,18,32,.13); }
.faq-item{ border-bottom:1px solid rgba(11,18,32,.13); }
.faq-q{
  width:100%;
  background:none;
  border:0;
  text-align:left;
  padding:26px 44px 26px 0;
  font-size:clamp(1.02rem,1.5vw,1.16rem);
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  position:relative;
  letter-spacing:-.01em;
  line-height:1.4;
}
.faq-q::after{
  content:"";
  position:absolute;
  right:6px; top:50%;
  width:13px;height:13px;
  border-right:2px solid var(--ember);
  border-bottom:2px solid var(--ember);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .38s var(--ease-out);
}
.faq-item.open .faq-q::after{ transform:translateY(-25%) rotate(-135deg); }
.faq-a{
  max-height:0;
  overflow:hidden;
  transition:max-height .5s var(--ease-out), opacity .4s var(--ease);
  opacity:0;
}
.faq-item.open .faq-a{ opacity:1; }
.faq-a p{ padding:0 40px 26px 0; color:var(--muted); }

/* ---------------- CTA band -------------------------------- */
.cta{
  background:var(--ink);
  color:var(--paper);
  position:relative;
  overflow:hidden;
  text-align:center;
}
.cta .topo{ color:var(--paper); }
.cta-in{ position:relative; z-index:2; }
.cta h2{ color:var(--paper); max-width:20ch; margin-inline:auto; }
.cta p{ margin:22px auto 34px; max-width:52ch; color:#B9C3D2; }
.cta-actions{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* ---------------- footer ---------------------------------- */
.foot{
  background:var(--ink-2);
  color:var(--paper);
  padding-block:clamp(52px,6vw,76px) 34px;
}
.foot-grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:clamp(28px,4vw,52px);
  padding-bottom:44px;
  border-bottom:1px solid rgba(245,241,233,.13);
}
.foot .brand{ color:var(--paper); margin-bottom:18px; }
.foot .brand svg{ color:var(--paper); }
.foot .brand span small{ color:var(--muted-2); }
.foot-about{ font-size:.92rem; color:#A9B4C3; max-width:38ch; }
.foot h4{
  font-size:.7rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted-2);
  margin-bottom:18px;
  font-weight:600;
}
.foot ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.foot ul a{
  font-size:.94rem;
  color:#C3CCD9;
  transition:color .25s var(--ease), transform .25s var(--ease-out);
  display:inline-block;
}
.foot ul a:hover{ color:var(--ember); transform:translateX(3px); }
.foot-bot{
  padding-top:26px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-size:.83rem;
  color:var(--muted-2);
}

/* ---------------- contact form ---------------------------- */
.form-card{
  background:var(--paper);
  border:1px solid rgba(11,18,32,.12);
  border-radius:var(--r-lg);
  padding:clamp(26px,3.4vw,42px);
}
.field{ margin-bottom:20px; }
.field label{
  display:block;
  font-size:.78rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--muted);
  margin-bottom:9px;
}
.field input,.field textarea,.field select{
  width:100%;
  background:rgba(11,18,32,.03);
  border:1px solid rgba(11,18,32,.16);
  border-radius:var(--r-sm);
  padding:14px 16px;
  font-family:inherit;
  font-size:1rem;
  color:var(--ink);
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.field textarea{ min-height:132px; resize:vertical; }
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none;
  border-color:var(--ember);
  background:#fff;
}
.field-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; }

.field input.invalid,
.field textarea.invalid,
.field select.invalid{
  border-color:#DC2626;
  background:rgba(220,38,38,.05);
}
.field-err{
  display:block;
  min-height:1px;
  font-size:.8rem;
  font-weight:500;
  color:#B91C1C;
  margin-top:7px;
  line-height:1.4;
}
.field-err:empty{ display:none; }

.form-note{
  display:none;
  margin-top:16px;
  font-size:.9rem;
  font-weight:600;
  line-height:1.45;
}
.form-note.show{ display:block; }
.form-note.ok{ color:#1B7A4B; }
.form-note.err{ color:#B91C1C; }

.contact-side{ display:flex; flex-direction:column; gap:22px; }
.contact-item{
  display:flex;
  gap:15px;
  align-items:flex-start;
  padding-bottom:22px;
  border-bottom:1px solid rgba(11,18,32,.12);
}
.contact-item:last-child{ border-bottom:0; }
.contact-item svg{ width:19px;height:19px;color:var(--ember);flex:none;margin-top:4px; }
.contact-item b{ display:block; font-size:.95rem; margin-bottom:3px; }
.contact-item span,.contact-item a{ font-size:.93rem; color:var(--muted); }
.contact-item a:hover{ color:var(--ember); }

/* ---------------- misc ------------------------------------ */
.pill-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.pill{
  font-size:.82rem;
  font-weight:500;
  padding:8px 15px;
  border-radius:100px;
  border:1px solid rgba(11,18,32,.16);
  color:var(--ink-3);
  background:var(--paper);
}
.band-ink .pill{ border-color:rgba(245,241,233,.2); color:#C3CCD9; background:transparent; }

.rule{ height:1px; background:rgba(11,18,32,.12); border:0; margin:0; }

.big-quote{
  font-family:var(--font-display);
  font-size:clamp(1.5rem,3vw,2.3rem);
  line-height:1.28;
  letter-spacing:-.022em;
  font-weight:500;
  max-width:26ch;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1080px){
  .foot-grid{ grid-template-columns:1fr 1fr 1fr; }
  .foot-grid > div:first-child{ grid-column:1 / -1; }
}

@media (max-width:960px){
  .nav-links{ display:none; }
  .nav-cta{ display:none; }
  .burger{ display:block; }
  .hero-grid{ grid-template-columns:minmax(0,1fr); gap:52px; }
  .hero-home .hero-grid{ grid-template-columns:minmax(0,1fr); }
  .hero-visual{ max-width:560px; }
  .hero-home{ padding-bottom:clamp(100px,18vw,150px); }
  .split,
  .split-wide{ grid-template-columns:minmax(0,1fr); gap:40px; }
  .split.rev > *:first-child{ order:0; }
  .duo{ grid-template-columns:minmax(0,1fr); }
  .trio{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .plans{ grid-template-columns:1fr; max-width:520px; margin-inline:auto; }
  .plan.feature{ order:-1; }
  .stats{ grid-template-columns:1fr 1fr; gap:26px; }
  .ba{ grid-template-columns:1fr; }
  .killgrid{ grid-template-columns:1fr 1fr; }
  .feature-row{ grid-template-columns:minmax(0,1fr); gap:28px; }
  .feature-row.rev .feature-art{ order:0; }
  .proof{ grid-template-columns:1fr; }
  .demo-strip{ flex-direction:column; align-items:flex-start; }
  .demo-strip .btn{ width:100%; }
}

@media (max-width:720px){
  :root{ --gut:20px; }
  body{ font-size:16px; }
  .band{ padding-block:clamp(56px,11vw,84px); }
  .step{ grid-template-columns:1fr; gap:12px; }
  .step-n{ font-size:1.6rem; }
  .demo-form{ flex-direction:column; }
  .demo-form .btn{ width:100%; }
  .field-row{ grid-template-columns:1fr; }
  .hero-rail{ gap:18px; }
  .hero-rail b{ font-size:1.25rem; }
  .hero-rail span{ font-size:.62rem; letter-spacing:.09em; }
  .kinetic{ font-size:clamp(2.3rem,10vw,3.2rem); }
  .board{ padding:14px; }
  .bt{ width:50px; font-size:.65rem; }
  .bd b{ font-size:.8rem; }
  .bd > span{ font-size:.68rem; }
  .board-title{ display:none; }
  .kicker > span:last-child{ font-size:.65rem; letter-spacing:.12em; }
  .calgrid{ grid-template-columns:repeat(5,1fr); gap:5px; }
  .slot{ height:26px; font-size:.55rem; }
  .foot-grid{ grid-template-columns:1fr 1fr; }
  .foot-bot{ flex-direction:column; gap:8px; }
  .trio{ grid-template-columns:minmax(0,1fr); }
  .mobile-menu a{ font-size:1.7rem; }
  .cta-actions .btn{ width:100%; }
  .killgrid{ grid-template-columns:1fr; }
  .spec-row{ grid-template-columns:1fr; gap:10px; }
  .card-stats{ grid-template-columns:1fr 1fr 1fr; }
  .card-stats div{ padding:12px 8px; }
  .card-stats b{ font-size:1.15rem; }
  .card-stats span{ font-size:.58rem; letter-spacing:.07em; }
  .brand-mark{ height:26px; }
  .brand-word{ height:13px; }
  .demo-trust{ gap:8px 16px; }
}

@media (max-width:420px){
  .stats{ grid-template-columns:1fr; }
  .hero-actions .btn{ width:100%; }
}
