/* Mobile-first deja par defaut. Ici on cale les ajustements mobile fins. */
@media (max-width:560px){
  .container{padding:0 20px}
  .hero{padding-bottom:80px}
  .hero h1{font-size:clamp(2.4rem, 9.5vw, 3.4rem)}
  .hero-sub{font-size:1rem}
  .hero-meta{font-size:.68rem;letter-spacing:.14em}
  .hero-meta .scroll-cue::after{height:32px}
  section{padding:52px 0}
  .section-head{margin-bottom:36px}
  .stat{padding-left:18px}
  .about-text .lead{font-size:1.05rem;padding-left:14px}
  .service-row{grid-template-columns:auto 1fr;gap:14px}
  .service-num{min-width:24px;font-size:.9rem}
  .service-body h3{font-size:1.2rem}
  .service-pic{display:none}
  .seasons-grid .season{padding:24px 0}
  .seasons .season-name{font-size:1.5rem}
  .avis-card{padding:26px 22px}
  .avis-text{font-size:1.05rem}
  .contact-card{padding:24px}
  .contact-card .val{font-size:1.35rem}
  .contact-cta{padding:28px 22px}
  .contact-cta h3{font-size:1.5rem}
  .footer-grid{gap:32px}
  .stats-grid{gap:28px}
  .stat-val{font-size:2.2rem}
}

/* Tablette */
@media (min-width:560px) and (max-width:900px){
  .container{padding:0 28px}
}

/* Desktop */
@media (min-width:900px){
  .hero{padding-bottom:96px}
}

/* Padding extra pour eviter que la sticky CTA cache le footer */
@media (max-width:899px){
  body{padding-bottom:0}
}

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