/* ==========================================================================
   POLIAMBULATORIO SAN MATTEO — MOBILE LAYER
   Caricato dopo assets/css/style.css. Solo media query: il desktop non cambia.
   Obiettivi:
   - meno spazio vuoto, più contenuto per schermata (ritmo verticale 32–40px)
   - nessuno scroll orizzontale / contenuto tagliato
   - leggibilità (testo ≥ 14px, meta ≥ 12.5px) e target touch ≥ 44px
     sui controlli isolati (WCAG 2.5.8 AA, consigliato 2.5.5)
   - rispetto di zoom 200% e reflow a 320px (WCAG 1.4.4 / 1.4.10)
   Nota: diversi template usano stili inline, per questo alcune regole
   richiedono !important. Le classi .psm-* sono state aggiunte ai template.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. TOKEN MOBILE
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  :root {
    --m-gutter: 16px;
    --m-section-y: 40px;
    --m-section-y-sm: 28px;
    --m-head-gap: 20px;
    --m-card-pad: 18px;
    --m-grid-gap: 12px;
    --m-radius: 16px;
  }
}

/* --------------------------------------------------------------------------
   1. BASE: container, ritmo verticale, tipografia
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

  .container-xd {
    padding-left: var(--m-gutter) !important;
    padding-right: var(--m-gutter) !important;
  }

  /* Sezioni: padding verticale uniforme e contenuto */
  .quick-access-section,
  .cosa-trattiamo-section,
  .perche-sceglierci-section,
  .quattro-sedi-section,
  .esperienze-section,
  .convenzioni-section,
  .mission-obiettivi-section,
  .valori-section,
  .timeline-section,
  .storia-gallery-section,
  .storia-sedi-callout-section,
  .callback-section-xd,
  .faq-section,
  .specialties-section,
  .specialita-listing-section,
  .psm-section {
    padding-top: var(--m-section-y) !important;
    padding-bottom: var(--m-section-y) !important;
  }

  /* Sezioni consecutive con stesso sfondo: evitiamo il doppio padding */
  .perche-sceglierci-section { padding-bottom: var(--m-section-y) !important; }

  /* Header di sezione */
  .home-section-header,
  .callback-header-box,
  .specialties-header-box,
  .psm-section-header {
    margin-bottom: var(--m-head-gap) !important;
  }

  .home-tag-badge,
  .sedi-tag-badge {
    font-size: 13px !important;
    letter-spacing: 0.08em;
    line-height: 1.35;
    margin-bottom: 6px !important;
  }

  .home-section-title,
  .callback-title,
  .spec-header-title,
  .storia-sedi-box-title,
  .perche-left-title {
    font-size: 24px !important;
    line-height: 1.22 !important;
    margin-bottom: 8px !important;
  }
  .spec-header-title strong { font-size: inherit !important; line-height: inherit !important; }
  .spec-header-title { margin-top: 0 !important; }

  .home-section-subtitle,
  .callback-subtitle {
    font-size: 16px !important;
    line-height: 1.5 !important;
  }

  /* Margini "di stacco" introdotti prima delle griglie */
  .mission-grid,
  .valori-grid,
  .timeline-flow,
  .storia-gallery-grid,
  .medici-grid {
    margin-top: 0 !important;
  }

  /* Breadcrumb: più compatto ma con target adeguato */
  .breadcrumb-bar {
    padding: 10px 0 4px !important;
    margin-bottom: 8px !important;
    flex-wrap: wrap;
    row-gap: 0;
  }
  .breadcrumb-bar a {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
  }
  .breadcrumb-bar a,
  .breadcrumb-bar span { font-size: 13.5px !important; }

  /* Bottoni primari a tutta larghezza, altezza ≥ 48px */
  .btn-specialties-main,
  .btn-quattro-sedi-main,
  .btn-center-pill {
    width: 100%;
    min-height: 48px;
    height: auto !important;
    padding: 12px 20px !important;
    font-size: 16px !important;
    white-space: normal;
    text-align: center;
  }

  /* Decorazioni di sfondo: non devono allargare la pagina né rubare spazio */
  .sedi-hero-deco-bg,
  .contatti-hero-deco-bg,
  .specialita-hero-deco-bg,
  .quick-access-deco-bg {
    max-width: 100% !important;
    opacity: .5;
  }
}

/* --------------------------------------------------------------------------
   2. HEADER + DRAWER
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .site-header {
    height: 64px !important;
    min-height: 64px !important;
  }
  .site-header .logo-img {
    height: 40px !important;
    width: auto !important;
  }
  .mobile-menu-btn {
    width: 48px !important;
    height: 48px !important;
  }

  .mobile-drawer { width: min(320px, 88vw) !important; }
  .drawer-nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
  .drawer-nav .nav-link {
    display: flex !important;
    align-items: center;
    width: 100% !important;
    min-height: 48px;
    padding: 12px 4px !important;
    font-size: 17px !important;
    border-bottom: 1px solid var(--border-light);
  }
  .drawer-footer-cta { margin-top: auto !important; }
  .drawer-portal-btn { min-height: 48px !important; }
}

/* --------------------------------------------------------------------------
   3. HOME
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Hero: altezza sul contenuto, non sul viewport */
  .home-hero-wrapper {
    min-height: 0 !important;
    height: auto !important;
    padding-top: 150px !important;
    padding-bottom: 24px !important;
  }
  .home-hero-slogan-wrap { margin-bottom: 14px !important; }
  .home-hero-slogan-img { max-width: 260px; margin-left: auto; margin-right: auto; }
  .home-hero-subtitle { font-size: 16px !important; }

  .btn-video-toggle { bottom: 12px !important; top: auto !important; right: 12px !important; }

  /* Accesso rapido */
  .quick-access-wrapper { gap: var(--m-grid-gap) !important; }
  .quick-card-double .quick-card-item,
  .quick-card-single .quick-card-item {
    padding: 18px var(--m-card-pad) !important;
  }
  .quick-card-icon-wrap { height: 40px !important; margin-bottom: 8px !important; }
  .quick-card-icon-wrap img { max-height: 40px !important; width: auto; }
  .quick-card-title { font-size: 19px !important; margin-bottom: 4px !important; }
  .quick-card-desc { font-size: 15px !important; margin-bottom: 8px !important; }
  .quick-card-link {
    min-height: 44px;
    display: inline-flex !important;
    align-items: center;
  }

  /* Aree di eccellenza: card orizzontali icona + testo */
  .home-specialties-grid {
    gap: 10px !important;
    margin-bottom: 20px !important;
  }
  .home-spec-card {
    display: grid !important;
    grid-template-columns: 44px 1fr;
    column-gap: 14px;
    align-items: start;
    min-height: 0 !important;
    padding: 16px !important;
    border-radius: 14px !important;
  }
  .home-spec-icon-wrap {
    grid-row: 1 / span 2;
    height: 44px !important;
    margin: 0 !important;
    align-items: flex-start !important;
  }
  .home-spec-icon { max-height: 40px !important; max-width: 44px !important; }
  .home-spec-title { font-size: 17px !important; margin-bottom: 4px !important; }
  .home-spec-desc { font-size: 15px !important; line-height: 1.45 !important; }

  /* Perché sceglierci: fix overflow + immagine decorativa ridimensionata */
  .perche-sceglierci-layout {
    flex-direction: column !important;
    gap: 20px !important;
  }
  .perche-left-col,
  .perche-right-grid {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
  }
  .perche-left-col { text-align: center; align-items: center; }
  .perche-left-desc { font-size: 16px !important; margin-bottom: 0 !important; }
  .perche-heart-wrap { display: none !important; } /* decorativa (alt vuoto) */
  .perche-right-grid {
    grid-template-columns: 1fr !important;
    gap: var(--m-grid-gap) !important;
    margin-bottom: 0 !important;
  }
  .perche-feature-card {
    display: grid !important;
    grid-template-columns: 104px 1fr;
    align-items: stretch;
    min-height: 0 !important;
  }
  .perche-feat-img-wrap { height: 100% !important; min-height: 112px; }
  .perche-feat-img { width: 100% !important; height: 100% !important; object-fit: cover; }
  .perche-feat-content { padding: 14px 14px 14px 16px !important; }
  .perche-feat-title { font-size: 16.5px !important; margin-bottom: 4px !important; }
  .perche-feat-desc { font-size: 14.5px !important; line-height: 1.45 !important; }

  /* Sedi (home, sedi, contatti) */
  .quattro-sedi-grid,
  .contatti-sedi-grid { gap: var(--m-grid-gap) !important; }
  .home-sede-img { height: 140px !important; object-fit: cover; }
  .home-sede-body { padding: 16px var(--m-card-pad) 12px !important; }
  .home-sede-province { font-size: 12.5px !important; }
  .home-sede-city-title { font-size: 21px !important; margin-bottom: 8px !important; }
  .home-sede-info-line { margin-bottom: 6px !important; font-size: 15px !important; }
  .home-sede-link-btn {
    font-size: 13.5px !important;
    min-height: 44px;
    padding: 8px 0 !important;
    align-items: center;
  }
  .quattro-sedi-action { margin-top: 20px !important; }

  /* Testimonianze */
  .esperienze-grid { gap: var(--m-grid-gap) !important; margin-bottom: 20px !important; }
  .testimonial-card-xd { padding: 18px var(--m-card-pad) 16px !important; }
  .test-stars-row { margin-bottom: 8px !important; }
  .test-quote-text { font-size: 15.5px !important; line-height: 1.5 !important; }
  .test-author-row { margin-top: 12px !important; padding-top: 10px !important; }
  .test-date { font-size: 13.5px !important; }
  .google-rating-bar { font-size: 15px !important; text-align: center; }

  /* Convenzioni: griglia compatta a 3 colonne */
  .convenzioni-grid-logos {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px !important;
  }
  .convenzioni-logo-item {
    width: auto !important;
    height: 56px !important;
    padding: 6px !important;
    background: #fff;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    justify-content: center;
    align-items: center;
  }
  .convenzioni-logo-item img { max-height: 40px; max-width: 100%; width: auto; object-fit: contain; }
}

/* --------------------------------------------------------------------------
   3b. HOME — RICERCA (≤ 768px)
   Sotto i 769px input e select collassavano a 0px di larghezza e il
   pulsante CERCA usciva dalla card (la vecchia regola puntava a una classe
   inesistente, .home-search-box-card). Breakpoint 768 incluso di proposito.
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  /* Ricerca: campi impilati e utilizzabili (prima larghi 0px) */
  .home-search-pill-card {
    padding: 12px !important;
    border-radius: var(--m-radius) !important;
  }
  .home-search-form-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }
  .home-search-form-row .search-field-unit {
    width: 100% !important;
    flex: 0 0 auto !important;
    min-height: 48px;
    padding: 0 12px !important;
    border: 1px solid var(--border-light);
    border-radius: 10px;
    background: #fff;
  }
  .home-search-form-row .search-field-unit input,
  .home-search-form-row .search-field-unit select {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px;
    font-size: 16px !important; /* evita lo zoom automatico iOS */
    background: transparent;
    border: 0;
  }
  .btn-home-cerca {
    width: 100% !important;
    min-height: 48px;
    justify-content: center !important;
    padding: 0 20px !important;
    margin: 0 !important;
  }
  .home-search-card-note {
    font-size: 14px !important;
    margin-top: 6px !important;
    padding-top: 8px !important;
    line-height: 1.45;
  }
  .home-search-card-note a { display: inline-block; padding: 4px 0; }
}

/* --------------------------------------------------------------------------
   4. FEATURES BAR (tutte le pagine)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .features-bar-xd { padding: 28px 0 !important; }
  .features-grid-xd {
    grid-template-columns: 1fr 1fr !important;
    gap: 18px 14px !important;
  }
  .feature-item-xd { text-align: left; align-items: flex-start !important; }
  .feature-icon-top { height: 36px !important; margin-bottom: 8px !important; justify-content: flex-start !important; }
  .feature-icon-top img { max-height: 34px; width: auto; }
  .feature-item-title { font-size: 15px !important; line-height: 1.3; margin-bottom: 2px !important; }
  .feature-item-desc { font-size: 14px !important; line-height: 1.4; }
}
@media (max-width: 359px) {
  .features-grid-xd { grid-template-columns: 1fr !important; }
}

/* --------------------------------------------------------------------------
   5. FOOTER
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .site-footer-xd { padding: 32px 0 20px !important; }
  .footer-main-row { gap: 20px !important; margin-bottom: 20px !important; }
  .footer-white-card { width: 100% !important; padding: 18px !important; }
  .footer-card-desc { font-size: 15px !important; }
  .footer-social-links { gap: 4px !important; margin-top: 8px !important; }
  .footer-social-links a {
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 20px;
  }
  .footer-columns-wrap {
    grid-template-columns: 1fr 1fr !important;
    gap: 20px 16px !important;
    padding-bottom: 8px !important;
    text-align: left !important;
  }
  .footer-column-xd { padding-right: 0 !important; text-align: left !important; }
  .footer-column-title { font-size: 15px !important; margin-bottom: 6px !important; text-align: left !important; }
  .footer-link-list { gap: 0 !important; align-items: flex-start !important; }
  .footer-link-list a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    font-size: 15px;
  }
  .footer-legal-info {
    gap: 18px !important;
    margin-bottom: 16px !important;
    padding-bottom: 16px !important;
    text-align: left !important;
  }
  .footer-legal-address, .footer-legal-company, .footer-legal-directors { text-align: left !important; align-items: flex-start !important; }
  .footer-legal-title { font-size: 15px !important; margin-bottom: 6px !important; }
  .footer-legal-address { font-size: 14.5px; }
  .footer-legal-address a { display: inline-block; padding: 6px 0; }
  .footer-directors-list { gap: 8px !important; }
  .footer-directors-list dt { font-size: 12.5px !important; }
  .footer-directors-list dd { font-size: 14.5px !important; }
  .footer-bottom-bar { gap: 8px !important; }
  .footer-legal-links a { min-height: 44px; display: inline-flex; align-items: center; }
  .footer-copyright { font-size: 13.5px !important; }
}

/* --------------------------------------------------------------------------
   6. HERO INTERNE (sedi, sede, contatti, storia, specialità, équipe, medico)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .sedi-hero-wrapper,
  .contatti-hero-section,
  .storia-hero-section {
    padding-top: 0 !important;
    padding-bottom: 28px !important;
    min-height: 0 !important;
  }
  .specialita-hero-section {
    padding-bottom: 20px !important;
    min-height: 0 !important;
  }
  .specialita-hero-section > .container-xd { padding-top: 0 !important; }
  .specialita-hero-title,
  .sedi-hero-title,
  .contatti-hero-title,
  .storia-hero-title {
    font-size: 28px !important;
    line-height: 1.18 !important;
    margin-bottom: 8px !important;
  }
  .specialita-hero-subtitle,
  .sedi-hero-desc,
  .contatti-hero-subtitle,
  .storia-hero-subtitle {
    font-size: 16px !important;
    line-height: 1.5 !important;
    margin-bottom: 14px !important;
  }
  .storia-hero-header,
  .contatti-hero-header { margin: 4px 0 18px !important; }

  /* Sedi / singola sede */
  .sedi-hero-grid { gap: 16px !important; }
  .sedi-hero-left { padding-right: 0 !important; }
  .sedi-link-spec { min-height: 44px; align-items: center; }
  .sede-info-card-float {
    padding: 18px !important;
    gap: 10px !important;
    border-radius: var(--m-radius) !important;
  }
  .sede-info-card-float .home-tag-badge { font-size: 12.5px !important; }
  .info-card-row { gap: 10px !important; font-size: 15px; }
  .info-card-row a { display: inline-block; padding: 4px 0; }
  .btn-sede-card-prenota { min-height: 48px !important; font-size: 14px !important; }
  .btn-sede-card-prenota span { font-size: 14px !important; }
  .link-sede-indicazioni {
    min-height: 44px;
    align-items: center;
    justify-content: center;
    font-size: 13.5px !important;
    text-align: center;
  }

  /* Storia: metriche 2x2 */
  .storia-metrics-bar { padding: 16px !important; }
  .storia-metrics-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 14px 12px !important;
  }
  .storia-metric-label { font-size: 14px !important; }
  .storia-metric-desc { font-size: 13px !important; line-height: 1.4; }

  /* Contatti: card azione compatte */
  .contatti-action-grid { gap: var(--m-grid-gap) !important; }
  .contatti-action-card { padding: 16px var(--m-card-pad) !important; }
  .contatti-action-card .quick-card-icon-wrap { height: 40px !important; margin-bottom: 8px !important; }
  .contatti-action-card .quick-card-icon-wrap img { max-height: 40px !important; width: auto; }
  .contatti-card-title { font-size: 19px !important; margin-bottom: 4px !important; }
  .contatti-card-desc { font-size: 15px !important; margin-bottom: 4px !important; }
  .contatti-card-link { min-height: 44px; align-items: center; }
  .contatti-sede-card-actions { padding-top: 6px !important; gap: 4px !important; }
  .contatti-sede-link-btn { min-height: 44px; }
  .sede-info-link { display: inline-block; padding: 6px 0; font-size: 15px !important; }
}

/* --------------------------------------------------------------------------
   7. FILTRI + LISTING (specialità, équipe)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .specialita-filters-bar-section,
  .equipe-filters-bar-section { padding: 12px 0 !important; }
  .filters-bar-inner { gap: 8px !important; }
  .filter-search-input,
  .filter-select-control {
    height: 48px !important;
    font-size: 16px !important; /* no zoom iOS */
  }
  .filter-search-clear { width: 44px !important; height: 44px !important; }

  .specialita-listing-section { padding-top: 20px !important; }
  .listing-header-bar { margin-bottom: 12px !important; }
  .medici-grid { gap: var(--m-grid-gap) !important; }
  .specialita-preview-grid { gap: var(--m-grid-gap) !important; }

  .specialty-preview-card { padding: 16px var(--m-card-pad) !important; }
  .preview-card-header { margin-bottom: 8px !important; }
  .preview-card-area { font-size: 13px !important; }
  .preview-card-desc { font-size: 15px !important; line-height: 1.45; margin-bottom: 10px !important; }
  .preview-card-sedi-list { margin-bottom: 10px !important; gap: 6px !important; }
  .preview-sede-pill { font-size: 13px !important; }
  .btn-preview-card { min-height: 44px; font-size: 14px !important; }

  /* Card medico */
  .medico-card-item { padding: 14px !important; gap: 12px !important; }
  .medico-card-role { font-size: 14px !important; }
  .medico-sede-pill { font-size: 12.5px !important; }
  .medico-card-footer {
    flex-wrap: wrap;
    align-items: center !important;
    gap: 8px !important;
  }
  .medico-card-sedi { margin-bottom: 0 !important; flex-wrap: wrap; }
  .medico-card-cta {
    margin-left: 0 !important;
    min-height: 40px;
    font-size: 14px !important;
  }
}

/* --------------------------------------------------------------------------
   8. SINGOLA SPECIALITÀ / SEDE (cosa puoi fare)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .single-spec-container {
    padding-top: 16px !important;
    padding-bottom: 32px !important;
  }
  .single-spec-layout { gap: 16px !important; }
  .single-spec-card {
    padding: 18px var(--m-card-pad) !important;
    margin-bottom: 16px !important;
    border-radius: var(--m-radius) !important;
  }
  .single-spec-h2 { font-size: 20px !important; line-height: 1.25 !important; margin-bottom: 10px !important; }
  .single-spec-card > p { font-size: 15.5px !important; }
  .single-spec-tecnologie-box { padding: 14px !important; gap: 12px !important; margin-top: 16px !important; }
  .single-spec-prestazioni-grid { gap: 8px !important; margin-top: 12px !important; }
  .single-spec-prestazione-item { padding: 12px 14px !important; }
  .single-spec-patologie-wrap { gap: 8px !important; margin-top: 12px !important; }
  .spec-patologia-tag { padding: 8px 12px !important; font-size: 14.5px !important; }
  .single-spec-sidebar { gap: 16px !important; }
  .single-spec-quick-cta,
  .single-spec-sidebar-card { padding: 18px var(--m-card-pad) !important; }
  .single-spec-quick-cta p,
  .single-spec-sidebar-card > p { font-size: 15px !important; }
  .btn-cta-phone, .btn-cta-online { min-height: 48px; font-size: 15px !important; }
  .btn-cta-phone span, .btn-cta-online span { font-size: 15px !important; }
  .single-spec-sedi-list { gap: 10px !important; }
  .single-spec-sede-item { padding: 12px !important; }
  .single-spec-sede-prov { font-size: 12.5px !important; }
  .single-spec-sede-addr { font-size: 14.5px !important; }
  .single-spec-sede-phone { display: inline-flex !important; align-items: center; min-height: 40px; font-size: 15px !important; }

  /* Singola sede: galleria e specialità */
  .facility-gallery-wrapper { margin-bottom: 0 !important; }
  .facility-gallery-strip .facility-gallery-item { height: 130px !important; }
  .facility-gallery-strip img { width: 100%; height: 100% !important; object-fit: cover; }
  .clinical-category-group { margin-bottom: 24px !important; }
  .clinical-category-group:last-child { margin-bottom: 0 !important; }
  .clinical-category-pill-wrap { margin-bottom: 12px !important; }
  .clinical-category-pill { height: 36px !important; padding: 0 18px !important; font-size: 15px !important; }
  .clinical-cards-grid { gap: 10px !important; }
  .clinical-spec-card { padding: 14px 16px !important; gap: 12px !important; }
  .spec-card-desc { font-size: 14.5px !important; }
}

/* --------------------------------------------------------------------------
   9. SINGOLO MEDICO (template con classi .psm-*)
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .single-medico-layout {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}
@media (max-width: 767px) {
  .psm-medico-wrap { padding-top: 16px !important; padding-bottom: 32px !important; }
  .psm-medico-aside { display: grid; gap: 0; }
  .psm-medico-profile-card { margin-bottom: 0 !important; }
  .psm-medico-photo { height: auto !important; aspect-ratio: 4 / 3; max-height: 280px; }
  .psm-medico-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
  .psm-medico-profile-body { padding: 16px var(--m-card-pad) !important; }
  .psm-medico-label { font-size: 12.5px !important; }
  .psm-medico-value { font-size: 15px !important; }
  .psm-medico-pill { font-size: 13.5px !important; padding: 5px 10px !important; }
  .psm-medico-portal-link { font-size: 14px !important; min-height: 44px; }
  .psm-medico-card {
    padding: 18px var(--m-card-pad) !important;
    margin-bottom: 16px !important;
    border-radius: var(--m-radius) !important;
  }
  .psm-medico-card h2 { font-size: 20px !important; margin-bottom: 10px !important; }
  .psm-medico-card .entry-content { font-size: 16px !important; line-height: 1.65 !important; }
  .psm-medico-spec-links { gap: 8px !important; }
  .psm-medico-spec-links a { min-height: 40px; display: inline-flex; align-items: center; }
  .psm-medico-prest-row { flex-wrap: wrap; gap: 8px; }
  .psm-medico-prest-row a { min-height: 40px; }
}

/* --------------------------------------------------------------------------
   9b. LAYOUT A DUE COLONNE CON STILI INLINE (medico, prestazione, patologia)
   Le colonne fisse (320px 1fr / 2fr 1fr) causavano scroll orizzontale.
   -------------------------------------------------------------------------- */
.single-medico-layout > *,
.psm-generic-layout > * { min-width: 0; }

@media (max-width: 900px) {
  .psm-generic-layout {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}
@media (max-width: 767px) {
  .psm-empty-state { padding: 28px 16px !important; margin-top: 12px !important; }
}

/* --------------------------------------------------------------------------
   10. BLOCCHI RICORRENTI: booking banner, callback form, FAQ, storia
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Banner prenota */
  .booking-banner-section { padding: 28px 0 !important; }
  .booking-banner-flex { gap: 16px !important; }
  .booking-banner-left h2 { font-size: 23px !important; line-height: 1.25 !important; }
  .booking-banner-left p { font-size: 15.5px !important; }
  .booking-banner-buttons {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 10px !important;
    width: 100%;
  }
  .btn-banner-call,
  .btn-banner-online {
    width: 100% !important;
    min-height: 48px !important;
    height: auto !important;
    padding: 8px 10px !important;
    justify-content: center;
    text-align: center;
  }
  .btn-banner-call span,
  .btn-banner-online span { font-size: 14px !important; line-height: 1.25 !important; }

  /* Form richiamata */
  .callback-title { font-size: 26px !important; }
  .callback-form-card-xd {
    padding: 20px 16px !important;
    border-radius: var(--m-radius) !important;
  }
  .form-row-2col { gap: 12px !important; margin-bottom: 12px !important; }
  .form-group-xd { margin-bottom: 12px !important; }
  .form-control-xd {
    min-height: 48px;
    font-size: 16px !important; /* no zoom iOS */
  }
  textarea.form-control-xd { min-height: 110px; }
  .callback-form legend { font-size: 14px !important; }
  .callback-form .pref-btn-pill,
  .pref-btn-pill { font-size: 14px !important; height: auto !important; min-height: 44px; display: inline-flex; align-items: center; }
  .btn-submit-callback { width: 100% !important; min-height: 48px; }
  .privacy-row-xd { margin: 12px 0 14px !important; align-items: flex-start !important; }
  .privacy-row-xd input[type="checkbox"] {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px;
    margin-top: 1px;
  }
  .privacy-row-xd label { font-size: 14.5px; line-height: 1.45; }
  .form-gdpr-note { font-size: 13.5px !important; margin-top: 10px !important; }

  /* FAQ */
  .faq-question-btn {
    padding: 14px 0 !important;
    min-height: 48px;
    font-size: 16.5px !important;
    line-height: 1.35 !important;
    text-align: left;
  }
  .faq-answer-block { padding-bottom: 14px !important; }
  .faq-answer-block p { font-size: 15.5px !important; }

  /* Chi siamo */
  .mission-grid,
  .valori-grid,
  .storia-gallery-grid { gap: var(--m-grid-gap) !important; }
  .mission-card { padding: 20px var(--m-card-pad) !important; }
  .mission-card-icon-wrap { width: 44px !important; height: 44px !important; margin-bottom: 10px !important; }
  .mission-card-title { font-size: 21px !important; margin-bottom: 8px !important; }
  .mission-card-text { font-size: 15.5px !important; margin-bottom: 12px !important; }
  .mission-checklist { padding-top: 12px !important; gap: 8px !important; }

  .valori-card {
    display: grid !important;
    grid-template-columns: 40px 1fr;
    column-gap: 14px;
    padding: 16px !important;
  }
  .valori-card-icon { grid-row: 1 / span 2; width: 40px !important; height: 40px !important; margin: 0 !important; }
  .valori-card-title { font-size: 17px !important; margin-bottom: 4px !important; }
  .valori-card-desc { font-size: 15px !important; }

  .timeline-milestone { margin-bottom: 14px !important; gap: 12px !important; }
  .timeline-badge-node { width: 36px !important; height: 36px !important; font-size: 13px !important; flex: 0 0 36px; }
  .timeline-content-card { padding: 14px 16px !important; }
  .timeline-tag-year { font-size: 13px !important; }

  /* Galleria: 2 colonne, prima foto a tutta larghezza se il numero è dispari (9 = 1 + 4 righe), didascalie compatte */
  .storia-gallery-grid { grid-template-columns: 1fr 1fr !important; gap: 10px !important; }
  .storia-gallery-item:first-child:nth-last-child(odd) { grid-column: 1 / -1; }
  .storia-gallery-link { border-radius: 12px; }
  .storia-gallery-caption { padding: 26px 10px 8px !important; }
  .storia-gallery-title { font-size: 14px !important; }
  .storia-gallery-item:first-child:nth-last-child(odd) .storia-gallery-title { font-size: 16px !important; }
  .storia-gallery-sede { font-size: 11.5px !important; letter-spacing: 0.02em; }
  .storia-gallery-zoom { display: none; }

  .storia-sedi-box { padding: 20px var(--m-card-pad) !important; gap: 16px !important; }
  .storia-sedi-box-desc { font-size: 15.5px !important; margin-bottom: 12px !important; }
  .storia-sedi-pills { gap: 8px !important; }
  .storia-sede-pill { font-size: 14px !important; }
  .btn-storia-sedi-cta { min-height: 44px; display: inline-flex !important; align-items: center; }

  /* Sedi: blocco "perché sceglierci" (classi psm-*) */
  .psm-perche-grid { gap: var(--m-grid-gap) !important; }
  .psm-perche-card {
    display: grid !important;
    grid-template-columns: 40px 1fr;
    column-gap: 14px;
    padding: 16px !important;
  }
  .psm-perche-card > div:first-child { grid-row: 1 / span 2; width: 40px !important; height: 40px !important; margin: 0 !important; }
  .psm-perche-card h3 { font-size: 17px !important; margin-bottom: 4px !important; }
  .psm-perche-card p { font-size: 15px !important; }
}

/* --------------------------------------------------------------------------
   11. ARCHIVI / SINGOLE PRESTAZIONI E PATOLOGIE, PAGINE GENERICHE
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  .psm-generic-wrap { padding-top: 16px !important; padding-bottom: 32px !important; }
  .psm-generic-card {
    padding: 18px var(--m-card-pad) !important;
    margin-bottom: 16px !important;
    border-radius: var(--m-radius) !important;
  }
  .psm-generic-grid { gap: var(--m-grid-gap) !important; grid-template-columns: 1fr !important; }
}

/* --------------------------------------------------------------------------
   12. ACCESSIBILITÀ TRASVERSALE (mobile)
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
  /* Link di contatto isolati: area touch ≥ 44px senza alterare la grafica */
  a[href^="tel:"],
  a[href^="mailto:"] {
    display: inline-block;
    padding-top: 6px;
    padding-bottom: 6px;
  }
  /* Nessun testo sotto i 12.5px su mobile */
  dt, legend { font-size: 12.5px; }

  /* Evita parole lunghe che escono dal contenitore (email, PEC, termini medici) */
  main, footer { overflow-wrap: anywhere; }
  h1, h2, h3 { overflow-wrap: break-word; hyphens: auto; }
}

/* Schermi molto stretti / zoom 200% (reflow 320px) */
@media (max-width: 359px) {
  :root { --m-gutter: 12px; --m-card-pad: 14px; }
  .home-section-title, .callback-title { font-size: 22px !important; }
  .booking-banner-buttons { grid-template-columns: 1fr !important; }
  .convenzioni-grid-logos { grid-template-columns: repeat(2, 1fr) !important; }
  .storia-metrics-grid { grid-template-columns: 1fr !important; }
  .perche-feature-card { grid-template-columns: 1fr !important; }
  .perche-feat-img-wrap { height: 120px !important; }
}
