/* ============================================
   PRIZM STUDIO — v5.2 CSS Patch
   Add this AFTER home-components.css
   ============================================ */

/* -----------------------------------------------
   ANIMATED ORBS BACKGROUND (from old theme)
   Applied to sections with --prizm-bg background
   ----------------------------------------------- */
/* Les orbes par section sont désactivés — on utilise uniquement les
   prizm-cinematic-lights globaux (page entière, sans rupture entre sections) */
.prizm-orbs-bg {
  position: relative;
  /* overflow retiré : ne clippe plus les lumières aux bords de chaque section */
}

.prizm-orbs-bg::before,
.prizm-orbs-bg::after,
.prizm-orbs-bg .prizm-orb-3 {
  display: none; /* désactivé — remplacé par prizm-cinematic-lights global */
}

/* Orb 1 — Red/Orange */
.prizm-orbs-bg::before {
  top: -15%;
  left: -15%;
  width: 55vw;
  height: 55vw;
  background: radial-gradient(circle, rgba(232, 52, 42, 0.15) 0%, transparent 70%);
  animation: prizmOrb1 25s infinite ease-in-out;
}

/* Orb 2 — Cyan/Blue */
.prizm-orbs-bg::after {
  bottom: -25%;
  right: -15%;
  width: 65vw;
  height: 65vw;
  background: radial-gradient(circle, rgba(0, 196, 204, 0.12) 0%, transparent 70%);
  animation: prizmOrb2 30s infinite ease-in-out;
  animation-delay: -5s;
}

/* Orb 3 — needs a real DOM element, added via JS or inline */
.prizm-orb-3 {
  position: absolute;
  top: 35%;
  left: 35%;
  width: 40vw;
  height: 40vw;
  border-radius: 50%;
  filter: blur(120px);
  background: radial-gradient(circle, rgba(232, 52, 42, 0.08) 0%, transparent 70%);
  animation: prizmOrb3 22s infinite ease-in-out;
  animation-delay: -10s;
  opacity: 0.5;
  pointer-events: none;
  z-index: 0;
}

@keyframes prizmOrb1 {
  0%, 100% { transform: translate(0, 0) scale(1) rotate(0deg); }
  25% { transform: translate(30px, -50px) scale(1.15) rotate(5deg); }
  50% { transform: translate(-20px, -30px) scale(1.05) rotate(-3deg); }
  75% { transform: translate(40px, 20px) scale(1.2) rotate(8deg); }
}

@keyframes prizmOrb2 {
  0%, 100% { transform: translate(0, 0) scale(1) rotate(0deg); }
  25% { transform: translate(-40px, 30px) scale(1.1) rotate(-5deg); }
  50% { transform: translate(20px, -40px) scale(1.2) rotate(7deg); }
  75% { transform: translate(-30px, -20px) scale(1.05) rotate(-4deg); }
}

@keyframes prizmOrb3 {
  0%, 100% { transform: translate(0, 0) scale(1) rotate(0deg); }
  33% { transform: translate(50px, 40px) scale(1.15) rotate(10deg); }
  66% { transform: translate(-40px, -50px) scale(1.25) rotate(-8deg); }
}

/* Ensure section content stays above orbs */
.prizm-orbs-bg:not(.prizm-cta-section) > .prizm-container,
.prizm-orbs-bg:not(.prizm-cta-section) > div:not(.prizm-orb-3):not(.prizm-hero__video-bg) {
  position: relative;
  z-index: 1;
}

/* Keep hero video background absolute (avoid layout shift) */
.prizm-hero .prizm-hero__video-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}


/* -----------------------------------------------
   FIX: Vision image — less tall (3/4 instead of 4/5)
   ----------------------------------------------- */
.prizm-about__image-wrapper {
  aspect-ratio: 4/3 !important;
}


/* -----------------------------------------------
   FIX: Offre cards hover — darker bg + all text white
   ----------------------------------------------- */
.prizm-offre-card:hover .prizm-offre-card__inner {
  background: rgba(0, 0, 0, 0.6);
  border-radius: inherit;
}

.prizm-offre-card:hover .prizm-offre-card__badge,
.prizm-offre-card:hover .prizm-offre-card__title,
.prizm-offre-card:hover .prizm-offre-card__desc,
.prizm-offre-card:hover .prizm-offre-card__icon {
  color: var(--prizm-text) !important;
}


/* -----------------------------------------------
   Reduced motion support
   ----------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .prizm-orbs-bg::before,
  .prizm-orbs-bg::after,
  .prizm-orb-3 {
    animation: none !important;
  }
}
