/* ==========================================================================
   product-card-image-v1.css — assicomunale
   Regime "altezza propria" per le immagini dentro .ac-product-card
   --------------------------------------------------------------------------
   FILE NUOVO. Nessun append su design-system.css ne' su service.css.
   Nome nuovo = URL nuovo = nessuna trappola LSWS direct-served 1y.
   Enqueue: assicomunale-core.php, DOPO ac-homepage / ac-service / ac-hub-page.

   RICHIESTA UTENTE (2026-07-26): "le immagini vanno slegate dai contenuti e
   rese visibili interamente ... rendere quell'immagine autonoma con le sue
   dimensioni ma lasciarla sempre nella posizione in cui si trova".

   CAUSA RADICE (misurata per ablation sul DOM live, non ipotizzata):
   service.css:4254-4258 mette `height:100%` + `max-height:none` +
   `object-fit:cover` sulla <img>. L'altezza della riga la detta il testo
   accanto, l'immagine la eredita e `cover` butta via tutto cio' che eccede.
   Non e' la cella stirata il problema: e' la <img> che non ha piu' un'altezza
   propria. Prova: spegnere `align-items` o `align-self` da delta ZERO;
   `height:auto` da solo porta il taglio da 79/77/91% a 0/0/0%.

   COSA NON TOCCO (deliberato, anti-zombie):
   - .ac-product-card       { align-items: stretch }   service.css:4246
   - .ac-product-card__image{ align-self: stretch;
                              display: block }         service.css:4247-4249
   Restano vive, quindi restano MORTE le regole service.css:782
   (align-items:center), 810 (display:flex + padding) e 820
   (max-height:520px + contain), che risorgerebbero tutte insieme se si
   neutralizzasse la patch di coda, riportando il difetto del 2026-05-20.

   SUPERA (non per svista) la PATCH v11.0.10 di service.css:3636, scritta il
   2026-04-20 su richiesta cliente per ingrandire le infografiche verticali
   delle pillar 4730/4731: era gia' inattiva, sovrascritta da `max-height:none`
   di v12.7.61. Questo regime le rende piu' grandi di quanto lei riuscisse,
   e per intero.

   SCARTATI di proposito rispetto alla proposta di partenza, perche' fuori
   dalla richiesta: `position:sticky` sull'immagine (sposterebbe l'immagine
   durante lo scroll, l'utente la vuole ferma dov'e') e il fondo tinta sulla
   cella (cambio estetico su 59 pagine mai chiesto).
   ========================================================================== */


/* --------------------------------------------------------------------------
   0. Variabile locale
   -------------------------------------------------------------------------- */
body.ac-service-page .ac-product-card,
body.ac-home .ac-container .ac-product-card {
  /* altezza della barra gradiente ::before (service.css:795 / homepage.css:318):
     senza questo offset la barra copre i primi 4px dell'immagine e
     "visibile per intero" salterebbe al pixel. */
  --ac-pc-bar-h: 4px;
}


/* --------------------------------------------------------------------------
   1. SERVICE + HUB (body.ac-service-page: 58 URL, hub inclusi — le hub page
      portano entrambe le classi, verificato sul body servito)
   -------------------------------------------------------------------------- */

/* 1a. La cella smette di ritagliare. min-height:0 toglie il pavimento di 400px
       che gonfiava la riga senza motivo.
       Centratura verticale: in una card a 2 colonne l'altezza della riga la
       detta il piu' alto dei due, quindi quando il testo e' piu' lungo
       dell'immagine un margine residuo esiste per forza. Centrando, quel
       margine si legge come respiro simmetrico invece che come buco sotto
       l'immagine. Vuoto misurato sulle 193 card: mediana 350px, p90 735px. */
body.ac-service-page .ac-product-card__image {
  overflow: visible;
  min-height: 0;
  padding: var(--ac-pc-bar-h) 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 1b. IL FIX. L'immagine riprende l'altezza dal proprio aspect ratio nativo:
       il taglio non viene "sistemato", diventa impossibile da produrre.
       max-height:none neutralizza in un colpo 520px (service.css:820),
       380px (service.css:2612) e 820/600/560px della PATCH v11.0.10.
       object-fit:contain non serve alla resa (box e nativo hanno lo stesso
       rapporto): e' la garanzia che, se un domani qualcuno rimettesse
       un'altezza fissa, il risultato sia un letterbox e mai piu' un taglio. */
body.ac-service-page .ac-product-card__image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  margin-inline: auto;
}

/* 1c. Hover: lo zoom scale(1.05) (service.css:830) ritagliava il 5% per lato
       con overflow:hidden ancora attivo sulla card. Incompatibile con
       "visibile per intero". L'affordance resta la box-shadow (service.css:806). */
body.ac-service-page .ac-product-card:hover .ac-product-card__image img {
  transform: none;
}


/* --------------------------------------------------------------------------
   2. HOMEPAGE (body.ac-home) — stesso difetto, misurato: immagini tagliate
      dal 56% al 71%.
      Specificita' alzata con .ac-container perche' il blocco inline
      #ac-critical-overrides gira su wp_head priority 99, cioe' DOPO ogni
      foglio: l'ordine sorgente non basta, serve un selettore piu' specifico.
      Nessun !important. Le card della home sono sempre
      .ac-container > .ac-product-card (verificato sul DOM servito).
   -------------------------------------------------------------------------- */
body.ac-home .ac-container .ac-product-card__image {
  overflow: visible;
  min-height: 0;
  padding: var(--ac-pc-bar-h) 0 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

body.ac-home .ac-container .ac-product-card__image img {
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  margin-inline: auto;
}

body.ac-home .ac-container .ac-product-card:hover .ac-product-card__image img {
  transform: none;
}


/* --------------------------------------------------------------------------
   3. MOBILE / TABLET (<=1024px) — secondo difetto, indipendente dal primo e
      finora mascherato dal ritaglio.

      3a. minmax(0,1fr): con `1fr` il minimo automatico della traccia e'
          min-content, e un'immagine verticale faceva sfondare la griglia
          (card larga 648px dentro un viewport da 390px).

      3b. reset di grid-column/grid-row: le regole scacchiera
          (service.css:911-918 e la FIX B su page-id-527) piazzano le celle in
          colonna 2/3 e 1/2 in modo ESPLICITO, fuori da ogni media query. Il
          collasso a `grid-template-columns:1fr` del breakpoint non le annulla:
          un piazzamento esplicito in colonna 2 CREA una seconda colonna
          implicita, e la card resta a due colonne anche a 390px.
          Misurato prima del fix: `grid-template-columns: 233px 123px` a
          viewport 390px, immagine ridotta a una striscia di 58-123px alta fino
          a 4326px, su 52 pagine.
          Con il reset l'auto-placement torna valido e `order:-1`
          (service.css:2608) rimette l'immagine sopra il testo, come da design.
   -------------------------------------------------------------------------- */
@media (max-width: 1024px) {
  body.ac-service-page .ac-product-card,
  body.ac-home .ac-container .ac-product-card {
    grid-template-columns: minmax(0, 1fr);
  }

  body.ac-service-page .ac-product-card__image,
  body.ac-service-page .ac-product-card__content,
  body.ac-home .ac-container .ac-product-card__image,
  body.ac-home .ac-container .ac-product-card__content {
    min-width: 0;
  }

  body.ac-service-page .ac-product:nth-child(even of .ac-product) .ac-product-card__image,
  body.ac-service-page .ac-product-card--reverse .ac-product-card__image,
  body.ac-service-page .ac-product:nth-child(even of .ac-product) .ac-product-card__content,
  body.ac-service-page .ac-product-card--reverse .ac-product-card__content,
  body.page-id-527 .ac-product:nth-child(4 of .ac-product) .ac-product-card__image,
  body.page-id-527 .ac-product:nth-child(4 of .ac-product) .ac-product-card__content {
    grid-column: auto;
    grid-row: auto;
  }
}

/* End product-card-image-v1.css */
