/* =========================================================================
   DISTRI — feuille de style globale
   Chargée par mu-plugins/distri-core.php sur tout le site.
   Pour changer la couleur d'accent : modifier --dx-accent (et --dx-accent-hover).
   ========================================================================= */

:root {
	--dx-bg: #05070A;
	--dx-bg-2: #080B10;
	--dx-panel: #0A0E14;
	--dx-line: #1A212C;
	--dx-line-2: #263040;
	--dx-line-3: #3A4658;
	--dx-text: #E9EEF5;
	--dx-text-2: #C5CCD8;
	--dx-muted: #A9B2C1;
	--dx-faint: #8A93A3;
	--dx-ghost: #6E7889;
	--dx-accent: #D4FF3A;
	--dx-accent-hover: #E4FF7A;
	--dx-on-accent: #05070A;
	--dx-danger: #FF8A7A;
	--dx-display: 'Unbounded', system-ui, sans-serif;
	--dx-body: 'Geist', system-ui, sans-serif;
	--dx-mono: 'Geist Mono', ui-monospace, monospace;
	--dx-max: 1280px;
	--dx-grid: linear-gradient(rgba(140,160,190,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(140,160,190,.06) 1px, transparent 1px);
}

/* ---------- Base ---------- */

body.dx-site {
	background: var(--dx-bg);
	color: var(--dx-text);
	font-family: var(--dx-body);
	font-size: 16px;
	line-height: 1.55;
	-webkit-font-smoothing: antialiased;
}
body.dx-site h1, body.dx-site h2, body.dx-site h3, body.dx-site h4 { color: var(--dx-text); }
body.dx-site a { color: var(--dx-accent); }
body.dx-site a:hover { color: var(--dx-accent-hover); }
body.dx-site ::selection { background: var(--dx-accent); color: var(--dx-on-accent); }
body.dx-site :focus-visible { outline: 2px solid var(--dx-accent); outline-offset: 2px; }

.dx, .dx * { box-sizing: border-box; }
.dx { font-family: var(--dx-body); color: var(--dx-text); line-height: 1.55; }
.dx img { max-width: 100%; display: block; }
.dx svg { flex: none; }
.dx a { text-decoration: none; }
.dx h1, .dx h2, .dx h3, .dx p, .dx ul, .dx ol { margin: 0; padding: 0; }
.dx ul, .dx ol { list-style: none; }
.dx button { font: inherit; }

.dx-wrap { max-width: var(--dx-max); margin: 0 auto; padding-left: 24px; padding-right: 24px; }
.dx-section { border-top: 1px solid var(--dx-line); padding: 96px 0; }
.dx-section--alt { background: rgba(5,7,10,.85); }
.dx-gridbg { background-image: var(--dx-grid); background-size: 64px 64px; }

.dx-eyebrow { font-family: var(--dx-mono); font-size: 13px; letter-spacing: .12em; color: var(--dx-accent); text-transform: uppercase; }
.dx-mono { font-family: var(--dx-mono); }
.dx-h1 { font-family: var(--dx-display); font-weight: 800; font-size: clamp(32px, 4.4vw, 60px); line-height: 1.05; letter-spacing: -.01em; }
.dx-h2 { font-family: var(--dx-display); font-weight: 600; font-size: clamp(26px, 3.2vw, 44px); line-height: 1.1; }
.dx-h3 { font-family: var(--dx-display); font-weight: 600; font-size: 20px; line-height: 1.25; }
.dx-lead { font-size: 17px; color: var(--dx-muted); max-width: 640px; }
.dx-muted { color: var(--dx-muted); }
.dx-accent { color: var(--dx-accent); }
.dx-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 44px; }
.dx-head > div { display: flex; flex-direction: column; gap: 14px; }
.dx-link { font-weight: 500; }

/* ---------- Boutons ---------- */

.dx-btn, body.dx-site .dx-devis-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 48px; padding: 0 24px;
	font-family: var(--dx-body); font-weight: 600; font-size: 15px; line-height: 1;
	border: 1px solid transparent; border-radius: 0; cursor: pointer;
	transition: background-color .15s, border-color .15s, color .15s;
	text-decoration: none;
}
.dx-btn--primary, body.dx-site .dx-devis-btn { background: var(--dx-accent); color: var(--dx-on-accent) !important; }
.dx-btn--primary:hover, body.dx-site .dx-devis-btn:hover { background: var(--dx-accent-hover); color: var(--dx-on-accent) !important; }
.dx-btn--ghost { background: transparent; color: var(--dx-text) !important; border-color: var(--dx-line-3); }
.dx-btn--ghost:hover { border-color: var(--dx-text); color: var(--dx-text) !important; }
.dx-btn--lg { min-height: 54px; padding: 0 28px; font-size: 16px; }
.dx-btn--block { width: 100%; }
.dx-btn[disabled] { opacity: .55; cursor: wait; }
.dx-icon-btn {
	width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center;
	background: transparent; border: 1px solid var(--dx-line-2); color: var(--dx-text); cursor: pointer; position: relative;
}
.dx-icon-btn:hover { border-color: var(--dx-text-2); color: var(--dx-text); }

/* ---------- Bandeau + header ---------- */

.dx-topbar { border-bottom: 1px solid var(--dx-line); background: var(--dx-bg); }
.dx-topbar .dx-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 24px; padding-top: 8px; padding-bottom: 8px; font-family: var(--dx-mono); font-size: 12px; letter-spacing: .06em; color: var(--dx-faint); }
.dx-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--dx-accent); margin-right: 8px; vertical-align: 1px; }

.dx-header { background: rgba(5,7,10,.94); border-bottom: 1px solid var(--dx-line); position: relative; z-index: 50; }
.dx-header__row { display: flex; align-items: center; gap: 32px; padding-top: 16px; padding-bottom: 16px; }
.dx-logo { display: flex; align-items: center; gap: 10px; color: var(--dx-text) !important; }
.dx-logo span { font-family: var(--dx-display); font-weight: 800; font-size: 22px; letter-spacing: .08em; }
.dx-nav { display: flex; gap: 4px; flex-grow: 1; }
.dx-nav a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; color: var(--dx-text-2) !important; font-size: 15px; white-space: nowrap; }
.dx-nav a:hover { color: var(--dx-text) !important; }
.dx-nav a[aria-current="page"] { color: var(--dx-on-accent) !important; background: var(--dx-accent); font-weight: 600; }
.dx-actions { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.dx-cart-count {
	position: absolute; top: -7px; right: -7px; min-width: 18px; height: 18px; padding: 0 4px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--dx-accent); color: var(--dx-on-accent); font-family: var(--dx-mono); font-size: 11px; font-weight: 500;
}
.dx-cart-count[hidden] { display: none; }
.dx-burger { display: none; }

.dx-search { border-top: 1px solid var(--dx-line); background: var(--dx-bg); }
.dx-search[hidden] { display: none; }
.dx-search form { display: flex; gap: 10px; padding-top: 16px; padding-bottom: 16px; }
.dx-search input[type="search"] { flex-grow: 1; }
.dx-search__results { padding-bottom: 16px; display: flex; flex-direction: column; }
.dx-search__item { display: flex; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid var(--dx-line); color: var(--dx-text) !important; }
.dx-search__item img, .dx-search__ph { width: 56px; height: 42px; object-fit: cover; background: var(--dx-panel); border: 1px solid var(--dx-line-2); flex: none; }
.dx-search__item span { flex-grow: 1; }
.dx-search__item b { font-family: var(--dx-mono); font-weight: 500; font-size: 13px; color: var(--dx-text-2); }
.dx-search__all { padding-top: 12px; font-size: 14px; }
.dx-search__empty { padding: 10px 0; font-size: 14px; color: var(--dx-muted); }

.dx-mobile { display: none; border-top: 1px solid var(--dx-line); }
.dx-mobile.is-open { display: block; }
.dx-mobile a { display: flex; align-items: center; min-height: 52px; padding: 0 24px; border-bottom: 1px solid var(--dx-line); color: var(--dx-text-2) !important; font-size: 16px; }
.dx-mobile a[aria-current="page"] { color: var(--dx-accent) !important; }

@media (max-width: 1024px) {
	.dx-nav, .dx-header .dx-btn--primary { display: none; }
	.dx-burger { display: inline-flex; }
}
@media (max-width: 600px) {
	.dx-topbar .dx-hide-sm { display: none; }
}

/* ---------- Footer ---------- */

.dx-footer { border-top: 1px solid var(--dx-line); background: var(--dx-bg); }
.dx-footer .dx-wrap { padding-top: 56px; padding-bottom: 32px; display: flex; flex-direction: column; gap: 40px; }
.dx-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; }
.dx-footer__col { display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--dx-text-2); }
.dx-footer__col a { color: var(--dx-text-2) !important; }
.dx-footer__col a:hover { color: var(--dx-text) !important; }
.dx-footer__label { font-family: var(--dx-mono); font-size: 12px; letter-spacing: .08em; color: var(--dx-faint); }
.dx-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding-top: 24px; border-top: 1px solid var(--dx-line); font-family: var(--dx-mono); font-size: 12px; color: var(--dx-faint); }

/* ---------- Hero accueil ---------- */

.dx-hero { padding: 88px 0 96px; }
.dx-hero__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.dx-hero__copy { display: flex; flex-direction: column; gap: 28px; }
.dx-hero__title { font-family: var(--dx-display); font-weight: 800; font-size: clamp(38px, 5.4vw, 76px); line-height: 1.04; letter-spacing: -.01em; }
.dx-hero__title em { font-style: normal; color: var(--dx-accent); }
.dx-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.dx-hero__stats { display: flex; flex-wrap: wrap; gap: 28px; padding-top: 14px; border-top: 1px solid var(--dx-line); font-family: var(--dx-mono); font-size: 13px; color: var(--dx-faint); }
.dx-hero__stats b { color: var(--dx-text); font-weight: 500; }
@media (max-width: 900px) { .dx-hero__grid { grid-template-columns: minmax(0, 1fr); } .dx-hero { padding: 56px 0 72px; } }

.dx-hud { position: relative; border: 1px solid var(--dx-line-2); background: var(--dx-panel); padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.dx-hud::before, .dx-hud::after { content: ""; position: absolute; width: 22px; height: 22px; }
.dx-hud::before { top: -1px; left: -1px; border-top: 2px solid var(--dx-accent); border-left: 2px solid var(--dx-accent); }
.dx-hud::after { bottom: -1px; right: -1px; border-bottom: 2px solid var(--dx-accent); border-right: 2px solid var(--dx-accent); }
.dx-hud__bar { display: flex; justify-content: space-between; font-family: var(--dx-mono); font-size: 12px; letter-spacing: .08em; color: var(--dx-faint); }
.dx-hud svg { width: 100%; height: auto; }
.dx-readouts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--dx-line); border: 1px solid var(--dx-line); font-family: var(--dx-mono); }
.dx-readouts > div { background: var(--dx-panel); padding: 12px; }
.dx-readouts small { display: block; font-size: 11px; color: var(--dx-faint); }
.dx-readouts strong { font-weight: 400; font-size: 16px; }

/* ---------- Grilles à cellules ---------- */

.dx-cells { display: grid; gap: 1px; background: var(--dx-line); border: 1px solid var(--dx-line); }
.dx-cells--cats { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.dx-cells--steps { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.dx-cells--zones { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.dx-cell { background: var(--dx-bg-2); padding: 28px; display: flex; flex-direction: column; gap: 14px; }

.dx-cat { min-height: 260px; color: var(--dx-text) !important; transition: background-color .15s; }
.dx-cat:hover { background: var(--dx-panel); }
.dx-cat__meta { display: flex; justify-content: space-between; font-family: var(--dx-mono); font-size: 12px; color: var(--dx-faint); }
.dx-cat__img { height: 110px; border: 1px dashed #2C3646; display: flex; align-items: center; justify-content: center; overflow: hidden; font-family: var(--dx-mono); font-size: 11px; color: var(--dx-ghost); }
.dx-cat__img img { width: 100%; height: 100%; object-fit: cover; }
.dx-cat__go { margin-top: auto; font-size: 14px; color: var(--dx-accent); }

.dx-step__num { font-family: var(--dx-display); font-weight: 800; font-size: 40px; color: var(--dx-line-2); line-height: 1; }

/* ---------- Cartes produit (accueil) ---------- */

.dx-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.dx-card { display: flex; flex-direction: column; border: 1px solid #1F2733; background: var(--dx-panel); }
.dx-card__img { position: relative; aspect-ratio: 4 / 3; border-bottom: 1px solid #1F2733; display: flex; align-items: center; justify-content: center; overflow: hidden; background-image: repeating-linear-gradient(135deg, rgba(140,160,190,.05) 0 10px, transparent 10px 20px); font-family: var(--dx-mono); font-size: 11px; color: var(--dx-ghost); }
.dx-card__img img { width: 100%; height: 100%; object-fit: cover; }
.dx-tag { position: absolute; top: 12px; left: 12px; padding: 4px 8px; font-family: var(--dx-mono); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; background: var(--dx-bg); border: 1px solid var(--dx-line-2); color: var(--dx-text-2); }
.dx-card__body { display: flex; flex-direction: column; gap: 12px; padding: 20px; flex-grow: 1; }
.dx-card__name { font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--dx-text) !important; }
.dx-price { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--dx-line); display: flex; align-items: baseline; gap: 8px; }
.dx-price strong { font-family: var(--dx-display); font-weight: 600; font-size: 20px; }
.dx-price small { font-size: 13px; color: var(--dx-faint); }
.dx-card__ctas { display: flex; gap: 8px; }
.dx-card__ctas .dx-btn { flex: 1 1 0; min-height: 44px; padding: 0 12px; font-size: 14px; }
.dx-skeleton { min-height: 380px; background: var(--dx-panel); border: 1px solid #1F2733; animation: dx-pulse 1.4s ease-in-out infinite; }
@keyframes dx-pulse { 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .dx-skeleton { animation: none; } }
.dx-empty { padding: 32px; border: 1px dashed #2C3646; color: var(--dx-muted); }

/* ---------- Bandeau de titre (pages internes) ---------- */

.dx-pagehead { border-bottom: 1px solid var(--dx-line); background-image: var(--dx-grid); background-size: 64px 64px; }
.dx-pagehead .dx-wrap { padding-top: 56px; padding-bottom: 52px; display: flex; flex-direction: column; gap: 16px; }
.dx-crumbs { font-family: var(--dx-mono); font-size: 12px; letter-spacing: .06em; color: var(--dx-faint); text-transform: uppercase; }
.dx-crumbs a { color: var(--dx-faint) !important; }

/* ---------- Mise en page à deux colonnes ---------- */

.dx-split { display: flex; flex-wrap: wrap; gap: 40px; align-items: flex-start; padding-top: 48px; padding-bottom: 96px; }
.dx-split__main { flex: 999 1 560px; min-width: 0; }
.dx-split__side { flex: 1 1 300px; max-width: 100%; }
.dx-panel { border: 1px solid #1F2733; background: var(--dx-panel); padding: 28px; display: flex; flex-direction: column; gap: 22px; }

/* ---------- Formulaires ---------- */

.dx-form { display: flex; flex-direction: column; gap: 36px; }
.dx-fieldset { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.dx-fieldset legend { padding: 0; margin-bottom: 18px; font-family: var(--dx-display); font-weight: 600; font-size: 18px; color: var(--dx-text); }
.dx-fieldset legend span { font-family: var(--dx-mono); font-size: 13px; color: var(--dx-accent); margin-right: 10px; }
.dx-full { grid-column: 1 / -1; }
.dx-field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: var(--dx-muted); }
.dx input[type="text"], .dx input[type="email"], .dx input[type="tel"], .dx input[type="number"], .dx input[type="search"], .dx select, .dx textarea {
	width: 100%; min-height: 46px; padding: 0 12px; background: var(--dx-panel); border: 1px solid #2C3646; border-radius: 0;
	color: var(--dx-text); font-family: var(--dx-body); font-size: 15px; box-shadow: none;
}
.dx textarea { padding: 12px; min-height: 120px; resize: vertical; }
.dx select { appearance: auto; }
.dx input::placeholder, .dx textarea::placeholder { color: var(--dx-ghost); }
.dx input:focus, .dx select:focus, .dx textarea:focus { border-color: var(--dx-accent); outline: none; }
.dx-field.is-invalid input, .dx-field.is-invalid select, .dx-field.is-invalid textarea { border-color: var(--dx-danger); }
.dx-field__err { display: none; font-size: 12px; color: var(--dx-danger); }
.dx-field.is-invalid .dx-field__err { display: block; }
.dx-check { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; color: var(--dx-muted); }
.dx-check input { width: 18px; height: 18px; margin-top: 2px; flex: none; accent-color: var(--dx-accent); }
.dx-check.is-invalid { color: var(--dx-danger); }
.dx-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dx-alert { padding: 14px 16px; border: 1px solid var(--dx-danger); color: var(--dx-danger); font-size: 14px; }
.dx-alert[hidden] { display: none; }
.dx-success { padding: 40px; border: 1px solid var(--dx-accent); background: var(--dx-panel); display: flex; flex-direction: column; gap: 16px; }
.dx-success[hidden] { display: none; }

/* ---------- Tableaux, listes, FAQ ---------- */

.dx-table-wrap { overflow-x: auto; border: 1px solid #1F2733; }
.dx-table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: 15px; margin: 0; }
.dx-table th, .dx-table td { padding: 15px 18px; text-align: left; border: 0; border-top: 1px solid var(--dx-line); background: transparent; color: var(--dx-text-2); }
.dx-table thead th { border-top: 0; background: var(--dx-panel); font-family: var(--dx-mono); font-size: 12px; letter-spacing: .08em; font-weight: 400; color: var(--dx-faint); }
.dx-table tbody th { width: 38%; background: var(--dx-panel); font-family: var(--dx-mono); font-size: 13px; font-weight: 400; color: var(--dx-faint); }
.dx-table td strong { color: var(--dx-text); font-weight: 600; }

.dx-timeline { border-top: 1px solid var(--dx-line); }
.dx-timeline li { display: flex; gap: 24px; padding: 20px 0; border-bottom: 1px solid var(--dx-line); }
.dx-timeline__num { width: 48px; flex: none; font-family: var(--dx-display); font-weight: 800; font-size: 26px; color: var(--dx-line-3); }
.dx-timeline li div { display: flex; flex-direction: column; gap: 4px; }
.dx-timeline strong { font-size: 17px; font-weight: 600; }
.dx-timeline span { font-size: 15px; color: var(--dx-muted); }

.dx-faq { border-top: 1px solid var(--dx-line); }
.dx-faq details { border-bottom: 1px solid var(--dx-line); }
.dx-faq summary { min-height: 64px; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 0; font-size: 17px; font-weight: 500; cursor: pointer; list-style: none; }
.dx-faq summary::-webkit-details-marker { display: none; }
.dx-faq summary::after { content: "+"; font-family: var(--dx-mono); color: var(--dx-accent); }
.dx-faq details[open] summary::after { content: "−"; }
.dx-faq p { padding: 0 0 20px; max-width: 760px; font-size: 15px; color: var(--dx-muted); }

.dx-cards-info { display: flex; flex-direction: column; gap: 1px; background: var(--dx-line); border: 1px solid var(--dx-line); }
.dx-cards-info > div { background: var(--dx-panel); padding: 24px; display: flex; flex-direction: column; gap: 8px; }
.dx-cards-info address { font-style: normal; }
.dx-map { height: 240px; background: var(--dx-bg-2); background-image: linear-gradient(rgba(140,160,190,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(140,160,190,.08) 1px, transparent 1px); background-size: 24px 24px; display: flex; align-items: center; justify-content: center; }
.dx-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) invert(.92) contrast(.9); }

.dx-legal { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-top: 48px; padding-bottom: 96px; }
.dx-legal__toc { flex: 1 1 220px; display: flex; flex-direction: column; gap: 4px; font-size: 15px; }
.dx-legal__toc a { min-height: 36px; display: flex; align-items: center; color: var(--dx-text-2) !important; }
.dx-legal__body { flex: 999 1 560px; min-width: 0; max-width: 820px; display: flex; flex-direction: column; gap: 48px; color: var(--dx-text-2); }
.dx-legal__body section { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 120px; }
.dx-legal__body td { color: var(--dx-text); }

/* =========================================================================
   WOOCOMMERCE — habillage des pages natives
   (boutique, catégories, fiche produit, panier, commande, compte)
   ========================================================================= */

body.dx-site.woocommerce-page .site-main,
body.dx-site.woocommerce .site-main { max-width: var(--dx-max); margin: 0 auto; padding: 48px 24px 96px; }

body.dx-site .woocommerce-breadcrumb { font-family: var(--dx-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--dx-faint) !important; margin-bottom: 20px !important; }
body.dx-site .woocommerce-breadcrumb a { color: var(--dx-faint) !important; }
body.dx-site .woocommerce-products-header__title,
body.dx-site.woocommerce-page h1.page-title,
body.dx-site .product_title { font-family: var(--dx-display) !important; font-weight: 800 !important; font-size: clamp(28px, 3.6vw, 48px) !important; line-height: 1.08 !important; color: var(--dx-text) !important; }
body.dx-site .term-description, body.dx-site .woocommerce-products-header p { color: var(--dx-muted); max-width: 680px; }

/* Barre résultat / tri */
body.dx-site .woocommerce-result-count { font-family: var(--dx-mono); font-size: 13px; color: var(--dx-faint); }
body.dx-site .woocommerce-ordering select,
body.dx-site.woocommerce-page select,
body.dx-site.woocommerce-page input.input-text,
body.dx-site.woocommerce-page textarea,
body.dx-site .woocommerce form .form-row input.input-text,
body.dx-site .woocommerce form .form-row textarea,
body.dx-site .select2-container--default .select2-selection--single {
	background: var(--dx-panel) !important; color: var(--dx-text) !important; border: 1px solid #2C3646 !important; border-radius: 0 !important;
	min-height: 46px; padding: 0 12px; font-family: var(--dx-body); font-size: 15px; box-shadow: none !important;
}
body.dx-site.woocommerce-page textarea { padding: 12px; }
body.dx-site .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--dx-text) !important; line-height: 44px; }
body.dx-site .select2-dropdown { background: var(--dx-panel); border-color: #2C3646; color: var(--dx-text); }
body.dx-site .woocommerce form .form-row label { color: var(--dx-muted); font-size: 13px; }

/* Grille produits */
body.dx-site .woocommerce ul.products, body.dx-site ul.products { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; margin: 0 0 32px !important; }
body.dx-site ul.products::before, body.dx-site ul.products::after { display: none !important; }
body.dx-site ul.products li.product {
	width: auto !important; margin: 0 !important; float: none !important; padding: 0 0 18px !important;
	display: flex; flex-direction: column; border: 1px solid #1F2733; background: var(--dx-panel); text-align: left;
}
body.dx-site ul.products li.product a img { aspect-ratio: 4 / 3; object-fit: cover; margin: 0 0 16px !important; border-bottom: 1px solid #1F2733; }
body.dx-site ul.products li.product .woocommerce-loop-product__title,
body.dx-site ul.products li.product h2 { padding: 0 18px !important; font-family: var(--dx-body) !important; font-size: 16px !important; font-weight: 600 !important; line-height: 1.35; color: var(--dx-text) !important; }
body.dx-site ul.products li.product .price { display: block; margin: auto 18px 12px !important; padding-top: 12px; border-top: 1px solid var(--dx-line); font-family: var(--dx-display); font-weight: 600; font-size: 18px !important; color: var(--dx-text) !important; }
body.dx-site ul.products li.product .price del { color: var(--dx-faint); font-size: 14px; opacity: 1; }
body.dx-site ul.products li.product .price ins { text-decoration: none; }
body.dx-site ul.products li.product .button,
body.dx-site ul.products li.product .dx-devis-btn { margin: 8px 18px 0 !important; min-height: 44px; display: flex !important; align-items: center; justify-content: center; font-size: 14px !important; }
body.dx-site ul.products li.product .added_to_cart { margin: 8px 18px 0; font-size: 13px; }

/* Badge promo */
body.dx-site span.onsale { min-height: 0; min-width: 0; line-height: 1; padding: 6px 10px; border-radius: 0; top: 12px !important; left: 12px !important; right: auto !important; margin: 0 !important; background: var(--dx-accent); color: var(--dx-on-accent); font-family: var(--dx-mono); font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }

/* Boutons WooCommerce */
body.dx-site .woocommerce a.button, body.dx-site .woocommerce button.button, body.dx-site .woocommerce input.button,
body.dx-site .woocommerce #respond input#submit, body.dx-site a.button, body.dx-site button.button {
	background: transparent !important; color: var(--dx-text) !important; border: 1px solid var(--dx-line-3) !important; border-radius: 0 !important;
	min-height: 46px; padding: 0 20px !important; font-family: var(--dx-body) !important; font-weight: 600 !important; font-size: 15px !important; line-height: 44px !important;
	text-shadow: none; box-shadow: none;
}
body.dx-site .woocommerce a.button:hover, body.dx-site .woocommerce button.button:hover, body.dx-site a.button:hover { border-color: var(--dx-text) !important; }
body.dx-site .woocommerce a.button.alt, body.dx-site .woocommerce button.button.alt, body.dx-site .woocommerce input.button.alt,
body.dx-site .single_add_to_cart_button, body.dx-site .checkout-button, body.dx-site #place_order {
	background: var(--dx-accent) !important; color: var(--dx-on-accent) !important; border-color: var(--dx-accent) !important;
}
body.dx-site .woocommerce a.button.alt:hover, body.dx-site .single_add_to_cart_button:hover, body.dx-site .checkout-button:hover, body.dx-site #place_order:hover { background: var(--dx-accent-hover) !important; }

/* Fiche produit */
body.dx-site.single-product div.product:not(.elementor) { display: flex; flex-wrap: wrap; gap: 48px; }
body.dx-site.single-product div.product:not(.elementor) .woocommerce-product-gallery { flex: 1 1 520px; min-width: 0; width: auto !important; float: none !important; margin: 0 !important; }
body.dx-site.single-product div.product:not(.elementor) .summary { flex: 1 1 400px; min-width: 0; width: auto !important; float: none !important; margin: 0 !important; display: flex; flex-direction: column; gap: 18px; }
body.dx-site.single-product div.product:not(.elementor) .woocommerce-tabs,
body.dx-site.single-product div.product:not(.elementor) .related,
body.dx-site.single-product div.product:not(.elementor) .upsells { flex: 1 1 100%; }
body.dx-site .woocommerce-product-gallery__wrapper { border: 1px solid var(--dx-line-2); background: var(--dx-panel); }
body.dx-site .woocommerce-product-gallery .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-top: 10px !important; }
body.dx-site .woocommerce-product-gallery .flex-control-thumbs li { width: auto !important; float: none !important; }
body.dx-site .woocommerce-product-gallery .flex-control-thumbs img { border: 1px solid var(--dx-line-2); opacity: .6; }
body.dx-site .woocommerce-product-gallery .flex-control-thumbs img.flex-active { border-color: var(--dx-accent); opacity: 1; }
body.dx-site .woocommerce-product-gallery__trigger { background: var(--dx-bg) !important; border-radius: 0 !important; border: 1px solid var(--dx-line-2); }
body.dx-site.single-product .summary .price { margin: 0 !important; padding: 18px 0; border-top: 1px solid var(--dx-line); border-bottom: 1px solid var(--dx-line); font-family: var(--dx-display); font-weight: 600; font-size: 32px !important; color: var(--dx-text) !important; }
body.dx-site.single-product .summary .price .woocommerce-price-suffix { font-family: var(--dx-body); font-size: 15px; color: var(--dx-faint); }
body.dx-site.single-product .woocommerce-product-details__short-description { color: var(--dx-muted); }
body.dx-site.single-product .stock { font-family: var(--dx-mono); font-size: 13px; color: var(--dx-accent) !important; }
body.dx-site.single-product .stock.out-of-stock { color: var(--dx-danger) !important; }
body.dx-site.single-product form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important; }
body.dx-site .quantity .qty { min-height: 52px; width: 84px; background: var(--dx-panel); color: var(--dx-text); border: 1px solid var(--dx-line-3); border-radius: 0; font-family: var(--dx-mono); font-size: 16px; text-align: center; }
body.dx-site.single-product .single_add_to_cart_button { flex: 1 1 200px; min-height: 52px; }
body.dx-site .dx-devis-btn--single { width: 100%; min-height: 56px; font-size: 16px; }
body.dx-site.single-product .product_meta { display: flex; flex-direction: column; gap: 6px; padding-top: 16px; border-top: 1px solid var(--dx-line); font-family: var(--dx-mono); font-size: 12px; color: var(--dx-faint); }
body.dx-site.single-product .product_meta a { color: var(--dx-text-2) !important; }
body.dx-site table.variations td, body.dx-site table.variations th { background: transparent; color: var(--dx-text-2); border: 0; }

/* Onglets */
body.dx-site .woocommerce-tabs { padding-top: 48px; border-top: 1px solid var(--dx-line); }
body.dx-site .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; padding: 0 !important; margin: 0 0 28px !important; border-bottom: 1px solid var(--dx-line); }
body.dx-site .woocommerce-tabs ul.tabs::before, body.dx-site .woocommerce-tabs ul.tabs li::before, body.dx-site .woocommerce-tabs ul.tabs li::after { display: none !important; }
body.dx-site .woocommerce-tabs ul.tabs li { margin: 0 0 -1px !important; padding: 0 !important; background: transparent !important; border: 0 !important; border-bottom: 2px solid transparent !important; border-radius: 0 !important; }
body.dx-site .woocommerce-tabs ul.tabs li a { display: block; padding: 14px 22px !important; color: var(--dx-faint) !important; font-weight: 500 !important; }
body.dx-site .woocommerce-tabs ul.tabs li.active { border-bottom-color: var(--dx-accent) !important; }
body.dx-site .woocommerce-tabs ul.tabs li.active a { color: var(--dx-text) !important; font-weight: 600 !important; }
body.dx-site .woocommerce-tabs .panel { color: var(--dx-text-2); max-width: 820px; }
body.dx-site .woocommerce-tabs .panel h2 { font-family: var(--dx-display); font-size: 22px; }
body.dx-site table.shop_attributes { border: 1px solid #1F2733 !important; }
body.dx-site table.shop_attributes th, body.dx-site table.shop_attributes td { padding: 14px 18px !important; border: 0 !important; border-top: 1px solid var(--dx-line) !important; background: transparent !important; color: var(--dx-text); font-style: normal; }
body.dx-site table.shop_attributes th { width: 38%; background: var(--dx-panel) !important; font-family: var(--dx-mono); font-size: 13px; font-weight: 400; color: var(--dx-faint); }
body.dx-site .related > h2, body.dx-site .upsells > h2, body.dx-site .cross-sells > h2 { font-family: var(--dx-display); font-weight: 600; font-size: clamp(24px, 2.6vw, 34px); margin: 64px 0 28px; }

/* Avis */
body.dx-site #reviews .comment-text { border: 1px solid var(--dx-line) !important; border-radius: 0 !important; }
body.dx-site .star-rating span::before, body.dx-site p.stars a { color: var(--dx-accent); }

/* Messages */
body.dx-site .woocommerce-message, body.dx-site .woocommerce-info, body.dx-site .woocommerce-error {
	background: var(--dx-panel) !important; color: var(--dx-text) !important; border: 1px solid var(--dx-line-2) !important; border-left: 1px solid var(--dx-line-2) !important; border-top: 2px solid var(--dx-accent) !important; border-radius: 0;
}
body.dx-site .woocommerce-error { border-top-color: var(--dx-danger) !important; }
body.dx-site .woocommerce-message::before, body.dx-site .woocommerce-info::before { color: var(--dx-accent); }

/* Pagination */
body.dx-site .woocommerce-pagination ul.page-numbers { display: flex !important; justify-content: center; gap: 6px; border: 0 !important; }
body.dx-site .woocommerce-pagination ul.page-numbers li { border: 0 !important; }
body.dx-site .woocommerce-pagination .page-numbers a, body.dx-site .woocommerce-pagination .page-numbers span {
	min-width: 44px; height: 44px; display: inline-flex !important; align-items: center; justify-content: center; padding: 0 10px !important;
	border: 1px solid var(--dx-line-2) !important; background: transparent !important; color: var(--dx-text-2) !important; font-family: var(--dx-mono);
}
body.dx-site .woocommerce-pagination .page-numbers span.current { background: var(--dx-accent) !important; color: var(--dx-on-accent) !important; border-color: var(--dx-accent) !important; }

/* Panier + commande (versions classiques) */
body.dx-site table.shop_table { border: 1px solid #1F2733 !important; border-radius: 0 !important; border-collapse: collapse !important; background: transparent; }
body.dx-site table.shop_table th { font-family: var(--dx-mono); font-size: 12px; letter-spacing: .08em; font-weight: 400; text-transform: uppercase; color: var(--dx-faint); background: var(--dx-panel); }
body.dx-site table.shop_table th, body.dx-site table.shop_table td { border-top: 1px solid var(--dx-line) !important; padding: 16px 18px !important; color: var(--dx-text-2); }
body.dx-site table.shop_table td.product-name a { color: var(--dx-text) !important; font-weight: 600; }
body.dx-site table.shop_table img { width: 88px; border: 1px solid var(--dx-line-2); }
body.dx-site a.remove { color: var(--dx-muted) !important; border: 1px solid var(--dx-line-2); border-radius: 0 !important; width: 32px !important; height: 32px !important; line-height: 30px !important; }
body.dx-site a.remove:hover { background: var(--dx-danger) !important; color: var(--dx-bg) !important; }
body.dx-site .cart-collaterals .cart_totals, body.dx-site #order_review, body.dx-site .woocommerce-checkout-review-order { border: 1px solid var(--dx-line-2); background: var(--dx-panel); padding: 28px; }
body.dx-site .cart_totals h2, body.dx-site #order_review_heading, body.dx-site .woocommerce-billing-fields h3, body.dx-site .woocommerce-shipping-fields h3, body.dx-site .woocommerce-additional-fields h3 { font-family: var(--dx-display); font-weight: 600; font-size: 20px; }
body.dx-site .cart_totals .order-total .amount, body.dx-site .order-total .amount { font-family: var(--dx-display); font-weight: 600; font-size: 22px; color: var(--dx-text); }
body.dx-site #payment { background: var(--dx-bg-2) !important; border-radius: 0 !important; }
body.dx-site #payment div.payment_box { background: var(--dx-panel) !important; color: var(--dx-text-2) !important; border-radius: 0; }
body.dx-site #payment div.payment_box::before { border-bottom-color: var(--dx-panel) !important; }
body.dx-site #payment ul.payment_methods { border-bottom-color: var(--dx-line) !important; }

/* Panier / commande en blocs (WooCommerce Blocks) */
body.dx-site .wc-block-cart, body.dx-site .wc-block-checkout { color: var(--dx-text-2); }
body.dx-site .wc-block-components-button:not(.is-link) { background: var(--dx-accent) !important; color: var(--dx-on-accent) !important; border-radius: 0 !important; font-weight: 600; min-height: 52px; }
body.dx-site .wc-block-components-text-input input, body.dx-site .wc-block-components-combobox input, body.dx-site .wc-blocks-components-select__select {
	background: var(--dx-panel) !important; color: var(--dx-text) !important; border: 1px solid #2C3646 !important; border-radius: 0 !important;
}
body.dx-site .wc-block-components-text-input label, body.dx-site .wc-block-components-combobox label { color: var(--dx-faint) !important; }
body.dx-site .wc-block-components-totals-wrapper, body.dx-site .wc-block-cart-items, body.dx-site .wc-block-cart-items td, body.dx-site .wc-block-cart-items th { border-color: var(--dx-line) !important; }
body.dx-site .wc-block-components-product-name { color: var(--dx-text) !important; font-weight: 600; }
body.dx-site .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-family: var(--dx-display); color: var(--dx-text); }

/* Mon compte */
body.dx-site .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--dx-line); }
body.dx-site .woocommerce-MyAccount-navigation li a { display: flex; align-items: center; min-height: 48px; padding: 0 16px; border-bottom: 1px solid var(--dx-line); color: var(--dx-text-2) !important; }
body.dx-site .woocommerce-MyAccount-navigation li.is-active a { background: var(--dx-accent); color: var(--dx-on-accent) !important; font-weight: 600; }

/* =========================================================================
   BOUTIQUE — shortcode [distri_boutique]
   ========================================================================= */

.dx-shop__body { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; padding-top: 40px; padding-bottom: 96px; }
.dx-shop__body > .woocommerce-notices-wrapper, .dx-shop__body > .woocommerce-message, .dx-shop__body > .woocommerce-info, .dx-shop__body > .woocommerce-error { flex: 1 1 100%; }

.dx-filters { flex: 1 1 260px; max-width: 100%; border: 1px solid #1F2733; background: var(--dx-panel); }
.dx-filters__toggle { display: none; min-height: 52px; align-items: center; padding: 0 20px; font-weight: 600; cursor: pointer; list-style: none; }
.dx-filters__toggle::-webkit-details-marker { display: none; }
.dx-filters__toggle::after { content: "+"; margin-left: auto; font-family: var(--dx-mono); color: var(--dx-accent); }
.dx-filters[open] .dx-filters__toggle::after { content: "−"; }
.dx-filters__inner { display: flex; flex-direction: column; gap: 28px; padding: 24px; }
.dx-filter { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.dx-filter__label { margin-bottom: 4px; font-family: var(--dx-mono); font-size: 12px; letter-spacing: .1em; color: var(--dx-faint); }
.dx-filter__price { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.dx-filter__price .dx-field { font-size: 12px; }
.dx-filter__price input { min-height: 42px !important; font-size: 14px !important; background: var(--dx-bg) !important; }
.dx-filter__reset { font-size: 13px; }
.dx-filters__help { display: flex; flex-direction: column; gap: 6px; padding: 16px; border: 1px dashed #2C3646; font-size: 14px; color: var(--dx-muted); }
.dx-filters__help strong { color: var(--dx-text); font-size: 15px; }

.dx-catbtn { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; padding: 0 14px; border: 1px solid #1F2733; color: var(--dx-text-2) !important; font-size: 15px; transition: border-color .15s; }
.dx-catbtn:hover { border-color: var(--dx-line-3); color: var(--dx-text) !important; }
.dx-catbtn .dx-mono { font-size: 12px; color: var(--dx-faint); }
.dx-catbtn.is-active { background: var(--dx-accent); border-color: var(--dx-accent); color: var(--dx-on-accent) !important; font-weight: 600; }
.dx-catbtn.is-active .dx-mono { color: var(--dx-on-accent); }
.dx-catbtn--sub { margin-left: 16px; min-height: 40px; font-size: 14px; }

.dx-check-link { display: flex; align-items: center; gap: 10px; min-height: 36px; color: var(--dx-text-2) !important; font-size: 15px; }
.dx-check-link .dx-mono { margin-left: auto; font-size: 12px; color: var(--dx-faint); }
.dx-box { width: 18px; height: 18px; flex: none; border: 1px solid var(--dx-line-3); display: inline-flex; align-items: center; justify-content: center; }
.dx-check-link.is-on .dx-box { background: var(--dx-accent); border-color: var(--dx-accent); }
.dx-check-link.is-on .dx-box::after { content: ""; width: 9px; height: 5px; border-left: 2px solid var(--dx-on-accent); border-bottom: 2px solid var(--dx-on-accent); transform: rotate(-45deg) translate(1px, -1px); }
.dx-check-link.is-on { color: var(--dx-text) !important; }

.dx-shop__results { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.dx-shop__toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--dx-line); }
.dx-shop__count { font-family: var(--dx-mono); font-size: 13px; color: var(--dx-faint); }
.dx-shop__count b { color: var(--dx-text); font-weight: 500; }
.dx-shop__toolbar .woocommerce-ordering { margin: 0 !important; float: none !important; }
.dx-shop__toolbar .woocommerce-ordering select { min-width: 220px; }
.dx-shop .dx-products { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.dx-shop__pagination { padding-top: 16px; }

@media (max-width: 900px) {
	.dx-filters { flex-basis: 100%; }
	.dx-filters__toggle { display: flex; }
	.dx-filters__inner { padding-top: 4px; }
}

/* Cartes produit rendues en PHP */
.dx-tag--right { left: auto; right: 12px; }
.dx-card__title { margin: 0; font-size: 17px; line-height: 1.35; }
.dx-card__specs { display: flex; flex-wrap: wrap; gap: 4px 14px; font-family: var(--dx-mono); font-size: 12px; color: var(--dx-faint); }
.dx-price strong { color: var(--dx-text); }
.dx-price strong .woocommerce-Price-amount { color: var(--dx-text); }
.dx-price del { font-family: var(--dx-body); font-size: 13px; font-weight: 400; color: var(--dx-faint); margin-right: 6px; }
.dx-price ins { text-decoration: none; }
.dx-card__ctas { flex-wrap: wrap; }
body.dx-site .dx-card__ctas .button, body.dx-site .dx-card__ctas .dx-devis-btn, body.dx-site .dx-card__ctas .added_to_cart {
	flex: 1 1 140px; margin: 0 !important; min-height: 44px !important; padding: 0 12px !important;
	display: inline-flex !important; align-items: center; justify-content: center; text-align: center; font-size: 14px !important; line-height: 1.2 !important;
}
body.dx-site .dx-card__ctas .added_to_cart { flex-basis: 100%; min-height: 32px !important; font-size: 13px !important; }
.dx-card__ctas .button.loading { opacity: .6; }

/* =========================================================================
   FICHE PRODUIT — shortcode [distri_produit]
   ========================================================================= */

.dx-pdp__top { display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; padding-top: 28px; padding-bottom: 72px; }

.dx-gallery { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.dx-gallery__main { position: relative; aspect-ratio: 4 / 3; border: 1px solid var(--dx-line-2); background: var(--dx-panel); overflow: hidden; }
.dx-gallery__main::before, .dx-gallery__main::after { content: ""; position: absolute; z-index: 1; width: 22px; height: 22px; pointer-events: none; }
.dx-gallery__main::before { top: -1px; left: -1px; border-top: 2px solid var(--dx-accent); border-left: 2px solid var(--dx-accent); }
.dx-gallery__main::after { bottom: -1px; right: -1px; border-bottom: 2px solid var(--dx-accent); border-right: 2px solid var(--dx-accent); }
.dx-gallery__main a, .dx-gallery__main img { display: block; width: 100%; height: 100%; }
.dx-gallery__main img { object-fit: cover; }
.dx-gallery__main .dx-tag { z-index: 2; top: 14px; }
.dx-gallery__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.dx-gallery__thumb { aspect-ratio: 1 / 1; min-height: 44px; padding: 0; background: var(--dx-panel); border: 1px solid var(--dx-line-2); cursor: pointer; overflow: hidden; opacity: .65; transition: opacity .15s, border-color .15s; }
.dx-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.dx-gallery__thumb:hover { opacity: 1; }
.dx-gallery__thumb.is-active { border: 2px solid var(--dx-accent); opacity: 1; }

.dx-pdp__info { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.dx-pdp__ref { display: flex; flex-wrap: wrap; gap: 6px 16px; font-family: var(--dx-mono); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--dx-faint); }
.dx-pdp__title { font-family: var(--dx-display); font-weight: 800; font-size: clamp(28px, 3.2vw, 42px); line-height: 1.1; }
.dx-pdp__price { display: flex; flex-direction: column; gap: 6px; padding: 20px 0; border-top: 1px solid var(--dx-line); border-bottom: 1px solid var(--dx-line); }
.dx-pdp__amount { font-family: var(--dx-display); font-weight: 600; font-size: 34px; line-height: 1.15; color: var(--dx-text); }
.dx-pdp__amount small { font-family: var(--dx-body); font-weight: 400; font-size: 15px; color: var(--dx-faint); }
.dx-pdp__amount del { font-size: 18px; color: var(--dx-faint); margin-right: 8px; }
.dx-pdp__amount ins { text-decoration: none; }
.dx-pdp__price .stock { margin: 6px 0 0; font-family: var(--dx-mono); font-size: 13px; color: var(--dx-accent); }
.dx-pdp__price .stock.out-of-stock { color: var(--dx-danger); }
.dx-pdp__short { color: var(--dx-muted); }
.dx-pdp__buy { display: flex; flex-direction: column; gap: 12px; }
.dx-pdp__buy form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 0 !important; }
.dx-pdp__buy form.variations_form { flex-direction: column; }
.dx-pdp__buy .single_variation_wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; }
.dx-pdp__buy .quantity { margin: 0 !important; }
.dx-pdp__buy .quantity .qty { min-height: 54px; width: 90px; background: var(--dx-panel); color: var(--dx-text); border: 1px solid var(--dx-line-3); border-radius: 0; font-family: var(--dx-mono); font-size: 16px; text-align: center; }
.dx-pdp__buy .single_add_to_cart_button { flex: 1 1 200px; min-height: 54px !important; }
.dx-pdp__buy table.variations { width: 100%; border: 0; margin: 0 0 8px; }
.dx-pdp__buy table.variations th, .dx-pdp__buy table.variations td { display: block; padding: 0 0 6px !important; text-align: left; }
.dx-pdp__buy table.variations label { font-size: 13px; color: var(--dx-muted); font-weight: 400; }
.dx-pdp__buy table.variations select { width: 100%; min-height: 46px; padding: 0 12px; background: var(--dx-panel); color: var(--dx-text); border: 1px solid #2C3646; border-radius: 0; }
.dx-pdp__buy .reset_variations { font-size: 13px; }
.dx-pdp__buy .woocommerce-variation-price .price { font-family: var(--dx-display); font-size: 22px; color: var(--dx-text); }
.dx-pdp__buy .dx-devis-btn--single { width: 100%; }
.dx-pdp__trust { display: flex; flex-direction: column; gap: 10px; font-size: 14px; color: var(--dx-muted); }
.dx-pdp__trust li { display: flex; gap: 10px; }
.dx-pdp__trust span { color: var(--dx-accent); }

.dx-tabs { display: flex; flex-wrap: wrap; margin-bottom: 28px; border-bottom: 1px solid var(--dx-line); }
.dx-tab { min-height: 48px; padding: 0 22px; margin-bottom: -1px; background: transparent; border: 0; border-bottom: 2px solid transparent; color: var(--dx-faint); font-size: 15px; font-weight: 500; cursor: pointer; }
.dx-tab:hover { color: var(--dx-text); }
.dx-tab[aria-selected="true"] { color: var(--dx-text); font-weight: 600; border-bottom-color: var(--dx-accent); }
.dx-tabpanel[hidden] { display: none; }
.dx-prose { max-width: 780px; display: flex; flex-direction: column; gap: 16px; color: var(--dx-text-2); }
.dx-prose h2, .dx-prose h3 { font-family: var(--dx-display); font-weight: 600; color: var(--dx-text); }
.dx-prose ul { list-style: disc; padding-left: 20px; }
.dx-prose ol { list-style: decimal; padding-left: 20px; }
.dx-tabpanel .dx-table-wrap table.shop_attributes { margin: 0; min-width: 480px; border: 0 !important; }
.dx-tabpanel #reviews { color: var(--dx-text-2); }
.dx-tabpanel #reviews h2 { font-family: var(--dx-display); font-size: 20px; }

/* Bouton panier de la fiche : principal sans devis, secondaire avec devis */
body.dx-site .dx-pdp__buy .single_add_to_cart_button { background: var(--dx-accent) !important; color: var(--dx-on-accent) !important; border-color: var(--dx-accent) !important; }
body.dx-site .dx-pdp__buy.has-devis .single_add_to_cart_button { background: transparent !important; color: var(--dx-text) !important; border-color: var(--dx-text) !important; }
body.dx-site .dx-pdp__buy.has-devis .single_add_to_cart_button:hover { background: var(--dx-text) !important; color: var(--dx-bg) !important; }
body.dx-site .dx-pdp__buy .stock { margin: 0 0 4px; flex-basis: 100%; font-family: var(--dx-mono); font-size: 13px; color: var(--dx-accent); }

/* Notices WooCommerce (nouveau format « notice banner » + classique) */
.dx-notices { flex: 1 1 100%; }
.dx-notices:empty { display: none; }
.dx-notices > * { margin-bottom: 20px !important; }
body.dx-site .wc-block-components-notice-banner {
	background: var(--dx-panel) !important; color: var(--dx-text) !important; border: 1px solid var(--dx-line-2) !important; border-top: 2px solid var(--dx-accent) !important;
	border-radius: 0 !important; padding: 16px 18px !important; font-size: 15px; align-items: center;
}
body.dx-site .wc-block-components-notice-banner.is-error { border-top-color: var(--dx-danger) !important; }
body.dx-site .wc-block-components-notice-banner > svg { background: var(--dx-accent) !important; fill: var(--dx-on-accent) !important; border-radius: 50%; }
body.dx-site .wc-block-components-notice-banner.is-error > svg { background: var(--dx-danger) !important; }
body.dx-site .wc-block-components-notice-banner .wc-forward, body.dx-site .wc-block-components-notice-banner a.button {
	float: right; margin-left: 16px; padding: 0 16px !important; min-height: 40px; line-height: 38px !important;
	background: transparent !important; color: var(--dx-accent) !important; border: 1px solid var(--dx-accent) !important; text-decoration: none !important; opacity: 1 !important;
}
