/* Effet glossy discret : les couches décoratives ne capturent jamais les clics. */
.has-water-bubbles{position:relative;isolation:isolate}
.water-bubbles-layer{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:layout paint;}
.water-bubble{position:absolute;left:var(--bubble-x);top:var(--bubble-y);display:block;width:clamp(12px,2vw,30px);aspect-ratio:1;border:1px solid rgba(255,255,255,.68);border-radius:50%;opacity:.26;background:radial-gradient(ellipse at 29% 23%,rgba(255,255,255,.84) 0 5%,rgba(255,255,255,.2) 14%,transparent 37%),radial-gradient(circle at 70% 76%,rgba(255,255,255,.08),rgba(255,255,255,.025) 52%,rgba(255,255,255,.16));box-shadow:inset 0 0 10px rgba(255,255,255,.24),0 0 10px rgba(255,255,255,.08);animation:water-float var(--bubble-duration,18s) ease-in-out var(--bubble-delay,0s) infinite alternate;will-change:transform;}
.water-bubble--tiny{width:clamp(8px,1vw,14px);opacity:.22}.water-bubble--small{width:clamp(12px,1.5vw,21px);opacity:.24}.water-bubble--medium{width:clamp(19px,2.3vw,34px);opacity:.2}.water-bubble--large{width:clamp(28px,3.2vw,48px);opacity:.15}
.water-bubble--rose{border-color:rgba(226,154,180,.58);box-shadow:inset 0 0 12px rgba(255,255,255,.3),0 0 15px rgba(216,113,153,.13)}
.water-bubble--gold{border-color:rgba(201,163,90,.6);box-shadow:inset 0 0 12px rgba(255,255,255,.28),0 0 15px rgba(201,163,90,.12)}
.water-bubble--drift-down{animation-name:water-drift-down}
/* Le contenu principal reste devant les bulles. */
.hero-s>.wrap,#univers>.wrap,#galerie>.wrap,#avis>.wrap{position:relative;z-index:1}
.cta>h2,.cta>p,.cta>.btn{position:relative;z-index:1}
@keyframes water-float{0%{transform:translate3d(0,14px,0) scale(.94);opacity:.08}25%{opacity:.24}55%{transform:translate3d(var(--bubble-drift),-24px,0) scale(1.04);opacity:.2}100%{transform:translate3d(calc(var(--bubble-drift)*-.55),-64px,0) scale(.98);opacity:.04}}
@keyframes water-drift-down{0%{transform:translate3d(0,-26px,0) scale(.96);opacity:.04}35%{opacity:.18}100%{transform:translate3d(var(--bubble-drift),36px,0) scale(1.03);opacity:.05}}
@media(max-width:640px){.water-bubble--large{width:24px}.water-bubble{filter:none}}
@media(prefers-reduced-motion:reduce){.water-bubble{animation:none!important;will-change:auto;opacity:.09;transform:none!important}}

/* Renforcement visibilité : bulles nacrées visibles sur fond clair et sombre. */
.has-water-bubbles{position:relative;isolation:isolate}
.has-water-bubbles>.water-bubbles-layer{z-index:0;display:block;visibility:visible;opacity:1}
.has-water-bubbles>:not(.water-bubbles-layer){position:relative;z-index:1}
.water-bubble{opacity:.34;border-width:1.25px;background:radial-gradient(ellipse at 28% 23%,rgba(255,255,255,.98) 0 7%,rgba(255,255,255,.45) 15%,rgba(255,255,255,.08) 36%,transparent 58%),radial-gradient(circle at 72% 75%,rgba(255,255,255,.20),rgba(255,255,255,.045) 55%,rgba(255,255,255,.24));box-shadow:inset 0 0 12px rgba(255,255,255,.44),0 0 15px rgba(255,255,255,.16),0 0 1px rgba(201,163,90,.25)}
.water-bubble--tiny{opacity:.28}.water-bubble--small{opacity:.32}.water-bubble--medium{opacity:.30}.water-bubble--large{opacity:.25}
.water-bubble--rose{border-color:rgba(226,154,180,.82);box-shadow:inset 0 0 13px rgba(255,255,255,.45),0 0 18px rgba(216,113,153,.2)}
.water-bubble--gold{border-color:rgba(201,163,90,.9);box-shadow:inset 0 0 13px rgba(255,255,255,.45),0 0 17px rgba(201,163,90,.22)}
@media(prefers-reduced-motion:reduce){.water-bubble{animation:none!important;will-change:auto;opacity:.24;transform:none!important}}
