/* =========================================================
   Valentina Augimeri - CSS del sito (front-end + editor)
   Colori dalle CSS custom properties di theme.json:
   --wp--preset--color--accent-2 = #3C9D80 (verde, accento)
   --wp--preset--color--accent-4 = #686868 (grigio testo)
   --wp--preset--color--accent-5 = #FBFAF3 (crema)
   --wp--preset--color--accent-7 = #E8E6E1 (bordo)
   --wp--preset--color--contrast = #111111
   ========================================================= */

/* --- Bilanciamento riga (migrato da Global Styles) --- */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }
ul, ol, dl, dt, dd, p, figure, blockquote { text-wrap: pretty; }

/* --- Transizioni di pagina native --- */
@view-transition { navigation: auto; }
@media (prefers-reduced-motion: reduce) {
	@view-transition { navigation: none; }
}

/* --- Template part: nessun bordo, nessun margine sopra (elimina lo spazio bianco sopra il footer) --- */
.wp-block-template-part { border: 0 !important; }
:where(.wp-site-blocks) > .wp-block-template-part { margin-block-start: 0 !important; }

/* --- FOCUS: nessun contorno al click col mouse; resta visibile solo da tastiera --- */
:where(
	a, button, input, select, textarea, summary,
	.wp-element-button, .wp-block-button__link,
	.wp-block-navigation-item__content,
	.wp-block-navigation__responsive-container-open,
	.wp-block-navigation__responsive-container-close,
	.wp-block-site-logo a, .site-brand a
):focus:not(:focus-visible) {
	outline: none !important;
	box-shadow: none !important;
}
.wp-element-button:focus:not(:focus-visible),
.wp-block-button__link:focus:not(:focus-visible) {
	outline: none !important;
	box-shadow: none !important;
}
/* Contorno accessibile solo per la navigazione da tastiera */
:where(a, button, input, select, textarea, summary, .wp-block-button__link, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-2);
	outline-offset: 2px;
	border-radius: 4px;
}

/* --- Menu di navigazione: submenu (migrato da Global Styles) --- */
.wp-block-navigation:not(.is-vertical) .is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
	row-gap: 24px;
	padding: 24px 16px 0 !important;
}
.wp-block-navigation .wp-block-navigation__submenu-container {
	border-radius: 8px;
	overflow: hidden !important;
}
.wp-block-navigation .wp-block-navigation__submenu-container > li:last-child { padding-bottom: 10px; }
.wp-block-navigation .wp-block-navigation__submenu-container > li:first-child { padding-top: 10px; }

/* --- Link nel contenuto: sottolineatura solo in hover --- */
.wp-block-post-content a:where(:not(.wp-element-button)):hover,
.entry-content a:where(:not(.wp-element-button)):hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

/* --- Variazione di stile: Card --- */
.wp-block-group.is-style-card {
	background-color: var(--wp--preset--color--accent-5);
	border: 1px solid var(--wp--preset--color--accent-7);
	border-radius: 12px;
	padding: var(--wp--preset--spacing--40);
	transition: border-color 0.2s ease;
}
.wp-block-group.is-style-card:hover { border-color: var(--wp--preset--color--accent-2); }

/* --- Variazione di stile: Sezione crema --- */
.wp-block-group.is-style-section-surface { background-color: var(--wp--preset--color--accent-5); }

/* --- Bottone secondario (core is-style-outline): hairline su bordo --- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1.5px solid var(--wp--preset--color--accent-7);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
	border-color: var(--wp--preset--color--contrast);
	background-color: transparent;
	color: var(--wp--preset--color--contrast);
}

/* --- Punti elenco: pallino accento (opt-in .is-style-accent-bullets) --- */
.wp-block-list.is-style-accent-bullets { list-style: none; margin-left: 0; padding-left: 0; }
.wp-block-list.is-style-accent-bullets > li { position: relative; padding-left: 1.25rem; }
.wp-block-list.is-style-accent-bullets > li::before {
	content: ""; position: absolute; left: 0.15rem; top: 0.7em;
	width: 5px; height: 5px; border-radius: 50%;
	background-color: var(--wp--preset--color--accent-2); opacity: 0.45;
}

/* --- Curriculum: pallino verde davanti al titolo di sezione --- */
.vsa-cv-head::before {
	content: ""; display: inline-block; width: 0.5rem; height: 0.5rem;
	margin-right: 0.6rem; border-radius: 50%;
	background-color: var(--wp--preset--color--accent-2); vertical-align: middle;
}

/* --- Curriculum: badge (es. "In corso") --- */
.vsa-badge {
	display: inline-block; margin-top: var(--wp--preset--spacing--20);
	padding: 3px 12px; border-radius: 999px;
	background-color: var(--wp--preset--color--accent-2); color: #fff;
	font-size: 0.75rem; font-weight: 600; letter-spacing: 0.02em;
}

/* --- Hero: su mobile il ritratto va sopra al testo --- */
@media (max-width: 781px) {
	.vsa-hero .wp-block-columns { flex-direction: column; }
	.vsa-hero .wp-block-columns > .wp-block-column:last-child { order: -1; }
}

/* =========================================================
   HEADER
   ========================================================= */
.site-header .site-brand { margin: 0; }
.site-header .site-brand a {
	font-family: var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	letter-spacing: -0.02em;
}
.site-header .site-brand a:hover { text-decoration: none; }

/* nav: link grigi, NIENTE underline in hover */
.site-header .wp-block-navigation .wp-block-navigation-item a { color: var(--wp--preset--color--accent-4); transition: color .18s ease; }
.site-header .wp-block-navigation .wp-block-navigation-item a:hover,
.site-header .wp-block-navigation .wp-block-navigation-item a:focus { color: var(--wp--preset--color--contrast); text-decoration: none !important; }

/* underline SOLO sulla pagina attiva (aria-current, affidabile) */
.site-header .wp-block-navigation-item__content[aria-current="page"] { color: var(--wp--preset--color--contrast); position: relative; }
.site-header .wp-block-navigation-item__content[aria-current="page"]::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -6px;
	height: 2px; border-radius: 1px; background: var(--wp--preset--color--accent-2);
}
/* nell'overlay mobile niente sottolineatura a tutta larghezza */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"]::after { display: none; }

/* velo sfumato SOLO da desktop: il backdrop-filter romperebbe il menu overlay mobile (position:fixed) */
@media (min-width: 782px) {
	.site-header {
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		background-color: color-mix(in srgb, var(--wp--preset--color--base) 92%, transparent);
	}
}

/* =========================================================
   FOOTER (fondo scuro)
   ========================================================= */
.site-footer p,
.site-footer .wp-block-navigation .wp-block-navigation-item a {
	color: color-mix(in srgb, var(--wp--preset--color--base) 65%, transparent);
}
.site-footer h2, .site-footer h3,
.site-footer .wp-block-site-title a { color: var(--wp--preset--color--base); }
.site-footer a:where(:not(.wp-element-button)) { text-decoration: none; }
.site-footer a:where(:not(.wp-element-button)):hover { text-decoration: underline; text-underline-offset: 0.15em; color: var(--wp--preset--color--base); }
.site-footer p a { color: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent); }
.site-footer .wp-block-navigation { --wp--style--block-gap: var(--wp--preset--spacing--30); }
.site-footer .wp-block-social-links { color: var(--wp--preset--color--base); }
.site-footer .wp-block-social-link svg { fill: currentColor; }

/* --- WP mette border-style:solid su TUTTI i lati quando si dichiara un solo bordo (-> 3px currentColor sui lati non voluti). Azzera le larghezze: il lato voluto ha width inline che vince. --- */
.wp-block-group.has-border-color { border-width: 0; }

/* --- Griglia servizi / contatti: le 2 card in ogni colonna hanno pari altezza (look 2x2) --- */
.vsa-servizi .wp-block-columns > .wp-block-column,
.vsa-contatti .wp-block-columns > .wp-block-column {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}
.vsa-servizi .wp-block-columns > .wp-block-column > .is-style-card,
.vsa-contatti .wp-block-columns > .wp-block-column > .is-style-card {
	flex: 1;
	margin: 0;
}

/* =========================================================
   FASE 7b - rifiniture su feedback cliente
   ========================================================= */

/* Testo un filo piu' chiaro/leggero (come il mock) */
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* --- Hero: cluster avatar immagini leggermente sovrapposti (come nel mock) --- */
.vsa-herostats { gap: var(--wp--preset--spacing--40); }
.vsa-thumbs { display: flex; margin: 0; }
.vsa-thumbs .vsa-thumb,
.vsa-thumb.wp-block-image {
	width: 40px; height: 40px; min-width: 40px; margin: 0 -10px 0 0;
	border-radius: 50%; overflow: hidden;
	border: 2px solid var(--wp--preset--color--base);
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent-7);
	flex-shrink: 0;
}
.vsa-thumb.wp-block-image img {
	width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 50%;
}

/* --- Fascia CTA: sfondo verde, staccata sopra, attaccata al footer --- */
.vsa-cta { background-color: var(--wp--preset--color--accent-2); color: var(--wp--preset--color--base); }
.vsa-cta h2 { color: var(--wp--preset--color--base); }
.vsa-cta p { color: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent); }
.vsa-cta .wp-block-button__link {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent-2);
}
.vsa-cta .wp-block-button__link:hover,
.vsa-cta .wp-block-button__link:focus {
	background-color: color-mix(in srgb, var(--wp--preset--color--base) 88%, var(--wp--preset--color--accent-2));
	color: var(--wp--preset--color--accent-2);
}

/* --- Menu overlay mobile: voci non attaccate al bordo --- */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-inline: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--50);
}

/* --- Footer: righe di testo piu' compatte + brand come header --- */
.site-footer .wp-block-column { --wp--style--block-gap: 0.5rem; }
.site-footer .wp-block-column p { margin: 0; line-height: 1.5; }
.site-footer .wp-block-column .wp-block-heading { margin-bottom: 0.35rem; }
.site-footer .site-brand { margin: 0 0 0.6rem; }
.site-footer .site-brand a { color: var(--wp--preset--color--base); }

/* --- Contatti: icona verde accanto al titolo di ogni scheda (tranne social) --- */
.vsa-contatti .is-style-card h3 { display: flex; align-items: center; gap: 0.55rem; }
.vsa-contatti :is(.vsa-c-phone, .vsa-c-studio, .vsa-c-email, .vsa-c-pec, .vsa-c-info) h3::before {
	content: ""; width: 1.15rem; height: 1.15rem; flex-shrink: 0;
	background-color: var(--wp--preset--color--accent-2);
	-webkit-mask: center / contain no-repeat; mask: center / contain no-repeat;
}
.vsa-contatti .vsa-c-phone h3::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.9 9.9 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.86 9.86 0 0 0 12.04 2zm5.8 14.01c-.24.68-1.4 1.31-1.94 1.36-.5.05-1.13.07-1.82-.11-.42-.13-.96-.31-1.66-.61-2.9-1.25-4.8-4.17-4.94-4.36-.15-.19-1.19-1.58-1.19-3.02s.76-2.14 1.03-2.44c.27-.29.58-.36.78-.36.19 0 .39 0 .56.01.18.01.42-.07.66.5.24.58.82 2.01.9 2.16.07.14.12.31.02.5-.1.19-.15.31-.29.48-.15.17-.31.38-.44.51-.15.15-.3.31-.13.6.17.29.76 1.25 1.63 2.03 1.12 1 2.07 1.31 2.36 1.46.29.15.46.12.63-.07.17-.19.73-.85.93-1.15.19-.29.39-.24.65-.14.27.1 1.71.8 2 .95.29.14.48.22.55.34.07.12.07.72-.17 1.4z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.04 2C6.58 2 2.13 6.45 2.13 11.91c0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.9 9.9 0 0 0 4.79 1.22h.01c5.46 0 9.91-4.45 9.91-9.91 0-2.65-1.03-5.14-2.9-7.01A9.86 9.86 0 0 0 12.04 2zm5.8 14.01c-.24.68-1.4 1.31-1.94 1.36-.5.05-1.13.07-1.82-.11-.42-.13-.96-.31-1.66-.61-2.9-1.25-4.8-4.17-4.94-4.36-.15-.19-1.19-1.58-1.19-3.02s.76-2.14 1.03-2.44c.27-.29.58-.36.78-.36.19 0 .39 0 .56.01.18.01.42-.07.66.5.24.58.82 2.01.9 2.16.07.14.12.31.02.5-.1.19-.15.31-.29.48-.15.17-.31.38-.44.51-.15.15-.3.31-.13.6.17.29.76 1.25 1.63 2.03 1.12 1 2.07 1.31 2.36 1.46.29.15.46.12.63-.07.17-.19.73-.85.93-1.15.19-.29.39-.24.65-.14.27.1 1.71.8 2 .95.29.14.48.22.55.34.07.12.07.72-.17 1.4z'/%3E%3C/svg%3E");
}
.vsa-contatti .vsa-c-studio h3::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
}
.vsa-contatti .vsa-c-email h3::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5z'/%3E%3C/svg%3E");
}
.vsa-contatti .vsa-c-pec h3::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1 3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9z'/%3E%3C/svg%3E");
}
.vsa-contatti .vsa-c-info h3::before {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z'/%3E%3C/svg%3E");
}
/* --- Testimonianze: nome in grassetto evidente --- */
.wp-block-quote cite strong {
	font-weight: 700;
	font-style: normal;
	color: var(--wp--preset--color--contrast);
}

/* =========================================================
   STICKY HEADER (wrapper) + posizione X del menu mobile
   ========================================================= */
/* Il position:sticky deve stare sul wrapper <header class="wp-block-template-part">
   (figlio diretto di .wp-site-blocks, quindi con spazio per "viaggiare"),
   NON sul div .site-header interno che e' alto quanto il suo contenitore. */
header.wp-block-template-part {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 100;
}
.site-header { position: static !important; }

/* Menu mobile: pulsante di chiusura (X) un po' piu' rientrato */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
	top: var(--wp--preset--spacing--30);
	right: var(--wp--preset--spacing--30);
	padding: 0.4rem;
}
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
	width: 22px;
	height: 22px;
}