/* BeGuest home page motion layer (livecode.html), clean hand-drawn style.
   Transform/opacity only, no layout shift. Paired with assets/home-motion.js.
   Static final states for prefers-reduced-motion. */
:root{--hm-bounce:cubic-bezier(.34,1.56,.64,1);--hm-soft:cubic-bezier(.22,1,.36,1);--hm-ink:#233238;}

/* ---------- Scroll progress: brand turquoise, compositor-only ---------- */
.progress{width:100%!important;background:#3AC8C4;transform-origin:0 50%;transform:scaleX(var(--p,0));box-shadow:none;will-change:transform;}

/* ---------- Reveal: friendly pop-up, staggered by home-motion.js ---------- */
.reveal{opacity:0;transform:translate3d(0,28px,0) scale(.97);filter:none;
  transition:opacity .55s ease-out,transform .8s var(--hm-bounce);}
.reveal-left{transform:translate3d(-36px,0,0) scale(.97);}
.reveal-right{transform:translate3d(36px,0,0) scale(.97);}
.reveal-scale{transform:scale(.92);}
.reveal.in{opacity:1;transform:none;filter:none;}
.reveal.rv-done{transition-delay:0s!important;}
.svc.reveal.rv-done,.step.reveal.rv-done,.trust-item.reveal.rv-done{transition:transform .45s var(--hm-bounce),box-shadow .3s ease,border-color .3s ease,background-color .3s ease,opacity .3s ease;}
@media(max-width:900px){.reveal-left,.reveal-right{transform:translate3d(0,28px,0) scale(.97);}}
.faq-carousel.js.reveal:not(.in) .faq-panel.active .faq-item{opacity:.001;transform:translateY(16px);}

/* ---------- Section headings: line mask reveal (real text nodes, no splitting) ---------- */
.sec-head h2{animation:none;}
.js-hm .sec-head h2{-webkit-mask-image:linear-gradient(180deg,#000 42%,transparent 58%);mask-image:linear-gradient(180deg,#000 42%,transparent 58%);
  -webkit-mask-size:100% 300%;mask-size:100% 300%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  -webkit-mask-position:0 100%;mask-position:0 100%;transform:translate3d(0,.3em,0);
  transition:-webkit-mask-position 1.1s cubic-bezier(.65,0,.25,1) .1s,mask-position 1.1s cubic-bezier(.65,0,.25,1) .1s,transform .9s var(--hm-bounce) .1s;}
.js-hm .sec-head.in h2{-webkit-mask-position:0 0;mask-position:0 0;transform:none;}
.js-hm .sec-head.rv-done h2{-webkit-mask-image:none;mask-image:none;}

/* ---------- Buttons: bouncy hover + soft shine sweep (transform only) ---------- */
.btn{transition:transform .35s var(--hm-bounce),box-shadow .28s ease,background .28s ease,color .2s ease,border-color .2s ease;}
.btn::after{left:0;width:50%;transform:translate3d(-200%,0,0) skewX(-20deg);transition:transform .7s var(--hm-soft);pointer-events:none;}
.btn:hover::after,.btn:focus-visible::after{left:0;transform:translate3d(280%,0,0) skewX(-20deg);}
.btn-primary::after{background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);}
.btn-primary:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 14px 30px -14px rgba(26,127,123,.55);}

/* ---------- Services: cursor spotlight (fine pointers) ---------- */
@media(hover:hover) and (pointer:fine){
  .svc::before{background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(58,200,196,.18),rgba(234,248,248,.6) 45%,transparent 72%);}
  .svc::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;
    background:radial-gradient(160px circle at var(--mx,50%) var(--my,0%),#3AC8C4,transparent 70%);
    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
    opacity:0;transition:opacity .3s ease;}
  .svc:hover::after{opacity:1;}
  .svc:hover .svc-ico{transform:rotate(-8deg) scale(1.12);transition:transform .45s var(--hm-bounce),background .3s ease,color .3s ease;}
}

/* =====================================================================
   HERO: dotted globe (three.js) + first-visit intro overlay
   ===================================================================== */
.hero-globe3d{position:absolute;inset:0;width:100%!important;height:100%!important;z-index:1;display:block;cursor:grab;pointer-events:auto;touch-action:pan-y;}
.hero-globe3d:active{cursor:grabbing;}
.hero-visual.is-3d .hero-map,.hero-visual.is-3d .hm-label{display:none;}
.intro-ov{display:none;}
html.bg-intro .intro-ov{display:block;position:fixed;inset:0;z-index:300;overflow:hidden;}
.intro-bg{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 45%,#2A4A50 0%,#233238 55%,#1B282D 100%);}
.intro-stage{position:absolute;inset:0;}
.intro-canvas{position:absolute;left:0;top:0;width:100vw!important;height:100vh!important;transform-origin:0 0;will-change:transform;}
.intro-lbl{position:absolute;left:0;top:0;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;pointer-events:none;
  background:#fff;color:var(--hm-ink);border:1px solid rgba(255,255,255,.9);border-radius:100px;padding:9px 16px 9px 12px;font-size:.95rem;font-weight:600;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.55);opacity:0;scale:.92;transition:opacity .3s ease,scale .6s var(--hm-soft);}
.intro-lbl svg{width:18px;height:18px;color:#1A7F7B;flex:none;}
.intro-lbl.on{opacity:1;scale:1;}
.intro-lbl.il2{left:50%;top:auto;bottom:16%;transform:translateX(-50%);}
.intro-logo{position:absolute;left:50%;top:7%;width:220px;height:auto;transform:translate(-50%,10px);opacity:0;transition:opacity .6s ease,transform .8s var(--hm-bounce);}
.intro-logo.on{opacity:1;transform:translate(-50%,0);}
.intro-skip{position:absolute;right:20px;bottom:20px;display:inline-flex;align-items:center;gap:8px;font:600 .9rem var(--font-body);color:#fff;background:rgba(255,255,255,.08);
  border:2px solid rgba(255,255,255,.7);border-radius:100px;padding:10px 18px;cursor:pointer;transition:background .2s ease,transform .3s var(--hm-bounce);}
.intro-skip svg{width:16px;height:16px;}
.intro-skip:hover{background:rgba(255,255,255,.18);transform:translateY(-2px);}
.intro-skip:focus-visible{outline:3px solid #8FE0DD;outline-offset:3px;}
/* hero copy slides in as the intro blends into the page (opacity stays 1: no LCP delay) */
.hero.intro-hold .hero-text{transform:translate3d(-48px,0,0);}
.hero .hero-text.rv-done{transition:transform .9s var(--hm-bounce);}
.hero.intro-hold .float-stat{opacity:0;scale:.6;}
.hero .float-stat{transition:opacity .4s ease,scale .7s var(--hm-bounce);}
.hero .float-stat.fs-2{transition-delay:.12s;}.hero .float-stat.fs-3{transition-delay:.24s;}
/* stat cards: smaller, parked around the globe's edge so the globe and Portugal stay visible */
.hero-visual .float-stat{padding:10px 14px;border-radius:14px;max-width:190px;}
.hero-visual .float-stat .n{font-size:1.2rem;}
.hero-visual .float-stat .l{font-size:.7rem;line-height:1.35;}
.hero-visual .fs-2{top:2%;left:-2%;right:auto;bottom:auto;}
.hero-visual .fs-3{top:47%;right:-5%;left:auto;bottom:auto;}
.hero-visual .fs-1{bottom:4%;left:6%;top:auto;right:auto;}
@media(max-width:1180px){.hero-visual .fs-3{right:-2%;}.hero-visual .float-stat{max-width:170px;}}
@media(max-width:900px){
  .hero-visual .float-stat{padding:8px 11px;max-width:150px;}
  .hero-visual .float-stat .n{font-size:1.05rem;}
  .hero-visual .float-stat .l{font-size:.64rem;}
  .hero-visual .fs-2{top:auto;bottom:2%;left:0;right:auto;}
  .hero-visual .fs-1{top:auto;bottom:2%;left:auto;right:0;}
  .hero-visual .fs-3{top:0;bottom:auto;left:0;right:auto;}
  .hm-replay.globe-hint{bottom:-30px;}
}
/* 2D fallback (no WebGL) */
.hero-map{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;cursor:pointer;pointer-events:auto;}
.hm-label{position:absolute;left:0;top:0;z-index:2;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;pointer-events:none;
  background:#fff;color:var(--hm-ink);border:1px solid #D6ECEB;border-radius:100px;padding:6px 12px 6px 9px;font-size:.8rem;font-weight:600;
  box-shadow:0 10px 24px -14px rgba(35,50,56,.45);opacity:0;transition:opacity .25s ease;}
.hm-label svg{width:16px;height:16px;color:#1A7F7B;flex:none;}
.hm-label.on{opacity:1;}
.hm-replay.globe-hint{pointer-events:auto;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;color:var(--hm-ink);opacity:0;transition:opacity .4s ease;}
.hm-replay.globe-hint svg{width:13px;height:13px;color:#1A7F7B;}
.hm-replay.globe-hint.on,.hm-replay.globe-hint:focus-visible{opacity:1;}
@media(max-width:560px){.intro-lbl{font-size:.82rem;padding:6px 11px 6px 9px;}.intro-logo{width:170px;}.intro-skip{right:12px;bottom:14px;padding:8px 14px;font-size:.84rem;}}

/* =====================================================================
   COMO FUNCIONA: hand-drawn BeGuest house (inline SVG, assets/sketch.js) + clean UI cards
   ===================================================================== */
.how-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:48px;align-items:start;}
.how-steps.steps.steps-3{display:flex;flex-direction:column;gap:18px;perspective:none;}
.how-stage{position:relative;height:470px;}
.how-js .how-stage{position:sticky;top:max(92px,calc(50vh - 250px));}
.how-js .how-steps.steps{gap:20vh;padding:12vh 0 22vh;}
/* step cards: the active one is highlighted while its stage plays */
.how-steps .step{overflow:hidden;transition:transform .5s var(--hm-soft),box-shadow .3s ease,border-color .3s ease,background-color .3s ease;}
.how-steps .step::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:#3AC8C4;transform:scaleY(0);transform-origin:50% 0;transition:transform .5s var(--hm-soft);}
.how-steps .step .num{transition:opacity .3s ease;}
.how-js .how-steps .step:not(.is-active) .num{opacity:.45;}
.how-js .how-steps .step.is-active{border-color:#3AC8C4;box-shadow:0 22px 50px -30px rgba(26,127,123,.45);transform:translateY(-3px);}
.how-js .how-steps .step.is-active::before{transform:scaleY(1);}
.how-steps .step:hover{transform:none;}
.how-js .how-steps .step.is-active:hover{transform:translateY(-3px);}

.hh{position:absolute;inset:0;}
.hh::before{content:"";position:absolute;left:50%;top:50%;width:440px;height:300px;margin:-160px 0 0 -220px;border-radius:50%;
  background:radial-gradient(closest-side,#EAF8F8,rgba(234,248,248,0));}
.hh-art{position:absolute;left:50%;top:calc(50% - 10px);width:470px;height:356px;transform:translate(-50%,-50%);}
.hh-art .sk{display:block;width:100%;height:100%;overflow:visible;}
/* the drawing, stage by stage: lines are drawn with stroke-dashoffset (pathLength=1), washes fade in */
.hh .sk-plan .pl-fill{fill:#3AC8C4;fill-opacity:.12;}
.hh .sk-plan .pl-dash{fill:none;stroke:#1A7F7B;stroke-width:1.3;stroke-dasharray:4 3.5;stroke-linecap:round;}
.hh .sk-plan .pl-dim{fill:none;stroke:#1A7F7B;stroke-width:1;stroke-linecap:round;opacity:.8;}
.hh[data-stage] .sk g,.hh[data-stage] .sk-ground,.hh[data-stage] .sk-plan,.hh[data-stage] .sk-fill,.hh[data-stage] .sk-wash,.hh[data-stage] .sk-backw,.hh[data-stage] .sk-frontw,.hh[data-stage] .sk-life{transition:opacity .6s ease;}
.hh[data-stage] [pathLength]{stroke-dasharray:1 1;stroke-dashoffset:1;opacity:0;
  transition:stroke-dashoffset .55s cubic-bezier(.6,0,.3,1),opacity .15s linear;transition-delay:min(calc(var(--i) * 11ms),1.5s);}
.hh[data-stage="0"] .sk-ground{opacity:0;}
.hh[data-stage] .sk-ink>:not([pathLength]){transition:opacity .5s ease .3s;}
.hh[data-stage="0"] .sk-ink>:not([pathLength]),.hh[data-stage="1"] .sk-ink>:not([pathLength]){opacity:0;transition-delay:0s;}
.hh .sk-plan .pl-peg{fill:none;stroke:#233238;stroke-width:1.2;stroke-linecap:round;}
.hh .sk-plan .pl-flag{fill:#3AC8C4;stroke:#233238;stroke-width:.8;stroke-linejoin:round;}
.hh[data-stage]:not([data-stage="1"]) .sk-plan{opacity:0;}
.hh[data-stage="0"] .sk-fill,.hh[data-stage="1"] .sk-fill{opacity:0;}
.hh[data-stage="2"] .sk-fill,.hh[data-stage="3"] .sk-fill{transition-delay:.15s;}
.hh[data-stage="2"] :is(.sk-ink,.sk-fine) [pathLength],.hh[data-stage="3"] [pathLength]{stroke-dashoffset:0;opacity:1;}
.hh[data-stage]:not([data-stage="3"]) :is(.sk-wash,.sk-backw,.sk-frontw,.sk-life){opacity:0;}
.hh[data-stage="3"] :is(.sk-wash,.sk-backw,.sk-frontw){transition-delay:.35s;}
.hh[data-stage="3"] .sk-life{transition:opacity 1s ease 1.4s;}
.hh[data-stage="3"] :is(.sk-back,.sk-front) [pathLength]{transition-delay:calc(.2s + min(calc(var(--i) * 4ms),.6s));}

/* UI cards: clean, light borders and soft shadows */
.hh-ui{position:absolute;inset:0;pointer-events:none;}
.hh-chip,.hh-doc,.hh-pill,.hh-online{position:absolute;background:#fff;color:var(--hm-ink);border:1px solid #D6ECEB;box-shadow:0 14px 32px -18px rgba(35,50,56,.4);opacity:0;
  transition:opacity .35s ease,transform .7s var(--hm-soft);}
.hh-chip{left:3%;top:9%;display:flex;align-items:center;gap:10px;border-radius:14px;padding:9px 13px;transform:translate3d(0,12px,0);}
.hh-chip svg{width:20px;height:20px;color:#1A7F7B;flex:none;}
.hh-chip span{font-size:.82rem;font-weight:600;}
.hh-chip .sp{display:flex;align-items:flex-end;gap:3px;height:18px;}
.hh-chip .sp i{display:block;width:5px;border-radius:2px 2px 0 0;background:#8FE0DD;transform:scaleY(0);transform-origin:50% 100%;transition:transform .6s var(--hm-soft);}
.hh-chip .sp i:nth-child(1){height:7px;}.hh-chip .sp i:nth-child(2){height:12px;transition-delay:.1s;}.hh-chip .sp i:nth-child(3){height:9px;transition-delay:.2s;}.hh-chip .sp i:nth-child(4){height:18px;transition-delay:.3s;background:#3AC8C4;}
.hh-doc{right:3%;top:5%;width:150px;border-radius:14px;padding:12px 13px 10px;transform:translate3d(0,14px,0) rotate(3deg);}
.hh-doc .t{display:flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;margin-bottom:9px;}
.hh-doc .t svg{width:16px;height:16px;color:#1A7F7B;}
.hh-doc .ln{display:block;height:5px;border-radius:3px;background:#E3F1F1;margin-bottom:6px;}
.hh-doc .ln.s{width:62%;}
.hh-doc .sig{display:block;width:100%;height:32px;margin-top:4px;overflow:visible;}
.hh-doc .sig path{fill:none;stroke:#1A7F7B;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s cubic-bezier(.65,0,.35,1) .45s;}
.hh-doc .sig line{stroke:#C9DCDC;stroke-width:1;}
.hh-pill{display:inline-flex;align-items:center;gap:7px;border-radius:100px;padding:6px 13px 6px 10px;font-size:.78rem;font-weight:600;white-space:nowrap;transform:translate3d(0,12px,0);}
.hh-pill::before{content:"";width:7px;height:7px;background:#3AC8C4;border-radius:50%;}
.hh-pill.p1{left:2%;top:22%;}
.hh-pill.p2{right:3%;top:13%;}
.hh-pill.p3{right:5%;top:63%;}
.hh-online{left:6%;top:63%;display:inline-flex;align-items:center;gap:8px;border-radius:100px;padding:6px 13px;font-size:.78rem;font-weight:600;background:var(--hm-ink);border-color:var(--hm-ink);color:#fff;transform:translate3d(0,12px,0);}
.hh-online .dot{width:8px;height:8px;border-radius:50%;background:#3AC8C4;box-shadow:0 0 0 3px rgba(58,200,196,.25);}

/* stage rail: slim segments (labels repeat the step titles) */
.hh-rail{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);display:flex;gap:10px;list-style:none;margin:0;padding:0;}
.hh-rail li{display:flex;flex-direction:column;align-items:center;gap:8px;width:120px;font-size:.74rem;font-weight:600;color:var(--slate);text-align:center;line-height:1.3;}
.hh-rail li::before{content:"";display:block;width:100%;height:5px;border-radius:5px;
  background:linear-gradient(90deg,#3AC8C4 50%,#DCEDED 50%) 100% 0/200% 100% no-repeat;transition:background-position .7s var(--hm-soft);}
.hh-rail li.on::before{background-position:0 0;}
.hh-rail li.on{color:var(--hm-ink);}

/* stage states (no data-stage attribute = complete, used for reduced motion) */
.hh[data-stage="1"] .hh-chip{opacity:1;transform:none;}
.hh[data-stage="1"] .hh-chip .sp i{transform:scaleY(1);}
.hh[data-stage="2"] .hh-doc{opacity:1;transform:rotate(-2deg);}
.hh[data-stage="2"] .hh-doc .sig path{stroke-dashoffset:0;}
.hh:not([data-stage]) .hh-pill,.hh:not([data-stage]) .hh-online{opacity:1;transform:none;}
.hh[data-stage="3"] .hh-pill,.hh[data-stage="3"] .hh-online{opacity:1;transform:none;transition-delay:1.1s;}
.hh[data-stage="3"] .hh-pill.p2{transition-delay:1.25s;}
.hh[data-stage="3"] .hh-pill.p3{transition-delay:1.4s;}
.hh[data-stage="3"] .hh-online{transition-delay:1.55s;}

@media(max-width:1100px){.hh-doc{width:132px;}}
@media(max-width:900px){
  .how-grid{grid-template-columns:1fr;gap:20px;}
  .how-stage{height:300px;max-width:520px;width:100%;margin:0 auto;}
  .how-js .how-stage{top:74px;z-index:3;}
  .how-js .how-stage::before{content:"";position:absolute;left:-24px;right:-24px;top:-40px;bottom:-30px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 40px,#fff 88%,rgba(255,255,255,0));z-index:-1;}
  .how-js .how-steps.steps{gap:26vh;padding:2vh 0 22vh;}
  .hh-art{width:300px;height:226px;top:calc(50% - 4px);}
  .hh::before{width:320px;height:220px;margin:-110px 0 0 -160px;}
  .hh-rail li{width:auto;min-width:64px;font-size:0;gap:0;}
  .hh-rail li::before{width:64px;}
  .hh-chip{left:0;top:3%;padding:7px 10px;}
  .hh-chip span{font-size:.74rem;}
  .hh-doc{right:0;top:1%;width:124px;padding:10px 10px 8px;}
  .hh-pill{font-size:.72rem;padding:5px 10px 5px 8px;}
  .hh-pill.p1{left:0;top:15%;}
  .hh-pill.p2{right:0;top:3%;}
  .hh-pill.p3{right:0;top:62%;}
  .hh-online{left:0;top:64%;}
}

/* =====================================================================
   DASHBOARD: friendly floating tablet
   ===================================================================== */
.dash-device{position:relative;perspective:1300px;padding:18px 10px 46px;}
.dd-float{transform-style:preserve-3d;}
.dash-device.is-vis .dd-float{animation:ddFloat 5s ease-in-out infinite;}
@keyframes ddFloat{0%,100%{transform:translate3d(0,0,0);}50%{transform:translate3d(0,-8px,0);}}
.dd-tilt{position:relative;transform-style:preserve-3d;transform:rotateX(var(--rx,5deg)) rotateY(var(--ry,-9deg));}
.dd-frame{position:relative;transform-style:preserve-3d;border-radius:34px;padding:13px;background:#233238;box-shadow:0 8px 0 #1A2830;}
.dd-frame::before{content:"";position:absolute;inset:0;border-radius:inherit;background:#1A2830;transform:translateZ(-10px);}
.dd-cam{position:absolute;top:4px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#3AC8C4;transform:translateZ(1px);}
.dd-screen{position:relative;border-radius:24px;overflow:hidden;background:#fff;transform:translateZ(1px);}
.dd-screen .dash-card{border:0;border-radius:0;box-shadow:none;transition:none;}
.dd-screen .dash-card:hover{transform:none;}
.dd-glare{display:none;}
.dd-shadow{position:absolute;left:14%;right:14%;bottom:8px;height:16px;border-radius:50%;background:rgba(35,50,56,.16);}
.dash-device.is-vis .dd-shadow{animation:ddShadow 5s ease-in-out infinite;}
@keyframes ddShadow{0%,100%{transform:scaleX(1);}50%{transform:scaleX(.88);}}
.dd-chip{position:absolute;display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--hm-ink);border-radius:100px;padding:7px 14px 7px 10px;font-size:.78rem;font-weight:700;color:var(--hm-ink);box-shadow:0 4px 0 var(--hm-ink);white-space:nowrap;}
.dd-chip svg{width:16px;height:16px;color:#1A7F7B;flex:none;}
.dd-c1{left:-18px;bottom:30px;transform:translateZ(50px);}
.dd-c2{right:-20px;top:27%;transform:translateZ(70px);}
.js-hm .dash-device:not(.dd-go) .dd-chip{opacity:0;}
.dash-device.dd-go .dd-chip{animation:ddChip .7s var(--hm-bounce) .5s both;}
.dash-device.dd-go .dd-c2{animation-delay:.75s;}
@keyframes ddChip{from{opacity:0;scale:.3;}to{opacity:1;scale:1;}}
.dash-device .dash-num{min-width:6ch;}
.dash-device .dash-sub b{color:#1A7F7B;}
.dash-device .bar{background:none;transition:none;}
.dash-device .bar::before{content:"";position:absolute;inset:0;border-radius:inherit;background:var(--emerald-soft);transform:scaleY(0);transform-origin:50% 100%;transition:transform .9s var(--hm-bounce) var(--bd,0s);}
.dash-device .bar.hi::before{background:linear-gradient(#3AC8C4,#1A7F7B);}
.dash-device .bars.go .bar::before{transform:scaleY(1);}
.dash-device .bar:nth-child(2){--bd:.08s;}.dash-device .bar:nth-child(3){--bd:.16s;}.dash-device .bar:nth-child(4){--bd:.24s;}.dash-device .bar:nth-child(5){--bd:.32s;}.dash-device .bar:nth-child(6){--bd:.4s;}
@media(max-width:900px){.dd-c2{right:-4px;}}
@media(max-width:560px){.dash-device{padding:12px 4px 40px;}.dd-frame{border-radius:26px;padding:10px;}.dd-screen{border-radius:18px;}.dd-chip{font-size:.72rem;padding:5px 11px 5px 8px;}.dd-c1{left:0;bottom:22px;}.dd-c2{right:0;top:25%;}}

/* =====================================================================
   HIGHLIGHTS: key facts band, clear terms, calculator, contact form, comparison, service badges
   ===================================================================== */
@property --hm-ang{syntax:"<angle>";initial-value:0deg;inherits:false;}
.ln-ico{display:block;width:100%;height:100%;color:#1A7F7B;}

/* key facts band */
.facts{padding:34px 0 10px;position:relative;}
.facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.fact{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;background:#fff;border:1px solid #DCEDED;border-radius:18px;padding:14px 16px;box-shadow:0 16px 36px -26px rgba(35,50,56,.45);transition:transform .35s var(--hm-soft),box-shadow .35s ease,border-color .3s ease;}
.fact-cred:hover{border-color:rgba(58,200,196,.6);box-shadow:0 20px 40px -24px rgba(26,127,123,.45);}
.fact-ico{grid-row:span 2;width:52px;height:52px;padding:12px;border-radius:14px;background:#EAF8F8;}
.fact-n{font-family:var(--font-display);font-weight:700;font-size:1.75rem;line-height:1.05;color:var(--hm-ink);font-variant-numeric:tabular-nums;}
.fact-l{font-size:.8rem;color:var(--slate);line-height:1.3;}
@keyframes hmBounce{0%{transform:translateY(0) scale(1);}30%{transform:translateY(-12px) scale(.95,1.08);}55%{transform:translateY(0) scale(1.12,.86);}75%{transform:translateY(-3px) scale(.97,1.03);}100%{transform:none;}}

@media(max-width:980px){.facts-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.facts-grid{gap:12px;}.fact{grid-template-columns:40px 1fr;padding:12px;column-gap:10px;}.fact-ico{width:40px;height:40px;padding:9px;}.fact-n{font-size:1.35rem;}.fact-l{font-size:.72rem;}}

/* clear terms: clean premium cards with depth and a soft light that follows the pointer */
.terms{background:linear-gradient(180deg,#fff 0%,#F3FBFB 100%);}
.terms-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;perspective:1200px;}
.term{position:relative;overflow:hidden;background:linear-gradient(160deg,#FFFFFF 0%,#F7FCFC 100%);border:1px solid #DCEDED;border-radius:22px;padding:26px 24px 24px;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 24px 50px -30px rgba(35,50,56,.35),0 2px 6px -2px rgba(35,50,56,.06);transform-style:preserve-3d;}
.term::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(280px circle at var(--mx,30%) var(--my,0%),rgba(58,200,196,.14),transparent 65%);opacity:.8;transition:opacity .3s ease;}
.term::after{content:"";position:absolute;left:24px;top:0;width:44px;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,#3AC8C4,#1A7F7B);}
.term.rv-done{transition:transform .5s var(--hm-soft),box-shadow .35s ease,border-color .3s ease;}
.term:hover{border-color:rgba(58,200,196,.55);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 34px 60px -30px rgba(26,127,123,.45);}
.term>*{position:relative;}
.term-top{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#EAF8F8;color:#1A7F7B;margin-bottom:22px;}
.term-ln{width:20px;height:20px;}
.term-fig{display:block;font-family:var(--font-display);font-weight:700;font-size:clamp(1.9rem,2.6vw,2.4rem);line-height:1;letter-spacing:-.03em;color:var(--hm-ink);margin-bottom:12px;}
.term h3{font-family:var(--font-body);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#1A7F7B;margin-bottom:8px;}
.term p{font-size:.9rem;color:var(--slate);line-height:1.5;}
@media(max-width:1040px){.terms-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.terms-grid{grid-template-columns:1fr;gap:14px;}.term{padding:22px 20px;}.term-top{margin-bottom:16px;}}

/* service badges: "included at no extra cost" */
.svc>.svc-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:6px;background:#EAF8F8;color:var(--hm-ink);border:2px solid var(--hm-ink);border-radius:100px;padding:3px 10px 3px 6px;font-size:.68rem;font-weight:700;line-height:1.3;box-shadow:0 3px 0 var(--hm-ink);z-index:2;}
.svc-badge .sb-ico{width:13px;height:13px;flex:none;color:#1A7F7B;}
.svc.svc-free{border-color:#3AC8C4;}
.svc.svc-free.in .svc-badge{animation:hmBadge .7s var(--hm-bounce) .35s both;}
@keyframes hmBadge{from{opacity:0;transform:translateY(-8px) scale(.5);}}
.svc.svc-free .svc-ico{margin-top:4px;}
@media(max-width:1200px) and (min-width:1041px){.svc>.svc-badge{position:relative;top:auto;right:auto;margin-bottom:10px;}}

/* services: 3D coverflow slider (enabled by JS; reduced motion keeps the grid) */
.svc-slider.is-3d .svc-grid{display:block;position:relative;height:410px;perspective:1500px;perspective-origin:50% 40%;touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.svc-slider.is-3d .svc{position:absolute;left:50%;top:24px;width:360px;height:340px;margin-left:-180px;padding:30px 28px;border-radius:24px;cursor:pointer;
  transition:transform .8s var(--hm-soft),opacity .5s ease,box-shadow .5s ease,border-color .3s ease;will-change:transform;backface-visibility:hidden;}
.svc-slider.is-3d .svc .svc-ico{width:56px;height:56px;margin-bottom:22px;transform-origin:0 0;transition:transform .6s var(--hm-bounce),background .3s ease,color .3s ease;}
.svc-slider.is-3d .svc h3{font-size:1.2rem;}
.svc-slider.is-3d .svc p{font-size:.95rem;opacity:0;transform:translate3d(0,12px,0);transition:opacity .35s ease,transform .5s var(--hm-soft);}
.svc-slider.is-3d .svc>.svc-badge{opacity:0;}
.svc-slider.is-3d .svc.is-active{cursor:default;border-color:#3AC8C4;box-shadow:0 50px 90px -46px rgba(26,127,123,.6),0 2px 0 rgba(255,255,255,.8) inset;}
.svc-slider.is-3d .svc.is-active .svc-ico{transform:scale(1.25);background:linear-gradient(135deg,#4ED2CE,#3AC8C4);color:#233238;}
.svc-slider.is-3d .svc.is-active p{opacity:1;transform:none;transition-delay:.22s;}
.svc-slider.is-3d .svc.is-active>.svc-badge{opacity:1;animation:hmBadge .6s var(--hm-bounce) .3s both;}
.svc-slider.is-3d .svc:not(.is-active):hover{border-color:rgba(58,200,196,.6);}
.svc-ctrl{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:4px;}
.svc-ctrl[hidden]{display:none;}
.svc-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--hm-ink);display:grid;place-items:center;cursor:pointer;transition:transform .35s var(--hm-bounce),border-color .2s ease,color .2s ease;}
.svc-arrow svg{width:20px;height:20px;}
.svc-arrow:hover{border-color:#3AC8C4;color:#1A7F7B;transform:translateY(-2px);}
.svc-dots{display:flex;gap:8px;}
.svc-dots button{width:10px;height:10px;border-radius:10px;border:0;padding:0;background:#C9DCDC;cursor:pointer;transition:width .4s var(--hm-soft),background .3s ease;}
.svc-dots button[aria-current="true"]{width:30px;background:#1A7F7B;}
.svc-slider:focus-visible{outline:2px solid #3AC8C4;outline-offset:6px;border-radius:24px;}
@media(max-width:560px){
  .svc-slider.is-3d .svc-grid{height:430px;}
  .svc-slider.is-3d .svc{width:280px;margin-left:-140px;height:370px;padding:24px 22px;top:20px;}
  .svc-slider.is-3d .svc p{font-size:.9rem;}
  .svc-dots button{width:8px;height:8px;}.svc-dots button[aria-current="true"]{width:22px;}
}

/* calculator + contact form: lifted, with a turning turquoise border */
.calc-inputs,.calc-result,.lead-form{transition:transform .5s var(--hm-bounce),box-shadow .4s ease;}
.calc.in .calc-inputs,.calc.in .calc-result{transform:translateY(-4px);}
.calc-inputs{box-shadow:var(--shadow);}
.calc-result{box-shadow:var(--shadow-lg);}
.calc-result::after,.lead-form::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;pointer-events:none;
  background:conic-gradient(from var(--hm-ang),transparent 0 55%,#3AC8C4 72%,#8FE0DD 80%,transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
  animation:hmSpin 6s linear infinite;animation-play-state:paused;}
.calc.hm-vis .calc-result::after,.cta-box.hm-vis .lead-form::after{animation-play-state:running;}
@keyframes hmSpin{to{--hm-ang:360deg;}}
.lead-form{position:relative;}
.cta-box.in .lead-form{transform:translateY(-6px) rotate(-.4deg);box-shadow:0 8px 0 #1A7F7B,0 30px 70px -28px rgba(0,0,0,.5);}
.calc-mascot{position:absolute;top:18px;right:20px;width:52px;height:52px;z-index:2;}
.calc-mascot svg{display:block;width:100%;height:100%;}
.calc-mascot .cm-eyes{transform-origin:50% 65%;animation:cmBlink 4.2s steps(1,end) infinite;}
@keyframes cmBlink{0%,92%,100%{transform:none;}94%{transform:scaleY(.15);}}
.calc-mascot.hop svg{animation:hmBounce .65s var(--hm-soft);}
.calc-mascot.hop .cm-mouth{transform-origin:50% 85%;animation:cmSmile .65s steps(2,end);}
@keyframes cmSmile{50%{transform:scaleX(1.6);}}
.cm-spark{position:absolute;width:6px;height:6px;background:#8FE0DD;box-shadow:0 0 0 2px #233238;opacity:0;}
.cm-spark.s1{left:-8px;top:4px;}.cm-spark.s2{right:-10px;top:12px;}.cm-spark.s3{left:20px;top:-12px;}
.calc-mascot.hop .cm-spark{animation:cmSpark .6s steps(3,end);}
.calc-mascot.hop .s2{animation-delay:.08s;}.calc-mascot.hop .s3{animation-delay:.16s;}
@keyframes cmSpark{0%{opacity:1;transform:scale(.4);}60%{opacity:1;transform:scale(1.2) rotate(45deg);}100%{opacity:0;transform:scale(.4) rotate(90deg);}}
.calc-result .calc-tabs{margin-right:70px;}

/* comparison: readable icons, BeGuest column raised, checks pop in */
.cmp{position:relative;}
.cmp-row{position:relative;z-index:1;}
.cmp-row .no{color:#6B7B80;}
.cmp-row .yes{color:#1A7F7B;}
.cmp-row .beguest-col{background:transparent;}
.cmp-row .beguest-col[style]{color:#1A7F7B!important;}
.cmp-head .h-beguest{color:#1A7F7B;}
.cmp-raise{position:absolute;z-index:0;top:6px;bottom:6px;left:calc(72.22% + 4px);width:calc(27.78% - 8px);border-radius:16px;background:#EAF8F8;border:2px solid #3AC8C4;
  box-shadow:0 6px 0 #3AC8C4,0 24px 40px -24px rgba(26,127,123,.55);transform:translateY(18px) scaleY(.9);opacity:0;transition:transform .8s var(--hm-bounce) .2s,opacity .4s ease .2s;}
.cmp.in .cmp-raise{transform:translateY(-2px);opacity:1;}
.js-hm .cmp:not(.in) .cmp-row .c svg{transform:scale(0);}
.cmp .cmp-row .c svg{transition:transform .5s var(--hm-bounce);}
.cmp.in .cmp-row:nth-child(3) .c svg{transition-delay:.3s;}.cmp.in .cmp-row:nth-child(4) .c svg{transition-delay:.4s;}.cmp.in .cmp-row:nth-child(5) .c svg{transition-delay:.5s;}
.cmp.in .cmp-row:nth-child(6) .c svg{transition-delay:.6s;}.cmp.in .cmp-row:nth-child(7) .c svg{transition-delay:.7s;}.cmp.in .cmp-row:nth-child(8) .c svg{transition-delay:.8s;}
.cmp.in .cmp-row .yes svg{stroke-width:2.4;}
@media(max-width:560px){.cmp-raise{left:calc(72.41% + 2px);width:calc(27.59% - 4px);}}

/* =====================================================================
   COMPACT LAYOUT: tighter sections, shorter hero
   ===================================================================== */
.sec{padding:66px 0;}
.sec-head{margin-bottom:30px;}
.sec-head h2{margin-bottom:10px;}
.sec-head .eyebrow{margin-bottom:12px;}
.hero{min-height:min(100vh,820px);padding-top:104px;padding-bottom:44px;}
.platforms{padding:16px 0;}
.facts{padding:22px 0 6px;}
.convband{padding:22px 0;}
.cta{padding-bottom:56px;}
.how-js .how-steps.steps{gap:14vh;padding:6vh 0 14vh;}
@media(max-width:900px){.hero{min-height:0;padding-top:96px;padding-bottom:30px;}.how-js .how-steps.steps{gap:18vh;padding:2vh 0 14vh;}}
@media(max-width:560px){.sec{padding:44px 0;}.sec-head{margin-bottom:24px;}}

/* =====================================================================
   TERMS: animated visuals inside the cards (SVG + CSS)
   ===================================================================== */
.tv{display:block;width:100%;height:84px;margin:0 0 16px;overflow:visible;}
.tv text{font-family:var(--font-body);font-size:9px;font-weight:600;fill:#6B7B80;}
.tv .tv-num{font-family:var(--font-display);font-size:14px;font-weight:700;fill:#233238;}
.tv-fee{stroke-dashoffset:25;transition:stroke-dashoffset 1.1s var(--hm-soft) .2s;}
.tv-own{stroke-dashoffset:-100;transition:stroke-dashoffset 1.3s var(--hm-soft) .5s;}
.term.in .tv-fee{stroke-dashoffset:0;}
.term.in .tv-own{stroke-dashoffset:-25;}
.tv-flow circle{opacity:0;}
.term.in .tv-flow circle{animation:tvFlow 2.4s ease-in-out 1.2s infinite;}
.term.in .tv-flow circle:nth-child(2){animation-delay:2s;}.term.in .tv-flow circle:nth-child(3){animation-delay:2.8s;}
@keyframes tvFlow{0%{opacity:0;transform:translateX(0);}15%{opacity:1;}80%{opacity:1;}100%{opacity:0;transform:translateX(76px);}}
.tv-wallet{transform-box:fill-box;transform-origin:50% 50%;}
.term.in .tv-donut .tv-wallet{animation:tvBump .8s ease-in-out 3.2s infinite;}
@keyframes tvBump{0%,70%,100%{transform:none;}80%{transform:scale(1.08);}}
.tv-fill{transform-box:fill-box;transform-origin:0 50%;transform:scaleX(0);}
.term.in .tv-fill{animation:tvFill 4s var(--hm-soft) .3s infinite;}
@keyframes tvFill{0%{transform:scaleX(0);opacity:1;}55%{transform:scaleX(1);opacity:1;}88%{transform:scaleX(1);opacity:1;}100%{transform:scaleX(1);opacity:0;}}
.tv-door{transform-box:fill-box;transform-origin:0 50%;}
.term.in .tv-door{animation:tvDoor 4s ease .3s infinite;}
@keyframes tvDoor{0%,50%{transform:none;}60%,85%{transform:scaleX(.3);}100%{transform:none;}}
.tv-d{fill:#F3FBFB;stroke:#DCEDED;}
.tv-d8{fill:#F3FBFB;stroke:#3AC8C4;stroke-width:1.5;}
.tv .tv-n{font-size:7px;fill:#6B7B80;}
.tv .tv-n8{font-size:7px;fill:#233238;font-weight:700;}
.term.in .tv-d8{animation:tvDay 3.6s ease .4s infinite;}
@keyframes tvDay{0%{fill:#F3FBFB;}15%,70%{fill:#3AC8C4;}100%{fill:#F3FBFB;}}
.tv-coin{transform-box:fill-box;transform-origin:50% 50%;opacity:0;}
.term.in .tv-coin{animation:tvCoin 3.6s var(--hm-soft) .4s infinite;}
@keyframes tvCoin{0%,18%{opacity:0;transform:translate(0,0) scale(.3);}26%{opacity:1;transform:translate(0,-6px) scale(1.1);}62%{opacity:1;transform:translate(154px,-12px) scale(1);}72%,100%{opacity:0;transform:translate(154px,-12px) scale(.4);}}
.term.in .tv-cal .tv-wallet{animation:tvBump 3.6s ease-in-out .4s infinite;}
.tv-sweep{transform-box:fill-box;}
.term.in .tv-sweep{animation:tvSweep 2.8s ease-in-out .3s infinite;}
@keyframes tvSweep{0%{transform:skewX(-18deg) translateX(0);}70%,100%{transform:skewX(-18deg) translateX(150px);}}
.tv-spark path{transform-box:fill-box;transform-origin:50% 50%;transform:scale(0);}
.term.in .tv-spark path{animation:tvSpark 2.8s ease-in-out infinite;}
.term.in .tv-spark .s2{animation-delay:.5s;}.term.in .tv-spark .s3{animation-delay:1s;}.term.in .tv-spark .s4{animation-delay:1.5s;}
@keyframes tvSpark{0%,100%{transform:scale(0) rotate(0);}30%{transform:scale(1) rotate(45deg);}60%{transform:scale(0) rotate(90deg);}}
.terms:not(.hm-vis) .tv *{animation-play-state:paused!important;}

/* =====================================================================
   GALLERY: compact 3D coverflow of the real photos
   ===================================================================== */
.gal-slider .gtile{grid-row:auto;grid-column:auto;}
.gal-slider.is-3d{overflow:hidden;margin:0 -24px;padding:0 24px;}
.gal-slider.is-3d .gallery{display:block;position:relative;height:calc(min(400px,62vw) + 26px);perspective:1600px;perspective-origin:50% 45%;touch-action:pan-y;user-select:none;-webkit-user-select:none;}
.gal-slider.is-3d .gtile{position:absolute;left:50%;top:8px;width:min(580px,86vw);height:min(400px,62vw);margin-left:calc(min(580px,86vw) / -2);border-radius:22px;cursor:pointer;
  box-shadow:0 30px 60px -34px rgba(35,50,56,.55);transition:transform .85s var(--hm-soft),opacity .5s ease,box-shadow .5s ease;will-change:transform;backface-visibility:hidden;}
.gal-slider.is-3d .gtile img{transform:translate3d(var(--px,0%),0,0) scale(1.14);transition:transform .9s var(--hm-soft);filter:saturate(1.08) contrast(1.04);-webkit-user-drag:none;pointer-events:none;}
.gal-slider.is-3d .gtile:hover img{transform:translate3d(var(--px,0%),0,0) scale(1.16);}
.gal-slider .gtile::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;border-radius:inherit;background:radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(20,34,38,.38) 100%);}
.gal-slider.is-3d .gtile.is-active{cursor:default;box-shadow:0 46px 90px -40px rgba(26,127,123,.6);}
.gal-slider.is-3d .gtag{display:none;}
.gal-slider .glabel{left:18px;right:auto;bottom:18px;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;background:rgba(255,255,255,.95);color:var(--hm-ink);text-shadow:none;font-size:.88rem;padding:8px 14px 8px 12px;border-radius:100px;box-shadow:0 10px 24px -12px rgba(0,0,0,.45);}
.gal-slider .glabel .gdot{background:#3AC8C4;box-shadow:none;}
.gal-slider .gtown{font-weight:400;color:#6B7B80;}
.gal-slider .gtown::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:#9AA8AC;margin:0 8px 2px 0;vertical-align:middle;}
.gal-slider.is-3d .glabel{opacity:0;transform:translate3d(0,8px,0);transition:opacity .35s ease,transform .5s var(--hm-soft);}
.gal-slider.is-3d .gtile.is-active .glabel{opacity:1;transform:none;transition-delay:.25s;}
.gal-ctrl{margin-top:6px;}
/* reduced motion / no JS: a simple scroll-snap row */
.gal-slider:not(.is-3d) .gallery{display:flex;grid-template-columns:none;grid-auto-rows:auto;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:8px;}
.gal-slider:not(.is-3d) .gtile{flex:0 0 min(78%,440px);height:300px;scroll-snap-align:center;}
@media(max-width:560px){.gal-slider.is-3d .gtile{border-radius:18px;}.gal-slider .glabel{font-size:.8rem;left:12px;bottom:12px;}}

/* =====================================================================
   CALCULATOR v2: visual selectors, 3D house, smooth period toggle
   ===================================================================== */
.cf-native{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0!important;padding:0;}
.calc-inputs{position:relative;}
.cv-group{border:0;padding:0;margin:0 0 20px;min-width:0;}
.cv-group legend{font-size:.84rem;font-weight:600;color:var(--ink);margin-bottom:10px;padding:0;}
.cv-types{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;}
.cv-type,.cv-chip{position:relative;}
.cv-type input,.cv-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.cv-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 9px;border:1.5px solid var(--line);border-radius:14px;background:#fff;color:#6B7B80;cursor:pointer;
  transition:transform .4s var(--hm-bounce),border-color .2s ease,background-color .2s ease,box-shadow .3s ease,color .2s ease;}
.cv-card:hover{border-color:rgba(58,200,196,.6);}
.cv-h{width:48px;height:36px;}
.cv-lbl{font-size:.8rem;font-weight:600;color:var(--ink);}
.cv-type input:checked+.cv-card{border-color:#3AC8C4;background:#EAF8F8;color:#1A7F7B;box-shadow:0 12px 24px -16px rgba(26,127,123,.7);transform:translateY(-3px);}
.cv-type input:focus-visible+.cv-card,.cv-chip input:focus-visible+span{outline:2px solid #3AC8C4;outline-offset:2px;}
.cv-chips{display:flex;flex-wrap:wrap;gap:8px;}
.cv-chip span{display:inline-flex;align-items:center;gap:6px;padding:7px 13px 7px 10px;border:1.5px solid var(--line);border-radius:100px;font-size:.84rem;font-weight:500;color:var(--ink);background:#fff;cursor:pointer;transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .35s var(--hm-bounce);}
.cv-chip svg{width:14px;height:14px;color:#1A7F7B;}
.cv-chip span:hover{border-color:rgba(58,200,196,.6);}
.cv-chip input:checked+span{background:#233238;border-color:#233238;color:#fff;transform:translateY(-2px);}
.cv-chip input:checked+span svg{color:#8FE0DD;}
.cv-iso{position:absolute;top:10px;right:14px;width:100px;height:92px;z-index:2;pointer-events:none;}
.cv-iso svg{width:100%;height:100%;overflow:visible;}
.cv-iso-h{transform-origin:60px 100px;transform:scale(var(--hs,.86));transition:transform .7s var(--hm-bounce);}
.cv-pool{transform-origin:105px 90px;opacity:0;transform:scale(.3);transition:opacity .3s ease,transform .6s var(--hm-bounce);}
.cv-iso[data-type="villa"] .cv-pool{opacity:1;transform:none;}
.calc-tabs .ct-ind{position:absolute;top:4px;bottom:4px;left:0;width:0;border-radius:100px;background:#fff;transition:transform .5s var(--hm-bounce),width .3s ease;z-index:0;}
.calc-tabs button{position:relative;z-index:1;transition:color .25s ease;}
.calc-tabs.has-ind button.on{background:transparent;}
.calc-tabs{margin-right:100px;}
.calc-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:24px;}
.calc-ctas .btn{margin-top:0;flex:1 1 auto;justify-content:center;}
.calc-wa svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.cf-num span{display:inline-block;}
@media(max-width:560px){.cv-types{gap:6px;}.cv-h{width:38px;height:30px;}.cv-lbl{font-size:.74rem;}.cv-chip span{font-size:.78rem;padding:6px 11px 6px 9px;}.cv-iso{width:78px;height:72px;top:8px;right:8px;}.calc-tabs{margin-right:74px;}}

/* =====================================================================
   CALCULATOR v3: guided steps, live scene, net to the owner, rent comparison
   ===================================================================== */
.calc{max-width:1100px;grid-template-columns:.92fr 1.08fr;align-items:stretch;}
.cv3{display:flex;flex-direction:column;}
.cv-prog{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:6px 8px;}
.cv-pstep{width:100%;display:flex;align-items:center;gap:8px;background:none;border:0;padding:4px 0 8px;font:600 .86rem var(--font-body);color:#6B7B80;cursor:pointer;text-align:left;}
.cv-pn{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid #C9DCDC;font-size:.76rem;color:#6B7B80;background:#fff;transition:background-color .3s ease,border-color .3s ease,color .3s ease,transform .4s var(--hm-bounce);}
.cv-pstep[aria-current="step"]{color:var(--ink);}
.cv-pstep[aria-current="step"] .cv-pn{background:#3AC8C4;border-color:#3AC8C4;color:#233238;transform:scale(1.08);}
.cv-pstep.done .cv-pn{background:#233238;border-color:#233238;color:#fff;}
.cv-pstep:focus-visible{outline:2px solid #3AC8C4;outline-offset:2px;border-radius:8px;}
.cv-bar{grid-column:1/-1;height:4px;border-radius:4px;background:#E3EFEF;overflow:hidden;}
.cv-bar span{display:block;height:100%;background:linear-gradient(90deg,#3AC8C4,#1A7F7B);transform-origin:0 50%;transform:scaleX(var(--cvp,.3333));transition:transform .55s var(--hm-soft);}
.cv-panels{display:grid;}
.cv-panel{grid-area:1/1;min-width:0;opacity:0;visibility:hidden;transform:translate3d(18px,0,0);transition:opacity .3s ease,transform .5s var(--hm-soft),visibility 0s linear .5s;}
.cv-panel.is-prev{transform:translate3d(-18px,0,0);}
.cv-panel.is-on{opacity:1;visibility:visible;transform:none;transition:opacity .35s ease .05s,transform .5s var(--hm-soft),visibility 0s;}
.cv-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:auto 0 0;padding-top:20px;}
.cv-sum>div{background:#F5FBFB;border:1px solid var(--line);border-radius:12px;padding:10px 12px;}
.cv-sum dt{font-size:.72rem;color:#6B7B80;margin-bottom:2px;}
.cv-sum dd{margin:0;font:700 1rem var(--font-display);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cv-nav{display:flex;align-items:center;gap:10px;padding-top:16px;}
.cv-nav .cv-next{margin-left:auto;}
.cv-nav .btn svg{width:16px;height:16px;stroke:currentColor;}
.cv-nav .btn{padding:12px 20px;}
.cv-extras{display:grid;gap:16px;}
.cv-flbl{display:block;font-size:.84rem;font-weight:600;color:var(--ink);margin-bottom:8px;}
.cv-opt{font-weight:400;color:#6B7B80;}
.cv-stepper{display:inline-flex;align-items:center;border:1.5px solid var(--line);border-radius:100px;background:#fff;}
.cv-sbtn{width:40px;height:40px;border:0;background:none;display:grid;place-items:center;cursor:pointer;color:var(--ink);border-radius:50%;}
.cv-sbtn svg{width:16px;height:16px;}
.cv-sbtn:hover{color:#1A7F7B;}
.cv-sbtn:focus-visible{outline:2px solid #3AC8C4;outline-offset:-2px;}
.cv-stepper output{min-width:34px;text-align:center;font:700 1.05rem var(--font-display);font-variant-numeric:tabular-nums;}
.cv-toggles{display:flex;flex-wrap:wrap;gap:8px;}
.cv-tog{position:relative;}
.cv-tog input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.cv-tog span{display:inline-flex;align-items:center;gap:6px;padding:7px 13px 7px 10px;border:1.5px solid var(--line);border-radius:100px;font-size:.84rem;font-weight:500;background:#fff;cursor:pointer;transition:background-color .2s ease,border-color .2s ease;}
.cv-tog svg{width:15px;height:15px;color:#1A7F7B;}
.cv-tog input:checked+span{background:#EAF8F8;border-color:#3AC8C4;}
.cv-tog input:focus-visible+span{outline:2px solid #3AC8C4;outline-offset:2px;}
.cv-note{font-size:.76rem;color:#6B7B80;margin-top:6px;}
.cv-rent{display:flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:12px;padding:0 12px;background:#fff;max-width:280px;transition:border-color .2s ease;}
.cv-rent span{color:#6B7B80;font-weight:600;}
.cv-rent input{border:0;outline:0;height:42px;font:500 1rem var(--font-body);width:100%;background:transparent;color:var(--ink);}
.cv-rent:focus-within{border-color:#3AC8C4;box-shadow:0 0 0 3px rgba(58,200,196,.15);}

.cv3r{padding:24px;}
.cz-scene{position:relative;margin:0 0 12px;border-radius:16px;overflow:hidden;}
.cz-scene svg{display:block;width:100%;height:auto;aspect-ratio:280/180;}
.cz-bg{opacity:0;transition:opacity .8s ease;}
.cz-bg.on{opacity:1;}
.cz-ring{stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset 1.1s var(--hm-soft);}
.cz-scene .cv-iso-h{transform-origin:140px 146px;transform:scale(var(--hs,.84));transition:transform .7s var(--hm-bounce);}
.cz-scene .cv-pool{transform-origin:178px 144px;opacity:0;transform:scale(.3);transition:opacity .3s ease,transform .6s var(--hm-bounce);}
.cz-scene[data-type="villa"] .cv-pool{opacity:1;transform:none;}
.cz-occ{position:absolute;right:10px;top:10px;background:rgba(35,50,56,.72);color:#fff;font-size:.74rem;border-radius:100px;padding:4px 10px;}
.cz-occ span{font-weight:700;color:#8FE0DD;font-variant-numeric:tabular-nums;}
.cv-stats{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:.78rem;color:rgba(255,255,255,.72);margin-bottom:12px;}
.cv-stats b{color:#fff;font-weight:600;margin-left:4px;font-variant-numeric:tabular-nums;}
.cv3r .cv-range{font-size:clamp(1.3rem,2.7vw,1.9rem);white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.15;}
.cv-range small{font-size:.8rem;font-weight:500;color:rgba(255,255,255,.7);}
.cv3r .cf-self{margin-top:6px;}
.cv-mid{margin-left:12px;opacity:.8;}
.cv-net{margin-top:14px;padding:14px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);}
.cv-net-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.cv-net-l{font-size:.74rem;text-transform:uppercase;letter-spacing:.12em;color:#8FE0DD;font-weight:700;}
.cv-net-h b{font:700 1.5rem var(--font-display);color:#fff;font-variant-numeric:tabular-nums;}
.cv-net-h small{color:rgba(255,255,255,.7);font-size:.78rem;}
.cv-break{position:relative;height:12px;border-radius:6px;background:rgba(255,255,255,.14);overflow:hidden;margin:12px 0 10px;}
.cv-break i{position:absolute;left:0;top:0;bottom:0;width:100%;transform-origin:0 50%;transform:translateX(0) scaleX(0);transition:transform .9s var(--hm-soft);}
.cv-break .cb-portal{background:#6B7B80;}
.cv-break .cb-mgmt{background:#3AC8C4;transition-delay:.15s;}
.cv-break .cb-net{background:#EAF8F8;transition-delay:.3s;}
.cv-legend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 14px;font-size:.74rem;color:rgba(255,255,255,.78);}
.cv-legend li{display:flex;align-items:center;gap:6px;}
.cv-legend b{margin-left:auto;color:#fff;font-variant-numeric:tabular-nums;font-weight:600;}
.cv-legend i{flex:none;width:9px;height:9px;border-radius:2px;}
.lg-gross{background:rgba(255,255,255,.3);}.lg-portal{background:#6B7B80;}.lg-mgmt{background:#3AC8C4;}.lg-net{background:#EAF8F8;}
.cv-clean{font-size:.74rem;color:rgba(255,255,255,.68);margin-top:8px;}
.cv-rentcmp{margin-top:12px;padding:12px 14px;border-radius:14px;background:rgba(58,200,196,.12);border:1px solid rgba(58,200,196,.3);}
.cv-rentmsg{font-weight:600;color:#fff;font-size:.92rem;margin-bottom:8px;}
.cv-bars>div{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:8px;font-size:.74rem;color:rgba(255,255,255,.78);margin-top:6px;}
.cv-bars i{position:relative;display:block;height:20px;border-radius:5px;background:rgba(255,255,255,.08);}
.cv-bars i::before{content:"";position:absolute;inset:0;border-radius:inherit;transform-origin:0 50%;transform:scaleX(var(--w,0));transition:transform .9s var(--hm-soft);background:#6B7B80;}
.cv-bars .rb-bg::before{background:#3AC8C4;}
.cv-bars b{position:relative;z-index:1;font-size:.74rem;padding-left:8px;line-height:20px;color:#fff;font-style:normal;font-variant-numeric:tabular-nums;}
.cv-tert{flex-basis:100%;display:flex;flex-wrap:wrap;gap:2px 16px;justify-content:center;}
.cv-link{background:none;border:0;color:rgba(255,255,255,.88);font:500 .84rem var(--font-body);display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:6px 2px;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(255,255,255,.3);}
.cv-link svg{width:15px;height:15px;}
.cv-link:hover{color:#8FE0DD;}
.cv-pop{position:absolute;left:16px;right:16px;bottom:16px;z-index:5;background:#fff;color:var(--ink);border-radius:16px;padding:18px 44px 16px 18px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);animation:hmBadge .35s var(--hm-soft);}
.cv-pop[hidden]{display:none;}
.cv-pop .calc-disc{color:var(--slate);font-size:.82rem;margin:0;line-height:1.55;}
.cv-pop .calc-disc b{color:var(--ink);}
.cv-pop-x{position:absolute;top:10px;right:10px;width:30px;height:30px;border:0;background:#EAF8F8;color:var(--ink);border-radius:50%;cursor:pointer;display:grid;place-items:center;}
.cv-pop-x svg{width:14px;height:14px;}
.cv-toast{position:absolute;left:50%;bottom:14px;z-index:6;transform:translate(-50%,10px);background:#fff;color:var(--ink);font-size:.82rem;font-weight:600;padding:8px 14px;border-radius:100px;box-shadow:0 12px 30px -12px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .35s var(--hm-bounce);}
.cv-toast.on{opacity:1;transform:translate(-50%,0);}
.cv3r.cv-reveal{animation:cvReveal 1s var(--hm-soft);}
.cv3r.cv-reveal .cz-house{animation:hmBounce .8s var(--hm-soft) .1s;transform-box:fill-box;transform-origin:50% 100%;}
@keyframes cvReveal{0%{box-shadow:0 0 0 0 rgba(58,200,196,.65),0 6px 0 #1A7F7B;}45%{box-shadow:0 0 0 12px rgba(58,200,196,.12),0 6px 0 #1A7F7B;}100%{box-shadow:0 0 0 0 rgba(58,200,196,0),0 6px 0 #1A7F7B;}}
@media(max-width:900px){.calc{grid-template-columns:1fr;}.cv-panel:not(.is-on){display:none;}.cv-sum{margin-top:18px;}}
.cv-nav [hidden],.cv-tert [hidden]{display:none!important;}
@media(max-width:560px){.cv3r{padding:18px;}.cv-legend{grid-template-columns:1fr;}.cv-bars>div{grid-template-columns:1fr;gap:4px;}.cv-prog .cv-pstep{font-size:.78rem;gap:6px;}.cv-mid{display:block;margin:4px 0 0;}.cv-nav .btn{padding:11px 16px;}}

/* =====================================================================
   CALCULATOR v4: one clean card, hand-drawn houses (assets/sketch.js, same style as the zone map)
   ===================================================================== */
.calc.v4{max-width:1080px;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch;}
.v4-in{display:flex;flex-direction:column;gap:2px;}
.v4-in .cv-group{margin-bottom:18px;}
.v4-types{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;}
.v4-type{position:relative;}
.v4-type input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.v4-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px 8px;border:1.5px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:transform .4s var(--hm-bounce),border-color .2s ease,background-color .2s ease,box-shadow .3s ease;}
.v4-card:hover{border-color:rgba(58,200,196,.6);}
.v4-type input:checked+.v4-card{border-color:#3AC8C4;background:#EAF8F8;box-shadow:0 12px 24px -16px rgba(26,127,123,.7);transform:translateY(-3px);}
.v4-type input:focus-visible+.v4-card{outline:2px solid #3AC8C4;outline-offset:2px;}
.v4-mini{position:relative;display:block;width:100%;height:64px;overflow:hidden;}
.v4-lbl{font-size:.8rem;font-weight:600;color:var(--ink);}
.v4-more{border:1.5px solid var(--line);border-radius:14px;background:#fff;margin-top:auto;}
.v4-more summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;font-size:.88rem;font-weight:600;color:var(--ink);border-radius:14px;}
.v4-more summary::-webkit-details-marker{display:none;}
.v4-more summary svg{width:16px;height:16px;color:#1A7F7B;transition:transform .3s var(--hm-soft);}
.v4-more[open] summary svg{transform:rotate(45deg);}
.v4-more summary:focus-visible{outline:2px solid #3AC8C4;outline-offset:2px;}
.v4-more-b{display:grid;gap:14px;padding:2px 14px 14px;}
.v4-more .cv-tog span{padding:6px 12px;}

.calc-result.v4-res{background:linear-gradient(165deg,#F4FBFB 0%,#E4F5F4 100%);border:1px solid #CFE8E7;color:var(--ink);box-shadow:var(--shadow);padding:22px 24px;display:flex;flex-direction:column;}
.calc-result.v4-res::before{display:none;}
.v4-stage{position:relative;height:170px;margin:-6px 0 4px;border-radius:16px;overflow:hidden;background:radial-gradient(70% 80% at 50% 70%,#FFFFFF 0%,rgba(255,255,255,0) 70%);}
.v4-anchor,.v4-pop,.v4-bob{position:absolute;inset:0;display:block;}
.v4-anchor{inset:8px 6px 10px;}
.v4-pop{transform-origin:50% 100%;}
.v4-pop.go{animation:hvPop .7s cubic-bezier(.22,1.2,.36,1) both;}
@keyframes hvPop{0%{opacity:0;transform:translateY(10px) scale(.92);}100%{opacity:1;transform:none;}}
.v4-house .sk{display:block;width:100%;height:100%;overflow:visible;}
.v4-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.v4-chip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #D6ECEB;border-radius:100px;padding:5px 12px;font-size:.78rem;color:#6B7B80;}
.v4-chip b{color:var(--ink);font-variant-numeric:tabular-nums;}
.v4-ring{width:16px;height:16px;}
.v4-ringfg{stroke-dasharray:327;stroke-dashoffset:327;transition:stroke-dashoffset 1s var(--hm-soft);}
.v4-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.v4-out{text-align:center;}
.v4-l{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1A7F7B;}
.v4-range{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink);margin-top:2px;}
.v4-range small{font-family:var(--font-body);font-size:.8rem;font-weight:500;color:#6B7B80;}
.v4-year{font-size:.82rem;color:#6B7B80;margin-top:2px;font-variant-numeric:tabular-nums;}
.v4-year span{color:var(--ink);font-weight:600;}
.v4-net{margin:14px 0 0;padding:12px 14px;border-radius:14px;background:#233238;color:#fff;text-align:left;}
.v4-net-h{display:flex;align-items:baseline;gap:8px;}
.v4-net-h span{font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8FE0DD;}
.v4-net-h b{font:700 1.45rem var(--font-display);font-variant-numeric:tabular-nums;}
.v4-net-h small{font-size:.78rem;color:rgba(255,255,255,.72);}
.v4-net .cv-break{height:8px;margin:10px 0 8px;}
.v4-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.72rem;color:rgba(255,255,255,.78);}
.v4-legend li{display:inline-flex;align-items:center;gap:5px;}
.v4-legend i{width:8px;height:8px;border-radius:2px;}
.v4-rentline{margin-top:10px;font-size:.88rem;font-weight:600;color:#1A7F7B;}
.v4-rentline[hidden]{display:none;}
.v4-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:16px;}
.v4-actions .btn{flex:1 1 200px;justify-content:center;margin-top:0;padding:13px 18px;}
.v4-actions .calc-wa svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;}
.v4-info{align-self:center;display:inline-flex;align-items:center;gap:6px;margin-top:10px;background:none;border:0;padding:4px;font:500 .84rem var(--font-body);color:#1A7F7B;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(26,127,123,.35);}
.v4-info svg{width:15px;height:15px;}
.v4-info:focus-visible{outline:2px solid #3AC8C4;outline-offset:2px;border-radius:6px;}
.v4-res .cv-pop{border:1px solid var(--line);}
.v4-res .cv-pop .calc-disc+.calc-disc{margin-top:8px;}
/* v4 layout: house and headline figures side by side, then the net, then actions */
.v4-top{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:6px;margin-bottom:12px;}
.v4-top .v4-stage{height:190px;margin:0;}
.v4-head{text-align:left;}
.v4-head .v4-range{font-size:clamp(1.25rem,2vw,1.6rem);}
.v4-range small{display:block;margin-top:2px;}
.v4-head .v4-stats{justify-content:flex-start;margin:12px 0 0;}
.v4-out{text-align:left;}
.v4-out .v4-net{margin-top:0;}
.v4-in .v4-more{margin-top:0;}
.v4-mini{height:80px;}
.v4-actions .btn{font-size:.9rem;padding:12px 14px;flex:1 1 230px;white-space:normal;text-align:center;line-height:1.25;}
@media(max-width:560px){.v4-top{grid-template-columns:1fr;gap:0;}.v4-top .v4-stage{height:150px;}.v4-head{text-align:center;}.v4-head .v4-stats{justify-content:center;}.v4-mini{height:56px;}}

/* hand-drawn tipologia tiles (assets/sketch.js) */
.v4-mini .sk{display:block;width:100%;height:100%;padding:4px 2px 0;box-sizing:border-box;}
.v4-type input:checked+.v4-card .v4-mini .sk{transform:translateY(-1px);}
@media(max-width:1180px){.v4-types{gap:6px;}.v4-lbl{font-size:.76rem;}}
@media(max-width:900px){.calc.v4{grid-template-columns:1fr;max-width:620px;}}
@media(max-width:560px){.v4-types{gap:5px;}.v4-mini{height:52px;}.v4-card{padding:4px 2px 6px;border-radius:12px;}.v4-lbl{font-size:.72rem;}.calc-result.v4-res{padding:18px;}.v4-stage{height:150px;}.v4-actions .btn{flex-basis:100%;}}

/* =====================================================================
   Reduced motion: final states, nothing moves on its own
   ===================================================================== */
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none;filter:none;}
  .js-hm .sec-head h2{-webkit-mask-image:none;mask-image:none;transform:none;}
  .how-js .how-stage{position:relative;top:auto;}
  .how-js .how-steps.steps{gap:18px;padding:0;}
  .dd-tilt{transform:rotateX(5deg) rotateY(-9deg);}
  .dash-device .bar::before{transform:scaleY(1);}
  .js-hm .dash-device .dd-chip{opacity:1;}
  .btn::after{display:none;}
  .hm-label{opacity:1;}
  .hm-replay.globe-hint{display:none;}
  .intro-ov{display:none!important;}
  .tv-fee{stroke-dashoffset:0;}.tv-own{stroke-dashoffset:-25;}.tv-fill{transform:none;}.tv-coin{opacity:0;}.tv-spark path{transform:none;}
  .js-hm .cmp:not(.in) .cmp-row .c svg{transform:none;}
  .calc-result::after,.lead-form::after{animation:none;}
}
.svc-slider.is-3d{overflow:hidden;margin:0 -24px;padding:0 24px;}
