/* Responsive tweaks (mobile-first deja en base) */

@media (max-width: 540px){
  .hero-immersif{ min-height: 88vh; padding-bottom: 40px; padding-top: 100px; }
  .hero-immersif__title{ font-size: clamp(2rem, 9vw, 2.6rem); line-height: 1.05; }
  .hero-immersif__sub{ font-size: 1rem; line-height: 1.55; }

  .section-title{ font-size: clamp(1.8rem, 8vw, 2.3rem); }
  section{ padding: 56px 0; }

  .stats-grid{ grid-template-columns: 1fr; gap: 28px; }
  .stat-item + .stat-item::before{ display: none; }
  .stat-item + .stat-item{ padding-top: 24px; border-top: 1px solid rgba(243,239,231,0.18); }

  .footer-cols{ gap: 28px; }

  .gal-grid{ grid-template-columns: 1fr; gap: 14px; }
}

@media (max-width: 720px){
  .header-cta{ display: none; }
  .brand-name{ font-size: 1.04rem; max-width: 200px; }
}

@media (min-width: 720px) and (max-width: 979px){
  .brand-name{ font-size: 1.12rem; }
}

@media (min-width: 1024px){
  .hero-immersif{ min-height: 92vh; }
}

/* Reduce padding mobile pour cards */
@media (max-width: 540px){
  .card-stripe{ padding: 26px 22px 24px; }
  .avis-card{ padding: 24px 20px; }
  .contact-channel{ padding: 14px 16px; }
  .contact-channel__value{ font-size: 1.18rem; }
  .contact-form{ padding: 24px 20px; }
}

/* wf-noxoverflow : reveal vertical (le slide horizontal deborde la largeur sur mobile) */
[data-reveal]:not(.in){ transform: translateY(18px) !important; }
