/* ============================================================================
   Makhymo · correzioni responsive per telefono e tablet
   Caricato per ultimo su tutte le pagine, dopo il tema e i moduli.

   Perche' esiste questo file: il design system del sito ha un solo punto di
   rottura (820px), quindi fra telefono e tablet il layout e' identico e nessuno
   dei due riceve attenzioni specifiche. Qui stanno le regole che mancavano,
   raccolte in un posto solo invece che sparse in 318 pagine.

   Nessuna regola tocca il desktop: tutto vive dentro una media query.
   ========================================================================= */

/* ---------------------------------------------------------------------------
   1. BERSAGLI DA TOCCARE  (fino a 1024px: telefoni e tablet)
   Con il dito non si ha la precisione del mouse. La regola condivisa nel
   settore e' 44px di lato minimo; nel footer i link erano alti 23px con 6px
   di spazio, quindi due voci vicine distavano meno di 30px.
   ------------------------------------------------------------------------ */
@media (max-width: 1024px) {

  /* Elenchi di link del footer, presenti su ogni pagina del sito */
  footer .elementor-icon-list-item { padding-bottom: 0 !important; }
  footer .elementor-icon-list-item > a {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  /* Link territoriali in fondo alle pagine di servizio provinciali */
  .mk-territ-links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Icone social: l'icona resta della sua dimensione, si allarga solo l'area
     sensibile al tocco. Cosi' il tocco e' comodo ma la grafica non cambia. */
  footer a.elementor-social-icon,
  footer .elementor-social-icon { position: relative; }
  footer a.elementor-social-icon::after,
  footer .elementor-social-icon::after {
    content: "";
    position: absolute;
    top: 50%; left: 50%;
    width: 44px; height: 44px;
    transform: translate(-50%, -50%);
  }

  /* Link legali (privacy, cookie, preferenze): erano alti 22px.
     iubenda inietta il proprio CSS a runtime e vince su qualunque regola
     scritta qui, anche con !important. Invece di contendere la cascata,
     si allarga l'area sensibile con uno pseudo-elemento: iubenda non ha
     regole su ::after, quindi non c'e' conflitto e la grafica non cambia. */
  p.mk-legal-links { line-height: 46px !important; }
  p.mk-legal-links a[class],
  footer p.mk-legal-links a[class] { position: relative !important; }
  .mk-legal-links a::after {
    content: "";
    position: absolute;
    top: 50%; left: 0; right: 0;
    height: 44px;
    transform: translateY(-50%);
  }

  /* Comandi di zoom della mappa territorio */
  .leaflet-touch .leaflet-bar a,
  .leaflet-control-zoom-in,
  .leaflet-control-zoom-out {
    width: 40px !important;
    height: 40px !important;
    line-height: 40px !important;
  }

  /* Chiusura della scheda prodotto */
  .sm-pc-modal-close {
    width: 44px !important;
    height: 44px !important;
  }

  /* Pulsanti di invio: erano alti 42px */
  .mk-form button,
  .bd-form button,
  .mk-btn-primary,
  button.mk-btn-primary { min-height: 46px; }
}

/* ---------------------------------------------------------------------------
   2. MODULI DI CONTATTO  (fino a 1024px: telefoni E tablet)
   Safari ingrandisce la pagina quando si tocca un campo con testo sotto i 16px,
   e poi la lascia ingrandita: succede su iPhone e allo stesso modo su iPad,
   quindi la soglia va portata fino a 1024px e non fermata ai telefoni.
   La spunta della privacy era larga 13px: troppo poco per un campo obbligatorio,
   su qualsiasi schermo si tocchi con il dito.
   ------------------------------------------------------------------------ */
@media (max-width: 1024px) {

  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  textarea,
  select { font-size: 16px !important; }

  /* min-width e min-height, non width/height: cosi' la misura tiene anche dove
     un altro foglio (scheda prodotto, moduli Elementor) impone la propria. */
  .mk-check input[type="checkbox"],
  input[type="checkbox"] {
    width: 22px;
    height: 22px;
    min-width: 22px;
    min-height: 22px;
    flex: 0 0 auto;
    margin-top: 1px;
    accent-color: #C6183D;
  }

  /* La riga del consenso privacy era impaginata con display:flex. Il testo pero'
     e' spezzato dal link ("Ho letto e accetto l'" + <a>informativa</a> + "ai sensi
     dell'art. 13..."), e flex trasforma ogni frammento in un elemento a se':
     su schermo stretto diventano tre colonne strette affiancate, con l'ultima
     tagliata fuori. Torna a essere un normale paragrafo, con il quadratino
     affiancato: il testo scorre come si deve e resta leggibile.
     Serve !important perche' su alcune pagine la regola flex sta in un <style>
     dentro il corpo, quindi dopo questo foglio. */
  .mk-check {
    display: block !important;
    min-width: 0;
    line-height: 1.55;
  }
  .mk-check input[type="checkbox"] {
    float: left;
    margin-right: 11px;
    margin-top: 2px;
  }
  .mk-check a { white-space: normal; }

  /* Il modulo e' una griglia a colonna automatica: la colonna si dimensiona sul
     contenuto piu' largo, quindi la riga della spunta (quadratino + testo che
     non si spezza) faceva sporgere TUTTE le righe oltre il contenitore.
     minmax(0,1fr) impedisce alla colonna di superare lo spazio disponibile. */
  .mk-form { grid-template-columns: minmax(0, 1fr); }
  .mk-form > *, .mk-form .frow, .mk-form .mk-check { min-width: 0; }
}

/* ---------------------------------------------------------------------------
   3. TESTI MINUTI  (fino a 1024px: telefoni e tablet)
   Etichette, occhielli e badge stavano fra 10,5 e 11px: su uno schermo tenuto
   a mezzo metro dagli occhi diventano faticosi. Portati a 12px, che resta
   piccolo rispetto al corpo del testo ma si legge. Un pixel CSS misura uguale
   su telefono e su tablet, quindi la soglia vale per entrambi.

   Qui serve !important, e non e' pigrizia: alcune di queste regole vivono in
   blocchi <style> dentro il corpo delle pagine (.mky-card-label, .bd-card .k),
   quindi arrivano DOPO questo foglio e a parita' di specificita' vincerebbero.
   Trattandosi di una soglia minima di leggibilita', e' corretto che prevalga.
   ------------------------------------------------------------------------ */
@media (max-width: 1024px) {
  .mk-eyb, .mk-badge, .mk-lc-cat, .mk-latest-eyb, .mk-catchip, .mk-ameta,
  .sm-bsl-badge, .sm-bsl-info-lbl, .sm-trr-eyebrow, .sm-ptl-badge,
  .sm-ptl-label, .sm-ptl-guar-lbl, .sm-sadv-tag, .sm-sadv-item-name,
  .sm-pc-badge, .sm-pc-type, .sm-pc-brand, .sm-pc-spec-lbl, .sm-pc-price-lbl,
  .bd-badge, .bd-card .k {
    font-size: 12px !important;
  }
  /* questi in widgets2.css hanno un selettore piu' specifico del mio
     (.sm-trr .sm-trr-eyebrow), quindi vanno pareggiati o restano a 11px */
  .sm-trr .sm-trr-eyebrow,
  .sm-trr .sm-trr-legend-item,
  .sm-trr .sm-trr-zone-badge,
  .sm-trr .sm-trr-comuni-label,
  .sm-sadv .sm-sadv-tag,
  .sm-orb .sm-orb-badge,
  .sm-orb .sm-orb-detail-eyebrow,
  .sm-orb .sm-orb-detail-type,
  .sm-orb .sm-orb-detail-stat-lbl,
  .sm-orb .sm-orb-detail-tag {
    font-size: 12px !important;
  }
  /* etichette con selettore semplice, sfuggite al primo giro */
  .sm-trr-stat-lbl, .sm-tga-badge, .sm-sty-badge, .sm-soc-badge, .sm-ibd-badge,
  .sm-st-badge, .sm-st-stat-lbl, .sm-pc-banner-feat-lbl, .mky-badge, .mky-card-label {
    font-size: 12px !important;
  }
}

/* ---------------------------------------------------------------------------
   4. GRIGLIE STRETTE  (fino a 430px: telefoni piccoli e medi)
   Quattro riquadri affiancati a due a due lasciano 150px per colonna: le frasi
   come "Copertura completa - Provincia di Alessandria e Monferrato" si spezzano
   su cinque righe. Sotto i 430px vanno in colonna singola.
   ------------------------------------------------------------------------ */
@media (max-width: 430px) {
  /* widgets2.css impone "1fr 1fr !important" con selettore .sm-trr .sm-trr-stats:
     per avere la meglio serve la stessa specificita', non basta !important. */
  .sm-trr .sm-trr-stats,
  .sm-trr-stats { grid-template-columns: 1fr !important; }
  .sm-trr .sm-trr-stats > * { min-height: 0; }
}

/* ---------------------------------------------------------------------------
   5. TABLET IN VERTICALE  (768-1024px)
   In questa fascia il sito mostra ancora impaginazioni a piu' colonne pensate
   per il desktop, con colonne piu' strette di quelle desktop. Le poche voci
   rimaste fuori misura vengono riportate dentro.
   ------------------------------------------------------------------------ */
@media (min-width: 768px) and (max-width: 1024px) {
  /* i titoli non devono mai spezzare una parola a meta' */
  .ui-e-title, .mk-card h3, .sm-ptl-card h3 { overflow-wrap: break-word; }
}

/* ---------------------------------------------------------------------------
   6. BARRA DI NAVIGAZIONE FISSA SU TELEFONO E TABLET
   Il tema marca gia' #wrapper-navbar come "sticky", ma la barra dentro e'
   in posizione assoluta: il contenitore resta alto zero e non c'e' nulla a cui
   agganciarsi, cosi' l'intestazione scorre via. Qui il contenitore diventa fisso
   e la barra torna nel flusso, dandogli la sua altezza.

   Lo stato "scorrimento" del tema funziona gia' anche su telefono (mette la
   classe uicore-scrolled sulla navbar, non sul body): trasparente sopra l'eroe,
   fondo chiaro e logo a colori appena si scorre. Non serve quindi dare un fondo
   proprio alla barra: basta renderla fissa e il resto lo fa il tema.
   ------------------------------------------------------------------------ */
@media (max-width: 1024px) {
  #wrapper-navbar {
    position: fixed !important;
    top: 0; left: 0; right: 0;
    z-index: 9990;
  }
  /* la barra torna nel flusso, cosi' da dare l'altezza al contenitore fisso */
  #wrapper-navbar .uicore-header-wrapper { position: relative !important; }
  /* il menu a tutto schermo deve restare sopra la barra */
  .uicore-navigation-wrapper { z-index: 9999 !important; }

  /* la barra copre l'inizio della pagina: le ancore interne non devono
     finirci sotto */
  [id]:not(body) { scroll-margin-top: 96px; }
}

/* ---------------------------------------------------------------------------
   7. EROE DELLA HOME PIU' CORTO SU TELEFONO
   Su desktop resta com'e'. Su telefono occupava il 90% dello schermo (760px su
   844): si vedeva solo l'immagine e nulla del contenuto sottostante, e per
   capire di cosa si occupa l'azienda bisognava gia' scorrere.
   Dimezzato a 45vh, con i margini interni ridotti in proporzione.
   ------------------------------------------------------------------------ */
@media (max-width: 767px) {
  .elementor-60 .elementor-element.elementor-element-6daa3db7 {
    --min-height: 45vh;
    --padding-top: 24px;
    --padding-bottom: 24px;
  }
}

/* ---------------------------------------------------------------------------
   8. MODULO "LE NOSTRE SOLUZIONI" A TUTTA LARGHEZZA SU TELEFONO
   Su 390px il modulo era largo 324: perdeva 66px in tre livelli annidati
   (padding della sezione 10px, margini di .e-con-inner 9px, margini propri 14px).
   Invece di neutralizzarli uno per uno, il modulo esce dai contenitori con la
   tecnica a tutta larghezza: funziona ovunque compaia, senza dipendere dagli
   identificativi Elementor della singola pagina.
   ------------------------------------------------------------------------ */
@media (max-width: 767px) {
  .sm-orb {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    max-width: 100vw !important;
    border-radius: 0 !important;
  }
}

/* ---------------------------------------------------------------------------
   9. COMPENSAZIONE DEI TITOLI PORTATI AL LIVELLO CORRETTO
   Alcuni titoli erano marcati h4/h5 dove la gerarchia richiedeva h3, e questo
   spezzava l'ordine dei titoli per chi naviga con un lettore di schermo.
   Cambiare il livello sistema la semantica ma altera l'altezza di riga, che nel
   tema dipende dal tag. Qui viene ripristinata quella originale: la grafica
   resta identica a prima, cambia solo cosa il tag comunica.
   Fuori da media query: vale a ogni larghezza, come l'aspetto che ripristina.
   ------------------------------------------------------------------------ */
h3.ui-e-accordion-title,
h4.ui-e-accordion-title { line-height: 1.4; }
h3.ui-e-post-title { line-height: 1.4; }
