/*
 * Furniture — overrides minimi non esprimibili in theme.json.
 * La maggior parte degli stili è gestita da theme.json.
 */

@font-face {
	font-family: "Inter";
	src: url("../fonts/inter/InterVariable.woff2") format("woff2");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant Garamond";
	src: url("../fonts/cormorant-garamond/CormorantGaramond-Variable.ttf") format("truetype");
	font-style: normal;
	font-weight: 300 700;
	font-display: swap;
}

/* Tipografia: rendering ottimale e selezione personalizzata */
body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01", "cv11";
	font-optical-sizing: auto;
}

body,
button,
input,
select,
textarea {
	letter-spacing: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	text-wrap: balance;
}

p,
li {
	text-wrap: pretty;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

::selection {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

html {
	scroll-behavior: smooth;
}

/* Focus elegante e visibile */
:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
	border-radius: 2px;
}

/* Liste senza bullet — spaziatura coerente */
.is-style-none {
	list-style: none;
	padding-left: 0;
}

.is-style-none li + li {
	margin-top: 0.85rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--wp--preset--color--surface);
}

/* Home: lista servizi con icone */
.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none {
	display: grid;
	gap: 0.95rem;
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li {
	position: relative;
	min-height: 2.75rem;
	margin: 0;
	padding: 0.2rem 0 0.2rem 3.65rem;
	display: flex;
	align-items: center;
	border-top-color: color-mix(in srgb, var(--wp--preset--color--subtle) 72%, transparent);
	color: var(--wp--preset--color--contrast);
	line-height: 1.45;
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li + li,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li + li {
	padding-top: 0.95rem;
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li::before,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 2.45rem;
	height: 2.45rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	border-radius: 50%;
	background: color-mix(in srgb, var(--wp--preset--color--base) 58%, transparent);
	transform: translateY(-50%);
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li::after,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li::after {
	content: "";
	position: absolute;
	left: 0.69rem;
	top: 50%;
	width: 1.08rem;
	height: 1.08rem;
	background: var(--wp--preset--color--contrast);
	transform: translateY(-50%);
	-webkit-mask: center / contain no-repeat;
	mask: center / contain no-repeat;
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(1)::after,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(1)::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 20h16v-2H4v2Zm2-4h12V6H6v10Zm2-2V8h8v6H8Zm-2-9h12l2-2H4l2 2Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 20h16v-2H4v2Zm2-4h12V6H6v10Zm2-2V8h8v6H8Zm-2-9h12l2-2H4l2 2Z'/%3E%3C/svg%3E");
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(2)::after,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(2)::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 21h18v-2H5V3H3v18Zm4-4h4V9H7v8Zm6 0h4V5h-4v12Zm6 0h2v-6h-2v6Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 21h18v-2H5V3H3v18Zm4-4h4V9H7v8Zm6 0h4V5h-4v12Zm6 0h2v-6h-2v6Z'/%3E%3C/svg%3E");
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(3)::after,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(3)::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 2h10l4 4v16H6V2Zm2 2v16h10V8h-4V4H8Zm2 7h6v2h-6v-2Zm0 4h6v2h-6v-2Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 2h10l4 4v16H6V2Zm2 2v16h10V8h-4V4H8Zm2 7h6v2h-6v-2Zm0 4h6v2h-6v-2Z'/%3E%3C/svg%3E");
}

.home .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(4)::after,
.front-page .wp-block-group.alignfull.has-background .wp-block-list.is-style-none li:nth-child(4)::after {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6h12v9h2.2l2-3H22v5h-2a3 3 0 0 1-6 0H9a3 3 0 0 1-6 0H1V8a2 2 0 0 1 2-2Zm0 2v7.2A3 3 0 0 1 8.8 17H14V8H3Zm13 1v4h1.1l1.3-2H20V9h-4ZM6 18.5A1.5 1.5 0 1 0 6 15.5a1.5 1.5 0 0 0 0 3Zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 6h12v9h2.2l2-3H22v5h-2a3 3 0 0 1-6 0H9a3 3 0 0 1-6 0H1V8a2 2 0 0 1 2-2Zm0 2v7.2A3 3 0 0 1 8.8 17H14V8H3Zm13 1v4h1.1l1.3-2H20V9h-4ZM6 18.5A1.5 1.5 0 1 0 6 15.5a1.5 1.5 0 0 0 0 3Zm11 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z'/%3E%3C/svg%3E");
}

/* Bottoni: transizioni morbide */
.wp-element-button,
.wp-block-button__link {
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}

.wp-block-button__link:hover {
	transform: translateY(-1px);
}

/* Bottoni outline: hover inverso pulito */
.wp-block-button.is-style-outline .wp-block-button__link {
	border-radius: 999px;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--contrast) !important;
}

/* Home: pagine filtrate per categoria */
.home-category-pages {
	margin-top: clamp(2rem, 4vw, 3rem);
}

.home-category-pages .wp-block-post-template {
	gap: 0.75rem;
}

.home-category-pages .wp-block-post {
	overflow: hidden;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 54%, transparent);
	border-radius: 6px;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 38%, transparent);
	transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.home-category-pages .wp-block-post:hover,
.home-category-pages .wp-block-post:focus-within {
	background: var(--wp--preset--color--base);
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 18%, var(--wp--preset--color--subtle));
	transform: translateY(-1px);
}

.home-category-pages__image {
	width: 100%;
	height: 180px;
	margin: 0;
	overflow: hidden;
	border-radius: 0;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 72%, var(--wp--preset--color--base));
}

.home-category-pages__image a,
.home-category-pages__image img,
.home-category-pages__placeholder {
	display: block;
	width: 100%;
	height: 100%;
}

.home-category-pages__image img {
	object-fit: cover;
}

.home-category-pages__placeholder {
	position: relative;
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0) 42%),
		color-mix(in srgb, var(--wp--preset--color--surface) 78%, var(--wp--preset--color--subtle));
}

.home-category-pages__placeholder::before,
.home-category-pages__placeholder::after {
	content: "";
	position: absolute;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--muted) 28%, transparent);
}

.home-category-pages__placeholder::before {
	inset: 1rem;
}

.home-category-pages__placeholder::after {
	left: 50%;
	top: 50%;
	width: 3.5rem;
	height: 2.4rem;
	transform: translate(-50%, -50%);
	background: color-mix(in srgb, var(--wp--preset--color--base) 34%, transparent);
}

.home-category-pages .wp-block-post-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.25;
}

.home-category-pages .wp-block-post-title a {
	min-height: 4.5rem;
	box-sizing: border-box;
	padding: 1rem 2.75rem 1rem 1rem;
	display: flex;
	align-items: center;
	position: relative;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: color 0.2s ease;
}

.home-category-pages .wp-block-post-title a::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 0.42rem;
	height: 0.42rem;
	border-top: 1.5px solid currentColor;
	border-right: 1.5px solid currentColor;
	opacity: 0.45;
	transform: translateY(-50%) rotate(45deg);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.home-category-pages .wp-block-post-title a:hover,
.home-category-pages .wp-block-post-title a:focus-visible {
	color: var(--wp--preset--color--contrast);
}

.home-category-pages .wp-block-post-title a:hover::after,
.home-category-pages .wp-block-post-title a:focus-visible::after {
	opacity: 0.8;
	transform: translate(2px, -50%) rotate(45deg);
}

/* Immagini: hover sottile + bordi puliti */
.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
}

.wp-block-post-featured-image a,
.wp-block-image a {
	display: block;
	overflow: hidden;
}

.wp-block-post-featured-image a img,
.wp-block-image a img {
	transition: transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.wp-block-post-featured-image a:hover img,
.wp-block-image a:hover img {
	transform: scale(1.04);
}

/* Eyebrow / occhiello — stile coerente quando si usa la classe */
p.eyebrow,
.eyebrow {
	font-size: 0.75rem !important;
	letter-spacing: 0.22em !important;
	text-transform: uppercase !important;
	color: var(--wp--preset--color--muted) !important;
	font-weight: 500;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
}

.eyebrow::before {
	content: "";
	display: inline-block;
	width: 1.75rem;
	height: 1px;
	background: currentColor;
	flex-shrink: 0;
	opacity: 0.6;
}

.eyebrow.has-text-align-center {
	justify-content: center;
}

/* Top-level layout: nessun gap, sticky footer via flex */
html, body {
	min-height: 100vh;
}

/* Previene scrollbar orizzontale generata dai blocchi alignfull (100vw + scrollbar) */
html {
	overflow-x: clip;
}

body {
	overflow-x: clip;
}

.wp-site-blocks {
	--wp--style--block-gap: 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	padding-top: var(--furniture-header-h, 5.25rem);
}

.wp-site-blocks > * + * {
	margin-block-start: 0;
}

.wp-site-blocks main .wp-block-group + .wp-block-group,
.wp-block-post-content .wp-block-group + .wp-block-group {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

.wp-site-blocks > main {
	flex: 1 0 auto;
	padding-top: 0;
	padding-bottom: 0 !important;
}

.home .wp-site-blocks > main {
	padding-bottom: 0 !important;
}

.home .home-showroom-blocks {
	padding-bottom: 0 !important;
}

.home .home-showroom-blocks__media {
	min-height: clamp(16rem, 26vw, 24rem);
}

.wp-site-blocks > .site-footer,
.wp-site-blocks > footer {
	flex-shrink: 0;
}

/* ============================================================
   Site header — fixed, glass effect, always visible on scroll
   ============================================================ */
.site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 110;
	background: color-mix(in srgb, var(--wp--preset--color--base) 82%, transparent);
	backdrop-filter: saturate(1.4) blur(12px);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--wp--preset--color--surface);
	transition: box-shadow 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.site-header__inner {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0 auto;
	padding: 0.4rem clamp(1.25rem, 2.4vw, 2.5rem);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
}

/*
 * Fascia desktop intermedia:
 * il logo esteso e la navigazione possono comprimersi troppo prima
 * dell'attivazione del menu mobile. Riduciamo progressivamente ingombri
 * e spaziature così l'header resta interamente nel viewport.
 */
@media (min-width: 721px) and (max-width: 1320px) {
	.site-header__inner {
		padding-left: clamp(1rem, 2vw, 1.5rem);
		padding-right: clamp(1rem, 2vw, 1.5rem);
		gap: 1.25rem;
	}

	.site-header__brand--image .custom-logo {
		height: 52px;
		max-height: 52px;
		max-width: 245px;
	}

	.site-nav__list {
		gap: 1.1rem;
	}
}

@media (min-width: 721px) and (max-width: 1080px) {
	.site-header__brand--image .custom-logo {
		height: 48px;
		max-height: 48px;
		max-width: 220px;
	}

	.site-nav__list {
		gap: 0.9rem;
	}

	.site-nav__link,
	.site-nav .menu-item a {
		font-size: 0.9rem;
	}
}

.site-header__brand {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: opacity 0.2s ease, color 0.2s ease;
}

.site-header__brand--text {
	font-size: 0.98rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.site-header__brand--text:hover {
	color: var(--wp--preset--color--accent);
}

/* Custom logo image: si adatta in altezza, larghezza fluida */
.site-header__brand--image {
	line-height: 0;
}

.site-header__brand--image .custom-logo-link {
	display: inline-flex;
	align-items: center;
}

.site-header__brand--image .custom-logo {
	display: block;
	width: auto;
	height: 58px;
	max-height: 58px;
	max-width: 285px;
	object-fit: contain;
	transition: opacity 0.2s ease;
}

.site-header__brand--image:hover .custom-logo {
	opacity: 0.7;
}

.site-nav__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 1.45rem;
	align-items: center;
}

.site-nav .menu-item {
	position: relative;
}

.site-nav .sub-menu {
	position: absolute;
	top: calc(100% + 0.7rem);
	left: -1.1rem;
	z-index: 120;
	min-width: 13rem;
	margin: 0;
	padding: 0.6rem 0;
	list-style: none;
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 56%, transparent);
	border-radius: 8px;
	box-shadow: 0 22px 52px -30px rgba(22, 21, 19, 0.38);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
}

.site-nav .menu-item.is-megamenu-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	transition-delay: 0s;
}

.site-nav .sub-menu .menu-item a {
	display: block;
	padding: 0.55rem 1rem;
	white-space: nowrap;
}

@media (min-width: 721px) {
	.site-header .site-nav--primary .menu-item {
		position: static;
	}

	.site-header .site-nav--primary .menu-item-has-children > .sub-menu {
		top: 100%;
		left: 0;
		right: 0;
		width: 100%;
		box-sizing: border-box;
		min-width: 0;
		padding: 1.1rem var(--wp--style--root--padding-right, var(--wp--preset--spacing--40)) 1.15rem var(--wp--style--root--padding-left, var(--wp--preset--spacing--40));
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(11rem, 1fr);
		grid-template-rows: repeat(3, minmax(0, auto));
		gap: 0.75rem;
		background: color-mix(in srgb, var(--wp--preset--color--base) 97%, transparent);
		border-right: 0;
		border-left: 0;
		border-radius: 0;
		box-shadow: 0 24px 54px -38px rgba(22, 21, 19, 0.46);
		transform: translateY(-6px);
	}

	.site-header .site-nav--primary .menu-item-has-children.is-megamenu-open > .sub-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
		transition-delay: 0s;
	}

	.site-header .site-nav--primary .menu-item-has-children:hover > a {
		color: var(--wp--preset--color--accent);
	}

	.site-header .site-nav--primary .sub-menu .menu-item a {
		min-height: 3.75rem;
		box-sizing: border-box;
		padding: 0.9rem 2.65rem 0.9rem 0;
		display: flex;
		align-items: center;
		border: 0;
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 58%, transparent);
		border-radius: 0;
		background: transparent;
		white-space: normal;
		transition: color 0.2s ease, transform 0.2s ease, opacity 0.2s ease;
	}

	.site-header .site-nav--primary .sub-menu .menu-item a::before {
		content: "";
		position: absolute;
		right: 1rem;
		top: 50%;
		width: 0.42rem;
		height: 0.42rem;
		border-top: 1.5px solid currentColor;
		border-right: 1.5px solid currentColor;
		opacity: 0.42;
		transform: translateY(-50%) rotate(45deg);
		transition: opacity 0.2s ease, transform 0.2s ease;
	}

	.site-header .site-nav--primary .sub-menu .menu-item a::after {
		display: none;
	}

	.site-header .site-nav--primary .sub-menu .menu-item a:hover,
	.site-header .site-nav--primary .sub-menu .menu-item a:focus-visible {
		color: var(--wp--preset--color--contrast);
		transform: translateX(3px);
	}

	.site-header .site-nav--primary .sub-menu .menu-item a:hover::before,
	.site-header .site-nav--primary .sub-menu .menu-item a:focus-visible::before {
		opacity: 0.75;
		transform: translate(2px, -50%) rotate(45deg);
	}
}

.site-nav__list--vertical {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.65rem;
}

.site-nav__link,
.site-nav .menu-item a {
	font-size: 0.94rem;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	position: relative;
	transition: color 0.2s ease;
}

.site-nav .menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
}

.site-nav .menu-item-has-children > a::before {
	content: "";
	width: 0.42rem;
	height: 0.42rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: translateY(-1px) rotate(45deg);
	transition: transform 0.2s ease;
	order: 2;
}

.site-nav .menu-item-has-children.is-megamenu-open > a::before {
	transform: translateY(1px) rotate(225deg);
}

.site-nav__link::after,
.site-nav .menu-item a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.site-nav__link:hover::after,
.site-nav .menu-item a:hover::after {
	transform: scaleX(1);
}

body.is-scrolled .site-header {
	box-shadow: 0 1px 0 0 var(--wp--preset--color--surface), 0 12px 32px -16px rgba(22, 21, 19, 0.12);
}

.site-megamenu-backdrop {
	position: fixed;
	top: var(--furniture-megamenu-backdrop-top, 0);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 105;
	background: rgba(0, 0, 0, 0.28);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.22s ease, visibility 0s linear 0.22s;
}

body.has-megamenu-open .site-megamenu-backdrop {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}

@supports not (backdrop-filter: blur(1px)) {
	.site-header {
		background: var(--wp--preset--color--base);
	}
}

/* ============================================================
   Site footer — hard-coded
   ============================================================ */
.site-footer {
	background: var(--wp--preset--color--surface);
	padding-top: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--30);
}

.site-footer__inner {
	box-sizing: border-box;
	width: 100%;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0;
	padding-right: 0;
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr;
	gap: var(--wp--preset--spacing--40);
}

.site-footer__col {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.site-footer .site-footer__col.has-global-padding {
	padding-left: 0;
	padding-right: 0;
}

.site-footer__col.is-layout-constrained > * {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.site-footer .site-nav__list--vertical {
	gap: 0.35rem;
}

.site-footer__brand {
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

.site-footer__brand--text {
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.site-footer__brand--image {
	line-height: 0;
}

.site-footer__brand--image .custom-logo-link {
	display: inline-flex;
}

.site-footer__brand--image .custom-logo {
	display: block;
	width: auto;
	height: 36px;
	max-height: 44px;
	max-width: 200px;
	object-fit: contain;
	opacity: 0.85;
	transition: opacity 0.2s ease;
}

.site-footer__brand--image:hover .custom-logo {
	opacity: 1;
}

.site-footer__tagline {
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.site-footer__address {
	font-size: 0.8125rem;
	line-height: 1.7;
	font-style: normal;
	color: var(--wp--preset--color--contrast);
}

.site-footer__address a {
	color: inherit;
	text-decoration: none;
}

.site-footer__address a:hover {
	color: var(--wp--preset--color--accent);
}

.site-footer__rule {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: var(--wp--preset--spacing--40) auto 0;
	border: 0;
	border-top: 1px solid var(--wp--preset--color--subtle);
	opacity: 0.5;
	background: transparent;
	height: 1px;
}

.site-footer__bottom {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 1.25rem auto 0;
	padding-left: 0;
	padding-right: 0;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	font-size: 0.78rem;
	color: var(--wp--preset--color--muted);
}

.site-footer__bottom p {
	margin: 0;
}

@media (max-width: 720px) {
	.site-footer__inner {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   Burger button + overlay menu (mobile)
   ============================================================ */
.site-header__burger {
	display: none;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 44px;
	height: 44px;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
	color: var(--wp--preset--color--contrast);
	flex-shrink: 0;
	z-index: 110;
	transition: transform 0.25s ease, color 0.2s ease;
}

.site-header__burger:hover {
	color: var(--wp--preset--color--accent);
}

.site-header__burger:active {
	transform: scale(0.94);
}

.site-header__burger-icon {
	position: relative;
	display: block;
	width: 28px;
	height: 18px;
}

.site-header__burger-bar {
	position: absolute;
	left: 0;
	height: 2.5px;
	background: currentColor;
	border-radius: 2px;
	transition: width 0.3s cubic-bezier(0.65, 0, 0.35, 1),
				transform 0.35s cubic-bezier(0.65, 0, 0.35, 1),
				top 0.3s cubic-bezier(0.65, 0, 0.35, 1);
}

.site-header__burger-bar:nth-child(1) {
	top: 3px;
	width: 100%;
}

.site-header__burger-bar:nth-child(2) {
	top: 13px;
	width: 65%;
}

.site-header__burger:hover .site-header__burger-bar:nth-child(2) {
	width: 100%;
}

.site-header__burger[aria-expanded="true"] .site-header__burger-bar {
	width: 100%;
	top: 8px;
}

.site-header__burger[aria-expanded="true"] .site-header__burger-bar:nth-child(1) {
	transform: rotate(45deg);
}

.site-header__burger[aria-expanded="true"] .site-header__burger-bar:nth-child(2) {
	transform: rotate(-45deg);
}

.site-mobile-menu {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 80%;
	z-index: 105;
	background: var(--wp--preset--color--base);
	visibility: hidden;
	pointer-events: none;
	transform: translate3d(100%, 0, 0);
	transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.38s;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	will-change: transform;
}

.site-mobile-menu-backdrop {
	position: fixed;
	inset: 0;
	z-index: 104;
	background: rgba(0, 0, 0, 0.32);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.25s ease, visibility 0s linear 0.25s;
}

body.has-mobile-menu-open .site-mobile-menu-backdrop {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition-delay: 0s;
}

.site-mobile-menu[hidden] {
	display: none;
}

.site-mobile-menu.is-open {
	visibility: visible;
	pointer-events: auto;
	transform: translate3d(0, 0, 0);
	transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s;
}

.site-mobile-menu__inner {
	box-sizing: border-box;
	min-height: 100%;
	padding: calc(var(--wp--preset--spacing--60, 4rem) + 60px) var(--wp--style--root--padding-right, var(--wp--preset--spacing--40)) var(--wp--preset--spacing--60, 4rem) var(--wp--style--root--padding-left, var(--wp--preset--spacing--40));
	display: flex;
	align-items: center;
	justify-content: flex-start;
}

.site-mobile-menu .site-nav__list,
.site-mobile-menu .menu {
	flex-direction: column;
	align-items: flex-start;
	gap: 1.25rem;
	width: 100%;
}

.site-mobile-menu .menu-item-has-children {
	width: 100%;
}

.site-mobile-menu .menu-item-has-children > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
}

.site-mobile-menu .menu-item-has-children > a::before {
	content: none;
	display: none;
}

.site-mobile-menu .sub-menu {
	position: static;
	visibility: hidden;
	opacity: 0;
	transform: none;
	box-shadow: none;
	border: 0;
	background: transparent;
	padding: 0 0 0 1.25rem;
	margin: 0;
	min-width: 0;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.28s ease, opacity 0.2s ease, visibility 0s linear 0.28s, padding-top 0.28s ease;
}

.site-mobile-menu .menu-item-has-children.is-submenu-open > .sub-menu {
	visibility: visible;
	opacity: 1;
	max-height: 14rem;
	padding-top: 0.75rem;
	transition: max-height 0.28s ease, opacity 0.2s ease, visibility 0s linear 0s, padding-top 0.28s ease;
}

.site-mobile-menu .sub-menu .menu-item a {
	font-size: 1.35rem;
	padding: 0;
	white-space: normal;
}

.site-mobile-menu .site-nav__link,
.site-mobile-menu .menu-item a {
	font-size: 1.95rem;
	font-weight: 400;
	letter-spacing: -0.01em;
	line-height: 1.2;
	color: var(--wp--preset--color--contrast);
	display: inline-block;
	transition: color 0.2s ease;
}

.site-mobile-menu .menu-item.menu-item-has-children > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(100%, 18rem);
	gap: 1rem;
}

.site-mobile-menu .site-nav__link::after,
.site-mobile-menu .menu-item a::after {
	display: none;
}

.site-mobile-menu .menu-item-has-children > a::after {
	content: "+";
	position: static;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.7rem;
	height: 1.7rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 70%, transparent);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--muted);
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1;
	order: 2;
	transform: none;
}

.site-mobile-menu .menu-item-has-children.is-submenu-open > a::after {
	content: "−";
	transform: none;
}

.site-mobile-menu .site-nav__link:hover,
.site-mobile-menu .menu-item a:hover {
	color: var(--wp--preset--color--accent);
}

body.has-mobile-menu-open {
	overflow: hidden;
}

body.has-mobile-menu-open .site-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	background: var(--wp--preset--color--base);
	border-bottom-color: var(--wp--preset--color--surface);
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

@media (max-width: 720px) {
	.site-header__burger {
		display: inline-flex;
	}

	.site-header .site-nav--primary {
		display: none;
	}
}

@media (min-width: 721px) {
	.site-mobile-menu {
		display: none !important;
	}
}

/* Navigation: link hover sottile */
.wp-block-navigation .wp-block-navigation-item__content {
	transition: color 0.2s ease;
	position: relative;
}

.wp-block-navigation .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.wp-block-navigation .wp-block-navigation-item__content:hover::after {
	transform: scaleX(1);
}

.site-header .wp-block-navigation {
	margin-left: auto;
}

.site-header .wp-block-navigation .wp-block-navigation__container {
	gap: 1.45rem;
	align-items: center;
	flex-wrap: nowrap;
}

/* Mega menu compatibile con il Navigation block standard */
@media (min-width: 721px) {
	.site-header .wp-block-navigation {
		position: static;
	}

	.site-header .wp-block-navigation .wp-block-navigation__container,
	.site-header .wp-block-navigation .wp-block-page-list {
		position: static;
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu {
		position: static;
	}

	.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
		position: fixed !important;
		top: var(--furniture-megamenu-top, 0) !important;
		left: 0 !important;
		right: 0 !important;
		width: 100vw !important;
		box-sizing: border-box;
		margin-left: 0 !important;
		padding: 1.1rem var(--wp--style--root--padding-right, var(--wp--preset--spacing--40)) 1.15rem var(--wp--style--root--padding-left, var(--wp--preset--spacing--40));
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(11rem, 1fr);
		grid-template-rows: repeat(3, minmax(0, auto));
		gap: 0.75rem;
		background: color-mix(in srgb, var(--wp--preset--color--base) 97%, transparent);
		border: 0;
		border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 56%, transparent);
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 56%, transparent);
		box-shadow: 0 24px 54px -38px rgba(22, 21, 19, 0.46);
		opacity: 0 !important;
		visibility: hidden !important;
		pointer-events: none !important;
		transform: translateY(-6px);
		transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s;
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu.is-megamenu-open > .wp-block-navigation__submenu-container {
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		transform: translateY(0);
		transition-delay: 0s;
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item__content {
		min-height: 3.75rem;
		box-sizing: border-box;
		padding: 0.9rem 2.65rem 0.9rem 0;
		display: flex;
		align-items: center;
		border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 58%, transparent);
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item__content::before {
		content: "";
		position: absolute;
		right: 1rem;
		top: 50%;
		width: 0.42rem;
		height: 0.42rem;
		border-top: 1.5px solid currentColor;
		border-right: 1.5px solid currentColor;
		opacity: 0.42;
		transform: translateY(-50%) rotate(45deg);
		transition: opacity 0.2s ease, transform 0.2s ease;
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item__content:hover {
		transform: translateX(3px);
	}

	.site-header .wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item__content:hover::before {
		opacity: 0.75;
		transform: translate(2px, -50%) rotate(45deg);
	}
}

/* Servizi card — bordo top che si rinforza all'hover */
.service-card {
	border-top: 1px solid var(--wp--preset--color--contrast);
	padding-top: 1.5rem;
	transition: border-color 0.3s ease;
}

.service-card:hover {
	border-top-color: var(--wp--preset--color--accent);
}

.service-card .service-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	font-weight: 500;
	margin-top: 0.5rem;
	transition: gap 0.3s ease;
}

.service-card .service-link:hover {
	gap: 0.7rem;
}

/* Quote / testimonial — separatori decorativi */
.wp-block-quote {
	border: 0;
	padding: 0;
	position: relative;
}

.wp-block-quote::before {
	content: "";
	display: block;
	width: 2.5rem;
	height: 1px;
	background: var(--wp--preset--color--subtle);
	margin: 0 auto 2rem;
}

.wp-block-quote cite {
	font-style: normal;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 0.9375rem;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--muted);
	display: block;
	margin-top: 1.5rem;
}

/* Body paragraph con classe lead — più leggibile sui paragrafi grandi */
.is-lead {
	font-family: var(--wp--preset--font-family--inter);
	color: var(--wp--preset--color--muted);
	line-height: 1.55;
	max-width: 36em;
}

/* Hero immagine — trattamento più cinematografico */
.hero-image img {
	aspect-ratio: 16 / 9;
	object-fit: cover;
	width: 100%;
}

/* Home negozio: hero piu' leggibile su desktop e mobile */
.home-furniture-hero .eyebrow {
	color: #fff !important;
	opacity: 0.86;
	text-shadow: 0 1px 14px rgba(0, 0, 0, 0.35);
}

.home-furniture-hero h1 {
	max-width: 8.8em;
	font-size: clamp(2.4rem, 4.7vw, 4.25rem) !important;
	line-height: 1 !important;
}

.home-furniture-hero p:not(.eyebrow) {
	max-width: 42rem;
}

.home-furniture-slider {
	margin-top: 0 !important;
}

.home-furniture-slider .furniture-slides__slide {
	padding-left: clamp(1.5rem, 4vw, 4rem);
	padding-right: clamp(1.5rem, 4vw, 4rem);
}

.home-furniture-slider .furniture-slides__content {
	gap: 1.35rem;
}

.home-furniture-slider .furniture-slides__title {
	font-size: clamp(2.4rem, 4.7vw, 4.25rem);
	line-height: 1.04;
	font-family: var(--wp--preset--font-family--serif);
	font-weight: 500;
	letter-spacing: 0;
	text-wrap: balance;
}

.home-furniture-slider .furniture-slides__text {
	font-size: clamp(1.05rem, 1.7vw, 1.35rem);
	font-weight: 500;
	line-height: 1.45;
}

.home-furniture-slider .furniture-slides__button {
	box-sizing: border-box;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 1rem 2rem;
}

.home-furniture-slider .furniture-slides__button:hover {
	background: #000;
	color: #fff;
}

@media (max-width: 720px) {
	.home-furniture-hero h1 {
		font-size: clamp(2.25rem, 11vw, 3.25rem) !important;
		line-height: 1.04 !important;
	}

	.home-furniture-slider .furniture-slides__slide {
		padding-top: 9rem;
	}

	.home-furniture-slider .furniture-slides__title {
		font-size: clamp(2.25rem, 11vw, 3.25rem);
		line-height: 1.04;
	}

	.home-furniture-slider .furniture-slides__button {
		width: min(100%, 19rem);
		text-align: center;
	}
}

/* ============================================================
   Hero Slider — wrapper Swiper.js
   ============================================================ */
.hero-slider {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}

/* Le Cover diventano .swiper-slide via JS — preservano il loro layout interno */
.hero-slider .swiper-slide {
	display: block;
	height: auto;
}

/* Pagination dots */
.hero-slider .swiper-pagination {
	bottom: 1.75rem !important;
	display: flex;
	justify-content: center;
	gap: 0.6rem;
	pointer-events: none;
}

.hero-slider .swiper-pagination-bullet {
	width: 28px;
	height: 2px;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.45);
	opacity: 1;
	margin: 0 !important;
	transition: background 0.3s ease, width 0.3s ease;
	pointer-events: auto;
}

.hero-slider .swiper-pagination-bullet:hover {
	background: rgba(255, 255, 255, 0.75);
}

.hero-slider .swiper-pagination-bullet-active {
	background: #fff;
	width: 44px;
}

/* Navigation arrows */
.hero-slider .swiper-button-prev,
.hero-slider .swiper-button-next {
	width: 48px;
	height: 48px;
	color: #fff;
	opacity: 0.7;
	transition: opacity 0.25s ease, transform 0.25s ease;
	margin-top: -24px;
}

.hero-slider .swiper-button-prev:hover,
.hero-slider .swiper-button-next:hover {
	opacity: 1;
}

.hero-slider .swiper-button-prev:hover {
	transform: translateX(-3px);
}

.hero-slider .swiper-button-next:hover {
	transform: translateX(3px);
}

.hero-slider .swiper-button-prev::after,
.hero-slider .swiper-button-next::after {
	font-size: 22px;
	font-weight: 300;
}

/* Fade-in del contenuto interno della slide attiva */
.hero-slider .swiper-slide .wp-block-cover__inner-container {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.hero-slider .swiper-slide-active .wp-block-cover__inner-container {
	opacity: 1;
	transform: translateY(0);
	transition-delay: 0.25s;
}

/* Lieve Ken Burns sull'immagine attiva */
.hero-slider .swiper-slide .wp-block-cover__image-background {
	transition: transform 7s ease-out;
	transform: scale(1);
}

.hero-slider .swiper-slide-active .wp-block-cover__image-background {
	transform: scale(1.06);
}

@media (max-width: 720px) {
	.hero-slider .swiper-button-prev,
	.hero-slider .swiper-button-next {
		display: none;
	}

	.hero-slider .swiper-pagination {
		bottom: 1rem !important;
	}
}

/* Separator alpha più discreto */
.wp-block-separator {
	border: 0;
	border-top: 1px solid var(--wp--preset--color--subtle);
	opacity: 0.5;
}

/* Heading display utility — quando uso il serif per accento */
.has-serif-accent {
	font-family: var(--wp--preset--font-family--serif) !important;
	font-style: italic !important;
	font-weight: 400 !important;
	letter-spacing: -0.01em !important;
}

/* Lead paragraph: max-width per leggibilità migliore */
.is-lead {
	color: var(--wp--preset--color--muted) !important;
	line-height: 1.55;
}

/* ============================================================
   Allineamento contenuto al wideSize (= header logo/menu).
   Override delle regole layout-constrained iniettate da WP che
   limiterebbero il main / post-content al contentSize 880px.
   ============================================================ */
.wp-site-blocks > main.wp-block-group {
	padding-top: clamp(1.25rem, 3vw, 2.5rem) !important;
	padding-bottom: 0 !important;
}

.home .wp-site-blocks > main.wp-block-group,
.front-page .wp-site-blocks > main.wp-block-group {
	padding-top: 0 !important;
}

.wp-site-blocks > main.wp-block-group > .wp-block-post-title {
	width: min(100%, 12.5em);
	margin-top: 0 !important;
	margin-bottom: clamp(1rem, 2.4vw, 1.6rem) !important;
	font-size: clamp(2.5rem, 5.8vw, 4.25rem);
	color: var(--wp--preset--color--contrast);
}

.wp-site-blocks > main.wp-block-group > .wp-block-post-title::after {
	content: "";
	display: block;
	width: 4.25rem;
	height: 1px;
	margin-top: clamp(0.95rem, 2vw, 1.35rem);
	background: var(--wp--preset--color--accent);
	opacity: 0.55;
}

.furniture-breadcrumbs {
	width: 100%;
	margin: 0 0 clamp(0.75rem, 1.5vw, 1rem) !important;
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
}

.furniture-breadcrumbs__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.furniture-breadcrumbs__item {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.furniture-breadcrumbs__item + .furniture-breadcrumbs__item::before {
	content: "/";
	color: color-mix(in srgb, var(--wp--preset--color--muted) 38%, transparent);
	font-weight: 400;
}

.furniture-breadcrumbs__link {
	color: inherit;
	text-decoration: none;
	transition: color 0.2s ease;
}

.furniture-breadcrumbs__link:hover {
	color: var(--wp--preset--color--contrast);
}

.furniture-breadcrumbs__current {
	color: var(--wp--preset--color--contrast);
}

.wp-block-post-content .wp-block-button__link,
.wp-block-post-content .wp-element-button {
	font-weight: 600;
}

.business-highlights {
	margin-top: clamp(2.25rem, 5vw, 4rem) !important;
	padding-top: clamp(1.4rem, 3vw, 2rem);
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 70%, transparent);
}

.business-highlights .wp-block-columns {
	gap: clamp(1rem, 2.5vw, 2rem);
}

.business-highlights .wp-block-column {
	padding-top: 1.15rem;
	border-top: 1px solid var(--wp--preset--color--contrast);
}

.business-highlights h2,
.business-highlights h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--inter);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0;
}

.business-highlights p {
	margin-top: 0.55rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

.category-cta {
	margin-top: clamp(2rem, 4vw, 3.25rem) !important;
	padding: clamp(1.2rem, 3vw, 1.8rem) 0 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 60%, transparent);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.category-cta p {
	max-width: 46rem;
	margin: 0;
	color: var(--wp--preset--color--contrast);
	font-size: clamp(1rem, 1.5vw, 1.12rem);
	line-height: 1.55;
}

.category-cta .wp-block-buttons {
	margin: 0;
	flex: 0 0 auto;
}

@media (max-width: 781px) {
	.business-highlights .wp-block-columns {
		gap: 1.35rem;
	}

	.category-cta {
		display: block;
	}

	.category-cta .wp-block-buttons {
		margin-top: 1rem;
	}

}

.wp-block-post-content.is-layout-constrained > .wp-block-image,
.wp-block-post-content.is-layout-constrained > figure.wp-block-image {
	margin-top: clamp(2rem, 4vw, 3.5rem);
}

.wp-block-post-content.is-layout-constrained > .wp-block-image img,
.wp-block-post-content.is-layout-constrained > figure.wp-block-image img {
	border-radius: 8px;
	box-shadow: 0 24px 70px color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

/* Layout editor:
   - nessuna classe: larghezza standard WordPress
   - alignwide: stessa larghezza del contenuto header
   - alignfull: pieno viewport */
.wp-site-blocks main .alignwide,
.wp-block-post-content > .alignwide {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1480px);
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--wp--style--root--padding-left, var(--wp--preset--spacing--40));
	padding-right: var(--wp--style--root--padding-right, var(--wp--preset--spacing--40));
}

.wp-site-blocks main .alignfull,
.wp-block-post-content > .alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw) !important;
	margin-right: calc(50% - 50vw) !important;
}

/* ============================================================
   Contact Form 7 — pagina Contatti
   ============================================================ */
.wp-block-post-content .wpcf7 {
	box-sizing: border-box;
	width: min(100%, 760px);
	max-width: 100%;
	margin-top: var(--wp--preset--spacing--50);
	padding: clamp(1.25rem, 3vw, 2.25rem);
	background: color-mix(in srgb, var(--wp--preset--color--surface) 64%, var(--wp--preset--color--base));
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 58%, transparent);
	border-radius: 8px;
	box-shadow: 0 22px 60px color-mix(in srgb, var(--wp--preset--color--contrast) 7%, transparent);
}

.wp-block-post-content .wpcf7 form {
	display: grid;
	gap: 1.05rem;
	margin: 0;
}

.wp-block-post-content .wpcf7 p {
	margin: 0;
}

.wp-block-post-content .wpcf7 label {
	display: grid;
	gap: 0.45rem;
	color: var(--wp--preset--color--contrast);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.wp-block-post-content .wpcf7-form-control-wrap {
	display: block;
}

.wp-block-post-content .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
.wp-block-post-content .wpcf7 textarea {
	box-sizing: border-box;
	width: 100%;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--subtle) 72%, transparent);
	border-radius: 6px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 1rem;
	line-height: 1.45;
	padding: 0.9rem 1rem;
	transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.wp-block-post-content .wpcf7 textarea {
	min-height: 150px;
	resize: vertical;
}

.wp-block-post-content .wpcf7 input:not([type="submit"]):not([type="checkbox"]):focus,
.wp-block-post-content .wpcf7 textarea:focus {
	border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--contrast) 9%, transparent);
	outline: none;
}

.wp-block-post-content .wpcf7-acceptance {
	display: block;
	margin-top: 0.2rem;
}

.wp-block-post-content .wpcf7-acceptance label {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.55;
	text-transform: none;
}

.wp-block-post-content .wpcf7 input[type="checkbox"] {
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.2rem;
	accent-color: var(--wp--preset--color--contrast);
	flex: 0 0 auto;
}

.wp-block-post-content .wpcf7-submit {
	justify-self: start;
	margin-top: 0.3rem;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	cursor: pointer;
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1;
	padding: 1rem 2rem;
	transition: background-color 0.25s ease, transform 0.25s ease;
}

.wp-block-post-content .wpcf7-submit:hover {
	background: var(--wp--preset--color--accent);
	transform: translateY(-1px);
}

.wp-block-post-content .wpcf7-submit:disabled {
	cursor: progress;
	opacity: 0.72;
	transform: none;
}

.wp-block-post-content .wpcf7-not-valid-tip {
	color: #8d312f;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0;
	margin-top: 0.35rem;
	text-transform: none;
}

.wp-block-post-content .wpcf7 form .wpcf7-response-output {
	margin: 0.35rem 0 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 6px;
	color: var(--wp--preset--color--contrast);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.wp-block-post-content .wpcf7 form.sent .wpcf7-response-output {
	border-color: #5f7f5c;
	background: color-mix(in srgb, #5f7f5c 10%, transparent);
}

.wp-block-post-content .wpcf7 form.invalid .wpcf7-response-output,
.wp-block-post-content .wpcf7 form.unaccepted .wpcf7-response-output,
.wp-block-post-content .wpcf7 form.spam .wpcf7-response-output {
	border-color: #a46748;
	background: color-mix(in srgb, #a46748 10%, transparent);
}

@media (max-width: 600px) {
	.wp-site-blocks > main.wp-block-group {
		padding-top: 2rem !important;
		padding-bottom: 0 !important;
	}

	.wp-site-blocks > main.wp-block-group > .wp-block-post-title {
		font-size: clamp(2.35rem, 12vw, 3.25rem);
	}

	.wp-block-post-content .wpcf7 {
		margin-top: var(--wp--preset--spacing--40);
		padding: 1rem 0.9rem;
		width: 100%;
	}

	.wp-block-post-content .wpcf7 form {
		gap: 0.9rem;
	}

	.wp-block-post-content .wpcf7 input:not([type="submit"]):not([type="checkbox"]),
	.wp-block-post-content .wpcf7 textarea {
		padding: 0.8rem 0.85rem;
	}

	.wp-block-post-content .wpcf7 textarea {
		min-height: 135px;
	}

	.wp-block-post-content .wpcf7-acceptance label {
		gap: 0.55rem;
		font-size: 0.8125rem;
	}

	.wp-block-post-content .wpcf7-submit {
		width: 100%;
	}
}

/* ============================================================
   Pagina 404
   ============================================================ */
.page-404 {
	display: flex;
	align-items: center;
	min-height: calc(100vh - 60px - 320px); /* viewport - header - footer approx */
}

.page-404 .wp-block-columns {
	width: 100%;
}

.page-404__illustration {
	margin: 0;
	width: 100%;
}

.page-404__svg {
	width: 100%;
	height: auto;
	display: block;
	max-width: 520px;
	margin-left: auto;
	margin-right: auto;
}

.page-404__svg .sun-pulse,
.page-404__svg circle {
	transition: opacity 0.6s ease;
}

.page-404__illustration:hover .page-404__svg circle {
	opacity: 1;
}

.page-404__caption {
	font-family: var(--wp--preset--font-family--serif);
	font-style: italic;
	font-size: 0.9375rem;
	color: var(--wp--preset--color--muted);
	margin-top: 0.85rem;
	text-align: right;
	letter-spacing: 0.005em;
}

/* Form di ricerca 404 — input pill */
.search-404 .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--subtle);
	border-radius: 999px;
	padding: 0.35rem 0.35rem 0.35rem 1.25rem;
	background: var(--wp--preset--color--base);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	gap: 0.5rem;
}

.search-404 .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--wp--preset--color--contrast);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--wp--preset--color--contrast) 8%, transparent);
}

.search-404 .wp-block-search__input {
	border: 0;
	background: transparent;
	font-size: 0.9375rem;
	padding: 0.65rem 0;
	outline: none;
}

.search-404 .wp-block-search__button {
	border-radius: 999px;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	border: 0;
	padding: 0.7rem 1.5rem;
	font-size: 0.9375rem;
	font-weight: 500;
	letter-spacing: 0.005em;
	cursor: pointer;
	transition: background-color 0.25s ease;
}

.search-404 .wp-block-search__button:hover {
	background: var(--wp--preset--color--accent);
}

@media (max-width: 781px) {
	.page-404 {
		min-height: 0;
	}

	.page-404__svg {
		max-width: 360px;
	}
}
