/* Costa FX Engine V13 */
.costa-fx{--fx-a:var(--fx-custom-a,#2de2c4);--fx-b:var(--fx-custom-b,#8b5cf6);--fx-c:var(--fx-custom-c,#ff7a35);--fx-shadow:color-mix(in srgb,var(--fx-a) 42%,transparent)}
.costa-fx[data-fx-theme="costa-tropical"]{--fx-a:var(--fx-custom-a,#27d39b);--fx-b:var(--fx-custom-b,#f6c453);--fx-c:var(--fx-custom-c,#ff7145)}
.costa-fx[data-fx-theme="costa-gold"]{--fx-a:var(--fx-custom-a,#e4bc62);--fx-b:var(--fx-custom-b,#fff0ad);--fx-c:var(--fx-custom-c,#b78024)}
.costa-fx[data-fx-theme="costa-sunset"]{--fx-a:var(--fx-custom-a,#ff713b);--fx-b:var(--fx-custom-b,#ec4899);--fx-c:var(--fx-custom-c,#8b5cf6)}
.costa-fx[data-fx-theme="costa-ocean"]{--fx-a:var(--fx-custom-a,#22d3ee);--fx-b:var(--fx-custom-b,#0ea5e9);--fx-c:var(--fx-custom-c,#2563eb)}
.costa-fx[data-fx-theme="purple-night"]{--fx-a:var(--fx-custom-a,#c084fc);--fx-b:var(--fx-custom-b,#7c3aed);--fx-c:var(--fx-custom-c,#ec4899)}
.costa-fx[data-fx-theme="costa-red-club"]{--fx-a:var(--fx-custom-a,#ff334f);--fx-b:var(--fx-custom-b,#ff7a35);--fx-c:var(--fx-custom-c,#8b0000)}
.costa-fx[data-fx-theme="costa-white-lounge"]{--fx-a:var(--fx-custom-a,#f8fafc);--fx-b:var(--fx-custom-b,#e4bc62);--fx-c:var(--fx-custom-c,#d6b15c)}
.costa-fx.fx-page-active.fx-background:before{content:"";position:fixed;inset:-8%;pointer-events:none;z-index:-2;background:radial-gradient(circle at 12% 15%,color-mix(in srgb,var(--fx-a) calc(22% * var(--fx-intensity)),transparent),transparent 32%),radial-gradient(circle at 86% 32%,color-mix(in srgb,var(--fx-b) calc(20% * var(--fx-intensity)),transparent),transparent 37%),radial-gradient(circle at 48% 90%,color-mix(in srgb,var(--fx-c) calc(16% * var(--fx-intensity)),transparent),transparent 35%);animation:fxBackground calc(var(--fx-speed)*3) ease-in-out infinite alternate}
.fx-page-active.fx-neon :is(.event-card,.panel-card,.offer-card,.gallery-card,.home-premium-card,.signature-cta>div,.premium-inner-heading){box-shadow:0 0 calc(32px * var(--fx-intensity) * var(--fx-glow-power)) var(--fx-shadow);border-color:color-mix(in srgb,var(--fx-a) 42%,rgba(255,255,255,.1))}
.fx-page-active.fx-glow :is(a[class*="button"],button[class*="btn"],.primary-cta,.hero-cta,.floating-whatsapp,.mobile-premium-nav a.active){box-shadow:0 0 calc(30px * var(--fx-intensity) * var(--fx-glow-power)) var(--fx-shadow)}
.fx-page-active.fx-uv{filter:drop-shadow(0 0 calc(5px * var(--fx-intensity)) color-mix(in srgb,var(--fx-b) 35%,transparent))}
.fx-page-active.fx-glass :is(.event-card,.offer-card,.home-premium-card,.premium-inner-heading,.signature-cta>div,.gallery-card){background-color:rgba(12,12,16,.68)!important;backdrop-filter:blur(var(--fx-blur));-webkit-backdrop-filter:blur(var(--fx-blur))}
.fx-page-active.fx-cards :is(.event-card,.offer-card,.gallery-card,.home-premium-card){transition:transform .32s ease,box-shadow .32s ease}.fx-page-active.fx-cards :is(.event-card,.offer-card,.gallery-card,.home-premium-card):hover{transform:translateY(calc(-8px * var(--fx-motion))) scale(calc(1 + .018 * var(--fx-motion)))}
.fx-page-active.fx-shine :is(.event-card,.offer-card,.home-premium-card,.primary-cta,.premium-inner-heading){position:relative;overflow:hidden}.fx-page-active.fx-shine :is(.event-card,.offer-card,.home-premium-card,.primary-cta,.premium-inner-heading):after{content:"";position:absolute;inset:-70% auto -70% -45%;width:22%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transform:rotate(18deg);animation:fxShine calc(var(--fx-speed)*1.8) ease-in-out infinite}
.fx-page-active.fx-menu :is(.v3-nav,.hero-menu,.mobile-premium-nav){border-color:color-mix(in srgb,var(--fx-a) 35%,rgba(255,255,255,.12));box-shadow:0 8px calc(28px * var(--fx-intensity)) color-mix(in srgb,var(--fx-a) 15%,transparent)}
.fx-page-active.fx-footer .premium-v5-footer{box-shadow:inset 0 2px 0 color-mix(in srgb,var(--fx-a) 50%,transparent),0 -20px 60px color-mix(in srgb,var(--fx-b) 12%,transparent)}
.fx-page-active.fx-fire:after,.fx-page-active.fx-water:after{content:"";position:fixed;left:0;right:0;bottom:-8vh;height:42vh;pointer-events:none;z-index:-1;opacity:calc(.3 * var(--fx-intensity));filter:blur(22px)}
.fx-page-active.fx-fire:after{background:radial-gradient(ellipse at 20% 100%,#ff3d00,transparent 55%),radial-gradient(ellipse at 70% 100%,#ff9d00,transparent 52%);animation:fxHeat calc(var(--fx-speed)*2) ease-in-out infinite alternate}
.fx-page-active.fx-water:after{background:repeating-radial-gradient(ellipse at 50% 120%,color-mix(in srgb,var(--fx-a) 35%,transparent) 0 3%,transparent 5% 10%);animation:fxWater calc(var(--fx-speed)*2) linear infinite}
.fx-laser-layer,.fx-fog-layer,.fx-cursor-glow,.fx-loader-screen{position:fixed;pointer-events:none}.fx-laser-layer,.fx-fog-layer{inset:0;z-index:1;overflow:hidden}.fx-laser-beam{position:absolute;top:-20%;left:50%;width:2px;height:145%;transform-origin:50% 0;background:linear-gradient(to bottom,transparent,var(--fx-a),transparent);box-shadow:0 0 15px var(--fx-a);opacity:calc(.28 * var(--fx-intensity));animation:fxLaser calc(var(--fx-speed)*1.2) ease-in-out infinite alternate}.fx-laser-beam:nth-child(2){left:26%;background:linear-gradient(to bottom,transparent,var(--fx-b),transparent);animation-delay:calc(var(--fx-speed)*-.45);animation-direction:alternate-reverse}.fx-laser-beam:nth-child(3){left:78%;background:linear-gradient(to bottom,transparent,var(--fx-c),transparent);animation-delay:calc(var(--fx-speed)*-.8)}
.fx-fog-cloud{position:absolute;width:55vw;height:24vh;border-radius:50%;background:rgba(255,255,255,.035);filter:blur(34px);bottom:-8%;animation:fxFog calc(var(--fx-speed)*4) linear infinite}.fx-fog-cloud:nth-child(2){left:45%;bottom:5%;animation-delay:calc(var(--fx-speed)*-2)}
.fx-particle,.fx-spark{position:fixed;z-index:2;border-radius:50%;pointer-events:none;background:var(--fx-a);box-shadow:0 0 12px var(--fx-a);opacity:calc(.72 * var(--fx-intensity));animation:fxFloat linear forwards}.fx-particle{bottom:-20px;width:4px;height:4px}.fx-spark{width:3px;height:3px;animation:fxSpark 1.3s ease-out forwards}
.fx-confetti-piece{position:fixed;z-index:9998;width:8px;height:14px;pointer-events:none;background:var(--fx-a);animation:fxConfetti 1.6s ease-out forwards}.fx-confetti-piece:nth-child(3n){background:var(--fx-b)}.fx-confetti-piece:nth-child(3n+1){background:var(--fx-c)}
.fx-cursor-glow{z-index:9997;width:180px;height:180px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,color-mix(in srgb,var(--fx-a) 16%,transparent),transparent 70%);mix-blend-mode:screen;transition:opacity .2s}
.fx-loader-screen{inset:0;z-index:100000;display:grid;place-items:center;background:#060608;transition:opacity .55s,visibility .55s}.fx-loader-screen.is-hidden{opacity:0;visibility:hidden}.fx-loader-logo{font-size:54px;filter:drop-shadow(0 0 18px var(--fx-a));animation:fxPulse 1.2s ease-in-out infinite}.fx-loader-screen strong{display:block;margin-top:12px;letter-spacing:.16em}
.fx-reveal{opacity:0;transform:translateY(calc(28px * var(--fx-motion)));transition:opacity .7s ease,transform .7s ease}.fx-reveal.is-visible{opacity:1;transform:none}
@keyframes fxShine{0%,60%{left:-45%}100%{left:135%}}@keyframes fxFloat{to{transform:translate3d(var(--fx-drift),-110vh,0) scale(.3);opacity:0}}@keyframes fxSpark{to{transform:translate(var(--fx-x),var(--fx-y)) scale(0);opacity:0}}@keyframes fxConfetti{to{transform:translate(var(--fx-x),var(--fx-y)) rotate(480deg);opacity:0}}@keyframes fxBackground{to{transform:scale(1.08) translate3d(1.5%,-1%,0)}}@keyframes fxLaser{from{transform:rotate(-34deg)}to{transform:rotate(34deg)}}@keyframes fxFog{from{transform:translateX(-40vw) scale(1)}to{transform:translateX(110vw) scale(1.35)}}@keyframes fxHeat{to{transform:translateY(-3vh) scale(1.08)}}@keyframes fxWater{to{background-position:80px 30px}}@keyframes fxPulse{50%{transform:scale(1.1);opacity:.72}}
@media(max-width:760px){.costa-fx.fx-mobile :is(.mobile-premium-nav,.hero-menu){backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.costa-fx:not(.fx-mobile) :is(.fx-particle,.fx-laser-layer,.fx-fog-layer){display:none}.fx-cards :is(.event-card,.offer-card,.gallery-card,.home-premium-card):hover{transform:none}.fx-shine :is(.event-card,.offer-card,.home-premium-card):after,.fx-cursor-glow{display:none}.fx-laser-beam{opacity:calc(.13 * var(--fx-intensity))}}
@media(prefers-reduced-motion:reduce){.costa-fx *,.costa-fx:before,.costa-fx:after{animation:none!important;transition:none!important}.fx-particle,.fx-spark,.fx-confetti-piece,.fx-laser-layer,.fx-fog-layer,.fx-loader-screen{display:none!important}}

/* =========================================================
   COSTA FX V17 — EFFETS GLOBAUX DEVANT TOUTE LA PAGE
   Lasers, brouillard, particules et étincelles passent devant
   les fonds et les modules. Le header, les menus et la barre
   mobile restent au-dessus et entièrement cliquables.
   ========================================================= */
.fx-laser-layer,
.fx-fog-layer{
  z-index:10010!important;
  pointer-events:none!important;
  mix-blend-mode:screen;
}
.fx-particle,
.fx-spark{
  z-index:10011!important;
  pointer-events:none!important;
  mix-blend-mode:screen;
}

/* Effets visibles mais pas trop agressifs sur le texte */
.fx-laser-beam{
  opacity:calc(.42 * var(--fx-intensity))!important;
  box-shadow:
    0 0 12px var(--fx-a),
    0 0 28px color-mix(in srgb,var(--fx-a) 70%,transparent),
    0 0 52px color-mix(in srgb,var(--fx-b) 34%,transparent)!important;
}
.fx-laser-beam:nth-child(2){
  box-shadow:
    0 0 12px var(--fx-b),
    0 0 28px color-mix(in srgb,var(--fx-b) 72%,transparent)!important;
}
.fx-laser-beam:nth-child(3){
  box-shadow:
    0 0 12px var(--fx-c),
    0 0 28px color-mix(in srgb,var(--fx-c) 72%,transparent)!important;
}
.fx-fog-layer{opacity:calc(.78 * var(--fx-intensity))}
.fx-fog-cloud{
  background:color-mix(in srgb,var(--fx-a) 12%,rgba(255,255,255,.055))!important;
  filter:blur(38px)!important;
}
.fx-fog-cloud:nth-child(2){
  background:color-mix(in srgb,var(--fx-b) 12%,rgba(255,255,255,.045))!important;
}

/* Navigation toujours propre et devant les effets */
.premium-site-header,
.premium-nav,
.hero-nav,
.home-live-ticker,
.page-live-ticker,
.mobile-premium-nav,
.menu-toggle,
.hero-menu,
.mobile-menu-portal{
  z-index:10030!important;
}

/* Les éléments interactifs restent cliquables même si un rayon les traverse */
a,button,input,select,textarea,label{
  pointer-events:auto;
}

@media(max-width:760px){
  .fx-laser-layer,.fx-fog-layer{z-index:10010!important}
  .fx-particle,.fx-spark{z-index:10011!important}
  .fx-laser-beam{opacity:calc(.34 * var(--fx-intensity))!important}
  .fx-fog-layer{opacity:calc(.58 * var(--fx-intensity))}
  .premium-site-header,.premium-nav,.home-live-ticker,.mobile-premium-nav,.menu-toggle,.hero-menu,.mobile-menu-portal{
    z-index:10030!important;
  }
}
