/*
 * Le Naturiste – styles de la refonte 2026 (maquette nat_maquette_2.pdf)
 * CSS brut (pas de build). Chargé après noxshop.css et le kit Elementor.
 */

/* Variables (valeurs des variables globales V4 Elementor, mêmes libellés que dans le kit) */
:root
{
	/* Couleurs (maquette) */
	--noir: #000000;
	--blanc: #FFFFFF;
	--rose: #FFCCD7;
	--jaune: #FFFAAA;
	--gris-clair: #F3F3F3;

	/* Police (« Left », police personnalisée Elementor Pro, fichiers dans speednox/fonts/Left) */
	--police: "Left";

	/* Tailles de texte — PAS de clamp() (règle projet).
	   Phase 8 (retour 05.11) : base 14 px = 20 pt de la maquette (p. 5 : texte courant, menu), titres 24 px ;
	   cartes, filtres et footer gardent 12 px (le footer entier à 12 px, une seule taille).
	   Les variables V4 du kit portent la valeur desktop ; paliers tablette / mobile plus bas (media queries). */
	--taille-titre: 24px;       /* 35 pt : titres de section */
	--taille-sous-titre: 14px;  /* 20 pt : menu, langues, sous-titres */
	--taille-texte: 14px;       /* 20 pt : texte courant, boutons */
	--taille-carte: 12px;       /* 15 pt : cartes produit, footer, filtres */
	--taille-petit: 12px;       /* 15 pt */
	--taille-mini: 10.5px;      /* 13 pt : mentions (plus utilisé dans le footer) */

	/* Mise en page */
	--largeur-conteneur: 1140px;
	--marge-laterale: 25px;
	--espacement-section: 30px; /* maquette : ~20-30 px au-dessus et au-dessous des sections */
	--gouttiere: 25px;
	--bordure: 1px;
}
@media (max-width: 1024px) {
	:root { --taille-titre: 22px; --marge-laterale: 20px; --espacement-section: 25px; }
}
@media (max-width: 767px) {
	:root { --taille-titre: 20px; --marge-laterale: 16px; --espacement-section: 20px; }
}

/* Boutons et liens V4 : noxshop.css souligne tous les liens du contenu
   (body.elementor-default .elementor .elementor-widget-theme-post-content a:not(.button)…),
   ce qui l'emporte sur les classes globales V4 (.elementor .bouton-contour).
   Mêmes :not() que la règle d'origine pour la dépasser en spécificité. */
body.elementor-default .elementor .elementor-widget-theme-post-content a.e-button-base:not(.button):not(.woocommerce-loop-product__link):not(.elementor-button-link)
{
	text-decoration: none;
}
body.elementor-default .elementor .elementor-widget-theme-post-content a.e-button-base.lien-majuscule:not(.button):not(.woocommerce-loop-product__link):not(.elementor-button-link):hover
{
	text-decoration: underline;
}


/* ==================================================================
 * Header 2026 (template Theme Builder « Header 2026 (refonte) »)
 * ================================================================== */

/* Bandeau blup (repris du header V3) — TEMPORAIRE : à retirer après le festival (15.11.2026).
   Visible sur l'accueil seulement. */
@font-face {
	font-family: 'ES Peak Rounded';
	src: url('https://blupfestival.ch/wp-content/uploads/fonts/ESPeakRounded-Regular.ttf') format('truetype');
	font-display: swap;
}
body:not(.home):not(.elementor-editor-active) .bandeau-blup { display: none !important; }
.bandeau-blup { width: 100%; background: #00DCED; border-bottom: 2px solid #000; }
.bandeau-blup .bb-lien,
.bandeau-blup .bb-lien:hover {
	display: flex; align-items: center; justify-content: center; gap: 28px;
	padding: 8px 16px; color: #000 !important; text-decoration: none;
	font-family: 'ES Peak Rounded', sans-serif; font-weight: 400;
}
.bandeau-blup .bb-blup { font-size: 36px; line-height: 1; }
.bandeau-blup .bb-nom, .bandeau-blup .bb-date { font-size: 18px; line-height: 1.2; }
.bandeau-blup .bb-bouton {
	background: #FA4616; border: 1.5px solid #000; border-radius: 999px;
	padding: 6px 20px; font-size: 16px; line-height: 1.2; transition: .2s;
}
.bandeau-blup .bb-lien:hover .bb-bouton { background: #000; color: #fff; }
.bandeau-blup .bb-mobile { display: none; }
@media (max-width: 767px) {
	.bandeau-blup .bb-lien { gap: 14px; padding: 6px 12px; }
	.bandeau-blup .bb-blup { font-size: 28px; }
	.bandeau-blup .bb-nom, .bandeau-blup .bb-desktop { display: none; }
	.bandeau-blup .bb-mobile { display: inline; }
	.bandeau-blup .bb-bouton { padding: 4px 14px; font-size: 15px; }
}

/* ==================================================================
 * Header Shoptimizer habillé Naturiste (phase 7, speednox/naturiste-header-footer.php)
 * Desktop ≥ 993 px (point de rupture Shoptimizer) : langues | logo centré | loupe, compte, panier
 * puis menu principal réparti sur la largeur ; au défilement, la barre de menu reste collée (is_stuck)
 * avec le signe du logo et le panier, comme château3.
 * ================================================================== */
.nat-texte-defilant { background: var(--noir); }
/* Ancien CSS (naturiste-legacy) : .marquee-container { margin: 0 -10px } → 20 px de trop, défilement horizontal sur toutes les pages */
.nat-texte-defilant .marquee-container { margin: 0; }
#masthead.site-header,
.col-full-nav { background: var(--rose); border: 0; }
.site-header .main-header.col-full,
.col-full-nav .shoptimizer-primary-navigation.col-full,
.site-footer.nat-footer .col-full {
	box-sizing: border-box; max-width: calc(var(--largeur-conteneur) + 2 * var(--marge-laterale));
	padding-left: var(--marge-laterale); padding-right: var(--marge-laterale);
}

/* Langues FR • EN • DE */
.nat-langues .nat-langues-liste { display: flex; align-items: center; margin: 0; padding: 0; list-style: none; }
.nat-langues .nat-langues-liste li { margin: 0; list-style: none; }
.nat-langues .nat-langues-liste li + li::before { content: "•"; margin: 0 6px; }
.nat-langues a,
.nat-langues .nat-langues-liste li::before {
	font-family: var(--police); font-size: var(--taille-sous-titre); line-height: 1; color: var(--noir); text-decoration: none;
}
.nat-langues a:hover,
.nat-langues .current-menu-item a { text-decoration: underline; }
.nat-langues-mobile { display: none; }

/* Logo, loupe, compte, panier */
.site-header .custom-logo-link { display: block; line-height: 0; }
.site-header .custom-logo { display: block; width: auto; height: 104px; }
.nat-header-actions { display: flex; align-items: center; gap: 18px; }
.nat-header-actions .search-trigger {
	display: block; width: 26px; height: 26px; padding: 0; border: 0; background: url(../assets/images/refonte-2026/naturiste-icone-loupe.svg?v=2) no-repeat center / contain;
	cursor: pointer;
}
.nat-header-actions .search-trigger > span { display: none; }
.nat-compte {
	display: block; width: 25px; height: 26px; background: url(../assets/images/refonte-2026/naturiste-icone-compte.svg) no-repeat center / contain;
}
.site-header-cart .cart-contents,
.site-header-cart .cart-contents:hover { position: relative; display: block; width: 28px; height: 26px; padding: 0; }
/* Les 3 SVG sont recadrés sur leur tracé (loupe : viewBox serré) → même hauteur de 26 px, même ligne médiane */
.site-header-cart .cart-contents::before {
	content: ""; position: absolute; inset: 0; background: url(../assets/images/refonte-2026/naturiste-icone-panier.svg) no-repeat center / contain;
}
.site-header-cart .cart-contents .amount { display: none; }
body .site-header-cart .shoptimizer-cart .cart-contents .count,
body .site-header-cart .shoptimizer-cart .cart-contents:hover .count {
	position: absolute; top: -7px; right: -9px; z-index: 1; display: flex; align-items: center; justify-content: center;
	width: auto; min-width: 18px; height: 18px; margin: 0; padding: 0 4px; border: 0; border-radius: 999px;
	background: var(--noir); color: var(--blanc); font-family: var(--police); font-size: 11px; font-weight: 400; line-height: 1;
}
body .site-header-cart .shoptimizer-cart .cart-contents .count::after,
body .site-header-cart .shoptimizer-cart .cart-contents .count::before { display: none; }

@media (min-width: 993px) {
	.site-header .main-header.col-full {
		position: relative; display: flex; align-items: flex-start; justify-content: space-between;
		min-height: 0; padding-top: 22px; padding-bottom: 6px;
	}
	.site-header .site-branding { position: static; margin: 0 auto; }
	.site-header .site-branding .menu-toggle { display: none; }
	.site-header .nat-langues { position: absolute; left: var(--marge-laterale); top: 22px; }
	.site-header .nat-header-actions,
	.site-header .site-header-cart { position: absolute; top: 18px; }
	.site-header .nat-header-actions { right: calc(var(--marge-laterale) + 28px + 20px); gap: 20px; }
	.site-header .site-header-cart { right: var(--marge-laterale); margin: 0; display: block !important; }
	.col-full-nav:not(.is_stuck) .site-header-cart,
	.col-full-nav:not(.is_stuck) .logo-mark { display: none !important; }

	/* Menu principal : majuscules, réparti sur toute la largeur du conteneur */
	.col-full-nav { border-bottom: var(--bordure) solid var(--rose); }
	.col-full-nav .shoptimizer-primary-navigation { display: flex; align-items: center; gap: 0; }
	.col-full-nav.is_stuck .site-header-cart { margin-left: 28px; }
	.col-full-nav .main-navigation { flex: 1 1 auto; }
	.col-full-nav .primary-navigation { display: flex; align-items: center; }
	.col-full-nav .menu-primary-menu-container { flex: 1 1 auto; }
	.col-full-nav .menu-primary-menu-container > ul.menu { display: flex; justify-content: space-between; width: 100%; margin: 0; }
	.main-navigation ul.menu > li > a,
	.main-navigation ul.menu > li.menu-item-has-children > a {
		padding: 14px 0 16px; font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; line-height: 1;
		letter-spacing: 0; text-transform: uppercase; color: var(--noir);
	}
	.main-navigation ul.menu > li > a > span::before,
	.main-navigation ul.menu > li > a::before { display: none !important; } /* soulignement animé Shoptimizer */
	.main-navigation ul.menu > li > a:hover,
	.main-navigation ul.menu > li.current-menu-item > a,
	.main-navigation ul.menu > li.current-menu-ancestor > a { text-decoration: underline; text-underline-offset: 4px; }
	.main-navigation ul.menu > li.menu-item-has-children > a::after { display: none; } /* chevron */
	.main-navigation ul.menu > li.menu-item-has-children > a { padding-right: 0; }

	/* Sous-menu (maquette : liste sur fond rose, sans cadre ; marges internes alignées sur l'entrée parente) */
	.main-navigation ul.menu ul.sub-menu {
		left: -18px !important; min-width: 220px; padding: 8px 18px 16px !important; margin: 0;
		background: var(--rose); border: 0; border-radius: 0; box-shadow: none;
	}
	.main-navigation ul.menu ul.sub-menu li { padding: 0 !important; margin: 0; }
	.main-navigation ul.menu ul.sub-menu li a { padding: 4px 0 !important; }
	.main-navigation ul.menu ul.sub-menu li a {
		padding: 4px 0; font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; line-height: 1.25;
		text-transform: none; color: var(--noir); background: transparent;
	}
	.main-navigation ul.menu ul.sub-menu li a:hover { text-decoration: underline; color: var(--noir); background: transparent; }
	.main-navigation ul.menu ul.sub-menu li a span::before { display: none !important; }

	/* Barre collée : signe du logo à gauche, panier à droite */
	.col-full-nav.is_stuck { box-shadow: 0 1px 0 rgba(0, 0, 0, .08); }
	.col-full-nav .logo-mark { flex: 0 0 auto; margin-right: 28px; }
	.col-full-nav .primary-navigation.with-logo .logo-mark,
	.col-full-nav .logo-mark { width: auto; }
	.col-full-nav .logo-mark img { display: block; width: 40px !important; max-width: none; height: auto; }
	.col-full-nav .site-header-cart { flex: 0 0 auto; }
	.col-full-nav.is_stuck .main-navigation ul.menu > li > a { padding-top: 12px; padding-bottom: 12px; }
}

/* Modale de recherche Shoptimizer (produits) : plein écran rose, champ pilule à contour */
.nat-header-actions .search-trigger,
.nat-header-actions .search-trigger:hover,
.nat-header-actions .search-trigger:focus { background-color: transparent !important; box-shadow: none; outline-offset: 4px; }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"],
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .shoptimizer-modal--container { background: var(--rose); }
@media (max-width: 992px) {
	dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"][open],
	dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search { display: block; }
}
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] form[method="dialog"] { justify-content: flex-end; border-bottom: 0; margin-bottom: 0; }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] form[method="dialog"] button { background: transparent !important; color: var(--noir); }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .shoptimizer-modal--content { padding-top: 8vh; }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search input[type="search"],
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search input.search-field {
	height: 52px; padding: 0 24px 0 52px; border: var(--bordure) solid var(--noir); border-radius: 999px;
	background: var(--blanc); color: var(--noir); box-shadow: none;
	font-family: var(--police); font-size: var(--taille-texte);
}
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search input::placeholder { color: var(--noir); opacity: .5; }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search form::before { left: 20px; background-color: var(--noir); }
dialog.shoptimizer-modal[data-shoptimizermodal-id="searchToggle"] .site-search button[type="submit"] { display: none; }

/* Tablette / mobile (< 993 px, menu Shoptimizer en tiroir) : burger | logo | loupe, panier */
@media (max-width: 992px) {
	.site-header .main-header.col-full { display: flex; align-items: center; padding-top: 10px; padding-bottom: 10px; }
	.site-header .site-branding { display: flex; align-items: center; flex: 1 1 auto; gap: 12px; }
	.site-header .site-branding .custom-logo-link { margin: 0 auto; }
	.site-header .custom-logo { height: 58px; }
	.site-header .nat-langues:not(.nat-langues-mobile) { display: none; }
	.site-header .nat-compte { display: none; }
	.site-header .nat-header-actions { position: absolute; right: calc(var(--marge-laterale) + 28px + 18px); }
	.site-header .site-header-cart { margin-left: 0; }
	.site-header .menu-toggle { width: 30px; height: 24px; padding: 0; border: 0; background: transparent; box-shadow: none; }
	body .site-header-cart .shoptimizer-cart .cart-contents .count { font-size: 11px !important; color: var(--blanc) !important; }
	.site-header .menu-toggle .bar { background-color: var(--noir); }
	.nat-langues-mobile { display: block; padding: 20px 0 10px; }
	.col-full-nav .main-navigation ul.menu > li > a { font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; text-transform: uppercase; color: var(--noir); }
	.col-full-nav .main-navigation ul.sub-menu li a { font-family: var(--police); font-size: var(--taille-sous-titre); text-transform: none; }
}


/* ==================================================================
 * Newsletter (template « Newsletter 2026 (footer) », formulaire Mailchimp Elementor Pro)
 * ================================================================== */
/* Newsletter : champ noir + bouton contour */
.elementor .elementor-widget-form.nat-newsletter { width: 100%; }
.elementor .elementor-widget-form.nat-newsletter > .elementor-widget-container { padding: 0; }
.elementor .nat-newsletter .elementor-form-fields-wrapper { flex-wrap: nowrap; align-items: stretch; gap: var(--gouttiere); margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 0; }
.elementor .nat-newsletter .elementor-field-group { padding: 0 !important; margin: 0 !important; flex: 1 1 0; width: auto !important; max-width: none; }
.elementor .nat-newsletter .elementor-field-group .elementor-field {
	font-family: var(--police); font-size: var(--taille-carte); color: var(--blanc);
	background: var(--noir); border: var(--bordure) solid var(--noir); border-radius: 0;
	height: 36px; min-height: 36px; padding: 6px 10px;
}
.elementor .nat-newsletter .elementor-field-group .elementor-field::placeholder { color: var(--blanc); opacity: .85; }
.elementor .elementor-widget-form.nat-newsletter .elementor-field-group .elementor-button {
	font-family: var(--police); font-size: var(--taille-carte); font-weight: 400; letter-spacing: .05em;
	text-transform: uppercase; color: var(--noir); background: var(--blanc);
	border: var(--bordure) solid var(--noir); border-radius: 999px; height: 36px; min-height: 36px; padding: 6px 16px; width: 100%;
}
.elementor .elementor-widget-form.nat-newsletter .elementor-field-group .elementor-button:hover { color: var(--blanc); background: var(--noir); }
@media (max-width: 767px) {
	.elementor .nat-newsletter .elementor-form-fields-wrapper { flex-direction: column; gap: 12px; }
	.elementor .nat-newsletter .elementor-field-group { flex: none; width: 100% !important; }
}


/* Newsletter : mise en page portée par speednox.css (les classes globales V4 du template
   ne sont pas chargées sur les pages construites en V3, ex. fiches produit) */
.nat-newsletter-section > .elementor > .e-con {
	display: flex; flex-direction: row; align-items: center; justify-content: center; gap: var(--gouttiere);
	padding: 30px max(var(--marge-laterale), calc((100% - var(--largeur-conteneur)) / 2)); background: var(--rose);
}
.nat-newsletter-section > .elementor > .e-con > .e-paragraph-base,
.nat-newsletter-section > .elementor > .e-con > p { flex: 1 1 0; margin: 0; font-family: var(--police); font-size: var(--taille-texte); line-height: 1.4; color: var(--noir); }
.nat-newsletter-section > .elementor > .e-con > .e-con { flex: 2 1 0; padding: 0; }
@media (max-width: 767px) {
	.nat-newsletter-section > .elementor > .e-con { flex-direction: column; align-items: stretch; }
}

/* ==================================================================
 * Footer Naturiste (PHP, maquette p. 5) : 4 colonnes, crédits, moyens de paiement réels
 * ================================================================== */
.site-footer.nat-footer .col-full { display: block; }
.site-footer.nat-footer { padding: 36px 0 30px; background: var(--noir); color: var(--blanc); font-family: var(--police); }
.nat-footer a { color: var(--blanc); text-decoration: none; }
.nat-footer a:hover { color: var(--blanc); text-decoration: underline; }
.nat-footer p,
.nat-footer ul { margin: 0; padding: 0; list-style: none; }
.nat-footer p,
.nat-footer li { font-size: var(--taille-carte); line-height: 1.4; }
.nat-footer p + p { margin-top: 1.4em; }
.nat-footer-colonnes { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gouttiere); }
.nat-footer-col > * + * { margin-top: 1.4em; }
.nat-footer-instagram { display: inline-block; line-height: 0; }
.nat-footer-instagram img { width: 20px; height: 20px; filter: invert(1); }
.nat-footer-bas { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--gouttiere); margin-top: 48px; }
.nat-footer-paiements ul { display: flex; gap: 8px; }
.nat-footer-paiements li {
	display: flex; align-items: center; justify-content: center; width: 52px; height: 32px; padding: 5px 7px;
	background: var(--blanc); border-radius: 4px;
}
.nat-footer-paiements img { display: block; max-width: 100%; max-height: 100%; width: auto; height: auto; }
/* PostFinance Pay : le logo officiel est déjà un bouton jaune arrondi → posé tel quel, à la taille des autres cases
   (pas de case blanche autour) : SVG (2:1) contenu dans la case 52 × 32, fond de la case au jaune PostFinance (phase 8). */
.nat-footer-paiements li.nat-paiement-pf_pay { padding: 0; background: #fc0; overflow: hidden; }
.nat-footer-paiements li.nat-paiement-pf_pay img { width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; }
@media (max-width: 767px) {
	.nat-footer-colonnes { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
	.nat-footer-bas { flex-direction: column; align-items: flex-start; margin-top: 36px; }
}


/* ==================================================================
 * Pages (template Theme Builder « Page template »)
 * ================================================================== */

/* Espaceur de 5 px sous le contenu (template « Page template », élément 2e65e0b) :
   laissait voir le dégradé du fond entre le contenu et la newsletter du footer. */
.elementor-location-single .elementor-element-2e65e0b.elementor-widget-spacer { display: none; }

/* Page « Vin nature » : bouteilles comparatives (silhouette SVG de la maquette + texte HTML).
   Le texte suit la largeur de la bouteille (container queries) : maquette = bouteille de 205 px,
   titre 13 px, SO2 8,5 px, additifs 7,3 px. */
.bouteille { container-type: inline-size; color: var(--noir); text-decoration: none; }
.elementor .bouteille-texte .e-heading-base {
	font-family: var(--police); font-weight: 700; font-size: 6.4cqw; line-height: 1.2;
	text-transform: none; color: var(--noir); margin: 0 0 1.5cqw;
}
.elementor .bouteille-texte .e-paragraph-base {
	font-family: var(--police); font-size: 4.1cqw; line-height: 1.25; color: var(--noir); margin: 0;
}
.elementor .bouteille-texte .e-paragraph-base + .e-paragraph-base { font-size: 3.1cqw; line-height: 1.22; margin-top: 3cqw; }
a.bouteille:hover .e-heading-base { text-decoration: underline; }


/* ==================================================================
 * Cartes produit (maquette 2026) — partout : listings, carrousels, produits liés
 * image sur fond blanc + pastilles ; dessous : producteur / nom (gras) / prix, bouton « + » à droite
 * ================================================================== */
.elementor ul.products li.product {
	background: transparent; text-align: left;
}
@media (max-width: 767px) {
	.elementor ul.products li.product .woocommerce-card__header { padding: 10px 10px 0 !important; }
	.elementor ul.products li.product .woocommerce-card__header .button,
	.elementor ul.products li.product .woocommerce-card__header .nat-qte-nombre { width: 30px !important; height: 30px !important; }
}
/* Pas de padding Shoptimizer dans les grilles ; dans les carrousels (tiny-slider), l'espacement est le padding des éléments */
.elementor ul.products:not(.tns-slider) li.product { padding: 0 !important; }
/* Carrousels : pas d'espace sous les cartes (padding 40 px + marge 25 px de noxshop → ~100 px vides en bas de section) */
.elementor ul.products.tns-slider li.product { padding-bottom: 0 !important; margin-bottom: 0 !important; }
.elementor ul.products li.product .woocommerce-image__wrapper,
.elementor ul.products li.product .naturiste-thumb-wrapper { background: var(--blanc); }
.elementor ul.products li.product .woocommerce-card__header {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 10px; align-items: start;
	/* 3 lignes de texte ; la dernière absorbe la hauteur du bloc quantité (rond + « − + », 58 px) :
	   sans cela la grille étirait les 3 lignes et le texte s'espaçait dès que le produit était au panier (phase 8) */
	grid-template-rows: auto auto 1fr;
	/* phase 8 (capture « vue liste ») : texte et « + » à 10 px des bords de l'image, alignés sur « NOUVEAU » et les pastilles */
	padding: 12px 10px 0; text-align: left; background: transparent;
}
.elementor ul.products li.product .woocommerce-card__header > :not(.button) { grid-column: 1; }
.elementor ul.products li.product .woocommerce-card__header .vigneron {
	display: block; font-family: var(--police); font-size: var(--taille-carte); line-height: 1.2; color: var(--noir); margin: 0;
}
.elementor ul.products li.product .woocommerce-card__header .woocommerce-loop-product__title {
	font-family: var(--police); font-size: var(--taille-carte); font-weight: 700; line-height: 1.2;
	text-transform: none; letter-spacing: 0; color: var(--noir); margin: 0; padding: 0;
}
.elementor ul.products li.product .woocommerce-card__header .price {
	display: block; font-family: var(--police); font-size: var(--taille-carte); font-weight: 400; line-height: 1.2;
	color: var(--noir); margin: 0; text-align: left;
}
.elementor ul.products li.product .woocommerce-card__header .price::before,
.elementor ul.products li.product .woocommerce-card__header .price::after { content: none !important; display: none !important; }
/* Bouton « + » (ajout au panier / choix des options) */
.elementor ul.products li.product .woocommerce-card__header .button {
	grid-column: 2; grid-row: 1 / span 3; align-self: start; margin-top: 0 !important; /* haut du rond = haut du texte, sous l'image (phase 7) */
	position: relative; width: 36px; height: 36px; min-height: 0; padding: 0; margin: 0;
	border: var(--bordure) solid var(--noir); border-radius: 50%; background: transparent;
	font-size: 0; line-height: 0; color: transparent; overflow: hidden; opacity: 1; visibility: visible;
}
.elementor ul.products li.product .woocommerce-card__header .button::before {
	/* croix dessinée (le glyphe « + » de Left n'est pas centré verticalement dans le rond) : 13 px, trait 1,5 px */
	content: ""; position: absolute; inset: 0; margin: auto; display: block; width: 13px; height: 13px; color: var(--noir);
	background: linear-gradient(currentColor, currentColor) center / 100% 1.5px no-repeat, linear-gradient(currentColor, currentColor) center / 1.5px 100% no-repeat;
	mask: none; -webkit-mask: none; font-size: 0;
}
.elementor ul.products li.product .woocommerce-card__header .button:hover { background: var(--noir); }
.elementor ul.products li.product .woocommerce-card__header .button:hover::before { color: var(--blanc); }
/* Chargement : anneau noir qui tourne (l'ancien « … » restait blanc une fois le survol quitté) */
.elementor ul.products li.product .woocommerce-card__header .button.loading,
.elementor ul.products li.product .woocommerce-card__header .button.loading:hover { background: transparent; }
.elementor ul.products li.product .woocommerce-card__header .button.loading::before,
.elementor ul.products li.product .woocommerce-card__header .button.loading:hover::before {
	content: ""; width: 16px; height: 16px; background: none; color: var(--noir);
	border: 1.5px solid var(--noir); border-right-color: transparent; border-radius: 50%; animation: nat-tourne .7s linear infinite;
}
.elementor ul.products li.product .woocommerce-card__header .button::after { display: none !important; } /* pastille / loader Shoptimizer au-dessus du rond */
@keyframes nat-tourne { to { transform: rotate(360deg); } }
.elementor ul.products li.product .woocommerce-card__header .button[hidden] { display: none !important; }

/* Produit au panier : nombre de bouteilles dans le rond (plein noir), « − + » dessous sans rond (naturiste-cartes.js) */
.elementor ul.products li.product .woocommerce-card__header .nat-qte { grid-column: 2; grid-row: 1 / span 3; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.elementor ul.products li.product .woocommerce-card__header .nat-qte[hidden] { display: none; }
.nat-qte .nat-qte-nombre {
	display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%;
	background: var(--noir); color: var(--blanc); font-family: var(--police); font-size: 14px; line-height: 1;
}
.nat-qte .nat-qte-boutons { display: flex; }
.nat-qte .nat-qte-boutons button {
	position: relative; width: 18px; height: 20px; padding: 0; margin: 0; border: 0; border-radius: 0;
	background: transparent !important; box-shadow: none; cursor: pointer; color: var(--noir);
}
.nat-qte .nat-qte-boutons button::before,
.nat-qte .nat-qte-plus::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 9px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%);
}
.nat-qte .nat-qte-plus::after { width: 1.5px; height: 9px; }
.nat-qte .nat-qte-boutons button:hover { opacity: .55; }
/* Envoi en cours (debounce, phase 8) : on peut continuer à cliquer, le nombre affiché reste celui voulu */
.nat-qte.nat-envoi .nat-qte-nombre { opacity: .7; }

/* Fiche produit, produit au panier (phase 8) : pilule pleine noire « − N + » (quantité au panier)
   + « Voir le panier », à la place de la quantité et d'« Ajouter au panier » */
.single-product form.cart.nat-au-panier > .quantity,
.single-product form.cart.nat-au-panier > .single_add_to_cart_button { display: none !important; }
.single-product form.cart .nat-qte-fiche[hidden],
.single-product form.cart .nat-voir-panier[hidden] { display: none !important; }
.single-product form.cart > a.added_to_cart { display: none !important; } /* lien ajouté par WooCommerce après l’ajout AJAX (doublon de .nat-voir-panier) */
.single-product form.cart .nat-qte-fiche { display: inline-flex; }
.single-product form.cart .nat-qte-fiche .nat-qte-boutons {
	display: inline-flex; align-items: stretch; height: 40px; border-radius: 999px; overflow: hidden; background: var(--noir); color: var(--blanc);
}
.single-product form.cart .nat-qte-fiche .nat-qte-boutons button { width: 34px; height: 100%; margin: 0 !important; color: var(--blanc); }
.single-product form.cart .nat-qte-fiche .nat-qte-boutons button::before,
.single-product form.cart .nat-qte-fiche .nat-qte-plus::after { width: 11px; }
.single-product form.cart .nat-qte-fiche .nat-qte-plus::after { width: 1.5px; height: 11px; }
/* Survol : signes toujours blancs (le template produit Elementor met « .cart button:hover » en noir → noir sur noir) */
.single-product form.cart .nat-qte-fiche .nat-qte-boutons button:hover,
.single-product form.cart .nat-qte-fiche .nat-qte-boutons button:focus { color: var(--blanc) !important; background: transparent !important; opacity: 1; }
.single-product form.cart .nat-qte-fiche .nat-qte-nombre {
	display: flex; align-items: center; justify-content: center; min-width: 36px; padding: 0 2px;
	font-family: var(--police); font-size: 15px; line-height: 1; color: var(--blanc);
}
.single-product form.cart .nat-voir-panier {
	display: inline-flex; align-items: center; height: 40px; margin: 0; padding: 0 28px; border: var(--bordure) solid var(--noir) !important; border-radius: 999px !important;
	background: transparent !important; color: var(--noir) !important; font-family: var(--police) !important; font-size: var(--taille-texte) !important; font-weight: 400 !important;
	line-height: 1; letter-spacing: 0; text-transform: uppercase; text-decoration: none; white-space: nowrap;
}
.single-product form.cart .nat-voir-panier:hover { background: var(--noir) !important; color: var(--blanc) !important; }
.elementor ul.products li.product .woocommerce-card__header .added_to_cart { display: none; }
.elementor ul.products li.product.outofstock .woocommerce-card__header .button { display: none; }

/* ==================================================================
 * Listing produits (template « Vins (liste) 2026 »)
 * ================================================================== */
/* Nombre de produits (en haut à gauche) et tri (en haut à droite, positionné dans le bloc Produits) */
.elementor .nat-liste .woocommerce-result-count {
	float: none; margin: 0 0 16px; padding: 0; text-align: left; font-family: var(--police); font-size: var(--taille-sous-titre); color: var(--noir);
}
.elementor .nat-liste .woocommerce-ordering { display: none; }
.elementor .nat-tri select {
	font-family: var(--police); font-size: var(--taille-petit); color: var(--noir);
	background-color: transparent !important; border: 0 !important; border-bottom: var(--bordure) solid var(--noir) !important; border-radius: 0; padding: 4px 24px 4px 0 !important; width: auto;
}
.elementor .nat-liste ul.products { margin: 0; }

/* (phase 7) Styles des filtres JetSmartFilters retirés : voir la section « Filtres, tri, pagination » en fin de fichier */


/* ==================================================================
 * Fonds de page (maquette : aplats, plus de dégradé rose → jaune du kit V3)
 * Boutique (fiches, listings, domaines, compte, panier, commande) : gris clair, comme le listing de la maquette.
 * Pages de contenu (à propos, contact, mentions…) : rose, comme la page « Vin nature ».
 * ================================================================== */
html { background-color: var(--noir); } /* sous le footer d'une page courte : prolonge le footer noir */
/* … à condition que body ne force pas 100vh (sinon bande grise sous le footer des pages courtes : panier vide, commande) */
body { min-height: 0 !important; }
body.elementor-kit-76,
body {
	background-image: none !important;
	background-color: var(--gris-clair) !important;
}
body.page:not(.woocommerce-page):not(.woocommerce-account):not(.woocommerce-cart):not(.woocommerce-checkout) {
	background-color: var(--rose) !important;
}
/* Titre dynamique des archives (widget V3 « Titre de l'archive ») : absent de la maquette, masqué visuellement (h1 conservé pour le SEO),
   comme les titres V4 des autres listings (classe globale « titre-masque ») */
.elementor .elementor-widget.nat-titre-archive {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; white-space: nowrap; border: 0; clip-path: inset(50%);
}


/* ==================================================================
 * Fiche produit (templates V3 « Vin / Goodies / Packs / Le Club (détail) ») — harmonisation
 * ================================================================== */
/* Domaine au-dessus du nom du vin (shortcode [naturiste-domaine], phase 7) : centré, plus d'air avant le titre */
.product-vigneron .nat-domaine-produit { margin: 0 0 10px; font-family: var(--police); font-size: var(--taille-carte); font-weight: 700; line-height: 1.2; text-align: center; text-transform: uppercase; letter-spacing: .04em; }
.product-vigneron .nat-domaine-produit a { color: var(--noir); text-decoration: none; }
.elementor .elementor-widget.product-vigneron { margin-bottom: 4px !important; } /* écart visible domaine → nom = nom → prix (12 px, retour 06.11) */
/* « Vous aimerez aussi » : 4 colonnes, 3 en tablette, 2 en mobile */
.elementor-widget-woocommerce-product-related ul.products.elementor-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
@media (max-width: 1024px) { .elementor-widget-woocommerce-product-related ul.products.elementor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { .elementor-widget-woocommerce-product-related ul.products.elementor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; overflow: visible; } }
.elementor-widget-woocommerce-product-related ul.products li.product { min-width: 0 !important; width: auto !important; } /* Shoptimizer : défilement horizontal 320 px en mobile */
.product-vigneron .nat-domaine-produit a:hover { text-decoration: underline; }
/* Lien « Retour » : sans soulignement (flèche comprise) */
.link-history-back a,
.link-history-back a:hover,
.link-history-back .elementor-icon-list-text { text-decoration: none !important; }
.link-history-back a:hover .elementor-icon-list-text { text-decoration: underline !important; }
.single-product form.cart .single_add_to_cart_button { white-space: nowrap; }

/* Pictos « À boire avec » et Crazyness en ligne (Shoptimizer passe les images en display:block) */
.accompagnement-container img.picto,
.crazyness-container img.picto { display: inline-block; vertical-align: middle; }
.accompagnement-container { display: flex; flex-wrap: wrap; gap: 6px; }
/* Fiche technique : libellé / valeur alignés à gauche */
.single-product .woocommerce-product-attributes th,
.single-product .woocommerce-product-attributes td {
	text-align: left !important; font-family: var(--police); font-size: var(--taille-petit); padding: 1px 12px 1px 0; border: 0; background: none;
}
.single-product .woocommerce-product-attributes th { width: 42%; font-weight: 400; }
.single-product .woocommerce-product-attributes td p { margin: 0; }
/* Quantité + bouton panier au style des boutons de la maquette (pilule à contour) */
.single-product form.cart { align-items: center; gap: 12px; }
.single-product form.cart .single_add_to_cart_button,
.single-product form.cart .single_add_to_cart_button.button.alt {
	height: 40px; padding: 0 28px; border: var(--bordure) solid var(--noir) !important; border-radius: 999px !important;
	background: transparent !important; color: var(--noir) !important;
	font-family: var(--police) !important; font-size: var(--taille-texte) !important; font-weight: 400 !important;
	text-transform: uppercase; letter-spacing: 0;
}
.single-product form.cart .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button.button.alt:hover { background: var(--noir) !important; color: var(--blanc) !important; }
.single-product form.cart select {
	border: var(--bordure) solid var(--noir); border-radius: 999px; background-color: transparent; font-family: var(--police); padding: 6px 14px;
}

/* Bloc « Vin nature ? » (section 2913) posé par les anciens templates : absent de la nouvelle charte */
.elementor-widget-template:has(> .elementor-widget-container > .elementor-2913),
.elementor-2913 { display: none !important; }


/* ==================================================================
 * Phase 6 — pages de contenu V4 (à propos, contact, où nous trouver, légales, crédits, mixtape)
 * Les textes restent des widgets V3 (traductions TranslatePress conservées), harmonisés par la classe nat-texte-page.
 * ================================================================== */
.elementor .elementor-element.nat-texte-page,
.elementor .elementor-element.nat-texte-page .elementor-widget-container,
.elementor .elementor-element.nat-texte-page p,
.elementor .elementor-element.nat-texte-page li,
.elementor .elementor-element.nat-texte-page .elementor-heading-title,
.elementor .elementor-element.nat-texte-page .elementor-icon-list-text {
	font-family: var(--police); font-size: var(--taille-texte); font-weight: 400; line-height: 1.6; color: var(--noir); /* interligne maquette : 24 pt pour 15 pt */
}
.elementor .elementor-element.nat-texte-page p { margin: 0 0 12px; }
.elementor .elementor-element.nat-texte-page strong,
.elementor .elementor-element.nat-texte-page b { font-weight: 700; }
.elementor .elementor-element.nat-texte-page h2,
.elementor .elementor-element.nat-texte-page h3 {
	font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; line-height: 1.2; text-transform: uppercase; color: var(--noir); margin: 28px 0 10px;
}
.elementor .elementor-element.nat-texte-page a { color: var(--noir); text-decoration: underline; }
.elementor .elementor-element.nat-texte-page a:hover { text-decoration: none; }
.elementor .elementor-widget.nat-texte-page { margin-bottom: 0; }

/* ==================================================================
 * Phase 6 — Domaines (templates « Domaines (liste / détail) 2026 »)
 * ================================================================== */
.elementor .nat-domaine-titre .elementor-heading-title {
	font-family: var(--police); font-size: var(--taille-titre); font-weight: 400; line-height: 1.1; text-transform: uppercase; color: var(--noir); margin: 0; padding: 0;
}
.elementor .nat-domaine-titre { padding: 0 !important; }
.elementor .nat-domaine-lieu { width: auto !important; margin: 0 !important; }
.elementor .nat-domaine-lieu .elementor-heading-title {
	font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; text-transform: uppercase; color: var(--noir);
}
.elementor .nat-domaines-liste .elementor-post__title,
.elementor .nat-domaines-liste .elementor-post__title a { font-family: var(--police); color: var(--noir); }
/* « Ses vins » (shortcode [winemaker-products]) : grille 4 / 3 / 2 colonnes — sous Shoptimizer, les cartes prenaient toute la largeur */
.elementor .nat-domaine-vins ul.products {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gouttiere); margin: 0;
}
.elementor .nat-domaine-vins ul.products::before,
.elementor .nat-domaine-vins ul.products::after { display: none !important; }
.elementor .nat-domaine-vins ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; }
@media (max-width: 1024px) { .elementor .nat-domaine-vins ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .elementor .nat-domaine-vins ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } }

/* ==================================================================
 * Compte / mini-panier / champs et boutons WooCommerce (phase 7) — habillage Naturiste
 * (panier et commande : blocs WooCommerce depuis la phase 8, section « Blocs Panier / Commande »)
 * ================================================================== */

/* Champs : le kit Elementor met les champs en noir (pensé pour la newsletter) → champs blancs à filet noir */
.woocommerce form input.input-text:not(.qty),
.woocommerce form input[type="text"]:not(.elementor-field),
.woocommerce form input[type="email"]:not(.elementor-field),
.woocommerce form input[type="tel"]:not(.elementor-field),
.woocommerce form input[type="password"]:not(.elementor-field),
.woocommerce form input[type="number"]:not(.elementor-field):not(.qty),
.woocommerce form textarea,
.woocommerce form select,
.woocommerce .select2-container .select2-selection,
.woocommerce-cart .coupon input.input-text {
	background: var(--blanc) !important; color: var(--noir) !important;
	border: var(--bordure) solid var(--noir) !important; border-radius: 0 !important; box-shadow: none !important;
	font-family: var(--police); font-size: 14px;
}
.woocommerce form input::placeholder,
.woocommerce form textarea::placeholder { color: var(--noir); opacity: .45; }
.woocommerce form input:focus,
.woocommerce form textarea:focus { outline: 2px solid var(--rose); outline-offset: 0; }
.woocommerce form .form-row label,
.woocommerce form .woocommerce-form__label { font-family: var(--police); font-size: 13px; font-weight: 400; color: var(--noir); }
.woocommerce form .form-row .required { color: var(--noir); text-decoration: none; }

/* Boutons : pilule à contour (classe « bouton-contour » de la maquette), action principale pleine noire
   (sauf le « + » des cartes produit, ex. « Nouveautés » du panier vide : texte visible et inversé au survol, retours 09.11) */
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce a.button:not(li.product .button),
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce button.button,
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce input.button,
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons .button {
	display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 22px;
	border: var(--bordure) solid var(--noir) !important; border-radius: 999px !important;
	background: transparent !important; color: var(--noir) !important; box-shadow: none !important;
	font-family: var(--police) !important; font-size: 14px !important; font-weight: 400 !important;
	letter-spacing: .02em; text-transform: uppercase; text-decoration: none !important;
}
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce a.button:not(li.product .button):hover,
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce button.button:hover,
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce input.button:hover,
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons .button:hover { background: var(--noir) !important; color: var(--blanc) !important; }
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce button.button:disabled,
:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce button.button[disabled] { opacity: .35; background: transparent !important; color: var(--noir) !important; }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons .button.checkout,
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons a.checkout {
	width: 100%; min-height: 52px; font-size: 15px !important;
	background: var(--noir) !important; color: var(--blanc) !important;
	text-transform: uppercase !important; /* Shoptimizer met « Commander » en minuscules */
}
/* Popup Elementor (blup…) jamais par-dessus le mini-panier ouvert ; elle réapparaît à la fermeture du tiroir */
body.drawer-open .elementor-popup-modal { display: none !important; }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons .button.checkout:hover { background: var(--rose) !important; color: var(--noir) !important; }

/* Quantité : pilule [ − 1 + ] (boutons Shoptimizer quantity.js) */
html body .quantity { display: inline-flex; align-items: stretch; height: 40px; border: var(--bordure) solid var(--noir); border-radius: 999px; overflow: hidden; background: var(--blanc); }
html body .quantity .qty,
html body .quantity input.qty {
	width: 36px; height: 100% !important; min-height: 0; padding: 0; margin: 0;
	border: 0 !important; border-radius: 0 !important; background: transparent !important; color: var(--noir) !important;
	font-family: var(--police); font-size: 15px; text-align: center; -moz-appearance: textfield;
}
html body .quantity .qty::-webkit-inner-spin-button,
html body .quantity .qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
html body .quantity .quantity-button,
html body .quantity button.plus,
html body .quantity button.minus,
html body .quantity .quantity-nav .quantity-button {
	position: static; display: flex; align-items: center; justify-content: center; width: 34px; height: auto !important; align-self: stretch;
	margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--noir);
	font-family: var(--police); font-size: 18px; line-height: 1; cursor: pointer; user-select: none;
}
html body .quantity .quantity-nav { display: contents !important; }
html body .quantity .quantity-button.minus,
html body .quantity .quantity-down { order: 0; }
html body .quantity .qty { order: 1; }
html body .quantity .quantity-button.plus,
html body .quantity .quantity-up { order: 2; }
/* Signes − / + tracés en CSS (les glyphes de Left sont décalés verticalement) */
html body .quantity .quantity-button { position: relative !important; width: 34px !important; }
html body .quantity .quantity-button.minus::before,
html body .quantity .quantity-button.plus::before,
html body .quantity .quantity-button.plus::after {
	content: "" !important; display: block !important; position: absolute !important; left: 50%; top: 50%;
	width: 11px; height: 1.5px; margin: 0; background: var(--noir) !important; transform: translate(-50%, -50%);
	-webkit-mask: none !important; mask: none !important;
}
html body .quantity .quantity-button.plus::after { width: 1.5px; height: 11px; }
html body .quantity .quantity-button:hover,
html body .quantity button.plus:hover,
html body .quantity button.minus:hover { background: transparent; opacity: .55; }

/* Messages WooCommerce */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message {
	background: var(--blanc) !important; color: var(--noir) !important; border: var(--bordure) solid var(--noir) !important;
	border-left-width: 4px !important; border-radius: 0 !important; font-family: var(--police); font-size: 14px;
}
.woocommerce-info a,
.woocommerce-message a:not(.button) { color: var(--noir); text-decoration: underline; }
.woocommerce-error { border-left-color: #c00 !important; }
/* « Voir le panier » du message d'ajout (sans JS) : blanc sur fond transparent sous Shoptimizer → bouton noir */
.woocommerce-message a.button,
.woocommerce-info a.button {
	background: var(--noir) !important; color: var(--blanc) !important; border-radius: 999px; padding: 6px 16px 5px;
	font-family: var(--police); font-size: 12px; font-weight: 400; text-transform: uppercase; line-height: 1.2;
}
.woocommerce-message a.button:hover,
.woocommerce-info a.button:hover { opacity: .8; }
.woocommerce-info::before,
.woocommerce-message::before { color: var(--noir) !important; }

/* Commande : en-tête minimal Shoptimizer (logo + titre de la page), sans langues ni icônes */
@media (min-width: 993px) {
	.min-ck .site-header .main-header.col-full { align-items: center; padding-bottom: 18px; }
	.min-ck .site-header .site-branding { margin: 0; }
	.min-ck .site-header .custom-logo { height: 70px; }
	.min-ck .site-header .nat-langues,
	.min-ck .site-header .nat-header-actions { display: none; }
	.min-ck .site-header h1 { margin: 0 0 0 auto; font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; text-transform: uppercase; }
}
.min-ck .col-full-nav { display: none; }

/* Mini-panier (tiroir Shoptimizer) */
.shoptimizer-mini-cart-wrap { background: var(--blanc); font-family: var(--police); }
.shoptimizer-mini-cart-wrap .cart-drawer-heading,
.shoptimizer-mini-cart-wrap .widget_shopping_cart_content > p:first-child { font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; text-transform: uppercase; color: var(--noir); }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart-item { border-bottom: var(--bordure) solid rgba(0, 0, 0, .12); }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart-item a:not(.remove) { color: var(--noir); font-weight: 700; font-size: 14px; text-decoration: none; }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart-item img { background: var(--blanc); }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart-item .quantity { height: auto; border: 0; border-radius: 0; overflow: visible; background: transparent; font-size: 13px; }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__total { border-top: var(--bordure) solid var(--noir); font-size: 15px; }
.shoptimizer-mini-cart-wrap .woocommerce-mini-cart__buttons { display: flex; flex-direction: column; gap: 10px; }
.shoptimizer-mini-cart-wrap .close-drawer { color: var(--noir); }
.shoptimizer-mini-cart-wrap .shoptimizer-free-shipping-progress,
.shoptimizer-mini-cart-wrap .progress-bar { accent-color: var(--noir); }

.shoptimizer-mini-cart-wrap .shoptimizer-custom-quantity-mini-cart {
	display: inline-flex; align-items: center; height: 30px; border: var(--bordure) solid var(--noir); border-radius: 999px; overflow: hidden; background: var(--blanc);
}
.shoptimizer-mini-cart-wrap .shoptimizer-custom-quantity-mini-cart input,
.shoptimizer-mini-cart-wrap .shoptimizer-custom-quantity-mini-cart input:focus {
	width: 30px; height: 28px; padding: 0; border: 0 !important; border-radius: 0 !important; background: transparent !important;
	color: var(--noir) !important; font-family: var(--police); font-size: 13px; text-align: center; box-shadow: none; outline: 0;
}
.shoptimizer-mini-cart-wrap .shoptimizer-custom-quantity-mini-cart span,
.shoptimizer-mini-cart-wrap .shoptimizer-custom-quantity-mini-cart button {
	display: flex; align-items: center; justify-content: center; width: 26px; height: 28px; padding: 0; border: 0; background: transparent; color: var(--noir); cursor: pointer;
}
.shoptimizer-mini-cart-wrap a.remove { color: var(--noir) !important; }




/* ==================================================================
 * Carrousels produits « slider-nu » (accueil, …) — maquette p. 3
 * ================================================================== */
/* Espacement : seul l'espace du carrousel (gutter tiny-slider de 20 px, à droite de chaque carte) ;
   le retrait gauche de 15 px de Shoptimizer et la marge négative de la liste sont retirés (59 px entre cartes → 20 px) */
.elementor .slider-nu ul.products.tns-slider { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important; }
.elementor .slider-nu ul.products.tns-slider li.product { padding-left: 0 !important; }
/* (tiny-slider compense déjà l'espace de la dernière carte : marge négative de .tns-inner) */

/* Flèches dans les vignettes (rond 36 px à contour noir, chevron fin), centrées sur l'image */
.elementor .slider-nu .prev-next-container .slider-btn {
	top: calc((100% - 95px) / 2); margin-top: 0; transform: translateY(-50%); z-index: 3;
	width: 36px; height: 36px; border: var(--bordure) solid var(--noir); border-radius: 50%; background: var(--blanc);
	display: flex; align-items: center; justify-content: center;
}
.elementor .slider-nu .prev-next-container .slider-btn img { display: none; }
.elementor .slider-nu .prev-next-container .slider-btn::before {
	content: ""; width: 10px; height: 10px; border-left: 1.5px solid var(--noir); border-bottom: 1.5px solid var(--noir);
}
.elementor .slider-nu .prev-next-container .slider-btn.prev { left: 16px; }
.elementor .slider-nu .prev-next-container .slider-btn.prev::before { transform: translateX(2px) rotate(45deg); }
.elementor .slider-nu .prev-next-container .slider-btn.next { right: 16px; }
.elementor .slider-nu .prev-next-container .slider-btn.next::before { transform: translateX(-2px) rotate(-135deg); }
.elementor .slider-nu .prev-next-container .slider-btn:hover { background: var(--noir); }
.elementor .slider-nu .prev-next-container .slider-btn:hover::before { border-color: var(--blanc); }
@media (max-width: 767px) {
	.elementor .slider-nu .prev-next-container .slider-btn { width: 30px; height: 30px; top: calc((100% - 92px) / 2); }
	.elementor .slider-nu .prev-next-container .slider-btn.prev { left: 8px; }
	.elementor .slider-nu .prev-next-container .slider-btn.next { right: 8px; }
}

/* Survol des cartes produit (partout) : ni fond blanc ombré (Shoptimizer), ni cadre noir autour de l'image (noxshop),
   ni réduction de l'image ; seul le nom du vin se souligne */
.elementor ul.products li.product::before { display: none !important; }
.woocommerce ul.products li.product:hover a .naturiste-thumb-wrapper,
.woocommerce ul.products li.product a .naturiste-thumb-wrapper { border: 0 !important; }
.elementor ul.products li.product:hover .woocommerce-image__wrapper { transform: none !important; }
/* Survol (charte 2026) : la bouteille grossit légèrement dans son cadre blanc, le nom se souligne ; le « + » ne se remplit en noir qu'au survol du bouton lui-même */
.elementor ul.products li.product .woocommerce-image__wrapper { overflow: hidden; }
.elementor ul.products li.product .woocommerce-image__wrapper img { transition: transform .35s ease; }
.elementor ul.products li.product:hover .woocommerce-image__wrapper img { transform: scale(1.04); }
.elementor ul.products li.product .woocommerce-card__header .button { transition: background-color .2s ease; }
.elementor ul.products li.product:hover .woocommerce-card__header .woocommerce-loop-product__title { text-decoration: underline; }

/* Tuiles couleur de l'accueil (Blanc, Orange, Rouge, Bulles : liens contenant une « pastille ») — même survol que les cartes produit :
   la bouteille grossit légèrement dans son cadre, la pastille se remplit en noir */
.elementor a.e-con:has(.pastille) { overflow: hidden; }
.elementor a.e-con:has(.pastille) img { transition: transform .35s ease; }
.elementor a.e-con:has(.pastille):hover img { transform: scale(1.04); }
.elementor a.e-con:has(.pastille) .pastille { transition: background-color .2s ease, color .2s ease; }
.elementor a.e-con:has(.pastille):hover .pastille { background-color: var(--noir); color: var(--blanc); }


/* ==================================================================
 * Phase 7 — alignements des listes (retours sur capture « vue liste »)
 * ================================================================== */
/* Titre de section + lien « Voir tous … » : même ligne de base (pages Accueil, Événements…) */
.elementor .e-con:has(> .titre-section):has(> .lien-majuscule) { align-items: last baseline !important; }
/* Repères à 10 px du bord de l'image, comme « NOUVEAU » et les pastilles : flèches des carrousels, pastilles des tuiles couleur */
.elementor .slider-nu .prev-next-container .slider-btn.prev { left: 10px; }
.elementor .slider-nu .prev-next-container .slider-btn.next { right: 10px; }
.elementor a.e-con:has(.pastille) .pastille { top: 10px !important; left: 10px !important; }
/* Grille des tuiles couleur : même espace que le carrousel au-dessus (20 px ; 10 px ≤ 1024 px) → colonnes alignées sur les cartes (phase 8) */
.elementor .e-con:has(> a.e-con .pastille) { column-gap: 20px !important; row-gap: 20px !important; }
@media (max-width: 1024px) { .elementor .e-con:has(> a.e-con .pastille) { column-gap: 10px !important; row-gap: 10px !important; } }
/* Cœur « coup de cœur » (bas gauche) : le tracé du SVG a 2,5 px de marge dans ses 30 px → le dessin lui-même à 10 px des bords (phase 8) */
.elementor ul.products li.product .badge-wrap.bottom.left { left: 7.5px; bottom: 7.5px; line-height: 0; }
.elementor ul.products li.product .badge-wrap.bottom.left img.badge { display: block; margin-top: 0; }
.elementor ul.products li.product .badge-wrap.bottom.left img.badge + img.badge { margin-top: 7px; }


/* ==================================================================
 * Événements (phase 7, maquette p. 5) — speednox/naturiste-evenements.php
 * Blocs : image d'un côté, texte sur fond jaune de l'autre (alternés) ; passés : cartes sur 3 colonnes
 * ================================================================== */
.nat-evt-section { max-width: var(--largeur-conteneur); margin: 0 auto; padding: var(--espacement-section) 0; }
@media (max-width: 1190px) { .nat-evt-section, .nat-evt-retour { padding-left: var(--marge-laterale); padding-right: var(--marge-laterale); } }
.nat-evt-section + .nat-evt-section { padding-top: calc(var(--espacement-section) * 1.5); }
.nat-evt-entete { display: flex; align-items: last baseline; justify-content: space-between; gap: var(--gouttiere); margin-bottom: 20px; }
.nat-evt-entete .titre-section,
.nat-evt-prives .titre-section { margin: 0; font-family: var(--police); font-size: var(--taille-titre); font-weight: 400; line-height: 1.1; text-transform: uppercase; color: var(--noir); }
.nat-evt-entete .lien-majuscule { font-family: var(--police); font-size: var(--taille-texte); text-transform: uppercase; color: var(--noir); text-decoration: none !important; }
.nat-evt-entete .lien-majuscule:hover { text-decoration: underline !important; }

/* Bouton pilule à contour (comme « bouton-contour ») */
.nat-evt-bouton,
.entry-content a.nat-evt-bouton {
	display: inline-flex; align-items: center; min-height: 40px; padding: 0 22px; border: var(--bordure) solid var(--noir); border-radius: 999px;
	font-family: var(--police); font-size: var(--taille-texte); text-transform: uppercase; color: var(--noir); text-decoration: none !important; background: transparent;
	transition: background-color .2s ease, color .2s ease;
}
.nat-evt-bouton:hover,
.entry-content a.nat-evt-bouton:hover,
.elementor-kit-76 a.nat-evt-bouton:hover { background: var(--noir); color: var(--blanc); } /* le kit (.elementor-kit-76 a:hover) remettait le texte en noir */

/* Événements privés : sans encart, aligné à gauche sur le conteneur comme les en-têtes de section */
.nat-evt-prives { padding-bottom: 0; }
.nat-evt-prives-texte p { max-width: 720px; margin: 20px 0 0; font-family: var(--police); font-size: var(--taille-texte); line-height: 1.5; color: var(--noir); }
.nat-evt-prives-texte p:last-child { margin-top: 24px; }

/* Blocs (à venir, fiche) */
.nat-evt-blocs { display: flex; flex-direction: column; }
.nat-evt-bloc { display: grid; grid-template-columns: 1fr 1fr; min-height: 420px; }
.nat-evt-bloc.nat-evt-inverse .nat-evt-image { order: 2; }
.nat-evt-image { position: relative; overflow: hidden; background: var(--gris-clair); }
.nat-evt-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.nat-evt-texte { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 40px; background: var(--jaune); color: var(--noir); font-family: var(--police); }
.nat-evt-titre { margin: 0; font-family: var(--police); font-size: var(--taille-titre); font-weight: 400; line-height: 1.1; text-transform: uppercase; }
.nat-evt-section a:not(.lien-majuscule):not(.nat-evt-bouton),
.nat-evt-titre a { color: var(--noir); text-decoration: none !important; }
.nat-evt-titre a:hover { text-decoration: underline !important; }
.nat-evt-quand { margin: 0; font-size: var(--taille-texte); font-weight: 700; line-height: 1.4; }
.nat-evt-description,
.nat-evt-description p { font-size: var(--taille-texte); line-height: 1.5; }
.nat-evt-description p { margin: 0 0 .8em; }
.nat-evt-description p:last-child { margin-bottom: 0; }
.nat-evt-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.nat-evt-vide { margin: 0; padding: 30px 40px; background: var(--blanc); font-family: var(--police); font-size: var(--taille-texte); }

/* Cartes (passés) */
.nat-evt-cartes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gouttiere); }
.nat-evt-carte a { display: flex; flex-direction: column; gap: 6px; color: var(--noir); text-decoration: none; font-family: var(--police); }
.nat-evt-carte-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gris-clair); }
.nat-evt-carte-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.nat-evt-carte a:hover .nat-evt-carte-image img { transform: scale(1.04); }
.nat-evt-carte-date { margin-top: 6px; font-size: var(--taille-carte); }
.nat-evt-carte-titre { font-size: var(--taille-texte); font-weight: 700; line-height: 1.25; }
.nat-evt-carte a:hover .nat-evt-carte-titre { text-decoration: underline; }
.nat-evt-carte a, .nat-evt-carte a * { text-decoration: none !important; }
.nat-evt-carte a:hover .nat-evt-carte-titre { text-decoration: underline !important; }

/* Fiche d'un événement */
.nat-evenement .entry-header,
.nat-evenement .entry-title,
.nat-evenement .type-evenement > img.wp-post-image { display: none; } /* image et titre déjà dans le bloc */
.nat-evenement .content-area,
.nat-evenement .site-main { padding-top: 0; }
.nat-evt-retour { max-width: var(--largeur-conteneur); margin: 20px auto 16px; font-family: var(--police); font-size: var(--taille-texte); }
.nat-evt-retour a { color: var(--noir); text-decoration: none; }
.nat-evt-retour a:hover { text-decoration: underline; }
.nat-evenement .nat-evt-bloc { max-width: var(--largeur-conteneur); margin: 0 auto 40px; }

@media (max-width: 1024px) {
	.nat-evt-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
	.nat-evt-bloc { grid-template-columns: 1fr; min-height: 0; }
	.nat-evt-bloc.nat-evt-inverse .nat-evt-image { order: 0; }
	.nat-evt-image { aspect-ratio: 4 / 3; }
	.nat-evt-texte { padding: 24px 20px; }
	.nat-evt-cartes { grid-template-columns: 1fr; }
}


/* ==================================================================
 * Filtres, tri, pagination des listes (phase 7, ex JetSmartFilters) — speednox/naturiste-filtres.php
 * Accordéon : libellé 16 px, chevron à droite, filet noir dessous (même rendu que les filtres 2026)
 * ================================================================== */
.nat-filtres { margin: 0; font-family: var(--police); }
.nat-filtre { border-bottom: var(--bordure) solid var(--noir); }
.nat-filtre > summary {
	position: relative; display: block; padding: 13px 32px 9px 0; cursor: pointer; list-style: none;
	font-size: var(--taille-sous-titre); line-height: 22px; color: var(--noir);
}
.nat-filtre > summary::-webkit-details-marker { display: none; }
.nat-filtre > summary::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 8px; height: 8px; margin-top: -6px;
	border-right: 1.5px solid var(--noir); border-bottom: 1.5px solid var(--noir); transform: rotate(-45deg); transition: transform .2s ease;
}
.nat-filtre[open] > summary::after { transform: rotate(45deg); margin-top: -8px; }
.nat-filtre-options { display: flex; flex-direction: column; gap: 6px; padding: 2px 0 14px; }
.nat-filtre-option { display: flex; align-items: center; gap: 8px; margin: 0; font-size: var(--taille-carte); line-height: 1.3; color: var(--noir); cursor: pointer; }
.nat-filtre-option input { width: 14px; height: 14px; margin: 0; accent-color: var(--noir); }
.nat-filtre-images .nat-filtre-options { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.nat-filtre-images .nat-filtre-option { flex-direction: column; gap: 4px; width: 56px; text-align: center; font-size: 10.5px; }
.nat-filtre-images .nat-filtre-option input { position: absolute; opacity: 0; pointer-events: none; }
.nat-filtre-images .nat-filtre-image { width: 40px; height: 40px; padding: 4px; border: var(--bordure) solid transparent; border-radius: 50%; object-fit: contain; }
.nat-filtre-images .nat-filtre-option:has(input:checked) .nat-filtre-image { border-color: var(--noir); }
.nat-filtre-images .nat-filtre-option:has(input:focus-visible) .nat-filtre-image { outline: 2px solid var(--noir); }
.nat-filtres-reinit { display: inline-block; margin-top: 16px; font-size: var(--taille-carte); color: var(--noir); text-decoration: underline; }
.nat-filtres-valider { margin-top: 12px; }

.nat-tri-form select {
	font-family: var(--police); font-size: var(--taille-carte); color: var(--noir);
	background-color: transparent !important; border: 0 !important; border-bottom: var(--bordure) solid var(--noir) !important; border-radius: 0; padding: 4px 24px 4px 0 !important; width: auto; box-shadow: none;
}

.nat-liste { transition: opacity .2s ease; }
.nat-liste.nat-liste-chargement { opacity: .4; pointer-events: none; }

.nat-liste .woocommerce-pagination { display: none; } /* Shoptimizer en ajoute une au-dessus de la liste */
.nat-liste ul.products ~ .woocommerce-pagination { display: block; margin: 30px 0 10px; text-align: center; }
.nat-liste .woocommerce-pagination ul.page-numbers { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; padding: 0; border: 0; }
.nat-liste .woocommerce-pagination ul.page-numbers li { border: 0; margin: 0; }
.nat-liste .woocommerce-pagination .page-numbers a,
.nat-liste .woocommerce-pagination .page-numbers span {
	display: flex; align-items: center; justify-content: center; min-width: 32px; height: 32px; padding: 0 6px;
	border: var(--bordure) solid transparent; border-radius: 999px; background: transparent;
	font-family: var(--police); font-size: var(--taille-carte); color: var(--noir); text-decoration: none;
}
.nat-liste .woocommerce-pagination .page-numbers a:hover,
.nat-liste .woocommerce-pagination .page-numbers span.current { border-color: var(--noir); background: transparent; color: var(--noir); }

/* Fiche domaine : carrousel de la galerie ACF en ronds (la taille « noxshop 600C » de l'ancien thème n'existe plus → image recadrée en carré) */
.single-winemaker .elementor-widget-image-carousel .swiper-slide-image { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }


/* Barre de menu collée (comme château3 : pas de logo) : panier centré verticalement, pastille dans la barre */
@media (min-width: 993px) {
	.col-full-nav .logo-mark { display: none !important; }
	.col-full-nav.is_stuck .site-header-cart { display: flex !important; align-items: center; align-self: stretch; margin: 0 0 0 28px; }
	.col-full-nav.is_stuck .site-header-cart .shoptimizer-cart,
	.col-full-nav.is_stuck .site-header-cart .cart-contents { margin: 0; line-height: 0; }
	body .col-full-nav.is_stuck .site-header-cart .shoptimizer-cart .cart-contents .count { top: -6px; right: -8px; }
}


/* ==================================================================
 * Blocs Panier / Commande WooCommerce (phase 8, comme château3) — habillage Naturiste
 * Pages en blocs : speednox/dev-docs/scripts/phase8-panier-commande-blocs.php
 * Le kit Elementor met tous les <input> en noir (.elementor-kit-76 input) → valeurs forcées ici.
 * ================================================================== */
body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout,
body .nat-titre-page {
	box-sizing: border-box; width: 100%; max-width: calc(var(--largeur-conteneur) + 2 * var(--marge-laterale)); margin-left: auto; margin-right: auto;
	padding-left: var(--marge-laterale); padding-right: var(--marge-laterale);
}
body .wp-block-woocommerce-cart,
body .wp-block-woocommerce-checkout { padding-top: var(--espacement-section); padding-bottom: calc(var(--espacement-section) * 2); }
body h1.nat-titre-page {
	margin-top: var(--espacement-section); margin-bottom: 0; font-family: var(--police); font-size: var(--taille-titre); font-weight: 400;
	line-height: 1.1; text-transform: uppercase; color: var(--noir);
}
body :is(.wc-block-cart, .wc-block-checkout, .wc-block-components-sidebar-layout) {
	font-family: var(--police); font-size: var(--taille-texte); color: var(--noir);
}

/* Titres de sections / colonnes : capitales, taille des sous-titres */
body .wc-block-components-title.wc-block-components-title,
body .wc-block-cart-items__header,
body .wc-block-cart .wc-block-cart__totals-title,
body .wc-block-components-checkout-order-summary__title-text,
body .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-text {
	font-family: var(--police) !important; font-size: var(--taille-sous-titre) !important; font-weight: 400 !important; line-height: 1.2;
	text-transform: uppercase; letter-spacing: .03em; color: var(--noir);
}
body .wc-block-cart-items__header { border-bottom: var(--bordure) solid var(--noir); }

/* Lignes du panier */
body .wc-block-components-product-name { font-weight: 700 !important; color: var(--noir) !important; text-decoration: none !important; }
body a.wc-block-components-product-name:hover { text-decoration: underline !important; }
body .wc-block-cart-item__image img,
body .wc-block-components-order-summary-item__image img { background: var(--blanc); }
body .wc-block-cart-items td,
body .wc-block-cart-items { border-color: rgba(0, 0, 0, .12) !important; }
body .wc-block-components-order-summary-item__quantity { background: var(--noir); color: var(--blanc); border-color: var(--noir); box-shadow: none; }

/* Quantité : pilule [ − 1 + ] comme sur la fiche produit */
body .wc-block-components-quantity-selector {
	height: 36px; width: 108px; border: var(--bordure) solid var(--noir); border-radius: 999px; overflow: hidden; background: var(--blanc);
}
body .wc-block-components-quantity-selector::after { display: none; } /* filet gris du bloc */
body .wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	min-width: 0; height: 100%; padding: 0; margin: 0; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
	background: transparent !important; color: var(--noir) !important; font-family: var(--police); font-size: 14px; font-weight: 400; text-align: center;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: 34px; height: 100%; padding: 0; margin: 0; border: 0 !important; border-radius: 0 !important;
	background: transparent !important; color: transparent !important; font-size: 0; position: relative; opacity: 1;
}
/* Signes − / + tracés en CSS (mêmes que la pilule de la fiche) */
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button::before,
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus::after {
	content: ""; position: absolute; left: 50%; top: 50%; width: 11px; height: 1.5px; background: var(--noir); transform: translate(-50%, -50%);
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button--plus::after { width: 1.5px; height: 11px; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover { opacity: .55; }
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:disabled { opacity: .25; }
body .wc-block-cart-item__remove-link { color: var(--noir) !important; }

/* Champs : blancs à filet noir */
body .wc-block-components-text-input input,
body .wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="number"], [type="password"]),
body .wc-block-components-combobox .wc-block-components-combobox-control input,
body .wc-blocks-components-select .wc-blocks-components-select__select,
body .wc-block-components-textarea,
body .wc-block-checkout__order-notes textarea {
	background: var(--blanc) !important; color: var(--noir) !important; border: var(--bordure) solid var(--noir) !important;
	border-radius: 0 !important; box-shadow: none !important; font-family: var(--police) !important; font-size: var(--taille-texte) !important;
}
body .wc-blocks-components-select .wc-blocks-components-select__container { background: var(--blanc); border-radius: 0; }
body .wc-block-components-text-input label,
body .wc-blocks-components-select .wc-blocks-components-select__label,
body .wc-block-components-combobox .wc-block-components-combobox-control label { color: var(--noir); opacity: .6; font-family: var(--police); }
body .wc-block-components-text-input input:focus,
body .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body .wc-block-components-textarea:focus { outline: 2px solid var(--rose) !important; outline-offset: 0; box-shadow: none !important; }
body .wc-block-components-validation-error { font-family: var(--police); }

/* Boutons radio (livraison, paiement) et cases à cocher : contour noir sur blanc */
body .wc-block-components-radio-control__input,
body input.wc-block-components-radio-control__input[type="radio"] {
	appearance: none; -webkit-appearance: none; width: 18px; height: 18px; min-height: 0; padding: 0 !important;
	background: var(--blanc) !important; border: var(--bordure) solid var(--noir) !important; border-radius: 50% !important; box-shadow: none !important;
}
body .wc-block-components-radio-control__input:checked { background: radial-gradient(circle, var(--noir) 0 4.5px, var(--blanc) 5px) !important; }
body .wc-block-components-radio-control__input:checked::before { display: none; } /* point WooCommerce : remplacé par le dégradé */
body .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	width: 18px; height: 18px; min-height: 0; padding: 0 !important; background: var(--blanc) !important;
	border: var(--bordure) solid var(--noir) !important; border-radius: 0 !important; box-shadow: none !important;
}
body .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--noir); width: 14px; height: 14px; margin-left: 2px; margin-top: 2px; }
body .wc-block-components-checkbox label,
body .wc-block-components-radio-control__label,
body .wc-block-components-radio-control__secondary-label,
body .wc-block-components-radio-control__description { font-family: var(--police); color: var(--noir); }
body .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
body .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted {
	box-shadow: inset 0 0 0 var(--bordure) var(--noir) !important; border-radius: 0;
}
body .wc-block-components-radio-control--highlight-checked { border-radius: 0; }
body .wc-block-components-radio-control--highlight-checked::after { border-color: var(--noir) !important; border-radius: 0 !important; }
body .wc-block-components-radio-control-accordion-content { font-size: 13px; }

/* Bouton principal (Valider la commande / Commander) : pilule pleine noire ; autres boutons : pilule à contour */
body .wc-block-components-button:not(.is-link) {
	min-height: 48px; padding: 0 24px; border: var(--bordure) solid var(--noir) !important; border-radius: 999px !important;
	background: var(--noir) !important; color: var(--blanc) !important; box-shadow: none !important;
	font-family: var(--police) !important; font-size: var(--taille-texte) !important; font-weight: 400 !important;
	letter-spacing: .02em; text-transform: uppercase; text-decoration: none !important;
}
body .wc-block-components-button:not(.is-link) .wc-block-components-button__text { text-decoration: none !important; }
body .wc-block-components-button:not(.is-link):hover { background: var(--rose) !important; color: var(--noir) !important; }
body .wc-block-components-button:not(.is-link):disabled { opacity: .4; }
body .wc-block-components-totals-coupon__button.wc-block-components-button:not(.is-link) { min-height: 0; background: transparent !important; color: var(--noir) !important; }
body .wc-block-components-totals-coupon__button.wc-block-components-button:not(.is-link):hover { background: var(--noir) !important; color: var(--blanc) !important; }
body .wc-block-components-checkout-place-order-button svg,
body .wc-block-cart__submit-button svg { display: none; } /* cadenas vert Shoptimizer */
body .wc-block-components-checkout-return-to-cart-button { color: var(--noir); font-family: var(--police); }

/* Récapitulatif (colonne de droite) : carte blanche à filet noir, sans arrondi */
body .wc-block-components-sidebar .wc-block-components-totals-wrapper,
body .wc-block-components-sidebar .wc-block-components-panel { border-color: rgba(0, 0, 0, .12); }
body .wp-block-woocommerce-cart-order-summary-block,
body .wp-block-woocommerce-checkout-order-summary-block {
	padding: 6px 20px 0; background: var(--blanc); border: var(--bordure) solid var(--noir) !important; border-radius: 0 !important; box-shadow: none;
}
body .wc-block-components-totals-item__label,
body .wc-block-components-totals-item__value,
body .wc-block-components-totals-item__description { font-family: var(--police); color: var(--noir); }
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 17px; font-weight: 700; }
body .wc-block-components-totals-coupon a,
body .wc-block-components-panel__button { color: var(--noir); font-family: var(--police); }

/* Moyens de paiement : logos à droite du libellé, sur la même ligne */
body .wc-block-components-payment-method-label,
body .wc-block-components-radio-control__label { font-size: var(--taille-texte); }
body .wc-block-checkout__payment-method .wc-block-components-radio-control__label { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; }
body .wc-block-checkout__payment-method .wc-block-components-radio-control__label img { max-height: 22px; width: auto; margin: 0; }

/* Mentions, CGV, notes */
body .wc-block-checkout__terms,
body .wc-block-checkout__terms a,
body .wc-block-components-address-form__address_2-toggle,
body .wc-block-checkout__guest-checkout-notice { font-family: var(--police); color: var(--noir); }
body .wc-block-components-notice-banner { border-radius: 0; font-family: var(--police); }

/* Panier vide */
body .wc-block-cart__empty-cart__title { font-family: var(--police); font-size: var(--taille-titre); font-weight: 400; text-transform: uppercase; }
body .wp-block-woocommerce-empty-cart-block h2 { font-family: var(--police); font-size: var(--taille-sous-titre); font-weight: 400; text-transform: uppercase; }
/* Panier vide : « Nouveautés » en cartes produit du site (shortcode [products … class="nat-panier-vide-produits"] à la place du
   bloc WooCommerce « product-new », retours 09.11), même grille que « Vous aimerez aussi » de la fiche (4 / 3 / 2 colonnes) */
.wp-block-woocommerce-empty-cart-block .nat-panier-vide-produits { margin-top: 20px; } /* écart titre « Nouveautés » → cartes */
.wp-block-woocommerce-empty-cart-block .nat-panier-vide-produits ul.products {
	display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; column-gap: 20px; row-gap: 25px; margin: 0 !important; width: auto;
}
@media (max-width: 1024px) { .wp-block-woocommerce-empty-cart-block .nat-panier-vide-produits ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; column-gap: 10px; row-gap: 20px; } }
@media (max-width: 767px) { .wp-block-woocommerce-empty-cart-block .nat-panier-vide-produits ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
.wp-block-woocommerce-empty-cart-block .nat-panier-vide-produits ul.products li.product { width: auto !important; min-width: 0 !important; margin: 0 !important; float: none; }


/* ==================================================================
 * Fiche produit : galerie CommerceKit (phase 8, widget commercekit-product-gallery)
 * ================================================================== */
/* Pastilles B / BD / N / SO₂ / cœur en surimpression de l'image principale (functions.php : naturiste_badges_galerie_commercekit) */
.woocommerce div.product .cg-main-swiper .naturiste-thumb-wrapper.nat-ck-pastilles {
	position: absolute; inset: 0; z-index: 2; background: transparent; pointer-events: none;
}
.woocommerce div.product .cg-main-swiper .nat-ck-pastilles .badge { pointer-events: auto; }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper,
.woocommerce div.product #commercegurus-pdp-gallery .swiper-slide { background: var(--blanc); }
/* Flèches : comme les carrousels (rond 36 px à contour noir, chevron fin), à 10 px du bord */
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper :is(.swiper-button-next, .swiper-button-prev) {
	width: 36px; height: 36px; margin-top: -18px; border: var(--bordure) solid var(--noir); border-radius: 50%; background: var(--blanc); box-shadow: none;
}
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper .swiper-button-next { right: 10px; }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper .swiper-button-prev { left: 10px; }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper :is(.swiper-button-next, .swiper-button-prev)::after {
	content: ""; width: 10px; height: 10px; background: none; border-left: 1.5px solid var(--noir); border-bottom: 1.5px solid var(--noir);
	-webkit-mask: none; mask: none;
}
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper .swiper-button-prev::after { transform: translateX(2px) rotate(45deg); }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper .swiper-button-next::after { transform: translateX(-2px) rotate(-135deg); }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper :is(.swiper-button-next, .swiper-button-prev):hover { background: var(--noir); }
.woocommerce div.product #commercegurus-pdp-gallery .cg-main-swiper :is(.swiper-button-next, .swiper-button-prev):hover::after { border-color: var(--blanc); }


/* ==================================================================
 * Infobulles des pastilles (Bio, Biodynamie, Nature, Sans SO₂ : data-toggle="tooltip", Bootstrap 4 de noxshop.js)
 * Le CSS Bootstrap venait de « noxweb-styles », retiré en phase 7 : bulle invisible (texte blanc sans fond).
 * Reprise minimale de bootstrap/scss/_tooltip.scss (4.5), en noir.
 * ================================================================== */
.tooltip {
	position: absolute; z-index: 100000; display: block; margin: 0; max-width: 200px;
	font-family: var(--police), sans-serif; font-size: 12px; font-weight: 400; line-height: 1.3; text-align: center;
	word-wrap: break-word; opacity: 0; pointer-events: none;
}
.tooltip.show { opacity: 1; }
.tooltip .arrow { position: absolute; display: block; width: 10px; height: 5px; }
.tooltip .arrow::before { position: absolute; content: ""; border-color: transparent; border-style: solid; }
.tooltip-inner { padding: 5px 8px 4px; color: var(--blanc); background: var(--noir); border-radius: 4px; }
.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { padding: 5px 0; }
.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { bottom: 0; }
.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { top: 0; border-width: 5px 5px 0; border-top-color: var(--noir); }
.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { padding: 5px 0; }
.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { top: 0; }
.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { bottom: 0; border-width: 0 5px 5px; border-bottom-color: var(--noir); }
.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { padding: 0 5px; }
.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { left: 0; width: 5px; height: 10px; }
.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { right: 0; border-width: 5px 5px 5px 0; border-right-color: var(--noir); }
.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { padding: 0 5px; }
.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { right: 0; width: 5px; height: 10px; }
.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { left: 0; border-width: 5px 0 5px 5px; border-left-color: var(--noir); }


/* Accueil, hero (image de la maquette, phase 10) : hauteur fixe 680 px → plus l'écran est large, plus la photo est
   recadrée en hauteur ; centrée, elle coupe les visages dès 2560 px. Au-delà de la largeur de la maquette (1440),
   cadrage remonté sur les visages (≈ 18-41 % de la hauteur de la photo). Widget repéré par son ID d'élément Elementor. */
@media (min-width: 1441px) {
	.elementor img[data-id="39c45bb8"] { object-position: 50% 18%; }
}
