
/* Global font fixer (only mac) */
* {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* GeneratePress fixes */
.site-content
{
	display: block;
}

/* Elementor basics fixes */
.select-caret-down-wrapper {
    display: none;
}

.e-con.e-grid
{
	display: grid;
}

.elementor-text-editor p:last-child
{
	margin-bottom: 0;
}
p.elementor-heading-title
{
	margin-bottom: 0;
}

a.elementor-button
{
	position: relative;
	z-index: 1;
}

.elementor-element > .elementor-background-overlay
{
	pointer-events: none;
}

.elementor-nav-menu a:hover{
	line-height: 1.3em;
}

/* Elementor lightbox fix */
.elementor-lightbox .elementor-lightbox-item
{
	padding: 0;
}


/* Elementor utils */
.no-margin
{
	margin: 0 !important;
}
.nox-flex-row.elementor-column .elementor-widget-wrap
{
	flex-direction: row;
	flex-wrap: nowrap;
}
.nox-flex-row.elementor-column .elementor-widget-wrap>.elementor-element
{
	display: flex;
	align-items: center;
	width: auto;
	margin-bottom: 0 !important;
}
.nox-flex-row.elementor-column .elementor-widget-wrap>.elementor-element .elementor-icon-wrapper
{
	display: flex;
	align-items: center;
}
.nox-pos-static.elementor-widget
{
	position: static;
}

.noxshop-brand-slide .swiper-wrapper
{
	display: flex;
	flex-direction: row;
}
.noxshop-brand-slide .swiper-slide a
{
	display: flex;
	height: 80px;
	padding: 10px;
	align-items: center;
	justify-content: center;
	background-color: #fff;
}

.noxshop-brand-slide .swiper-slide img
{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.speednox-category-header img
{
	width: 130px;
	height: 130px;
}


/***************************************************************/
/* Global styles */
/***************************************************************/
/****************************************************************
// Main colors
#824637
#C8915A
#463C3C

// First try
#F5EBE8
#FAF4EF
#EDEAEA

// Second try (lighter)
#F6F1EF
#FAF6F4
#F0EEEE

// Final light colors
#f6f1ed
#fbf9f7


// Fonts
Cormorant Infant
Manrope


/***************************************************************/


body
{
	background-color: #fbf9f7;/* #FAF4EF;*/
}
.site-content
{
	background-color:  #fbf9f7;
	/*
	/**/
}

body.noxweb-page .col-full.topbar-wrapper,
body.noxweb-page #masthead.site-header,
body.noxweb-page .col-full-nav
{
	background-color:  #f6f1ed;
}

.site-search input[type="search"]
{
	background-color:  #fbf9f7;
	box-shadow: none;
}

/* Temp fix */
body.noxweb-page.single-product .site-content .col-full
{
	background-color: transparent !important;
}


/***************************************************************/
/* WooCommerce customization starts here */
/***************************************************************/
.elementor-page .col-full #secondary.widget-area
{
	display: none;
}

.cgkit-as-variation-price .price span.price-10cl,
.cgkit-as-variation-price .price span.price-10cl .amount
{
	display: block;
	font-size: 0.7em;
	font-weight: 600;
}
.woocommerce-breadcrumb,
.woocommerce-breadcrumb a
{
	font-size: 13px;
}

.shoptimizer-archive .woocommerce-products-header
{
	justify-content: center;
	text-transform: uppercase;
	font-size: 21px;
}

.speednox-product-title-wrapper .product_title.entry-title,
.shoptimizer-archive .entry-header .entry-title,
.shoptimizer-archive .woocommerce-products-header .page-title
{
	text-align: center;
	text-transform: uppercase;
}

/* Woo: Checkout */
@media (min-width: 993px) {	
	.woocommerce-checkout .main-header.col-full
	{
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.woocommerce-checkout .custom-logo-link img
	{
		max-height: 55px;
	}
}

/* Product Price */
div.product p.price .woocommerce-Price-amount.amount,
.woocommerce-variation-price .price .woocommerce-Price-amount.amount,
.cgkit-as-variation-price .price .woocommerce-Price-amount.amount
{
	font-size: 1.1em;
	font-weight: 600;
	color: #C39444;
}
div.product p.price span.tva-info,
.woocommerce-variation-price .price span.tva-info,
.cgkit-as-variation-price .price span.tva-info
{
	display: block;
	margin-top: -0.4em;
	font-size: 0.7em;
	font-weight: normal;
	line-height: 1.2em;
}
div.product p.price span.price-10cl,
.woocommerce-variation-price .price span.price-10cl,
.cgkit-as-variation-price .price span.price-10cl
{
	display: block;
	font-size: 0.7em;
	font-weight: 600;
}
div.product p.price span.price-10cl .amount,
.woocommerce-variation-price .price span.price-10cl .amount,
.cgkit-as-variation-price .price span.price-10cl .amount
{
	font-size: 1em;
}

div.product p.price span.tva-info,
div.product p.price span.price-10cl,
div.product p.price .selection
{
	color: #1A1A1A;
}

.shoptimizer-archive #commercegurus-pdp-gallery
{
	width: auto;
	padding-right: 40px;
}

@media (min-width: 993px) {
	.shoptimizer-archive .product .summary.entry-summary
	{
		width: 60%;
	}
}

div[data-elementor-type="wp-page"] > div >  .e-con-inner {
    margin: 0;
}
p.orange{
	font-size: 17px;
	font-weight: 700;
	color: #C39444;
}


.hidden-form{
	display: none;
}
.iconbox
{
	max-height: 40px;
}
.iconbox img
{
	max-height: 40px;
	width: auto;
}

#formulaire-commande {
    animation: fadeIn 0.5s ease-in-out;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.elementor-field-group-forfait .select-caret-down-wrapper{
	display: none;
}

header .main-header{
	justify-content: center;
}

/* header .main-header .site-search{
	max-width: calc(50vw - 200px);
}

@media (min-width: 1270px){
	header .main-header .site-search{
		max-width: calc(585px - 150px);
	}
} */
.top-bar-center .elementor
{
	min-width: 100%;
}

.noxup-map .leaflet-tile-pane
{
	/*filter: grayscale(100%) invert(1) brightness(1);*/
}
.noxup-map .leaflet-marker-pane img
{
	filter: brightness(0) invert(47%) sepia(97%) saturate(2500%) hue-rotate(376deg) brightness(96%) contrast(98%);
}


body #page .site-content
{
	padding-top: 0;
}

body.home .site-content .col-full,
body.wp-singular:not(.woocommerce-page, .tag-not-full) .site-content div:not(.archive-header)>.col-full 
{
	width: 100%;
    max-width: 100%;
    padding: 0;
}
div[data-elementor-type="wp-page"] .elementor-element.e-flex:not(.col-full)
{
	align-items: center;
}


.site-header-cart .shoptimizer-cart .amount
{
	display: none;
}

body .col-full .nav-search--desktop .site-search
{
	display: block; 
}

body .col-full .nav-search--desktop
{
	margin : auto; 
}


/*Produit en vue liste*/
ul.products
{
	gap: 20px;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.related>ul.products
{
	grid-template-columns: repeat(5, 1fr);
}

ul.products li.product.type-product
{
	width: 100%;
	height: 100%;
	padding: 15px;
	background-color: #fff;
	border-radius: 3px;
}
.product .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper
{
	display: flex;
	justify-content: center;
}
.product .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper img
{
	max-height: 260px;
	width: auto;
}

/* Accessoires : cadre carré. Les vins restent en portrait (max-height 260px).
 * La photo source n’est pas recadrée : object-fit couvre le carré, le zoom
 * lightbox ouvre toujours le fichier d’origine. */
ul.products li.product.product_cat-accessoires-d3d94 .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper
{
	position: relative;
	aspect-ratio: 1 / 1;
	width: 100%;
	overflow: hidden;
}
ul.products li.product.product_cat-accessoires-d3d94 .woocommerce-image__wrapper .shoptimizer-plp-image-wrapper img
{
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	object-position: center;
}
body.single-product.product_cat-accessoires-d3d94 #commercegurus-pdp-gallery .cg-main-swiper img.pdp-img
{
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	object-position: center;
}

ul.products li.product .woocommerce-card__header .woocommerce-loop-product__title
{
	padding-top: 0;
	padding-bottom: 0;
}
ul.products li.product .woocommerce-card__header .woocommerce-loop-product__title a
{
	font-family: "Cormorant Infant", Sans-serif;
	text-transform: uppercase;
	font-size: 15px;
	font-weight: 700;

}

.infos
{
	font-size: 0.8em;
	font-weight: 400;
	color: #777;
	margin-bottom: 10px;
	display: block;
}

.selection--loop
{
	text-transform: uppercase;

	font-size: 0.7em;
	font-weight: 400;
	padding-top: 0;
	padding-bottom: 0;
}

/* Bouton fermer du drawer filtres : masqué en desktop uniquement.
 * Sur mobile (≤ 992 px), Shoptimizer le réaffiche via `.filter-open .filters.close-drawer`.
 * Ne pas le cacher globalement, sinon le drawer mobile reste inutilisable. */
@media (min-width: 993px)
{
	.filters.close-drawer
	{
		display: none;
	}
}

/* Woo: Single product */
.shoptimizer-archive .speednox-product-title-wrapper
{
	text-align: center;
}
.shoptimizer-archive .speednox-product-title-wrapper .selection
{
	font-size: 16px;
	text-transform: uppercase;
	font-weight: 400;
}
.shoptimizer-archive .speednox-product-title-wrapper .product_title.entry-title
{
	margin: 0 auto 20px;
	max-width: 760px;
	line-height: 1.1;
}

.speednox-product-sku.product_meta
{
	margin-left: 0;
	margin-right: 0;
	left: 0;
	right: 0;
	text-align: left;
}

.speednox-product-sku.product_meta .sku_wrapper
{
	margin-left: 0;
}

.product-details-wrapper .tva-info
{
	padding-top: 10px;
}

/* Tableau "Informations complémentaires" : séparateur ", " auto entre valeurs visibles */
.speednox-attr-list > .speednox-attr-value:not([hidden]) ~ .speednox-attr-value:not([hidden])::before
{
	content: ', ';
}

/*cart*/
body .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row  *,
body .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header,
body .wc-block-cart .wp-block-woocommerce-cart-order-summary-block,
body .wc-block-cart .wp-block-woocommerce-cart-order-summary-block *
{
	font-size: inherit;
}
/*Checkout*/
body .wc-block-checkout__terms,
body .wc-block-components-title.wc-block-components-title,
body .wc-block-components-form .wc-block-components-text-input,
body .wc-block-components-form .wc-block-components-text-input label,
body .wc-block-components-checkbox label,
body .wc-block-checkout__shipping-option .wc-block-components-shipping-rates-control__no-shipping-address-message,
body .wc-block-components-address-form__address_2-toggle,
body .wp-block-woocommerce-checkout-order-summary-block,
body .wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text
{
	font-size: inherit;
}
/*Formats spéciaux*/

@media (min-width: 993px) 
{
	body:not(.woocommerce-checkout) .site-header .main-header .site-branding
	{
		margin-top: -10px;
		padding-bottom: 10px;
	}
	.shoptimizer-primary-navigation
	{
		position: relative;
	}
	.shoptimizer-primary-navigation > #site-navigation
	{
		flex: 1 1 auto;
		min-width: 0;
		transition: opacity 0.2s ease;
	}
	body .col-full .nav-search--desktop
	{
		align-self: center;
		margin: 0;
		flex: 0 0 auto;
		flex-shrink: 0;
		min-width: 0;
		width: clamp(100px, 10vw, 200px);
	}

	body.speednox-search-active .shoptimizer-primary-navigation > #site-navigation
	{
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		opacity: 0;
		pointer-events: none;
	}
	body.speednox-search-active .col-full .nav-search--desktop
	{
		flex: 1 1 auto;
		width: auto;
		max-width: none;
		min-width: 0;
	}
	body.speednox-search-active .col-full .nav-search--desktop .site-search,
	body.speednox-search-active .col-full .nav-search--desktop .site-search .widget_product_search,
	body.speednox-search-active .col-full .nav-search--desktop .site-search .woocommerce-product-search,
	body.speednox-search-active .col-full .nav-search--desktop .site-search input[type="search"]
	{
		width: 100%;
		max-width: 100%;
	}
	body.speednox-search-active .col-full .nav-search--desktop .commercekit-ajs-results,
	body.speednox-search-active .col-full .nav-search--desktop .commercekit-ajs-suggestions
	{
		width: 100% !important;
		max-width: 100%;
		box-sizing: border-box;
	}
	body .col-full .nav-search--desktop .site-search,
	body .col-full .nav-search--desktop .site-search .widget_product_search,
	body .col-full .nav-search--desktop .site-search .woocommerce-product-search
	{
		width: 100%;
		max-width: 100%;
		min-width: 0;
	}
	body .col-full .nav-search--desktop .site-search input[type="search"]
	{
		width: 100%;
		min-width: 0;
	}
	.site-header-cart
	{
		flex: 0 0 auto;
		flex-shrink: 0;
		margin-left: 20px;
		align-content: center;
	}	
	.site-search input[type="search"]
	{
		padding-top: 5px;
		padding-bottom: 5px;
		height: 32px;
		font-size: 14px;
	}
}

/*
 * Breakpoints layout speednox (seuil structurel Shoptimizer inchangé à 992/993) :
 * - Desktop  : ≥ 993 px
 * - Tablette : 768 px – 992 px
 * - Mobile   : ≤ 767 px
 */

/* Tablette + mobile (seuil Shoptimizer) : chrome header / topbar */
@media (max-width: 992px)
{
	body .site-header .main-header .site-branding a img
	{
		height: 55px;
	}
	body .col-full .nav-search--desktop .site-search
	{
		display: none;
	}
	.mobile-filter.shoptimizer-mobile-toggle{
		margin-bottom: 30px;
	}
	.col-full.topbar-wrapper.hide-on-mobile
	{
		display: block !important;
	}
	div.site-branding button.menu-toggle,
	div.site-branding button.menu-toggle:hover
	{
		background-color: transparent;
	}
	.mobile-filter {
		margin-left: -15px;
		width: calc(100% + 30px);
	}
}

/*
 * Mobile : top bar sur une ligne, 35 px max, jusqu'à 320 px.
 * Livraison à gauche, « Europe » à droite. Le 50 % Elementor et le
 * padding 0.6rem de Shoptimizer faisaient wrapper les libellés.
 */
@media (max-width: 767px)
{
	.col-full.topbar-wrapper
	{
		box-sizing: border-box;
		height: 35px;
		max-height: 35px;
		padding: 0 8px;
		overflow: hidden;
	}
	.topbar-wrapper .top-bar
	{
		display: flex;
		align-items: center;
		height: 100%;
		max-height: 34px;
		padding: 0;
		font-size: clamp(9.5px, 2.7vw, 13px);
		line-height: 1.15;
	}
	.topbar-wrapper .top-bar .col-full,
	.topbar-wrapper .top-bar-center
	{
		display: flex;
		align-items: center;
		width: 100%;
		max-width: 100%;
		height: 100%;
		text-align: left;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-eaee958
	{
		flex-wrap: nowrap;
		align-items: center;
		justify-content: space-between;
		width: 100%;
		height: 100%;
		column-gap: 8px;
		--flex-wrap: nowrap;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-112f104
	{
		flex: 0 1 auto;
		min-width: 0;
		max-width: 68%;
		width: auto;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-112f104 .elementor-icon-list-item
	{
		justify-content: flex-start;
		min-width: 0;
		max-width: 100%;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-112f104 .elementor-icon-list-icon
	{
		flex: 0 0 auto;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-112f104 .elementor-icon-list-text
	{
		min-width: 0;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		font-size: inherit;
		line-height: 1.15;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-a38dc68
	{
		flex: 0 1 auto;
		flex-wrap: nowrap;
		justify-content: flex-end;
		width: auto;
		min-width: 0;
		max-width: 40%;
		--width: auto;
		--flex-wrap: nowrap;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-607d590
	{
		min-width: 0;
		max-width: 100%;
	}
	.topbar-wrapper .elementor-136 .elementor-element.elementor-element-607d590 .elementor-heading-title
	{
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		font-size: inherit;
		line-height: 1.15;
		text-align: right;
	}
}

/* Tablette : grille produits = 4 colonnes (override Shoptimizer qui force 2 cols ≤ 992 px) */
@media (min-width: 768px) and (max-width: 992px)
{
	ul.products
	{
		grid-template-columns: repeat(4, 1fr);
	}
}

/* Page Shop : sections par catégorie (Vins / Accessoires) */
.speednox-shop-section
{
	margin-bottom: 3rem;
}
.speednox-shop-section + .speednox-shop-section
{
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid #e5e5e5;
}
.speednox-shop-section__title
{
	margin: 0 0 1.25rem;
	font-size: 1.75rem;
	line-height: 1.2;
}
.speednox-shop-subsection
{
	margin-bottom: 2.5rem;
}
.speednox-shop-subsection:last-child
{
	margin-bottom: 0;
}
h3.speednox-shop-section__subtitle
{
	font-weight: bold;
}
.speednox-shop-section__description
{
	margin: 0.35rem 0 1.25rem;
	max-width: 46rem;
	font-size: 0.95rem;
	line-height: 1.55;
	color: #555;
}
.speednox-shop-section__description p
{
	margin: 0 0 0.75rem;
}
.speednox-shop-section__description p:last-child
{
	margin-bottom: 0;
}
.speednox-shop-section__description em
{
	font-style: italic;
}

/* Mobile : grille produits = 2 colonnes + titres shop */
@media (max-width: 767px)
{
	ul.products
	{
		grid-template-columns: repeat(2, 1fr);
	}
	.speednox-shop-section__title
	{
		font-size: 1.4rem;
	}
	.speednox-shop-section__subtitle
	{
		font-size: 1.1rem;
	}
	.speednox-shop-section__description
	{
		font-size: 0.9rem;
	}
}



/* Page Distinctions */
.elementor-shortcode .auv-distinction
{
	position: relative;
	grid-template-rows: repeat(1, 1fr);
    grid-template-columns: repeat(1, 1fr 4fr);
	background-color: #fff;
	margin-bottom: 20px;
}

.elementor-shortcode .auv-distinction .auv-distinction__admin-edit
{
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 6px 10px;
	background-color: #463C3C;
	color: #fff;
	font-size: 12px;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	border-radius: 2px;
}
.elementor-shortcode .auv-distinction .auv-distinction__admin-edit:hover,
.elementor-shortcode .auv-distinction .auv-distinction__admin-edit:focus
{
	background-color: #C39444;
	color: #fff;
	text-decoration: none;
}

div[data-elementor-type="wp-page"] .elementor-shortcode .auv-distinction .auv-distinction__body,
div[data-elementor-type="wp-page"] .elementor-shortcode .auv-distinction .auv-distinction__medals,
div[data-elementor-type="wp-page"] .elementor-shortcode .auv-distinction .auv-distinction__heads
{
	padding: 0;
	gap: 0;
	align-items: start;
}

.auv-distinction__meta
{
	font-size: 14px;
	color: #463C3CB3;
}
.auv-distinction__selection
{
	text-transform: uppercase;
	font-size: 11px;
	font-weight: 400;
}

.auv-distinction__medal
{
	font-size: 13px;
	--auv-medal-color: #B0B0B0;
}
.auv-distinction__medal .elementor-icon-list-icon i,
.auv-distinction__medal .elementor-icon-list-text 
{
	color: var(--auv-medal-color);
}
.auv-distinction__medal .elementor-icon-list-text 
{
	font-weight: 400;
}

/* Couleurs par type de médaille (slug ACF `medal_title`, généré par sanitize_title()). */
.auv-distinction__medal--or
{
	--auv-medal-color: #A8843A;
}
.auv-distinction__medal--argent
{
	--auv-medal-color: #8B8579;
}
.auv-distinction__medal--prix-dexcellence
{
	--auv-medal-color: #732834;
}

.elementor-shortcode .elementor-divider
{
	padding: 15px 0 ;
}
div[data-elementor-type="wp-page"] .elementor-shortcode .elementor-divider .elementor-divider-separator
{
	border-block-start: 1px solid #8B857959;
	width: 100%;
}
.grey
{
	color: #777777;
}

/* buttons */

.elementor-shortcode .elementor-button
{
	background-color: #fff;
	color: #C39444;
	border-radius: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 300;
}
.elementor-shortcode .elementor-button:hover
{
	background-color: #fff;
	color: #C3944459;
}

/* --------------------------------------------------------------
 * Barre de progression livraison sur la page panier (bloc Cart)
 * Effet d'actualisation identique aux prix du bloc WC Cart
 * (voir `.wc-block-components-loading-mask` dans cart.css : opacité
 * réduite + pointer-events off pendant le fetch de refresh AJAX).
 * -------------------------------------------------------------- */

.speednox-fsn-cart-wrapper
{
	transition: opacity 0.2s ease-in-out;
}
.speednox-fsn-cart-wrapper.is-loading
{
	opacity: 0.25;
	pointer-events: none;
}
.cgkit-fsn-shop-link a
{
	font-size: 13px;
}
/* --------------------------------------------------------------
 * Bouton +/- du sélecteur de quantité (bloc WC Cart)
 * Comportement natif des <button> : le focus reste après clic
 * souris. On limite le style de focus au focus clavier via
 * :focus-visible (accessibilité préservée pour la navigation Tab).
 * -------------------------------------------------------------- */
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus
{
	background-color: transparent;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus:not(:focus-visible)
{
	box-shadow: none;
}
body .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover
{
	background-color: #C39444;
}
/* --------------------------------------------------------------
 * Menu principal : état actif de l'item de la page courante
 * Le thème Shoptimizer n'expose qu'une couleur "Navigation links
 * hover/selected" dans le Customizer, mais son CSS ne l'applique
 * qu'au :hover — aucun style natif sur .current-menu-item &co.
 * On reproduit l'animation soulignée du survol de façon permanente
 * sur l'item correspondant à l'URL courante. La couleur reprend
 * automatiquement le réglage du Customizer (border-color injectée
 * par Kirki sur le même sélecteur :before).
 *
 * Desktop uniquement (> 992 px) : sur mobile, `navigation-mobile.css`
 * neutralise l'animation `a span:before` (structure verticale).
 * -------------------------------------------------------------- */
@media (min-width: 993px)
{
	.menu-primary-menu-container > ul > li.current-menu-item > a span:before,
	.menu-primary-menu-container > ul > li.current-menu-parent > a span:before,
	.menu-primary-menu-container > ul > li.current-menu-ancestor > a span:before,
	.menu-primary-menu-container > ul > li.current_page_item > a span:before,
	.menu-primary-menu-container > ul > li.current_page_parent > a span:before,
	.menu-primary-menu-container > ul > li.current_page_ancestor > a span:before,
	.menu-primary-menu-container > ul > li.current-menu-item.nolink > span:before,
	.menu-primary-menu-container > ul > li.current-menu-parent.nolink > span:before,
	.menu-primary-menu-container > ul > li.current-menu-ancestor.nolink > span:before
	{
		transform: scale(1, 1);
		transform-origin: left center;
	}
}

/* --------------------------------------------------------------
 * Menu DE : les libellés allemands sont plus longs (Weine:
 * Bestellen, Besuch & Verkostung, Auszeichnungen…). Sous 1084 px
 * le dernier item (« Kontakt ») wrappe et double la hauteur du
 * header. On réduit font-size + padding uniquement en DE, entre
 * le seuil desktop Shoptimizer (993 px) et 1083 px.
 * FR / EN inchangés. Mobile (≤ 992 px) inchangé (drawer).
 * -------------------------------------------------------------- */
@media (min-width: 993px) and (max-width: 1083px)
{
	html[lang^="de"] .menu-primary-menu-container > ul > li > a,
	html[lang^="de"] .menu-primary-menu-container > ul > li.nolink > span
	{
		font-size: 13px;
		padding-left: 5px;
		padding-right: 5px;
	}
}

/* --------------------------------------------------------------
 * Page campagne d'offres spéciales (`auv-offre`)
 * Layout inspiré du formulaire Tally coffrets.
 * -------------------------------------------------------------- */
body.single-auv-offre.wp-singular .site-content div:not(.archive-header)>.col-full
{
	width: 100%;
	max-width: 1170px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 20px;
	padding-right: 20px;
	box-sizing: border-box;
}
body.single-auv-offre #primary.content-area,
body.single-auv-offre .site-main
{
	width: 100%;
	float: none;
	margin: 0 auto;
}
.auv-offre-page
{
	position: relative;
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
	padding: 32px 0 80px;
	font-family: "Manrope", sans-serif;
}
.auv-offre-page__intro
{
	margin: 0 0 2rem;
	font-size: 1.15rem;
	line-height: 1.45;
	font-weight: 600;
	color: #463C3C;
}
.auv-offre-form
{
	position: relative;
	display: flex;
	flex-direction: column;
}
.auv-offre-form__progress
{
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 6px;
	order: 0;
	margin: 0 0 20px;
}
.auv-offre-form__progress span
{
	display: block;
	height: 4px;
	border-radius: 2px;
	background: #e0dcd6;
}
.auv-offre-form__progress span.is-active
{
	background: #463C3C;
}
.auv-offre-form--step-2 .auv-offre-form__section,
.auv-offre-form--step-3 .auv-offre-form__section
{
	margin-top: 0;
}
.auv-offre-form__body
{
	order: 2;
}
.auv-offre-form__back
{
	order: 1;
	align-self: flex-start;
}
.auv-offre-form--step-2.is-invalid .auv-offre-form__choice
{
	border-color: #d4b4a8;
}
.auv-offre
{
	position: relative;
	padding: 28px 0;
	border-bottom: 1px solid #8B857959;
}
.auv-offre:first-of-type
{
	padding-top: 0;
}
body.single-auv-offre h2.auv-offre__title
{
	margin: 0 0 1rem;
	font-family: "Cormorant Infant", Georgia, serif;
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 1.25;
	color: #463C3C;
}
.auv-offre__price
{
	font-weight: 400;
}
.auv-offre__grid
{
	display: grid;
	grid-template-columns: minmax(180px, 280px) 1fr;
	gap: 20px 32px;
	align-items: start;
}
.auv-offre__image
{
	margin: 0;
}
.auv-offre__image img,
.auv-offre__img
{
	display: block;
	width: 100%;
	height: auto;
}
.auv-offre__contenu
{
	margin-bottom: 1.15rem;
	font-size: 15px;
	line-height: 1.55;
	color: #555;
}
.auv-offre__contenu p
{
	margin: 0 0 0.15em;
}
.auv-offre__contenu p:last-child
{
	margin-bottom: 0;
}
.auv-offre__qty-label
{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 0.4rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: #463C3C;
}
.auv-offre__required
{
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background-color: #c8c3bc;
}
.auv-offre__note
{
	margin: 0 0 0.55rem;
	font-size: 14px;
	color: #555;
}
.auv-offre__qty
{
	display: block;
	width: 100%;
	max-width: 100%;
	padding: 12px 14px;
	border: 1px solid #e0dcd6;
	border-radius: 8px;
	background: #fff;
	font-size: 16px;
	line-height: 1.3;
	color: #463C3C;
	box-sizing: border-box;
}
.auv-offre__qty:focus
{
	border-color: #C39444;
	outline: none;
	box-shadow: 0 0 0 3px rgba(195, 148, 68, 0.2);
}
.auv-offre-form.is-invalid .auv-offre__qty,
.auv-offre-form--error .auv-offre__qty
{
	border-color: #d4b4a8;
}
.auv-offre__unavailable
{
	margin: 0;
	font-size: 14px;
	color: #777;
}
.auv-offre-form__hint
{
	margin: 24px 0 16px;
	font-size: 16px;
	color: #463C3C;
}
.auv-offre-form.is-invalid .auv-offre-form__hint,
.auv-offre-form--error .auv-offre-form__hint
{
	color: #732834;
}
.auv-offre-form__submit
{
	order: 3;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: 24px;
	padding: 12px 22px;
	border: 0;
	border-radius: 8px;
	background-color: #463C3C;
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	line-height: 1;
	cursor: pointer;
}
.auv-offre-form__submit:hover,
.auv-offre-form__submit:focus
{
	background-color: #C39444;
	color: #fff;
}
body.single-auv-offre .auv-offre-form button.auv-offre-form__back
{
	-webkit-appearance: none;
	appearance: none;
	order: 1;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	width: auto;
	height: 28px;
	min-height: 0;
	margin: 0 0 28px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	color: #463C3C;
	font-family: inherit;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1;
	text-align: left;
	text-decoration: none;
	text-shadow: none;
	text-transform: none;
	cursor: pointer;
}
body.single-auv-offre .auv-offre-form button.auv-offre-form__back:hover,
body.single-auv-offre .auv-offre-form button.auv-offre-form__back:focus
{
	background: transparent;
	background-color: transparent;
	box-shadow: none;
	color: #463C3C;
	opacity: 0.7;
}
body.single-auv-offre .auv-offre-form button.auv-offre-form__back svg
{
	display: block;
	width: 17px;
	height: 17px;
	flex: 0 0 17px;
	stroke: currentColor;
	opacity: 0.6;
}
.auv-offre-form__empty
{
	margin: 0;
	color: #555;
}
.auv-offre-form__hp
{
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.auv-offre-form__section
{
	margin: 28px 0 0;
	padding: 0;
	border: 0;
}
body.single-auv-offre .auv-offre-form__legend,
body.single-auv-offre .auv-offre-form__pickup-title
{
	margin: 0 0 1rem;
	padding: 0;
	font-family: "Cormorant Infant", Georgia, serif;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.25;
	color: #463C3C;
}
.auv-offre-form,
.auv-offre-form button,
.auv-offre-form input,
.auv-offre-form label,
.auv-offre__contenu,
.auv-offre__qty-label
{
	font-family: "Manrope", sans-serif;
}
.auv-offre-form__choice
{
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	padding: 12px 14px;
	border: 1px solid #e0dcd6;
	border-radius: 8px;
	cursor: pointer;
	font-size: 15px;
	color: #463C3C;
}
.auv-offre-form__choice:has(input:checked),
.auv-offre-form__choice.is-selected
{
	border-color: #C39444;
	box-shadow: 0 0 0 3px rgba(195, 148, 68, 0.2);
}
.auv-offre-form__note
{
	margin: 8px 0 0;
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #463C3C;
}
.auv-offre-form__pickup
{
	margin: 4px 0 16px;
	padding: 4px 0 0 28px;
}
.auv-offre-form__pickup[hidden]
{
	display: none;
}
body.single-auv-offre .auv-offre-form__pickup-title
{
	margin-bottom: 0.35rem;
	font-size: 1.2rem;
}
.auv-offre-form__pickup-deadline
{
	margin: 0 0 0.8rem;
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	color: #463C3C;
}
.auv-offre-form__pickup .auv-offre-form__input
{
	max-width: 220px;
}
.auv-offre-form__pickup-hours,
.auv-offre-form__pickup-closed
{
	margin: 14px 0 0;
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	line-height: 1.45;
	color: #463C3C;
}
.auv-offre-form__pickup-closed
{
	margin-top: 12px;
}
.auv-offre-form__note--suisse[hidden]
{
	display: none;
}
.auv-offre-form__field
{
	margin: 0 0 1.1rem;
}
.auv-offre-form__label
{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 0.4rem;
	font-size: 1.05rem;
	font-weight: 700;
	color: #463C3C;
}
.auv-offre-form__input
{
	display: block;
	width: 100%;
	max-width: 420px;
	padding: 12px 14px;
	border: 1px solid #e0dcd6;
	border-radius: 8px;
	background: #fff;
	font-size: 16px;
	line-height: 1.3;
	color: #463C3C;
	box-sizing: border-box;
}
.auv-offre-form__input:focus
{
	border-color: #C39444;
	outline: none;
	box-shadow: 0 0 0 3px rgba(195, 148, 68, 0.2);
}
.auv-offre-form__field.is-invalid .auv-offre-form__input
{
	border-color: #732834;
}
.auv-offre-form__error
{
	margin: 0.35rem 0 0;
	font-size: 13px;
	color: #732834;
}
.auv-offre-form__payment
{
	margin: 20px 0 16px;
	font-size: 15px;
	color: #463C3C;
}
.auv-offre-form__success
{
	margin: 0;
	padding: 16px 18px;
	border-radius: 8px;
	background: #f4efe6;
	color: #463C3C;
	font-size: 16px;
}

@media (max-width: 767px)
{
	.auv-offre__grid
	{
		grid-template-columns: 1fr;
	}
	.auv-offre__title
	{
		font-size: 1.3rem;
	}
	.auv-offre-form__input
	{
		max-width: 100%;
	}
}

/* Popups offres spéciales (CTA vers la campagne en cours) */
.nox-popup
{
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 999999;
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.nox-popup.active
{
	opacity: 1;
}

.nox-exit-popup
{
	pointer-events: auto;
}

.nox-popup-overlay
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.7);
	cursor: pointer;
}

.nox-popup-content
{
	position: absolute;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
	max-width: 90%;
	max-height: 90%;
	overflow: visible;
	pointer-events: auto;
}

.nox-exit-popup .nox-popup-content
{
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 100%;
	max-width: 800px;
}

.nox-entry-popup .nox-popup-content
{
	bottom: 20px;
	right: 20px;
	width: 220px;
	transform: translateY(400px);
	transition: transform 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.nox-entry-popup.active .nox-popup-content
{
	transform: translateY(0);
}

.nox-popup-close
{
	position: absolute;
	top: -12px;
	right: -12px;
	background: #fff;
	border: none;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	color: #333;
	width: 28px;
	height: 28px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background-color 0.2s ease;
	z-index: 10;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
	padding: 0;
}

.nox-popup-close:hover
{
	background-color: #f0f0f0;
}

.nox-popup-link
{
	display: block;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
}

.nox-popup-link:hover
{
	text-decoration: none;
}

.nox-popup-inner
{
	padding: 0;
	overflow: auto;
	max-height: 90vh;
}

h3.nox-popup-title
{
	margin-top: 0;
	margin-bottom: 0;
	font-family: "Manrope", sans-serif;
	font-size: 15px;
	color: #333;
	font-weight: 600;
	line-height: 1.2;
	padding: 12px 12px 8px;
}

.nox-entry-popup h3.nox-popup-title
{
	font-size: 12px;
	line-height: 1.25;
	padding: 8px 10px 6px;
}

.nox-exit-popup h3.nox-popup-title
{
	font-family: "Cormorant Infant", Georgia, serif;
	font-size: 28px;
	font-weight: 600;
	line-height: 1.2;
	padding: 20px 40px 15px;
}

.nox-popup-image-wrapper
{
	position: relative;
	margin-bottom: 0;
	line-height: 0;
}

.nox-popup-image-wrapper img
{
	width: 100%;
	height: auto;
	display: block;
}

.nox-popup-btn
{
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	white-space: nowrap;
}

.elementor-kit-4 .nox-popup-link:hover .nox-popup-btn
{
	background-color: var(--e-global-color-text);
	color: var(--e-global-color-secondary);
}

.nox-side-trigger
{
	position: fixed;
	right: 0;
	bottom: 20px;
	max-width: calc(100vh - 40px);
	overflow: hidden;
	white-space: nowrap;
	transform: translateX(100%) rotate(-90deg);
	transform-origin: left bottom;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
	z-index: 99999;
}

.elementor-kit-4 .nox-side-trigger.elementor-button
{
	display: flex;
	align-items: center;
	gap: 8px;
	border-radius: 4px 4px 0 0;
}

.nox-side-trigger-icon
{
	flex: 0 0 auto;
	font-size: 16px;
}

.nox-side-trigger-text
{
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

@media (max-width: 1024px)
{
	.nox-exit-popup .nox-popup-content
	{
		width: calc(100% - 40px);
		max-width: calc(100% - 40px);
	}
}

@media (max-width: 768px)
{
	.nox-exit-popup .nox-popup-content
	{
		width: calc(100% - 40px);
		max-width: none;
	}

	.nox-entry-popup .nox-popup-content
	{
		bottom: 10px;
		right: 10px;
		width: 180px;
	}

	.nox-entry-popup h3.nox-popup-title
	{
		font-size: 11px;
		line-height: 1.25;
		padding: 8px 8px 5px;
	}

	.nox-exit-popup h3.nox-popup-title
	{
		font-size: 22px;
		line-height: 1.2;
		padding: 18px 25px 12px;
	}

	.nox-side-trigger
	{
		bottom: 12px;
		max-width: calc(100vh - 24px);
	}

	.nox-side-trigger-icon
	{
		font-size: 14px;
	}
}

/* --------------------------------------------------------------
 * Mode landing page (?lp=1, body.noxweb-landing-mode).
 * Équivalent des classes du thème, sans modifier le PHP
 * Shoptimizer. Le logo reste. Le footer est géré dans Elementor
 * (classe landing-hard-hide).
 * -------------------------------------------------------------- */

body.noxweb-landing-mode .col-full-nav,
body.noxweb-landing-mode .archive-header,
body.noxweb-landing-mode #shoptimizerCartDrawer,
body.noxweb-landing-mode .mobile-overlay,
body.noxweb-landing-mode .menu-toggle,
body.noxweb-landing-mode #masthead .site-header-cart
{
	display: none !important;
}

body.noxweb-landing-mode .custom-logo-link
{
	pointer-events: none !important;
}

/* Nox Quick Search : champ du header et lignes de résultats */
.speednox-noxqs .nox-quick-search-wrapper input[type=search]
{
	font-family: inherit;
	background-color: #fbf9f7;
	box-shadow: none;
	border: none;
	height: 40px;
	font-size: 16px;
	padding: 0 32px;
}
.speednox-noxqs .noxqs-search-result-container
{
	max-height: 70vh;
	overflow-y: auto;
	z-index: 2000;
}
.speednox-noxqs .noxqs-search-result-container a.link .surtitle:empty
{
	display: none;
}
.speednox-noxqs .noxqs-search-result-container a.link:has(.speednox-noxqs__row--brand) .surtitle
{
	margin-bottom: 2px;
}
.speednox-noxqs .noxqs-search-result-container a.link .title
{
	display: block;
	width: 100%;
}
.speednox-noxqs__row
{
	display: flex;
	gap: 10px;
	align-items: flex-start;
}
.speednox-noxqs__row--brand
{
	align-items: center;
}
.speednox-noxqs__brand
{
	display: inline-block;
	height: 28px;
	width: auto;
	max-width: 72px;
	margin: 0 0.35em 0 0;
	object-fit: contain;
	vertical-align: middle;
}
.speednox-noxqs__thumb
{
	width: 48px;
	height: 48px;
	object-fit: contain;
	flex: 0 0 48px;
}
.speednox-noxqs__body
{
	min-width: 0;
}
.speednox-noxqs__line
{
	display: block;
	line-height: 1.3;
	font-weight: 500;
}
.speednox-noxqs__excerpt
{
	display: block;
	margin-top: 2px;
	font-size: 0.85em;
	font-weight: 400;
	line-height: 1.3;
	color: #666;
}

@media (min-width: 993px)
{
	.nav-search--desktop .speednox-noxqs .nox-quick-search-wrapper input[type=search]
	{
		height: 32px;
		font-size: 14px;
	}
	body.speednox-search-active .col-full .nav-search--desktop .noxqs-search-result-container
	{
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}

	.menu-primary-menu-container > ul.speednox-mobile-lang-menu
	{
		display: none;
	}
}

/* Menu langue sous le menu du tiroir (tablette / mobile, seuil Shoptimizer 992 px).
 * Le markup reprend .menu + walker submenuwrap : les règles
 * .menu-primary-menu-container et .main-navigation de navigation-mobile.css
 * stylent items et sous-menus. Ici : masqué au desktop, séparateur dans le drawer. */
@media (max-width: 992px)
{
	.menu-primary-menu-container > ul.speednox-mobile-lang-menu
	{
		margin-top: 0.75rem;
		padding-top: 0.35rem;
		border-top: 1px solid #eee;
	}
}

/* Accueil : les 3 CTA Elementor (histoire, cave, distinctions) ont la même
 * hauteur de bloc texte et les boutons calés en bas. La grille reste en
 * 3 colonnes jusqu’au breakpoint Elementor mobile (767 px). En dessous,
 * les cartes sont empilées : hauteur naturelle. */
@media (min-width: 768px)
{
	body.home .elementor-19 .elementor-element-d8453c1 > .e-con-inner > .elementor-widget-call-to-action
	{
		display: flex;
		flex-direction: column;
	}

	body.home .elementor-19 .elementor-element-d8453c1 > .e-con-inner > .elementor-widget-call-to-action > .elementor-widget-container,
	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta
	{
		display: flex;
		flex: 1 0 auto;
		flex-direction: column;
		height: auto;
	}

	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta
	{
		flex-wrap: nowrap;
	}

	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta__bg-wrapper
	{
		flex: 0 0 auto;
	}

	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta__content
	{
		flex: 1 0 auto;
		flex-direction: column;
		flex-wrap: nowrap;
		align-items: center;
		justify-content: flex-start;
		min-height: 260px;
	}

	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta__button-wrapper
	{
		margin-top: auto;
	}
}

/* Tablette Elementor (768–1024 px) : colonnes plus étroites, le texte
 * wrappe davantage. 320 px couvre le bloc le plus haut sans le couper. */
@media (min-width: 768px) and (max-width: 1024px)
{
	body.home .elementor-19 .elementor-element-d8453c1 .elementor-cta__content
	{
		min-height: 320px;
	}
}

/* Niveaux de stock (_nox_stock_level). Le filtre remplace les classes
 * WooCommerce in-stock / out-of-stock, donc le point du thème ne s’applique plus. */
p.stock.stock-available::before,
p.stock.stock-low::before,
p.stock.stock-coming-soon::before,
p.stock.stock-unavailable::before
{
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 0.45rem;
	border-radius: 50%;
	background: currentColor;
	vertical-align: middle;
}

p.stock.stock-available
{
	color: #029c07;
}

p.stock.stock-low
{
	color: #a67c00;
}

p.stock.stock-low::before
{
	background: #e6b800;
}

p.stock.stock-unavailable
{
	color: #c41200;
}

p.stock.stock-coming-soon
{
	color: #1a6fb5;
}

