/* Soft water reflections, responsive interaction and restrained depth. */
.waterlight-section{position:relative;isolation:isolate}
.waterlight-section:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 12% 25%,#85d9b31a,transparent 48%),radial-gradient(ellipse at 90% 70%,#b6e4dc12,transparent 45%);background-size:130% 120%;animation:waterlight 18s ease-in-out infinite alternate;animation-play-state:paused}
.waterlight-section.ambient-visible:before{animation-play-state:running}
@keyframes waterlight{from{background-position:0% 0%;opacity:.5}to{background-position:100% 80%;opacity:1}}
.ambient-card{transition:border-color .35s,box-shadow .35s,transform .35s;background-image:radial-gradient(ellipse at var(--glow-x,25%) var(--glow-y,0%),#b9dfce0e,transparent 65%)}
.ambient-card:before{width:260px;height:220px;background:radial-gradient(ellipse,#b9dfce24,transparent 68%)}
.ambient-card:after{display:none}
.area-options button[aria-pressed=true]:after{display:block}
.promo .bub:nth-of-type(2n){display:none}
@media(hover:hover) and (pointer:fine){
 .ambient-card:hover{border-color:#87b49b;box-shadow:0 16px 35px #06140e40;background-image:radial-gradient(ellipse at var(--glow-x,50%) var(--glow-y,20%),#b9dfce1a,transparent 65%)}
 :is(.pkg-hero-price,.item,.pair,.special-switch button,.area-options button):hover{transform:translateY(-3px)}
}
.touch-wave{animation:touch-response .45s ease-out}
@keyframes touch-response{0%{box-shadow:0 0 0 0 #b9dfce55}100%{box-shadow:0 0 0 12px #b9dfce00}}
:where(button,a){-webkit-tap-highlight-color:transparent}
button:active,.special-cta:active,.scene-book:active{scale:.98}
.special-panel:not([hidden]){animation:panel-arrive .45s ease-out}
@keyframes panel-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.motion-paused .ambient-card:before,.motion-paused .waterlight-section:before,.motion-paused .bub{animation-play-state:paused!important}
@media(max-width:760px){.waterlight-section:before{background-size:110% 110%;animation-duration:24s}.ambient-card:before{width:160px;height:160px;opacity:.65}.promo .bub{animation-duration:16s}.reveal{will-change:auto}}
@media(prefers-reduced-motion:reduce){.waterlight-section:before{animation:none;opacity:.5}.ambient-card,.special-panel:not([hidden]),.touch-wave{animation:none;transition:none}.ambient-card:hover,button:active{transform:none;scale:1}.reveal{filter:none!important}.promo .bub{display:none}}
/* Visible water movement that does not depend on hover. */
@media(prefers-reduced-motion:no-preference){
 .waterlight-section:before{background:radial-gradient(ellipse at 10% 20%,#70d5a84d,transparent 48%),radial-gradient(ellipse at 85% 75%,#85cfdc33,transparent 46%);background-size:170% 150%;animation-duration:7s}
 .ambient-card:before{left:-30%;bottom:-110px;width:85%;height:290px;border:1px solid #b9dfce50;background:radial-gradient(ellipse,#a2e4c438,transparent 65%);animation:sv-water-orbit 7s ease-in-out infinite alternate;animation-delay:var(--ambient-delay);animation-play-state:paused}
 .ambient-card.ambient-visible:before{animation-play-state:running}
 @keyframes sv-water-orbit{from{transform:translate(-5%,-5%) rotate(-18deg);border-radius:42% 58% 60% 40%;opacity:.45}to{transform:translate(70%,-35%) rotate(20deg);border-radius:60% 40% 40% 60%;opacity:.9}}
 .motion-paused .ambient-card:before{animation-play-state:paused!important}
}
/* Background motion occupies each section, independently of cards. */
.waterlight-section{overflow:clip}
.waterlight-section:before{z-index:0;background:radial-gradient(ellipse at 20% 30%,#72d4a64d,transparent 60%);animation:none}
.waterlight-section>.shell,.waterlight-section> .wrap,.waterlight-section> .container{position:relative;z-index:1}
.sv-background-waves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;contain:paint}
.sv-background-waves i{position:absolute;display:block;width:105vw;height:70vw;min-height:450px;border:2px solid #abe7ce38;border-radius:45% 55% 60% 40%;left:-45vw;top:5%;background:radial-gradient(ellipse at center,#89d9b51c,transparent 67%);animation:sv-background-tide 12s ease-in-out infinite alternate;animation-play-state:paused}
.sv-background-waves i:nth-child(2){left:35vw;top:30%;border-color:#a5dfdf2e;animation-delay:-7s;animation-duration:16s}
.sv-background-waves i:nth-child(3){left:-10vw;top:60%;height:35vw;animation-delay:-4s;animation-duration:10s;border-color:#d5f3df26}
.ambient-visible>.sv-background-waves i{animation-play-state:running}
@keyframes sv-background-tide{from{transform:translate(-4vw,-35px) rotate(-14deg);border-radius:42% 58% 55% 45%;opacity:.5}to{transform:translate(14vw,90px) rotate(16deg);border-radius:60% 40% 42% 58%;opacity:1}}
.motion-paused .sv-background-waves i{animation-play-state:paused!important}
#agua .water-intro{font-size:17px;line-height:1.7}
#agua .water-benefits h3{font-size:18px;line-height:1.4}
#agua .water-benefits p{font-size:16px;line-height:1.65}
#agua .water-flow{font-size:11px}
#agua .water-benefits{gap:18px}
@media(max-width:760px){.sv-background-waves i{width:170vw;left:-100vw;animation-duration:15s}.sv-background-waves i:nth-child(2){left:20vw}.sv-background-waves i:nth-child(3){display:none}#agua .water-intro{font-size:17px}#agua .water-benefits h3{font-size:18px}#agua .water-benefits p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.sv-background-waves i{animation:none;opacity:.45}}
/* Keep facts readable, without decorative objects inside the cards. */
.fact.ambient-card:before,.fact.ambient-card:after{display:none!important}
.fact{background-image:none!important;background-color:#193126!important}
#videos-servicios{padding:80px 0;scroll-margin-top:130px;background:#10231c}
.service-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-video-card{position:relative;display:block;padding:0;text-align:left;overflow:hidden;background:#183126;border:1px solid #46604f;border-radius:18px;color:#edf5ef;cursor:pointer;font:inherit}
.service-video-card video{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#11251d}
.film-title{display:block;padding:20px;font-size:16px}.film-play{position:absolute;top:20px;right:20px;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;background:#10231ccc;color:#c2e4d3}.service-video-card:hover{border-color:#c2e4d3}
#serviceCinema{width:min(960px,92vw);max-height:92svh;box-sizing:border-box;padding:16px;border:1px solid #46604f;border-radius:18px;background:#10231c;color:#edf5ef}
#serviceCinema::backdrop{background:#000d;backdrop-filter:blur(6px)}#serviceCinema video{display:block;width:100%;max-height:75svh;background:#000}.cinema-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.cinema-head h2{font-size:18px;margin:0}.cinema-head button{border:1px solid #668170;background:#213e30;color:white;min-width:44px;min-height:44px;border-radius:50%;cursor:pointer}
@media(max-width:760px){.service-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.film-title{font-size:13px;padding:14px}.film-play{top:10px;right:10px;width:32px;height:32px}}
@media(max-width:380px){.service-video-grid{grid-template-columns:1fr}}
/* Centered, touch-friendly video carousel. */
.service-video-grid{position:relative;display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:calc((100% - min(66%,560px))/2);padding:20px max(17%,calc((100% - 560px)/2)) 28px;scrollbar-width:none;overscroll-behavior-x:contain}
.service-video-grid::-webkit-scrollbar{display:none}
.service-video-card{flex:0 0 min(66vw,560px);width:min(66%,560px);scroll-snap-align:center;opacity:.55;transform:scale(.93);transition:transform .4s,opacity .4s,border-color .3s}
.service-video-card.film-active{opacity:1;transform:scale(1);border-color:#b9dfce}
.service-video-card video{aspect-ratio:16/10;object-fit:cover}
.film-carousel-controls{display:flex;justify-content:center;align-items:center;gap:28px;margin-top:8px}
.film-carousel-controls button{width:46px;height:46px;border-radius:50%;border:1px solid #668170;background:#1b3528;color:#d5eee0;font-size:22px;cursor:pointer}.film-carousel-controls button:disabled{opacity:.3;cursor:default}.film-carousel-controls span{font-size:13px;letter-spacing:.12em;color:#c2dccb;min-width:45px;text-align:center}
@media(max-width:760px){.service-video-grid{gap:14px;padding:14px 10% 20px;scroll-padding-inline:10%}.service-video-card{flex-basis:100%;width:100%}.film-carousel-controls{gap:24px}}
@media(prefers-reduced-motion:reduce){.service-video-card{transition:none}}

/* Visible, lightweight motion on touch screens; no hover required. */
@media(max-width:760px) and (prefers-reduced-motion:no-preference){.sv-background-waves i{animation-duration:9s;border-color:#abe7ce66;background:radial-gradient(ellipse,#89d9b530,transparent 67%)}.sv-background-waves i:nth-child(2){animation-duration:12s}.reveal{transition:opacity .18s linear,translate .18s linear,filter .18s linear}}
/* Building service calculator: preserve hidden options and clear tax rows. */
#especializados [hidden]{display:none!important}
#building-tax-breakdown>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #46604f;padding:8px 0}
#building-service-panel{scroll-margin-top:100px}
