@media (max-width: 1100px) {
  .site-header__inner { grid-template-columns: auto auto 1fr; }
  .site-nav { gap: .9rem; }
  .page-hero__grid,
  .area-grid,
  .area-grid--dominant-left { grid-template-columns: 1fr; }
  .page-hero__visual { justify-content: flex-start; }
}

@media (max-width: 960px) {
  .path-grid,
  .service-grid,
  .info-grid,
  .dense-grid,
  .service-detail-grid,
  .grid--2,
  .grid--3 {
    grid-template-columns: 1fr;
  }

  .partner-strip {
    padding-top: .6rem;
    padding-bottom: .85rem;
  }

  .partner-strip__logos,
  .partner-strip__logos--institutional {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    justify-content: flex-start;
    column-gap: .18rem;
    row-gap: 0;
    width: max-content;
    min-width: max-content;
    padding-inline: .08rem;
    white-space: nowrap;
  }

  .partner-strip__logo {
    width: auto;
    min-width: 0;
    min-height: 0;
    padding: 0;
    white-space: nowrap;
  }

  .partner-strip__logo img {
    max-height: 16px;
  }

  .partner-strip__logo--isaco img { max-height: 18px; max-width: 98px; }
  .partner-strip__logo--confarca img { max-height: 12px; max-width: 115px; }
  .partner-strip__logo--sta img { max-height: 14px; max-width: 89px; }
  .partner-strip__logo--ministero img { max-height: 19px; max-width: 110px; }
  .partner-strip__logo--aci img { max-height: 14px; max-width: 58px; }
  .partner-strip__logo--pagopa img { max-height: 16px; max-width: 70px; }

  .site-header__inner {
    grid-template-columns: auto auto 1fr;
    gap: .9rem;
    min-height: 5rem;
  }

  .site-nav-toggle {
    display: inline-block;
    order: 2;
    justify-self: end;
  }

  .site-nav {
    position: absolute;
    left: 1rem;
    right: 1rem;
    top: calc(100% + .75rem);
    padding: 1rem;
    border-radius: 1.2rem;
    background: rgba(17,17,20,.98);
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow: var(--shadow-elevated);
    display: none;
    flex-direction: column;
    align-items: flex-start;
  }
  .site-nav.is-open { display: flex; }

  .site-header__actions {
    margin-left: auto;
    gap: .55rem;
  }
  .site-header__actions .btn {
    min-height: 2.8rem;
    padding: 0 .9rem;
    font-size: .9rem;
  }
  .site-brand img { width: 210px; }
  .section-heading { margin-bottom: 2rem; }

  .hero-visual__card--large { margin-left: .2rem; }
  .hero-visual__card--small { margin-right: .35rem; }
  .page-hero__content h1 { font-size: clamp(2.35rem, 7.2vw, 3.55rem); }
  .card-icon { width: 2.45rem; height: 2.45rem; margin-bottom: .85rem; }
  .card-icon svg { width: 1.12rem; height: 1.12rem; }

  .site-footer__grid { grid-template-columns: 1fr 1fr; }
  .site-footer__bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .site-footer__bottom-links { flex-wrap: wrap; }
}

@media (max-width: 640px) {
  .container,
  .container--narrow { width: min(100% - 1.4rem, 100%); }
  .section { padding: 3.2rem 0; }
  .page-hero__content h1 { max-width: 100%; }
  .page-hero__actions,
  .cta-band__actions,
  .policy-panel .cta-band__actions {
    flex-direction: column;
    align-items: stretch;
  }
  .btn { width: 100%; }
  .site-footer__grid { grid-template-columns: 1fr; }
}

@media (max-width: 1180px) {
  body[class*="page-emmeemme"] .noleggio-why-grid,
  body[class*="page-emmeemme"] .noleggio-steps-grid {
    grid-template-columns: 1fr;
  }
}
