/* =========================================================
   EREVOSS — styles.css
   All visual design lives here. Colours/spacing are tokens
   in :root, so most brand tweaks are one-line changes.
   ========================================================= */

/* ============ TOKENS ============ */
:root {
  --bg:      #0a0a0a;
  --bg-2:    #0f0f10;
  --surface: #141416;
  --surface-2:#1a1a1d;
  --line:    rgba(255,255,255,0.08);
  --line-2:  rgba(255,255,255,0.14);

  --text:      #ffffff;
  --text-soft: #a6a6ac;
  --text-mute: #6c6c73;

  --accent:      #f63c11;
  --accent-soft: #ff6a3d;
  --accent-deep: #d22f0a;

  /* type scale */
  --step--1: clamp(0.82rem, 0.8rem + 0.1vw, 0.9rem);
  --step-0:  clamp(1rem, 0.96rem + 0.2vw, 1.1rem);
  --step-1:  clamp(1.15rem, 1.05rem + 0.5vw, 1.4rem);
  --step-2:  clamp(1.5rem, 1.25rem + 1.2vw, 2rem);
  --step-3:  clamp(2rem, 1.55rem + 2.2vw, 3.1rem);
  --display: clamp(2.3rem, 1.3rem + 4.6vw, 4.6rem);

  /* spacing scale */
  --sp-1:0.5rem; --sp-2:1rem; --sp-3:1.5rem; --sp-4:2rem; --sp-5:3rem; --sp-6:4.5rem; --sp-7:7rem; --sp-8:9rem;

  --radius:18px; --radius-sm:12px; --maxw:1120px; --nav-h:64px;
  --shadow:0 24px 60px -24px rgba(0,0,0,0.9);
}

*,*::before,*::after{box-sizing:border-box;} *{margin:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  font-family:'Inter',system-ui,-apple-system,sans-serif;
  background:var(--bg); color:var(--text);
  font-size:var(--step-0); line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
h1,h2,h3{font-family:'Manrope',system-ui,sans-serif;font-weight:800;line-height:1.05;letter-spacing:-0.02em;}
a{color:inherit;text-decoration:none;} button{font-family:inherit;cursor:pointer;} img,svg{display:block;}
::selection{background:var(--accent);color:#fff;}

.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--sp-3);}
section{padding-block:var(--sp-7);position:relative;}
.section-head{max-width:680px;margin-inline:auto;text-align:center;margin-bottom:var(--sp-6);}
.eyebrow{display:inline-flex;align-items:center;gap:0.55em;font-family:'Manrope',sans-serif;font-size:var(--step--1);letter-spacing:0.16em;text-transform:uppercase;color:var(--accent-soft);font-weight:700;margin-bottom:var(--sp-2);}
.eyebrow::before,.eyebrow::after{content:"";width:22px;height:1px;background:var(--accent-deep);opacity:.7;}
.section-head h2{font-size:var(--step-3);margin-bottom:var(--sp-2);}
.section-head h2 i{font-style:italic;font-weight:600;}
.section-head p{color:var(--text-soft);font-size:var(--step-1);max-width:52ch;margin-inline:auto;}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.55em;font-family:'Manrope',sans-serif;font-size:var(--step-0);font-weight:700;padding:0.9em 1.6em;border-radius:100px;border:1px solid transparent;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background .25s,border-color .25s;will-change:transform;white-space:nowrap;}
.btn-accent{position:relative;background:linear-gradient(180deg,var(--accent-soft),var(--accent));color:#fff;box-shadow:0 10px 30px -8px rgba(246,60,17,0.55),inset 0 1px 0 rgba(255,255,255,.25);}
.btn-accent:hover{transform:translateY(-2px);box-shadow:0 18px 40px -10px rgba(246,60,17,0.65),inset 0 1px 0 rgba(255,255,255,.3);}
.btn-accent:active{transform:translateY(0);}
.btn-sm{padding:0.62em 1.15em;font-size:0.86rem;}
.btn-lg{padding:1.05em 2em;font-size:1.05rem;}

/* sparkle on any primary button hover */
.btn-accent::after{content:"";position:absolute;top:-7px;right:12px;width:15px;height:15px;pointer-events:none;opacity:0;
  transform:scale(0) rotate(-20deg);transition:transform .35s cubic-bezier(.2,1.4,.4,1),opacity .35s;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.3 6.6L21 11l-6.7 2.4L12 20l-2.3-6.6L3 11l6.7-2.4z' fill='%23ffffff'/%3E%3C/svg%3E");}
.btn-accent:hover::after{opacity:1;transform:scale(1) rotate(15deg);}

/* ============ SCROLL PROGRESS ============ */
.scroll-progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:60;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--accent-soft),var(--accent));box-shadow:0 0 12px rgba(246,60,17,0.6);will-change:transform;}

/* ============ NAV ============ */
.nav{position:sticky;top:16px;z-index:50;padding-inline:var(--sp-3);}
.nav-inner{
  max-width:1220px;margin-inline:auto;height:var(--nav-h);
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
  padding:0 0.5rem 0 1.4rem;
  background:rgba(18,18,20,0.72);
  border:1px solid var(--line);border-radius:100px;
  backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 20px 50px -24px rgba(0,0,0,0.9);
  transition:border-color .3s,background .3s;
}
.nav.scrolled .nav-inner{background:rgba(14,14,16,0.9);border-color:var(--line-2);}
.brand{display:inline-block;font-family:'Manrope',sans-serif;font-size:1.15rem;font-weight:800;letter-spacing:0.01em;}
.brand .mark{color:var(--accent);}
.nav-links{display:flex;align-items:center;gap:var(--sp-3);list-style:none;padding:0;}
.nav-links a{color:var(--text-soft);font-family:'Manrope',sans-serif;font-size:0.9rem;font-weight:600;transition:color .2s;}
.nav-links a:hover{color:var(--text);}
.nav-cta{display:flex;align-items:center;}

/* nav button: pulse + shine */
.nav .btn-accent{position:relative;overflow:hidden;animation:navPulse 3s ease-in-out infinite;}
@keyframes navPulse{0%,100%{box-shadow:0 10px 28px -8px rgba(246,60,17,0.5),inset 0 1px 0 rgba(255,255,255,.25);}50%{box-shadow:0 12px 40px -6px rgba(246,60,17,0.9),inset 0 1px 0 rgba(255,255,255,.3);}}
.nav .btn-accent::before{content:"";position:absolute;top:0;left:0;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,0.5),transparent);
  transform:translateX(-240%) skewX(-18deg);animation:btnShine 3.6s ease-in-out infinite;}
@keyframes btnShine{0%{transform:translateX(-240%) skewX(-18deg);}55%,100%{transform:translateX(360%) skewX(-18deg);}}

/* ============ HERO ============ */
.hero{padding-top:var(--sp-3);padding-bottom:var(--sp-6);text-align:center;overflow:hidden;}
.hero::before{
  content:"";position:absolute;top:-10%;left:50%;transform:translateX(-50%);
  width:min(900px,120vw);height:520px;z-index:0;pointer-events:none;
  background:radial-gradient(50% 50% at 50% 40%,rgba(246,60,17,0.18),transparent 70%);
  filter:blur(20px);
}
.hero::after{content:"";position:absolute;z-index:0;top:-12%;left:50%;width:min(760px,110vw);height:520px;pointer-events:none;
  transform:translateX(-50%);
  background:radial-gradient(45% 45% at 50% 45%,rgba(255,106,61,0.14),transparent 70%);
  animation:heroDrift 16s ease-in-out infinite;}
@keyframes heroDrift{0%,100%{transform:translateX(-50%) translateY(0) scale(1);}50%{transform:translateX(-50%) translateY(4%) scale(1.08);}}
.hero .wrap{position:relative;z-index:1;max-width:1180px;}
.hero h1{font-size:clamp(1.9rem, 1rem + 3.4vw, 3.7rem);font-weight:600;margin-bottom:var(--sp-2);letter-spacing:-0.025em;text-wrap:balance;}
.hero h1 b{font-weight:800;}
/* Headline is always 3 lines on tablet/desktop: "We Book Qualified Sales Calls" / "on Your Calendar." /
   "You Only Pay for the Ones That Show Up." The font shrinks only when the screen is too narrow for the
   longest line (about 18.3em wide, so 19em leaves a little breathing room). Phones wrap naturally. */
.hero h1 .h-line{display:inline;}
.hero h1 .h-last{display:block;}
@media (min-width:768px){
  .hero h1{font-size:min(3.7rem, calc((100vw - 3rem) / 19));}
  .hero h1 .h-line{display:block;white-space:nowrap;}
}
/* hand-drawn circle around a headline phrase (draws itself in on load) */
.circled{position:relative;display:inline-block;white-space:nowrap;margin-inline:0.18em;}
.circled svg{position:absolute;left:-11%;top:-26%;width:122%;height:156%;overflow:visible;pointer-events:none;color:var(--accent);}
.circled path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;}
/* draw-in: script.js sets --len to the circle's on-screen length so the whole loop is drawn */
.js .circled path{stroke-dasharray:var(--len,3000);stroke-dashoffset:var(--len,3000);animation:circleDraw 1s cubic-bezier(.55,0,.25,1) .7s forwards;}
@keyframes circleDraw{to{stroke-dashoffset:0;}}
.hero p.lead{font-size:var(--step-1);color:var(--text-soft);max-width:66ch;margin:0 auto var(--sp-3);}

/* ============ VSL ============ */
.vsl{
  /* full size (779px) on tall screens; on shorter screens the video shrinks so the
     "Book A Strategy Call" button below it stays visible without scrolling */
  position:relative;max-width:clamp(420px, calc((100svh - 500px) * 16 / 9), 779px);margin:0 auto;aspect-ratio:16/9;border-radius:14px;overflow:hidden;
  background:radial-gradient(120% 120% at 50% 20%,#20232a 0%,#0e0f12 70%);
  border:1px solid var(--line-2);box-shadow:var(--shadow);
}
.vsl wistia-player{position:absolute;inset:0;width:100%;height:100%;z-index:1;}
/* blurred thumbnail while the Wistia player script loads (from Wistia's embed code) */
.vsl wistia-player:not(:defined){background:center / contain no-repeat url('https://fast.wistia.com/embed/medias/h9j6kf60p4/swatch');display:block;filter:blur(5px);}
/* click-to-unmute overlay — the video autoplays muted, browsers allow nothing else */
.vsl-unmute{position:absolute;inset:0;z-index:4;display:grid;place-items:center;
  padding:0;border:0;cursor:pointer;font:inherit;background:rgba(9,9,11,0.5);
  transition:opacity .3s ease;}
.vsl-unmute[hidden]{display:none;}
.vsl-unmute.is-off{opacity:0;pointer-events:none;}
.vsl-unmute-card{display:flex;flex-direction:column;align-items:center;gap:8px;
  width:min(72%,360px);padding:26px 24px;border-radius:16px;
  /* ↓ the % below is the knob: higher = more solid, lower = more see-through */
  background:color-mix(in oklab,var(--accent) 35%,transparent);border:1px solid var(--line-2);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-align:center;
  box-shadow:var(--shadow);transition:transform .25s ease,background .25s ease;}
.vsl-unmute:hover .vsl-unmute-card{transform:scale(1.03);background:color-mix(in oklab,var(--accent) 64%,transparent);}
.vsl-unmute-card svg{width:40px;height:40px;margin-bottom:2px;}
.vsl-unmute-card strong{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.15rem;letter-spacing:-0.015em;}
.vsl-unmute-card span{font-size:0.92rem;color:rgba(255,255,255,0.88);}

/* CTA under VSL with coloured glow */
.hero-cta{position:relative;margin-top:var(--sp-4);display:flex;justify-content:center;}
.hero-cta::before{
  content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:420px;height:150px;z-index:0;pointer-events:none;filter:blur(45px);opacity:.85;
  background:
    radial-gradient(40% 60% at 20% 50%,rgba(246,60,17,0.9),transparent 70%),
    radial-gradient(40% 60% at 55% 50%,rgba(255,138,61,0.75),transparent 70%),
    radial-gradient(45% 70% at 85% 50%,rgba(61,107,255,0.7),transparent 70%);
}
.hero-cta .btn{position:relative;z-index:1;}

/* ============ PROCESS ============ */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);}
@media (max-width:1040px){ .steps{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .steps{grid-template-columns:1fr;} }
.step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);position:relative;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,background .3s;}
.step:hover{transform:translateY(-6px);border-color:var(--line-2);background:var(--surface-2);}
.step-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;background:rgba(246,60,17,0.12);border:1px solid rgba(246,60,17,0.3);color:var(--accent-soft);margin-bottom:var(--sp-3);}
.step-icon svg{width:26px;height:26px;}
.step-num{position:absolute;top:var(--sp-3);right:var(--sp-4);font-family:'Manrope',sans-serif;font-size:2.2rem;color:rgba(255,255,255,0.06);font-weight:800;}
.step-tag{display:block;font-family:'Manrope',sans-serif;font-size:0.74rem;font-weight:700;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent-soft);margin-bottom:0.6em;}
.step h3{font-size:var(--step-1);margin-bottom:0.35em;}
.step p{color:var(--text-soft);font-size:0.98rem;}

/* bobbing icons */
.step-icon{animation:iconBob 3.6s ease-in-out infinite;}
.step:nth-child(2) .step-icon{animation-delay:.5s;}
.step:nth-child(3) .step-icon{animation-delay:1s;}
.step:nth-child(4) .step-icon{animation-delay:1.5s;}
@keyframes iconBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}

/* ============ WHAT YOU DO VS. WHAT WE DO ============ */
.cmp-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);max-width:900px;margin-inline:auto;}
.cmp-col{display:flex;flex-direction:column;}
.cmp-label{text-align:center;font-family:'Manrope',sans-serif;font-weight:800;font-size:1.15rem;margin-bottom:var(--sp-3);letter-spacing:0.01em;}
.cmp-label span{display:block;font-weight:600;font-size:0.85rem;color:var(--text-mute);letter-spacing:0.02em;margin-top:0.2em;}
.cmp-label.us span{color:var(--accent-soft);}
.cmp-card{flex:1;border-radius:var(--radius);padding:var(--sp-4);border:1px solid var(--line);background:var(--surface);}
.cmp-card.other{display:flex;align-items:center;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s;}
.cmp-card.other:hover{transform:translateY(-5px);border-color:var(--line-2);}
.cmp-card.us{position:relative;overflow:hidden;background:radial-gradient(130% 130% at 90% -10%,rgba(246,60,17,0.32),transparent 55%),var(--surface-2);border-color:rgba(246,60,17,0.42);box-shadow:0 30px 70px -34px rgba(246,60,17,0.4);animation:breathe 5s ease-in-out infinite;}
@keyframes breathe{0%,100%{transform:scale(1);}50%{transform:scale(1.018);}}
.cmp-list{list-style:none;padding:0;display:grid;gap:var(--sp-3);}
.cmp-card.other .cmp-list{font-size:1.1rem;font-weight:600;color:var(--text);}
.cmp-list li{display:flex;align-items:center;gap:0.75em;font-size:0.98rem;}
.cmp-card.other .cmp-list li{font-size:1.1rem;}
.cmp-card.us li{color:var(--text);}
.cmp-ic{width:20px;height:20px;flex-shrink:0;color:var(--accent);}
/* checkmarks draw themselves in when the section scrolls into view */
.js .cmp-ic path{stroke-dasharray:24;stroke-dashoffset:24;}
.js .reveal.in .cmp-ic path{animation:drawCheck .55s ease forwards;}
.js .reveal.in .cmp-list li:nth-child(1) .cmp-ic path{animation-delay:.15s;}
.js .reveal.in .cmp-list li:nth-child(2) .cmp-ic path{animation-delay:.25s;}
.js .reveal.in .cmp-list li:nth-child(3) .cmp-ic path{animation-delay:.35s;}
.js .reveal.in .cmp-list li:nth-child(4) .cmp-ic path{animation-delay:.45s;}
.js .reveal.in .cmp-list li:nth-child(5) .cmp-ic path{animation-delay:.55s;}
.js .reveal.in .cmp-list li:nth-child(6) .cmp-ic path{animation-delay:.65s;}
.js .reveal.in .cmp-list li:nth-child(7) .cmp-ic path{animation-delay:.75s;}
.js .reveal.in .cmp-list li:nth-child(8) .cmp-ic path{animation-delay:.85s;}
.js .reveal.in .cmp-list li:nth-child(9) .cmp-ic path{animation-delay:.95s;}
.js .reveal.in .cmp-list li:nth-child(10) .cmp-ic path{animation-delay:1.05s;}
@keyframes drawCheck{to{stroke-dashoffset:0;}}
@media (max-width:860px){ .cmp-grid{grid-template-columns:1fr;} }

/* ============ ROI CALCULATOR ============ */
.calc{display:grid;grid-template-columns:1fr 1.1fr;gap:var(--sp-4);max-width:960px;margin-inline:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);}
.calc-inputs{display:grid;gap:var(--sp-4);align-content:center;}
.calc-field label{font-family:'Manrope',sans-serif;font-weight:700;font-size:0.95rem;}
.calc-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.7em;}
.calc-row output{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.25rem;color:var(--accent-soft);font-variant-numeric:tabular-nums;}
.calc-money{display:flex;align-items:center;gap:0.3em;margin-top:0.6em;padding:0.65em 1em;border-radius:var(--radius-sm);
  background:var(--bg-2);border:1px solid var(--line-2);transition:border-color .2s;}
.calc-money:focus-within{border-color:var(--accent);}
.calc-money span{color:var(--text-mute);font-weight:700;font-size:1.2rem;}
.calc-money input{flex:1;min-width:0;background:none;border:0;outline:0;color:var(--text);font:800 1.3rem 'Manrope',sans-serif;font-variant-numeric:tabular-nums;}
/* sliders: orange fill up to the thumb (script.js sets --fill) */
.calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:6px;cursor:pointer;
  background:linear-gradient(90deg,var(--accent) var(--fill,30%),rgba(255,255,255,0.1) var(--fill,30%));}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:4px solid var(--accent);box-shadow:0 4px 14px rgba(246,60,17,0.5);}
.calc input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:4px solid var(--accent);box-shadow:0 4px 14px rgba(246,60,17,0.5);}
.calc input[type=range]:focus-visible{outline:2px solid var(--accent-soft);outline-offset:6px;}
.calc-results{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);align-content:start;}
.calc-stat{display:flex;flex-direction:column;gap:0.2em;padding:var(--sp-2);border-radius:var(--radius-sm);background:var(--bg-2);border:1px solid var(--line);}
.calc-stat .k{font-size:0.78rem;color:var(--text-mute);font-weight:600;}
.calc-stat .v{font-family:'Manrope',sans-serif;font-weight:800;font-size:1.3rem;font-variant-numeric:tabular-nums;}
.calc-stat.big{grid-column:1/-1;padding:var(--sp-3);
  background:radial-gradient(130% 130% at 90% -10%,rgba(246,60,17,0.3),transparent 60%),var(--surface-2);border-color:rgba(246,60,17,0.42);}
.calc-stat.big .v{font-size:clamp(2.2rem,1.6rem + 2vw,3rem);line-height:1.1;}
.calc-stat .roi{color:var(--accent-soft);font-weight:700;font-size:0.95rem;}
.calc-say{grid-column:1/-1;color:var(--text-soft);font-size:0.95rem;}
.calc-note{text-align:center;color:var(--text-mute);font-size:0.82rem;margin-top:var(--sp-3);}
@media (max-width:860px){ .calc{grid-template-columns:1fr;padding:var(--sp-3);} }
@media (max-width:480px){ .calc-results{grid-template-columns:1fr 1fr;} .calc-stat:nth-child(3){grid-column:1/-1;} }

/* ============ FOUNDER ============ */
/* card: photo left, bio right (stacks on phones) */
.founder{display:grid;grid-template-columns:220px 1fr;gap:var(--sp-5);align-items:start;max-width:900px;margin-inline:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5) var(--sp-4) var(--sp-4);}
/* circular photo with a thin orange-tinted frame */
.founder-photo{position:relative;aspect-ratio:1/1;border-radius:50%;overflow:hidden;
  border:1px solid rgba(231,138,61,0.35);box-shadow:0 30px 70px -30px rgba(246,60,17,0.35),var(--shadow);background-color:#1a1d22;}
.founder-photo img,.founder-photo .ph{position:absolute;inset:0;width:100%;height:100%;}
/* Photo: assets/founder.webp (square). Scaled up slightly to crop the cream ring baked into the source image. */
.founder-photo img{object-fit:cover;transform:scale(1.1);}
/* Placeholder shown only while the founder photo is missing */
.founder-photo .ph{display:grid;place-items:center;text-align:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-mute);
  background:radial-gradient(60% 60% at 50% 40%,rgba(246,60,17,0.18),transparent 70%),#1a1d22;}
.founder-body h3{font-size:var(--step-2);margin-bottom:var(--sp-2);}
.founder-body p{color:var(--text-soft);font-size:0.98rem;}
.founder-body p + p{margin-top:var(--sp-2);}
.founder-body .hl{color:var(--accent-soft);}
.nowrap{white-space:nowrap;}
.signature{font-family:'Mrs Saint Delafield',cursive;font-size:2.8rem;line-height:1;color:#d8d8dc;margin-top:var(--sp-3);padding-left:0.2em;}
@media (max-width:720px){
  .founder{grid-template-columns:1fr;gap:var(--sp-3);padding:var(--sp-4) var(--sp-3);text-align:center;}
  .founder-photo{width:min(220px,70%);margin-inline:auto;}
  .signature{padding-left:0;}
}

/* ============ TESTIMONIALS ============ */
.quotes{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);max-width:980px;margin-inline:auto;}
/* Scrolling strip (script.js turns .quotes into this): cards drift right-to-left in a seamless loop.
   --per = cards visible at once. The track holds the real cards plus a copy, and moves by exactly
   one set (-50%), so the loop never visibly restarts. Hover pauses it. */
.quotes.is-marquee{display:block;max-width:none;overflow:hidden;padding-block:10px;container-type:inline-size;--per:3;--gap:var(--sp-3);
  -webkit-mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);}
.quotes-track{display:flex;width:max-content;animation:quotesScroll var(--dur,36s) linear infinite;}
.quotes.is-marquee:hover .quotes-track{animation-play-state:paused;}
.quotes.is-marquee .quote{flex:0 0 auto;width:calc((100cqw - (var(--per) - 1) * var(--gap)) / var(--per));margin-right:var(--gap);}
@keyframes quotesScroll{to{transform:translateX(-50%);}}
@media (max-width:1040px){ .quotes.is-marquee{--per:2;} }
@media (max-width:640px){ .quotes.is-marquee{--per:1.15;} }
@media (prefers-reduced-motion:reduce){
  .quotes.is-marquee{overflow-x:auto;-webkit-mask:none;mask:none;}
  .quotes-track{animation:none;}
  .quotes-track [data-clone]{display:none;}
}
.quote{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4);display:flex;flex-direction:column;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s;}
.quote:hover{transform:translateY(-5px);border-color:var(--line-2);}
.quote .stars{color:var(--accent-soft);letter-spacing:3px;font-size:0.9rem;margin-bottom:var(--sp-2);}
.quote blockquote{margin:0;}
.quote .q-headline{font-weight:700;font-size:1.06rem;line-height:1.4;color:var(--text);margin-bottom:var(--sp-2);}
.quote .q-headline mark{background:rgba(246,60,17,0.16);color:var(--accent-soft);padding:0 0.25em;border-radius:4px;}
.quote .q-body{font-size:0.95rem;line-height:1.55;color:var(--text-mute);margin-bottom:var(--sp-3);}
.quote .who{display:flex;align-items:center;gap:0.75em;margin-top:auto;}
.avatar{position:relative;overflow:hidden;width:42px;height:42px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-family:'Manrope',sans-serif;font-weight:700;font-size:0.9rem;color:#fff;background:linear-gradient(140deg,var(--accent-soft),var(--accent-deep));}
/* photo sits over the initials; if the file is missing script.js removes it and initials show */
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* wide source photo: zoom in on the face.
   Tune per image with inline vars: --zoom (size), --x / --y (shift left/up, negative = move image left/up) */
.avatar img.avatar-face{inset:auto;left:var(--x,0);top:var(--y,0);width:var(--zoom,100%);height:auto;max-width:none;object-fit:initial;}
.who .name{font-weight:600;font-size:0.95rem;}

/* ============ BOOKING ============ */
/* tightened so the calendar lands high in view when a CTA is clicked */
#contact{padding-top:var(--sp-3);scroll-margin-top:40px;}
#contact .section-head{margin-bottom:12px;}
#contact .section-head h2{margin-bottom:0.35em;}
.cal-embed{max-width:900px;margin:0 auto;}
/* starting height only; the booking embed script resizes it to fit the calendar */
.cal-embed iframe{width:100%;height:880px;border:0;border-radius:16px;background:#fff;overflow:hidden;}
.cal-fallback{text-align:center;margin-top:1rem;color:var(--text-mute);font-size:0.85rem;}
.cal-fallback a{color:var(--accent-soft);}

/* ============ FOOTER ============ */
footer{border-top:1px solid var(--line);padding-block:var(--sp-5);}
footer .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3);}
footer .brand{font-size:1rem;} footer .fnote{color:var(--text-mute);font-size:0.85rem;}
footer .flinks{display:flex;gap:var(--sp-3);}
footer .flinks a{color:var(--text-mute);font-size:0.85rem;transition:color .2s;} footer .flinks a:hover{color:var(--text);}

/* tiny, low-contrast legal link under the footer */
.legal-link{display:flex;justify-content:center;flex-wrap:wrap;gap:0.4em 1.5em;margin-top:var(--sp-4);}
.legal-link a{color:#3d3d43;font-size:0.72rem;transition:color .2s;}
.legal-link a:hover{color:var(--text-mute);}

/* ============ LEGAL PAGES (terms.html) ============ */
.legal-page{padding-top:var(--sp-6);}
.legal-body{max-width:720px;margin-inline:auto;color:var(--text-soft);font-size:0.98rem;}
.legal-body h3{color:var(--text);font-size:1.15rem;margin:var(--sp-4) 0 0.6em;}
.legal-body p{margin-bottom:var(--sp-2);}
.legal-body a{color:var(--accent-soft);text-decoration:underline;text-underline-offset:3px;}
.legal-body a:hover{color:var(--text);}
.legal-body h4{font-family:'Manrope',sans-serif;font-weight:700;color:var(--text);font-size:1rem;margin:var(--sp-3) 0 0.5em;}
.legal-body ul{padding-left:1.2em;margin-bottom:var(--sp-2);display:grid;gap:0.45em;}
.legal-body li::marker{color:var(--accent);}
.legal-body ul.checks{list-style:none;padding-left:0;}
.legal-body ul.checks li{position:relative;padding-left:1.6em;}
.legal-body ul.checks li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700;}
.legal-back{margin-top:var(--sp-5);}
.legal-back a{color:var(--accent-soft);text-decoration:none;}

/* ============ STICKY BOOK BAR ============ */
.book-bar{position:fixed;left:0;right:0;bottom:0;z-index:55;background:rgba(13,13,15,0.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line-2);transform:translateY(110%);transition:transform .4s cubic-bezier(.2,.8,.2,1);}
.book-bar.show{transform:translateY(0);}
.book-bar .inner{max-width:var(--maxw);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:0.65rem var(--sp-3);}
.book-bar .msg{display:flex;align-items:center;gap:0.9em;min-width:0;}
.book-bar .urgency{display:inline-flex;align-items:center;gap:0.45em;color:var(--accent-soft);font-family:'Manrope',sans-serif;font-weight:700;font-size:0.9rem;white-space:nowrap;}
.book-bar .urgency .blip{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:blip 1.6s ease-in-out infinite;}
@keyframes blip{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.35;transform:scale(.65);}}
.book-bar .lead-txt{color:var(--text-soft);font-size:0.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
body.bar-shown{padding-bottom:62px;}
/* leave room on the right for the GoHighLevel chat bubble (about 58px + margin) so it never covers "Book Now" */
@media (max-width:1300px){ .book-bar .inner{padding-right:calc(var(--sp-3) + 76px);} }
/* small phones: let "Booking limited spots this month" wrap instead of disappearing behind the button */
@media (max-width:480px){ .book-bar .urgency{white-space:normal;line-height:1.25;font-size:0.82rem;} .book-bar .btn{flex-shrink:0;} }
@media (max-width:600px){ .book-bar .lead-txt{display:none;} }

/* ============ REVEAL (scroll animations) ============ */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.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;} .js .reveal.d4{transition-delay:.32s;}
section[id]{scroll-margin-top:110px;}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion:reduce){
  .hero::after,.step-icon,.nav .btn-accent,.nav .btn-accent::before,.book-bar .urgency .blip{animation:none!important;}
  .js .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
  .js .circled path{animation:none;stroke-dasharray:none;stroke-dashoffset:0;}
  .cmp-card.us{animation:none;}
  .js .cmp-ic path{animation:none !important;stroke-dashoffset:0;}
}

/* ============ RESPONSIVE ============ */
@media (max-width:860px){
  .quotes{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .nav-links{display:none;}
  .nav-inner{padding-left:1.1rem;}
  section{padding-block:var(--sp-6);}
}
/* small phones: keep the nav CTA inside the pill (the longer EREVOSS wordmark pushed it out) */
@media (max-width:400px){
  .nav .btn-sm{font-size:0.8rem;padding:0.6em 1em;}
}
