/*
 Theme Name:   Hello Elementor Child
 Theme URI:    https://falle-antifurti.local
 Description:  Tema child di Hello Elementor per personalizzazioni del sito Falle Antifurti
 Author:       Falle Antifurti
 Author URI:   https://falle-antifurti.local
 Template:     hello-elementor
 Version:      1.0.28
 License:      GNU General Public License v2 or later
 License URI:  http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain:  hello-elementor-child
*/

body{
	background-color: #f4f4f4 !important;
}

/* Sticky header */
header.elementor-location-header {
	position: sticky;
	top: 0;
	z-index: 999;
	width: 100%;
}

header.elementor-location-header,
#site-header.site-header,
#main-menu {
	background-color: transparent !important;
}

/* Offset when WordPress admin bar is visible */
.admin-bar header.elementor-location-header {
	top: 32px;
}

header{
	top: 0px !important;
}

@media screen and (max-width: 782px) {
	.admin-bar header.elementor-location-header {
		top: 46px;
	}
}

/* Hide theme page title when a full-bleed hero is present (home/inner pages). */
body:has(#hero) .page-header {
	display: none !important;
}

/* Hero full viewport */
body #hero.elementor-element.e-con {
	--min-height: 100vh !important;
	min-height: 100vh !important;
	min-height: 100dvh !important;
	width: 100%;
	position: relative;
	align-items: center;
	justify-content: center;
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
	top: -22px;
}

#hero::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: linear-gradient(to top, #f4f4f6 0%, transparent 40%);
	z-index: 1;
}

#hero > .e-con-inner,
#hero > .elementor-element {
	position: relative;
	z-index: 2;
}

#hero .elementor-background-slideshow,
#hero .elementor-background-slideshow__slide,
#hero .elementor-background-slideshow__slide__image {
	height: 100%;
	width: 100%;
}

#hero .elementor-background-slideshow__slide__image {
	background-size: cover !important;
	background-position: center center !important;
	background-repeat: no-repeat !important;
}

/*
 * Liquid Glass
 *
 * Add the `liquid-glass` class to any Elementor button, container or widget.
 * `button-hero-home` is included automatically for the hero call-to-action.
 */
body :is(.liquid-glass, .liquid-glass-red, .button-hero-home) {
	--glass-light-x: 50%;
	--glass-light-y: 0%;
	--glass-shadow-x: 0px;
	--glass-shadow-y: 8px;
	--glass-highlight-x: 0px;
	--glass-highlight-y: -3px;
	--glass-inset-shadow-x: 0px;
	--glass-inset-shadow-y: 3px;
	--glass-surface: rgba(255, 255, 255, 0.16);
	--glass-border: rgba(255, 255, 255, 0.5);

	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-color: var(--glass-surface) !important;
	background-image:
		radial-gradient(
			ellipse 100% 130% at var(--glass-light-x) var(--glass-light-y),
			rgba(255, 255, 255, 0.34) 0%,
			rgba(255, 255, 255, 0.11) 31%,
			rgba(255, 255, 255, 0.03) 62%,
			rgba(255, 255, 255, 0.13) 100%
		) !important;
	border: 1px solid var(--glass-border) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.72),
		inset 0 -1px 0 rgba(255, 255, 255, 0.16),
		inset var(--glass-highlight-x) var(--glass-highlight-y) 7px -5px rgba(255, 255, 255, 0.86),
		inset var(--glass-inset-shadow-x) var(--glass-inset-shadow-y) 9px -5px rgba(15, 23, 42, 0.27),
		var(--glass-shadow-x) var(--glass-shadow-y) 22px rgba(15, 23, 42, 0.2) !important;
	-webkit-backdrop-filter: blur(12px) saturate(165%) brightness(1.08);
	backdrop-filter: blur(12px) saturate(165%) brightness(1.08);
	transition:
		transform 220ms ease,
		box-shadow 220ms ease,
		background-color 220ms ease,
		border-color 220ms ease;
}

body :is(button.liquid-glass, button.liquid-glass-red, button.button-hero-home) {
	border-radius: 9999px !important;
	color: #0f172a !important;
	cursor: pointer;
}

/* Liquid glass CTA: brand red text (incl. nested <strong>). */
body button.liquid-glass,
body button.liquid-glass :is(strong, span, b, em, i) {
	color: #C20000 !important;
	-webkit-text-fill-color: #C20000 !important;
}

body :is(.liquid-glass, .liquid-glass-red, .button-hero-home)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
	pointer-events: none;
	background:
		linear-gradient(
			115deg,
			rgba(255, 255, 255, 0.38) 0%,
			rgba(255, 255, 255, 0.09) 24%,
			transparent 48%
		),
		conic-gradient(
			from 210deg at var(--glass-light-x) var(--glass-light-y),
			rgba(255, 255, 255, 0.04),
			rgba(255, 255, 255, 0.58),
			rgba(255, 255, 255, 0.06) 38%,
			rgba(255, 255, 255, 0.42) 62%,
			rgba(255, 255, 255, 0.04) 82%
		);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	mask-composite: exclude;
	padding: 1px;
	opacity: 0.85;
}

body :is(.liquid-glass, .liquid-glass-red, .button-hero-home)::after {
	content: "";
	position: absolute;
	inset: -35%;
	z-index: 0;
	pointer-events: none;
	background: radial-gradient(
		circle at var(--glass-light-x) var(--glass-light-y),
		rgba(255, 255, 255, 0.24) 0%,
		transparent 38%
	);
	mix-blend-mode: soft-light;
}

body :is(.liquid-glass, .liquid-glass-red, .button-hero-home) > * {
	position: relative;
	z-index: 1;
}

body :is(button.liquid-glass, button.liquid-glass-red, button.button-hero-home):is(:hover, :focus-visible) {
	--glass-surface: rgba(255, 255, 255, 0.25);
	--glass-border: rgba(255, 255, 255, 0.7);

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.82),
		inset 0 -1px 0 rgba(255, 255, 255, 0.24),
		inset var(--glass-highlight-x) var(--glass-highlight-y) 8px -5px rgba(255, 255, 255, 0.9),
		inset var(--glass-inset-shadow-x) var(--glass-inset-shadow-y) 10px -5px rgba(15, 23, 42, 0.25),
		var(--glass-shadow-x) var(--glass-shadow-y) 28px rgba(15, 23, 42, 0.24) !important;
}

body :is(button.liquid-glass, button.liquid-glass-red, button.button-hero-home):active {
	transform: translateY(0) scale(0.98);
}

body .liquid-glass-red {
	--glass-surface: #df0000;
	--glass-border: rgba(255, 214, 214, 0.72);

	color: #ffffff !important;
}

body .liquid-glass-red:is(:hover, :focus-visible) {
	--glass-surface: #df0000;
	--glass-border: rgba(255, 235, 235, 0.9);
}

@media (prefers-reduced-motion: reduce) {
	body :is(.liquid-glass, .liquid-glass-red, .button-hero-home) {
		transition: none;
	}
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	body :is(.liquid-glass, .liquid-glass-red, .button-hero-home) {
		background-color: rgba(255, 255, 255, 0.88) !important;
	}

	body .liquid-glass-red {
		background-color: #df0000 !important;
	}
}

/* Main navigation: highlight the current page without Elementor's underline. */
.elementor-nav-menu--main .elementor-nav-menu > .current-menu-item > .elementor-item,
.elementor-nav-menu--main .elementor-nav-menu > .current_page_item > .elementor-item,
.elementor-nav-menu--main .elementor-item[aria-current="page"] {
	color: #000000 !important;
	font-family: "Helvetica Now Display Black", sans-serif !important;
	font-style: italic !important;
	font-weight: 800 !important;
}

.elementor-nav-menu--main .elementor-item:hover,
.elementor-nav-menu--main .elementor-item:focus-visible {
	color: #df0000 !important;
}

.elementor-nav-menu--main.e--pointer-underline .elementor-item:hover::after,
.elementor-nav-menu--main.e--pointer-underline .elementor-item:focus-visible::after,
.elementor-nav-menu--main.e--pointer-underline
	.elementor-nav-menu
	> .current-menu-item
	> .elementor-item::after,
.elementor-nav-menu--main.e--pointer-underline
	.elementor-nav-menu
	> .current_page_item
	> .elementor-item::after,
.elementor-nav-menu--main.e--pointer-underline
	.elementor-item[aria-current="page"]::after {
	display: none !important;
}

.elementor-nav-menu .sub-arrow{
	display:none !important;
}

/* Main nav dropdown: "Sistemi di sicurezza"
 * The header bar uses .liquid-glass with overflow:hidden, which clips the submenu.
 * Open overflow on the glass bar and its ancestors so the dropdown can escape. */
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main),
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main) .e-con,
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main) .elementor-widget-nav-menu,
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main) .elementor-nav-menu__container,
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main) .elementor-nav-menu {
	overflow: visible !important;
}

header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main) {
	z-index: 1001;
}

/* Header glass needs overflow:visible for the dropdown. Keep the glow layers
 * active, but pin ::after to the bar (default inset:-35% would spill). */
header.elementor-location-header .liquid-glass:has(.elementor-nav-menu--main)::after {
	inset: 0;
	border-radius: inherit;
}

.elementor-nav-menu--main .menu-item-has-children {
	position: relative;
}

.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 1002;
	width: 230px !important;
	min-width: 230px !important;
	max-width: none !important;
	margin: 0.5rem 0 0;
	padding: 0.55rem 0;
	list-style: none;
	background-color: #ffffff !important;
	border-radius: 12px;
	box-shadow: 0 10px 28px rgba(15, 23, 42, 0.12);
	text-align: left;
}

.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .menu-item {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	text-align: left;
}

/* Slightly smaller than main nav (17px), same family/weight. */
.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .elementor-sub-item {
	display: block;
	width: 100%;
	padding: 0.7rem 1.2rem;
	color: #000000 !important;
	font-family: "Helvetica Now Display Regular", sans-serif !important;
	font-size: 15px !important;
	font-style: normal !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	text-align: left;
	white-space: nowrap;
	background-color: transparent !important;
	border: none !important;
	box-shadow: none !important;
}

.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .elementor-sub-item:hover,
.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .elementor-sub-item:focus-visible {
	color: #df0000 !important;
	background-color: transparent !important;
}

.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .current-menu-item > .elementor-sub-item,
.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .current_page_item > .elementor-sub-item,
.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .elementor-sub-item[aria-current="page"],
.elementor-nav-menu--main .sub-menu.elementor-nav-menu--dropdown .elementor-sub-item.elementor-item-active {
	color: #000000 !important;
	font-family: "Helvetica Now Display Extra Bold", sans-serif !important;
	font-style: italic !important;
	font-weight: 700 !important;
}

/* Tablet/mobile: hamburger icon only (logo / glass bar stay as set in Elementor). */
@media (max-width: 1024px) {
	/* Menu column only — full bar height so the icon can be centered in it. */
	header.elementor.elementor-location-header .liquid-glass > .e-con:has(.elementor-menu-toggle) {
		position: relative !important;
		align-self: stretch !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle {
		position: static !important;
		height: 100% !important;
	}

	/* Keep logo / hamburger above the white overlay. Hide the phone while open. */
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .elementor-element-ea6fb02 {
		position: relative !important;
		z-index: 10003 !important;
	}

	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .tel-header-mobile {
		display: none !important;
	}

	/* backdrop-filter on .liquid-glass traps position:fixed — release it while open. */
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active),
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) #main-menu,
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .e-con-inner,
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .liquid-glass:has(.elementor-menu-toggle),
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .liquid-glass:has(.elementor-menu-toggle) .e-con,
	header.elementor.elementor-location-header:has(.elementor-menu-toggle.elementor-active) .elementor-widget-nav-menu {
		transform: none !important;
		filter: none !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		isolation: auto !important;
		overflow: visible !important;
		contain: none !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown {
		position: fixed !important;
		inset: 0 !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		left: 0 !important;
		z-index: 10000 !important;
		display: none !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		box-sizing: border-box !important;
		width: 100vw !important;
		width: 100dvw !important;
		height: 100vh !important;
		height: 100dvh !important;
		max-width: none !important;
		max-height: none !important;
		margin: 0 !important;
		padding: 6.5rem 1.5rem 2rem !important;
		overflow: auto !important;
		background-color: #ffffff !important;
		background-image: none !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	header.elementor.elementor-location-header .elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown[aria-hidden="false"] {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-nav-menu {
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: center !important;
		gap: 1.35rem;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		list-style: none !important;
		text-align: center !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .menu-item {
		display: block !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: center !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-item,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-sub-item {
		display: block !important;
		width: 100% !important;
		padding: 0 !important;
		color: #000000 !important;
		-webkit-text-fill-color: #000000 !important;
		font-family: "Helvetica Now Display Regular", sans-serif !important;
		font-size: clamp(1.25rem, 4vw, 1.75rem) !important;
		font-style: normal !important;
		font-weight: 600 !important;
		line-height: 1.25 !important;
		text-align: center !important;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-item:hover,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-item:focus-visible,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-sub-item:hover,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-sub-item:focus-visible {
		color: #df0000 !important;
		-webkit-text-fill-color: #df0000 !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .current-menu-item > .elementor-item,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .current_page_item > .elementor-item,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-item[aria-current="page"],
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-item.elementor-item-active {
		color: #000000 !important;
		-webkit-text-fill-color: #000000 !important;
		font-family: "Helvetica Now Display Black", sans-serif !important;
		font-style: italic !important;
		font-weight: 800 !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .sub-menu {
		position: static !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 0.65rem;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		margin: 0.65rem 0 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		text-align: center !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu.elementor-nav-menu--toggle > .elementor-nav-menu--dropdown .elementor-sub-item {
		font-size: clamp(1rem, 3.2vw, 1.25rem) !important;
		font-weight: 500 !important;
	}

	body:has(header.elementor-location-header .elementor-menu-toggle.elementor-active) {
		overflow: hidden !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle {
		position: absolute !important;
		top: 50% !important;
		right: 0 !important;
		bottom: auto !important;
		left: auto !important;
		z-index: 10001 !important;
		transform: translateY(-50%) !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		line-height: 0 !important;
		font-size: 22px !important;
		color: #000000 !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle i,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle svg,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle svg path,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle .e-font-icon-svg {
		color: #000000 !important;
		fill: #000000 !important;
		stroke: none !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle svg,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle .e-font-icon-svg {
		width: 1.15em !important;
		height: 1.15em !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active {
		position: fixed !important;
		top: 1.25rem !important;
		right: 1.25rem !important;
		bottom: auto !important;
		left: auto !important;
		z-index: 10004 !important;
		transform: none !important;
		width: 2.75rem !important;
		height: 2.75rem !important;
		font-size: 28px !important;
		color: #000000 !important;
	}

	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active i,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active svg,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active svg path,
	header.elementor.elementor-location-header .elementor-element.elementor-widget-nav-menu .elementor-menu-toggle.elementor-active .e-font-icon-svg {
		color: #000000 !important;
		fill: #000000 !important;
	}
}

/* Header CTAs: tel on tablet/phone, contact on desktop only. */
@media (min-width: 1025px) {
	.tel-header-mobile {
		display: none !important;
	}
}

@media (max-width: 1024px) {
	.contact-header-desktop {
		display: none !important;
	}

	/* Phone button: glass ring + solid red circle + white handset.
	 * Lock both axes to --tel-size so Elementor cannot stretch it into an oval. */
	header.elementor.elementor-location-header .elementor-element.elementor-element-dd7b362.tel-header-mobile,
	header.elementor.elementor-location-header .e-dd7b362-04cb011 {
		--tel-size: 64px;
		--width: var(--tel-size) !important;
		--height: var(--tel-size) !important;
		--min-height: var(--tel-size) !important;
		box-sizing: border-box !important;
		display: flex !important;
		flex: 0 0 var(--tel-size) !important;
		align-self: center !important;
		align-items: center !important;
		justify-content: center !important;
		width: var(--tel-size) !important;
		min-width: var(--tel-size) !important;
		max-width: var(--tel-size) !important;
		height: var(--tel-size) !important;
		min-height: var(--tel-size) !important;
		max-height: var(--tel-size) !important;
		padding: 0 !important;
		border-radius: 50% !important;
	}

	header.elementor.elementor-location-header .tel-header-mobile .elementor-element-3d8d022,
	header.elementor.elementor-location-header .tel-header-mobile .e-3d8d022-7e94c4a,
	header.elementor.elementor-location-header .tel-header-mobile .elementor-element-d0463bb,
	header.elementor.elementor-location-header .tel-header-mobile .e-d0463bb-88248fe {
		--width: 100% !important;
		--height: 100% !important;
		box-sizing: border-box !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		height: 100% !important;
		min-height: 0 !important;
		max-height: none !important;
		border-radius: 50% !important;
	}

	header.elementor.elementor-location-header .tel-header-mobile .liquid-glass {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		padding: 4px !important;
		overflow: hidden !important;
	}

	header.elementor.elementor-location-header .tel-header-mobile .liquid-glass > .e-con,
	header.elementor.elementor-location-header .tel-header-mobile .elementor-widget-html,
	header.elementor.elementor-location-header .tel-header-mobile a {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 100% !important;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		border-radius: 50% !important;
	}

	header.elementor.elementor-location-header .tel-header-mobile .liquid-glass > .e-con {
		background-color: #df0000 !important;
		background-image: none !important;
	}

	header.elementor.elementor-location-header .tel-header-mobile img {
		display: block !important;
		width: 46% !important;
		height: 46% !important;
		max-width: 1.6rem !important;
		object-fit: contain !important;
		mix-blend-mode: screen;
	}
}

/* Home service cards */
.card-home {
	transition:
		transform 280ms ease,
		background-color 280ms ease,
		box-shadow 280ms ease;
}

.card-home h3 {
	transition: color 280ms ease;
}

.card-home p {
	transition: color 280ms ease;
}

.card-home img {
	transition:
		transform 280ms ease,
		filter 280ms ease;
}

.card-home:hover {
	background-color: #000000 !important;
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.18);
	transform: translateY(-4px);
}

.card-home:hover h3 {
	color: #C20000 !important;
}

.card-home:hover p {
	color: #ffffff !important;
}

.card-home:hover img {
	filter: brightness(0) invert(1);
	transform: scale(1.06);
}

.card-home-1,
.card-home-2,
.card-home-3 {
	cursor: pointer;
	position: relative;
	isolation: isolate;
	overflow: hidden;
}

.card-home-1::after,
.card-home-2::after,
.card-home-3::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background: linear-gradient(to top, #f4f4f6 0%, transparent 55%);
	transition: background 280ms ease;
}

.card-home-1.is-active::after,
.card-home-2.is-active::after,
.card-home-3.is-active::after {
	background: linear-gradient(to top, #000000 0%, transparent 55%);
}

.card-home-1 > :is(h2, h3, p, .e-heading-base, .e-paragraph-base, .icon-carousel-home),
.card-home-2 > :is(h2, h3, p, .e-heading-base, .e-paragraph-base, .icon-carousel-home),
.card-home-3 > :is(h2, h3, p, .e-heading-base, .e-paragraph-base, .icon-carousel-home) {
	position: relative;
	z-index: 1;
	transition: color 280ms ease;
}

.card-home-1.is-active > :is(h2, h3, p, .e-heading-base, .e-paragraph-base),
.card-home-2.is-active > :is(h2, h3, p, .e-heading-base, .e-paragraph-base),
.card-home-3.is-active > :is(h2, h3, p, .e-heading-base, .e-paragraph-base) {
	color: #ffffff !important;
}

.card-home-1 .icon-carousel-home img,
.card-home-2 .icon-carousel-home img,
.card-home-3 .icon-carousel-home img {
	/* Same filter chain as hover so the color can interpolate */
	filter: brightness(0) saturate(100%) invert(18%) sepia(0%) saturate(0%) hue-rotate(0deg) brightness(92%) contrast(92%);
	transition: filter 320ms ease;
}

.card-home-1:is(:hover, .is-active) .icon-carousel-home img,
.card-home-2:is(:hover, .is-active) .icon-carousel-home img,
.card-home-3:is(:hover, .is-active) .icon-carousel-home img {
	/* #C20000 — filter because the SVG is loaded as <img> */
	filter: brightness(0) saturate(100%) invert(10%) sepia(97%) saturate(6432%) hue-rotate(355deg) brightness(88%) contrast(118%);
}

@media (prefers-reduced-motion: reduce) {
	.card-home-1 .icon-carousel-home img,
	.card-home-2 .icon-carousel-home img,
	.card-home-3 .icon-carousel-home img {
		transition: none;
	}
}

.bg-default {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	--home-carousel-peek-slides-desktop: 2.7;
	--home-carousel-peek-slides-tablet: 2.5;
	--home-carousel-peek-slides-mobile: 2.5;
	--home-carousel-peek-gap: 30;
}

/* Sfumatura tile: grigio pagina (basso) → trasparente (alto) */
.bg-default::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(to top, #f4f4f6 0%, transparent 45%);
}

.bg-default > :not(.bg-default-overlay-stack) {
	position: relative;
	z-index: 2;
}

.bg-default-overlay-stack {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

.bg-default-overlay-layer,
.bg-service-overlay-layer {
	--bg-fade-duration: 750ms;
	--bg-fade-easing: cubic-bezier(0.4, 0, 0.2, 1);

	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity var(--bg-fade-duration) var(--bg-fade-easing);
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	will-change: opacity;
	transform: translateZ(0);
	backface-visibility: hidden;
}

/* Per-service background framing (data-bg-position or CSS overrides) */
.bg-service-default.is-service-1 .bg-service-overlay-layer,
.bg-service-default.is-service-2 .bg-service-overlay-layer,
.bg-service-default.is-service-3 .bg-service-overlay-layer,
.bg-service-default.is-service-4 .bg-service-overlay-layer {
	background-position: var(--service-bg-position, center center);
}

.bg-default-overlay-layer.is-visible,
.bg-service-overlay-layer.is-visible {
	opacity: 1;
}

.desc-card-1-home,
.desc-card-2-home,
.desc-card-3-home {
	display: none !important;
}

.desc-card-1-home[hidden],
.desc-card-2-home[hidden],
.desc-card-3-home[hidden],
.desc-default-home[hidden] {
	display: none !important;
}

.desc-default-home:not([hidden]) {
	display: block;
}

/* Home carousel peek */
.bg-default .elementor-widget-n-carousel {
	overflow: hidden;
}

.bg-default .e-n-carousel.home-carousel-peek {
	overflow: hidden;
}

.bg-default .e-n-carousel.home-carousel-peek .swiper-wrapper {
	display: flex;
}

.bg-default .e-n-carousel.home-carousel-peek .swiper-slide {
	height: auto;
	flex-shrink: 0;
}

/*
 * Elementor locks carousel cards + left column to height: 500px.
 * Below 1700px that looks too tall; scale down and keep a gap above
 * the "Richiedi sopralluogo" button (space-between + min gap).
 */
@media (max-width: 1699.98px) {
	.bg-default {
		--home-card-height: clamp(300px, calc(20vw + 10px), 380px);
	}

	.bg-default .card-home-1,
	.bg-default .card-home-2,
	.bg-default .card-home-3 {
		height: var(--home-card-height) !important;
	}

	.bg-default .elementor-element:has(> .card-default) {
		height: var(--home-card-height) !important;
		justify-content: space-between !important;
		gap: 1.75rem;
	}

	.bg-default .card-default {
		height: auto !important;
		flex: 1 1 auto;
		min-height: 0;
		padding: 15px !important;
	}

	.bg-default .card-default .title-default-home {
		font-size: clamp(24px, 1.8vw, 30px) !important;
		line-height: 1.15 !important;
		margin-block-end: 6px !important;
	}

	.bg-default .card-default .abstract-default-home,
	.bg-default .card-default .desc-default-home {
		font-size: clamp(13px, 1vw, 15px) !important;
		line-height: 1.25 !important;
	}

	/* Less air above the extended description (divider + desc) */
	.bg-default .card-default .e-divider-base {
		margin-block: 8px !important;
	}

	.bg-default .e-n-carousel.home-carousel-peek .swiper-slide > .e-con,
	.bg-default .e-n-carousel.home-carousel-peek .e-con-inner {
		height: 100%;
	}
}

/* Tablet / mobile: two full cards + half peek, portrait cards. */
@media (max-width: 1024px) {
	.bg-default {
		--home-carousel-peek-gap: 16;
	}

	.bg-default .card-home-1,
	.bg-default .card-home-2,
	.bg-default .card-home-3 {
		height: clamp(220px, 32vw, 300px) !important;
	}

	.bg-default [class*="title-card-"][class*="-home"] {
		font-size: clamp(14px, 2.4vw, 22px) !important;
		line-height: 1.15 !important;
	}

	.bg-default [class*="abstract-card-"][class*="-home"] {
		font-size: clamp(11px, 1.8vw, 14px) !important;
		line-height: 1.25 !important;
	}
}

@media (max-width: 767px) {
	.bg-default {
		--home-carousel-peek-gap: 12;
	}

	.bg-default .card-home-1,
	.bg-default .card-home-2,
	.bg-default .card-home-3 {
		height: clamp(200px, 54vw, 240px) !important;
	}
}

/* Storia image carousel peek — half / full / full / half on desktop */
.carosello-storia {
	--storia-carousel-peek-slides-desktop: 3;
	--storia-carousel-peek-slides-tablet: 1.5;
	--storia-carousel-peek-slides-mobile: 1.2;
	--storia-carousel-peek-gap: 30;
	overflow: hidden;
}

.carosello-storia .elementor-widget-image-carousel {
	overflow: hidden;
}

.carosello-storia .elementor-image-carousel-wrapper.storia-carousel-peek {
	overflow: hidden;
}

.carosello-storia .elementor-image-carousel-wrapper.storia-carousel-peek .swiper-wrapper {
	display: flex;
}

.carosello-storia .elementor-image-carousel-wrapper.storia-carousel-peek .swiper-slide {
	height: auto;
	flex-shrink: 0;
}

.carosello-storia .elementor-image-carousel-wrapper.storia-carousel-peek .swiper-slide-inner {
	overflow: hidden;
	border-radius: 16px;
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

.carosello-storia .elementor-image-carousel-wrapper.storia-carousel-peek .swiper-slide-image {
	display: block;
	width: 100%;
	height: auto;
}

/* Home services: detail panel hidden until a service card is activated */
.service-1,
.service-2,
.service-3,
.service-4 {
	cursor: pointer;
	transition:
		transform 200ms ease,
		background-color 200ms ease,
		border-color 200ms ease;
}

.service-1 img,
.service-2 img,
.service-3 img,
.service-4 img {
	transition: filter 200ms ease;
}

.service-1 :is(.title-service-1, .e-heading-base),
.service-2 :is(.title-service-2, .e-heading-base),
.service-3 :is(.title-service-3, .e-heading-base),
.service-4 :is(.title-service-4, .e-heading-base) {
	transition: color 200ms ease;
}

.service-1:is(:hover, .is-active),
.service-2:is(:hover, .is-active),
.service-3:is(:hover, .is-active),
.service-4:is(:hover, .is-active) {
	transform: translateY(-60px);
}

/* Card attiva / hover: nero @ 30%, testi e icone bianchi */
:is(.service-1, .service-2, .service-3, .service-4).liquid-glass:is(:hover, .is-active) {
	--glass-surface: rgba(0, 0, 0, 0.3);
	--glass-border: rgba(255, 255, 255, 0.28);

	background-color: rgba(0, 0, 0, 0.3) !important;
	background-image: none !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.18),
		inset 0 -1px 0 rgba(0, 0, 0, 0.12),
		0 8px 22px rgba(15, 23, 42, 0.2) !important;
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	backdrop-filter: blur(12px) saturate(140%);
}

:is(.service-1, .service-2, .service-3, .service-4).liquid-glass:is(:hover, .is-active)::before,
:is(.service-1, .service-2, .service-3, .service-4).liquid-glass:is(:hover, .is-active)::after {
	content: none !important;
	display: none !important;
	opacity: 0 !important;
	background: none !important;
}

.service-1:is(:hover, .is-active) :is(.title-service-1, .e-heading-base),
.service-2:is(:hover, .is-active) :is(.title-service-2, .e-heading-base),
.service-3:is(:hover, .is-active) :is(.title-service-3, .e-heading-base),
.service-4:is(:hover, .is-active) :is(.title-service-4, .e-heading-base) {
	color: #fff !important;
}

.service-1:is(:hover, .is-active) img,
.service-2:is(:hover, .is-active) img,
.service-3:is(:hover, .is-active) img,
.service-4:is(:hover, .is-active) img,
.service-1:is(:hover, .is-active) svg,
.service-2:is(:hover, .is-active) svg,
.service-3:is(:hover, .is-active) svg,
.service-4:is(:hover, .is-active) svg {
	filter: brightness(0) invert(1);
}

/* Pannello descrizione servizio attivo: nero @ 30%, testi bianchi */
.service-content.is-visible > :is(.liquid-glass, .e-con) {
	--glass-surface: rgba(0, 0, 0, 0.3);
	--glass-border: rgba(255, 255, 255, 0.28);

	background-color: rgba(0, 0, 0, 0.3) !important;
	background-image: none !important;
	-webkit-backdrop-filter: blur(12px) saturate(140%);
	backdrop-filter: blur(12px) saturate(140%);
}

.service-content.is-visible > :is(.liquid-glass, .e-con)::before,
.service-content.is-visible > :is(.liquid-glass, .e-con)::after {
	content: none !important;
	display: none !important;
	opacity: 0 !important;
	background: none !important;
}

.service-content.is-visible :is(
	.title-service-default,
	.content-service-default,
	.content-service-dafault,
	.e-heading-base,
	.e-paragraph-base,
	h2,
	p
) {
	color: #ffffff !important;
}

/* Testi box descrizione: 16px / interlinea 20px (tutte le pagine con il modulo) */
.service-content.is-visible :is(
	.content-service-default,
	.content-service-dafault,
	.e-paragraph-base,
	p
) {
	font-size: 16px !important;
	line-height: 20px !important;
}

.service-content.is-visible :is(img, svg) {
	filter: brightness(0) invert(1);
}

@media (prefers-reduced-motion: reduce) {
	.service-1,
	.service-2,
	.service-3,
	.service-4 {
		transition: none;
	}
}

.service-content {
	display: none !important;
}

.service-content.is-visible {
	display: flex !important;
}

/* Box descrizione più largo → testo lungo meno alto (tutte le pagine con il modulo) */
.bg-service-default .service-content.is-visible {
	width: var(--service-content-max-width, min(48rem, 62%)) !important;
	max-width: var(--service-content-max-width, min(48rem, 62%)) !important;
	box-sizing: border-box;
}

.bg-service-default .service-content.is-visible > :is(.liquid-glass, .e-con) {
	width: 100% !important;
	max-width: 100% !important;
}

@media (max-width: 767px) {
	.bg-service-default .service-content.is-visible {
		width: 100% !important;
		max-width: 100% !important;
	}
}

/* Source copy inside cards — always hidden (used as data for the detail panel) */
.content-service-1,
.content-service-2,
.content-service-3,
.content-service-4 {
	display: none !important;
}

/* CTAs: hidden until the matching service card is hovered/clicked */
.cta-service-1,
.cta-service-2,
.cta-service-3,
.cta-service-4 {
	display: none !important;
}

.cta-service-1.is-visible,
.cta-service-2.is-visible,
.cta-service-3.is-visible,
.cta-service-4.is-visible {
	display: flex !important;
}

/* CTA servizi: testo nero anche in hover (Elementor lo forza bianco) */
:is(.cta-service-1, .cta-service-2, .cta-service-3, .cta-service-4)
	:is(a.liquid-glass, a.e-button-base):is(:hover, :focus-visible),
:is(.cta-service-1, .cta-service-2, .cta-service-3, .cta-service-4)
	:is(a.liquid-glass, a.e-button-base):is(:hover, :focus-visible)
	:is(strong, span, b, em, i) {
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
}

/* Background target + source images for services module */
.bg-service-default {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
}

.bg-service-default > :not(.bg-service-overlay-stack) {
	position: relative;
	z-index: 2;
}

.bg-service-overlay-stack {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}

/* Modulo servizi: sfumatura #F3F3F3 (alto) → trasparente — su ogni .bg-service-default */
.bg-service-default::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		180deg,
		#f3f3f3 0%,
		rgba(243, 243, 243, 0.4) 9%,
		rgba(243, 243, 243, 0) 24%
	);
}

.bg-service-1,
.bg-service-2,
.bg-service-3,
.bg-service-4 {
	display: none !important;
}

.elementor-element:has(> :is(.bg-service-1, .bg-service-2, .bg-service-3, .bg-service-4)) {
	display: none !important;
}

.google-map .elementor-widget-html{
	width: 100%;
}

/* Contact home: CF7 fields + submit in a single row */
.contact-home .wpcf7-form {
	margin: 0;
}

.contact-home .wpcf7-form > p {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.75rem;
	margin: 0;
}

.contact-home .wpcf7-form > p > br {
	display: none;
}

.contact-home .wpcf7-form > .wpcf7-response-output {
	margin: 0.5rem 0 0;
}

.contact-home .wpcf7-form label {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	font-size: 0;
	line-height: 0;
}

.contact-home .wpcf7-form label br {
	display: none;
}

.contact-home .wpcf7-form > p > .wpcf7-form-control-wrap {
	display: block;
	flex: 1 1 0;
	min-width: 0;
}

.contact-home .wpcf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
	font-size: 1rem;
	line-height: normal;
}

.contact-home .wpcf7-form input.wpcf7-text,
.contact-home .wpcf7-form input.wpcf7-tel,
.contact-home .wpcf7-form select.wpcf7-select {
	width: 100%;
	height: 3.25rem;
	margin: 0;
	padding: 0 1.25rem;
	border: 0;
	border-radius: 999px;
	background-color: #ffffff;
	color: #000000;
	box-shadow: none;
	appearance: none;
	-webkit-appearance: none;
}

.contact-home .wpcf7-form select.wpcf7-select {
	padding-right: 2.5rem;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23000000' d='M1.41 0 6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1.25rem center;
	background-size: 12px 8px;
	cursor: pointer;
}

.contact-home .wpcf7-form input.wpcf7-submit {
	flex: 0 0 auto;
	height: 3.25rem;
	margin: 0;
	padding: 0 2rem;
	border: 0;
	border-radius: 999px;
	background-color: #C20000;
	color: #ffffff;
	cursor: pointer;
	white-space: nowrap;
}

.contact-home .wpcf7-form input.wpcf7-submit:hover,
.contact-home .wpcf7-form input.wpcf7-submit:focus {
	background-color: #a00000;
	color: #ffffff;
}

.contact-home .wpcf7-form .wpcf7-spinner {
	display: none;
}

@media (max-width: 1024px) {
	.contact-home,
	.contact-home > .e-con-inner,
	.contact-home .e-con,
	.contact-home .liquid-glass {
		--height: auto !important;
		--min-height: 0 !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
	}

	.contact-home .wpcf7-form > p {
		flex-direction: column;
		align-items: stretch;
	}

	.contact-home .wpcf7-form label,
	.contact-home .wpcf7-form > p > .wpcf7-form-control-wrap,
	.contact-home .wpcf7-form input.wpcf7-submit {
		flex: 1 1 auto;
		width: 100%;
	}
}

.contact-home{
	top: -200px;
}

/* Azienda history cards — same overlay approach as home carousel cards */
.card-azienda {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-shadow: 0 0 20px rgb(190, 190, 190);
}

.card-azienda::before,
.card-azienda::after {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	transition: opacity 320ms ease;
}

.card-azienda::before {
	background: linear-gradient(to top, #ffffff 0%, transparent 75%);
	opacity: 1;
}

.card-azienda::after {
	background: linear-gradient(to top, #000000 0%, transparent 75%);
	opacity: 0;
}

.card-azienda:hover::before {
	opacity: 0;
}

.card-azienda:hover::after {
	opacity: 1;
}

.card-azienda > :is(h1, h2, h3, h4, h5, h6, p, .e-heading-base, .e-paragraph-base) {
	position: relative;
	z-index: 1;
	transition: color 320ms ease;
}

.card-azienda:hover > :is(h1, h2, h3, h4, h5, h6, p, .e-heading-base, .e-paragraph-base) {
	color: #ffffff !important;
}

/* Footer top: brand red for all text and links */
.footer-top,
.footer-top .elementor-widget-text-editor,
.footer-top .elementor-widget-text-editor *,
.footer-top :is(a, p, span, li, h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-icon-list-text) {
	color: #C20000 !important;
	-webkit-text-fill-color: #C20000 !important;
}

.footer-top a:hover,
.footer-top a:focus-visible {
	color: #a00000 !important;
	-webkit-text-fill-color: #a00000 !important;
}

.footer-top-1 a {
	color: #000000 !important;
	-webkit-text-fill-color: #000000 !important;
}

.footer-top-1 a:hover,
.footer-top-1 a:focus-visible {
	color: #C20000 !important;
	-webkit-text-fill-color: #C20000 !important;
}

/* Back to top — fixed bottom-right, liquid-glass red */
body button.back-to-top.liquid-glass-red {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 9999;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3.25rem;
	height: 3.25rem;
	padding: 0;
	margin: 0;
	border-radius: 9999px !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(0.5rem);
	transition:
		opacity 220ms ease,
		visibility 220ms ease,
		transform 220ms ease,
		box-shadow 220ms ease,
		background-color 220ms ease,
		border-color 220ms ease;
}

body button.back-to-top.liquid-glass-red.is-visible {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

/* Keep red surface + white icon stable on hover (page bg is light gray). */
body button.back-to-top.liquid-glass-red:is(:hover, :focus-visible, :active) {
	--glass-surface: #df0000;
	--glass-border: rgba(255, 214, 214, 0.72);
	background-color: #df0000 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.72),
		inset 0 -1px 0 rgba(255, 255, 255, 0.16),
		inset var(--glass-highlight-x) var(--glass-highlight-y) 7px -5px rgba(255, 255, 255, 0.86),
		inset var(--glass-inset-shadow-x) var(--glass-inset-shadow-y) 9px -5px rgba(15, 23, 42, 0.27),
		var(--glass-shadow-x) var(--glass-shadow-y) 22px rgba(15, 23, 42, 0.2) !important;
}

body button.back-to-top.liquid-glass-red.is-visible:is(:hover, :focus-visible) {
	transform: translateY(-2px);
}

body button.back-to-top.liquid-glass-red.is-visible:active {
	transform: translateY(0) scale(0.98);
}

body button.back-to-top.liquid-glass-red::after {
	content: none;
	display: none;
}

body button.back-to-top.liquid-glass-red .back-to-top__icon,
body button.back-to-top.liquid-glass-red:is(:hover, :focus-visible, :active) .back-to-top__icon {
	position: relative;
	z-index: 2;
	display: block;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	color: #ffffff !important;
	fill: none !important;
	stroke: #ffffff;
	shape-rendering: geometricPrecision;
	transform: translateZ(0);
}

@media (prefers-reduced-motion: reduce) {
	body button.back-to-top.liquid-glass-red {
		transition: none;
	}
}

@media (max-width: 767px) {
	body button.back-to-top.liquid-glass-red {
		right: 1rem;
		bottom: 1rem;
		width: 2.875rem;
		height: 2.875rem;
	}
}

/* Assistenza — cards e pulsanti manuali */
.manuali .card-manuale,
.manuali .pulsante-manuale {
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

/* Hero Contatti: mappa full-bleed (come le altre hero con immagine) */
#hero:has(.hero-mappa) {
	overflow: hidden;
}

#hero .hero-mappa {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	width: 100% !important;
	height: 100% !important;
	pointer-events: auto;
}

#hero .hero-mappa iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/* Il contenuto hero non deve coprire i controlli della mappa */
#hero:has(.hero-mappa) > .elementor-element:not(.hero-mappa) {
	pointer-events: none;
}

#hero:has(.hero-mappa) > .elementor-element:not(.hero-mappa) :is(a, button, .e-button-base) {
	pointer-events: auto;
}

.page-id-20 .contact-home{
	z-index:99999;
}

/* Fixed contact shortcuts — right side, vertically centered */
.fixed-contact {
	position: fixed;
	top: 50%;
	right: 1.25rem;
	z-index: 9998;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.75rem;
	transform: translateY(-50%);
	pointer-events: none;
}

body a.fixed-contact__btn.liquid-glass-red {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 3.25rem;
	min-width: 3.25rem;
	width: auto;
	max-width: 3.25rem;
	padding: 0 0.95rem;
	margin: 0;
	gap: 0;
	border-radius: 9999px !important;
	text-decoration: none !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	font-family: "Helvetica Now Display", Helvetica, Arial, sans-serif;
	font-size: 0.9375rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
	white-space: nowrap;
	overflow: hidden;
	transition:
		max-width 320ms ease,
		padding 320ms ease,
		gap 320ms ease,
		transform 220ms ease,
		box-shadow 220ms ease,
		background-color 220ms ease,
		border-color 220ms ease;
}

body a.fixed-contact__btn.liquid-glass-red:is(:hover, :focus-visible) {
	--glass-surface: #df0000;
	--glass-border: rgba(255, 235, 235, 0.9);
	max-width: 16rem;
	padding: 0 1.15rem;
	gap: 0.65rem;
	background-color: #df0000 !important;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	transform: translateX(-2px);
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.72),
		inset 0 -1px 0 rgba(255, 255, 255, 0.16),
		inset var(--glass-highlight-x) var(--glass-highlight-y) 7px -5px rgba(255, 255, 255, 0.86),
		inset var(--glass-inset-shadow-x) var(--glass-inset-shadow-y) 9px -5px rgba(15, 23, 42, 0.27),
		var(--glass-shadow-x) var(--glass-shadow-y) 22px rgba(15, 23, 42, 0.2) !important;
}

body a.fixed-contact__btn.liquid-glass-red:active {
	transform: translateX(0) scale(0.98);
}

body a.fixed-contact__btn.liquid-glass-red::after {
	content: none;
	display: none;
}

body a.fixed-contact__btn.liquid-glass-red .fixed-contact__icon {
	position: relative;
	z-index: 2;
	display: block;
	flex-shrink: 0;
	width: 1.35rem;
	height: 1.35rem;
	object-fit: contain;
	pointer-events: none;
}

body a.fixed-contact__btn.liquid-glass-red .fixed-contact__icon--email {
	width: 1.4rem;
	height: 1.4rem;
}

body a.fixed-contact__btn.liquid-glass-red .fixed-contact__label {
	position: relative;
	z-index: 2;
	display: inline-block;
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	transition:
		max-width 320ms ease,
		opacity 220ms ease;
}

body a.fixed-contact__btn.liquid-glass-red:is(:hover, :focus-visible) .fixed-contact__label {
	max-width: 12rem;
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	body a.fixed-contact__btn.liquid-glass-red,
	body a.fixed-contact__btn.liquid-glass-red .fixed-contact__label {
		transition: none;
	}
}

@media (max-width: 767px) {
	.fixed-contact {
		right: 1rem;
		gap: 0.6rem;
	}

	body a.fixed-contact__btn.liquid-glass-red {
		height: 2.875rem;
		min-width: 2.875rem;
		max-width: 2.875rem;
		padding: 0 0.8rem;
		font-size: 0.875rem;
	}

	body a.fixed-contact__btn.liquid-glass-red:is(:hover, :focus-visible) {
		max-width: 14rem;
		padding: 0 1rem;
	}

	body a.fixed-contact__btn.liquid-glass-red .fixed-contact__icon {
		width: 1.2rem;
		height: 1.2rem;
	}

	body a.fixed-contact__btn.liquid-glass-red .fixed-contact__icon--email {
		width: 1.25rem;
		height: 1.25rem;
	}
}

.header-contacts-bar {
	width: 100%;
	padding-top: 8px;
	padding-bottom: 8px;
	font-family: "Helvetica Now Display", Helvetica, Arial, sans-serif;
}
.header-contacts-bar__inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1.5rem;
	max-width: 1200px;
	margin: 0;
	padding: 0 10px;
	box-sizing: border-box;
}
.header-contacts-bar__link {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	color: #111;
	text-decoration: none;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.01em;
	transition: color 180ms ease;
}
.header-contacts-bar__link:hover,
.header-contacts-bar__link:focus-visible {
	color: #C20000;
}
.header-contacts-bar__icon {
	display: block;
	width: 14px;
	height: 14px;
	object-fit: contain;
	/* icone bianche/nere → rosso brand */
	filter: brightness(0) saturate(100%) invert(10%) sepia(96%) saturate(7482%) hue-rotate(350deg) brightness(90%) contrast(115%);
}
.header-contacts-bar__icon--email {
	width: 15px;
	height: 15px;
}

/* Red text / links utility */
.link-red,
.link-red a {
	color: #C20000 !important;
	-webkit-text-fill-color: #C20000 !important;
}

.link-red:hover,
.link-red:hover a,
.link-red a:hover {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
}

/* Red text that stays red on hover */
:is(.link-red-1, .red-link-1, .red-link-versione-1),
:is(.link-red-1, .red-link-1, .red-link-versione-1) :is(a, p, span, strong, b, em, i, h1, h2, h3, h4, h5, h6, .e-heading-base, .e-paragraph-base),
:is(.link-red-1, .red-link-1, .red-link-versione-1):hover,
:is(.link-red-1, .red-link-1, .red-link-versione-1):hover :is(a, p, span, strong, b, em, i, h1, h2, h3, h4, h5, h6, .e-heading-base, .e-paragraph-base),
:is(.link-red-1, .red-link-1, .red-link-versione-1) a:hover {
	color: #C20000 !important;
	-webkit-text-fill-color: #C20000 !important;
}

/* Red SVG utility — #C20000 via filter (works with any fill/stroke) */
.svg-red svg {
	filter: brightness(0) saturate(100%) invert(10%) sepia(96%) saturate(7482%) hue-rotate(350deg) brightness(90%) contrast(115%);
}

/* Height utilities */
.h-550 { height: 550px; }
.h-600 { height: 600px; }
.h-650 { height: 650px; }
.h-700 { height: 700px; }
.h-750 { height: 750px; }
.h-800 { height: 800px; }
.h-850 { height: 850px; }
.h-900 { height: 900px; }

@media (max-width: 1599px) {
	.h-800 { height: 500px; }
}

/* Hide on mobile (Elementor mobile breakpoint) */
@media (max-width: 767px) {
	.hidden-mobile {
		display: none !important;
	}
}