/**
 * se-builder-content.css — IL LAYOUT PUBBLICATO.
 *
 * Origine: z.gogoagenda.com/web/assets_app/css/grapesjs.css (bundle: _content-frontend.css).
 *
 * ⚠ QUESTO FILE SI CARICA IN DUE POSTI, ed è UN FILE SOLO — mai due copie "tenute allineate":
 *     1. dentro l'iframe del canvas dell'editor  → SE_Builder_Editor_Screen, via opts.cssUrl
 *     2. sul sito pubblico                        → SE_Builder_Frontend, sui soli post _se_builder_mode=se
 *   Se le due copie divergessero, l'autore progetterebbe una cosa e ne pubblicherebbe un'altra.
 *   In ShareEvent erano due file e sono divergiti davvero: celle collassate, immagini sparite,
 *   footer sovrapposto. Qui il problema è eliminato alla radice, non gestito.
 *
 * [PORTING WP] UNICA MODIFICA rispetto al bundle: lo scope.
 *   Su ShareEvent le regole erano scopate "#custom_page" — il wrapper della pagina pubblica di z,
 *   che in WordPress NON ESISTE: lasciate così, nessuna regola di layout avrebbe fatto match e le
 *   colonne sarebbero collassate (è il trabocchetto n.3 di LEGGIMI-PRIMA §7).
 *   Sostituito con ".se-gjs-page", che qui esiste in ENTRAMBI i contesti:
 *     - sul frontend  → il <div class="se-gjs-page"> aggiunto dal filtro the_content
 *     - nel canvas    → la classe .se-gjs-page messa sull'<html> dell'iframe da se-builder-glue.js
 *   .se-gjs-page (0,1,0) è meno specifico di #custom_page (1,0,0), ma qui non serve battere il
 *   CSS legacy di z: Hello Elementor è un tema spoglio. Le regole per-id esportate dal design
 *   (.se-gjs-page #id{…}) restano prioritarie come prima.
 *
 * ⚠ DIVERGENZA NOTA rispetto alla sezione 6 di se-builder-editor.css (che nel canvas è caricata
 *   anch'essa, con selettori nudi .gjs-row/.gjs-cell): quella ha "gap: 10px" su .gjs-row, questa
 *   no. È intenzionale e viene da ShareEvent: il gap è spaziatura di EDITING, aggiungerlo al
 *   pubblicato cambierebbe le pagine già uscite. Nel canvas si sommano ed è il comportamento voluto.
 *
 * Storico: in origine qui mancava flex:1 1 0 (celle dimensionate al contenuto) e il breakpoint
 * mobile era a 878px senza flex-direction:column → le celle con sola immagine collassavano a 0
 * in modalità riga (immagini sparite, footer sovrapposto). Riconciliato col canvas dell'editor.
 * Bug già diagnosticato e risolto a luglio 2026: non riscoprirlo.
 */

/* ==========================================================================
   Helper di coesistenza — neutralizzano le regole legacy sul contenuto grape
   ========================================================================== */

/* main.css ha una regola globale `h1, h2 { text-align: center }` (design legacy) che, essendo
   DIRETTA sull'h2, batte l'allineamento ereditato dalla cella → i titoli delle Sezioni grape
   (Staff, Feature, ecc.) risultavano centrati anche quando la loro colonna è a sinistra.
   Qui i titoli grape tornano a SEGUIRE la loro cella/sezione (`inherit`): quelli con allineamento
   esplicito dal design (regola per-id `.se-gjs-page #id{text-align:…}`, specificità maggiore)
   restano come sono; le pagine legacy non-grape non vengono toccate. */
.se-gjs-page h1,
.se-gjs-page h2,
.se-gjs-page h3,
.se-gjs-page h4,
.se-gjs-page h5,
.se-gjs-page h6 {
    text-align: inherit;
}

/* Contenuto del page builder GrapeJS: ogni blocco (_game/_numbers/_countdown/…) si avvolge in
   <div class="container">, il cui senso è centrarsi (max-width + margini automatici). Ma su z la
   .container base (main.css) ha SOLO il padding e la max-width, NON i margini auto → i blocchi
   restavano incollati a sinistra. Qui ripristiniamo l'auto-centratura della .container SOLO dentro
   il contenuto grape (.se-gjs-page), senza toccare le pagine legacy (Unlayer/.u_row). */
.se-gjs-page .container {
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   6. CSS DEL CONTENUTO GENERATO — ⚠ allineare con la sezione 6 di manage (vedi header)
   ========================================================================== */

/* Righe/colonne del page builder (GrapeJS .gjs-row/.gjs-cell): mantieni le colonne
   affiancate. min-width:0 permette alle celle flex di restringersi e img responsive
   evita che un'immagine larga forzi il wrap (colonne impilate). */
.se-gjs-page .gjs-row {
    display: flex;
    flex-wrap: wrap;
}

/* flex: 1 1 0 → le celle DIVIDONO lo spazio in parti uguali (come nel canvas dell'editor),
   invece di dimensionarsi al contenuto. Senza, una cella che contiene SOLO un'immagine a
   rapporto d'aspetto (background-image / padding-top%, con l'eventuale testo in overlay
   position:absolute) non riceve larghezza dal contenuto e COLLASSA a 0 in modalità riga
   (≥768px) → l'immagine sparisce e le sezioni sottostanti risalgono (es. footer che si
   sovrappone). Le regole per-id esportate dal design (.se-gjs-page #id{flex:…}, stessa
   specificità ma nel <style> inline della pagina → vincono per ordine) restano prioritarie. */
.se-gjs-page .gjs-cell {
    flex: 1 1 0;
    min-width: 0;
}

.se-gjs-page .gjs-cell img {
    max-width: 100%;
    height: auto;
}

/* Avatar del blocco Staff/bio: dimensioni FISSE 120x120. Due regole del frontend lo
   sovrascrivono: "#custom_page .gjs-cell img { height:auto }" (qui sopra, 1,1,1) e soprattutto
   "#custom_page img { max-width:100% !important }" in main.css. La classe marcatore
   se-staff-avatar (1,2,1) + !important vince su entrambe e blocca le dimensioni. */
.se-gjs-page .gjs-cell img.se-staff-avatar {
    width: 120px !important;
    height: 120px !important;
    max-width: 120px !important;
    object-fit: cover;
    border-radius: 50%;
}

/* Mobile: una colonna per riga. IMPORTANTE — si impila tenendo la riga in FLEX-ROW + wrap
   e forzando ogni cella a larghezza 100%, NON con flex-direction:column. Motivo: in column
   l'altezza della cella è l'asse PRINCIPALE e Chromium NON conta il padding-% del figlio
   (un blocco a rapporto d'aspetto: background-image o .embed_16_9-container con padding-top%),
   così la cella collassa a 0 e le immagini spariscono / le sezioni sotto risalgono (footer
   sovrapposto). In row mode l'altezza è l'asse TRASVERSALE e conta il padding del figlio.
   !important batte il flex per-id esportato dal design (.se-gjs-page #id{flex:…}, stessa
   specificità → altrimenti vincerebbe lui per ordine sorgente). */
@media (max-width: 767px) {
    .se-gjs-page .gjs-cell {
        flex: 0 0 100% !important;
        max-width: 100%;
    }

    /* .reverse: inverti l'ordine visivo con wrap-reverse (le celle 100% restano impilate) */
    .se-gjs-page .gjs-row.reverse {
        flex-wrap: wrap-reverse;
    }
}
