/* ==========================================================================
   Drôme Chasse & Tir — WooCommerce : fiche produit
   (galerie, résumé, onglets, avis, produits similaires).
   Chargé uniquement si is_product().
   Généré en v1.12.36 (refonte vérifiée : styles calculés identiques).
   ========================================================================== */

/* ==========================================================================
   v1.12.5 — Fiche produit premium
   Galerie compacte, résumé en carte, onglets et avis modernisés.
   ========================================================================== */

body.single-product #main-content {
	background: #f5f5f1;
}

body.single-product .dct-breadcrumb .dct-wrap {
	min-width: 0;
}

body.single-product .dct-breadcrumb .woocommerce-breadcrumb {
	display: block;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

body.single-product .dct-reassurance {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	margin-top: 20px;
	padding-top: 18px;
}

body.single-product .dct-reassurance li {
	align-items: flex-start;
	gap: 7px;
	padding: 9px;
	border-radius: 6px;
	background: #f7f8f3;
	font-size: 11.5px;
	line-height: 1.35;
}

body.single-product .dct-reassurance .dct-ico {
	flex: 0 0 17px;
	width: 17px;
	height: 17px;
}


/* Produits apparentés / ventes incitatives */

@media (max-width: 680px) {

	body.single-product .dct-reassurance {
		grid-template-columns: 1fr;
	}
}


/* ========================================================================== 
   Fiche produit v1.12.5 — galerie plus compacte + partage social
   ========================================================================== */

body.single-product .dct-product-share {
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--dct-border);
}

body.single-product .dct-product-share__title {
	display: block;
	margin-bottom: 10px;
	color: #555b51;
	font-size: 11px;
	font-weight: 900;
	letter-spacing: .08em;
	text-transform: uppercase;
}

body.single-product .dct-product-share__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

body.single-product .dct-share,
body.single-product button.dct-share {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 36px;
	margin: 0;
	padding: 7px 10px;
	box-sizing: border-box;
	border: 1px solid #dfe2d8;
	border-radius: 6px;
	background: #f7f8f3;
	box-shadow: none;
	color: #30352e !important;
	font-family: inherit;
	font-size: 11.5px;
	font-weight: 750;
	line-height: 1;
	text-decoration: none !important;
	cursor: pointer;
	transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

body.single-product .dct-share:hover,
body.single-product button.dct-share:hover,
body.single-product .dct-share:focus-visible {
	border-color: rgba(122,180,62,.55);
	background: #eef5e6;
	color: #4d6d1e !important;
	transform: translateY(-1px);
}

body.single-product .dct-share.is-copied {
	border-color: #7ab43e;
	background: #7ab43e;
	color: #111 !important;
}

body.single-product .dct-share__icon {
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
}


/* Neutralise les chevrons Divi sur ces boutons également. */

body.single-product .dct-share::before,
body.single-product .dct-share::after {
	display: none;
	content: none;
}

@media (max-width: 680px) {

	body.single-product .dct-product-share__buttons {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	body.single-product .dct-share,
	body.single-product button.dct-share {
		width: 100%;
	}
}

@media (max-width: 560px) {
	body.single-product #review_form .comment-form-rating {
		margin-bottom: 14px;
	}

	body.single-product #review_form .comment-form-rating label {
		display: block;
		margin-bottom: 6px;
		font-weight: 700;
	}

	body.single-product #review_form p.stars {
		margin: 0 !important;
		line-height: 1;
	}

	body.single-product #review_form p.stars a {
		color: #d89b31 !important;
		font-size: 20px;
	}
}


/* ========================================================================== 
   Fiche produit mobile — avis + produits similaires — v1.12.11
   ========================================================================== */

@media (max-width: 680px) {

	/* Zone avis : plus compacte et mieux structurée. */

	body.single-product #review_form .comment-form-rating {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		margin: 0 0 12px;
		padding: 10px 12px;
		border: 1px solid #e1e5da;
		border-radius: 8px;
		background: #fff;
	}

	body.single-product #review_form .comment-form-rating label {
		margin: 0;
		font-size: 12.5px;
		line-height: 1.2;
	}

	body.single-product #review_form p.stars {
		flex: 0 0 auto;
		margin: 0 !important;
		white-space: nowrap;
	}

	body.single-product #review_form p.stars a {
		font-size: 19px !important;
		line-height: 1 !important;
	}
}


/* ========================================================================== 
   Produits similaires mobile — v1.12.12
   Ciblage renforcé WooCommerce natif + modules Divi WooCommerce.
   ========================================================================== */

@media (max-width: 680px) {
	body.single-product section.related.products,
	body.single-product section.upsells.products,
	body.single-product .related.products,
	body.single-product .upsells.products,
	body.single-product .et_pb_wc_related_products {
		clear: both !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 22px 0 0 !important;
		padding: 22px 0 8px !important;
		border-top: 1px solid #e0e4da !important;
		background: transparent;
		overflow: visible !important;
	}

	body.single-product section.related.products > h2,
	body.single-product section.upsells.products > h2,
	body.single-product .related.products > h2,
	body.single-product .upsells.products > h2,
	body.single-product .et_pb_wc_related_products h2 {
		margin: 0 16px 4px !important;
		padding: 0 !important;
		font-size: 20px !important;
		font-weight: 900 !important;
		line-height: 1.2 !important;
		letter-spacing: .025em !important;
		text-transform: uppercase !important;
		color: #20251f !important;
	}

	body.single-product .dct-related-hint {
		margin: 0 16px 13px;
		color: #788074;
		font-size: 11.5px;
		font-weight: 650;
		line-height: 1.3;
	}

	/* Rail horizontal tactile. On vise volontairement ul.products sans dépendre
	   de la présence d'un conteneur .woocommerce autour du module Divi. */
	body.single-product section.related.products ul.products,
	body.single-product section.upsells.products ul.products,
	body.single-product .related.products ul.products,
	body.single-product .upsells.products ul.products,
	body.single-product .et_pb_wc_related_products ul.products,
	body.single-product .dct-related-mobile ul.products {
		display: flex !important;
		flex-flow: row nowrap;
		grid-template-columns: none !important;
		gap: 12px !important;
		width: auto !important;
		max-width: none !important;
		margin: 0 !important;
		padding: 2px 16px 14px !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 16px;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
	}

	body.single-product section.related.products ul.products::-webkit-scrollbar,
	body.single-product section.upsells.products ul.products::-webkit-scrollbar,
	body.single-product .related.products ul.products::-webkit-scrollbar,
	body.single-product .upsells.products ul.products::-webkit-scrollbar,
	body.single-product .et_pb_wc_related_products ul.products::-webkit-scrollbar,
	body.single-product .dct-related-mobile ul.products::-webkit-scrollbar {
		display: none;
	}

	body.single-product section.related.products ul.products li.product,
	body.single-product section.upsells.products ul.products li.product,
	body.single-product .related.products ul.products li.product,
	body.single-product .upsells.products ul.products li.product,
	body.single-product .et_pb_wc_related_products ul.products li.product,
	body.single-product .dct-related-mobile ul.products li.product {
		float: none !important;
		flex: 0 0 min(82vw, 310px);
		width: min(82vw, 310px) !important;
		max-width: 310px !important;
		min-width: 250px !important;
		margin: 0 !important;
		padding: 0 0 14px !important;
		box-sizing: border-box !important;
		display: flex !important;
		flex-direction: column !important;
		background: #fff !important;
		border: 1px solid #e0e3da !important;
		border-radius: 11px !important;
		box-shadow: 0 5px 16px rgba(18,25,15,.06) !important;
		scroll-snap-align: start;
		overflow: hidden !important;
	}

	body.single-product section.related.products ul.products li.product .et_shop_image,
	body.single-product section.upsells.products ul.products li.product .et_shop_image,
	body.single-product .related.products ul.products li.product .et_shop_image,
	body.single-product .upsells.products ul.products li.product .et_shop_image,
	body.single-product .et_pb_wc_related_products ul.products li.product .et_shop_image,
	body.single-product .dct-related-mobile ul.products li.product .et_shop_image {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		min-height: 190px !important;
		margin: 0 !important;
		padding: 12px !important;
		background: #fafbf8 !important;
		box-sizing: border-box !important;
	}

	body.single-product section.related.products ul.products li.product a img,
	body.single-product section.upsells.products ul.products li.product a img,
	body.single-product .related.products ul.products li.product a img,
	body.single-product .upsells.products ul.products li.product a img,
	body.single-product .et_pb_wc_related_products ul.products li.product a img,
	body.single-product .dct-related-mobile ul.products li.product a img {
		display: block !important;
		width: 100% !important;
		height: 180px !important;
		max-height: 180px !important;
		margin: 0 auto !important;
		padding: 10px !important;
		box-sizing: border-box !important;
		object-fit: contain !important;
		transform: none !important;
	}

	body.single-product section.related.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product section.upsells.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .upsells.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .et_pb_wc_related_products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .dct-related-mobile ul.products li.product .woocommerce-loop-product__title,
	body.single-product .et_pb_wc_related_products ul.products li.product h2 {
		min-height: 0 !important;
		margin: 0 !important;
		padding: 13px 14px 5px !important;
		font-size: 14.5px !important;
		font-weight: 750 !important;
		line-height: 1.4 !important;
		color: #222722 !important;
	}

	body.single-product section.related.products ul.products li.product .star-rating,
	body.single-product section.upsells.products ul.products li.product .star-rating,
	body.single-product .related.products ul.products li.product .star-rating,
	body.single-product .upsells.products ul.products li.product .star-rating,
	body.single-product .et_pb_wc_related_products ul.products li.product .star-rating,
	body.single-product .dct-related-mobile ul.products li.product .star-rating {
		float: none !important;
		width: 6.15em !important;
		height: 1.15em !important;
		margin: 7px 14px 1px !important;
		font-size: 12px !important;
		line-height: 1.15 !important;
		color: #d8ddd1 !important;
	}

	body.single-product section.related.products ul.products li.product .price,
	body.single-product section.upsells.products ul.products li.product .price,
	body.single-product .related.products ul.products li.product .price,
	body.single-product .upsells.products ul.products li.product .price,
	body.single-product .et_pb_wc_related_products ul.products li.product .price,
	body.single-product .dct-related-mobile ul.products li.product .price {
		display: block !important;
		margin: 5px 0 0 !important;
		padding: 0 14px !important;
		font-size: 18px !important;
		font-weight: 850 !important;
		line-height: 1.2 !important;
		color: #555b53 !important;
	}

	body.single-product section.related.products ul.products li.product .button,
	body.single-product section.upsells.products ul.products li.product .button,
	body.single-product .related.products ul.products li.product .button,
	body.single-product .upsells.products ul.products li.product .button,
	body.single-product .et_pb_wc_related_products ul.products li.product .button,
	body.single-product .dct-related-mobile ul.products li.product .button {
		width: calc(100% - 28px) !important;
		min-height: 44px !important;
		margin: auto 14px 0 !important;
		padding: 10px 12px !important;
		box-sizing: border-box !important;
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		font-size: 11px !important;
		line-height: 1.2 !important;
		letter-spacing: .035em !important;
	}

	/* Neutralise les largeurs de colonnes imposées par WooCommerce/Divi. */
	body.single-product .dct-related-mobile ul.products.columns-2 li.product,
	body.single-product .dct-related-mobile ul.products.columns-3 li.product,
	body.single-product .dct-related-mobile ul.products.columns-4 li.product,
	body.single-product .dct-related-mobile ul.products.columns-5 li.product,
	body.single-product .dct-related-mobile ul.products.columns-6 li.product {
		width: min(82vw, 310px) !important;
		margin-right: 0 !important;
	}
}


/* ========================================================================== 
   Fiche produit v1.12.17 — verrouillage réel de la hauteur galerie desktop
   Divi n'ajoute pas toujours un wrapper .woocommerce autour de la fiche :
   on cible donc directement la galerie native WooCommerce.
   ========================================================================== */

@media (min-width: 981px) {
	body.single-product .woocommerce-product-gallery,
	body.single-product div.product .woocommerce-product-gallery,
	body.single-product div.product div.images,
	body.single-product .product div.images {
		min-height: 0;
		height: auto !important;
		max-height: none;
	}

	body.single-product .woocommerce-product-gallery .flex-viewport,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
	body.single-product div.product div.images .flex-viewport,
	body.single-product div.product div.images .woocommerce-product-gallery__wrapper {
		height: 290px !important;
		min-height: 290px !important;
		max-height: 290px !important;
		box-sizing: border-box !important;
		overflow: hidden !important;
		background: #fff;
		border-radius: 8px !important;
	}

	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
	body.single-product .woocommerce-product-gallery .flex-active-slide,
	body.single-product .woocommerce-product-gallery .flex-active-slide a,
	body.single-product div.product div.images .woocommerce-product-gallery__image,
	body.single-product div.product div.images .woocommerce-product-gallery__image a {
		height: 290px !important;
		min-height: 290px !important;
		max-height: 290px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		overflow: hidden !important;
		background: #fff !important;
		box-sizing: border-box !important;
	}

	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
	body.single-product .woocommerce-product-gallery img.wp-post-image,
	body.single-product div.product div.images .woocommerce-product-gallery__image img,
	body.single-product div.product div.images img.wp-post-image {
		display: block !important;
		width: auto !important;
		height: auto !important;
		max-width: 92% !important;
		max-height: 255px !important;
		margin: auto !important;
		object-fit: contain !important;
		object-position: center center;
	}

	/* Divi/WooCommerce peut injecter des dimensions inline : on neutralise aussi
	   la hauteur sur les liens/figures qui entourent l'image. */
	body.single-product figure.woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery__wrapper figure {
		margin: 0 !important;
	}

	body.single-product .woocommerce-product-gallery .flex-control-thumbs {
		margin-top: 10px !important;
	}
}

@media (min-width: 1500px) {
	body.single-product .woocommerce-product-gallery .flex-viewport,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
	body.single-product .woocommerce-product-gallery .flex-active-slide,
	body.single-product .woocommerce-product-gallery .flex-active-slide a {
		height: 310px !important;
		min-height: 310px !important;
		max-height: 310px !important;
	}
}


/* ========================================================================== 
   Fiche produit v1.12.18 — galerie adaptative selon le format de la photo
   Une photo verticale reçoit plus de hauteur et une colonne plus étroite ;
   les formats carrés/paysage gardent une galerie plus large mais maîtrisée.
   ========================================================================== */

@media (min-width: 981px) {
	body.single-product .woocommerce-product-gallery,
	body.single-product div.product div.images.woocommerce-product-gallery {
		width: 40% !important;
		padding: 14px !important;
	}

	body.single-product div.product div.images.woocommerce-product-gallery + div.summary {
		width: 56% !important;
	}

	body.single-product .woocommerce-product-gallery .flex-viewport,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a,
	body.single-product .woocommerce-product-gallery .flex-active-slide,
	body.single-product .woocommerce-product-gallery .flex-active-slide > a {
		height: 390px !important;
		min-height: 390px !important;
		max-height: 390px !important;
	}

	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
	body.single-product .woocommerce-product-gallery img.wp-post-image {
		width: auto !important;
		height: auto !important;
		max-width: 92% !important;
		max-height: 355px !important;
		object-fit: contain !important;
		margin: auto !important;
	}

	/* Portrait : moins de vide latéral, davantage de hauteur utile. */
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait,
	body.single-product div.product div.images.woocommerce-product-gallery.dct-gallery--portrait {
		width: 34% !important;
	}

	body.single-product div.product div.images.woocommerce-product-gallery.dct-gallery--portrait + div.summary {
		width: 62% !important;
	}

	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-viewport,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image > a,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-active-slide,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-active-slide > a {
		height: 445px !important;
		min-height: 445px !important;
		max-height: 445px !important;
	}

	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image img,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait img.wp-post-image {
		max-height: 410px !important;
		max-width: 88% !important;
	}
}

@media (min-width: 1500px) {
	body.single-product .woocommerce-product-gallery .flex-viewport,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image > a,
	body.single-product .woocommerce-product-gallery .flex-active-slide,
	body.single-product .woocommerce-product-gallery .flex-active-slide > a {
		height: 410px !important;
		min-height: 410px !important;
		max-height: 410px !important;
	}
	body.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img,
	body.single-product .woocommerce-product-gallery img.wp-post-image {
		max-height: 375px !important;
	}
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-viewport,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__wrapper,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image > a,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-active-slide,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .flex-active-slide > a {
		height: 465px !important;
		min-height: 465px !important;
		max-height: 465px !important;
	}
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait .woocommerce-product-gallery__image img,
	body.single-product .woocommerce-product-gallery.dct-gallery--portrait img.wp-post-image {
		max-height: 430px !important;
	}
}


/* ==========================================================================\n   v1.12.19 — Avis clients : résumé + cartes premium\n   ========================================================================== */

body.single-product .dct-review-summary {
	display: grid;
	grid-template-columns: minmax(210px, .72fr) minmax(300px, 1.28fr);
	gap: 34px;
	align-items: center;
	margin: 0 0 30px;
	padding: 24px 26px;
	border: 1px solid #dde3d5;
	border-radius: 14px;
	background: linear-gradient(135deg, #f7f9f3 0%, #fff 68%);
	box-shadow: 0 10px 30px rgba(25, 35, 20, .045);
}

body.single-product .dct-review-summary__score {
	padding-right: 28px;
	border-right: 1px solid #e1e6da;
}

body.single-product .dct-review-summary__average {
	display: flex;
	align-items: baseline;
	gap: 5px;
	margin-bottom: 4px;
	color: #1c211a;
}

body.single-product .dct-review-summary__average strong {
	font-size: clamp(42px, 4vw, 58px);
	line-height: 1;
	font-weight: 900;
	letter-spacing: -.04em;
}

body.single-product .dct-review-summary__average span {
	font-size: 16px;
	font-weight: 700;
	color: #72796c;
}

body.single-product .dct-review-summary .star-rating {
	float: none !important;
	margin: 8px 0 10px !important;
	font-size: 18px;
	color: #e9a12c;
}

body.single-product .dct-review-summary__score p {
	margin: 0 !important;
	font-size: 13px;
	font-weight: 700;
	color: #697064;
}

body.single-product .dct-review-summary__breakdown {
	display: grid;
	gap: 8px;
}

body.single-product .dct-review-summary__row {
	display: grid;
	grid-template-columns: 42px minmax(120px, 1fr) 30px;
	gap: 10px;
	align-items: center;
	font-size: 12px;
	font-weight: 700;
	color: #586052;
}

body.single-product .dct-review-summary__bar {
	display: block;
	height: 7px;
	overflow: hidden;
	border-radius: 999px;
	background: #e6eadf;
}

body.single-product .dct-review-summary__bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: #7ab43e;
}

body.single-product .dct-review-summary__count { text-align: right; color: #7b8275; }


/* Formulaire d'avis plus clairement séparé de la liste. */

@media (max-width: 900px) {
	body.single-product .dct-review-summary {
		grid-template-columns: 1fr;
		gap: 20px;
		padding: 20px;
	}
	body.single-product .dct-review-summary__score {
		padding: 0 0 18px;
		border-right: 0;
		border-bottom: 1px solid #e1e6da;
	}
}

@media (max-width: 560px) {
	body.single-product .dct-review-summary {
		margin-bottom: 20px;
		padding: 16px;
		border-radius: 10px;
	}
	body.single-product .dct-review-summary__average strong { font-size: 42px; }
	body.single-product .dct-review-summary__row {
		grid-template-columns: 38px minmax(80px, 1fr) 24px;
		gap: 8px;
	}
}


/* L'indication de swipe n'a de sens que sur mobile. */

body.single-product .dct-related-hint {
	display: none;
}

@media (min-width: 981px) {
	body.single-product section.related.products,
	body.single-product section.upsells.products,
	body.single-product .related.products,
	body.single-product .upsells.products,
	body.single-product .et_pb_wc_related_products {
		clear: both !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-top: 34px !important;
		padding-top: 30px !important;
		border-top: 1px solid #e0e4da !important;
	}

	body.single-product section.related.products > h2,
	body.single-product section.upsells.products > h2,
	body.single-product .related.products > h2,
	body.single-product .upsells.products > h2,
	body.single-product .et_pb_wc_related_products h2 {
		margin: 0 0 18px !important;
		font-size: 22px !important;
		line-height: 1.2 !important;
		font-weight: 900 !important;
		letter-spacing: .025em !important;
		text-transform: uppercase !important;
	}

	body.single-product section.related.products ul.products,
	body.single-product section.upsells.products ul.products,
	body.single-product .related.products ul.products,
	body.single-product .upsells.products ul.products,
	body.single-product .et_pb_wc_related_products ul.products,
	body.single-product .dct-related-mobile ul.products {
		display: grid !important;
		grid-template-columns: repeat(auto-fit, minmax(210px, 250px)) !important;
		justify-content: start;
		align-items: stretch;
		gap: 18px !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		overflow: visible !important;
	}

	body.single-product section.related.products ul.products li.product,
	body.single-product section.upsells.products ul.products li.product,
	body.single-product .related.products ul.products li.product,
	body.single-product .upsells.products ul.products li.product,
	body.single-product .et_pb_wc_related_products ul.products li.product,
	body.single-product .dct-related-mobile ul.products li.product,
	body.single-product .dct-related-mobile ul.products.columns-2 li.product,
	body.single-product .dct-related-mobile ul.products.columns-3 li.product,
	body.single-product .dct-related-mobile ul.products.columns-4 li.product,
	body.single-product .dct-related-mobile ul.products.columns-5 li.product,
	body.single-product .dct-related-mobile ul.products.columns-6 li.product {
		float: none !important;
		width: 100% !important;
		max-width: 250px !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 0 12px !important;
		display: flex !important;
		flex-direction: column !important;
		box-sizing: border-box !important;
		background: #fff !important;
		border: 1px solid #e0e3da !important;
		border-radius: 10px !important;
		box-shadow: 0 4px 14px rgba(18,25,15,.05) !important;
		overflow: hidden !important;
	}

	body.single-product section.related.products ul.products li.product .et_shop_image,
	body.single-product section.upsells.products ul.products li.product .et_shop_image,
	body.single-product .related.products ul.products li.product .et_shop_image,
	body.single-product .upsells.products ul.products li.product .et_shop_image,
	body.single-product .et_pb_wc_related_products ul.products li.product .et_shop_image,
	body.single-product .dct-related-mobile ul.products li.product .et_shop_image {
		min-height: 168px !important;
		height: 168px !important;
		margin: 0 !important;
		padding: 10px !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		background: #fafbf8 !important;
		box-sizing: border-box !important;
	}

	body.single-product section.related.products ul.products li.product a img,
	body.single-product section.upsells.products ul.products li.product a img,
	body.single-product .related.products ul.products li.product a img,
	body.single-product .upsells.products ul.products li.product a img,
	body.single-product .et_pb_wc_related_products ul.products li.product a img,
	body.single-product .dct-related-mobile ul.products li.product a img {
		display: block !important;
		width: 100% !important;
		height: 148px !important;
		max-height: 148px !important;
		margin: 0 auto !important;
		padding: 6px !important;
		object-fit: contain !important;
		box-sizing: border-box !important;
		transform: none !important;
	}

	body.single-product section.related.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product section.upsells.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .upsells.products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .et_pb_wc_related_products ul.products li.product .woocommerce-loop-product__title,
	body.single-product .dct-related-mobile ul.products li.product .woocommerce-loop-product__title,
	body.single-product .et_pb_wc_related_products ul.products li.product h2 {
		min-height: 0 !important;
		margin: 0 !important;
		padding: 12px 13px 5px !important;
		font-size: 15.5px !important;
		line-height: 1.35 !important;
		font-weight: 750 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		color: #222722 !important;
	}

	body.single-product section.related.products ul.products li.product .star-rating,
	body.single-product section.upsells.products ul.products li.product .star-rating,
	body.single-product .related.products ul.products li.product .star-rating,
	body.single-product .upsells.products ul.products li.product .star-rating,
	body.single-product .et_pb_wc_related_products ul.products li.product .star-rating,
	body.single-product .dct-related-mobile ul.products li.product .star-rating {
		float: none !important;
		margin: 6px 13px 1px !important;
		font-size: 11px !important;
	}

	body.single-product section.related.products ul.products li.product .price,
	body.single-product section.upsells.products ul.products li.product .price,
	body.single-product .related.products ul.products li.product .price,
	body.single-product .upsells.products ul.products li.product .price,
	body.single-product .et_pb_wc_related_products ul.products li.product .price,
	body.single-product .dct-related-mobile ul.products li.product .price {
		display: block !important;
		margin: 5px 0 8px !important;
		padding: 0 13px !important;
		font-size: 17px !important;
		line-height: 1.2 !important;
		font-weight: 850 !important;
		color: #555b53 !important;
	}

	body.single-product section.related.products ul.products li.product .dct-card-actions,
	body.single-product section.upsells.products ul.products li.product .dct-card-actions,
	body.single-product .related.products ul.products li.product .dct-card-actions,
	body.single-product .upsells.products ul.products li.product .dct-card-actions,
	body.single-product .et_pb_wc_related_products ul.products li.product .dct-card-actions,
	body.single-product .dct-related-mobile ul.products li.product .dct-card-actions {
		margin-top: auto !important;
		padding: 8px 13px 0 !important;
	}

	body.single-product section.related.products ul.products li.product .button,
	body.single-product section.upsells.products ul.products li.product .button,
	body.single-product .related.products ul.products li.product .button,
	body.single-product .upsells.products ul.products li.product .button,
	body.single-product .et_pb_wc_related_products ul.products li.product .button,
	body.single-product .dct-related-mobile ul.products li.product .button {
		width: 100% !important;
		min-height: 40px !important;
		margin: 0 !important;
		padding: 9px 10px !important;
		justify-content: center !important;
		font-size: 10.5px !important;
		line-height: 1.15 !important;
		letter-spacing: .03em !important;
	}
}

/* ==========================================================================
   v1.12.51 — Avis clients en cartes + formulaire
   Initiales à la place du Gravatar, « Prénom N. », badge « Achat vérifié »,
   2 colonnes sur ordinateur, 6 avis puis « Afficher les autres avis » (JS).
   ========================================================================== */

body.single-product #reviews #comments h2.woocommerce-Reviews-title {
	margin: 0 0 16px;
	font-size: 22px;
	font-weight: 800;
	line-height: 1.25;
	color: #1c211a;
}

body.single-product #reviews #comments ol.commentlist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Le clearfix WooCommerce (::before/::after) occuperait une case de la grille. */
body.single-product #reviews #comments ol.commentlist::before,
body.single-product #reviews #comments ol.commentlist::after { content: none !important; display: none !important; }

body.single-product #reviews #comments ol.commentlist > li {
	position: static;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	list-style: none;
}

body.single-product #reviews #comments ol.commentlist.is-collapsed > li:nth-child(n+7) { display: none; }

body.single-product #reviews #comments ol.commentlist li .comment_container {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	height: 100%;
	box-sizing: border-box;
	padding: 18px 20px;
	border: 1px solid #e2e6da;
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 6px 18px rgba(25, 35, 20, .04);
}

body.single-product #reviews #comments ol.commentlist li img.avatar { display: none !important; }

body.single-product .dct-review__avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: #eef2e3;
	color: #3f5418;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .02em;
	line-height: 1;
}

body.single-product #reviews #comments ol.commentlist li .comment-text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
}

body.single-product #reviews #comments ol.commentlist li .comment-text p.meta {
	order: 1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px 10px;
	margin: 0 !important;
	font-size: 13px;
	line-height: 1.4;
	color: #7b8177;
}

body.single-product #reviews #comments ol.commentlist li .comment-text p.meta .woocommerce-review__author {
	font-size: 14.5px;
	font-weight: 700;
	color: #1c211a;
}

body.single-product #reviews #comments ol.commentlist li .comment-text .dct-review__verified {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 2px 8px;
	border-radius: 999px;
	background: #eef4e2;
	color: #4e681c;
	font-size: 11.5px;
	font-style: normal;
	font-weight: 700;
	line-height: 1.5;
}

body.single-product .dct-review__verified svg { width: 12px; height: 12px; stroke-width: 2.4; }

body.single-product #reviews #comments ol.commentlist li .comment-text p.meta time {
	margin-left: auto;
	font-size: 12.5px;
	color: #8a9184;
}

body.single-product #reviews #comments ol.commentlist li .comment-text .star-rating {
	order: 2;
	float: none !important;
	margin: 0 !important;
	font-size: 13px;
	color: #e9a12c;
}

body.single-product #reviews #comments ol.commentlist li .comment-text .description {
	order: 3;
	margin: 4px 0 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: #2b3028;
	overflow-wrap: anywhere;
}

body.single-product #reviews #comments ol.commentlist li .comment-text .description p { margin: 0 0 .6em; }
body.single-product #reviews #comments ol.commentlist li .comment-text .description p:last-child { margin-bottom: 0; }

body.single-product #reviews #comments ol.commentlist li .comment-text .woocommerce-review__awaiting-approval { font-style: normal; color: #b4651d; }

/* Bouton « Afficher les autres avis ». */
body.single-product #reviews .dct-reviews-more {
	display: flex;
	justify-content: center;
	margin: 16px 0 0;
}

body.single-product #reviews .dct-reviews-more button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 20px;
	border: 1px solid #cfd5c6;
	border-radius: 999px;
	background: #fff;
	color: #1c211a;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	transition: border-color .2s, background .2s;
}

body.single-product #reviews .dct-reviews-more button:hover { border-color: #8cb33f; background: #f7f9f3; }
body.single-product #reviews .dct-reviews-more button:focus-visible { outline: 2px solid #8cb33f; outline-offset: 2px; }

body.single-product #reviews .woocommerce-pagination { margin-top: 16px; }

body.single-product #reviews #comments .woocommerce-noreviews {
	margin: 0;
	padding: 18px 20px;
	border: 1px dashed #d5dbcc;
	border-radius: 12px;
	background: #fafbf7;
	color: #697064;
}

/* Formulaire d'avis. */
body.single-product #reviews #review_form_wrapper { margin-top: 26px; }

body.single-product #reviews #review_form {
	padding: 22px 24px;
	border: 1px solid #e2e6da;
	border-radius: 12px;
	background: #f7f9f3;
}

body.single-product #reviews #review_form #respond { margin: 0; padding: 0; border: 0; background: none; }

body.single-product #reviews #review_form .comment-reply-title {
	display: block;
	margin: 0 0 4px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
	color: #1c211a;
}

body.single-product #reviews #review_form .dct-review-form__intro {
	margin: 0 0 16px;
	font-size: 13.5px;
	line-height: 1.55;
	color: #697064;
}

body.single-product #reviews #review_form label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 700;
	color: #1c211a;
}

body.single-product #reviews #review_form .comment-form-rating { margin: 0 0 14px; }

body.single-product #reviews #review_form p.stars { margin: 0; font-size: 26px; line-height: 1; }

body.single-product #reviews #review_form p.stars a {
	margin-right: 4px;
	color: #e9a12c;
	text-decoration: none;
}

body.single-product #reviews #review_form p.stars a:focus-visible { outline: 2px solid #8cb33f; outline-offset: 2px; border-radius: 3px; }

body.single-product #reviews #review_form textarea,
body.single-product #reviews #review_form input[type="text"],
body.single-product #reviews #review_form input[type="email"] {
	width: 100%;
	box-sizing: border-box;
	padding: 12px 14px;
	border: 1px solid #cfd2c6;
	border-radius: 8px;
	background: #fff;
	color: #1c211a;
	font: inherit;
	font-size: 15px;
	box-shadow: none;
}

body.single-product #reviews #review_form textarea { min-height: 130px; resize: vertical; }

body.single-product #reviews #review_form textarea:focus,
body.single-product #reviews #review_form input:focus {
	border-color: #8cb33f;
	outline: 2px solid rgba(140, 179, 63, .25);
	outline-offset: 0;
}

body.single-product #reviews #review_form .comment-form-comment,
body.single-product #reviews #review_form .comment-form-author,
body.single-product #reviews #review_form .comment-form-email { margin: 0 0 14px; }

body.single-product #reviews #review_form .comment-form-cookies-consent { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: #697064; }
body.single-product #reviews #review_form .comment-form-cookies-consent label { display: inline; font-weight: 400; color: inherit; }

body.single-product #reviews #review_form .form-submit { margin: 4px 0 0; text-align: left; }

body.single-product #reviews #review_form .form-submit input#submit {
	float: none;
	padding: 14px 24px;
	border: 0;
	border-radius: 6px;
	background: #8cb33f;
	color: #10140e;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .2s;
}

body.single-product #reviews #review_form .form-submit input#submit:hover { background: #9dc64c; }

@media (max-width: 900px) {
	body.single-product #reviews #comments ol.commentlist { grid-template-columns: 1fr; gap: 10px; }
}

@media (max-width: 560px) {
	body.single-product #reviews #comments ol.commentlist li .comment_container {
		grid-template-columns: 36px minmax(0, 1fr);
		gap: 12px;
		padding: 14px 15px;
	}
	body.single-product .dct-review__avatar { width: 36px; height: 36px; font-size: 13px; }
	body.single-product #reviews #comments ol.commentlist li .comment-text p.meta time { margin-left: 0; flex-basis: 100%; }
	body.single-product #reviews #review_form { padding: 18px 16px; }
	body.single-product #reviews #review_form .form-submit input#submit { width: 100%; }
}

/* ==========================================================================
   v1.12.52 — Onglets Description / Caractéristiques
   Descriptions de l'ancien site : polices, tailles et noir forcés neutralisés,
   largeur de lecture confortable, encadré pour l'ancienne mention réglementaire,
   tableau de caractéristiques lisible.
   ========================================================================== */

body.single-product .woocommerce-Tabs-panel--description {
	font-size: 15.5px;
	line-height: 1.7;
	color: #2b3028;
}

body.single-product .woocommerce-Tabs-panel--description > * { max-width: 860px; }

/* Styles en ligne repris de l'ancien site (span font-size:18px, Times, Arial, noir). */
body.single-product .woocommerce-Tabs-panel--description :is(p, span, div, li, td, font, strong, em, b)[style],
body.single-product .woocommerce-Tabs-panel--description font {
	font-family: inherit !important;
	font-size: inherit !important;
	line-height: inherit !important;
	letter-spacing: normal !important;
	text-indent: 0 !important;
	background-color: transparent !important;
}

body.single-product .woocommerce-Tabs-panel--description [style*="color: #000"],
body.single-product .woocommerce-Tabs-panel--description [style*="color:#000"],
body.single-product .woocommerce-Tabs-panel--description [style*="rgb(0, 0, 0)"] { color: inherit !important; }

body.single-product .woocommerce-Tabs-panel--description p[style] { margin: 0 0 .75em !important; text-align: left !important; }

body.single-product .woocommerce-Tabs-panel--description p { margin: 0 0 .75em; }
body.single-product .woocommerce-Tabs-panel--description p:last-child { margin-bottom: 0; }

body.single-product .woocommerce-Tabs-panel--description :is(h2, h3, h4) {
	margin: 1.4em 0 .5em;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.3;
	color: #1c211a;
}

body.single-product .woocommerce-Tabs-panel--description > :is(h2, h3, h4):first-child { margin-top: 0; }

body.single-product .woocommerce-Tabs-panel--description :is(ul, ol) { margin: 0 0 1em 1.2em; padding: 0; }
body.single-product .woocommerce-Tabs-panel--description li { margin: 0 0 .35em; }

body.single-product .woocommerce-Tabs-panel--description img { max-width: 100%; height: auto; border-radius: 6px; }

body.single-product .woocommerce-Tabs-panel--description table { width: 100%; border-collapse: collapse; margin: 0 0 1em; font-size: 14.5px; }
body.single-product .woocommerce-Tabs-panel--description table :is(th, td) { padding: 8px 12px; border: 1px solid #e2e6da; text-align: left; }

/* Ancienne mention réglementaire (affichée seulement si ABC Justificatifs ne gère pas le produit). */
body.single-product .dct-desc-notice {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 1.2em 0 0;
	padding: 14px 16px;
	border: 1px solid #e7d9be;
	border-radius: 10px;
	background: #fbf7ee;
	font-size: 13.5px;
	line-height: 1.55;
	color: #4b5147;
}

body.single-product .dct-desc-notice svg { flex: 0 0 auto; width: 20px; height: 20px; margin-top: 1px; color: #b4651d; }
body.single-product .dct-desc-notice p { margin: 0 !important; }

/* Caractéristiques : tableau des attributs. */
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes {
	width: 100%;
	max-width: 760px;
	margin: 0;
	border: 1px solid #e2e6da !important;
	border-radius: 10px;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: #fff;
}

body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes :is(th, td) {
	padding: 12px 16px !important;
	border: 0 !important;
	border-bottom: 1px solid #edf0e7 !important;
	background: transparent !important;
	font-size: 14.5px;
	font-style: normal !important;
	line-height: 1.5;
	vertical-align: top;
	text-align: left;
}

body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes tr:last-child :is(th, td) { border-bottom: 0 !important; }

body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes tr:nth-child(even) :is(th, td) { background: #f7f9f3 !important; }

body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes th {
	width: 34%;
	font-weight: 700;
	color: #4b5147;
}

body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes td { color: #1c211a; }
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes td p { margin: 0; padding: 0; }

@media (max-width: 560px) {
	body.single-product .woocommerce-Tabs-panel--description { font-size: 15px; }
	body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes th { width: 42%; }
}

/* ==========================================================================
   v1.12.53 — Fiche produit lisible
   Galerie en carte (flèches et compteur sur la photo, miniatures sur une
   ligne), résumé en carte (stock en pastille, bouton d'achat large, infos
   rangées), rupture de stock avec action, onglets défilants sur mobile,
   produits similaires sur toute la largeur.
   ========================================================================== */

/* --- Galerie ------------------------------------------------------------ */

body.single-product div.product .woocommerce-product-gallery {
	box-sizing: border-box;
	padding: 14px !important;
	border: 1px solid #e3e6dc;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(20, 28, 16, .05);
}

body.single-product div.product .woocommerce-product-gallery .flex-viewport {
	position: relative;
	border-radius: 10px !important;
}

/* Flèches précédente / suivante. */
body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav {
	position: absolute;
	top: 50%;
	z-index: 6;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: -20px 0 0;
	padding: 0;
	border: 1px solid rgba(27, 30, 25, .1);
	border-radius: 50%;
	background: rgba(255, 255, 255, .94);
	box-shadow: 0 4px 14px rgba(15, 20, 12, .16);
	color: #1b1e19;
	font: inherit;
	line-height: 1;
	cursor: pointer;
	transition: opacity .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}

body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav--prev { left: 10px; }
body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav--next { right: 10px; }

body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav svg {
	display: block;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav::before,
body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav::after {
	display: none !important;
	content: none !important;
}

body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav:hover,
body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav:focus-visible {
	border-color: transparent;
	background: var(--dct-green);
	color: #10140e;
}

body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav:focus-visible {
	outline: 2px solid #1b1e19;
	outline-offset: 2px;
}

/* Souris : flèches révélées au survol de la galerie ; toujours visibles au doigt. */
@media (hover: hover) and (pointer: fine) {
	body.single-product div.product .woocommerce-product-gallery .dct-gallery-nav { opacity: 0; }
	body.single-product div.product .woocommerce-product-gallery:hover .dct-gallery-nav,
	body.single-product div.product .woocommerce-product-gallery:focus-within .dct-gallery-nav { opacity: 1; }
}

/* Compteur « 2 / 5 ». */
body.single-product div.product .woocommerce-product-gallery .dct-gallery-counter {
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 6;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(21, 24, 20, .72);
	color: #fff;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .02em;
	font-variant-numeric: tabular-nums;
	pointer-events: none;
}

/* Loupe (agrandissement plein écran). */
body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger {
	top: 24px !important;
	right: 24px !important;
	z-index: 7 !important;
	box-shadow: 0 4px 14px rgba(15, 20, 12, .16);
}

/* Badge « PROMO » posé sur la photo (déplacé par le JS). */
body.single-product div.product .woocommerce-product-gallery > .onsale {
	top: 24px !important;
	left: 24px !important;
	right: auto !important;
	z-index: 7 !important;
	margin: 0 !important;
	padding: 7px 11px !important;
	border-radius: 999px !important;
	background: #c2412d !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	line-height: 1 !important;
	letter-spacing: .08em !important;
	box-shadow: 0 4px 12px rgba(194, 65, 45, .28);
}

/* Miniatures : une seule rangée, défilable, vignette active marquée. */
body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs {
	position: relative;
	display: flex !important;
	flex-wrap: nowrap !important;
	gap: 8px;
	margin: 12px 0 0 !important;
	padding: 2px 2px 8px !important;
	overflow-x: auto;
	overflow-y: hidden;
	list-style: none;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
	scrollbar-color: #cfd5c6 transparent;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
}

body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs::-webkit-scrollbar { height: 6px; }
body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs::-webkit-scrollbar-thumb { border-radius: 6px; background: #cfd5c6; }

body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li {
	flex: 0 0 calc((100% - 32px) / 5);
	width: auto !important;
	max-width: 92px;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	clear: none !important;
	list-style: none;
	scroll-snap-align: start;
}

body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li img {
	display: block;
	box-sizing: border-box;
	width: 100% !important;
	height: auto !important;
	aspect-ratio: 1 / 1;
	margin: 0 !important;
	padding: 4px;
	border: 1px solid #e3e6dc;
	border-radius: 8px;
	background: #fff;
	object-fit: contain;
	opacity: .7 !important;
	cursor: pointer;
	transition: opacity .15s ease, border-color .15s ease, box-shadow .15s ease;
}

body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li img:hover {
	border-color: #c5cdb8;
	opacity: 1 !important;
}

body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li img.flex-active {
	border-color: var(--dct-green);
	box-shadow: 0 0 0 1px var(--dct-green);
	opacity: 1 !important;
}

/* Sans photo : cadre aux couleurs de l'image de substitution. */
body.single-product div.product .woocommerce-product-gallery--without-images .woocommerce-product-gallery__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border-radius: 10px;
	background: #f4f4f0;
	aspect-ratio: 4 / 3;
}

body.single-product div.product .woocommerce-product-gallery--without-images .woocommerce-product-gallery__image--placeholder img {
	display: block;
	width: auto !important;
	max-width: 78% !important;
	height: 100% !important;
	max-height: 100% !important;
	object-fit: contain;
}

@media (min-width: 981px) {
	body.single-product div.product .woocommerce-product-gallery--without-images .woocommerce-product-gallery__image--placeholder { aspect-ratio: auto; height: 390px; }
}

/* --- Résumé : carte d'achat ---------------------------------------------- */

body.single-product div.product div.summary {
	box-sizing: border-box;
	padding: 26px 28px 24px !important;
	border: 1px solid #e3e6dc;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(20, 28, 16, .05);
}

body.single-product div.product div.summary .dct-product-kicker { margin-bottom: 12px; }

body.single-product div.product div.summary .product_title {
	margin: 0 0 12px !important;
	padding: 0 !important;
	color: #1b1e19;
	font-size: clamp(23px, 2.1vw, 30px) !important;
	font-weight: 800;
	line-height: 1.22 !important;
	letter-spacing: -.012em;
	overflow-wrap: break-word;
}

/* Noms saisis en minuscules (« boite 20 cartouches… ») : majuscule initiale. */
body.single-product div.product div.summary .product_title::first-letter { text-transform: uppercase; }

body.single-product div.product div.summary p.price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	margin: 0 0 14px !important;
	padding: 0 !important;
	color: #1b1e19 !important;
	font-size: 30px !important;
	font-weight: 850;
	line-height: 1.1 !important;
}

body.single-product div.product div.summary p.price del {
	order: 2;
	color: #8a9184 !important;
	font-size: 17px !important;
	font-weight: 600;
	opacity: 1;
}

body.single-product div.product div.summary p.price ins {
	order: 1;
	color: #b3361f !important;
	font-weight: 850;
	text-decoration: none;
}

body.single-product div.product div.summary p.price del .amount,
body.single-product div.product div.summary p.price ins .amount { color: inherit !important; }

/* Disponibilité en pastille. */
body.single-product div.product div.summary p.stock {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0 0 16px !important;
	padding: 6px 12px 6px 10px !important;
	border-radius: 999px;
	font-size: 12.5px !important;
	font-weight: 750;
	line-height: 1.3 !important;
}

body.single-product div.product div.summary p.stock::before {
	content: "";
	flex: 0 0 8px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
}

body.single-product div.product div.summary p.stock.in-stock { background: #eef5e4; color: #3d6512 !important; }
body.single-product div.product div.summary p.stock.out-of-stock { background: #fbeceb; color: #a52b22 !important; }
body.single-product div.product div.summary p.stock.available-on-backorder { background: #fdf3e2; color: #8a5a0e !important; }

/* Paiement en plusieurs fois (Alma) : encadré discret. */
body.single-product div.product div.summary .alma-product-eligibility { margin: 0 0 16px !important; padding: 0 !important; }
body.single-product div.product div.summary .alma-product-eligibility > div {
	max-width: 100%;
	box-sizing: border-box;
	border: 1px solid #e6e9df !important;
	border-radius: 10px !important;
	background: #f8f9f5 !important;
	box-shadow: none !important;
}

/* Quantité + bouton d'achat. */
body.single-product div.product div.summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin: 0 !important;
}

body.single-product div.product div.summary form.cart::before,
body.single-product div.product div.summary form.cart::after { display: none !important; content: none !important; }

body.single-product div.product div.summary form.cart .quantity {
	float: none !important;
	margin: 0 !important;
}

body.single-product div.product div.summary form.cart .quantity input.qty {
	box-sizing: border-box;
	width: 76px !important;
	height: 52px !important;
	margin: 0 !important;
	padding: 0 6px !important;
	border: 1px solid #d8ddd0 !important;
	border-radius: 10px !important;
	background: #fff !important;
	color: #1b1e19 !important;
	font-size: 16px !important;
	font-weight: 750;
	text-align: center;
}

body.single-product div.product div.summary form.cart .quantity input.qty:focus {
	border-color: var(--dct-green) !important;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(140, 179, 63, .22);
}

body.single-product div.product div.summary form.cart .single_add_to_cart_button {
	display: inline-flex !important;
	flex: 1 1 220px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	max-width: 380px;
	height: 52px !important;
	margin: 0 !important;
	padding: 0 26px !important;
	float: none !important;
	border-radius: 10px !important;
	box-shadow: 0 6px 16px rgba(140, 179, 63, .28);
	font-size: 13.5px !important;
	letter-spacing: .06em;
	transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

body.single-product div.product div.summary form.cart .single_add_to_cart_button::after { display: none !important; content: none !important; }

body.single-product div.product div.summary form.cart .single_add_to_cart_button::before {
	content: "" !important;
	display: inline-block !important;
	position: static !important;
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	margin: 0 !important;
	opacity: 1 !important;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.6'/%3E%3Ccircle cx='18' cy='20' r='1.6'/%3E%3Cpath d='M1 2h3l2.6 12.4A2 2 0 0 0 8.6 16h9.2a2 2 0 0 0 2-1.6L21.5 6H5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.6'/%3E%3Ccircle cx='18' cy='20' r='1.6'/%3E%3Cpath d='M1 2h3l2.6 12.4A2 2 0 0 0 8.6 16h9.2a2 2 0 0 0 2-1.6L21.5 6H5'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.single-product div.product div.summary form.cart .single_add_to_cart_button:hover {
	box-shadow: 0 8px 20px rgba(140, 179, 63, .34);
	transform: translateY(-1px);
}

body.single-product div.product div.summary .dct-reassurance { margin-top: 18px !important; }

/* Rupture : action proposée. */
body.single-product .dct-oos {
	margin: 0 0 6px;
	padding: 16px 18px;
	border: 1px solid #efd8d4;
	border-radius: 12px;
	background: #fdf6f5;
}

body.single-product .dct-oos__text {
	margin: 0 0 12px !important;
	color: #4b5147;
	font-size: 14px;
	line-height: 1.55;
}

body.single-product .dct-oos__text strong { color: #1b1e19; }

body.single-product .dct-oos__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
}

body.single-product div.product div.summary a.dct-oos__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0 18px;
	border-radius: 10px;
	background: #1b1e19;
	color: #fff !important;
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .05em;
	text-decoration: none !important;
	text-transform: uppercase;
	transition: background-color .18s ease;
}

body.single-product div.product div.summary a.dct-oos__btn:hover { background: #343b31; color: #fff !important; }

body.single-product div.product div.summary a.dct-oos__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--dct-link) !important;
	font-size: 13px;
	font-weight: 700;
	text-decoration: none !important;
}

body.single-product div.product div.summary a.dct-oos__link:hover { color: var(--dct-link-hover) !important; text-decoration: underline !important; }

body.single-product .dct-oos .dct-ico { flex: 0 0 16px; width: 16px; height: 16px; }

/* Référence / catégorie : rangées, discrètes. */
body.single-product div.product div.summary .product_meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	margin: 18px 0 0 !important;
	padding: 14px 0 0 !important;
	border-top: 1px solid #edf0e8;
	color: #7b8177;
	font-size: 12.5px !important;
	line-height: 1.5;
}

body.single-product div.product div.summary .product_meta > span { display: block; }

body.single-product div.product div.summary .product_meta .sku,
body.single-product div.product div.summary .product_meta a {
	color: #30352e !important;
	font-weight: 700;
}

body.single-product div.product div.summary .product_meta a:hover { color: var(--dct-link) !important; }

body.single-product div.product div.summary .dct-product-share { margin-top: 16px !important; padding-top: 14px !important; border-top-color: #edf0e8 !important; }

/* --- Description ---------------------------------------------------------- */

body.single-product .woocommerce-Tabs-panel--description { overflow-wrap: break-word; }

body.single-product .woocommerce-Tabs-panel--description .dct-desc-lead {
	margin: 0 0 1em !important;
	color: #262b24;
	font-size: 16.5px;
	font-weight: 600;
	line-height: 1.6;
}

body.single-product .woocommerce-Tabs-panel--description .dct-table-scroll {
	max-width: 100%;
	margin: 0 0 1em;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

body.single-product .woocommerce-Tabs-panel--description .dct-table-scroll > table { margin: 0; }
body.single-product .woocommerce-Tabs-panel--description table[style*="width"] { width: 100% !important; }
body.single-product .woocommerce-Tabs-panel--description table[style*="height"] { height: auto !important; }

body.single-product .woocommerce-Tabs-panel--description :is(iframe, video, embed, object) { max-width: 100%; }
body.single-product .woocommerce-Tabs-panel--description iframe[src*="youtu"] { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* --- Produits similaires : toute la largeur ----------------------------- */

@media (min-width: 981px) {
	body.single-product section.related.products ul.products,
	body.single-product section.upsells.products ul.products,
	body.single-product .dct-related-mobile ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	}

	body.single-product section.related.products ul.products li.product,
	body.single-product section.upsells.products ul.products li.product,
	body.single-product .dct-related-mobile ul.products li.product,
	body.single-product .dct-related-mobile ul.products[class*="columns-"] li.product { max-width: none !important; }

	body.single-product section.related.products ul.products li.product a img,
	body.single-product section.upsells.products ul.products li.product a img { height: 170px !important; max-height: 170px !important; }

	body.single-product section.related.products ul.products li.product .et_shop_image,
	body.single-product section.upsells.products ul.products li.product .et_shop_image { height: 190px !important; min-height: 190px !important; }
}

@media (min-width: 681px) and (max-width: 980px) {
	body.single-product section.related.products ul.products,
	body.single-product section.upsells.products ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

body.single-product section.related.products ul.products li.product .woocommerce-loop-product__title::first-letter,
body.single-product section.upsells.products ul.products li.product .woocommerce-loop-product__title::first-letter { text-transform: uppercase; }

/* --- Tablette / mobile ---------------------------------------------------- */

@media (max-width: 980px) {
	body.single-product div.product .woocommerce-product-gallery {
		margin-bottom: 16px !important;
		padding: 10px !important;
		border-radius: 12px;
	}

	/* Cadre photo constant (4:3) : la page ne « saute » plus d'une photo à l'autre. */
	body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image > a {
		display: flex !important;
		align-items: center;
		justify-content: center;
		aspect-ratio: 4 / 3;
		background: #fff;
	}

	body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__image > a img {
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
		max-height: 100% !important;
		margin: 0 auto !important;
		object-fit: contain;
	}

	body.single-product div.product .woocommerce-product-gallery ol.flex-control-thumbs li { flex: 0 0 64px; max-width: 64px; }

	body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
	body.single-product div.product .woocommerce-product-gallery > .onsale { top: 20px !important; }

	body.single-product div.product .woocommerce-product-gallery .woocommerce-product-gallery__trigger { right: 20px !important; }
	body.single-product div.product .woocommerce-product-gallery > .onsale { left: 20px !important; }

	body.single-product div.product div.summary {
		padding: 20px 18px 18px !important;
		border-radius: 12px;
	}
}

@media (max-width: 680px) {
	body.single-product div.product div.summary .product_title { font-size: 22px !important; }
	body.single-product div.product div.summary p.price { font-size: 26px !important; }

	body.single-product div.product div.summary form.cart .single_add_to_cart_button { flex: 1 1 auto; max-width: none; }

	/* Réassurance : trois pictos côte à côte plutôt qu'une pile. */
	body.single-product div.product div.summary .dct-reassurance {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 6px !important;
	}

	body.single-product div.product div.summary .dct-reassurance li {
		flex-direction: column;
		align-items: center !important;
		gap: 6px !important;
		padding: 10px 6px !important;
		font-size: 11px !important;
		line-height: 1.3 !important;
		text-align: center;
	}

	body.single-product .dct-oos__actions { flex-direction: column; align-items: stretch; }
	body.single-product div.product div.summary a.dct-oos__btn { justify-content: center; }
	body.single-product div.product div.summary a.dct-oos__link { justify-content: center; }

	/* Onglets sur une ligne, défilable, plutôt qu'empilés. */
	body.single-product div.product .woocommerce-tabs ul.tabs {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 0;
		overflow-x: auto;
		overflow-y: hidden;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	body.single-product div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar { display: none; }

	body.single-product div.product .woocommerce-tabs ul.tabs li {
		flex: 0 0 auto;
		float: none !important;
		width: auto !important;
		margin: 0 !important;
		border-bottom: 0 !important;
	}

	body.single-product div.product .woocommerce-tabs ul.tabs li a {
		padding: 12px 14px !important;
		font-size: 12px !important;
		white-space: nowrap;
	}
}

/* ==========================================================================
   v1.12.54 — Onglets en carte + description mise en page
   Fiche technique (lignes « Libellé : valeur »), mentions réglementaires
   regroupées dans un encadré latéral, encadré « Une question ? », espacements
   Divi neutralisés (padding-bottom des paragraphes).
   ========================================================================== */

/* --- Onglets : carte blanche, soulignement vert --------------------------- */

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper {
	clear: both;
	margin: 34px 0 0 !important;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid #e3e6dc !important;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(20, 28, 16, .05);
}

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 6px;
	margin: 0 !important;
	padding: 0 22px !important;
	overflow-x: auto;
	border: 0 !important;
	border-bottom: 1px solid #e9ece3 !important;
	border-radius: 0 !important;
	background: #fff !important;
	scrollbar-width: none;
}

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::-webkit-scrollbar,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::-webkit-scrollbar { display: none; }

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::before,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::before,
body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::after,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs::after { display: none !important; content: none !important; }

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li.active {
	flex: 0 0 auto;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li::before,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li::before,
body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li::after,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li::after { display: none !important; content: none !important; }

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a {
	display: block;
	margin: 0 0 -1px !important;
	padding: 18px 14px 15px !important;
	border: 0 !important;
	border-bottom: 3px solid transparent !important;
	background: transparent !important;
	color: #6b7166 !important;
	font-size: 13px !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
	transition: color .15s ease, border-color .15s ease;
}

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a:hover,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a:hover { color: #1b1e19 !important; }

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li.active a,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li.active a {
	border-bottom-color: var(--dct-green) !important;
	color: #1b1e19 !important;
}

body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper .panel,
body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper .panel {
	margin: 0 !important;
	padding: 30px 32px 34px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
}

/* --- Description : texte + encadrés latéraux ------------------------------ */

body.single-product .woocommerce-Tabs-panel--description > .dct-desc { max-width: none; }

body.single-product .dct-desc {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 28px 48px;
	align-items: start;
}

body.single-product .dct-desc--no-aside,
body.single-product .dct-desc--aside-only { grid-template-columns: minmax(0, 1fr); }
body.single-product .dct-desc--aside-only .dct-desc__main { display: none; }
body.single-product .dct-desc--aside-only .dct-desc__aside { max-width: 560px; }

body.single-product .dct-desc__main { min-width: 0; max-width: 820px; }

body.single-product .woocommerce-Tabs-panel--description .dct-desc__main p {
	margin: 0 0 .85em !important;
	padding: 0 !important;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc__main > :last-child { margin-bottom: 0 !important; }

/* Phrases saisies en minuscules : majuscule initiale. */
body.single-product .dct-desc__main > p::first-letter,
body.single-product .dct-desc__main > ul:not(.dct-specs) > li::first-letter,
body.single-product .dct-specs__value::first-letter { text-transform: uppercase; }

body.single-product .woocommerce-Tabs-panel--description .dct-desc__main .dct-desc-lead {
	margin-bottom: 1.1em !important;
	color: #1f241d;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.6;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc-h {
	margin: 1.6em 0 .6em !important;
	padding: 0 !important;
	color: #1b1e19;
	font-size: 17px !important;
	font-weight: 800 !important;
	line-height: 1.3 !important;
	letter-spacing: 0;
	text-transform: none;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc__main > .dct-desc-h:first-child { margin-top: 0 !important; }

body.single-product .woocommerce-Tabs-panel--description hr {
	height: 1px;
	margin: 1.6em 0;
	border: 0;
	background: #e9ece3;
}

/* Fiche technique. */
body.single-product .woocommerce-Tabs-panel--description ul.dct-specs {
	max-width: 720px;
	margin: 1.2em 0 1.5em !important;
	padding: 0 !important;
	overflow: hidden;
	list-style: none;
	border: 1px solid #e3e6dc;
	border-radius: 12px;
	background: #fff;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc__main > ul.dct-specs:first-child { margin-top: 0 !important; }

body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row {
	display: grid;
	grid-template-columns: minmax(110px, 30%) minmax(0, 1fr);
	gap: 4px 18px;
	align-items: baseline;
	margin: 0 !important;
	padding: 11px 16px !important;
	border-bottom: 1px solid #edf0e8;
	font-size: 14.5px;
	line-height: 1.5;
	list-style: none;
}

body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row:nth-child(even) { background: #f8f9f5; }
body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row:last-child { border-bottom: 0; }

body.single-product .dct-specs__label { color: #5f665a; font-weight: 600; }
body.single-product .dct-specs__value { min-width: 0; color: #1b1e19; font-weight: 700; overflow-wrap: break-word; }

body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row--note { grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: center; }

body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row--note::before {
	content: "";
	width: 16px;
	height: 16px;
	background: var(--dct-green);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / contain no-repeat;
}

body.single-product .dct-specs__row--note .dct-specs__value { font-weight: 600; }
body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row--note { padding-top: 9px !important; padding-bottom: 9px !important; background: #fff !important; border-bottom: 0; }
body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row:not(.dct-specs__row--note) + li.dct-specs__row--note { padding-top: 14px !important; }
body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row--note:last-child { padding-bottom: 14px !important; }

/* Listes classiques (« <strong>Calibre :</strong> 308 WIN »). */
body.single-product .woocommerce-Tabs-panel--description .dct-desc__main > ul:not(.dct-specs) > li { padding-left: 2px; }
body.single-product .woocommerce-Tabs-panel--description .dct-desc__main > ul:not(.dct-specs) li::marker { color: var(--dct-green); }

/* Encadrés latéraux. */
body.single-product .dct-desc__aside {
	display: grid;
	gap: 16px;
	position: sticky;
	top: 24px;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice {
	display: block;
	margin: 0;
	padding: 16px 18px;
	border: 1px solid #ecdcbb;
	border-radius: 12px;
	background: #fcf8ef;
	color: #4b5147;
	font-size: 13.5px;
	line-height: 1.55;
}

body.single-product .dct-desc-notice__title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 8px !important;
	padding: 0 !important;
	color: #7a4a12;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .07em;
	text-transform: uppercase;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__title svg { flex: 0 0 18px; width: 18px; height: 18px; margin: 0; color: #b4651d; }

body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__body p { margin: 0 0 .6em !important; padding: 0 !important; }
body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__body > :last-child { margin-bottom: 0 !important; }
body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__body ul { margin: 0 0 .6em 1.1em !important; padding: 0 !important; }
body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__body li { margin: 0 0 .2em; }
body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice__body p.dct-desc-notice__cat {
	display: inline-block;
	margin: 0 0 10px !important;
	padding: 4px 10px !important;
	border-radius: 999px;
	background: #f3e3c3;
	color: #6b3f0c;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.3;
}
body.single-product .woocommerce-Tabs-panel--description .dct-desc-notice a { color: #7a4a12 !important; font-weight: 700; text-decoration: underline !important; text-underline-offset: 2px; overflow-wrap: anywhere; }

body.single-product .dct-desc-help {
	padding: 18px;
	border: 1px solid #e3e6dc;
	border-radius: 12px;
	background: #f8f9f5;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc-help__title {
	margin: 0 0 4px !important;
	padding: 0 !important;
	color: #1b1e19;
	font-size: 15px;
	font-weight: 800;
	line-height: 1.3;
}

body.single-product .woocommerce-Tabs-panel--description .dct-desc-help__text {
	margin: 0 0 12px !important;
	padding: 0 !important;
	color: #6b7166;
	font-size: 13px;
	line-height: 1.5;
}

body.single-product .dct-desc-help__actions { display: grid; gap: 8px; }

body.single-product .woocommerce-Tabs-panel--description a.dct-desc-help__link {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 42px;
	padding: 0 14px;
	border: 1px solid #dfe3d6;
	border-radius: 10px;
	background: #fff;
	color: #1b1e19 !important;
	font-size: 13.5px;
	font-weight: 750;
	text-decoration: none !important;
	transition: border-color .15s ease, color .15s ease;
}

body.single-product .woocommerce-Tabs-panel--description a.dct-desc-help__link:hover { border-color: var(--dct-green); color: var(--dct-link) !important; }
body.single-product .dct-desc-help__link svg { flex: 0 0 18px; width: 18px; height: 18px; color: var(--dct-link); }

/* Avis / caractéristiques dans la carte : pas de double cadre. */
body.single-product .woocommerce-Tabs-panel--additional_information table.shop_attributes { max-width: 820px; }

@media (max-width: 1100px) {
	body.single-product .dct-desc { grid-template-columns: minmax(0, 1fr) 260px; gap: 24px 32px; }
}

@media (max-width: 860px) {
	body.single-product .dct-desc { grid-template-columns: minmax(0, 1fr); }
	body.single-product .dct-desc__aside { position: static; }
}

@media (max-width: 680px) {
	body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper { margin-top: 22px !important; border-radius: 12px; }
	/* Onglets de même largeur, tous visibles (« Avis clients » ne doit pas être caché à droite). */
	body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs { gap: 0; padding: 0 4px !important; overflow: visible; }
	body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li.active { flex: 1 1 0; min-width: 0; }
	body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper ul.tabs li a {
		display: flex !important;
		align-items: center;
		justify-content: center;
		height: 100%;
		box-sizing: border-box;
		padding: 14px 4px 11px !important;
		font-size: min(12.5px, 3.2vw) !important;
		font-weight: 750 !important;
		letter-spacing: 0;
		text-align: center;
		text-transform: none;
		white-space: normal;
		hyphens: manual;
	}
	body.single-product div.product .woocommerce-tabs.wc-tabs-wrapper .panel,
	body.single-product #main-content div.product .woocommerce-tabs.wc-tabs-wrapper .panel { padding: 20px 16px 22px !important; }
	body.single-product .woocommerce-Tabs-panel--description .dct-desc__main .dct-desc-lead { font-size: 16px; }
	body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row { grid-template-columns: minmax(96px, 38%) minmax(0, 1fr); gap: 4px 12px; padding: 10px 12px !important; font-size: 14px; }
	body.single-product .woocommerce-Tabs-panel--description ul.dct-specs > li.dct-specs__row--note { grid-template-columns: 16px minmax(0, 1fr); gap: 10px; }
}
