/*
Theme Name: LB Tecnico
Description: Tema a blocchi per il sito professionale dell'Ing. Luca Bonori. Stile tecnico-industriale, palette RAL 7035 / 7016 / 5010 / 2004, font self-hosted, nessuna risorsa caricata da server di terzi.
Author: Ing. Luca Bonori
Version: 1.1.2
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: lb-tecnico
*/

:root {
  --lb-carta: var(--wp--preset--color--carta);
  --lb-pannello: var(--wp--preset--color--pannello);
  --lb-7035: var(--wp--preset--color--ral-7035);
  --lb-linea: var(--wp--preset--color--linea);
  --lb-grigio: var(--wp--preset--color--grigio);
  --lb-antracite: var(--wp--preset--color--antracite);
  --lb-nero: var(--wp--preset--color--nero);
  --lb-blu: var(--wp--preset--color--blu);
  --lb-arancio: var(--wp--preset--color--arancio);
  --lb-mono: var(--wp--preset--font-family--mono);
  --lb-doto: var(--wp--preset--font-family--doto);
  --lb-su-nero: #FFFFFF;
  --lb-su-arancio: #1A1C1E;
  --lb-fascia: #383E42;
  --lb-nastro: #1A1C1E;
  --lb-superficie: #FFFFFF;
  --lb-punti: #C3C5C2;
  --lb-rail: 3.5rem;
  --lb-pad: clamp(1rem, 3.5vw, 2.5rem);
}

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--lb-blu); outline-offset: 3px; }
::selection { background: var(--lb-arancio); color: var(--lb-su-arancio); }
img, svg { max-width: 100%; }

.lb-wrap { max-width: 80rem; margin-inline: auto; padding-inline: var(--lb-pad); }
.lb-wrap > * { margin-block: 0; }

/* ================= Binario laterale arancio ================= */
.lb-rail { display: none; }
@media (min-width: 1000px) {
  .wp-site-blocks { padding-left: var(--lb-rail); }
  .lb-rail {
    display: flex; flex-direction: column; justify-content: space-between; align-items: center;
    position: fixed; z-index: 50; left: 0; top: 0; bottom: 0; width: var(--lb-rail);
    background: var(--lb-arancio); color: var(--lb-su-arancio); padding-block: 1.1rem;
    border-right: 1px solid var(--lb-su-arancio);
  }
  .admin-bar .lb-rail { top: 32px; }
  .lb-rail-logo { font-family: var(--lb-doto); font-weight: 900; font-size: 1.35rem; line-height: 1; color: var(--lb-su-arancio); text-decoration: none; }
  .lb-rail-text { writing-mode: vertical-rl; transform: rotate(180deg); font-weight: 500; font-size: 1.55rem; letter-spacing: -0.02em; white-space: nowrap; margin: 0; }
  .lb-rail-arrow { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: var(--lb-su-arancio); }
  .lb-rail-arrow:hover { background: var(--lb-su-arancio); color: var(--lb-arancio); }
}
.lb-topline { height: 5px; background: var(--lb-arancio); }
@media (min-width: 1000px) { .lb-topline { display: none; } }

/* ================= Testata ================= */
.lb-meta { border-bottom: 1px solid var(--lb-linea); font-family: var(--lb-mono); font-size: 0.6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--lb-grigio); }
.lb-meta .lb-wrap { display: flex; justify-content: space-between; gap: 1rem; padding-block: .45rem; }
.lb-meta p { margin: 0; }
.lb-content > .wp-block-shortcode, .lb-content > p:empty { margin: 0; }
@media (max-width: 700px) { .lb-meta { display: none; } }

.lb-header { background: var(--lb-carta); border-bottom: 1px solid var(--lb-nero); position: relative; }
.lb-header::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; pointer-events: none;
  background:
    repeating-linear-gradient(90deg, var(--lb-nero) 0 1px, transparent 1px 10px) left bottom / 100% 4px no-repeat,
    repeating-linear-gradient(90deg, var(--lb-nero) 0 1px, transparent 1px 50px) left bottom / 100% 8px no-repeat;
}
.lb-header-row { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 1.15rem 1.35rem; }
.lb-header-row > * { margin: 0; }
.lb-brand { display: flex; align-items: center; gap: .9rem; }
.lb-brand > * { margin: 0; }
.lb-brand-sub { font-family: var(--lb-mono); font-size: 0.6875rem; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; color: var(--lb-grigio); padding-left: .9rem; border-left: 1px solid var(--lb-linea); }
@media (max-width: 860px) { .lb-brand-sub { display: none; } }
.lb-nav-wrap { display: flex; align-items: center; gap: 1.5rem; }
.lb-nav-wrap > * { margin: 0; }
.lb-header .wp-block-navigation { gap: 1.6rem; }
.lb-header .wp-block-navigation-item__content { padding-block: .3rem; border-bottom: 1px solid transparent; }
.lb-header .wp-block-navigation-item__content:hover { border-bottom-color: var(--lb-arancio); }
.lb-header .wp-block-navigation__submenu-container { border: 1px solid var(--lb-nero) !important; background: var(--lb-pannello) !important; padding: .35rem 0 !important; min-width: 17rem !important; }
.lb-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1rem !important; border: 0; }
.lb-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--lb-7035); }
.lb-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--lb-carta); padding: 1.5rem var(--lb-pad); }
.lb-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 1.1rem; }


/* ================= Pulsanti ================= */
.lb-btn {
  display: inline-flex; align-items: center; gap: .75rem; font-family: var(--lb-mono); font-size: 0.75rem;
  letter-spacing: .06em; text-transform: uppercase; text-decoration: none; line-height: 1;
  padding: .95rem 1.2rem; border: 1px solid var(--lb-nero); background: var(--lb-nero); color: var(--lb-su-nero);
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.lb-btn svg { flex: none; }
.lb-btn:hover, .lb-btn:focus-visible { background: var(--lb-blu); border-color: var(--lb-blu); color: var(--lb-su-nero); }
.lb-btn--arancio { background: var(--lb-arancio); border-color: var(--lb-su-arancio); color: var(--lb-su-arancio); }
.lb-btn--arancio:hover, .lb-btn--arancio:focus-visible { background: var(--lb-su-arancio); border-color: var(--lb-su-arancio); color: var(--lb-arancio); }
.lb-btn--contorno { background: transparent; color: var(--lb-nero); }
.lb-btn--contorno:hover, .lb-btn--contorno:focus-visible { background: var(--lb-nero); border-color: var(--lb-nero); color: var(--lb-su-nero); }
.lb-btn--piccolo { padding: .7rem .9rem; }
.lb-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.lb-actions > * { margin: 0 !important; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--lb-nero); border: 1px solid var(--lb-nero); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--lb-nero); color: var(--lb-su-nero); }
.wp-block-buttons { gap: .75rem; }

/* ================= Etichette ================= */
.lb-tag {
  font-family: var(--lb-mono); font-size: 0.6875rem; line-height: 1.3; letter-spacing: .06em; text-transform: uppercase;
  color: var(--lb-grigio); margin: 0;
}
.lb-tag strong { color: var(--lb-nero); font-weight: 700; }
.lb-code { font-family: var(--lb-doto); font-weight: 900; line-height: .9; color: var(--lb-blu); margin: 0; letter-spacing: 0; }

/* ================= Sezioni ================= */
.lb-section { padding-block: clamp(3rem, 7vw, 6rem); border-top: 1px solid var(--lb-nero); }
.lb-section.is-pannello { background: var(--lb-pannello); }
.lb-section.is-grigio { background: var(--lb-7035); }
.lb-section.is-scuro { background: var(--lb-fascia); color: #fff; }
.lb-section.is-scuro :is(h2, h3, p) { color: #fff; }
.lb-section.is-scuro .lb-tag { color: #C9CCCE; }
.lb-section.is-scuro a:not(.lb-btn) { color: #fff; }

.lb-sechead { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1rem clamp(1.5rem, 5vw, 5rem); align-items: end; margin-bottom: clamp(2rem, 4vw, 3.25rem) !important; }
.lb-sechead > * { margin: 0; }
.lb-sechead .lb-tag { grid-column: 1 / -1; display: flex; gap: .75rem; align-items: center; }
.lb-sechead .lb-tag::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: .35; }
.lb-sechead h2 { text-wrap: balance; }
.lb-sechead > p:not(.lb-tag) { color: var(--lb-grigio); max-width: 36rem; }
.is-scuro .lb-sechead > p:not(.lb-tag) { color: #D9DBDC; }
@media (max-width: 820px) { .lb-sechead { grid-template-columns: 1fr; } }

/* ================= Hero home (tavola) ================= */
.lb-hero { padding-block: clamp(1.25rem, 3vw, 2.25rem) clamp(2rem, 4vw, 3.5rem); }
.lb-sheet { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); border: 1px solid var(--lb-nero); background: var(--lb-pannello); position: relative; }
.lb-sheet > * { margin: 0 !important; }
.lb-sheet-text { padding: clamp(1.5rem, 3.5vw, 3rem); display: flex; flex-direction: column; gap: 1.5rem; border-right: 1px solid var(--lb-nero); }
.lb-sheet-text > * { margin: 0 !important; }
.lb-sheet-text h1 { text-wrap: balance; font-size: clamp(2.5rem, 1.1rem + 3.6vw, 4.6rem); }
.lb-lead { font-size: var(--wp--preset--font-size--md); line-height: 1.45; color: var(--lb-antracite); max-width: 34rem; }
.lb-sheet-text .lb-actions { margin-top: auto !important; padding-top: .5rem; }
.lb-sheet-fig { display: flex; }
.lb-sheet-fig > * { flex: 1; margin: 0; }
@media (max-width: 960px) {
  .lb-sheet { grid-template-columns: 1fr; }
  .lb-sheet-text { border-right: 0; border-bottom: 1px solid var(--lb-nero); }
}

/* crocini di registro */
.lb-reg::before, .lb-reg::after {
  content: ""; position: absolute; width: 17px; height: 17px; pointer-events: none; z-index: 2;
  background: linear-gradient(var(--lb-nero), var(--lb-nero)) center / 1px 100% no-repeat, linear-gradient(var(--lb-nero), var(--lb-nero)) center / 100% 1px no-repeat;
}
.lb-reg::before { left: -9px; top: -9px; }
.lb-reg::after { right: -9px; bottom: -9px; }

/* ================= Figura tecnica ================= */
.lb-fig { margin: 0; display: flex; flex-direction: column; background-color: var(--lb-superficie); background-image: radial-gradient(circle at 1px 1px, var(--lb-punti) 1px, transparent 1.25px); background-size: 14px 14px; }
.lb-fig-head { display: flex; justify-content: space-between; gap: 1rem; padding: .6rem .9rem; border-bottom: 1px solid var(--lb-nero); background: var(--lb-pannello); }
.lb-fig-draw { flex: 1; display: grid; place-items: center; padding: .75rem; }
.lb-fig svg { display: block; width: 100%; height: auto; color: var(--lb-antracite); }
.lb-fig .ln { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linejoin: round; }
.lb-fig .fn { fill: none; stroke: currentColor; stroke-width: .9; }
.lb-fig .cl { fill: none; stroke: currentColor; stroke-width: .7; stroke-dasharray: 9 3 2 3; }
.lb-fig .ds { fill: none; stroke: currentColor; stroke-width: .9; stroke-dasharray: 4 3; }
.lb-fig .wh { fill: var(--lb-superficie); }
.lb-fig .pn { fill: var(--lb-pannello); }
.lb-fig .sol { fill: currentColor; stroke: none; }
.lb-fig .or { fill: var(--lb-arancio); stroke: var(--lb-nero); stroke-width: 1; }
.lb-fig .bl { fill: none; stroke: var(--lb-blu); stroke-width: 1; }
.lb-fig .bld { fill: none; stroke: var(--lb-blu); stroke-width: 1.2; stroke-dasharray: 5 3; }
.lb-fig .ball { fill: var(--lb-superficie); stroke: var(--lb-blu); stroke-width: 1.2; }
.lb-fig .dot { fill: var(--lb-blu); }
.lb-fig text { font-family: var(--lb-mono); font-size: 10px; fill: currentColor; letter-spacing: .04em; }
.lb-fig .bt { fill: var(--lb-blu); font-size: 11px; font-weight: 700; text-anchor: middle; dominant-baseline: central; letter-spacing: 0; }
.lb-fig .zt { fill: var(--lb-blu); font-size: 9px; }
.lb-legend { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--lb-nero); background: var(--lb-pannello); }
.lb-legend li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .15rem .6rem; padding: .6rem .9rem; border-bottom: 1px solid var(--lb-linea); font-size: 0.8125rem; line-height: 1.35; }
.lb-legend li:nth-child(odd) { border-right: 1px solid var(--lb-linea); }
.lb-legend li:nth-last-child(-n+2) { border-bottom: 0; }
.lb-legend b { grid-row: span 2; display: grid; place-items: center; width: 1.35rem; height: 1.35rem; border: 1.2px solid var(--lb-blu); border-radius: 50%; color: var(--lb-blu); font-family: var(--lb-mono); font-size: .6875rem; }
.lb-legend span { font-family: var(--lb-mono); font-size: .625rem; letter-spacing: .04em; text-transform: uppercase; color: var(--lb-grigio); }
@media (max-width: 520px) { .lb-legend { grid-template-columns: 1fr; } .lb-legend li:nth-child(odd) { border-right: 0; } .lb-legend li:nth-last-child(2) { border-bottom: 1px solid var(--lb-linea); } }

/* ================= Nastro norme ================= */
.lb-strip { background: var(--lb-nastro); color: #E7E8E6; overflow: hidden; border-top: 1px solid var(--lb-nastro); }
.lb-strip-track { display: flex; width: max-content; animation: lb-scorri 60s linear infinite; }
.lb-strip:hover .lb-strip-track { animation-play-state: paused; }
.lb-strip ul { display: flex; list-style: none; margin: 0; padding: 0; }
.lb-strip li { font-family: var(--lb-mono); font-size: 0.75rem; letter-spacing: .06em; text-transform: uppercase; padding: .8rem 1.1rem; white-space: nowrap; display: flex; align-items: center; gap: 1.1rem; }
.lb-strip li::after { content: ""; width: .5rem; height: .5rem; background: var(--lb-arancio); }
@keyframes lb-scorri { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .lb-strip-track { width: auto; } .lb-strip ul[aria-hidden] { display: none; } .lb-strip ul { flex-wrap: wrap; } }

/* ================= Griglia a filetti ================= */
.lb-grid { display: grid; gap: 1px; background: var(--lb-nero); border: 1px solid var(--lb-nero); }
.lb-grid > * { margin: 0 !important; }
.lb-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lb-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lb-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1080px) { .lb-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) { .lb-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .lb-grid-2, .lb-grid-3, .lb-grid-4 { grid-template-columns: 1fr; } }
.lb-cell { background: var(--lb-pannello); padding: clamp(1.25rem, 2.4vw, 1.9rem); display: flex; flex-direction: column; gap: .85rem; position: relative; }
.is-pannello .lb-cell { background: var(--lb-carta); }
.lb-cell > * { margin: 0 !important; }
.lb-cell h3 { font-size: var(--wp--preset--font-size--md); }
.lb-cell p:not(.lb-tag):not(.lb-code) { color: var(--lb-grigio); font-size: var(--wp--preset--font-size--sm); line-height: 1.55; }
.lb-cell .lb-code { font-size: 3rem; }

/* celle servizio cliccabili */
.lb-service h3 a { color: var(--lb-nero); text-decoration: none; }
.lb-service h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.lb-service::after { content: ""; position: absolute; right: 1.1rem; top: 1.1rem; width: 1.1rem; height: 1.1rem; background: var(--lb-nero); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 16 16 4M7 4h9v9' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 16 16 4M7 4h9v9' fill='none' stroke='%23000' stroke-width='1.8'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s ease; }
.lb-service:hover { background: var(--lb-superficie); }
.lb-service:hover::after { transform: translate(3px, -3px); }
.lb-service:hover h3 a { text-decoration: underline; text-decoration-color: var(--lb-arancio); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lb-service:focus-within { outline: 2px solid var(--lb-blu); outline-offset: -2px; }
.lb-service .lb-tag { margin-top: auto !important; padding-top: .5rem; border-top: 1px solid var(--lb-linea); }

/* passi (sequenza reale) */
.lb-steps .lb-code { font-size: 2.6rem; color: var(--lb-arancio); margin-bottom: 1.25rem !important; }

/* ================= Tabella dati ================= */
.lb-spec { margin: 0; }
.lb-spec table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--sm); }
.lb-spec thead { border: 0; }
.lb-spec th { background: var(--lb-nero); color: var(--lb-su-nero); font-family: var(--lb-mono); font-size: 0.6875rem; letter-spacing: .06em; text-transform: uppercase; font-weight: 400; text-align: left; padding: .75rem 1rem; border: 0; }
.lb-spec td { padding: .8rem 1rem; border: 0; border-bottom: 1px solid var(--lb-linea); vertical-align: top; }
.lb-spec th:first-child { width: 32%; }
.lb-spec td:first-child { font-family: var(--lb-mono); font-size: 0.75rem; letter-spacing: .05em; text-transform: uppercase; color: var(--lb-grigio); width: 32%; }
.lb-spec tr:last-child td { border-bottom: 1px solid var(--lb-nero); }
.lb-spec figcaption { font-family: var(--lb-mono); font-size: .6875rem; color: var(--lb-grigio); margin-top: .6rem; text-align: left; }
@media (max-width: 600px) {
  .lb-spec thead { display: none; }
  .lb-spec tr { display: block; border-bottom: 1px solid var(--lb-linea); padding: .6rem 0; }
  .lb-spec td { display: block; border: 0; padding: .15rem 0; width: auto !important; }
  .lb-spec tr:last-child td { border: 0; }
}

/* ================= Domande frequenti ================= */
.lb-faq { border-top: 1px solid var(--lb-nero); }
.lb-faq .wp-block-details { border-bottom: 1px solid var(--lb-linea); margin: 0; padding: 0; }
.lb-faq summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 1fr 1.5rem; gap: 1rem; align-items: center; padding: 1.1rem 0; font-weight: 500; font-size: var(--wp--preset--font-size--md); line-height: 1.3; }
.lb-faq summary::-webkit-details-marker { display: none; }
.lb-faq summary::after { content: ""; width: 1rem; height: 1rem; justify-self: end; background: linear-gradient(var(--lb-nero), var(--lb-nero)) center / 100% 1.5px no-repeat, linear-gradient(var(--lb-nero), var(--lb-nero)) center / 1.5px 100% no-repeat; transition: transform .2s ease; }
.lb-faq details[open] summary::after { transform: rotate(45deg); }
.lb-faq summary:hover { color: var(--lb-blu); }
.lb-faq details > :not(summary) { margin: 0 0 1.25rem; max-width: 46rem; color: var(--lb-antracite); }

/* ================= Hero pagine interne ================= */
.lb-phero { padding-block: clamp(2rem, 5vw, 4rem) clamp(2.5rem, 5vw, 4rem); }
.lb-phero-grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 2rem clamp(2rem, 5vw, 5rem); align-items: end; }
.lb-phero-grid > * { margin: 0 !important; }
.lb-phero-text { display: flex; flex-direction: column; gap: 1.4rem; }
.lb-phero-text > * { margin: 0 !important; }
.lb-phero-text h1 { font-size: var(--wp--preset--font-size--xl); text-wrap: balance; max-width: 20ch; }
.lb-plate { position: relative; border: 1px solid var(--lb-nero); background: var(--lb-pannello); padding: 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .75rem; }
.lb-plate > * { margin: 0 !important; }
.lb-plate .lb-code { font-size: clamp(4.5rem, 3rem + 5vw, 8rem); }
@media (max-width: 820px) { .lb-phero-grid { grid-template-columns: 1fr; } .lb-plate { max-width: 20rem; } }

/* ================= Righe (liste con filetti) ================= */
.lb-cols { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 1.5rem clamp(2rem, 5vw, 5rem); }
.lb-cols > * { margin: 0 !important; }
.lb-cols > :first-child { position: sticky; top: 1.5rem; align-self: start; }
.lb-cols h2 { font-size: var(--wp--preset--font-size--lg); letter-spacing: -0.02em; }
@media (max-width: 820px) { .lb-cols { grid-template-columns: 1fr; } .lb-cols > :first-child { position: static; } }
.lb-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lb-nero); }
.lb-list li { position: relative; padding: .85rem 0 .85rem 1.6rem; border-bottom: 1px solid var(--lb-linea); margin: 0; }
.lb-list li::before { content: ""; position: absolute; left: 0; top: 1.3rem; width: .55rem; height: .55rem; background: var(--lb-arancio); }
.lb-list li strong { font-weight: 600; color: var(--lb-nero); }

/* ================= Nota ================= */
.lb-callout { border: 1px solid var(--lb-nero); border-left: 6px solid var(--lb-arancio); background: var(--lb-pannello); padding: 1rem 1.2rem; font-size: var(--wp--preset--font-size--sm); }
.lb-callout > * { margin: 0 !important; }
.lb-callout > * + * { margin-top: .5rem !important; }

/* ================= CTA finale ================= */
.lb-cta-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 2rem clamp(2rem, 5vw, 5rem); align-items: end; }
.lb-cta-grid > * { margin: 0 !important; }
.lb-cta-grid h2 { text-wrap: balance; }
.lb-cta-side { display: flex; flex-direction: column; gap: 1.25rem; align-items: flex-start; }
.lb-cta-side > * { margin: 0 !important; }
@media (max-width: 820px) { .lb-cta-grid { grid-template-columns: 1fr; } }

/* ================= Articoli ================= */
.lb-posts { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lb-nero); }
.lb-posts li { display: grid; grid-template-columns: 9rem minmax(0, 1fr) 10rem; gap: .5rem 2rem; padding: 1.35rem 0; border-bottom: 1px solid var(--lb-linea); position: relative; align-items: baseline; }
.lb-posts li > * { margin: 0; }
.lb-posts h3 { font-size: var(--wp--preset--font-size--md); }
.lb-posts h3 a { color: var(--lb-nero); text-decoration: none; }
.lb-posts h3 a::after { content: ""; position: absolute; inset: 0; }
.lb-posts li:hover h3 a { text-decoration: underline; text-decoration-color: var(--lb-arancio); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lb-posts p:not(.lb-tag) { color: var(--lb-grigio); font-size: var(--wp--preset--font-size--sm); grid-column: 2; margin-top: .4rem; }
.lb-posts .lb-tag:last-of-type { text-align: right; }
@media (max-width: 760px) { .lb-posts li { grid-template-columns: 1fr; } .lb-posts p:not(.lb-tag) { grid-column: 1; } .lb-posts .lb-tag:last-of-type { text-align: left; } }
.lb-empty { border: 1px dashed var(--lb-linea); padding: 1.5rem; color: var(--lb-grigio); font-family: var(--lb-mono); font-size: .8125rem; margin: 0; }

/* archivio blog (query loop) */
.lb-loop .wp-block-post-template { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lb-nero); }
.lb-loop .wp-block-post { display: grid; grid-template-columns: 9rem minmax(0, 1fr) 10rem; gap: .4rem 2rem; padding: 1.5rem 0; border-bottom: 1px solid var(--lb-linea); margin: 0 !important; position: relative; align-items: baseline; }
.lb-loop .wp-block-post > * { margin: 0 !important; }
.lb-loop .wp-block-post-date, .lb-loop .wp-block-post-terms { font-family: var(--lb-mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--lb-grigio); }
.lb-loop .wp-block-post-terms { text-align: right; position: relative; z-index: 2; }
.lb-loop .wp-block-post-terms a { color: var(--lb-grigio); }
.lb-loop .wp-block-post-title { font-size: var(--wp--preset--font-size--md); font-weight: 600; letter-spacing: -0.01em; }
.lb-loop .wp-block-post-title a { color: var(--lb-nero); text-decoration: none; }
.lb-loop .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.lb-loop .wp-block-post:hover .wp-block-post-title a { text-decoration: underline; text-decoration-color: var(--lb-arancio); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lb-loop .wp-block-post-excerpt { grid-column: 2; color: var(--lb-grigio); font-size: var(--wp--preset--font-size--sm); }
.lb-loop .wp-block-post-excerpt__more-text { display: none; }
@media (max-width: 760px) { .lb-loop .wp-block-post { grid-template-columns: 1fr; } .lb-loop .wp-block-post-excerpt { grid-column: 1; } .lb-loop .wp-block-post-terms { text-align: left; } }
.lb-loop .wp-block-query-pagination { margin-top: 2rem !important; font-family: var(--lb-mono); font-size: .8125rem; gap: 1rem; }
.lb-cats { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.lb-cats li { margin: 0; }
.lb-cats a { display: inline-block; border: 1px solid var(--lb-nero); padding: .45rem .75rem; font-family: var(--lb-mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; color: var(--lb-nero); }
.lb-cats a:hover, .lb-cats .current-cat a { background: var(--lb-nero); color: var(--lb-su-nero); }

/* singolo articolo */
.lb-article-head { padding-block: clamp(2rem, 5vw, 4rem) 2rem; }
.lb-article-head .lb-wrap > * + * { margin-top: 1.25rem !important; }
.lb-article-head h1 { font-size: var(--wp--preset--font-size--xl); max-width: 22ch; text-wrap: balance; }
.lb-article-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; font-family: var(--lb-mono); font-size: .6875rem; letter-spacing: .06em; text-transform: uppercase; color: var(--lb-grigio); border-top: 1px solid var(--lb-nero); border-bottom: 1px solid var(--lb-linea); padding-block: .65rem; }
.lb-article-meta > * { margin: 0 !important; }
.lb-article-meta a { color: var(--lb-grigio); }
.lb-article-body { display: grid; grid-template-columns: minmax(0, 1fr) 14rem; gap: 3rem; padding-bottom: clamp(3rem, 6vw, 5rem); }
.lb-article-body > * { margin: 0 !important; }
.lb-article-side { position: sticky; top: 1.5rem; align-self: start; display: flex; flex-direction: column; gap: 1.25rem; }
.lb-article-side > * { margin: 0 !important; }
@media (max-width: 900px) { .lb-article-body { grid-template-columns: 1fr; } .lb-article-side { position: static; } }

.lb-prose { max-width: 44rem; font-size: 1.0625rem; }
.lb-prose > * + * { margin-top: 1.1rem; }
.lb-prose h2 { font-size: var(--wp--preset--font-size--lg); letter-spacing: -0.02em; margin-top: 2.5rem; padding-top: 1rem; border-top: 1px solid var(--lb-linea); }
.lb-prose h3 { margin-top: 1.75rem; }
.lb-prose :is(ul, ol) { padding-left: 1.25rem; }
.lb-prose li + li { margin-top: .35rem; }
.lb-prose a { text-underline-offset: 3px; }
.lb-prose blockquote { border-left: 4px solid var(--lb-arancio); margin-inline: 0; padding-left: 1.25rem; }
.lb-prose .wp-block-table table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--sm); }
.lb-prose .wp-block-table :is(td, th) { border: 0; border-bottom: 1px solid var(--lb-linea); padding: .6rem .5rem; text-align: left; }
.lb-prose .wp-block-table thead { border-bottom: 0; }
.lb-prose .wp-block-table th { background: var(--lb-nero); color: var(--lb-su-nero); font-family: var(--lb-mono); font-size: .6875rem; text-transform: uppercase; letter-spacing: .05em; font-weight: 400; }

/* condivisione */
.lb-share { display: flex; flex-direction: column; gap: .6rem; }
.lb-share > p { margin: 0; }
.lb-share ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 2.5rem); gap: 1px; background: var(--lb-nero); border: 1px solid var(--lb-nero); width: max-content; }
.lb-share li { margin: 0; }
.lb-share :is(a, button) { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; background: var(--lb-pannello); color: var(--lb-nero); border: 0; padding: 0; cursor: pointer; font: inherit; }
.lb-share :is(a, button):hover, .lb-share :is(a, button):focus-visible { background: var(--lb-su-arancio); color: var(--lb-arancio); }
.lb-share svg { width: 1.05rem; height: 1.05rem; }
.lb-share-note { font-family: var(--lb-mono); font-size: .6875rem; color: var(--lb-grigio); min-height: 1em; }
@media (max-width: 900px) { .lb-share ul { grid-template-columns: repeat(8, 2.5rem); } }
@media (max-width: 400px) { .lb-share ul { grid-template-columns: repeat(4, 2.5rem); } }

/* ================= Contatti ================= */
.lb-contact-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 2.5rem clamp(2rem, 5vw, 5rem); }
.lb-contact-grid > * { margin: 0 !important; }
@media (max-width: 880px) { .lb-contact-grid { grid-template-columns: 1fr; } }
.lb-channels { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lb-nero); }
.lb-channels li { display: grid; grid-template-columns: 5.5rem 1fr; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid var(--lb-linea); margin: 0; align-items: baseline; }
.lb-channels a { overflow-wrap: anywhere; }

.lb-form { display: grid; gap: 1.1rem; border: 1px solid var(--lb-nero); background: var(--lb-pannello); padding: clamp(1.25rem, 3vw, 2rem); position: relative; }
.lb-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 560px) { .lb-form-row { grid-template-columns: 1fr; } }
.lb-form label { display: block; font-family: var(--lb-mono); font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; color: var(--lb-grigio); margin-bottom: .35rem; }
.lb-form :is(input[type="text"], input[type="email"], input[type="tel"], select, textarea) {
  width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; color: var(--lb-nero); background: var(--lb-superficie);
  border: 1px solid var(--lb-antracite); border-radius: 0; padding: .75rem .85rem;
}
.lb-form :is(input, select, textarea):focus { outline: 2px solid var(--lb-blu); outline-offset: 0; border-color: var(--lb-blu); }
.lb-form textarea { min-height: 9rem; resize: vertical; }
.lb-form-note { font-size: .8125rem; color: var(--lb-grigio); margin: 0; line-height: 1.5; }
.lb-form button { justify-self: start; cursor: pointer; }
.lb-hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.lb-note { border: 1px solid var(--lb-nero); border-left: 6px solid var(--lb-blu); background: var(--lb-superficie); padding: .9rem 1rem; font-size: .9375rem; margin: 0; }
.lb-note.is-error { border-left-color: var(--lb-arancio); }

/* ================= Cartiglio (piè di pagina) ================= */
.lb-footer { background: var(--lb-7035); border-top: 1px solid var(--lb-nero); padding-block: clamp(2rem, 4vw, 3rem) 1.5rem; }
.lb-footer > .lb-wrap > * + * { margin-top: 1.25rem !important; }
.lb-title-block { position: relative; display: grid; grid-template-columns: 1.6fr 1.3fr 1.3fr 1.2fr; gap: 1.5px; background: var(--lb-nero); border: 1.5px solid var(--lb-nero); }
.lb-title-block > div { background: var(--lb-pannello); padding: .8rem 1rem; font-size: .875rem; line-height: 1.45; min-width: 0; }
.lb-title-block .lb-tag { display: block; margin-bottom: .25rem; font-size: .625rem; }
.lb-title-block .lb-tb-name { font-family: var(--lb-doto); font-weight: 900; font-size: 1.6rem; line-height: 1.05; color: var(--lb-nero); }
.lb-title-block a { color: var(--lb-nero); text-underline-offset: 3px; overflow-wrap: anywhere; }
.lb-title-block a:hover { color: var(--lb-blu); }
.lb-title-block > .lb-tb-logo { grid-row: span 2; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; background: var(--lb-arancio); }
.lb-tb-logo .lb-tag, .lb-tb-logo .lb-tb-name { color: var(--lb-su-arancio); }
@media (max-width: 960px) { .lb-title-block { grid-template-columns: 1fr 1fr; } .lb-title-block > .lb-tb-logo { grid-row: auto; grid-column: 1 / -1; } }
@media (max-width: 560px) { .lb-title-block { grid-template-columns: 1fr; } }
.lb-legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; font-family: var(--lb-mono); font-size: .6875rem; letter-spacing: .04em; color: var(--lb-antracite); }
.lb-legal p { margin: 0; }
.lb-legal ul { display: flex; flex-wrap: wrap; gap: .4rem 1.25rem; list-style: none; margin: 0; padding: 0; }
.lb-legal a { color: var(--lb-nero); text-underline-offset: 3px; }

/* ================= Pagina generica ================= */
.lb-page-head { padding-block: clamp(2rem, 5vw, 4rem) 2rem; }
.lb-page-head .lb-wrap > * + * { margin-top: 1.1rem !important; }
.lb-page-head h1 { font-size: var(--wp--preset--font-size--xl); text-wrap: balance; }
.lb-page-body { padding-bottom: clamp(3rem, 6vw, 5rem); }

/* 404 / ricerca */
.lb-search .wp-block-search__inside-wrapper { border: 1px solid var(--lb-nero); padding: 0; }
.lb-search .wp-block-search__input { border: 0; padding: .8rem; font: inherit; background: var(--lb-superficie); color: var(--lb-nero); }
.lb-search .wp-block-search__button { margin: 0; }

@media print { .lb-rail, .lb-header::after, .lb-reg::before, .lb-reg::after, .lb-strip, .lb-share { display: none !important; } .wp-site-blocks { padding-left: 0 !important; } }

/* ================= Raccordi ================= */
.lb-content > * { margin-block: 0 !important; }
.lb-section .lb-wrap > .wp-block-buttons { margin-top: 2rem !important; }
.lb-cols-head { display: flex; flex-direction: column; gap: 1rem; }
.lb-cols-head > * { margin: 0 !important; }
.lb-cols-head > p:not(.lb-tag) { color: var(--lb-grigio); max-width: 26rem; }
.lb-cols-body > * { margin: 0 !important; }
.lb-cols-body > * + * { margin-top: 1.5rem !important; }
.lb-cta-title { display: flex; flex-direction: column; gap: 1rem; }
.lb-cta-title > * { margin: 0 !important; }
.is-scuro .lb-btn--contorno { color: #fff; border-color: #fff; }
.is-scuro .lb-btn--contorno:hover, .is-scuro .lb-btn--contorno:focus-visible { background: #fff; color: var(--lb-fascia); border-color: #fff; }
.is-scuro .lb-btn--arancio { border-color: var(--lb-arancio); }
.lb-phero-text .lb-tag a { color: var(--lb-grigio); text-underline-offset: 3px; }
.lb-phero-text .lb-tag a:hover { color: var(--lb-blu); }
.lb-small-h2 { font-size: var(--wp--preset--font-size--lg) !important; }
.lb-contact-info, .lb-contact-form { display: flex; flex-direction: column; gap: 1.1rem; }
.lb-contact-info > *, .lb-contact-form > * { margin: 0 !important; }
.lb-article-head .wp-block-post-excerpt { margin: 0; }
.lb-article-head .wp-block-post-excerpt__excerpt { font-size: var(--wp--preset--font-size--md); line-height: 1.45; max-width: 40rem; margin: 0; }
.lb-article-side .lb-callout .lb-actions { margin-top: .75rem !important; }
.lb-page-body .lb-prose > .wp-block-table { margin-block: 1.25rem; }
.lb-page-head .lb-cats { margin-top: 1.5rem !important; }

/* testata: menu mobile */
.lb-header .wp-block-site-title { white-space: nowrap; }
.lb-header .wp-block-navigation { flex: none; }
.lb-header .wp-block-navigation__responsive-container-open { padding: .35rem; border: 1px solid var(--lb-nero); }
.lb-header .wp-block-navigation__responsive-container-open svg,
.lb-header .wp-block-navigation__responsive-container-close svg { width: 26px; height: 26px; max-width: none; }
@media (max-width: 600px) { .lb-header .lb-btn.lb-header-cta { display: none; } }
.lb-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.lb-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.lb-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; }
.lb-header .is-menu-open .wp-block-navigation__container { width: 100%; gap: 0 !important; border-top: 1px solid var(--lb-nero); }
.lb-header .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--lb-linea); }
.lb-header .is-menu-open .wp-block-navigation-item__content { font-size: .875rem; padding: .95rem 0 !important; }
.lb-header .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; background: transparent !important; padding: 0 0 .5rem 1rem !important; width: 100%; }
.lb-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { border-bottom: 0; }
.lb-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .5rem 0 !important; color: var(--lb-grigio); }

/* ================= Modalità scura =================
   Si attiva con la preferenza di sistema o con il pulsante in testata (data-tema sull'elemento html). */
html { color-scheme: light; }
html[data-tema="scuro"] {
  --wp--preset--color--carta: #1A1D20;
  --wp--preset--color--pannello: #212529;
  --wp--preset--color--ral-7035: #2A2F34;
  --wp--preset--color--linea: #434A50;
  --wp--preset--color--grigio: #A6ADB2;
  --wp--preset--color--antracite: #D5D8DA;
  --wp--preset--color--nero: #ECEEEB;
  --wp--preset--color--blu: #86B6EE;
  --wp--preset--color--bianco: #121518;
  --lb-su-nero: #15181B;
  --lb-fascia: #0F1113;
  --lb-nastro: #0B0D0E;
  --lb-superficie: #15181B;
  --lb-punti: #363D43;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  html:not([data-tema="chiaro"]) {
    --wp--preset--color--carta: #1A1D20;
    --wp--preset--color--pannello: #212529;
    --wp--preset--color--ral-7035: #2A2F34;
    --wp--preset--color--linea: #434A50;
    --wp--preset--color--grigio: #A6ADB2;
    --wp--preset--color--antracite: #D5D8DA;
    --wp--preset--color--nero: #ECEEEB;
    --wp--preset--color--blu: #86B6EE;
    --wp--preset--color--bianco: #121518;
    --lb-su-nero: #15181B;
    --lb-fascia: #0F1113;
    --lb-nastro: #0B0D0E;
    --lb-superficie: #15181B;
    --lb-punti: #363D43;
    color-scheme: dark;
  }
}

/* pulsante tema */
.lb-tema { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; padding: 0; background: transparent; color: var(--lb-nero); border: 1px solid var(--lb-nero); cursor: pointer; flex: none; transition: background-color .15s ease, color .15s ease; }
.lb-tema:hover, .lb-tema:focus-visible { background: var(--lb-nero); color: var(--lb-su-nero); }
.lb-tema svg { width: 1.1rem; height: 1.1rem; }
.lb-tema .lb-tema-sole { display: none; }
html[data-tema="scuro"] .lb-tema .lb-tema-luna { display: none; }
html[data-tema="scuro"] .lb-tema .lb-tema-sole { display: block; }
@media (prefers-color-scheme: dark) {
  html:not([data-tema="chiaro"]) .lb-tema .lb-tema-luna { display: none; }
  html:not([data-tema="chiaro"]) .lb-tema .lb-tema-sole { display: block; }
}
.lb-nav-wrap { gap: 1rem; }
@media (max-width: 600px) { .lb-nav-wrap { gap: .6rem; } }

/* menu mobile aperto: colori del tema (anche in modalità scura) */
.lb-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open { background-color: var(--lb-carta) !important; color: var(--lb-nero) !important; }
.lb-header .wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open a,
.lb-header .wp-block-navigation .wp-block-navigation__responsive-container-close { color: var(--lb-nero) !important; }
.lb-header .wp-block-navigation .is-menu-open .wp-block-navigation__submenu-container a { color: var(--lb-grigio) !important; }
.lb-header .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container { color: var(--lb-nero); }
