/*
Theme Name: Lorenzo Bianco 2026
Theme URI: https://www.lorenzobianco.it
Author: Lorenzo Bianco
Description: Sito personale di Lorenzo Bianco, consulente assicurativo a Mantova. Pagine per pubblico, guide, contatti in ogni pagina (WhatsApp, preventivo, appuntamento, newsletter) e dati dell'intermediario nel footer. Impostazioni in Aspetto > Impostazioni sito.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 7.4
License: Private
Text Domain: lorenzobianco
*/

:root {
	--crema: #FAF8F4;
	--crema-2: #F2EEE6;
	--bianco: #FFFFFF;
	--inchiostro: #1A1917;
	--grigio: #5F5C55;
	--grigio-chiaro: #8F8B83;
	--bordo: rgba(26, 25, 23, 0.12);
	--bordo-chiaro: rgba(26, 25, 23, 0.07);
	--verde: #1D9E75;
	--verde-scuro: #0F6E56;
	--verde-bg: #E1F5EE;
	--blu: #185FA5;
	--blu-bg: #E6F1FB;
	--viola: #3C3489;
	--viola-bg: #EEEDFE;
	--ambra: #854F0B;
	--ambra-bg: #FAEEDA;
	--rosso: #A32D2D;
	--rosso-bg: #FCEBEB;
	--wa: #128C4A;
	--serif: 'Lora', Georgia, serif;
	--sans: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--largo: 1080px;
	--lettura: 700px;
	--lato: 20px;
	--raggio: 10px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 80px; }
body {
	margin: 0;
	font-family: var(--sans);
	font-size: 17px;
	line-height: 1.65;
	color: var(--inchiostro);
	background: var(--crema);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--verde-scuro); text-underline-offset: 3px; }
a:hover { color: var(--inchiostro); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 .6em; color: var(--inchiostro); }
h1 { font-size: clamp(2rem, 5vw, 3.1rem); }
h2 { font-size: clamp(1.6rem, 3.4vw, 2.2rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
:focus-visible { outline: 3px solid var(--verde); outline-offset: 2px; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }
.lb-salta:focus { position: fixed !important; top: 8px; left: 8px; width: auto; height: auto; clip: auto; padding: 8px 14px; background: var(--inchiostro); color: var(--crema); z-index: 1000; border-radius: 6px; }

.lb-wrap { max-width: var(--largo); margin: 0 auto; padding: 0 var(--lato); }

/* ---------- Header ---------- */
.lb-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(250, 248, 244, .94);
	backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--bordo-chiaro);
}
.admin-bar .lb-header { top: 32px; }
.lb-header__in { max-width: var(--largo); margin: 0 auto; padding: 0 var(--lato); height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.lb-logo { text-decoration: none; color: var(--inchiostro); display: flex; flex-direction: column; line-height: 1.15; }
.lb-logo__nome { font-family: var(--serif); font-size: 1.2rem; font-weight: 500; }
.lb-logo__sotto { font-size: .75rem; color: var(--grigio); letter-spacing: .02em; }
.lb-nav { display: flex; align-items: center; gap: 8px; }
.lb-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 4px; }
.lb-menu > li { position: relative; }
.lb-menu a, .lb-sub-toggle {
	display: block; padding: 8px 12px; font: 500 .94rem/1.2 var(--sans); color: var(--grigio);
	text-decoration: none; background: none; border: 0; cursor: pointer; border-radius: 6px;
}
.lb-menu a:hover, .lb-sub-toggle:hover, .lb-menu .current-menu-item > a { color: var(--inchiostro); background: rgba(26, 25, 23, .05); }
.lb-sub-toggle::after { content: ''; display: inline-block; width: 6px; height: 6px; margin-left: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); }
.lb-menu .sub-menu {
	list-style: none; margin: 0; padding: 8px; position: absolute; top: calc(100% + 6px); left: 0; min-width: 260px;
	background: var(--bianco); border: 1px solid var(--bordo); border-radius: var(--raggio); box-shadow: 0 12px 30px rgba(26, 25, 23, .1);
	display: none;
}
.lb-menu .menu-item-has-children:hover > .sub-menu,
.lb-menu .menu-item-has-children:focus-within > .sub-menu,
.lb-sub-toggle[aria-expanded="true"] + .sub-menu { display: block; }
.lb-menu .sub-menu a { padding: 10px 12px; color: var(--inchiostro); }
.lb-nav__cta { margin-left: 8px; }
.lb-burger { display: none; width: 44px; height: 44px; border: 0; background: none; cursor: pointer; padding: 10px; flex-direction: column; justify-content: center; gap: 5px; }
.lb-burger span:not(.screen-reader-text) { display: block; height: 2px; background: var(--inchiostro); border-radius: 2px; transition: transform .2s, opacity .2s; }

@media (max-width: 900px) {
	.lb-burger { display: flex; }
	.lb-nav {
		position: fixed; inset: 68px 0 0 0; background: var(--crema); flex-direction: column; align-items: stretch;
		padding: 16px var(--lato) 32px; gap: 0; overflow-y: auto; display: none;
	}
	.admin-bar .lb-nav { top: 114px; }
	.lb-menu-aperto .lb-nav { display: flex; }
	.lb-menu-aperto { overflow: hidden; }
	.lb-menu { flex-direction: column; align-items: stretch; }
	.lb-menu a, .lb-sub-toggle { font-size: 1.1rem; padding: 14px 4px; width: 100%; text-align: left; color: var(--inchiostro); border-bottom: 1px solid var(--bordo-chiaro); border-radius: 0; }
	.lb-menu .sub-menu { position: static; display: block; box-shadow: none; border: 0; padding: 0 0 0 14px; background: none; min-width: 0; }
	.lb-sub-toggle::after { display: none; }
	.lb-nav__cta { margin: 20px 0 0; text-align: center; }
	.lb-menu-aperto .lb-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	.lb-menu-aperto .lb-burger span:nth-child(2) { opacity: 0; }
	.lb-menu-aperto .lb-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
}
@media (max-width: 782px) { .admin-bar .lb-header { top: 46px; } .admin-bar .lb-nav { top: 114px; } }

/* ---------- Bottoni ---------- */
.lb-btn, .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 13px 22px; border-radius: 8px; font: 600 .98rem/1.2 var(--sans); text-decoration: none; cursor: pointer;
	border: 1.5px solid transparent; transition: transform .12s, background .15s, color .15s;
}
.lb-btn:hover, .wp-block-button__link:hover { transform: translateY(-1px); }
.lb-btn--scuro, .wp-block-button__link { background: var(--inchiostro); color: var(--crema); }
.lb-btn--scuro:hover, .wp-block-button__link:hover { color: var(--crema); background: #000; }
.lb-btn--chiaro, .is-style-outline .wp-block-button__link { background: transparent; color: var(--inchiostro); border-color: var(--inchiostro); }
.lb-btn--chiaro:hover, .is-style-outline .wp-block-button__link:hover { background: var(--inchiostro); color: var(--crema); }
.lb-btn--wa, .lb-btn-wa .wp-block-button__link { background: var(--wa); color: #fff; border-color: var(--wa); }
.lb-btn--wa:hover, .lb-btn-wa .wp-block-button__link:hover { background: #0d6e3a; color: #fff; }
.lb-btn-wa .wp-block-button__link::before, .lb-btn--wa::before {
	content: ''; width: 18px; height: 18px; flex: none;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M16 3C9 3 3.3 8.6 3.3 15.5c0 2.4.7 4.7 2 6.7L3.2 29l7-2c1.8 1 3.9 1.6 5.8 1.6 7 0 12.7-5.6 12.7-12.6S23 3 16 3zm5.8 15.3c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-1 1.2-.2.2-.4.2-.7.1-.3-.2-1.3-.5-2.6-1.6-1-.8-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.3.3-.6.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.7s1.2 3.2 1.4 3.4c.2.2 2.4 3.6 5.7 5 .8.3 1.4.5 1.9.7.8.2 1.5.2 2.1.1.6-.1 1.9-.8 2.2-1.5.3-.7.3-1.4.2-1.5-.1-.2-.3-.3-.7-.5z'/%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 32 32'%3E%3Cpath d='M16 3C9 3 3.3 8.6 3.3 15.5c0 2.4.7 4.7 2 6.7L3.2 29l7-2c1.8 1 3.9 1.6 5.8 1.6 7 0 12.7-5.6 12.7-12.6S23 3 16 3zm5.8 15.3c-.3-.2-1.9-.9-2.2-1-.3-.1-.5-.2-.7.2-.2.3-.8 1-1 1.2-.2.2-.4.2-.7.1-.3-.2-1.3-.5-2.6-1.6-1-.8-1.6-1.9-1.8-2.2-.2-.3 0-.5.1-.7l.5-.6c.2-.2.2-.3.3-.6.1-.2 0-.4 0-.6l-1-2.4c-.3-.6-.5-.5-.7-.5h-.6c-.2 0-.6.1-.9.4-.3.3-1.2 1.1-1.2 2.7s1.2 3.2 1.4 3.4c.2.2 2.4 3.6 5.7 5 .8.3 1.4.5 1.9.7.8.2 1.5.2 2.1.1.6-.1 1.9-.8 2.2-1.5.3-.7.3-1.4.2-1.5-.1-.2-.3-.3-.7-.5z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.lb-bottoni, .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin: 1.6em 0 0; }
.wp-block-button { margin: 0; }
.lb-sezione--scura .wp-block-button__link { background: var(--crema); color: var(--inchiostro); }
.lb-sezione--scura .is-style-outline .wp-block-button__link { background: transparent; color: var(--crema); border-color: var(--crema); }
.lb-sezione--scura .lb-btn-wa .wp-block-button__link { background: var(--wa); color: #fff; border-color: var(--wa); }

.lb-link { font-weight: 600; text-decoration: none; color: var(--inchiostro); }
.lb-link:hover { color: var(--verde-scuro); }

/* ---------- Sezioni delle pagine (gruppi dell'editor) ---------- */
.lb-contenuto > *:not(.lb-hero):not(.lb-sezione) { max-width: var(--largo); margin-left: auto; margin-right: auto; padding-left: var(--lato); padding-right: var(--lato); }
.lb-hero, .lb-sezione { padding: 72px var(--lato); margin: 0; }
.lb-hero > *, .lb-sezione > * { max-width: var(--largo); margin-left: auto; margin-right: auto; }
.lb-hero > .wp-block-columns, .lb-sezione > .wp-block-columns { margin-bottom: 0; }
.lb-hero { padding-top: 64px; padding-bottom: 72px; }
.lb-hero h1 { max-width: 15em; margin-left: 0; }
.lb-hero > h1, .lb-hero > .lb-lead, .lb-hero > .lb-occhiello, .lb-hero > .wp-block-buttons, .lb-hero > .lb-fiducia { margin-left: auto; margin-right: auto; }
.lb-hero--corto { padding-top: 56px; padding-bottom: 32px; }
.lb-hero .wp-block-column h1 { max-width: none; }
.lb-sezione--crema2 { background: var(--crema-2); }
.lb-sezione--bianca { background: var(--bianco); }
.lb-sezione--scura { background: var(--inchiostro); color: var(--crema); }
.lb-sezione--scura h2, .lb-sezione--scura h3 { color: var(--crema); }
.lb-sezione--scura a:not(.wp-block-button__link) { color: #9FE1CB; }
.lb-sezione--stretta > * { max-width: var(--lettura); }
.lb-sezione > h2 { max-width: var(--largo); }
.lb-sezione > .lb-intro { color: var(--grigio); font-size: 1.08rem; max-width: var(--largo); }
.lb-sezione > .lb-intro, .lb-sezione > h2 { padding-right: max(0px, calc(100% - 760px)); }
.lb-sezione--scura > .lb-intro { color: rgba(250, 248, 244, .75); }

.lb-occhiello { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--verde-scuro); margin-bottom: 1rem; }
.lb-occhiello a { color: inherit; text-decoration: none; }
.lb-sezione--scura .lb-occhiello { color: #9FE1CB; }
.lb-lead { font-size: clamp(1.08rem, 2vw, 1.25rem); color: var(--grigio); max-width: 36em; }
.lb-fiducia { display: flex; flex-wrap: wrap; gap: 8px 20px; list-style: none; padding: 0; margin-top: 1.6em; font-size: .92rem; color: var(--grigio); }
.lb-fiducia li::before { content: '✓'; color: var(--verde); font-weight: 700; margin-right: 6px; }

/* Colonne come carte, passi, numeri */
.wp-block-columns { display: flex; flex-wrap: wrap; gap: 24px; margin: 2em 0 0; }
.wp-block-column { flex: 1 1 0; min-width: 0; }
@media (max-width: 781px) { .wp-block-columns { flex-direction: column; } .wp-block-column { flex-basis: 100% !important; } }
.wp-block-columns.are-vertically-aligned-center, .lb-hero .wp-block-columns { align-items: center; }
.lb-hero .wp-block-columns { gap: 48px; margin-top: 0; }

.lb-carte > .wp-block-column, .lb-carta {
	background: var(--bianco); border: 1px solid var(--bordo); border-radius: 14px; padding: 26px 24px; display: flex; flex-direction: column;
}
.lb-carte > .wp-block-column > :last-child { margin-bottom: 0; }
.lb-carte h3 { margin-bottom: .4em; }
.lb-carte p { color: var(--grigio); font-size: .98rem; }
.lb-carte .lb-link, .lb-carte p:last-child a { margin-top: auto; }
.lb-carte .wp-block-list { padding-left: 1.1em; color: var(--grigio); font-size: .96rem; }
.lb-carte--link > .wp-block-column { transition: border-color .15s, transform .15s; }
.lb-carte--link > .wp-block-column:hover { border-color: var(--inchiostro); transform: translateY(-2px); }
.lb-sezione--scura .lb-carte > .wp-block-column { background: rgba(250, 248, 244, .06); border-color: rgba(250, 248, 244, .15); }
.lb-sezione--scura .lb-carte p { color: rgba(250, 248, 244, .75); }

.lb-passi { counter-reset: passo; }
.lb-passi > .wp-block-column { counter-increment: passo; position: relative; padding-top: 56px; }
.lb-passi > .wp-block-column::before {
	content: counter(passo); position: absolute; top: 0; left: 0; width: 40px; height: 40px; border-radius: 50%;
	background: var(--verde-bg); color: var(--verde-scuro); font: 600 1.1rem/40px var(--serif); text-align: center;
}
.lb-sezione--scura .lb-passi > .wp-block-column::before { background: rgba(159, 225, 203, .15); color: #9FE1CB; }
.lb-passi p { color: var(--grigio); }
.lb-sezione--scura .lb-passi p { color: rgba(250, 248, 244, .75); }

.lb-numeri > .wp-block-column { border-left: 2px solid var(--verde); padding-left: 18px; }
.lb-numero { font-family: var(--serif); font-size: clamp(2.4rem, 6vw, 3.6rem); line-height: 1; margin-bottom: .25em; color: var(--inchiostro); }
.lb-sezione--scura .lb-numero { color: var(--crema); }
.lb-numeri p:not(.lb-numero) { color: var(--grigio); font-size: .98rem; }
.lb-sezione--scura .lb-numeri p:not(.lb-numero) { color: rgba(250, 248, 244, .75); }

.lb-citazione { font-family: var(--serif); font-style: italic; font-size: 1.3rem; line-height: 1.5; border-left: 3px solid var(--verde); padding-left: 20px; margin: 1.5em 0; }

/* ---------- Foto ---------- */
.lb-foto { width: 100%; margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 4 / 5; background: var(--crema-2); position: relative; max-width: 420px; margin-left: auto; }
.lb-foto img { width: 100%; height: 100%; object-fit: cover; }
.lb-foto--agenzia { aspect-ratio: 4 / 3; max-width: none; }
.lb-foto--vuota { display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--bordo); background: linear-gradient(160deg, var(--crema-2), #E8E2D6); }
.lb-foto--vuota span { font: 500 4rem/1 var(--serif); color: rgba(26, 25, 23, .25); }
.lb-foto--vuota figcaption { margin-top: 10px; font-size: .85rem; color: var(--grigio-chiaro); }
@media (max-width: 781px) { .lb-foto { max-width: 280px; margin: 0 auto; aspect-ratio: 1; } }

/* ---------- Guide ---------- */
.lb-griglia-art { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; margin-top: 1.5em; }
.lb-card-art { background: var(--bianco); border: 1px solid var(--bordo); border-radius: 14px; padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.lb-card-art h3 { font-size: 1.15rem; margin: 4px 0 0; }
.lb-card-art h3 a { color: var(--inchiostro); text-decoration: none; }
.lb-card-art h3 a:hover { text-decoration: underline; }
.lb-card-art p { color: var(--grigio); font-size: .95rem; margin: 0; }
.lb-card-art .lb-link { margin-top: auto; font-size: .92rem; }
.lb-pill { align-self: flex-start; display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: .72rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.lb-pill--verde { background: var(--verde-bg); color: var(--verde-scuro); }
.lb-pill--viola { background: var(--viola-bg); color: var(--viola); }
.lb-pill--blu { background: var(--blu-bg); color: var(--blu); }
.lb-pill--ambra { background: var(--ambra-bg); color: var(--ambra); }
.lb-pill--rosso { background: var(--rosso-bg); color: var(--rosso); }

.lb-temi { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; margin-top: 1.5em; }
.lb-tema { display: flex; flex-direction: column; gap: 4px; padding: 20px; border-radius: 12px; text-decoration: none; color: var(--inchiostro); border: 1px solid transparent; transition: border-color .15s; }
.lb-tema:hover { border-color: currentColor; color: var(--inchiostro); }
.lb-tema strong { font-family: var(--serif); font-weight: 500; font-size: 1.12rem; }
.lb-tema span { font-size: .9rem; color: var(--grigio); line-height: 1.4; }
.lb-tema em { font-style: normal; font-size: .78rem; font-weight: 600; margin-top: 8px; }
.lb-tema--verde { background: var(--verde-bg); } .lb-tema--verde em { color: var(--verde-scuro); }
.lb-tema--viola { background: var(--viola-bg); } .lb-tema--viola em { color: var(--viola); }
.lb-tema--blu { background: var(--blu-bg); } .lb-tema--blu em { color: var(--blu); }
.lb-tema--ambra { background: var(--ambra-bg); } .lb-tema--ambra em { color: var(--ambra); }
.lb-tema--rosso { background: var(--rosso-bg); } .lb-tema--rosso em { color: var(--rosso); }
.lb-sezione--tema { padding-top: 40px; padding-bottom: 40px; border-top: 1px solid var(--bordo-chiaro); }
.lb-tema-testa h2 { margin-bottom: .2em; }
.lb-tema-testa p { color: var(--grigio); }
.lb-paginazione { margin-top: 2em; }
.lb-paginazione .nav-links { display: flex; gap: 12px; flex-wrap: wrap; }
.lb-paginazione .page-numbers { padding: 6px 12px; border: 1px solid var(--bordo); border-radius: 6px; text-decoration: none; }
.lb-paginazione .current { background: var(--inchiostro); color: var(--crema); }

/* ---------- Lettura (articoli e pagine di testo) ---------- */
.lb-lettura { max-width: calc(var(--lettura) + 2 * var(--lato)); margin: 0 auto; padding: 56px var(--lato) 24px; }
.lb-lettura__testa { margin-bottom: 2em; }
.lb-lettura__testa .lb-pill { margin-bottom: 1rem; }
.lb-meta { color: var(--grigio-chiaro); font-size: .9rem; }
.lb-articolo__img { margin: 0 0 2em; border-radius: 14px; overflow: hidden; }
.lb-prosa { font-size: 1.08rem; line-height: 1.75; }
.lb-prosa h2 { font-size: 1.6rem; margin-top: 1.8em; }
.lb-prosa h3 { font-size: 1.25rem; margin-top: 1.5em; }
.lb-prosa ul, .lb-prosa ol { padding-left: 1.3em; margin: 0 0 1.2em; }
.lb-prosa li { margin-bottom: .4em; }
.lb-prosa blockquote { margin: 1.5em 0; padding: 4px 0 4px 20px; border-left: 3px solid var(--verde); font-family: var(--serif); font-style: italic; }
.lb-prosa em { color: var(--grigio); }
.lb-prosa a { color: var(--verde-scuro); }

.lb-cta-box { margin: 3em 0 1em; padding: 32px; background: var(--inchiostro); color: var(--crema); border-radius: 16px; }
.lb-cta-box h2 { color: var(--crema); font-size: 1.5rem; }
.lb-cta-box p { color: rgba(250, 248, 244, .8); }
.lb-cta-box .lb-btn--scuro { background: var(--crema); color: var(--inchiostro); }

/* ---------- Tabelle ---------- */
.wp-block-table { margin: 1.5em 0; overflow-x: auto; }
.wp-block-table table { width: 100%; border-collapse: collapse; background: var(--bianco); border-radius: 12px; overflow: hidden; font-size: .97rem; }
.wp-block-table th, .wp-block-table td { padding: 12px 16px; text-align: left; border-bottom: 1px solid var(--bordo-chiaro); vertical-align: top; }
.wp-block-table thead th { background: var(--crema-2); font-weight: 600; font-size: .85rem; letter-spacing: .02em; }
.wp-block-table tr:last-child td { border-bottom: 0; }
.wp-block-table figcaption { font-size: .85rem; color: var(--grigio); margin-top: .6em; }

/* ---------- Moduli ---------- */
.lb-modulo { background: var(--bianco); border: 1px solid var(--bordo); border-radius: 16px; padding: 28px; }
.lb-modulo__titolo { font-size: 1.4rem; margin-bottom: .2em; }
.lb-modulo__sotto { color: var(--grigio); font-size: .97rem; }
.lb-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; margin-top: 1.2em; }
.lb-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.lb-campo--largo { grid-column: 1 / -1; }
@media (max-width: 600px) { .lb-form { grid-template-columns: 1fr; } .lb-modulo { padding: 20px; } }
.lb-campo label, .lb-campo legend { font-size: .9rem; font-weight: 600; color: var(--inchiostro); }
.lb-campo fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.lb-campo legend { margin-bottom: 8px; padding: 0; }
.lb-obbl { color: var(--rosso); }
.lb-form input[type=text], .lb-form input[type=tel], .lb-form input[type=email], .lb-form input[type=date], .lb-form select, .lb-form textarea {
	width: 100%; font: 400 1rem/1.4 var(--sans); color: var(--inchiostro); background: var(--crema);
	border: 1px solid var(--bordo); border-radius: 8px; padding: 12px 14px; min-height: 48px;
}
.lb-form input:focus, .lb-form select:focus, .lb-form textarea:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(29, 158, 117, .18); background: var(--bianco); }
.lb-scelte { display: flex; flex-wrap: wrap; gap: 8px; }
.lb-scelta { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--bordo); border-radius: 8px; font-weight: 400 !important; cursor: pointer; background: var(--crema); }
.lb-scelta:has(input:checked) { border-color: var(--verde); background: var(--verde-bg); }
.lb-scelta input, .lb-consenso input { accent-color: var(--verde); width: 18px; height: 18px; margin: 0; flex: none; }
.lb-consenso { display: flex !important; flex-direction: row; gap: 10px; align-items: flex-start; font-weight: 400 !important; font-size: .9rem !important; color: var(--grigio) !important; line-height: 1.45; }
.lb-consenso input { margin-top: 2px; }
.lb-modulo__nota { font-size: .9rem; color: var(--grigio); margin: 12px 0 0; }
.lb-form button { justify-self: start; }
.lb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.lb-avviso { padding: 14px 16px; border-radius: 8px; margin-top: 1em; font-size: .97rem; }
.lb-avviso--ok { background: var(--verde-bg); color: var(--verde-scuro); }
.lb-avviso--errore { background: var(--rosso-bg); color: var(--rosso); }

.lb-newsletter { background: var(--inchiostro); color: var(--crema); border-radius: 16px; padding: 32px; display: grid; gap: 16px; }
.lb-newsletter h3 { color: var(--crema); font-size: 1.35rem; margin-bottom: .3em; }
.lb-newsletter p { color: rgba(250, 248, 244, .75); margin: 0; }
.lb-newsletter__form { display: flex; flex-wrap: wrap; gap: 10px; }
.lb-newsletter__form input[type=email] { flex: 1 1 220px; min-height: 48px; padding: 12px 14px; border-radius: 8px; border: 1px solid rgba(250, 248, 244, .3); background: rgba(250, 248, 244, .08); color: var(--crema); font: 400 1rem var(--sans); }
.lb-newsletter__form input[type=email]::placeholder { color: rgba(250, 248, 244, .5); }
.lb-newsletter .lb-btn--chiaro { color: var(--crema); border-color: var(--crema); }
.lb-newsletter .lb-btn--chiaro:hover { background: var(--crema); color: var(--inchiostro); }
.lb-consenso--chiaro { color: rgba(250, 248, 244, .7) !important; flex-basis: 100%; }
.lb-consenso--chiaro a { color: #9FE1CB; }
.lb-newsletter__ok { color: #9FE1CB !important; font-weight: 600; }
.lb-newsletter__err { color: #F5B5B5 !important; flex-basis: 100%; }

.lb-recapiti { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.lb-recapiti li { display: grid; grid-template-columns: 90px 1fr; gap: 12px; font-size: .98rem; }
.lb-recapiti span { color: var(--grigio-chiaro); font-size: .82rem; text-transform: uppercase; letter-spacing: .08em; padding-top: 3px; }
.lb-sezione--scura .lb-recapiti span { color: rgba(250, 248, 244, .55); }

.lb-avvertenza { font-size: .82rem !important; color: var(--grigio-chiaro) !important; line-height: 1.5; margin-top: 2em; }

/* ---------- Footer ---------- */
.lb-footer { background: var(--inchiostro); color: rgba(250, 248, 244, .75); font-size: .92rem; margin-top: 0; }
.lb-footer a { color: var(--crema); text-decoration: none; }
.lb-footer a:hover { text-decoration: underline; color: var(--crema); }
.lb-footer__in { max-width: var(--largo); margin: 0 auto; padding: 56px var(--lato) 32px; display: grid; grid-template-columns: 2fr 1fr 1.3fr; gap: 32px; }
@media (max-width: 781px) { .lb-footer__in { grid-template-columns: 1fr; } }
.lb-footer__nome { font: 500 1.3rem var(--serif); color: var(--crema); }
.lb-footer__tit { color: var(--crema); font-weight: 600; font-size: .8rem; text-transform: uppercase; letter-spacing: .1em; }
.lb-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.lb-footer__legale { max-width: var(--largo); margin: 0 auto; padding: 20px var(--lato) 96px; border-top: 1px solid rgba(250, 248, 244, .12); font-size: .8rem; line-height: 1.55; color: rgba(250, 248, 244, .6); }
.lb-footer__legale a { text-decoration: underline; }

.lb-wa-fisso {
	position: fixed; right: 18px; bottom: 18px; z-index: 90; display: inline-flex; align-items: center; gap: 8px;
	padding: 12px 18px 12px 14px; border-radius: 40px; background: var(--wa); color: #fff; text-decoration: none; font-weight: 600;
	box-shadow: 0 8px 24px rgba(18, 140, 74, .35);
}
.lb-wa-fisso:hover { color: #fff; background: #0d6e3a; }
@media (max-width: 600px) { .lb-wa-fisso span { display: none; } .lb-wa-fisso { padding: 14px; } }

/* Blocchi base dell'editor */
.wp-block-separator { border: 0; border-top: 1px solid var(--bordo); margin: 2.5em auto; }
.wp-block-image { margin: 1.5em 0; }
.wp-block-image img { border-radius: 12px; }
.has-text-align-center { text-align: center; }
.aligncenter { margin-left: auto; margin-right: auto; }
.wp-block-details { border: 1px solid var(--bordo); border-radius: 10px; padding: 14px 18px; background: var(--bianco); margin: 0 0 10px; }
.wp-block-details summary { font-weight: 600; cursor: pointer; }
.wp-block-details > :not(summary) { color: var(--grigio); margin-top: .8em; }

/* ---------- Check-up condominio ---------- */
.cu { padding: 48px var(--lato) 72px; }
.cu-col { max-width: 600px; margin: 0 auto; }
.cu-intro { text-align: center; }
.cu-intro h1 { font-size: clamp(1.8rem, 4.5vw, 2.4rem); }
.cu-intro p:not(.lb-occhiello) { color: var(--grigio); max-width: 30em; margin: 0 auto; }
.cu-track { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; margin: 28px 0 8px; }
.cu-track i { height: 4px; border-radius: 4px; background: var(--bordo); transition: background .3s; }
.cu-track i.cu-done { background: var(--verde); }
.cu-where { font-size: .85rem; color: var(--grigio); text-align: center; margin: 0; }
#cu-form { margin: 18px 0 28px; }
.cu-step { display: none; background: var(--bianco); border: 1px solid var(--bordo); border-radius: 18px; padding: 28px 22px 24px; }
.cu-step.cu-on { display: block; }
@media (prefers-reduced-motion: no-preference) { .cu-step.cu-on { animation: cu-in .28s ease-out; } }
@keyframes cu-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.cu-step h2 { font-size: 1.4rem; margin-bottom: .2em; }
.cu-hint { margin: 0 0 18px; font-size: .92rem; color: var(--grigio); }
.cu-opts { display: grid; gap: 10px; }
.cu-opt { position: relative; display: block; }
.cu-opt input, .cu-slot input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.cu-opt span { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1.5px solid var(--bordo); border-radius: 12px; cursor: pointer; transition: border-color .15s, background .15s; }
.cu-opt span::before { content: ""; flex: none; width: 18px; height: 18px; border: 1.5px solid var(--grigio-chiaro); border-radius: 50%; }
.cu-opt input[type=checkbox] + span::before { border-radius: 5px; }
.cu-opt:hover span { border-color: var(--grigio-chiaro); }
.cu-opt input:checked + span { border-color: var(--verde); background: var(--verde-bg); color: var(--verde-scuro); font-weight: 600; }
.cu-opt input:checked + span::before { border-color: var(--verde); background: var(--verde); box-shadow: inset 0 0 0 3px var(--verde-bg); }
.cu-opt input[type=checkbox]:checked + span::before { box-shadow: none; }
.cu-opt input:focus-visible + span, .cu-slot input:focus-visible + span { outline: 3px solid var(--verde); outline-offset: 2px; }
.cu-nav { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.cu-nav .lb-btn { margin-left: auto; }
.cu-back { background: none; border: 0; padding: 10px 2px; font: 500 .95rem var(--sans); color: var(--grigio); cursor: pointer; }
.cu-back:hover { color: var(--inchiostro); }
.cu-fields { display: grid; gap: 14px; }
.cu-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 520px) { .cu-pair { grid-template-columns: 1fr; } }
.cu-f { display: block; font-size: .9rem; font-weight: 600; }
.cu-f input { display: block; width: 100%; margin-top: 6px; padding: 12px 14px; min-height: 48px; border: 1px solid var(--bordo); border-radius: 8px; background: var(--crema); font: 400 1rem var(--sans); color: var(--inchiostro); }
.cu-f input:focus { outline: none; border-color: var(--verde); box-shadow: 0 0 0 3px rgba(29, 158, 117, .18); background: var(--bianco); }
.cu-f input.cu-pre { background: var(--crema-2); }
.cu-slots-title { display: block; font-size: .9rem; font-weight: 600; margin: 6px 0 2px; }
.cu-slots-title small { font-weight: 400; color: var(--grigio); }
.cu-grp { display: block; font-size: .82rem; color: var(--grigio); margin: 10px 0 6px; }
.cu-slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.cu-slot { position: relative; }
.cu-slot span { display: block; text-align: center; padding: 10px 0; border: 1.5px solid var(--bordo); border-radius: 10px; cursor: pointer; font-variant-numeric: tabular-nums; }
.cu-slot input:checked + span { background: var(--verde); border-color: var(--verde); color: #fff; font-weight: 600; }
.cu-consent { margin-top: 20px; }
.cu-err { display: none; margin: 12px 0 0; font-size: .9rem; color: var(--rosso); }
.cu-informativa { font-size: .85rem; color: var(--grigio); background: var(--bianco); border: 1px solid var(--bordo-chiaro); border-radius: 12px; padding: 12px 16px; }
.cu-informativa summary { cursor: pointer; font-weight: 600; color: var(--inchiostro); }
.cu-informativa p { margin: .6em 0 0; }
.cu-referente { font-size: .8rem; color: var(--grigio-chiaro); text-align: center; margin-top: 14px; }
.cu-grazie { text-align: center; padding: 40px 24px; }
.cu-firma { color: var(--grigio); font-size: .92rem; margin-top: 1.5em; }

/* Recensioni */
.lb-voto { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.lb-voto input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lb-voto label { font-size: 2.2rem; line-height: 1; color: #D9D3C7; cursor: pointer; transition: color .15s; }
.lb-voto label:hover, .lb-voto label:hover ~ label, .lb-voto input:checked ~ label { color: #E0A526; }
.lb-voto input:focus-visible + label { outline: 2px solid var(--verde); outline-offset: 2px; border-radius: 4px; }
.lb-modulo fieldset { border: 0; padding: 0; margin: 0; }
.lb-modulo legend { font-weight: 500; margin-bottom: 6px; }
.lb-stelle { color: #E0A526; letter-spacing: 2px; }
.lb-stelle__vuote { color: #D9D3C7; }
.lb-recensioni__media { font-size: 1.05rem; margin: 0 0 20px; }
.lb-recensioni__griglia { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.lb-recensione { margin: 0; background: #fff; border: 1px solid rgba(0,0,0,.07); border-radius: 12px; padding: 22px; display: flex; flex-direction: column; gap: 10px; }
.lb-recensione blockquote { margin: 0; font-family: 'Lora', serif; font-size: 1.02rem; line-height: 1.55; }
.lb-recensione blockquote p { margin: 0 0 .6em; }
.lb-recensione figcaption { margin-top: auto; font-size: .9rem; color: var(--grigio); }
