.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__price{font-weight:700;}
.wpsa-checkout-service__type{opacity:0.75;}

/* 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);}

/* 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__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-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;}

@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:#ff7a00; border-color:#ff7a00; 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,
	.wpsa-modal .wpsa-step.is-exiting{
		display: block;
		opacity: 1 !important;
		transform: none !important;
		pointer-events: auto;
	}
}
.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;
	
/* 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-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,#ff7a00);
	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-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: block !important;
	margin: 0 !important;
	color: #fd7800 !important;
}
.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,#ff7a00) !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, #ff7a00);
	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,#ff7a00);
	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;
}
	padding:14px 4px 14px 4px;
	border-radius:5px;
	min-width:0;
	width:100%;
	box-shadow:4px 5px 19px 0px #00000030;
}

.wpsa-modal .wpsa-warranty .popup-top{
	padding:18px 16px 10px 16px;
	background-color:#fff;
	display:flex;
	flex-direction:column;
	justify-content:space-between;
}

.wpsa-modal .wpsa-warranty .popup-top-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.wpsa-modal .wpsa-warranty .popup-top-title > span{
	color:#112551;
	font-size:30px;
	font-weight:400;
	line-height:0.8;
}
.wpsa-modal .wpsa-warranty .popup-top-title-orange{color:#fd7800;}
.wpsa-modal .wpsa-warranty .popup-top-title > img{height:85px;}

.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:15px 15px 5px 15px;}
	.wpsa-modal .wpsa-warranty .popup-top-title > span{font-size:32px;}
	.wpsa-modal .wpsa-warranty .popup-top-title > img{height:80px;}
	.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;}

/* 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)}}
