/*
Theme Name: GVision
Theme URI: https://gvision.it
Description: Tema figlio di Twenty Twenty-Five per GVision Italia. Palette aziendale, tipografia tecnica e trattamento delle tabelle di specifiche.
Author: GVision Italia
Template: twentytwentyfive
Version: 1.9
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: gvision
*/

/* ------------------------------------------------------------------
   Tabelle di specifiche.
   I valori misurati vanno in monospazio: distinguono a colpo d'occhio
   il dato dalla prosa. E' il segno distintivo del sito.
   ------------------------------------------------------------------ */

.wp-block-table table {
  border-collapse: collapse;
  font-size: var(--wp--preset--font-size--small);
}

.wp-block-table th {
  font-family: var(--wp--preset--font-family--condensato);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--wp--preset--color--ardesia);
  text-align: left;
  padding: 0.7rem 1rem 0.7rem 0;
  border-bottom: 1px solid var(--wp--preset--color--filo);
}

.wp-block-table td {
  padding: 0.7rem 1.4rem 0.7rem 0;
  border-bottom: 1px solid var(--wp--preset--color--filo);
  vertical-align: top;
}

/* prima colonna: etichetta.  seconda: valore in monospazio */
.wp-block-table td:first-child {
  color: var(--wp--preset--color--ardesia);
  white-space: nowrap;
}

.wp-block-table td:not(:first-child) {
  font-family: var(--wp--preset--font-family--tecnico);
  font-variant-numeric: tabular-nums;
}

.wp-block-table tr:last-child td { border-bottom: 0; }

/* su schermo stretto le tabelle a tre colonne scorrono invece di comprimersi */
.wp-block-table { overflow-x: auto; }

/* ------------------------------------------------------------------
   Codici modello e SKU nel testo
   ------------------------------------------------------------------ */

code, kbd, samp {
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 0.92em;
  background: var(--wp--preset--color--nebbia);
  padding: 0.1em 0.4em;
}

/* ------------------------------------------------------------------
   Pulsanti: spigoli vivi, niente arrotondamenti
   ------------------------------------------------------------------ */

.wp-block-button__link { border-radius: 0; font-weight: 500; }

/* ------------------------------------------------------------------
   Elenchi di caratteristiche: piu' respiro fra le voci
   ------------------------------------------------------------------ */

.wp-block-list li { margin-bottom: 0.35rem; }

/* ------------------------------------------------------------------
   Intestazioni di sezione dentro le schede prodotto
   ------------------------------------------------------------------ */

.entry-content h2 {
  padding-top: 0.4rem;
  border-top: 1px solid var(--wp--preset--color--filo);
  margin-top: 2.4rem;
}

/* il filo sopra gli h2 vale solo nel flusso di testo, non dentro i riquadri */
.wp-block-group[class*="background-color"] .entry-content h2,
.entry-content .wp-block-group[class*="background-color"] h2 {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

/* ------------------------------------------------------------------
   L'hero deve occupare una porzione consistente della finestra,
   non essere un riquadro: altezza minima e contenuto centrato.
   ------------------------------------------------------------------ */

.gv-hero {
  min-height: clamp(28rem, 62vh, 42rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* le griglie non devono stringersi sotto una larghezza leggibile */
.wp-block-group.is-layout-grid { align-items: start; }

/* ------------------------------------------------------------------
   Domande a scomparsa (blocco Dettagli)
   ------------------------------------------------------------------ */

.wp-block-details {
  border-bottom: 1px solid var(--wp--preset--color--filo);
  padding: 0;
}

.wp-block-details summary {
  cursor: pointer;
  list-style: none;
  padding: 0.95rem 2rem 0.95rem 0;
  font-weight: 500;
  position: relative;
}

.wp-block-details summary::-webkit-details-marker { display: none; }

.wp-block-details summary::after {
  content: "+";
  position: absolute;
  right: 0.2rem;
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 1.25rem;
  line-height: 1;
  color: var(--wp--preset--color--ardesia);
}

.wp-block-details[open] summary::after { content: "\2212"; }

.wp-block-details summary:hover { color: var(--wp--preset--color--profondo); }

.wp-block-details > *:not(summary) {
  margin: 0 0 1rem;
  color: var(--wp--preset--color--ardesia);
}

/* ------------------------------------------------------------------
   Indice della pagina
   ------------------------------------------------------------------ */

.gv-indice ul { list-style: none; padding-left: 0; margin: 0.6rem 0 0; }
.gv-indice li { margin-bottom: 0.35rem; }
.gv-indice a { text-decoration: none; }
.gv-indice a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------
   Figure e diagrammi
   ------------------------------------------------------------------ */

.gv-figura { margin: 2.5rem 0; }
.gv-figura svg { width: 100%; height: auto; display: block; }
.gv-figura figcaption {
  margin-top: 0.9rem;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--wp--preset--color--ardesia);
}

/* i titoli di sezione ancorati non finiscono sotto l'intestazione */
.wp-block-heading[id] { scroll-margin-top: 5rem; }

/* ------------------------------------------------------------------
   Scheda prodotto
   ------------------------------------------------------------------ */

.gv-codici {
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 0.8rem;
  color: var(--wp--preset--color--acciaio);
  margin: 0 0 0.4rem;
  padding-bottom: 0.8rem;
  border-bottom: 1px solid var(--wp--preset--color--filo);
}
.gv-codici b { font-weight: 500; color: var(--wp--preset--color--contrast); }
.gv-codici .gv-sep { margin: 0 0.7rem; color: var(--wp--preset--color--filo); }

.gv-marchi { display: flex; flex-wrap: wrap; gap: 6px; margin: 1.2rem 0 0; }
.gv-marchi span {
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 0.72rem;
  color: var(--wp--preset--color--profondo);
  background: #F2F7FB;
  border: 1px solid #C3D6E4;
  padding: 4px 9px;
}

/* registro di conformita' */
.gv-registro {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr));
  gap: 1px;
  background: #CBE0D7;
  border: 1px solid #CBE0D7;
}
.gv-registro > div { background: #F1F8F5; padding: 0.9rem 1rem; }
.gv-registro dt {
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #588071;
  margin-bottom: 0.3rem;
}
.gv-registro dd {
  margin: 0;
  font-family: var(--wp--preset--font-family--tecnico);
  font-size: 0.95rem;
  font-weight: 500;
  color: #0A4C3B;
}
.gv-registro-nota {
  font-size: 0.87rem;
  line-height: 1.6;
  color: #2C5749;
  margin: 1.1rem 0 0;
}
.gv-registro-nota a { color: var(--wp--preset--color--verifica); }

/* immagine prodotto: mai deformata, mai gigante */
.wp-block-post-featured-image img { object-fit: contain; max-height: 460px; }

/* ==================================================================
   Portale di conformità: ha un linguaggio visivo proprio, scuro e
   tecnico. Le regole del tema non devono entrarci dentro.
   ================================================================== */

.gv-portal code,
.gv-portal kbd,
.gv-portal samp {
  background: rgba(34, 211, 238, .07);
  color: #22d3ee;
  border: 1px solid rgba(34, 211, 238, .16);
  border-radius: 4px;
  padding: 2px 7px;
  font-size: .92em;
  font-family: ui-monospace, Menlo, Consolas, monospace;
}

.gv-portal .gv-code,
.gv-portal .gv-code code {
  background: #0a0f1f;
  color: #d1e9ff;
  border: 1px dashed #223;
  border-radius: 10px;
  padding: 10px;
}

.gv-portal .gv-code code { border: 0; padding: 0; }

/* il filo sopra gli h2 e gli altri ritocchi del tema non valgono qui */
.gv-portal h1, .gv-portal h2, .gv-portal h3 {
  border-top: 0;
  padding-top: 0;
  font-family: Inter, Roboto, "Segoe UI", system-ui, sans-serif;
}

.gv-portal table { border-collapse: collapse; }
.gv-portal th, .gv-portal td { background: none; }
.gv-portal .wp-block-table { overflow: visible; }
.gv-portal a { text-decoration: none; }

/* Gli stili base dei blocchi WordPress colorano code e pre di chiaro:
   dentro il portale vanno neutralizzati con la stessa forza. */
.gv-portal code,
.gv-portal pre,
.gv-portal pre code,
.gv-portal .gv-table code,
.gv-portal .gv-vuln-table code,
.gv-portal td code,
.gv-portal p code,
.gv-portal li code,
body .gv-portal code,
body .gv-portal .wp-block-code,
body .gv-portal .wp-block-preformatted {
  background-color: rgba(34, 211, 238, .07) !important;
  color: #22d3ee !important;
  border: 1px solid rgba(34, 211, 238, .16) !important;
  border-radius: 4px !important;
  padding: 2px 7px !important;
  font-family: ui-monospace, Menlo, Consolas, monospace !important;
}

body .gv-portal .gv-code,
body .gv-portal .gv-code code {
  background-color: #0a0f1f !important;
  color: #d1e9ff !important;
  border: 1px dashed #223 !important;
  border-radius: 10px !important;
  padding: 10px !important;
}
body .gv-portal .gv-code code { border: 0 !important; padding: 0 !important; }

/* i CVE negli avvisi mantengono il proprio colore */
body .gv-portal .gv-alert code {
  background-color: rgba(239, 68, 68, .10) !important;
  border-color: rgba(239, 68, 68, .22) !important;
}
