/* ==========================================================================
   Drôme Chasse & Tir — feuille de style principale
   1. Variables & reset       5. Sections home
   2. Utilitaires             6. Bandeau conseils
   3. Header                  7. Footer
   4. Hero & réassurance      8. Responsive
   ========================================================================== */

/* 1. Variables ---------------------------------------------------------- */

:root {
	--dct-black:      #0B0D0B;
	--dct-header:     #151814;
	--dct-nav:        #1E231D;
	--dct-green:      #8CB33F;
	--dct-green-hi:   #9DC64C;
	--dct-green-deep: #27311D;
	--dct-link:       #668728;
	--dct-link-hover: #4E681C;
	--dct-cream:      #F4F4F0;
	--dct-white:      #FFFFFF;
	--dct-text:       #1B1E19;
	--dct-muted:      #7B8177;
	--dct-muted-2:    #A7ADA2;
	--dct-border:     #E2E2DA;
	--dct-star:       #E8A33D;
	--dct-radius:     4px;
	--dct-shadow:     0 2px 14px rgba(0,0,0,.06);
	--dct-wrap:       1280px;
	--dct-font:       "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body.dct {
	font-family: var(--dct-font);
	color: var(--dct-text);
	background: var(--dct-cream);
	-webkit-font-smoothing: antialiased;
}

body.dct #page-container { padding-top: 0 !important; }
body.dct #main-content { background: var(--dct-cream); }
body.dct a { text-decoration: none; }

/* 1b. Neutralisation des bleus Divi / WooCommerce / navigateur (v1.12.44)
   Divi imprime son bleu par défaut (#2EA3F2) en CSS inline AVANT ce fichier :
   on reprend ici ses sélecteurs à spécificité égale, placés en tête de
   feuille, pour que toutes les règles DCT qui suivent restent prioritaires. */

:root {
	--gcid-primary-color:   #8CB33F;
	--gcid-secondary-color: #27311D;
	--gcid-link-color:      #668728;
}

body.dct {
	accent-color: var(--dct-green);                     /* cases à cocher, boutons radio, curseurs natifs */
	-webkit-tap-highlight-color: rgba(140,179,63,.18);
}

body.dct ::selection { background: rgba(140,179,63,.32); }

:where(body.dct) :focus-visible { outline: 2px solid var(--dct-green); outline-offset: 2px; }

a { color: var(--dct-link); }

blockquote,
.et-search-form { border-color: var(--dct-green); }

#et_search_icon:hover,
.et-social-icon a:hover,
.et_password_protected_form .et_submit_button,
.form-submit .et_pb_buttontton.alt.disabled,
.form-submit .et_pb_button,
.nav-single a,
.posted_in a,
.tagged_as a,
.comment-reply-link,
.et_pb_post .more,
.et_pb_bg_layout_light .et_pb_more_button,
.woocommerce-page #content input.button:hover .et_pb_widget li a:hover { color: var(--dct-link); }

@media (max-width: 980px) {
	.et_pb_bg_layout_light_tablet.et_pb_button,
	.et_pb_bg_layout_light_tablet.et_pb_module.et_pb_button,
	.et_pb_bg_layout_light_tablet .et_pb_more_button,
	.et_pb_module .et_pb_bg_layout_light_tablet.et_pb_button { color: var(--dct-link); }
}

@media (max-width: 767px) {
	.et_pb_bg_layout_light_phone.et_pb_button,
	.et_pb_bg_layout_light_phone.et_pb_module.et_pb_button,
	.et_pb_bg_layout_light_phone .et_pb_more_button,
	.et_pb_module .et_pb_bg_layout_light_phone.et_pb_button { color: var(--dct-link); }
}

.mobile_menu_bar::before,
.mobile_menu_bar::after,
#top-menu li.current-menu-ancestor > a,
#top-menu li.current-menu-item > a,
.bottom-nav li.current-menu-item > a,
.footer-widget h4,
#main-footer .widget_block h1,
#main-footer .widget_block h2,
#main-footer .widget_block h3,
#main-footer .widget_block h4,
#main-footer .widget_block h5,
#main-footer .widget_block h6,
.et_overlay::before { color: var(--dct-green); }

.nav li ul,
.et_mobile_menu,
.footer-widget li::before { border-color: var(--dct-green); }

.et_audio_content,
.et_link_content,
.et_quote_content { background-color: var(--dct-green-deep); }

.mejs-controls .mejs-time-rail .mejs-time-current { background: var(--dct-green); }

.entry-summary p.price ins,
.woocommerce div.product span.price,
.woocommerce-page div.product span.price,
.woocommerce #content div.product span.price,
.woocommerce-page #content div.product span.price,
.woocommerce div.product p.price,
.woocommerce-page div.product p.price,
.woocommerce #content div.product p.price,
.woocommerce-page #content div.product p.price { color: var(--dct-text); }

.woocommerce a.button.alt,
.woocommerce-page a.button.alt { border-color: var(--dct-green); }

.woocommerce-page .media-frame button.button-primary,
.woocommerce .media-frame button.button-primary,
.woocommerce-page .media-frame button.button-primary:hover,
.woocommerce .media-frame button.button-primary:hover,
.woocommerce-page .media-frame button.button-primary:active,
.woocommerce .media-frame button.button-primary:active {
	border-color: var(--dct-link);
	background: var(--dct-green);
	box-shadow: none;
	text-shadow: none;
	color: #10140E;
}

/* Extension ABC Justificatifs : couleur « en cours / info » (bleu par défaut)
   ramenée dans la palette du thème (olive foncé). */
body.dct .abcj,
body.dct .abcj-alert,
body.dct .abcj-product-notice {
	--abcj-info: #4E5A3A;
	--abcj-info-bg: #F0F2EA;
}

/* Remplissage automatique Chrome / Edge : fond bleu clair remplacé. */
body.dct input:-webkit-autofill,
body.dct input:-webkit-autofill:hover,
body.dct input:-webkit-autofill:focus,
body.dct select:-webkit-autofill,
body.dct textarea:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 1000px #F5F8EE inset !important;
	-webkit-text-fill-color: var(--dct-text);
	caret-color: var(--dct-text);
}

/* Divi utilise un bleu vif par défaut pour les liens de contenu. On impose
   la palette Drôme Chasse & Tir dans les textes sans recolorer la navigation,
   les filtres, les cartes produit ou les couleurs de marque. */
body.dct #main-content .entry-content p a:not(.button):not(.dct-btn):not(.et_pb_button),
body.dct #main-content .entry-content li a:not(.button):not(.dct-btn):not(.et_pb_button),
body.dct #main-content .et_pb_text_inner a:not(.button):not(.dct-btn):not(.et_pb_button),
body.dct #main-content .et_pb_post_content a:not(.button):not(.dct-btn):not(.et_pb_button) {
	color: var(--dct-link);
}
body.dct #main-content .entry-content p a:not(.button):not(.dct-btn):not(.et_pb_button):hover,
body.dct #main-content .entry-content li a:not(.button):not(.dct-btn):not(.et_pb_button):hover,
body.dct #main-content .et_pb_text_inner a:not(.button):not(.dct-btn):not(.et_pb_button):hover,
body.dct #main-content .et_pb_post_content a:not(.button):not(.dct-btn):not(.et_pb_button):hover {
	color: var(--dct-link-hover);
}
body.dct img { max-width: 100%; height: auto; }

.dct-skip {
	position: absolute;
	left: -9999px;
}

/* 2. Utilitaires -------------------------------------------------------- */

.dct-wrap {
	width: 100%;
	max-width: var(--dct-wrap);
	margin: 0 auto;
	padding: 0 24px;
	box-sizing: border-box;
}

.dct-ico { width: 18px; height: 18px; flex: 0 0 auto; }

.dct-section { padding: 54px 0; }
.dct-section + .dct-section { padding-top: 0; }

.dct-section__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 26px;
}

.dct-title {
	position: relative;
	margin: 0;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--dct-text);
	padding-bottom: 10px;
}

.dct-title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 46px;
	height: 3px;
	background: var(--dct-green);
}

.dct-more {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--dct-text);
	transition: color .2s;
}

.dct-more:hover { color: var(--dct-green); }
.dct-more .dct-ico { width: 16px; height: 16px; }

.dct-grid {
	display: grid;
	gap: 18px;
}

.dct-grid--2 { grid-template-columns: repeat(2, 1fr); }
.dct-grid--3 { grid-template-columns: repeat(3, 1fr); }
.dct-grid--4 { grid-template-columns: repeat(4, 1fr); }
.dct-grid--5 { grid-template-columns: repeat(5, 1fr); }
.dct-grid--6 { grid-template-columns: repeat(6, 1fr); }

/* Boutons */

.dct-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 22px;
	border: 1px solid transparent;
	border-radius: var(--dct-radius);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: background .2s, color .2s, border-color .2s;
}

.dct-btn--green { background: var(--dct-green); color: #10140E !important; }
.dct-btn--green:hover { background: var(--dct-green-hi); }

.dct-btn--ghost {
	background: transparent;
	border-color: rgba(255,255,255,.55);
	color: #fff !important;
}
.dct-btn--ghost:hover { background: rgba(255,255,255,.12); border-color: #fff; }

.dct-btn--outline {
	background: transparent;
	border-color: rgba(255,255,255,.7);
	color: #fff !important;
}
.dct-btn--outline:hover { background: #fff; color: #14170F !important; }

.dct-btn--sm { padding: 10px 16px; font-size: 11px; }

/* 3. Header ------------------------------------------------------------- */

.dct-header { position: relative; z-index: 500; }

.dct-topbar {
	background: var(--dct-black);
	color: var(--dct-muted-2);
	border-bottom: 1px solid rgba(255,255,255,.06);
}

.dct-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	min-height: 42px;
	padding-top: 6px;
	padding-bottom: 6px;
}

.dct-topbar__item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 11.5px;
	line-height: 1.35;
}

.dct-topbar__item .dct-ico { width: 17px; height: 17px; color: var(--dct-green); }
.dct-topbar__item span { display: flex; flex-direction: column; }
.dct-topbar__item strong { color: #E6E9E2; font-weight: 600; }
.dct-topbar__item em { font-style: normal; color: var(--dct-muted); }
.dct-topbar__item em a { color: var(--dct-muted); }
.dct-topbar__item em a:hover { color: var(--dct-green); }

.dct-header__main { background: var(--dct-header); }

.dct-header__inner {
	display: flex;
	align-items: center;
	gap: 28px;
	min-height: 86px;
}

/* Logo */

.dct-logo {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
	color: #fff;
}

.dct-logo img { max-height: 52px; width: auto; }
.dct-logo__mark { width: 30px; height: 30px; color: var(--dct-green); stroke-width: 1.4; }

.dct-logo__txt {
	display: flex;
	flex-direction: column;
	line-height: 1;
}

.dct-logo__txt strong {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: .06em;
	color: var(--dct-green);
}

.dct-logo__txt em {
	font-style: normal;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .14em;
	color: #fff;
	margin-top: 3px;
}

/* Recherche */

.dct-header__search { flex: 1 1 auto; }

.dct-search {
	display: flex;
	align-items: stretch;
	background: #fff;
	border-radius: var(--dct-radius);
	overflow: hidden;
	max-width: 620px;
	margin: 0 auto;
}

.dct-search__input {
	flex: 1 1 auto;
	border: 0;
	padding: 0 16px;
	height: 44px;
	font-size: 13px;
	color: var(--dct-text);
	background: transparent;
	outline: none;
}

.dct-search__input::placeholder { color: #9BA096; }

.dct-search__cat {
	display: flex;
	align-items: center;
	border-left: 1px solid var(--dct-border);
}

.dct-search__cat select {
	border: 0;
	background: transparent;
	height: 44px;
	padding: 0 10px;
	font-size: 12.5px;
	color: #4A4F46;
	max-width: 170px;
	outline: none;
	cursor: pointer;
}

.dct-search__btn {
	border: 0;
	background: var(--dct-nav);
	color: #fff;
	width: 54px;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .2s;
}

.dct-search__btn:hover { background: var(--dct-green); color: #10140E; }

/* Actions compte / panier */

.dct-actions {
	display: flex;
	align-items: center;
	gap: 26px;
	flex: 0 0 auto;
}

.dct-action {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: #fff;
}

.dct-action .dct-ico { width: 22px; height: 22px; stroke-width: 1.4; color: #DCE0D6; }
.dct-action:hover .dct-ico { color: var(--dct-green); }

.dct-action__meta,
.dct-cart__meta { display: flex; flex-direction: column; line-height: 1.3; }

.dct-action__meta strong,
.dct-cart__label {
	font-size: 12px;
	font-weight: 600;
	color: #fff;
}

.dct-action__meta em,
.dct-cart__total {
	font-style: normal;
	font-size: 11.5px;
	color: var(--dct-muted-2);
}

.dct-cart__icon { position: relative; display: inline-flex; }

.dct-cart__count {
	position: absolute;
	top: -7px;
	right: -9px;
	min-width: 17px;
	height: 17px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--dct-green);
	color: #10140E;
	font-size: 10px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}

/* Burger */

.dct-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: var(--dct-radius);
	background: transparent;
	cursor: pointer;
	padding: 0 10px;
}

.dct-burger span {
	display: block;
	height: 2px;
	background: #fff;
	transition: transform .25s, opacity .2s;
}

.dct-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.dct-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.dct-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Navigation */

.dct-nav {
	background: var(--dct-nav);
	border-top: 1px solid rgba(255,255,255,.06);
}

.dct-menu {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	list-style: none;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
}

.dct-menu > li { position: relative; }

.dct-menu > li > a {
	display: flex;
	align-items: center;
	height: 46px;
	padding: 0 14px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .07em;
	text-transform: uppercase;
	color: #E4E7DE;
	transition: color .2s, background .2s;
}

.dct-menu > li > a:hover,
.dct-menu > li.current-menu-item > a {
	color: var(--dct-green);
	background: rgba(255,255,255,.04);
}

.dct-menu > li.menu-item-has-children > a::after {
	content: "";
	margin-left: 7px;
	width: 0;
	height: 0;
	border: 4px solid transparent;
	border-top-color: currentColor;
	transform: translateY(2px);
}

/* Sous-menus */

.dct-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	background: var(--dct-header);
	border-top: 2px solid var(--dct-green);
	list-style: none;
	margin: 0;
	padding: 8px 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s, transform .2s, visibility .2s;
	box-shadow: 0 12px 28px rgba(0,0,0,.28);
	z-index: 20;
}

.dct-menu li:hover > .sub-menu,
.dct-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.dct-menu .sub-menu a {
	display: block;
	padding: 10px 18px;
	font-size: 13px;
	color: #D8DCD2;
}

.dct-menu .sub-menu a:hover { color: var(--dct-green); background: rgba(255,255,255,.05); }
.dct-menu .sub-menu .sub-menu { top: 0; left: 100%; }

/* 4. Hero --------------------------------------------------------------- */

.dct-hero {
	position: relative;
	background-size: cover;
	background-position: center;
	min-height: 440px;
	display: flex;
	align-items: center;
}

.dct-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(8,10,8,.92) 0%, rgba(8,10,8,.75) 38%, rgba(8,10,8,.15) 70%, rgba(8,10,8,.05) 100%);
}

.dct-hero__inner { position: relative; padding-top: 56px; padding-bottom: 56px; }

.dct-hero__title {
	margin: 0 0 18px;
	font-size: 52px;
	font-weight: 800;
	line-height: 1.03;
	letter-spacing: .01em;
	color: #fff;
	text-transform: uppercase;
}

.dct-hero__title span { display: block; }
.dct-hero__title .is-green { color: var(--dct-green); }

.dct-hero__text {
	max-width: 420px;
	margin: 0 0 26px;
	font-size: 15px;
	line-height: 1.6;
	color: #DDE1D6;
}

.dct-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }

/* Bandeau réassurance */

.dct-trust { background: var(--dct-green-deep); }

.dct-trust__inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	padding-top: 20px;
	padding-bottom: 20px;
}

.dct-trust__item { display: flex; align-items: center; gap: 14px; }

.dct-trust__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255,255,255,.2);
	border-radius: var(--dct-radius);
	color: var(--dct-green);
	flex: 0 0 auto;
}

.dct-trust__ico .dct-ico { width: 19px; height: 19px; }
.dct-trust__txt { display: flex; flex-direction: column; line-height: 1.4; }
.dct-trust__txt strong { font-size: 13.5px; font-weight: 700; color: #fff; }
.dct-trust__txt em { font-style: normal; font-size: 12px; color: #B8C0AC; }

/* 5. Nos univers -------------------------------------------------------- */

.dct-cat {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--dct-radius);
	aspect-ratio: 3 / 4;
	background: #10120F;
}

.dct-cat__media {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
	transition: transform .5s ease;
}

.dct-cat::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(6,8,6,.15) 35%, rgba(6,8,6,.85) 100%);
}

.dct-cat:hover .dct-cat__media { transform: scale(1.07); }

.dct-cat__body {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	padding: 0 10px 18px;
	text-align: center;
}

/* Visuel d'attente : grande icône centrée (pas d'icône sur les vraies photos) */
.dct-cat__art {
	position: absolute;
	inset: 0 0 22% 0;
	z-index: 1;
	display: grid;
	place-items: center;
	color: var(--dct-green);
	pointer-events: none;
	transition: transform .5s ease;
}
.dct-cat__art .dct-ico { width: 38%; height: auto; max-width: 96px; stroke-width: 1.1; opacity: .9; }
.dct-cat--placeholder:hover .dct-cat__art { transform: scale(1.07); }
.dct-cat--placeholder::after { background: linear-gradient(180deg, rgba(6,8,6,0) 45%, rgba(6,8,6,.7) 100%); }

.dct-cat__name {
	font-size: 12.5px;
	font-weight: 800;
	letter-spacing: .08em;
	color: #fff;
}

.dct-cat__link { font-size: 11px; color: #C8CDBF; }
.dct-cat:hover .dct-cat__link { color: var(--dct-green); }

/* Blocs nouveautés / promotions */

.dct-promos__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.dct-promo {
	position: relative;
	overflow: hidden;
	border-radius: var(--dct-radius);
	min-height: 195px;
	display: flex;
	align-items: center;
	background-size: cover;
	background-position: right center;
}

.dct-promo--dark { background-color: #15170F; }
.dct-promo--dark::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(10,12,9,.94) 0%, rgba(10,12,9,.72) 45%, rgba(10,12,9,.1) 100%);
}

.dct-promo--green { background-color: #4C6B22; background-image: linear-gradient(120deg, #4E6E22 0%, #3E5A1B 100%); }

.dct-promo--green.dct-promo--has-image {
	background-color: #243713;
	background-size: cover;
	background-position: right center;
}

.dct-promo--green.dct-promo--has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(20,35,12,.94) 0%, rgba(34,64,16,.78) 45%, rgba(24,46,12,.30) 100%);
	pointer-events: none;
}

.dct-promo__watermark {
	position: absolute;
	right: -10px;
	top: 50%;
	transform: translateY(-50%);
	opacity: .12;
	color: #fff;
}

.dct-promo__watermark .dct-ico { width: 190px; height: 190px; stroke-width: 1; }

.dct-promo__inner { position: relative; z-index: 2; padding: 30px 34px; max-width: 62%; }

.dct-promo__kicker {
	display: block;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	color: rgba(255,255,255,.72);
	margin-bottom: 10px;
}

.dct-promo__title {
	margin: 0 0 18px;
	font-size: 26px;
	line-height: 1.2;
	font-weight: 700;
	color: #fff;
}

.dct-promo__title strong { display: block; font-weight: 800; }

/* Produits */

.dct-card {
	background: #fff;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	overflow: hidden;
	transition: box-shadow .25s, transform .25s, border-color .25s;
}

.dct-card:hover {
	box-shadow: var(--dct-shadow);
	transform: translateY(-3px);
	border-color: #D2D6C9;
}

.dct-card__link { display: block; position: relative; color: inherit; }

.dct-card__badge {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 3;
	background: var(--dct-green);
	color: #10140E;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	padding: 4px 8px;
	border-radius: 2px;
}

.dct-card__media {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 160px;
	padding: 14px;
	background: #fff;
	box-sizing: border-box;
}

.dct-card__media img { max-height: 100%; width: auto; object-fit: contain; }

.dct-card__body {
	display: block;
	padding: 12px 14px 16px;
	border-top: 1px solid #F0F0EA;
}

.dct-card__title {
	display: block;
	font-size: 12.5px;
	line-height: 1.4;
	font-weight: 500;
	color: var(--dct-text);
	min-height: 35px;
	margin-bottom: 8px;
}

.dct-card__price {
	display: block;
	font-size: 15px;
	font-weight: 800;
	color: var(--dct-text);
	margin-bottom: 7px;
}

.dct-card__price del { font-size: 12px; font-weight: 500; color: var(--dct-muted); margin-right: 6px; }
.dct-card__price ins { text-decoration: none; }

.dct-card__rating { display: flex; align-items: center; gap: 6px; }

/* Étoiles */

.dct-stars { display: inline-flex; gap: 2px; }

.dct-stars i {
	width: 12px;
	height: 12px;
	display: inline-block;
	background: #D8DAD2;
	-webkit-mask: var(--dct-star-mask) center / contain no-repeat;
	mask: var(--dct-star-mask) center / contain no-repeat;
}

:root {
	--dct-star-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1z'/%3E%3C/svg%3E");
}

.dct-stars i.is-full { background: var(--dct-star); }
.dct-stars i.is-half { background: linear-gradient(90deg, var(--dct-star) 50%, #D8DAD2 50%); }
.dct-stars__count { font-size: 11px; color: var(--dct-muted); }

/* 6. Conseils & passion ------------------------------------------------- */

.dct-advice {
	position: relative;
	background-size: cover;
	background-position: center;
	color: #fff;
}

.dct-advice__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(10,16,22,.9) 0%, rgba(10,16,22,.72) 55%, rgba(10,16,22,.6) 100%);
}

.dct-advice__inner {
	position: relative;
	display: grid;
	grid-template-columns: 1fr 1.25fr;
	gap: 40px;
	align-items: center;
	padding-top: 52px;
	padding-bottom: 52px;
}

.dct-advice__title {
	margin: 0 0 12px;
	font-size: 24px;
	font-weight: 800;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #fff;
}

.dct-advice__text { margin: 0 0 22px; font-size: 15px; line-height: 1.6; color: #DCE2D4; max-width: 330px; }

.dct-advice__right {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
}

.dct-advice__item { display: flex; align-items: flex-start; gap: 12px; }
.dct-advice__item .dct-ico { width: 22px; height: 22px; color: var(--dct-green); margin-top: 2px; }
.dct-advice__item span { display: flex; flex-direction: column; line-height: 1.45; }
.dct-advice__item strong { font-size: 13.5px; font-weight: 700; }
.dct-advice__item em { font-style: normal; font-size: 12.5px; color: #BFC7B6; }

/* 7. Footer ------------------------------------------------------------- */

.dct-footer { background: var(--dct-header); color: #C5CBBD; }

.dct-footer__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr 1.3fr;
	gap: 34px;
	padding-top: 52px;
	padding-bottom: 44px;
}

.dct-footer__text { font-size: 12.5px; line-height: 1.65; color: var(--dct-muted-2); margin: 16px 0; }

.dct-footer__social { display: flex; gap: 14px; margin: 0; }
.dct-footer__social a { color: #C5CBBD; }
.dct-footer__social a:hover { color: var(--dct-green); }
.dct-footer__social .dct-ico { width: 19px; height: 19px; }

.dct-footer__title {
	margin: 0 0 16px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .12em;
	color: #fff;
	text-transform: uppercase;
}

.dct-footer__list { list-style: none; margin: 0; padding: 0; }
.dct-footer__list li { margin-bottom: 9px; }

.dct-footer__list a {
	font-size: 12.5px;
	color: var(--dct-muted-2);
	transition: color .2s, padding-left .2s;
}

.dct-footer__list a:hover { color: var(--dct-green); padding-left: 3px; }

.dct-news { display: flex; margin: 14px 0 18px; }

.dct-news input[type="email"] {
	flex: 1 1 auto;
	height: 40px;
	border: 1px solid rgba(255,255,255,.16);
	border-right: 0;
	border-radius: var(--dct-radius) 0 0 var(--dct-radius);
	background: rgba(255,255,255,.05);
	color: #fff;
	padding: 0 12px;
	font-size: 12.5px;
	outline: none;
}

.dct-news input[type="email"]::placeholder { color: #8A9083; }

.dct-news button {
	width: 46px;
	border: 0;
	border-radius: 0 var(--dct-radius) var(--dct-radius) 0;
	background: var(--dct-green);
	color: #10140E;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s;
}

.dct-news button:hover { background: var(--dct-green-hi); }

.dct-payments { display: flex; align-items: center; gap: 8px; margin: 0; flex-wrap: wrap; }

.dct-pay {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 24px;
	min-width: 40px;
	padding: 0 7px;
	border-radius: 3px;
	background: #fff;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .02em;
	color: #17224F;
}

.dct-pay--pp { color: #0B3E86; }
.dct-pay--visa { color: #1A1F71; font-style: italic; }
.dct-pay--mc { gap: 0; background: #fff; }
.dct-pay--mc i { width: 13px; height: 13px; border-radius: 50%; display: block; }
.dct-pay--mc i:first-child { background: #EB001B; }
.dct-pay--mc i:last-child { background: #F79E1B; margin-left: -5px; }

.dct-footer__bottom { border-top: 1px solid rgba(255,255,255,.08); background: #11140F; }

.dct-footer__bottom-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding-top: 15px;
	padding-bottom: 15px;
}

.dct-copy { margin: 0; font-size: 11.5px; color: #7F8678; }

.dct-footer__mini {
	display: flex;
	gap: 26px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.dct-footer__mini li {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 11.5px;
	color: #7F8678;
}

.dct-footer__mini .dct-ico { width: 15px; height: 15px; }

/* Contenu libre */

.dct-prose { font-size: 15px; line-height: 1.75; }
.dct-prose h2, .dct-prose h3 { color: var(--dct-text); }

/* 8. Responsive --------------------------------------------------------- */

@media (max-width: 1180px) {
	.dct-grid--6 { grid-template-columns: repeat(3, 1fr); }
	.dct-menu > li > a { padding: 0 10px; font-size: 11.5px; }
}

@media (max-width: 1024px) {
	.dct-topbar__item:nth-child(2),
	.dct-topbar__item:nth-child(3) { display: none; }

	.dct-header__inner { flex-wrap: wrap; gap: 16px; min-height: 0; padding-top: 14px; padding-bottom: 14px; }
	.dct-burger { display: flex; order: 3; margin-left: auto; }
	.dct-actions { order: 2; margin-left: auto; gap: 18px; }
	.dct-action__meta { display: none; }
	.dct-header__search { order: 4; flex: 1 0 100%; }
	.dct-search { max-width: none; }

	.dct-nav { display: none; }
	.dct-nav.is-open { display: block; }

	.dct-menu { flex-direction: column; }
	.dct-menu > li > a { height: auto; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.07); }
	.dct-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border-top: 0;
		background: transparent;
		padding: 0 0 8px 14px;
		display: none;
	}
	.dct-menu li.is-open > .sub-menu { display: block; }

	.dct-hero__title { font-size: 40px; }
	.dct-trust__inner { grid-template-columns: repeat(2, 1fr); }
	.dct-advice__inner { grid-template-columns: 1fr; gap: 30px; }
	.dct-advice__right { grid-template-columns: repeat(3, 1fr); }
	.dct-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
	.dct-footer__brand, .dct-footer__news { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
	.dct-section { padding: 38px 0; }
	.dct-grid--6, .dct-grid--5, .dct-grid--4, .dct-grid--3 { grid-template-columns: repeat(2, 1fr); }
	.dct-promos__grid { grid-template-columns: 1fr; }
	.dct-promo__inner { max-width: 100%; padding: 24px; }
	.dct-hero { min-height: 380px; }
	.dct-hero__title { font-size: 32px; }
	.dct-section__head { flex-direction: column; align-items: flex-start; gap: 10px; }
	.dct-advice__right { grid-template-columns: 1fr; gap: 18px; }
	.dct-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
	.dct-footer__mini { flex-wrap: wrap; gap: 14px; }
	.dct-footer__top { gap: 26px 18px; }
	.dct-footer__list a { overflow-wrap: anywhere; }
}

@media (max-width: 520px) {
	.dct-topbar__item:not(.dct-topbar__phone) { display: none; }
	.dct-logo__txt strong { font-size: 17px; }
	.dct-logo__txt em { font-size: 11px; }
	.dct-search__cat { display: none; }
	.dct-cart__meta { display: none; }
	.dct-hero__cta .dct-btn { width: 100%; }
	.dct-card__media { height: 130px; }
}

/* Toast newsletter */

.dct-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translateX(-50%);
	z-index: 9999;
	padding: 13px 22px;
	border-radius: var(--dct-radius);
	background: var(--dct-green-deep);
	color: #fff;
	font-size: 13px;
	box-shadow: 0 8px 26px rgba(0,0,0,.25);
	animation: dct-toast-in .35s ease both, dct-toast-out .35s ease 5s both;
}

.dct-toast.is-error { background: #7A2E22; }

@keyframes dct-toast-in {
	from { opacity: 0; transform: translate(-50%, 14px); }
	to   { opacity: 1; transform: translate(-50%, 0); }
}

@keyframes dct-toast-out {
	to { opacity: 0; visibility: hidden; }
}

/* Lien gestion des cookies (barre basse) */

.dct-copy__sep { margin: 0 8px; color: #545A4E; }
.dct-copy .dct-cookies-link { color: #9AA190; }
.dct-copy .dct-cookies-link:hover { color: var(--dct-green); }

/* 5b. Home v1.4 : arrivages, marques, bourses, texte SEO ------------------ */

.dct-advice__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin: 0; }
.dct-advice__phone { display: inline-flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 800; letter-spacing: .02em; color: #fff !important; }
.dct-advice__phone .dct-ico { width: 20px; height: 20px; color: var(--dct-green); }
.dct-advice__phone:hover { color: var(--dct-green-hi) !important; }

.dct-section.dct-advice + .dct-section,
.dct-advice + .dct-section { padding-top: 54px; }

/* Marques */
.dct-brands__list {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.dct-brands__list li { margin: 0; padding: 0; }
.dct-brand {
	display: grid;
	place-items: center;
	height: 84px;
	padding: 14px 18px;
	border: 1px solid var(--dct-border);
	border-radius: var(--dct-radius);
	background: var(--dct-white);
	box-shadow: var(--dct-shadow);
	text-align: center;
	transition: border-color .2s, transform .2s;
}
.dct-brand:hover { border-color: var(--dct-green); transform: translateY(-2px); }
.dct-brand img { max-width: 100%; max-height: 52px; width: auto; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.dct-brand:hover img { filter: none; opacity: 1; }
.dct-brand span { font-size: 14px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--dct-text); }
.dct-brand:hover span { color: var(--dct-green); }

/* Bourses aux armes */
.dct-events {
	position: relative;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 28px;
	padding: 34px 38px;
	overflow: hidden;
	border-radius: var(--dct-radius);
	background: var(--dct-green-deep);
	color: #fff;
}
.dct-events::after {
	content: "";
	position: absolute;
	right: -60px;
	top: -60px;
	width: 240px;
	height: 240px;
	border: 2px solid rgba(140,179,63,.18);
	border-radius: 50%;
	box-shadow: 0 0 0 40px rgba(140,179,63,.05);
	pointer-events: none;
}
.dct-events__ico {
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: rgba(140,179,63,.15);
	color: var(--dct-green);
}
.dct-events__ico .dct-ico { width: 34px; height: 34px; }
.dct-events__kicker { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--dct-green-hi); }
.dct-events__title { margin: 6px 0 8px; font-size: 22px; font-weight: 800; line-height: 1.25; color: #fff; padding: 0; }
.dct-events__text { margin: 0; max-width: 620px; font-size: 14.5px; line-height: 1.6; color: #D3DAC8; }
.dct-events .dct-btn { position: relative; z-index: 1; white-space: nowrap; }

/* Texte de présentation */
.dct-seo__box {
	position: relative;
	padding: 38px 42px 30px;
	border: 1px solid var(--dct-border);
	border-top: 3px solid var(--dct-green);
	border-radius: var(--dct-radius);
	background: var(--dct-white);
}
.dct-seo__title { margin: 0 0 18px; padding: 0; font-size: 22px; font-weight: 800; line-height: 1.3; color: var(--dct-text); }
.dct-seo__text {
	position: relative;
	max-height: 11.5em;
	max-width: 920px;
	overflow: hidden;
	font-size: 15px;
	line-height: 1.75;
	color: #4A5046;
	transition: max-height .4s ease;
}
.dct-seo__text p { margin: 0 0 14px; padding: 0; }
.dct-seo__text::after {
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 70px;
	background: linear-gradient(180deg, rgba(255,255,255,0), #fff);
	pointer-events: none;
}
.dct-seo__box.is-open .dct-seo__text { max-height: none; }
.dct-seo__box.is-open .dct-seo__text::after { display: none; }
.dct-seo__box.is-short .dct-seo__more { display: none; }
.dct-seo__more {
	margin-top: 10px;
	padding: 0;
	border: 0;
	background: none;
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--dct-green);
	cursor: pointer;
}
.dct-seo__more:hover { text-decoration: underline; }

@media (max-width: 1024px) {
	.dct-brands__list { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 782px) {
	.dct-brands__list { grid-template-columns: repeat(2, 1fr); }
	.dct-brand { height: 70px; }
	.dct-events { grid-template-columns: 1fr; gap: 16px; padding: 28px 22px; text-align: left; }
	.dct-events__ico { width: 56px; height: 56px; }
	.dct-events__ico .dct-ico { width: 26px; height: 26px; }
	.dct-events__title { font-size: 19px; }
	.dct-events .dct-btn { width: 100%; box-sizing: border-box; }
	.dct-seo__box { padding: 28px 22px 22px; }
	.dct-seo__title { font-size: 19px; }
	.dct-seo__text { max-height: 14em; font-size: 14.5px; }
}


/* -------------------------------------------------------------------------
 * 9. Navigation premium — méga-menu Boutique + panneau Mon compte
 * ---------------------------------------------------------------------- */

/* Le menu devient le repère du méga-menu pleine largeur. */
.dct-menu { position: relative; }

@media (min-width: 1025px) {
	/* -------- Boutique : méga-menu inspiré du site historique -------- */
	.dct-menu > li.dct-menu-shop { position: static; }

	.dct-menu > li.dct-menu-shop > .sub-menu {
		left: 0;
		right: 0;
		width: 100%;
		min-width: 0;
		padding: 24px 26px 22px;
		background:
			linear-gradient(180deg, rgba(122,180,62,.045), rgba(122,180,62,0) 90px),
			#171c16;
		border-top: 3px solid var(--dct-green);
		border-radius: 0 0 8px 8px;
		box-shadow: 0 22px 45px rgba(0,0,0,.34);
		max-height: var(--dct-mega-max, min(72vh, 690px)); /* v1.12.47 : hauteur de l'écran (JS) */
		overflow-y: auto;
		overflow-x: hidden;
		overscroll-behavior: contain;
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		align-items: start;
		gap: 6px 28px;
	}

	/* Colonnes/rayons principaux. */
	.dct-menu > li.dct-menu-shop > .sub-menu > li {
		min-width: 0;
		padding: 0 0 18px;
		margin: 0 0 10px;
		border-bottom: 1px solid rgba(255,255,255,.075);
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > a {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 32px;
		padding: 5px 18px 5px 0;
		font-size: 13px;
		font-weight: 800;
		line-height: 1.25;
		letter-spacing: .045em;
		text-transform: uppercase;
		color: #fff;
		background: transparent;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > a::after {
		content: "";
		width: 6px;
		height: 6px;
		margin-left: auto;
		border-top: 2px solid var(--dct-green);
		border-right: 2px solid var(--dct-green);
		transform: rotate(45deg);
		opacity: .9;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > a:hover,
	.dct-menu > li.dct-menu-shop > .sub-menu > li.current-menu-item > a,
	.dct-menu > li.dct-menu-shop > .sub-menu > li.current-menu-ancestor > a {
		color: var(--dct-green);
		background: transparent;
	}

	/* Les sous-catégories sont visibles directement, comme sur l'ancien menu. */
	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		padding: 4px 0 0;
		margin: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		opacity: 1;
		visibility: inherit; /* v1.12.34 : hérite du méga-menu (sinon liens invisibles cliquables) */
		transform: none;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li > a {
		position: relative;
		display: block;
		padding: 5px 0 5px 14px;
		font-size: 12.5px;
		font-weight: 500;
		line-height: 1.35;
		color: #cbd0c7;
		background: transparent;
		transition: color .18s ease, transform .18s ease;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li > a::before {
		content: "";
		position: absolute;
		left: 0;
		top: 12px;
		width: 5px;
		height: 5px;
		border-radius: 50%;
		background: rgba(122,180,62,.55);
		transition: background .18s ease, transform .18s ease;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li > a:hover,
	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li.current-menu-item > a {
		color: #fff;
		background: transparent;
		transform: translateX(2px);
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li > a:hover::before,
	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li.current-menu-item > a::before {
		background: var(--dct-green);
		transform: scale(1.25);
	}

	/* Scrollbar discrète du grand catalogue. */
	.dct-menu > li.dct-menu-shop > .sub-menu {
		scrollbar-width: thin;
		scrollbar-color: var(--dct-green) #20261f;
	}
	.dct-menu > li.dct-menu-shop > .sub-menu::-webkit-scrollbar { width: 9px; }
	.dct-menu > li.dct-menu-shop > .sub-menu::-webkit-scrollbar-track { background: #20261f; }
	.dct-menu > li.dct-menu-shop > .sub-menu::-webkit-scrollbar-thumb {
		background: var(--dct-green);
		border: 2px solid #20261f;
		border-radius: 10px;
	}

	/* -------- Mon compte : panneau compact -------- */
	.dct-menu > li.dct-menu-account > .sub-menu {
		left: 50%;
		width: 310px;
		min-width: 310px;
		padding: 8px;
		background: #171c16;
		border-top: 3px solid var(--dct-green);
		border-radius: 0 0 8px 8px;
		box-shadow: 0 18px 38px rgba(0,0,0,.32);
		transform: translate(-50%, 8px);
	}

	.dct-menu > li.dct-menu-account:hover > .sub-menu,
	.dct-menu > li.dct-menu-account:focus-within > .sub-menu {
		transform: translate(-50%, 0);
	}

	.dct-menu > li.dct-menu-account > .sub-menu > li + li {
		border-top: 1px solid rgba(255,255,255,.07);
	}

	.dct-menu > li.dct-menu-account > .sub-menu > li > a {
		position: relative;
		display: flex;
		align-items: center;
		min-height: 46px;
		padding: 10px 38px 10px 14px;
		font-size: 13px;
		font-weight: 600;
		line-height: 1.3;
		color: #e1e5dc;
		border-radius: 5px;
		transition: color .18s ease, background .18s ease, padding-left .18s ease;
	}

	.dct-menu > li.dct-menu-account > .sub-menu > li > a::before {
		content: "";
		position: absolute;
		right: 16px;
		top: 50%;
		width: 7px;
		height: 7px;
		border-top: 2px solid var(--dct-green);
		border-right: 2px solid var(--dct-green);
		transform: translateY(-50%) rotate(45deg);
	}

	.dct-menu > li.dct-menu-account > .sub-menu > li > a:hover,
	.dct-menu > li.dct-menu-account > .sub-menu > li.current-menu-item > a {
		padding-left: 18px;
		color: #fff;
		background: rgba(122,180,62,.11);
	}

	/* Parent actif : même code couleur que le site historique. */
	.dct-menu > li.dct-menu-shop.current-menu-ancestor > a,
	.dct-menu > li.dct-menu-account.current-menu-ancestor > a {
		color: var(--dct-green);
		background: rgba(255,255,255,.04);
	}
}


/* Boutique desktop : ouverture volontaire (hover-intent géré en JS).
 * Le hover CSS natif est neutralisé uniquement pour le méga-menu Boutique afin
 * qu'un passage rapide du pointeur dans la barre de navigation ne masque pas la page.
 */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
	.dct-menu > li.dct-menu-shop:hover > .sub-menu {
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		pointer-events: none;
	}

	.dct-menu > li.dct-menu-shop.is-intent-open > .sub-menu,
	.dct-menu > li.dct-menu-shop.is-keyboard-open > .sub-menu {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
		pointer-events: auto;
	}

	/* Le :focus-within générique ne doit pas rouvrir Boutique suite à un clic ailleurs. */
	.dct-menu > li.dct-menu-shop:focus-within:not(.is-keyboard-open):not(.is-intent-open) > .sub-menu {
		opacity: 0;
		visibility: hidden;
		transform: translateY(8px);
		pointer-events: none;
	}
}

/* Mobile/tablette : même hiérarchie mais sous forme d'accordéon lisible. */
@media (max-width: 1024px) {
	.dct-menu > li.dct-menu-shop > .sub-menu,
	.dct-menu > li.dct-menu-account > .sub-menu {
		width: auto;
		min-width: 0;
		max-height: none;
		overflow: visible;
		border-radius: 0;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > a {
		font-weight: 700;
		color: #f0f2ec;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu {
		padding-left: 12px;
	}

	.dct-menu > li.dct-menu-account > .sub-menu > li > a {
		color: #d8dcd2;
	}
}

/* -------------------------------------------------------------------------
 * 10. Mon compte — panneau premium e-commerce (v1.9.7)
 * ---------------------------------------------------------------------- */
@media (min-width: 1025px) {
	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready {
		width: 380px;
		min-width: 380px;
		padding: 0;
		overflow: hidden;
		background:
			radial-gradient(circle at 100% 0, rgba(122,180,62,.13), transparent 42%),
			#151a14;
		border: 1px solid rgba(255,255,255,.075);
		border-top: 3px solid var(--dct-green);
		border-radius: 0 0 12px 12px;
		box-shadow: 0 22px 48px rgba(0,0,0,.38);
	}

	.dct-account-panel__intro {
		display: flex;
		align-items: center;
		gap: 13px;
		padding: 18px 18px 16px;
		background: rgba(255,255,255,.025);
		border-bottom: 1px solid rgba(255,255,255,.075);
	}

	.dct-account-panel__avatar {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 48px;
		height: 48px;
		flex: 0 0 48px;
		border-radius: 50%;
		background: rgba(122,180,62,.13);
		border: 1px solid rgba(122,180,62,.4);
		color: var(--dct-green);
		box-shadow: inset 0 0 0 4px rgba(122,180,62,.035);
	}

	.dct-account-panel__avatar svg,
	.dct-account-panel__icon svg {
		width: 22px;
		height: 22px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.dct-account-panel__introtext {
		display: flex;
		flex-direction: column;
		min-width: 0;
		line-height: 1.25;
	}

	.dct-account-panel__introtext small {
		margin-bottom: 4px;
		font-size: 10px;
		font-weight: 800;
		letter-spacing: .14em;
		color: var(--dct-green);
	}

	.dct-account-panel__introtext strong {
		font-size: 14px;
		font-weight: 750;
		color: #fff;
	}

	.dct-account-panel__introtext em {
		margin-top: 3px;
		font-size: 11.5px;
		font-style: normal;
		color: #9fa69b;
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item {
		border: 0;
		margin: 0;
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item + li.menu-item {
		border-top: 1px solid rgba(255,255,255,.055);
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link {
		display: grid;
		grid-template-columns: 38px minmax(0,1fr) 18px;
		align-items: center;
		gap: 10px;
		min-height: 58px;
		padding: 10px 16px;
		color: #e4e8df;
		border-radius: 0;
		background: transparent;
		transition: background .18s ease, color .18s ease, padding-left .18s ease;
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link::before {
		display: none;
		content: none;
	}

	.dct-account-panel__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 36px;
		height: 36px;
		border-radius: 9px;
		background: rgba(122,180,62,.09);
		border: 1px solid rgba(122,180,62,.18);
		color: var(--dct-green);
		transition: background .18s ease, border-color .18s ease, transform .18s ease;
	}

	.dct-account-panel__icon svg {
		width: 18px;
		height: 18px;
	}

	.dct-account-panel__label {
		display: block;
		font-size: 13px;
		font-weight: 650;
		line-height: 1.3;
		color: inherit;
	}

	.dct-account-panel__chevron {
		width: 7px;
		height: 7px;
		justify-self: end;
		border-top: 2px solid var(--dct-green);
		border-right: 2px solid var(--dct-green);
		transform: rotate(45deg);
		opacity: .8;
		transition: transform .18s ease, opacity .18s ease;
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link:hover,
	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.current-menu-item > a.dct-account-panel__link {
		padding-left: 19px;
		color: #fff;
		background: linear-gradient(90deg, rgba(122,180,62,.14), rgba(122,180,62,.035));
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link:hover .dct-account-panel__icon,
	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.current-menu-item > a.dct-account-panel__link .dct-account-panel__icon {
		background: var(--dct-green);
		border-color: var(--dct-green);
		color: #11160f;
		transform: translateY(-1px);
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link:hover .dct-account-panel__chevron {
		transform: translateX(2px) rotate(45deg);
		opacity: 1;
	}

	.dct-account-panel__cta {
		padding: 14px 16px 16px;
		background: rgba(255,255,255,.02);
		border-top: 1px solid rgba(255,255,255,.075);
	}

	.dct-menu .dct-account-panel__cta > a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 12px 14px;
		font-size: 12px;
		font-weight: 800;
		letter-spacing: .045em;
		text-transform: uppercase;
		color: #10150e;
		background: var(--dct-green);
		border-radius: 7px;
		box-shadow: 0 8px 18px rgba(0,0,0,.18);
		transition: filter .18s ease, transform .18s ease, box-shadow .18s ease;
	}

	.dct-menu .dct-account-panel__cta > a:hover {
		color: #10150e;
		background: var(--dct-green);
		filter: brightness(1.08);
		transform: translateY(-1px);
		box-shadow: 0 11px 22px rgba(0,0,0,.24);
	}

	.dct-account-panel__cta-arrow {
		font-size: 18px;
		line-height: 1;
		transition: transform .18s ease;
	}

	.dct-account-panel__cta > a:hover .dct-account-panel__cta-arrow {
		transform: translateX(3px);
	}
}

/* Mobile/tablette : même contenu, compact et tactile dans l'accordéon. */
@media (max-width: 1024px) {
	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready {
		padding: 0 0 12px 14px;
	}

	.dct-account-panel__intro {
		display: flex;
		align-items: center;
		gap: 11px;
		padding: 13px 12px;
		background: rgba(122,180,62,.055);
		border-bottom: 1px solid rgba(255,255,255,.06);
	}

	.dct-account-panel__avatar {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 38px;
		height: 38px;
		flex: 0 0 38px;
		border-radius: 50%;
		background: rgba(122,180,62,.12);
		color: var(--dct-green);
	}

	.dct-account-panel__avatar svg,
	.dct-account-panel__icon svg {
		width: 18px;
		height: 18px;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.8;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.dct-account-panel__introtext { display: flex; flex-direction: column; }
	.dct-account-panel__introtext small { font-size: 9px; font-weight: 800; letter-spacing: .12em; color: var(--dct-green); }
	.dct-account-panel__introtext strong { font-size: 12.5px; color: #fff; }
	.dct-account-panel__introtext em { display: none; }

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link {
		display: grid;
		grid-template-columns: 30px minmax(0,1fr) 14px;
		align-items: center;
		gap: 9px;
		padding: 10px 12px;
		color: #dfe4da;
	}

	.dct-menu > li.dct-menu-account > .sub-menu.dct-account-panel-ready > li.menu-item > a.dct-account-panel__link::before {
		display: none;
		content: none;
	}

	.dct-account-panel__icon {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 30px;
		height: 30px;
		border-radius: 7px;
		background: rgba(122,180,62,.09);
		color: var(--dct-green);
	}

	.dct-account-panel__label { font-size: 12.5px; font-weight: 650; }
	.dct-account-panel__chevron {
		width: 6px;
		height: 6px;
		border-top: 2px solid var(--dct-green);
		border-right: 2px solid var(--dct-green);
		transform: rotate(45deg);
	}

	.dct-account-panel__cta { padding: 10px 12px 0; }
	.dct-menu .dct-account-panel__cta > a {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 10px 12px;
		font-size: 11px;
		font-weight: 800;
		text-transform: uppercase;
		letter-spacing: .04em;
		color: #11160f;
		background: var(--dct-green);
		border-radius: 6px;
	}
}

/* -------------------------------------------------------------------------
 * Home v1.11.1 — rotation douce et aléatoire des marques
 * ---------------------------------------------------------------------- */
.dct-brand-rotator .dct-brand-slot {
	transition: opacity .28s ease, transform .28s ease;
	will-change: opacity, transform;
}
.dct-brand-rotator .dct-brand-slot.is-changing {
	opacity: 0;
	transform: translateY(7px) scale(.985);
}
.dct-brand-rotator .dct-brand {
	position: relative;
	overflow: hidden;
}
.dct-brand-rotator .dct-brand img {
	display: block;
	max-width: 88%;
	max-height: 54px;
	width: auto;
	height: auto;
	object-fit: contain;
	filter: none;
	opacity: 1;
}
.dct-brand-rotator .dct-brand:hover img {
	filter: none;
	opacity: 1;
}
.dct-brand-rotator .dct-brand::after {
	content: "";
	position: absolute;
	left: 18%;
	right: 18%;
	bottom: 0;
	height: 2px;
	background: var(--dct-green);
	transform: scaleX(0);
	transform-origin: center;
	transition: transform .22s ease;
}
.dct-brand-rotator .dct-brand:hover::after,
.dct-brand-rotator .dct-brand:focus-visible::after {
	transform: scaleX(1);
}
@media (prefers-reduced-motion: reduce) {
	.dct-brand-rotator .dct-brand-slot,
	.dct-brand-rotator .dct-brand::after {
		transition: none !important;
	}
}

/* -------------------------------------------------------------------------
 * v1.12.10 — Pages WordPress sans sidebar Divi
 * ---------------------------------------------------------------------- */
/*
 * Divi réserve par défaut une colonne droite aux pages utilisant le layout
 * standard, même lorsque cette sidebar est vide. Sur DCT, les pages de contenu
 * (CGV, mentions, confidentialité, bourses, contact, compte, etc.) sont plus
 * lisibles sans cette colonne fantôme.
 *
 * On cible uniquement les vraies pages WordPress. Les archives WooCommerce
 * conservent leur mise en page dédiée et leurs filtres à gauche.
 */
body.dct.page #main-content .container::before {
	display: none !important;
	content: none !important;
}

body.dct.page #left-area {
	float: none !important;
	width: 100% !important;
	padding-right: 0 !important;
	margin-right: 0 !important;
}

body.dct.page #sidebar {
	display: none !important;
	width: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}

/* Sécurité pour les variantes de layout Divi droite/gauche. */
body.dct.page.et_right_sidebar #left-area,
body.dct.page.et_left_sidebar #left-area {
	float: none !important;
	width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* v1.12.14 — Crédit réalisation footer */
.dct-footer .dct-realisation a {
    color: inherit;
    text-decoration: none;
    font-weight: 700;
    transition: color .2s ease;
}
.dct-footer .dct-realisation a:hover,
.dct-footer .dct-realisation a:focus-visible {
    color: #7ab43e;
}


/* ------------------------------------------------------------------------
 * v1.12.34 — Méga-menu Boutique fermé : aucune zone cliquable fantôme.
 * Le 3e niveau était en visibility:visible dans un parent hidden/opacity:0 :
 * ses liens invisibles recouvraient le haut des pages (code promo, connexion,
 * fil d'Ariane…) et leur survol déclenchait l'ouverture de Boutique.
 * ---------------------------------------------------------------------- */
@media (min-width: 1025px) {
	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu {
		visibility: inherit;
	}
}

@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
	.dct-menu > li.dct-menu-shop:not(.is-intent-open):not(.is-keyboard-open) > .sub-menu,
	.dct-menu > li.dct-menu-shop:not(.is-intent-open):not(.is-keyboard-open) > .sub-menu * {
		pointer-events: none;
	}
}

/* ------------------------------------------------------------------------
 * v1.12.35 — Newsletter : consentement RGPD + antispam compatible cache.
 * ---------------------------------------------------------------------- */
.dct-news { flex-wrap: wrap; }
.dct-news input[type="email"] { width: auto; min-width: 0; flex: 1 1 0; }
.dct-news button { height: 40px; flex: 0 0 46px; }
.dct-news__hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px; height: 1px;
	overflow: hidden;
}
.dct-news__consent {
	flex: 1 0 100%;
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 10px 0 0;
	font-size: 11.5px;
	line-height: 1.45;
	color: #9AA192;
	cursor: pointer;
}
.dct-news__consent input {
	flex: 0 0 auto;
	width: 14px; height: 14px;
	margin: 1px 0 0;
	accent-color: var(--dct-green);
}
.dct-news .screen-reader-text,
.dct-footer .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ------------------------------------------------------------------------
 * v1.12.47 — Méga-menu Boutique replié + accordéon mobile.
 * Desktop : 5 sous-catégories par famille puis « + N autres » (JS), familles
 * empilées en colonnes équilibrées (.is-masonry : lignes de 2px, hauteur
 * de chaque famille calculée en JS). Mobile : chevron par rubrique, une seule
 * rubrique ouverte à la fois, lien « Tout voir » en tête de liste.
 * ---------------------------------------------------------------------- */
.dct-mega-more,
.dct-sub-all,
.dct-subtoggle { display: none; }

@media (min-width: 1025px) {
	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry {
		grid-auto-rows: 2px;
		grid-auto-flow: row dense;
		row-gap: 0;
		column-gap: 22px;
		padding: 18px 24px 10px;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry > li {
		margin: 0;
		padding-bottom: 10px;
	}

	/* Rythme un peu plus serré : le catalogue tient sur un écran courant. */
	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry > li > a {
		min-height: 30px;
		padding-top: 4px;
		padding-bottom: 4px;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry > li > .sub-menu { padding-top: 2px; }

	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry > li > .sub-menu > li > a {
		padding-top: 4px;
		padding-bottom: 4px;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu.is-masonry > li > .sub-menu > li > a::before { top: 11px; }

	.dct-menu > li.dct-menu-shop > .sub-menu > li.is-collapsed > .sub-menu > li.dct-mega-extra {
		display: none;
	}

	.dct-menu > li.dct-menu-shop > .sub-menu > li > .sub-menu > li.dct-mega-more {
		display: block;
	}

	.dct-menu .dct-mega-more__btn {
		display: inline-block;
		margin: 2px 0 0;
		padding: 4px 6px 4px 14px;
		font-family: inherit;
		font-size: 12px;
		font-weight: 700;
		line-height: 1.35;
		letter-spacing: .02em;
		text-transform: none;
		color: var(--dct-green);
		background: transparent;
		border: 0;
		border-radius: 3px;
		box-shadow: none;
		cursor: pointer;
		transition: color .18s ease;
	}

	.dct-menu .dct-mega-more__btn:hover { color: #fff; }

	.dct-menu .dct-mega-more__btn:focus-visible {
		outline: 2px solid var(--dct-green);
		outline-offset: 1px;
	}
}

/* Écrans larges : le panneau déborde de la grille de 1 280 px (jusqu'à 1 440 px)
 * pour loger 5 à 6 colonnes ; le nombre exact est choisi en JS selon la largeur. */
@media (min-width: 1280px) {
	.dct-menu > li.dct-menu-shop > .sub-menu {
		--dct-mega-w: min(calc(100vw - 40px), 1440px);
		box-sizing: border-box;
		left: 50%;
		right: auto;
		width: var(--dct-mega-w);
		margin-left: calc(var(--dct-mega-w) / -2);
		grid-template-columns: repeat(5, minmax(0, 1fr));
		column-gap: 24px;
	}
}

@media (max-width: 1024px) {
	.dct-menu li.has-subtoggle {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 48px;
		align-items: stretch;
	}

	.dct-menu li.has-subtoggle > a {
		grid-column: 1;
		grid-row: 1;
		min-width: 0;
	}

	.dct-menu li.has-subtoggle > .sub-menu { grid-column: 1 / -1; }

	.dct-menu .dct-subtoggle {
		display: flex;
		align-items: center;
		justify-content: center;
		grid-column: 2;
		grid-row: 1;
		width: 48px;
		min-height: 40px;
		margin: 0;
		padding: 0;
		color: #AEB5A6;
		background: transparent;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.dct-menu > li > .dct-subtoggle { border-bottom: 1px solid rgba(255,255,255,.07); }

	.dct-menu .dct-subtoggle::before {
		content: "";
		width: 8px;
		height: 8px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: translateY(-2px) rotate(45deg);
		transition: transform .2s ease;
	}

	.dct-menu li.is-open > .dct-subtoggle { color: var(--dct-green); }
	.dct-menu li.is-open > .dct-subtoggle::before { transform: translateY(2px) rotate(-135deg); }

	.dct-menu .dct-subtoggle:focus-visible {
		outline: 2px solid var(--dct-green);
		outline-offset: -6px;
	}

	/* La flèche du lien parent ferait doublon avec le chevron. */
	.dct-menu > li.menu-item-has-children > a::after { display: none; }

	.dct-menu li.has-subtoggle.is-open > a,
	.dct-menu > li.dct-menu-shop > .sub-menu > li.has-subtoggle.is-open > a { color: var(--dct-green); }

	/* Familles de la boutique séparées d'un filet. */
	.dct-menu > li.dct-menu-shop > .sub-menu > li + li { border-top: 1px solid rgba(255,255,255,.05); }

	.dct-menu .sub-menu > li.dct-sub-all { display: block; }

	.dct-menu .sub-menu > li.dct-sub-all > a {
		font-size: 12.5px;
		font-weight: 700;
		color: var(--dct-green);
	}

	.dct-menu .sub-menu > li.dct-sub-all > a::after { content: " →"; }
}

/* v1.12.58 : icône de réseau téléversée (Personnaliser → Pied de page → Autre réseau),
   teintée avec la couleur du texte comme les icônes SVG du thème. */
.dct-ico--img {
	display: inline-block;
	background-color: currentColor;
	-webkit-mask: var(--dct-ico-img) center / contain no-repeat;
	mask: var(--dct-ico-img) center / contain no-repeat;
}
