/* Rifinitura mobile condivisa: gerarchia, ritmo, controlli e scorrimento. */
@media (max-width: 43.99rem) {
  html { scroll-padding-top: 4.75rem; }
  body { overflow-x: hidden; }
  .container { width: min(100% - 2rem, var(--container)); }

  .site-header__inner { min-height: 5rem; gap: .75rem; }
  .brand-logo { width: 9.4rem; max-height: 2.55rem; }
  .mobile-nav summary { min-width: 3.75rem; min-height: 2.75rem; padding-inline: .85rem; }

  .hero,
  .hero--marketing,
  .about-hero,
  .offers-hero { min-height: auto; padding: 6.65rem 0 3.5rem; }
  .page-heading { padding: 7rem 0 3.5rem; }
  .hero__grid,
  .about-hero__grid,
  .offers-hero__grid { gap: 1.75rem; }
  .hero h1,
  .hero--marketing h1,
  .about-hero h1,
  .offers-hero h1,
  .page-heading h1 {
    max-width: 14ch;
    margin-bottom: 1.25rem;
    font-size: clamp(2.45rem, 10.6vw, 3.35rem);
    line-height: 1.01;
    letter-spacing: -.052em;
    text-wrap: balance;
  }
  .hero p,
  .about-hero__copy p,
  .offers-hero p,
  .page-heading p { font-size: 1rem; line-height: 1.65; }
  .page-heading p { margin-bottom: 0; }
  .actions { display: grid; gap: .7rem; margin-top: 1.5rem; }
  .actions .button { width: 100%; }
  .hero-assurances { margin-top: 1.4rem; }
  .hero-response { margin-top: 1.1rem !important; }
  .hero__visual { min-height: 0; margin-top: .25rem; }
  .hero__visual img { width: min(100%, 25rem); }

  /* Home: mantiene la composizione desktop, ma in scala mobile. */
  .hero--marketing .hero__grid { gap: 0; }
  .hero--marketing .hero__visual {
    display: grid;
    justify-items: end;
    width: 100%;
    margin-top: .75rem;
  }
  .hero--marketing .hero__visual img {
    width: min(50%, 10rem);
    margin: 0;
  }

  .about-hero__copy p { margin: 0 0 1rem; }
  .about-hero__faces {
    display: grid;
    grid-template-columns: repeat(3, 4rem);
    align-items: center;
    justify-content: start;
    gap: .65rem;
    margin-top: 1.65rem;
    padding-left: 0;
  }
  .about-hero__faces img {
    display: block;
    width: 4rem;
    height: 4rem;
    margin-left: 0;
    border-width: 2px;
    border-color: #16457b;
    object-fit: cover;
    object-position: center 18%;
  }

  .section,
  .about-manifesto,
  .about-closing { padding-block: 4rem; }
  .section-heading { gap: .8rem; margin-bottom: 2.25rem; }
  .section h2,
  .cta h2,
  .about-manifesto h2,
  .team h2,
  .about-principles h2,
  .about-closing h2,
  .contact-layout h2 {
    font-size: clamp(2rem, 8.8vw, 2.7rem);
    line-height: 1.08;
    letter-spacing: -.045em;
    text-wrap: balance;
  }
  .section-heading p { font-size: 1rem; }

  .services-grid article { min-height: auto; padding: 1.35rem; }
  .services-grid h3 { margin-top: 1rem; }
  .process li { padding-block: 1.2rem; }
  .challenge__outcomes article,
  .ready-solutions__grid article { min-height: auto; }
  .capabilities {
    padding-block: 2.5rem;
    background: var(--navy);
    color: #fff;
  }
  .capabilities .container { width: 100%; background: var(--navy); }
  .capabilities__grid {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(16rem, 82vw);
    overflow-x: auto;
    border-top: 1px solid #ffffff25;
    border-bottom: 1px solid #ffffff25;
    scroll-padding-inline: 1rem;
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .capabilities__grid article {
    min-height: 18rem;
    padding: 1.6rem 1rem;
    border-right: 1px solid #ffffff25;
    border-bottom: 0;
    background: var(--navy);
    color: #fff;
    scroll-snap-align: start;
  }
  .capabilities__grid article:first-child { padding-left: 1rem; }
  .capabilities__grid article:last-child { padding-right: 1rem; }
  .capabilities__grid svg { width: 2.5rem; height: 2.5rem; }
  .capabilities__grid h3 { font-size: 1.25rem; }
  .capabilities__grid h3,
  .capabilities__rail strong { color: #fff; }
  .capabilities__grid p { color: #aebdd1; font-size: .92rem; }
  .capabilities__grid a,
  .capabilities__rail a { color: #64cfff; }
  .capabilities__rail { margin: 1.25rem 1rem 0; }

  .team__heading,
  .team__portraits,
  .about-principles__grid,
  .about-closing__grid,
  .contact-layout { gap: 2rem; }
  .team__heading { margin-bottom: 2.5rem; }
  .team__portraits {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: stretch;
    gap: 1rem;
  }
  .person { width: 100%; max-width: none; margin: 0; }
  .person--offset { margin-top: 0; }
  .person figure {
    display: grid;
    grid-template-columns: 7.75rem minmax(0, 1fr);
    align-items: stretch;
    overflow: hidden;
    border: 1px solid #cbd7e5;
    background: #fff;
  }
  .person img {
    width: 7.75rem;
    height: 100%;
    min-height: 9.5rem;
    aspect-ratio: auto;
    object-fit: cover;
    object-position: center 18%;
  }
  .person figcaption {
    display: grid;
    grid-template-columns: 1fr;
    align-content: center;
    gap: .55rem;
    min-width: 0;
    padding: 1rem;
    border-bottom: 0;
  }
  .person h3 { font-size: 1.2rem; }
  .person__profile { text-align: left; }
  .person__roles { gap: .25rem; }
  .person__roles li {
    font-size: .7rem;
    line-height: 1.35;
    letter-spacing: .035em;
    overflow-wrap: anywhere;
  }
  .about-principles li { gap: 1rem; padding: 1.25rem 0; }

  .offer-index { top: 0; }
  .offer-index .container {
    width: 100%;
    padding-inline: 1rem;
    scroll-padding-inline: 1rem;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .offer-index a { min-height: 2.75rem; padding: .75rem .9rem; scroll-snap-align: start; }
  .offer__heading { gap: 1.5rem; }
  .offer-action { gap: 1.25rem; padding: 1.25rem; }
  .offer-action .button,
  .offer-final .button { width: 100%; }
  .solution-table-wrap {
    margin-inline: -1rem;
    padding-left: 1rem;
    border-bottom: 1px solid var(--line);
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .ravvia-window__pipeline { grid-template-columns: 1fr; }
  .social-plan--recommended { transform: none; }

  form { gap: 1.1rem; padding: 1.15rem; }
  input,
  select,
  textarea { min-height: 3rem; padding: .8rem; font-size: 1rem; }
  textarea { min-height: 10rem; }
  .field--check { grid-template-columns: 1.35rem 1fr; align-items: start; }
  .field--check input { min-height: 1.35rem; }
  .form-conversion { align-items: stretch; }
  .form-conversion .button { width: 100%; }
  .contact-direct a { overflow-wrap: anywhere; }

  .cta { padding-block: 2.25rem; }
  .cta .container { gap: 1.25rem; }
  .cta .button { width: 100%; }
  .closing-actions { align-items: stretch; }
  .closing-actions .button,
  .closing-actions .cta-email { width: 100%; }

  .site-footer { padding-top: 3.25rem; }
  .site-footer__grid { gap: 2rem; }
  .site-footer__bottom { margin-top: 2.25rem; }
  .site-footer__bottom div { flex-wrap: wrap; }

  a,
  button,
  input,
  select,
  textarea { touch-action: manipulation; }
}

@media (max-width: 23.5rem) {
  .container { width: min(100% - 1.5rem, var(--container)); }
  .brand-logo { width: 8.4rem; }
  .hero h1,
  .hero--marketing h1,
  .about-hero h1,
  .offers-hero h1,
  .page-heading h1 { font-size: clamp(2.2rem, 10.5vw, 2.75rem); }
  .person figure { grid-template-columns: 6.75rem minmax(0, 1fr); }
  .person img { width: 6.75rem; min-height: 9rem; }
  .person figcaption { padding: .8rem; }
}
