/*
 * PriMa Care - Carrello laterale, avviso di aggiunta e animazioni.
 * Misure e colori da design/claude-design/Animazioni Carrello.dc.html.
 * Fuori dai commenti solo ASCII: il CSS ridotto di WP Rocket altera gli altri caratteri in "content".
 */

html.pc-car-blocca {
	overflow: hidden;
}

/* Il mini-carrello di Elementor lascia il posto al pannello. */
.elementor-menu-cart__container {
	display: none !important;
}

.pc-car,
.pc-car *,
.pc-toast,
.pc-toast * {
	box-sizing: border-box;
}

.pc-car {
	position: fixed;
	inset: 0;
	z-index: 100000;
	font-family: "Inter", system-ui, sans-serif;
	color: #1D1B18;
	-webkit-font-smoothing: antialiased;
}

.pc-car[hidden],
.pc-car [hidden],
.pc-toast[hidden] {
	display: none !important;
}

.pc-car__velo {
	position: absolute;
	inset: 0;
	background: rgba(29, 27, 24, .38);
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

.pc-car__pannello {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: 440px;
	max-width: 100%;
	background: #fff;
	border-radius: 28px 0 0 28px;
	box-shadow: -24px 0 48px -24px rgba(29, 27, 24, .35);
	outline: 0;
}

.pc-car__corpo {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
}

.pc-car button {
	margin: 0;
	font-family: inherit;
	color: inherit;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

.pc-car button:focus-visible,
.pc-car a:focus-visible,
.pc-toast button:focus-visible {
	outline: 2px solid #1D1B18;
	outline-offset: 2px;
}

.pc-car.is-carico .pc-car__lista,
.pc-car.is-carico .pc-car__giu {
	pointer-events: none;
}

/* Testa */
.pc-car__su {
	padding: 22px 24px 18px;
}

.pc-car__maniglia {
	display: none;
}

.pc-car__su-r {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.pc-car .pc-car__titolo {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 0;
	font-family: inherit;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	color: #1D1B18;
}

.pc-car__titolo span {
	font-size: 15px;
	font-weight: 500;
	color: #57514A;
}

.pc-car .pc-car__x {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #F5F0E8;
	font-size: 20px;
	line-height: 1;
	color: #1D1B18;
}

.pc-car .pc-car__x:hover {
	background: #EDE6DA;
	color: #1D1B18;
}

/* Spedizione gratuita */
.pc-car__sped {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 24px;
	padding: 14px 16px;
	border-radius: 16px;
	background: #F5F0E8;
	font-size: 14px;
	line-height: 1.4;
}

.pc-car__sped b,
.pc-car__sped strong {
	font-weight: 600;
}

.pc-car__barra {
	display: block;
	height: 6px;
	border-radius: 999px;
	background: #E1D9CC;
	overflow: hidden;
}

.pc-car__barra i {
	display: block;
	height: 100%;
	border-radius: 999px;
	background: #1D1B18;
	transition: width .6s cubic-bezier(.2, .8, .2, 1);
}

/* Righe */
.pc-car__lista {
	flex: 1;
	min-height: 0;
	padding: 8px 24px;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.pc-car .pc-car__righe {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pc-car__riga {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 14px;
	margin: 0;
	padding: 16px 0;
	border-bottom: 1px solid #EDE6DA;
	overflow: hidden;
}

.pc-car__foto {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 84px;
	height: 84px;
	border-radius: 16px;
	background: #F5F0E8;
	overflow: hidden;
}

/* Cerchio colorato dietro al PNG, senza fusione. */
.pc-car__foto::before {
	content: "";
	position: absolute;
	width: 72%;
	aspect-ratio: 1 / 1;
	border-radius: 50%;
	background: var(--pc-tinta, transparent);
	opacity: .55;
}

.pc-car__foto img,
.pc-toast__foto img {
	position: relative;
	width: auto;
	height: auto;
	max-width: 68%;
	max-height: 80%;
	object-fit: contain;
}

.pc-car__dati {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.pc-car__testa {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}

.pc-car__nome {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.25;
}

.pc-car .pc-car__nome a {
	color: #1D1B18;
	text-decoration: none;
}

.pc-car .pc-car__nome a:hover {
	color: #6B5A3A;
}

.pc-car__prezzo {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 1px;
}

.pc-car__prezzo s,
.pc-car__sugg s {
	font-size: 13px;
	color: #57514A;
}

.pc-car__linea {
	font-size: 16px;
	font-weight: 600;
	white-space: nowrap;
}

.pc-car__tipo {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 13px;
	color: #57514A;
}

.pc-car__sconto {
	display: flex;
	align-items: center;
	height: 22px;
	padding: 0 8px;
	border-radius: 999px;
	background: #F6E7CC;
	color: #6E4712;
	font-size: 12px;
	font-weight: 700;
}

.pc-car__azioni {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 6px;
}

.pc-car__qta {
	display: flex;
	align-items: center;
	height: 40px;
	border: 1px solid #D8D0C3;
	border-radius: 999px;
}

.pc-car .pc-car__b {
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: none;
	font-size: 17px;
	line-height: 1;
	color: #1D1B18;
}

.pc-car .pc-car__b:hover {
	background: #F5F0E8;
	color: #1D1B18;
}

.pc-car .pc-car__b[disabled] {
	opacity: .35;
	cursor: default;
}

.pc-car__n {
	display: inline-block;
	min-width: 18px;
	font-size: 15px;
	font-weight: 600;
	text-align: center;
}

.pc-car .pc-car__via {
	height: 40px;
	padding: 0 4px;
	border: 0;
	background: none;
	font-size: 14px;
	color: #57514A;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pc-car .pc-car__via:hover {
	background: none;
	color: #1D1B18;
}

/* Suggerimento */
.pc-car__sugg {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 20px;
}

.pc-car__occhiello {
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #57514A;
}

.pc-car__sugg-riga {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: 12px;
	padding: 10px;
	border: 1px solid #EDE6DA;
	border-radius: 18px;
}

.pc-car__sugg .pc-car__foto {
	width: 56px;
	height: 56px;
	border-radius: 12px;
}

.pc-car__sugg-dati {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pc-car__sugg-dati strong {
	font-size: 15px;
	font-weight: 600;
}

.pc-car__sugg-m,
.pc-car__sugg-i {
	display: none;
}

.pc-car__sugg-prezzo {
	font-size: 13px;
	color: #57514A;
}

.pc-car__sugg-prezzo b {
	font-weight: 600;
	color: #1D1B18;
}

.pc-car .pc-car__sugg-b {
	height: 40px;
	min-width: 112px;
	padding: 0 14px;
	border: 1px solid #1D1B18;
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	color: #1D1B18;
	transition: background-color .2s, color .2s;
}

.pc-car .pc-car__sugg-b.is-aggiunto {
	background: #1D1B18;
	color: #fff;
}

/* Vuoto */
.pc-car__vuoto {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
	padding: 64px 12px;
	text-align: center;
}

.pc-car__vuoto-i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 999px;
	background: #F5F0E8;
}

.pc-car__vuoto strong {
	font-size: 18px;
	font-weight: 600;
}

.pc-car__vuoto > span:not(.pc-car__vuoto-i) {
	font-size: 15px;
	color: #57514A;
}

.pc-car .pc-car__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 56px;
	padding: 0 24px;
	border-radius: 999px;
	background: #1D1B18;
	font-size: 17px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
}

.pc-car .pc-car__cta:hover {
	background: #3A352F;
	color: #fff;
}

.pc-car__vuoto .pc-car__cta {
	height: 48px;
	margin-top: 6px;
	font-size: 15px;
}

.pc-car__cta-tot {
	margin-left: .3em;
}

/* Piede */
.pc-car__giu {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 18px 24px 22px;
	border-top: 1px solid #E1D9CC;
	background: #fff;
}

.pc-car__tot {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	font-size: 16px;
}

.pc-car__tot small {
	display: none;
	font-size: 13px;
	color: #57514A;
}

.pc-car__sub {
	display: inline-block;
	font-size: 22px;
	font-weight: 700;
}

.pc-car__risp {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-top: -6px;
	font-size: 15px;
	font-weight: 600;
	color: #6E4712;
}

.pc-car__nota {
	margin-top: -6px;
	font-size: 13px;
	color: #57514A;
}

.pc-car .pc-car__completo {
	align-self: center;
	font-size: 14px;
	font-weight: 600;
	color: #1D1B18;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pc-car__errore {
	margin: 0;
	padding: 10px 24px 14px;
	font-size: 14px;
	color: #8A2B1D;
}

/* ---------- Mobile: sheet dal basso ---------- */
@media (max-width: 767px) {
	.pc-car__velo {
		background: rgba(29, 27, 24, .42);
		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	.pc-car__pannello {
		top: auto;
		left: 0;
		width: auto;
		max-height: 88%;
		border-radius: 28px 28px 0 0;
		box-shadow: 0 -20px 40px -20px rgba(29, 27, 24, .4);
	}

	.pc-car__su {
		display: flex;
		flex-direction: column;
		gap: 10px;
		padding: 10px 20px 12px;
		cursor: grab;
		touch-action: none;
	}

	.pc-car__maniglia {
		display: block;
		align-self: center;
		width: 44px;
		height: 5px;
		border-radius: 999px;
		background: #D8D0C3;
	}

	.pc-car .pc-car__titolo {
		font-size: 20px;
	}

	.pc-car__titolo span {
		font-size: 14px;
	}

	.pc-car__sped {
		gap: 8px;
		margin: 0 20px;
		padding: 12px 14px;
		border-radius: 14px;
	}

	.pc-car__lista {
		padding: 4px 20px;
	}

	.pc-car__riga {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 12px;
		padding: 14px 0;
	}

	.pc-car__righe .pc-car__foto {
		width: 72px;
		height: 72px;
		border-radius: 14px;
	}

	.pc-car__dati {
		gap: 2px;
	}

	.pc-car__nome,
	.pc-car__linea {
		font-size: 15px;
	}

	.pc-car__qta,
	.pc-car .pc-car__via {
		height: 44px;
	}

	.pc-car .pc-car__b {
		width: 44px;
		height: 44px;
	}

	.pc-car__sugg {
		margin: 16px 0 8px;
	}

	.pc-car__occhiello,
	.pc-car__sugg-tipo,
	.pc-car__sugg-l {
		display: none;
	}

	.pc-car__sugg-m {
		display: block;
		font-size: 12px;
		color: #57514A;
	}

	.pc-car__sugg-i {
		display: inline;
	}

	.pc-car__sugg-riga {
		grid-template-columns: 48px minmax(0, 1fr) auto;
		gap: 10px;
		padding: 8px;
		border-radius: 16px;
	}

	.pc-car__sugg .pc-car__foto {
		width: 48px;
		height: 48px;
		border-radius: 10px;
	}

	.pc-car__sugg-dati strong,
	.pc-car__sugg-prezzo {
		font-size: 14px;
	}

	.pc-car__sugg-dati {
		flex-flow: row wrap;
		align-items: baseline;
		column-gap: 6px;
	}

	.pc-car__sugg-m {
		flex-basis: 100%;
	}

	.pc-car .pc-car__sugg-b {
		width: 44px;
		min-width: 0;
		height: 44px;
		padding: 0;
		font-size: 18px;
	}

	.pc-car__vuoto {
		gap: 12px;
		padding: 40px 12px 48px;
	}

	.pc-car__vuoto-i,
	.pc-car__vuoto > span:not(.pc-car__vuoto-i) {
		display: none;
	}

	.pc-car__vuoto strong {
		font-size: 17px;
	}

	.pc-car__giu {
		gap: 10px;
		padding: 14px 20px calc(26px + env(safe-area-inset-bottom, 0px));
	}

	.pc-car__tot {
		font-size: 15px;
	}

	.pc-car__tot small {
		display: inline;
	}

	.pc-car__sub {
		font-size: 20px;
	}

	.pc-car__risp {
		margin-top: -4px;
		font-size: 14px;
	}

	.pc-car__nota,
	.pc-car .pc-car__completo,
	.pc-car__cta-tot {
		display: none;
	}

	.pc-car .pc-car__cta--paga {
		height: 54px;
		font-size: 16px;
	}
}

/* ---------- Avviso dopo l'aggiunta dalla scheda prodotto ---------- */
.pc-toast {
	position: fixed;
	top: var(--pc-toast-su, 96px);
	right: 20px;
	z-index: 99990;
	display: flex;
	flex-direction: column;
	gap: 14px;
	width: 340px;
	max-width: calc(100% - 40px);
	padding: 16px;
	border: 1px solid #E1D9CC;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 18px 40px -12px rgba(29, 27, 24, .28);
	font-family: "Inter", system-ui, sans-serif;
	color: #1D1B18;
}

.pc-toast__su {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
}

.pc-toast__su i {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 999px;
	background: #1D1B18;
	font-size: 12px;
	font-style: normal;
	color: #fff;
}

.pc-toast__riga {
	display: flex;
	align-items: center;
	gap: 12px;
}

.pc-toast__foto {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 14px;
	background: #F5F0E8;
}

.pc-toast__dati {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pc-toast__dati strong {
	font-size: 16px;
	font-weight: 600;
}

.pc-toast__dati span {
	font-size: 14px;
	color: #57514A;
}

.pc-toast__b {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.pc-toast .pc-toast__b button {
	height: 44px;
	margin: 0;
	padding: 0 10px;
	border: 1px solid #1D1B18;
	border-radius: 999px;
	background: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	color: #1D1B18;
	cursor: pointer;
}

.pc-toast .pc-toast__b button.is-pieno {
	background: #1D1B18;
	color: #fff;
}

/* ---------- Pulsanti "Aggiungi" ---------- */
.pc-pcard__btn.ajax_add_to_cart,
.pc-acq__carrello form.cart [type="submit"],
.pc-barra-acq [type="submit"],
.pc-barra-acq .pc-b {
	position: relative;
	overflow: hidden;
}

.pc-shop .pc-pcard__btn.ajax_add_to_cart {
	transition: background-color .25s ease, color .25s ease;
}

.pc-shop .pc-pcard__btn.ajax_add_to_cart.is-aggiunto,
.pc-shop .pc-pcard__btn.ajax_add_to_cart.is-aggiunto:hover {
	background: #1D1B18;
	color: #fff;
}

.pc-pcard__btn.ajax_add_to_cart > span {
	position: relative;
	display: inline-block;
}

.pc-b-riempi {
	position: absolute;
	inset: 0;
	background: #4A4339;
	transform: scaleX(0);
	transform-origin: left center;
	pointer-events: none;
}

.pc-b-testo {
	position: relative;
	display: inline-block;
}

/* ---------- Avviso di WooCommerce senza JavaScript ---------- */
.pc-shop .woocommerce-notices-wrapper .woocommerce-message,
.pc-shop .woocommerce-notices-wrapper .woocommerce-info,
.pc-shop .woocommerce-notices-wrapper .woocommerce-error {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 20px;
	padding: 14px 18px;
	border: 1px solid #E1D9CC;
	border-radius: 16px;
	background: #F5F0E8;
	font-size: 15px;
	color: #1D1B18;
	outline: 0;
}

.pc-shop .woocommerce-notices-wrapper .woocommerce-message::before,
.pc-shop .woocommerce-notices-wrapper .woocommerce-info::before {
	position: static;
	color: #1D1B18;
}

.pc-shop .woocommerce-notices-wrapper .button {
	order: 2;
	float: none;
	height: 40px;
	margin: 0 0 0 auto;
	padding: 0 18px;
	border: 1px solid #1D1B18;
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	line-height: 38px;
	color: #1D1B18;
}
