.mw-progress{position:absolute;left:0;right:0;bottom:-1px;height:3px;pointer-events:none;overflow:hidden}
.mw-progress i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#E30613,#FF4A2D);transform-origin:left center;transform:scaleX(var(--mw-p,0));box-shadow:0 0 12px rgba(255,74,45,.7)}
.hero h1.mw-split{opacity:1 !important;transform:none !important;transition:none !important}
.mw-split .mw-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.mw-split .mw-wi{display:inline-block;transform:translateY(112%);opacity:0;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .6s ease;transition-delay:calc(var(--i) * 70ms + 150ms);will-change:transform}
.mw-split.mw-go .mw-wi{transform:none;opacity:1}
.mw-spot{position:absolute;inset:0;pointer-events:none;border-radius:inherit;opacity:0;transition:opacity .35s ease;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,74,45,.16),transparent 60%)}
.mw-has-spot{position:relative}
.mw-has-spot:hover>.mw-spot{opacity:1}
.btn-primary{position:relative;overflow:hidden;isolation:isolate}
.btn-primary::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;z-index:-1;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s ease}
.btn-primary:hover::after{left:130%}
.mw-mag{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.label::before{transition:width .7s cubic-bezier(.16,1,.3,1) .25s}
.label.reveal-left:not(.in)::before,.label.reveal-up:not(.in)::before,.label.reveal-right:not(.in)::before,.label.reveal:not(.in)::before{width:0}
.label.in::before,.label.visible::before{width:18px}
.why-photo img{transform:scale(1.14);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.in .why-photo img,.why-photo-wrap.in .why-photo img{transform:scale(1)}
.why-photo-badge{transition:transform .8s cubic-bezier(.16,1,.3,1) .5s,opacity .6s ease .5s}
.why-photo-wrap:not(.in) .why-photo-badge{transform:translateY(16px) rotate(-3deg);opacity:0}
.svc-group .svc-tags a,.rel,.post-card{transition:transform .3s cubic-bezier(.16,1,.3,1),background .2s,border-color .2s,color .2s,box-shadow .3s}
.svc-group .svc-tags a:hover{transform:translateY(-2px)}
@keyframes mwFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.why-photo-badge.mw-float{animation:mwFloat 5s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.mw-split .mw-wi{transform:none;opacity:1;transition:none}.mw-spot,.btn-primary::after,.mw-progress i{display:none}.why-photo img{transform:none;transition:none}.why-photo-wrap:not(.in) .why-photo-badge{transform:none;opacity:1}.why-photo-badge.mw-float{animation:none}}
@media (hover:none){.mw-spot{display:none}}
.hero-orbit .orb-stage{position:absolute;inset:12%;z-index:1;animation:orbBob 8s ease-in-out infinite}
.hero-orbit .orb-canvas{display:block;width:100%;height:100%;opacity:0;transform:scale(.7);filter:blur(18px);transition:opacity 1.3s ease,transform 1.8s cubic-bezier(.16,1,.3,1),filter 1.5s ease;pointer-events:auto;cursor:pointer;touch-action:manipulation}
.hero-orbit .orb-canvas.live{opacity:1;transform:none;filter:none}
@keyframes orbBob{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-10px) rotate(1.2deg)}}
.orb-fallback{display:none;position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle at 34% 28%,rgba(var(--fg),0.7),rgba(var(--fg),0) 34%),
             radial-gradient(circle at 50% 90%,rgba(255,215,180,.8),rgba(255,215,180,0) 45%),
             conic-gradient(from 0deg,#ff7aae,#9f80ff,#6cc7ff,#ffc79d,#ff7aae);opacity:.6;box-shadow:inset 0 0 0 2px rgba(var(--fg),0.35),0 0 60px rgba(255,74,45,.25);animation:orbSpin 30s linear infinite}
.orb-nogl .orb-canvas{display:none}
.orb-nogl .orb-fallback{display:block}
@keyframes orbSpin{to{transform:rotate(360deg)}}
.hero-orbit .orbit-core{width:27%;z-index:2}
@media (prefers-reduced-motion:reduce){.hero-orbit .orb-stage{animation:none}.hero-orbit .orb-canvas{opacity:1;transform:none;filter:none;transition:none}.orb-fallback{animation:none}}
.hero-orbit .orbit-chip{z-index:3}
@media (max-width:820px){.hero .hero-orbit{max-width:310px}.hero-orbit .orb-stage{inset:24.5%}.hero-orbit .orbit-core{width:23%}}

/* ================= LIGHT THEME EXTRAS ================= */
.promise,.why-section,.contact-section{background-color:var(--surface) !important;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.footer{background:var(--surface) !important;position:relative;border-top:0}
.footer::before{content:'';position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad)}
.footer a:hover{color:var(--red-text)}
.footer-links b{color:var(--hd)}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--hd)}
.nav-dd-menu{box-shadow:0 24px 50px -22px rgba(60,20,25,.28)}
.nav .btn-primary,.nav .btn-primary:hover{color:#fff}
.btn-ghost{background:#fff;border-color:rgba(var(--fg),.14);color:var(--hd)}
.btn-ghost:hover{background:var(--surface2)}
.hero-eyebrow{background:#fff;border-color:rgba(var(--fg),.10);color:rgba(var(--fg),.78)}
.svc-group,.rel,.card,.post-card,.steps li,.faq details,.tl-card{box-shadow:0 1px 0 rgba(var(--fg),.03),0 18px 40px -30px rgba(60,20,25,.28)}
.svc-group:hover,.rel:hover{box-shadow:0 24px 50px -28px rgba(200,5,15,.32)}
.cards{background:var(--surface)}
.field input,.field textarea,.field select{background:#fff;border-color:rgba(var(--fg),.14);color:var(--hd)}
.field input::placeholder,.field textarea::placeholder{color:rgba(var(--fg),.38)}
.field input:focus,.field textarea:focus,.field select:focus{background:#fff;border-color:var(--red);box-shadow:0 0 0 3px rgba(227,6,19,.12)}
.chip input:checked+span,.chip input:checked+span b{color:#fff}
.chip input:checked+span small,.chip input:checked+span em{color:rgba(255,255,255,.9)}
.book-card{background:var(--bg)}
.day-strip .chip b{color:var(--hd)}
.day-strip .chip input:checked+span b{color:#fff}
.tl-card{background:#fff}
.tl-step.on .tl-node{color:#fff}
.ticker{background:var(--surface)}
.ticker::before{background:linear-gradient(90deg,var(--surface),transparent)}
.ticker::after{background:linear-gradient(270deg,var(--surface),transparent)}
.ticker-item{color:rgba(var(--fg),.6)}
/* final call to action becomes a red brand band */
.cta-band-inner,.cta-section .cta-inner{background:linear-gradient(115deg,#B5030D 0%,#DB1B18 100%) !important;border:0 !important;border-radius:var(--radius-lg);color:#fff;box-shadow:0 34px 70px -34px rgba(227,6,19,.65);padding:clamp(2.5rem,5vw,4rem);position:relative;overflow:hidden}
.cta-band-inner::before,.cta-section .cta-inner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 90% at 85% 0%,rgba(255,255,255,.22),transparent 70%);pointer-events:none}
.cta-band-inner h2,.cta-section .cta-inner h2{color:#fff !important}
.cta-band-inner .lead,.cta-section .cta-inner .lead{color:rgba(255,255,255,.9) !important}
.cta-band-inner .grad-text,.cta-section .cta-inner .grad-text{background:none;-webkit-text-fill-color:#fff;color:#fff}
.cta-band-inner .btn-primary,.cta-section .cta-inner .btn-primary{background:#fff;color:var(--red-text);box-shadow:0 14px 30px -12px rgba(60,0,5,.5)}
.cta-band-inner .btn-primary:hover,.cta-section .cta-inner .btn-primary:hover{box-shadow:0 18px 36px -12px rgba(60,0,5,.6)}
.cta-band-inner .btn-ghost,.cta-section .cta-inner .btn-ghost{background:transparent;border-color:rgba(255,255,255,.55);color:#fff}
.cta-band-inner .btn-primary::after,.cta-section .cta-inner .btn-primary::after{background:linear-gradient(100deg,transparent,rgba(227,6,19,.18),transparent)}

/* blog posts: end-of-article call to action card */
div.cta-band{background:linear-gradient(115deg,#B5030D 0%,#DB1B18 100%) !important;border:0 !important;color:#fff;border-radius:var(--radius-lg);box-shadow:0 30px 60px -32px rgba(227,6,19,.6)}
div.cta-band h3{color:#fff !important}
div.cta-band p{color:#fff !important}
div.cta-band .btn-primary{background:#fff;color:var(--red-text);box-shadow:0 14px 30px -12px rgba(60,0,5,.5)}
/* how-i-build: closing band */
section.on-dark.cta-band{background:transparent !important}
section.on-dark.cta-band .wrap{background:linear-gradient(115deg,#B5030D 0%,#DB1B18 100%);border-radius:var(--radius-lg);padding:clamp(2.5rem,5vw,4rem) clamp(1.4rem,4vw,3rem);box-shadow:0 34px 70px -34px rgba(227,6,19,.65);position:relative;overflow:hidden}
section.on-dark.cta-band h2,section.on-dark.cta-band .lead,section.on-dark.cta-band .grad-text{color:#fff !important}
section.on-dark.cta-band .grad-text{background:none;-webkit-text-fill-color:#fff}
section.on-dark.cta-band .lead{color:#fff !important}
section.on-dark.cta-band .btn-primary{background:#fff;color:var(--red-text);box-shadow:0 14px 30px -12px rgba(60,0,5,.5)}
.cta-band-inner .lead,.cta-section .cta-inner .lead{color:#fff !important}

/* ===== PHONE FIXES ===== */
/* The closed phone menu is invisible but its links kept catching taps over the page. Take it out of the page completely until opened. */
@media(max-width:860px){
  .nav-links{visibility:hidden;transition:opacity .25s,transform .25s,visibility 0s linear .25s}
  .nav-links.open{visibility:visible;transition:opacity .25s,transform .25s,visibility 0s}
  .nav-links:not(.open),.nav-links:not(.open) *{pointer-events:none !important}
}
/* Stop iPhones zooming the page when a field is tapped (needs 16px text), and make taps instant */
@media(max-width:860px){
  .field input,.field textarea,.field select{font-size:16px}
}
.chip,.chip input,.book-tabs button,.btn,.field input,.field select,.field textarea,.day-strip{touch-action:manipulation}
.book-tabs button{min-height:44px}
/* When a field is focused or an anchor is followed, don't hide it under the fixed header */
#book{scroll-margin-top:60px}
.book-step,.book-card,.field input,.field select,.field textarea{scroll-margin-top:100px}
.day-strip{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
@media(max-width:860px){
  .day-strip{-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent);mask-image:linear-gradient(90deg,#000 90%,transparent);padding-right:1.4rem}
}
/* WhatsApp button steps aside while the booking form is on screen */
.wa-float{transition:transform .2s,box-shadow .2s,opacity .25s}
.wa-float.wa-hide{opacity:0;pointer-events:none;transform:scale(.8)}
/* orb stage: soft coloured shadow so the glass reads on a light page */
.hero-orbit .orb-stage{filter:drop-shadow(0 26px 40px rgba(200,40,90,.28)) drop-shadow(0 6px 14px rgba(120,70,200,.18))}
.orbit-chip{background:rgba(255,255,255,.82) !important;color:rgba(var(--fg),.72) !important;border:1px solid rgba(var(--fg),.10) !important;box-shadow:0 8px 20px -12px rgba(60,20,25,.35)}
.orbit-dot{background:rgba(227,6,19,.55) !important}
.hero-orb-1,.hero-orb-2{opacity:.55}
