/* ==========================================================================
   Drôme Chasse & Tir — WooCommerce : socle commun
   (grilles produits, cartes, filtres boutique, catégories, notices).
   Chargé sur toutes les pages.
   Généré en v1.12.36 (refonte vérifiée : styles calculés identiques).
   ========================================================================== */

body.dct-shop #main-content .container,
body.dct-shop #main-content .et_pb_row {
	width: 100%;
	max-width: var(--dct-wrap);
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}

body.dct-shop #left-area { width: 100%; padding-right: 0; }

body.dct-shop #sidebar { display: none; }


/* Bandeau de titre */

.dct-pagehead {
	background: var(--dct-nav);
	color: #fff;
	padding: 34px 0;
	margin-bottom: 0;
}

.dct-pagehead__title {
	margin: 0;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: .06em;
	color: #fff;
}

.dct-pagehead__desc { margin-top: 10px; font-size: 14px; color: #B9C0B1; max-width: 760px; }

.dct-pagehead__desc a,
.dct-cat-hero__desc a {
	color: var(--dct-green-hi) !important;
	font-weight: 700;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.dct-pagehead__desc a:hover,
.dct-cat-hero__desc a:hover { color: #fff !important; }


/* Descriptions / contenus WooCommerce : neutralise le bleu Divi. */

.woocommerce .term-description a,
.woocommerce .woocommerce-products-header__description a,
.woocommerce .product .summary a:not(.button),
.woocommerce .woocommerce-Tabs-panel a,
.woocommerce .woocommerce-info a,
.woocommerce .woocommerce-message a:not(.button),
.woocommerce .woocommerce-error a {
	color: var(--dct-link) !important;
	font-weight: 650;
}

.woocommerce .term-description a:hover,
.woocommerce .woocommerce-products-header__description a:hover,
.woocommerce .product .summary a:not(.button):hover,
.woocommerce .woocommerce-Tabs-panel a:hover,
.woocommerce .woocommerce-info a:hover,
.woocommerce .woocommerce-message a:not(.button):hover,
.woocommerce .woocommerce-error a:hover {
	color: var(--dct-link-hover) !important;
}


/* Fil d'Ariane */

.dct-breadcrumb { background: #EDEDE7; border-bottom: 1px solid var(--dct-border); }

.dct-breadcrumb .woocommerce-breadcrumb {
	margin: 0;
	padding: 12px 0;
	font-size: 12px;
	color: var(--dct-muted);
}

.dct-breadcrumb a { color: var(--dct-text); }

.dct-breadcrumb a:hover { color: var(--dct-green); }

.dct-breadcrumb .sep { margin: 0 8px; color: #B6BBAE; }


/* Barre d'outils de la boutique */

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: 22px; }

.woocommerce .woocommerce-result-count { font-size: 13px; color: var(--dct-muted); }

.woocommerce .woocommerce-ordering select {
	height: 40px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
	padding: 0 12px;
	font-size: 13px;
	color: var(--dct-text);
}


/* Grille produits */

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin: 0 0 34px;
	padding: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }

.woocommerce ul.products li.product {
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
	background: #fff;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	padding: 0 0 16px;
	text-align: left;
	transition: box-shadow .25s, transform .25s;
	position: relative;
}

.woocommerce ul.products li.product:hover {
	box-shadow: var(--dct-shadow);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product a img {
	margin: 0;
	padding: 14px;
	box-sizing: border-box;
	height: 190px;
	object-fit: contain;
	background: #fff;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 12px 14px 4px;
	font-size: 13px;
	line-height: 1.45;
	font-weight: 500;
	color: var(--dct-text);
	min-height: 52px;
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 0 14px;
	font-size: 15px;
	font-weight: 800;
	color: var(--dct-text);
}

.woocommerce ul.products li.product .price del { font-size: 12px; font-weight: 500; color: var(--dct-muted); }

.woocommerce ul.products li.product .price ins { text-decoration: none; color: var(--dct-text); }

.woocommerce ul.products li.product .star-rating {
	margin: 8px 14px 0;
	font-size: 12px;
	color: var(--dct-star);
}

.woocommerce ul.products li.product .button {
	margin: 12px 14px 0;
	display: inline-flex;
}

.woocommerce span.onsale,
.dct-card__badge.onsale {
	position: absolute;
	top: 10px;
	left: 10px;
	right: auto;
	min-height: 0;
	min-width: 0;
	line-height: 1;
	padding: 5px 9px;
	border-radius: 2px;
	background: var(--dct-green);
	color: #10140E;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	margin: 0;
}


/* Boutons Woo */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt {
	background: var(--dct-green);
	color: #10140E;
	border: 0;
	border-radius: var(--dct-radius);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: 12px 20px;
	transition: background .2s;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--dct-green-hi);
	color: #10140E;
}


/* Fiche produit */

.woocommerce div.product { padding-top: 34px; }

.woocommerce div.product .product_title {
	font-size: 28px;
	font-weight: 800;
	line-height: 1.2;
	color: var(--dct-text);
	margin-bottom: 10px;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	font-size: 28px;
	font-weight: 800;
	color: var(--dct-text);
}

.woocommerce div.product p.price del { font-size: 18px; color: var(--dct-muted); font-weight: 500; }

.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce div.product .woocommerce-product-rating { margin-bottom: 16px; }

.woocommerce .star-rating span::before,
.woocommerce div.product .stars a { color: var(--dct-star); }

.woocommerce div.product form.cart { margin-top: 20px; }

.woocommerce div.product form.cart .quantity input.qty {
	height: 46px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	width: 72px;
}

.woocommerce div.product form.cart .button { height: 46px; padding: 0 28px; }

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 -1px;
	border-bottom: 1px solid var(--dct-border);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before { border: 0; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 24px 0 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 14px 0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dct-muted);
	border-bottom: 2px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--dct-text);
	border-bottom-color: var(--dct-green);
}


/* Réassurance fiche produit */

.dct-reassurance {
	list-style: none;
	margin: 22px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--dct-border);
	display: grid;
	gap: 10px;
}

.dct-reassurance li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: #45493F;
}

.dct-reassurance .dct-ico { color: var(--dct-green); }

.dct-legal {
	margin: 16px 0;
	padding: 12px 14px;
	background: #F3F4EE;
	border-left: 3px solid var(--dct-green);
	font-size: 12.5px;
	line-height: 1.6;
	color: #4A4F45;
}


/* Panier, commande, compte */

.woocommerce table.shop_table {
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
}

.woocommerce table.shop_table th {
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--dct-text);
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3,
.woocommerce-account h2 {
	font-size: 18px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--dct-text);
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-page form .form-row input.input-text {
	height: 44px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
	padding: 0 12px;
	font-size: 14px;
}

.woocommerce form .form-row textarea { height: auto; padding: 12px; }

/* Notices WooCommerce (v1.12.44) — toutes les pages : panier vide, ajout au
   panier, erreurs, connexion… Divi les peint en bleu (#2EA3F2) et WooCommerce
   en bleu / violet. Panier, commande et compte gardent leurs variantes. */

body.dct .woocommerce-info,
body.dct .woocommerce-message,
body.dct .woocommerce-error,
body.dct .woocommerce .woocommerce-info,
body.dct .woocommerce .woocommerce-message,
body.dct .woocommerce .woocommerce-error {
	position: relative;
	margin: 0 0 22px !important;
	padding: 16px 20px !important;
	border: 1px solid #DCE8C9 !important;            /* Divi : border-top: none !important */
	border-left: 4px solid var(--dct-green) !important;
	border-radius: var(--dct-radius);
	background: #F1F6E8;
	box-shadow: none !important;
	text-shadow: none !important;
	color: var(--dct-text) !important;               /* Divi : color: #fff !important */
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	list-style: none;
}

/* Notice sans icône (Divi masque déjà l'icône WooCommerce) : la bordure verte suffit.
   Commande et compte gardent leurs propres icônes. */
body.dct:not(.woocommerce-checkout):not(.woocommerce-account) .woocommerce-info::before,
body.dct:not(.woocommerce-checkout):not(.woocommerce-account) .woocommerce-message::before,
body.dct:not(.woocommerce-checkout):not(.woocommerce-account) .woocommerce-error::before { display: none; }

body.dct .woocommerce-error,
body.dct .woocommerce .woocommerce-error {
	border-color: #ECD8D2 !important;
	border-left-color: #A5432F !important;
	background: #FBF4F2;
}

body.dct .woocommerce-error li { margin: 0; padding: 0; list-style: none; }
body.dct .woocommerce-error li + li { margin-top: 4px; }

/* Bouton intégré à la notice (« Voir le panier », « Continuer les achats »…). */
body.dct .woocommerce-info .button,
body.dct .woocommerce-message .button,
body.dct .woocommerce-error .button {
	float: right;
	margin: -4px 0 -4px 16px;
	padding: 10px 16px;
	border: 0;
	border-radius: var(--dct-radius);
	background: var(--dct-green);
	color: #10140E !important;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: .06em;
	text-transform: uppercase;
}

body.dct .woocommerce-info .button::after,
body.dct .woocommerce-message .button::after,
body.dct .woocommerce-error .button::after { display: none; }

body.dct .woocommerce-info .button:hover,
body.dct .woocommerce-message .button:hover,
body.dct .woocommerce-error .button:hover { padding: 10px 16px; background: var(--dct-green-hi); color: #10140E !important; }

body.dct .woocommerce-info a:not(.button),
body.dct .woocommerce-message a:not(.button),
body.dct .woocommerce-error a:not(.button) { color: var(--dct-link); font-weight: 700; }

@media (max-width: 600px) {
	body.dct .woocommerce-info .button,
	body.dct .woocommerce-message .button,
	body.dct .woocommerce-error .button { float: none; display: table; margin: -2px 0 12px; }   /* le bouton précède le texte dans le HTML WooCommerce */
}

/* Panier vide. */
body.dct .wc-empty-cart-message .cart-empty.woocommerce-info { margin-bottom: 26px !important; font-size: 16px; }

/* Notices des blocs WooCommerce (panier / commande en blocs, etc.). */
body.dct .wc-block-components-notice-banner {
	border: 1px solid #DCE8C9;
	border-left: 4px solid var(--dct-green);
	border-radius: var(--dct-radius);
	background: #F1F6E8;
	color: var(--dct-text);
}

body.dct .wc-block-components-notice-banner > svg { background-color: var(--dct-green); fill: #fff; }

body.dct .wc-block-components-notice-banner.is-error {
	border-color: #ECD8D2;
	border-left-color: #A5432F;
	background: #FBF4F2;
}

body.dct .wc-block-components-notice-banner.is-error > svg { background-color: #A5432F; }

body.dct .wc-block-components-notice-banner.is-warning {
	border-color: #F0DDBF;
	border-left-color: #B4651D;
	background: #FBF3E6;
}

body.dct .wc-block-components-notice-banner.is-warning > svg { background-color: #B4651D; }

body.dct .wc-block-components-notice-banner a { color: var(--dct-link); }

/* Bandeau « boutique de démonstration ». */
body.dct .woocommerce-store-notice,
body.dct p.demo_store { background-color: var(--dct-green-deep); color: #fff; }
body.dct .woocommerce-store-notice a,
body.dct p.demo_store a { color: var(--dct-green-hi); }

/* Liste déroulante pays / région (select2). */
body.dct .select2-container--default .select2-results__option--highlighted[aria-selected],
body.dct .select2-container--default .select2-results__option--highlighted[data-selected],
body.dct .select2-container--classic .select2-results__option--highlighted[aria-selected],
body.dct .select2-container--classic .select2-results__option--highlighted[data-selected] {
	background-color: var(--dct-green);
	color: #10140E;
}

body.dct .select2-container--default .select2-results__option[aria-selected="true"],
body.dct .select2-container--default .select2-results__option[data-selected="true"] { background-color: #EEF3E3; color: var(--dct-text); }

body.dct .select2-container--open .select2-dropdown,
body.dct .select2-container--focus .select2-selection,
body.dct .select2-container--open .select2-selection { border-color: var(--dct-green); }

/* Infobulle d'aide des champs (description sous le champ). */
body.dct .woocommerce form .form-row .woocommerce-input-wrapper .description { background-color: var(--dct-green-deep); color: #fff; }
body.dct .woocommerce form .form-row .woocommerce-input-wrapper .description::before { border-top-color: var(--dct-green-deep); }

/* Filtre de prix (widget WooCommerce). */
body.dct .woocommerce .widget_price_filter .ui-slider .ui-slider-handle,
body.dct .woocommerce .widget_price_filter .ui-slider .ui-slider-range { background-color: var(--dct-green); }
body.dct .woocommerce .widget_price_filter .price_slider_wrapper .ui-widget-content { background-color: #D8DAD2; }

/* Boutons « alt » désactivés (ex. variation non choisie) : violet WooCommerce. */
body.dct :is(a, button, input).button.alt:is(.disabled, :disabled),
body.dct :is(a, button, input).button.alt:is(.disabled, :disabled):hover,
body.dct #respond input#submit.alt:is(.disabled, :disabled) {
	background-color: var(--dct-green);
	color: #10140E;
	opacity: .5;
}

.woocommerce nav.woocommerce-pagination ul { border: 0; gap: 6px; display: flex; justify-content: center; }

.woocommerce nav.woocommerce-pagination ul li { border: 0; }

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 38px;
	height: 38px;
	line-height: 38px;
	padding: 0 10px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
	font-size: 13px;
	color: var(--dct-text);
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--dct-green);
	border-color: var(--dct-green);
	color: #10140E;
}


/* Responsive boutique */

@media (max-width: 1180px) {
	.woocommerce ul.products { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 782px) {
	.woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
	.woocommerce ul.products li.product a img { height: 150px; }
	.woocommerce div.product .product_title { font-size: 22px; }
	.dct-pagehead { padding: 24px 0; }
}


/* ==========================================================================
   Mon compte
   ========================================================================== */

.dct-pagehead--account { padding: 38px 0 34px; background: linear-gradient(120deg, var(--dct-header) 0%, var(--dct-green-deep) 100%); }

.dct-pagehead--account .dct-pagehead__desc { margin: 8px 0 0; }

.dct-pagehead__back {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--dct-green-hi) !important;
}

.dct-pagehead__back::before { content: "← "; }


/* Navigation */

.dct-accnav {
	position: sticky;
	top: 20px;
	overflow: hidden;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: #fff;
	box-shadow: var(--dct-shadow);
}

.dct-accnav__user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 20px 18px;
	background: var(--dct-header);
	color: #fff;
}

.dct-accnav__avatar {
	display: grid;
	place-items: center;
	flex: 0 0 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--dct-green);
	color: #10140E;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .04em;
}

.dct-accnav__who { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }

.dct-accnav__who strong { font-size: 14.5px; font-weight: 700; color: #fff; }

.dct-accnav__who em { overflow: hidden; font-style: normal; font-size: 12px; color: var(--dct-muted-2); text-overflow: ellipsis; white-space: nowrap; }

.dct-accnav ul { margin: 0; padding: 8px; list-style: none; }

.dct-accnav li { margin: 0; padding: 0; list-style: none; }

.dct-accnav li a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	border-radius: var(--dct-radius);
	font-size: 14px;
	font-weight: 600;
	color: var(--dct-text) !important;
	transition: background .15s, color .15s;
}

.dct-accnav li a .dct-ico { width: 18px; height: 18px; color: var(--dct-muted); transition: color .15s; }

.dct-accnav li a:hover { background: #F3F4EE; }

.dct-accnav li a:hover .dct-ico { color: var(--dct-green); }

.dct-accnav li.is-active a { background: rgba(140,179,63,.14); color: #3F5418 !important; }

.dct-accnav li.is-active a .dct-ico { color: var(--dct-green); }


/* Statuts de commande */

.dct-status,
.woocommerce-orders-table__cell-order-status {
	white-space: nowrap;
}

@media (max-width: 782px) {
	.dct-accnav { position: static; }
	.dct-accnav__user { padding: 14px 16px; }
	.dct-accnav ul {
		display: flex;
		gap: 6px;
		padding: 10px;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}
	.dct-accnav ul::-webkit-scrollbar { display: none; }
	.dct-accnav li { flex: 0 0 auto; }
	.dct-accnav li a { padding: 9px 12px; border: 1px solid var(--dct-border); border-radius: 999px; font-size: 13px; white-space: nowrap; }
	.dct-accnav li a .dct-ico { width: 16px; height: 16px; }
	.dct-accnav li.is-active a { border-color: var(--dct-green); }
}


/* -------------------------------------------------------------------------
 * Héro catégories produits
 * ---------------------------------------------------------------------- */

.dct-cat-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: var(--dct-hero-height, 430px);
	overflow: hidden;
	isolation: isolate;
	background: #1b1c1a;
}

.dct-cat-hero__media,
.dct-cat-hero__shade {
	position: absolute;
	inset: 0;
}

.dct-cat-hero__media {
	z-index: -2;
	inset: -8%;
	background-image: var(--dct-hero-image);
	background-size: cover;
	background-position: var(--dct-hero-position, center center);
	background-repeat: no-repeat;
	will-change: transform;
	transform: translate3d(0, var(--dct-hero-shift, 0px), 0) scale(1.02);
}

.dct-cat-hero__shade {
	z-index: -1;
	background: linear-gradient(90deg, rgba(0,0,0,calc(var(--dct-hero-overlay, .42) + .12)), rgba(0,0,0,var(--dct-hero-overlay, .42)) 58%, rgba(0,0,0,calc(var(--dct-hero-overlay, .42) * .72)));
}

.dct-cat-hero__content {
	width: 100%;
	padding-top: 58px;
	padding-bottom: 58px;
	color: #fff;
}

.dct-cat-hero__title {
	margin: 0;
	max-width: 900px;
	color: #fff;
	font-size: clamp(34px, 5vw, 64px);
	font-weight: 800;
	line-height: 1.02;
	letter-spacing: .025em;
	text-shadow: 0 3px 18px rgba(0,0,0,.28);
}

.dct-cat-hero__desc {
	max-width: 760px;
	margin-top: 18px;
	font-size: clamp(16px, 1.55vw, 20px);
	line-height: 1.6;
	color: rgba(255,255,255,.94);
	text-shadow: 0 2px 12px rgba(0,0,0,.28);
}

.dct-cat-hero__desc > :last-child { margin-bottom: 0; }

.dct-cat-hero--align-center .dct-cat-hero__content { text-align: center; }

.dct-cat-hero--align-center .dct-cat-hero__title,
.dct-cat-hero--align-center .dct-cat-hero__desc { margin-left: auto; margin-right: auto; }

.dct-cat-hero--align-right .dct-cat-hero__content { text-align: right; }

.dct-cat-hero--align-right .dct-cat-hero__title,
.dct-cat-hero--align-right .dct-cat-hero__desc { margin-left: auto; }

.dct-cat-hero--zoom:hover .dct-cat-hero__media { transform: scale(1.10); }

.dct-cat-hero--zoom .dct-cat-hero__media { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }

.dct-cat-hero--kenburns .dct-cat-hero__media { animation: dctHeroKenBurns 16s ease-in-out infinite alternate; }

@keyframes dctHeroKenBurns {
	from { transform: scale(1.02) translate3d(-.5%, -.5%, 0); }
	to { transform: scale(1.13) translate3d(1.5%, 1%, 0); }
}

@media (max-width: 767px) {
	.dct-cat-hero { min-height: var(--dct-hero-mobile-height, 300px); }
	.dct-cat-hero__media { background-image: var(--dct-hero-mobile-image, var(--dct-hero-image)); inset: -5%; }
	.dct-cat-hero__content { padding-top: 38px; padding-bottom: 38px; }
	.dct-cat-hero__title { font-size: clamp(30px, 10vw, 44px); }
	.dct-cat-hero__desc { font-size: 16px; line-height: 1.5; }
}

@media (prefers-reduced-motion: reduce) {
	.dct-cat-hero__media { animation: none !important; transition: none !important; transform: none !important; }
}


/* ========================================================================== 
   Filtres boutique premium — v1.9
   ========================================================================== */

.dct-shop-layout {
	display: grid;
	grid-template-columns: 278px minmax(0, 1fr);
	gap: 30px;
	align-items: start;
	clear: both;
	padding-top: 30px;
}

.dct-shop-results { min-width: 0; }

.dct-shop-results .woocommerce-result-count { float: left; margin-top: 10px; }

.dct-shop-results .woocommerce-ordering { float: right; }

.dct-shop-results ul.products { clear: both; }

.dct-shop-filters {
	position: sticky;
	top: 20px;
	align-self: start;
	max-height: calc(100vh - 40px);
	overflow-y: auto;
	overflow-x: hidden;
	scrollbar-width: thin;
	scrollbar-color: #C9CEC1 transparent;
}

.dct-shop-filters::-webkit-scrollbar { width: 5px; }

.dct-shop-filters::-webkit-scrollbar-thumb { background: #C9CEC1; border-radius: 10px; }

.dct-filter-panel__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 12px;
	padding: 18px 19px;
	border-radius: 6px;
	background: linear-gradient(135deg, var(--dct-header), var(--dct-green-deep));
	color: #fff;
}

.dct-filter-panel__head > div { display: flex; flex-direction: column; line-height: 1.1; }

.dct-filter-panel__head span { font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--dct-green-hi); }

.dct-filter-panel__head strong { margin-top: 5px; font-size: 18px; font-weight: 800; color: #fff; }

.dct-filter-close { display: none; border: 0; background: transparent; color: #fff; font-size: 30px; line-height: 1; cursor: pointer; }

.dct-filter-card {
	margin: 0 0 10px !important;
	padding: 0 !important;
	border: 1px solid var(--dct-border);
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 1px 4px rgba(0,0,0,.025);
	overflow: hidden;
}

.dct-filter-toggle {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 15px 16px;
	border: 0;
	border-bottom: 1px solid transparent;
	background: #fff;
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .075em;
	text-align: left;
	text-transform: uppercase;
	color: var(--dct-text);
	cursor: pointer;
}

.dct-filter-toggle:hover { background: #FAFAF7; }

.dct-filter-toggle i {
	position: relative;
	flex: 0 0 10px;
	width: 10px;
	height: 10px;
	transition: transform .2s ease;
}

.dct-filter-toggle i::before,
.dct-filter-toggle i::after {
	content: "";
	position: absolute;
	top: 50%; left: 50%;
	width: 8px; height: 1.5px;
	border-radius: 2px;
	background: var(--dct-green);
	transform-origin: center;
}

.dct-filter-toggle i::before { transform: translate(-72%,-50%) rotate(45deg); }

.dct-filter-toggle i::after { transform: translate(-28%,-50%) rotate(-45deg); }

.dct-filter-card.is-collapsed .dct-filter-toggle i { transform: rotate(-90deg); }

.dct-filter-card:not(.is-collapsed) .dct-filter-toggle { border-bottom-color: #EEEFE9; }

.dct-filter-card.is-collapsed .dct-filter-body { display: none; }

.dct-filter-body { padding: 13px 16px 15px; }

.dct-filter-body > ul,
.dct-filter-card .product-categories,
.dct-filter-card .woocommerce-widget-layered-nav-list,
.dct-filter-card .wc-layered-nav-rating { margin: 0 !important; padding: 0 !important; list-style: none !important; }

.dct-filter-card li { margin: 0 !important; padding: 0 !important; list-style: none !important; }

.dct-filter-card li + li { margin-top: 2px !important; }

.dct-filter-card li a,
.dct-filter-card .woocommerce-widget-layered-nav-list__item a,
.dct-filter-card .wc-layered-nav-rating a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
	min-height: 32px;
	padding: 5px 0;
	font-size: 13px;
	line-height: 1.35;
	color: #444A40;
	transition: color .15s;
}

.dct-filter-card li a:hover,
.dct-filter-card li.chosen a,
.dct-filter-card li.current-cat > a { color: #58731D; }


/* Cases à cocher sur les filtres d'attributs WooCommerce */

.dct-filter-card--attribute .woocommerce-widget-layered-nav-list__item a::before {
	content: "";
	flex: 0 0 16px;
	width: 16px; height: 16px;
	border: 1px solid #C7CCC0;
	border-radius: 3px;
	background: #fff;
	box-sizing: border-box;
}

.dct-filter-card--attribute .woocommerce-widget-layered-nav-list__item.chosen a::before {
	border-color: var(--dct-green);
	background: var(--dct-green);
	box-shadow: inset 0 0 0 3px #fff;
}

.dct-filter-card--attribute .count,
.dct-filter-card--categories .count {
	margin-left: auto;
	font-size: 10.5px;
	font-weight: 600;
	color: #9A9F96;
}


/* Arborescence catégories */

.dct-filter-card--categories .product-categories > li > a { font-weight: 700; }

.dct-filter-card--categories .children { margin: 2px 0 5px 10px !important; padding: 0 0 0 11px !important; border-left: 1px solid #E6E8E1; }

.dct-filter-card--categories li.current-cat > a::before {
	content: "";
	width: 5px; height: 5px;
	border-radius: 50%;
	background: var(--dct-green);
}


/* Disponibilité */

.dct-filter-check {
	display: flex;
	align-items: center;
	gap: 9px;
	min-height: 34px;
	font-size: 13px;
	color: #444A40 !important;
}

.dct-filter-check__box {
	position: relative;
	flex: 0 0 17px;
	width: 17px; height: 17px;
	border: 1px solid #C7CCC0;
	border-radius: 3px;
	background: #fff;
	box-sizing: border-box;
}

.dct-filter-check.is-active .dct-filter-check__box { border-color: var(--dct-green); background: var(--dct-green); }

.dct-filter-check.is-active .dct-filter-check__box::after {
	content: "";
	position: absolute;
	left: 5px; top: 2px;
	width: 4px; height: 8px;
	border: solid #17200D;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.dct-filter-check.is-active { color: #536D1C !important; font-weight: 650; }

.dct-filter-check em { margin-left: auto; font-size: 10.5px; font-style: normal; color: #9A9F96; }


/* Prix */

.dct-filter-card .price_slider_wrapper { padding-top: 4px; }

.dct-filter-card .ui-slider { margin: 8px 6px 22px !important; background: #E4E7DF !important; }

.dct-filter-card .ui-slider .ui-slider-range { background: var(--dct-green) !important; }

.dct-filter-card .ui-slider .ui-slider-handle {
	top: -5px !important;
	width: 15px !important; height: 15px !important;
	border: 3px solid #fff;
	border-radius: 50% !important;
	background: var(--dct-green) !important;
	box-shadow: 0 0 0 1px var(--dct-green), 0 2px 5px rgba(0,0,0,.15);
}

.dct-filter-card .price_slider_amount { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }

.dct-filter-card .price_slider_amount .button {
	order: 2;
	padding: 8px 12px !important;
	font-size: 10px !important;
}

.dct-filter-card--price .price_slider_amount .button { display: none !important; }

.dct-filter-card--price .price_slider_amount::after {
	content: "Mise à jour automatique";
	order: 2;
	margin-left: auto;
	font-size: 9.5px;
	font-weight: 700;
	letter-spacing: .025em;
	color: #77806f;
}

.dct-filter-card .price_label { order: 1; flex: 1 1 100%; font-size: 12px; color: var(--dct-muted); }

body.dct-price-refreshing { cursor: progress; }

body.dct-price-refreshing .dct-shop-results { opacity: .48; pointer-events: none; transition: opacity .18s ease; }

body.dct-price-refreshing .dct-filter-card--price { position: relative; }

body.dct-price-refreshing .dct-filter-card--price::after {
	content: "";
	position: absolute;
	top: 16px;
	right: 46px;
	width: 14px;
	height: 14px;
	border: 2px solid #d9ddd3;
	border-top-color: var(--dct-green);
	border-radius: 50%;
	animation: dct-price-spin .65s linear infinite;
}

@keyframes dct-price-spin { to { transform: rotate(360deg); } }


/* Avis */

.dct-filter-card--rating .star-rating { margin-right: 5px; font-size: 12px; color: var(--dct-star); }


/* Recherche locale de marque */

.dct-filter-search {
	width: 100%;
	height: 37px;
	margin: 0 0 9px;
	padding: 0 10px;
	border: 1px solid var(--dct-border);
	border-radius: 4px;
	background: #FAFAF7;
	font: inherit;
	font-size: 12px;
	color: var(--dct-text);
	outline: none;
}

.dct-filter-search:focus { border-color: var(--dct-green); background: #fff; }

.dct-filter-list--scroll { max-height: 260px; overflow-y: auto; scrollbar-width: thin; }


/* Filtres actifs */

.dct-filter-card--active { padding: 13px 14px 14px !important; }

.dct-filter-card__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }

.dct-filter-card__head strong { font-size: 11px; letter-spacing: .07em; text-transform: uppercase; color: var(--dct-text); }

.dct-filter-card__head a { font-size: 10.5px; font-weight: 650; color: #6C872D; }

.dct-filter-chips { display: flex; flex-wrap: wrap; gap: 6px; }

.dct-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	padding: 5px 7px 5px 9px;
	border-radius: 999px;
	background: #F0F3E8;
	font-size: 10.5px;
	font-weight: 600;
	color: #4D6121 !important;
}

.dct-filter-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.dct-filter-chip b { font-size: 15px; font-weight: 400; line-height: 1; }

.dct-filter-chip:hover { background: #E3E9D4; }

.dct-filter-panel__foot { padding: 5px 2px 16px; }

.dct-filter-reset { display: block; padding: 8px 4px; text-align: center; font-size: 11px; font-weight: 650; color: #70776B !important; text-decoration: underline; text-underline-offset: 3px; }

.dct-filter-apply { display: none; }


/* Bouton mobile */

.dct-shop-mobilebar { display: none; }

.dct-filter-backdrop { display: none; }

.dct-filter-open {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	height: 42px;
	padding: 0 14px;
	border: 1px solid var(--dct-border);
	border-radius: 4px;
	background: #fff;
	font: inherit;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--dct-text);
	cursor: pointer;
}

.dct-filter-open__icon,
.dct-filter-open__icon::before,
.dct-filter-open__icon::after { display: block; width: 15px; height: 1.5px; background: var(--dct-text); }

.dct-filter-open__icon { position: relative; }

.dct-filter-open__icon::before,
.dct-filter-open__icon::after { content: ""; position: absolute; left: 0; }

.dct-filter-open__icon::before { top: -5px; width: 11px; }

.dct-filter-open__icon::after { top: 5px; width: 8px; }

.dct-filter-open b {
	display: grid;
	place-items: center;
	min-width: 20px; height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--dct-green);
	font-size: 10px;
	color: #151A0F;
}

@media (min-width: 901px) {
	/* Divi et certains modules WooCommerce appliquent parfois des règles
	   génériques aux <aside>. La sidebar boutique doit rester visible. */
	.dct-shop-layout { display: grid !important; }
	.dct-shop-filters {
		display: block;
		visibility: visible;
		opacity: 1 !important;
		transform: none !important;
	}
}

@media (max-width: 1180px) {
	.dct-shop-layout { grid-template-columns: 246px minmax(0, 1fr); gap: 22px; }
	.dct-shop-results .woocommerce ul.products,
	.dct-shop-results ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	body.dct-filters-open { overflow: hidden; }
	.dct-shop-mobilebar { display: flex; justify-content: flex-start; padding-top: 22px; }
	.dct-shop-layout { display: block; padding-top: 16px; }
	.dct-shop-filters {
		position: fixed;
		z-index: 100020;
		top: 0; bottom: 0; left: 0;
		width: min(88vw, 350px);
		max-height: none;
		padding: 14px 14px 24px;
		background: var(--dct-cream);
		box-shadow: 18px 0 45px rgba(0,0,0,.18);
		transform: translateX(-104%);
		transition: transform .28s ease;
	}
	body.dct-filters-open .dct-shop-filters { transform: translateX(0); }
	.dct-filter-backdrop {
		position: fixed;
		z-index: 100010;
		inset: 0;
		display: block;
		background: rgba(9,12,8,.55);
		opacity: 0;
		visibility: hidden;
		transition: opacity .25s, visibility .25s;
	}
	body.dct-filters-open .dct-filter-backdrop { opacity: 1; visibility: visible; }
	.dct-filter-close { display: block; }
	.dct-filter-panel__foot { position: sticky; bottom: -24px; z-index: 4; margin: 4px -14px -24px; padding: 10px 14px 14px; background: rgba(244,244,240,.96); backdrop-filter: blur(8px); border-top: 1px solid var(--dct-border); }
	.dct-filter-reset { padding: 4px 0 10px; }
	.dct-filter-apply {
		display: block;
		width: 100%; height: 44px;
		border: 0;
		border-radius: 4px;
		background: var(--dct-green);
		font: inherit;
		font-size: 12px;
		font-weight: 800;
		letter-spacing: .06em;
		text-transform: uppercase;
		color: #13180D;
		cursor: pointer;
	}
}

@media (max-width: 782px) {
	.dct-shop-results .woocommerce-result-count { float: none; display: block; margin: 5px 0 10px; }
	.dct-shop-results .woocommerce-ordering { float: none; display: block; margin: 0 0 18px; }
	.dct-shop-results .woocommerce-ordering select { width: 100%; }
}

@media (max-width: 520px) {
	.dct-shop-results ul.products { gap: 12px; }
}


/* -------------------------------------------------------------------------
 * Cartes produits — overlay e-commerce (v1.9.5)
 * Remplace l'icône "+" bleue native de Divi par un CTA cohérent avec DCT.
 * ---------------------------------------------------------------------- */

.woocommerce ul.products li.product .et_shop_image {
	display: block;
	position: relative;
	overflow: hidden;
	background: #fff;
}

.woocommerce ul.products li.product .et_shop_image img {
	transition: transform .32s ease, opacity .32s ease;
	will-change: transform;
}

.woocommerce ul.products li.product .et_overlay {
	position: absolute !important;
	inset: 0;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	border: 0;
	border-radius: 0 !important;
	background: linear-gradient(180deg, rgba(15, 21, 14, .18), rgba(15, 21, 14, .68));
	opacity: 0;
	visibility: hidden;
	transition: opacity .24s ease, visibility .24s ease !important;
	z-index: 3;
}


/* Le :before de Divi contient normalement la croix bleue. On le transforme en CTA. */

.woocommerce ul.products li.product .et_overlay::before {
	content: "Voir le produit";
	font-family: inherit !important;
	font-size: 12px;
	font-style: normal;
	font-weight: 800;
	line-height: 1;
	letter-spacing: .045em;
	text-transform: uppercase;
	white-space: nowrap;
	color: #10140e;
	position: absolute;
	top: 50%;
	left: 50%;
	right: auto;
	bottom: auto;
	width: auto;
	height: auto;
	margin: 0;
	padding: 14px 18px 14px 46px;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 4px;
	background-color: var(--dct-green) !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310140e' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 8.5h11l1 11h-13l1-11Z'/%3E%3Cpath d='M9 9V7a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: 18px 50%;
	background-size: 18px 18px;
	box-shadow: 0 10px 28px rgba(0,0,0,.26) !important;
	transform: translate(-50%, -42%) scale(.96) !important;
	opacity: 0 !important;
	transition: transform .24s ease, opacity .24s ease, background-color .2s ease, box-shadow .2s ease !important;
}

.woocommerce ul.products li.product .et_shop_image:hover .et_overlay,
.woocommerce ul.products li.product a:hover .et_overlay {
	opacity: 1 !important;
	visibility: visible !important;
}

.woocommerce ul.products li.product .et_shop_image:hover .et_overlay::before,
.woocommerce ul.products li.product a:hover .et_overlay::before {
	opacity: 1 !important;
	transform: translate(-50%, -50%) scale(1) !important;
}

.woocommerce ul.products li.product .et_shop_image:hover img,
.woocommerce ul.products li.product a:hover .et_shop_image img {
	transform: scale(1.035);
}

.woocommerce ul.products li.product .et_overlay:hover::before {
	background-color: #91c947 !important;
	box-shadow: 0 12px 32px rgba(0,0,0,.32) !important;
}


/* Clavier : le CTA apparaît aussi sans souris. */

.woocommerce ul.products li.product a:focus-visible .et_overlay {
	opacity: 1 !important;
	visibility: visible !important;
}

.woocommerce ul.products li.product a:focus-visible .et_overlay::before {
	opacity: 1 !important;
	transform: translate(-50%, -50%) scale(1) !important;
}


/* Sur écrans tactiles, aucun faux hover : la carte reste directement tactile. */

@media (hover: none), (pointer: coarse) {
	.woocommerce ul.products li.product .et_overlay {
		display: none !important;
	}

	.woocommerce ul.products li.product .et_shop_image img,
	.woocommerce ul.products li.product a:hover .et_shop_image img {
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product .et_shop_image img,
	.woocommerce ul.products li.product .et_overlay,
	.woocommerce ul.products li.product .et_overlay::before {
		transition: none !important;
	}
}


/* Les actions restent alignées en bas même avec des titres de longueurs différentes. */

.woocommerce ul.products li.product {
	display: flex;
	flex-direction: column;
}

.woocommerce ul.products li.product .dct-card-actions {
	margin-top: auto;
	padding: 14px 14px 0;
}

.woocommerce ul.products li.product .dct-card-actions .button {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	margin: 0 !important;
	padding: 11px 14px !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 9px;
	border-radius: 5px !important;
	font-size: 11.5px !important;
	font-weight: 800 !important;
	letter-spacing: .045em !important;
	line-height: 1.15 !important;
	text-align: center;
	text-transform: uppercase;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .16s ease, box-shadow .2s ease !important;
}

.woocommerce ul.products li.product .dct-card-buy {
	border: 1px solid var(--dct-green) !important;
	background: var(--dct-green) !important;
	color: #10140e !important;
	box-shadow: 0 5px 14px rgba(84, 113, 27, .12);
}

.woocommerce ul.products li.product .dct-card-buy:hover,
.woocommerce ul.products li.product .dct-card-buy:focus-visible {
	border-color: var(--dct-green-hi) !important;
	background: var(--dct-green-hi) !important;
	color: #10140e !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 18px rgba(84, 113, 27, .18);
}

.woocommerce ul.products li.product .dct-card-details {
	border: 1px solid #cfd4c8 !important;
	background: #f6f7f2 !important;
	color: var(--dct-text) !important;
	box-shadow: none;
}

.woocommerce ul.products li.product .dct-card-details:hover,
.woocommerce ul.products li.product .dct-card-details:focus-visible {
	border-color: var(--dct-green) !important;
	background: #eef3e3 !important;
	color: #243014 !important;
	transform: translateY(-1px);
}

.woocommerce ul.products li.product .dct-card-buy__icon {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	stroke-width: 1.9;
}


/* Divi injecte un chevron via ::after sur les boutons au survol.
 * Les cartes DCT possèdent déjà leurs propres icônes : on neutralise donc
 * uniquement ce pseudo-élément parasite sans toucher aux autres boutons Divi.
 * L'exception .loading conserve le spinner AJAX défini plus bas. */

.woocommerce ul.products li.product .dct-card-actions .button::before,
.woocommerce ul.products li.product .dct-card-details::after,
.woocommerce ul.products li.product .dct-card-buy:not(.loading)::after {
	content: none !important;
	display: none !important;
}

.woocommerce ul.products li.product .dct-card-actions .button:hover,
.woocommerce ul.products li.product .dct-card-actions .button:focus-visible {
	padding: 11px 14px !important;
}

.woocommerce ul.products li.product .dct-card-buy.loading {
	position: relative;
	cursor: wait;
	opacity: .78;
	pointer-events: none;
}

.woocommerce ul.products li.product .dct-card-buy.loading::after {
	content: "" !important;
	position: static !important;
	width: 14px !important;
	height: 14px !important;
	margin: 0 0 0 2px !important;
	border: 2px solid rgba(16, 20, 14, .28) !important;
	border-top-color: #10140e !important;
	border-radius: 50% !important;
	background: none !important;
	animation: dct-card-spin .65s linear infinite;
}

.woocommerce ul.products li.product .dct-card-buy.is-added {
	background: #243014 !important;
	border-color: #243014 !important;
	color: #fff !important;
}

.woocommerce ul.products li.product .dct-card-buy.is-added .dct-card-buy__icon {
	color: var(--dct-green-hi);
}


/* WooCommerce ajoute normalement un second lien “Voir le panier”. Le toast DCT
 * joue ce rôle sans surcharger visuellement chaque carte. */

.woocommerce ul.products li.product .added_to_cart.wc-forward {
	display: none !important;
}

@keyframes dct-card-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 520px) {
	.woocommerce ul.products li.product .dct-card-actions {
		padding: 11px 10px 0;
	}
	.woocommerce ul.products li.product .dct-card-actions .button {
		min-height: 42px;
		padding: 10px 8px !important;
		font-size: 10.5px !important;
		letter-spacing: .025em !important;
		gap: 6px;
	}
	.woocommerce ul.products li.product .dct-card-buy__icon {
		width: 16px;
		height: 16px;
		flex-basis: 16px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce ul.products li.product .dct-card-actions .button {
		transition: none !important;
	}
	.woocommerce ul.products li.product .dct-card-buy.loading::after {
		animation-duration: 1.3s;
	}
}


/* v1.12.2 — Compteurs de catégories : remplacement du surlignage jaune natif */

body.dct.woocommerce ul.products li.product-category mark.count,
body.dct.woocommerce-page ul.products li.product-category mark.count,
body.dct .woocommerce ul.products li.product-category mark.count,
body.dct .product-category mark.count,
body.dct .woocommerce mark.count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	margin-left: 7px;
	padding: 4px 8px;
	border: 1px solid rgba(122, 180, 62, .24);
	border-radius: 999px;
	background: #EEF5E6 !important;
	color: #4D4844 !important;
	font-size: .72em;
	font-weight: 800;
	line-height: 1;
	vertical-align: middle;
	box-shadow: none;
	text-decoration: none;
}

body.dct.woocommerce ul.products li.product-category:hover mark.count,
body.dct.woocommerce-page ul.products li.product-category:hover mark.count,
body.dct .woocommerce ul.products li.product-category:hover mark.count,
body.dct .product-category:hover mark.count {
	border-color: rgba(122, 180, 62, .45);
	background: #E4F0D5 !important;
	color: #385118 !important;
}


/* v1.12.3 — Cartes de catégories : respiration, cadrage et alignement */

body.dct.woocommerce ul.products li.product-category,
body.dct.woocommerce-page ul.products li.product-category,
body.dct .woocommerce ul.products li.product-category {
	padding: 16px 16px 18px !important;
	overflow: hidden;
}

body.dct.woocommerce ul.products li.product-category > a,
body.dct.woocommerce-page ul.products li.product-category > a,
body.dct .woocommerce ul.products li.product-category > a {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

body.dct.woocommerce ul.products li.product-category a img,
body.dct.woocommerce-page ul.products li.product-category a img,
body.dct .woocommerce ul.products li.product-category a img {
	width: 100%;
	height: 220px;
	margin: 0 0 18px !important;
	padding: 14px !important;
	box-sizing: border-box;
	object-fit: contain;
	background: #F7F8F5;
	border: 1px solid rgba(77, 72, 68, .07);
	border-radius: 8px;
	transition: transform .25s ease, background-color .25s ease;
}

body.dct.woocommerce ul.products li.product-category:hover a img,
body.dct.woocommerce-page ul.products li.product-category:hover a img,
body.dct .woocommerce ul.products li.product-category:hover a img {
	transform: scale(1.015);
	background: #FAFBF8;
}

body.dct.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
body.dct.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title,
body.dct .woocommerce ul.products li.product-category .woocommerce-loop-category__title {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0;
	padding: 0 2px !important;
	min-height: 44px;
	font-size: 15px;
	font-weight: 650;
	line-height: 1.35;
	color: var(--dct-text);
}

body.dct.woocommerce ul.products li.product-category .woocommerce-loop-category__title mark.count,
body.dct.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title mark.count,
body.dct .woocommerce ul.products li.product-category .woocommerce-loop-category__title mark.count {
	margin-left: 0;
	padding: 4px 8px;
	font-size: 11px;
	flex: 0 0 auto;
}

@media (max-width: 980px) {
	body.dct.woocommerce ul.products li.product-category,
	body.dct.woocommerce-page ul.products li.product-category,
	body.dct .woocommerce ul.products li.product-category {
		padding: 14px 14px 16px !important;
	}
	body.dct.woocommerce ul.products li.product-category a img,
	body.dct.woocommerce-page ul.products li.product-category a img,
	body.dct .woocommerce ul.products li.product-category a img {
		height: 200px;
		margin-bottom: 15px !important;
	}
}

@media (max-width: 520px) {
	body.dct.woocommerce ul.products li.product-category,
	body.dct.woocommerce-page ul.products li.product-category,
	body.dct .woocommerce ul.products li.product-category {
		padding: 12px 12px 14px !important;
	}
	body.dct.woocommerce ul.products li.product-category a img,
	body.dct.woocommerce-page ul.products li.product-category a img,
	body.dct .woocommerce ul.products li.product-category a img {
		height: 160px;
		padding: 10px !important;
		margin-bottom: 12px !important;
	}
	body.dct.woocommerce ul.products li.product-category .woocommerce-loop-category__title,
	body.dct.woocommerce-page ul.products li.product-category .woocommerce-loop-category__title,
	body.dct .woocommerce ul.products li.product-category .woocommerce-loop-category__title {
		min-height: 0;
		font-size: 13px;
		gap: 5px;
	}
}


/* Colonne résumé */

.dct-product-kicker {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	margin: 0 0 12px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .09em;
	text-transform: uppercase;
}

.dct-product-kicker a {
	display: inline-flex;
	align-items: center;
	min-height: 28px;
	padding: 5px 9px;
	border-radius: 999px;
	background: rgba(140,179,63,.13);
	color: #526d20 !important;
	text-decoration: none !important;
}

.dct-product-kicker a:hover {
	background: rgba(140,179,63,.22);
	color: #3f5715 !important;
}

.dct-product-kicker__sep { color: #b2b6ac; }


/* ==========================================================================
   Grille boutique mobile — v1.12.6
   2 colonnes sur tablette/grand mobile, 1 colonne sur smartphone étroit.
   Ces règles sont volontairement en fin de fichier pour prendre le dessus
   sur l'ancien breakpoint .dct-shop-results à 3 colonnes.
   ========================================================================== */

@media (max-width: 900px) {
	body.dct .dct-shop-results .woocommerce ul.products,
	body.dct .dct-shop-results ul.products,
	body.dct.woocommerce .dct-shop-results ul.products,
	body.dct.woocommerce-page .dct-shop-results ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 16px !important;
	}

	body.dct .dct-shop-results ul.products li.product {
		min-width: 0;
		padding-bottom: 14px;
	}

	body.dct .dct-shop-results ul.products li.product a img,
	body.dct .dct-shop-results ul.products li.product .et_shop_image img {
		height: 170px;
		padding: 12px;
		object-fit: contain;
	}

	body.dct .dct-shop-results ul.products li.product .woocommerce-loop-product__title {
		min-height: 0;
		padding: 12px 12px 5px;
		font-size: 13px;
		line-height: 1.4;
	}

	body.dct .dct-shop-results ul.products li.product .price {
		padding-inline: 12px;
	}
}

@media (max-width: 560px) {
	body.dct .dct-shop-results .woocommerce ul.products,
	body.dct .dct-shop-results ul.products,
	body.dct.woocommerce .dct-shop-results ul.products,
	body.dct.woocommerce-page .dct-shop-results ul.products {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 16px !important;
	}

	body.dct .dct-shop-results ul.products li.product {
		border-radius: 8px;
		padding-bottom: 16px;
	}

	body.dct .dct-shop-results ul.products li.product a img,
	body.dct .dct-shop-results ul.products li.product .et_shop_image img {
		height: 220px;
		padding: 16px;
	}

	body.dct .dct-shop-results ul.products li.product .woocommerce-loop-product__title {
		padding: 14px 16px 6px;
		font-size: 15px;
		line-height: 1.45;
	}

	body.dct .dct-shop-results ul.products li.product .price {
		padding-inline: 16px;
		font-size: 17px;
	}

	body.dct .dct-shop-results ul.products li.product .dct-card-actions {
		padding: 13px 16px 0;
	}

	body.dct .dct-shop-results ul.products li.product .dct-card-actions .button {
		width: 100%;
		min-height: 46px;
		justify-content: center;
		padding: 11px 14px !important;
		font-size: 11.5px !important;
		letter-spacing: .035em !important;
	}

	body.dct .dct-shop-results .woocommerce-result-count {
		margin-bottom: 10px;
	}

	body.dct .dct-shop-results .woocommerce-ordering select {
		height: 46px;
	}
}


/* ==========================================================================
   Avis / étoiles sur mobile — v1.12.7
   Affichage plus compact, régulier et moins agressif sur les cartes produits.
   ========================================================================== */

@media (max-width: 900px) {
	body.dct .dct-shop-results ul.products li.product .star-rating {
		display: block !important;
		float: none !important;
		clear: both;
		width: 6.15em !important;
		height: 1.2em !important;
		margin: 9px 12px 2px !important;
		font-size: 11.5px !important;
		line-height: 1.2 !important;
		letter-spacing: .08em;
		color: #d9ddd2 !important;
		overflow: hidden;
	}

	body.dct .dct-shop-results ul.products li.product .star-rating::before {
		color: #d9ddd2 !important;
		opacity: 1;
	}

	body.dct .dct-shop-results ul.products li.product .star-rating span::before {
		color: #d89b31;
	}

	body.dct .dct-shop-results ul.products li.product .star-rating + .price {
		margin-top: 5px;
	}
}

@media (max-width: 560px) {
	body.dct .dct-shop-results ul.products li.product .star-rating {
		width: 6.2em !important;
		margin: 10px 16px 3px !important;
		font-size: 13px !important;
		line-height: 1.15 !important;
		height: 1.15em !important;
	}
}


/* ==========================================================================\n   v1.12.21 — Respiration entre les contenus WooCommerce et le footer\n   ========================================================================== */

body.single-product #main-content,
body.post-type-archive-product #main-content,
body.tax-product_cat #main-content,
body.tax-product_tag #main-content,
body.search.woocommerce #main-content {
	padding-bottom: 72px !important;
}


/* Évite que les derniers éléments visuels collent au pied de page. */

body.single-product section.related.products,
body.single-product section.upsells.products,
body.single-product .related.products,
body.single-product .upsells.products,
body.post-type-archive-product .woocommerce-pagination,
body.tax-product_cat .woocommerce-pagination,
body.tax-product_tag .woocommerce-pagination {
	margin-bottom: 0 !important;
}

@media (max-width: 980px) {
	body.single-product #main-content,
	body.post-type-archive-product #main-content,
	body.tax-product_cat #main-content,
	body.tax-product_tag #main-content,
	body.search.woocommerce #main-content {
		padding-bottom: 52px !important;
	}
}

@media (max-width: 560px) {
	body.single-product #main-content,
	body.post-type-archive-product #main-content,
	body.tax-product_cat #main-content,
	body.tax-product_tag #main-content,
	body.search.woocommerce #main-content {
		padding-bottom: 38px !important;
	}
}


/* Le JS ajoute cette classe au vrai bloc LFFS, indépendamment du markup du plugin. */

body .dct-fs-notice {
    display: block;
    position: relative !important;
    min-height: 0 !important;
    margin: 0 0 12px !important;
    padding: 14px 16px !important;
    border: 1px solid #dce7c9 !important;
    border-left: 4px solid var(--dct-green) !important;
    border-radius: 10px !important;
    background: #f3f7eb !important;
    box-shadow: none !important;
    color: #252b22 !important;
}

body .dct-fs-notice::before,
body .dct-fs-notice::after {
    content: none !important;
    display: none !important;
}


/* Wrapper réel ou générique : on compacte sans dépendre d'un nom de classe précis. */

body .dct-fs-notice > div:first-child {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "message button" "progress button" !important;
    align-items: center !important;
    column-gap: 18px !important;
    row-gap: 7px !important;
    width: 100% !important;
    max-width: none;
    margin: 0 !important;
    padding: 0 !important;
}


/* Barre de progression identifiée dynamiquement. */

body .dct-fs-notice .dct-fs-action,
body .dct-fs-notice a.button,
body .dct-fs-notice button {
    grid-area: button !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    width: auto !important;
    min-width: 165px !important;
    min-height: 42px !important;
    height: 42px !important;
    margin: 0 !important;
    padding: 0 17px !important;
    border: 0 !important;
    border-radius: 7px !important;
    background: var(--dct-green) !important;
    color: #11160d !important;
    font-size: 11px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .04em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    box-shadow: none !important;
}

body .dct-fs-notice .dct-fs-action:hover,
body .dct-fs-notice a.button:hover,
body .dct-fs-notice button:hover {
    background: var(--dct-green-hi) !important;
    color: #11160d !important;
}

body .dct-fs-notice .dct-fs-action::after,
body .dct-fs-notice a.button::after,
body .dct-fs-notice button::after {
    content: none !important;
    display: none !important;
}


/* Les montants mini/maxi doivent rester secondaires. */

body .dct-fs-notice .amount,
body .dct-fs-notice small,
body .dct-fs-notice .dct-fs-range {
    font-size: 12px !important;
    line-height: 1.2 !important;
}


/* Le bandeau qui ouvre le coupon reste compact même si Woo/Divi change de wrapper. */

@media (max-width: 760px) {
    body .dct-fs-notice > div:first-child {
        grid-template-columns: 1fr !important;
        grid-template-areas: "message" "progress" "button" !important;
        row-gap: 9px !important;
    }

    body .dct-fs-notice .dct-fs-action,
    body .dct-fs-notice a.button,
    body .dct-fs-notice button {
        width: 100% !important;
    }
}


/* ==========================================================================
   v1.12.38 — Espace au-dessus du fil d'Ariane (ordinateur)
   Divi applique padding-top: 58px à #main-content .container ; réduit sur
   boutique, catégories, étiquettes, recherche produits et fiches produit.
   ========================================================================== */

@media (min-width: 981px) {
	body.post-type-archive-product #main-content .container,
	body.tax-product_cat #main-content .container,
	body.tax-product_tag #main-content .container,
	body.single-product #main-content .container {
		padding-top: 22px;
	}
}

/* v1.12.53 : noms de produits saisis en minuscules — majuscule initiale sur les vignettes. */
.woocommerce ul.products li.product .woocommerce-loop-product__title::first-letter,
ul.products li.product .woocommerce-loop-product__title::first-letter { text-transform: uppercase; }
