.wpsa-product-services{
	margin:12px 0;
	padding:12px;
	border:1px solid rgba(0,0,0,0.08);
	border-radius:10px;
	background:#fff;
}

/* Inline variant for product grid: subtle inline badges */
.wpsa-product-services--inline{
	padding:6px 8px;
	border:0;
	background:transparent;
}
.wpsa-grid-service{
	display:inline-block;
	margin-right:8px;
	margin-bottom:6px;
	padding:6px 8px;
	border-radius:999px;
	background:rgba(17,37,81,0.06);
	color:#0b1a33;
	font-size:12px;
	font-weight:700;
}

button.wpsa-manage-services{
	margin-top:8px;
	padding:6px 12px;
	border-radius:12px;
	border:1px solid rgba(2,6,23,0.10);
	background:rgba(246,248,251,0.92);
	color:rgba(11,26,51,0.92);
	font-size:13px;
	font-weight:700;
	cursor:pointer;
}

/* Checkout: lasciamo che sia il tema a gestire card/bordi/layout. */
.wpsa-checkout-services{
	margin:0 0 12px;
	padding:0;
	border:0;
	border-radius:0;
	background:transparent;
}

.wpsa-product-services .wpsa-title{
	margin:0 0 8px;
	font-weight:700;
}

.wpsa-item{
	display:block;
	margin:6px 0;
	line-height:1.35;
}

.wpsa-checkout-service{margin:6px 0;}
.wpsa-checkout-service__header{display:inline-flex;align-items:center;gap:8px;max-width:100%;}
.wpsa-checkout-service__price{font-weight:700;}
.wpsa-checkout-service__type{opacity:0.75;}
.wpsa-checkout-service__info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;background:rgba(17,37,81,0.08);color:#112551;font-size:11px;font-weight:800;line-height:1;cursor:help;vertical-align:middle;}
.wpsa-checkout-service__info:focus{outline:2px solid rgba(17,37,81,0.22);outline-offset:2px;}
.wpsa-checkout-service__info-icon{display:block;line-height:1;}
.wpsa-checkout-service__tooltip{position:absolute;left:50%;bottom:calc(100% + 10px);z-index:20;display:block;width:min(280px, calc(100vw - 32px));padding:10px 12px;border-radius:12px;background:#112551;color:#fff;font-size:12px;font-weight:500;line-height:1.45;box-shadow:0 14px 28px rgba(11,26,51,0.22);opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%, 8px);transition:opacity .18s ease, transform .18s ease, visibility .18s ease;text-align:left;text-wrap:pretty;}
.wpsa-checkout-service__tooltip::after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;background:#112551;transform:translate(-50%, -50%) rotate(45deg);}
.wpsa-checkout-service__info:hover .wpsa-checkout-service__tooltip,
.wpsa-checkout-service__info:focus .wpsa-checkout-service__tooltip,
.wpsa-checkout-service__info:focus-within .wpsa-checkout-service__tooltip{opacity:1;visibility:visible;transform:translate(-50%, 0);}

.itala-step-checkout .isc-order-review__after-items .wpsa-checkout-service label{
	display:flex;
	align-items:center;
	gap:10px;
	width:100%;
	min-width:0;
	flex-wrap:nowrap;
}
.itala-step-checkout .isc-order-review__after-items .wpsa-checkout-service .wpsa-checkout-service__header{
	flex:1 1 auto;
	min-width:0;
}
.itala-step-checkout .isc-order-review__after-items .wpsa-checkout-service .wpsa-checkout-service__type{
	flex:0 1 auto;
	min-width:0;
}
.itala-step-checkout .isc-order-review__after-items .wpsa-checkout-service .wpsa-checkout-service__price{
	margin-left:auto;
	flex:0 0 auto;
	white-space:nowrap;
}
.itala-step-checkout .isc-order-review__after-items .wpsa-checkout-service .checkmark{
	margin-left:0;
	flex:0 0 auto;
}

/* Mini-cart helpers */
.woocommerce-mini-cart .wpsa-mini-item-services{
	display:block;
	margin-top:8px;
	padding:8px 10px;
	border-radius:10px;
	border:1px solid rgba(2,6,23,0.10);
	background:rgba(246,248,251,0.92);
	color:rgba(11,26,51,0.92);
	font-size:12px;
	line-height:1.25;
}
.woocommerce-mini-cart .wpsa-mini-item-services__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.woocommerce-mini-cart .wpsa-mini-item-services__label{font-weight:800;}
.woocommerce-mini-cart .wpsa-mini-item-services__total{font-weight:900;color:#112551;white-space:nowrap;}
.woocommerce-mini-cart .wpsa-mini-item-services__list{display:block;margin-top:6px;padding-top:6px;border-top:1px dashed rgba(2,6,23,0.12);}
.woocommerce-mini-cart .wpsa-mini-item-services__row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin:3px 0;}
.woocommerce-mini-cart .wpsa-mini-item-services__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:0.88;}
.woocommerce-mini-cart .wpsa-mini-item-services__price{white-space:nowrap;font-weight:800;opacity:0.92;}
.wpsa-cart-item-services{display:inline-block;margin-top:3px;color:rgba(11,26,51,0.75);font-size:12px;}
.wpsa-mini-order-services{margin:10px 0 10px 0;padding:10px 12px;border-radius:12px;border:1px solid rgba(2,6,23,0.10);background:rgba(246,248,251,0.9);}
.wpsa-mini-order-services__title{display:block;font-weight:800;margin:0 0 6px;}
.wpsa-mini-order-services__list{display:block;}
.wpsa-mini-order-services__row{display:flex;justify-content:space-between;gap:10px;margin:4px 0;}
.wpsa-mini-order-services__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wpsa-mini-order-services__price{white-space:nowrap;font-weight:800;color:#112551;}
.wpsa-mini-order-services__total{display:block;margin-top:8px;padding-top:8px;border-top:1px solid rgba(2,6,23,0.10);}
body.woocommerce-cart .cart_table td .wpsa-mini-item-services-badge{
	display:none !important;
}

/* Linked Garanzia 3 rows: visually lighter and more compact than main products */
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item td{
	padding-top:7px !important;
	padding-bottom:7px !important;
	font-size:11px !important;
	vertical-align:middle !important;
	background:linear-gradient(135deg, rgba(17, 37, 81, 0.08) 0%, rgba(236, 241, 255, 0.92) 42%, rgba(255, 255, 255, 0.98) 100%) !important;
	border-top:none !important;
	border-bottom:none !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item td:first-child{
	border-top-left-radius:14px !important;
	border-bottom-left-radius:14px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item td:last-child{
	border-top-right-radius:14px !important;
	border-bottom-right-radius:14px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row-cell{
	padding-left:10px !important;
	padding-right:10px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row-cell::before{
	content:none !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row{
	display:flex !important;
	align-items:center !important;
	justify-content:space-between !important;
	gap:10px !important;
	width:98% !important;
	margin:0 auto !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__main{
	display:flex !important;
	align-items:center !important;
	gap:8px !important;
	min-width:0 !important;
	flex:1 1 auto !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__summary{
	display:flex !important;
	align-items:center !important;
	flex-direction: column !important;
	flex-wrap:wrap !important;
	gap:0px !important;
	min-width:0 !important;
}

.variation-Associatoa{
	line-height: 1;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__title{
	margin:0 !important;
	flex:0 1 auto !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__side{
	display:flex !important;
	align-items:center !important;
	gap:6px !important;
	flex:0 0 auto !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__qty{
	display:inline-flex !important;
	align-items:center !important;
	padding:2px 7px !important;
	border-radius:999px !important;
	background:rgba(255,255,255,0.82) !important;
	box-shadow:inset 0 0 0 1px rgba(17, 37, 81, 0.10) !important;
	font-size:9px !important;
	font-weight:700 !important;
	line-height:1 !important;
	color:#42526f !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__price{
	font-size:11px !important;
	font-weight:800 !important;
	line-height:1 !important;
	color:#112551 !important;
	white-space:nowrap !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item td.product-name .cart-productimage,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row-cell .cart-productimage{
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	width:36px !important;
	height:36px !important;
	padding:3px !important;
	border-radius:12px !important;
	background:#fff !important;
	box-shadow:inset 0 0 0 1px rgba(17, 37, 81, 0.12), 0 4px 10px rgba(15, 23, 42, 0.04) !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item td.product-name img,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row-cell img{
	max-width:28px !important;
	width:28px !important;
	height:28px !important;
	object-fit:contain !important;
	object-position:center center !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .cart-productname,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .product-price,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .product-subtotal{
	font-size:11px !important;
	line-height:1.15 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .cart-productname{
	display:inline-block !important;
	padding:2px 7px !important;
	border-radius:999px !important;
	background:rgba(255, 255, 255, 0.78) !important;
	box-shadow:inset 0 0 0 1px rgba(17, 37, 81, 0.10) !important;
	color:#112551 !important;
	font-weight:700 !important;
	white-space:nowrap !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta{
	display:inline-flex !important;
	align-items:center !important;
	flex-wrap:wrap !important;
	gap:3px 6px !important;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	background:transparent !important;
	min-width:0 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation dt,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation dd,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta dt,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta dd{
	float:none !important;
	display:inline !important;
	margin:0 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation dt,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta dt{
	font-size:9px !important;
	font-weight:700 !important;
	color:#64748b !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation dd,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta dd,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .variation dd p,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta dd p{
	font-size:9px !important;
	line-height:1.1 !important;
	color:#42526f !important;
	margin:0 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .quantity{
	font-size:10px !important;
	color:#42526f !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .qty-btn{
	width:24px !important;
	height:24px !important;
	line-height:22px !important;
	border-radius:8px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .qty-input{
	width:40px !important;
	height:24px !important;
	border-radius:8px !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wc-item-meta,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-cart-item-services,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-cart-services-box{
	font-size:9px !important;
	line-height:1.1 !important;
	color:#42526f !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .product-price .amount,
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .product-subtotal .amount{
	color:#112551 !important;
	font-weight:800 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .remove{
	width:24px !important;
	height:24px !important;
	border-radius:999px !important;
	background:rgba(255, 255, 255, 0.76) !important;
	border:1px solid rgba(17, 37, 81, 0.12) !important;
	color:#112551 !important;
}
body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__side .remove{
	margin-left:2px !important;
}
@media (max-width: 767px) {
	body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row{
		width:100% !important;
	}
	body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__main{
		align-items:flex-start !important;
	}
	body.woocommerce-cart .woocommerce-cart-form__cart-item.wpsa-linked-g3-item .wpsa-linked-g3-cart-row__side{
		align-self:flex-start !important;
	}
}

.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item,
.widget.widget_shopping_cart.style2 .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item{
	margin:6px 8px 0 0 !important;
	padding:7px 32px 7px 36px !important;
	min-height:38px !important;
	border:1px solid rgba(17, 37, 81, 0.14) !important;
	border-top:none !important;
	border-bottom:2px solid rgba(17, 37, 81, 0.30) !important;
	border-radius:12px !important;
	background:linear-gradient(135deg, rgba(17, 37, 81, 0.08) 0%, rgba(236, 241, 255, 0.94) 42%, rgba(255, 255, 255, 0.98) 100%) !important;
	box-shadow:0 6px 16px rgba(17, 37, 81, 0.08) !important;
	overflow:hidden !important;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item img,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item img,
.widget.widget_shopping_cart.style2 .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item img{
	width:24px !important;
	max-width:24px !important;
	height:24px !important;
	max-height:24px !important;
	min-height:24px !important;
	aspect-ratio:1 / 1 !important;
	object-fit:contain !important;
	object-position:center center !important;
	background:#fff !important;
	padding:3px !important;
	border-radius:8px !important;
	box-shadow:inset 0 0 0 1px rgba(17, 37, 81, 0.12), 0 4px 10px rgba(15, 23, 42, 0.04) !important;
	display:block !important;
	left:7px !important;
	top:50% !important;
	transform:translateY(-50%) !important;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item a:not(.remove),
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item a:not(.remove){
	display:block !important;
	padding-right:16px !important;
	font-size:11px !important;
	font-weight:700 !important;
	line-height:1.08 !important;
	color:var(--title-color) !important;
	text-wrap:pretty;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .qty,
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .amount,
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .wc-item-meta,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .qty,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .amount,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .wc-item-meta{
	font-size:9px !important;
	line-height:1.1 !important;
	color:#42526f !important;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .qty,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .qty{
	display:inline-flex !important;
	align-items:center !important;
	gap:4px !important;
	margin-top:3px !important;
	padding:2px 6px !important;
	border-radius:999px !important;
	background:rgba(255, 255, 255, 0.78) !important;
	box-shadow:inset 0 0 0 1px rgba(17, 37, 81, 0.10) !important;
	white-space:nowrap !important;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .amount,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .amount{
	font-weight:800 !important;
	color:#112551 !important;
}
.woocommerce-mini-cart .woocommerce-mini-cart-item.wpsa-linked-g3-item .remove,
.widget_shopping_cart .cart_list .woocommerce-mini-cart-item.wpsa-linked-g3-item .remove{
	right:8px !important;
	left:auto !important;
	top:7px !important;
	transform:none !important;
	width:18px !important;
	height:18px !important;
	display:inline-flex !important;
	align-items:center !important;
	justify-content:center !important;
	border-radius:999px !important;
	background:rgba(255, 255, 255, 0.72) !important;
	backdrop-filter:blur(4px);
	color:#112551 !important;
}

/* Hide inline services when modal flow is enabled and JS is available */
.wpsa-js .wpsa-product-services--modal-enabled{
	display:none;
}

/* Modal */
.wpsa-modal{position:fixed; inset:0; z-index:999999; display:block; visibility:hidden; opacity:0; pointer-events:none;}
.wpsa-modal.is-open{visibility:visible; opacity:1; pointer-events:auto;}
.wpsa-modal.is-closing{
	/* Keep visibility true while opacity transition runs so closing animates smoothly.
	   JS will remove the class after the timeout and default visibility:hidden will apply. */
	visibility:visible;
	opacity:0;
	pointer-events:none;
}
.wpsa-modal__overlay{position:absolute; inset:0; background:rgba(2,6,23,0.55); backdrop-filter: blur(6px); opacity:0; transition:opacity 260ms ease;}
.wpsa-modal.is-open .wpsa-modal__overlay{opacity:1;}
.wpsa-modal.is-submitting .wpsa-modal__panel{filter:saturate(.88) brightness(.98);}
.wpsa-modal__panel{
	position:absolute;
	left:50%;
	top:50%;
	transform:translate(-50%,-50%) scale(0.96);
	width:min(860px, calc(100% - 22px));
	max-height:calc(100% - 22px);
	overflow:hidden;
	border-radius:16px;
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.08);
	box-shadow:0 28px 80px rgba(2,6,23,0.35);
	color:#0b1a33;
	opacity:0;
	transition:transform 320ms cubic-bezier(.2,.9,.25,1), opacity 260ms ease;
}
.wpsa-modal.is-open .wpsa-modal__panel{ transform:translate(-50%,-50%) scale(1); opacity:1; }

.wpsa-atc-loading{
	overflow:hidden;
}
.wpsa-atc-loader{
	position:fixed;
	inset:0;
	z-index:1000000;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity 220ms ease, visibility 220ms ease;
}
.wpsa-atc-loader.is-visible{
	opacity:1;
	visibility:visible;
	pointer-events:auto;
}
.wpsa-atc-loader__veil{
	position:absolute;
	inset:0;
	background:linear-gradient(135deg, rgba(8, 17, 38, 0.82) 0%, rgba(17, 37, 81, 0.72) 48%, rgba(28, 58, 121, 0.74) 100%);
	backdrop-filter:blur(14px) saturate(1.08);
}
.wpsa-atc-loader__card{
	position:relative;
	z-index:1;
	width:min(460px, 100%);
	padding:34px 30px 30px;
	border-radius:28px;
	overflow:hidden;
	background:linear-gradient(160deg, rgba(255,255,255,0.96) 0%, rgba(244,247,252,0.98) 58%, rgba(233,240,252,0.96) 100%);
	border:1px solid rgba(255,255,255,0.42);
	box-shadow:0 36px 120px rgba(4, 10, 24, 0.34), inset 0 1px 0 rgba(255,255,255,0.75);
	text-align:center;
	color:#0b1a33;
}
.wpsa-atc-loader__card::before,
.wpsa-atc-loader__card::after{
	content:"";
	position:absolute;
	border-radius:999px;
	filter:blur(4px);
	opacity:.9;
}
.wpsa-atc-loader__card::before{
	width:148px;
	height:148px;
	top:-58px;
	right:-24px;
	background:radial-gradient(circle, rgba(253,120,0,0.28) 0%, rgba(253,120,0,0) 72%);
}
.wpsa-atc-loader__card::after{
	width:168px;
	height:168px;
	left:-64px;
	bottom:-84px;
	background:radial-gradient(circle, rgba(17,37,81,0.22) 0%, rgba(17,37,81,0) 74%);
}
.wpsa-atc-loader__halo{
	position:absolute;
	inset:auto 50% 18px;
	width:220px;
	height:40px;
	transform:translateX(-50%);
	background:radial-gradient(circle, rgba(17,37,81,0.18) 0%, rgba(17,37,81,0.04) 48%, rgba(17,37,81,0) 78%);
	filter:blur(12px);
}
.wpsa-atc-loader__spinner{
	position:relative;
	width:96px;
	height:96px;
	margin:0 auto 18px;
	display:grid;
	place-items:center;
}
.wpsa-atc-loader__ring,
.wpsa-atc-loader__core{
	position:absolute;
	border-radius:50%;
}
.wpsa-atc-loader__ring--outer{
	inset:0;
	border:2px solid rgba(17,37,81,0.08);
	border-top-color:#112551;
	border-right-color:#fd7800;
	animation:wpsaLoaderSpin 1.15s linear infinite;
	box-shadow:0 0 0 1px rgba(255,255,255,0.5) inset;
}
.wpsa-atc-loader__ring--mid{
	inset:14px;
	border:2px solid rgba(253,120,0,0.12);
	border-bottom-color:#fd7800;
	border-left-color:#112551;
	animation:wpsaLoaderSpinReverse 1.9s linear infinite;
}
.wpsa-atc-loader__core{
	inset:28px;
	background:radial-gradient(circle at 30% 30%, #ffffff 0%, #ffd1ad 16%, #fd7800 38%, #112551 100%);
	box-shadow:0 12px 28px rgba(17,37,81,0.24), inset 0 1px 1px rgba(255,255,255,0.55);
	animation:wpsaLoaderPulse 1.8s ease-in-out infinite;
}
.wpsa-atc-loader__eyebrow{
	position:relative;
	z-index:1;
	display:inline-flex;
	align-items:center;
	gap:8px;
	padding:7px 12px;
	margin-bottom:14px;
	border-radius:999px;
	background:rgba(17,37,81,0.08);
	color:#112551;
	font-size:11px;
	font-weight:800;
	letter-spacing:.12em;
	text-transform:uppercase;
}
.wpsa-atc-loader__title{
	position:relative;
	z-index:1;
	font-size:clamp(22px, 3vw, 28px);
	line-height:1.08;
	font-weight:900;
	letter-spacing:-0.02em;
	text-wrap:balance;
}
.wpsa-atc-loader__hint{
	position:relative;
	z-index:1;
	max-width:320px;
	margin:12px auto 0;
	font-size:14px;
	line-height:1.5;
	color:rgba(11,26,51,0.74);
	text-wrap:pretty;
}

@keyframes wpsaLoaderSpin {
	from { transform:rotate(0deg); }
	to { transform:rotate(360deg); }
}
@keyframes wpsaLoaderSpinReverse {
	from { transform:rotate(360deg); }
	to { transform:rotate(0deg); }
}
@keyframes wpsaLoaderPulse {
	0%, 100% { transform:scale(.92); box-shadow:0 12px 28px rgba(17,37,81,0.24), inset 0 1px 1px rgba(255,255,255,0.55); }
	50% { transform:scale(1); box-shadow:0 16px 34px rgba(17,37,81,0.28), inset 0 1px 1px rgba(255,255,255,0.6); }
}

@media (max-width: 640px) {
	.wpsa-atc-loader{
		padding:18px;
	}
	.wpsa-atc-loader__card{
		padding:28px 22px 24px;
		border-radius:24px;
	}
	.wpsa-atc-loader__spinner{
		width:82px;
		height:82px;
		margin-bottom:16px;
	}
	.wpsa-atc-loader__eyebrow{
		font-size:10px;
		letter-spacing:.1em;
	}
	.wpsa-atc-loader__hint{
		font-size:13px;
	}
}

.wpsa-modal__head{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 14px 10px; border-bottom:1px solid rgba(2,6,23,0.08);}
.wpsa-modal__title{font-weight:780; letter-spacing:0.01em;}
.wpsa-modal__close{background:#f2f5f9; border:1px solid rgba(2,6,23,0.12); color:#0b1a33; padding:7px 10px; border-radius:10px; cursor:pointer;}
.wpsa-modal__close:hover{background:#eaf1ff;}

.wpsa-modal__body{padding:14px; position:relative;}
.wpsa-step__title{font-weight:760; margin:0 0 4px;}
.wpsa-step__hint{font-size:13px; color:rgba(11,26,51,0.70); margin:0 0 12px;}

/* Step transition animations: fade + slide between steps */
.wpsa-step{
	/* Steps are positioned absolutely to overlap and avoid creating vertical gaps
	   when switching. Visibility is handled via opacity/transform classes. */
	display:block;
	position:absolute;
	top:0;
	left:0;
	right:0;
	opacity:0;
	transform:translateY(8px);
	pointer-events:none;
	transition:opacity 260ms ease, transform 320ms cubic-bezier(.2,.9,.25,1);
}
.wpsa-step.is-active{
	opacity:1;
	transform:translateY(0);
	pointer-events:auto;
	position:relative; /* keep active step in flow for correct sticky-actions on mobile */
}
/* Ensure only the active step (or transitioning steps) is visible when the modal opens */
.wpsa-modal .wpsa-step{
	display:none;
}
.wpsa-modal .wpsa-step.is-active{
	display:block;
	position:relative; /* keep in flow so panel height matches active step */
	pointer-events:auto;
}
.wpsa-modal .wpsa-step.is-entering,
.wpsa-modal .wpsa-step.is-exiting{
	display:block;
}
.wpsa-step.is-entering{ /* hint class while entering */
	opacity:1;
	transform:translateY(0);
}
.wpsa-step.is-exiting{ /* hint class while exiting */
	opacity:0;
	transform:translateY(-8px);
	pointer-events:none;
}

.wpsa-list{padding:10px; border-radius:12px; background:#f6f8fb; border:1px solid rgba(2,6,23,0.10);}
.wpsa-list .wpsa-item{margin:8px 0;}
.wpsa-list .wpsa-item input{margin-right:8px;}
.wpsa-empty{padding:10px; color:rgba(11,26,51,0.65);}

/* Generic services as cards (modal only) */
.wpsa-modal .wpsa-checklist.wpsa-checklist--cards{
	display:grid;
	grid-template-columns:repeat(2, minmax(0, 1fr));
	gap:12px;
}
.wpsa-modal .wpsa-generic-card{
	display:block;
	position:relative;
	cursor:pointer;
}
.wpsa-modal .wpsa-generic-card > input[type="checkbox"]{
	position:absolute;
	top:12px;
	right:12px;
	width:18px;
	height:18px;
	margin:0;
}
.wpsa-modal .wpsa-generic-card__body{
	display:block;
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.12);
	border-radius:12px;
	padding:14px 44px 14px 14px;
	box-shadow:0 10px 24px rgba(2,6,23,0.06);
	transition:transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease, background 120ms ease;
}
.wpsa-modal .wpsa-generic-card:hover .wpsa-generic-card__body{
	transform:translateY(-1px);
	box-shadow:0 14px 30px rgba(2,6,23,0.10);
}
.wpsa-modal .wpsa-generic-card__row{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:10px;
}
.wpsa-modal .wpsa-generic-card__title{
	font-weight:800;
	line-height:1.2;
}
.wpsa-modal .wpsa-generic-card__price{
	white-space:nowrap;
	font-weight:900;
	color:#fd7800;
}
.wpsa-modal .wpsa-generic-card__hint{
	display:block;
	margin-top:6px;
	font-size:12px;
	color:rgba(11,26,51,0.70);
}

.wpsa-modal .wpsa-generic-card > input[type="checkbox"]:focus-visible + .wpsa-generic-card__body{
	outline:2px solid rgba(37,99,235,0.55);
	outline-offset:2px;
}
.wpsa-modal .wpsa-generic-card > input[type="checkbox"]:checked + .wpsa-generic-card__body{
	border-color:rgba(253,120,0,0.75);
	background:rgba(253,120,0,0.06);
	box-shadow:0 14px 34px rgba(253,120,0,0.18);
}

/* Generic step container (two columns, like warranty) */
.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-row{
	display:flex;
	gap:18px;
	align-items:stretch;
	padding:16px;
	border-radius:12px;
	background:#f6f8fb;
	border:1px solid rgba(2,6,23,0.10);
}
.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-col--badge{
	flex:0 0 320px;
	max-width:320px;
}
.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-col--content{
	flex:1;
	min-width:0;
	display:flex;
}
.wpsa-modal .wpsa-generic-badge{
	height:100%;
	background:#112551;
	border-radius:12px;
	padding:18px;
	color:#ffffff;
	box-shadow:0 10px 24px rgba(2,6,23,0.10);
}
.wpsa-modal .wpsa-generic-badge__title{font-weight:900;letter-spacing:0.02em;line-height:0.95;font-size:34px;}
.wpsa-modal .wpsa-generic-badge__accent{color:#fd7800;}
.wpsa-modal .wpsa-generic-badge__desc{margin-top:10px;font-size:12px;line-height:1.35;opacity:0.95;}

.wpsa-modal .wpsa-generic-side{
	width:100%;
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.08);
	border-radius:12px;
	padding:18px;
	display:flex;
	flex-direction:column;
	gap:12px;
}
.wpsa-modal .wpsa-generic-side__title{font-weight:900;font-size:18px;}
.wpsa-modal .wpsa-generic-side__hint{font-size:12px;color:rgba(11,26,51,0.70);}

/* Inside the generic panel we want a single-column list for readability */
.wpsa-modal .wpsa-generic .wpsa-checklist.wpsa-checklist--cards{grid-template-columns:1fr;gap:10px; margin-top: 15px;}

@media (max-width: 720px){
	.wpsa-modal .wpsa-checklist.wpsa-checklist--cards{grid-template-columns:1fr;}
	.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-row{flex-direction:column;}
	.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-col--badge{flex:0 0 auto;max-width:100%;}
}

/* Mobile: make modal panel a column so body can scroll while actions stay fixed */
@media (max-width: 720px) {
	.wpsa-modal__panel{
		max-height:100vh;
		display:flex;
		flex-direction:column;
	}
	.wpsa-modal__body{
		flex:1 1 auto;
		overflow:auto;
		-webkit-overflow-scrolling: touch;
	}

	/* Show garanzia step actions as sticky bottom bar (like generico) */
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions{
		display:flex;
		position:sticky;
		bottom:0;
		left:0;
		right:0;
		margin-top:0;
		padding:8px 12px;
		background:rgba(255,255,255,0.96);
		border-top:1px solid rgba(2,6,23,0.10);
		backdrop-filter: blur(6px);
		flex-direction:column;
		align-items:stretch;
		gap:8px;
		z-index:3;
	}
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button{
		width:100%;
		padding:8px 14px;
		font-size:14px;
		line-height:1.1;
		border-radius:16px;
	}
}

.wpsa-actions{display:flex; justify-content:flex-end; gap:10px; margin-top:12px;}

/* Make generic-step action buttons match the panel style */
.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions{gap:12px;}
.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button{
	border:0;
	border-radius:20px;
	padding:10px 18px;
	background:#112551;
	color:#ffffff;
	cursor:pointer;
}
.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button:hover{filter:brightness(1.06);}
.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button.button-primary{background:#fd7800;}

@media (max-width: 720px){
	/* Mobile: 3 buttons stacked and fixed at the bottom of the modal */
	.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions{
		position:sticky;
		bottom:0;
		left:0;
		right:0;
		margin-top:0;
		padding:8px 12px;
		background:rgba(255,255,255,0.96);
		border-top:1px solid rgba(2,6,23,0.10);
		backdrop-filter: blur(6px);
		flex-direction:column;
		align-items:stretch;
		gap:8px;
		z-index:2;
	}
	.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button{
		width:100%;
		padding:8px 14px;
		font-size:14px;
		line-height:1.1;
		border-radius:16px;
	}
}

/* Buttons (front-end safe, not relying on WP admin styles) */
.wpsa-btn{appearance:none; border:1px solid rgba(2,6,23,0.14); background:#ffffff; color:#0b1a33; border-radius:12px; padding:10px 12px; font-weight:700; cursor:pointer;}
.wpsa-btn:hover{background:#f6f8fb;}
.wpsa-btn--primary{background:linear-gradient(180deg, rgba(59,130,246,0.95), rgba(37,99,235,0.92)); border-color:rgba(37,99,235,0.45); color:#ffffff;}
.wpsa-btn--primary:hover{filter:brightness(1.04);}

.wpsa-btn--ghost{background:#0f2b5b; border-color:#0f2b5b; color:#ffffff; padding:8px 12px; border-radius:10px; font-weight:800;}
.wpsa-btn--ghost:hover{filter:brightness(1.06);}

.wpsa-btn--warranty{background:#fd7804; border-color:#fd7804; color:#ffffff; padding:10px 14px; border-radius:12px; font-weight:900; letter-spacing:0.02em;}
.wpsa-btn--warranty:hover{filter:brightness(1.04);}

/* Warranty step: hide generic step chrome (buttons are inside the banner) */
.wpsa-step[data-step-type="garanzia3"] .wpsa-step__title,
.wpsa-step[data-step-type="garanzia3"] .wpsa-step__hint,
.wpsa-step[data-step-type="garanzia3"] .wpsa-actions{display:none;}

.wpsa-step[data-step-type="garanzia3"] .wpsa-list{padding:0;background:transparent;border:0;}

/* Generic step: hide step chrome (we render our own title inside the panel) */
.wpsa-step[data-step-type="generico"] .wpsa-step__title,
.wpsa-step[data-step-type="generico"] .wpsa-step__hint{display:none;}
.wpsa-step[data-step-type="generico"] .wpsa-list{padding:0;background:transparent;border:0;}

/* Legacy-like warranty banner (scoped inside our modal) */
.wpsa-modal .wpsa-warranty{margin:0;}
.wpsa-modal .wpsa-warranty .wpsa-voucher-body{
	max-width:600px;
	margin:8px auto 0;
	position:relative;
	border-radius:5px;
}

/* Two-column warranty layout (badge + content) */

/* Mobile override: make Garanzia3 actions visible and match Generico styling */
@media (max-width: 720px) {
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-step__title,
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-step__hint{
		display:none;
	}

	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions{
		/* Mirror generico mobile actions: sticky bottom stacked buttons */
		display:flex !important;
		position:sticky;
		bottom:0;
		left:0;
		right:0;
		margin-top:0;
		padding:8px 12px;
		background:rgba(255,255,255,0.96);
		border-top:1px solid rgba(2,6,23,0.10);
		backdrop-filter: blur(6px);
		flex-direction:column;
		align-items:stretch;
		gap:8px;
		z-index:3;
	}

	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button{
		width:100%;
		padding:8px 14px;
		font-size:14px;
		line-height:1.1;
		border-radius:16px;
	}

	/* Use same visual identity as generico buttons */
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button{
		border:0;
		border-radius:20px;
		padding:10px 18px;
		background:#112551;
		color:#ffffff;
		cursor:pointer;
	}
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button:hover{filter:brightness(1.06);}
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button.button-primary{background:#fd7800;}
}

/* Mobile: prevent layout overflow when steps have different heights
   Strategy: on small screens render only the active step in the flow and
   hide inactive steps (avoids the panel keeping the taller step height). */
@media (max-width: 720px) {
	.wpsa-modal .wpsa-step{
		/* keep transitions minimal on mobile to avoid jank */
		transition: none !important;
		opacity: 1 !important;
		transform: none !important;
		/* do not participate in flow when not active */
		display: none;
		position: relative;
		pointer-events: none;
	}

	.wpsa-modal .wpsa-step.is-active{
		display: block;
		pointer-events: auto;
		position: relative;
	}

	/* entering/exiting helper classes should not change layout on mobile */
	.wpsa-modal .wpsa-step.is-entering{
		display: block;
		opacity: 1 !important;
		transform: none !important;
		pointer-events: auto;
	}

	.wpsa-modal .wpsa-step.is-exiting{
		display: none;
		opacity: 0 !important;
		pointer-events: none;
	}

	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions{
		display: none !important;
	}

	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row,
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row.is-selected{
		background: transparent !important;
		border: 0 !important;
		outline: 0 !important;
		box-shadow: none !important;
	}

	.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-row,
	.wpsa-modal .wpsa-generic-side{
		background: transparent !important;
		border: 0 !important;
		outline: 0 !important;
		box-shadow: none !important;
	}
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row{
	display:flex;
	gap:18px;
	align-items:stretch;
	padding:16px;
	border-radius:12px;
	background:#f6f8fb;
	border:1px solid rgba(2,6,23,0.10);
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row.is-selected{
	outline:2px solid rgba(253,120,0,0.55);
	outline-offset:2px;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-col--badge{
	flex:0 0 320px;
	max-width:320px;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-col--content{
	flex:1;
	min-width:0;
	display:flex;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
	width:100%;
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.08);
	border-radius:12px;
	padding:18px;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	gap:14px;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__price{
	font-size:28px;
	font-weight:900;
	line-height:1;
	color:#fd7800;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc{
	color:#112551;
	font-size:14px;
	line-height:1.45;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc a{color:#fd7800;}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__actions{
	display:flex;
	flex-direction:column;
	gap:12px;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-add-gar3,
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-no-thanks{
	font-size:16px;
	padding:8px 16px;
	width:100%;
	justify-content:center;
}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-cart-icon{height:20px;width:20px;}

@media (max-width: 680px){
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row{flex-direction:column;}
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-col--badge{flex:0 0 auto;max-width:100%;}
}

/* Reduce the legacy badge dimensions when used as the left column */
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-voucher-body{max-width:none;margin:0;}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .card.wpsa-popup-external{min-width:0;width:100%;}

/* Make room for the hanging "hole" and keep it visible */
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-col--badge{overflow:visible;}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-voucher-body{overflow:visible;margin-top:34px;}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .top-hole{
	z-index:5;
	top:-34px;
	height:34px;
	left:50%;
	transform:translateX(-50%);
	width:44%;
	max-width:170px;
	padding:12px 32px 8px 32px;
}

/* Smaller images on the left badge to reduce crowding */
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .popup-top-title > img{height:70px;}
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .popup-svg{width:64px;}

.wpsa-modal .wpsa-warranty .top-hole{
	width:30%;
	height:40px;
	box-shadow:4px 5px 19px 5px #00000020;
	position:absolute;
	top:-40px;
	left:35%;
	border-top-left-radius:20px;
	border-top-right-radius:20px;
	padding:15px 50px 10px 50px;
	background:#112551;
	z-index:0;
}
.wpsa-modal .wpsa-warranty .top-hole .bottom{
	width:100%;
	height:100%;
	background-color:#fff;
	border-radius:10px;
	box-shadow:inset 4px 5px 4px #00000050;
}

.wpsa-modal .wpsa-warranty .card.wpsa-popup-external{
	background-color:#112551;
	padding:14px 4px 14px 4px;
	border-radius:5px;
	min-width:0;
	width:100%;
	box-shadow:4px 5px 19px 0px #00000030;
}

/* Cart item services selection box - improved UI */
.wpsa-cart-item-services-box{
	margin-top:10px;
	padding:12px;
	border-radius:12px;
	background:linear-gradient(180deg, #ffffff, #fbfdff);
	border:1px solid rgba(2,6,23,0.06);
	box-shadow:0 8px 20px rgba(2,6,23,0.04);
}
.wpsa-cart-item-services-box__title{
	font-weight:800;
	font-size:13px;
	margin-bottom:8px;
	color:#0b1a33;
}
.wpsa-cart-item-g3-cta{
	margin:0 0 12px;
	padding:14px 15px;
	border-radius:14px;
	background:linear-gradient(135deg, rgba(17,37,81,0.96) 0%, rgba(28,63,133,0.94) 100%);
	color:#fff;
	box-shadow:0 14px 28px rgba(17,37,81,0.16);
	border:1px solid rgba(255,255,255,0.12);
	overflow:hidden;
}
.wpsa-cart-item-g3-cta__head{
	display:block;
	margin-bottom:12px;
}
.wpsa-cart-item-g3-cta__eyebrow{
	display:inline-flex;
	align-items:center;
	padding:4px 9px;
	border-radius:999px;
	background:rgba(255,255,255,0.14);
	font-size:10px;
	font-weight:800;
	line-height:1;
	letter-spacing:0.05em;
	text-transform:uppercase;
}
.wpsa-cart-item-g3-cta__title{
	margin-top:8px;
	font-size:16px;
	font-weight:800;
	line-height:1.1;
}
.wpsa-cart-item-g3-cta__hint{
	margin-top:5px;
	font-size:12px;
	line-height:1.35;
	color:rgba(255,255,255,0.82);
}
.wpsa-cart-item-g3-cta__actions{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	gap:10px;
}
.wpsa-cart-item-g3-cta__button{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	grid-template-areas:
		"label price"
		"meta price";
	align-items:center;
	column-gap:12px;
	row-gap:4px;
	width:100%;
	padding:12px 14px;
	border:0;
	border-radius:12px;
	background:#ffffff;
	color:#112551;
	text-align:left;
	box-shadow:0 8px 20px rgba(2,6,23,0.12);
	transition:transform 140ms ease, box-shadow 160ms ease, background 160ms ease;
}
.wpsa-cart-item-g3-cta__button:hover{
	transform:translateY(-1px);
	box-shadow:0 12px 24px rgba(2,6,23,0.16);
}
.wpsa-cart-item-g3-cta__button.is-active{
	background:linear-gradient(180deg,#ff9b47,#fd7804);
	color:#ffffff;
	box-shadow:0 10px 30px rgba(255,122,0,0.18) inset, 0 6px 20px rgba(2,6,23,0.06);
}
.wpsa-cart-item-g3-cta__button.is-active .wpsa-cart-item-g3-cta__button-label,
.wpsa-cart-item-g3-cta__button.is-active .wpsa-cart-item-g3-cta__button-meta,
.wpsa-cart-item-g3-cta__button.is-active .wpsa-cart-item-g3-cta__button-price{
	color:#ffffff !important;
}
.wpsa-cart-item-g3-cta__button.is-active .wpsa-cart-item-g3-cta__button-price{
	background:rgba(255,255,255,0.16);
}
.wpsa-cart-item-g3-cta__button.is-loading{
	opacity:0.8;
	pointer-events:none;
}
.wpsa-cart-item-g3-cta__button-label{
	grid-area:label;
	font-size:13px;
	font-weight:800;
	line-height:1.15;
}
.wpsa-cart-item-g3-cta__button-meta{
	grid-area:meta;
	font-size:11px;
	line-height:1.2;
	color:#64748b;
}
.wpsa-cart-item-g3-cta__button-price{
	grid-area:price;
	align-self:center;
	font-size:13px;
	font-weight:900;
	color:#fd7800;
	white-space:nowrap;
	padding:6px 10px;
	border-radius:999px;
	background:rgba(253,120,0,0.10);
}
.wpsa-cart-item-services-box__list{
	display:grid;
	grid-template-columns:repeat(2, minmax(0,1fr));
	gap:8px;
}
.wpsa-cart-item-service{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:10px;
	padding:8px 10px;
	border-radius:8px;
	transition:background 140ms ease, transform 120ms ease, box-shadow 140ms ease;
	cursor:pointer;
}
.wpsa-cart-item-service:hover{
	background:rgba(17,37,81,0.04);
	transform:translateY(-1px);
}
.wpsa-cart-item-service__info{flex:1; display:flex; flex-direction:column;}
.wpsa-cart-item-service__label{font-weight:600; color:#0b1a33;}
.wpsa-cart-item-service__price{white-space:nowrap; font-weight:800; color:#fd7800; margin-top:6px;}

/* Button-like appearance for service rows */
.wpsa-cart-item-service{
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.06);
	padding:10px 12px;
	border-radius:10px;
}
.wpsa-cart-item-service:hover{ box-shadow:0 6px 18px rgba(2,6,23,0.06); }

/* Active state (checked) */
.wpsa-cart-item-service.is-active{
	background:linear-gradient(180deg,#ff9b47,#fd7804);
	color:#ffffff;
	border-color:rgba(253,120,0,0.95);
	box-shadow:0 10px 30px rgba(255,122,0,0.18) inset, 0 6px 20px rgba(2,6,23,0.06);
}
.wpsa-cart-item-service.is-active .wpsa-cart-item-service__label,
.wpsa-cart-item-service.is-active .wpsa-cart-item-service__price{
	color: #ffffff !important;
}
.wpsa-cart-item-service.is-active .wpsa-cart-item-service__price{opacity:0.95}

/* Hide the native checkbox visually but keep it accessible; label click still toggles */
.wpsa-cart-item-service-checkbox{opacity:0; position:relative; width:22px; height:22px;}
.wpsa-cart-item-service-checkbox[disabled]{opacity:0.35}

/* High-specificity overrides to ensure stacking even if theme forces inline styles */
.wpsa-cart-item-service .wpsa-cart-item-service__info,
.wpsa-cart-item-service__info{
	display:block !important;
	flex: none !important;
}
.wpsa-cart-item-service .wpsa-cart-item-service__label,
.wpsa-cart-item-service__label{
	display:block !important;
	margin:0 0 6px 0 !important;
}
.wpsa-cart-item-service .wpsa-cart-item-service__price,
.wpsa-cart-item-service__price{
	display:block !important;
	margin-top:0 !important;
}

/* Keep checkbox visually on the right, slightly larger and vertically centered */
.wpsa-cart-item-service-checkbox{
	margin-left:12px !important;
	width:22px !important;
	height:22px !important;
	min-width:22px !important;
}

@media (max-width:720px){
	.wpsa-cart-item-service{flex-direction:row;gap:12px;padding:10px 8px;}
	.wpsa-cart-item-service-checkbox{margin-left:8px !important;}
}

/* Stronger overrides for table-based cart layouts (child theme may force inline displays) */
.woocommerce-cart-form .wpsa-cart-item-services-box,
.shop_table.cart_table .wpsa-cart-item-services-box{
	display:block !important;
	width:100% !important;
	margin-top:8px !important;
	padding:6px 0 !important;
	background:transparent !important;
	border:0 !important;
	box-shadow:none !important;
}

.woocommerce-cart-form .wpsa-cart-item-g3-cta,
.shop_table.cart_table .wpsa-cart-item-g3-cta{
	margin:0 0 12px !important;
}
@media (max-width: 767px){
	.wpsa-cart-item-g3-cta{
		padding:12px !important;
	}
	.wpsa-cart-item-g3-cta__actions{
		grid-template-columns:1fr !important;
	}
	.wpsa-cart-item-g3-cta__button{
		grid-template-columns:minmax(0,1fr) !important;
		/* grid-template-areas:
			"label"
			"meta"
			"price" !important; */
	}
	.wpsa-cart-item-g3-cta__button-price{
		justify-self:start;
	}
}

.woocommerce-cart-form .wpsa-cart-item-services-box__list,
.shop_table.cart_table .wpsa-cart-item-services-box__list{
	display:block !important;
}

.woocommerce-cart-form .wpsa-cart-item-service,
.shop_table.cart_table .wpsa-cart-item-service{
	display:flex !important;
	flex-direction:row !important;
	justify-content:space-between !important;
	align-items:center !important;
	width:100% !important;
	padding:6px 0 !important;
	margin:0 !important;
}

.woocommerce-cart-form .wpsa-cart-item-service__info,
.shop_table.cart_table .wpsa-cart-item-service__info{
	display:block !important;
	flex:1 1 auto !important;
	padding-right:12px !important;
}

.woocommerce-cart-form .wpsa-cart-item-service__label,
.shop_table.cart_table .wpsa-cart-item-service__label{
	display:block !important;
	margin:0 0 4px 0 !important;
}

.woocommerce-cart-form .wpsa-cart-item-service__price,
.shop_table.cart_table .wpsa-cart-item-service__price{
	display:block !important;
	margin:0 !important;
	color:#fd7800 !important;
}

.woocommerce-cart-form .wpsa-cart-item-service-checkbox,
.shop_table.cart_table .wpsa-cart-item-service-checkbox{
	margin-left:12px !important;
	width:22px !important;
	height:22px !important;
	min-width:22px !important;
}

@media (max-width:720px){
	.woocommerce-cart-form .wpsa-cart-item-service{gap:10px;padding:8px 0;}
}

/* Very specific selectors matching the child theme cart table cell structure
   (targets the <td data-title="Name"> structure you provided) */
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-services-box,
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-services-box__list {
	display: block !important;
	width: 100% !important;
	margin-top: 8px !important;
	padding: 6px 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service {
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	width: 100% !important;
	padding: 6px 0 !important;
	margin: 0 !important;
	background: #fff !important;
	border: 1px solid rgba(2,6,23,0.06) !important;
	border-radius: 10px !important;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service__info {
	display: block !important;
	flex: 1 1 auto !important;
	padding-right: 12px !important;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service__label {
	display: block !important;
	margin: 0 0 4px 0 !important;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service__price {
    display: inline-block !important;
    margin: 0 !important;
    color: #fd7800 !important;
    border: 1px solid;
    border-radius: 15px;
    padding: 0 13px;
    background-color: #fff;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service-checkbox {
	opacity: 0 !important;
	position: relative !important;
	margin-left: 12px !important;
	width: 22px !important;
	height: 22px !important;
	min-width: 22px !important;
}
.shop_table.cart_table td[data-title="Name"] .wpsa-cart-item-service.is-active {
	background: linear-gradient(180deg,#ff9b47,#fd7804) !important;
	color: #fff !important;
	border-color: rgba(253,120,0,0.95) !important;
}

/* Custom checkbox styling */
.wpsa-cart-item-service-checkbox{
	-webkit-appearance:none;
	appearance:none;
	width:20px;
	height:20px;
	min-width:20px;
	border-radius:6px;
	border:1px solid rgba(2,6,23,0.12);
	background:#ffffff;
	box-shadow:inset 0 -1px 0 rgba(0,0,0,0.03);
	display:inline-block;
	vertical-align:middle;
	cursor:pointer;
	transition:all 160ms ease;
}
.wpsa-cart-item-service-checkbox:hover{ transform:translateY(-1px); }
.wpsa-cart-item-service-checkbox:checked{
	background:linear-gradient(180deg, #ff9b47, #fd7804);
	border-color:rgba(253,120,0,0.95);
	box-shadow:0 6px 18px rgba(253,120,0,0.12) inset;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23ffffff' d='M20.3 5.7a1 1 0 0 0-1.4-1.4L9 14.2 5.1 10.3A1 1 0 0 0 3.7 11.7l4 4a1 1 0 0 0 1.4 0l11.2-11.2z'/></svg>");
	background-repeat:no-repeat;
	background-position:center;
}
.wpsa-cart-item-service-checkbox:focus-visible{
	outline:2px solid rgba(37,99,235,0.25);
	outline-offset:3px;
}

@media (max-width:720px){
	.wpsa-cart-item-services-box__list{ grid-template-columns:1fr; }
}

/* Make `input.wpsa-order-service` and cart checkboxes share the same refined appearance */
input.wpsa-order-service,
.wpsa-cart-item-service-checkbox {
	-webkit-appearance: none;
	appearance: none;
	width:18px;
	height:18px;
	border-radius:6px;
	border:1px solid rgba(2,6,23,0.12);
	background:#fff;
	display:inline-block;
	vertical-align:middle;
	margin:0 8px 0 0;
	box-shadow:inset 0 -1px 0 rgba(0,0,0,0.03);
	transition:all 140ms ease;
}
input.wpsa-order-service:checked,
.wpsa-cart-item-service-checkbox:checked{
	background:linear-gradient(180deg,#ff9b47,#fd7804);
	border-color:rgba(253,120,0,0.95);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='%23ffffff' d='M20.3 5.7a1 1 0 0 0-1.4-1.4L9 14.2 5.1 10.3A1 1 0 0 0 3.7 11.7l4 4a1 1 0 0 0 1.4 0l11.2-11.2z'/></svg>");
	background-repeat:no-repeat;
	background-position:center;
}
input.wpsa-order-service:focus-visible,
.wpsa-cart-item-service-checkbox:focus-visible{
	outline:2px solid rgba(37,99,235,0.25);
	outline-offset:3px;
}

/* Ensure labels next to these inputs align nicely */
.wpsa-cart-item-service label,
.wpsa-cart-item-service{
	display:flex;align-items:center;gap:8px;
}

.wpsa-modal .wpsa-warranty .popup-top{
	position:relative;
	padding:18px 18px 14px 18px;
	background:
		radial-gradient(circle at top right, rgba(253,120,0,0.20), transparent 38%),
		linear-gradient(135deg, #ffffff 0%, #f6f9ff 52%, #eef4ff 100%);
	display:flex;
	flex-direction:column;
	justify-content:space-between;
	overflow:hidden;
	border-bottom:1px solid rgba(17,37,81,0.08);
}
.wpsa-modal .wpsa-warranty .popup-top::after{
	content:"";
	position:absolute;
	inset:auto auto -22px -22px;
	width:120px;
	height:120px;
	border-radius:50%;
	background:radial-gradient(circle, rgba(17,37,81,0.10) 0%, rgba(17,37,81,0) 72%);
	pointer-events:none;
}

.wpsa-modal .wpsa-warranty .popup-top-kicker{
	display:inline-flex;
	align-items:center;
	align-self:flex-start;
	margin-bottom:14px;
	padding:7px 12px;
	border-radius:999px;
	background:rgba(17,37,81,0.08);
	box-shadow:inset 0 0 0 1px rgba(17,37,81,0.08);
	color:#112551;
	font-size:10px;
	font-weight:800;
	letter-spacing:0.12em;
	line-height:1;
	text-transform:uppercase;
}

.wpsa-modal .wpsa-warranty .popup-top-title{
	display:grid;
	grid-template-columns:minmax(0,1fr) auto;
	gap:16px;
	align-items:center;
	position:relative;
	z-index:1;
}

.wpsa-modal .wpsa-warranty .popup-top-copy{
	display:flex;
	flex-direction:column;
	gap:6px;
	min-width:0;
}

.wpsa-modal .wpsa-warranty .popup-top-overline{
	color:rgba(17,37,81,0.86);
	font-size:13px;
	font-weight:800;
	letter-spacing:0.08em;
	line-height:1.1;
	text-transform:uppercase;
}

.wpsa-modal .wpsa-warranty .popup-top-copy strong{
	display:block;
	color:#112551;
	font-size:38px;
	font-weight:900;
	line-height:0.92;
	letter-spacing:-0.03em;
	text-wrap:balance;
}

.wpsa-modal .wpsa-warranty .popup-top-title-orange{
	display:inline-block;
	color:#fd7800;
	text-shadow:0 10px 24px rgba(253,120,0,0.18);
}

.wpsa-modal .wpsa-warranty .popup-top-copy small{
	display:block;
	max-width:240px;
	color:rgba(17,37,81,0.72);
	font-size:12px;
	font-weight:600;
	line-height:1.35;
}

.wpsa-modal .wpsa-warranty .popup-top-visual{
	display:flex;
	align-items:center;
	justify-content:center;
	width:120px;
	height:120px;
	border-radius:26px;
	background:linear-gradient(145deg, rgba(17,37,81,0.08), rgba(255,255,255,0.92));
	box-shadow:
		inset 0 0 0 1px rgba(255,255,255,0.8),
		0 16px 28px rgba(17,37,81,0.10);
}

.wpsa-modal .wpsa-warranty .popup-top-visual > img,
.wpsa-modal .wpsa-warranty .wpsa-warranty-hero{
	height:96px;
	width:auto;
	max-width:100%;
	object-fit:contain;
	filter:drop-shadow(0 12px 16px rgba(17,37,81,0.16));
}

.wpsa-modal .wpsa-warranty .popup-top-middle{display:flex;gap:12px;align-items:flex-start;margin-top:12px;}
.wpsa-modal .wpsa-warranty .popup-top-middle > div{width:50%;}

.wpsa-modal .wpsa-warranty .popup-price{
	text-align:center;
	color:#fd7800;
	font-size:50px;
	font-weight:800;
	line-height:1;
}
.wpsa-modal .wpsa-warranty .span-prezzo{display:flex;align-items:center;justify-content:center;}

.wpsa-modal .wpsa-warranty .popup-top-caption{
	color:#112551;
	font-size:10px;
	margin-top:8px;
}
.wpsa-modal .wpsa-warranty .popup-top-caption a{color:#fd7800;}

.wpsa-modal .wpsa-warranty .wpsa-add-gar3{
	color:white;
	background-color:#fd7800;
	border-radius:20px;
	font-size:21px;
	border:none;
	font-weight:400;
	width:auto !important;
	display:flex;
	justify-content:center;
	align-items:center;
	column-gap:5px;
	padding:7px 25px;
	cursor:pointer;
}
.wpsa-modal .wpsa-warranty .wpsa-add-gar3:hover{color:#112551;}
.wpsa-modal .wpsa-warranty .wpsa-cart-icon{display:block;height:30px;width:30px;}

.wpsa-modal .wpsa-warranty .button.dismiss.buttons{margin-top:7px;background:unset;border:0;padding:0;}
.wpsa-modal .wpsa-warranty .wpsa-no-thanks{
	color:white;
	background-color:#112551;
	border-radius:20px;
	font-size:21px;
	border:none;
	padding:7px 25px;
	font-weight:400;
	cursor:pointer;
}
.wpsa-modal .wpsa-warranty .wpsa-no-thanks:hover{filter:brightness(1.06);}

.wpsa-modal .wpsa-warranty .popup-bottom{width:100%;}
.wpsa-modal .wpsa-warranty .popup-bottom-icons,
.wpsa-modal .wpsa-warranty .popup-bottom-texts{display:flex;}
.wpsa-modal .wpsa-warranty .popup-bottom-icons > div,
.wpsa-modal .wpsa-warranty .popup-bottom-texts > div{width:33.3%;text-align:center;}
.wpsa-modal .wpsa-warranty .popup-svg{width:80px;}
.wpsa-modal .wpsa-warranty .popup-svg-caption{
	display:block;
	position:relative;
	bottom:12px;
	margin-top:10px;
	color:white;
	font-size:10px;
	line-height:1.1;
}
.wpsa-modal .wpsa-warranty .popup-bottom-divider{width:100%;height:0;border-top:1px solid #fff;}
.wpsa-modal .wpsa-warranty .popup-bottom-texts{padding-top:15px;font-size:8px;color:#fff;}
.wpsa-modal .wpsa-warranty .popup-bottom-texts > div{padding:0 10px;}

/* Hide internal checkbox used for submission in warranty step */
.wpsa-modal .wpsa-warranty .wpsa-service-input{position:absolute; opacity:0; pointer-events:none; width:1px; height:1px;}

@media screen and (max-width : 650px){
	.wpsa-modal .wpsa-warranty .card.wpsa-popup-external{min-width:unset;width:100%;}
	.wpsa-modal .wpsa-warranty .popup-top{justify-content:space-between;padding:16px 14px 10px 14px;}
	.wpsa-modal .wpsa-warranty .popup-top-kicker{margin-bottom:12px;font-size:9px;letter-spacing:0.1em;}
	.wpsa-modal .wpsa-warranty .popup-top-title{grid-template-columns:1fr;gap:12px;}
	.wpsa-modal .wpsa-warranty .popup-top-copy strong{font-size:32px;}
	.wpsa-modal .wpsa-warranty .popup-top-copy small{max-width:none;font-size:11px;}
	.wpsa-modal .wpsa-warranty .popup-top-visual{width:100%;height:92px;border-radius:20px;}
	.wpsa-modal .wpsa-warranty .popup-top-visual > img,
	.wpsa-modal .wpsa-warranty .wpsa-warranty-hero{height:72px;}
	.wpsa-modal .wpsa-warranty .wpsa-add-gar3,
	.wpsa-modal .wpsa-warranty .wpsa-no-thanks{font-size:18px;}
	.wpsa-modal .wpsa-warranty .popup-top-middle{flex-direction:column-reverse;row-gap:15px;}
	.wpsa-modal .wpsa-warranty .popup-top-middle > div{width:100%;}
	.wpsa-modal .wpsa-warranty .popup-price{text-align:start;font-size:30px;position:relative;bottom:20px;}
	.wpsa-modal .wpsa-warranty .span-prezzo{justify-content:start;}
	.wpsa-modal .wpsa-warranty .popup-top-caption{font-size:9px;}
	.wpsa-modal .wpsa-warranty .popup-svg{width:60px;}
	.wpsa-modal .wpsa-warranty .top-hole{padding:15px 40px 10px 40px;}
}

/* Make default buttons look decent inside modal, too */
.wpsa-modal .button{border-radius:12px; padding:10px 12px;}

/* Premium refresh for product modal shell and content areas.
   The warranty badge column intentionally stays untouched. */
.wpsa-modal{
	--wpsa-modal-ink:#11264f;
	--wpsa-modal-ink-soft:#60708d;
	--wpsa-modal-line:rgba(16,37,80,0.10);
	--wpsa-modal-line-strong:rgba(16,37,80,0.16);
	--wpsa-modal-surface:#ffffff;
	--wpsa-modal-surface-soft:#f4f7fc;
	--wpsa-modal-accent:#112551;
	--wpsa-modal-accent-strong:#11264f;
	--wpsa-modal-highlight:#d18727;
	--wpsa-modal-highlight-soft:#fff1dc;
	--wpsa-modal-shadow:0 42px 110px rgba(5,18,40,0.30);
	color:var(--wpsa-modal-ink);
	transition:opacity 360ms ease, visibility 360ms ease;
}

.wpsa-modal__overlay{
	background:
		radial-gradient(circle at top, rgba(255,255,255,0.14), transparent 30%),
		linear-gradient(180deg, rgba(6,18,40,0.58) 0%, rgba(6,18,40,0.78) 100%);
	backdrop-filter:blur(18px) saturate(135%);
	-webkit-backdrop-filter:blur(18px) saturate(135%);
	transition:opacity 360ms ease;
}

.wpsa-modal__panel{
	transform:translate(-50%, calc(-50% + 26px)) scale(0.965);
	transform-origin:center top;
	width:min(1024px, calc(100% - 32px));
	max-height:calc(100% - 32px);
	border-radius:30px;
	background:
		linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,250,253,0.98) 100%),
		var(--wpsa-modal-surface);
	border:1px solid rgba(255,255,255,0.72);
	box-shadow:var(--wpsa-modal-shadow);
	color:var(--wpsa-modal-ink);
	transition:transform 420ms cubic-bezier(.16,1,.3,1), opacity 320ms ease;
	will-change:transform, opacity;
}

.wpsa-modal__panel::before,
.wpsa-modal__panel::after{
	content:"";
	position:absolute;
	pointer-events:none;
	border-radius:50%;
	filter:blur(2px);
	opacity:0.95;
	z-index:0;
}

.wpsa-modal__panel::before{
	width:220px;
	height:220px;
	top:-110px;
	right:-70px;
	background:radial-gradient(circle, rgba(17,37,81,0.12) 0%, rgba(17,37,81,0) 72%);
}

.wpsa-modal__panel::after{
	width:180px;
	height:180px;
	bottom:-92px;
	left:-54px;
	background:radial-gradient(circle, rgba(209,135,39,0.14) 0%, rgba(209,135,39,0) 72%);
}

.wpsa-modal.is-open .wpsa-modal__panel{transform:translate(-50%,-50%) scale(1);}

.wpsa-modal__head,
.wpsa-modal__body{
	position:relative;
	z-index:1;
}

.wpsa-modal__head{
	gap:18px;
	padding:24px 28px 20px;
	border-bottom:1px solid var(--wpsa-modal-line);
	background:
		linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(247,250,255,0.92) 100%);
	backdrop-filter:blur(12px);
	-webkit-backdrop-filter:blur(12px);
}

.wpsa-modal__head::before{
	content:"Servizi per il tuo acquisto";
	position:absolute;
	left:28px;
	top:10px;
	padding:6px 11px;
	border-radius:999px;
	background:rgba(17,37,81,0.06);
	color:rgba(17,37,81,0.82);
	font-size:10px;
	font-weight:800;
	letter-spacing:0.12em;
	line-height:1;
	text-transform:uppercase;
}

.wpsa-modal__title{
	margin-top:18px;
	max-width:18ch;
	font-size:29px;
	font-weight:900;
	line-height:0.96;
	letter-spacing:-0.04em;
	text-wrap:balance;
}

.wpsa-modal__close{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:44px;
	padding:0 16px;
	border-radius:999px;
	border:1px solid rgba(17,37,81,0.10);
	background:rgba(255,255,255,0.86);
	box-shadow:0 10px 24px rgba(16,37,80,0.08);
	color:var(--wpsa-modal-ink);
	font-size:12px;
	font-weight:800;
	letter-spacing:0.08em;
	text-transform:uppercase;
	transition:transform 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.wpsa-modal__close:hover{
	transform:translateY(-1px);
	background:#ffffff;
	border-color:rgba(17,37,81,0.18);
	box-shadow:0 14px 26px rgba(16,37,80,0.12);
}

.wpsa-modal__body{
	padding:24px 28px 28px;
	background:linear-gradient(180deg, rgba(250,252,255,0.96) 0%, rgba(245,248,252,0.96) 100%);
}

.wpsa-step__title{
	margin:0 0 6px;
	font-size:31px;
	font-weight:900;
	line-height:0.96;
	letter-spacing:-0.04em;
	text-wrap:balance;
}

.wpsa-step__hint{
	margin:0 0 18px;
	font-size:15px;
	line-height:1.6;
	color:var(--wpsa-modal-ink-soft);
	max-width:58ch;
}

.wpsa-list{
	padding:18px;
	border-radius:26px;
	background:
		linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(246,249,253,0.92) 100%),
		var(--wpsa-modal-surface);
	border:1px solid var(--wpsa-modal-line);
	box-shadow:inset 0 1px 0 rgba(255,255,255,0.85);
}

.wpsa-empty{
	padding:18px;
	border-radius:18px;
	background:rgba(17,37,81,0.04);
	color:var(--wpsa-modal-ink-soft);
	font-weight:600;
}

.wpsa-actions{
	justify-content:space-between;
	align-items:center;
	gap:14px;
	margin-top:18px;
	padding-top:4px;
}

.wpsa-modal .button{
	min-height:52px;
	padding:0 18px;
	border-radius:18px;
	border:1px solid var(--wpsa-modal-line-strong);
	background:#ffffff;
	box-shadow:0 14px 28px rgba(16,37,80,0.06);
	color:var(--wpsa-modal-ink);
	font-size:13px;
	font-weight:800;
	letter-spacing:0.02em;
	transition:transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease;
	cursor:pointer;
}

.wpsa-modal .button:hover{
	transform:translateY(-1px);
	border-color:rgba(17,37,81,0.18);
	box-shadow:0 18px 32px rgba(16,37,80,0.10);
	background:#ffffff;
}

.wpsa-modal .button.button-primary{
	border-color:rgba(209,135,39,0.22);
	background:linear-gradient(135deg, #ef9828 0%, #d97810 100%);
	box-shadow:0 18px 36px rgba(209,135,39,0.22);
	color:#ffffff;
}

.wpsa-modal .button.button-primary:hover{
	background:linear-gradient(135deg, #f2a33d 0%, #df821c 100%);
	border-color:rgba(209,135,39,0.30);
	color:#ffffff;
}

.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-row,
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row{
	gap:22px;
	padding:22px;
	border-radius:28px;
	background:linear-gradient(145deg, #eef4ff 0%, #f9fbff 52%, #f4f7fc 100%);
	border:1px solid rgba(17,37,81,0.08);
	box-shadow:inset 0 1px 0 rgba(255,255,255,0.78), 0 20px 34px rgba(16,37,80,0.05);
}

.wpsa-modal .wpsa-generic-badge{
	position:relative;
	overflow:hidden;
	border-radius:24px;
	padding:24px 22px;
	background:
		radial-gradient(circle at top right, rgba(255,255,255,0.18), transparent 30%),
		linear-gradient(150deg, #102551 0%, #17356d 100%);
	box-shadow:0 24px 40px rgba(16,37,80,0.18);
}

.wpsa-modal .wpsa-generic-badge::after{
	content:"";
	position:absolute;
	inset:auto -34px -42px auto;
	width:128px;
	height:128px;
	border-radius:50%;
	background:rgba(255,255,255,0.08);
	pointer-events:none;
}

.wpsa-modal .wpsa-generic-badge__title{
	position:relative;
	z-index:1;
	font-size:40px;
	line-height:0.9;
	letter-spacing:-0.05em;
	text-wrap:balance;
}

.wpsa-modal .wpsa-generic-badge__accent{color:#ffd399;}

.wpsa-modal .wpsa-generic-badge__desc{
	position:relative;
	z-index:1;
	margin-top:18px;
	max-width:25ch;
	font-size:13px;
	line-height:1.6;
	color:rgba(255,255,255,0.84);
}

.wpsa-modal .wpsa-generic-side,
.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
	border-radius:24px;
	padding:24px;
	border:1px solid rgba(17,37,81,0.08);
	background:
		linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(248,250,253,0.98) 100%),
		#ffffff;
	box-shadow:0 20px 40px rgba(16,37,80,0.08);
}

.wpsa-modal .wpsa-generic-side__title{
	font-size:24px;
	line-height:1;
	letter-spacing:-0.03em;
	color:var(--wpsa-modal-ink);
}

.wpsa-modal .wpsa-generic-side__hint{
	font-size:14px;
	line-height:1.55;
	color:var(--wpsa-modal-ink-soft);
	margin-top:2px;
	max-width:38ch;
}

.wpsa-modal .wpsa-checklist.wpsa-checklist--cards{gap:14px;}

.wpsa-modal .wpsa-generic-card > input[type="checkbox"]{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	top:auto;
	right:auto;
	opacity:0;
	margin:0;
	cursor:pointer;
	z-index:2;
}

.wpsa-modal .wpsa-generic-card__body{
	min-height:116px;
	padding:30px 18px 18px 18px;
	border-radius:22px;
	border:1px solid rgba(17,37,81,0.10);
	background:
		linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(250,252,255,0.98) 100%),
		#ffffff;
	box-shadow:0 12px 28px rgba(16,37,80,0.06);
	transition:transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease;
	position:relative;
	overflow:visible;
}

.wpsa-modal .wpsa-generic-card__body::before{
	content:none;
	display:none;
}

.wpsa-modal .wpsa-generic-card__body::after{
	content:"Aggiungi";
	position:absolute;
	top:16px;
	right:14px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:26px;
	padding:0 9px;
	border-radius:999px;
	background:rgba(17,37,81,0.06);
	box-shadow:none;
	color:rgba(17,37,81,0.78);
	font-size:9px;
	font-weight:800;
	letter-spacing:0.10em;
	line-height:1;
	text-transform:uppercase;
	opacity:1;
	transform:translateY(0) scale(1);
	transition:opacity 180ms ease, transform 180ms ease, background 180ms ease, color 180ms ease;
	pointer-events:none;
}

.wpsa-modal .wpsa-generic-card:hover .wpsa-generic-card__body{
	transform:translateY(-2px);
	border-color:rgba(17,37,81,0.16);
	box-shadow:0 18px 34px rgba(16,37,80,0.09);
}

.wpsa-modal .wpsa-generic-card__row{
	display:block;
	padding-right:82px;
}

.wpsa-modal .wpsa-generic-card__title{
	font-size:17px;
	font-weight:800;
	line-height:1.3;
	color:var(--wpsa-modal-ink);
	text-wrap:balance;
}

.wpsa-modal .wpsa-generic-card__price{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	position:absolute;
	right:18px;
	bottom:18px;
	min-height:36px;
	padding:0 12px;
	border-radius:12px;
	background:rgba(239,152,40,0.12);
	color:#a45a08;
	font-size:14px;
	font-weight:900;
	line-height:1;
	white-space:nowrap;
	text-shadow:none;
}

.wpsa-modal .wpsa-generic-card__scope{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	position:absolute;
	top:0;
	left:18px;
	z-index:1;
	padding:5px 10px;
	border-radius:999px;
	background:#112551;
	box-shadow:0 10px 22px rgba(16,37,80,0.18);
	color:#ffffff;
	font-size:9px;
	font-weight:800;
	letter-spacing:0.08em;
	line-height:1;
	text-transform:uppercase;
	transform:translateY(-50%);
}

.wpsa-modal .wpsa-generic-card__scope-desc{
	display:block;
	margin-top:8px;
	max-width:34ch;
	font-size:13px;
	line-height:1.55;
	color:var(--wpsa-modal-ink-soft);
}

.wpsa-modal .wpsa-generic-card > input[type="checkbox"]:checked + .wpsa-generic-card__body{
	border-color:rgba(209,135,39,0.34);
	background:linear-gradient(180deg, rgba(255,247,236,0.94) 0%, rgba(255,252,248,0.98) 100%);
	box-shadow:0 20px 38px rgba(209,135,39,0.12);
}

.wpsa-modal .wpsa-generic-card > input[type="checkbox"]:checked + .wpsa-generic-card__body::after{
	content:"Selezionato";
	background:#112551;
	color:#ffffff;
	opacity:1;
	transform:translateY(0) scale(1);
}

.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button{
	background:rgba(255,255,255,0.94);
	color:var(--wpsa-modal-ink);
	border:1px solid var(--wpsa-modal-line-strong);
	box-shadow:0 14px 28px rgba(16,37,80,0.06);
}

.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button.button-primary{
	background:linear-gradient(135deg, #ef9828 0%, #d97810 100%);
	border-color:rgba(209,135,39,0.22);
	color:#ffffff;
	box-shadow:0 18px 36px rgba(209,135,39,0.22);
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row.is-selected{
	outline:0;
	border-color:rgba(209,135,39,0.26);
	box-shadow:inset 0 1px 0 rgba(255,255,255,0.8), 0 0 0 3px rgba(209,135,39,0.10), 0 24px 42px rgba(16,37,80,0.08);
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
	position:relative;
	align-items:flex-start;
	padding-top:52px;
	gap:18px;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side::before{
	content:"Protezione estesa";
	position:absolute;
	top:20px;
	left:24px;
	padding:6px 12px;
	border-radius:999px;
	background:var(--wpsa-modal-highlight-soft);
	color:#88520d;
	font-size:10px;
	font-weight:800;
	letter-spacing:0.10em;
	line-height:1;
	text-transform:uppercase;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__price{
	font-size:44px;
	line-height:0.92;
	letter-spacing:-0.05em;
	color:var(--wpsa-modal-accent);
	text-shadow:none;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc{
	font-size:15px;
	line-height:1.7;
	color:var(--wpsa-modal-ink-soft);
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc strong{
	color:var(--wpsa-modal-ink);
	font-weight:800;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc a{
	color:#b96608;
	font-weight:800;
	text-decoration:none;
}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__desc a:hover{text-decoration:underline;}

.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__actions{
	width:100%;
	gap:14px;
	margin-top:auto;
}

.wpsa-modal .wpsa-warranty .wpsa-add-gar3,
.wpsa-modal .wpsa-warranty .wpsa-no-thanks{
	min-height:54px;
	padding:0 20px;
	border-radius:18px;
	font-size:14px;
	font-weight:800;
	letter-spacing:0.03em;
	text-transform:uppercase;
	transition:transform 180ms ease, box-shadow 180ms ease, background 180ms ease, color 180ms ease, border-color 180ms ease;
	width:100% !important;
	justify-content:center;
	column-gap:8px;
}

.wpsa-modal .wpsa-warranty .wpsa-add-gar3{
	background:linear-gradient(135deg, #ef9828 0%, #d97810 100%);
	border:1px solid rgba(209,135,39,0.22);
	box-shadow:0 18px 34px rgba(209,135,39,0.22);
	color:#ffffff;
}

.wpsa-modal .wpsa-warranty .wpsa-add-gar3:hover{
	transform:translateY(-1px);
	background:linear-gradient(135deg, #f2a33d 0%, #df821c 100%);
	color:#ffffff;
}

.wpsa-modal .wpsa-warranty .wpsa-no-thanks{
	background:rgba(17,37,81,0.06);
	border:1px solid rgba(17,37,81,0.10);
	box-shadow:none;
	color:var(--wpsa-modal-accent);
}

.wpsa-modal .wpsa-warranty .wpsa-no-thanks:hover{
	transform:translateY(-1px);
	background:rgba(17,37,81,0.10);
	filter:none;
}

.wpsa-modal .wpsa-warranty .wpsa-cart-icon{
	height:20px;
	width:20px;
}

@media (max-width: 720px){
	.wpsa-modal__panel{
		width:min(100%, calc(100% - 14px));
		max-height:calc(100% - 14px);
		border-radius:24px;
	}

	.wpsa-modal__head{
		padding:18px 18px 16px;
	}

	.wpsa-modal__head::before{
		left:18px;
		top:10px;
	}

	.wpsa-modal__title{
		margin-top:20px;
		font-size:23px;
		max-width:14ch;
	}

	.wpsa-modal__close{
		min-height:40px;
		padding:0 12px;
		font-size:11px;
	}

	.wpsa-modal__body{
		padding:18px;
	}

	.wpsa-list{
		padding:14px;
		border-radius:20px;
	}

	.wpsa-modal .wpsa-generic.wpsa-generic--two-col .wpsa-generic-row,
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-row{
		gap:14px;
		padding:14px;
		border-radius:22px;
	}

	.wpsa-modal .wpsa-generic-badge,
	.wpsa-modal .wpsa-generic-side,
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
		border-radius:20px;
	}

	.wpsa-modal .wpsa-generic-badge{
		padding:18px;
	}

	.wpsa-modal .wpsa-generic-badge__title{
		font-size:32px;
	}

	.wpsa-modal .wpsa-generic-side,
	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
		padding:18px;
	}

	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side{
		padding-top:48px;
	}

	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side::before{
		left:18px;
	}

	.wpsa-modal .wpsa-warranty.wpsa-warranty--two-col .wpsa-warranty-side__price{
		font-size:34px;
	}

	.wpsa-modal .wpsa-generic-card__body{
		min-height:0;
		padding:28px 16px 56px 16px;
		border-radius:18px;
	}

	.wpsa-modal .wpsa-generic-card__row{
		padding-right:72px;
	}

	.wpsa-modal .wpsa-generic-card__title{
		font-size:16px;
	}

	.wpsa-modal .wpsa-generic-card__price{
		right:16px;
		bottom:16px;
		min-height:32px;
		padding:0 10px;
		font-size:13px;
	}

	.wpsa-modal .wpsa-generic-card__scope{
		left:16px;
		padding:5px 9px;
		font-size:8px;
	}

	.wpsa-modal .wpsa-generic-card__scope-desc{
		margin-top:10px;
		font-size:12px;
	}

	.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions,
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions{
		padding:10px 12px 12px;
		background:rgba(255,255,255,0.94);
		backdrop-filter:blur(18px);
		-webkit-backdrop-filter:blur(18px);
		border-top:1px solid var(--wpsa-modal-line);
	}

	.wpsa-modal .wpsa-step[data-step-type="generico"] .wpsa-actions .button,
	.wpsa-modal .wpsa-step[data-step-type="garanzia3"] .wpsa-actions .button{
		min-height:48px;
		border-radius:16px;
		font-size:13px;
	}
	}

@media (prefers-reduced-motion: reduce){
	.wpsa-modal,
	.wpsa-modal__overlay,
	.wpsa-modal__panel,
	.wpsa-modal .button,
	.wpsa-modal .wpsa-generic-card__body,
	.wpsa-modal .wpsa-warranty .wpsa-add-gar3,
	.wpsa-modal .wpsa-warranty .wpsa-no-thanks{
		transition:none !important;
	}

	.wpsa-modal__panel,
	.wpsa-modal.is-open .wpsa-modal__panel{
		transform:translate(-50%,-50%) scale(1) !important;
	}
}

/* Popover for per-item services badge */
.wpsa-services-popover{
	display:block;
	position:absolute;
	z-index:9999999;
	background:#ffffff;
	border:1px solid rgba(2,6,23,0.10);
	border-radius:10px;
	box-shadow:0 12px 30px rgba(2,6,23,0.18);
	padding:8px 10px;
	min-width:180px;
	max-width:320px;
	font-size:13px;
	color:#0b1a33;
	display:none;
}
.wpsa-services-popover.is-visible{display:block;}
.wpsa-services-popover__list{display:block;}
.wpsa-services-popover__row{display:flex;justify-content:space-between;gap:8px;padding:6px 6px;border-bottom:1px solid rgba(2,6,23,0.04);}
.wpsa-services-popover__row:last-child{border-bottom:0;padding-bottom:4px;}
.wpsa-services-popover__row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wpsa-services-popover__row .price{flex:0 0 auto;margin-left:8px;font-weight:700;color:#112551;white-space:nowrap;}

@media (max-width:480px){
	.wpsa-services-popover{min-width:140px;max-width:260px;font-size:12px;padding:6px 8px;}
}

/* Per-row loading overlay used when removing a per-item service */
.wpsa-loading{position:relative;opacity:0.9}
.wpsa-loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,0.7);display:flex;align-items:center;justify-content:center;border-radius:6px;}
.wpsa-loading-spinner{width:28px;height:28px;border-radius:50%;border:3px solid rgba(0,0,0,0.08);border-top-color:#112551;animation:wpsa-spin 1s linear infinite}
@keyframes wpsa-spin{to{transform:rotate(360deg)}}
