/* =========================================================================================================
   Lancements commerciaux (inc/lancement.php, réglés dans LC Studio)
   - .launch     : section de l'accueil, juste après le hero (photo du programme + panneau bleu de marque)
   - .launch-bar : bandeau « NOUVEAU — OUVERTURE COMMERCIALE » entre le hero et le contenu de la fiche
   Animations : apparition du thème (data-reveal), un reflet qui balaie le panneau une fois, un point qui
   pulse trois fois. Rien ne bouge avec prefers-reduced-motion.
   ========================================================================================================= */

/* ---------- Accueil ---------- */
.launch { padding-block: clamp(56px, 7vw, 104px) clamp(24px, 3vw, 40px); background: transparent; }
.launch__card {
  display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  border-radius: var(--lc-radius); overflow: hidden; isolation: isolate;
  background: var(--lc-blue); color: #fff;
  box-shadow: 0 30px 60px -34px rgba(4, 31, 58, 0.55);
}
.launch__media { position: relative; display: block; min-height: clamp(320px, 36vw, 520px); overflow: hidden; background: var(--lc-night); }
.launch__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.001); transition: transform 1400ms var(--lc-ease); }
@media (hover: hover) and (pointer: fine) { .launch__card:hover .launch__media img { transform: scale(1.04); } }

.launch__body {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 14px;
  padding: clamp(28px, 4vw, 64px);
  background: radial-gradient(120% 90% at 100% 0%, rgba(98, 210, 175, 0.16), transparent 55%), linear-gradient(160deg, var(--lc-blue) 0%, var(--lc-blue-deep) 100%);
}
/* Reflet : traverse le panneau une fois, à l'apparition. */
.launch__body::after {
  content: ''; position: absolute; inset: -20% auto -20% -60%; width: 40%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.14), transparent);
  transform: skewX(-12deg) translateX(0); opacity: 0;
}
.launch__card.is-in .launch__body::after { animation: lc-launch-sheen 1600ms var(--lc-ease) 500ms 1 both; }
@keyframes lc-launch-sheen { 0% { opacity: 0; transform: skewX(-12deg) translateX(0); } 15% { opacity: 1; } 100% { opacity: 0; transform: skewX(-12deg) translateX(420%); } }

.launch__tag {
  display: inline-flex; align-items: center; gap: 10px; min-height: 34px; padding: 0 16px 0 12px; border-radius: 999px;
  background: var(--lc-mint); color: var(--lc-mint-ink); font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
}
.launch__dot { position: relative; width: 8px; height: 8px; border-radius: 50%; background: currentColor; flex: none; }
.launch__dot::after { content: ''; position: absolute; inset: 0; border-radius: inherit; background: currentColor; opacity: 0.5; animation: lc-launch-pulse 1800ms ease-out 3; }
@keyframes lc-launch-pulse { from { transform: scale(1); opacity: 0.5; } to { transform: scale(2.8); opacity: 0; } }

.launch__place { font-size: 15px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255, 255, 255, 0.78); margin-top: 6px; }
.launch__title { font-size: clamp(2rem, 3.6vw, 3.4rem); font-weight: 700; line-height: 1; letter-spacing: -0.02em; text-wrap: balance; }
.launch__hook { font-size: clamp(1.05rem, 1.4vw, 1.25rem); color: rgba(255, 255, 255, 0.9); max-width: 34ch; }
.launch__facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 16px 24px; width: 100%; margin: 10px 0 8px; padding-top: 18px; border-top: 1px solid rgba(255, 255, 255, 0.2); }
.launch__facts dt { font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255, 255, 255, 0.66); }
.launch__facts dd { margin: 4px 0 0; font-size: 18px; font-weight: 700; line-height: 1.25; }
.launch__cta { margin-top: 6px; }

@media (max-width: 1000px) {
  .launch__card { grid-template-columns: 1fr; }
  .launch__media { min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width: 560px) {
  .launch__media { aspect-ratio: 4 / 3; }
  .launch__facts { grid-template-columns: 1fr 1fr; }
  .launch__cta { width: 100%; }
}

/* ---------- Fiche du programme ---------- */
.launch-bar { position: relative; z-index: 2; padding-top: clamp(28px, 4vw, 48px); }
.launch-bar__in {
  position: relative; overflow: hidden;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px 28px;
  padding: 18px 18px 18px clamp(20px, 2.6vw, 32px); border-radius: var(--lc-radius-s);
  background: linear-gradient(110deg, var(--lc-blue) 0%, var(--lc-blue-deep) 100%); color: #fff;
  box-shadow: 0 18px 40px -26px rgba(4, 31, 58, 0.6);
}
.launch-bar__in::after {
  content: ''; position: absolute; inset: -40% auto -40% -40%; width: 30%; pointer-events: none;
  background: linear-gradient(100deg, transparent, rgba(255, 255, 255, 0.16), transparent); transform: skewX(-12deg); opacity: 0;
}
.launch-bar__in.is-in::after { animation: lc-launch-sheen 1600ms var(--lc-ease) 400ms 1 both; }
.launch-bar__label { display: flex; align-items: center; gap: 10px; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.launch-bar__new { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: 999px; background: var(--lc-mint); color: var(--lc-mint-ink); font-weight: 700; }
.launch-bar__sep { opacity: 0.6; }
.launch-bar__label strong { font-weight: 700; }
.launch-bar__txt { min-width: 0; font-size: 16px; font-weight: 600; }
.launch-bar__txt span { display: block; font-weight: 400; font-size: 14px; color: rgba(255, 255, 255, 0.8); margin-top: 2px; }

@media (max-width: 1000px) {
  .launch-bar__in { grid-template-columns: minmax(0, 1fr) auto; }
  .launch-bar__label { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .launch-bar__in { grid-template-columns: 1fr; padding: 18px; }
  .launch-bar__label { white-space: normal; flex-wrap: wrap; }
  .launch-bar__sep { display: none; }
  .launch-bar__cta { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .launch__media img, .launch__dot::after, .launch__body::after, .launch-bar__in::after { transition: none; animation: none !important; }
}
