/* ============================================================
   PROJET-IT — responsive.css
   Points de rupture mobile / tablette / bureau
   ============================================================ */

@media (max-width: 1024px) {
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid-4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
  .footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 860px) {
  /* --- Navigation mobile --- */
  .nav__toggle {
    display: grid;
  }
  .nav__menu {
    position: fixed;
    inset: var(--nav-height) 0 0 0;
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(10px);
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transform: translateX(100%);
    transition: transform 0.3s var(--ease);
    overflow-y: auto;
  }
  .nav__menu.is-open {
    transform: translateX(0);
  }
  .nav__links {
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }
  .nav__link {
    display: block;
    padding: 14px 16px;
    font-size: 1.05rem;
  }
  .nav__actions {
    margin-top: 16px;
    flex-direction: column;
    align-items: stretch;
  }
  .nav__actions .btn {
    width: 100%;
  }

  .hero__grid {
    grid-template-columns: 1fr;
  }
  .hero__visual {
    order: -1;
    margin-top: 8px;
  }
  .hero__visual img,
  .hero__visual svg {
    max-width: 380px;
  }

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

  .cta-banner {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 640px) {
  .services-grid,
  .grid-2,
  .grid-3,
  .grid-4 {
    grid-template-columns: 1fr;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .hero__stats {
    gap: 20px;
  }
  .hero__badge {
    font-size: 0.75rem;
    padding: 8px 12px;
  }
  .section {
    padding-block: 3rem;
  }
}
