/* fmcs-style */
/* FMCS minimal CSS (no JS) */
.fmcs-btn{transition:transform .15s ease, box-shadow .15s ease}
.fmcs-btn:hover{transform:translateY(-1px)}

/*
 * Mobile viewport guard.
 *
 * Older Android browsers can include translated drawers, animated tracks and
 * wrapped Elementor columns in the document's horizontal overflow area.
 * Keep those visual effects clipped to the viewport without disabling the
 * intentional horizontal scrolling inside tabs and filter rows.
 */
html,
body{
	max-width:100%;
	overflow-x:hidden;
}

@supports (overflow:clip){
	html,
	body{
		overflow-x:clip;
	}
}

/* Quantity defaults */
.fmcs-qty-row{display:flex;gap:.5rem;align-items:center}
.fmcs-qty{width:120px;max-width:100%}
.fmcs-qty-label{margin-right:.25rem}
.fmcs-btn-row{display:flex}

/* Align defaults */
.fmcs-wrap{ text-align:left; }
.fmcs-qty-row{ justify-content:flex-start; text-align:left; }
.fmcs-price-sale,
.fmcs-price-sale *,
.fmcs-price ins,
.fmcs-price ins *{text-decoration:none!important;border-bottom:0!important}

/* Button alignment helpers */
.fmcs-btn-row{display:flex;justify-content:flex-start}
.fmcs-btn-row.fmcs-align-center{justify-content:center}
.fmcs-btn-row.fmcs-align-flex-end{justify-content:flex-end}
.fmcs-btn-row.fmcs-align-stretch{display:block}
.fmcs-btn-row.fmcs-align-stretch .fmcs-btn{display:block;width:100%}

/* Fallback hover animations */
.fmcs-btn.elementor-animation-grow{transition:transform .15s ease}
.fmcs-btn.elementor-animation-grow:hover{transform:scale(1.04)}
.fmcs-btn.elementor-animation-shrink{transition:transform .15s ease}
.fmcs-btn.elementor-animation-shrink:hover{transform:scale(0.96)}
@keyframes fmcs-pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}
.fmcs-btn.elementor-animation-pulse:hover{animation:fmcs-pulse .5s ease-in-out}

/* Coupon button shortcode */
.fmcs-coupon-button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;cursor:pointer}
.fmcs-coupon-widget-wrap.fmcs-align-full .fmcs-coupon-button{display:flex;width:100%}

/* Coupon confirmation message */
.fmcs-inline-confirmation{display:grid;gap:14px;width:100%;margin-top:14px;padding:24px;border:0 solid transparent;border-radius:0;background:transparent;text-align:center;box-shadow:none}
.fmcs-confirmation-title{font-size:18px;font-weight:700;line-height:1.2}
.fmcs-confirmation-text{max-width:32ch;margin:0 auto;font-size:18px;line-height:1.45}
.fmcs-confirmation-links{display:flex;justify-content:center;align-items:center}
.fmcs-confirmation-link{text-decoration:none;font-weight:700;border-bottom:1px solid currentColor;padding-bottom:2px;transition:opacity .18s ease}
.fmcs-confirmation-link:hover{opacity:.72}
@media (max-width: 767px){
  /*
   * OXA footer template: this container is a vertical flex group. Elementor's
   * mobile `wrap` setting places the second column beside the first when their
   * combined height is larger than the container, doubling the page width.
   */
  .elementor-location-footer .elementor-element-c18e74a{
    height:auto!important;
    max-height:none!important;
    flex-wrap:nowrap!important;
  }

  .elementor-location-footer .elementor-element-c18e74a > .e-con{
    width:100%;
    max-width:100%;
    min-width:0;
  }

  .fmcs-inline-confirmation{padding:20px;border-radius:20px}
  .fmcs-confirmation-text{font-size:16px}
}

/* Uppercase fiscal fields */
#billing_cf, #billing_sdi { text-transform: uppercase; }

/* fm-bunny-background */
.fm-bunny-container-background {
	position: relative;
	overflow: hidden;
}

/*
 * Il poster, dipinto appena il CSS e' letto.
 *
 * Sta sullo sfondo del contenitore stesso, non su uno pseudo-elemento: il
 * ::before su quei contenitori e' gia' occupato da Elementor per la sfumatura
 * dell'hero (su Soli un gradiente scuro), e il ::after starebbe SOPRA quella
 * sfumatura, cioe' nel piano sbagliato. Lo sfondo proprio del contenitore e'
 * l'unico piano che sta sotto sia alla sfumatura sia al video.
 *
 * La classe e' ripetuta di proposito: cosi' la regola pesa quanto due classi e
 * non si fa scavalcare dal CSS che Elementor genera per il singolo elemento.
 *
 * I punti di rottura sono gli stessi di getDevice() nel JS - 767 e 1024 -
 * altrimenti al confine il poster mostrerebbe un video e ne partirebbe un
 * altro, che su Soli sono due filmati diversi.
 */
.fm-bunny-container-background.fm-bunny-container-background {
	background-image: var(--fm-bunny-poster, none);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

@media (max-width: 1024px) {
	.fm-bunny-container-background.fm-bunny-container-background {
		background-image: var(--fm-bunny-poster-tablet, none);
	}
}

@media (max-width: 767px) {
	.fm-bunny-container-background.fm-bunny-container-background {
		background-image: var(--fm-bunny-poster-mobile, none);
	}
}

.fm-bunny-container-background > .fm-bunny-background-layer {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
	background-position: center;
	background-size: cover;
	pointer-events: none;
}

.fm-bunny-background-layer iframe,
.fm-bunny-background-layer video {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 100%;
	min-width: 100%;
	min-height: 100%;
	max-width: none !important;
	max-height: none !important;
	border: 0;
	transform: translate(-50%, -50%);
	pointer-events: none;
}

.fm-bunny-background-layer video {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	min-width: 0;
	min-height: 0;
	object-fit: cover;
	object-position: center;
	transform: none;
}

.fm-bunny-container-background > .elementor-background-video-container {
	display: none !important;
}

.fm-bunny-container-background > .elementor-background-overlay {
	z-index: 1;
}

.fm-bunny-container-background > .e-con-inner,
.fm-bunny-container-background > .elementor-element:not(.fm-bunny-background-layer):not(.elementor-background-overlay):not(.elementor-background-video-container) {
	position: relative;
	z-index: 2;
}

/* fm-whatsapp-chat */
.fm-wac-root,
.fm-wac-root * {
	box-sizing: border-box;
}

.fm-wac-root,
.fm-wac-root *,
.fm-wac-root *::before,
.fm-wac-root *::after,
.fm-wac-inline-trigger,
.fm-wac-inline-trigger * {
	font-family: var(--fm-wac-font-family, inherit);
}

.fm-wac-root {
	font-family: var(--fm-wac-font-family, inherit);
	font-size: var(--fm-wac-body-font-size, 15px);
	line-height: 1.45;
	position: fixed;
	z-index: var(--fm-wac-z-index, 99999);
	bottom: calc(var(--fm-wac-bottom, 28px) + env(safe-area-inset-bottom, 0px));
	pointer-events: none;
}

.fm-wac-position-right {
	right: var(--fm-wac-side, 28px);
}

.fm-wac-position-left {
	left: var(--fm-wac-side, 28px);
}

.fm-wac-root .fm-wac-overlay {
	appearance: none;
	background: var(--fm-wac-overlay, rgba(11, 18, 32, 0.22));
	border: 0;
	font: inherit;
	inset: 0;
	margin: 0;
	padding: 0;
	position: fixed;
	pointer-events: auto;
}

.fm-wac-root .fm-wac-overlay[hidden],
.fm-wac-root .fm-wac-panel[hidden] {
	display: none !important;
}

.fm-wac-panel {
	background: var(--fm-wac-panel-bg, #fff);
	border: 0;
	border-radius: var(--fm-wac-panel-radius, 0);
	bottom: calc(var(--fm-wac-launcher-size, 64px) + 16px);
	box-shadow: var(--fm-wac-shadow, 0 24px 70px rgba(16, 24, 40, 0.22));
	color: var(--fm-wac-body-color, #172033);
	display: flex;
	flex-direction: column;
	max-height: min(680px, calc(100vh - var(--fm-wac-bottom, 28px) - env(safe-area-inset-bottom, 0px) - var(--fm-wac-launcher-size, 64px) - 34px));
	overflow: hidden;
	pointer-events: auto;
	position: absolute;
	width: min(var(--fm-wac-panel-width, 380px), calc(100vw - 32px));
	animation: fm-wac-panel-in 180ms cubic-bezier(.2, .8, .2, 1) both;
}

.fm-wac-position-right .fm-wac-panel {
	right: 0;
}

.fm-wac-position-left .fm-wac-panel {
	left: 0;
}

.fm-wac-no-launcher .fm-wac-panel {
	bottom: 0;
	max-height: min(680px, calc(100vh - var(--fm-wac-bottom, 28px) - env(safe-area-inset-bottom, 0px) - 32px));
}

.fm-wac-header {
	align-items: center;
	background: var(--fm-wac-header-bg, #075e54);
	color: var(--fm-wac-header-color, #fff);
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr) 36px;
	gap: 12px;
	padding: 18px 18px 17px;
}

.fm-wac-header-icon {
	align-items: center;
	background: var(--fm-wac-header-icon-bg, rgba(255, 255, 255, 0.14));
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: var(--fm-wac-panel-radius, 0);
	display: flex;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.fm-wac-header-icon svg {
	fill: currentColor;
	height: 26px;
	width: 26px;
}

.fm-wac-header-copy {
	min-width: 0;
}

.fm-wac-header-kicker {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .09em;
	line-height: 1.2;
	margin-bottom: 3px;
	opacity: .72;
	text-transform: none;
}

.fm-wac-header h2 {
	color: inherit;
	font-family: inherit;
	font-size: var(--fm-wac-title-font-size, 19px);
	font-weight: 750;
	letter-spacing: -.02em;
	line-height: 1.2;
	margin: 0;
	overflow: hidden;
	padding: 0;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.fm-wac-root .fm-wac-close {
	align-items: center;
	appearance: none;
	background: transparent;
	border: 0;
	border-radius: var(--fm-wac-panel-radius, 0);
	color: inherit;
	cursor: pointer;
	display: flex;
	font: inherit;
	font-size: 28px;
	height: 36px;
	justify-content: center;
	line-height: 1;
	margin: 0;
	opacity: .82;
	padding: 0;
	transition: background-color 150ms ease, opacity 150ms ease, transform 150ms ease;
	width: 36px;
}

.fm-wac-root .fm-wac-close:focus {
	background: transparent;
	color: inherit;
}

.fm-wac-root .fm-wac-close:hover,
.fm-wac-root .fm-wac-close:active {
	background: rgba(255, 255, 255, 0.14);
	opacity: 1;
	transform: scale(.96);
}

.fm-wac-root .fm-wac-close:focus-visible,
.fm-wac-root .fm-wac-launcher:focus-visible,
.fm-wac-root .fm-wac-send:focus-visible,
.fm-wac-inline-trigger.fm-wac-inline-trigger:focus-visible,
.fm-wac-context-link:focus-visible,
.fm-wac-root textarea.fm-wac-textarea:focus-visible {
	outline: 3px solid var(--fm-wac-focus, #128c7e);
	outline-offset: 3px;
}

.fm-wac-body {
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 20px;
	scrollbar-width: thin;
}

.fm-wac-intro {
	color: var(--fm-wac-body-color, #172033);
	font-size: var(--fm-wac-body-font-size, 15px);
	line-height: 1.55;
	margin: 0 0 17px;
}

.fm-wac-context {
	align-items: stretch;
	background: var(--fm-wac-context-bg, #f2fbf5);
	border: 1px solid var(--fm-wac-context-border, #d6f1df);
	border-radius: var(--fm-wac-panel-radius, 0);
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr);
	margin: 0 0 18px;
	overflow: hidden;
}

.fm-wac-context-no-image {
	grid-template-columns: minmax(0, 1fr);
}

.fm-wac-context-image {
	height: 100%;
	min-height: 112px;
	object-fit: cover;
	width: 78px;
}

.fm-wac-context-content {
	align-content: center;
	display: grid;
	gap: 3px;
	min-width: 0;
	padding: 12px 13px;
}

.fm-wac-context-heading {
	color: var(--fm-wac-muted-color, #667085);
	font-size: 11px;
	font-weight: 650;
	line-height: 1.25;
}

.fm-wac-context-badge {
	color: var(--fm-wac-context-accent, #128c7e);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	line-height: 1.25;
	margin-top: 2px;
	text-transform: none;
}

.fm-wac-context-title {
	color: var(--fm-wac-body-color, #172033);
	display: -webkit-box;
	font-size: 14px;
	font-weight: 750;
	line-height: 1.35;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.fm-wac-context-meta {
	color: var(--fm-wac-muted-color, #667085);
	font-size: 12px;
	line-height: 1.35;
}

.fm-wac-context-link {
	color: var(--fm-wac-context-accent, #128c7e);
	font-size: 12px;
	font-weight: 700;
	justify-self: start;
	line-height: 1.35;
	margin-top: 3px;
	text-decoration: none !important;
}

.fm-wac-context-link:hover,
.fm-wac-context-link:active {
	color: var(--fm-wac-context-accent, #128c7e);
	text-decoration: underline !important;
	text-underline-offset: 3px;
}

.fm-wac-textarea-label {
	color: var(--fm-wac-body-color, #172033);
	display: block;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.35;
	margin: 0 0 7px;
}

.fm-wac-root textarea.fm-wac-textarea {
	appearance: none;
	background: var(--fm-wac-input-bg, #fff);
	border: 1px solid var(--fm-wac-input-border, #d0d5dd);
	border-radius: var(--fm-wac-panel-radius, 0);
	box-shadow: none;
	color: var(--fm-wac-input-color, #172033);
	display: block;
	font: inherit;
	font-size: var(--fm-wac-body-font-size, 15px);
	line-height: 1.5;
	margin: 0;
	max-height: 220px;
	min-height: 112px;
	padding: 13px 14px;
	resize: vertical;
	transition: border-color 150ms ease, box-shadow 150ms ease;
	width: 100%;
}

.fm-wac-root textarea.fm-wac-textarea::placeholder {
	color: var(--fm-wac-input-placeholder, #98a2b3);
	opacity: 1;
}

.fm-wac-root textarea.fm-wac-textarea:focus {
	border-color: var(--fm-wac-focus, #128c7e);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--fm-wac-focus, #128c7e) 18%, transparent);
}

.fm-wac-footer {
	background: var(--fm-wac-panel-bg, #fff);
	border-top: 1px solid color-mix(in srgb, var(--fm-wac-input-border, #d0d5dd) 60%, transparent);
	padding: 15px 20px 20px;
}

.fm-wac-root .fm-wac-send,
.fm-wac-inline-trigger.fm-wac-inline-trigger {
	align-items: center;
	appearance: none;
	background: var(--fm-wac-send-bg, #25d366);
	border: 0;
	border-radius: var(--fm-wac-panel-radius, 0);
	color: var(--fm-wac-send-color, #fff);
	cursor: pointer;
	display: inline-flex;
	font-family: inherit;
	font-size: var(--fm-wac-button-font-size, 15px);
	font-weight: 750;
	gap: 10px;
	justify-content: center;
	letter-spacing: normal;
	line-height: 1.2;
	margin: 0;
	min-height: 50px;
	padding: 12px 18px;
	text-decoration: none !important;
	text-transform: none;
	transition: background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.fm-wac-root .fm-wac-send {
	width: 100%;
}

.fm-wac-root .fm-wac-send svg {
	fill: none;
	height: 20px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2;
	width: 20px;
}

.fm-wac-root .fm-wac-send:focus,
.fm-wac-inline-trigger.fm-wac-inline-trigger:focus {
	background: var(--fm-wac-send-bg, #25d366);
	color: var(--fm-wac-send-color, #fff);
}

.fm-wac-root .fm-wac-send:hover,
.fm-wac-root .fm-wac-send:active,
.fm-wac-inline-trigger.fm-wac-inline-trigger:hover,
.fm-wac-inline-trigger.fm-wac-inline-trigger:active {
	background: var(--fm-wac-send-bg-hover, #1fbd5a);
	color: var(--fm-wac-send-color, #fff);
	text-decoration: none !important;
}

.fm-wac-root .fm-wac-send:active,
.fm-wac-inline-trigger.fm-wac-inline-trigger:active {
	transform: translateY(1px) scale(.99);
}

.fm-wac-inline-trigger.fm-wac-inline-trigger svg {
	fill: currentColor;
	height: 22px;
	width: 22px;
}

.fm-wac-root .fm-wac-launcher {
	align-items: center;
	appearance: none;
	background: var(--fm-wac-launcher-bg, #25d366);
	border: 0;
	border-radius: var(--fm-wac-launcher-radius, 0);
	box-shadow: var(--fm-wac-shadow, 0 24px 70px rgba(16, 24, 40, .22));
	box-shadow: 0 14px 36px color-mix(in srgb, var(--fm-wac-launcher-bg, #25d366) 34%, transparent), var(--fm-wac-shadow, 0 24px 70px rgba(16, 24, 40, .22));
	color: var(--fm-wac-launcher-icon, #fff);
	cursor: pointer;
	display: flex;
	font: inherit;
	height: var(--fm-wac-launcher-size, 64px);
	justify-content: center;
	letter-spacing: normal;
	margin: 0;
	overflow: visible;
	padding: 0;
	pointer-events: auto;
	position: relative;
	transition: background-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
	text-transform: none;
	width: var(--fm-wac-launcher-size, 64px);
}

.fm-wac-root .fm-wac-launcher:focus,
.fm-wac-root .fm-wac-launcher:focus-visible {
	background: var(--fm-wac-launcher-bg, #25d366);
	color: var(--fm-wac-launcher-icon, #fff);
}

.fm-wac-root .fm-wac-launcher:hover,
.fm-wac-root .fm-wac-launcher:active,
.fm-wac-root .fm-wac-launcher[aria-expanded="true"] {
	background: var(--fm-wac-launcher-bg-hover, #1fbd5a);
	color: var(--fm-wac-launcher-icon, #fff);
	transform: translateY(-2px);
}

.fm-wac-root .fm-wac-launcher:active {
	transform: translateY(0) scale(.96);
}

.fm-wac-launcher-icon {
	display: flex;
	height: var(--fm-wac-icon-size, 32px);
	width: var(--fm-wac-icon-size, 32px);
}

.fm-wac-launcher-icon svg {
	fill: currentColor;
	height: 100%;
	width: 100%;
}

.fm-wac-launcher-label {
	background: var(--fm-wac-launcher-label-bg, #111827);
	border-radius: var(--fm-wac-panel-radius, 0);
	box-shadow: 0 8px 22px rgba(16, 24, 40, .18);
	color: var(--fm-wac-launcher-label-color, #fff);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	max-width: min(240px, calc(100vw - 120px));
	opacity: 0;
	padding: 9px 12px;
	pointer-events: none;
	position: absolute;
	top: 50%;
	transform: translateY(-50%) translateX(5px);
	transition: opacity 150ms ease, transform 150ms ease;
	visibility: hidden;
	white-space: nowrap;
}

.fm-wac-position-right .fm-wac-launcher-label {
	right: calc(100% + 12px);
}

.fm-wac-position-left .fm-wac-launcher-label {
	left: calc(100% + 12px);
}

.fm-wac-launcher:hover .fm-wac-launcher-label,
.fm-wac-launcher:focus-visible .fm-wac-launcher-label {
	opacity: 1;
	transform: translateY(-50%) translateX(0);
	visibility: visible;
}

.fm-wac-status-dot {
	background: var(--fm-wac-status-dot, #fff);
	border: 2px solid var(--fm-wac-status-dot-border, #25d366);
	border-radius: 50%;
	height: 12px;
	position: absolute;
	right: 3px;
	top: 3px;
	width: 12px;
}

body.fm-wac-panel-open {
	overscroll-behavior: contain;
}

@keyframes fm-wac-panel-in {
	from {
		opacity: 0;
		transform: translateY(12px) scale(.98);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

.fm-wac-root.fm-wac-is-mobile {
	bottom: calc(var(--fm-wac-bottom-mobile, 18px) + env(safe-area-inset-bottom, 0px));
}

.fm-wac-position-right.fm-wac-is-mobile {
	right: var(--fm-wac-side-mobile, 16px);
}

.fm-wac-position-left.fm-wac-is-mobile {
	left: var(--fm-wac-side-mobile, 16px);
}

.fm-wac-is-mobile .fm-wac-launcher {
	height: var(--fm-wac-launcher-size-mobile, 58px);
	width: var(--fm-wac-launcher-size-mobile, 58px);
}

.fm-wac-is-mobile .fm-wac-launcher-icon {
	height: var(--fm-wac-icon-size-mobile, 29px);
	width: var(--fm-wac-icon-size-mobile, 29px);
}

.fm-wac-is-mobile .fm-wac-launcher-label {
	display: none;
}

.fm-wac-is-mobile .fm-wac-panel {
	bottom: calc(var(--fm-wac-launcher-size-mobile, 58px) + 12px);
	max-height: min(74vh, calc(100vh - var(--fm-wac-bottom-mobile, 18px) - env(safe-area-inset-bottom, 0px) - var(--fm-wac-launcher-size-mobile, 58px) - 26px));
	width: min(var(--fm-wac-panel-width, 380px), calc(100vw - (var(--fm-wac-side-mobile, 16px) * 2)));
}

.fm-wac-no-launcher.fm-wac-is-mobile .fm-wac-panel {
	bottom: 0;
	max-height: min(74vh, calc(100vh - var(--fm-wac-bottom-mobile, 18px) - env(safe-area-inset-bottom, 0px) - 24px));
}

@media (max-width: 480px) {
	.fm-wac-panel {
		border-radius: var(--fm-wac-panel-radius, 0);
	}

	.fm-wac-header {
		grid-template-columns: 40px minmax(0, 1fr) 34px;
		padding: 15px;
	}

	.fm-wac-header-icon {
		border-radius: var(--fm-wac-panel-radius, 0);
		height: 40px;
		width: 40px;
	}

	.fm-wac-body {
		padding: 16px;
	}

	.fm-wac-footer {
		padding: 13px 16px 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fm-wac-panel,
	.fm-wac-launcher,
	.fm-wac-launcher-label,
	.fm-wac-send,
	.fm-wac-close,
	.fm-wac-inline-trigger {
		animation: none !important;
		transition: none !important;
	}
}

.fm-wac-root,.fm-wac-inline-trigger{--fm-wac-launcher-size:64px;--fm-wac-launcher-size-mobile:58px;--fm-wac-icon-size:32px;--fm-wac-icon-size-mobile:29px;--fm-wac-bottom:28px;--fm-wac-side:28px;--fm-wac-bottom-mobile:18px;--fm-wac-side-mobile:16px;--fm-wac-panel-width:380px;--fm-wac-panel-radius:0px;--fm-wac-launcher-radius:0%;--fm-wac-z-index:99999;--fm-wac-font-family:var(--e-global-typography-text-font-family, inherit);--fm-wac-title-font-size:19px;--fm-wac-body-font-size:15px;--fm-wac-button-font-size:15px;--fm-wac-launcher-bg:#25d366;--fm-wac-launcher-bg-hover:#1fbd5a;--fm-wac-launcher-icon:#ffffff;--fm-wac-launcher-label-bg:#111827;--fm-wac-launcher-label-color:#ffffff;--fm-wac-panel-bg:#ffffff;--fm-wac-header-bg:#075e54;--fm-wac-header-color:#ffffff;--fm-wac-header-icon-bg:rgba(255,255,255,0.14);--fm-wac-body-color:#172033;--fm-wac-muted-color:#667085;--fm-wac-context-bg:#f2fbf5;--fm-wac-context-border:#d6f1df;--fm-wac-context-accent:#128c7e;--fm-wac-input-bg:#ffffff;--fm-wac-input-color:#172033;--fm-wac-input-border:#d0d5dd;--fm-wac-input-placeholder:#98a2b3;--fm-wac-send-bg:#25d366;--fm-wac-send-bg-hover:#1fbd5a;--fm-wac-send-color:#ffffff;--fm-wac-focus:#128c7e;--fm-wac-status-dot:#ffffff;--fm-wac-status-dot-border:#25d366;--fm-wac-overlay:rgba(11,18,32,0.22);--fm-wac-shadow:0 24px 70px rgba(16,24,40,0.22);}
/* fmwbn-frontend */
.fmwbn-notice-group {
	display: flex;
	flex-direction: column;
	margin: 0;
}

.fmwbn-elementor-widget__anchor {
	min-height: 1px;
}

.fmwbn-elementor-widget__preview {
	display: grid;
	gap: 10px;
	margin-top: 10px;
}

.fmwbn-hide-icons .fmwbn-notice__icon,
.fmwbn-hide-close .fmwbn-notice__close {
	display: none;
}

.fmwbn-elementor-widget__style-source {
	position: absolute;
	inline-size: var(--fmwbn-max-width);
	block-size: 0;
	overflow: hidden;
	visibility: hidden;
	pointer-events: none;
}

.fmwbn-notice {
	--fmwbn-bg: var(--fmwbn-notice-bg);
	--fmwbn-text: var(--fmwbn-notice-text);
	--fmwbn-link: var(--fmwbn-notice-link);
	--fmwbn-link-hover: var(--fmwbn-notice-link-hover);
	--fmwbn-border-color: var(--fmwbn-notice-border);
	--fmwbn-icon-color: var(--fmwbn-notice-icon);
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: var(--fmwbn-icon-gap);
	width: min(100%, var(--fmwbn-max-width));
	max-width: var(--fmwbn-max-width);
	margin: var(--fmwbn-margin);
	padding: var(--fmwbn-padding);
	border: var(--fmwbn-border-width) solid var(--fmwbn-border-color);
	border-radius: var(--fmwbn-border-radius);
	background: var(--fmwbn-bg);
	box-shadow: var(--fmwbn-box-shadow);
	color: var(--fmwbn-text);
	font-family: var(--e-global-typography-text-font-family, inherit);
	font-size: var(--fmwbn-font-size);
	font-weight: var(--fmwbn-font-weight);
	line-height: var(--fmwbn-line-height);
	text-align: var(--fmwbn-text-align);
	list-style: none;
}

.fmwbn-notice--success {
	--fmwbn-bg: var(--fmwbn-success-bg);
	--fmwbn-text: var(--fmwbn-success-text);
	--fmwbn-link: var(--fmwbn-success-link);
	--fmwbn-link-hover: var(--fmwbn-success-link-hover);
	--fmwbn-border-color: var(--fmwbn-success-border);
	--fmwbn-icon-color: var(--fmwbn-success-icon);
}

.fmwbn-notice--error {
	--fmwbn-bg: var(--fmwbn-error-bg);
	--fmwbn-text: var(--fmwbn-error-text);
	--fmwbn-link: var(--fmwbn-error-link);
	--fmwbn-link-hover: var(--fmwbn-error-link-hover);
	--fmwbn-border-color: var(--fmwbn-error-border);
	--fmwbn-icon-color: var(--fmwbn-error-icon);
}

.fmwbn-notice--notice {
	--fmwbn-bg: var(--fmwbn-notice-bg);
	--fmwbn-text: var(--fmwbn-notice-text);
	--fmwbn-link: var(--fmwbn-notice-link);
	--fmwbn-link-hover: var(--fmwbn-notice-link-hover);
	--fmwbn-border-color: var(--fmwbn-notice-border);
	--fmwbn-icon-color: var(--fmwbn-notice-icon);
}

.fmwbn-notice__icon {
	flex: 0 0 auto;
	display: inline-flex;
	width: var(--fmwbn-icon-size);
	height: var(--fmwbn-icon-size);
	color: var(--fmwbn-icon-color);
}

.fmwbn-notice__icon svg {
	display: block;
	width: 100%;
	height: 100%;
}

.fmwbn-notice__content {
	flex: 1 1 auto;
	min-width: 0;
}

.fmwbn-notice__content p,
.fmwbn-notice__content ul,
.fmwbn-notice__content ol {
	margin: 0;
}

.fmwbn-notice__content ul,
.fmwbn-notice__content ol {
	padding-inline-start: 1.2em;
}

.fmwbn-notice__error-list{
	display: grid;
	gap: .55em;
}

.fmwbn-notice__error-list li{
	margin: 0;
}

.fmwbn-notice__content a,
.fmwbn-notice-button-text {
	color: var(--fmwbn-link);
	font: inherit;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.14em;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

.fmwbn-notice__content a:hover,
.fmwbn-notice__content a:focus,
.fmwbn-notice-button-text {
	color: var(--fmwbn-link-hover);
}

.fmwbn-notice__content .fmwbn-notice-button-text {
	cursor: default;
	text-decoration: none;
}

.fmwbn-notice__close {
	flex: 0 0 auto;
	appearance: none;
	background: transparent;
	border: 0;
	box-shadow: none;
	color: var(--fmwbn-close-color, currentColor);
	cursor: pointer;
	font-size: var(--fmwbn-close-size, 22px);
	line-height: 1;
	margin: 0 0 0 8px;
	padding: 0;
}

.fmwbn-notice__close:hover,
.fmwbn-notice__close:focus {
	opacity: 0.78;
}

.fmwbn-notice__close:focus,
.fmwbn-notice__close:focus-visible {
	outline: none;
	box-shadow: none;
}

.fmwbn-notice.fmwbn-is-hiding {
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.24s ease, transform 0.24s ease;
}

body.fmwbn-mode-inline .fmwbn-notice {
	margin-inline-start: 0;
}

body.fmwbn-mode-inline [data-fmwbn-inline-target] > .fmwbn-notice-group:last-child .fmwbn-notice:last-child {
	margin-bottom: 0;
}

body.fmwbn-mode-toast .fmwbn-toast-stack {
	position: fixed;
	top: var(--fmwbn-toast-top);
	right: var(--fmwbn-toast-right);
	z-index: var(--fmwbn-z-index);
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	pointer-events: none;
	max-height: calc(100dvh - max(32px, env(safe-area-inset-top)) - max(24px, env(safe-area-inset-bottom)));
	overflow-y: auto;
	overscroll-behavior: contain;
}

body.fmwbn-mode-toast .fmwbn-toast-stack .fmwbn-notice {
	pointer-events: auto;
}

body.fmwbn-mode-toast .fmwbn-toast-stack .fmwbn-notice-group {
	width: 100%;
}

body.fmwbn-mode-toast .fmwbn-notice {
	margin: 0 0 14px;
}

body.fmwbn-mode-toast .woocommerce-notices-wrapper,
body.fmwbn-mode-toast .woocommerce-NoticeGroup,
body.fmwbn-mode-toast .woocommerce-error,
body.fmwbn-mode-toast .woocommerce-message,
body.fmwbn-mode-toast .woocommerce-info {
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
}

@media (max-width: 767px) {
	body.fmwbn-mode-toast .fmwbn-toast-stack {
		left: 16px;
		right: 16px;
		top: max(16px, env(safe-area-inset-top));
	}

	.fmwbn-notice {
		width: 100%;
		max-width: none;
	}
}

:root{
--fmwbn-border-width:0px;
--fmwbn-border-radius:0px;
--fmwbn-padding:16px 18px;
--fmwbn-margin:0 0 14px 0;
--fmwbn-box-shadow:none;
--fmwbn-max-width:620px;
--fmwbn-font-size:inherit;
--fmwbn-font-weight:inherit;
--fmwbn-line-height:inherit;
--fmwbn-text-align:left;
--fmwbn-icon-gap:12px;
--fmwbn-icon-size:20px;
--fmwbn-toast-top:24px;
--fmwbn-toast-right:24px;
--fmwbn-z-index:2147483000;
--fmwbn-success-bg:transparent;
--fmwbn-success-text:inherit;
--fmwbn-success-link:inherit;
--fmwbn-success-link-hover:inherit;
--fmwbn-success-border:transparent;
--fmwbn-success-icon:currentColor;
--fmwbn-error-bg:transparent;
--fmwbn-error-text:inherit;
--fmwbn-error-link:inherit;
--fmwbn-error-link-hover:inherit;
--fmwbn-error-border:transparent;
--fmwbn-error-icon:currentColor;
--fmwbn-notice-bg:transparent;
--fmwbn-notice-text:inherit;
--fmwbn-notice-link:inherit;
--fmwbn-notice-link-hover:inherit;
--fmwbn-notice-border:transparent;
--fmwbn-notice-icon:currentColor;
}
body.fmwbn-mode-toast{}
:root{--fmwbn-auto-hide-enabled:1;}
:root{--fmwbn-auto-hide-types:"success,error,notice";}

/* fmct-base */
/*
 * Il fondo comune dei componenti FM.
 *
 * DA DOVE VIENE IL MAGENTA. Hello Elementor, in assets/css/reset.css, veste
 * ogni bottone nudo del sito:
 *
 *   [type="button"], [type="submit"], button {
 *     border: 1px solid #c36; color: #c36;
 *   }
 *   [type="button"]:hover, [type="button"]:focus,
 *   button:hover, button:focus { background-color: #c36; color: #fff; }
 *
 * I widget di Elementor non lo prendono perche' dichiarano da soli il proprio
 * aspetto. I nostri lo prendevano tutti, perche' lasciano il <button> spoglio:
 * e' quel #cc3366 che ricompariva a ogni componente nuovo, su ogni sito col
 * tema Hello. Non e' mai stato un colore scelto da qualcuno.
 *
 * COME SI SPEGNE, DALLA 3.6.60. Non con la specificita'. La 3.6.58 usava
 * button[class^="fm-"] a (0,1,1) per battere il :hover di Hello, e cosi'
 * batteva anche le regole a una classe sola dei nostri moduli - trentuno
 * bottoni (WhatsApp, trigger, wishlist, cassetto, frecce, paginazione,
 * campioni delle varianti) persi sfondo, bordo e colore su ogni sito, a ogni
 * aggiornamento. Il reset di un tema deve stare in fondo alla cascata, e CSS
 * ha lo strumento apposta: il foglio reset.css di Hello viene stampato dal
 * framework come @import ... layer(fm-theme-reset) (vedi
 * FM_Complete_Toolkit::layer_hello_reset). Le regole in un layer perdono
 * contro QUALSIASI regola fuori dal layer, a prescindere dalla specificita'
 * e dall'ordine: il magenta non puo' piu' raggiungere un bottone che un
 * modulo ha vestito, nemmeno al passaggio del mouse.
 *
 * Questo file resta per i bottoni davvero nudi, e per quelli soltanto: le
 * sue regole sono a specificita' ZERO (:where), quindi vincono sul reset nel
 * layer e perdono contro ogni regola di modulo, anche a una classe sola,
 * anche a riposo contro il loro :hover. Un modulo che dichiara qualcosa
 * vince sempre; non deve piu' aggiungere classi per farsi rispettare.
 *
 * SI TOCCANO SOLO I BOTTONI CHE PORTANO UNA CLASSE fm-. Non i bottoni dentro
 * un contenitore FM: dentro una card di prodotto ci sono i bottoni di
 * WooCommerce e di Elementor, che hanno il proprio aspetto e non vanno
 * spogliati.
 *
 * Il colore al passaggio e' quello della pelle, che a sua volta arriva dai
 * Colori globali del Kit.
 */

:where(button[class^="fm-"],
button[class*=" fm-"],
[type="button"][class^="fm-"],
[type="button"][class*=" fm-"]) {
	border: 0;
	border-radius: 0;
	background: none;
	color: inherit;
}

:where(button[class^="fm-"],
button[class*=" fm-"],
[type="button"][class^="fm-"],
[type="button"][class*=" fm-"]):where(:hover, :focus) {
	background: none;
	color: var( --fm-theme-action, var( --e-global-color-primary, currentColor ) );
}

/* fm-wooe-frontend-fixes */
:root {
  --fm-wooe-color-text: var(--e-global-color-text, currentColor);
  --fm-wooe-color-accent: var(--e-global-color-primary, currentColor);
  --fm-wooe-color-muted: var(--e-global-color-secondary, rgba(17, 17, 17, 0.68));
  --fm-wooe-color-border: color-mix(in srgb, var(--fm-wooe-color-text) 14%, transparent);
}

.woocommerce,
.woocommerce-page {
  color: var(--fm-wooe-color-text);
}

.woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-wrapper a,
.woocommerce-form-login-toggle a,
.woocommerce-form-coupon-toggle a,
.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
  color: var(--fm-wooe-color-accent);
  text-decoration: underline;
  text-underline-offset: 0.14em;
}

.woocommerce .woocommerce-privacy-policy-text,
.woocommerce .woocommerce-terms-and-conditions-wrapper,
.woocommerce .woocommerce-form-login-toggle,
.woocommerce .woocommerce-form-coupon-toggle,
.woocommerce #payment .place-order,
.woocommerce form .form-row {
  font-size: 0.98rem;
  line-height: 1.65;
}

.woocommerce .woocommerce-privacy-policy-text p:last-child,
.woocommerce .woocommerce-terms-and-conditions-wrapper p:last-child,
.woocommerce form .form-row:last-child {
  margin-bottom: 0;
}

.woocommerce form .form-row label,
.woocommerce #payment .payment_methods label,
.woocommerce .woocommerce-form__label {
  color: var(--fm-wooe-color-text);
  font-weight: 600;
}

.woocommerce form .form-row .required {
  color: var(--fm-wooe-color-accent);
}

.woocommerce #payment,
.woocommerce-checkout #payment div.payment_box,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message {
  border-radius: 18px;
}

.woocommerce .woocommerce-privacy-policy-text,
.woocommerce .woocommerce-terms-and-conditions-wrapper {
  color: var(--fm-wooe-color-muted);
}

.woocommerce-checkout #payment div.payment_box {
  background: color-mix(in srgb, var(--fm-wooe-color-accent) 4%, white);
  color: var(--fm-wooe-color-text);
}

.woocommerce-checkout #payment div.payment_box::before {
  border-bottom-color: color-mix(in srgb, var(--fm-wooe-color-accent) 4%, white);
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
  border-color: var(--fm-wooe-color-border);
  border-radius: 20px;
}

.woocommerce table.shop_table,
.woocommerce-page table.shop_table {
  border-radius: 0;
  overflow: hidden;
}

.woocommerce .select2-container .select2-selection--single,
.woocommerce .select2-container .select2-selection--multiple,
.woocommerce form .input-text,
.woocommerce form select,
.woocommerce textarea {
  border-radius: 14px;
}

@media (max-width: 767px) {
  .woocommerce .woocommerce-privacy-policy-text,
  .woocommerce .woocommerce-terms-and-conditions-wrapper,
  .woocommerce .woocommerce-form-login-toggle,
  .woocommerce .woocommerce-form-coupon-toggle,
  .woocommerce #payment .place-order,
  .woocommerce form .form-row {
    font-size: 0.95rem;
  }
}

/* I campi sono volutamente piatti e senza bordo: hover e focus devono
   restare nella stessa lingua, non far spuntare il bordo di default del
   browser. Hover: fondo appena piu' scuro. Focus: sottolineatura netta. */
.woocommerce form .form-row input.input-text:hover,
.woocommerce form .form-row select:hover,
.woocommerce form .form-row textarea:hover {
  background-color: color-mix(in srgb, currentColor 7%, #f9fafa);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
  outline: none;
  border: 0;
  box-shadow: inset 0 -2px 0 0 var(--e-global-color-text, #333749);
  background-color: #fff;
}

/* "Sei gia' nostro cliente?": deve saltare all'occhio, non sembrare una
   riga qualunque. Grassetto, bordo a sinistra e l'omino davanti. */
.woocommerce .woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-login-toggle.e-checkout-secondary-title {
  font-weight: 700;
  padding: 10px 14px;
  border-left: 3px solid var(--e-global-color-accent, #f1135e);
  background: color-mix(in srgb, var(--e-global-color-accent, #f1135e) 7%, #fff);
}

.woocommerce .woocommerce-form-login-toggle .woocommerce-info::before,
.woocommerce-form-login-toggle.e-checkout-secondary-title::before {
  content: "";
  display: inline-block;
  width: 1.05em;
  height: 1.05em;
  margin-right: 0.45em;
  vertical-align: -0.18em;
  background-color: currentColor;
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="8" r="3.4"/><path d="M4.5 20c1.6-3.6 4.2-5.4 7.5-5.4s5.9 1.8 7.5 5.4"/></svg>') no-repeat center / contain;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="1.8" stroke-linecap="round"><circle cx="12" cy="8" r="3.4"/><path d="M4.5 20c1.6-3.6 4.2-5.4 7.5-5.4s5.9 1.8 7.5 5.4"/></svg>') no-repeat center / contain;
}

/* "Spedire a un indirizzo diverso?" in evidenza ora che parte spento. */
.woocommerce #ship-to-different-address label {
  font-weight: 700;
}

/* ------------------------------------------------------------------
   Loghi dei metodi di pagamento (gateway_icons_map)
   Inline dopo il nome del metodo, come sul checkout storico.
------------------------------------------------------------------ */
.woocommerce-checkout #payment .fm-wooe-gateway-icon {
	display: inline-block;
	max-height: 24px;
	width: auto;
	vertical-align: middle;
	margin-left: 6px;
	float: none;
}
.woocommerce-checkout #payment .fm-wooe-gateway-icon:first-of-type {
	margin-left: 10px;
}
