/* ==========================================================================
   CancelliAutomaticiVenezia.it — fixes.css  ·  prefisso cav  ·  v1.0
   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.

   Selettori verificati sul sorgente reale del sito, 28/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 .cav-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*='cav-']) {
  max-width: var(--cav-container-max);
  margin-inline: auto;
  padding-inline: var(--cav-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: sulle pagine l'H1 sta nel nostro hero.
   ⚠️ Sui singoli articoli NO: lì l'H1 del tema è l'unico titolo. */
.page .entry-header,
.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.
   ========================================================================== */

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

.cav-section--stone.cav-section--full { --cav-fw: var(--cav-stone); }
.cav-section--dark.cav-section--full  { --cav-fw: var(--cav-dark); }
.cav-section--bg.cav-section--full    { --cav-fw: var(--cav-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.cav-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.cav-manifesto,
blockquote.cav-manifesto,
.cav-manifesto,
.entry-content blockquote.cav-testimonial,
blockquote.cav-testimonial,
.cav-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.cav-manifesto,
blockquote.cav-manifesto,
.cav-manifesto {
  border-left: 4px solid var(--cav-accent) !important;
  color: var(--cav-ink) !important;
  padding: 0 0 0 1.6rem !important;
}

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

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

.cav-section--dark .cav-manifesto,
.cav-section--dark .cav-testimonial { color: var(--cav-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.cav-table th,
.entry-content table.cav-table td { border-bottom: 1px solid var(--cav-stone); }


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

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

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

.cav-section--dark .entry-content a:not(.cav-btn):not([class*='cav-']),
.cav-section--dark a:not(.cav-btn):not([class*='cav-']) { color: var(--cav-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(--cav-radius);
}

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

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

.wp-caption { max-width: 100%; }
.wp-caption-text {
  font-size: var(--cav-fs-small);
  color: var(--cav-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 (modulo ID 21)
   ========================================================================== */

.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(--cav-font-body);
  font-weight: 600;
  font-size: var(--cav-fs-small);
  color: var(--cav-ink);
  margin-bottom: 0.35rem;
}

div.wpforms-container-full .wpforms-form .wpforms-field-description {
  font-size: var(--cav-fs-small);
  color: var(--cav-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(--cav-bg);
  border: 1px solid var(--cav-ink-soft);
  border-radius: var(--cav-radius);
  color: var(--cav-ink);
  font-family: var(--cav-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(--cav-accent);
  outline: 3px solid var(--cav-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 preventivo, in ambra */
div.wpforms-container-full .wpforms-form button[type='submit'] {
  background: var(--cav-accent);
  border: 2px solid var(--cav-accent);
  border-radius: var(--cav-radius);
  color: var(--cav-ink);
  font-family: var(--cav-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(--cav-accent-hover);
  border-color: var(--cav-accent-hover);
  color: var(--cav-ink);
}

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

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

div.wpforms-confirmation-container-full {
  background: var(--cav-stone);
  border: none;
  border-left: 3px solid var(--cav-success);
  border-radius: 0 var(--cav-radius) var(--cav-radius) 0;
  color: var(--cav-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(--cav-fs-small);
  color: var(--cav-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(--cav-radius);
  border-top: 3px solid var(--cav-accent);
  font-family: var(--cav-font-body);
}

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

#cmplz-cookiebanner-container .cmplz-cookiebanner .cmplz-btn.cmplz-accept {
  background: var(--cav-accent);
  border-color: var(--cav-accent);
  color: var(--cav-ink);          /* mai testo chiaro sull'ambra */
  border-radius: var(--cav-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(--cav-ink);
  color: var(--cav-ink);
  border-radius: var(--cav-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(--cav-container-max);
  margin-inline: auto;
  padding: var(--cav-section-y) var(--cav-container-padding);
}

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

.search-results article,
.archive article {
  padding-bottom: 1.4rem;
  margin-bottom: 1.4rem;
  border-bottom: 1px solid var(--cav-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(--cav-accent);
  border: none;
  border-radius: var(--cav-radius);
  color: var(--cav-ink);
  padding: 0.55rem 0.9rem;
}
.wp-block-search__input {
  border: 1px solid var(--cav-ink-soft);
  border-radius: var(--cav-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,
  .cav-sticky,
  .cav-hero__bg,
  #cmplz-cookiebanner-container { display: none !important; }

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

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

  .cav-section--dark h1, .cav-section--dark h2, .cav-section--dark h3,
  .cav-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 l'ambra del brand.

   ⚠️ Conviene comunque impostare l'ambra 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 */
#masthead.site-header,
#header-text-nav-container,
.site-header,
body > .site,
#page {
  border-top-color: var(--cav-accent) !important;
}

/* Voce di menu attiva: niente pastiglia colorata, solo il filo ambra 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(--cav-ink) !important;
  border-bottom-color: var(--cav-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(--cav-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(--cav-accent) !important;
}

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

button,
input[type='submit'],
.btn {
  background-color: var(--cav-accent);
  color: var(--cav-ink);
  border-color: var(--cav-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(--cav-ink) !important;
}


/* ==========================================================================
   BLOCCO 26 — Single post mass-gen
   ATTIVO. Si aggancia a body.cav-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.cav-massgen #content,
body.cav-massgen article.post {
  max-width: 78ch;
  margin-inline: auto;
  padding-inline: var(--cav-container-padding);
}

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

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

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

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

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

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

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

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


/* ==========================================================================
   BLOCCO 27 — Shortcode [cav_articoli_zone]
   Segnaposto. Arriva allo STEP 8.5 del master mass-gen, quando lo
   shortcode esisterà davvero. Prima di allora non c'è nulla da vestire.
   ========================================================================== */
