/* ==========================================================================
   CancelliAutomaticiVenezia.it — fixes.css  ·  prefisso vca  ·  v1.2
   ULTIMO file della cascata. Qui e solo qui stanno gli override su
   Accelerate 1.5.4, su WordPress e sui plugin.
   --------------------------------------------------------------------------
   I componenti del sito NON stanno qui: vivono in components.css, che
   carica prima. Tenere separati "cosa costruiamo" e "cosa neutralizziamo"
   evita che due regole nostre si annullino a vicenda — che è il modo
   classico in cui un CSS di progetto smette di essere manutenibile.

   La numerazione riparte da 1 sui fix reali di questo tema. Il numero 26
   resta assegnato al single post mass-gen perché il master del mass-gen
   lo chiama per numero: quello non si tocca.

   v1.2 — 30 luglio 2026
     - Blocco 26 PARTE 2: stili degli articoli mass-gen (v3.1)
     - Blocco 27 v2: contenitore proprio e specificita' corretta contro il
       Blocco 8. Nella v1 l'indice restava a tutta larghezza e le sue voci
       avevano due righe sotto, sommando border-bottom e sottolineatura.

   Selettori verificati sul sorgente reale del sito, 30/07/2026.
   ========================================================================== */


/* ==========================================================================
   BLOCCO 1 — Paragrafi parassiti
   wpautop è già disattivato via PHP su pagine e articoli mass-gen. Questa
   è la rete: intercetta i <p> vuoti che restano da copia-incolla e da
   plugin che filtrano il contenuto dopo di noi.
   ========================================================================== */

.entry-content p:empty { display: none !important; }

.entry-content p > br:only-child { display: none; }


/* ==========================================================================
   BLOCCO 2 — Contenitore e larghezze
   Accelerate manda #primary in float con la sidebar accanto. La sidebar è
   spenta dalle opzioni tema, ma il float resta: va azzerato, altrimenti
   il contenuto non si centra.
   ========================================================================== */

#page { overflow-x: hidden; }   /* argine al trucco full-width del blocco 4 */

#main { padding: 0; }

#main > .inner-wrap {
  max-width: none;
  width: auto;
  margin: 0;
  padding: 0;
}

#primary {
  float: none;
  width: 100%;
  margin: 0;
  padding: 0;
}

#content {
  max-width: none;
  margin: 0;
  padding: 0;
}

/* Il contenuto vero si incolonna dentro .vca-container (brand-foundation).
   Questa regola è solo per le PAGINE non ancora convertite: sugli articoli
   mass-gen il contenitore lo dà il blocco 26, e applicarla anche lì
   raddoppierebbe il padding laterale. */
.page .entry-content > *:not([class*='vca-']) {
  max-width: var(--vca-container-max);
  margin-inline: auto;
  padding-inline: var(--vca-container-padding);
}


/* ==========================================================================
   BLOCCO 3 — Elementi del tema da nascondere
   ========================================================================== */

/* Sidebar: già disattivata dalle opzioni tema, ma se qualcuno la riaccende
   per sbaglio il layout non deve rompersi. */
#secondary { display: none !important; }

/* Titolo di pagina del tema.
   ⚠️ .page .entry-header NON si nasconde più da qui: se ne occupa
      content-page.php nel child, che lo stampa solo sulle pagine prive di
      hero (privacy, cookie policy, pagine dei plugin). Nasconderlo via CSS
      lo toglieva alla vista ma non al documento: restavano due H1 in
      sorgente su tutte e undici le pagine.
   ⚠️ Sui singoli articoli l'H1 del tema è l'unico titolo e resta. */
.page .page-title { display: none !important; }

/* Navigazione articolo precedente/successivo */
.default-wp-page,
.post-navigation,
.nav-links { display: none !important; }

/* Barra di ricerca e widget residui nel corpo */
.page .entry-meta { display: none !important; }


/* ==========================================================================
   BLOCCO 4 — Sezioni a tutta larghezza
   Il fondo colorato deve arrivare ai bordi dello schermo, ma il contenuto
   deve restare incolonnato. Si allunga l'ombra ai lati e si taglia
   l'eccedenza verticale con clip-path.
   NON usare 100vw + margin negativo: con la barra di scorrimento visibile
   produce uno scroll orizzontale e rompe il layout.
   ========================================================================== */

.vca-section--full {
  box-shadow: -2000px 0 0 0 var(--vca-fw, transparent),
               2000px 0 0 0 var(--vca-fw, transparent);
  clip-path: inset(0 -2000px);
}

.vca-section--stone.vca-section--full { --vca-fw: var(--vca-stone); }
.vca-section--dark.vca-section--full  { --vca-fw: var(--vca-dark); }
.vca-section--bg.vca-section--full    { --vca-fw: var(--vca-bg); }


/* ==========================================================================
   BLOCCO 5 — Reset del contenuto
   Accelerate applica margini e dimensioni proprie dentro .entry-content.
   ========================================================================== */

.entry-content { margin: 0; }

.entry-content > :first-child { margin-top: 0; }
.entry-content > :last-child  { margin-bottom: 0; }

.entry-content h2 { margin: 2rem 0 0.9rem; }
.entry-content h3 { margin: 1.6rem 0 0.7rem; }
.entry-content p  { margin: 0 0 1.1rem; }

.entry-content ul,
.entry-content ol { margin: 0 0 1.2rem 1.2rem; padding: 0; }

.entry-content li { margin-bottom: 0.45rem; }

/* I nostri elenchi con spunta hanno già il loro marcatore */
.entry-content ul.vca-check { margin-left: 0; }

.entry-content img { max-width: 100%; height: auto; }


/* ==========================================================================
   BLOCCO 6 — Blockquote
   Quasi tutti i temi WordPress vestono le citazioni con fondo colorato e
   testo chiaro. Serve un override blindato, con i selettori replicati a
   specificità crescente: è l'unico punto del file dove !important è
   sistematico, e il motivo è che il tema non lascia alternative.
   ========================================================================== */

.entry-content blockquote.vca-manifesto,
blockquote.vca-manifesto,
.vca-manifesto,
.entry-content blockquote.vca-testimonial,
blockquote.vca-testimonial,
.vca-testimonial {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  quotes: none !important;
}

.entry-content blockquote.vca-manifesto,
blockquote.vca-manifesto,
.vca-manifesto {
  border-left: 4px solid var(--vca-accent) !important;
  color: var(--vca-ink) !important;
  padding: 0 0 0 1.6rem !important;
}

.entry-content blockquote.vca-testimonial,
blockquote.vca-testimonial,
.vca-testimonial {
  border-left: 3px solid var(--vca-accent) !important;
  color: var(--vca-ink) !important;
  padding: 0.2rem 0 0.2rem 1.3rem !important;
}

.vca-manifesto::before,
.vca-manifesto::after,
.vca-testimonial::before,
.vca-testimonial::after { content: none !important; }

.vca-section--dark .vca-manifesto,
.vca-section--dark .vca-testimonial { color: var(--vca-bg) !important; }


/* ==========================================================================
   BLOCCO 7 — Tabelle
   ========================================================================== */

.entry-content table { border-collapse: collapse; width: 100%; }
.entry-content table th,
.entry-content table td { border: none; }
.entry-content table.vca-table th,
.entry-content table.vca-table td { border-bottom: 1px solid var(--vca-stone); }


/* ==========================================================================
   BLOCCO 8 — Link
   Accelerate colora i link con la propria tinta. Nel corpo del testo il
   link è inchiostro sottolineato in teal: si vede, ma non compete con
   i pulsanti, che sono l'unica cosa che deve gridare.
   ========================================================================== */

.entry-content a:not(.vca-btn):not([class*='vca-']) {
  color: var(--vca-ink);
  text-decoration: underline;
  text-decoration-color: var(--vca-accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 3px;
}

.entry-content a:not(.vca-btn):not([class*='vca-']):hover {
  color: var(--vca-accent-hover);
}

.vca-section--dark .entry-content a:not(.vca-btn):not([class*='vca-']),
.vca-section--dark a:not(.vca-btn):not([class*='vca-']) { color: var(--vca-bg); }


/* ==========================================================================
   BLOCCO 9 — Immagini e didascalie di WordPress
   Le classi di allineamento servono agli articoli del mass-gen, che
   inseriscono la foto con class="alignright".
   ========================================================================== */

.alignright {
  float: right;
  margin: 0.4rem 0 1.2rem 1.6rem;
  max-width: 45%;
  border-radius: var(--vca-radius);
}

.alignleft {
  float: left;
  margin: 0.4rem 1.6rem 1.2rem 0;
  max-width: 45%;
  border-radius: var(--vca-radius);
}

.aligncenter { display: block; margin: 1.2rem auto; border-radius: var(--vca-radius); }

.wp-caption { max-width: 100%; }
.wp-caption-text {
  font-size: var(--vca-fs-small);
  color: var(--vca-ink-soft);
  margin-top: 0.4rem;
}

@media (max-width: 640px) {
  .alignright,
  .alignleft {
    float: none;
    max-width: 100%;
    width: 100%;
    margin: 1rem 0;
  }
}


/* ==========================================================================
   BLOCCO 10 — WPForms (⬜ ID modulo da annotare: i selettori non dipendono dall'ID)
   ========================================================================== */

.wpforms-container { margin: 0 !important; max-width: none !important; }

div.wpforms-container-full .wpforms-form .wpforms-field { padding: 0 0 1rem; }

div.wpforms-container-full .wpforms-form label.wpforms-field-label {
  font-family: var(--vca-font-body);
  font-weight: 600;
  font-size: var(--vca-fs-small);
  color: var(--vca-ink);
  margin-bottom: 0.35rem;
}

div.wpforms-container-full .wpforms-form .wpforms-field-description {
  font-size: var(--vca-fs-small);
  color: var(--vca-ink-soft);
  font-style: normal;
}

div.wpforms-container-full .wpforms-form input[type='text'],
div.wpforms-container-full .wpforms-form input[type='email'],
div.wpforms-container-full .wpforms-form input[type='tel'],
div.wpforms-container-full .wpforms-form select,
div.wpforms-container-full .wpforms-form textarea {
  background: var(--vca-bg);
  border: 1px solid var(--vca-ink-soft);
  border-radius: var(--vca-radius);
  color: var(--vca-ink);
  font-family: var(--vca-font-body);
  font-size: 1rem;
  padding: 0.7rem 0.85rem;
  max-width: 100%;
  box-shadow: none;
}

div.wpforms-container-full .wpforms-form input:focus,
div.wpforms-container-full .wpforms-form select:focus,
div.wpforms-container-full .wpforms-form textarea:focus {
  border-color: var(--vca-accent);
  outline: 3px solid var(--vca-accent);
  outline-offset: 1px;
}

div.wpforms-container-full .wpforms-form textarea { min-height: 140px; }

/* Scelta multipla del tipo di intervento */
div.wpforms-container-full .wpforms-form ul li { margin-bottom: 0.35rem; }

/* Pulsante di invio — stesso registro del binario chiamata, in teal */
div.wpforms-container-full .wpforms-form button[type='submit'] {
  background: var(--vca-accent);
  border: 2px solid var(--vca-accent);
  border-radius: var(--vca-radius);
  color: var(--vca-bg);
  font-family: var(--vca-font-body);
  font-size: 1.02rem;
  font-weight: 600;
  padding: 0.85em 1.6em;
  min-height: 48px;
  transition: background-color .15s ease;
}

div.wpforms-container-full .wpforms-form button[type='submit']:hover,
div.wpforms-container-full .wpforms-form button[type='submit']:focus {
  background: var(--vca-accent-hover);
  border-color: var(--vca-accent-hover);
  color: var(--vca-bg);
}

/* Errori e conferma */
div.wpforms-container-full .wpforms-form .wpforms-error {
  color: var(--vca-error);
  font-size: var(--vca-fs-small);
}

div.wpforms-container-full .wpforms-form input.wpforms-error,
div.wpforms-container-full .wpforms-form textarea.wpforms-error {
  border-color: var(--vca-error);
}

div.wpforms-confirmation-container-full {
  background: var(--vca-stone);
  border: none;
  border-left: 3px solid var(--vca-success);
  border-radius: 0 var(--vca-radius) var(--vca-radius) 0;
  color: var(--vca-ink);
  padding: 1.1rem 1.35rem;
}

/* Consenso privacy: la casella va allineata alla prima riga del testo */
div.wpforms-container-full .wpforms-form .wpforms-field-checkbox label {
  font-size: var(--vca-fs-small);
  color: var(--vca-ink-soft);
  line-height: 1.5;
}


/* ==========================================================================
   BLOCCO 11 — Complianz
   Solo colori e forme: la logica del banner non si tocca, è ciò che rende
   valido il consenso.
   ========================================================================== */

#cmplz-cookiebanner-container .cmplz-cookiebanner {
  border-radius: var(--vca-radius);
  border-top: 3px solid var(--vca-accent);
  font-family: var(--vca-font-body);
}

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-header .cmplz-title {
  font-family: var(--vca-font-display);
  font-variation-settings: 'wdth' var(--vca-display-stretch), 'wght' 600;
}

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background: var(--vca-accent);
  border-color: var(--vca-accent);
  color: var(--vca-bg);          /* il teal e' scuro: qui il testo chiaro e' obbligatorio */
  border-radius: var(--vca-radius);
}

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-deny,
#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences {
  background: transparent;
  border-color: var(--vca-ink);
  color: var(--vca-ink);
  border-radius: var(--vca-radius);
}


/* ==========================================================================
   BLOCCO 12 — Commenti
   Disattivati ovunque. Se un tema li stampa comunque, spariscono.
   ========================================================================== */

#comments,
.comments-area,
.comment-respond { display: none !important; }


/* ==========================================================================
   BLOCCO 13 — Ricerca, 404, archivi
   Pagine di servizio: devono essere dignitose, non curate.
   ========================================================================== */

.search-results #content,
.archive #content,
.error404 #content {
  max-width: var(--vca-container-max);
  margin-inline: auto;
  padding: var(--vca-section-y) var(--vca-container-padding);
}

.search-results .entry-title,
.archive .entry-title { font-size: var(--vca-fs-h3); }

.search-results article,
.archive article {
  padding-bottom: 1.4rem;
  margin-bottom: 1.4rem;
  border-bottom: 1px solid var(--vca-stone);
}


/* ==========================================================================
   BLOCCO 14 — Residui di Gutenberg
   Il sito è scritto in HTML classico, ma i widget del footer possono
   ancora essere blocchi.
   ========================================================================== */

.wp-block-group { box-sizing: border-box; }
.wp-block-search__button {
  background: var(--vca-accent);
  border: none;
  border-radius: var(--vca-radius);
  color: var(--vca-bg);
  padding: 0.55rem 0.9rem;
}
.wp-block-search__input {
  border: 1px solid var(--vca-ink-soft);
  border-radius: var(--vca-radius);
  padding: 0.55rem 0.7rem;
}


/* ==========================================================================
   BLOCCO 15 — Stampa
   Capita che un preventivo o una scheda servizio finiscano su carta.
   ========================================================================== */

@media print {
  #masthead,
  #colophon,
  #scroll-up,
  .vca-sticky,
  .vca-hero__bg,
  #cmplz-cookiebanner-container { display: none !important; }

  body { background: #fff; color: #000; padding-bottom: 0; }

  .vca-section--dark,
  .vca-hero {
    background: #fff !important;
    color: #000 !important;
    box-shadow: none !important;
  }

  .vca-section--dark h1, .vca-section--dark h2, .vca-section--dark h3,
  .vca-hero h1 { color: #000 !important; }

  a[href^='http']::after { content: ' (' attr(href) ')'; font-size: 0.8em; }
}


/* ==========================================================================
   BLOCCO 16 — Colore accento del tema padre
   Accelerate usa un verde come colore predefinito: compare sul filo in cima
   alla pagina, sullo sfondo della voce di menu attiva, sui link e sui
   pulsanti. Va spento ovunque, altrimenti convive con il teal del brand.

   ⚠️ Conviene comunque impostare il teal anche in Personalizza → Colori:
   il tema stampa alcune regole in linea, che nascono con priorità più alta
   di questo foglio.
   ========================================================================== */

/* Filo superiore della pagina e bordi dell'header (teal) */
#masthead.site-header,
#header-text-nav-container,
.site-header,
body > .site,
#page {
  border-top-color: var(--vca-accent) !important;
}

/* Voce di menu attiva: niente pastiglia colorata, solo il filo teal sotto */
.main-navigation ul li.current-menu-item > a,
.main-navigation ul li.current_page_item > a,
.main-navigation ul li.current-menu-ancestor > a,
.main-navigation ul li.current_page_ancestor > a,
.main-navigation ul li a:hover,
.main-navigation ul li a:focus,
.main-navigation ul li:hover > a {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--vca-ink) !important;
  border-bottom-color: var(--vca-accent) !important;
}

/* Sottomenu: lì il fondo scuro è voluto, il testo resta chiaro */
.main-navigation ul li ul li a,
.main-navigation ul li ul li a:hover,
.main-navigation ul li ul li.current-menu-item > a {
  background: transparent !important;
  color: var(--vca-bg) !important;
  border-bottom-color: transparent !important;
}

.main-navigation ul li ul li a:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-left-color: var(--vca-accent) !important;
}

/* Link e pulsanti del tema che ereditano il verde */
a { color: var(--vca-ink); }
a:hover { color: var(--vca-accent-hover); }

button,
input[type='submit'],
.btn {
  background-color: var(--vca-accent);
  color: var(--vca-bg);
  border-color: var(--vca-accent);
}

/* Il selettore del menu mobile non deve accendersi di verde */
.main-navigation h3.menu-toggle,
.main-navigation h3.menu-toggle:hover {
  background: transparent !important;
  color: var(--vca-ink) !important;
}


/* ==========================================================================
   BLOCCO 17 — Figure con didascalia nelle pagine
   Le pagine pillar inseriscono le foto come <figure class="wp-block-image">
   con <figcaption>. Il Blocco 9 copre solo le classi di allineamento
   classiche (alignright/alignleft), usate dagli articoli del mass-gen:
   senza queste regole la figure resta senza margini, la foto si stira a
   tutta larghezza del contenitore e la didascalia sembra un paragrafo.

   ⚠️ max-width 800px: le foto sono native 800x600 e ingrandirle le sfoca.
   ========================================================================== */

.entry-content figure.wp-block-image {
  margin: 1.7rem 0 1.9rem;
  max-width: min(800px, 100%);
}

.entry-content figure.wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--vca-radius);
}

.entry-content figure.wp-block-image figcaption {
  font-size: var(--vca-fs-small);
  line-height: 1.5;
  color: var(--vca-ink-soft);
  margin-top: 0.55rem;
  max-width: 68ch;
  text-align: left;   /* Accelerate centra le didascalie: qui no */
}

/* Su fondo scuro la didascalia grigia non si legge */
.vca-section--dark figure.wp-block-image figcaption {
  color: rgba(244, 245, 247, 0.75);
}

/* --------------------------------------------------------------------------
   Da 900px in su la foto si affianca al testo, che le scorre attorno.
   E' il comportamento predefinito: una foto a tutta larghezza sopra il
   paragrafo spezza la lettura e allunga la pagina senza aggiungere niente.
   Per ottenere comunque la foto piena basta aggiungere la classe
   vca-img-piena alla figure.
   Il contenitore diventa flow-root: senza, il float esce dalla sezione e
   si infila in quella successiva.
   -------------------------------------------------------------------------- */

@media (min-width: 900px) {

  .entry-content .vca-container { display: flow-root; }

  .entry-content figure.wp-block-image {
    float: right;
    width: 42%;
    max-width: 420px;
    margin: 0.3rem 0 1.4rem 2.2rem;
  }

  .entry-content figure.wp-block-image.alignleft {
    float: left;
    margin: 0.3rem 2.2rem 1.4rem 0;
  }

  .entry-content figure.wp-block-image.vca-img-piena {
    float: none;
    width: 100%;
    max-width: min(800px, 100%);
    margin: 1.7rem 0 1.9rem;
  }
}


/* ==========================================================================
   BLOCCO 18 — Il nome del sito non e' il titolo della pagina
   In home Accelerate stampa #site-title come <h1>, e si somma all'H1 del
   nostro hero: due H1 sulla stessa pagina. Il testo e' gia' invisibile
   (font-size 0 in brand.css, il logo arriva da background-image), qui si
   neutralizza anche il peso semantico per gli screen reader.

   ⚠️ Non risolve il tag in sorgente: per quello serve un filtro su
      accelerate_site_title o l'override di header.php nel child.
   ========================================================================== */

h1#site-title { font-weight: inherit; }


/* ==========================================================================
   BLOCCO 19 — Telefono dentro il menu
   Accelerate lascia #header-right-section vuoto e non espone un'area widget
   utilizzabile senza override di header.php. La strada piu' breve e' un
   elemento di menu di tipo «Link personalizzato» verso tel:, spinto a destra
   e vestito come lockup telefonico.

   COME SI CREA (Aspetto → Menu):
   1. Opzioni schermo in alto a destra → spunta «Classi CSS»
   2. Link personalizzato: URL tel:+390419045323 · Testo 041 904 5323
   3. Nel campo «Classi CSS (opzionale)» della voce: vca-menu-phone
   ========================================================================== */

.main-navigation ul li.vca-menu-phone {
  margin-left: auto;   /* spinge la voce all'estremita' destra della barra */
}

.main-navigation ul li.vca-menu-phone > a {
  font-family: var(--vca-font-mono);
  font-feature-settings: 'tnum' 1;
  font-size: 1.1rem;
  letter-spacing: 0.01em;
  color: var(--vca-accent);
  border-bottom-color: transparent;
  white-space: nowrap;
}

.main-navigation ul li.vca-menu-phone > a:hover,
.main-navigation ul li.vca-menu-phone > a:focus-visible {
  color: var(--vca-accent-hover);
  border-bottom-color: var(--vca-accent);
}

/* Sotto i 768px il menu diventa una colonna: il margin-left auto non serve
   piu' e il numero torna in fila con le altre voci, in evidenza. */
@media (max-width: 768px) {
  .main-navigation ul li.vca-menu-phone { margin-left: 0; }
  .main-navigation ul li.vca-menu-phone > a {
    font-size: 1.2rem;
    color: var(--vca-accent);
  }
}


/* ==========================================================================
   BLOCCO 20 — Voce di menu con figli
   La freccetta segnala che «Marchi» apre un sottomenu. E' un triangolo in
   CSS: nessuna icona da caricare.
   ========================================================================== */

.main-navigation ul li.menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.45em;
  vertical-align: 0.15em;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.7;
}

/* Su mobile il sottomenu e' sempre aperto: la freccia diventa fuorviante */
@media (max-width: 768px) {
  .main-navigation ul li.menu-item-has-children > a::after { display: none; }
  .main-navigation ul li ul li a { padding-left: 1.4rem; }
}


/* ==========================================================================
   BLOCCO 26 — Single post mass-gen
   ATTIVO. Si aggancia a body.vca-massgen, aggiunto da functions.php sui
   singoli della categoria zone-servite (ID 10).

   ⚠️ Il template del framework usa body.single-post.category-SLUG: su
   WordPress quel selettore non trova mai nulla, perché get_body_class()
   sui singoli non aggiunge le classi di categoria — le mette post_class()
   sull'<article>. Verificato sul sorgente del 28/07/2026.
   ========================================================================== */

body.vca-massgen #content,
body.vca-massgen article.post {
  max-width: 78ch;
  margin-inline: auto;
  padding-inline: var(--vca-container-padding);
}

body.vca-massgen #content { padding-top: clamp(2rem, 5vw, 3rem); }

/* Intestazione: resta il titolo del tema, che sui singoli è l'unico H1 */
body.vca-massgen .entry-header { margin-bottom: 1.2rem; }

/* Via autore, data, categoria, tag, link di modifica */
body.vca-massgen .entry-meta,
body.vca-massgen .entry-meta * { display: none !important; }

/* H1 doppio: il tema stampa già .entry-title, quello nel contenuto avanza */
body.vca-massgen .entry-content > h1:first-child { display: none !important; }

/* Immagine dell'articolo: affiancata su desktop, piena su mobile */
body.vca-massgen .vca-img-articolo {
  border-radius: var(--vca-radius);
  max-width: 34%;
  width: 280px;
}

@media (max-width: 900px) {
  body.vca-massgen .vca-img-articolo { max-width: 35%; }
}

@media (max-width: 640px) {
  body.vca-massgen .vca-img-articolo { max-width: 100%; width: 100%; float: none; margin: 1rem 0; }
}

body.vca-massgen .entry-content h2 { margin-top: 2.2rem; }


/* ==========================================================================
   BLOCCO 26 · PARTE 2 — Articoli mass-gen «Zone servite»
   v3.1 · 29 luglio 2026

   ---------------------------------------------------------------------------
   COSA NON C'È QUI, E PERCHÉ
   ---------------------------------------------------------------------------
   Verificati components.css e fixes.css sul sito reale. Tre parti sono già
   coperte altrove e vanno lasciate stare:

   1. FAQ. components.css ha già un componente .vca-faq costruito su
      details/summary, con il chevron teal e la gestione dell'apertura.
      I selettori sono `.vca-faq details` e `.vca-faq summary`, per elemento
      e non per classe: il markup del mass-gen li eredita così com'è.
      Ridefinirli creerebbe due FAQ diverse sullo stesso sito.

   2. Immagine. Il Blocco 26 fissa già .vca-img-articolo al 45% con i punti
      di rottura a 900 e 640 px, e il Blocco 9 governa il float di
      .alignright. Aggiungerne un terzo produrrebbe regole in conflitto.

   3. Contenitore e misura. Il Blocco 26 incolonna l'articolo a 78ch.
      Comanda il contenitore: qui non si limitano i singoli paragrafi.

   ---------------------------------------------------------------------------
   COLLISIONE RISOLTA: .vca-table
   ---------------------------------------------------------------------------
   components.css definisce .vca-table come tabella comparativa, con
   min-width 480px, pensata per stare dentro .vca-table-wrap che ha
   overflow-x. Il markup del mass-gen non ha quel contenitore, quindi su
   telefono la tabella sfonderebbe lo schermo. Il vincolo viene neutralizzato
   nel solo contesto degli articoli, alla sezione 5.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. Lead — paragrafo di apertura

   CORREZIONE v3.1: la v3 usava --vca-fs-h3 e --vca-lh-heading, cioè corpo e
   interlinea da titolo. Su un paragrafo di novanta parole, per giunta
   incastrato accanto all'immagine flottante al 45%, il risultato era un
   blocco grande e stretto con le righe troppo vicine: 1.18 è l'interlinea
   giusta su due righe, non su otto.

   Ora si usa la stessa scala di .vca-hero__lead in components.css, che è il
   corrispondente componente di apertura già presente nel sito, con
   l'interlinea di corpo del testo.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-lead {
  font-size: clamp(1.08rem, 1.6vw, 1.2rem);
  line-height: var(--vca-lh-body);
  color: var(--vca-ink);
  margin-bottom: 1.5rem;
}

/* Variante «diretta»: prima persona, frasi brevi. Stesso corpo della variante
   consulenziale: a distinguere il registro basta il filetto teal, che è un
   bordo e non un testo, quindi la regola di contrasto non si applica. */
body.vca-massgen .vca-lead--diretto {
  padding-left: 1rem;
  border-left: 3px solid var(--vca-accent);
}


/* --------------------------------------------------------------------------
   2. Titoli di sezione

   Restano <h2> per la gerarchia del documento, ma usano la scala di h3.
   --vca-fs-h2 arriva a 2.45rem, cioè 2,2 volte il corpo: proporzione giusta
   per una sezione di landing, non per sette sottotitoli dentro mille parole.
   --vca-fs-h3 sta a 1,43 volte il corpo. Il livello semantico non cambia.
   -------------------------------------------------------------------------- */

body.vca-massgen .entry-content .vca-h2 {
  font-size: var(--vca-fs-h3);
  line-height: var(--vca-lh-heading);
  margin: clamp(2rem, 4.5vw, 2.75rem) 0 0.7em;
  padding-top: 0.85rem;
  border-top: 2px solid var(--vca-stone);
  clear: both;                  /* nessun H2 incastrato accanto all'immagine */
}


/* --------------------------------------------------------------------------
   3. Elenchi

   Nota: esiste già .vca-check in components.css, con la spunta disegnata.
   Qui il marcatore è un pallino perché l'elenco dei guasti non è una lista
   di vantaggi: la spunta suggerirebbe approvazione dove c'è una diagnosi.
   Il nome resta diverso di proposito.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-list {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

body.vca-massgen .vca-list li {
  position: relative;
  padding-left: 1.5rem;
  margin-bottom: 0.5rem;
  line-height: 1.55;
}

/* Pallino dell'elenco: il teal pieno sul fondo chiaro sta a 5.20:1, quindi
   qui basta --vca-accent. L'originale usava la variante scura perche' con
   l'accento precedente il pallino spariva: non e' piu' necessario. */
body.vca-massgen .vca-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--vca-accent);
}


/* --------------------------------------------------------------------------
   4. Passi numerati del processo

   Il contatore si chiama vca-mgstep e non vca-step: quest'ultimo è già usato
   da .vca-process in components.css. Contatori omonimi su elementi diversi
   non si disturbano, ma due componenti che numerano cose diverse con lo
   stesso nome sono una trappola per chi legge il CSS fra un anno.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-steps {
  list-style: none;
  counter-reset: vca-mgstep;
  margin-left: 0;
  padding-left: 0;
}

body.vca-massgen .vca-steps li {
  counter-increment: vca-mgstep;
  position: relative;
  padding-left: 2.75rem;
  margin-bottom: 0.9rem;
  line-height: 1.55;
}

body.vca-massgen .vca-steps li::before {
  content: counter(vca-mgstep);
  position: absolute;
  left: 0;
  top: 0.05em;
  width: 1.85rem;
  height: 1.85rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--vca-dark);
  color: var(--vca-bg);         /* 14.30:1, come da tabella di brand-foundation */
  font-family: var(--vca-font-mono);
  font-feature-settings: 'tnum' 1;
  font-size: var(--vca-fs-eyebrow);
  font-weight: 600;
}


/* --------------------------------------------------------------------------
   5. Tabella del processo — neutralizzazione della collisione

   .vca-table in components.css è la tabella comparativa: min-width 480px,
   intestazione scura, righe pari a fondo pietra. Qui serve una tabella a due
   colonne chiave/valore, senza thead e senza contenitore a scorrimento.
   -------------------------------------------------------------------------- */

body.vca-massgen .entry-content .vca-table {
  min-width: 0;                 /* toglie il vincolo che sfonda su telefono */
  font-size: var(--vca-fs-small);
}

body.vca-massgen .entry-content .vca-table tbody tr:nth-child(even) {
  background: transparent;      /* niente zebratura: le righe sono coppie */
}

body.vca-massgen .entry-content .vca-table th {
  width: 34%;
  font-weight: 600;
  color: var(--vca-ink);
  background: var(--vca-bg);
  vertical-align: top;
}

body.vca-massgen .entry-content .vca-table td {
  vertical-align: top;
}

@media (max-width: 560px) {
  body.vca-massgen .entry-content .vca-table,
  body.vca-massgen .entry-content .vca-table tr,
  body.vca-massgen .entry-content .vca-table th,
  body.vca-massgen .entry-content .vca-table td {
    display: block;
    width: 100%;
  }
  body.vca-massgen .entry-content .vca-table th {
    border-bottom: 0;
    padding-bottom: 0.2rem;
  }
}


/* --------------------------------------------------------------------------
   6. Box informativi
   Stessa forma di .vca-note in components.css e di .vca-abilitazione in
   brand-foundation: filetto a sinistra, fondo pietra, raggio sui due angoli
   destri. Nome diverso perché le varianti sono due.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-box {
  background: var(--vca-stone);
  border-left: 3px solid var(--vca-ink-soft);
  border-radius: 0 var(--vca-radius) var(--vca-radius) 0;
  padding: 1.1rem 1.35rem;
  margin-bottom: 1.4rem;
  clear: both;
}

body.vca-massgen .vca-box p {
  margin: 0;
  font-size: var(--vca-fs-small);
  line-height: 1.6;
}

/* Detrazione fiscale: informazione a valore, filetto teal */
body.vca-massgen .vca-box--info { border-left-color: var(--vca-accent); }

/* Avvertenza tecnica del costruttore: registro sobrio */
body.vca-massgen .vca-box--nota {
  background: transparent;
  border: var(--vca-border);
  border-left: 3px solid var(--vca-ink-soft);
}

body.vca-massgen .vca-box--nota p {
  color: var(--vca-ink-soft);
  font-style: italic;
}


/* --------------------------------------------------------------------------
   7. Scheda dati del blocco marchio
   I <dl> nei temi WordPress sono senza stile. Le etichette usano la forma
   dell'occhiello di sistema.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-specs {
  display: grid;
  grid-template-columns: minmax(9rem, 12rem) 1fr;
  gap: 0.5rem 1.25rem;
  background: var(--vca-stone);
  border-radius: var(--vca-radius);
  padding: 1.1rem 1.35rem;
  margin: 0 0 1.4rem;
  font-size: var(--vca-fs-small);
  clear: both;
}

body.vca-massgen .vca-specs dt {
  font-family: var(--vca-font-display);
  font-variation-settings: 'wdth' var(--vca-display-stretch), 'wght' 600;
  font-size: var(--vca-fs-eyebrow);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vca-ink-soft);
}

body.vca-massgen .vca-specs dd {
  margin: 0;
  line-height: 1.5;
}

@media (max-width: 560px) {
  body.vca-massgen .vca-specs { grid-template-columns: 1fr; gap: 0.15rem; }
  body.vca-massgen .vca-specs dd { margin-bottom: 0.65rem; }
}


/* --------------------------------------------------------------------------
   8. Disclaimer marchi

   .vca-disclaimer è già definito in brand-foundation: è lo stesso componente
   del footer. Qui NON si ridefinisce, si aggiunge solo il filetto che lo
   stacca dal paragrafo precedente dentro l'articolo.
   -------------------------------------------------------------------------- */

body.vca-massgen .entry-content .vca-disclaimer {
  padding-top: 0.6rem;
  border-top: var(--vca-border);
}


/* --------------------------------------------------------------------------
   9. Box link interni
   I link dentro non hanno classe, quindi ereditano già lo stile di corpo del
   Blocco 8: inchiostro sottolineato in teal. Qui serve solo la scatola.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-links-box {
  background: var(--vca-stone);
  border-radius: var(--vca-radius);
  padding: 1.2rem 1.45rem;
  margin-bottom: 1.4rem;
  clear: both;
}

body.vca-massgen .vca-links-box__title {
  margin: 0 0 0.7rem;
  font-family: var(--vca-font-display);
  font-variation-settings: 'wdth' var(--vca-display-stretch), 'wght' 600;
  font-size: var(--vca-fs-eyebrow);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vca-ink-soft);
}

body.vca-massgen .vca-links-box__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

body.vca-massgen .vca-links-box__list li { margin-bottom: 0.45rem; }
body.vca-massgen .vca-links-box__list li:last-child { margin-bottom: 0; }


/* --------------------------------------------------------------------------
   10. FAQ — NESSUNA REGOLA, DI PROPOSITO

   Il markup <div class="vca-faq"><details class="vca-faq__item">
   <summary class="vca-faq__q"> ricade sotto i selettori `.vca-faq details` e
   `.vca-faq summary` di components.css, che sono per elemento e non per
   classe. Chevron, bordi, spaziature e stato aperto arrivano da lì.
   Le classi __item, __q e __a restano nel markup come agganci ma non fanno
   nulla: è voluto, così le FAQ degli articoli sono identiche a quelle delle
   pagine pillar.

   Se un giorno servisse differenziarle, aggiungere qui una regola scopata
   sotto body.vca-massgen: vincerà per ordine di caricamento.
   -------------------------------------------------------------------------- */


/* --------------------------------------------------------------------------
   11. CTA finale

   Il markup porta anche .vca-section--dark, che in components.css è nella
   lista delle superfici scure: da lì arriva --vca-on-surface, ed è il motivo
   per cui .vca-btn--quote resta leggibile. Senza quella classe il pulsante
   WhatsApp sparirebbe sul fondo scuro.
   Qui si aggiunge solo ciò che il sistema non copre: spaziatura e layout.
   -------------------------------------------------------------------------- */

body.vca-massgen .vca-cta-finale {
  margin-top: clamp(2rem, 4.5vw, 2.75rem);
  padding: clamp(1.4rem, 3vw, 1.9rem);
  border-radius: var(--vca-radius);
  clear: both;
}

body.vca-massgen .vca-cta-finale__testo {
  margin: 0 0 1.15rem;
  font-size: var(--vca-fs-body);
  line-height: 1.5;
  max-width: 52ch;
}

body.vca-massgen .vca-cta-finale__azioni {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin: 0 0 1rem;
}

body.vca-massgen .vca-cta-finale__orari {
  margin: 0;
  font-size: var(--vca-fs-small);
  line-height: 1.5;
  opacity: 0.8;
}

@media (max-width: 480px) {
  body.vca-massgen .vca-cta-finale__azioni { flex-direction: column; }
  body.vca-massgen .vca-cta-finale .vca-btn { width: 100%; justify-content: center; }
}


/* --------------------------------------------------------------------------
   12. Chiusura del float
   Senza questo, l'immagine flottante può sbordare oltre il piede
   dell'articolo quando il testo è corto.
   -------------------------------------------------------------------------- */

body.vca-massgen .entry-content::after {
  content: "";
  display: table;
  clear: both;
}


/* --------------------------------------------------------------------------
   13. Stampa
   Il Blocco 15 converte già le sezioni scure e nasconde la barra fissa.
   Qui serve solo che le risposte delle FAQ siano leggibili anche a
   fisarmonica chiusa: su carta non si può cliccare.
   -------------------------------------------------------------------------- */

@media print {
  body.vca-massgen .vca-faq details > *:not(summary) { display: block !important; }
  body.vca-massgen .vca-faq summary::after { content: none; }
  body.vca-massgen .vca-cta-finale { display: none; }
}


/* ==========================================================================
   BLOCCO 27 — Indice zone da shortcode
   CancelliAutomaticiVenezia.it · prefisso vca · v2, 30 luglio 2026

   Serve i due shortcode [vca_articoli_zone] e [vca_comuni_serviti].

   Differenza rispetto al Blocco 26: quello si applica solo dentro
   body.vca-massgen, cioè sui singoli articoli. Questo compare sulle pagine
   pillar, che non hanno quella classe.

   ---------------------------------------------------------------------------
   v2 — DUE CORREZIONI, ENTRAMBE DI CONTENIMENTO E SPECIFICITÀ
   ---------------------------------------------------------------------------
   1. CONTENITORE PROPRIO. Il Blocco 2 incolonna il contenuto delle pagine con
      `.page .entry-content > *:not([class*='vca-'])`. Quel :not() esclude di
      proposito gli elementi con classe vca-, perché i componenti del sito
      hanno il proprio contenitore dentro. Questo non ce l'aveva: restava a
      tutta larghezza mentre il resto della pagina era incolonnato.

   2. SPECIFICITÀ CONTRO IL BLOCCO 8. Le voci dell'indice sono link senza
      classe, quindi ricadono sotto
      `.entry-content a:not(.vca-btn):not([class*='vca-'])`, che ha
      specificità 0,3,1 e impone la sottolineatura teal del corpo del testo.
      Le regole della v1 stavano a 0,2,1: perdevano, e il loro border-bottom
      si sommava alla sottolineatura del Blocco 8 producendo due righe sotto
      ogni voce.

      Le regole sui link sono ora scopate anche sotto .entry-content, che porta
      la specificità a 0,3,1 con l'ordine di caricamento a favore.
   ========================================================================== */

.vca-zone-index {
  max-width: var(--vca-container-max);
  margin-inline: auto;
  margin-top: var(--vca-section-y);
  padding-inline: var(--vca-container-padding);
  container-type: inline-size;
}

.vca-zone-index__title {
  font-size: var(--vca-fs-h3);
  line-height: var(--vca-lh-heading);
  margin: 0 0 1.4rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--vca-stone);
}


/* --------------------------------------------------------------------------
   Gruppi per area
   -------------------------------------------------------------------------- */

.vca-zone-index__group { margin-bottom: 2rem; }
.vca-zone-index__group:last-child { margin-bottom: 0; }

.vca-zone-index__area {
  font-family: var(--vca-font-display);
  font-variation-settings: 'wdth' var(--vca-display-stretch), 'wght' 600;
  font-size: var(--vca-fs-eyebrow);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--vca-ink-soft);
  margin: 0 0 0.85rem;
  padding-left: 0.75rem;
  border-left: 3px solid var(--vca-accent);
}


/* --------------------------------------------------------------------------
   Elenco completo — [vca_articoli_zone]

   Griglia fluida senza breakpoint: le colonne si aggiungono da sole quando
   c'è spazio. Il componente va in pagine con e senza barra laterale, quindi
   legarsi alla larghezza della finestra sbaglierebbe in uno dei due casi.

   I selettori sono scopati anche sotto .entry-content per battere il Blocco 5,
   che applica margine e marcatore agli elenchi del contenuto.
   -------------------------------------------------------------------------- */

.entry-content .vca-zone-index__list,
.vca-zone-index__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.15rem 1.5rem;
}

.entry-content .vca-zone-index__item,
.vca-zone-index__item {
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.45;
}

.entry-content .vca-zone-index__item::marker { content: none; }

/* Specificità 0,3,1 come il Blocco 8, e caricato dopo: qui vince questa.
   Senza, la sottolineatura teal del corpo si sommava al border-bottom. */
.entry-content .vca-zone-index__item a,
.vca-zone-index__item a {
  display: block;
  padding-block: 0.42rem;
  font-size: var(--vca-fs-small);
  color: var(--vca-ink);
  text-decoration: none;
  border-bottom: var(--vca-border);
}

.entry-content .vca-zone-index__item a:hover,
.entry-content .vca-zone-index__item a:focus-visible,
.vca-zone-index__item a:hover,
.vca-zone-index__item a:focus-visible {
  color: var(--vca-accent-hover);
  border-bottom-color: var(--vca-accent-hover);
  text-decoration: none;
}


/* --------------------------------------------------------------------------
   Variante compatta — [vca_comuni_serviti]
   Solo i nomi dei comuni, separati da punto mediano. Qui la sottolineatura
   serve, perché senza non si capirebbe dove finisce un nome e comincia
   l'altro: si tiene, in teal pieno (5.20:1).
   -------------------------------------------------------------------------- */

.vca-zone-index--compatto .vca-zone-index__group { margin-bottom: 1.35rem; }

.entry-content .vca-zone-index__inline,
.vca-zone-index__inline {
  margin: 0;
  max-width: none;
  font-size: var(--vca-fs-small);
  line-height: 1.9;
  color: var(--vca-ink-soft);
}

.entry-content .vca-zone-index__inline a,
.vca-zone-index__inline a {
  color: var(--vca-ink);
  text-decoration: underline;
  text-decoration-color: var(--vca-accent-hover);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  white-space: nowrap;    /* «Santa Maria di Sala» non si spezza a metà */
}

.entry-content .vca-zone-index__inline a:hover,
.entry-content .vca-zone-index__inline a:focus-visible,
.vca-zone-index__inline a:hover,
.vca-zone-index__inline a:focus-visible {
  text-decoration-color: var(--vca-ink);
}


/* --------------------------------------------------------------------------
   Contenitori stretti: sotto i 30 caratteri di larghezza la griglia torna a
   colonna singola per non spezzare i titoli lunghi.
   -------------------------------------------------------------------------- */

@container (max-width: 30rem) {
  .vca-zone-index__list { grid-template-columns: 1fr; }
}

/* Riserva per i browser senza container query: stesso effetto sul viewport. */
@supports not (container-type: inline-size) {
  @media (max-width: 600px) {
    .vca-zone-index__list { grid-template-columns: 1fr; }
  }
}


/* --------------------------------------------------------------------------
   Su fondo scuro, se lo shortcode finisse dentro una .vca-section--dark
   -------------------------------------------------------------------------- */

.vca-section--dark .vca-zone-index__item a,
.vca-section--dark .vca-zone-index__inline a { color: var(--vca-bg); }

.vca-section--dark .vca-zone-index__area,
.vca-section--dark .vca-zone-index__inline { color: var(--vca-stone); }

@media print {
  .vca-zone-index { display: none; }
}


/* ==========================================================================
   FINE BLOCCO 27
   ========================================================================== */


/* ==========================================================================
   FINE fixes.css
   ========================================================================== */