/*
Theme Name: Nature Limousin
Theme URI:
Author: VirtualServices
Author URI:
Description: Thème pour la boutique Nature et Limousin
Requires at least: 6.8
Tested up to: 6.8
Requires PHP: 8.0
Version: 1.2.26
License: GNU General Public License v3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: nature-limousin
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, full-site-editing, one-column, template-editing, threaded-comments, translation-ready, wide-blocks

/* Defaults
---------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

a,
button,
input:focus,
input[type="button"],
input[type="submit"],
textarea:focus,
.wp-element-button {
	transition: all 0.3s ease-in-out;
	text-decoration: none;
}

a:focus,
a:hover {
	text-decoration: none;
	text-decoration-thickness: 1px;
	scale: 1.05;
	color: var(--wp--preset--color--contrast);
}

/* Exception : ne pas souligner si l'élément a aussi la classe "no-under" */
a.no-under:hover {
	text-decoration: none;
}
a.no-under {
	text-decoration: none;
}
.no-under {
	text-decoration: none;
}

b,
strong,
th {
	font-weight: var(--wp--custom--font-weight--medium);
}

mark {
	background: linear-gradient(90deg, var(--wp--preset--color--or) 0%, var(--wp--preset--color--or) 100%);
	background-position: 0 85%;
	background-repeat: repeat-x;
	background-size: 100% 15%;
}

/* -- Forms -- */

input,
select,
textarea {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--lato);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: var(--wp--custom--font-weight--light);
	line-height: var(--wp--custom--line-height--body);
	padding: 10px 20px;
	width: 100%;
}

input:focus,
textarea:focus {
	background-color: var(--wp--preset--color--base-1);
	outline: none;
}

input[type="checkbox"],
input[type="image"],
input[type="radio"] {
	width: auto;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
	appearance: none;
}

::placeholder {
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.5;
}

/* Blocks
---------------------------------------- */

/* -- Code -- */

*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--base-1);
	font-size: var(--wp--preset--font-size--small);
	padding: 5px 8px;
}

/* -- Navigation -- */

/* .wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--custom--spacing--gap);
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--custom--spacing--gap);
}

.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
	border: 1px solid currentColor;
	padding: 2px;
}

.has-background .wp-block-navigation__responsive-container-open:focus,
.has-background .wp-block-navigation__responsive-container-open:hover {
	color: var(--wp--preset--color--base);
}

/* -- Navigation Submenu -- */

./* wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--contrast);
	border: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	padding: 10px;
}

.wp-block-navigation :where(.wp-block-navigation__submenu-container) a {
	padding: 2px 10px;
} */

.nav-form .wp-block-navigation-item__content {
	background-image: none !important;
	box-shadow: none !important;
	clip-path: none !important;
	border: none !important;
	position: relative;
	padding: 8px 4px;
	color: #4a3b2a;
	text-decoration: none;
	transition: color 0.25s ease;
}

.nav-form .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: 2px;
	height: 1px;
	background-color: #EEAB00;
	transition: left 0.6s ease, right 0.6s ease;
}

.nav-form .wp-block-navigation-item__content:hover,
.nav-form .wp-block-navigation-item__content:focus {
	color: #EEAB00;
}

.nav-form .wp-block-navigation-item__content:hover::after,
.nav-form .wp-block-navigation-item__content:focus::after {
	left: 4px;
	right: 4px;
}

.nav-form .wp-block-navigation-item__content[aria-current="page"] {
	color: #EEAB00;
	font-weight: 400;
}

.nav-form .wp-block-navigation-item__content[aria-current="page"]::after {
	left: 4px;
	right: 4px;
}

/* -- navigation icone boutique -- */
.effect-boutique {
	position: relative;
	display: flex;
	align-items: center;
	overflow: visible;
}

.txt-boutique {
	position: absolute;
	right: 100%;
	top: 50%;
	transform: translate(10px, -50%);
	/* Chaque lien de menu (.wp-block-navigation-item__content) est en
	   position:relative (thème) + z-index:1 (CSS cœur WordPress) : il crée
	   donc un contexte d'empilement qui passait DEVANT cette infobulle
	   (z-index:auto). Invisible sur grand écran (l'infobulle s'ouvre dans
	   l'espace vide entre menu et icônes), visible sur petit écran où elle
	   chevauche le dernier lien. z-index:10 la repasse par-dessus le menu. */
	z-index: 10;
	margin: 0;
	padding-right: 8px;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

/* Pont invisible entre la pastille et l'icône : sans lui, l'espace transparent
   qui les sépare (marge du bloc + retrait de position) est hors de .effect-boutique,
   donc le survol se perd avant d'atteindre la pastille et elle disparaît. Ce
   pseudo-élément prolonge la zone survolable de la pastille jusque sur l'icône,
   pour pouvoir amener la souris sur la pastille et suivre son lien. */
.txt-boutique::after {
	content: "";
	position: absolute;
	left: 100%;
	top: -6px;
	bottom: -6px;
	width: 1rem;
}

.effect-boutique:hover .txt-boutique {
	opacity: 1;
	transform: translate(0, -50%);
	pointer-events: auto;
}

/* Utility
---------------------------------------- */

/* -- Box Shadow -- */

.is-style-shadow-light {
	box-shadow: var(--wp--preset--shadow--light);
}

.is-style-shadow-solid {
	box-shadow: var(--wp--preset--shadow--solid);
}

/* Media Queries
---------------------------------------- */

@media only screen and (max-width: 782px) {

	/* -- Utility -- */

	.is-style-hidden-mobile {
		display: none !important;
	}

}

@media only screen and (min-width: 782px) {

	/* -- cacher pour pc -- */

	.is-style-hidden-screen {
		display: none !important;
	}
}

@media only screen and (max-width: 782px) {

	/* -- Columns -- */

	.is-style-columns-reverse {
		flex-direction: column-reverse;
	}

}

/* variables
---------------------------------------- */

:root {
	--wp--preset--color--or: #eeab00;
	--wp--preset--color--brun: #795035;
	--wp--preset--color--base: #f8f5ee;
	--wp--preset--color--contrast: #472e23;
	--wp--preset--color--base-1: #ede6d4;
	--wp--preset--color--base-2: #B3AFAC;
	--wp--preset--color--base-3: #8D827A;
	--wp--preset--color--base-4: #6C5549;
}

body {
	color: var(--wp--preset--color--contrast);
	background-color: var(--wp--preset--color--base);
}

/* ---- header ----
---------------------------------------- */

.header-sticky-container {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: 999;
}
.header-sticky-container-inner {
	position: fixed;
	top: 40px;
	left: 0;
	width: 100%;
	z-index: 999;
}

/* --- catalogue produits --
---------------------------------------- */

/* -- bouton ajout au panier -- */

.btn-ajoutpanier.wp-block-button__link,
.button,
.add_to_cart_button,
.woocommerce a.button,
.wp-block-button__link.wp-element-button.wc-block-components-product-button__button {
	padding: 2px;
	z-index: 50;
	transition: all 0.3s ease-in-out;
	background-color: var(--wp--preset--color--base-1) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.btn-ajoutpanier.wp-block-button__link:hover,
.button:hover,
.add_to_cart_button:hover,
.woocommerce a.button:hover,
.wp-block-button__link.wp-element-button.wc-block-components-product-button__button:hover {
	background-color: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--base-4) !important;
}

/* Bouton "Ajouter au panier" de la fiche produit (.single_add_to_cart_
   button) : au repos il héritait du même fond crème pâle (base-1) que
   tous les autres boutons, quasiment invisible sur le fond de page (à
   peine 1,14:1 de contraste, mesuré) — il ne devenait vraiment visible
   qu'au survol. Signalé par Sébastien le 24/08, notamment pour les
   déficients visuels. Passé en doré par défaut (6,22:1 avec ce texte,
   conforme AA) plutôt que seulement au survol — brun plus foncé au
   survol pour garder un retour visuel à l'interaction (6,4:1). Texte en
   `contrast` plutôt que `base-4` (utilisé ailleurs sur fond doré) : la
   combinaison or/base-4 ne fait que 3,45:1, sous le seuil AA (4,5:1)
   pour du texte de taille normale — écart volontaire à la convention
   existante pour rester réellement accessible. Scopé à ce seul bouton
   (pas aux autres boutons du site, ex. vignettes catalogue) pour ne
   changer que ce qui a été signalé. */
.single_add_to_cart_button.button {
	background-color: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--contrast) !important;
	font-weight: 700;
	padding-left: 24px;
	padding-right: 24px;
}

.single_add_to_cart_button.button:hover {
	background-color: var(--wp--preset--color--brun) !important;
	color: var(--wp--preset--color--base) !important;
}

.btn-validate {
	background-color: var(--wp--preset--color--or);
	color: var(--wp--preset--color--base-4);
	border-radius: 3px;
	padding: 10px 20px;
	font-size: 16px;
	font-weight: bold;
	transition: all 0.3s ease-in-out;
}
.btn-validate:hover {
	background-color: var(--wp--preset--color--brun);
	color: var(--wp--preset--color--base);
}

.panier-colonne {
	border-right: 1px solid;
	border-color: var(--wp--preset--color--base-2)!important;
}

.gp-panier-tarif {
	z-index: 5;
}

a.added_to_cart {
	margin-top: 0;
}
.woocommerce a.added_to_cart {
	padding-top: 0;
}

/* -- validation de commande -- */
.wc-block-checkout__shipping-method-option.wc-block-checkout__shipping-method-option--selected {
	background-color: var(--wp--preset--color--base-1);
	outline: 1px solid var(--wp--preset--color--or);
}

/* Boutons radio WooCommerce Blocks */
.wc-block-components-radio-control__input[type="radio"] {
	padding: 0 !important;
	width: 1em !important;
	height: 1em !important;
	min-width: 0 !important;
	min-height: 0 !important;
	appearance: none;
	border: 2px solid var(--wp--preset--color--brun);
	border-radius: 50%;
	background-color: white;
}
.wc-block-components-radio-control__input[type="radio"]:checked::before {
	content: '';
	display: block;
	width: 0.5em;
	height: 0.5em;
	margin: auto;
	background-color: var(--wp--preset--color--or);
	border: 1px solid var(--wp--preset--color--or);
	border-radius: 50%;
}

/* -- liste produits : encadrement des produits -- */
/* .border-products-model.wc-block-product-template {
	margin: 0;
	padding: 0;
	gap: 0;
}
.border-products-model.wc-block-product-template>li {
	margin: 0px;
	padding: 10px;
	border-left-width: 0px;
	border-bottom-width: 1px;
	border-top-width: 0px;
	border-right-width: 1px;
	border-color: var(--wp--preset--color--base-2);
	border-style: solid;
}

/* -- liste produits : encadrement des produits dans la catégorie maison-- */
/* .border-products-mode.wc-block-product-template {
	margin: 0;
	padding: 10px;
	gap: 0;
}
.border-products-mode.wc-block-product-template>li {
	margin: 0px;
	padding: 10px;
	border-width: 0px;
	border-color: var(--wp--preset--color--base-2);
	border-style: solid;
} */

.fiche-produits:hover {
	box-shadow: 0 0 0 1px rgba(181, 26, 0, 0.83);
	-webkit-box-shadow: 0 0 0 1px rgba(181, 26, 0, 0.83);
	border-style: solid;
	border-width: 1px;
	border-color: #B3AFAC;
}

/* -- colonnes gauche filtres sticky -- */
.gp-filtres-sticky {
/* 	position: sticky;
	top: 100px; */
}

/* Styles pour le tri des produits */
.woocommerce-ordering {
	margin-bottom: 20px;
}
.woocommerce-ordering select {
	padding: 8px 12px;
	border: 1px solid var(--wp--preset--color--or);
	border-radius: 4px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 14px;
	font-family: var(--wp--preset--font-family--exo);
	cursor: pointer;
	transition: all 0.3s ease;
}
.woocommerce-ordering select:hover {
	border-color: var(--wp--preset--color--base-1);
}
.woocommerce-ordering select:focus {
	outline: none;
	border-color: var(--wp--preset--color--or);
	box-shadow: 0 0 0 2px rgba(238, 171, 0, 0.1);
}

/* Style des tris des filtres */
.filtres {
	border-bottom: 1px solid var(--wp--preset--color--base-2);
}

/* filtrer par prix */
.wc-block-components-price-slider__range-input-progress {
	--range-color: var(--wp--preset--color--or);
}

/* Bloc principal des filtres */
.filtre-collection .wc-block-active-filters {
	display: flex;
	gap: 1rem;
}
.filtre-collection .wc-block-active-filters__clear-all {
	margin: 0;
	cursor: pointer;
}

/* --- styles généraux --
---------------------------------------- */


.crochet:hover::before {
		content: '{ ';
		color: var(--wp--preset--color--or);
	}

.crochet:hover::after {
		content: ' }';
		color: var(--wp--preset--color--or);
	}

/* --- mondial-relay --
---------------------------------------- */

#mrwpbutton {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: fit-content;
	text-align: center;
	border: 0;
	background-color: transparent !important;
}
#modaal_link {
	background-color: #eeab00 !important;
	border: 0;
	font-size: 1rem;
}
#modaal_link:hover {
	background-color: var(--wp--preset--color--base-1) !important;
	color: var(--wp--preset--color--contrast) !important;
	font-weight: bold;
}

.MR-Widget .MRW-BtGo {
	font-family: var(--wp--preset--font-family--exo);
	border: solid 1px var(--wp--preset--color--or) !important;
	background: var(--wp--preset--color--or) !important;
	border-radius: 5px;
	color: #FFFFFF;
}
.MRW-BtGeoGo {
	border-color: var(--wp--preset--color--or) !important;
}
.PR-City {
	background-color: var(--wp--preset--color--base-1) !important;
	border-color: var(--wp--preset--color--or) !important;
	font-size: medium;
}
.modaal-container {
	background-color: var(--wp--preset--color--base-2) !important;
	border-radius: 25px;
}
#modaal-close {
	background-color: var(--wp--preset--color--base-1);
}
@supports (display:flex) {
	@media screen and (min-width:1000px) {
		button.modaal-close {
			right: 10px;
		}
	}
}
button.modaal-close {
	position: absolute;
	right: 10px;
	top: 10px;
}
#delivery_point_chosen {
	background-color: var(--wp--preset--color--base-1) !important;
	font-size: 1em;
	border: 0;
	border-radius: 5px;
}
#delivery_point_chosen:hover {
	background-color: var(--wp--preset--color--or) !important;
}
.modaal-inner-wrapper {
	background-color: rgba(155, 145, 141, 0.85);
}
.MR-Widget .PR-hover,
MR-Widget PR-Selected {
	border-left: solid 2px red;
	background: #eeab0088 !important;
}
.MR-Widget .PR-hover,
.MR-Widget .PR-Selected {
	border-left: solid 2px #96154a;
	background: var(--wp--preset--color--or) !important;
}

/* --- Colissimo --
---------------------------------------- */

#lpc_pick_up_widget_show_map {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: fit-content;
	text-align: center;
	background-color: var(--wp--preset--color--or);
	font-size: 1rem;
	font-weight: bold;
}
#lpc_pick_up_widget_show_map:hover {
	background-color: var(--wp--preset--color--base-1);
	color: var(--wp--preset--color--contrast);
	font-weight: bold;
}

/* --- zoom sur les images produits --
---------------------------------------- */
/* Le transform ne cible que l'<img> — les badges (Promo, saison) sont des
   éléments frères positionnés en absolute par rapport à .img-produits
   (position:relative ci-dessous), jamais des descendants de l'image : un
   transform sur l'<img> ne modifie donc pas leur position. Voir
   07-SUIVI-ACTIONS.md (20/08) si un décalage réapparaît malgré tout. */

.img-produits {
	overflow: hidden;
	display: block;
	position: relative;
	z-index: 1;
}
.img-produits img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s ease;
	z-index: 1;
}
.img-produits:hover img {
	transform: scale(1.2);
}


.wp-block-button__link.wp-element-button.wc-block-components-product-button__button.product_type_grouped.has-background.has-base1-background-color.has-font-size.has-x-small-font-size.has-text-color.has-contrast-color.wc-interactive {
	border-radius: 3px;
	margin-top: 0;
	margin-bottom: 0;
	margin-left: 0;
	margin-right: 0;
}

/* Formulaire espace pro — [nl_login_form] / [nl_pro_registration_form]
---------------------------------------- */

/* Panneau masqué par défaut, affiché au clic sur .gp-afficher-inscription
   (voir le script dans wp_footer, nature-limousin-fonctions.php). */
.gp-panel-inscription {
	display: none;
}

.woocommerce-form-login .woocommerce-Input {
	width: 100%;
	padding: 10px;
	margin-bottom: 18px;
	border: 1px solid var(--wp--preset--color--base-2);
	border-radius: 5px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-size: 1em;
	box-sizing: border-box;
}

.woocommerce-form-login .woocommerce-form-login__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px !important;
	border-radius: 8px;
	background-color: var(--wp--preset--color--base-1) !important;
	color: var(--wp--preset--color--base-4) !important;
	border: none;
	font-weight: bold;
	cursor: pointer;
	line-height: normal;
}

.woocommerce-form-login .woocommerce-form-login__submit:hover {
	background-color: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--base-4) !important;
}

.woocommerce-form-login .lost_password a {
	color: var(--wp--preset--color--or);
	text-decoration: underline;
}

.woocommerce-form-login .lost_password a:hover {
	color: var(--wp--preset--color--contrast);
}

.gp-afficher-inscription,
.gp-afficher-connexion {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px !important;
	border-radius: 8px;
	background-color: var(--wp--preset--color--base-1) !important;
	color: var(--wp--preset--color--base-4) !important;
	text-decoration: none;
	line-height: normal;
	/* Le blockGap natif ne s'applique pas de façon fiable entre le bouton
	   d'envoi (rendu par le shortcode Gravity Forms / le formulaire de
	   connexion WooCommerce, hors flux de blocs Gutenberg) et ce lien —
	   marge explicite pour garantir l'espacement quel que soit le contexte. */
	margin-top: var(--wp--preset--spacing--x-small);
}

.gp-afficher-inscription:hover,
.gp-afficher-connexion:hover {
	background-color: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--base-4) !important;
}

/* Liste des moyens de paiement disponibles — [nl_moyens_paiement_disponibles]
   (page Mon compte). Rendu par shortcode, hors flux de blocs Gutenberg :
   pas de style de liste natif hérité, mise en forme explicite ici. */
.nl-moyens-paiement-disponibles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--xx-small);
}

.nl-moyens-paiement-disponibles li {
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--base-2);
	border-radius: 5px;
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* Bandeau catégorie PRO
---------------------------------------- */

/* Bloc Groupe "gp-infos-pro", composé dans l'éditeur (description de
   catégorie + boutons de connexion) — voir le filtre render_block_core/group
   dans nature-limousin-fonctions.php qui le masque hors de la catégorie
   "Gamme pro" / pour les comptes déjà pro. */
.gp-infos-pro {
	background: #f8f6f3;
	border: 1px solid var(--wp--preset--color--or);
	padding: 24px 20px;
	margin: 30px;
	border-radius: 8px;
}

.gp-infos-pro .wp-block-buttons {
	margin-top: 20px;
}

.gp-infos-pro .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px !important;
	border-radius: 8px;
	background-color: var(--wp--preset--color--base-1) !important;
	color: var(--wp--preset--color--base-4) !important;
	text-decoration: none;
	line-height: normal;
}

.gp-infos-pro .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--or) !important;
	color: var(--wp--preset--color--base4) !important;
}

/* Sélecteurs natifs (select) : texte coupé
---------------------------------------- */

/* La hauteur de ligne globale du thème (1.75) est trop grande pour la
   hauteur fixe des <select> (ex. sélecteur de variation produit
   WooCommerce), dont le padding est calculé pour une hauteur de ligne
   normale — le texte affiché se retrouve coupé en haut/bas. */
select {
	line-height: normal;
}

/* Bloc "Ajouter au panier" (produits variables) : mise en forme
---------------------------------------- */

/* Le tableau .variations (généré par WooCommerce) et le sélecteur de
   quantité (bloc WooCommerce) ont un rendu par défaut mal aligné et peu
   soigné. Reprise en flexbox pour aligner proprement libellé / select /
   lien "Effacer", puis prix et bloc quantité + bouton. */

.wp-block-add-to-cart-form .variations {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 18px;
}

.wp-block-add-to-cart-form .variations tbody {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.wp-block-add-to-cart-form .variations tr {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
}

.wp-block-add-to-cart-form .variations th.label,
.wp-block-add-to-cart-form .variations td.value {
	display: block;
	padding: 0;
}

.wp-block-add-to-cart-form .variations th.label label {
	margin: 0;
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

.wp-block-add-to-cart-form .variations td.value {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 14px;
}

.wp-block-add-to-cart-form .variations select {
	border: 1px solid var(--wp--preset--color--base-2);
	border-radius: 5px;
	padding: 10px 40px 10px 14px;
	background-color: #fff;
	font-family: var(--wp--preset--font-family--lato);
	min-width: 200px;
	cursor: pointer;
}

.wp-block-add-to-cart-form .variations select:focus {
	outline: none;
	border-color: var(--wp--preset--color--or);
	box-shadow: 0 0 0 2px rgba(238, 171, 0, 0.25);
}

.wp-block-add-to-cart-form .reset_variations {
	font-size: 0.85em;
	color: var(--wp--preset--color--base-4);
	text-decoration: underline;
}

.wp-block-add-to-cart-form .reset_variations:hover {
	color: var(--wp--preset--color--or);
}

/* Sur les produits variables, le prix "Dès X €" ne veut plus dire grand
   chose une fois qu'une variante est choisie (voir tarif affiché sur
   chaque bouton, ci-dessus) — masqué au profit du tarif définitif
   ci-dessous, repris avec la même mise en forme que le prix "Dès X €"
   d'origine pour ne pas créer de rupture visuelle. */
.wp-block-column:has(.nl-radio-options) > .wp-block-woocommerce-product-price {
	display: none;
}

.wp-block-add-to-cart-form .woocommerce-variation-price {
	text-align: center;
	margin-bottom: 16px;
}

.wp-block-add-to-cart-form .woocommerce-variation-price .price {
	font-size: 24px;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

/* Prix au litre/kilo (plugin nl-prix-unitaire) : centré comme le reste du
   bloc de prix ci-dessus — injecté dans la description de variation
   (variation_description), un conteneur distinct de .woocommerce-
   variation-price qui n'hérite donc pas de son text-align:center.
   Signalé par Sébastien le 24/08. */
.nl-prix-unitaire {
	text-align: center;
}

.wp-block-add-to-cart-form .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* Stepper quantité : reprise du style déjà utilisé sur les vignettes
   produits au survol (.nl-loop-qty / .nl-qty-btn / .nl-qty-input, voir
   nature-limousin-catalogue/assets/css/loop-add-to-cart.css), pour une
   apparence cohérente entre la boutique et la fiche produit. */
.wp-block-add-to-cart-form .quantity.wc-block-components-quantity-selector {
	display: inline-flex;
	align-items: stretch;
	/* !important nécessaire : WooCommerce Blocks injecte un fond blanc en style
	   inline (spécificité élevée, propre au style "stepper") pour ce composant. */
	background: transparent !important;
	border: none;
	border-radius: 50px;
	overflow: hidden;
	height: 48px;
}

.wp-block-add-to-cart-form .wc-block-components-quantity-selector__button {
	appearance: none;
	background: transparent;
	border: none;
	cursor: pointer;
	font-size: 1.1em;
	line-height: normal;
	padding: 0;
	width: 42px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--contrast);
}

.wp-block-add-to-cart-form .wc-block-components-quantity-selector__button:hover,
.wp-block-add-to-cart-form .wc-block-components-quantity-selector__button:focus-visible {
	background: var(--wp--preset--color--base-1);
	border-radius: 50px;
}

.wp-block-add-to-cart-form .wc-block-components-quantity-selector__button:active {
	background: var(--wp--preset--color--or);
}

/* !important nécessaire : WooCommerce Blocks injecte pour ce champ un style
   inline plus spécifique (line-height, padding) que la présente règle. */
.wp-block-add-to-cart-form .wc-block-components-quantity-selector__input {
	background: transparent;
	border: none;
	box-sizing: border-box !important;
	text-align: center;
	width: 44px;
	height: 48px;
	padding: 0 !important;
	line-height: 46px !important;
	font-family: var(--wp--preset--font-family--lato);
}

.wp-block-add-to-cart-form .wc-block-components-quantity-selector__input:hover {
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--or);
}

.wp-block-add-to-cart-form .wc-block-components-quantity-selector__input:focus-visible {
	background: var(--wp--preset--color--or);
	outline: none;
}

.wp-block-add-to-cart-form .single_add_to_cart_button {
	height: 48px;
	display: inline-flex;
	align-items: center;
}

/* Étiquettes d'attribut produit (bloc nature-limousin/product-attribute-tags)
---------------------------------------- */

.nl-product-attribute-tags {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0;
}

.nl-product-attribute-tags-label {
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.nl-product-attribute-tags-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nl-product-attribute-tags-item {
	background: var(--wp--preset--color--base-1);
	color: var(--wp--preset--color--base-4);
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 0.85em;
}

/* Filtre d'attribut (colonne accordéon) : mettre en avant le parfum "Neutre"
---------------------------------------- */

/* Accroche sur la valeur du champ (value="neutre"), pas sur le texte affiché
   (qui peut changer de casse — ex. "Neutre" -> "NEUTRE" — sans casser ce
   style). Mise en forme discrète (gras + soulignement léger) : un fond plein
   se confondait visuellement avec l'état "sélectionné" de la case à cocher.
   Le soulignement est posé sur __text-wrapper, pas sur __text : ce dernier a
   un display:contents (imposé par WooCommerce, aucune boîte propre) sur
   lequel Safari ne peint pas le soulignement, contrairement aux autres
   navigateurs. */
.wc-block-product-filter-checkbox-list__item:has(input[value="neutre"]) .wc-block-product-filter-checkbox-list__text {
	font-weight: 700;
}

.wc-block-product-filter-checkbox-list__item:has(input[value="neutre"]) .wc-block-product-filter-checkbox-list__text-wrapper {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

/* Logos produit : le groupe qui les contient dans le modèle "Produit
   unique" utilise le réglage de mise en page natif du bloc Groupe (flex),
   réglable directement dans l'éditeur — aucun CSS dédié nécessaire ici. */

/* Panier — masquer le détail de TVA sous le Total ("Dont X€ dans les
   taxes"). Décision du 19/08 : le prix TTC affiché reste l'obligation
   légale (Code de la consommation), le détail de la TVA n'est requis que
   sur la facture, pas dans le panier. Aucun réglage WooCommerce ni point
   d'extension des blocs ne permet de retirer uniquement cette ligne (elle
   est codée en dur dans le composant "Total", contrairement au bloc
   "Taxes" séparé qui, lui, se masque déjà tout seul en mode TTC) — retrait
   par CSS ciblé, aucune autre ligne du panier n'est affectée.
   Sélecteur composé obligatoire (pas juste la classe seule) : WooCommerce
   Blocks pose déjà `.wc-block-components-totals-footer-item
   .wc-block-components-totals-footer-item-tax { display:flex }` — même
   spécificité (deux classes) nécessaire pour gagner la cascade, sinon leur
   règle l'emporte et la ligne (y compris son état de chargement "Inclus…"
   avant que le montant n'arrive) reste visible malgré le display:none. */
.wc-block-components-totals-footer-item .wc-block-components-totals-footer-item-tax {
	display: none;
}

/* Notifications de la boutique (bloc natif WooCommerce
   "woocommerce/store-notices" : messages "ajouté au panier", erreurs de
   formulaire...) — visible à plusieurs endroits du site (fiche produit,
   panier, formulaires). Son block.json ne déclare aucun support de
   couleur (uniquement l'alignement) : pas de réglage possible depuis
   l'éditeur, personnalisation obligatoire en CSS ciblé.
   Décision du 24/08 : reprendre les couleurs de marque du thème plutôt
   que le vert/rouge/bleu/orange par défaut de WooCommerce, mais garder un
   repère visuel fort entre "succès" (discret, contour doré) et "erreur"
   (fond doré plein, la variante la plus visible — pour sauter aux yeux
   immédiatement dans un formulaire).
   Sélecteurs ancrés sur le conteneur .wc-block-store-notices (plutôt que
   la classe seule) pour gagner la spécificité face aux règles WooCommerce
   sans dépendre de l'ordre de chargement des feuilles de style. */
.wc-block-store-notices .wc-block-components-notice-banner {
	background-color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--or);
	color: var(--wp--preset--color--contrast);
}

.wc-block-store-notices .wc-block-components-notice-banner > svg {
	background-color: var(--wp--preset--color--or);
	fill: var(--wp--preset--color--base);
}

/* WooCommerce force déjà `color` en !important sur ce lien — seul moyen de
   l'emporter à spécificité égale. */
.wc-block-store-notices .wc-block-components-notice-banner .wc-forward {
	color: var(--wp--preset--color--contrast) !important;
}

/* Succès / info / avertissement : fond neutre, contour et icône dorés —
   reste discret, ne rivalise pas avec l'alerte d'erreur ci-dessous. */
.wc-block-store-notices .wc-block-components-notice-banner.is-success,
.wc-block-store-notices .wc-block-components-notice-banner.is-info,
.wc-block-store-notices .wc-block-components-notice-banner.is-warning {
	background-color: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--or);
}

/* Erreur : seule variante en fond doré plein. Icône en foncé (pas doré
   sur doré) pour rester visible sur ce fond. */
.wc-block-store-notices .wc-block-components-notice-banner.is-error {
	background-color: var(--wp--preset--color--or);
	border-color: var(--wp--preset--color--contrast);
}

.wc-block-store-notices .wc-block-components-notice-banner.is-error > svg {
	background-color: var(--wp--preset--color--contrast);
	fill: var(--wp--preset--color--base);
}

/* Notifications "classiques" WooCommerce (wc_print_notices(), markup
   .woocommerce-message/-error/-info) — coexistent avec le bloc ci-dessus
   sur les pages non construites en blocs (ex. Mon compte / connexion).
   Même traitement de marque, pour une couleur cohérente quel que soit le
   système qui affiche le message. Par défaut WooCommerce ne distingue
   même pas visuellement succès/erreur/info ici (même violet #720eec pour
   les trois, voir woocommerce.css) — on reprend ici la même distinction
   que sur la version bloc.
   Préfixe `body` pour égaler la spécificité de la règle WooCommerce
   native (regroupée sur les 3 classes) sans dépendre de l'ordre de
   chargement des feuilles de style — même principe que plus haut. */
body .woocommerce-message,
body .woocommerce-info {
	background-color: var(--wp--preset--color--base);
	border-top-color: var(--wp--preset--color--or);
	color: var(--wp--preset--color--contrast);
}

/* Marge résiduelle du CSS classique WooCommerce
   (.woocommerce div.product form.cart{margin-bottom:2em}, voir
   woocommerce.css) — s'applique ici car <body> ET le Groupe qui enveloppe
   le bloc "Ajouter au panier" portent tous les deux les classes
   "woocommerce"/"product" (convention WooCommerce, pas propre à ce
   thème). Pensée à l'origine pour espacer le formulaire d'achat du
   contenu classique qui suivait (onglets produit, produits liés) sur un
   thème non basé sur les blocs — ici l'espacement entre sections est déjà
   géré par les réglages natifs des blocs : cette marge fixe s'ajoutait en
   double, sans rôle utile. Signalé par Sébastien le 24/08.
   ⚠️ Un premier essai préfixait ce sélecteur par `body ` pour gagner en
   spécificité — cassé : les classes "woocommerce" et "product" sont
   portées par le MÊME élément (<body>, puis à nouveau le même sur le
   Groupe juste en dessous), pas par deux ancêtres distincts. Le préfixe
   `body ` exigeait donc un niveau d'ancêtre supplémentaire qui n'existe
   pas dans cette structure précise — la règle ne pouvait structurellement
   jamais matcher. Corrigé en doublant la classe `.cart` du sélecteur
   d'origine (`.cart.cart`) : gagne en spécificité sans exiger la moindre
   structure de DOM supplémentaire, cible exactement les mêmes éléments
   que la règle WooCommerce native. */
.woocommerce div.product form.cart.cart {
	margin-bottom: 0;
}

body .woocommerce-error {
	background-color: var(--wp--preset--color--or);
	border-top-color: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--contrast);
}
