/*
Theme Name: DC
Theme URI: https://www.domenicocannetti.it/
Author: Domenico Cannetti
Author URI: https://www.domenicocannetti.it/
Description: Tema a blocchi di domenicocannetti.it. Stile in theme.json, solo blocchi core.
Requires at least: 6.9
Tested up to: 7.1
Requires PHP: 8.1
Version: 0.3.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dc
*/

/* Solo quello che theme.json non sa fare. Caricato anche nell'editor. */

/* ---------- Base ---------- */
:where(a, button, input, textarea, select, .wp-element-button):focus-visible {
	outline: 3px solid currentColor; /* segue il testo: scuro su chiaro, bianco su scuro (l'arancio su bianco è 2,9:1) */
	outline-offset: 3px;
}
::selection {
	background: var(--wp--preset--color--arancio);
	color: var(--wp--preset--color--scuro);
}
a {
	text-underline-offset: 0.18em;
	text-decoration-thickness: 1px;
}
h1, h2, h3 {
	text-wrap: balance;
}
/* Hero a tutto schermo: passa sotto l'header (alto 80px) e centra il contenuto sull'intero schermo.
   Il padding sopra e sotto della hero è "80px + spazio", uguale nei due versi, così il centro resta il centro. */
.wp-site-blocks > main:has(.dc-hero) { margin-top: -80px !important; } /* !important: il blocco Gruppo di main scrive margin-top:0 in linea */
.dc-hero { display: flex; flex-direction: column; justify-content: center; }
.dc-unito { white-space: nowrap; } /* parole col trattino che non devono spezzarsi (e-commerce) */
html {
	scroll-padding-top: 88px; /* le ancore (#lavori) non finiscono sotto l'header */
}

/* Le sezioni a tutta larghezza si toccano: niente spazio bianco tra header, contenuto e footer */
.wp-site-blocks > main,
.wp-site-blocks > footer {
	margin-block-start: 0;
}

/* ---------- Header fisso che prende il colore della sezione sotto (vedi assets/js/header.js) ---------- */
.wp-site-blocks > header {
	position: sticky;
	top: 0;
	z-index: 100;
}
.admin-bar .wp-site-blocks > header { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .wp-site-blocks > header { top: 46px; }
}
.dc-header {
	background: var(--wp--preset--color--bianco);
	color: var(--wp--preset--color--scuro);
	transition: background-color 0.35s ease, color 0.35s ease;
}
.dc-header a:where(:not(.wp-element-button)) { color: inherit; text-decoration: none; }
header[data-sezione="scuro"] .dc-header { background: var(--wp--preset--color--scuro); color: var(--wp--preset--color--bianco); }
header[data-sezione="carta"] .dc-header { background: var(--wp--preset--color--carta); }
header[data-sezione="arancio"] .dc-header { background: var(--wp--preset--color--arancio); }
/* Sull'arancio il logo diventa scuro e il bottone si inverte, come nei blocchi della sezione */
header[data-sezione="arancio"] .dc-header .wp-block-site-logo img { filter: brightness(0); }
header[data-sezione="arancio"] .dc-header .wp-element-button { background: var(--wp--preset--color--scuro); color: var(--wp--preset--color--bianco); }
.dc-header .wp-block-site-logo img { transition: filter 0.35s ease; }
.dc-header .wp-element-button { padding: 0.625rem 1.25rem; }
.dc-header .wp-block-site-logo { line-height: 0; }
/* Su telefono resta solo il menu: il bottone è nella hero e nel menu */
@media (max-width: 600px) {
	.dc-header .wp-block-buttons.dc-header-cta { display: none; }
}

/* ---------- Menu a tutto schermo (Navigazione con overlay "sempre") ---------- */
.dc-header .wp-block-navigation__responsive-container.is-menu-open {
	--dc-menu-margine: clamp(1.5rem, min(5vw, 5vh), 4rem);
	padding: var(--dc-menu-margine);
}
.dc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: clamp(3.5rem, 9vh, 6rem);
	align-items: flex-start;
}
.dc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.15em;
	align-items: flex-start;
}
.dc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: clamp(2.5rem, min(9vw, 10.5vh), 7rem); /* cala anche con l'altezza: il menu sta tutto in una schermata */
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
	padding: 0.05em 0;
}
.dc-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--bianco);
}
/* La X di chiusura sta esattamente dove sta l'icona di apertura (centrata nell'header, stesso margine destro) */
.dc-header .wp-block-navigation__responsive-container-close {
	position: fixed;
	top: calc((78px - 32px) / 2);
	right: var(--wp--preset--spacing--40);
	z-index: 2;
}
.admin-bar .dc-header .wp-block-navigation__responsive-container-close { top: calc(32px + (78px - 32px) / 2); }
@media (max-width: 782px) {
	.admin-bar .dc-header .wp-block-navigation__responsive-container-close { top: calc(46px + (78px - 32px) / 2); }
}
.dc-header .wp-block-navigation__responsive-container-open svg,
.dc-header .wp-block-navigation__responsive-container-close svg {
	width: 32px;
	height: 32px;
}

/* ---------- Lavori ---------- */
.dc-card-img {
	overflow: hidden;
	border-radius: 8px;
	margin: 0;
}
.dc-card-img img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	object-position: top;
	border-radius: 8px;
	background: var(--wp--preset--color--carta);
}
.dc-card h3 a, .dc-card p a, .dc-card .wp-block-post-title a { text-decoration: none; }
.dc-card .wp-block-post-title { margin: 0; }
.dc-card .wp-block-post-title a:hover { text-decoration: underline; }
/* "Realizzato per Flashup Studio": riga di servizio sotto cliente e settore */
.dc-partner { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--grigio); }
.dc-partner a { color: inherit; }

/* Query Loop dei lavori: card tutte uguali, tre per riga */
.dc-lavori-query .wp-block-post-template { list-style: none; padding: 0; }
/* Archivio portfolio: titolo e filtri centrati come le altre pagine, solo la griglia a tutta larghezza */
.dc-archivio-largo > .dc-lavori-query.alignwide { max-width: none; }
/* Scorrimento infinito: puntino che pulsa mentre arrivano le card successive */
.dc-lavori-query .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.dc-scorrimento-sentinella { height: 1px; margin-top: var(--wp--preset--spacing--60); }
.dc-scorrimento-sentinella.is-caricamento { height: 24px; background: radial-gradient(circle, var(--wp--preset--color--arancio, #FF6600) 5px, transparent 6px) center / 24px 24px no-repeat; animation: dc-pulsa 0.9s ease-in-out infinite alternate; }
@keyframes dc-pulsa { from { opacity: 0.3; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .dc-scorrimento-sentinella.is-caricamento { animation: none; } }

/* Hero: foto e nome sopra il titolo, certificazioni con i badge */
.dc-hero > .alignwide { width: 100%; } /* nella colonna flessibile della hero i margini automatici la centrerebbero */
.dc-firma figure, .dc-certificazioni figure { margin: 0; flex: none; }
.dc-firma img { border-radius: 50%; }
.dc-firma p { margin: 0; }
.dc-certificazioni p { margin: 0; line-height: 1.4; }

/* Slider dei lavori in home: scorre in orizzontale, la prima card allineata al contenuto, le altre si intravedono a destra */
.dc-slider {
	--dc-bordo: max(var(--wp--style--root--padding-left), calc((100% - var(--wp--style--global--wide-size)) / 2));
}
.dc-slider .wp-block-post-template {
	display: flex;
	gap: clamp(1rem, 3vw, 2.5rem);
	margin: 0;
	padding: 0 var(--dc-bordo) var(--wp--preset--spacing--20);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: var(--dc-bordo);
	scrollbar-width: none;
}
.dc-slider .wp-block-post-template::-webkit-scrollbar { display: none; }
.dc-slider .wp-block-post-template > li {
	flex: 0 0 min(82vw, 760px);
	margin: 0;
	scroll-snap-align: start;
}
.dc-slider .dc-card-img img { background: var(--wp--preset--color--bianco); }
.dc-slider-frecce {
	display: flex;
	gap: 0.5rem;
}
/* Titolo "Lavori recenti" e frecce sempre sulla stessa riga */
.dc-lavori > .alignwide:has(.dc-slider-posto) { flex-wrap: nowrap !important; align-items: center !important; }
.dc-lavori > .alignwide:has(.dc-slider-posto) h2 { min-width: 0; white-space: nowrap; }
@media (max-width: 600px) {
	.dc-slider-frecce .dc-slider-freccia { width: 32px; height: 32px; font-size: 0.875rem; }
	.dc-slider-frecce { gap: 0.375rem; }
	/* Su una riga: sui telefoni stretti il titolo cala un po' invece di andare a capo */
	.dc-lavori > .alignwide:has(.dc-slider-posto) h2 { font-size: min(var(--wp--preset--font-size--xx-large), 10.5vw) !important; }
}
.dc-slider > .dc-slider-frecce { margin-top: var(--wp--preset--spacing--40); padding-inline: var(--dc-bordo); }
.dc-slider-freccia {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--wp--preset--color--scuro);
	border-radius: 50%;
	background: transparent;
	color: var(--wp--preset--color--scuro);
	font: inherit;
	font-size: 1rem;
	transition: background-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}
.dc-slider-freccia:hover:not(:disabled) { background: var(--wp--preset--color--scuro); color: var(--wp--preset--color--bianco); }
.dc-slider-freccia:disabled { opacity: 0.3; }

/* ---------- Cursore: puntino + anello, in "differenza" (scuro sul chiaro, chiaro sullo scuro) — assets/js/cursore.js ---------- */
.dc-cursore-punto,
.dc-cursore-anello {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	border-radius: 50%;
	pointer-events: none;
	mix-blend-mode: difference;
	opacity: 0;
}
.dc-cursore-punto {
	width: 8px;
	height: 8px;
	background: #fff;
}
.dc-cursore-anello {
	width: 64px;
	height: 64px;
	border: 1px solid #fff;
}
/* L'anello insegue il puntino con un leggero ritardo e si allarga sopra ciò che si può cliccare.
   Transizione solo da "pronto": al primo movimento l'anello compare già sotto il puntatore */
.dc-cursore-pronto .dc-cursore-anello {
	transition: translate 0.3s cubic-bezier(0.35, 1, 0.8, 1), width 0.3s cubic-bezier(0.35, 1, 0.8, 1), height 0.3s cubic-bezier(0.35, 1, 0.8, 1), opacity 0.2s ease;
}
.dc-cursore-anello.is-sopra { width: 128px; height: 128px; }
.dc-cursore-punto.is-sopra { width: 10px; height: 10px; }
.dc-cursore-pronto .dc-cursore-punto { opacity: 0.8; }
.dc-cursore-pronto .dc-cursore-anello { opacity: 1; }
.dc-cursore-fuori .dc-cursore-punto,
.dc-cursore-fuori .dc-cursore-anello { opacity: 0; }
/* La freccia del sistema sparisce solo quando lo script è partito (con mouse) */
@media (pointer: fine) {
	.dc-cursore-pronto, .dc-cursore-pronto * { cursor: none !important; }
}

/* Filtri dei lavori: due menu a tendina (blocco Elenco categorie), senza etichetta visibile:
   la prima voce dice già cosa filtra ("Tipo di lavoro", "Competenza") */
.dc-filtri .wp-block-categories { margin: 0; }
.dc-filtri select {
	min-width: 15rem;
	min-height: 48px;
	padding: 0.65rem 3rem 0.65rem 1.25rem;
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 999px;
	background: var(--wp--preset--color--bianco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23222222' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 1.25rem center;
	box-shadow: 0 1px 2px rgb(34 34 34 / 0.06);
	appearance: none;
	color: var(--wp--preset--color--scuro);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transition: border-color 0.2s ease;
}
.dc-filtri select:hover { border-color: var(--wp--preset--color--scuro); }
.dc-filtri select:focus-visible { outline-offset: 2px; }
/* Chrome/Edge recenti: anche l'elenco che si apre segue lo stile del sito (gli altri browser mostrano il menu di sistema) */
@supports (appearance: base-select) {
	.dc-filtri select, .dc-filtri select::picker(select) { appearance: base-select; }
	.dc-filtri select::picker-icon { display: none; }
	.dc-filtri select::picker(select) {
		margin-top: 0.5rem;
		padding: 0.4rem;
		border: 1px solid var(--wp--preset--color--linea);
		border-radius: 20px;
		background: var(--wp--preset--color--bianco);
		box-shadow: 0 16px 40px rgb(34 34 34 / 0.12);
	}
	.dc-filtri option {
		padding: 0.7rem 1rem;
		border-radius: 12px;
		font-weight: 400;
		cursor: pointer;
	}
	.dc-filtri option::checkmark { display: none; }
	.dc-filtri option:hover, .dc-filtri option:focus-visible { background: var(--wp--preset--color--carta); outline: none; }
	.dc-filtri option:checked { font-weight: 700; }
}
.dc-filtro-tutti { margin: 0; align-self: center; }

/* Copertina del caso studio */
.dc-caso-copertina img { border-radius: 8px; border: 1px solid var(--wp--preset--color--linea); }

/* Elenco servizi: righe con una linea sottile scura tra l'una e l'altra */
.dc-servizi-elenco > .dc-servizio { margin: 0; border-top: 1px solid rgb(34 34 34 / 0.35); }
.dc-servizi-elenco > .dc-servizio:last-child { border-bottom: 1px solid rgb(34 34 34 / 0.35); }
.dc-servizio h3 { margin: 0; }
.dc-servizio p { margin: 0; }

/* Fascia scura che scorre prima dei servizi (ornamento): due copie dello stesso testo, una dietro l'altra */
.dc-scorre { overflow: hidden; }
.dc-scorre-testo {
	flex: none;
	margin: 0;
	padding-right: 0.3em;
	white-space: nowrap;
	font-weight: 700;
	letter-spacing: -0.02em;
}
.dc-passo-num { font-variant-numeric: tabular-nums; }

/* ---------- Movimento: solo dove aggiunge, e mai per chi lo ha disattivato ---------- */
@media (prefers-reduced-motion: no-preference) {
	/* Cambio pagina in dissolvenza, senza JavaScript (View Transitions) */
	@view-transition { navigation: auto; }

	/* Card → pagina del lavoro: l'immagine della card diventa la copertina (nome dato al clic da assets/js/transizioni.js) */
	.single-dc_lavoro .dc-caso-copertina img { view-transition-name: dc-lavoro-immagine; }
	::view-transition-group(dc-lavoro-immagine) { animation-duration: 0.55s; animation-timing-function: cubic-bezier(0.7, 0, 0.2, 1); }
	::view-transition-old(dc-lavoro-immagine), ::view-transition-new(dc-lavoro-immagine) { height: 100%; object-fit: cover; }

	/* Pagine dei lavori: al cambio di filtro header e filtri restano fermi, cambia solo la griglia */
	:is(.post-type-archive-dc_lavoro, .tax-dc_tipo_lavoro, .tax-dc_tag_lavoro, .tax-dc_partner) .wp-site-blocks > header { view-transition-name: dc-header; }
	:is(.post-type-archive-dc_lavoro, .tax-dc_tipo_lavoro, .tax-dc_tag_lavoro, .tax-dc_partner) .dc-filtri { view-transition-name: dc-filtri; }
	:is(.post-type-archive-dc_lavoro, .tax-dc_tipo_lavoro, .tax-dc_tag_lavoro, .tax-dc_partner) .dc-lavori-query { view-transition-name: dc-griglia; }
	html:has(.dc-filtri)::view-transition-old(root),
	html:has(.dc-filtri)::view-transition-new(root) { animation-duration: 0.2s; }
	::view-transition-group(dc-griglia) { animation-duration: 0.35s; }
	::view-transition-old(dc-griglia) { animation: dc-griglia-esce 0.15s ease-in both; }
	::view-transition-new(dc-griglia) { animation: dc-griglia-entra 0.35s cubic-bezier(0.2, 0.7, 0.2, 1) 0.08s both; }
	@keyframes dc-griglia-esce { to { opacity: 0; } }
	@keyframes dc-griglia-entra { from { opacity: 0; transform: translateY(12px); } }

	/* Gli screenshot dei lavori entrano mentre si scorre (CSS scroll-driven, nessuna libreria) */
	@supports (animation-timeline: view()) {
		.dc-card-img {
			animation: dc-entra linear both;
			animation-timeline: view();
			animation-range: entry 0% cover 30%;
		}
		@keyframes dc-entra {
			from { clip-path: inset(16% 0 0 0 round 8px); opacity: 0.4; }
			to { clip-path: inset(0 0 0 0 round 8px); opacity: 1; }
		}
	}

	/* La fascia dei servizi scorre piano, all'infinito */
	.dc-scorre-testo { animation: dc-scorre 38s linear infinite; }
	@keyframes dc-scorre { to { transform: translateX(-100%); } }

	/* Il titolo della hero sale una volta sola al caricamento */
	.dc-hero-titolo {
		animation: dc-sale 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
	@keyframes dc-sale {
		from { opacity: 0; transform: translateY(0.25em); }
		to { opacity: 1; transform: none; }
	}
}

@media (prefers-reduced-motion: reduce) {
	/* Fascia ferma: il testo va a capo e la copia sparisce */
	/* Ferma: allineata ai margini del contenuto, più piccola, va a capo tra le voci */
	.dc-scorre { padding-inline: max(var(--wp--style--root--padding-left), calc((100% - var(--wp--style--global--wide-size)) / 2 + var(--wp--style--root--padding-left))); }
	.dc-scorre-testo { white-space: normal; flex: 1; font-size: var(--wp--preset--font-size--x-large) !important; line-height: 1.25; }
	.dc-scorre-copia { display: none; }
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Nello slider niente entrata allo scorrimento: il contenitore che scorre in orizzontale confonderebbe l'animazione */
.dc-slider .dc-card-img { animation: none !important; }

/* Icone (Lucide, file nel tema) e loghi degli strumenti */
.dc-icona { margin: 0; flex: none; }
.dc-strumenti figure { margin: 0; }
.dc-numeri > .wp-block-group { align-items: flex-start; } /* MODIFICATO: numeri allineati a sinistra, come i titoli */
.dc-numeri p { margin: 0; }
.dc-cta-foto img { border-radius: 50%; }

/* Hero su telefono: compatta e centrata nello schermo (centrata tra il fondo dell header e il fondo dello schermo) */
@media (max-width: 600px) {
	.dc-hero { padding-top: calc(78px + var(--wp--preset--spacing--20)) !important; padding-bottom: var(--wp--preset--spacing--20) !important; }
	.dc-firma { margin-bottom: var(--wp--preset--spacing--20) !important; gap: 0.6rem !important; }
	.dc-firma img { width: 32px !important; height: 32px !important; }
	.dc-firma p { font-size: var(--wp--preset--font-size--small) !important; }
	.dc-hero-testo { margin-top: var(--wp--preset--spacing--30) !important; }
	.dc-hero-testo .has-large-font-size { font-size: var(--wp--preset--font-size--medium) !important; line-height: 1.5; }
	.dc-hero-testo .wp-block-buttons { margin-top: var(--wp--preset--spacing--30) !important; }
	/* MODIFICATO: niente altezza a tutto schermo, la hero è alta quanto il contenuto (prima restava un vuoto sopra il titolo) */
	.dc-hero { min-height: 0 !important; justify-content: flex-start; padding-top: calc(78px + var(--wp--preset--spacing--40)) !important; padding-bottom: var(--wp--preset--spacing--50) !important; }
}


/* Loghi degli strumenti: su telefono tutti su una riga, più piccoli e più vicini */
@media (max-width: 600px) {
	.dc-strumenti { flex-wrap: nowrap !important; gap: 0.9rem !important; }
	.dc-strumenti img { width: 24px !important; height: 24px !important; }
}

/* Numeri su telefono: 2 colonne × 2 righe */
@media (max-width: 600px) {
	.dc-numeri { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30) !important; }
	.dc-numeri .has-xx-large-font-size { font-size: var(--wp--preset--font-size--x-large) !important; }
	.dc-numeri .has-grigio-color { font-size: var(--wp--preset--font-size--small); line-height: 1.4; }
	.dc-numeri .dc-icona img { width: 28px !important; height: 28px !important; }
}

/* Recensioni: sullo sfondo della sezione, stelle arancio, foto del cliente accanto al nome */
.dc-recensione p { margin: 0; }
.dc-stelle { letter-spacing: 0.12em; line-height: 1; }
/* MODIFICATO: ogni recensione è un blocco unico (filetto sopra), stelle-testo-autore vicini, più spazio tra una e l'altra */
.dc-recensione { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--linea); }
.dc-recensione-autore { margin-top: auto !important; padding-top: var(--wp--preset--spacing--10); }
.dc-recensione-autore figure { margin: 0; flex: none; }
.dc-recensione-autore img { border-radius: 50%; }

/* ---------- Menu: il cerchio arancio parte dall'hamburger e riempie lo schermo, poi le voci salgono una alla volta ----------
   In chiusura (classe dc-chiude, assets/js/menu.js) le voci spariscono e il cerchio si richiude verso l'hamburger.
   Con "riduci movimento" appare e sparisce subito. */
.dc-header .wp-block-navigation__responsive-container {
	--dc-origine: calc(100% - var(--wp--preset--spacing--40) - 16px) 39px;
	clip-path: circle(0 at var(--dc-origine));
}
.dc-header .wp-block-navigation__responsive-container.is-menu-open {
	clip-path: circle(150vmax at var(--dc-origine));
	transition: clip-path 0.65s cubic-bezier(0.7, 0, 0.2, 1);
	animation: none !important; /* niente dissolvenza standard di WordPress */
}
@starting-style {
	.dc-header .wp-block-navigation__responsive-container.is-menu-open { clip-path: circle(0 at var(--dc-origine)); }
}
.dc-header .is-menu-open .wp-block-navigation-item {
	animation: dc-voce 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(1) { animation-delay: 0.45s; }
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: 0.53s; }
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: 0.61s; }
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: 0.69s; }
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: 0.77s; }
.dc-header .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: 0.85s; }
@keyframes dc-voce {
	from { opacity: 0; transform: translateY(0.6em); }
	to { opacity: 1; transform: none; }
}

/* Chiusura: voci via in 0,2 s, poi il cerchio si stringe in 0,55 s (tempi uguali in assets/js/menu.js) */
.dc-header .wp-block-navigation__responsive-container.is-menu-open.dc-chiude {
	clip-path: circle(0 at var(--dc-origine));
	transition: clip-path 0.55s cubic-bezier(0.7, 0, 0.2, 1) 0.2s;
}
.dc-header .is-menu-open.dc-chiude .wp-block-navigation-item {
	animation: dc-voce-esce 0.2s ease-in both !important;
}
@keyframes dc-voce-esce {
	to { opacity: 0; transform: translateY(-0.3em); }
}

/* Filtri su telefono: due menu piccoli e "Tutti i lavori" sulla stessa riga */
@media (max-width: 600px) {
	.dc-filtri { flex-wrap: nowrap !important; gap: 0.4rem !important; align-items: center !important; }
	.dc-filtri .wp-block-categories { flex: 0 1 auto; min-width: 0; }
	.dc-filtri select {
		width: 100%;
		min-width: 0;
		min-height: 36px;
		padding: 0.3rem 1.6rem 0.3rem 0.7rem;
		background-position: right 0.6rem center;
		background-size: 9px 6px;
		font-size: 0.8125rem;
		text-overflow: ellipsis;
		white-space: nowrap;
		overflow: hidden;
	}
	.dc-filtro-tutti { flex: none; margin-left: auto !important; font-size: 0.8125rem; white-space: nowrap; }
}

/* Menu aperto: il logo resta al suo posto sopra il cerchio e diventa bianco (dopo che il cerchio l'ha raggiunto);
   in chiusura torna arancio mentre il cerchio si ritira */
.dc-header:has(.is-menu-open) .wp-block-site-logo { position: relative; z-index: 100001; }
.dc-header:has(.is-menu-open) .wp-block-site-logo img { filter: brightness(0) invert(1); transition: filter 0.2s ease 0.35s; }
.dc-header:has(.dc-chiude) .wp-block-site-logo img { filter: none; transition: filter 0.2s ease 0.25s; }

/* In fondo al menu: bottone per il modulo contatti e icone social */
.dc-header .is-menu-open .wp-block-navigation__responsive-container-content {
	min-height: calc(100svh - 2 * var(--dc-menu-margine));
	box-sizing: border-box; /* lo spazio sopra le voci sta dentro l'altezza, niente scorrimento */
	justify-content: flex-start;
}
.dc-header .is-menu-open .dc-menu-cta { margin-top: auto; padding-top: var(--wp--preset--spacing--50); }
.dc-header .is-menu-open .dc-menu-cta .wp-element-button { font-size: var(--wp--preset--font-size--medium); padding: 0.9rem 1.6rem; }
.dc-header .is-menu-open .dc-menu-social { gap: 1.25rem; margin-top: var(--wp--preset--spacing--30); }
.dc-header .is-menu-open .dc-menu-social .wp-social-link svg { width: 28px; height: 28px; }
.dc-header .is-menu-open .dc-menu-cta,
.dc-header .is-menu-open .wp-block-navigation-item:has(.dc-menu-social) {
	animation: dc-voce 0.55s cubic-bezier(0.2, 0.7, 0.2, 1) 0.9s both;
}
.dc-header .is-menu-open.dc-chiude .dc-menu-cta { animation: dc-voce-esce 0.2s ease-in both !important; }

/* Pagina del lavoro: dati in una colonna laterale che resta in vista mentre si legge */
@media (min-width: 782px) {
	.dc-caso-laterale > .dc-dati-lavoro { position: sticky; top: calc(80px + var(--wp--preset--spacing--40)); }
}
.dc-caso-laterale .dc-dati-lavoro > .wp-block-group { width: 100%; padding-bottom: var(--wp--preset--spacing--30); border-bottom: 1px solid var(--wp--preset--color--linea); }
.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:last-child { border-bottom: 0; }
.dc-caso-laterale .dc-dati-lavoro p { margin: 0; }
/* Su telefono i dati vengono dopo il racconto, separati da una linea */
@media (max-width: 781px) {
	.dc-caso-laterale { padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--wp--preset--color--linea); }
}

/* Dati del lavoro: un dato non compilato sparisce (etichetta compresa), così come "Vedi il sito" senza indirizzo */
.dc-dati-lavoro > .wp-block-group:has(> p:last-child:empty),
.dc-dati-lavoro > .wp-block-group:has(.wp-block-button a:not([href])) { display: none; }
/* Su telefono: Settore e Anno affiancati, sotto Servizi, Competenze e il bottone */
@media (max-width: 781px) {
	.dc-caso-laterale .dc-dati-lavoro { display: grid; grid-template-columns: 1fr 1fr; gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--30); }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(1) { grid-column: 1; grid-row: 1; }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(4) { grid-column: 2; grid-row: 1; }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(3) { grid-column: 1 / -1; grid-row: 3; }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(5) { grid-column: 1 / -1; grid-row: 4; }
	.dc-caso-laterale .dc-dati-lavoro > .wp-block-group:nth-child(-n+4) { padding-bottom: var(--wp--preset--spacing--20); }
	/* Senza anno, Settore prende tutta la riga */
	.dc-caso-laterale .dc-dati-lavoro:has(> .wp-block-group:nth-child(4) > p:last-child:empty) > .wp-block-group:nth-child(1) { grid-column: 1 / -1; }
}

/* Caso in home: tappe nel tempo, una linea sottile sopra ciascuna */
.dc-tappa { padding-top: var(--wp--preset--spacing--30); border-top: 1px solid rgb(255 255 255 / 0.25); }
.dc-tappa p { margin: 0; }

/* Case history in home: immagine del lavoro + racconto breve + tre numeri */
.dc-caso-home-img { margin: 0; }
.dc-caso-home-img img { border-radius: 12px; display: block; width: 100%; height: auto; }
.dc-caso-numeri p { margin: 0; }
/* Recensione nella pagina del caso */
.dc-recensione-caso { padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--wp--preset--color--linea); }

/* Colonna dei dati più leggera: il racconto resta il protagonista */
.dc-caso-laterale .dc-dati-lavoro { gap: var(--wp--preset--spacing--30) !important; }
.dc-caso-laterale .dc-dati-lavoro > .wp-block-group { padding-bottom: var(--wp--preset--spacing--20); }
.dc-caso-laterale .dc-dati-lavoro p { font-size: var(--wp--preset--font-size--small) !important; line-height: 1.45; color: var(--wp--preset--color--grigio); }
.dc-caso-laterale .dc-dati-lavoro p.has-grigio-color { font-size: 0.75rem !important; color: var(--wp--preset--color--grigio); letter-spacing: 0.01em; }
.dc-caso-laterale .dc-dati-lavoro .wp-element-button { font-size: 0.8125rem; padding: 0.5rem 1rem; }

/* Servizi cliccabili: tutta la riga porta al link del titolo; freccia che compare al passaggio */
.dc-servizio { position: relative; }
.dc-servizio h3 a { color: inherit; text-decoration: none; }
.dc-servizio h3 a::after { content: ""; position: absolute; inset: 0; }
.dc-servizio h3 a::before { content: "→"; order: 2; }
.dc-servizio h3 a:focus-visible { outline: none; }
.dc-servizio:has(a:focus-visible) { outline: 3px solid currentColor; outline-offset: 4px; }
.dc-servizio h3 a { display: inline-flex; gap: 0.4em; align-items: baseline; }
.dc-servizio h3 a::before { opacity: 0; transform: translateX(-0.3em); transition: opacity 0.2s ease, transform 0.2s ease; }
.dc-servizio:hover h3 a::before, .dc-servizio h3 a:focus-visible::before { opacity: 1; transform: none; }

/* Servizi e competenze del lavoro: link alle pagine dei lavori filtrati; il gruppo sparisce se non ha termini */
.dc-caso-laterale .dc-dato-termini { font-size: var(--wp--preset--font-size--small); line-height: 1.6; color: var(--wp--preset--color--grigio); }
.dc-caso-laterale .dc-dato-termini a { color: inherit; text-decoration-color: rgb(92 92 92 / 0.4); }
.dc-caso-laterale .dc-dato-termini a:hover { color: var(--wp--preset--color--scuro); text-decoration-color: currentColor; }
.dc-dati-lavoro > .wp-block-group:has(> p:only-child) { display: none; }

/* ---------- Pagine dei servizi ---------- */
/* "Ti riconosci?": elenco con spunta arancio */
.dc-spunte { list-style: none; padding: 0; margin: 0 0 var(--wp--preset--spacing--40); }
.dc-spunte li { position: relative; padding: 0.7rem 0 0.7rem 2.25rem; border-bottom: 1px solid var(--wp--preset--color--linea); font-size: var(--wp--preset--font-size--medium); }
.dc-spunte li::before { content: ""; position: absolute; left: 0; top: 1rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--wp--preset--color--arancio) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat; }
/* Formule: linea arancio sopra */
.dc-formula { padding-top: var(--wp--preset--spacing--30); border-top: 3px solid var(--wp--preset--color--arancio); }
.dc-formula h3, .dc-formula p { margin: 0; }
/* Domande frequenti */
.dc-faq { border-bottom: 1px solid var(--wp--preset--color--linea); padding: var(--wp--preset--spacing--30) 0; }
.dc-faq summary { cursor: pointer; font-weight: 700; font-size: var(--wp--preset--font-size--large); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.dc-faq summary::-webkit-details-marker { display: none; }
.dc-faq summary::after { content: "+"; color: var(--wp--preset--color--arancio); font-size: 1.5em; line-height: 0.8; transition: transform 0.25s ease; }
.dc-faq[open] summary::after { transform: rotate(45deg); }
.dc-faq p { margin-top: var(--wp--preset--spacing--20); }

/* Schede "Cosa cambia" e servizi: solo l'icona, a sinistra di titolo e testo (MODIFICATO: niente più cerchio arancio) */
.dc-scheda { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: var(--wp--preset--spacing--30); align-content: start; }
.dc-scheda > * { grid-column: 2; }
.dc-scheda h3, .dc-scheda p { margin: 0; }
.dc-scheda h3 { line-height: 1.2; }
.dc-scheda p { color: var(--wp--preset--color--grigio); margin-top: 0.5em; }
.dc-scheda-icona { grid-column: 1; grid-row: 1 / span 3; margin: 0.1em 0 0; color: var(--wp--preset--color--arancio); } /* allineata alla prima riga del titolo */
.dc-scheda-icona svg { display: block; width: 28px; height: 28px; }

/* Schede dei servizi cliccabili (pagina /servizi/): tutta la scheda porta al link del titolo */
.dc-scheda-link { position: relative; padding-top: var(--wp--preset--spacing--30); border-top: 1px solid var(--wp--preset--color--linea); transition: border-color 0.2s ease; }
.dc-scheda-link:hover { border-top-color: var(--wp--preset--color--arancio); }
.dc-scheda-link h2 { margin: 0; line-height: 1.15; } /* MODIFICATO: niente margine sopra, l'icona sta in linea col titolo */
.dc-scheda-link .dc-scheda-icona { margin-top: 0.3em; } /* titolo grande: icona centrata sulla prima riga */
.dc-scheda-link h2 a { color: inherit; text-decoration: none; }
.dc-scheda-link h2 a::after { content: ""; position: absolute; inset: 0; }
.dc-scheda-link:has(a:focus-visible) { outline: 3px solid currentColor; outline-offset: 4px; }
.dc-scheda-link h2 a:focus-visible { outline: none; }

/* Slider delle case history: una per volta, larga quanto il contenuto */
.dc-slider-casi .wp-block-post-template > li { flex: 0 0 100%; }
.dc-caso { margin: 0; }
.dc-caso .dc-caso-home-img { margin: 0; }
.dc-caso .dc-caso-home-img img { border-radius: 12px; }
.dc-caso h3, .dc-caso p { margin-block: 0; }
.dc-caso h3 { margin-top: var(--wp--preset--spacing--20); }
.dc-caso h3 + p { margin-top: var(--wp--preset--spacing--20); }
.dc-caso .wp-block-post-title { margin: 0; }
.dc-caso-numeri > .wp-block-group:has(> p:first-child:empty) { display: none; }
/* Case history cliccabile per intero: il link "Leggi la case history" copre tutta la scheda */
.dc-caso { position: relative; }
.dc-caso-link { display: inline-flex; gap: 0.4em; margin-top: var(--wp--preset--spacing--40); color: var(--wp--preset--color--scuro); font-weight: 700; text-decoration: none; }
.dc-caso-link::before { content: "→"; order: 2; transition: transform 0.2s ease; }
.dc-caso-link::after { content: ""; position: absolute; inset: 0; }
.dc-caso:hover .dc-caso-link::before { transform: translateX(0.3em); }
.dc-caso:hover .dc-caso-link { text-decoration: underline; text-underline-offset: 0.2em; }
.dc-caso:has(.dc-caso-link:focus-visible) { outline: 3px solid currentColor; outline-offset: 6px; }
.dc-caso-link:focus-visible { outline: none; }
/* "Tutte le case history" accanto alle frecce */
.dc-link-tutte { margin: 0; white-space: nowrap; }
.dc-link-tutte a { color: inherit; font-weight: 700; }
@media (max-width: 600px) { .dc-link-tutte { display: none; } }

/* Pagina /case-history/: una sotto l'altra, separate da una linea */
.dc-casi-elenco .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.dc-casi-elenco .wp-block-post-template > li + li { margin-top: var(--wp--preset--spacing--60); padding-top: var(--wp--preset--spacing--60); border-top: 1px solid var(--wp--preset--color--linea); }

/* Footer: blocchi separati, titolo e contenuto vicini dentro ogni blocco, copyright staccato */
.dc-footer-copy { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--linea); }
@media (max-width: 781px) {
	.dc-footer-colonne > .wp-block-column + .wp-block-column { padding-top: var(--wp--preset--spacing--40); border-top: 1px solid var(--wp--preset--color--linea); }
}

/* Hero: firma (foto + nome) vicina al titolo, così si legge come "chi parla" */
.dc-hero .dc-firma { margin-bottom: 0 !important; }
.dc-hero .dc-firma + .dc-hero-titolo { margin-block-start: var(--wp--preset--spacing--30) !important; }
@media (max-width: 600px) { .dc-hero .dc-firma + .dc-hero-titolo { margin-block-start: var(--wp--preset--spacing--20) !important; } }

/* Home v3: riga di prove sotto i bottoni della hero (volti sovrapposti, stelle, numeri) */
.dc-hero-prove p { margin: 0; }
.dc-volti { gap: 0 !important; } /* lo spazio automatico del gruppo annullerebbe la sovrapposizione */
.dc-volti figure { margin: 0 0 0 -10px; flex: none; }
.dc-volti figure:first-child { margin-left: 0; }
.dc-volti img { border-radius: 50%; border: 2px solid var(--wp--preset--color--bianco, #fff); }
.dc-hero-prove .dc-stelle { letter-spacing: 0.1em; }
.dc-hero-numero strong { font-size: var(--wp--preset--font-size--large); margin-right: 0.15em; }
/* Chi sono: foto tonda grande, certificazioni piccole */
.dc-chi-sono-foto img { border-radius: 50%; width: 100%; max-width: 260px; } /* file piccolo: oltre si sgrana */
@media (max-width: 781px) { .dc-chi-sono-foto img { max-width: 160px; } }
.dc-certificazioni img { width: auto; }
/* Occhiello sopra il titolo della hero: piccolo, grigio, minuscolo (niente maiuscole spaziate) */
.dc-hero .dc-firma + .dc-occhiello { margin-block-start: var(--wp--preset--spacing--40) !important; }
.dc-hero .dc-occhiello + .dc-hero-titolo { margin-block-start: var(--wp--preset--spacing--10) !important; }
.dc-hero > .dc-occhiello:first-child { margin-block-start: 0 !important; } /* hero senza firma: l'occhiello apre la sezione */

/* parole col trattino che non vanno spezzate (es. E-commerce) */
.dc-nowrap { white-space: nowrap; }

/* ---------- Form preventivo (Gravity Forms nella pagina Contatti) ----------
   Una domanda per schermata, scelte come riquadri grandi, barra di avanzamento arancio */
.dc-preventivo { min-height: calc(100svh - 90px); display: flex; flex-direction: column; justify-content: center; }
.dc-preventivo > * { width: 100%; } /* nel flex i margini auto restringerebbero i blocchi */
.dc-preventivo .gform_wrapper.gform-theme--framework {
	--gf-color-primary: var(--wp--preset--color--arancio, #FF6600);
	--gf-color-primary-rgb: 255, 102, 0;
	--gf-color-primary-contrast: #fff;
	--gf-ctrl-border-color: var(--wp--preset--color--linea, #e5e5e5);
	--gf-ctrl-label-color-primary: var(--wp--preset--color--scuro, #222);
	--gf-font-family-base: inherit;
	--gf-ctrl-font-family: inherit;
	--gf-ctrl-btn-font-family: inherit;
	--gf-radius: 14px;
	--gf-ctrl-size: 3.25rem;
	--gf-ctrl-font-size: 1.05rem;
	max-width: none;
}
/* Barra di avanzamento sottile in alto */
.dc-preventivo .gf_progressbar_wrapper { margin-bottom: var(--wp--preset--spacing--50); }
.dc-preventivo .gf_progressbar_title { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--grigio, #666); margin-bottom: 0.6em; }
.dc-preventivo .gf_progressbar { height: 4px; background: var(--wp--preset--color--linea, #eee); border-radius: 4px; padding: 0; }
.dc-preventivo .gf_progressbar_percentage { height: 4px !important; border-radius: 4px; background: var(--wp--preset--color--arancio, #FF6600) !important; transition: width 0.4s ease; }
.dc-preventivo .gf_progressbar_percentage span { display: none; }
/* Domande: grandi come titoli */
.dc-preventivo .gform_page_fields .gfield_label,
.dc-preventivo .gform_page_fields legend.gfield_label {
	font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
	line-height: 1.1;
	letter-spacing: -0.02em;
	font-weight: 700;
	margin-bottom: 0.5em;
}
.dc-preventivo .gfield_required { display: none; } /* sono tutte obbligatorie tranne quelle marcate facoltative */
.dc-preventivo .gform_fields { row-gap: var(--wp--preset--spacing--50) !important; }
/* I campi dei contatti (ultimo step) restano di misura normale */
.dc-preventivo .gform_page:last-of-type .gfield_label { font-size: 1rem !important; font-weight: 700; letter-spacing: 0; margin-bottom: 0.35em; }
.dc-preventivo .gform_page:last-of-type .gform_fields { row-gap: var(--wp--preset--spacing--30) !important; }
/* Scelte come riquadri cliccabili */
.dc-preventivo .dc-scelte .gfield_radio { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0.75rem; }
.dc-preventivo .dc-scelte-piccole .gfield_radio { grid-template-columns: repeat(auto-fill, minmax(min(100%, 10rem), 1fr)); }
.dc-preventivo .dc-scelte .gchoice { position: relative; margin: 0; }
.dc-preventivo .dc-scelte .gchoice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.dc-preventivo .dc-scelte .gchoice label {
	display: flex; align-items: center; min-height: 4.25rem; width: 100%; margin: 0 !important;
	padding: 1rem 1.25rem; border: 1.5px solid var(--wp--preset--color--linea, #e5e5e5); border-radius: 14px;
	font-size: 1.1rem !important; font-weight: 700; line-height: 1.25; background: #fff;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.dc-preventivo .dc-scelte .gchoice input:hover + label { border-color: var(--wp--preset--color--scuro, #222); }
.dc-preventivo .dc-scelte .gchoice input:checked + label { border-color: var(--wp--preset--color--arancio, #FF6600); background: var(--wp--preset--color--arancio, #FF6600); color: #fff; }
.dc-preventivo .dc-scelte .gchoice input:focus-visible + label { outline: 2px solid var(--wp--preset--color--arancio, #FF6600); outline-offset: 3px; }
.dc-preventivo .dc-scelte .gchoice label::before, .dc-preventivo .dc-scelte .gchoice label::after { display: none !important; }
/* Bottoni: pillola come nel resto del sito */
.dc-preventivo .gform_page_footer, .dc-preventivo .gform_footer { margin-top: var(--wp--preset--spacing--50) !important; display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.dc-preventivo .gform_next_button, .dc-preventivo .gform_button {
	border-radius: 999px !important; padding: 0.9rem 2rem !important; font-weight: 700 !important; font-size: 1.05rem !important;
	background: var(--wp--preset--color--arancio, #FF6600) !important; border: 0 !important; color: #fff !important;
}
.dc-preventivo .gform_previous_button { background: none !important; border: 0 !important; color: var(--wp--preset--color--grigio, #666) !important; text-decoration: underline; padding: 0.9rem 0 !important; font-weight: 400 !important; box-shadow: none !important; }
/* Conferma finale */
.dc-preventivo .dc-grazie { max-width: 640px; }
.dc-preventivo .dc-grazie-titolo { font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 700; letter-spacing: -0.03em; line-height: 1; margin-bottom: 0.5em; }
.dc-preventivo .dc-grazie p + p { margin-top: 0.8em; }
.dc-preventivo-altro a { color: inherit; }
.dc-preventivo .gform_wrapper .gfield_required { display: none !important; }
.dc-preventivo .dc-scelte .gchoice label.gform-field-label { display: flex !important; align-items: center !important; }
/* Domanda secondaria (indirizzo del sito): etichetta normale, campo a tutta larghezza */
.dc-preventivo .gform_page_fields .gfield--type-website .gfield_label { font-size: 1rem !important; letter-spacing: 0; margin-bottom: 0.35em; }
.dc-preventivo .gfield--type-website input { width: 100%; }
.dc-preventivo .gfield--type-website { margin-top: calc(-1 * var(--wp--preset--spacing--20)); }

/* Banner cookie (Complianz): "Nega" e "Preferenze" leggibili sullo sfondo arancio */
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-view-preferences,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-save-preferences {
	background: transparent !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, 0.7) !important;
}

/* Blog: card articolo con anteprima, come le card del portfolio */
.dc-articolo-img img { border-radius: 8px; transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1); }
.dc-articolo-img { overflow: hidden; border-radius: 8px; margin-bottom: var(--wp--preset--spacing--10); }
.dc-articolo-card:hover .dc-articolo-img img { transform: scale(1.03); }
.dc-articolo-card .wp-block-post-title a { text-decoration: none; }
.dc-articolo-card .wp-block-post-terms a { color: inherit; text-decoration: none; }
.dc-articolo-card .wp-block-post-excerpt__more-link { display: none; }
/* Dopo l'invio resta solo la conferma: via intestazione e contatti alternativi (il link alla call è già nel messaggio) */
.dc-preventivo:has(.gform_confirmation_wrapper) > :not(.gform_confirmation_wrapper):not(:has(.gform_confirmation_wrapper)) { display: none; }
.dc-preventivo:has(.gform_confirmation_wrapper) { justify-content: flex-start; }

/* Pattern "Numeri in evidenza" (dc/numeri-caso), in cima al contenuto della case history */
.dc-caso-numeri-pagina { padding-bottom: var(--wp--preset--spacing--50); border-bottom: 1px solid var(--wp--preset--color--linea); }
.dc-caso-numeri-pagina:not(:has(> .wp-block-group > p:first-child:not(:empty))) { display: none; }
@media (max-width: 600px) { .dc-caso-numeri-pagina { grid-template-columns: 1fr !important; gap: var(--wp--preset--spacing--40) !important; } }

/* Home: recensione di Umberto in evidenza, prima della griglia delle altre (le card sotto hanno già la loro linea in alto) */
.dc-recensione-top .dc-recensione-autore { margin-top: var(--wp--preset--spacing--30) !important; }
.dc-recensione-top .dc-recensione-autore p { margin: 0; }
.dc-recensione-top + .dc-recensioni { margin-top: var(--wp--preset--spacing--70) !important; }
@media (max-width: 600px) { .dc-recensione-top .has-x-large-font-size { font-size: var(--wp--preset--font-size--large) !important; } }

/* Card case history: mini recensione del cliente, solo in home e solo se compilata */
.dc-caso-voce { display: none !important; }
.home .dc-caso-voce:has(.dc-caso-voce-testo:not(:empty)) { display: flex !important; }
.dc-caso-voce figure { margin: 0; flex: none; }
.dc-caso-home-img + .dc-caso-voce { margin-top: var(--wp--preset--spacing--30) !important; }
.dc-caso-voce img { border-radius: 50%; }
.dc-caso-voce p { margin: 0; line-height: 1.35; }
.dc-caso-voce .dc-stelle { letter-spacing: 0.08em; line-height: 1; }
.dc-caso-voce-testo::before { content: "“"; }
.dc-caso-voce-testo::after { content: "”"; }

/* Hero: a tutto schermo solo su schermi orizzontali larghi, e comunque al massimo 860px.
   Su tablet e schermi verticali è alta quanto il contenuto (prima restavano grandi vuoti sopra e sotto il titolo) */
@media (min-width: 601px) { .dc-hero { min-height: min(100svh, 860px) !important; } }
@media (min-width: 601px) and (max-width: 1100px), (min-width: 601px) and (orientation: portrait) {
	.dc-hero { min-height: 0 !important; justify-content: flex-start; padding-top: calc(80px + var(--wp--preset--spacing--60)) !important; padding-bottom: var(--wp--preset--spacing--70) !important; }
}
