/* ==========================================================================
   JTWIA — componenti condivisi (home e pagine interne)

   Solo ciò che serve a più di una pagina: base delle sezioni, testata (hero della
   home e testata di pagina), informazioni essenziali, righe cliccabili, avviso,
   segnaposto, chiusura. Nessuna regola specifica della home: quelle restano in
   jtwia-home.css, che dipende da questo foglio, mai il contrario.

   Estratto da jtwia-home.css (v2.1) il 26 ottobre 2026 senza cambiare le regole, salvo:
   - le regole della hero valgono anche per la testata di pagina (.jtwia-pagehero):
     :is(.jtwia-hero, .jtwia-pagehero) ha la specificità di una sola classe, come prima;
   - l'override del contorno del focus su sfondo scuro elenca anche .jtwia-pagehero
     (e non più .jtwia-research e .jtwia-partners, che restano in jtwia-home.css).
   Ogni regola parte da una classe jtwia-: nessun effetto sulle altre pagine.
   Dipende da jtwia-base.css (token --jtwia-plum e --jtwia-gutter, larghezza a 76rem).
   ========================================================================== */

/* --- Token e base comune ---------------------------------------------------- */
.jtwia-section {
  --jtwia-magenta: #e02d7f;
  --jtwia-magenta-deep: #c41f69;
  --jtwia-blush: #fce8f1;
  --jtwia-ink-soft: #5a4455;
  --jtwia-focus: var(--jtwia-magenta-deep);
  isolation: isolate;
  scroll-margin-top: 5rem;
}
.jtwia-hero, .jtwia-pagehero, .jtwia-join, .jtwia-closing { --jtwia-focus: #fff; }

/* Sotto i 1025 px le colonne con larghezza 100% si impilano anche se il tema non manda a capo il contenitore. */
@media (max-width: 1024px) {
  .jtwia-section > .elementor-container,
  .jtwia-section .elementor-inner-section > .elementor-container { flex-wrap: wrap; }
}

/* Spazi tra i widget decisi dai margini impostati nell'editor (la hero resta com'è). */
.jtwia-section:not(.jtwia-hero) .elementor-widget:not(:last-child),
.jtwia-section:not(.jtwia-hero) .elementor-inner-section { margin-bottom: 0; }

.jtwia-section .elementor-widget-text-editor p { margin: 0 0 1em; color: inherit; }
.jtwia-section .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.jtwia-section .elementor-widget-text-editor a { color: inherit; font-weight: 700; text-underline-offset: 0.18em; }
.jtwia-section .elementor-heading-title a { color: inherit; text-decoration: none; }
.jtwia-section .elementor-heading-title { text-wrap: balance; }

.jtwia-section a:focus-visible,
.jtwia-section .elementor-button:focus-visible {
  outline: 3px solid var(--jtwia-focus);
  outline-offset: 3px;
}
.jtwia-section .elementor-button { transition: background-color 0.15s, color 0.15s, border-color 0.15s; }

/* Segnaposto visibili: da togliere dall'editor quando il dato è confermato. */
.jtwia-ph {
  display: inline-block;
  margin-left: 0.15em;
  padding: 0 0.45em;
  font-size: 0.875em;
  font-weight: 600;
  line-height: 1.5;
  border: 1.5px dashed currentColor;
  border-radius: 0.25rem;
}

/* ==========================================================================
   Hero
   ========================================================================== */
/* Velatura: scurisce dal basso e aggiunge un riflesso rosa a sinistra.
   Il gradiente di base resta quello impostato nell'editor. */
:is(.jtwia-hero, .jtwia-pagehero) > .elementor-background-overlay {
  background-image:
    linear-gradient(to top, rgba(42, 14, 36, 0.92) 0%, rgba(42, 14, 36, 0.62) 38%, rgba(42, 14, 36, 0.1) 70%),
    linear-gradient(to right, rgba(224, 45, 127, 0.32), transparent 55%) !important;
}

/* Titolo: a capo naturale in massimo 12 caratteri, entrata morbida una sola volta. */
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__title .elementor-heading-title {
  max-width: 12ch;
  animation: jtwia-rise 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
/* Il limite sta nel contenitore interno: il widget resta a larghezza piena e i pulsanti vanno a capo. */
.jtwia-hero__lead .elementor-widget-container { max-width: 34rem; }

/* La colonna è il riferimento per l'etichetta della data. */
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__content > .elementor-widget-wrap { position: relative; }
:is(.jtwia-hero, .jtwia-pagehero) .elementor-widget-wrap > .jtwia-hero__date {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  width: auto;
  margin: 0;
}
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date .elementor-widget-container {
  padding: 0.6rem 0.85rem 0.7rem;
  background: var(--jtwia-magenta);
  text-align: right;
}
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date p { margin: 0; line-height: 1.1; }
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date p:first-child {
  font-family: "Figtree", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.4;
}
:is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date p:last-child {
  font-family: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;
  font-size: 1.375rem;
  font-weight: 800;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date .elementor-widget-container { padding: 0.9rem 1.1rem 1rem; }
  :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date p:first-child { font-size: 0.9375rem; }
  :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date p:last-child { font-size: clamp(1.6rem, 4vw, 2.5rem); }
}
@media (min-width: 1025px) {
  :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__date .elementor-widget-container { padding: 1.1rem 1.5rem 1.2rem; }
}

@keyframes jtwia-rise {
  from { opacity: 0; transform: translateY(1.25rem); }
  to { opacity: 1; transform: none; }
}

/* Testata di pagina sul mobile: il titolo sta in alto sulla foto, quindi la velatura
   parte più piena anche in alto (contrasto del testo bianco). */
@media (max-width: 767px) {
  .jtwia-pagehero > .elementor-background-overlay {
    background-image:
      linear-gradient(to top, rgba(42, 14, 36, 0.92) 0%, rgba(42, 14, 36, 0.72) 55%, rgba(42, 14, 36, 0.5) 100%),
      linear-gradient(to right, rgba(224, 45, 127, 0.32), transparent 55%) !important;
  }
}

/* Testata di pagina con la fotografia a tutta larghezza (dal tema 0.3.21, 11 novembre 2026).
   Si attiva SOLO aggiungendo la classe «jtwia-pagehero--foto» alla sezione (Avanzate › Classi CSS):
   le hero senza la classe non cambiano. Fotografia, dimensione («Copri») e posizione restano nei
   controlli nativi di Elementor (Stile › Sfondo); qui solo la velatura, perché il testo è a sinistra,
   sopra la fotografia: prugna piena a sinistra che sfuma verso destra, più il fondo scuro in basso. */
.jtwia-pagehero.jtwia-pagehero--foto > .elementor-background-overlay {
  background-image:
    linear-gradient(to right, rgba(42, 14, 36, 0.86) 0%, rgba(42, 14, 36, 0.74) 34%, rgba(42, 14, 36, 0.3) 62%, rgba(42, 14, 36, 0.06) 100%),
    linear-gradient(to top, rgba(42, 14, 36, 0.55) 0%, transparent 45%),
    linear-gradient(to right, rgba(224, 45, 127, 0.22), transparent 50%) !important;
}
@media (max-width: 767px) {
  /* Sul telefono il testo occupa quasi tutta la larghezza: velatura dal basso, più piena dove sta il testo. */
  .jtwia-pagehero.jtwia-pagehero--foto > .elementor-background-overlay {
    background-image:
      linear-gradient(to top, rgba(42, 14, 36, 0.94) 0%, rgba(42, 14, 36, 0.8) 50%, rgba(42, 14, 36, 0.45) 100%),
      linear-gradient(to right, rgba(224, 45, 127, 0.22), transparent 55%) !important;
  }
}
/* [0.3.22] Tablet (768–1024 px), solo con «jtwia-pagehero--foto». Molte hero vengono dalla versione con la
   foto affiancata e conservano, nei controlli della colonna, uno spazio interno a destra di 360–520 px
   riservato alla vecchia foto: con la foto a tutta larghezza il testo restava in 230–300 px (Villaggio,
   Scuole, Aziende, Punti, Ritiro kit, Pilates, Comuni). Qui lo spazio a destra diventa una quota della
   colonna, uguale per tutte le hero con la classe; desktop e telefono non cambiano. La velatura resta
   piena fin dove arriva il testo. */
@media (min-width: 768px) and (max-width: 1024px) {
  .jtwia-pagehero.jtwia-pagehero--foto > .elementor-container > .elementor-column > .elementor-widget-wrap {
    padding-right: 36%;
  }
  /* Con la colonna più larga il titolo può andare a capo ogni 16 caratteri invece di 12
     (Villaggio: da cinque a tre righe); sul desktop e sul telefono resta il limite di 12. */
  .jtwia-pagehero.jtwia-pagehero--foto .jtwia-hero__title .elementor-heading-title {
    max-width: 16ch;
  }
  .jtwia-pagehero.jtwia-pagehero--foto > .elementor-background-overlay {
    background-image:
      linear-gradient(to right, rgba(42, 14, 36, 0.88) 0%, rgba(42, 14, 36, 0.8) 48%, rgba(42, 14, 36, 0.46) 72%, rgba(42, 14, 36, 0.12) 100%),
      linear-gradient(to top, rgba(42, 14, 36, 0.55) 0%, transparent 45%),
      linear-gradient(to right, rgba(224, 45, 127, 0.22), transparent 50%) !important;
  }
}
/* [/0.3.22] */

/* ==========================================================================
   Informazioni essenziali
   ========================================================================== */
.jtwia-facts__item strong { display: block; font-size: 1.125rem; }
.jtwia-facts .jtwia-facts__col > .elementor-widget-wrap { padding: 1.25rem 0; }
.jtwia-facts .jtwia-facts__col + .jtwia-facts__col > .elementor-widget-wrap { border-top: 1px solid rgba(42, 14, 36, 0.2); }
@media (min-width: 768px) {
  .jtwia-facts .jtwia-facts__col > .elementor-widget-wrap { padding: 1.75rem 2rem 1.75rem 0; }
  .jtwia-facts .jtwia-facts__col + .jtwia-facts__col > .elementor-widget-wrap {
    border-top: 0;
    border-left: 1px solid rgba(42, 14, 36, 0.2);
    padding-left: 2rem;
  }
}

/* ==========================================================================
   Righe cliccabili (Come partecipare, Scuole e comuni)
   Il link del titolo si estende a tutta la riga: basta modificare il collegamento
   del titolo dall'editor.
   ========================================================================== */
.jtwia-linkrow { position: relative; }
.jtwia-linkrow > .elementor-container,
.jtwia-linkrow .elementor-column,
.jtwia-linkrow .elementor-widget-wrap,
.jtwia-linkrow .elementor-widget,
.jtwia-linkrow .elementor-widget-container { position: static; }
.jtwia-linkrow .elementor-heading-title a::after { content: ""; position: absolute; inset: 0; }
.jtwia-linkrow::before {
  content: "";
  position: absolute;
  right: 0.5rem;
  top: 50%;
  width: 0.9rem;
  height: 0.9rem;
  margin-top: -0.45rem;
  border: solid var(--jtwia-magenta);
  border-width: 3px 3px 0 0;
  transform: rotate(45deg);
  pointer-events: none;
}
.jtwia-linkrow:focus-within { outline: 3px solid var(--jtwia-focus); outline-offset: -3px; }
.jtwia-linkrow .elementor-heading-title a:focus-visible { outline: 0; }

.jtwia-path { padding: 1.6rem 3rem 1.6rem 0; border-top: 1px solid rgba(255, 255, 255, 0.28); transition: background-color 0.15s; }
.elementor-widget-wrap > .jtwia-path:last-child { border-bottom: 1px solid rgba(255, 255, 255, 0.28); }
.jtwia-path:hover { background: rgba(255, 255, 255, 0.06); }
.jtwia-path__text { max-width: 32rem; }

.jtwia-route { padding: 1.2rem 3rem 1.2rem 0; border-top: 1px solid rgba(42, 14, 36, 0.2); }
.jtwia-route--first { border-top: 2px solid var(--jtwia-magenta); }
.jtwia-route--last { border-bottom: 1px solid rgba(42, 14, 36, 0.2); }
.jtwia-route::before { border-color: var(--jtwia-magenta-deep); }
.jtwia-route:hover .elementor-heading-title { color: var(--jtwia-magenta-deep); }

.jtwia-notice .elementor-widget-container {
  padding: 0.9rem 1rem;
  border: 1.5px dashed rgba(255, 255, 255, 0.55);
  border-radius: 0.25rem;
}
.jtwia-notice .jtwia-ph { margin-right: 0.35em; }

/* ==========================================================================
   Chiusura
   ========================================================================== */
.jtwia-closing__title .elementor-heading-title { max-width: 14ch; }

/* ==========================================================================
   Pagine operative (aggiunto il 26 ottobre 2026, tema 0.3.1; prima pagina: «Partecipo da solo»)
   Solo classi nuove (jtwia-pagehead, jtwia-op, jtwia-regbox, jtwia-prose, jtwia-more, jtwia-help):
   nessuna regola esistente è cambiata, quindi home e «Come partecipare» non variano.
   Sfondi, bordi, spaziature, tipografia e colori sono controlli nativi di Elementor; qui solo i dettagli.
   ========================================================================== */

/* --- Testata operativa: fondo rosa tenue, nessuna fotografia ---------------- */
.jtwia-pagehead .jtwia-pagehead__title .elementor-heading-title { max-width: 22ch; letter-spacing: 0.005em; }
.jtwia-pagehead__lead .elementor-widget-container { max-width: 40rem; }
/* Date della manifestazione: etichetta piccola in maiuscolo e data, sotto un filetto. */
.jtwia-pagehead__fact .elementor-widget-container {
  max-width: 17rem;
  padding-top: 0.75rem;
  border-top: 1.5px solid rgba(42, 14, 36, 0.25);
}
.jtwia-section .jtwia-pagehead__fact p { margin: 0; }
.jtwia-section .jtwia-pagehead__fact p:first-child {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--jtwia-ink-soft);
}
.jtwia-section .jtwia-pagehead__fact p:last-child { margin-top: 0.1rem; font-size: 1.1875rem; }
/* Collegamento secondario: testo sottolineato, meno evidente di un pulsante. */
.jtwia-pagehead__link a { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.jtwia-pagehead__link a:hover { color: var(--jtwia-magenta-deep); }

/* Motivo di fondo: le labbra del logo (forme originali, assets/img/labbra-logo.svg) in magenta al 30%,
   grandi, tagliate a destra e in basso, sfumate verso il testo (approvato il 27 ottobre 2026, tema 0.3.5).
   Pseudo-elemento: nessuna altezza in più, nessun markup, non cattura clic, selezione né focus; sta sopra
   lo sfondo della sezione e sotto i widget (isolation + z-index negativo). Solo .jtwia-pagehead:
   home, «Come partecipare» (.jtwia-pagehero) e le altre sezioni non cambiano. */
.jtwia-pagehead { position: relative; overflow: hidden; isolation: isolate; }
.jtwia-pagehead::before {
  content: "";
  position: absolute;
  z-index: -1;
  right: -5rem;
  bottom: -0.5rem;
  width: 27rem;
  height: 7.8rem;
  background: url("../img/labbra-logo.svg") no-repeat center / contain;
  opacity: 0.3;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 45%);
          mask-image: linear-gradient(to right, transparent 0, #000 45%);
  pointer-events: none;
  -webkit-user-select: none;
          user-select: none;
}
@media (min-width: 768px) {
  .jtwia-pagehead::before { right: -10rem; bottom: -2rem; width: 42rem; height: 12.1rem; }
}
@media (min-width: 1280px) {
  .jtwia-pagehead::before {
    right: -14rem;
    bottom: -3rem;
    width: 58rem;
    height: 16.8rem;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 32%);
            mask-image: linear-gradient(to right, transparent 0, #000 32%);
  }
}
@media print { .jtwia-pagehead::before { display: none; } }

/* --- Corpo operativo: contenuto + riquadro dello stato ----------------------
   Nell'editor il riquadro viene PRIMA del contenuto, così sul mobile e sul tablet lo precede.
   Dal desktop (1025 px) sta a destra e resta in vista durante la lettura (sticky);
   sotto 1025 px non è sticky e non c'è nessuna regola di posizione. */
.jtwia-regbox__state p::before {
  content: "";
  display: inline-block;
  width: 0.6em;
  height: 0.6em;
  margin-right: 0.5em;
  border-radius: 50%;
  background: currentColor;
}
.jtwia-regbox__state { color: var(--jtwia-magenta-deep); font-weight: 700; }
.jtwia-prose__text .elementor-widget-container { max-width: 40rem; }
.jtwia-prose__text strong { color: var(--jtwia-plum); }
@media (min-width: 1025px) {
  .jtwia-op > .elementor-container { align-items: flex-start; }
  .jtwia-op .jtwia-regbox {
    order: 2;
    position: sticky;
    /* Sotto l'header fisso (circa 4,25 rem) più uno spazio; tiene conto della barra di amministrazione. */
    top: calc(7rem + var(--wp-admin--admin-bar--height, 0px));
  }
}

/* --- Collegamenti secondari: elenco compatto ------------------------------- */
.jtwia-more__title .elementor-widget-container { padding-bottom: 0.75rem; border-bottom: 2px solid var(--jtwia-magenta); }
.jtwia-section .jtwia-more__item p { margin: 0; }
.jtwia-section .jtwia-more__item p:first-child a { color: var(--jtwia-magenta-deep); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em; }
.jtwia-section .jtwia-more__item p:first-child a:hover { color: var(--jtwia-plum); }
.jtwia-section .jtwia-more__item p:last-child { margin-top: 0.1rem; font-size: 0.9375rem; color: var(--jtwia-ink-soft); }
.jtwia-more__item .elementor-widget-container { padding-block: 0.85rem; border-bottom: 1px solid rgba(42, 14, 36, 0.2); }
@media (min-width: 1025px) {
  .jtwia-more__item .elementor-widget-container { padding-block: 1.1rem 0; border-bottom: 0; }
}

/* --- Contatto assistenza: una riga ------------------------------------------ */
.jtwia-help a { color: var(--jtwia-magenta-deep); font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }
@media (min-width: 768px) {
  .jtwia-help__box > .elementor-widget-wrap { align-items: baseline; column-gap: 2rem; }
}
@media (max-width: 767px) {
  .jtwia-help__box .elementor-widget { width: 100%; }
}

/* ==========================================================================
   Punti d'iscrizione (aggiunto il 26 ottobre 2026, tema 0.3.2; esempio nascosto in 0.3.3;
   autonomo e compatto in 0.3.4)
   Una sezione per punto (classe jtwia-point), inserita sotto la sezione del titolo dell'elenco (jtwia-pointshead).
   Solo classi jtwia-point*: nessuna regola esistente e' cambiata.
   AUTONOMO: tutte le regole partono da .jtwia-point e NON dipendono dalla classe .jtwia-section. Prima della 0.3.4 il
   layout funzionava solo con .jtwia-section: una sezione a cui mancava quella classe perdeva griglia, etichette e
   margini (ricostruito in locale dallo screenshot dello staging del 26 ottobre 2026). Qui le variabili, la larghezza del
   contenuto e i margini dei paragrafi sono ridichiarati per il punto, cosi' togliere o dimenticare altre classi non
   altera il layout. Nome (H3), testi, padding e colori restano controlli nativi di Elementor.
   ========================================================================== */
.jtwia-point {
  --jtwia-plum: #2a0e24;
  --jtwia-magenta: #e02d7f;
  --jtwia-magenta-deep: #c41f69;
  --jtwia-ink-soft: #5a4455;
  --jtwia-gutter: clamp(1rem, 4vw, 2.5rem);
  isolation: isolate;
}
/* Contenuto a 76rem come le altre sezioni, e filetto sottile sotto ogni punto. */
.jtwia-point > .elementor-container {
  width: min(100% - 2 * var(--jtwia-gutter), 76rem) !important;
  max-width: none !important;
  border-bottom: 1px solid rgba(42, 14, 36, 0.2);
}
/* Filetto magenta sopra il primo punto: subito sotto la sezione del titolo, oppure dopo l'esempio nascosto. */
.jtwia-pointshead + .jtwia-point > .elementor-container,
.jtwia-pointshead + .jtwia-point--modello + .jtwia-point > .elementor-container { border-top: 2px solid var(--jtwia-magenta); }

/* Spazi tra widget e paragrafi: decisi dai controlli di Elementor, non dai margini predefiniti. */
.jtwia-point .elementor-widget:not(:last-child) { margin-bottom: 0; }
.jtwia-point .elementor-widget-text-editor p { margin: 0; color: inherit; }
.jtwia-point .jtwia-point__directions a {
  color: var(--jtwia-magenta-deep);
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.2em;
}
.jtwia-point .jtwia-point__directions a:hover { color: var(--jtwia-plum); }

/* Periodo e orari: un widget ciascuno. Su desktop stanno affiancati quando lo spazio lo consente (griglia che si
   riorganizza da sola se un widget manca); su mobile e tablet si impilano con distanze contenute.
   Specificita' alzata: Elementor imposta display:flex con .elementor:not(...) .elementor-widget-wrap. */
.jtwia-point .jtwia-point__facts.elementor-column > .elementor-widget-wrap {
  display: grid;
  gap: 0.6rem 2rem;
  align-content: start;
}
.jtwia-point .jtwia-point__fact p:first-child {
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--jtwia-ink-soft);
}
.jtwia-point .jtwia-point__fact p:nth-child(2) { margin-top: 0.1rem; }
@media (min-width: 48rem) {
  .jtwia-point .jtwia-point__facts.elementor-column > .elementor-widget-wrap {
    grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  }
}

/* Esempio di punto DENTRO la pagina («MODELLO PUNTO \2014  NASCOSTO», classe jtwia-point--modello).
   Nascosto ai visitatori per impostazione predefinita (non dipende da .jtwia-section); visibile SOLO nell'editor di
   Elementor in modifica (body.elementor-editor-active), non nella modalita' Anteprima dell'editor ne' sul sito.
   L'etichetta gialla e' un pseudo-elemento: esiste solo nell'editor e non e' nel codice della pagina. Per rendere
   visibile un duplicato basta togliere la classe jtwia-point--modello (Avanzate > Classi CSS). Il layout non cambia. */
.jtwia-point--modello { display: none; }
.elementor-editor-active:not(.elementor-editor-preview) .jtwia-point--modello {
  display: block;
  outline: 2px dashed #8a7400;
  outline-offset: -2px;
}
.elementor-editor-active:not(.elementor-editor-preview) .jtwia-point--modello::before {
  content: "MODELLO PUNTO \2014  NASCOSTO ai visitatori. Duplicalo e compilalo; per mostrare il duplicato togli la classe jtwia-point--modello (Avanzate > Classi CSS).";
  display: block;
  padding: 0.5rem 1rem;
  background: #fff7c2;
  color: #3a3000;
  font: 600 0.875rem/1.4 "Figtree", system-ui, sans-serif;
  border-bottom: 1.5px dashed #8a7400;
}

@media (prefers-reduced-motion: reduce) {
  :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__title .elementor-heading-title { animation: none; }
  .jtwia-section .elementor-button, .jtwia-path { transition: none; }
}
/* Nell'editor niente animazione, per non disturbare la modifica. */
.elementor-editor-active :is(.jtwia-hero, .jtwia-pagehero) .jtwia-hero__title .elementor-heading-title { animation: none; }

/* ==========================================================================
   Richiamo interno alla donazione (tema 0.3.6, 27 ottobre 2026)
   Modello di libreria `jtwia-richiamo-donazione-interno.json`: riga con due filetti, testo e pulsante «Dona ora».
   Solo nelle pagine lunghe, mai a meno di due sezioni dal richiamo del footer.
   ========================================================================== */
.jtwia-donate-inline > .elementor-container {
	padding-block: 1.25rem;
	border-block: 1px solid rgba(42, 14, 36, 0.2);
}
.jtwia-donate-inline .elementor-widget-text-editor p { margin: 0; color: inherit; }
.jtwia-donate-inline .elementor-widget-text-editor p + p { margin-top: 0.15rem; }
.jtwia-donate-inline__action > .elementor-widget-wrap { align-content: center; }
@media (min-width: 1025px) {
	.jtwia-donate-inline__action > .elementor-widget-wrap { justify-content: flex-end; }
}
@media (max-width: 1024px) {
	.jtwia-donate-inline__action > .elementor-widget-wrap { padding-top: 0.75rem; }
}

/* ==========================================================================
   Archivio di «Fondi per la ricerca» (tema 0.3.7, 28 ottobre 2026)
   Due agganci ESPLICITI, aggiunti a mano nell'editor (nessun selettore sulle sezioni «seguenti»):
   - `jtwia-fondi-nav`      sulla sezione che contiene il Menu di navigazione per anno;
   - `jtwia-fondi-edizione` su ciascuna sezione dell'archivio (le dieci sezioni con le edizioni).
   Gli stili non dipendono da `jtwia-section` e non toccano nessun altro componente. Barra degli anni NON fissa.
   :has() distingue la riga di colonne (testo + materiale) anche quando le colonne sono direttamente nella
   sezione di primo livello (edizione 2018); dove :has() non c'è, resta l'ordine originale delle colonne.
   ========================================================================== */
.jtwia-fondi-nav,
.jtwia-fondi-edizione {
	--jtwia-fondi-plum: #2a0e24;
	--jtwia-fondi-magenta: #e02d7f;
	--jtwia-fondi-magenta-deep: #c41f69;
	--jtwia-fondi-ink: #5a4455;
	--jtwia-fondi-gutter: clamp(1rem, 4vw, 2.5rem);
}

/* ---------- Barra degli anni ---------- */
.elementor-section.jtwia-fondi-nav { padding-block: 0.5rem; }
.elementor-section.jtwia-fondi-nav > .elementor-container { width: min(100% - 2 * var(--jtwia-fondi-gutter), 76rem) !important; max-width: none !important; }
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main { display: block; }
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-menu-toggle,
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--dropdown { display: none; }
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu {
	display: flex; flex-wrap: wrap; justify-content: center; gap: 0.375rem; margin: 0; padding: 0.25rem 0;
}
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu > li { flex: 0 0 auto; }
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item {
	padding: 0.4375rem 1rem; border: 1.5px solid rgba(255, 255, 255, 0.6); border-radius: 999px;
	font-family: "Figtree", system-ui, sans-serif; font-weight: 700; font-size: 0.9375rem; line-height: 1.2; letter-spacing: 0.02em;
	color: #fff; background: transparent; transition: background 0.15s, color 0.15s;
}
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item:hover,
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item:focus-visible,
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item.elementor-item-active {
	background: #fff; border-color: #fff; color: var(--jtwia-fondi-magenta-deep);
}
.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item:focus-visible { outline: 3px solid var(--jtwia-fondi-plum); outline-offset: 2px; }
@media (max-width: 767px) {
	.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main .elementor-nav-menu { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0.375rem; }
	.jtwia-fondi-nav .elementor-widget-nav-menu .elementor-nav-menu--main a.elementor-item { display: block; padding: 0.5rem 0; text-align: center; }
}

/* ---------- Edizioni: larghezza, ritmo, titolo dell'anno ---------- */
.elementor-section.jtwia-fondi-edizione > .elementor-container { width: min(100% - 2 * var(--jtwia-fondi-gutter), 76rem) !important; max-width: none !important; }
.jtwia-fondi-edizione .elementor-widget-spacer { display: none; }
/* colonne di primo livello senza il margine interno predefinito: titoli, testi e righe partono dallo stesso bordo */
.elementor-section.jtwia-fondi-edizione > .elementor-container > .elementor-column > .elementor-widget-wrap { padding: 0; }
.jtwia-fondi-edizione .elementor-menu-anchor { scroll-margin-top: 7rem; }
.jtwia-fondi-edizione > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-heading > .elementor-widget-container {
	margin-top: 1.5rem; padding-block: 2.75rem 1.5rem; border-top: 2px solid var(--jtwia-fondi-magenta);
}
.jtwia-fondi-edizione > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-heading .elementor-heading-title {
	margin: 0; font-family: "Barlow Condensed", sans-serif; font-weight: 800; font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 0.95;
	text-transform: uppercase; color: var(--jtwia-fondi-plum);
}
/* titoli vuoti (solo per dare altezza alle colonne con sfondo): fuori dalla lettura */
.jtwia-fondi-edizione .elementor-heading-title:empty { display: none; }

/* ---------- Edizioni: testo a sinistra, materiale a destra; una colonna sotto i 900 px con il materiale prima ---------- */
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) {
	display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 1.5rem 3rem; width: 100%; max-width: none; align-items: start;
}
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column {
	width: auto; min-width: 0; grid-column: 1; grid-row: 1;
}
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column > .elementor-widget-wrap { padding: 0; }
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-image),
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-video),
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-heading-title:empty) { grid-column: 2; }
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:not(:has(> .elementor-element-populated)) { display: none; }
@media (max-width: 900px) {
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) { grid-template-columns: minmax(0, 1fr); }
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column,
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-image),
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-video),
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-heading-title:empty) { grid-column: 1; grid-row: auto; }
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-image),
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-video),
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-heading-title:empty) { order: -1; }
}

@media (max-width: 900px) {
	/* sotto i 900 px il materiale non supera una misura di lettura comoda e resta centrato */
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-image),
	.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-widget-video) { max-width: 36rem; margin-inline: auto; }
}

/* ---------- Edizioni: materiale con le proporzioni originali, mai ritagliato ---------- */
.jtwia-fondi-edizione .elementor-widget-image img { display: block; width: 100%; max-width: 100%; height: auto; }
.jtwia-fondi-edizione .elementor-container:is(.elementor-inner-section > .elementor-container, :has(> .elementor-column ~ .elementor-column)) > .elementor-column:has(.elementor-heading-title:empty) > .elementor-widget-wrap {
	min-height: clamp(16rem, 34vw, 27.5rem); background-size: contain; background-repeat: no-repeat; background-position: center top;
}
.jtwia-fondi-edizione .elementor-widget-video .elementor-wrapper { aspect-ratio: 16 / 9; }

/* ---------- Edizioni: testi e pulsanti ---------- */
.jtwia-fondi-edizione .elementor-widget-text-editor {
	font-family: "Figtree", system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.6; color: var(--jtwia-fondi-ink); max-width: 46rem;
}
.jtwia-fondi-edizione .elementor-widget-text-editor p { margin: 0 0 0.85em; }
/* testi incollati con stili in linea (Arial, grigio, corpo diverso): si annullano solo carattere, colore e corpo; grassetto, corsivo e contenuto restano */
.jtwia-fondi-edizione .elementor-widget-text-editor [style] { font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; }
.jtwia-fondi-edizione .elementor-widget-text-editor strong,
.jtwia-fondi-edizione .elementor-widget-text-editor b { color: var(--jtwia-fondi-plum) !important; font-weight: 700; }
.jtwia-fondi-edizione .elementor-widget-button { margin-top: 1.25rem; }
.jtwia-fondi-edizione .elementor-widget-button .elementor-button-wrapper { text-align: left; }
.jtwia-fondi-edizione .elementor-widget-button .elementor-button {
	padding: 0.75rem 1.5rem; border-radius: 999px; font-family: "Figtree", system-ui, sans-serif; font-weight: 700; font-size: 1rem;
	color: #fff; background: var(--jtwia-fondi-magenta-deep);
}
.jtwia-fondi-edizione .elementor-widget-button .elementor-button:hover,
.jtwia-fondi-edizione .elementor-widget-button .elementor-button:focus-visible { background: var(--jtwia-fondi-plum); color: #fff; }

/* ==========================================================================
   Visite gratuite · pulsanti dei tre giorni (Schede annidate) — tema 0.3.8
   Solo dentro .jtwia-visite-giorni (classe del widget Schede annidate) e .jtwia-visite-giorni-sez (contenitore
   esterno). Non tocca le tabelle di TablePress (il loro CSS sta in TablePress, classe jtwia-visite-table).
   Selettori verificati nel sorgente di Elementor v4.0.8 (nested-tabs.php); NON provati nello staging.
   ========================================================================== */
.jtwia-visite-giorni-sez {
	width: 100%; max-width: 76rem; margin-inline: auto; box-sizing: border-box;
	padding: 2.5rem clamp(1rem, 4vw, 2rem) 3rem;
}

/* pulsanti sempre in riga, a larghezza uguale, testo a capo se serve (anche su telefono con Breakpoint «Nessuno») */
.jtwia-visite-giorni .e-n-tabs-heading {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem;
	width: 100%; margin: 0 0 1.25rem; overflow: visible;
}
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title {
	min-width: 0; justify-content: center; text-align: center; white-space: normal; overflow-wrap: anywhere;
	padding: 0.75rem 0.5rem; border: 2px solid #2a0e24; border-radius: 0.5rem;
	background: #fff; color: #2a0e24; font-weight: 700; line-height: 1.2; cursor: pointer;
}
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title:hover { background: #fce8f1; }

/* giorno attivo: fondo pieno magenta scuro e testo bianco (5,4:1), riconoscibile anche senza il colore */
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] {
	background: #c41f69; border-color: #c41f69; color: #fff;
}
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] .e-n-tab-title-text { color: inherit; }
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title:focus-visible { outline: 3px solid #2a0e24; outline-offset: 2px; }

/* area unica dei contenuti: nessuno scorrimento orizzontale della pagina (le tabelle scorrono da sole) */
.jtwia-visite-giorni .e-n-tabs-content { width: 100%; min-width: 0; }
.jtwia-visite-giorni .e-n-tabs-content > .e-con { min-width: 0; max-width: 100%; padding-inline: 0; }

@media (max-width: 767px) {
	.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title { font-size: 0.875rem; padding: 0.65rem 0.35rem; }
}

/* --- Visite gratuite · sfondo dei giorni (tema 0.3.9) -------------------------------------------------------------
   Il widget Schede annidate emette per lo stato attivo e hover il colore globale «accent» (verde nello staging) con
   selettore {{WRAPPER}}.elementor-widget-n-tabs > .e-n-tabs > .e-n-tabs-heading > .e-n-tab-title[...] preceduto da
   .elementor-<id pagina> .elementor-element-<id widget>: otto classi, non raggiungibili da un selettore del tema senza
   id. !important SOLO su `background`, la proprieta' che quella regola dichiara; limitato a .jtwia-visite-giorni. */
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title[aria-selected="true"] { background: #c41f69 !important; }
.jtwia-visite-giorni .e-n-tabs-heading .e-n-tab-title[aria-selected="false"]:hover { background: #fce8f1 !important; }

/* ==========================================================================
   Percorsi temporanei e permanenti · presentazione delle schede (Fisarmonica) — tema 0.3.10
   Aggancio: la testata della pagina ha la classe jtwia-percorsi-testata (nel JSON); la sezione con la Fisarmonica la
   segue. Nessuna classe da aggiungere a mano. Il widget Fisarmonica, i testi, le mappe e i nomi restano quelli della
   pagina (nessuna immagine ricaricata, nessun ritaglio). Markup: .elementor-accordion-item > .elementor-tab-title +
   .elementor-tab-content (con .cus-acc-row > .cus-acc-text + .cus-acc-img); sezione 20506/20508 letta dal sorgente pubblico.
   !important solo sulla larghezza della sezione (come fa già jtwia-base.css per le sezioni del sito: il contenitore
   «boxed» di Elementor imposta il proprio max-width).
   ========================================================================== */
.jtwia-percorsi-testata ~ .elementor-section {
	--jtwia-pe-plum: #2a0e24; --jtwia-pe-magenta: #e02d7f; --jtwia-pe-magenta-deep: #c41f69; --jtwia-pe-line: rgba(42, 14, 36, 0.16);
}
.jtwia-percorsi-testata ~ .elementor-section > .elementor-container {
	width: min(100% - 2 * var(--jtwia-gutter, 1rem), 76rem) !important; max-width: none !important;
}
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion { padding: 2.5rem 0 4rem; }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion { border-top: 2px solid var(--jtwia-pe-magenta); }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--jtwia-pe-line); }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-title {
	display: flex; align-items: center; gap: 0.75rem; padding: 1.05rem 0.25rem; border: 0; cursor: pointer;
}
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion-icon { flex: none; width: auto; margin: 0; color: var(--jtwia-pe-magenta-deep); }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion-title {
	font-family: "Figtree", system-ui, sans-serif; font-weight: 700; font-size: 1.0625rem; line-height: 1.3;
	color: var(--jtwia-pe-plum); text-decoration: none; overflow-wrap: anywhere;
}
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-title:hover .elementor-accordion-title { color: var(--jtwia-pe-magenta-deep); }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-title.elementor-active .elementor-accordion-title,
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-title.elementor-active .elementor-accordion-icon { color: var(--jtwia-pe-magenta-deep); }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-title:focus-visible { outline: 3px solid var(--jtwia-pe-plum); outline-offset: 2px; }
/* .elementor-accordion in più: la pagina imposta il colore del testo con .elementor-<id> .elementor-element-<id> .elementor-tab-content (4 classi) */
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion .elementor-tab-content {
	border: 0; padding: 0.25rem 0.25rem 1.75rem; color: var(--jtwia-pe-plum);
	font-family: "Figtree", system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.6;
}
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-content p { margin: 0 0 0.85em; }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-content p:last-child { margin-bottom: 0; }
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-content strong { color: var(--jtwia-pe-plum); }
/* testo a sinistra e mappa a destra; la mappa mantiene la propria dimensione e non si ritaglia (altezza automatica) */
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .cus-acc-row {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem 2.5rem; align-items: start; max-width: 62rem;
}
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .cus-acc-img img,
.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-tab-content > img { max-width: 100%; height: auto; object-fit: contain; display: block; }
@media (max-width: 767px) {
	.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .cus-acc-row { grid-template-columns: minmax(0, 1fr); }
	.jtwia-percorsi-testata ~ .elementor-section .elementor-widget-accordion .elementor-accordion-title { font-size: 1rem; }
}

/* ==========================================================================
   Staff · griglia delle persone (widget Immagine+titolo esistenti) — tema 0.3.11
   Aggancio: la testata della pagina ha la classe jtwia-staff-testata (nel JSON); le tre sezioni con le dodici persone la
   seguono. Nessuna classe da aggiungere a mano. Nomi, ruoli e fotografie restano quelli della pagina (nessuna immagine
   ricaricata). La pagina imposta per ogni widget (id) carattere Roboto, raggio 80px e larghezza 80%: selettori con 6 classi
   per prevalere senza !important. !important solo sulla larghezza del contenitore (come jtwia-base.css).
   Quattro colonne su desktop e tablet, due su telefono; ritratti tondi quadrati con fondo rosa tenue (utile per i PNG
   con trasparenza), ritaglio al centro-alto solo per le differenze di pochi pixel tra le fotografie.
   ========================================================================== */
.jtwia-staff-testata ~ .elementor-section.elementor-element.elementor-top-section { margin: 0; padding: 2.5rem 0 0; }
.jtwia-staff-testata + .elementor-section.elementor-element.elementor-top-section { padding-top: 3.5rem; }
.jtwia-staff-testata ~ .elementor-section.elementor-element.elementor-top-section:last-of-type { padding-bottom: 4.5rem; }
.jtwia-staff-testata ~ .elementor-section > .elementor-container {
	width: min(100% - 2 * var(--jtwia-gutter, 1rem), 76rem) !important; max-width: none !important;
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 1.75rem;
}
.jtwia-staff-testata ~ .elementor-section > .elementor-container > .elementor-column { width: auto; min-width: 0; }
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-wrap { padding: 0; }
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-wrapper { text-align: center; }
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-wrapper .elementor-image-box-img {
	width: min(100%, 13rem); margin: 0 auto 1rem;
}
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-wrapper .elementor-image-box-img img {
	display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; object-fit: cover; object-position: center 20%;
	border-radius: 50%; background: #fce8f1;
}
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-content .elementor-image-box-title {
	margin: 0 0 0.3rem; font-family: "Figtree", system-ui, sans-serif; font-weight: 700; font-size: 1.125rem; line-height: 1.25;
	color: #2a0e24; text-wrap: balance;
}
.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-content .elementor-image-box-description {
	margin: 0; font-family: "Figtree", system-ui, sans-serif; font-weight: 500; font-size: 1rem; line-height: 1.35; color: #5a4455;
}
@media (max-width: 767px) {
	.jtwia-staff-testata ~ .elementor-section > .elementor-container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
	.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-content .elementor-image-box-title { font-size: 1rem; }
	.jtwia-staff-testata ~ .elementor-section .elementor-column .elementor-widget-image-box .elementor-image-box-content .elementor-image-box-description { font-size: 0.9375rem; }
}

/* ==========================================================================
   Rete (/rete-2/): griglia uniforme dei loghi (tema 0.3.12, 31 ottobre 2026).
   Nessuna modifica di struttura in Elementor: le regole valgono SOLO nel contenitore che ha come figli diretti sezioni .jtwia-rete
   (i titoli delle categorie della pagina Rete); le altre pagine non le incontrano (la pagina Green usa solo .jtwia-rete__row, che qui
   non è un aggancio). Non valgono nell'editor di Elementor (body.elementor-editor-active): lì resta l'aspetto del contenuto.
   - Il contenitore diventa una griglia a 6 colonne (3 fino a 1024 px, 2 fino a 767 px), larga come il contenuto del tema (76rem, margini fluidi).
   - Le sezioni .jtwia-section (testata, introduzione, titoli, categorie costruite a mano) occupano tutte le colonne e restano a tutta larghezza
     (margine con 100cqw: nessuno scorrimento orizzontale).
   - Le righe di loghi (sezioni di primo livello senza .jtwia-section) non sono più righe: le loro colonne diventano celle in sequenza, nell'ordine attuale.
     Le categorie costruite a mano (.jtwia-rete__row, celle 16,667 / 33,333 / 50 %) conservano le loro colonne e prendono solo la stessa scatola per il logo.
   - Ogni logo sta in una scatola W x H centrata, object-fit: contain (nessun ritaglio né deformazione). Valori di partenza da verificare con i loghi veri:
     --rete-logo-w/--rete-logo-h (150 x 62 px; 124 x 54 px su mobile).
   Ipotesi sul markup reale (da controllare nello staging): (1) le sezioni di primo livello sono figli diretti del contenitore della pagina;
   (2) in ogni riga le colonne sono figli diretti di .elementor-container. Se non valgono, la pagina resta come prima. Richiede :has() e cqw (2023+).
   !important solo su larghezza, altezza, raggio e margini del widget Immagine: sono scritti da Elementor nel CSS della pagina con specificità più alta.
   ========================================================================== */
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) {
	--rete-cols: 6;
	--rete-gutter: clamp(1rem, 4vw, 2.5rem);
	--rete-logo-w: 150px;
	--rete-logo-h: 62px;
	--rete-cell-h: 84px;
	--rete-cell-pad: 10px 8px;
	container-type: inline-size;
	display: grid;
	grid-template-columns: repeat(var(--rete-cols), minmax(0, min(76rem / var(--rete-cols), (100% - 2 * var(--rete-gutter)) / var(--rete-cols))));
	justify-content: center;
	row-gap: 0;
}
@media (max-width: 1024px) {
	body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) { --rete-cols: 3; }
}
@media (max-width: 767px) {
	body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) { --rete-cols: 2; --rete-logo-w: 124px; --rete-logo-h: 54px; --rete-cell-h: 76px; --rete-cell-pad: 8px 6px; }
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) > .elementor-top-section.jtwia-section {
	grid-column: 1 / -1;
	margin-inline: calc((100% - 100cqw) / 2);
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) > .elementor-top-section:not(.jtwia-section),
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) > .elementor-top-section:not(.jtwia-section) > .elementor-container {
	display: contents;
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) > .elementor-top-section:not(.jtwia-section) > .elementor-container > .elementor-column {
	width: auto; max-width: none; min-width: 0; min-height: var(--rete-cell-h); margin: 0; padding: var(--rete-cell-pad);
	box-sizing: border-box; display: flex; align-items: center; justify-content: center;
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) .elementor-column > .elementor-widget-wrap {
	padding: 0; width: 100%; justify-content: center; align-items: center; align-content: center;
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) .elementor-widget-image { width: 100% !important; max-width: 100% !important; margin: 0 !important; }
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) .elementor-widget-image > .elementor-widget-container {
	margin: 0 !important; padding: 0 !important; display: flex; justify-content: center; align-items: center;
}
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) .elementor-widget-image a { display: block; line-height: 0; }
body:not(.elementor-editor-active) :has(> .elementor-top-section.jtwia-rete) .elementor-widget-image img {
	width: auto !important; height: auto !important;
	max-width: min(var(--rete-logo-w), 100%) !important; max-height: var(--rete-logo-h) !important;
	object-fit: contain !important; border-radius: 0 !important; display: block; margin: 0 auto;
}

/* ==========================================================================
   Modulo WPForms 19609 della pagina Aziende sostenitrici (tema 0.3.14, 30 ottobre 2026).
   Solo aspetto, agganciato alla classe `jtwia-modulo` assegnata in Elementor (Avanzate -> Classi CSS) alla sezione che contiene il modulo:
   senza la classe non cambia nulla e le altre pagine e gli altri moduli non sono toccati. Nessun campo, notifica, destinatario, consenso,
   antispam o impostazione di WPForms viene modificato o nascosto (anche il campo «Nome Nome Nome» resta com'e').
   Scritto sul markup reale (WPForms Modern, tema «Classic (Copia)»); nessun !important.
   Contrasti: testo #2a0e24 su bianco; bordo campi #7a6575 (circa 5:1); errore #a61b1b (circa 7:1); pulsante bianco su #c41f69 (5,4:1).
   ========================================================================== */
.jtwia-modulo {
	--jtwia-mod-plum: #2a0e24;
	--jtwia-mod-magenta: #c41f69;
	--jtwia-mod-blush: #fce8f1;
	--jtwia-mod-soft: #5a4455;
	--jtwia-mod-border: #7a6575;
	--jtwia-mod-error: #a61b1b;
}
.jtwia-modulo div.wpforms-container-full {
	margin: 0; max-width: 46rem; font-family: "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-plum);
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-container { display: block; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field { padding: 0 0 1.375rem; margin: 0; }

/* Etichette e sottoetichette */
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-label {
	display: block; margin: 0 0 0.4375rem; font: 700 1rem/1.3 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-plum);
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-required-label { color: var(--jtwia-mod-magenta); font-weight: 700; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-sublabel,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-description {
	margin: 0.375rem 0 0; font: 400 0.875rem/1.4 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-soft);
}

/* Campi di testo, e-mail, menu e area di testo: tutti a tutta larghezza, stessa altezza e stesso bordo */
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="text"],
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="email"],
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="tel"],
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="url"],
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="number"],
.jtwia-modulo div.wpforms-container-full .wpforms-form select,
.jtwia-modulo div.wpforms-container-full .wpforms-form textarea {
	display: block; box-sizing: border-box; width: 100%; max-width: 100%; min-height: 3rem; padding: 0.75rem 1rem;
	font: 400 1rem/1.4 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-plum); background: #fff;
	border: 1.5px solid var(--jtwia-mod-border); border-radius: 0.5rem; box-shadow: none;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form textarea { min-height: 9rem; resize: vertical; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-small,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-medium,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-large { max-width: 100%; width: 100%; }
.jtwia-modulo div.wpforms-container-full .wpforms-form input::placeholder,
.jtwia-modulo div.wpforms-container-full .wpforms-form textarea::placeholder { color: #6f5a6a; opacity: 1; }
.jtwia-modulo div.wpforms-container-full .wpforms-form input:focus,
.jtwia-modulo div.wpforms-container-full .wpforms-form select:focus,
.jtwia-modulo div.wpforms-container-full .wpforms-form textarea:focus {
	border-color: var(--jtwia-mod-magenta); box-shadow: 0 0 0 3px rgba(196, 31, 105, 0.25); outline: 2px solid transparent;
}

/* Campi doppi (nome e cognome): due colonne, una sotto l'altra sui mobile stretti.
   Nel markup reale la riga contiene anche due pseudo-elementi (:before/:after) che con un `gap` creano spazi in più: la distanza si ottiene col padding dei blocchi. */
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row { display: flex; flex-wrap: wrap; gap: 0; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row .wpforms-field-row-block { flex: 0 0 50%; width: 50%; box-sizing: border-box; padding: 0 0.5rem; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row .wpforms-field-row-block:first-child { padding-left: 0; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row .wpforms-field-row-block:last-child { padding-right: 0; }
@media (max-width: 480px) {
	.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row .wpforms-field-row-block { flex-basis: 100%; width: 100%; padding: 0; }
	.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-row .wpforms-field-row-block:not(:last-child) { margin-bottom: 1rem; }
}

/* Consenso: WPForms Modern disegna la casella con pseudo-elementi (:before/:after) e colori presi dalle sue variabili, quindi qui si agisce su quelli.
   Dimensioni, bordo e colore di selezione seguono il resto del modulo. */
.jtwia-modulo div.wpforms-container-full .wpforms-form ul { margin: 0; padding: 0; list-style: none; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-checkbox li,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox li { display: flex; align-items: flex-start; gap: 0; margin: 0; padding: 0; }
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"] { flex: 0 0 auto; margin: 0.1875rem 0 0 0.125rem; }
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"]:before {
	width: 1.125rem; height: 1.125rem; border: 1.5px solid var(--jtwia-mod-border); border-radius: 0.25rem; background-color: #fff;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"]:checked:before { border-color: var(--jtwia-mod-magenta); background-color: #fff; box-shadow: none; }
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"]:checked:after { border-left-color: var(--jtwia-mod-magenta); border-bottom-color: var(--jtwia-mod-magenta); }
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"]:focus:before { border-color: var(--jtwia-mod-magenta); box-shadow: 0 0 0 3px rgba(196, 31, 105, 0.25); }
.jtwia-modulo div.wpforms-container-full .wpforms-form input[type="checkbox"] + label.wpforms-field-label-inline { padding-inline-start: 0.875rem; }
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-label-inline {
	display: block; margin: 0; font: 400 1rem/1.5 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-plum);
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-label-inline a,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field-description a { color: var(--jtwia-mod-magenta); font-weight: 700; text-underline-offset: 0.18em; }

/* Pulsante: come i pulsanti del sito (a pillola, magenta scuro, prugna al passaggio) */
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container { padding: 0.25rem 0 0; margin: 0; }
.jtwia-modulo div.wpforms-container-full .wpforms-form button.wpforms-submit,
.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-submit {
	display: inline-block; box-sizing: border-box; min-height: 3rem; padding: 0.875rem 1.75rem; border: 0; border-radius: 999px;
	font: 700 1.0625rem/1.2 "Figtree", system-ui, sans-serif; color: #fff; background: var(--jtwia-mod-magenta); cursor: pointer;
	transition: background-color 0.15s;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form button.wpforms-submit:hover,
.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-submit:hover { background: var(--jtwia-mod-plum); color: #fff; }
.jtwia-modulo div.wpforms-container-full .wpforms-form button.wpforms-submit:focus-visible,
.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-submit:focus-visible { outline: 3px solid var(--jtwia-mod-magenta); outline-offset: 3px; }

/* Errori di compilazione e conferma di invio */
.jtwia-modulo div.wpforms-container-full .wpforms-form label.wpforms-error,
.jtwia-modulo div.wpforms-container-full .wpforms-form em.wpforms-error {
	display: block; margin: 0.375rem 0 0; font: 700 0.9375rem/1.35 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-error);
}
.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-error,
.jtwia-modulo div.wpforms-container-full .wpforms-form textarea.wpforms-error,
.jtwia-modulo div.wpforms-container-full .wpforms-form select.wpforms-error { border-color: var(--jtwia-mod-error); }
.jtwia-modulo div.wpforms-container-full .wpforms-confirmation-container-full,
.jtwia-modulo div.wpforms-container-full .wpforms-confirmation-container {
	margin: 0; padding: 1rem 1.25rem; font: 400 1.0625rem/1.5 "Figtree", system-ui, sans-serif; color: var(--jtwia-mod-plum);
	background: var(--jtwia-mod-blush); border: 0; border-left: 4px solid var(--jtwia-mod-magenta); border-radius: 0.5rem;
}

/* Mobile: pulsante a tutta larghezza, campi più comodi */
@media (max-width: 767px) {
	.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-field { padding-bottom: 1.125rem; }
	.jtwia-modulo div.wpforms-container-full .wpforms-form button.wpforms-submit,
	.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-submit { display: block; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.jtwia-modulo div.wpforms-container-full .wpforms-form button.wpforms-submit,
	.jtwia-modulo div.wpforms-container-full .wpforms-form input.wpforms-submit { transition: none; }
}

/* ==========================================================================
   Elenco del Blog (tema 0.3.15, 30 ottobre 2026) (/news/), widget Posts (Elementor Pro, skin Cards).
   Accodato a jtwia-components.css nella versione 0.3.15 (parte dalla 0.3.14). Sorgente di lavoro: pagine-interne/blog/jtwia-blog.css (identico).
   AGGANCIO: la classe `jtwia-blog`, da assegnare in Elementor (Avanzate -> Classi CSS) alla SEZIONE che contiene il widget Posts (insieme a `jtwia-section`).
   I selettori partono da `.jtwia-blog .elementor-posts-container` per prevalere sulle regole di Elementor Pro senza !important. Senza la classe non cambia nulla; altre pagine e altri elenchi non sono toccati. Nessun articolo, filtro, ordinamento, numero di articoli o
   paginazione viene cambiato: solo l'aspetto. Il widget resta dinamico.
   I selettori sono quelli del markup REALE del widget (riferimento/elenco-blog.txt, staging, 30 ottobre 2026): scheda .elementor-post__card, immagine,
   badge della categoria, testo, data (fuori dal testo), paginazione .elementor-pagination. Nessun !important tranne il riempimento del rapporto dell'immagine.
   ========================================================================== */
.jtwia-blog { --jtwia-blog-line: rgba(42, 14, 36, 0.2); }

/* Elenco: una riga per articolo (immagine a sinistra, testo a destra) invece di una griglia di schede */
.jtwia-blog .elementor-posts-container.elementor-grid { grid-template-columns: minmax(0, 1fr); grid-row-gap: 0; grid-column-gap: 0; row-gap: 0; column-gap: 0; }
.jtwia-blog .elementor-posts-container .elementor-post__card {
	display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); grid-template-rows: auto 1fr; column-gap: 2rem; align-content: start;
	position: relative; margin: 0; padding: 1.75rem 0; background: transparent; border: 0; border-top: 1.5px solid var(--jtwia-blog-line); border-radius: 0; box-shadow: none; overflow: visible;
}
.jtwia-blog .elementor-posts-container .elementor-post:last-child .elementor-post__card { border-bottom: 1.5px solid var(--jtwia-blog-line); }

/* Immagine: proporzione 3:2 costante, angoli piccoli */
.jtwia-blog .elementor-posts-container .elementor-post__thumbnail__link { grid-column: 1; grid-row: 1 / span 3; display: block; margin: 0; border-radius: 0.375rem; overflow: hidden; align-self: start; }
.jtwia-blog .elementor-posts-container .elementor-post__thumbnail { position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 0.375rem; padding-bottom: 0 !important; }
.jtwia-blog .elementor-posts-container.elementor-grid .elementor-post__thumbnail img { position: absolute; inset: 0; top: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transform: none; }

/* Categoria (nel markup reale: un badge con il nome della categoria, oggi «JTWIA» su tutti gli articoli): piccola etichetta sull'immagine */
.jtwia-blog .elementor-posts-container .elementor-post__card .elementor-post__badge {
	position: absolute; top: 2.5rem; left: 0.75rem; right: auto; bottom: auto; margin: 0; padding: 0.25rem 0.625rem; z-index: 1;
	font: 700 0.75rem/1.2 "Figtree", system-ui, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; background: var(--jtwia-magenta-deep, #c41f69); border-radius: 999px;
}

/* Articolo senza immagine (nel markup reale la scheda con immagine ha la classe has-post-thumbnail): testo a tutta larghezza, senza colonna vuota */
.jtwia-blog .elementor-posts-container .elementor-post:not(.has-post-thumbnail) .elementor-post__card { grid-template-columns: minmax(0, 1fr); }
.jtwia-blog .elementor-posts-container .elementor-post:not(.has-post-thumbnail) .elementor-post__meta-data,
.jtwia-blog .elementor-posts-container .elementor-post:not(.has-post-thumbnail) .elementor-post__text { grid-column: 1; }

/* Data sopra il titolo, poi titolo, anteprima e collegamento */
.jtwia-blog .elementor-posts-container .elementor-post__meta-data {
	grid-column: 2; grid-row: 1; margin: 0 0 0.5rem; padding: 0; border: 0;
	font: 700 0.8125rem/1.3 "Figtree", system-ui, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--jtwia-ink-soft, #5a4455);
}
.jtwia-blog .elementor-posts-container .elementor-post__text { grid-column: 2; grid-row: 2; padding: 0; margin: 0; }
.jtwia-blog .elementor-posts-container .elementor-post__title { overflow-wrap: anywhere; margin: 0 0 0.75rem; font: 800 1.875rem/1.02 "Barlow Condensed", sans-serif; text-transform: uppercase; color: var(--jtwia-plum, #2a0e24); }
.jtwia-blog .elementor-posts-container .elementor-post__title a { color: inherit; text-decoration: none; }
.jtwia-blog .elementor-posts-container .elementor-post__title a:hover { color: var(--jtwia-magenta-deep, #c41f69); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.18em; }
.jtwia-blog .elementor-posts-container .elementor-post__excerpt { margin: 0 0 1rem; }
.jtwia-blog .elementor-posts-container .elementor-post__excerpt p {
	margin: 0; font: 400 1.0625rem/1.55 "Figtree", system-ui, sans-serif; color: var(--jtwia-plum, #2a0e24);
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.jtwia-blog .elementor-posts-container .elementor-post__read-more {
	display: inline-block; font: 700 1rem/1.3 "Figtree", system-ui, sans-serif; color: var(--jtwia-magenta-deep, #c41f69);
	text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em;
}
.jtwia-blog .elementor-posts-container .elementor-post__read-more:hover { color: var(--jtwia-plum, #2a0e24); }
.jtwia-blog .elementor-posts-container .elementor-post__thumbnail__link:focus-visible,
.jtwia-blog .elementor-posts-container .elementor-post__title a:focus-visible,
.jtwia-blog .elementor-posts-container .elementor-post__read-more:focus-visible { outline: 3px solid var(--jtwia-magenta-deep, #c41f69); outline-offset: 3px; }

/* Paginazione numerica (testo «Precedente» / «Successivo» e numeri invariati) */
.jtwia-blog .elementor-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; margin: 2.5rem 0 0; font-family: "Figtree", system-ui, sans-serif; }
.jtwia-blog .elementor-pagination .page-numbers {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2.75rem; min-height: 2.75rem; margin: 0; padding: 0 0.875rem; box-sizing: border-box;
	font: 700 1rem/1 "Figtree", system-ui, sans-serif; color: var(--jtwia-plum, #2a0e24); text-decoration: none; background: transparent;
	border: 1.5px solid var(--jtwia-plum, #2a0e24); border-radius: 999px;
}
.jtwia-blog .elementor-pagination a.page-numbers:hover { color: #fff; background: var(--jtwia-plum, #2a0e24); }
.jtwia-blog .elementor-pagination .page-numbers.current { color: #fff; background: var(--jtwia-magenta-deep, #c41f69); border-color: var(--jtwia-magenta-deep, #c41f69); }
.jtwia-blog .elementor-pagination .page-numbers.dots { border-color: transparent; min-width: 1.5rem; padding: 0; }
.jtwia-blog .elementor-pagination a.page-numbers:focus-visible { outline: 3px solid var(--jtwia-magenta-deep, #c41f69); outline-offset: 3px; }

/* Tablet: immagine più stretta */
@media (max-width: 1024px) {
	.jtwia-blog .elementor-posts-container .elementor-post__card { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: 1.5rem; }
	.jtwia-blog .elementor-posts-container .elementor-post__title { font-size: 1.625rem; }
}
/* Mobile: immagine sopra, testo sotto */
@media (max-width: 767px) {
	.jtwia-blog .elementor-posts-container .elementor-post__card { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; padding: 1.5rem 0; }
	.jtwia-blog .elementor-posts-container .elementor-post__thumbnail__link,
	.jtwia-blog .elementor-posts-container .elementor-post__meta-data,
	.jtwia-blog .elementor-posts-container .elementor-post__text { grid-column: 1; }
	.jtwia-blog .elementor-posts-container .elementor-post__thumbnail__link { grid-row: 1; }
	.jtwia-blog .elementor-posts-container .elementor-post__meta-data { grid-row: 2; }
	.jtwia-blog .elementor-posts-container .elementor-post__text { grid-row: 3; }
	.jtwia-blog .elementor-posts-container .elementor-post__thumbnail__link { margin-bottom: 1rem; }
	.jtwia-blog .elementor-posts-container .elementor-post__title { font-size: 1.5rem; }
	.jtwia-blog .elementor-posts-container .elementor-post__card .elementor-post__badge { top: 2.25rem; }
	.jtwia-blog .elementor-pagination { gap: 0.375rem; }
	.jtwia-blog .elementor-pagination .page-numbers { min-width: 2.5rem; min-height: 2.5rem; padding: 0 0.625rem; }
}

/* ==========================================================================
   Correzioni dell'audit dello staging (tema 0.3.16, 2 novembre 2026; parte dalla 0.3.15).
   Solo regole aggiunte qui in coda: nessuna riga precedente modificata o tolta (griglia di Rete,
   Blog, modulo, hero e testate restano come nella 0.3.15). Nessun !important.
   ========================================================================== */

/* A11 · Pulsante «Invia» del modulo WPForms 19609 (Aziende sostenitrici), aggancio `jtwia-modulo`.
   Causa riscontrata nello staging: WPForms si carica DOPO il tema e colora il pulsante con
   `div.wpforms-container-full button[type=submit]:not(:hover):not(:active)` (stessa specificità
   delle regole della 0.3.14, quindi vince l'ordine), leggendo le variabili che il widget WPForms
   scrive nella pagina (#dddddd e #666666). Doppia correzione, indipendente dall'ordine dei fogli:
   1. le stesse variabili, ridefinite sul contenitore del modulo (che sta dentro il widget, quindi le
      eredità del widget non arrivano più: vince l'elemento più vicino, non la specificità);
   2. selettori più specifici di quelli di WPForms per lo stato normale, il passaggio e il focus. */
.jtwia-modulo div.wpforms-container-full {
	--wpforms-button-background-color: var(--jtwia-mod-magenta);
	--wpforms-button-background-color-alt: var(--jtwia-mod-magenta);
	--wpforms-button-border-color: var(--jtwia-mod-magenta);
	--wpforms-button-text-color: #fff;
	--wpforms-button-text-color-alt: #fff;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"],
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"]:not(:hover):not(:active) {
	color: #fff; background: var(--jtwia-mod-magenta); border: 0;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"]:hover,
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"]:active {
	color: #fff; background: var(--jtwia-mod-plum);
}
/* Focus: il contorno della 0.3.14 resta; si toglie solo la cornice disegnata da WPForms con :after,
   che si sovrapporrebbe al contorno. */
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"]:focus-visible {
	outline: 3px solid var(--jtwia-mod-magenta); outline-offset: 3px;
}
.jtwia-modulo div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit[type="submit"]:focus:after { content: none; }

/* R4 · Focus da tastiera sui sei titoli-collegamento della Home (righe `jtwia-linkrow`: «Sono una persona»,
   «Siamo un gruppo», «Partecipa anche il mio pet», «Scuole», «Comuni e percorsi accreditati»,
   «Aziende sostenitrici»). Nella 0.3.15 il contorno della riga è disegnato all'interno (-3px) e, dato che
   la riga non ha margine interno a sinistra, si sovrappone alla prima lettera di titolo e testo.
   Ora il contorno sta fuori dalla riga e, solo con la tastiera, il titolo si sottolinea: due segnali,
   uno dei quali non dipende dal colore. Stesso colore della 0.3.15 (bianco sul prugna, magenta sul rosa). */
.jtwia-section .jtwia-linkrow:focus-within { outline-offset: 0.375rem; }
.jtwia-section .jtwia-linkrow .elementor-heading-title a:focus-visible {
	outline: 0; text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.14em;
}

/* ==========================================================================
   Privacy Policy e Cookie Policy (tema 0.3.17, 2 novembre 2026; parte dalla 0.3.16).
   Solo regole aggiunte in coda, nessuna riga precedente modificata. Nessun !important.
   DOPPIO AGGANCIO: la classe del corpo della pagina (jtwia-page-privacy-policy / jtwia-page-cookie-policy, scritta dal tema in base allo slug)
   E la classe `jtwia-policy` della sezione (template export-elementor/policy/). Fuori da queste due pagine, e fuori dalla sezione, nessun effetto:
   banner dei cookie (fuori dal contenuto), modulo di Aziende, Blog e griglia di Rete non sono toccati.
   Spaziature, bordi tra i punti, colori e dimensioni dei testi sono controlli nativi nei JSON; qui solo elenchi, collegamenti, indice,
   misura di lettura e il documento generato da Complianz (che usa selettori su #cmplz-document: per questo l'ID compare anche qui).
   ========================================================================== */
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy {
	--jtwia-pol-plum: #2a0e24;
	--jtwia-pol-magenta: #c41f69;
	--jtwia-pol-soft: #5a4455;
	--jtwia-pol-line: rgba(42, 14, 36, 0.2);
	overflow-wrap: break-word;
}

/* Testo dei punti (Privacy): misura di lettura, elenchi con rientro e punto magenta, collegamenti riconoscibili */
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__text .elementor-widget-container { max-width: 46rem; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__text strong { color: var(--jtwia-pol-plum); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__text :is(ul, ol) { margin: 0 0 1em; padding-left: 1.4em; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__text li { margin: 0 0 0.45em; padding-left: 0.2em; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__text li::marker { color: var(--jtwia-pol-magenta); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy :is(.jtwia-policy__text, .jtwia-policy__meta) a {
	color: var(--jtwia-pol-magenta); font-weight: 700; text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 0.2em;
}
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy :is(.jtwia-policy__text, .jtwia-policy__meta) a:hover { color: var(--jtwia-pol-plum); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__chapter { scroll-margin-top: calc(6rem + var(--wp-admin--admin-bar--height, 0px)); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__h2 .elementor-heading-title { text-wrap: pretty; }

/* Indice «In questa pagina»: elenco numerato compatto; dal desktop resta in vista durante la lettura */
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc-title {
	margin: 0 0 0.75rem; padding-bottom: 0.75rem; border-bottom: 2px solid var(--jtwia-magenta, #e02d7f);
	font: 800 1.25rem/1 "Barlow Condensed", system-ui, sans-serif; text-transform: uppercase; color: var(--jtwia-pol-plum);
}
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc ol { margin: 0; padding-left: 1.6em; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc li { margin: 0; padding: 0.4rem 0; border-bottom: 1px solid var(--jtwia-pol-line); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc li::marker { color: var(--jtwia-pol-magenta); font-weight: 700; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc a { color: var(--jtwia-pol-plum); font-weight: 400; text-decoration: none; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc a:hover { color: var(--jtwia-pol-magenta); text-decoration: underline; text-underline-offset: 0.2em; }
@media (min-width: 1025px) {
	:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy .jtwia-policy__toc {
		position: sticky; top: calc(7rem + var(--wp-admin--admin-bar--height, 0px)); align-self: flex-start;
	}
}

/* Documento di Complianz (Cookie Policy, shortcode [cmplz-document]): caratteri, colori e misura del sito al posto di quelli del plugin.
   Le tabelle e le righe dei servizi non devono allargare la pagina sui telefoni. Contenuto e funzioni del documento non cambiano. */
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document {
	max-width: 48rem; font-family: "Figtree", system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.65; color: var(--jtwia-pol-soft);
}
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(p, li, td) { font-size: 1.0625rem; line-height: 1.65; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(h2, h3) {
	margin: 2.25rem 0 0.75rem; padding: 0; font: 800 2rem/1 "Barlow Condensed", system-ui, sans-serif; text-transform: uppercase; color: var(--jtwia-pol-plum);
}
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document > :is(h2, h3):first-child { margin-top: 0; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document .cmplz-dropdown summary h3 { margin: 0; font-size: 1.25rem; line-height: 1.1; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(h4, h5) { font-family: "Figtree", system-ui, sans-serif; font-weight: 700; color: var(--jtwia-pol-plum); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document a { color: var(--jtwia-pol-magenta); font-weight: 700; text-underline-offset: 0.2em; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document a:hover { color: var(--jtwia-pol-plum); }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(a, summary, button, input):focus-visible { outline: 3px solid var(--jtwia-pol-magenta); outline-offset: 2px; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document ul { margin-left: 1.25em; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(table, .cookies-per-purpose) { max-width: 100%; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document table { display: block; overflow-x: auto; }
:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document .cookies-per-purpose div { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 767px) {
	:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(h2, h3) { font-size: 1.625rem; }
	:is(.jtwia-page-privacy-policy, .jtwia-page-cookie-policy) .jtwia-policy #cmplz-document :is(p, li, td) { font-size: 1rem; }
}
