/* PeeweePaw Fidélité – panier, mini-panier de l'en-tête et carte « Points de fidélité »,
   dans le même style que les pages de Mon compte.
   « :not(#ppf) » donne à ces règles la priorité sur le style du thème, sans !important partout. */
:root {
	--ppf-c-accent: #de8b6a;
	--ppf-c-accent-soft: #fbeee8;
	--ppf-c-green: #6f8763;
	--ppf-c-green-dark: #5b7150;
	--ppf-c-green-soft: #edf2ea;
	--ppf-c-border: rgba(0, 0, 0, .09);
	--ppf-c-muted: #6b6b6b;
	--ppf-c-text: #666; /* Gris du texte du site. */
}

/* Titre « Mon panier » : style du thème, avec de l'air sous la barre de navigation */
.ppf-cart-title:not(#ppf) { padding-top: 40px; margin-bottom: 24px; }

/* =====================================================================
   Carte « Points de fidélité » (panier et page de paiement)
   ===================================================================== */
.ppf-loyalty-box:not(#ppf) {
	display: flex;
	gap: 14px;
	align-items: center;
	margin: 28px 0 20px; /* De l'air sous la barre de navigation. */
	padding: 16px 18px;
	border: 1px solid rgba(222, 139, 106, .25);
	border-radius: 8px; /* Comme la jauge « Plus que … pour profiter de -20 % ». */
	background: var(--ppf-c-accent-soft);
	color: #666; /* Gris du texte du site. */
	font-family: inherit; /* Police du site (Montserrat). */
	font-size: 13.3px; /* Même taille que la jauge du -20 %. */
	line-height: 1.5;
}
.ppf-loyalty-box__icon {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--ppf-c-accent);
	color: #fff;
}
.ppf-loyalty-box__body { flex: 1; min-width: 0; }
.ppf-loyalty-box:not(#ppf) p { margin: 0 0 4px; }
.ppf-loyalty-box__title { color: #666; }
.ppf-loyalty-box__title strong { color: #555; }
.ppf-loyalty-box__title span { color: #888; }
.ppf-loyalty-box__ok { color: var(--ppf-c-green-dark); font-weight: 600; }
.ppf-loyalty-box__hint { margin-top: 8px !important; }
.ppf-loyalty-box__buttons { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 4px; }
.ppf-loyalty-box:not(#ppf) .ppf-loyalty-box__apply {
	margin: 0;
	background: var(--ppf-c-green);
	border-color: var(--ppf-c-green);
	color: #fff;
}
.ppf-loyalty-box:not(#ppf) .ppf-loyalty-box__apply:hover { background: var(--ppf-c-green-dark); border-color: var(--ppf-c-green-dark); }
.ppf-loyalty-box__convert { margin-top: 6px !important; }
.ppf-loyalty-box:not(#ppf) a:not(.button) { color: #b0603f; font-weight: 700; text-decoration: none; }
.ppf-loyalty-box:not(#ppf) a:not(.button):hover { text-decoration: underline; }

/* =====================================================================
   Panier : chaque produit devient une carte
   ===================================================================== */
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) {
	border: 0;
	border-collapse: separate;
	background: none;
	margin: 0 0 24px;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) thead { display: none; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tbody { display: block; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tr.cart_item {
	display: grid;
	grid-template-columns: 36px 90px minmax(0, 1fr) 100px 100px 100px;
	grid-template-areas: "remove thumb name price qty subtotal";
	align-items: center;
	gap: 8px 18px;
	margin: 0 0 14px;
	padding: 14px 20px 14px 14px;
	border: 1px solid var(--ppf-c-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tr.cart_item td {
	display: block;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	font-size: 14px;
	color: var(--ppf-c-text);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-remove { grid-area: remove; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-thumbnail { grid-area: thumb; display: block; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-name { grid-area: name; font-weight: 600; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-price { grid-area: price; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-quantity { grid-area: qty; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-subtotal { grid-area: subtotal; font-weight: 700; }

/* Petits libellés « Prix / Quantité / Sous-total » au-dessus des valeurs */
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-price::before,
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-quantity::before,
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-subtotal::before {
	content: attr(data-title);
	display: block;
	float: none;
	margin-bottom: 4px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ppf-c-muted);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-name::before,
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-thumbnail::before,
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-remove::before { display: none; }

.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-thumbnail img {
	display: block;
	width: 90px;
	max-width: none;
	height: 90px;
	object-fit: contain; /* Photo entière, jamais recadrée. */
	border-radius: 10px;
	background: #fff;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-name a { color: inherit; text-decoration: none; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-name a:hover { color: var(--ppf-c-accent); }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-name dl.variation {
	margin: 4px 0 0;
	font-size: 13px;
	font-weight: 400;
	color: var(--ppf-c-muted);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) a.remove {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #f4f1ef;
	color: #8a8a8a !important;
	font-size: 0; /* Le « × » texte est masqué : l'icône du thème (::before) suffit. */
	line-height: 1;
	text-decoration: none;
	transition: background .2s, color .2s;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) a.remove::before { font-size: 14px; line-height: 1; color: inherit; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) a.remove:hover { background: #f8e6e1; color: #b4553c !important; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) .quantity .qty {
	width: 72px !important;
	height: 42px !important;
	padding: 6px 8px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	text-align: center;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) .quantity .qty:focus {
	outline: none;
	border-color: var(--ppf-c-accent);
	box-shadow: 0 0 0 3px rgba(222, 139, 106, .2);
}

/* Ligne « Code promo / Mettre à jour le panier » */
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tr:not(.cart_item) { display: block; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 20px;
	border: 1px solid var(--ppf-c-border);
	border-radius: 14px;
	background: #faf7f5;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions::before { display: none; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .coupon .input-text {
	float: none;
	width: 210px !important;
	height: 44px !important;
	margin: 0;
	padding: 8px 14px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .coupon .input-text:focus {
	outline: none;
	border-color: var(--ppf-c-accent);
	box-shadow: 0 0 0 3px rgba(222, 139, 106, .2);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .button { float: none; margin: 0; }
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions > .button[name="update_cart"] {
	background: transparent;
	border: 1px solid var(--ppf-c-accent);
	color: var(--ppf-c-accent);
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions > .button[name="update_cart"]:not(:disabled):hover {
	background: var(--ppf-c-accent);
	color: #fff;
}
.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions > .button[name="update_cart"]:disabled { opacity: .45; }

/* =====================================================================
   Total panier
   ===================================================================== */
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) {
	padding: 24px 26px;
	border: 1px solid var(--ppf-c-border);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) h2 { margin: 0 0 14px; font-size: 1.4em; }
/* Message des délais de confection : encadré doux plutôt que texte rouge en gras */
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) p.allow {
	margin: 0 0 16px;
	padding: 12px 16px;
	border-radius: 10px;
	background: #f8e6e1;
	color: #8a3b28 !important;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table,
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table tbody {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	background: none;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table tr {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px 16px;
	padding: 12px 0;
	border-top: 1px solid var(--ppf-c-border);
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table tr:first-child { border-top: 0; padding-top: 0; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table th,
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table td {
	display: block !important;
	width: auto;
	padding: 0;
	border: 0;
	background: none;
	font-size: 14px;
	color: var(--ppf-c-text);
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table th { font-weight: 600; text-align: left; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table td { text-align: right; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) table.shop_table td::before { display: none !important; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) .cart-discount td { color: var(--ppf-c-green-dark); font-weight: 600; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) .woocommerce-remove-coupon { font-size: 13px; font-weight: 400; margin-left: 4px; }

/* Expédition : titre au-dessus, chaque mode de livraison sur sa ligne, en carte */
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.woocommerce-shipping-totals { flex-direction: column; align-items: stretch; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.woocommerce-shipping-totals td { text-align: left; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method {
	width: 100%;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	margin: 0 0 8px;
	padding: 12px 14px;
	border: 1px solid var(--ppf-c-border);
	border-radius: 10px;
	background: #fff;
	text-align: left;
	transition: border-color .2s, background .2s;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method li:has(input:checked) {
	border-color: var(--ppf-c-green);
	background: #f6f9f4;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method li input[type="radio"] {
	flex: none;
	margin: 0;
	accent-color: var(--ppf-c-green);
	width: 18px;
	height: 18px;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method li label {
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	font-weight: 400;
	line-height: 1.4;
}
/* Tout ce qui n'est ni le bouton radio ni le libellé (ex. le point relais Mondial Relay) passe à la ligne */
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) #shipping_method li > :not(input):not(label) {
	flex: 1 1 100%;
	margin: 4px 0 0;
	text-align: left;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) .woocommerce-shipping-destination,
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) .woocommerce-shipping-calculator {
	margin: 8px 0 0;
	font-size: 14px;
	text-align: left;
}
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.order-total th,
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.order-total td { font-size: 18px; }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.order-total small { display: block; font-size: 12px; font-weight: 400; color: var(--ppf-c-muted); }
.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) tr.ppf-cart-points td {
	flex: 1 1 100%;
	text-align: left;
	font-size: 14px;
	color: var(--ppf-c-green-dark);
}

/* Bouton « Valider la commande » : grand, vert, pleine largeur */
.woocommerce-cart .wc-proceed-to-checkout:not(#ppf) { padding: 18px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout:not(#ppf) a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 16px 20px;
	background: var(--ppf-c-green);
	border-color: var(--ppf-c-green);
	color: #fff;
	font-size: 14px;
	text-align: center;
}
.woocommerce-cart .wc-proceed-to-checkout:not(#ppf) a.checkout-button:hover { background: var(--ppf-c-green-dark); border-color: var(--ppf-c-green-dark); }

/* Point relais Boxtal (Mondial Relay) : encadré arrondi, bouton « Choisir un autre point relais » en pastille */
#shipping_method .bw-parcel-point:not(#ppf) {
	display: block;
	padding: 10px 14px;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 0 0 1px rgba(0, 0, 0, .06);
	font-size: 13px;
	line-height: 1.6;
}
#shipping_method .bw-parcel-point:not(#ppf) small { font-size: 12px; color: #6b6b6b; }
#shipping_method .bw-parcel-point:not(#ppf) .bw-select-parcel {
	display: inline-block;
	margin-top: 6px;
	padding: 4px 12px;
	border-radius: 99px;
	background: #6f8763;
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	text-decoration: none;
}
#shipping_method .bw-parcel-point:not(#ppf) .bw-select-parcel:hover { background: #5b7150; }

/* =====================================================================
   Mini-panier de l'en-tête
   ===================================================================== */
.header-cart-widget:not(#ppf) {
	border-radius: 14px;
	box-shadow: 0 12px 32px rgba(0, 0, 0, .12);
	overflow: hidden;
}
/* De l'air autour du contenu : les boutons ne touchent plus le bord du cadre. */
.header-cart-widget .widget_shopping_cart:not(#ppf) { padding: 12px 18px 18px; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart {
	margin: 0;
	padding: 0;
	list-style: none;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item {
	position: relative;
	display: block;
	min-height: 82px;
	margin: 0;
	padding: 12px 40px 12px 72px;
	border-bottom: 1px solid var(--ppf-c-border);
	text-align: left;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item img {
	position: absolute;
	left: 0;
	top: 12px;
	float: none;
	width: 58px !important;
	height: 58px !important;
	margin: 0;
	object-fit: contain;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ppf-c-border);
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item a:not(.remove) {
	display: block;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--ppf-c-text);
	text-decoration: none;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item a:not(.remove):hover { color: var(--ppf-c-accent); }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item .quantity {
	display: block;
	margin-top: 4px;
	font-size: 13px;
	color: var(--ppf-c-muted);
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item a.remove::before { font-size: 13px; line-height: 1; color: inherit; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item a.remove {
	position: absolute;
	right: 0;
	left: auto;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #f4f1ef;
	color: #8a8a8a !important;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart-item a.remove:hover { background: #f8e6e1; color: #b4553c !important; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin: 0;
	padding: 12px 0 14px;
	border: 0;
	font-size: 14px;
	color: var(--ppf-c-text);
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__total strong { font-weight: 600; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__total .amount { font-size: 14px; font-weight: 700; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons {
	display: flex;
	gap: 8px;
	margin: 0;
	padding: 0;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons .button {
	flex: 1 1 0;
	margin: 0;
	padding-left: 8px;
	padding-right: 8px;
	text-align: center;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons .button:not(.checkout) {
	background: transparent;
	border: 1px solid var(--ppf-c-accent);
	color: var(--ppf-c-accent);
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons .button:not(.checkout):hover { background: var(--ppf-c-accent); color: #fff; }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons .button.checkout {
	background: var(--ppf-c-green);
	border: 1px solid var(--ppf-c-green);
	color: #fff;
}
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__buttons .button.checkout:hover { background: var(--ppf-c-green-dark); border-color: var(--ppf-c-green-dark); }
.widget_shopping_cart_content:not(#ppf) .woocommerce-mini-cart__empty-message { margin: 0; padding: 8px 0; text-align: center; color: var(--ppf-c-muted); }

/* =====================================================================
   Téléphone (même seuil que WooCommerce : 768 px)
   ===================================================================== */
@media (max-width: 768px) {
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tr.cart_item {
		grid-template-columns: 76px 1fr 1fr 32px;
		grid-template-areas:
			"thumb name name remove"
			"price qty subtotal subtotal";
		padding: 14px;
	}
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) tr.cart_item td {
		text-align: left !important;
	}
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-thumbnail { display: block !important; }
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-thumbnail img { width: 76px; height: 76px; }
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-remove { align-self: start; }
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-price,
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-quantity,
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.product-subtotal {
		padding-top: 10px;
		border-top: 1px solid var(--ppf-c-border);
	}
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions { padding: 14px; }
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .coupon,
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .coupon .input-text,
	.woocommerce-cart .woocommerce-cart-form table.cart:not(#ppf) td.actions .button { width: 100%; }
	.woocommerce-cart .cart-collaterals .cart_totals:not(#ppf) { padding: 18px; }
	.ppf-loyalty-box:not(#ppf) { padding: 14px 16px; }
	.ppf-loyalty-box__buttons .button { width: 100%; text-align: center; }
}
