/* Vexora Solution: single-page scrolling homepage (index.html only) */
main{display:flex;flex-direction:column;}
.sp-skip{position:absolute;left:-9999px;top:8px;z-index:300;background:#fff;color:#111;padding:10px 16px;border-radius:8px;font-weight:700;}
.sp-skip:focus{left:12px;}
.sp-off{display:none !important;}

/* ---- Classic layout (admin: Page style = Classic): the original order, new-only parts hidden ---- */
body.classic [data-sp-only]{display:none !important;}
body.classic .sp-dots,body.classic .sp-progress,body.classic .sp-hint,body.classic .sp-orb{display:none !important;}
body.classic [data-sp="hero"]{order:1;} body.classic [data-sp="results"]{order:2;} body.classic [data-sp="services"]{order:3;}
body.classic [data-sp="goals"]{order:4;} body.classic [data-sp="stats"]{order:5;} body.classic [data-sp="packages"]{order:6;}
body.classic [data-sp="work"]{order:7;} body.classic [data-sp="testimonials"]{order:8;} body.classic [data-sp="contact"]{order:9;}
body.classic .hero .marquee-wrap{margin:48px 0 -48px;}
body.classic .sp-contact{display:block;}
body.sp [data-classic-only],body.story [data-classic-only]{display:none !important;}
body:not(.story) [data-story-only]{display:none !important;}
body:not(.story) .scene-1,body:not(.story) .scene-1 .pin{display:contents;}
body:not(.story) .scene-bg{display:none;}

/* ---- Single-page mode ---- */
body.sp .site-header,body.story .site-header{position:fixed;top:0;left:0;right:0;transition:background .3s,box-shadow .3s;}
body.sp.sp-scrolled .site-header,body.story.sp-scrolled .site-header{background:rgba(10,10,16,.92);box-shadow:0 10px 30px -20px #000;}
body.sp .sp-section{position:relative;overflow:hidden;padding:calc(var(--hh,72px) + 28px) 0 52px;}
body.sp .hero.sp-section{padding-top:calc(var(--hh,72px) + 28px);padding-bottom:0;display:flex;flex-direction:column;}
body.sp .hero.sp-section>.container{margin-top:auto;margin-bottom:auto;padding-bottom:36px;width:100%;}
body.sp .hero .marquee-wrap{margin-top:0;position:relative;z-index:1;}
body.sp .hero-stats{margin-top:34px;padding-top:22px;}
body.sp .section-head{margin-bottom:34px;}
body.sp .team-avatar{aspect-ratio:4/3;font-size:44px;}
@media (min-width:900px){
  body.sp .sp-section{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;}
  body.sp .sp-section>.container{width:100%;}
  html.sp-snap{scroll-snap-type:y proximity;}
  html.sp-snap body.sp .sp-section{scroll-snap-align:start;}
  html.sp-snap .site-footer{scroll-snap-align:end;}
}
html.sp-smooth{scroll-behavior:smooth;}

/* progress + dots + hint */
.sp-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:var(--gradient);transform:scaleX(0);transform-origin:0 50%;pointer-events:none;}
.sp-dots{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:70;display:flex;flex-direction:column;gap:6px;}
.sp-dot{position:relative;width:26px;height:26px;border:0;background:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.sp-dot::before{content:'';width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.28);border:1px solid rgba(255,255,255,.35);transition:.25s;}
.sp-dot:hover::before,.sp-dot:focus-visible::before{background:var(--accent-2);}
.sp-dot[aria-current="true"]::before{background:var(--gradient);border-color:transparent;transform:scale(1.5);}
.sp-dot-label{position:absolute;right:30px;white-space:nowrap;font-size:12.5px;font-weight:600;color:#fff;background:rgba(21,21,31,.95);border:1px solid var(--line);padding:5px 11px;border-radius:100px;opacity:0;transform:translateX(6px);pointer-events:none;transition:.2s;}
.sp-dot:hover .sp-dot-label,.sp-dot:focus-visible .sp-dot-label{opacity:1;transform:none;}
.sp-dots[hidden]{display:none !important;}
@media (max-width:899px){.sp-dots{display:none !important;}}
.sp-hint{position:absolute;left:50%;bottom:74px;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-faint);transition:opacity .4s;pointer-events:none;}
.sp-hint i{animation:sp-bob 1.6s ease-in-out infinite;color:var(--accent-2);}
@keyframes sp-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(6px);}}
body.sp-scrolled .sp-hint{opacity:0;}
@media (max-width:899px),(max-height:700px){.sp-hint{display:none;}}

/* entrance animation (classes are added by onepage.js only when animations are Full) */
.sp-r{opacity:0;transform:translate3d(0,34px,0);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * 90ms);}
.sp-r.sp-zoom{transform:scale(.94) translate3d(0,22px,0);}
.sp-section.in-view .sp-r{opacity:1;transform:none;}
.sp-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.28;pointer-events:none;z-index:0;will-change:transform;}
.sp-reduced .reveal{opacity:1 !important;transform:none !important;transition:none !important;}
.sp-reduced .sp-orb{display:none;}
.sp-reduced .sp-hint i{animation:none;}
@media (prefers-reduced-motion:reduce){
  .sp-r,.reveal{opacity:1 !important;transform:none !important;transition:none !important;}
  .sp-orb{display:none;} .sp-hint i{animation:none;}
}

/* How we work: steps light up one after the other */
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;position:relative;}
.proc::before,.proc::after{content:'';position:absolute;top:27px;left:10%;right:10%;height:2px;border-radius:2px;}
.proc::before{background:var(--line);}
.proc::after{background:var(--gradient);transform:scaleX(0);transform-origin:0 50%;transition:transform 2.2s cubic-bezier(.4,0,.2,1) .2s;}
.proc-step{position:relative;z-index:1;text-align:center;}
.proc-step:nth-child(1){--k:0;} .proc-step:nth-child(2){--k:1;} .proc-step:nth-child(3){--k:2;} .proc-step:nth-child(4){--k:3;} .proc-step:nth-child(5){--k:4;}
.proc-n{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 16px;border-radius:50%;background:var(--surface);border:2px solid var(--line);font-family:var(--font-display);font-weight:800;font-size:19px;color:var(--text-faint);transition:all .5s ease calc(var(--k) * .42s + .2s);}
.proc-step h3{font-size:18px;margin:0 0 8px;}
.proc-step p{font-size:14px;line-height:1.6;margin:0;}
.sp-js .proc-step{opacity:.3;transition:opacity .6s ease calc(var(--k) * .42s + .2s);}
.sp-section.in-view .proc-step{opacity:1;}
.sp-section.in-view .proc::after{transform:scaleX(1);}
.sp-section.in-view .proc-n{background:var(--gradient);border-color:transparent;color:#fff;box-shadow:0 0 0 6px var(--accent-tint);}
.sp-reduced .proc-step,.sp-reduced .proc-n,.sp-reduced .proc::after{transition:none;}
.sp-reduced .proc-step{opacity:1 !important;}
.sp-reduced .proc-n{background:var(--gradient);border-color:transparent;color:#fff;}
.sp-reduced .proc::after{transform:scaleX(1);}
@media (max-width:899px){
  .proc{grid-template-columns:1fr;gap:20px;}
  .proc::before,.proc::after{top:28px;bottom:28px;left:27px;right:auto;width:2px;height:auto;}
  .proc::after{transform:scaleY(0);transform-origin:50% 0;}
  .sp-section.in-view .proc::after{transform:scaleY(1);}
  .proc-step{display:grid;grid-template-columns:56px 1fr;column-gap:16px;text-align:left;}
  .proc-n{grid-row:span 2;margin:0;}
}

/* Contact: pitch + form side by side */
.sp-contact{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:stretch;}
body.sp .sp-contact .cta-band{flex-direction:column;align-items:flex-start;justify-content:center;padding:44px;}
body.sp .sp-classic-btn{display:none;}
.sp-contact-lines{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:24px;}
.sp-contact-lines a:not(.btn){color:#fff;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.sp-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:28px;display:grid;grid-template-columns:1fr 1fr;gap:0 14px;align-content:start;}
.sp-form h3{grid-column:1/-1;font-size:20px;margin:0 0 16px;}
.sp-form .form-field{margin-bottom:14px;min-width:0;}
.sp-form .form-field:has(textarea),.sp-form button,.sp-form .form-status{grid-column:1/-1;}
.sp-form textarea{min-height:90px;}
@media (max-width:899px){
  .sp-contact{grid-template-columns:1fr;}
  body.sp .sp-contact .cta-band{padding:30px 24px;}
  .sp-form{grid-template-columns:1fr;padding:22px;}
}

/* ---- Compact desktop sizing so each section fits one screen (taller content simply scrolls) ---- */
@media (min-width:900px){
  body.sp .sp-section{padding-top:calc(var(--hh,72px) + 20px);padding-bottom:30px;}
  body.sp .section-head{margin-bottom:clamp(16px,3.2vh,32px);}
  body.sp .section-head p{margin-bottom:0;}
  body.sp .hero .hero-mascot{width:clamp(56px,9vh,84px);margin-bottom:12px;}
  body.sp .hero h1{font-size:clamp(32px,min(5vw,7.4vh),62px);margin-bottom:.35em;}
  body.sp .hero p.lead{font-size:clamp(15px,2.1vh,18px);margin-bottom:0;}
  body.sp .hero-actions{margin-top:clamp(14px,3vh,26px);}
  body.sp .hero-badge-row{margin-top:clamp(12px,2.4vh,22px);}
  body.sp .hero-stats{margin-top:clamp(16px,3.4vh,30px);padding-top:clamp(12px,2.4vh,20px);}
  body.sp .hero .marquee-wrap{padding:14px 0;}
  body.sp .hero.sp-section>.container{padding-bottom:clamp(12px,3vh,30px);}
  body.sp .card{padding:clamp(18px,2.8vh,28px);}
  body.sp .card p{margin-bottom:10px;}
  body.sp .pillar-card{padding:clamp(20px,3.6vh,34px) 24px;}
  body.sp .result-card{padding:clamp(20px,3.6vh,32px) 28px;}
  body.sp .price-card{padding:clamp(20px,3.4vh,32px);}
  body.sp .price-tagline{margin-bottom:12px;min-height:0;}
  body.sp .price-amount{margin-bottom:12px;}
  body.sp .price-features{margin-bottom:16px;}
  body.sp .price-features li{padding:clamp(5px,1vh,9px) 0;}
  body.sp .demo-grid .case-visual{padding:16px 16px 0;}
  body.sp .demo-grid .case-body{padding:16px 20px 18px;}
  body.sp .demo-grid .cs-features,body.sp .demo-grid .cs-outcomes{display:none;}
  body.sp .demo-grid .cs-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
  body.sp .pricing-compare-link .btn{margin-top:clamp(14px,2.6vh,26px) !important;}
  body.sp .team-avatar{aspect-ratio:16/11;}
  body.sp .team-body{padding:16px 20px 18px;}
  body.sp .pullquote p{margin-bottom:20px;}
  body.sp .sp-contact .cta-band{padding:clamp(24px,5vh,44px);}
}
@media (min-width:900px){
  body.sp .demo-grid .case-visual{max-height:clamp(220px,36vh,330px);overflow:hidden;}
  body.sp .demo-grid .cs-desc{-webkit-line-clamp:2;}
  body.sp .price-amount .num{font-size:clamp(28px,4.2vh,36px);}
  body.sp .price-name{margin-bottom:2px;}
  body.sp .price-features li{padding:clamp(4px,.8vh,8px) 0;font-size:13.5px;}
  body.sp .price-features{margin-bottom:12px;}
  body.sp .packages-note,body.sp #packages .section-head{margin-bottom:clamp(12px,2.4vh,24px);}
}
@media (min-width:900px){
  body.sp .price-card{padding:clamp(16px,2.8vh,28px) clamp(18px,2vw,30px);}
  body.sp .price-tagline{font-size:13.5px;}
  body.sp #packages .pricing-compare-link .btn{padding:10px 22px;}
}

body.hero-off .hero-mesh,body.hero-off .hero-mascot *,body.hero-off .marquee-track,body.hero-off .sp-hint i{animation-play-state:paused !important;}
