/* ==========================================================================
   DEPUBAC — Responsive
   ========================================================================== */

@media (max-width: 1100px) {
  :root {
    --fs-hero: 3rem;
    --fs-4xl: 2.5rem;
    --fs-3xl: 2rem;
  }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--pillars { gap: var(--sp-8); }
  .split { gap: var(--sp-12); }
}

@media (max-width: 968px) {
  :root {
    --fs-hero: 2.5rem;
    --fs-4xl: 2.25rem;
    --fs-3xl: 1.75rem;
    --fs-2xl: 1.5rem;
    --fs-xl: 1.25rem;
  }
  .section { padding: var(--sp-16) 0; }
  .section--large { padding: var(--sp-20) 0; }
  .hero { padding-top: calc(var(--nav-height) + var(--sp-12)); padding-bottom: var(--sp-16); }
  .hero__title { font-size: var(--fs-hero); }

  .grid--3, .grid--2, .grid--2x2 { grid-template-columns: repeat(2, 1fr); }
  .grid--pillars { grid-template-columns: 1fr; gap: var(--sp-6); }

  .split, .split--with-image { grid-template-columns: 1fr; gap: var(--sp-8); }

  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: var(--sp-10); }
}

@media (max-width: 640px) {
  :root {
    --fs-hero: 2rem;
    --fs-4xl: 1.875rem;
    --fs-3xl: 1.5rem;
    --fs-2xl: 1.375rem;
  }
  .container { padding: 0 var(--sp-5); }
  .section { padding: var(--sp-12) 0; }
  .section--large { padding: var(--sp-16) 0; }
  .section--tight { padding: var(--sp-8) 0; }

  .hero { padding-top: calc(var(--nav-height) + var(--sp-8)); padding-bottom: var(--sp-12); }
  .hero__lead { font-size: var(--fs-md); }
  .hero__cta-group { flex-direction: column; align-items: stretch; }
  .hero__cta-group .btn { justify-content: center; }

  .grid--2, .grid--3, .grid--4, .grid--2x2 { grid-template-columns: 1fr; gap: var(--sp-4); }

  .card, .sector-card, .service-tile { padding: var(--sp-6); }
  .product-card__body { padding: var(--sp-6); }
  .alert { padding: var(--sp-8) var(--sp-6); }
  .alert__title { font-size: var(--fs-xl); }

  .process__step { grid-template-columns: 60px 1fr; gap: var(--sp-4); padding: var(--sp-6) 0; }
  .process__step-number { font-size: var(--fs-2xl); }

  .form__row { grid-template-columns: 1fr; gap: var(--sp-6); }

  .quote { font-size: var(--fs-xl); }

  .footer-grid { grid-template-columns: 1fr; gap: var(--sp-8); margin-bottom: var(--sp-10); }
  .footer-bottom { flex-direction: column; align-items: flex-start; text-align: left; }
  .footer-bottom__links { flex-wrap: wrap; gap: var(--sp-4); }

  .site-nav__logo img { height: 48px; }
}

@media (max-width: 480px) {
  .prose p { font-size: var(--fs-base); }
}
