/* ==========================================================================
   PRESSING SUNU LINGE — responsive.css
   Breakpoints : 1024px (tablette large) / 768px (tablette) / 576px (mobile)
   ========================================================================== */

/* ---------- ≤ 1024px : tablette large ---------- */
@media (max-width: 1024px) {
  h1 { font-size: var(--fs-2xl); }
  h2 { font-size: var(--fs-xl); }

  .hero-grid { gap: var(--space-lg); }
  .hero-mosaic { grid-template-rows: repeat(2, 110px); }

  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .value-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-md); }
  .steps-grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-md); }
  .testimonial-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-band { grid-template-columns: repeat(4, 1fr); padding: var(--space-md); }

  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-grid .footer-col:last-child { grid-column: 1 / -1; }
}

/* ---------- ≤ 768px : tablette ---------- */
@media (max-width: 768px) {
  section { padding: var(--space-xl) 0; }

  .nav-list { display: none; }
  .nav-toggle { display: inline-flex; align-items: center; justify-content: center; }

  .hero { padding: var(--space-lg) 0 var(--space-xl); }
  .hero-grid { grid-template-columns: 1fr; }
  .hero-mosaic { order: -1; margin-bottom: var(--space-lg); }
  .hero-badge { left: 50%; transform: translateX(-50%); bottom: -18px; }

  .split { grid-template-columns: 1fr; gap: var(--space-md); }
  .split.reverse .split-media { order: 0; }
  .split-media img { height: 300px; }

  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .value-grid { grid-template-columns: 1fr; gap: var(--space-md); }
  .steps-grid { grid-template-columns: 1fr; gap: var(--space-lg); }
  .testimonial-grid { grid-template-columns: 1fr; }
  .stats-band { grid-template-columns: repeat(2, 1fr); gap: var(--space-md); }

  .contact-grid { grid-template-columns: 1fr; }
  .form-row { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--space-md); }
  .footer-brand { grid-column: 1 / -1; }

  .pricing-table th, .pricing-table td { padding: 0.8rem 1rem; }
}

/* ---------- ≤ 576px : mobile ---------- */
@media (max-width: 576px) {
  h1 { font-size: var(--fs-xl); }
  h2 { font-size: var(--fs-lg); }
  .fs-3xl, h1.hero-title { font-size: var(--fs-xl); }

  .header-inner { padding: 0.85rem var(--space-sm); }
  .logo { font-size: var(--fs-md); }

  .nav-menu {
    position: fixed;
    top: var(--header-height, 64px);
    right: 0;
    left: auto;
    bottom: 0;
    width: min(300px, 85vw);
    background: var(--color-creme);
    display: flex;
    flex-direction: column;
    padding: var(--space-lg) var(--space-md);
    box-shadow: -8px 0 24px rgba(74, 52, 42, 0.12);
    transform: translateX(100%);
    transition: transform var(--transition-base);
    z-index: 99;
  }
  .nav-menu.is-open { transform: translateX(0); }
  .nav-menu .nav-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    align-items: flex-start;
  }
  .nav-menu .nav-list a { font-size: var(--fs-md); }
  .nav-menu .btn { width: 100%; }

  .hero-mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(2, 90px); }
  .hero-badge { max-width: 150px; padding: 0.8rem 1rem; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-meta { flex-direction: column; gap: var(--space-xs); }

  .card-grid { grid-template-columns: 1fr; }
  .stats-band { grid-template-columns: 1fr 1fr; }

  .cta-band { padding: var(--space-lg) var(--space-md); }
  .cta-actions { flex-direction: column; }
  .cta-actions .btn { width: 100%; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .whatsapp-float { width: 52px; height: 52px; font-size: 1.4rem; bottom: 16px; right: 16px; }

  .map-embed { height: 240px; }
}

/* ---------- Accessibilité : mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
