/* =========================================================================
   ORT BÂTIMENT — RESPONSIVE v2
   Breakpoints: 1200 / 980 / 720 / 480
   ========================================================================= */

@media (max-width: 1200px) {
  :root { --container: 94%; }
  .footer-top { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-top .footer-col:last-child { grid-column: 1 / -1; margin-top: var(--sp-sm); }
}

@media (max-width: 980px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .solutions-grid { grid-template-columns: repeat(2, 1fr); }
  .eng-gallery { grid-template-columns: repeat(3, 1fr); }
  .model-cards { grid-template-columns: 1fr; }
  .testi-grid { grid-template-columns: 1fr; }
  .solution-feature, .solution-feature:nth-child(even) {
    grid-template-columns: 1fr;
  }
  .solution-feature .frame { order: -1 !important; }
  .contact-detail .tag { min-width: 100px; }
}

@media (max-width: 720px) {
  .card--form { padding: var(--sp-md); }
  h1 { font-size: clamp(2.2rem, 8vw, 3rem); }
  h2 { font-size: clamp(1.7rem, 7vw, 2.2rem); }

  .nav-menu, .nav-actions .lang-switch, .nav-actions .btn { display: none; }
  .hamburger { display: flex; }

  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-scroll { display: none; }

  .grid-4, .grid-3, .grid-2, .form-grid, .checkbox-grid,
  .footer-top, .solutions-grid {
    grid-template-columns: 1fr;
  }
  .solutions-grid { border: none; background: none; gap: var(--sp-2xs); }
  .solutions-grid__item { border: 1px solid var(--line); border-radius: var(--radius-sm); }
  .eng-gallery { grid-template-columns: repeat(2, 1fr); }

  .section { padding-block: var(--sp-lg); }
  .spec-header { grid-template-columns: 1fr; }

  .footer-bottom { flex-direction: column; text-align: center; }

  /* Contact page: tighter rhythm between the stacked info/form columns
     and between individual form fields, so nothing feels over-padded. */
  .container.grid-2 { gap: var(--sp-lg); }
  .form-grid, .checkbox-grid { gap: var(--sp-sm); }
  .checkbox-grid { gap: 0.6rem; }
  .file-upload { padding: var(--sp-sm); }
}

@media (max-width: 480px) {
  .card--form { padding: var(--sp-sm); }
  .container, .container-narrow { padding-inline: var(--sp-sm); }
  .btn { width: 100%; justify-content: center; }
  .whatsapp-float span.wa-label { display: none; }
  .whatsapp-float { padding: 0.8rem; border-radius: 50%; }
  .testi-card { padding: var(--sp-md); }
  .coming-soon { padding: var(--sp-xl) var(--sp-sm); }

  /* Contact page: label-above-value instead of a cramped side-by-side row */
  .contact-detail { flex-direction: column; gap: 0.35rem; }
  .contact-detail .tag { min-width: 0; }
  .checkbox-grid { grid-template-columns: 1fr; }
  .form-group input, .form-group select, .form-group textarea { padding: 0.8rem 0.9rem; }
}
