/* 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;
}

.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;
}

/* 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;
}
