/* Health First — motion layer: smooth scrolling, header behaviour, hover depth, page transitions. */

/* ---------- Lenis smooth scrolling ---------- */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}

/* ---------- Cross-page fade (supporting browsers only) ---------- */
@view-transition{navigation:auto}
::view-transition-old(root){animation:hfFadeOut .22s ease both}
::view-transition-new(root){animation:hfFadeIn .38s cubic-bezier(.22,.61,.36,1) both}
@keyframes hfFadeOut{to{opacity:0}}
@keyframes hfFadeIn{from{opacity:0;transform:translateY(8px)}}

@media (prefers-reduced-motion:no-preference){
  /* Header tucks away while reading down, returns when scrolling up */
  .site-header{transition:transform .45s cubic-bezier(.22,.61,.36,1),box-shadow .25s ease}
  .site-header.header-hidden{transform:translateY(-100%)}

  /* Smoother, springier entrances */
  .premium-site .premium-animate{
    transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
    transform:translateY(32px);
  }
  .premium-site .premium-animate.reveal-left{transform:translateX(-40px)}
  .premium-site .premium-animate.reveal-right{transform:translateX(40px)}
  .premium-site .premium-animate.reveal-scale{transform:scale(.94)}
  .premium-site .premium-animate.in{transform:none}

  /* Parallax targets get a little headroom so edges never show */
  [data-parallax]{will-change:transform;transform:translate3d(0,var(--py,0px),0) scale(1.1)}

  /* Buttons: soft lift and light sweep */
  .premium-site .btn{position:relative;overflow:hidden;isolation:isolate}
  .premium-site .btn::after{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
    transform:translateX(-120%);transition:transform .7s cubic-bezier(.22,.61,.36,1);
  }
  .premium-site .btn:hover{transform:translateY(-2px)}
  .premium-site .btn:hover::after{transform:translateX(120%)}
  .premium-site .btn:active{transform:translateY(0) scale(.98)}
}

/* ---------- Cursor spotlight on cards (mouse/trackpad only) ---------- */
@media (hover:hover) and (pointer:fine){
  .hf-glow{position:relative}
  .hf-glow::after{
    content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;
    background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(206,149,48,.11),transparent 60%);
    transition:opacity .45s ease;
  }
  .hf-glow:hover::after{opacity:1}
}

/* ---------- Softer card hover ---------- */
@media (prefers-reduced-motion:no-preference){
  .premium-site .card,.premium-site .service-card,.premium-site .value-pill,.premium-site .quote,.premium-site .contact-item{
    transition:transform .5s cubic-bezier(.22,.61,.36,1),box-shadow .5s cubic-bezier(.22,.61,.36,1),border-color .4s ease;
  }
}

/* ---------- Focus ring that matches the brand ---------- */
.premium-site :focus-visible{outline:2px solid #ce9530;outline-offset:3px;border-radius:6px}

/* ---------- Word-by-word headline reveal ---------- */
.hf-split .hf-w{display:inline-block;overflow:hidden;vertical-align:top;padding:.04em .12em .26em 0;margin:-.04em -.12em -.26em 0}
.hf-split .hf-wi{display:inline-block;transform:translateY(110%);transition:transform 1.05s cubic-bezier(.16,1,.3,1) calc(var(--i,0) * 70ms + 80ms)}
.hf-split.hf-split-in .hf-wi{transform:none}
.hero h1.hf-split,.gateway-intro h1.hf-split{animation:none}

/* ---------- 3D canvases ---------- */
.hf-3d{display:block;pointer-events:none;opacity:0;transition:opacity 1.6s ease}
.hf-3d.is-ready{opacity:1}
.premium-hero-art .hf-blob{position:absolute;z-index:0;width:64%;aspect-ratio:1;left:-24%;bottom:-12%}
.premium-hero-art .premium-image-frame{z-index:1}
.region-gateway .hf-globe{position:absolute;z-index:-1;left:50%;top:0;width:min(700px,54vw);aspect-ratio:1;transform:translateX(-50%)}
.region-gateway .hf-globe.is-ready{opacity:.8}

/* ---------- Testimonial carousel ---------- */
.hf-carousel{position:relative}
.hf-carousel__viewport{overflow:hidden;touch-action:pan-y;cursor:grab;padding-block:1rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
.hf-carousel__viewport.is-dragging{cursor:grabbing}
.hf-carousel__viewport.is-dragging .hf-carousel__track{transition:none}
.quote-grid.hf-carousel__track{display:flex;gap:1.5rem;grid-template-columns:none;transition:transform .85s cubic-bezier(.16,1,.3,1);will-change:transform}
.hf-carousel__track > .quote{flex:0 0 min(660px,84%);opacity:.32;transform:scale(.93);user-select:none;
  transition:opacity .6s ease,transform .8s cubic-bezier(.16,1,.3,1),box-shadow .3s ease}
.hf-carousel__track > .quote.is-active{opacity:1;transform:none}
.hf-carousel__track > .quote p{font-size:clamp(1.02rem,1.5vw,1.28rem);line-height:1.65}
.hf-carousel__controls{display:flex;align-items:center;justify-content:center;gap:1.1rem;margin-top:1.4rem}
.hf-carousel__arrow{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(16,46,52,.18);background:#fff;color:#0c2935;cursor:pointer;transition:background .2s,color .2s,transform .2s,border-color .2s}
.hf-carousel__arrow svg{width:18px;height:18px}
.hf-carousel__arrow:hover{background:#0c2935;color:#fff;border-color:#0c2935;transform:translateY(-2px)}
.hf-carousel__dots{display:flex;gap:.5rem}
.hf-carousel__dot{width:8px;height:8px;padding:0;border:0;border-radius:99px;background:rgba(16,46,52,.22);cursor:pointer;transition:width .4s cubic-bezier(.16,1,.3,1),background .3s}
.hf-carousel__dot.is-active{width:28px;background:#ce9530}

/* ---------- Pinned "how it works" steps ---------- */
.hf-steps__aside{display:none}
@media (min-width:921px){
  .steps.hf-steps{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:4rem;align-items:start}
  .hf-steps__aside{display:block;position:sticky;top:34vh;padding-top:1rem}
  .hf-steps__eyebrow{font-size:.68rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:#e1b77b}
  .hf-steps__count{display:flex;align-items:baseline;gap:.8rem;margin:.4rem 0 1.4rem;overflow:hidden}
  .hf-steps__num{display:inline-block;font-family:var(--font-display,'Playfair Display',serif);font-size:clamp(5rem,9vw,8.5rem);line-height:1;color:#e1b77b;font-variant-numeric:tabular-nums}
  .hf-steps__num.swap{animation:hfNum .7s cubic-bezier(.16,1,.3,1)}
  .hf-steps__total{font-size:1.1rem;font-weight:700;color:rgba(255,255,255,.45);letter-spacing:.08em}
  .hf-steps__rail{position:relative;height:2px;max-width:280px;background:rgba(255,255,255,.14);overflow:hidden}
  .hf-steps__fill{position:absolute;inset:0;background:linear-gradient(90deg,#ce9530,#e8c77e);transform:scaleX(0);transform-origin:left}
  .hf-steps__list{display:flex;flex-direction:column;gap:22vh;padding-block:12vh}
  .hf-steps__list .step{opacity:.3;transform:translateX(14px);transition:opacity .6s ease,transform .8s cubic-bezier(.16,1,.3,1),border-color .4s}
  .hf-steps__list .step.is-active{opacity:1;transform:none;border-color:rgba(225,183,123,.5)}
}
@media (max-width:920px){.hf-steps__list{display:grid;gap:1.1rem}}
@keyframes hfNum{from{transform:translateY(60%);opacity:0}to{transform:none;opacity:1}}

@media (prefers-reduced-motion:reduce){
  .hf-3d{display:none}
  .hf-steps__list .step{opacity:1;transform:none}
}

/* ---------- Section heading tidy-up ---------- */
.premium-site .section-head .eyebrow{display:flex}
.premium-site .section-head h2{margin-bottom:1.2rem}
.premium-site .section-head.center h2::after{left:50%;transform:translateX(-50%)}
