/* =========================================================================
   Pun'ez — Responsive (mobile, tablette, petits écrans)
   ========================================================================= */

/* ---------- TABLETTES & PETITS LAPTOPS (≤ 1024px) ---------- */
@media (max-width: 1024px) {
  .hero { padding: 120px 0 80px; }
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .hero-title { font-size: 48px; }
  .hero-floating-top { left: 16px; top: 24px; }
  .hero-floating-bottom { right: 16px; bottom: -16px; }
  .hero-features { grid-template-columns: 1fr 1fr; }

  .solutions-grid { grid-template-columns: 1fr; gap: 40px; }
  .autres-services-list { grid-template-columns: 1fr 1fr; }

  .punaise-grid { grid-template-columns: 1fr; gap: 40px; }

  .pourquoi-grid { grid-template-columns: 1fr 1fr; }
  .processus-grid { grid-template-columns: 1fr 1fr; }

  .avis-grid { grid-template-columns: 1fr; }

  .experts-grid { grid-template-columns: 1fr; gap: 40px; }
  .experts-floating { position: static; margin-top: 24px; max-width: none; left: auto; bottom: auto; }

  .devis-grid { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ---------- TABLETTE (≤ 768px) ---------- */
@media (max-width: 768px) {
  .container { padding: 0 16px; }

  .main-nav { display: none; }
  .header-phone { display: none; }
  .brand-logo { height: 52px; }
  .header-inner { padding: 14px 16px; gap: 12px; }
  .header-actions .btn { padding: 10px 18px; font-size: 13px; }

  .section { padding: 56px 0; }
  .section-title { font-size: 26px; line-height: 1.2; }
  .section-lead { font-size: 16px; }

  .hero { padding: 96px 0 56px; }
  .hero-title { font-size: 34px; line-height: 1.1; }
  .hero-lead { font-size: 16px; }
  .hero-eyebrow { font-size: 11px; }
  .hero-features { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }
  .hero-floating-top, .hero-floating-bottom { display: none; }
  .hero-image { aspect-ratio: 4 / 4.5; }
  .hero-rating { gap: 12px; }
  .hero-ctas .btn { flex: 1 1 auto; min-width: 0; }

  .video-wrapper { aspect-ratio: 16 / 10; }

  .autres-services-list { grid-template-columns: 1fr; }
  .autres-services-header { flex-direction: column; align-items: flex-start; }
  .autres-services-sub { max-width: none; }

  .punaise-section { padding: 56px 0; }
  .punaise-text { font-size: 15px; }

  .pourquoi-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 40px; }
  .processus-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 48px; }

  .avis-grid { gap: 16px; margin-top: 40px; }
  .avis-card { padding: 20px; }
  .rating-pill { font-size: 13px; padding: 6px 14px; }

  .experts-checks { grid-template-columns: 1fr; }
  .experts-image-wrapper { margin-bottom: 0; }
  .experts-floating { padding: 20px; }

  .devis-form { padding: 24px; border-radius: 24px; }
  .form-grid { grid-template-columns: 1fr; gap: 16px; }
  .form-grid label.full { grid-column: auto; }
  .form-grid input, .form-grid select, .form-grid textarea { font-size: 16px; /* évite zoom iOS */ }
  .badges-grid { grid-template-columns: 1fr; }
  .devis-success { padding: 36px 24px; border-radius: 24px; }

  .contact-card { padding: 24px; border-radius: 24px; }
  .contact-phone { font-size: 28px; word-break: break-all; }
  .map-wrapper iframe { height: 240px; }
  .horaires-card { padding: 20px; border-radius: 24px; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding: 48px 16px; text-align: left; }
  .footer-bottom-inner { padding: 20px 16px; text-align: center; align-items: center; gap: 8px; }
  .footer-brand img { height: 56px; }

  .center-btn { margin-top: 32px; }
  .btn { font-size: 14px; }
}

/* ---------- MOBILE (≤ 480px) ---------- */
@media (max-width: 480px) {
  .container { padding: 0 14px; }

  .header-actions .btn { padding: 8px 14px; font-size: 12px; }
  .brand-logo { height: 44px; }
  .header-inner { padding: 12px 14px; }

  .hero { padding: 80px 0 48px; }
  .hero-title { font-size: 28px; }
  .hero-lead { font-size: 15px; }
  .hero-ctas { gap: 10px; }
  .hero-ctas .btn { width: 100%; }
  .hero-rating { flex-direction: column; align-items: flex-start; gap: 10px; }

  .section { padding: 48px 0; }
  .section-title { font-size: 22px; }

  .btn { padding: 10px 18px; font-size: 13px; }

  .pourquoi-card, .processus-card, .feature-card { padding: 18px; }
  .avis-card { padding: 18px; }

  .contact-phone { font-size: 24px; }

  .devis-success h3 { font-size: 22px; }
  .devis-success p { font-size: 14px; }
}

/* ---------- TRÈS PETITS ÉCRANS (≤ 360px) ---------- */
@media (max-width: 360px) {
  .container { padding: 0 12px; }
  .hero-title { font-size: 26px; }
  .section-title { font-size: 20px; }
}
