.locations{margin-top:38px;padding:22px 24px;background:#fff;border:1px solid var(--line);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.locations strong{font:700 13px Manrope;margin-right:auto}.locations span{padding:9px 14px;border-radius:999px;background:#edf7f7;color:#236070;font-size:11px;font-weight:700}.contact-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.button.outline{margin-top:20px;background:transparent;color:#fff;border:1px solid #ffffff80;box-shadow:none}.button.outline:hover{background:#ffffff12}.contact-email{font-size:13px!important;color:#fff!important;margin-top:20px!important;font-weight:700}.project-card p{min-height:38px}.hero-foot>div:nth-child(2){padding-left:30px;border-left:1px solid #dfe8e8}

/* Abertura institucional Villas */
.is-loading{overflow:hidden}
.site-intro{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#f8f8f4;overflow:hidden}
.site-intro-mark{position:relative;z-index:2;display:flex;align-items:center;gap:18px;opacity:0;transform:translateY(22px);animation:intro-mark-in .8s cubic-bezier(.22,1,.36,1) .18s forwards}
.site-intro-mark img{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 10px 22px rgba(9,102,232,.12))}
.site-intro-mark span{color:#10203f;font:800 clamp(30px,4vw,58px)/1 Manrope;letter-spacing:-2.5px}
.site-intro-mark em{color:#0966e8;font-style:normal}
.site-intro>i{position:absolute;left:50%;top:calc(50% + 62px);width:0;height:3px;border-radius:99px;background:linear-gradient(90deg,#65c936,#0966e8,#20aeb8);transform:translateX(-50%);animation:intro-line 1s cubic-bezier(.22,1,.36,1) .45s forwards}
.site-intro.intro-leaving{pointer-events:none;animation:intro-exit .7s cubic-bezier(.77,0,.18,1) forwards}
.site-intro.intro-finished{display:none}
@keyframes intro-mark-in{to{opacity:1;transform:translateY(0)}}
@keyframes intro-line{to{width:min(310px,58vw)}}
@keyframes intro-exit{to{opacity:0;visibility:hidden;transform:translateY(-100%)}}
@media(max-width:560px){.site-intro-mark{gap:12px}.site-intro-mark img{width:54px;height:54px}.site-intro-mark span{letter-spacing:-1.7px}}
@media(prefers-reduced-motion:reduce){.site-intro.intro-leaving{animation:none;opacity:0;visibility:hidden}.site-intro-mark{animation:none;opacity:1;transform:none}.site-intro>i{animation:none;width:min(310px,58vw)}}
.hero-photo .status-card{width:238px;padding:18px 20px 17px}
.status-card .status-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:6px 0 12px;padding-top:0;border-top:0}
.status-card .status-card-logo{position:static;width:62px;height:44px;flex:0 0 62px;object-fit:contain;filter:drop-shadow(0 7px 12px rgba(16,32,63,.16))}
.status-card .status-card-title-row strong{max-width:118px;margin:0;font-size:17px;line-height:1.25}
@media(max-width:900px){.nav nav a{display:block}.nav nav{gap:18px!important}.locations strong{width:100%;margin-bottom:5px}.contact-actions{align-items:flex-start;flex-direction:column}.button.outline{margin-top:0}.hero-copy{max-width:600px}}
@media(max-width:560px){.hero{min-height:940px}.hero-art{top:575px}.project-card p{min-height:0}.locations span{flex:1;text-align:center}}
.hero-photo{overflow:hidden;border-radius:8px;box-shadow:0 28px 60px #173c5933}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.hero-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#0f2a4555);pointer-events:none}.provisional-badge,.project-visual small,.about-photo>small{position:absolute;z-index:7;left:14px;bottom:14px;background:#10203fcc;color:#fff;padding:6px 9px;border-radius:3px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.project-card:hover .project-visual img{transform:scale(1.035)}.crop-left img{object-position:14% center}.crop-center img{object-position:50% center}.crop-right img{object-position:88% center}.about-photo{display:block}.about-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10203f08 25%,#10203fd9 100%)}.about-photo>img{width:100%;height:100%;object-fit:cover;object-position:50% center;display:block}.about-photo>span{z-index:3}.about-photo>small{bottom:auto;top:20px}.project-visual small{left:auto;right:10px;bottom:10px}.hero-photo .status-card{z-index:8}
.hero-photo .hero-video-poster,.hero-photo .hero-background-video{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.hero-photo .hero-video-poster{z-index:0}
.hero-photo .hero-background-video{z-index:1;opacity:0;transition:opacity .75s ease;background:transparent}
.hero-photo .hero-background-video.video-ready{opacity:1}
.hero-photo:after{z-index:2}
@media(max-width:900px){.hero-photo{height:400px}.about-photo{min-height:420px}}
@media(max-width:560px){.hero-photo{height:320px}.about-photo{min-height:360px}.provisional-badge{left:10px;bottom:10px}}
.amenity-steps>div{padding:0 18px 28px;overflow:hidden}.amenity-steps>div:first-child{padding-top:0}.amenity-photo{height:178px;margin:0 -18px 24px;position:relative;overflow:hidden;background:#dce7e7}.amenity-photo img{width:400%;height:100%;max-width:none;object-fit:cover;display:block}.crop-amenity-1 img{transform:translateX(0)}.crop-amenity-2 img{transform:translateX(-25%)}.crop-amenity-3 img{transform:translateX(-50%)}.crop-amenity-4 img{transform:translateX(-75%)}.amenity-photo small{position:absolute;right:10px;bottom:10px;background:#10203fcc;color:#fff;padding:6px 8px;border-radius:3px;font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.amenity-steps b{display:block;margin-top:0}.amenity-steps i{margin:22px 0 18px}.amenity-steps .active{padding-top:0}.amenity-steps>div:hover .amenity-photo img{filter:saturate(1.08);transition:.3s}
@media(max-width:900px){.amenity-photo{height:220px}}
@media(max-width:560px){.amenity-photo{height:245px}.amenity-steps>div{padding-bottom:35px}}
.amenity-photo img{position:absolute;top:50%;left:0;width:400%;height:auto;object-fit:initial}.crop-amenity-1 img{transform:translate(0,-50%)}.crop-amenity-2 img{transform:translate(-25%,-50%)}.crop-amenity-3 img{transform:translate(-50%,-50%)}.crop-amenity-4 img{transform:translate(-75%,-50%)}
.icon-ring{display:grid;place-items:center;width:50px;height:50px;margin:22px 0 18px;border:1px solid #ccd4d3;border-radius:50%;color:var(--blue);background:#fff;transition:.25s}.icon-ring svg,.icon-ring img,.icon-ring>i{width:24px!important;height:24px!important;margin:0!important;border:0!important;border-radius:0!important;color:inherit!important}.amenity-steps>div:hover .icon-ring{color:#fff;background:var(--blue);border-color:var(--blue);transform:translateY(-2px)}
.amenity-photo{height:235px}
@media(max-width:900px){.amenity-photo{height:250px}}
@media(max-width:560px){.amenity-photo{height:270px}}
.amenity-photo{height:auto!important;aspect-ratio:1 / 2}
.nav nav{gap:28px}.social-proof{padding:110px clamp(24px,7vw,110px);background:#fff}.social-proof .section-head{margin-bottom:48px}

.proof-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.proof-grid article{padding:0;min-height:0;border-right:1px solid var(--line);transition:background .3s,box-shadow .3s,transform .3s;position:relative;overflow:hidden;display:flex;flex-direction:column}
.proof-grid article:last-child{border-right:0}
.proof-grid article::before{content:"";display:block;height:3px;width:100%;background:var(--line);transition:background .3s;flex-shrink:0}
.proof-grid article:hover::before{background:var(--blue)}
.proof-grid article:first-child::before{background:var(--green)}
.proof-grid article:hover{background:#f7fbff;transform:translateY(-4px);box-shadow:0 24px 48px #163d5018}
.proof-icon{position:absolute;top:24px;right:22px;width:32px;height:32px;border-radius:8px;background:#f0f7ff;color:var(--blue);display:grid;place-items:center;transition:background .25s,color .25s}
.proof-icon svg,.proof-icon>i{width:16px!important;height:16px!important;margin:0!important;border:0!important;color:inherit!important}
.proof-grid article:hover .proof-icon{background:var(--blue);color:#fff}
.proof-grid article>strong{display:block;font:800 clamp(62px,6vw,88px)/1 Manrope;color:var(--ink);letter-spacing:-5px;padding:32px 28px 20px;transition:color .25s}
.proof-grid article:hover>strong{color:var(--blue)}
.proof-grid h3{font:700 14px/1.3 Manrope;margin:0;padding:16px 28px 6px;border-top:1px solid var(--line);letter-spacing:-.2px;color:var(--ink)}
.proof-grid p{font-size:12px;line-height:1.65;color:#84909f;margin:0;padding:0 28px 28px}
.proof-message{margin-top:18px;background:var(--ink);color:#fff;padding:46px 50px;display:grid;grid-template-columns:auto minmax(300px,1fr) auto;align-items:center;gap:30px;position:relative;overflow:hidden}.proof-message:after{content:"";position:absolute;width:250px;height:250px;border:45px solid #ffffff0c;transform:rotate(45deg);right:-90px;top:-100px}.quote-mark{font:700 72px/1 Georgia;color:var(--green);align-self:start}.proof-message blockquote{font:600 clamp(20px,2vw,30px)/1.45 Manrope;margin:0;max-width:820px;letter-spacing:-1px}.proof-source{display:flex;align-items:center;gap:12px;min-width:185px}.proof-source strong,.proof-source small{display:block}.proof-source strong{font-size:12px}.proof-source small{color:#9daabe;font-size:10px;margin-top:4px}.proof-message>a{grid-column:3;font-size:11px;font-weight:700;color:#8fd2dd;z-index:2}.proof-message .proof-source{grid-column:2}.proof-message blockquote{grid-column:2 / 4}.proof-message .quote-mark{grid-row:1 / 3}.proof-message>a{grid-row:2}
@media(max-width:1100px){.proof-grid{grid-template-columns:1fr 1fr}.proof-grid article:nth-child(2){border-right:0}.proof-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}.proof-message{grid-template-columns:auto 1fr}.proof-message blockquote{grid-column:2}.proof-message .proof-source{grid-column:2}.proof-message>a{grid-column:2;grid-row:auto}.nav nav{gap:20px}}
@media(max-width:650px){.social-proof{padding:75px 22px}.proof-grid{grid-template-columns:1fr}.proof-grid article{min-height:auto;border-right:0;border-bottom:1px solid var(--line)!important}.proof-grid article:last-child{border-bottom:0!important}.proof-message{padding:35px 26px;grid-template-columns:1fr}.proof-message .quote-mark,.proof-message blockquote,.proof-message .proof-source,.proof-message>a{grid-column:1;grid-row:auto}.quote-mark{height:35px}.proof-message blockquote{font-size:20px}}
.buyers-block{margin-top:70px}.buyers-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:30px}.buyers-heading h3{font:700 clamp(30px,4vw,48px)/1.05 Manrope;letter-spacing:-3px;margin:18px 0 0}.buyers-heading>p{max-width:430px;color:#84909f;line-height:1.7}.buyers-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.buyer-card{background:#f4f6f3;border:1px solid #e0e6e4}.buyer-photo{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:linear-gradient(145deg,#eaf3f0,#dbe8e8);color:#728396;position:relative;overflow:hidden}.buyer-photo:after{content:"";position:absolute;width:170px;height:170px;border:1px solid #c5d8d5;border-radius:50%;right:-60px;top:-70px}.buyer-photo>span{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#fff;color:var(--blue);margin-bottom:15px;box-shadow:0 12px 28px #183e4c16}.buyer-photo svg,.buyer-photo i{width:23px!important;height:23px!important;margin:0!important;border:0!important}.buyer-photo strong{font:700 13px Manrope;color:var(--ink)}.buyer-photo small{font-size:9px;text-transform:uppercase;letter-spacing:1px;margin-top:6px}.buyer-info{padding:23px 24px 26px}.buyer-info>strong{font:700 16px Manrope}.buyer-info>span{display:block;color:var(--blue);font-size:10px;font-weight:700;margin:5px 0 17px;text-transform:uppercase;letter-spacing:.8px}.buyer-info p{font:500 12px/1.65 Manrope;color:#738193;margin:0}.buyer-card:hover .buyer-photo>span{transform:scale(1.06);transition:.25s}.buyers-block+.proof-message{margin-top:70px}
@media(max-width:900px){.buyers-gallery{grid-template-columns:1fr 1fr}.buyer-card:last-child{grid-column:1/-1;max-width:50%;width:calc(50% - 9px)}.buyers-heading{display:block}}
@media(max-width:600px){.buyers-block{margin-top:55px}.buyers-gallery{grid-template-columns:1fr}.buyer-card:last-child{grid-column:auto;max-width:none;width:auto}.buyers-heading h3{letter-spacing:-2px}.buyers-block+.proof-message{margin-top:50px}}
.customer-photo{display:block;position:relative;background:#dbe8e8}.customer-photo:after{content:"";position:absolute;inset:0;width:auto;height:auto;border:0;border-radius:0;background:linear-gradient(180deg,transparent 62%,#10203f99 100%);right:auto;top:auto;pointer-events:none}.customer-photo>img{position:absolute;top:50%;left:0;width:300%;height:auto;max-width:none;display:block}.customer-1>img{transform:translate(0,-50%)}.customer-2>img{transform:translate(-33.333%,-50%)}.customer-3>img{transform:translate(-66.666%,-50%)}.customer-photo>small{position:absolute;z-index:3;left:12px;bottom:12px;color:#fff;background:#10203fcc;border-radius:3px;padding:6px 8px;font-size:8px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.buyer-card:hover .customer-photo>img{filter:saturate(1.06);transition:.3s}
.customer-photo{aspect-ratio:1 / 1.12}.customer-photo>img{width:215%;top:49%}.customer-1>img{transform:translate(6.6%,-49%)}.customer-2>img{transform:translate(-26.7%,-49%)}.customer-3>img{transform:translate(-60.1%,-49%)}
.customer-photo{aspect-ratio:4 / 5;background:#dbe8e8}.customer-photo>img{position:static;width:100%;height:100%;max-width:100%;object-fit:cover;object-position:center;transform:none!important;display:block}.buyer-card:first-child .customer-photo>img{object-position:center 42%}.buyer-card:nth-child(2) .customer-photo>img{object-position:center 42%}.buyer-card:nth-child(3) .customer-photo>img{object-position:center 38%}
.hero-foot{right:auto;width:42%;max-width:650px;gap:20px;align-items:stretch}.hero-foot>div:not(.scroll){flex:1;min-width:0;align-items:flex-start}.hero-foot>div:nth-child(2){padding-left:22px}.hero-foot strong{font-size:clamp(20px,2vw,27px);white-space:nowrap}.hero-foot>div>span{max-width:130px}.hero-foot .scroll{display:none}
@media(max-width:1180px) and (min-width:901px){.hero-foot{width:43%;gap:12px}.hero-foot>div:nth-child(2){padding-left:15px}.hero-foot strong{font-size:21px}.hero-foot>div>span{font-size:9px}}
.cta{isolation:isolate}.cta-content{position:relative;z-index:4}.cta-pattern{z-index:1;animation:ctaPatternDrift 12s ease-in-out infinite alternate}.cta-pattern i{animation:ctaFloat 8s ease-in-out infinite}.cta-pattern b{animation:ctaFloat 10s ease-in-out -3s infinite reverse}.cta-pattern em{animation:ctaFloat 9s ease-in-out -5s infinite}.cta-content.visible>*{animation:ctaContentIn .75s cubic-bezier(.2,.75,.2,1) both}.cta-content.visible>*:nth-child(2){animation-delay:.08s}.cta-content.visible>*:nth-child(3){animation-delay:.16s}.cta-content.visible>*:nth-child(4){animation-delay:.24s}.cta-content.visible>*:nth-child(5){animation-delay:.32s}.cta h2 em{display:inline-block;position:relative}.cta h2 em:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:3px;background:var(--green);transform-origin:left;animation:ctaUnderline 2.2s ease-in-out infinite alternate}.magnetic-button{will-change:transform;transition:transform .18s ease,background .25s,color .25s,box-shadow .25s}.magnetic-button span{transition:transform .25s}.magnetic-button:hover span{transform:translate(3px,-3px)}#cta-motion-root{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.cta-motion{position:absolute;inset:0}.cta-glow{position:absolute;width:520px;height:520px;right:7%;top:5%;border-radius:50%;background:radial-gradient(circle,#82d65626 0,transparent 67%);filter:blur(12px);transition:transform .35s ease-out}.cta-motion>span{position:absolute;display:block;transform:translate3d(var(--mx),var(--my),0);transition:transform .3s ease-out}.motion-diamond{width:165px;height:165px;border:35px solid #ffffff24;transform:translate3d(var(--mx),var(--my),0) rotate(45deg)!important}.motion-diamond-a{right:12%;top:11%;animation:diamondSpin 22s linear infinite}.motion-diamond-b{right:24%;bottom:-35px;border-color:#77d05136;animation:diamondSpinReverse 28s linear infinite}.motion-ring{width:250px;height:250px;border:1px solid #ffffff24;border-radius:50%;right:3%;bottom:4%;animation:ringPulse 5s ease-in-out infinite}.motion-orb{border-radius:50%;background:#fff;box-shadow:0 0 25px #fff8}.motion-orb-a{width:7px;height:7px;right:38%;top:19%;animation:orbFloat 5s ease-in-out infinite}.motion-orb-b{width:5px;height:5px;right:9%;top:56%;animation:orbFloat 7s ease-in-out -2s infinite}
@keyframes ctaContentIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes ctaUnderline{from{transform:scaleX(.18);opacity:.55}to{transform:scaleX(1);opacity:1}}@keyframes ctaPatternDrift{to{transform:skew(-13deg) translate3d(-24px,14px,0)}}@keyframes ctaFloat{0%,100%{margin-top:0}50%{margin-top:-18px}}@keyframes diamondSpin{to{rotate:360deg}}@keyframes diamondSpinReverse{to{rotate:-360deg}}@keyframes ringPulse{0%,100%{scale:.88;opacity:.35}50%{scale:1.08;opacity:.8}}@keyframes orbFloat{0%,100%{margin-top:0;opacity:.4}50%{margin-top:-28px;opacity:1}}
@media(max-width:900px){.motion-diamond-a{right:-5%}.motion-diamond-b{right:5%}.cta-glow{right:-20%}.motion-ring{right:-20%}}
@media(prefers-reduced-motion:reduce){.cta-pattern,.cta-pattern *,.cta-motion>*,.cta-content.visible>*,.cta h2 em:after{animation:none!important;transition:none!important}.cta-content.visible>*{opacity:1;transform:none}.cta-motion>span{transform:none!important}}
.cta-title{display:flex;flex-direction:column;align-items:flex-start}.cta-title-clip{display:block;overflow:hidden;padding:0 .06em .08em 0;margin-bottom:-.08em}.cta-title-line{display:block;will-change:transform,opacity}.cta-title-accent{background:linear-gradient(90deg,#91dc5f 0%,#c2f197 45%,#91dc5f 80%);background-size:200% 100%;background-position:0 50%;color:transparent!important;background-clip:text;-webkit-background-clip:text}.gsap-ready .cta-content.visible>*{animation:none}.gsap-ready .cta-title-line,.gsap-ready .cta-kicker,.gsap-ready .cta-description,.gsap-ready .cta-actions .button,.gsap-ready .cta-email{visibility:visible}.cta-title-accent:after{display:none}.cta-kicker>span{transform-origin:left;animation:kickerPulse 1.8s ease-in-out infinite alternate}@keyframes kickerPulse{from{transform:scaleX(.7)}to{transform:scaleX(1.25)}}
@media(prefers-reduced-motion:reduce){.cta-title-line,.cta-kicker,.cta-description,.cta-actions .button,.cta-email{opacity:1!important;transform:none!important;filter:none!important}.cta-kicker>span{animation:none}}
.proof-card{position:relative;overflow:hidden;will-change:auto}
.proof-card:after{content:"";position:absolute;inset:-45%;background:linear-gradient(105deg,transparent 42%,#0870ed07 50%,transparent 58%);transform:translateX(-55%) rotate(8deg);transition:transform .6s ease;pointer-events:none;z-index:0}
.proof-card:hover:after{transform:translateX(55%) rotate(8deg)}
.proof-grid article:first-child::before{background:var(--green)}
.proof-grid article:first-child .proof-icon{background:#edfae0;color:#55a731}
.proof-grid article:first-child:hover .proof-icon{background:var(--green);color:#fff}
.proof-number{font-variant-numeric:tabular-nums;display:inline-block;letter-spacing:-5px}
.proof-card h3,.proof-card p,.proof-number{position:relative;z-index:2}
.proof-card .proof-icon{position:absolute;z-index:2}
@media(prefers-reduced-motion:reduce){.proof-card,.proof-icon,.proof-number,.proof-card h3,.proof-card p{opacity:1!important;transform:none!important}.proof-card:after{display:none}}

/* Movimento suave somente no fundo da mensagem institucional */
.proof-message{isolation:isolate}
.proof-message>*{position:relative;z-index:1}
.proof-message::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:-55% -25%;
  pointer-events:none;
  background:radial-gradient(circle at center,rgba(22,168,201,.2) 0,rgba(9,102,232,.08) 34%,transparent 68%);
  transform:translate3d(-28%,8%,0) rotate(-8deg);
  animation:proofBackgroundGlow 9s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
.proof-message::after{
  z-index:0;
  pointer-events:none;
  animation:proofDiamondDrift 11s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@keyframes proofBackgroundGlow{
  from{transform:translate3d(-28%,8%,0) rotate(-8deg);opacity:.55}
  to{transform:translate3d(24%,-6%,0) rotate(8deg);opacity:1}
}
@keyframes proofDiamondDrift{
  from{transform:translate3d(0,0,0) rotate(45deg) scale(.96);opacity:.65}
  to{transform:translate3d(-42px,26px,0) rotate(55deg) scale(1.08);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .proof-message::before,.proof-message::after{animation:none!important}
}

.consultant-button{min-width:310px;white-space:nowrap}
.cta-actions .button{opacity:1!important;visibility:visible!important}
.cta-actions{gap:22px}
.cta-actions .cta-link-button{width:min(100%,390px);min-height:64px;margin-top:20px;padding:17px 24px;display:inline-flex;align-items:center;justify-content:space-between;gap:20px;transform:none;isolation:isolate}
.cta-actions .cta-link-button:hover{transform:translateY(-2px)}
.cta-actions .cta-link-button:active{transform:translateY(0)}
.cta-actions .cta-link-button>span{min-width:0;font-size:14px;line-height:1.35;text-align:left}
.cta-arrow-icon{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .22s ease}
.cta-link-button:hover .cta-arrow-icon{transform:translate(2px,-2px)}
.cta-link-button:focus-visible{outline:3px solid rgba(255,255,255,.72);outline-offset:4px}
@media(max-width:560px){.consultant-button{min-width:0;width:100%;white-space:normal;line-height:1.35}}

/* Microanimações dos botões */
.btn-shimmer {
  position: relative;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
}
.btn-shimmer::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,0) 30%, rgba(255,255,255,0.25) 50%, rgba(255,255,255,0) 70%, transparent 100%);
  transition: left 0.7s cubic-bezier(0.23, 1, 0.32, 1);
}
.btn-shimmer:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(9,102,232,0.32);
  background: #0759ce;
}
.btn-shimmer:hover::before { left: 130%; }
.btn-shimmer:active { transform: translateY(0); }
.button.white.btn-shimmer::before {
  background: linear-gradient(120deg, transparent 0%, rgba(9,102,232,0) 30%, rgba(9,102,232,0.16) 50%, rgba(9,102,232,0) 70%, transparent 100%);
}
.button.white.btn-shimmer:hover {
  color: var(--blue);
  background: #fff;
  box-shadow: 0 8px 24px rgba(5,37,91,0.22);
}

.btn-outline-anim {
  position: relative;
  overflow: hidden;
  transition: color 0.35s cubic-bezier(0.23,1,0.32,1), transform 0.35s cubic-bezier(0.23,1,0.32,1), box-shadow 0.35s cubic-bezier(0.23,1,0.32,1);
  z-index: 0;
}
.btn-outline-anim::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background: rgba(255,255,255,0.15);
  transition: width 0.4s cubic-bezier(0.23,1,0.32,1);
  z-index: -1;
}
.btn-outline-anim:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(255,255,255,0.12);
}
.btn-outline-anim:hover::before { width: 100%; }
.btn-outline-anim:active { transform: translateY(0); }

.btn-arrow-slide {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 245px;
  padding-left: 42px;
  padding-right: 50px;
  overflow: hidden;
  transition: all 0.5s cubic-bezier(0.23,1,0.32,1);
}
.btn-arrow-slide .arr-icon-1,
.btn-arrow-slide .arr-icon-2 {
  position: absolute;
  transition: all 0.6s cubic-bezier(0.23,1,0.32,1);
  font-style: normal;
  font-size: 20px;
  line-height: 1;
  z-index: 2;
}
.btn-arrow-slide .arr-icon-1 { right: 14px; }
.btn-arrow-slide .arr-icon-2 { left: -20px; opacity: 0; }
.btn-arrow-slide .arr-circle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 0;
  height: 0;
  background: rgba(255,255,255,0.12);
  border-radius: 50%;
  transition: all 0.6s cubic-bezier(0.23,1,0.32,1);
  pointer-events: none;
  z-index: 0;
}
.btn-arrow-slide .arr-label {
  position: relative;
  z-index: 1;
  font-size: 14px;
  line-height: 1.35;
  white-space: nowrap;
  transform: translateX(-8px);
  transition: all 0.6s cubic-bezier(0.23,1,0.32,1);
}
.btn-arrow-slide:hover .arr-icon-1 { right: -20px; opacity: 0; }
.btn-arrow-slide:hover .arr-icon-2 { left: 14px; opacity: 1; }
.btn-arrow-slide:hover .arr-label { transform: translateX(8px); }
.btn-arrow-slide:hover .arr-circle { width: 280px; height: 280px; }
.btn-arrow-slide:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(9,102,232,0.32);
}
.btn-arrow-slide:active { transform: scale(0.97); }

.project-card > a { transition: color 0.2s, gap 0.3s; }
.project-card > a:hover { color: #0759ce; }
.project-card > a span {
  display: inline-block;
  transition: transform 0.3s cubic-bezier(0.23,1,0.32,1);
}
.project-card > a:hover span { transform: translate(3px, -3px); }

@media (prefers-reduced-motion: reduce) {
  .btn-shimmer,
  .btn-shimmer::before,
  .btn-outline-anim,
  .btn-outline-anim::before,
  .btn-arrow-slide,
  .btn-arrow-slide *,
  .project-card > a span { transition: none !important; }
  .btn-shimmer:hover,
  .btn-outline-anim:hover,
  .btn-arrow-slide:hover,
  .btn-arrow-slide:hover .arr-label,
  .project-card > a:hover span { transform: none !important; }
}

@media (max-width: 560px) {
  .cta-actions { gap: 14px; }
  .btn-arrow-slide {
    min-width: 0;
    width: 100%;
  }
}

/* Atmosfera animada no fundo da seção de contato */
.cta::before {
  content:"";
  position:absolute;
  z-index:0;
  inset:-45%;
  pointer-events:none;
  background:
    radial-gradient(circle at 30% 35%,rgba(117,200,66,.18) 0,transparent 24%),
    radial-gradient(circle at 72% 58%,rgba(22,168,201,.24) 0,transparent 28%),
    radial-gradient(circle at 52% 80%,rgba(255,255,255,.08) 0,transparent 20%);
  animation:ctaAmbientOrbit 16s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
.cta::after {
  content:"";
  position:absolute;
  z-index:0;
  inset:0;
  pointer-events:none;
  opacity:.3;
  background:linear-gradient(115deg,transparent 22%,rgba(255,255,255,.09) 45%,transparent 66%);
  background-size:220% 100%;
  animation:ctaBackgroundSweep 11s ease-in-out infinite;
}
@keyframes ctaAmbientOrbit {
  from{transform:translate3d(-4%,-3%,0) rotate(-4deg) scale(.94);opacity:.62}
  to{transform:translate3d(5%,4%,0) rotate(5deg) scale(1.06);opacity:1}
}
@keyframes ctaBackgroundSweep {
  0%,18%{background-position:180% 0;opacity:.12}
  52%{opacity:.34}
  82%,100%{background-position:-120% 0;opacity:.12}
}
@media(prefers-reduced-motion:reduce){
  .cta::before,.cta::after{animation:none!important}
}

/* Quadrados animados no fundo da seção Villas Construtora */
.about-copy{
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.about-copy>:not(.about-motion){position:relative;z-index:2}
.about-motion{
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.about-motion i{
  position:absolute;
  display:block;
  width:180px;
  height:180px;
  border:34px solid rgba(74,145,240,.16);
  transform:rotate(45deg);
  will-change:transform,opacity;
}
.about-motion i:nth-child(1){
  width:220px;height:220px;right:-58px;top:-105px;
  border-color:rgba(91,157,245,.2);
  animation:aboutSquareFloat 14s ease-in-out infinite alternate;
}
.about-motion i:nth-child(2){
  width:150px;height:150px;right:20%;top:34%;
  border-width:28px;border-color:rgba(22,168,201,.16);
  animation:aboutSquareDrift 12s ease-in-out -3s infinite alternate;
}
.about-motion i:nth-child(3){
  width:250px;height:250px;right:-105px;bottom:-150px;
  border-width:42px;border-color:rgba(255,255,255,.1);
  animation:aboutSquareFloat 17s ease-in-out -6s infinite alternate-reverse;
}
.about-motion i:nth-child(4){
  width:118px;height:118px;left:7%;bottom:-70px;
  border-width:24px;border-color:rgba(117,200,66,.15);
  animation:aboutSquareDrift 11s ease-in-out -2s infinite alternate-reverse;
}
@keyframes aboutSquareFloat{
  from{transform:translate3d(0,0,0) rotate(42deg) scale(.94);opacity:.55}
  to{transform:translate3d(-32px,28px,0) rotate(52deg) scale(1.06);opacity:1}
}
@keyframes aboutSquareDrift{
  from{transform:translate3d(-12px,18px,0) rotate(38deg);opacity:.45}
  to{transform:translate3d(28px,-24px,0) rotate(50deg);opacity:.9}
}
@media(max-width:900px){
  .about-motion i:nth-child(2){right:8%}
  .about-motion i:nth-child(4){left:2%}
}
@media(prefers-reduced-motion:reduce){
  .about-motion i{animation:none!important}
}

/* Entrada sequencial dos textos principais */
.hero-copy .eyebrow,
.hero-title-animated>span,
.hero-copy .lead{
  opacity:0;
  will-change:transform,opacity,filter;
}
.hero-title-animated{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.hero-title-animated>span{display:block}
.hero-copy.visible .eyebrow{
  animation:heroEyebrowIn .62s cubic-bezier(.2,.75,.2,1) .08s both;
}
.hero-copy.visible .hero-title-animated>span:first-child{
  animation:heroTitleIn .82s cubic-bezier(.16,1,.3,1) .2s both;
}
.hero-copy.visible .hero-title-animated>span:last-child{
  animation:heroTitleIn .82s cubic-bezier(.16,1,.3,1) .34s both;
}
.hero-copy.visible .lead{
  animation:heroLeadIn .72s cubic-bezier(.2,.75,.2,1) .52s both;
}
@keyframes heroEyebrowIn{
  from{opacity:0;transform:translate3d(-24px,0,0);filter:blur(5px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
@keyframes heroTitleIn{
  from{opacity:0;transform:translate3d(0,42px,0);filter:blur(7px)}
  to{opacity:1;transform:none;filter:blur(0)}
}
@keyframes heroLeadIn{
  from{opacity:0;transform:translate3d(0,22px,0)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  .hero-copy .eyebrow,.hero-title-animated>span,.hero-copy .lead{
    opacity:1!important;
    transform:none!important;
    filter:none!important;
    animation:none!important;
  }
}

/* =========================================================
   RESPONSIVIDADE GERAL — celular, tablet, notebook e desktop
   ========================================================= */
html,body{max-width:100%;overflow-x:hidden}
img,video{max-width:100%}
main,section,footer{min-width:0}
.section-head>*,.hero-copy,.about-copy,.proof-message>*{min-width:0}
h1,h2,h3,p,blockquote{overflow-wrap:break-word}
.brand-symbol{display:block;width:44px;height:auto;flex:0 0 auto;object-fit:contain}
.proof-source .brand-symbol-small{width:50px}
footer .brand-symbol{width:42px}

/* Notebooks e tablets horizontais */
@media(max-width:1180px){
  .nav{padding-inline:28px;gap:24px}
  .nav nav{gap:15px;font-size:12px}
  .button-small{padding:11px 14px;font-size:12px}
  .hero{padding-inline:48px}
  .hero-copy{max-width:55%}
  .hero-art{right:3%;width:42%}
  .projects,.journey,.social-proof{padding-inline:48px}
  .about-copy{padding:78px 7%}
  .about h2{font-size:clamp(39px,4.7vw,58px)}
  .cta{padding-inline:58px}
}

@media(max-width:1050px) and (min-width:981px){
  .nav>.button{display:none}
  .nav nav{margin-left:auto;margin-right:0}
  .hero-copy{max-width:57%}
  .hero-foot{width:52%}
}

/* Menu compacto e capa em fluxo natural */
@media(max-width:980px){
  .nav{height:78px;padding-inline:24px;justify-content:space-between}
  .nav>.button{display:none}
  .nav nav{
    display:none;
    position:absolute;
    top:78px;
    left:0;
    right:0;
    margin:0;
    padding:18px 24px 24px;
    background:#fff;
    border-top:1px solid #edf0ef;
    box-shadow:0 18px 34px #10203f18;
    flex-direction:column;
    align-items:stretch;
    gap:0!important;
    z-index:30;
  }
  .nav nav a{display:block;padding:13px 4px;border-bottom:1px solid #edf0ef;font-size:14px}
  .nav nav a:last-child{border-bottom:0}
  .nav.menu-open nav{display:flex}
  .menu{display:block;position:relative;width:42px;height:42px;padding:8px;z-index:31}
  .menu span{display:block;width:24px;height:2px;margin:6px auto;background:var(--ink);transition:transform .25s,opacity .25s}
  .nav.menu-open .menu span:first-child{transform:translateY(4px) rotate(45deg)}
  .nav.menu-open .menu span:last-child{transform:translateY(-4px) rotate(-45deg)}

  .hero{
    min-height:0;
    padding:64px 40px 42px;
    display:flex;
    flex-direction:column;
    background:linear-gradient(180deg,#fff 0 52%,#edf7f7 52% 100%);
  }
  .hero-copy{max-width:760px;width:100%}
  .hero-art{
    position:relative;
    inset:auto;
    width:100%;
    height:clamp(340px,52vw,500px);
    margin-top:48px;
  }
  .hero-foot{
    position:relative;
    inset:auto;
    width:100%;
    max-width:none;
    margin-top:26px;
    display:flex;
    gap:26px;
  }
  .hero-foot>div{flex:0 1 auto!important}
  .hero-foot>div:nth-child(2){padding-left:26px}

  .projects,.journey,.social-proof{padding:84px 40px}
  .section-head{gap:28px;margin-bottom:42px}
  .section-head h2{font-size:clamp(38px,6vw,58px)}
  .project-grid{grid-template-columns:1fr 1fr}
  .project-card:last-child{grid-column:1/-1}
  .project-card:last-child .project-visual{height:320px}

  .about{grid-template-columns:1fr}
  .about-photo{min-height:460px}
  .about-copy{padding:76px 40px}

  .buyers-gallery{grid-template-columns:1fr 1fr}
  .buyer-card:last-child{
    grid-column:1/-1;
    max-width:none;
    width:100%;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  .buyer-card:last-child .customer-photo{aspect-ratio:4/3;min-height:300px}
  .buyer-card:last-child .buyer-info{display:flex;flex-direction:column;justify-content:center}

  .steps{grid-template-columns:1fr 1fr}
  .amenity-photo{height:auto!important;aspect-ratio:16/10}
  .cta{margin-inline:24px;padding:76px 48px;min-height:0}
  footer{padding-inline:40px}
}

/* Tablets verticais */
@media(max-width:760px){
  .hero{padding:54px 28px 36px}
  .hero-title-animated{font-size:clamp(42px,9vw,64px)}
  .lead{font-size:17px}
  .hero-art{height:clamp(310px,62vw,430px);margin-top:38px}
  .hero-foot{display:none}

  .projects,.journey,.social-proof{padding:72px 28px}
  .section-head{display:block}
  .section-head>p{max-width:620px;margin-top:24px}
  .project-grid{grid-template-columns:1fr}
  .project-card:last-child{grid-column:auto}
  .project-card:last-child .project-visual,.project-visual{height:clamp(235px,52vw,340px)}

  .about-photo{min-height:390px}
  .about-copy{padding:68px 28px}
  .pillars{gap:14px}

  .proof-grid article>strong{font-size:clamp(54px,12vw,76px);padding-inline:22px}
  .proof-grid h3,.proof-grid p{padding-left:22px;padding-right:22px}
  .buyers-heading>p{margin-top:20px}
  .buyers-gallery{grid-template-columns:1fr}
  .buyer-card:last-child{grid-column:auto;display:block}
  .buyer-card:last-child .customer-photo{aspect-ratio:4/5;min-height:0}
  .customer-photo{aspect-ratio:4/3}

  .proof-message{padding:34px 28px}
  .proof-message blockquote{font-size:clamp(19px,4vw,25px)}
  .steps{grid-template-columns:1fr 1fr}
  .locations{justify-content:center}
  .locations strong{flex-basis:100%;margin-right:0;text-align:center}

  .cta{margin-inline:16px;padding:66px 32px}
  .cta h2{font-size:clamp(40px,8.6vw,56px)}
  .cta-actions{align-items:stretch;width:100%;max-width:440px}
  .cta-actions .button{width:100%;min-width:0;margin-top:0}
  footer{padding:46px 28px 24px}
  footer>div{flex-wrap:wrap}
}

/* Celulares */
@media(max-width:560px){
  .nav{height:70px;padding-inline:18px}
  .nav nav{top:70px;padding-inline:18px}
  .brand{font-size:18px}
  .nav .brand-symbol{width:38px}

  .hero{padding:44px 20px 30px;background:linear-gradient(180deg,#fff 0 55%,#edf7f7 55% 100%)}
  .hero-copy{max-width:100%}
  .hero-copy .eyebrow{font-size:9px;letter-spacing:1.7px}
  .hero-title-animated{font-size:clamp(36px,11.5vw,52px);letter-spacing:-3px;margin-block:20px}
  .lead{font-size:15px;line-height:1.6}
  .hero-actions{width:100%;gap:18px;margin-top:28px}
  .hero-actions .button{width:100%}
  .btn-arrow-slide{min-width:0;padding-left:36px;padding-right:44px}
  .text-link{align-self:flex-start}
  .hero-art{height:280px;margin-top:32px}
  .status-card{display:none}

  .projects,.journey,.social-proof{padding:60px 20px}
  .eyebrow{font-size:9px;letter-spacing:1.8px}
  .section-head{margin-bottom:34px}
  .section-head h2{font-size:clamp(34px,10.5vw,46px);letter-spacing:-3px}
  .section-head h2 br,.buyers-heading h3 br,.about h2 br{display:none}
  .section-head>p{font-size:14px;line-height:1.65}

  .project-card{padding:10px 10px 22px}
  .project-visual,.project-card:last-child .project-visual{height:230px}
  .tag{top:22px;left:22px}

  .about-photo{min-height:300px}
  .about-photo>span{left:24px;right:24px;bottom:28px;font-size:15px}
  .about-copy{padding:58px 20px}
  .about h2{font-size:clamp(34px,10.5vw,46px);letter-spacing:-3px}
  .pillars{grid-template-columns:1fr;margin-top:38px}
  .pillars div{padding:14px 0}

  .proof-grid{grid-template-columns:1fr}
  .proof-grid article{border-right:0!important}
  .proof-grid article>strong{font-size:56px;letter-spacing:-4px;padding:28px 20px 18px}
  .proof-icon{top:20px;right:18px}
  .proof-grid h3{padding:14px 20px 5px}
  .proof-grid p{padding:0 20px 23px}
  .buyers-heading h3{font-size:34px}
  .customer-photo{aspect-ratio:4/3}
  .buyer-info{padding:20px}

  .proof-message{gap:16px;padding:30px 22px}
  .proof-message blockquote{font-size:19px;letter-spacing:-.5px}
  .proof-source{min-width:0}

  .steps{grid-template-columns:1fr}
  .amenity-steps>div{border-right:0;border-bottom:1px solid #d9dfdf}
  .amenity-photo{aspect-ratio:16/10!important;height:auto!important}
  .locations{padding:18px 14px;gap:9px}
  .locations span{flex:1 1 calc(50% - 9px);padding:9px 8px}

  .cta{margin-inline:10px;padding:58px 20px}
  .cta h2{font-size:clamp(36px,11vw,48px);letter-spacing:-3px}
  .cta-title-clip{overflow:visible;margin-bottom:0;padding-bottom:.06em}
  .cta-title-line{white-space:normal}
  .cta-description{font-size:14px}
  .cta-actions{max-width:none}
  .cta-actions .button{padding:16px 15px;font-size:13px}
  .consultant-button{white-space:normal}

  footer{padding:40px 20px 22px;gap:22px}
  footer>div{flex-direction:column;gap:14px;align-items:flex-start}
}

/* Celulares muito estreitos */
@media(max-width:380px){
  .hero-title-animated{font-size:35px}
  .btn-arrow-slide .arr-label{font-size:13px}
  .about h2,.section-head h2{font-size:33px}
  .cta h2{font-size:34px}
  .proof-grid article>strong{font-size:50px}
  .locations span{flex-basis:100%}
}

/* =============================================
   CARDS DE EMPREENDIMENTOS — Expand on Hover
   Inspirado no Skiper UI #52
   Identidade Villas preservada
   ============================================= */

.expand-gallery-villas {
  display: flex;
  gap: 12px;
  height: 440px;
  width: 100%;
  max-width: 1440px;
  margin-inline: auto;
  align-items: stretch;
}

.expand-card-villas {
  position: relative;
  width: auto;
  min-width: 0;
  border-radius: 18px;
  overflow: hidden;
  cursor: pointer;
  transition: flex-basis 0.5s cubic-bezier(0.4, 0, 0.2, 1),
              flex-grow 0.5s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.5s ease;
  flex: 0 0 88px;
}

/* Card expandido por padrão no primeiro */
.expand-card-villas.blue { flex: 1 1 0; }

/* Hover expande o card */
.expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas,
.expand-gallery-villas:has(.expand-card-villas:focus-visible) .expand-card-villas { flex: 0 0 88px; }
.expand-card-villas:hover,
.expand-card-villas:focus-visible { flex: 1 1 0 !important; box-shadow: 0 24px 48px rgba(9,102,232,0.25); }
.expand-card-villas:focus-visible { outline: 3px solid rgba(9,102,232,.35); outline-offset: 3px; }

/* Imagem */
.expand-card-villas .project-visual {
  position: absolute;
  inset: 0;
  height: 100%;
}
.expand-card-villas .project-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.expand-card-villas:hover .project-visual img { transform: scale(1.05); }
.expand-card-villas .project-visual small {
  position: absolute;
  top: 16px;
  right: 16px;
  bottom: auto;
  left: auto;
  font-size: 9px;
  color: rgba(255,255,255,0.5);
  background: rgba(0,0,0,0.3);
  padding: 2px 6px;
  border-radius: 4px;
  opacity: 0;
  transition: opacity .3s ease;
}
.expand-card-villas.blue .project-visual small,
.expand-card-villas:hover .project-visual small,
.expand-card-villas:focus-visible .project-visual small { opacity: 1; }

/* Overlay gradiente */
.expand-card-villas .overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10,20,40,0.85) 0%, rgba(10,20,40,0.2) 50%, transparent 100%);
  opacity: 0;
  transition: opacity 0.4s ease;
  z-index: 1;
}
.expand-card-villas:hover .overlay,
.expand-card-villas:focus-visible .overlay { opacity: 1; }

/* Cor de fundo quando recolhido */
.expand-card-villas.blue  { background: #0966e8; }
.expand-card-villas.green { background: #55a731; }
.expand-card-villas.dark  { background: #1b2a41; }
.expand-card-villas.teal  { background: #168c8d; }
.expand-card-villas.cyan  { background: #239db5; }

/* Tag de cidade */
.expand-card-villas .tag {
  position: static;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  z-index: 3;
  color: #fff;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 5px 9px;
  border-radius: 4px;
  opacity: 0;
  transition: opacity 0.4s ease 0.1s;
}
.expand-card-villas.blue  .tag { background: var(--blue); }
.expand-card-villas.green .tag { background: #55a731; }
.expand-card-villas.dark  .tag { background: #1b2a41; }
.expand-card-villas.teal  .tag { background: #168c8d; }
.expand-card-villas.cyan  .tag { background: #239db5; }
.expand-card-villas:hover .tag,
.expand-card-villas:focus-visible .tag { opacity: 1; }

/* Conteúdo de texto */
.card-info-villas {
  position: absolute;
  bottom: clamp(26px, 3vw, 44px);
  left: clamp(26px, 3vw, 48px);
  right: auto;
  width: min(560px, calc(100% - 52px));
  padding: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: all 0.45s cubic-bezier(0.4, 0, 0.2, 1) 0.1s;
}
.expand-card-villas:hover .card-info-villas,
.expand-card-villas:focus-visible .card-info-villas {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

/* Mantém o primeiro card completo antes da interação */
.expand-card-villas.blue .overlay,
.expand-card-villas.blue .tag,
.expand-card-villas.blue .card-info-villas {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Ao interagir, somente o card ativo exibe as informações */
.expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas:not(:hover) .overlay,
.expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas:not(:hover) .tag,
.expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas:not(:hover) .card-info-villas,
.expand-gallery-villas:has(.expand-card-villas:focus-visible) .expand-card-villas:not(:focus-visible) .overlay,
.expand-gallery-villas:has(.expand-card-villas:focus-visible) .expand-card-villas:not(:focus-visible) .tag,
.expand-gallery-villas:has(.expand-card-villas:focus-visible) .expand-card-villas:not(:focus-visible) .card-info-villas {
  opacity: 0;
  pointer-events: none;
}
.expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas:not(:hover) .project-visual small,
.expand-gallery-villas:has(.expand-card-villas:focus-visible) .expand-card-villas:not(:focus-visible) .project-visual small { opacity: 0; }
.card-info-villas h3 {
  font: 700 clamp(24px, 2.2vw, 32px)/1.15 Manrope;
  color: #fff;
  margin: 12px 0 8px;
}
.card-info-villas p {
  color: rgba(255,255,255,0.75);
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 18px;
  max-width: 500px;
}
.card-info-villas a {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  font-weight: 700;
  font-size: 12px;
  color: #fff;
  border-top: 1px solid rgba(255,255,255,0.2);
  padding-top: 14px;
  transition: gap 0.3s ease;
  gap: 8px;
}
.card-info-villas a:hover { gap: 16px; }
.card-info-villas a span { font-size: 16px; }

/* Responsivo */
@media (max-width: 900px) {
  .expand-gallery-villas {
    flex-direction: column;
    height: auto;
    gap: 16px;
  }
  .expand-card-villas,
  .expand-gallery-villas:has(.expand-card-villas:hover) .expand-card-villas,
  .expand-card-villas:hover {
    flex: 1 1 auto !important;
    width: 100% !important;
    height: 320px;
  }
  .expand-card-villas .overlay,
  .expand-card-villas .tag,
  .card-info-villas {
    opacity: 1 !important;
    transform: translateY(0) !important;
    pointer-events: auto !important;
  }
  .expand-card-villas .project-visual small { opacity: 1 !important; }
  .card-info-villas {
    left: 28px;
    bottom: 28px;
    width: calc(100% - 56px);
  }
}

@media (max-width: 560px) {
  .expand-gallery-villas { gap: 12px; }
  .expand-card-villas { height: 300px; border-radius: 14px; }
  .card-info-villas {
    left: 20px;
    bottom: 20px;
    width: calc(100% - 40px);
  }
  .card-info-villas h3 { font-size: 24px; }
  .card-info-villas p { font-size: 13px; margin-bottom: 14px; }
  .card-info-villas a { padding-top: 12px; }
  .expand-card-villas .project-visual small { top: 12px; right: 12px; }
}

/* Menu flutuante durante a rolagem */
html { scroll-padding-top: 110px; }
body { padding-top: 0; }
.hero { padding-top: 176px; }
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 100;
  box-shadow: 0 8px 26px rgba(16,32,63,.07);
  transition: transform .38s cubic-bezier(.22,1,.36,1), opacity .26s ease, box-shadow .26s ease;
  will-change: transform, opacity;
}

/* Em computadores, o menu surge somente quando o cursor se aproxima do topo */
@media (hover: hover) and (pointer: fine) {
  .nav.nav-auto-hide {
    transform: translateY(calc(-100% - 12px));
    opacity: 0;
    pointer-events: none;
    box-shadow: none;
  }
  .nav.nav-auto-hide.nav-visible,
  .nav.nav-auto-hide:focus-within {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
    box-shadow: 0 8px 26px rgba(16,32,63,.07);
  }
}

@media (max-width: 980px) {
  html { scroll-padding-top: 94px; }
  body { padding-top: 0; }
  .hero { padding-top: 136px; }
}

@media (max-width: 560px) {
  html { scroll-padding-top: 84px; }
  body { padding-top: 0; }
  .hero { padding-top: 114px; }
}

@media (prefers-reduced-motion: reduce) {
  .nav { transition: none; }
}

/* =============================================
   VIVAPARK — Tabs animadas (DirectionAwareTabs)
   Inspirado no Cult UI — CSS puro + JS vanilla
   ============================================= */

.amenity-tabs {
  margin-bottom: 48px;
}

/* Botões das abas */
.amenity-tab-buttons {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--line);
  margin-bottom: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.amenity-tab-buttons::-webkit-scrollbar { display: none; }

.amenity-tab-btn {
  flex: 1;
  min-width: 140px;
  padding: 20px 24px;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  text-align: left;
  transition: all 0.3s ease;
  position: relative;
  bottom: -1px;
}
.amenity-tab-btn .tab-label {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 2px;
  color: #9aa5af;
  margin-bottom: 4px;
  transition: color 0.3s ease;
}
.amenity-tab-btn .tab-name {
  display: block;
  font: 600 14px/1.3 Manrope;
  color: #607089;
  transition: color 0.3s ease;
}
.amenity-tab-btn:hover .tab-label { color: var(--blue); }
.amenity-tab-btn:hover .tab-name { color: var(--ink); }
.amenity-tab-btn.active {
  border-bottom-color: var(--green);
}
.amenity-tab-btn.active .tab-label { color: var(--blue); }
.amenity-tab-btn.active .tab-name { color: var(--ink); }

/* Painel de conteúdo */
.amenity-tab-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-top: none;
  border-radius: 0 0 12px 12px;
  background: #fff;
}

/* Conteúdo de cada aba */
.amenity-tab-content {
  display: none;
  grid-template-columns: 1.2fr 1fr;
  gap: 0;
  min-height: 360px;
  animation: tabSlideIn 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}
.amenity-tab-content.active { display: grid; }
.amenity-tab-content.slide-left  { animation: tabSlideInLeft 0.45s cubic-bezier(0.4,0,0.2,1) forwards; }
.amenity-tab-content.slide-right { animation: tabSlideInRight 0.45s cubic-bezier(0.4,0,0.2,1) forwards; }

@keyframes tabSlideInLeft {
  from { opacity: 0; transform: translateX(60px); filter: blur(4px); }
  to   { opacity: 1; transform: translateX(0);    filter: blur(0px); }
}
@keyframes tabSlideInRight {
  from { opacity: 0; transform: translateX(-60px); filter: blur(4px); }
  to   { opacity: 1; transform: translateX(0);     filter: blur(0px); }
}

/* Imagem */
.amenity-tab-image {
  position: relative;
  overflow: hidden;
  min-height: 360px;
}
.amenity-tab-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.amenity-tab-content:hover .amenity-tab-image img { transform: scale(1.04); }
.amenity-tab-image small {
  position: absolute;
  bottom: 10px;
  left: 10px;
  font-size: 9px;
  color: rgba(255,255,255,0.6);
  background: rgba(0,0,0,0.3);
  padding: 2px 7px;
  border-radius: 4px;
}

/* Info lateral */
.amenity-tab-info {
  padding: 48px 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.amenity-tab-info .icon-ring {
  display: grid;
  place-items: center;
  width: 150px;
  height: 150px;
  border: 1.5px solid var(--line);
  border-radius: 50%;
  font-size: 22px;
  color: var(--blue);
  margin-bottom: 24px;
}
.amenity-tab-info .icon-ring img {
  width: 120px !important;
  height: 120px !important;
}
.amenity-tab-info h3 {
  font: 700 26px/1.2 Manrope;
  color: var(--ink);
  margin-bottom: 14px;
  letter-spacing: -0.5px;
}
.amenity-tab-info p {
  font-size: 15px;
  line-height: 1.7;
  color: #607089;
  max-width: 340px;
}

/* Responsivo */
@media (max-width: 900px) {
  .amenity-tab-content { grid-template-columns: 1fr; }
  .amenity-tab-image { min-height: 240px; }
  .amenity-tab-info { padding: 32px 28px; }
  .amenity-tab-btn { min-width: 120px; padding: 16px 18px; }
}

@media (max-width: 560px) {
  .amenity-tab-btn { min-width: 100px; padding: 14px 14px; }
  .amenity-tab-btn .tab-name { display: none; }
  .amenity-tab-info { padding: 24px 20px; }
  .amenity-tab-image { min-height: 200px; }
}

/* =============================================
   PROVA SOCIAL — Experiência editorial interativa
   ============================================= */
.proof-stories-editorial {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #10203f;
  color: #fff;
  margin-top: 72px;
  padding: clamp(42px,5.5vw,78px);
  border-radius: 20px;
}
.proof-stories-editorial > *:not(.proof-ambient) { position: relative; z-index: 2; }
.proof-ambient { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.proof-ambient i {
  position: absolute;
  display: block;
  width: 240px;
  height: 240px;
  border: 45px solid rgba(255,255,255,.035);
  transform: rotate(45deg);
  animation: proofEditorialFloat 14s ease-in-out infinite alternate;
}
.proof-ambient i:nth-child(1) { right: -80px; top: 80px; }
.proof-ambient i:nth-child(2) { left: 28%; bottom: -170px; border-color: rgba(117,200,66,.055); animation-delay: -5s; }
.proof-ambient i:nth-child(3) { left: -145px; top: 46%; width: 190px; height: 190px; animation-delay: -9s; }
.proof-ambient span { position: absolute; right: 24%; top: 20%; width: 360px; height: 360px; border: 1px solid rgba(22,168,201,.12); border-radius: 50%; animation: proofEditorialPulse 9s ease-in-out infinite; }
@keyframes proofEditorialFloat { to { transform: translate3d(28px,-22px,0) rotate(54deg); } }
@keyframes proofEditorialPulse { 50% { transform: scale(1.08); opacity: .55; } }

.proof-editorial-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 60px; margin-bottom: 48px; }
.proof-editorial-head h2 { font-size: clamp(43px,5vw,70px); margin-bottom: 0; }
.proof-editorial-head h2 em { color: var(--green); }
.proof-editorial-head > p { max-width: 440px; margin: 0 0 8px; color: #aebbd0; font-size: 15px; line-height: 1.75; }

.proof-stat-strip { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid rgba(255,255,255,.14); margin-bottom: 58px; }
.proof-stat-strip article { min-width: 0; padding: 24px 28px; border-right: 1px solid rgba(255,255,255,.14); display: flex; align-items: baseline; gap: 13px; }
.proof-stat-strip article:first-child { padding-left: 0; }
.proof-stat-strip article:last-child { border-right: 0; padding-right: 0; }
.proof-stat-strip .proof-stat-value { flex: 0 0 auto; color: #fff; font: 800 clamp(30px,3.4vw,50px)/1 Manrope; letter-spacing: -3px; }
.proof-stat-strip article:first-child .proof-stat-value { color: var(--green); }
.proof-stat-strip span { color: #94a4bc; font-size: 11px; line-height: 1.35; max-width: 92px; }

.story-stage { min-height: 570px; display: grid; grid-template-columns: minmax(0,1.14fr) minmax(390px,.86fr); background: #fff; color: var(--ink); border-radius: 18px; overflow: hidden; box-shadow: 0 34px 80px rgba(0,0,0,.2); }
.story-visual { position: relative; min-height: 570px; overflow: hidden; background: #dce8e8; }
.story-slide { position: absolute; inset: 0; margin: 0; opacity: 0; transform: scale(1.045); transition: opacity .55s ease, transform .85s cubic-bezier(.22,1,.36,1); pointer-events: none; }
.story-slide.active { opacity: 1; transform: scale(1); pointer-events: auto; }
.story-slide::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg,transparent 55%,rgba(16,32,63,.55)); }
.story-slide img,.story-slide video { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.story-slide video { background: #08142c; }
.story-slide:nth-child(1) img { object-position: center 42%; }
.story-slide:nth-child(2) img { object-position: center 42%; }
.story-slide:nth-child(3) img { object-position: center 38%; }
.story-slide figcaption { position: absolute; z-index: 2; left: 24px; bottom: 24px; padding: 7px 10px; border-radius: 4px; background: rgba(16,32,63,.78); color: #fff; font-size: 8px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.story-index { position: absolute; z-index: 3; right: 26px; bottom: 26px; display: flex; align-items: center; gap: 10px; color: #fff; font: 700 10px Manrope; }
.story-index i { display: block; width: 48px; height: 1px; background: rgba(255,255,255,.55); }

.story-copy { padding: clamp(38px,5vw,72px); display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.story-kicker { margin: 0 0 26px; color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; }
.story-texts { display: grid; }
.story-text { grid-area: 1/1; opacity: 0; transform: translateY(18px); visibility: hidden; transition: opacity .4s ease, transform .5s cubic-bezier(.22,1,.36,1), visibility .4s; }
.story-text.active { opacity: 1; transform: translateY(0); visibility: visible; }
.story-text blockquote { margin: 0 0 36px; font: 600 clamp(24px,2.5vw,38px)/1.4 Manrope; letter-spacing: -1.5px; color: var(--ink); }
.story-text blockquote::before { content: "“"; display: block; height: 45px; color: var(--green); font: 700 66px/1 Georgia; }
.story-text > div { display: grid; gap: 5px; }
.story-text strong { font: 700 15px Manrope; }
.story-text span { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.story-text small { color: #9aa5af; font-size: 9px; letter-spacing: .6px; text-transform: uppercase; }

.story-controls { display: flex; gap: 12px; margin-top: 44px; }
.story-control { width: 62px; height: 62px; padding: 3px; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; opacity: .55; transition: opacity .25s, border-color .25s, transform .25s; }
.story-control img,.story-control video { width: 100%; height: 100%; display: block; border-radius: 50%; object-fit: cover; pointer-events:none; }
.story-control-video { position: relative; }
.story-video-thumb { width:100%; height:100%; display:block; border-radius:50%; background:linear-gradient(145deg,#15335f,#07162f); }
.story-control-video::after { content: "\25B6"; position: absolute; inset: 50% auto auto 50%; transform: translate(-45%,-50%); color: #fff; font-size: 14px; filter: drop-shadow(0 1px 3px rgba(0,0,0,.55)); pointer-events: none; }
.story-control:hover { opacity: .85; transform: translateY(-2px); }
.story-control.active { opacity: 1; border-color: var(--blue); box-shadow: 0 0 0 3px rgba(9,102,232,.1); }
.story-control:focus-visible { outline: 3px solid rgba(9,102,232,.25); outline-offset: 3px; }

.proof-editorial-foot { margin-top: 30px; padding: 27px 0 0; border-top: 1px solid rgba(255,255,255,.14); display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 28px; }
.proof-commitment { display: flex; align-items: center; gap: 14px; }
.proof-commitment img { width: 50px; }
.proof-commitment strong,.proof-commitment span { display: block; }
.proof-commitment strong { font: 700 13px Manrope; }
.proof-commitment span { margin-top: 4px; color: #94a4bc; font-size: 10px; }
.proof-story-cta,.proof-social-link { font-size: 11px; font-weight: 800; }
.proof-story-cta { color: #fff; background: var(--blue); padding: 15px 18px; border-radius: 5px; }
.proof-social-link { color: #8fd2dd; }
.proof-story-cta span,.proof-social-link span { margin-left: 8px; }

@media (max-width: 1050px) {
  .proof-editorial-head { display: block; }
  .proof-editorial-head > p { margin-top: 28px; max-width: 620px; }
  .proof-stat-strip { grid-template-columns: 1fr 1fr; }
  .proof-stat-strip article:nth-child(2) { border-right: 0; }
  .proof-stat-strip article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.14); }
  .proof-stat-strip article:nth-child(3) { padding-left: 0; }
  .story-stage { grid-template-columns: minmax(0,1fr) minmax(340px,.82fr); }
  .proof-editorial-foot { grid-template-columns: 1fr auto; }
  .proof-social-link { grid-column: 1/-1; }
}

@media (max-width: 760px) {
  .proof-stories-editorial { margin-top: 54px; padding: 42px 30px; border-radius: 16px; }
  .story-stage { grid-template-columns: 1fr; }
  .story-visual { min-height: clamp(320px,78vw,470px); }
  .story-copy { padding: 38px 30px; }
  .story-text blockquote { font-size: clamp(23px,5.5vw,32px); }
  .proof-editorial-foot { grid-template-columns: 1fr; align-items: start; }
  .proof-story-cta,.proof-social-link { width: fit-content; }
}

@media (max-width: 560px) {
  .proof-stories-editorial { margin-top: 44px; padding: 34px 18px; border-radius: 12px; }
  .proof-editorial-head h2 { font-size: clamp(36px,10.5vw,46px); }
  .proof-stat-strip { margin-bottom: 38px; }
  .proof-stat-strip article { padding: 20px 12px; display: block; }
  .proof-stat-strip article:first-child,.proof-stat-strip article:nth-child(3) { padding-left: 0; }
  .proof-stat-strip .proof-stat-value { display: block; font-size: 34px; letter-spacing: -2px; margin-bottom: 7px; }
  .proof-stat-strip span { display: block; max-width: 120px; }
  .story-stage { border-radius: 12px; }
  .story-visual { min-height: 300px; }
  .story-slide figcaption { left: 16px; bottom: 16px; }
  .story-index { right: 16px; bottom: 19px; }
  .story-copy { padding: 32px 22px; }
  .story-kicker { margin-bottom: 18px; }
  .story-text blockquote { margin-bottom: 26px; letter-spacing: -1px; }
  .story-controls { margin-top: 32px; }
  .story-control { width: 54px; height: 54px; }
  .proof-editorial-foot { margin-top: 24px; gap: 20px; }
  .proof-story-cta { width: 100%; display: flex; justify-content: space-between; }
}

@media (prefers-reduced-motion: reduce) {
  .proof-ambient * { animation: none !important; }
  .story-slide,.story-text,.story-control { transition: none !important; }
}

/* Destaque da tradição no título principal */
.hero-years {
  position: relative;
  display: inline-block;
  color: var(--blue);
  font: inherit;
  white-space: nowrap;
}
.hero-years::after {
  content: "";
  position: absolute;
  left: .04em;
  right: .02em;
  bottom: -.04em;
  height: .075em;
  border-radius: 999px;
  background: linear-gradient(90deg,var(--green),var(--cyan));
  transform: scaleX(0);
  transform-origin: left;
  animation: heroYearsUnderline .7s cubic-bezier(.22,1,.36,1) .95s forwards;
}
@keyframes heroYearsUnderline { to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .hero-years::after { animation: none; transform: scaleX(1); }
}

/* Seta padronizada da Villas */
.villas-arrow {
  position: relative;
  display: inline-block;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  font-size: 0 !important;
  line-height: 0;
  vertical-align: middle;
  color: currentColor;
  transition: transform .25s ease;
}
.villas-arrow::before {
  content: none;
}
.villas-arrow::after {
  content: none;
}
.villas-arrow{background-color:currentColor;-webkit-mask:url("assets/arrow-up-right.svg") center/contain no-repeat;mask:url("assets/arrow-up-right.svg") center/contain no-repeat}
.villas-arrow-down{display:inline-block;width:20px;height:20px;background-color:currentColor;-webkit-mask:url("assets/arrow-down.svg") center/contain no-repeat;mask:url("assets/arrow-down.svg") center/contain no-repeat}
a:hover > .villas-arrow { transform: translate(2px,-2px); }

@media (prefers-reduced-motion: reduce) {
  .villas-arrow { transition: none; }
}

/* Contato em dois blocos: conteúdo institucional e vídeo */
.cta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:0!important;min-height:620px;background:var(--blue)}
.cta .cta-content{display:flex;flex-direction:column;justify-content:center;padding:72px clamp(38px,5vw,88px);background:var(--blue);min-width:0}
.cta-video-panel{position:relative;z-index:3;min-width:0;overflow:hidden;background:#fff}
.cta-video-panel video{width:100%;height:100%;display:block;object-fit:cover;background:#fff}
.cta #cta-motion-root{right:50%;width:auto}
.cta::before{right:50%;width:auto}
.cta::after{right:50%;width:auto}
.cta .cta-pattern{display:none}
@media(max-width:900px){.cta{grid-template-columns:1fr;min-height:0}.cta .cta-content{padding:66px 40px}.cta-video-panel{min-height:460px}.cta #cta-motion-root,.cta::before,.cta::after{right:0;bottom:auto;height:50%}}
@media(max-width:560px){.cta .cta-content{padding:58px 20px}.cta-video-panel{min-height:360px}.cta-video-panel video{object-fit:cover}}

/* Contato novamente em bloco único, com vídeo sutil ao fundo */
.cta{display:block;padding:88px clamp(30px,7vw,105px)!important;min-height:560px;background:var(--blue)}
.cta .cta-content{position:relative;z-index:4;display:block;max-width:720px;padding:0;background:transparent}
.cta-video-panel{position:absolute;inset:0;z-index:0;min-height:0;opacity:.38;overflow:hidden;background:var(--blue);pointer-events:none}
.cta-video-panel video{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.9) contrast(.96);background:transparent}
.cta-video-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,102,232,.84) 0%,rgba(9,102,232,.57) 52%,rgba(9,102,232,.4) 100%)}
.cta #cta-motion-root,.cta::before,.cta::after{right:0;width:auto;height:auto;bottom:0}
.cta #cta-motion-root{opacity:.86}
.cta .motion-diamond{border-color:#ffffff46}
.cta .motion-diamond-b{border-color:#77d05160}
.motion-diamond-c{width:96px!important;height:96px!important;border-width:19px!important;left:46%;top:13%;border-color:#70d5e263!important;animation:diamondSpinReverse 25s linear infinite}
.motion-diamond-d{width:70px!important;height:70px!important;border-width:14px!important;right:5%;top:45%;border-color:#ffffff4f!important;animation:diamondSpin 30s linear infinite}
@media(max-width:900px){.cta{padding:76px 48px!important;min-height:0}.cta .cta-content{padding:0}.cta-video-panel{position:absolute;min-height:0}.cta #cta-motion-root,.cta::before,.cta::after{height:auto;bottom:0}}
@media(max-width:560px){.cta{padding:58px 20px!important}.cta .cta-content{padding:0}.cta-video-panel{min-height:0}.cta-video-panel video{object-fit:cover}.motion-diamond-c{left:auto;right:8%;top:8%;width:74px!important;height:74px!important;border-width:15px!important}.motion-diamond-d{display:none}}

/* Símbolo Villas 2,5D interativo no contato */
.cta-three-panel{position:absolute;inset:0 0 0 48%;z-index:1;overflow:hidden;pointer-events:none;background:radial-gradient(circle at 64% 50%,rgba(63,195,255,.2),transparent 55%)}
.cta-three-panel::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--blue) 0%,rgba(9,102,232,.58) 23%,rgba(9,102,232,.08) 70%);z-index:2}
.cta-three-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .55s ease;z-index:1}
.cta-three-fallback{position:absolute;left:57%;top:50%;width:min(72%,560px);height:auto;transform:translate(-50%,-50%);opacity:.34;filter:drop-shadow(0 18px 35px rgba(5,43,113,.25));z-index:1;transition:opacity .45s ease}
.cta-three-panel.three-active .cta-three-canvas{opacity:.94}
.cta-three-panel.three-active .cta-three-fallback{opacity:0}
.cta-three-panel.three-fallback-only .cta-three-fallback{opacity:.42}
.cta #cta-motion-root{opacity:.48}
@media(max-width:900px){.cta-three-panel{left:38%}.cta-three-panel::after{background:linear-gradient(90deg,var(--blue),rgba(9,102,232,.4) 45%,rgba(9,102,232,.1))}.cta-three-fallback{left:64%;width:min(78%,500px)}}
@media(max-width:560px){.cta-three-panel{left:0;opacity:.45}.cta-three-panel::after{background:rgba(9,102,232,.48)}.cta-three-fallback{left:70%;width:90%}.cta #cta-motion-root{opacity:.3}}
@media(prefers-reduced-motion:reduce){.cta-three-canvas{display:none}.cta-three-fallback{opacity:.34!important}}

/* Sanfona estável em telas grandes: o JS controla o card ativo sem depender de :hover. */
@media (min-width:901px) and (hover:hover) and (pointer:fine){
  .expand-gallery-villas.gallery-js-ready .expand-card-villas{flex:0 0 88px!important;box-shadow:none}
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active{flex:1 1 0!important;box-shadow:0 24px 48px rgba(9,102,232,.25)}
  .expand-gallery-villas.gallery-js-ready .expand-card-villas .overlay,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas .tag,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas .card-info-villas,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas .project-visual small{opacity:0;pointer-events:none}
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active .overlay,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active .tag,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active .card-info-villas,
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active .project-visual small{opacity:1;pointer-events:auto;transform:translateY(0)}
  .expand-gallery-villas.gallery-js-ready .expand-card-villas .project-visual img{transform:scale(1)}
  .expand-gallery-villas.gallery-js-ready .expand-card-villas.is-active .project-visual img{transform:scale(1.05)}
}

/* Linguagem de movimento Villas: corporativa, suave e orientada por GSAP */
.gsap-ready .reveal{opacity:1;transform:none;transition:none}
.gsap-ready .hero .eyebrow,.gsap-ready .hero-title-animated>span,.gsap-ready .hero .lead{animation:none!important;opacity:1;transform:none;filter:none}
.gsap-ready .expand-card-villas,.gsap-ready .proof-card,.gsap-ready .story-visual,.gsap-ready .story-copy,.gsap-ready .amenity-tab-panel{will-change:transform,opacity}
.gsap-ready .amenity-tab-content{animation:none!important}
.gsap-ready .cta-motion>span{transition:none}
@media(prefers-reduced-motion:reduce){.gsap-ready .expand-card-villas,.gsap-ready .proof-card,.gsap-ready .story-visual,.gsap-ready .story-copy,.gsap-ready .amenity-tab-panel{will-change:auto}}
