/* PeeweePaw Fiches produit — même mise en page que la fiche carte cadeau :
   pastilles vertes sous la description, options en un seul bloc sous l'image.
   « :not(#pwpfp) » donne à ces règles la priorité sur le style du thème, sans !important partout.
   Couleurs PeeweePaw : terracotta #de8b6a, vert #6f8763. */

/* =====================================================================
   Colonne de droite : pastilles sous la description
   ===================================================================== */
/* Le thème remonte de 30 px ce qui suit la description (prévu pour le formulaire) :
   les pastilles se retrouveraient collées au texte. */
.pwpfp-fiche div.product .woocommerce-product-details__short-description { margin-bottom: 0 !important; }
/* Moins de vide entre l'image et le bloc d'options : pas de marge du thème sous les colonnes. */
.pwpfp-fiche div.product > .summary,
.pwpfp-fiche div.product > div.images { margin-bottom: 0 !important; }
.pwpfp-sans-meta div.product .summary .product_meta { display: none !important; }

/* Le thème met chaque élément de liste en pleine largeur : on garde des pastilles côte à côte. */
.summary .pwpfp-perks:not(#pwpfp) {
	clear: both;
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 26px 0 8px !important; /* De l'air sous la description. */
	padding: 0 !important;
	list-style: none !important;
}
/* Tailles calculées pour que deux pastilles d'une vingtaine de caractères tiennent sur une ligne
   dans la colonne de droite (330 px). */
.summary .pwpfp-perks:not(#pwpfp) li {
	display: inline-flex !important;
	flex: 0 0 auto !important;
	align-items: center;
	gap: 5px;
	width: auto !important;
	margin: 0 !important;
	padding: 6px 10px 6px 8px !important;
	border: 0 !important;
	border-radius: 99px !important;
	background: #edf2ea !important;
	color: #3f4d38 !important;
	font-size: 12px;
	line-height: 1.4;
}
.summary .pwpfp-perks:not(#pwpfp) li::before { display: none !important; }
.summary .pwpfp-perks:not(#pwpfp) li svg { color: #6f8763; }

/* =====================================================================
   Produits sans variation ni option : quantité + bouton à droite, au-dessus des offres
   ===================================================================== */
.pwpfp-buy-right:not(#pwpfp) { clear: both; margin: 18px 0 0; }
.pwpfp-buy-right form.cart:not(#pwpfp) { display: flex !important; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 !important; padding: 0; border: 0; }
.pwpfp-buy-right form.cart:not(#pwpfp)::before,
.pwpfp-buy-right form.cart:not(#pwpfp)::after { display: none !important; }
.pwpfp-buy-right form.cart > *:not(.quantity):not(.single_add_to_cart_button):not(#pwpfp) { flex: 1 1 100%; }
.pwpfp-buy-right p.stock:not(#pwpfp) { margin: 0 0 8px; }
.pwpfp-buy-right .yith-wapo-container:not(:has(.yith-wapo-addon)):not(#pwpfp) { display: none !important; } /* Conteneur YITH vide (champs cachés seulement). */
.pwpfp-fiche div.product .pwpfp-buy-right .quantity:not(#pwpfp) { flex: none; margin: 0 !important; }
/* « !important » sur la hauteur : une feuille de style du site force tous les champs à 25 px. */
.pwpfp-fiche div.product .pwpfp-buy-right form.cart .quantity .qty:not(#pwpfp) {
	width: 72px;
	height: 46px !important;
	min-height: 46px;
	margin: 0;
	padding: 6px 8px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	text-align: center;
	box-shadow: none;
}
.pwpfp-fiche div.product .pwpfp-buy-right form.cart .single_add_to_cart_button:not(#pwpfp) {
	flex: 1 1 auto;
	min-height: 46px;
	margin: 0;
	padding: 12px 20px;
	border: 1px solid #6f8763;
	border-radius: 10px;
	background: #6f8763;
	color: #fff;
	font-weight: 600;
	line-height: 1.3;
}
.pwpfp-fiche div.product .pwpfp-buy-right form.cart .single_add_to_cart_button:not(#pwpfp):hover,
.pwpfp-fiche div.product .pwpfp-buy-right form.cart .single_add_to_cart_button:not(#pwpfp):focus { background: #5b7150; border-color: #5b7150; color: #fff; }
/* Produit à un seul choix (ex. « Couleur ») : le choix aussi à droite, au-dessus de quantité + bouton.
   « !important » : le thème et une feuille du site imposent hauteur, largeur et marges aux titres. */
.pwpfp-buy-right table.variations:not(#pwpfp),
.pwpfp-buy-right table.variations tbody:not(#pwpfp),
.pwpfp-buy-right table.variations tr:not(#pwpfp),
.pwpfp-buy-right table.variations th:not(#pwpfp),
.pwpfp-buy-right table.variations td:not(#pwpfp) { display: block; width: auto; margin: 0; padding: 0; border: 0; background: none; text-align: left; }
.pwpfp-buy-right table.variations th.label:not(#pwpfp) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	width: auto !important;
	margin: 0 0 10px !important;
	line-height: 1.3 !important;
	font-size: 14px;
	font-weight: 700;
	color: #555;
}
.pwpfp-buy-right table.variations th.label label:not(#pwpfp) { display: block; height: auto; margin: 0; padding: 0; font-size: inherit; font-weight: inherit; line-height: 1.3; color: inherit; }
.pwpfp-buy-right table.variations td.value select:not(#pwpfp) {
	width: 100%;
	min-height: 46px;
	height: auto;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background-color: #fff;
	font-size: 14px;
	color: #555;
	box-shadow: none;
}
.pwpfp-buy-right table.variations .reset_variations:not(#pwpfp) { display: none !important; } /* Un seul choix : « Effacer » inutile (et le thème le place hors de la colonne). */
.pwpfp-buy-right .single_variation_wrap:not(#pwpfp) { margin: 6px 0 0; }
.pwpfp-buy-right .woocommerce-variation.single_variation:not(#pwpfp) { margin: 0 0 10px; }
.pwpfp-buy-right .woocommerce-variation.single_variation:not(#pwpfp):empty { display: none !important; }
.pwpfp-buy-right .woocommerce-variation.single_variation p:not(#pwpfp) { margin: 0 0 4px; }
.pwpfp-buy-right .woocommerce-variation-add-to-cart:not(#pwpfp) { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pwpfp-buy-right .woocommerce-variation-add-to-cart > *:not(.quantity):not(.single_add_to_cart_button):not(#pwpfp) { flex: 1 1 100%; }

/* Sans bloc d'options, on remet de l'air entre la fiche et les onglets « Description… ». */
.pwpfp-fiche div.product > .summary + .woocommerce-tabs { clear: both; padding-top: 40px; }

/* =====================================================================
   Bloc unique sous l'image : carte blanche, étapes en encarts
   ===================================================================== */
.pwpfp-block:not(#pwpfp) {
	clear: both;
	box-sizing: border-box;
	width: 100%;
	padding: 20px 0 8px;
	scroll-margin-top: 120px; /* Pour ne pas passer sous un en-tête fixe. */
}
.pwpfp-card:not(#pwpfp) {
	box-sizing: border-box;
	padding: 26px 28px;
	border: 1px solid rgba(0, 0, 0, .09);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(0, 0, 0, .04);
	color: #666;
	font-size: 14px;
}
.pwpfp-card *,
.pwpfp-card *::before,
.pwpfp-card *::after { box-sizing: border-box; }
.pwpfp-card form.cart:not(#pwpfp) { margin: 0 !important; padding: 0; border: 0; background: none; }
.pwpfp-card > p.stock:not(#pwpfp) { margin: 0; }

/* Une seule grille pour tout le formulaire : chaque option (taille, couleur…) et chaque option
   personnalisée YITH (sangle large, harnais de sécurité, gravure…) devient une étape numérotée,
   trois par ligne sur ordinateur ; en dessous, le prix, puis quantité + bouton.
   Les éléments qui ne font qu'emballer (tableau, conteneurs) sont « transparents » (display: contents) :
   rien n'est déplacé dans la page, les scripts de WooCommerce et de YITH retrouvent tout à sa place. */
/* YITH force « display: block !important » sur le formulaire avec une règle aussi forte que la nôtre
   et chargée après : « .pwpfp-fiche » en plus pour passer devant. */
.pwpfp-fiche .pwpfp-card form.cart:not(#pwpfp) {
	display: flex !important;
	flex-wrap: wrap;
	align-items: flex-start; /* Chaque encart à la hauteur de son contenu : pas de grand vide à côté d'un encart plus long. */
	gap: 16px;
	counter-reset: pwpfp-step;
}
.pwpfp-card form.cart > div[data-product_id]:not(#pwpfp),
.pwpfp-card form.cart table.variations:not(#pwpfp),
.pwpfp-card form.cart table.variations tbody:not(#pwpfp),
.pwpfp-card form.cart .single_variation_wrap:not(#pwpfp),
.pwpfp-card form.cart .woocommerce-variation-add-to-cart:not(#pwpfp),
.pwpfp-card form.cart .yith-wapo-container:not(#pwpfp),
.pwpfp-card form.cart .yith-wapo-block:not(#pwpfp) { display: contents !important; }
/* Les « ::before / ::after » du thème (pour les flottants) prendraient une place dans la grille. */
.pwpfp-card form.cart:not(#pwpfp)::before,
.pwpfp-card form.cart:not(#pwpfp)::after,
.pwpfp-card form.cart .single_variation_wrap:not(#pwpfp)::before,
.pwpfp-card form.cart .single_variation_wrap:not(#pwpfp)::after,
.pwpfp-card form.cart .woocommerce-variation-add-to-cart:not(#pwpfp)::before,
.pwpfp-card form.cart .woocommerce-variation-add-to-cart:not(#pwpfp)::after,
.pwpfp-card form.cart .yith-wapo-container:not(#pwpfp)::before,
.pwpfp-card form.cart .yith-wapo-container:not(#pwpfp)::after,
.pwpfp-card form.cart .yith-wapo-block:not(#pwpfp)::before,
.pwpfp-card form.cart .yith-wapo-block:not(#pwpfp)::after { display: none !important; }
/* … sauf un : saut de ligne invisible avant la quantité et le bouton. */
.pwpfp-card form.cart:not(#pwpfp)::after {
	content: "" !important;
	display: block !important;
	order: 2;
	flex: 1 1 100%;
	height: 0;
	margin: 0;
	padding: 0;
}

/* Les étapes (encarts beiges) */
.pwpfp-card table.variations tr:not(#pwpfp),
.pwpfp-card .yith-wapo-addon:not(.hidden):not(#pwpfp) {
	display: block;
	order: 1;
	flex: 1 1 calc((100% - 32px) / 3); /* 3 colonnes ; la dernière ligne s'étire pour être remplie. */
	min-width: 0;
	margin: 0;
	padding: 18px 20px;
	border: 0;
	border-radius: 12px;
	background: #faf7f5 !important; /* YITH met un fond blanc dans l'attribut style. */
	counter-increment: pwpfp-step;
}
/* Nombre de colonnes selon le nombre d'étapes affichées (classe posée par pwpfp.js) :
   1 étape → pleine largeur ; 2 ou 4 → 2 colonnes ; sinon 3. Sur téléphone : toujours une colonne. */
@media (min-width: 769px) {
	.pwpfp-card form.cart.pwpfp-cols-2 table.variations tr:not(#pwpfp),
	.pwpfp-card form.cart.pwpfp-cols-2 .yith-wapo-addon:not(.hidden):not(#pwpfp) { flex-basis: calc((100% - 16px) / 2); }
	.pwpfp-card form.cart.pwpfp-cols-1 table.variations tr:not(#pwpfp),
	.pwpfp-card form.cart.pwpfp-cols-1 .yith-wapo-addon:not(.hidden):not(#pwpfp) { flex-basis: 100%; }
}

/* Sous les étapes : prix, total des options, extensions éventuelles (pleine largeur), puis quantité + bouton */
.pwpfp-card form.cart .single_variation:not(#pwpfp),
.pwpfp-card form.cart #wapo-total-price-table:not(#pwpfp) { order: 2; flex: 1 1 100%; }
.pwpfp-card form.cart .woocommerce-variation-add-to-cart > *:not(.quantity):not(.single_add_to_cart_button):not(.yith-wapo-container):not(#pwpfp),
.pwpfp-card form.cart > *:not(div[data-product_id]):not(.single_variation_wrap):not(.quantity):not(.single_add_to_cart_button):not(.yith-wapo-container):not(#pwpfp) { order: 2; flex: 1 1 100%; }
.pwpfp-card form.cart .quantity:not(#pwpfp),
.pwpfp-card form.cart .single_add_to_cart_button:not(#pwpfp) { order: 3; align-self: center; }
.pwpfp-card table.variations th:not(#pwpfp),
.pwpfp-card table.variations td:not(#pwpfp) {
	display: block;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	text-align: left;
	line-height: 1.5;
}
.pwpfp-card table.variations th.label:not(#pwpfp) {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	/* « !important » : une feuille de style du site force tous les « .label » (marge -10 px, 100 px de large, interligne 13 px). */
	width: auto !important;
	margin: 0 0 12px !important;
	line-height: 1.3 !important;
	font-size: 15px;
	font-weight: 700;
	color: #555;
}
.pwpfp-card table.variations th.label:not(#pwpfp)::before {
	content: counter(pwpfp-step);
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fbeee8;
	color: #de8b6a;
	font-size: 13px;
	font-weight: 800;
}
/* Le thème donne au titre une hauteur fixe de 40 px (texte en haut) : le numéro, centré, paraissait décalé. */
.pwpfp-card table.variations th.label label:not(#pwpfp) {
	display: block;
	height: auto;
	margin: 0;
	padding: 0;
	font-size: inherit;
	font-weight: inherit;
	line-height: 1.3;
	color: inherit;
}
.pwpfp-card table.variations th.label .woo-selected-variation-item-name:not(#pwpfp) { margin: 0; padding: 0; line-height: 1.3; }
.pwpfp-card table.variations td.value select:not(.woo-variation-raw-select):not(#pwpfp) {
	width: 100%;
	max-width: 380px;
	min-height: 46px;
	height: auto;
	margin: 0;
	padding: 10px 14px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background-color: #fff;
	font-size: 14px;
	color: #555;
	box-shadow: none;
}
.pwpfp-card table.variations td.value select:not(#pwpfp):focus {
	outline: none;
	border-color: #de8b6a;
	box-shadow: 0 0 0 3px rgba(222, 139, 106, .2);
}
.pwpfp-card table.variations .reset_variations:not(#pwpfp) {
	display: inline-block;
	margin: 10px 0 0;
	font-size: 13px;
	color: #b0603f;
}

/* Prix et disponibilité de la variation choisie */
.pwpfp-card .woocommerce-variation.single_variation:not(#pwpfp) { margin: 4px 0 -4px; }
.pwpfp-card .woocommerce-variation.single_variation:not(#pwpfp):empty { display: none !important; }
.pwpfp-card .woocommerce-variation.single_variation p:not(#pwpfp) { margin: 0 0 4px; }
:is(.pwpfp-card, .pwpfp-buy-right) .woocommerce-variation-price .price:not(#pwpfp) { font-size: 18px; font-weight: 700; color: #555; }
.pwpfp-card .quantity:not(#pwpfp) { flex: none; margin: 0 !important; }

/* Bouton et quantité : mêmes valeurs que la fiche carte cadeau (vert du logo, arrondi). */
.pwpfp-fiche div.product .pwpfp-card form.cart .single_add_to_cart_button:not(#pwpfp) {
	flex: 0 1 360px;
	min-height: 46px;
	margin: 0;
	padding: 12px 28px;
	border: 1px solid #6f8763;
	border-radius: 10px;
	background: #6f8763;
	color: #fff;
	font-weight: 600;
	line-height: 1.3;
	transition: background .2s, border-color .2s;
}
.pwpfp-fiche div.product .pwpfp-card form.cart .single_add_to_cart_button:not(#pwpfp):hover,
.pwpfp-fiche div.product .pwpfp-card form.cart .single_add_to_cart_button:not(#pwpfp):focus {
	background: #5b7150;
	border-color: #5b7150;
	color: #fff;
}
.pwpfp-fiche div.product .pwpfp-card form.cart .single_add_to_cart_button.disabled:not(#pwpfp) { opacity: .5; }
/* « !important » sur la hauteur : une feuille de style du site force tous les champs à 25 px. */
.pwpfp-fiche div.product .pwpfp-card form.cart .quantity .qty:not(#pwpfp) {
	width: 72px;
	height: 46px !important;
	min-height: 46px;
	margin: 0;
	padding: 6px 8px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background: #fff;
	font-size: 14px;
	text-align: center;
	box-shadow: none;
}
.pwpfp-fiche div.product .pwpfp-card form.cart .quantity .qty:not(#pwpfp):focus {
	outline: none;
	border-color: #de8b6a;
	box-shadow: 0 0 0 3px rgba(222, 139, 106, .2);
}

/* Options personnalisées (YITH : sangle large, harnais de sécurité, gravure…) : titre numéroté comme les autres étapes */
.pwpfp-card .yith-wapo-addon .addon-header:not(#pwpfp) { margin: 0 0 12px !important; padding: 0; }
/* Même règle du site sur les « .label » (marge -10 px, interligne 13 px) : la case à cocher remontait sur le titre. */
.pwpfp-card .yith-wapo-addon .yith-wapo-option .label:not(#pwpfp) {
	width: auto !important;
	margin: 0 !important;
	line-height: 1.4 !important;
	align-items: center;
}
.pwpfp-card .yith-wapo-addon .yith-wapo-option + .yith-wapo-option:not(#pwpfp) { margin-top: 8px; }
.pwpfp-card .yith-wapo-addon .wapo-addon-title:not(#pwpfp) {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
	color: #555;
}
.pwpfp-card .yith-wapo-addon .wapo-addon-title:not(#pwpfp)::before {
	content: counter(pwpfp-step);
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #fbeee8;
	color: #de8b6a;
	font-size: 13px;
	font-weight: 800;
}
.pwpfp-card .yith-wapo-addon .wapo-addon-title:not(#pwpfp)::after { display: none; } /* Flèche de dépliage. */
/* Option sans titre (ex. champ « Votre gravure » qui apparaît quand la gravure est activée) : pas de numéro. */
.pwpfp-card .yith-wapo-addon.empty-title:not(#pwpfp) { counter-increment: none; }
.pwpfp-card .yith-wapo-addon.empty-title .addon-header:not(#pwpfp) { display: none !important; }
/* … rangée par pwpfp.js dans l'encart de l'option précédente, sous son interrupteur. */
.pwpfp-card .yith-wapo-addon .yith-wapo-addon.pwpfp-nested:not(.hidden):not(#pwpfp) {
	flex: none;
	margin: 14px 0 0;
	padding: 14px 0 0;
	border-top: 1px dashed rgba(0, 0, 0, .1);
	border-radius: 0;
	background: transparent !important;
}
.pwpfp-card .yith-wapo-addon .options-container:not(#pwpfp) { display: block !important; margin: 0; padding: 0; }
.pwpfp-card .yith-wapo-addon .wapo-addon-description:not(#pwpfp) { margin: 0 0 8px; font-size: 13px; }
.pwpfp-card .yith-wapo-addon p.description:not(#pwpfp) { margin: 6px 0 0; font-size: 12.5px; line-height: 1.45; color: #888; }
/* Champs texte et listes YITH (gravure…) : même style que les listes d'options.
   « !important » sur la hauteur : une feuille de style du site force tous les champs à 25 px. */
.pwpfp-card .yith-wapo-addon input[type="text"]:not(#pwpfp),
.pwpfp-card .yith-wapo-addon input[type="number"]:not(#pwpfp),
.pwpfp-card .yith-wapo-addon select:not(#pwpfp),
.pwpfp-card .yith-wapo-addon textarea:not(#pwpfp) {
	width: 100%;
	height: auto !important;
	min-height: 46px;
	margin: 4px 0 0;
	padding: 10px 14px;
	border: 1px solid #d9d4d1;
	border-radius: 10px;
	background-color: #fff;
	font-size: 14px;
	color: #555;
	box-shadow: none;
}
.pwpfp-card .yith-wapo-addon input[type="text"]:not(#pwpfp):focus,
.pwpfp-card .yith-wapo-addon input[type="number"]:not(#pwpfp):focus,
.pwpfp-card .yith-wapo-addon select:not(#pwpfp):focus,
.pwpfp-card .yith-wapo-addon textarea:not(#pwpfp):focus {
	outline: none;
	border-color: #de8b6a;
	box-shadow: 0 0 0 3px rgba(222, 139, 106, .2);
}
.pwpfp-card .yith-wapo-addon label.yith-wapo-addon-label:not(#pwpfp) { margin: 0 0 0 8px; font-size: 14px; line-height: 1.4; color: #555; cursor: pointer; }

/* =====================================================================
   Choix à deux possibilités (Avec / Sans, Oui / Non, cases à cocher) : interrupteur
   comme sur la page fidélité (gris → vert, rond qui glisse de gauche à droite)
   ===================================================================== */
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-switch-source:not(#pwpfp) { display: none !important; } /* Liste d'origine, gardée pour WooCommerce. */
.pwpfp-switch:not(#pwpfp) {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 4px 0 0;
	cursor: pointer;
	font-size: 14px;
	font-weight: 600;
	color: #555;
	user-select: none;
}
.pwpfp-switch input:not(#pwpfp) { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.pwpfp-switch__track {
	position: relative;
	flex: none;
	width: 42px;
	height: 24px;
	border-radius: 99px;
	background: #c9c9c9;
	transition: background .2s;
}
.pwpfp-switch__track::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
	transition: transform .2s;
}
.pwpfp-switch input:checked + .pwpfp-switch__track { background: #6f8763; }
.pwpfp-switch input:checked + .pwpfp-switch__track::after { transform: translateX(18px); }
.pwpfp-switch:hover .pwpfp-switch__track,
.pwpfp-switch input:focus-visible + .pwpfp-switch__track { box-shadow: 0 0 0 3px rgba(111, 135, 99, .18); }
.pwpfp-switch__price:not(#pwpfp) { margin-left: -4px; font-size: 12.5px; font-weight: 400; color: #888; }
.pwpfp-switch.is-locked:not(#pwpfp) { cursor: default; }
.pwpfp-switch.is-locked .pwpfp-switch__track { opacity: .55; box-shadow: none; }
:is(.pwpfp-card, .pwpfp-buy-right) table.variations td.value:has(.pwpfp-switch) .reset_variations:not(#pwpfp) { display: none !important; } /* Pas de « Effacer » à côté d'un interrupteur. */

/* Listes courtes (ex. « 10 mm / 16 mm ») en boutons, même apparence que les tailles (Variation Swatches) */
.pwpfp-pills:not(#pwpfp) { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 2px 0 0 2px; }
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill:not(#pwpfp) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 35px;
	height: 35px;
	margin: 0;
	padding: 0 12px;
	border: 0;
	border-radius: 99px;
	background: #fff;
	box-shadow: 0 0 0 1px #a8a8a8;
	color: #555;
	font-family: inherit;
	font-size: 15px;
	font-weight: 400;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	white-space: nowrap;
	cursor: pointer;
	transition: box-shadow .15s;
}
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill:not(#pwpfp):hover,
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill:not(#pwpfp):focus-visible { outline: none; background: #fff; color: #555; box-shadow: 0 0 0 1px #6f8763; } /* Le thème colore les boutons en terracotta au survol. */
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill.is-selected:not(#pwpfp) { box-shadow: 0 0 0 2px #6f8763; }
/* Bouton de texte choisi (taille, largeur…) : même vert que « Ajouter au panier », texte blanc.
   Les vignettes et pastilles de couleur gardent l'anneau vert (un fond cacherait l'image). */
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill.is-selected:not(.pwpfp-pill--image):not(.pwpfp-pill--color):not(#pwpfp),
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill.is-selected:not(.pwpfp-pill--image):not(.pwpfp-pill--color):not(#pwpfp):hover,
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill.is-selected:not(.pwpfp-pill--image):not(.pwpfp-pill--color):not(#pwpfp):focus-visible {
	background: #6f8763;
	color: #fff;
	font-weight: 600;
	box-shadow: 0 0 0 1px #6f8763;
}
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill.is-unavailable:not(#pwpfp) { opacity: .4; text-decoration: line-through; cursor: not-allowed; box-shadow: 0 0 0 1px #a8a8a8; }

/* Vignettes d'image (attribut réglé sur « Images », ex. motifs) */
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill--image:not(#pwpfp) { width: 48px; min-width: 0; height: 48px; padding: 3px; border-radius: 10px; overflow: hidden; }
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill--image img:not(#pwpfp) { display: block; width: 100%; height: 100%; margin: 0; border-radius: 7px; object-fit: cover; }
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill--image.is-unavailable:not(#pwpfp) { opacity: .3; }

/* Liste d'origine cachée dès l'affichage quand le serveur a préparé boutons ou vignettes
   (« woocommerce-js » : posé par WooCommerce quand le JavaScript fonctionne). */
.woocommerce-js :is(.pwpfp-card, .pwpfp-buy-right) select[data-pwpfp-type]:not([data-pwpfp-type="liste"]):not(#pwpfp) { display: none !important; }

/* Pastilles de couleur (attribut réglé sur « Couleurs ») */
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill--color:not(#pwpfp) { width: 35px; min-width: 0; height: 35px; padding: 3px; border-radius: 50%; }
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill__color { display: block; width: 100%; height: 100%; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12); }
:is(.pwpfp-card, .pwpfp-buy-right) .pwpfp-pill--color.is-unavailable:not(#pwpfp) { opacity: .3; text-decoration: none; }

/* Nom du choix à côté du titre : « Taille : M » */
:is(.pwpfp-card, .pwpfp-buy-right) table.variations th.label .pwpfp-selected-name:not(#pwpfp) { margin-left: -6px; font-weight: 600; color: #6f8763; }
:is(.pwpfp-card, .pwpfp-buy-right) table.variations th.label .pwpfp-selected-name:empty { display: none; }

/* Étape avec beaucoup de vignettes : toute la largeur */
.pwpfp-card form.cart table.variations tr.pwpfp-wide:not(#pwpfp) { flex-basis: 100% !important; }

/* Cases à cocher des options personnalisées (YITH) : même interrupteur, sans script */
.pwpfp-card .yith-wapo-addon .checkboxbutton:not(#pwpfp) { display: inline-flex; flex: none; width: auto; height: auto; margin: 0; border: 0; background: none; }
.pwpfp-card .yith-wapo-option input[type="checkbox"]:not(#pwpfp) {
	-webkit-appearance: none;
	appearance: none;
	position: relative;
	flex: none;
	width: 42px !important;
	height: 24px !important;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 99px;
	background: #c9c9c9;
	cursor: pointer;
	vertical-align: middle;
	transition: background .2s;
}
.pwpfp-card .yith-wapo-option input[type="checkbox"]:not(#pwpfp)::before {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
	transition: transform .2s;
}
.pwpfp-card .yith-wapo-option input[type="checkbox"]:not(#pwpfp)::after { display: none; }
.pwpfp-card .yith-wapo-option input[type="checkbox"]:checked:not(#pwpfp) { background: #6f8763; }
.pwpfp-card .yith-wapo-option input[type="checkbox"]:checked:not(#pwpfp)::before { transform: translateX(18px); }
.pwpfp-card .yith-wapo-option input[type="checkbox"]:not(#pwpfp):hover,
.pwpfp-card .yith-wapo-option input[type="checkbox"]:not(#pwpfp):focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(111, 135, 99, .18); }
.pwpfp-card .yith-wapo-option input[type="checkbox"]:disabled:not(#pwpfp) { opacity: .55; cursor: default; }
/* Prix de l'option affiché seulement quand elle est activée (désactivée = gratuit). */
.pwpfp-card .yith-wapo-option:has(input[type="checkbox"]:not(:checked)) .option-price:not(#pwpfp) { display: none; }

/* Tableau des totaux de YITH masqué : après le choix d'une variation, YITH garde l'ancien prix
   « à partir de » et affiche un total faux (ex. 22 € au lieu de 25 €). Le prix de chaque option
   reste affiché à côté de son choix. */
.pwpfp-card #wapo-total-price-table:not(#pwpfp) { display: none !important; }

/* Notre total (pwpfp.js) : prix choisi + options payantes, × quantité. Il remplace le prix de la variation
   dans le bloc (la disponibilité, « Disponible sur commande », reste affichée). */
.pwpfp-card .woocommerce-variation-price:not(#pwpfp) { display: none !important; }
.pwpfp-card form.cart .pwpfp-total:not(#pwpfp) { order: 2; flex: 1 1 100%; margin: -6px 0 0; font-size: 15px; color: #555; }
.pwpfp-card form.cart .pwpfp-total strong:not(#pwpfp) { margin-left: 4px; font-size: 18px; font-weight: 700; color: #3f4d38; }

/* =====================================================================
   Téléphone (même seuil que WooCommerce : 768 px)
   ===================================================================== */
/* =====================================================================
   Un seul gris pour tous les textes de choix (listes, boutons, interrupteurs, options YITH),
   un gris plus clair pour les descriptions
   ===================================================================== */
:is(.pwpfp-card, .pwpfp-buy-right) table.variations td.value select:not(#pwpfp),
.pwpfp-card .yith-wapo-addon :is(label, .label, input, select, textarea):not(#pwpfp) { color: #555; }
.pwpfp-card .yith-wapo-addon :is(p.description, .wapo-addon-description):not(#pwpfp) { color: #888; }

/* Option interdite pour la taille choisie (réglage « Options interdites selon la taille ») */
.pwpfp-card .yith-wapo-option.pwpfp-forbidden .label:not(#pwpfp),
.pwpfp-card .yith-wapo-option.pwpfp-forbidden p.description:not(#pwpfp) { opacity: .5; }
.pwpfp-card .yith-wapo-option.pwpfp-forbidden label:not(#pwpfp) { cursor: not-allowed; }
.pwpfp-card .pwpfp-forbidden-note:not(#pwpfp),
.pwpfp-switch__note:not(#pwpfp) { display: block; margin: 6px 0 0; font-size: 12.5px; font-weight: 600; color: #b0603f; }
.pwpfp-switch:has(.pwpfp-switch__note):not(#pwpfp) { flex-wrap: wrap; }
.pwpfp-switch__note:not(#pwpfp) { flex: 1 1 100%; margin: 0; }

/* Champ texte YITH (ex. « Votre gravure ») : titre au-dessus, champ sur toute la largeur */
.pwpfp-card :is(.yith-wapo-addon-type-text, .yith-wapo-addon-type-textarea) .yith-wapo-option .label:not(#pwpfp) { display: block !important; }
.pwpfp-card .yith-wapo-addon .input-text-container:not(#pwpfp) { width: 100%; }

@media (max-width: 768px) {
	.pwpfp-card:not(#pwpfp) { padding: 18px; }
	.pwpfp-card form.cart:not(#pwpfp) { gap: 12px; }
	.pwpfp-card table.variations tr:not(#pwpfp),
	.pwpfp-card .yith-wapo-addon:not(.hidden):not(#pwpfp) { flex-basis: 100%; padding: 16px; }
	.pwpfp-fiche div.product .pwpfp-card form.cart .single_add_to_cart_button:not(#pwpfp) { flex: 1 1 200px; }
}
