/* ==========================================================================
   Boutique : fiche produit, cartes, filtres, panier et commande.
   Chargé après style.css sur les pages WooCommerce seulement. Les couleurs viennent des variables du thème,
   donc chaque site garde la sienne.
   ========================================================================== */

:root {
	--teinte: color-mix(in srgb, var(--couleur-bouton) 8%, #fff);
	--teinte-forte: color-mix(in srgb, var(--couleur-bouton) 16%, #fff);
	--ombre-douce: 0 1px 2px rgba(15, 26, 36, 0.05), 0 8px 24px rgba(15, 26, 36, 0.06);
	--rayon-carte: 1rem;
	--erreur: #b42318;
}

/* ------------------------------------------------------------------ Prix */
.prix__debut { font-size: 0.9rem; font-weight: 600; color: var(--couleur-texte-doux); }
.woocommerce .price del { opacity: 0.55; font-weight: 500; }
.woocommerce .price ins { text-decoration: none; }

/* ==========================================================================
   Boutique : filtres, barre de tri, grille de cartes
   ========================================================================== */
.boutique__filtres { margin: 0 0 1.25rem; }
.boutique__filtres ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.boutique__filtres a {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0.35rem 1rem;
	border: 1.5px solid var(--couleur-bordure);
	border-radius: 999px;
	background: #fff;
	color: var(--couleur-titre);
	font-size: 0.95rem;
	font-weight: 600;
	text-decoration: none;
	transition: border-color 0.15s, background-color 0.15s, color 0.15s;
}
.boutique__filtres a:hover { border-color: var(--couleur-titre); }
.boutique__filtres a[aria-current] {
	background: var(--couleur-sombre);
	border-color: var(--couleur-sombre);
	color: var(--couleur-sombre-texte);
}
@media (max-width: 40rem) {
	.boutique__filtres ul {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline: -1.25rem;
		padding: 0.15rem 1.25rem 0.5rem;
		scroll-snap-type: x proximity;
		scrollbar-width: none;
	}
	.boutique__filtres ul::-webkit-scrollbar { display: none; }
	.boutique__filtres li { flex: 0 0 auto; scroll-snap-align: start; }
}

.boutique__barre {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1.25rem;
}
.woocommerce .woocommerce-result-count { float: none; margin: 0; color: var(--couleur-texte-doux); font-size: 0.95rem; }
.woocommerce .woocommerce-ordering { float: none; margin: 0; }
.woocommerce .woocommerce-ordering select,
.woocommerce div.product form.cart select {
	min-height: 2.75rem;
	padding: 0.5rem 2.4rem 0.5rem 0.9rem;
	border: 1.5px solid var(--couleur-bordure);
	border-radius: 0.6rem;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%234a5560' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 8 5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.75rem center / 1rem;
	color: var(--couleur-texte);
	font: 600 0.95rem/1.2 var(--police-texte);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.woocommerce .woocommerce-ordering select:hover { border-color: var(--couleur-titre); }

/* Grille de cartes (boutique, catégories, produits liés, accessoires) */
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.25rem;
	margin: 0 0 2.5rem;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
@media (max-width: 64rem) { .woocommerce ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 44rem) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.85rem; } }

.woocommerce ul.products li.product,
.woocommerce ul.products[class*="columns-"] li.product,
.woocommerce-page ul.products[class*="columns-"] li.product {
	position: relative;
	display: flex;
	flex-direction: column;
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--couleur-bordure);
	border-radius: var(--rayon-carte);
	transition: box-shadow 0.2s, transform 0.2s, border-color 0.2s;
}
.woocommerce ul.products li.product:hover {
	border-color: color-mix(in srgb, var(--couleur-bordure) 60%, var(--couleur-titre));
	box-shadow: var(--ombre-douce);
	transform: translateY(-2px);
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: flex;
	flex: 1;
	flex-direction: column;
	color: inherit;
	text-decoration: none;
}
.woocommerce ul.products li.product a img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0.5rem;
	object-fit: contain;
	background: var(--couleur-fond-doux);
	box-shadow: none;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 0.9rem 1rem 0;
	color: var(--couleur-titre);
	font-family: var(--police-titre);
	font-size: 1.05rem;
	line-height: 1.25;
}
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0;
	padding: 0.4rem 1rem 0;
	color: var(--couleur-titre);
	font-size: 1rem;
	font-weight: 800;
}
.woocommerce ul.products li.product .button {
	margin: 0.9rem 1rem 1rem;
	padding: 0.7em 1em;
	background: transparent;
	border: 2px solid var(--couleur-bouton);
	color: var(--couleur-bouton);
	font-size: 0.95rem;
	text-align: center;
}
.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:focus-visible {
	background: var(--couleur-bouton);
	color: #fff;
}
.woocommerce ul.products li.product .added_to_cart { margin: 0 1rem 1rem; text-align: center; font-weight: 700; }
@media (max-width: 44rem) {
	.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0.7rem 0.75rem 0; font-size: 0.95rem; }
	.woocommerce ul.products li.product .price { padding: 0.3rem 0.75rem 0; font-size: 0.92rem; }
	.woocommerce ul.products li.product .button { margin: 0.75rem 0.75rem 0.85rem; font-size: 0.88rem; }
	/* « À partir de » sur sa ligne, le prix et « HT » ensemble dessous : sans cela « HT » tombait seul sur une troisième ligne. */
	.woocommerce ul.products li.product .prix__debut { display: block; }
}
.woocommerce span.onsale {
	top: 0.6rem;
	left: 0.6rem;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0.3rem 0.7rem;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 800;
	line-height: 1.2;
}

/* ==========================================================================
   Fiche produit
   ========================================================================== */
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	margin-bottom: 3rem;
}
.woocommerce div.product > * { min-width: 0; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}
@media (min-width: 62rem) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		column-gap: 3.5rem;
		align-items: start;
	}
	/* La galerie colle dans son bloc, qui fait la hauteur de la zone d'achat : elle s'arrête avec elle. Collée
	   directement dans la grille, elle descendait par-dessus les sections de la fiche. */
	.woocommerce div.product > .fiche__galerie { align-self: stretch; }
	/* Deux classes : sans elles, « position: relative » de WooCommerce l'emporte et top: 6rem décale la galerie. */
	.woocommerce div.product div.images.woocommerce-product-gallery { position: sticky; top: 6rem; }
}
.woocommerce div.product > .fiche__sections,
.woocommerce div.product > .fiche__accessoires,
.woocommerce div.product > .fiche__conseils,
.woocommerce div.product > .related,
.woocommerce div.product > .up-sells { grid-column: 1 / -1; }

/* Galerie */
.woocommerce div.product div.images {
	padding: 1rem;
	background: var(--couleur-fond-doux);
	border-radius: var(--rayon-carte);
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce div.product div.images .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0.6rem;
}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 1.5rem;
	right: 1.5rem;
	width: 2.5rem;
	height: 2.5rem;
	background: #fff;
	border-radius: 50%;
	box-shadow: 0 2px 8px rgba(15, 26, 36, 0.18);
}
/* Miniatures : une seule bande qui défile sur le côté (vingt photos sur une remorque faisaient six rangées de vignettes). */
.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	gap: 0.6rem;
	margin: 0.75rem 0 0;
	padding: 0 0 0.4rem;
	list-style: none;
	position: relative;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}
.woocommerce div.product div.images .flex-control-thumbs li { flex: 0 0 4.75rem; float: none; width: 4.75rem; margin: 0; scroll-snap-align: start; }
.woocommerce div.product div.images .flex-control-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border: 2px solid transparent;
	border-radius: 0.5rem;
	opacity: 0.7;
	cursor: pointer;
	transition: opacity 0.15s, border-color 0.15s;
}
.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { opacity: 1; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { border-color: var(--couleur-bouton); }
/* Photo de petite définition : à sa taille, centrée, jamais agrandie et floue */
.woocommerce div.product div.images[data-basse-definition] .woocommerce-product-gallery__image img {
	width: auto;
	max-width: min(100%, 22rem);
	margin-inline: auto;
	padding-block: 1rem;
}

/* Résumé */
.woocommerce div.product .product_title {
	margin: 0 0 0.5rem;
	font-size: clamp(1.65rem, 3.2vw, 2.4rem);
	line-height: 1.1;
}
.woocommerce div.product p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.15rem 0.5rem;
	margin: 0 0 1rem;
	color: var(--couleur-titre);
	font-size: 1.9rem;
	font-weight: 800;
	line-height: 1.15;
}
.woocommerce div.product .woocommerce-product-details__short-description {
	margin: 0 0 1.25rem;
	font-size: 1.02rem;
	line-height: 1.6;
}
.woocommerce div.product .woocommerce-product-details__short-description p { margin: 0 0 0.75rem; }
.woocommerce div.product .woocommerce-product-details__short-description ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce div.product .woocommerce-product-details__short-description ul li {
	position: relative;
	margin: 0;
	padding: 0.35rem 0.85rem 0.35rem 2rem;
	background: var(--teinte);
	border-radius: 999px;
	font-size: 0.88rem;
	font-weight: 700;
	color: var(--couleur-titre);
}
.woocommerce div.product .woocommerce-product-details__short-description ul li::before {
	content: "";
	position: absolute;
	left: 0.75rem;
	top: 50%;
	width: 0.9rem;
	height: 0.9rem;
	transform: translateY(-50%);
	background: var(--couleur-bouton);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 10.5 4 4 8-9'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 10.5 4 4 8-9'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Bloc d'achat : une carte, de l'option au bouton */
.woocommerce div.product form.cart {
	margin: 0 0 0.25rem;
	padding: 1.25rem;
	background: #fff;
	border: 1px solid var(--couleur-bordure);
	border-radius: var(--rayon-carte);
	box-shadow: var(--ombre-douce);
}
.woocommerce div.product form.cart table.variations,
.woocommerce div.product form.cart table.variations tbody,
.woocommerce div.product form.cart table.variations tr,
.woocommerce div.product form.cart table.variations th,
.woocommerce div.product form.cart table.variations td {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	text-align: left;
}
.woocommerce div.product form.cart table.variations tr { margin-bottom: 1.1rem; }
.woocommerce div.product form.cart table.variations th {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
	line-height: 1.2;
}
.woocommerce div.product form.cart table.variations th label {
	color: var(--couleur-titre);
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}
.choix__valeur { color: var(--couleur-texte-doux); font-size: 0.9rem; font-weight: 600; }
.woocommerce div.product form.cart table.variations select { width: 100%; }
.woocommerce div.product form.cart a.reset_variations { display: none !important; }
.choix__effacer {
	display: block;
	margin: -0.35rem 0 0.75rem auto;
	padding: 0.25rem 0;
	border: 0;
	background: none;
	color: var(--couleur-texte-doux);
	font: 600 0.85rem/1.2 var(--police-texte);
	text-decoration: underline;
	text-underline-offset: 0.2em;
	cursor: pointer;
}
.choix__effacer:hover { color: var(--couleur-bouton); }
.choix__effacer[hidden] { display: none; }

/* Choix en boutons */
.choix { display: flex; flex-wrap: wrap; gap: 0.5rem; border-radius: 0.75rem; }
.choix__origine {
	position: absolute !important;
	/* !important : le « min-width: 75% » de WooCommerce sur les select de variations gagne sinon et la page déborde de plus de 500 px. */
	width: 1px !important;
	height: 1px !important;
	min-width: 0 !important;
	max-width: 1px !important;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}
.choix__option {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 2.9rem;
	padding: 0.5rem 1.05rem;
	background: #fff;
	border: 2px solid var(--couleur-bordure);
	border-radius: 0.7rem;
	color: var(--couleur-texte);
	font: 600 0.95rem/1.2 var(--police-texte);
	cursor: pointer;
	transition: border-color 0.15s, background-color 0.15s, box-shadow 0.15s;
}
.choix__option:hover { border-color: var(--couleur-titre); }
.choix__option[aria-checked="true"] {
	background: var(--teinte);
	border-color: var(--couleur-bouton);
	box-shadow: inset 0 0 0 1px var(--couleur-bouton);
	color: var(--couleur-titre);
	font-weight: 800;
}
.choix__option[aria-disabled="true"] {
	background: var(--couleur-fond-doux);
	border-style: dashed;
	color: var(--couleur-texte-doux);
	opacity: 0.6;
	text-decoration: line-through;
	cursor: not-allowed;
}
.choix__pastille {
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(15, 26, 36, 0.25);
}
.choix.est-a-choisir { animation: choix-appel 0.9s ease-out 2; outline: 2px solid var(--erreur); outline-offset: 4px; }
@keyframes choix-appel {
	0%, 100% { transform: translateX(0); }
	20% { transform: translateX(-5px); }
	40% { transform: translateX(5px); }
	60% { transform: translateX(-3px); }
	80% { transform: translateX(3px); }
}
@media (prefers-reduced-motion: reduce) { .choix.est-a-choisir { animation: none; } }

.fiche__resume {
	margin: -0.25rem 0 1rem;
	padding: 0.6rem 0.85rem;
	background: var(--couleur-fond-doux);
	border-radius: 0.6rem;
	color: var(--couleur-texte);
	font-size: 0.92rem;
	font-weight: 600;
}
.fiche__resume[hidden] { display: none; }

/* Disponibilité de la déclinaison choisie ; son prix est déjà en tête de résumé */
.fiche-js .woocommerce-variation-price { display: none; }
.woocommerce div.product form.cart .woocommerce-variation { margin: 0; }
.woocommerce div.product form.cart .woocommerce-variation-description:empty { display: none; }
.woocommerce div.product form.cart .stock {
	margin: 0 0 0.9rem;
	color: var(--couleur-action);
	font-size: 0.92rem;
	font-weight: 700;
}
.woocommerce div.product form.cart .stock.out-of-stock { color: var(--erreur); }

/* Quantité et bouton d'achat */
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 0.75rem;
}
.woocommerce div.product form.cart .quantity {
	display: inline-flex;
	align-items: stretch;
	margin: 0;
	background: #fff;
	border: 2px solid var(--couleur-bordure);
	border-radius: 0.7rem;
	overflow: hidden;
}
.woocommerce div.product form.cart .quantity:focus-within { border-color: var(--couleur-titre); }
.woocommerce div.product form.cart .quantity input.qty {
	width: 3.1rem;
	min-height: 3.2rem;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--couleur-titre);
	font: 800 1.05rem/1 var(--police-texte);
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}
.woocommerce div.product form.cart .quantity input.qty::-webkit-outer-spin-button,
.woocommerce div.product form.cart .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.quantite__bouton {
	flex: 0 0 auto;
	width: 2.9rem;
	border: 0;
	background: var(--couleur-fond-doux);
	color: var(--couleur-titre);
	font: 700 1.4rem/1 var(--police-texte);
	cursor: pointer;
	transition: background-color 0.15s;
}
.quantite__bouton:hover { background: var(--teinte-forte); }
.woocommerce div.product form.cart .single_add_to_cart_button {
	display: inline-flex;
	flex: 1 1 13rem;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 3.4rem;
	padding: 0.8em 1.4em;
	border-radius: 0.7rem;
	font-size: 1.1rem;
	letter-spacing: 0.01em;
	box-shadow: 0 4px 14px color-mix(in srgb, var(--couleur-bouton) 35%, transparent);
	transition: background-color 0.15s, box-shadow 0.15s, transform 0.1s;
}
.woocommerce div.product form.cart .single_add_to_cart_button:active { transform: translateY(1px); }
.woocommerce div.product form.cart .single_add_to_cart_button[data-prix]::after {
	content: "· " attr(data-prix);
	font-weight: 800;
	opacity: 0.95;
}
/* Tant qu'il manque un choix : le bouton reste lisible et cliquable (il explique ce qui manque) */
.woocommerce div.product form.cart button.single_add_to_cart_button.button.alt.disabled,
.woocommerce div.product form.cart button.single_add_to_cart_button.button.alt.disabled:hover {
	background: #cfc8bd;
	box-shadow: none;
	color: #3b4651;
	opacity: 1;
	cursor: pointer;
}
.fiche__aide {
	flex-basis: 100%;
	margin: 0.9rem 0 0;
	color: var(--couleur-texte-doux);
	font-size: 0.92rem;
}
.fiche__aide:empty { display: none; }
.fiche__aide.est-erreur { color: var(--erreur); font-weight: 700; }

/* Garanties */
.fiche__garanties {
	display: grid;
	gap: 0.85rem;
	margin: 1.25rem 0 0;
	padding: 0;
	list-style: none;
}
.fiche__garanties li { display: grid; grid-template-columns: 2.6rem 1fr; gap: 0.85rem; align-items: center; }
.fiche__picto {
	display: grid;
	width: 2.6rem;
	height: 2.6rem;
	place-items: center;
	background: var(--teinte);
	border-radius: 50%;
	color: var(--couleur-bouton);
}
.fiche__picto svg { width: 1.4rem; height: 1.4rem; }
.fiche__garanties strong { display: block; color: var(--couleur-titre); font-size: 0.97rem; }
.fiche__precision { display: block; color: var(--couleur-texte-doux); font-size: 0.9rem; }

.woocommerce div.product .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px solid var(--couleur-bordure);
	color: var(--couleur-texte-doux);
	font-size: 0.88rem;
}
.woocommerce div.product .product_meta > span { display: inline; }
.woocommerce div.product .product_meta a { color: var(--couleur-texte-doux); }
.woocommerce div.product .product_meta a:hover { color: var(--couleur-bouton); }

/* Sections sous la fiche : description, caractéristiques, avis */
.fiche__sections { display: grid; gap: 1.25rem; margin-top: 0.5rem; }
@media (min-width: 62rem) {
	.fiche__sections--deux { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; }
	.fiche__sections--deux .fiche__section--reviews { grid-column: 1 / -1; }
}
.fiche__section {
	padding: 1.5rem;
	background: #fff;
	border: 1px solid var(--couleur-bordure);
	border-radius: var(--rayon-carte);
}
.fiche__section > h2,
.fiche__section .woocommerce-Reviews-title,
.fiche__accessoires > h2,
.woocommerce div.product .related > h2,
.woocommerce div.product .up-sells > h2 { margin: 0 0 1rem; font-size: 1.35rem; }
.fiche__section--description > :last-child { margin-bottom: 0; }
.woocommerce table.shop_attributes { width: 100%; margin: 0; border: 0; border-collapse: collapse; }
.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 0.65rem 0;
	border: 0;
	border-bottom: 1px solid var(--couleur-bordure);
	background: none;
	font-style: normal;
	text-align: left;
}
.woocommerce table.shop_attributes th { width: 42%; color: var(--couleur-texte-doux); font-weight: 600; }
.woocommerce table.shop_attributes td { color: var(--couleur-texte); font-weight: 600; }
.woocommerce table.shop_attributes td p { margin: 0; padding: 0; }
.woocommerce table.shop_attributes tr:last-child th,
.woocommerce table.shop_attributes tr:last-child td { border-bottom: 0; }
.woocommerce #reviews #comments ol.commentlist { padding: 0; }
.woocommerce #reviews .woocommerce-noreviews { margin: 0 0 1rem; color: var(--couleur-texte-doux); }
.woocommerce #reviews #review_form_wrapper { margin-top: 0.5rem; }

/* Pas d'avis : une ligne et un bouton, le formulaire se déplie à la demande */
.fiche__avis-vide { margin: 0 0 1rem; color: var(--couleur-texte-doux); }
.fiche__avis > summary {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.55em 1.2em;
	border: 2px solid var(--couleur-bouton);
	border-radius: 0.7rem;
	color: var(--couleur-bouton);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}
.fiche__avis > summary::-webkit-details-marker { display: none; }
.fiche__avis > summary:hover,
.fiche__avis > summary:focus-visible { background: var(--couleur-bouton); color: #fff; }
.fiche__avis[open] > summary { margin-bottom: 1.25rem; }
.fiche__avis .woocommerce-Reviews-title,
.fiche__avis .woocommerce-noreviews { display: none; }

/* Champs de formulaire de la boutique : avis, connexion, compte, mot de passe perdu */
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="password"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="url"],
.woocommerce form textarea {
	width: 100%;
	min-height: 2.9rem;
	padding: 0.65rem 0.85rem;
	background: #fff;
	border: 1px solid var(--couleur-bordure);
	border-radius: 0.6rem;
	color: var(--couleur-texte);
	font: inherit;
}
.woocommerce form textarea { min-height: 7rem; resize: vertical; }
.woocommerce form input:focus-visible,
.woocommerce form textarea:focus-visible { border-color: var(--couleur-bouton); outline: 3px solid var(--teinte); outline-offset: 0; }
.woocommerce form label { display: block; margin-bottom: 0.3rem; color: var(--couleur-titre); font-weight: 700; }
.woocommerce form .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 0.6rem; }
.woocommerce form .comment-form-cookies-consent label { display: inline; margin: 0; font-weight: 400; }
.woocommerce form .comment-form-cookies-consent input { margin-top: 0.3rem; }
.woocommerce #review_form #respond p { margin: 0 0 1rem; }
.woocommerce #review_form #reply-title { display: block; margin-bottom: 0.75rem; color: var(--couleur-titre); font-size: 1.1rem; font-weight: 800; }
.woocommerce p.stars a { color: var(--couleur-bouton); }

.fiche__accessoires,
.woocommerce div.product .related,
.woocommerce div.product .up-sells { margin-top: 1.5rem; }
.woocommerce div.product .related ul.products,
.fiche__accessoires ul.products { margin-bottom: 0; }

/* Pagination de la boutique */
.woocommerce nav.woocommerce-pagination { margin: 0 0 2.5rem; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 0.4rem; margin: 0; padding: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { float: none; overflow: visible; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.85rem;
	background: #fff;
	border: 1px solid var(--couleur-bordure);
	border-radius: 0.6rem;
	color: var(--couleur-titre);
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus-visible { border-color: var(--couleur-bouton); color: var(--couleur-bouton); background: #fff; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--couleur-titre); border-color: var(--couleur-titre); color: #fff; }

/* Barre d'achat sur téléphone */
.barre-achat {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom));
	background: #fff;
	border-top: 1px solid var(--couleur-bordure);
	box-shadow: 0 -8px 24px rgba(15, 26, 36, 0.14);
	transform: translateY(110%);
	transition: transform 0.2s ease-out;
}
.barre-achat.est-visible { transform: none; }
.barre-achat__texte { display: grid; flex: 1; min-width: 0; line-height: 1.25; }
.barre-achat__titre { overflow: hidden; color: var(--couleur-titre); font-size: 0.9rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.barre-achat__prix { color: var(--couleur-texte-doux); font-size: 0.88rem; font-weight: 700; }
.barre-achat .barre-achat__bouton { flex: 0 0 auto; min-height: 2.9rem; padding: 0.6em 1.2em; border-radius: 0.7rem; font-size: 0.98rem; }
@media (min-width: 62rem) { .barre-achat { display: none; } }
@media (prefers-reduced-motion: reduce) { .barre-achat { transition: none; } }

@media (max-width: 40rem) {
	.woocommerce div.product form.cart { padding: 1rem; }
	.woocommerce div.product p.price { font-size: 1.65rem; }
	.choix__option { flex: 1 1 auto; justify-content: center; }
}

/* ==========================================================================
   Messages WooCommerce (ajout au panier, erreurs)
   ========================================================================== */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1rem;
	margin: 0 0 1.25rem;
	padding: 0.9rem 1.1rem 0.9rem 1.2rem;
	background: var(--teinte);
	border: 1px solid color-mix(in srgb, var(--couleur-bouton) 30%, #fff);
	border-left: 5px solid var(--couleur-bouton);
	border-radius: 0.7rem;
	color: var(--couleur-texte);
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none; }
.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	margin-left: auto;
	float: none;
	padding: 0.65em 1.2em;
	font-size: 0.95rem;
}
.woocommerce-error { background: #fdf0ee; border-color: #f1b4ad; border-left-color: var(--erreur); }
.woocommerce-error li { margin: 0; }

/* ==========================================================================
   Panier et commande (blocs WooCommerce)
   ========================================================================== */
.wc-block-components-button:not(.is-link),
.wp-block-woocommerce-cart .wc-block-cart__submit-button,
.wp-block-woocommerce-checkout .wc-block-components-checkout-place-order-button {
	min-height: 3.2rem;
	background: var(--couleur-bouton);
	border: 0;
	border-radius: 0.7rem;
	color: #fff;
	font-weight: 800;
	transition: background-color 0.15s;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus-visible { background: var(--couleur-bouton-survol); color: #fff; }
.wc-block-components-button:not(.is-link) .wc-block-components-button__text { color: inherit; }
.wc-block-cart-item__product a,
.wc-block-components-product-name {
	color: var(--couleur-titre);
	font-weight: 700;
	text-decoration: none;
}
.wc-block-cart-item__product a:hover,
.wc-block-components-product-name:hover { color: var(--couleur-bouton); text-decoration: underline; }
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout { font-size: 1rem; }
.wc-block-cart-items__header { color: var(--couleur-texte-doux); font-size: 0.8rem; letter-spacing: 0.06em; }
.wc-block-cart-item__product .wc-block-components-product-name { font-size: 1.1rem; }
.wc-block-cart-item__product .wc-block-components-product-price,
.wc-block-cart-item__product .wc-block-components-product-metadata { font-size: 0.95rem; }
.wc-block-cart-item__product .wc-block-components-product-metadata { color: var(--couleur-texte-doux); }
.wc-block-cart-item__total .wc-block-components-product-price { color: var(--couleur-titre); font-size: 1.1rem; font-weight: 800; }
.wc-block-components-quantity-selector { min-height: 2.75rem; border-radius: 0.6rem; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 2.4rem; color: var(--couleur-titre); font-size: 1.15rem; opacity: 1; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { color: var(--couleur-titre); font-size: 1rem; font-weight: 700; }
.wc-block-components-totals-coupon .wc-block-components-panel__button,
.wc-block-components-order-summary .wc-block-components-order-summary-item__description { font-size: 1rem; }
.wc-block-components-totals-item__label { font-weight: 600; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 800; }
.wc-block-components-order-summary,
.wc-block-cart__sidebar .wc-block-components-totals-wrapper { border-radius: 0.6rem; }
.wc-block-components-notice-banner.is-error { border-radius: 0.6rem; }
/* Téléphone : la sélection de quantité et le total ne doivent pas faire déborder le tableau du panier (14 px mesurés à 390 px). */
@media (max-width: 40rem) {
	.wc-block-cart-item__total .wc-block-components-product-price { font-size: 1rem; }
	.wc-block-cart-item__product .wc-block-components-product-name { font-size: 1rem; }
	.wc-block-cart-item__product .wc-block-components-product-price,
	.wc-block-cart-item__product .wc-block-components-product-metadata { font-size: 0.9rem; }
	.wc-block-cart .wc-block-components-quantity-selector { min-height: 2.5rem; }
	.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 2rem; }
	.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__input { width: 2rem; min-width: 0; }
}

/* Panier vide : les cartes du catalogue sous le message, à la largeur du site. */
.panier-vide__produits { margin-top: 1.5rem; }

/* ==========================================================================
   Texte de présentation d'une gamme, sous la grille de produits
   ========================================================================== */
.gamme__texte {
	max-width: 62rem;
	margin: 3rem 0 0;
	padding-top: 1.75rem;
	border-top: 1px solid var(--couleur-bordure);
	color: var(--couleur-texte);
	font-size: 1.02rem;
	line-height: 1.7;
}
.gamme__texte > :first-child { margin-top: 0; }
.gamme__texte > :last-child { margin-bottom: 0; }
.gamme__texte a { color: var(--couleur-accent-texte); }
