/* ========================================================================
   Componenti grafici di marcuz.it
   ------------------------------------------------------------------------
   Sostituiscono gli shortcode di WPBakery mantenendone la resa. Il contenuto
   degli articoli torna così a essere HTML leggibile e portabile: se un domani
   si cambia tema o si esporta il sito, i testi restano interi.
   Tavolozza: accento #00648f, scuro #004a70, testo #08202c,
   attenuato #4a6472, fondo tenue #eff5f8, bordo #dce6ec.
   ===================================================================== */

/* --- Griglia -----------------------------------------------------------
   Sostituisce vc_row / vc_column. Su schermo stretto le colonne si impilano. */
.riga {
  display: flex;
  flex-wrap: wrap;
  gap: 0 30px;
  margin-bottom: 1.2em;
}
.riga > * { flex: 1 1 100%; min-width: 0; }

@media (min-width: 768px) {
  .col-1-2 { flex: 0 0 calc(50% - 15px); }
  .col-1-3 { flex: 0 0 calc(33.333% - 20px); }
  .col-2-3 { flex: 0 0 calc(66.666% - 10px); }
  .col-1-4 { flex: 0 0 calc(25% - 22.5px); }
  .col-3-4 { flex: 0 0 calc(75% - 7.5px); }
  .col-1-6 { flex: 0 0 calc(16.666% - 25px); }
  .col-5-6 { flex: 0 0 calc(83.333% - 5px); }
}

/* --- Riquadro di avviso ------------------------------------------------
   Sostituisce vc_message. Il colore segna il tono, non è decorazione. */
.avviso {
  margin: 1.8em 0 1.4em;
  padding: 16px 20px;
  border-left: 4px solid #00648f;
  border-radius: 4px;
  background: #eff5f8;
  color: #08202c;
}
.avviso > :first-child { margin-top: 0; }
.avviso > :last-child { margin-bottom: 0; }
.avviso-attenzione { border-left-color: #b25c00; background: #fdf5ec; }
.avviso-buono      { border-left-color: #0f8a5f; background: #edf7f2; }
.avviso-neutro     { border-left-color: #a9c2ce; background: #f5f8fa; }

/* --- Riquadro in evidenza ---------------------------------------------
   Sostituisce porto_content_box. */
.riquadro {
  margin: 1.8em 0;
  padding: 24px 26px;
  border: 1px solid #dce6ec;
  border-radius: 6px;
  background: #fff;
}
.riquadro > :first-child { margin-top: 0; }
.riquadro > :last-child { margin-bottom: 0; }

/* --- Elenco di collegamenti -------------------------------------------
   Sostituisce porto_links_block / porto_links_item. */
.elenco-link { margin: 1.2em 0 1.6em; padding: 0; list-style: none; }
.elenco-link > li { margin-bottom: 10px; padding-left: 22px; position: relative; }
.elenco-link > li::before {
  content: "›";
  position: absolute;
  left: 0;
  top: -1px;
  color: #00648f;
  font-weight: 700;
  font-size: 1.15em;
}

/* --- Blocco a scomparsa ------------------------------------------------
   Sostituisce vc_toggle / vc_accordion. <details> è nativo: funziona
   anche senza JavaScript. */
.scomparsa {
  margin: 1em 0;
  border: 1px solid #dce6ec;
  border-radius: 4px;
  background: #fff;
}
.scomparsa > summary {
  padding: 13px 18px;
  cursor: pointer;
  font-weight: 600;
  color: #08202c;
  list-style: none;
}
.scomparsa > summary::-webkit-details-marker { display: none; }
.scomparsa > summary::before {
  content: "+";
  display: inline-block;
  width: 18px;
  color: #00648f;
  font-weight: 700;
}
.scomparsa[open] > summary::before { content: "–"; }
.scomparsa > summary:hover { color: #00648f; }
.scomparsa > .scomparsa-corpo { padding: 0 18px 16px; }

/* --- Immagini ----------------------------------------------------------
   Sostituisce vc_single_image. */
figure.immagine { margin: 1.6em 0; }
figure.immagine img { max-width: 100%; height: auto; border-radius: 4px; }
figure.immagine figcaption {
  margin-top: 8px;
  font-size: 0.9em;
  color: #4a6472;
  line-height: 1.5;
}
figure.immagine.al-centro { text-align: center; }
figure.immagine.a-destra { text-align: right; }

/* --- Citazione ---------------------------------------------------------
   Sostituisce porto_blockquote. */
blockquote.citazione {
  margin: 1.8em 0;
  padding: 4px 0 4px 22px;
  border-left: 4px solid #dce6ec;
  color: #4a6472;
  font-size: 1.05em;
}

/* --- Separatore e spaziatura ------------------------------------------ */
hr.separatore { margin: 2em 0; border: 0; border-top: 1px solid #dce6ec; }
.spazio { display: block; }

/* --- Richiamo all'azione ------------------------------------------------
   Sostituisce vc_cta: titolo, sottotitolo, testo e pulsante. */
.richiamo {
  margin: 2em 0;
  padding: 26px 28px;
  border: 1px solid #dce6ec;
  border-left: 4px solid #00648f;
  border-radius: 6px;
  background: #eff5f8;
}
.richiamo > h3 { margin: 0 0 6px; font-size: 1.25em; color: #08202c; }
.richiamo .richiamo-sottotitolo {
  margin: 0 0 14px;
  color: #4a6472;
  font-size: 1.02em;
}
.richiamo > p:last-of-type { margin-bottom: 0; }
.richiamo-pulsante {
  display: inline-block;
  margin-top: 16px;
  padding: 11px 26px;
  border-radius: 4px;
  background: #00648f;
  color: #fff !important;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .18s ease;
}
.richiamo-pulsante:hover, .richiamo-pulsante:focus { background: #00293f; color: #fff !important; }

/* --- Testimonianza -----------------------------------------------------
   Sostituisce porto_testimonial. */
figure.testimonianza {
  margin: 1.8em 0;
  padding: 20px 24px;
  border-left: 4px solid #dce6ec;
  background: #fff;
}
figure.testimonianza blockquote {
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  font-size: 1.05em;
  color: #08202c;
}
figure.testimonianza figcaption {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.94em;
  color: #4a6472;
}
figure.testimonianza figcaption img {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  object-fit: cover;
}
figure.testimonianza .testimonianza-nome { font-weight: 600; color: #08202c; }

/* --- Galleria di immagini ----------------------------------------------
   Sostituisce vc_images_carousel e vc_gallery. Niente JavaScript: su schermo
   largo è una griglia, su schermo stretto scorre col dito. */
.galleria { margin: 1.8em 0; }
.galleria-immagini {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}
.galleria figure { margin: 0; }
.galleria img { width: 100%; height: auto; border-radius: 4px; display: block; }
.galleria > figcaption, .galleria > .galleria-titolo {
  margin-bottom: 10px;
  font-weight: 600;
  color: #08202c;
}
@media (max-width: 600px) {
  .galleria-immagini {
    grid-auto-flow: column;
    grid-auto-columns: 78%;
    grid-template-columns: none;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-bottom: 6px;
  }
  .galleria-immagini > figure { scroll-snap-align: start; }
}

/* --- Barre di valore ---------------------------------------------------
   Sostituisce vc_progress_bar. La percentuale è scritta, non solo disegnata:
   resta leggibile anche senza colori. */
.barre { margin: 1.6em 0; }
.barre-titolo { margin: 0 0 14px; font-weight: 600; color: #08202c; }
.barra { margin-bottom: 10px; }
.barra-etichetta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.92em;
  margin-bottom: 4px;
  color: #08202c;
}
.barra-etichetta .barra-valore { color: #4a6472; font-variant-numeric: tabular-nums; }
.barra-solco {
  height: 9px;
  border-radius: 5px;
  background: #dce6ec;
  overflow: hidden;
}
.barra-pieno { height: 100%; border-radius: 5px; background: #00648f; }
.barra-alta .barra-pieno   { background: #0f8a5f; }
.barra-media .barra-pieno  { background: #b25c00; }
.barra-bassa .barra-pieno  { background: #b23c00; }

/* --- Tabella di dati ---------------------------------------------------
   Sostituisce vc_line_chart: gli stessi numeri, leggibili e senza JavaScript. */
.tabella-dati { margin: 1.8em 0; overflow-x: auto; }
.tabella-dati table { width: 100%; border-collapse: collapse; font-size: 0.95em; }
.tabella-dati caption {
  caption-side: top;
  text-align: left;
  margin-bottom: 10px;
  font-weight: 600;
  color: #08202c;
}
.tabella-dati th, .tabella-dati td {
  padding: 8px 12px;
  border-bottom: 1px solid #dce6ec;
  text-align: right;
}
.tabella-dati th:first-child, .tabella-dati td:first-child { text-align: left; }
.tabella-dati thead th { background: #eff5f8; color: #08202c; }

/* --- Elenco di articoli ------------------------------------------------
   Reso dallo shortcode [articoli]. */
.elenco-articoli {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 18px;
  margin: 1.6em 0;
  padding: 0;
  list-style: none;
}
.elenco-articoli > li { margin: 0; }
.elenco-articoli a { font-weight: 600; }
.elenco-articoli img { width: 100%; height: auto; border-radius: 4px; margin-bottom: 8px; display: block; }
.elenco-articoli .articolo-data { display: block; margin-top: 4px; font-size: 0.86em; color: #4a6472; }

/* --- Scheda persona ---------------------------------------------------- */
.scheda-persona { display: flex; gap: 16px; align-items: center; margin: 1.6em 0; }
.scheda-persona img { width: 84px; height: 84px; border-radius: 50%; object-fit: cover; }
.scheda-persona .scheda-nome { font-weight: 600; color: #08202c; }
.scheda-persona .scheda-ruolo { color: #4a6472; font-size: 0.94em; }

/* --- Condivisione ------------------------------------------------------
   Sostituisce vc_facebook e vc_tweetmeme: collegamenti normali, senza gli
   script di Facebook e X che tracciano chi apre la pagina. */
.condividi { margin: 1.6em 0; }
.condividi a {
  display: inline-block;
  margin-right: 8px;
  padding: 8px 16px;
  border: 1px solid #dce6ec;
  border-radius: 4px;
  color: #00648f;
  text-decoration: none;
  font-size: 0.92em;
  font-weight: 600;
}
.condividi a:hover { border-color: #00648f; background: #eff5f8; }
