/* ============================================================
   COMPARABOIS — blocks.css
   Header + Footer + Blocs CB-* (aiguillage, how, compare, stats, cta)
   + Cards + Nav
   ============================================================ */

/* ============================================================
   HEADER
   ============================================================ */
.cb-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: var(--cb-blanc);
	border-bottom: 1px solid var(--cb-brun-border);
	box-shadow: 0 1px 0 rgba(61, 42, 30, 0.03);
}

.cb-header-inner {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: var(--cb-header-h);
	flex-wrap: nowrap;
}

/* Logo */
.cb-logo {
	display: inline-flex;
	align-items: baseline;
	font-family: var(--cb-font-titre);
	font-weight: 800;
	color: var(--cb-brun);
	text-decoration: none;
	letter-spacing: -0.02em;
	line-height: 1;
	flex-shrink: 0;
	white-space: nowrap;
}

.cb-logo:hover {
	color: var(--cb-brun);
	text-decoration: none;
}

.cb-logo-name {
	font-size: 42px;
}

.cb-logo-ext {
	font-size: 26px;
	color: var(--cb-orange);
	font-weight: 700;
}

/* Navigation principale */
.cb-nav {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	justify-content: center;
}

.cb-nav-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 6px;
	align-items: center;
	flex-wrap: nowrap;
}

.cb-nav-list li {
	margin: 0;
	flex-shrink: 0;
}

.cb-nav-list a {
	display: inline-block;
	padding: 12px 18px;
	color: var(--cb-brun);
	font-family: var(--cb-font-texte);
	font-weight: 400;
	font-size: 17px;
	text-decoration: none;
	border-radius: var(--cb-radius-sm);
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.cb-nav-list a:hover,
.cb-nav-list .current-menu-item > a,
.cb-nav-list .current_page_item > a {
	background: var(--cb-beige-dark);
	color: var(--cb-brun-dark);
	text-decoration: none;
}

/* Sous-menus */
.cb-nav-list .sub-menu {
	display: none;
	position: absolute;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 8px;
	min-width: 220px;
	box-shadow: var(--cb-shadow);
	list-style: none;
	margin: 4px 0 0;
	z-index: 10;
}

.cb-nav-list .menu-item-has-children {
	position: relative;
}

.cb-nav-list .menu-item-has-children:hover > .sub-menu,
.cb-nav-list .menu-item-has-children:focus-within > .sub-menu {
	display: block;
}

.cb-nav-list .sub-menu a {
	padding: 8px 14px;
	width: 100%;
	display: block;
	font-size: 14px;
}

/* CTAs header */
.cb-header-ctas {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-shrink: 0;
}

/* Boutons plus généreux dans le header (override cb-btn-sm uniquement ici) */
.cb-header-ctas .cb-btn-sm {
	padding: 12px 24px;
	font-size: 15px;
}

/* Burger mobile */
.cb-burger {
	display: none;
	background: transparent;
	border: none;
	padding: 8px;
	cursor: pointer;
	color: var(--cb-brun);
	border-radius: var(--cb-radius-sm);
}

.cb-burger:hover {
	background: var(--cb-beige-dark);
}

.cb-burger .cb-burger-close {
	display: none;
}

.cb-burger[aria-expanded="true"] .cb-burger-open {
	display: none;
}

.cb-burger[aria-expanded="true"] .cb-burger-close {
	display: inline-block;
}

/* Menu mobile */
.cb-mobile-menu {
	display: none;
	background: var(--cb-blanc);
	border-top: 1px solid var(--cb-brun-border);
	padding: 16px 24px 24px;
}

.cb-mobile-menu[hidden] {
	display: none;
}

.cb-mobile-menu.is-open {
	display: block;
}

.cb-mobile-menu .cb-nav-list {
	flex-direction: column;
	align-items: stretch;
	gap: 2px;
	margin-bottom: 16px;
}

.cb-mobile-menu .cb-nav-list a {
	padding: 12px 16px;
	font-size: 17px;
}

.cb-mobile-menu .sub-menu {
	position: static;
	box-shadow: none;
	border: none;
	background: var(--cb-beige-dark);
	margin-left: 16px;
	display: block;
}

.cb-mobile-ctas {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cb-mobile-ctas .cb-btn {
	width: 100%;
}

/* ============================================================
   HEADER — Responsive
   ============================================================ */
@media (max-width: 1023px) {
	.cb-nav,
	.cb-header-ctas {
		display: none;
	}

	.cb-burger {
		display: inline-flex;
	}
}

/* ============================================================
   FOOTER
   ============================================================ */
.cb-footer {
	background: var(--cb-beige-dark);
	color: var(--cb-texte);
	font-size: 15px;
}

/* Bande CTA haute */
.cb-footer-cta {
	background: var(--cb-brun);
	color: #fff;
	padding: 48px 0;
	text-align: center;
}

.cb-footer-cta .cb-container {
	max-width: 700px;
}

.cb-footer-cta-title {
	/* Rendu identique à un h2 bien qu'il s'agisse d'un <p> (exception voulue) */
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: clamp(28px, 4vw, 40px);
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 0 12px;
}

.cb-footer-cta-sub {
	color: var(--cb-brun-border);
	font-size: 18px;
	margin: 0 0 24px;
}

/* 3 colonnes */
.cb-footer-cols {
	padding: 64px 0 48px;
}

.cb-footer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 48px;
	max-width: 1100px;
}

.cb-footer-col {
	min-width: 0;
}

.cb-footer-col .cb-logo-footer {
	margin-bottom: 20px;
	display: inline-flex;
}

.cb-footer-col .cb-footer-ctas {
	display: flex;
	gap: 10px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

.cb-footer-col-title {
	font-family: var(--cb-font-titre);
	font-size: 18px;
	font-weight: 700;
	color: var(--cb-brun);
	margin: 0 0 16px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.cb-footer-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cb-footer-links li {
	margin-bottom: 8px;
}

.cb-footer-links a {
	color: var(--cb-texte);
	font-size: 15px;
	text-decoration: none;
	transition: color 0.15s;
}

.cb-footer-links a:hover {
	color: var(--cb-orange);
	text-decoration: underline;
}

/* Tag PROMOS */
.cb-tag {
	display: inline-block;
	background: var(--cb-orange);
	color: #fff;
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	padding: 3px 10px;
	border-radius: 20px;
	letter-spacing: 0.05em;
}

/* Bas du footer */
.cb-footer-bottom {
	background: var(--cb-brun);
	color: #fff;
	padding: 24px 0;
	font-weight: 700;
}

.cb-footer-bottom-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}

.cb-copyright {
	margin: 0;
	color: #fff;
	font-size: 14px;
}

.cb-footer-legal {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 20px;
	flex-wrap: wrap;
}

.cb-footer-legal a {
	color: #fff;
	font-size: 14px;
	text-decoration: none;
	font-weight: 700;
}

.cb-footer-legal a:hover {
	color: var(--cb-brun-border);
	text-decoration: underline;
}

/* Footer responsive */
@media (max-width: 900px) {
	.cb-footer-grid {
		grid-template-columns: 1fr;
		gap: 36px;
	}
}

@media (max-width: 600px) {
	.cb-footer-bottom-inner {
		flex-direction: column;
		text-align: center;
	}

	.cb-footer-legal {
		justify-content: center;
	}
}

/* ============================================================
   BLOC CB-AIGUILLAGE (Hero — 2 colonnes)
   ============================================================ */
.cb-aiguillage {
	background: var(--cb-beige);
	padding: clamp(48px, 8vw, 96px) 0;
}

.cb-aiguillage-grid {
	display: grid;
	grid-template-columns: 1.1fr 1fr;
	gap: 64px;
	align-items: center;
	max-width: var(--cb-container);
	margin: 0 auto;
	padding: 0 24px;
}

.cb-aiguillage-text h1 {
	margin: 0 0 20px;
}

.cb-aiguillage-text .cb-lead {
	margin: 0 0 32px;
	font-size: clamp(17px, 2vw, 20px);
}

.cb-aiguillage-text .cb-btn-group {
	margin-top: 32px;
}

.cb-aiguillage-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 32px;
	box-shadow: var(--cb-shadow);
}

.cb-aiguillage-card h2 {
	font-size: 24px;
	margin: 0 0 20px;
	color: var(--cb-brun);
}

.cb-aiguillage-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cb-aiguillage-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cb-beige-dark);
	font-size: 16px;
}

.cb-aiguillage-list li:last-child {
	border-bottom: none;
}

.cb-aiguillage-list .cb-icon {
	color: var(--cb-success);
	flex-shrink: 0;
	margin-top: 2px;
}

@media (max-width: 900px) {
	.cb-aiguillage-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* ============================================================
   BLOC CB-HOW (Comment ça marche — 3 étapes)
   ============================================================ */
.cb-how {
	background: var(--cb-blanc);
	padding: clamp(64px, 8vw, 96px) 0;
}

.cb-how-header {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 56px;
	padding: 0 24px;
}

.cb-how-header h2 {
	margin: 0 0 16px;
}

.cb-how-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	max-width: var(--cb-container);
	margin: 0 auto;
	padding: 0 24px;
}

.cb-how-step {
	text-align: center;
	padding: 32px 24px;
	position: relative;
}

.cb-how-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--cb-orange);
	color: #fff;
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: 24px;
	margin-bottom: 20px;
	box-shadow: 0 4px 12px rgba(192, 98, 42, 0.25);
}

.cb-how-step h3 {
	font-size: 22px;
	margin: 0 0 12px;
}

.cb-how-step p {
	color: var(--cb-texte-mute);
	font-size: 16px;
	margin: 0;
}

@media (max-width: 900px) {
	.cb-how-steps {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}

/* ============================================================
   BLOC CB-COMPARE (Avec / Sans Comparabois)
   ============================================================ */
.cb-compare {
	background: var(--cb-beige);
	padding: clamp(64px, 8vw, 96px) 0;
}

.cb-compare-header {
	text-align: center;
	max-width: 700px;
	margin: 0 auto 48px;
	padding: 0 24px;
}

.cb-compare-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	max-width: var(--cb-container);
	margin: 0 auto;
	padding: 0 24px;
}

.cb-compare-col {
	background: var(--cb-blanc);
	border-radius: var(--cb-radius-lg);
	padding: 32px;
	border: 1px solid var(--cb-brun-border);
}

.cb-compare-col.cb-compare-bad {
	background: #faf5f0;
}

.cb-compare-col.cb-compare-good {
	background: var(--cb-blanc);
	border: 2px solid var(--cb-orange);
}

.cb-compare-title {
	font-size: 20px;
	margin: 0 0 20px;
	display: flex;
	align-items: center;
	gap: 10px;
}

.cb-compare-bad .cb-compare-title {
	color: var(--cb-danger);
}

.cb-compare-good .cb-compare-title {
	color: var(--cb-orange);
}

.cb-compare-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.cb-compare-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	font-size: 16px;
	border-bottom: 1px solid var(--cb-beige-dark);
}

.cb-compare-list li:last-child {
	border-bottom: none;
}

.cb-compare-list .cb-icon {
	flex-shrink: 0;
	margin-top: 2px;
}

.cb-compare-bad .cb-compare-list .cb-icon {
	color: var(--cb-danger);
}

.cb-compare-good .cb-compare-list .cb-icon {
	color: var(--cb-success);
}

@media (max-width: 700px) {
	.cb-compare-grid {
		grid-template-columns: 1fr;
	}
}


/* ============================================================
   BLOC CB-CTA (Bandeau final pleine largeur)
   ============================================================ */
.cb-cta {
	background: var(--cb-orange);
	color: #fff;
	padding: clamp(48px, 6vw, 72px) 0;
	text-align: center;
}

.cb-cta .cb-container {
	max-width: 700px;
}

.cb-cta h2 {
	color: #fff;
	margin: 0 0 12px;
}

.cb-cta p {
	color: #fff;
	opacity: 0.95;
	font-size: 18px;
	margin: 0 0 28px;
}

.cb-cta .cb-btn-outline {
	background: #fff;
	color: var(--cb-orange);
	border-color: #fff;
}

.cb-cta .cb-btn-outline:hover {
	background: transparent;
	color: #fff;
	border-color: #fff;
}

/* ============================================================
   BLOC CB-MEDIA (Image + Texte, option gauche/droite)
   ============================================================ */
.cb-media {
	background: var(--cb-beige);
	padding: clamp(64px, 8vw, 96px) 0;
}

/* Alternance d'arrière-plans (utile si plusieurs cb-media empilés) */
.cb-media + .cb-media {
	background: var(--cb-blanc);
}

.cb-media-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}

/* Image à droite → on inverse l'ordre des colonnes */
.cb-media-right .cb-media-grid {
	direction: rtl;
}

.cb-media-right .cb-media-image,
.cb-media-right .cb-media-content {
	direction: ltr;
}

/* Image avec bords arrondis + ombre douce */
.cb-media-image {
	margin: 0;
	position: relative;
}

.cb-media-image img {
	width: 100%;
	height: auto;
	border-radius: var(--cb-radius);
	box-shadow: 0 12px 32px rgba(61, 42, 30, 0.15);
	display: block;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Contenu texte */
.cb-media-content {
	min-width: 0;
}

.cb-media-titre {
	margin: 0 0 20px;
	color: var(--cb-brun);
}

.cb-media-texte {
	font-size: 17px;
	line-height: 1.75;
	color: var(--cb-texte);
	margin-bottom: 24px;
}

.cb-media-texte > *:last-child {
	margin-bottom: 0;
}

.cb-media-texte p {
	margin: 0 0 1em;
}

.cb-media-texte p:last-child {
	margin-bottom: 0;
}

.cb-media-texte ul,
.cb-media-texte ol {
	padding-left: 1.25em;
	margin: 0 0 1em;
}

.cb-media-texte strong {
	color: var(--cb-brun);
}

.cb-media-content .cb-btn-group {
	margin-top: 24px;
}

/* Mobile : image toujours au-dessus, texte en-dessous */
@media (max-width: 900px) {
	.cb-media-grid,
	.cb-media-right .cb-media-grid {
		grid-template-columns: 1fr;
		gap: 32px;
		direction: ltr;
	}

	.cb-media-image img {
		aspect-ratio: 16 / 10;
	}
}

/* ============================================================
   CARDS (utilisées sur blog, listings)
   ============================================================ */
.cb-grid {
	display: grid;
	gap: 32px;
}

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

@media (max-width: 900px) {
	.cb-grid-3,
	.cb-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 600px) {
	.cb-grid-2,
	.cb-grid-3,
	.cb-grid-4 { grid-template-columns: 1fr; }
}

.cb-card {
	background: var(--cb-blanc);
	border-radius: var(--cb-radius);
	border: 1px solid var(--cb-brun-border);
	overflow: hidden;
	transition: transform 0.2s, box-shadow 0.2s;
	display: flex;
	flex-direction: column;
}

.cb-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--cb-shadow);
}

.cb-card-thumb {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--cb-beige-dark);
}

.cb-card-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s;
}

.cb-card:hover .cb-card-thumb img {
	transform: scale(1.03);
}

.cb-card-body {
	padding: 20px 24px 24px;
	flex: 1;
	display: flex;
	flex-direction: column;
}

.cb-card-title {
	font-size: 20px;
	margin: 0 0 12px;
}

.cb-card-title a {
	color: var(--cb-brun);
}

.cb-card-title a:hover {
	color: var(--cb-orange);
	text-decoration: none;
}

.cb-card-excerpt {
	color: var(--cb-texte-mute);
	font-size: 15px;
	flex: 1;
	margin: 0 0 12px;
}

.cb-card-link {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	color: var(--cb-orange);
	font-size: 15px;
}

/* ============================================================
   PAGINATION
   ============================================================ */
.pagination,
.nav-links {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
	flex-wrap: wrap;
}

.pagination a,
.pagination span,
.nav-links a,
.nav-links span {
	display: inline-block;
	padding: 10px 16px;
	border-radius: var(--cb-radius-sm);
	background: var(--cb-blanc);
	color: var(--cb-brun);
	font-family: var(--cb-font-titre);
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--cb-brun-border);
}

.pagination .current,
.nav-links .current {
	background: var(--cb-orange);
	color: #fff;
	border-color: var(--cb-orange);
}

.pagination a:hover,
.nav-links a:hover {
	background: var(--cb-beige-dark);
	text-decoration: none;
}

/* ============================================================
   ARTICLE DE BLOG (single.php) — layout 2 colonnes
   ============================================================
   DESKTOP : grid 2 colonnes, aside à gauche (sticky, flex vertical),
             main à droite (flow normal).
   MOBILE  : display: contents sur aside ET main → les 9 éléments
             deviennent enfants directs du grid 1 colonne,
             réordonnés via 'order'.
   ============================================================ */
.cb-article {
	background: var(--cb-beige);
	padding: 48px 0 96px;
	/* PAS d'overflow-x hidden ici — ça casserait position:sticky de la sidebar */
}

.cb-article-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}

/* ---------- DESKTOP (≥ 1024px) ---------- */
@media (min-width: 1024px) {

	.cb-article-wrap {
		grid-template-columns: 35% 1fr;
		column-gap: 56px;
	}

	/* Sidebar = bloc simple (pas flex, pas grid) qui s'étire sur toute la
	   hauteur du grid. align-self: stretch est le défaut donc inutile de
	   le forcer, mais on le met explicite pour être sûr. */
	.cb-article-sidebar {
		grid-column: 1;
		align-self: stretch;
	}

	/* Intro : bloc normal, ses enfants s'empilent naturellement */
	.cb-article-intro {
		margin-bottom: 24px;
	}

	.cb-article-intro > * + * {
		margin-top: 16px;
	}

	/* Sticky : position sticky dans le contexte de sidebar qui fait toute
	   la hauteur du grid → peut coller pendant tout le scroll de l'article */
	.cb-article-sticky {
		position: sticky;
		top: calc(var(--cb-header-h) + 24px);
	}

	.cb-article-sticky > * + * {
		margin-top: 24px;
	}

	.cb-article-main {
		grid-column: 2;
		min-width: 0;
		max-width: 100%;
	}
}

/* ---------- Sidebar gauche (base) ---------- */
.cb-article-sidebar,
.cb-article-intro,
.cb-article-sticky {
	min-width: 0;
}

/* ---------- Image featured ---------- */
.cb-article-cover {
	margin: 0;
	border: 2px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	overflow: hidden;
	background: var(--cb-blanc);
	width: 100%;
	max-width: 100%;
}

.cb-article-cover img {
	width: 100%;
	height: auto;
	display: block;
}

/* ---------- Date mise à jour ---------- */
.cb-article-updated {
	margin: 0;
	font-size: 14px;
	color: var(--cb-texte-mute);
}

/* ---------- Sommaire ---------- */
.cb-article-toc {
	border-top: 1px solid var(--cb-brun-border);
	padding-top: 20px;
}

.cb-article-toc-details {
	display: block;
}

.cb-article-toc-summary {
	list-style: none;
	cursor: default;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 0;
	margin-bottom: 16px;
}

.cb-article-toc-summary::-webkit-details-marker { display: none; }
.cb-article-toc-summary::marker { content: ''; }

.cb-article-toc-title {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 22px;
	color: var(--cb-brun);
	display: block;
}

.cb-article-toc-chevron {
	display: none;
	color: var(--cb-brun);
	transition: transform 0.2s ease;
	flex-shrink: 0;
}

.cb-article-toc-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.cb-article-toc-list li {
	margin: 0;
}

.cb-article-toc-list a {
	display: block;
	padding: 6px 0;
	font-family: var(--cb-font-texte);
	font-style: italic;
	font-size: 16px;
	color: var(--cb-texte-mute);
	text-decoration: none;
	border-left: 2px solid transparent;
	padding-left: 12px;
	transition: color 0.2s, border-color 0.2s;
	line-height: 1.4;
}

.cb-article-toc-list a:hover {
	color: var(--cb-brun);
	text-decoration: none;
}

.cb-article-toc-list a.is-active {
	color: var(--cb-orange);
	border-left-color: var(--cb-orange);
	font-style: italic;
	font-weight: 400;
}

/* ---------- Boutons partage ---------- */
.cb-article-share {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	padding-top: 16px;
}

.cb-article-share .cb-btn {
	flex: 0 0 auto;
	padding: 9px 14px !important;
	font-size: 13px !important;
	gap: 6px !important;
	line-height: 1.2 !important;
	min-height: 0 !important;
	border-radius: 7px !important;
}
.cb-article-share .cb-btn svg {
	width: 15px !important;
	height: 15px !important;
}

/* ---------- Author box (version enrichie) ---------- */
.cb-article-author {
	display: block;
	padding-top: 24px;
	margin-top: 8px;
	border-top: 1px solid var(--cb-brun-border);
}
.cb-article-author-label {
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cb-brun-light);
}
.cb-article-author-header {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 14px;
}
.cb-article-author-avatar {
	flex: 0 0 56px;
}
.cb-article-author-avatar img,
.cb-article-author-avatar .cb-avatar-img {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	display: block;
	background: var(--cb-beige);
}
.cb-article-author-ident {
	flex: 1;
	min-width: 0;
}
.cb-article-author-name {
	margin: 0;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 17px;
	line-height: 1.2;
	color: var(--cb-brun-dark);
}
.cb-article-author-role {
	margin: 2px 0 0;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-orange);
	font-weight: 600;
	letter-spacing: 0.01em;
}
.cb-article-author-bio {
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 1.55;
	color: var(--cb-brun);
}
.cb-article-author-socials {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 14px;
}
.cb-article-author-social {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 12px;
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-brun-dark);
	text-decoration: none;
	background: var(--cb-blanc);
	transition: border-color .2s, color .2s, background .2s;
}
.cb-article-author-social:hover {
	border-color: var(--cb-orange);
	color: var(--cb-orange);
	background: var(--cb-beige);
}
.cb-article-author-social svg {
	flex-shrink: 0;
}
.cb-article-author-all-posts {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-orange);
	text-decoration: none;
	padding-top: 4px;
}
.cb-article-author-all-posts:hover {
	color: var(--cb-orange-dark);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cb-article-author-all-posts svg {
	transition: transform .2s;
}
.cb-article-author-all-posts:hover svg {
	transform: translateX(3px);
}
/* ---------- Fil d'ariane ---------- */
.cb-breadcrumb {
	margin-bottom: 16px;
}

.cb-breadcrumb-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 14px;
}

.cb-breadcrumb-list li {
	margin: 0;
	color: var(--cb-brun-light);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.cb-breadcrumb-list li + li::before {
	content: "›";
	color: var(--cb-orange);
	font-size: 16px;
}

.cb-breadcrumb-list a {
	color: var(--cb-brun-light);
	text-decoration: none;
}

.cb-breadcrumb-list a:hover {
	color: var(--cb-orange);
	text-decoration: underline;
}

.cb-breadcrumb-list [aria-current="page"] {
	color: var(--cb-brun);
	font-weight: 600;
}

/* ---------- Titre H1 ---------- */
.cb-article-title {
	font-size: clamp(32px, 4vw, 48px);
	line-height: 1.15;
	margin: 0 0 28px;
	color: var(--cb-brun);
	overflow-wrap: break-word;
	word-wrap: break-word;
	hyphens: auto;
}

/* ---------- Encart résumé ---------- */
.cb-article-resume {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 24px 28px;
	margin-bottom: 40px;
}

.cb-article-resume-title {
	margin: 0 0 12px;
	font-size: 22px;
	color: var(--cb-orange);
}

.cb-article-resume-content {
	font-size: 16px;
	line-height: 1.7;
	color: var(--cb-texte);
}

.cb-article-resume-content p {
	margin: 0 0 0.75em;
}

.cb-article-resume-content p:last-child {
	margin-bottom: 0;
}

.cb-article-resume-content ul,
.cb-article-resume-content ol {
	margin: 0.5em 0;
	padding-left: 1.5em;
}

.cb-article-resume-content li {
	margin-bottom: 0.5em;
}

.cb-article-resume-content strong {
	color: var(--cb-brun);
}

/* ---------- Contenu Gutenberg ---------- */
.cb-article-content {
	font-size: 17px;
	line-height: 1.8;
	color: var(--cb-texte);
	min-width: 0;
	max-width: 100%;
}

.cb-article-content > *:first-child {
	margin-top: 0;
}

.cb-article-content > *:last-child {
	margin-bottom: 0;
}

.cb-article-content p {
	margin: 0 0 1.25em;
}

.cb-article-content h2 {
	font-size: clamp(26px, 3vw, 34px);
	margin: 2em 0 0.6em;
	scroll-margin-top: calc(var(--cb-header-h) + 16px);
}

.cb-article-content h3 {
	font-size: clamp(22px, 2.5vw, 26px);
	margin: 1.8em 0 0.5em;
	scroll-margin-top: calc(var(--cb-header-h) + 16px);
}

.cb-article-content h4 {
	font-size: 20px;
	margin: 1.5em 0 0.5em;
}

.cb-article-content ul,
.cb-article-content ol {
	margin: 0 0 1.25em;
	padding-left: 1.75em;
}

.cb-article-content li {
	margin-bottom: 0.5em;
}

.cb-article-content img,
.cb-article-content figure {
	margin: 1.5em 0;
	border-radius: var(--cb-radius);
	max-width: 100%;
	height: auto;
}

.cb-article-content figure {
	overflow: hidden;
}

.cb-article-content figure img {
	border-radius: 0;
	margin: 0;
}

.cb-article-content figcaption {
	text-align: center;
	font-size: 14px;
	color: var(--cb-texte-mute);
	padding: 10px 16px;
	font-style: italic;
}

.cb-article-content blockquote {
	margin: 1.5em 0;
	padding: 1em 1.5em;
	border-left: 4px solid var(--cb-orange);
	background: var(--cb-blanc);
	border-radius: 0 var(--cb-radius) var(--cb-radius) 0;
	font-style: italic;
}

.cb-article-content a {
	color: var(--cb-orange);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
/* Exception : les liens qui sont des boutons gardent leur couleur originale */
.cb-article-content a.cb-btn-primary,
.cb-article-content a.cb-btn-outline,
.cb-article-content a.cb-btn-ghost { text-decoration: none; }
.cb-article-content a.cb-btn-primary { color: var(--cb-blanc); }
.cb-article-content a.cb-btn-primary:hover { color: var(--cb-blanc); }
.cb-article-content a.cb-btn-outline { color: var(--cb-brun-dark); }
.cb-article-content a.cb-btn-outline:hover { color: var(--cb-orange); }
.cb-article-content a.cb-btn-ghost { color: var(--cb-brun-dark); }


.cb-article-content a:hover {
	color: var(--cb-brun);
}

.cb-article-content strong {
	color: var(--cb-brun);
}

.cb-article-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5em 0;
	font-size: 15px;
}

.cb-article-content th,
.cb-article-content td {
	padding: 10px 14px;
	border: 1px solid var(--cb-brun-border);
	text-align: left;
}

.cb-article-content th {
	background: var(--cb-beige-dark);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	color: var(--cb-brun);
}

/* ---------- SHORTCODES ---------- */
.cb-encart {
	margin: 1.75em 0;
	padding: 20px 24px;
	border-radius: var(--cb-radius);
	border-left: 4px solid;
	background: var(--cb-blanc);
}

.cb-encart-title {
	margin: 0 0 10px;
	font-size: 18px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
}

.cb-encart-content > *:first-child { margin-top: 0; }
.cb-encart-content > *:last-child { margin-bottom: 0; }

.cb-encart-info {
	border-left-color: var(--cb-orange);
	background: #fdf5ee;
}
.cb-encart-info .cb-encart-title { color: var(--cb-orange); }

.cb-encart-success {
	border-left-color: var(--cb-success);
	background: #eaf5ec;
}
.cb-encart-success .cb-encart-title { color: var(--cb-success); }

.cb-encart-warning {
	border-left-color: #d4941c;
	background: #faf3e3;
}
.cb-encart-warning .cb-encart-title { color: #a8741c; }

.cb-encart-note {
	border-left-color: var(--cb-brun-light);
	background: var(--cb-beige-dark);
}
.cb-encart-note .cb-encart-title { color: var(--cb-brun); }

.cb-inline-cta {
	margin: 2em 0;
	padding: 28px 32px;
	background: var(--cb-brun);
	color: #fff;
	border-radius: var(--cb-radius-lg);
	text-align: center;
}

.cb-inline-cta-title {
	color: #fff;
	margin: 0 0 8px;
	font-size: 22px;
}

.cb-inline-cta-text {
	color: var(--cb-brun-border);
	margin: 0 0 16px;
	font-size: 16px;
}

.cb-inline-cta .cb-btn {
	margin: 0;
}

.cb-tableau-wrapper {
	margin: 2em 0;
	overflow-x: auto;
	border-radius: var(--cb-radius);
	border: 1px solid var(--cb-brun-border);
	max-width: 100%;
}

.cb-tableau-wrapper table {
	margin: 0;
	border: none;
}

.cb-tableau-wrapper th,
.cb-tableau-wrapper td {
	border: none;
	border-bottom: 1px solid var(--cb-brun-border);
}

.cb-tableau-wrapper tr:last-child td {
	border-bottom: none;
}

.cb-inline-image {
	margin: 2em 0;
	max-width: 100%;
}

.cb-inline-image img {
	width: 100%;
	border-radius: var(--cb-radius);
	box-shadow: var(--cb-shadow);
}

.cb-inline-image figcaption {
	margin-top: 10px;
	font-size: 14px;
	color: var(--cb-texte-mute);
	font-style: italic;
	text-align: center;
}

/* ============================================================
   RESPONSIVE ARTICLE — MOBILE (≤ 1023px)
   ============================================================
   L'aside et le main passent en display: contents → leurs 9 enfants
   deviennent enfants directs du grid 1 colonne. On réordonne via 'order'.
   ============================================================ */
@media (max-width: 1023px) {

	/* Les wrappers deviennent "transparents" pour le layout mobile */
	.cb-article-sidebar,
	.cb-article-intro,
	.cb-article-sticky,
	.cb-article-main {
		display: contents;
	}

	/* Forcer tous les enfants orphelins à occuper toute la largeur */
	.cb-article-wrap > *,
	.cb-article-sidebar > *,
	.cb-article-intro > *,
	.cb-article-sticky > *,
	.cb-article-main > * {
		grid-column: 1;
		min-width: 0;
		max-width: 100%;
		width: 100%;
	}

	/* Ordre mobile explicite */
	.cb-article-cover    { order: 1; margin-bottom: 20px; }
	.cb-article-wrap .cb-breadcrumb       { order: 2; margin-bottom: 12px; }
	.cb-article-title    { order: 3; margin-bottom: 16px; }
	.cb-article-updated  { order: 4; margin: 0 0 20px; }
	.cb-article-toc      { order: 5; margin-bottom: 24px; border-top: none; padding-top: 0; }
	.cb-article-resume   { order: 6; margin-bottom: 32px; }
	.cb-article-content  { order: 7; margin-bottom: 32px; }
	.cb-article-share    {
		order: 8;
		margin-bottom: 28px;
		padding-top: 20px;
		border-top: 1px solid var(--cb-brun-border);
	}
	.cb-article-author   {
		order: 9;
		padding-top: 24px;
		border-top: 1px solid var(--cb-brun-border);
		margin-top: 0;
	}

	/* Sommaire collapsible en mobile */
	.cb-article-toc-details {
		background: var(--cb-blanc);
		border: 1px solid var(--cb-brun-border);
		border-radius: var(--cb-radius);
		padding: 14px 18px;
	}

	.cb-article-toc-summary {
		cursor: pointer;
		margin-bottom: 0;
		user-select: none;
		-webkit-tap-highlight-color: transparent;
	}

	.cb-article-toc-chevron {
		display: inline-flex;
	}

	.cb-article-toc-details[open] .cb-article-toc-chevron {
		transform: rotate(180deg);
	}

	.cb-article-toc-details[open] .cb-article-toc-summary {
		margin-bottom: 12px;
		padding-bottom: 12px;
		border-bottom: 1px solid var(--cb-brun-border);
	}

	.cb-article-toc-title {
		font-size: 18px;
	}
}

@media (max-width: 600px) {
	.cb-article {
		padding: 24px 0 48px;
	}

	.cb-article-wrap {
		padding: 0 20px;
	}

	.cb-article-title {
		font-size: clamp(26px, 6vw, 32px);
	}

	.cb-article-resume {
		padding: 20px;
	}

	.cb-article-content {
		font-size: 16px;
	}

	.cb-inline-cta {
		padding: 20px;
	}

	.cb-article-share {
		flex-direction: row;
		justify-content: center;
		gap: 10px;
	}

	.cb-article-share .cb-btn {
		width: auto;
		justify-content: center;
	}
}

/* ============================================================
   PAGE HEADER GÉNÉRIQUE
   ============================================================ */
.cb-page-header {
	background: var(--cb-blanc);
	padding: 64px 0 48px;
	text-align: center;
	border-bottom: 1px solid var(--cb-brun-border);
}

.cb-page-header h1 {
	margin: 0;
}

.cb-page {
	background: var(--cb-beige);
}

.cb-single-thumb {
	max-width: var(--cb-container-sm);
	margin: 32px auto 0;
	padding: 0 24px;
}

.cb-single-thumb img {
	border-radius: var(--cb-radius-lg);
}

/* ============================================================
   ARCHIVE / CATÉGORIE (category.php) — liste d'articles
   ============================================================ */
.cb-archive {
	background: var(--cb-beige);
	padding: 48px 0 96px;
}

.cb-archive-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ---------- Header catégorie ---------- */
.cb-archive-header {
	max-width: 800px;
	margin: 24px 0 56px;
}

.cb-archive-title {
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1.1;
	margin: 0 0 16px;
	color: var(--cb-brun);
}

.cb-archive-description {
	font-size: 18px;
	line-height: 1.7;
	color: var(--cb-texte);
	margin-bottom: 16px;
}

.cb-archive-description p { margin: 0 0 0.75em; }
.cb-archive-description p:last-child { margin-bottom: 0; }

.cb-archive-count {
	font-size: 14px;
	color: var(--cb-texte-mute);
	margin: 0;
	font-style: italic;
}

/* ---------- Grille des articles ---------- */
.cb-archive-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	margin-bottom: 48px;
}

@media (max-width: 767px) {
	.cb-archive-grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}
}

/* ---------- Card article ---------- */
.cb-article-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	overflow: hidden;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.cb-article-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(61, 42, 30, 0.12);
	border-color: var(--cb-orange);
}

.cb-article-card-link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.cb-article-card-link:hover {
	text-decoration: none;
	color: inherit;
}

.cb-article-card-cover {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--cb-beige-dark);
}

.cb-article-card-cover img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.cb-article-card:hover .cb-article-card-cover img {
	transform: scale(1.04);
}

.cb-article-card-body {
	padding: 24px 28px 28px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cb-article-card-title {
	font-size: 22px;
	line-height: 1.25;
	margin: 0;
	color: var(--cb-brun);
}

.cb-article-card-excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: var(--cb-texte);
	flex: 1;
}

.cb-article-card-meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--cb-brun-border);
	font-size: 13px;
}

.cb-article-card-date {
	color: var(--cb-texte-mute);
}

.cb-article-card-arrow {
	color: var(--cb-orange);
	font-family: var(--cb-font-titre);
	font-weight: 600;
	transition: transform 0.2s ease;
}

.cb-article-card:hover .cb-article-card-arrow {
	transform: translateX(4px);
}

/* ---------- Pagination ---------- */
.cb-archive .wp-pagenavi,
.cb-archive .nav-links,
.cb-archive .pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 48px;
	flex-wrap: wrap;
}

.cb-archive .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--cb-brun-border);
	background: var(--cb-blanc);
	border-radius: var(--cb-radius-sm);
	color: var(--cb-brun);
	font-family: var(--cb-font-titre);
	font-weight: 600;
	text-decoration: none;
	transition: all 0.15s;
}

.cb-archive .page-numbers:hover {
	border-color: var(--cb-orange);
	color: var(--cb-orange);
	text-decoration: none;
}

.cb-archive .page-numbers.current {
	background: var(--cb-orange);
	border-color: var(--cb-orange);
	color: #fff;
}

.cb-archive .page-numbers.dots {
	border: none;
	background: transparent;
}

/* ---------- État vide ---------- */
.cb-archive-empty {
	text-align: center;
	padding: 48px 24px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
}

.cb-archive-empty p {
	margin: 0 0 16px;
	font-size: 16px;
	color: var(--cb-texte-mute);
}

.cb-archive-empty p:last-child {
	margin-bottom: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
	.cb-archive {
		padding: 32px 0 64px;
	}

	.cb-archive-wrap {
		padding: 0 20px;
	}

	.cb-archive-header {
		margin: 16px 0 32px;
	}

	.cb-article-card-body {
		padding: 20px 22px 22px;
	}

	.cb-article-card-title {
		font-size: 20px;
	}
}
/* ============================================================
   HUB CONSEILS (page-conseils.php)
   ============================================================ */
.cb-hub {
	background: var(--cb-beige);
	padding: 48px 0 96px;
}

.cb-hub-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ---------- Header hub ---------- */
.cb-hub-header {
	max-width: 760px;
	margin: 24px 0 48px;
}

.cb-hub-title {
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1.1;
	margin: 0 0 16px;
	color: var(--cb-brun);
}

.cb-hub-description {
	font-size: 18px;
	line-height: 1.7;
	color: var(--cb-texte);
}

.cb-hub-description p { margin: 0 0 0.75em; }
.cb-hub-description p:last-child { margin-bottom: 0; }

/* ---------- Filtres par catégorie (pills) ---------- */
.cb-hub-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 40px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--cb-brun-border);
}

.cb-hub-filter {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: var(--cb-blanc);
	border: 1.5px solid var(--cb-brun-border);
	border-radius: 100px;
	color: var(--cb-brun);
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	transition: all 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}

.cb-hub-filter:hover {
	border-color: var(--cb-orange);
	color: var(--cb-orange);
}

.cb-hub-filter.is-active {
	background: var(--cb-brun);
	border-color: var(--cb-brun);
	color: #fff;
}

.cb-hub-filter.is-active .cb-hub-filter-count {
	background: rgba(255, 255, 255, 0.2);
	color: #fff;
}

.cb-hub-filter-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	background: var(--cb-beige-dark);
	color: var(--cb-brun-light);
	border-radius: 100px;
	font-size: 12px;
	font-weight: 700;
}

/* ---------- Grille hub ---------- */
.cb-hub-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}

@media (max-width: 1023px) {
	.cb-hub-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.cb-hub-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
}

/* Animation du filtre : fade + slide léger */
.cb-hub-grid .cb-article-card {
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.cb-hub-grid .cb-article-card.is-hidden {
	display: none;
}

/* ---------- Badge catégorie dans la card ---------- */
.cb-article-card-cat {
	display: inline-block;
	padding: 4px 10px;
	background: var(--cb-beige);
	border-radius: 4px;
	color: var(--cb-orange);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
	align-self: flex-start;
}

/* ---------- État vide du hub ---------- */
.cb-hub-empty {
	text-align: center;
	padding: 60px 24px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	margin-top: 16px;
}

.cb-hub-empty p {
	margin: 0;
	font-size: 16px;
	color: var(--cb-texte-mute);
}

/* ---------- Responsive filters ---------- */
@media (max-width: 600px) {
	.cb-hub {
		padding: 32px 0 64px;
	}

	.cb-hub-wrap {
		padding: 0 20px;
	}

	.cb-hub-header {
		margin: 16px 0 32px;
	}

	.cb-hub-filters {
		margin-bottom: 28px;
		padding-bottom: 20px;
		gap: 8px;
		overflow-x: auto;
		flex-wrap: nowrap;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		margin-left: -20px;
		margin-right: -20px;
		padding-left: 20px;
		padding-right: 20px;
	}

	.cb-hub-filters::-webkit-scrollbar {
		display: none;
	}

	.cb-hub-filter {
		flex-shrink: 0;
		font-size: 14px;
		padding: 8px 14px;
	}
}
/* ============================================================
   PAGE HERO (template-parts/page-hero.php)
   ============================================================ */
.cb-page-hero {
	background: var(--cb-beige);
	padding: 48px 0 64px;
	position: relative;
}

.cb-page-hero-wrap {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ---------- Layout avec image : texte plus large, image réduite ---------- */
.cb-page-hero-with-image .cb-page-hero-wrap {
	display: grid;
	grid-template-columns: 1fr minmax(0, 420px);
	gap: 64px;
	align-items: center;
}

/* ---------- Layout centré (sans image) ---------- */
.cb-page-hero-centered .cb-page-hero-wrap {
	text-align: left;
	max-width: 800px;
}

.cb-page-hero-centered .cb-breadcrumb {
	margin-left: 0;
}

/* ---------- Contenu hero (partie texte) ---------- */
.cb-page-hero-content {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.cb-page-hero .cb-breadcrumb {
	margin-bottom: 0;
}

.cb-page-hero-title {
	font-size: clamp(36px, 5vw, 56px);
	line-height: 1.05;
	margin: 0;
	color: var(--cb-brun);
	letter-spacing: -0.01em;
}

.cb-page-hero-subtitle {
	font-size: 18px;
	line-height: 1.6;
	color: var(--cb-texte);
	margin: 0;
	max-width: 600px;
}

/* ---------- Média (image à droite) ---------- */
.cb-page-hero-media {
	position: relative;
	border-radius: var(--cb-radius-lg);
	overflow: hidden;
	border: 2px solid var(--cb-brun-border);
	aspect-ratio: 4 / 3;
	background: var(--cb-beige-dark);
}

.cb-page-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ---------- Section contenu après le hero ---------- */
.cb-page-content {
	background: var(--cb-blanc);
	padding: 64px 0 96px;
}

.cb-page-content .cb-container {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ---------- Responsive tablet ---------- */
@media (max-width: 1023px) {

	.cb-page-hero-with-image .cb-page-hero-wrap {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.cb-page-hero-media {
		order: 2;
		max-width: 600px;
		margin: 0 auto;
		width: 100%;
	}

	.cb-page-hero-content {
		order: 1;
	}
}

/* ---------- Responsive mobile ---------- */
@media (max-width: 600px) {

	.cb-page-hero {
		padding: 32px 0 48px;
	}

	.cb-page-hero-wrap {
		padding: 0 20px;
	}

	.cb-page-hero-subtitle {
		font-size: 16px;
	}

	.cb-page-content {
		padding: 40px 0 64px;
	}

	.cb-page-content .cb-container {
		padding: 0 20px;
	}

	.cb-page-hero-media {
		border-width: 1px;
	}
}
/* ============================================================
   BLOC STORY (template-parts/blocks/story.php)
   ============================================================ */
.cb-story {
	background: var(--cb-blanc);
	padding: 80px 0;
	position: relative;
}

.cb-story-wrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}

/* ---------- Header du bloc (titre + intro) ---------- */
.cb-story-header {
	max-width: 760px;
	margin: 0 auto 64px;
	text-align: center;
}

.cb-story-eyebrow {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin: 0 0 16px;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.cb-story-eyebrow::before,
.cb-story-eyebrow::after {
	content: '';
	display: block;
	width: 32px;
	height: 2px;
	background: var(--cb-orange);
	border-radius: 2px;
}

.cb-story-title {
	font-size: clamp(32px, 4.5vw, 48px);
	line-height: 1.1;
	margin: 0 0 24px;
	color: var(--cb-brun);
	letter-spacing: -0.01em;
}

.cb-story-intro {
	font-size: 18px;
	line-height: 1.7;
	color: var(--cb-texte);
}

.cb-story-intro p { margin: 0 0 0.75em; }
.cb-story-intro p:last-child { margin-bottom: 0; }

/* ---------- Timeline 3 étapes (grid 3 colonnes) ---------- */
.cb-story-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	position: relative;
}

/* Ligne horizontale qui relie les étapes sur desktop */
.cb-story-steps::before {
	content: '';
	position: absolute;
	top: 44px;
	left: 12%;
	right: 12%;
	height: 2px;
	background: linear-gradient(to right, transparent, var(--cb-brun-border) 20%, var(--cb-brun-border) 80%, transparent);
	z-index: 0;
}

/* ---------- Card d'une étape ---------- */
.cb-story-step {
	position: relative;
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 32px 28px;
	z-index: 1;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.cb-story-step:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(61, 42, 30, 0.08);
	border-color: var(--cb-orange);
}

/* ---------- Header de l'étape (numéro + icône) ---------- */
.cb-story-step-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.cb-story-step-number {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: 44px;
	line-height: 1;
	color: var(--cb-orange);
	letter-spacing: -0.02em;
}

.cb-story-step-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: var(--cb-blanc);
	border: 1.5px solid var(--cb-brun-border);
	border-radius: 12px;
	color: var(--cb-brun);
	transition: all 0.2s;
}

.cb-story-step:hover .cb-story-step-icon {
	background: var(--cb-orange);
	border-color: var(--cb-orange);
	color: #fff;
	transform: scale(1.05);
}

/* ---------- Titre H3 de l'étape ---------- */
.cb-story-step-title {
	font-size: 22px;
	line-height: 1.25;
	margin: 0 0 14px;
	color: var(--cb-brun);
}

/* ---------- Contenu de l'étape ---------- */
.cb-story-step-content {
	font-size: 15px;
	line-height: 1.7;
	color: var(--cb-texte);
}

.cb-story-step-content p { margin: 0 0 0.75em; }
.cb-story-step-content p:last-child { margin-bottom: 0; }

.cb-story-step-content strong {
	color: var(--cb-brun);
	font-weight: 700;
}

/* ---------- Outro (conclusion en pied de bloc) ---------- */
.cb-story-outro {
	max-width: 720px;
	margin: 64px auto 0;
	text-align: center;
	font-style: italic;
	font-size: 17px;
	line-height: 1.7;
	color: var(--cb-brun-light);
	position: relative;
	padding-top: 32px;
}

.cb-story-outro::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 48px;
	height: 2px;
	background: var(--cb-orange);
	border-radius: 2px;
}

.cb-story-outro p { margin: 0 0 0.5em; }
.cb-story-outro p:last-child { margin-bottom: 0; }

/* ---------- Responsive tablet ---------- */
@media (max-width: 1023px) {
	.cb-story-steps {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.cb-story-steps::before {
		display: none;
	}

	.cb-story-step {
		padding: 28px 24px;
	}

	.cb-story-step-number {
		font-size: 36px;
	}
}

/* ---------- Responsive mobile ---------- */
@media (max-width: 600px) {
	.cb-story {
		padding: 56px 0;
	}

	.cb-story-wrap {
		padding: 0 20px;
	}

	.cb-story-header {
		margin-bottom: 40px;
	}

	.cb-story-intro {
		font-size: 16px;
	}

	.cb-story-step-title {
		font-size: 20px;
	}

	.cb-story-outro {
		margin-top: 40px;
		font-size: 16px;
	}
}

/* ============================================================
   BLOC STATS — Séparateurs verticaux sur fond brun
   Usage : cb_load_block( 'stats' )
   ============================================================ */
.cb-stats {
	background: var(--cb-brun);
	color: #fff;
	padding: 64px 0;
}

.cb-stats-bandeau-inner {
	max-width: 1100px;
	margin: 0 auto;
	padding: 24px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.cb-stat-bandeau {
	flex: 1;
	text-align: center;
	padding: 16px 8px;
}

.cb-stat-bandeau-surtitre {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin-bottom: 12px;
}

.cb-stat-bandeau-number {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: clamp(40px, 5vw, 56px);
	color: var(--cb-blanc);
	line-height: 1;
	letter-spacing: -0.03em;
	margin-bottom: 8px;
}

.cb-stat-bandeau-affix {
	color: var(--cb-orange);
	font-size: 0.6em;
	vertical-align: baseline;
}

.cb-stat-bandeau-label {
	font-size: 13px;
	color: var(--cb-brun-border);
	opacity: 0.9;
}

.cb-stat-bandeau-sep {
	width: 1px;
	height: 80px;
	background: linear-gradient(to bottom, transparent, var(--cb-orange) 30%, var(--cb-orange) 70%, transparent);
	flex-shrink: 0;
}

@media (max-width: 900px) {
	.cb-stats-bandeau-inner {
		flex-direction: column;
		gap: 8px;
	}

	.cb-stat-bandeau-sep {
		width: 80px;
		height: 1px;
		background: linear-gradient(to right, transparent, var(--cb-orange) 30%, var(--cb-orange) 70%, transparent);
	}
}


/* ============================================================
   WOOCOMMERCE - LISTING CATÉGORIES + CARDS VENDEURS
   ============================================================ */

/* Page catégorie — override du layout WC par défaut */
.woocommerce .cb-cat-hero,
.woocommerce-page .cb-cat-hero {
	background: var(--cb-beige);
	padding: 56px 0 24px;
	position: relative;
	overflow: hidden;
	margin: 0;
}
/* ============================================================
   EFFET GLOW HERO : blob flouté marron dans le coin haut-droit
   Appliqué sur le premier bloc de chaque page
   ============================================================ */
.cb-cat-hero {
	position: relative;
	overflow: hidden;
}
.cb-cat-hero::before {
	content: '';
	position: absolute;
	right: -80px;
	top: -40px;
	width: 360px;
	height: 360px;
	background: var(--cb-brun-border);
	border-radius: 50%;
	opacity: .35;
	filter: blur(40px);
	pointer-events: none;
	z-index: 0;
}
/* S'assurer que le contenu reste au-dessus du blob */
.cb-cat-hero > * {
	position: relative;
	z-index: 1;
}
.cb-cat-hero-inner {
	max-width: var(--cb-container);
	margin: 0 auto;
	padding: 0 40px;
	position: relative;
}
.cb-breadcrumb {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-texte-mute);
	margin-bottom: 20px;
}
.cb-breadcrumb a {
	color: var(--cb-texte-mute);
	text-decoration: none;
	transition: color .2s;
}
.cb-breadcrumb a:hover { color: var(--cb-orange); }

.cb-cat-title {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: clamp(32px, 3.5vw, 48px);
	line-height: 1;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
	letter-spacing: -0.02em;
}
.cb-cat-subtitle {
	font-family: var(--cb-font-texte);
	font-style: italic;
	font-size: 19px;
	color: var(--cb-texte-mute);
	max-width: 640px;
	line-height: 1.5;
	margin: 0 0 28px;
}
.cb-cat-stats {
	display: flex;
	gap: 32px;
	flex-wrap: wrap;
}
.cb-cat-stat {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-dark);
}
.cb-cat-stat strong {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: 24px;
	color: var(--cb-orange);
}
.cb-cat-stat-icon {
	width: 20px;
	height: 20px;
	stroke: var(--cb-brun-light);
}

/* Main container */
.cb-cat-main {
	max-width: var(--cb-container);
	margin: 0 auto 80px;
	padding: 16px 40px 32px;
}

/* Toolbar : compteur + tri */
.cb-cat-toolbar {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 24px;
	padding: 0 0 20px;
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-cat-count {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 18px;
	color: var(--cb-brun-dark);
}
.cb-cat-count strong { color: var(--cb-orange); }
.cb-cat-sort {
	display: flex;
	align-items: center;
	margin-left: auto;
	gap: 12px;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-texte-mute);
}
.cb-cat-sort select,
.cb-cat-sort .woocommerce-ordering select {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	padding: 10px 40px 10px 16px;
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	background: var(--cb-blanc);
	color: var(--cb-brun-dark);
	cursor: pointer;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%233d2a1e' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}
.cb-cat-sort .woocommerce-ordering { margin: 0; }

/* Layout grid : sidebar + results */
.cb-cat-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
	align-items: start;
}



/* ============================================================
   FILTRES HORIZONTAUX (desktop)
   ============================================================ */
@media (min-width: 769px) {
	.cb-cat-filters {
		display: block !important;
		padding: 16px 20px !important;
		background: var(--cb-beige) !important;
		border: 1px solid var(--cb-brun-border) !important;
		border-radius: var(--cb-radius-lg) !important;
		position: relative !important;
		top: auto !important;
		margin-bottom: 0;
	}
	.cb-filters-form {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 16px !important;
		align-items: stretch !important;
		width: 100% !important;
		flex-direction: row !important;
	}
	/* Chaque bloc filtre devient un dropdown cliquable */
	.cb-filter-block {
		position: relative;
		padding: 0;
		border: none;
		background: transparent;
		flex: 1 1 0;
		min-width: 0;
	}
	.cb-filter-block details {
		position: relative;
	}
	.cb-filter-block summary {
		display: flex;
		align-items: center;
		line-height: 1;
		gap: 8px;
		padding: 10px 14px;
		background: var(--cb-blanc);
		border: 1px solid var(--cb-brun-border);
		border-radius: var(--cb-radius);
		font-family: var(--cb-font-titre);
		font-weight: 700;
		font-size: 12px;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--cb-brun-dark);
		cursor: pointer;
		user-select: none;
		list-style: none;
		transition: background .15s, border-color .15s, box-shadow .15s;
		white-space: nowrap;
	}
	.cb-filter-block summary > span:first-child { margin-top: 2px; }
	.cb-filter-block summary::-webkit-details-marker { display: none; }
	.cb-filter-block summary::after {
		content: "";
		width: 14px;
		height: 14px;
		background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c0622a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
		transition: transform .2s;
		flex-shrink: 0;
		margin-left: auto;
	}
	.cb-filter-block details[open] summary { background: var(--cb-beige); border-color: var(--cb-orange); }
	.cb-filter-block details[open] summary::after { transform: rotate(180deg); }
	.cb-filter-block summary:hover { background: var(--cb-beige); border-color: var(--cb-brun-light); }
	/* Badge nombre selectionne */
	.cb-filter-block summary .cb-filter-selected-count {
		background: var(--cb-orange);
		color: var(--cb-blanc);
		min-width: 16px;
		height: 16px;
		border-radius: 8px;
		padding: 0 5px;
		font-size: 10px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
	.cb-filter-block summary .cb-filter-selected-count:empty { display: none; }
	/* Dropdown panel */
	.cb-filter-block details[open] .cb-filter-items {
		position: absolute;
		top: calc(100% + 4px);
		left: 0;
		min-width: 240px;
		max-width: 320px;
		background: var(--cb-blanc);
		border: 1px solid var(--cb-brun-border);
		border-radius: var(--cb-radius-lg);
		padding: 14px;
		box-shadow: 0 8px 24px rgba(42, 31, 23, 0.12);
		z-index: 10;
		max-height: 340px;
		overflow-y: auto;
	}
	/* Bouton submit et reset : compacts, inline avec les dropdowns */
	/* Pills prennent l'espace restant, alignées à gauche */
	.cb-filter-block {
		flex: 1 1 0 !important;
		min-width: 0;
		order: 1;
		background: transparent !important;
		border: none !important;
		padding: 0 !important;
		border-radius: 0 !important;
	}
	/* Bloc actions à droite : juste le bouton Appliquer, même taille que les pills */
	.cb-filter-actions {
		display: flex;
		flex: 1 1 0;
		min-width: 0;
		order: 99;
		align-items: stretch;
	}
	.cb-filter-actions .cb-filter-submit {
		margin: 0 !important;
		width: 100% !important;
		padding: 12px 18px !important;
		font-size: 13px !important;
		display: flex;
		align-items: center;
		justify-content: center;
		white-space: nowrap;
	}
}

/* ============================================================
   SIDEBAR FILTRES
   ============================================================ */
.cb-cat-filters {
	position: sticky;
	top: calc(var(--cb-header-h) + 20px);
}
.cb-filters-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cb-filter-block {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 20px;
}
.cb-filter-title {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 14px;
	color: var(--cb-brun-dark);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin: 0 0 14px;
	padding: 0 0 10px;
	border-bottom: 2px solid var(--cb-brun-border);
}
.cb-filter-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 0;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	cursor: pointer;
	line-height: 1.4;
}
.cb-filter-item input[type="checkbox"] {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	width: 20px;
	height: 20px;
	min-width: 20px;
	min-height: 20px;
	border: 2px solid var(--cb-brun-border);
	border-radius: 4px;
	background: var(--cb-blanc);
	cursor: pointer;
	flex-shrink: 0;
	margin: 0;
	position: relative;
	transition: background .15s, border-color .15s;
	padding: 0;
	box-sizing: border-box;
}
.cb-filter-item input[type="checkbox"]:hover {
	border-color: var(--cb-orange);
}
.cb-filter-item input[type="checkbox"]:checked {
	background: var(--cb-orange);
	border-color: var(--cb-orange);
}
.cb-filter-item input[type="checkbox"]:checked::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid var(--cb-blanc);
	border-width: 0 2.5px 2.5px 0;
	transform: rotate(45deg);
}
.cb-filter-item input[type="checkbox"]:focus-visible {
	outline: 2px solid var(--cb-orange);
	outline-offset: 2px;
}
.cb-filter-count {
	margin-left: auto;
	font-size: 12px;
	color: var(--cb-texte-mute);
	font-style: italic;
}
.cb-filter-submit {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 14px;
	padding: 12px 20px;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	border: none;
	border-radius: var(--cb-radius);
	cursor: pointer;
	transition: background .2s;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.cb-filter-submit:hover { background: var(--cb-orange-dark); }

.cb-filter-reset {
	display: block;
	text-align: center;
	padding: 10px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cb-brun);
	background: transparent;
	border: 1px dashed var(--cb-brun-border);
	border-radius: var(--cb-radius-sm);
	text-decoration: none;
	transition: background .2s;
}
.cb-filter-reset:hover { background: var(--cb-beige); }

/* ============================================================
   GRILLE DES CARDS VENDEURS
   ============================================================ */
.cb-cat-results {
	min-width: 0; /* important pour grid */
}
/* Override WC loop start/end */
.cb-cat-results .products,
.cb-cat-results .products.columns-3,
.cb-cat-results ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
.cb-cat-results ul.products::before,
.cb-cat-results ul.products::after { display: none; }
.cb-cat-results .products li {
	width: auto !important;
	margin: 0 !important;
	float: none !important;
	list-style: none !important;
}

/* ============================================================
   CARD VENDEUR
   ============================================================ */
.cb-vendor-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
	display: flex;
	flex-direction: column;
	list-style: none;
	width: 100%;
}
.cb-vendor-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--cb-shadow-lg);
	border-color: var(--cb-orange);
}

.cb-vendor-card-img-link {
	display: block;
	text-decoration: none;
}
.cb-vendor-img {
	aspect-ratio: 16 / 10;
	background: var(--cb-beige);
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-vendor-img-photo {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cb-vendor-img-placeholder {
	width: 80px;
	height: 80px;
	opacity: 0.25;
	color: var(--cb-brun-dark);
}

.cb-vendor-badge-top {
	position: absolute;
	top: 12px;
	left: 12px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	background: var(--cb-brun);
	color: var(--cb-blanc);
	padding: 6px 12px;
	border-radius: 20px;
	z-index: 1;
}

.cb-vendor-rating-top {
	position: absolute;
	top: 12px;
	right: 12px;
	background: var(--cb-blanc);
	padding: 6px 10px;
	border-radius: 20px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	color: var(--cb-brun-dark);
	display: flex;
	align-items: center;
	gap: 4px;
	box-shadow: var(--cb-shadow);
	z-index: 1;
}
.cb-vendor-rating-top .cb-star {
	color: #f5a623;
	font-size: 14px;
}
.cb-vendor-rating-top small {
	color: var(--cb-texte-mute);
	font-weight: 400;
	font-size: 12px;
}

.cb-vendor-body {
	padding: 20px 22px 22px;
	flex: 1;
	display: flex;
	flex-direction: column;
}
.cb-vendor-name {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: 22px;
	line-height: 1.15;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
	letter-spacing: -0.01em;
}
.cb-vendor-name a {
	color: inherit;
	text-decoration: none;
}
.cb-vendor-name a:hover { color: var(--cb-orange); }

.cb-vendor-location {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-texte-mute);
	margin: 0 0 14px;
}
.cb-vendor-pin {
	width: 14px;
	height: 14px;
	opacity: 0.7;
	flex-shrink: 0;
	stroke: currentColor;
}

.cb-vendor-desc {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.55;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	flex: 1;
}

.cb-vendor-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 18px;
}
.cb-vendor-badge {
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 5px 10px;
	border-radius: 6px;
	background: var(--cb-beige-dark);
	color: var(--cb-brun);
	border: 1px solid transparent;
}
.cb-vendor-badge-granules {
	background: #fff3e0;
	color: var(--cb-orange-dark);
}

.cb-vendor-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-top: 16px;
	border-top: 1px dashed var(--cb-brun-border);
	margin-top: auto;
}
.cb-vendor-price {
	font-family: var(--cb-font-titre);
	font-size: 13px;
	color: var(--cb-texte-mute);
	line-height: 1.3;
}
.cb-vendor-price strong {
	display: block;
	font-size: 15px;
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin-top: 2px;
}
.cb-vendor-cta {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	padding: 10px 16px;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	border-radius: var(--cb-radius);
	text-decoration: none;
	transition: background .2s;
	white-space: nowrap;
}
.cb-vendor-cta:hover {
	background: var(--cb-orange-dark);
	color: var(--cb-blanc);
}

/* ============================================================
   EMPTY STATE
   ============================================================ */
/* ============================================================
   Etat vide : aucun vendeur dans la categorie
   ============================================================ */
.cb-cat-empty {
	position: relative;
	text-align: center;
	max-width: 640px;
	margin: 40px auto;
	padding: 64px 48px 56px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	box-shadow: 0 4px 24px rgba(61, 42, 30, 0.06);
	overflow: hidden;
	animation: cb-empty-in .45s ease-out both;
}

@keyframes cb-empty-in {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.cb-cat-empty-icon {
	width: 96px;
	height: 96px;
	margin: 0 auto 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cb-beige);
	border-radius: 50%;
	color: var(--cb-orange);
}
.cb-cat-empty-icon svg {
	width: 56px;
	height: 56px;
	display: block;
}

.cb-cat-empty-title {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 26px;
	line-height: 1.25;
	color: var(--cb-brun-dark);
	margin: 0 0 14px;
}

.cb-cat-empty-text {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	line-height: 1.65;
	color: var(--cb-texte-mute);
	margin: 0 auto 28px;
	max-width: 480px;
}

.cb-cat-empty-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	margin-bottom: 28px;
}

/* Bouton primaire (utilisable partout sur le site) */
.cb-btn-primary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	background: var(--cb-orange);
	border: 1px solid var(--cb-orange);
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cb-blanc);
	text-decoration: none;
	transition: background .2s, border-color .2s;
}
.cb-btn-primary:hover {
	background: var(--cb-orange-dark);
	border-color: var(--cb-orange-dark);
	color: var(--cb-blanc);
}

/* Bouton ghost (utilisable partout sur le site) */
.cb-btn-ghost {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 28px;
	background: transparent;
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cb-brun-dark);
	text-decoration: none;
	transition: background .2s, border-color .2s, color .2s;
}
.cb-btn-ghost:hover {
	background: var(--cb-beige);
	border-color: var(--cb-brun-light);
	color: var(--cb-brun-dark);
}

.cb-cat-empty-note {
	position: relative;
	margin: 0;
	padding-top: 24px;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-texte-mute);
	border-top: 1px solid var(--cb-brun-border);
}
.cb-cat-empty-note a {
	color: var(--cb-orange);
	font-weight: 600;
	text-decoration: none;
	transition: color .2s;
}
.cb-cat-empty-note a:hover {
	color: var(--cb-orange-dark);
	text-decoration: underline;
}

@media (max-width: 640px) {
	.cb-cat-empty {
		padding: 40px 24px 32px;
		margin: 24px auto;
	}
	.cb-cat-empty-icon {
		width: 72px;
		height: 72px;
	}
	.cb-cat-empty-icon svg {
		width: 42px;
		height: 42px;
	}
	.cb-cat-empty-title {
		font-size: 22px;
	}
	.cb-cat-empty-text {
		font-size: 14px;
	}
	.cb-cat-empty-actions {
		flex-direction: column;
	}
	.cb-cat-empty-actions a {
		width: 100%;
	}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
	.cb-cat-results ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* Desktop uniquement : cacher les éléments d'UI du modal mobile */
@media (min-width: 769px) {
	.cb-filters-trigger,
	.cb-filters-backdrop,
	.cb-filters-header {
		display: none !important;
	}
}

@media (max-width: 768px) {
	.cb-cat-hero { padding: 40px 0 16px; }
	.cb-cat-hero-inner { padding: 0 20px; }
	.cb-cat-main { padding: 12px 20px 24px; }
	.cb-cat-layout {
		grid-template-columns: 1fr;
	}
	/* Mobile : filtres cachés par défaut, s'affichent via modal */
	.cb-cat-filters {
		position: fixed;
		inset: 0;
		top: auto;
		left: 0;
		right: 0;
		bottom: 0;
		height: 88vh;
		background: var(--cb-blanc);
		border-radius: 20px 20px 0 0;
		z-index: 1001;
		transform: translateY(100%);
		transition: transform .3s ease;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		padding: 0 20px 100px;
		box-shadow: 0 -8px 32px rgba(0,0,0,0.2);
	}
	.cb-cat-filters.is-open {
		transform: translateY(0);
	}
	.cb-filters-backdrop {
		display: none;
		position: fixed;
		inset: 0;
		background: rgba(42, 31, 23, 0.6);
		z-index: 1000;
		opacity: 0;
		transition: opacity .3s ease;
	}
	.cb-filters-backdrop.is-open {
		display: block;
		opacity: 1;
	}
	.cb-filters-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 20px 0 16px;
		position: sticky;
		top: 0;
		background: var(--cb-blanc);
		border-bottom: 1px solid var(--cb-brun-border);
		margin: 0 0 16px;
		z-index: 2;
	}
	.cb-filters-header-title {
		font-family: var(--cb-font-titre);
		font-weight: 800;
		font-size: 20px;
		color: var(--cb-brun-dark);
		margin: 0;
	}
	.cb-filters-close {
		background: var(--cb-beige);
		border: none;
		width: 36px;
		height: 36px;
		border-radius: 50%;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		color: var(--cb-brun-dark);
		font-size: 20px;
		line-height: 1;
		padding: 0;
	}
	.cb-filters-close:hover { background: var(--cb-beige-dark); }

	/* Le bouton "Appliquer" suit le flux normal du formulaire, juste après le dernier bloc de filtres */
	.cb-cat-filters .cb-filter-submit {
		position: static;
		margin-top: 8px;
		font-size: 16px;
		padding: 16px 20px;
		box-shadow: 0 4px 16px rgba(192, 98, 42, 0.3);
		width: 100%;
	}

	/* Bouton d'ouverture du modal, sticky en bas de page */
	.cb-filters-trigger {
		position: fixed;
		bottom: 20px;
		left: 50%;
		transform: translateX(-50%);
		z-index: 100;
		display: flex;
		align-items: center;
		gap: 8px;
		padding: 14px 28px;
		background: var(--cb-brun-dark);
		color: var(--cb-blanc);
		font-family: var(--cb-font-titre);
		font-weight: 700;
		font-size: 15px;
		border: none;
		border-radius: 50px;
		cursor: pointer;
		box-shadow: 0 6px 20px rgba(0,0,0,0.25);
		transition: transform .2s, background .2s;
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}
	.cb-filters-trigger:hover,
	.cb-filters-trigger:focus {
		background: var(--cb-orange);
	}
	.cb-filters-trigger svg {
		width: 18px;
		height: 18px;
		stroke: currentColor;
	}
	.cb-filters-trigger .cb-filters-count {
		background: var(--cb-orange);
		color: var(--cb-blanc);
		min-width: 20px;
		height: 20px;
		border-radius: 10px;
		padding: 0 6px;
		font-size: 12px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-style: normal;
		margin: 0;
	}
	.cb-filters-trigger .cb-filters-count:empty { display: none; }

	/* Lock body scroll quand modal ouvert */
	body.cb-filters-open { overflow: hidden; }

	.cb-cat-results ul.products {
		grid-template-columns: 1fr;
	}
	.cb-cat-toolbar {
		flex-direction: column;
		align-items: flex-start;
	}
	.cb-cat-stats {
		gap: 20px;
	}
	.cb-cat-stat strong { font-size: 20px; }

	/* Mobile : on affiche tous les blocs filtres dépliés (pas de dropdown) */
	.cb-filter-block {
		border: 1px solid var(--cb-brun-border);
		background: var(--cb-blanc);
		border-radius: var(--cb-radius-lg);
		padding: 16px;
		flex: none;
		width: 100%;
	}
	.cb-filter-block summary {
		font-family: var(--cb-font-titre);
		font-weight: 700;
		font-size: 14px;
		color: var(--cb-brun-dark);
		text-transform: uppercase;
		letter-spacing: 0.06em;
		margin: 0 0 10px;
		padding: 0 0 8px;
		border-bottom: 2px solid var(--cb-brun-border);
		cursor: default;
		list-style: none;
		display: block;
	}
	.cb-filter-block summary::-webkit-details-marker { display: none; }
	.cb-filter-block summary::after { display: none; }
	.cb-filter-block summary .cb-filter-selected-count { display: none; }
	.cb-filter-block details > .cb-filter-items,
	.cb-filter-block details[open] > .cb-filter-items {
		display: block !important;
		position: static !important;
		background: transparent !important;
		border: none !important;
		padding: 0 !important;
		box-shadow: none !important;
		max-height: none !important;
		overflow: visible !important;
		min-width: 0 !important;
	}
}

/* ============================================================
   MASQUER LES ÉLÉMENTS WC PAR DÉFAUT QUI SE DUPLIQUENT
   ============================================================ */
.woocommerce-notices-wrapper { max-width: var(--cb-container); margin: 0 auto; padding: 0 40px; }
.woocommerce .term-description,
.woocommerce-page .term-description { display: none; }

/* Cacher la page title WC (on utilise notre hero) */
.woocommerce-products-header { display: none !important; }

/* Cacher le message "Ce produit est en rupture" sur les fiches produit (prix sur demande) */
.woocommerce-variation-availability,
.woocommerce p.stock.out-of-stock { display: none !important; }


/* ============================================================
   SEARCHBOX DANS FILTRE DÉPARTEMENT
   ============================================================ */
.cb-filter-search {
	position: sticky;
	top: -14px;
	margin: -14px -14px 10px;
	padding: 12px 14px 10px;
	background: var(--cb-blanc);
	border-bottom: 1px solid var(--cb-brun-border);
	border-radius: 12px 12px 0 0;
	z-index: 2;
	display: flex;
	align-items: center;
	gap: 8px;
}
.cb-filter-search-icon {
	width: 16px;
	height: 16px;
	color: var(--cb-brun-light);
	flex-shrink: 0;
}
.cb-filter-search-input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	outline: none;
	padding: 6px 0;
	width: 100%;
	min-width: 0;
}
.cb-filter-search-input::placeholder {
	color: var(--cb-brun-light);
	font-style: italic;
}
.cb-filter-search-input:focus {
	outline: none;
}
.cb-filter-search-empty {
	text-align: center;
	color: var(--cb-brun-light);
	font-size: 13px;
	font-style: italic;
	padding: 20px 10px;
}
/* Items cachés par la recherche */
.cb-filter-item.is-hidden {
	display: none !important;
}
/* Mobile : searchbox moins sticky (dans le modal plein écran) */
@media (max-width: 768px) {
	.cb-filter-search {
		position: relative;
		top: 0;
		margin: 0 0 10px;
		padding: 10px 12px;
		border: 1px solid var(--cb-brun-border);
		border-radius: 8px;
		background: var(--cb-beige);
	}
}


/* ============================================================
   RÉINITIALISER : apparait sous le conteneur de filtres quand une sélection est active
   ============================================================ */
.cb-filter-reset-wrapper {
	display: flex;
	justify-content: flex-end;
	margin: 10px 0 0;
}
.cb-filter-reset-wrapper .cb-filter-reset {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: transparent;
	border: none;
	padding: 4px 0;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cb-brun-light);
	text-decoration: none;
	cursor: pointer;
	transition: color .15s;
}
.cb-filter-reset-wrapper .cb-filter-reset:hover {
	color: var(--cb-orange);
	text-decoration: underline;
}
/* Mobile : on continue à afficher le reset dans le modal (pas touché ici) */
@media (max-width: 768px) {
	.cb-filter-reset-wrapper {
		display: none; /* caché hors modal en mobile */
	}
}


/* ============================================================
   CB-VALUES — Piliers / Valeurs
   ============================================================ */
.cb-values {
	background: var(--cb-blanc);
	padding: clamp(64px, 8vw, 96px) 0;
}
.cb-values-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}
.cb-values-header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 56px;
}
.cb-values-eyebrow {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin: 0 0 12px;
}
.cb-values-titre {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: clamp(28px, 3.5vw, 40px);
	line-height: 1.15;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
}
.cb-values-intro {
	font-family: var(--cb-font-texte);
	font-size: 17px;
	line-height: 1.6;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-values-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}
.cb-value-card {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 32px 24px;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.cb-value-card:hover {
	transform: translateY(-4px);
	border-color: var(--cb-orange);
	box-shadow: 0 12px 32px rgba(42, 31, 23, 0.08);
}
.cb-value-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--cb-blanc);
	color: var(--cb-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
	border: 1px solid var(--cb-brun-border);
}
.cb-value-titre {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 18px;
	line-height: 1.3;
	color: var(--cb-brun-dark);
	margin: 0 0 10px;
}
.cb-value-text {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	line-height: 1.6;
	color: var(--cb-brun-light);
	margin: 0;
}
@media (max-width: 1024px) {
	.cb-values-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.cb-values { padding: 56px 0; }
	.cb-values-inner { padding: 0 20px; }
	.cb-values-grid { grid-template-columns: 1fr; gap: 16px; }
	.cb-value-card { padding: 24px 20px; }
}

/* ============================================================
   CB-QUOTE — Citation mise en scène
   ============================================================ */
.cb-quote {
	background: var(--cb-beige);
	padding: clamp(64px, 8vw, 96px) 0;
	position: relative;
	overflow: hidden;
}
.cb-quote-inner {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 32px;
	position: relative;
	z-index: 1;
}
.cb-quote-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 48px 56px 40px;
	position: relative;
	margin: 0;
	box-shadow: 0 8px 24px rgba(42, 31, 23, 0.06);
}
.cb-quote-mark {
	position: absolute;
	top: 24px;
	left: 32px;
	width: 48px;
	height: 48px;
	color: var(--cb-orange);
	opacity: 0.25;
}
.cb-quote-text {
	font-family: var(--cb-font-serif, 'Sanchez', Georgia, serif);
	font-style: italic;
	font-size: clamp(20px, 2.4vw, 26px);
	line-height: 1.5;
	color: var(--cb-brun-dark);
	margin: 0 0 32px;
	position: relative;
}
.cb-quote-author {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-top: 24px;
	border-top: 1px solid var(--cb-brun-border);
}
.cb-quote-photo {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
	border: 2px solid var(--cb-orange);
}
.cb-quote-author-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.cb-quote-name {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 16px;
	color: var(--cb-brun-dark);
	font-style: normal;
}
.cb-quote-role {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-light);
}
@media (max-width: 640px) {
	.cb-quote-inner { padding: 0 20px; }
	.cb-quote-card { padding: 32px 24px 28px; }
	.cb-quote-mark { top: 16px; left: 16px; width: 36px; height: 36px; }
}

/* ============================================================
   CB-COMMITMENT — Engagements / Manifeste
   ============================================================ */
.cb-commitment {
	background: var(--cb-blanc);
	padding: clamp(64px, 8vw, 96px) 0;
}
.cb-commitment-inner {
	max-width: 880px;
	margin: 0 auto;
	padding: 0 32px;
}
.cb-commitment-header {
	text-align: center;
	margin: 0 auto 48px;
	max-width: 720px;
}
.cb-commitment-eyebrow {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin: 0 0 12px;
}
.cb-commitment-titre {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: clamp(28px, 3.5vw, 40px);
	line-height: 1.15;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
}
.cb-commitment-intro {
	font-family: var(--cb-font-texte);
	font-size: 17px;
	line-height: 1.6;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-commitment-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.cb-commitment-item {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 18px 24px;
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	transition: border-color .2s, background .2s, transform .2s;
}
.cb-commitment-item:hover {
	border-color: var(--cb-orange);
	background: var(--cb-beige-dark);
	transform: translateX(4px);
}
.cb-commitment-check {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	margin-top: 2px;
}
.cb-commitment-text {
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.55;
	color: var(--cb-brun-dark);
}
.cb-commitment-text strong {
	color: var(--cb-brun-dark);
	font-weight: 700;
}
.cb-commitment-cta {
	text-align: center;
	margin-top: 40px;
}
@media (max-width: 640px) {
	.cb-commitment-inner { padding: 0 20px; }
	.cb-commitment-item { padding: 14px 18px; gap: 12px; }
	.cb-commitment-check { width: 24px; height: 24px; }
	.cb-commitment-text { font-size: 15px; }
}

/* ============================================================
   CB-TIMELINE — Frise chronologique
   ============================================================ */
.cb-timeline {
	background: var(--cb-beige);
	padding: clamp(64px, 8vw, 96px) 0;
}
.cb-timeline-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}
.cb-timeline-header {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 56px;
}
.cb-timeline-eyebrow {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin: 0 0 12px;
}
.cb-timeline-titre {
	font-family: var(--cb-font-titre);
	font-weight: 800;
	font-size: clamp(28px, 3.5vw, 40px);
	line-height: 1.15;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
}
.cb-timeline-intro {
	font-family: var(--cb-font-texte);
	font-size: 17px;
	line-height: 1.6;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-timeline-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 0;
	position: relative;
}
/* Ligne de connexion horizontale en desktop */
.cb-timeline-list::before {
	content: "";
	position: absolute;
	top: 18px;
	left: 12%;
	right: 12%;
	height: 2px;
	background: repeating-linear-gradient(to right, var(--cb-brun-border) 0, var(--cb-brun-border) 6px, transparent 6px, transparent 12px);
	z-index: 0;
}
.cb-timeline-step {
	position: relative;
	z-index: 1;
	padding: 0 12px;
	text-align: center;
}
.cb-timeline-marker {
	display: flex;
	justify-content: center;
	margin-bottom: 20px;
}
.cb-timeline-dot {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	border: 3px solid var(--cb-beige);
}
.cb-timeline-dot-done {
	background: var(--cb-orange);
	color: var(--cb-blanc);
}
.cb-timeline-dot-current {
	background: var(--cb-blanc);
	border: 3px solid var(--cb-orange);
}
.cb-timeline-pulse {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--cb-orange);
	animation: cb-timeline-pulse 2s ease-in-out infinite;
}
@keyframes cb-timeline-pulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.3); opacity: 0.6; }
}
.cb-timeline-dot-todo {
	background: var(--cb-blanc);
	border: 3px solid var(--cb-brun-border);
}
.cb-timeline-date {
	display: inline-block;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--cb-orange);
	margin-bottom: 8px;
	padding: 3px 10px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: 100px;
}
.cb-timeline-step-titre {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 17px;
	line-height: 1.3;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
}
.cb-timeline-step-text {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.55;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-timeline-step-todo .cb-timeline-step-titre,
.cb-timeline-step-todo .cb-timeline-step-text {
	opacity: 0.7;
}
@media (max-width: 768px) {
	.cb-timeline-list {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.cb-timeline-list::before {
		left: 20px;
		right: auto;
		top: 0;
		bottom: 0;
		width: 2px;
		height: auto;
		background: repeating-linear-gradient(to bottom, var(--cb-brun-border) 0, var(--cb-brun-border) 6px, transparent 6px, transparent 12px);
	}
	.cb-timeline-step {
		display: grid;
		grid-template-columns: 40px 1fr;
		gap: 16px;
		text-align: left;
		padding: 0 0 32px 0;
	}
	.cb-timeline-marker { margin-bottom: 0; }
	.cb-timeline-content { padding-top: 4px; }
	.cb-timeline-inner { padding: 0 20px; }
}

/* ============================================================
   SHOP ROOT (/shop/) — Select Type de produit dans la toolbar
   ============================================================ */
.cb-cat-type-select {
	display: inline-flex;
	align-items: center;
}

.cb-cat-type-select .cb-type-select-form {
	margin: 0;
}

.cb-cat-type-select .cb-type-select {
	appearance: none;
	-webkit-appearance: none;
	background-color: var(--cb-blanc);
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233d2a1e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 14px;
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 10px 38px 10px 16px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cb-brun-dark);
	cursor: pointer;
	transition: background-color .15s, border-color .15s, box-shadow .15s;
	max-width: 100%;
}

.cb-cat-type-select .cb-type-select:hover {
	border-color: var(--cb-orange);
}

.cb-cat-type-select .cb-type-select:focus {
	outline: none;
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 3px rgba(192, 98, 42, 0.15);
}

/* Mobile : stacker le select au-dessus du tri */
@media (max-width: 768px) {
	.cb-cat-type-select {
		width: 100%;
		margin-right: 0;
		margin-bottom: 10px;
	}
	.cb-cat-type-select .cb-type-select {
		width: 100%;
	}
}


/* ============================================================
   Reset filtres : gestion mobile/desktop
   ============================================================ */
/* Desktop : bouton dans .cb-filter-reset-wrapper (hors modale, sous la barre filtres) */
.cb-filter-reset--mobile { display: none; }

@media (max-width: 768px) {
	/* Mobile : bouton dans la modale, pas celui après aside */
	.cb-filter-reset-wrapper { display: none; }
	.cb-filter-reset--mobile {
		display: inline-flex;
		align-items: center;
		gap: 4px;
		background: transparent;
		border: none;
		padding: 10px 0;
		margin-top: 4px;
		font-family: var(--cb-font-titre);
		font-weight: 700;
		font-size: 12px;
		text-transform: uppercase;
		letter-spacing: 0.05em;
		color: var(--cb-brun-dark);
		text-decoration: none;
		align-self: flex-start;
	}
	.cb-filter-reset--mobile:hover { color: var(--cb-orange); }
}


/* ============================================================
   View toggle : Vendeurs / Offres (toolbar /shop/)
   ============================================================ */
.cb-view-toggle {
	display: inline-flex;
	align-items: stretch;
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 4px;
	gap: 2px;
	margin-left: auto;
}
.cb-view-toggle-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cb-brun-light);
	text-decoration: none;
	border-radius: calc(var(--cb-radius) - 2px);
	transition: background .2s, color .2s;
	line-height: 1;
	white-space: nowrap;
}
.cb-view-toggle-item:hover {
	color: var(--cb-brun-dark);
	background: rgba(255, 255, 255, 0.5);
	text-decoration: none;
}
.cb-view-toggle-item.is-active {
	background: var(--cb-orange);
	color: var(--cb-blanc);
	box-shadow: 0 1px 3px rgba(192, 98, 42, 0.25);
}
.cb-view-toggle-item.is-active:hover {
	background: var(--cb-orange-dark);
	color: var(--cb-blanc);
	text-decoration: none;
}
.cb-view-toggle-icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

@media (max-width: 640px) {
	.cb-view-toggle {
		margin-left: 0;
		width: 100%;
	}
	.cb-view-toggle-item {
		flex: 1;
		justify-content: center;
	}
}

/* ============================================================
   Cards OFFRES (mode ?view=offers) — variation individuelle
   ============================================================ */
.cb-offer-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	overflow: hidden;
	transition: transform .2s, box-shadow .2s, border-color .2s;
}
.cb-offer-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(61, 42, 30, 0.08);
	border-color: var(--cb-brun-light);
}

/* Image + badge */
.cb-offer-img-link {
	position: relative;
	display: block;
	text-decoration: none;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--cb-beige);
}
.cb-offer-img {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-offer-img-media {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cb-offer-img-placeholder {
	width: 48px;
	height: 48px;
	color: var(--cb-brun-light);
	opacity: 0.5;
}
.cb-offer-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	display: inline-flex;
	align-items: center;
	padding: 4px 10px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: 999px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cb-brun-dark);
	box-shadow: 0 1px 3px rgba(61, 42, 30, 0.08);
}
.cb-offer-badge--buche { background: #fff5ec; border-color: #e8b890; color: var(--cb-orange-dark); }
.cb-offer-badge--granule { background: #f0ede8; border-color: #c9b99f; color: var(--cb-brun-dark); }

/* Body */
.cb-offer-body {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 16px 18px;
	flex: 1;
}

.cb-offer-title {
	margin: 0;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 17px;
	line-height: 1.25;
	color: var(--cb-brun-dark);
}
.cb-offer-title a {
	color: inherit;
	text-decoration: none;
}
.cb-offer-title a:hover { color: var(--cb-orange); }

.cb-offer-meta {
	margin: 0;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-texte-mute);
	line-height: 1.4;
}

.cb-offer-vendor,
.cb-offer-dept {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-brun-light);
}
.cb-offer-vendor-icon,
.cb-offer-dept-icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
	color: var(--cb-brun-light);
}
.cb-offer-vendor-link {
	color: var(--cb-brun-dark);
	font-weight: 600;
	text-decoration: none;
}
.cb-offer-vendor-link:hover {
	color: var(--cb-orange);
	text-decoration: underline;
}

/* Footer : prix + CTA */
.cb-offer-footer {
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--cb-brun-border);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.cb-offer-price {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 20px;
	color: var(--cb-orange);
	line-height: 1;
}
.cb-offer-price .woocommerce-Price-amount { color: inherit; }
.cb-offer-price .woocommerce-Price-currencySymbol { font-size: 0.85em; margin-left: 2px; }

.cb-offer-cta {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 8px 14px;
	background: var(--cb-brun-dark);
	border: 1px solid var(--cb-brun-dark);
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cb-blanc);
	text-decoration: none;
	transition: background .2s, border-color .2s;
}
.cb-offer-cta:hover {
	background: var(--cb-orange);
	border-color: var(--cb-orange);
	color: var(--cb-blanc);
	text-decoration: none;
}
.cb-offer-cta span { font-size: 14px; line-height: 1; }

/* Responsive */
@media (max-width: 640px) {
	.cb-offer-body { padding: 14px 16px; }
	.cb-offer-title { font-size: 16px; }
	.cb-offer-price { font-size: 18px; }
}

/* ============================================================
   Nav : item avec méga menu (desktop)
   ============================================================ */
.cb-nav-has-mega {
	position: relative;
}
.cb-nav-mega-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 0;
	background: transparent;
	border: 0;
	cursor: pointer;
	font: inherit;
	color: inherit;
	line-height: 1;
}
.cb-nav-mega-toggle:hover { color: var(--cb-orange); }
.cb-nav-mega-chevron {
	width: 14px;
	height: 14px;
	transition: transform .2s;
}
.cb-nav-mega-toggle[aria-expanded="true"] .cb-nav-mega-chevron {
	transform: rotate(180deg);
}

/* Panneau méga menu */
.cb-mega {
	position: absolute;
	top: calc(100% + 12px);
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
	width: min(420px, calc(100vw - 32px));
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	box-shadow: 0 12px 40px rgba(61, 42, 30, 0.12);
	opacity: 0;
	transform: translateX(-50%) translateY(-8px);
	transition: opacity .18s ease, transform .18s ease;
	pointer-events: none;
}
.cb-mega[hidden] { display: none; }
.cb-mega.is-open {
	opacity: 1;
	transform: translateX(-50%) translateY(0);
	pointer-events: auto;
}

/* Petite flèche pointe-en-haut */
.cb-mega::before {
	content: "";
	position: absolute;
	top: -7px;
	left: 50%;
	transform: translateX(-50%) rotate(45deg);
	width: 12px;
	height: 12px;
	background: var(--cb-blanc);
	border-top: 1px solid var(--cb-brun-border);
	border-left: 1px solid var(--cb-brun-border);
}

.cb-mega-inner {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px;
}

/* Item du méga menu */
.cb-mega .cb-mega-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px;
	border-radius: var(--cb-radius);
	text-decoration: none;
	transition: background .15s;
}
.cb-mega-item:hover {
	background: var(--cb-beige);
	text-decoration: none;
}
.cb-mega-item-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	color: var(--cb-orange);
	transition: background .15s, color .15s;
}
.cb-mega-item:hover .cb-mega-item-icon {
	background: var(--cb-orange);
	color: var(--cb-blanc);
}
.cb-mega-item-icon svg { width: 20px; height: 20px; }
.cb-mega-item-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cb-mega-item-title {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 15px;
	color: var(--cb-brun-dark);
	line-height: 1.2;
}
.cb-mega-item-desc {
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-brun-light);
	line-height: 1.4;
}

/* Backdrop clic-extérieur (optionnel, invisible, utile si on veut fermer en cliquant n'importe où) */
.cb-mega-backdrop {
	position: fixed;
	inset: 0;
	z-index: 99;
	display: none;
}
.cb-mega-backdrop.is-active { display: block; }

/* ============================================================
   Mobile : accordéon "Les produits"
   ============================================================ */
.cb-mobile-sub {
	width: 100%;
}
.cb-mobile-sub > summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	cursor: pointer;
	user-select: none;
	width: 100%;
	color: inherit;
	font: inherit;
}
.cb-mobile-sub > summary::-webkit-details-marker { display: none; }
.cb-mobile-sub-chevron {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	transition: transform .2s;
}
.cb-mobile-sub[open] .cb-mobile-sub-chevron {
	transform: rotate(180deg);
}
.cb-mobile-sub-list {
	list-style: none;
	padding: 12px 0 4px 16px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	border-left: 2px solid var(--cb-brun-border);
	margin-left: 8px;
	margin-top: 10px;
}
.cb-mobile-sub-list a {
	font-size: 16px;
	color: var(--cb-brun-dark);
	text-decoration: none;
}
.cb-mobile-sub-list a:hover { color: var(--cb-orange); }

/* Masquer le méga menu sur mobile (on utilise l'accordéon du burger) */
@media (max-width: 1024px) {
	.cb-nav-mega-toggle,
	.cb-mega { display: none; }
}

/* ============================================================
   Mobile menu : sous-menu Les produits (details/summary)
   Aligné sur les autres items pour cohérence visuelle
   ============================================================ */
.cb-mobile-menu .cb-mobile-has-sub { list-style: none; }

.cb-mobile-menu .cb-mobile-sub > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	font-size: 17px;
	color: var(--cb-brun);
	font-family: var(--cb-font-texte);
	font-weight: 400;
	cursor: pointer;
	list-style: none;
}
.cb-mobile-menu .cb-mobile-sub > summary::-webkit-details-marker,
.cb-mobile-menu .cb-mobile-sub > summary::marker {
	display: none;
}
.cb-mobile-sub-chevron {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	transition: transform .2s;
}
.cb-mobile-menu .cb-mobile-sub[open] .cb-mobile-sub-chevron {
	transform: rotate(180deg);
}

.cb-mobile-menu .cb-mobile-sub-list {
	list-style: none;
	padding-left: 16px;
	margin: 4px 0 8px;
}
.cb-mobile-menu .cb-mobile-sub-list a {
	display: block;
	padding: 10px 16px;
	font-size: 16px;
	color: var(--cb-brun-dark);
	font-family: var(--cb-font-texte);
}

/* ============================================================
   Bloc ALERTE — Message contextuel
   ============================================================ */
.cb-alerte {
	padding: clamp(32px, 5vw, 48px) clamp(16px, 4vw, 24px);
}

.cb-alerte-inner {
	max-width: 800px;
	margin: 0 auto;
	padding: 24px 28px;
	display: flex;
	gap: 20px;
	align-items: flex-start;
	border-radius: var(--cb-radius-lg);
	border: 1px solid;
	position: relative;
	overflow: hidden;
}

/* Variantes de couleur (bordure + fond + couleur d'icône) */
.cb-alerte--info .cb-alerte-inner {
	background: #eef4fb;
	border-color: #c5d8ee;
}
.cb-alerte--info .cb-alerte-icon { background: #2a5a8f; color: #fff; }

.cb-alerte--success .cb-alerte-inner {
	background: #edf6ef;
	border-color: #b7d9bf;
}
.cb-alerte--success .cb-alerte-icon { background: #2d7a3c; color: #fff; }

.cb-alerte--warning .cb-alerte-inner {
	background: #fff5ec;
	border-color: #e8b890;
}
.cb-alerte--warning .cb-alerte-icon { background: var(--cb-orange); color: #fff; }

.cb-alerte--neutral .cb-alerte-inner {
	background: var(--cb-beige);
	border-color: var(--cb-brun-border);
}
.cb-alerte--neutral .cb-alerte-icon { background: var(--cb-brun); color: var(--cb-blanc); }

/* Icône circulaire */
.cb-alerte-icon {
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-alerte-icon svg {
	width: 22px;
	height: 22px;
}

/* Corps */
.cb-alerte-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cb-alerte-titre {
	margin: 0;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: clamp(18px, 2.2vw, 22px);
	color: var(--cb-brun-dark);
	line-height: 1.25;
}

.cb-alerte-texte {
	margin: 0;
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.55;
	color: var(--cb-brun);
}

.cb-alerte-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-top: 8px;
	padding: 10px 18px;
	align-self: flex-start;
	background: var(--cb-brun-dark);
	color: var(--cb-blanc);
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	text-decoration: none;
	transition: background .2s, transform .15s;
}
.cb-alerte-btn:hover {
	background: var(--cb-orange);
	transform: translateY(-1px);
	text-decoration: none;
}
.cb-alerte-btn span { font-size: 16px; line-height: 1; }

/* Responsive */
@media (max-width: 640px) {
	.cb-alerte-inner {
		flex-direction: column;
		gap: 14px;
		padding: 20px;
	}
	.cb-alerte-titre { font-size: 17px; }
	.cb-alerte-texte { font-size: 15px; }
}

/* ============================================================
   Bloc CONTACT — Formulaire
   ============================================================ */
.cb-contact {
	padding: clamp(48px, 8vw, 96px) clamp(16px, 4vw, 24px);
}
.cb-contact-inner {
	max-width: 780px;
	margin: 0 auto;
}
.cb-contact-header {
	margin-bottom: 32px;
	text-align: center;
}
.cb-contact-titre {
	margin: 0 0 12px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: clamp(26px, 3.6vw, 38px);
	color: var(--cb-brun-dark);
	line-height: 1.15;
}
.cb-contact-soustitre {
	margin: 0;
	font-family: var(--cb-font-texte);
	font-size: clamp(16px, 1.8vw, 18px);
	color: var(--cb-brun-light);
	line-height: 1.5;
}

/* Form layout */
.cb-contact-form {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: clamp(24px, 4vw, 40px);
}
.cb-form-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 24px;
}
.cb-form-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.cb-form-field-full {
	grid-column: 1 / -1;
}

.cb-form-field label {
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cb-brun-dark);
}
.cb-form-optional {
	text-transform: none;
	font-weight: 400;
	color: var(--cb-brun-light);
	font-size: 12px;
	letter-spacing: 0;
}
.cb-form-required {
	color: var(--cb-orange);
	font-weight: 700;
}

.cb-form-field input[type="text"],
.cb-form-field input[type="email"],
.cb-form-field input[type="tel"],
.cb-form-field select,
.cb-form-field textarea {
	width: 100%;
	padding: 12px 14px;
	font-family: var(--cb-font-texte);
	font-size: 15px;
	line-height: 1.5;
	color: var(--cb-brun-dark);
	background: var(--cb-blanc);
	border: 1.5px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	transition: border-color .15s, box-shadow .15s;
	box-sizing: border-box;
}
.cb-form-field textarea {
	resize: vertical;
	min-height: 140px;
	font-family: var(--cb-font-texte);
}
.cb-form-field select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='none' stroke='%237a5c45' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 1l5 5 5-5'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 40px;
}
.cb-form-field input:focus,
.cb-form-field select:focus,
.cb-form-field textarea:focus {
	outline: none;
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 3px rgba(192, 98, 42, 0.15);
}
.cb-form-field input[aria-invalid="true"],
.cb-form-field textarea[aria-invalid="true"] {
	border-color: #c0392b;
	background: #fdf4f2;
}
.cb-form-err {
	color: #c0392b;
	font-size: 13px;
	font-family: var(--cb-font-texte);
	margin-top: 2px;
}

/* Checkbox RGPD */
.cb-form-rgpd {
	margin-top: 4px;
}
.cb-form-checkbox {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	cursor: pointer;
	font-family: var(--cb-font-texte);
	font-weight: 400;
	font-size: 14px;
	line-height: 1.5;
	text-transform: none;
	letter-spacing: 0;
	color: var(--cb-brun);
}
.cb-form-checkbox input {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin-top: 2px;
	accent-color: var(--cb-orange);
	cursor: pointer;
}

/* Submit */
.cb-form-submit {
	margin-top: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}
.cb-form-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 32px;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	border: none;
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 15px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	cursor: pointer;
	transition: background .2s, transform .15s, box-shadow .2s;
}
.cb-form-btn:hover {
	background: var(--cb-orange-dark);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(192, 98, 42, 0.25);
}
.cb-form-btn:active {
	transform: translateY(0);
}
.cb-form-btn span { font-size: 18px; line-height: 1; }

.cb-form-note {
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
	font-size: 12px;
	text-transform: none;
	letter-spacing: 0;
}

/* Honeypot */
.cb-hp {
	position: absolute !important;
	left: -9999px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Responsive */
@media (max-width: 640px) {
	.cb-form-grid {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.cb-form-btn {
		width: 100%;
		justify-content: center;
	}
}


/* ============================================================
   Mentions légales — Template dédié page-mentions-legales.php
   ============================================================ */

/* Hero légal sobre */
.cb-mentions-hero {
	background: linear-gradient(180deg, var(--cb-beige) 0%, var(--cb-blanc) 100%);
	padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 32px) clamp(24px, 4vw, 40px);
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-mentions-hero-inner {
	max-width: 960px;
	margin: 0 auto;
}
.cb-mentions-hero .cb-breadcrumb {
	margin-bottom: 16px;
}
.cb-mentions-title {
	margin: 0 0 10px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: clamp(30px, 4.2vw, 46px);
	color: var(--cb-brun-dark);
	line-height: 1.1;
	letter-spacing: -0.01em;
}
.cb-mentions-subtitle {
	margin: 0 0 20px;
	font-family: var(--cb-font-texte);
	font-size: clamp(15px, 1.6vw, 17px);
	color: var(--cb-brun-light);
	line-height: 1.5;
	max-width: 720px;
}
.cb-mentions-meta {
	margin: 0;
	padding-top: 14px;
	border-top: 1px solid var(--cb-brun-border);
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
	font-size: 13px;
}
.cb-mentions-meta strong {
	color: var(--cb-brun-dark);
	font-weight: 600;
}

/* Body 2 colonnes */
.cb-mentions-body {
	background: var(--cb-blanc);
	padding: clamp(40px, 6vw, 72px) clamp(20px, 4vw, 32px) clamp(64px, 8vw, 96px);
}
.cb-mentions-body-inner {
	max-width: 1120px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 48px;
	align-items: start;
}

/* Sommaire sticky */
.cb-mentions-toc {
	position: sticky;
	top: 100px;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
}
.cb-mentions-toc-inner {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 20px 22px;
}
.cb-mentions-toc-title {
	margin: 0 0 14px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-orange);
}
.cb-mentions-toc-list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: cbmtoc;
}
.cb-mentions-toc-list li {
	counter-increment: cbmtoc;
	margin: 0;
}
.cb-mentions-toc-list a {
	display: flex;
	gap: 10px;
	padding: 7px 10px;
	margin-left: -10px;
	font-family: var(--cb-font-texte);
	font-size: 13.5px;
	line-height: 1.4;
	color: var(--cb-brun);
	text-decoration: none;
	border-left: 2px solid transparent;
	transition: color .15s, border-color .15s, background-color .15s;
}
.cb-mentions-toc-list a::before {
	content: counter(cbmtoc) ".";
	font-family: var(--cb-font-titre);
	font-weight: 700;
	color: var(--cb-brun-light);
	flex-shrink: 0;
	min-width: 22px;
}
.cb-mentions-toc-list a:hover {
	color: var(--cb-orange);
}
.cb-mentions-toc-list a.is-active {
	color: var(--cb-orange);
	border-left-color: var(--cb-orange);
	font-weight: 600;
}
.cb-mentions-toc-list a.is-active::before {
	color: var(--cb-orange);
}

/* Contenu principal */
.cb-mentions-content {
	max-width: 720px;
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cb-brun);
	counter-reset: cbmsec;
}
.cb-mentions-content > *:first-child { margin-top: 0; }

.cb-mentions-intro {
	font-size: 17px;
	color: var(--cb-brun-dark);
	margin-bottom: 20px;
}

/* Sections */
.cb-mentions-content section {
	margin-top: 48px;
	padding-top: 28px;
	border-top: 2px solid var(--cb-brun-border);
	counter-increment: cbmsec;
	scroll-margin-top: 100px;
}
.cb-mentions-content section:first-of-type {
	margin-top: 32px;
}

.cb-mentions-content h2 {
	margin: 0 0 16px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: clamp(22px, 2.4vw, 28px);
	color: var(--cb-brun-dark);
	line-height: 1.25;
}
.cb-mentions-content h2::before {
	display: block;
	content: counter(cbmsec, decimal-leading-zero);
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 0.12em;
	color: var(--cb-orange);
	margin-bottom: 6px;
}
.cb-mentions-content h3 {
	margin: 28px 0 10px;
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 18px;
	color: var(--cb-brun-dark);
	line-height: 1.3;
}
.cb-mentions-content p {
	margin: 0 0 16px;
}
.cb-mentions-content a {
	color: var(--cb-orange);
	text-decoration: underline;
	text-underline-offset: 2px;
}
.cb-mentions-content a:hover {
	color: var(--cb-orange-dark);
}
.cb-mentions-content strong {
	color: var(--cb-brun-dark);
	font-weight: 600;
}
.cb-mentions-content ul,
.cb-mentions-content ol {
	margin: 0 0 20px;
	padding-left: 24px;
}
.cb-mentions-content li {
	margin-bottom: 8px;
}
.cb-mentions-content li::marker {
	color: var(--cb-orange);
}

/* Tableau */
.cb-mentions-table {
	width: 100%;
	margin: 24px 0;
	border-collapse: collapse;
	font-size: 14px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	overflow: hidden;
}
.cb-mentions-table th {
	background: var(--cb-beige);
	padding: 12px 14px;
	text-align: left;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--cb-brun-dark);
	border-bottom: 2px solid var(--cb-brun-border);
}
.cb-mentions-table td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--cb-brun-border);
	vertical-align: top;
}
.cb-mentions-table tr:last-child td {
	border-bottom: none;
}

/* Callouts */
.cb-mentions-callout {
	margin: 24px 0;
	padding: 18px 22px;
	border-left: 4px solid var(--cb-orange);
	background: #fdf6ee;
	border-radius: 0 var(--cb-radius) var(--cb-radius) 0;
}
.cb-mentions-callout-title {
	margin: 0 0 8px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cb-orange-dark);
}
.cb-mentions-callout p:last-child {
	margin-bottom: 0;
}
.cb-mentions-callout--info {
	border-left-color: var(--cb-brun-light);
	background: var(--cb-beige);
}
.cb-mentions-callout--info .cb-mentions-callout-title {
	color: var(--cb-brun-dark);
}

/* Bloc contact final */
.cb-mentions-contact-block {
	margin-top: 24px;
	padding: 28px 32px;
	background: var(--cb-brun-dark);
	border-radius: var(--cb-radius-lg);
	text-align: center;
}
.cb-mentions-contact-block p {
	margin: 0 0 8px;
	color: var(--cb-beige);
}
.cb-mentions-contact-title {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 20px;
	color: var(--cb-blanc) !important;
	margin-bottom: 12px !important;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.cb-mentions-contact-email {
	margin-top: 8px !important;
	font-size: 18px;
}
.cb-mentions-contact-block a {
	color: var(--cb-orange);
	font-weight: 600;
	text-decoration: none;
}
.cb-mentions-contact-block a:hover {
	color: var(--cb-beige);
}

/* Responsive */
@media (max-width: 1024px) {
	.cb-mentions-body-inner {
		grid-template-columns: 220px 1fr;
		gap: 32px;
	}
}
@media (max-width: 860px) {
	.cb-mentions-body-inner {
		grid-template-columns: 1fr;
		gap: 0;
	}
	.cb-mentions-toc {
		position: static;
		max-height: none;
		margin-bottom: 32px;
	}
	.cb-mentions-content {
		max-width: 100%;
	}
}

/* ============================================================
   Footer : liens désactivés (pages à venir, pas encore créées)
   — hérite couleur/font du parent, ressemble exactement aux liens voisins
   mais sans URL (évite les 404 côté SEO) et sans soulignage au hover
   ============================================================ */
.cb-footer-link-disabled {
	cursor: default;
	color: inherit;
	font-family: inherit;
	font-size: inherit;
	text-decoration: none;
}

/* ============================================================
   Shortcode [cb_faq] — accordéon FAQ pour les articles blog
   Utilise <details>/<summary> HTML5 natif (accessible clavier + lecteur d'écran)
   Note: !important sur propriétés visuelles à cause d'overrides globaux inexpliqués
   ============================================================ */
.cb-faq {
	margin: clamp(32px, 4vw, 48px) 0 !important;
}
.cb-faq-title {
	font-family: var(--cb-font-titre) !important;
	font-weight: 700 !important;
	font-size: clamp(22px, 2.6vw, 28px) !important;
	color: var(--cb-brun-dark) !important;
	line-height: 1.2 !important;
	margin: 0 0 20px !important;
	letter-spacing: -0.01em !important;
}
.cb-faq-list {
	display: flex !important;
	flex-direction: column !important;
	gap: 8px !important;
}

/* Chaque item — remplace le triangle natif des <details> */
details.cb-faq-item {
	background: var(--cb-blanc) !important;
	border: 1px solid var(--cb-brun-border) !important;
	border-radius: var(--cb-radius) !important;
	overflow: hidden !important;
	transition: border-color .2s, box-shadow .2s !important;
	padding: 0 !important;
}
details.cb-faq-item[open] {
	border: 1px solid var(--cb-orange) !important;
	border-color: var(--cb-orange) !important;
	box-shadow: 0 2px 8px rgba(192, 98, 42, 0.08) !important;
}
details.cb-faq-item:hover {
	border-color: var(--cb-orange) !important;
}
details.cb-faq-item > summary::-webkit-details-marker { display: none !important; }
details.cb-faq-item > summary::marker { content: '' !important; display: none !important; }
details.cb-faq-item > summary { list-style: none !important; }

.cb-faq-question {
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
	padding: 14px 20px !important;
	cursor: pointer !important;
	user-select: none !important;
	font-family: var(--cb-font-titre) !important;
	font-weight: 600 !important;
	font-size: 17px !important;
	line-height: 1.4 !important;
	color: var(--cb-brun-dark) !important;
	transition: background-color .15s !important;
	list-style: none !important;
}
.cb-faq-question:hover {
	background-color: var(--cb-beige) !important;
}
.cb-faq-question:focus-visible {
	outline: 2px solid var(--cb-orange) !important;
	outline-offset: -2px !important;
}
.cb-faq-question-text {
	flex: 1 !important;
}
.cb-faq-icon {
	flex-shrink: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: var(--cb-brun-light) !important;
	transition: transform .25s ease, color .2s !important;
	background: transparent !important;
	border-radius: 0 !important;
	width: auto !important;
	height: auto !important;
}
.cb-faq-icon svg {
	display: block !important;
}
details.cb-faq-item[open] .cb-faq-icon {
	transform: rotate(180deg) !important;
	color: var(--cb-orange) !important;
	background: transparent !important;
}

/* Réponse */
.cb-faq-answer {
	padding: 16px 22px 18px !important;
	font-family: var(--cb-font-texte) !important;
	font-size: 16px !important;
	line-height: 1.65 !important;
	color: var(--cb-brun) !important;
	border-top: 1px solid var(--cb-brun-border) !important;
}
.cb-faq-answer > p:first-child { margin-top: 0 !important; }
.cb-faq-answer > p:last-child  { margin-bottom: 0 !important; }
.cb-faq-answer p {
	margin: 0 0 14px !important;
}
.cb-faq-answer a {
	color: var(--cb-orange) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px !important;
}
.cb-faq-answer a:hover {
	color: var(--cb-orange-dark) !important;
}
.cb-faq-answer ul,
.cb-faq-answer ol {
	margin: 0 0 14px !important;
	padding-left: 22px !important;
}
.cb-faq-answer li { margin-bottom: 6px !important; }
.cb-faq-answer li::marker { color: var(--cb-orange) !important; }
.cb-faq-answer strong { color: var(--cb-brun-dark) !important; }

/* Responsive */
@media (max-width: 640px) {
	.cb-faq-list { gap: 4px !important; }
	.cb-faq-question { padding: 12px 16px !important; font-size: 15.5px !important; gap: 12px !important; }
	.cb-faq-icon { width: 24px !important; height: 24px !important; font-size: 18px !important; }
	.cb-faq-answer { padding: 14px 18px 16px !important; font-size: 15px !important; }
}
/* Fallback via classe JS (contourne le bug mysterieux de [open]) */
details.cb-faq-item.is-faq-open {
	border: 1px solid var(--cb-orange) !important;
	border-color: var(--cb-orange) !important;
	box-shadow: 0 2px 8px rgba(192, 98, 42, 0.08) !important;
}
details.cb-faq-item.is-faq-open .cb-faq-icon {
	transform: rotate(180deg) !important;
	color: var(--cb-orange) !important;
	background: transparent !important;
}

/* ============================================================
   PAGE VENDEUR (single-product.php) — CB_VERSION 3.10.91+
   ============================================================ */
.cb-vendor-page {
	padding-bottom: clamp(40px, 6vw, 80px);
}

/* === HERO VENDEUR === */
.cb-vendor-hero {
	background: linear-gradient(135deg, var(--cb-brun-dark) 0%, var(--cb-brun) 100%);
	color: var(--cb-blanc);
	padding: clamp(40px, 6vw, 72px) 0;
	position: relative;
	overflow: hidden;
}
.cb-vendor-hero::after {
	content: '';
	position: absolute;
	top: -80px; right: -80px;
	width: 380px; height: 380px;
	background: radial-gradient(circle, rgba(192,98,42,.18) 0%, transparent 70%);
	filter: blur(40px);
	pointer-events: none;
	z-index: 0;
}
.cb-vendor-hero-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 clamp(20px, 3vw, 32px);
	display: flex;
	align-items: center;
	gap: clamp(24px, 4vw, 40px);
	position: relative;
	z-index: 1;
}
.cb-vendor-hero-avatar {
	flex: 0 0 140px;
}
.cb-vendor-hero-info {
	flex: 1;
}
.cb-vendor-hero-avatar {
	width: 140px; height: 140px;
	border-radius: 50%;
	overflow: hidden;
	background: var(--cb-beige);
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
.cb-vendor-hero-avatar img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
}
.cb-vendor-hero-initials {
	font-family: var(--cb-font-titre);
	font-size: 56px;
	font-weight: 700;
	color: var(--cb-orange);
	letter-spacing: 0.02em;
}
.cb-vendor-hero-info { min-width: 0; }
.cb-vendor-hero-dept {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0 0 10px;
	padding: 4px 12px;
	background: rgba(192,98,42,.18);
	border: 1px solid rgba(192,98,42,.4);
	border-radius: 99px;
	font-size: 13px;
	font-weight: 600;
	color: #f3c8aa;
	letter-spacing: 0.02em;
}
.cb-vendor-hero-name {
	font-family: var(--cb-font-titre);
	font-size: clamp(28px, 4.4vw, 48px);
	font-weight: 700;
	line-height: 1.1;
	margin: 0 0 8px;
	letter-spacing: -0.02em;
	color: var(--cb-blanc);
}
.cb-vendor-hero-loc {
	margin: 0 0 14px;
	font-size: 15px;
	color: rgba(253,250,246,.75);
	font-family: var(--cb-font-texte);
}
.cb-vendor-hero-rating {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 18px;
	padding: 6px 14px;
	background: rgba(255,255,255,.08);
	border-radius: 8px;
}
.cb-vendor-stars {
	display: inline-flex;
	gap: 2px;
	color: #FBBC05;
}
.cb-vendor-rating-num {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 16px;
	color: var(--cb-blanc);
}
.cb-vendor-rating-count {
	font-size: 13px;
	color: rgba(253,250,246,.65);
}
.cb-vendor-hero-ctas {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 14px;
}
.cb-vendor-hero-ctas .cb-btn {
	padding: 11px 18px !important;
	font-size: 13px !important;
	letter-spacing: 0.04em;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.cb-vendor-hero-ctas .cb-btn-outline {
	background: transparent;
	border-color: rgba(253,250,246,.5);
	color: var(--cb-blanc);
}
.cb-vendor-hero-ctas .cb-btn-outline:hover {
	border-color: var(--cb-blanc);
	background: rgba(255,255,255,.1);
}
.cb-vendor-hero-certifs {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.cb-vendor-certif {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 10px;
	background: rgba(46, 125, 50, 0.18);
	border: 1px solid rgba(46, 125, 50, 0.4);
	border-radius: 99px;
	font-size: 12px;
	color: #a5d6a7;
	font-weight: 600;
}

/* === BODY === */
.cb-vendor-page .cb-vendor-body {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 clamp(20px, 3vw, 32px);
}
.cb-vendor-section {
	margin-top: clamp(36px, 5vw, 56px);
}
.cb-vendor-section-head { margin-bottom: 20px; }
.cb-vendor-section-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
	letter-spacing: -0.01em;
}
.cb-vendor-section-sub {
	margin: 0;
	font-size: 14px;
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
}
.cb-vendor-about-text {
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cb-brun);
	max-width: 760px;
}
.cb-vendor-about-text p { margin: 0 0 14px; }

/* === GRILLE OFFRES === */
.cb-vendor-offers-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.cb-vendor-offer-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	text-decoration: none;
	color: var(--cb-brun-dark);
	transition: transform .15s, border-color .2s, box-shadow .2s;
	cursor: pointer;
}
.cb-vendor-offer-card:hover {
	border-color: var(--cb-orange);
	transform: translateY(-2px);
	box-shadow: 0 6px 20px rgba(192,98,42,.12);
}
.cb-vendor-offer-badge {
	align-self: flex-start;
	padding: 3px 10px;
	border-radius: 4px;
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: var(--cb-beige);
	color: var(--cb-brun);
}
.cb-vendor-offer-badge--buche      { background: #f5e3d4; color: #7a3f1c; }
.cb-vendor-offer-badge--granule    { background: #e7d8b8; color: #6e5210; }
.cb-vendor-offer-essence {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 17px;
	color: var(--cb-brun-dark);
	margin: 4px 0 0;
	line-height: 1.25;
}
.cb-vendor-offer-attrs {
	margin: 0;
	font-size: 13px;
	color: var(--cb-brun-light);
}
.cb-vendor-offer-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px dashed var(--cb-brun-border);
}
.cb-vendor-offer-price {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 18px;
	color: var(--cb-orange);
}
.cb-vendor-offer-price .woocommerce-Price-amount { color: var(--cb-orange); }
.cb-vendor-offer-arrow {
	font-size: 18px;
	color: var(--cb-brun-light);
	transition: transform .2s, color .2s;
}
.cb-vendor-offer-card:hover .cb-vendor-offer-arrow {
	transform: translateX(4px);
	color: var(--cb-orange);
}

/* === LOC + ZONE LIVRAISON === */
.cb-vendor-loc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 24px;
	padding: 24px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius-lg);
}
.cb-vendor-loc-label {
	margin: 0 0 8px;
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-brun-light);
}
.cb-vendor-loc-addr {
	font-style: normal;
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.6;
	color: var(--cb-brun-dark);
}
.cb-vendor-loc-zones {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.cb-vendor-loc-zone {
	display: inline-block;
	padding: 4px 12px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: 99px;
	font-size: 13px;
	color: var(--cb-brun-dark);
	font-weight: 600;
}

/* === BLOC GOOGLE === */
.cb-vendor-google-card {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 18px;
	align-items: center;
	padding: 24px;
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	background: var(--cb-blanc);
}
.cb-vendor-google-logo svg { display: block; }
.cb-vendor-google-label {
	margin: 0 0 4px;
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-brun-light);
}
.cb-vendor-google-rating {
	margin: 0 0 4px;
	font-family: var(--cb-font-texte);
	font-size: 18px;
	color: var(--cb-brun-dark);
}
.cb-vendor-google-rating strong {
	color: var(--cb-orange);
	font-size: 22px;
}
.cb-vendor-google-meta {
	margin: 0;
	font-size: 12px;
	color: var(--cb-brun-light);
	font-style: italic;
}

/* === TRUST LIST === */
.cb-vendor-trust-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}
.cb-vendor-trust-list li {
	display: flex;
	gap: 14px;
	padding: 18px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
}
.cb-vendor-trust-list li svg {
	flex-shrink: 0;
	color: var(--cb-orange);
}
.cb-vendor-trust-list li strong {
	display: block;
	font-family: var(--cb-font-titre);
	font-size: 15px;
	color: var(--cb-brun-dark);
	margin-bottom: 4px;
}
.cb-vendor-trust-list li p {
	margin: 0;
	font-size: 14px;
	color: var(--cb-brun);
	line-height: 1.5;
}

/* === CTA FINAL === */
.cb-vendor-final-cta-card {
	text-align: center;
	padding: clamp(28px, 4vw, 40px);
	background: linear-gradient(135deg, var(--cb-orange) 0%, var(--cb-orange-dark) 100%);
	color: var(--cb-blanc);
	border-radius: var(--cb-radius-lg);
}
.cb-vendor-final-cta-title {
	margin: 0 0 8px;
	font-family: var(--cb-font-titre);
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 700;
	color: var(--cb-blanc);
}
.cb-vendor-final-cta-sub {
	margin: 0 0 18px;
	font-size: 15px;
	color: rgba(253,250,246,.92);
	font-family: var(--cb-font-texte);
}
.cb-vendor-final-cta-btn {
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	padding: 14px 24px !important;
	font-size: 15px !important;
	background: var(--cb-blanc) !important;
	border: 1px solid var(--cb-blanc) !important;
	color: var(--cb-orange) !important;
}
.cb-vendor-final-cta-btn:hover {
	background: var(--cb-brun-dark) !important;
	border-color: var(--cb-brun-dark) !important;
	color: var(--cb-blanc) !important;
}

/* === STICKY MOBILE === */
.cb-vendor-sticky-mobile {
	display: none;
}
@media (max-width: 768px) {
	.cb-vendor-sticky-mobile {
		display: block;
		position: fixed;
		bottom: 0; left: 0; right: 0;
		z-index: 1000;
		padding: 10px 16px;
		background: var(--cb-blanc);
		border-top: 1px solid var(--cb-brun-border);
		box-shadow: 0 -4px 14px rgba(0,0,0,.08);
	}
	.cb-vendor-sticky-tel {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		padding: 12px;
		background: var(--cb-orange);
		color: var(--cb-blanc) !important;
		border-radius: var(--cb-radius);
		font-family: var(--cb-font-titre);
		font-weight: 700;
		font-size: 15px;
		text-decoration: none;
		letter-spacing: 0.04em;
	}
	.cb-vendor-page { padding-bottom: 80px; }
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
	.cb-vendor-hero-inner {
		flex-direction: column;
		text-align: center;
	}
	.cb-vendor-hero-avatar {
		justify-self: center;
		width: 110px; height: 110px;
	}
	.cb-vendor-hero-initials { font-size: 42px; }
	.cb-vendor-hero-ctas {
		justify-content: center;
	}
	.cb-vendor-hero-certifs {
		justify-content: center;
	}
	.cb-vendor-hero-rating {
		justify-content: center;
	}
}

/* ============================================================
   PAGE OFFRE (single-offer.php) — CB_VERSION 3.10.96+
   ============================================================ */
.cb-offer-page {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(16px, 2vw, 24px) clamp(20px, 3vw, 32px) clamp(40px, 6vw, 80px);
}

/* === LAYOUT 2 COLONNES === */
.cb-offer-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: clamp(24px, 3vw, 40px);
	align-items: start;
}
.cb-offer-main { min-width: 0; }
.cb-offer-aside {
	position: sticky;
	top: 160px;
}

/* === HEADER OFFRE === */
.cb-offer-header {
	margin-bottom: 24px;
}
.cb-offer-type-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 4px;
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background: var(--cb-beige);
	color: var(--cb-brun);
	margin-bottom: 12px;
}
.cb-offer-type-badge--buche      { background: #f5e3d4; color: #7a3f1c; }
.cb-offer-type-badge--granule    { background: #e7d8b8; color: #6e5210; }
.cb-offer-page .cb-offer-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(28px, 4vw, 42px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--cb-brun-dark);
	margin: 0 0 6px;
}
.cb-offer-page .cb-offer-subtitle {
	font-family: var(--cb-font-texte);
	font-size: 17px;
	color: var(--cb-brun-light);
	margin: 0;
}

/* === VISUAL === */
.cb-offer-visual {
	width: 100%;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	border-radius: var(--cb-radius-lg);
	background: var(--cb-beige);
	margin-bottom: 32px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-offer-visual img.cb-offer-img,
.cb-offer-visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cb-offer-img-placeholder {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 16px;
	color: var(--cb-brun-light);
	width: 100%;
	height: 100%;
}
.cb-offer-img-placeholder svg {
	width: 80px;
	height: 80px;
	opacity: 0.5;
}
.cb-offer-img-placeholder span {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 18px;
	color: var(--cb-brun);
}

/* === SECTIONS === */
.cb-offer-section {
	margin-bottom: clamp(28px, 4vw, 40px);
}
.cb-offer-section-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(20px, 2.6vw, 26px);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
	letter-spacing: -0.01em;
}

/* === CARACTÉRISTIQUES (DL) === */
.cb-offer-attrs {
	display: block;
	margin: 0;
	border-top: 1px solid var(--cb-brun-border);
}
.cb-offer-attrs > div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-offer-attrs dt {
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-offer-attrs dd {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-dark);
	font-weight: 600;
	text-align: right;
	margin: 0;
}

/* === DESCRIPTION === */
.cb-offer-desc {
	font-family: var(--cb-font-texte);
	font-size: 16px;
	line-height: 1.7;
	color: var(--cb-brun);
}
.cb-offer-desc p { margin: 0 0 14px; }

/* === TRUST SIGNALS === */
.cb-offer-trust {
	margin: 32px 0;
	padding: 20px 24px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
}
.cb-offer-trust-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
}
.cb-offer-trust-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	font-weight: 600;
}
.cb-offer-trust-list li svg {
	flex-shrink: 0;
	color: #2e7d32;
}

/* === AUTRES OFFRES === */
.cb-offer-others-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
}
.cb-offer-other-card {
	display: flex;
	flex-direction: column;
	padding: 16px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	text-decoration: none;
	color: var(--cb-brun-dark);
	transition: border-color .2s, transform .15s, box-shadow .2s;
}
.cb-offer-other-card:hover {
	border-color: var(--cb-orange);
	transform: translateY(-2px);
	box-shadow: 0 4px 14px rgba(192,98,42,.1);
}
.cb-offer-other-name {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 15px;
	color: var(--cb-brun-dark);
	margin: 0 0 4px;
}
.cb-offer-other-attrs {
	font-size: 12px;
	color: var(--cb-brun-light);
	margin: 0 0 12px;
}
.cb-offer-other-foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 10px;
	border-top: 1px dashed var(--cb-brun-border);
}
.cb-offer-other-price {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 16px;
	color: var(--cb-orange);
}
.cb-offer-other-price .woocommerce-Price-amount { color: var(--cb-orange); }

/* === CARTE CONVERSION (sticky droite) === */
.cb-offer-card-conv {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 24px;
	box-shadow: 0 4px 20px rgba(61, 42, 30, 0.06);
}

/* Bloc prix */
.cb-offer-price-block {
	padding-bottom: 20px;
	border-bottom: 1px solid var(--cb-brun-border);
	margin-bottom: 20px;
}
.cb-offer-price-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-brun-light);
	margin: 0 0 4px;
}
.cb-offer-price-value {
	font-family: var(--cb-font-titre);
	font-size: 36px;
	font-weight: 700;
	color: var(--cb-orange);
	line-height: 1;
	margin: 0;
}
.cb-offer-price-value .woocommerce-Price-amount { color: var(--cb-orange); }
.cb-offer-price-unit {
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-brun-light);
	margin: 4px 0 0;
	font-style: italic;
}

/* Mini-card vendeur */
.cb-offer-vendor-mini-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-brun-light);
	margin: 0 0 8px;
}
.cb-offer-vendor-mini-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	background: var(--cb-beige);
	border: 1px solid transparent;
	border-radius: var(--cb-radius);
	text-decoration: none;
	color: var(--cb-brun-dark);
	transition: border-color .2s, background .2s;
}
.cb-offer-vendor-mini-card:hover {
	border-color: var(--cb-orange);
	background: var(--cb-blanc);
}
.cb-offer-vendor-mini-img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	flex-shrink: 0;
}
.cb-offer-vendor-mini-info {
	flex: 1;
	min-width: 0;
}
.cb-offer-vendor-mini-name {
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 14px;
	color: var(--cb-brun-dark);
	margin: 0;
	line-height: 1.2;
}
.cb-offer-vendor-mini-loc {
	font-size: 12px;
	color: var(--cb-brun-light);
	margin: 2px 0 0;
}
.cb-offer-vendor-mini-rating {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 4px 0 0;
	font-size: 12px;
	color: var(--cb-brun);
}
.cb-offer-vendor-mini-rating strong {
	color: var(--cb-brun-dark);
	font-weight: 700;
}
.cb-offer-vendor-mini-rating span { color: var(--cb-brun-light); }
.cb-offer-vendor-mini-arrow {
	font-size: 16px;
	color: var(--cb-brun-light);
	transition: transform .2s, color .2s;
}
.cb-offer-vendor-mini-card:hover .cb-offer-vendor-mini-arrow {
	transform: translateX(3px);
	color: var(--cb-orange);
}

/* Bouton tél géant */
.cb-offer-cta-tel {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	margin-top: 18px;
	padding: 16px 20px;
	background: var(--cb-orange);
	border: 1px solid var(--cb-orange);
	border-radius: var(--cb-radius);
	text-decoration: none;
	color: var(--cb-blanc);
	transition: background .2s, border-color .2s, transform .15s, box-shadow .2s;
	box-shadow: 0 4px 14px rgba(192,98,42,.25);
}
.cb-offer-cta-tel:hover {
	background: var(--cb-orange-dark);
	border-color: var(--cb-orange-dark);
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(192,98,42,.4);
	color: var(--cb-blanc);
}
.cb-offer-cta-tel svg {
	flex-shrink: 0;
	color: var(--cb-blanc);
}
.cb-offer-cta-tel-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
	text-align: left;
}
.cb-offer-cta-tel-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	opacity: 0.85;
}
.cb-offer-cta-tel-num {
	font-family: var(--cb-font-titre);
	font-size: 19px;
	font-weight: 700;
	letter-spacing: 0.02em;
}

/* Livraison + sceau */
.cb-offer-livr,
.cb-offer-seal {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 14px;
	font-size: 13px;
	color: var(--cb-brun-light);
}
.cb-offer-livr svg { color: var(--cb-brun-light); flex-shrink: 0; }
.cb-offer-seal {
	padding-top: 14px;
	border-top: 1px dashed var(--cb-brun-border);
}
.cb-offer-seal svg { color: #2e7d32; flex-shrink: 0; }
.cb-offer-seal strong { color: var(--cb-brun-dark); }

/* === RESPONSIVE === */
@media (max-width: 1024px) {
	.cb-offer-layout {
		grid-template-columns: 1fr;
	}
	.cb-offer-aside {
		position: static;
		order: -1;
		margin-bottom: 24px;
	}
}
@media (max-width: 768px) {
	.cb-offer-card-conv {
		padding: 18px;
	}
	.cb-offer-price-value {
		font-size: 30px;
	}
	.cb-offer-cta-tel-num {
		font-size: 17px;
	}
	.cb-offer-attrs > div {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
	.cb-offer-attrs dd { text-align: left; }
}

/* === BREADCRUMB DANS HERO VENDEUR (fond marron) === */
.cb-vendor-hero-info > .cb-breadcrumb {
	margin-bottom: 14px;
	padding: 0;
	background: transparent;
	border: none;
}
.cb-vendor-hero-info > .cb-breadcrumb .cb-breadcrumb-list {
	flex-wrap: wrap;
	gap: 6px;
	font-size: 12px;
	color: rgba(253, 250, 246, 0.65);
}
.cb-vendor-hero-info > .cb-breadcrumb .cb-breadcrumb-list li {
	color: rgba(253, 250, 246, 0.65);
}
.cb-vendor-hero-info > .cb-breadcrumb .cb-breadcrumb-list a {
	color: rgba(253, 250, 246, 0.85) !important;
	text-decoration: none;
	transition: color .2s;
}
.cb-vendor-hero-info > .cb-breadcrumb .cb-breadcrumb-list a:hover {
	color: var(--cb-orange) !important;
}
.cb-vendor-hero-info > .cb-breadcrumb .cb-breadcrumb-list li + li::before {
	color: rgba(253, 250, 246, 0.4);
}
.cb-vendor-hero-info > .cb-breadcrumb [aria-current="page"] {
	color: rgba(253, 250, 246, 0.95) !important;
	font-weight: 600;
}

/* === Pas de underline au hover sur les cards (effet card + assombrissement bouton suffisent) === */
.cb-vendor-offer-card:hover,
.cb-vendor-offer-card:focus-visible,
.cb-offer-other-card:hover,
.cb-offer-other-card:focus-visible,
.cb-offer-vendor-mini-card:hover,
.cb-offer-vendor-mini-card:focus-visible {
	text-decoration: none !important;
}


/* ============================================================
   ESPACE VENDEUR (vendor-portal) — CB_VERSION 3.11.0+
   ============================================================ */
.cb-vendor-portal {
	max-width: 1200px;
	margin: 0 auto;
	padding: clamp(32px, 4vw, 56px) clamp(20px, 3vw, 32px);
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: clamp(24px, 3vw, 40px);
	min-height: 60vh;
	align-items: start;
}
.cb-vendor-portal:has(.cb-vp-auth-card) {
	grid-template-columns: 1fr;
	justify-items: center;
}
.cb-vendor-portal .cb-vp-content {
	min-width: 0;
}

/* === SIDEBAR === */
.cb-vp-sidebar {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 20px;
	position: sticky;
	top: 100px;
}
.cb-vp-sidebar-greeting {
	margin: 0 0 16px;
	font-size: 13px;
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
}
.cb-vp-sidebar-greeting strong {
	display: block;
	color: var(--cb-brun-dark);
	font-size: 15px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	margin-top: 2px;
}
.cb-vp-nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.cb-vp-nav-item {
	display: block;
	padding: 11px 14px;
	color: var(--cb-brun-dark);
	text-decoration: none;
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 14px;
	border-radius: 8px;
	transition: background .15s ease, color .15s ease;
}
.cb-vp-nav-item:hover {
	background: var(--cb-beige);
	color: var(--cb-orange);
	text-decoration: none;
}
.cb-vp-nav-logout {
	margin-top: 16px;
	color: var(--cb-brun-light);
	font-weight: 500;
	font-size: 13px;
}
.cb-vp-nav-logout:hover {
	background: transparent;
	color: var(--cb-orange);
	text-decoration: underline;
}

/* === AUTH CARD (login, lost-pw, register) === */
.cb-vp-auth-card {
	width: 100%;
	max-width: 460px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: clamp(28px, 4vw, 40px);
	box-shadow: 0 4px 20px rgba(61, 42, 30, 0.06);
}
.cb-vp-auth-head {
	text-align: center;
	margin-bottom: 28px;
}
.cb-vp-auth-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--cb-orange);
	margin: 0 0 8px;
}
.cb-vp-auth-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(26px, 3vw, 32px);
	font-weight: 700;
	color: var(--cb-brun-dark);
	letter-spacing: -0.01em;
	margin: 0 0 8px;
}
.cb-vp-auth-sub {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-light);
	line-height: 1.5;
	margin: 0;
}

/* === FORM === */
.cb-vp-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.cb-vp-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.cb-vp-field label {
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 700;
	color: var(--cb-brun-dark);
}
.cb-vp-field input,
.cb-vp-field textarea,
.cb-vp-field select {
	width: 100%;
	padding: 11px 14px;
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-dark);
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	transition: border-color .2s, box-shadow .2s;
}
.cb-vp-field input:focus,
.cb-vp-field textarea:focus,
.cb-vp-field select:focus {
	outline: none;
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 3px rgba(192, 98, 42, 0.15);
}
.cb-vp-submit {
	margin-top: 8px;
	width: 100%;
	justify-content: center;
}
.cb-vp-form-links {
	text-align: center;
	margin-top: 4px;
	font-size: 13px;
}
.cb-vp-form-links a {
	color: var(--cb-brun-light);
	text-decoration: none;
	font-weight: 600;
}
.cb-vp-form-links a:hover {
	color: var(--cb-orange);
}

/* === AUTH ASIDE (CTA inscription) === */
.cb-vp-auth-aside {
	margin-top: 28px;
	padding-top: 24px;
	border-top: 1px solid var(--cb-brun-border);
	text-align: center;
}
.cb-vp-auth-aside-q {
	font-size: 14px;
	color: var(--cb-brun-light);
	margin: 0 0 12px;
}
.cb-vp-cta-register {
	width: 100%;
	justify-content: center;
}

/* === ALERTS === */
.cb-vp-alert {
	padding: 12px 16px;
	border-radius: var(--cb-radius);
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 20px;
}
.cb-vp-alert--error {
	background: #fdecea;
	border: 1px solid #f5c2c0;
	color: #b71c1c;
}
.cb-vp-alert--success {
	background: #e8f5e9;
	border: 1px solid #c8e6c9;
	color: #2e7d32;
}
.cb-vp-alert--info {
	background: #fff8e1;
	border: 1px solid #ffe082;
	color: #6d4c1c;
}

/* === DASHBOARD PAGE === */
.cb-vp-page {
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.cb-vp-page-head {
	margin-bottom: 8px;
}
.cb-vp-page-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(26px, 3vw, 32px);
	font-weight: 700;
	color: var(--cb-brun-dark);
	letter-spacing: -0.01em;
	margin: 0 0 4px;
}
.cb-vp-page-sub {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-vp-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
}
.cb-vp-stat-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 20px;
}
.cb-vp-stat-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-brun-light);
	margin: 0 0 8px;
}
.cb-vp-stat-value {
	font-family: var(--cb-font-titre);
	font-size: 36px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	line-height: 1;
	margin: 0 0 12px;
}
.cb-vp-stat-link {
	font-size: 13px;
	color: var(--cb-orange);
	text-decoration: none;
	font-weight: 600;
}
.cb-vp-stat-link:hover { text-decoration: underline; }
.cb-vp-info-box {
	padding: 16px 20px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	font-size: 14px;
}
.cb-vp-info-box p { margin: 0 0 6px; color: var(--cb-brun-light); }
.cb-vp-info-link {
	color: var(--cb-orange);
	text-decoration: none;
	font-weight: 600;
}
.cb-vp-info-link:hover { text-decoration: underline; }

/* === RESPONSIVE === */
@media (max-width: 768px) {
	.cb-vendor-portal {
		grid-template-columns: 1fr;
	}
	.cb-vp-sidebar {
		position: static;
	}
}

/* === Champ checkbox dans le portail vendeur (CGU) === */
.cb-vp-field--checkbox {
	flex-direction: row !important;
	align-items: flex-start;
	gap: 0;
	margin-top: 4px;
}
.cb-vp-field--checkbox > label {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-weight: 400;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	line-height: 1.5;
	color: var(--cb-brun-light);
}
.cb-vp-field--checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	margin: 0;
	margin-top: 1px;
	accent-color: var(--cb-orange);
	cursor: pointer;
}
.cb-vp-field--checkbox > label > span {
	flex: 1;
}
.cb-vp-field--checkbox a {
	color: var(--cb-orange);
	text-decoration: underline;
}
.cb-vp-field--checkbox a:hover {
	text-decoration: none;
}

/* Hint sous un champ */
.cb-vp-field-hint {
	font-size: 12px;
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
	margin-top: 2px;
}

/* Liste d'erreurs dans alerts */
.cb-vp-alert ul {
	margin: 0;
	padding-left: 18px;
}
.cb-vp-alert ul li {
	margin-bottom: 4px;
}
.cb-vp-alert ul li:last-child { margin-bottom: 0; }


/* === Page vendeur : message si aucune offre publiée === */
.cb-vendor-no-offers .cb-vendor-empty-state {
	background: var(--cb-blanc);
	border: 1px dashed var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: clamp(40px, 6vw, 64px) clamp(20px, 4vw, 40px);
	text-align: center;
}
.cb-vendor-no-offers .cb-vendor-empty-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(20px, 2.5vw, 26px);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
}
.cb-vendor-no-offers .cb-vendor-empty-sub {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-light);
	line-height: 1.5;
	margin: 0;
	max-width: 480px;
	margin: 0 auto;
}


/* ============================================================
   ESPACE VENDEUR — OFFRES (liste + form)
   ============================================================ */

/* === Page head row : titre à gauche + CTA à droite === */
.cb-vp-page-head-row {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	flex-wrap: wrap;
}
.cb-vp-back-link {
	display: inline-block;
	font-size: 13px;
	color: var(--cb-brun-light);
	text-decoration: none;
	font-weight: 600;
	margin-bottom: 8px;
}
.cb-vp-back-link:hover { color: var(--cb-orange); }

/* === Empty state === */
.cb-vp-empty {
	background: var(--cb-blanc);
	border: 1px dashed var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 48px 24px;
	text-align: center;
}
.cb-vp-empty-title {
	font-family: var(--cb-font-titre);
	font-size: 20px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
}
.cb-vp-empty-sub {
	font-size: 14px;
	color: var(--cb-brun-light);
	margin: 0 0 20px;
}

/* === Liste des offres === */
.cb-vp-offers-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.cb-vp-offer-row {
	display: grid;
	grid-template-columns: 80px 1fr auto auto;
	gap: 16px;
	align-items: center;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 16px 20px;
	transition: border-color .15s, transform .15s;
}
.cb-vp-offer-row:hover {
	border-color: var(--cb-orange);
}
.cb-vp-offer-row-thumb {
	width: 80px;
	height: 80px;
	border-radius: var(--cb-radius);
	overflow: hidden;
	background: var(--cb-beige);
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-vp-offer-row-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cb-vp-offer-row-thumb-empty svg {
	width: 40px;
	height: 40px;
	opacity: 0.4;
}
.cb-vp-offer-row-meta {
	min-width: 0;
}
.cb-vp-offer-row-title {
	font-family: var(--cb-font-titre);
	font-size: 16px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 4px;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.cb-vp-offer-row-status {
	font-family: var(--cb-font-titre);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 2px 8px;
	border-radius: 10px;
}
.cb-vp-offer-row-status--success {
	background: #e8f5e9;
	color: #2e7d32;
}
.cb-vp-offer-row-status--warning {
	background: #fff8e1;
	color: #b86a00;
}
.cb-vp-offer-row-status--muted {
	background: var(--cb-beige);
	color: var(--cb-brun-light);
}
.cb-vp-offer-row-attrs {
	font-size: 13px;
	color: var(--cb-brun-light);
	margin: 0;
}
.cb-vp-offer-row-price-val {
	font-family: var(--cb-font-titre);
	font-size: 18px;
	font-weight: 700;
	color: var(--cb-orange);
	white-space: nowrap;
}
.cb-vp-offer-row-price-empty {
	color: var(--cb-brun-light);
	font-size: 18px;
}
.cb-vp-offer-row-actions {
	display: flex;
	gap: 12px;
	align-items: center;
}
.cb-vp-action-link {
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-brun-dark);
	text-decoration: none;
	padding: 6px 12px;
	border-radius: 6px;
	transition: background .15s, color .15s;
}
.cb-vp-action-link:hover {
	background: var(--cb-beige);
	color: var(--cb-orange);
}

/* === Formulaire d'offre === */
.cb-vp-form-wide {
	max-width: 720px;
}
.cb-vp-form-section {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 24px;
	margin-bottom: 16px;
}
.cb-vp-form-section-title {
	font-family: var(--cb-font-titre);
	font-size: 16px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-vp-form-grid-2 {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
}
.cb-vp-form-actions {
	display: flex;
	gap: 12px;
	justify-content: flex-end;
	margin-top: 16px;
}
.cb-vp-photo-preview {
	margin-bottom: 12px;
	padding: 12px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: flex-start;
}
.cb-vp-photo-preview img {
	max-width: 200px;
	height: auto;
	border-radius: 6px;
}
.cb-vp-photo-preview small {
	font-size: 12px;
	color: var(--cb-brun-light);
}

/* === Alert warning (manquait) === */
.cb-vp-alert--warning {
	background: #fff8e1;
	border: 1px solid #ffe082;
	color: #6d4c1c;
}

/* === Responsive === */
@media (max-width: 768px) {
	.cb-vp-offer-row {
		grid-template-columns: 60px 1fr;
		grid-template-areas:
			"thumb meta"
			"thumb price"
			"actions actions";
	}
	.cb-vp-offer-row-thumb { grid-area: thumb; width: 60px; height: 60px; }
	.cb-vp-offer-row-meta { grid-area: meta; }
	.cb-vp-offer-row-price { grid-area: price; }
	.cb-vp-offer-row-actions { grid-area: actions; padding-top: 8px; border-top: 1px solid var(--cb-brun-border); }
	.cb-vp-form-grid-2 { grid-template-columns: 1fr; }
}

/* === Espace vendeur : checkboxes (certifications) + lien actif sidebar === */
.cb-vp-checkbox-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 12px 16px;
}
.cb-vp-checkbox {
	display: flex;
	gap: 10px;
	align-items: center;
	cursor: pointer;
	font-size: 14px;
	color: var(--cb-brun-dark);
}
.cb-vp-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: var(--cb-orange);
	cursor: pointer;
	flex-shrink: 0;
}
.cb-vp-checkbox:hover { color: var(--cb-orange); }

/* Multi-select for zone_livraison */
.cb-vp-form select[multiple] {
	min-height: 140px;
	padding: 8px;
	font-family: var(--cb-font-texte);
}
.cb-vp-form select[multiple] option {
	padding: 4px 8px;
}
.cb-vp-form select[multiple] option:checked {
	background: var(--cb-orange) linear-gradient(0deg, var(--cb-orange) 0%, var(--cb-orange) 100%);
	color: white;
}

/* Lien actif dans la sidebar */
.cb-vp-nav-item--active {
	background: var(--cb-beige);
	color: var(--cb-orange) !important;
	font-weight: 700;
}

/* === USER MENU (header dropdown for logged-in vendors) === */
.cb-user-menu {
	position: relative;
}
.cb-user-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	border: none;
	border-radius: 50%;
	cursor: pointer;
	transition: background .15s ease, transform .15s ease;
}
.cb-user-menu-toggle:hover,
.cb-user-menu-toggle[aria-expanded="true"] {
	background: var(--cb-brun-dark);
}
.cb-user-menu-toggle svg {
	width: 22px;
	height: 22px;
}
.cb-user-menu-panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	min-width: 240px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	box-shadow: 0 10px 30px rgba(61, 42, 30, 0.12);
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	z-index: 100;
}
.cb-user-menu-panel[hidden] {
	display: none;
}
.cb-user-menu-greeting {
	margin: 0 4px 12px;
	font-size: 13px;
	color: var(--cb-brun-light);
	font-family: var(--cb-font-texte);
	line-height: 1.4;
}
.cb-user-menu-greeting strong {
	display: block;
	color: var(--cb-brun-dark);
	font-size: 15px;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	margin-top: 2px;
}
.cb-user-menu-item {
	display: block;
	padding: 9px 12px;
	color: var(--cb-brun-dark);
	text-decoration: none;
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 14px;
	border-radius: 6px;
	transition: background .15s ease, color .15s ease;
}
.cb-user-menu-item:hover {
	background: var(--cb-beige);
	color: var(--cb-orange);
	text-decoration: none;
}
.cb-user-menu-logout {
	margin-top: 12px;
	color: var(--cb-brun-light);
	font-weight: 500;
	font-size: 13px;
}
.cb-user-menu-logout:hover {
	background: transparent;
	color: var(--cb-orange);
	text-decoration: underline;
}

/* === BLOC ARTICLES («Nos derniers articles») === */
.cb-articles {
	padding: clamp(60px, 8vw, 100px) 20px;
	background: var(--cb-blanc);
}
.cb-articles-wrap {
	max-width: 1200px;
	margin: 0 auto;
}
.cb-articles-header {
	text-align: center;
	margin-bottom: 40px;
}
.cb-articles-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--cb-orange);
	margin: 0 0 8px;
}
.cb-articles-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(28px, 4vw, 38px);
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin: 0 0 12px;
	line-height: 1.2;
}
.cb-articles-subtitle {
	font-family: var(--cb-font-texte);
	font-size: 16px;
	color: var(--cb-brun-light);
	max-width: 640px;
	margin: 0 auto;
	line-height: 1.5;
}
.cb-articles-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 28px;
}
@media (max-width: 1023px) {
	.cb-articles-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.cb-articles { padding: 48px 18px 56px; }
	.cb-articles-header { margin-bottom: 28px; }
	.cb-articles-eyebrow { font-size: 12px; }
	.cb-articles-title { font-size: 26px; }
	.cb-articles-subtitle { font-size: 15px; line-height: 1.55; }
	.cb-articles-grid { grid-template-columns: 1fr; gap: 20px; }
	.cb-article-card-body { padding: 18px 20px 20px; gap: 10px; }
	.cb-article-card-title { font-size: 19px; line-height: 1.3; }
	.cb-article-card-excerpt { font-size: 14px; line-height: 1.55; }
	.cb-article-card-meta { padding-top: 10px; font-size: 12px; }
	.cb-article-card-cat { font-size: 10px; padding: 3px 8px; }
	.cb-articles-cta { margin-top: 28px; }
}
.cb-articles-cta {
	text-align: center;
	margin-top: 40px;
}


/* === CB-COUNTDOWN — charte CB === */
.cb-countdown {
	background: var(--cb-brun);
	color: var(--cb-blanc);
	padding: clamp(64px, 8vw, 96px) 20px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.cb-countdown::before {
	content: "";
	position: absolute;
	top: -120px;
	right: -120px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.25), transparent 70%);
	filter: blur(40px);
	pointer-events: none;
	z-index: 0;
}
.cb-countdown-wrap {
	position: relative;
	z-index: 1;
	max-width: 800px;
	margin: 0 auto;
}
.cb-countdown-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 12px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--cb-orange);
	font-weight: 700;
	margin: 0 0 12px;
}
.cb-countdown h2 {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--cb-blanc);
	margin: 0 0 16px;
}
.cb-countdown-subtitle {
	font-family: var(--cb-font-texte);
	font-size: 1.02rem;
	color: var(--cb-beige);
	max-width: 560px;
	margin: 0 auto 48px;
	line-height: 1.6;
}
.cb-countdown-grid {
	display: flex;
	justify-content: center;
	gap: 16px;
	flex-wrap: wrap;
}
.cb-countdown-cell {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(212, 184, 150, 0.2);
	border-radius: var(--cb-radius);
	padding: 24px 28px;
	min-width: 110px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	backdrop-filter: blur(2px);
}
.cb-countdown-num {
	font-family: var(--cb-font-titre);
	font-size: clamp(2.4rem, 6vw, 3.6rem);
	font-weight: 800;
	line-height: 1;
	color: var(--cb-orange);
	font-variant-numeric: tabular-nums;
}
.cb-countdown-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--cb-beige);
	font-weight: 600;
}
@media (max-width: 480px) {
	.cb-countdown-grid { gap: 10px; }
	.cb-countdown-cell { min-width: 70px; padding: 16px 14px; }
	.cb-countdown-num { font-size: 2rem; }
	.cb-countdown-label { font-size: 10px; }
}


/* ============================================================
   CB-NEWSLETTER — capture email pré-launch
   ============================================================ */
.cb-newsletter {
	background: #EDE5D8;
	padding: clamp(56px, 7vw, 88px) 20px;
	position: relative;
	overflow: hidden;
}
.cb-newsletter::before {
	content: "";
	position: absolute;
	top: -100px;
	left: -100px;
	width: 320px;
	height: 320px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.10), transparent 70%);
	filter: blur(50px);
	pointer-events: none;
}
.cb-newsletter-wrap {
	max-width: 600px;
	margin: 0 auto;
	text-align: center;
	position: relative;
	z-index: 1;
}
.cb-newsletter-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cb-orange);
	margin: 0 0 12px;
}
.cb-newsletter-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--cb-brun-dark);
	margin: 0 0 12px;
}
.cb-newsletter-subtitle {
	font-family: var(--cb-font-texte);
	font-size: 1rem;
	line-height: 1.55;
	color: var(--cb-brun-light);
	margin: 0 0 28px;
}
.cb-newsletter-form {
	display: block;
}
.cb-newsletter-input-row {
	display: flex;
	gap: 8px;
	max-width: 480px;
	margin: 0 auto 16px;
}
.cb-newsletter-input-row input[type="email"] {
	flex: 1;
	padding: 14px 18px;
	font-family: var(--cb-font-texte);
	font-size: 15px;
	color: var(--cb-brun-dark);
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.cb-newsletter-input-row input[type="email"]:focus {
	outline: none;
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 3px rgba(192, 98, 42, 0.15);
}
.cb-newsletter-input-row .cb-btn {
	flex-shrink: 0;
	white-space: nowrap;
}
.cb-newsletter-consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	max-width: 480px;
	margin: 0 auto 16px;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-brun-light);
	text-align: left;
	line-height: 1.5;
	cursor: pointer;
}
.cb-newsletter-consent input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	accent-color: var(--cb-orange);
	flex-shrink: 0;
	cursor: pointer;
}
.cb-newsletter-consent a {
	color: var(--cb-orange);
	text-decoration: underline;
}
.cb-newsletter-consent a:hover { color: var(--cb-orange-dark); }
.cb-newsletter-trust {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-family: var(--cb-font-texte);
	font-size: 12px;
	color: var(--cb-brun-light);
	margin: 8px 0 0;
	opacity: 0.85;
}
.cb-newsletter-trust svg {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

/* Flash messages (succès / erreur / info) */
.cb-newsletter-flash {
	max-width: 480px;
	margin: 0 auto 20px;
	padding: 12px 16px;
	border-radius: var(--cb-radius);
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.45;
	text-align: left;
}
.cb-newsletter-flash--success {
	background: #e8f5e9;
	border: 1px solid #a5d6a7;
	color: #1b5e20;
}
.cb-newsletter-flash--error {
	background: #ffebee;
	border: 1px solid #ef9a9a;
	color: #b71c1c;
}
.cb-newsletter-flash--info {
	background: #e3f2fd;
	border: 1px solid #90caf9;
	color: #0d47a1;
}

/* Honeypot — invisible aux humains, visible aux bots */
.cb-newsletter-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

/* sr-only utility (si pas déjà globale) */
.cb-newsletter .sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

/* Mobile */
@media (max-width: 640px) {
	.cb-newsletter-input-row {
		flex-direction: column;
		gap: 10px;
	}
	.cb-newsletter-input-row .cb-btn {
		width: 100%;
	}
}


/* ============================================================
   CB-CALC — Calculateur de besoins en bois énergie
   Layout : Hero custom → Params (1col) → Résultats → Contenu
   ============================================================ */

/* ============ HERO CUSTOM (sans image) ============ */
.cb-calc-hero {
	background: var(--cb-brun-dark);
	color: var(--cb-blanc);
	padding: clamp(64px, 9vw, 110px) 20px clamp(48px, 6vw, 80px);
	position: relative;
	overflow: hidden;
}
.cb-calc-hero::before {
	content: "";
	position: absolute;
	top: -150px;
	right: -100px;
	width: 500px;
	height: 500px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.30), transparent 65%);
	filter: blur(60px);
	pointer-events: none;
	z-index: 0;
}
.cb-calc-hero::after {
	content: "";
	position: absolute;
	bottom: -200px;
	left: -150px;
	width: 600px;
	height: 400px;
	background: radial-gradient(ellipse, rgba(122, 92, 69, 0.25), transparent 70%);
	filter: blur(70px);
	pointer-events: none;
	z-index: 0;
}
.cb-calc-hero-wrap {
	max-width: 1100px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	text-align: center;
}
.cb-calc-hero-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--cb-orange);
	margin: 0 0 16px;
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid rgba(192, 98, 42, 0.35);
	border-radius: 999px;
	background: rgba(192, 98, 42, 0.08);
}
.cb-calc-hero-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(2rem, 5.5vw, 3.6rem);
	font-weight: 800;
	line-height: 1.05;
	margin: 0 0 20px;
	color: var(--cb-blanc);
	letter-spacing: -0.01em;
}
.cb-calc-hero-accent {
	color: var(--cb-orange);
	display: inline-block;
	position: relative;
}
.cb-calc-hero-accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -8px;
	height: 4px;
	background: linear-gradient(90deg, transparent, var(--cb-orange), transparent);
	border-radius: 2px;
}
.cb-calc-hero-lead {
	font-family: var(--cb-font-texte);
	font-size: clamp(1rem, 1.8vw, 1.15rem);
	line-height: 1.6;
	color: var(--cb-beige);
	max-width: 680px;
	margin: 0 auto 36px;
}
.cb-calc-hero-badges {
	display: flex;
	justify-content: center;
	gap: clamp(12px, 2vw, 24px);
	flex-wrap: wrap;
	margin-top: 12px;
}
.cb-calc-hero-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: 14px 22px;
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(212, 184, 150, 0.18);
	border-radius: var(--cb-radius);
	min-width: 110px;
}
.cb-calc-hero-badge-num {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.6rem, 2.8vw, 2.2rem);
	font-weight: 800;
	color: var(--cb-orange);
	line-height: 1;
}
.cb-calc-hero-badge-lbl {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cb-beige);
	font-weight: 600;
	text-align: center;
}

/* ============ FORM (1 colonne, stack vertical) ============ */
.cb-calc {
	background: var(--cb-blanc);
	padding: clamp(40px, 6vw, 72px) 20px;
}
.cb-calc-wrap {
	max-width: 1100px;
	margin: 0 auto;
}
.cb-calc-form {
	display: flex;
	flex-direction: column;
	gap: clamp(24px, 3vw, 40px);
}
.cb-calc-section-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.4rem, 2.4vw, 1.8rem);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 24px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.cb-calc-section-title::before {
	content: "";
	flex-shrink: 0;
	width: 6px;
	height: 28px;
	background: var(--cb-orange);
	border-radius: 2px;
}

/* ============ PARAMÈTRES (grille 2-cols interne) ============ */
.cb-calc-params {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: clamp(24px, 3.5vw, 40px);
}
.cb-calc-params-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(20px, 2.5vw, 28px) clamp(24px, 3vw, 40px);
}
@media (max-width: 720px) {
	.cb-calc-params-grid { grid-template-columns: 1fr; }
}
.cb-calc-field { margin: 0; }
.cb-calc-field--full { grid-column: 1 / -1; }
.cb-calc-label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: var(--cb-font-titre);
	font-size: 14px;
	font-weight: 600;
	color: var(--cb-brun-dark);
	margin-bottom: 10px;
}
.cb-calc-info {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cb-brun-light);
	color: var(--cb-blanc);
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	cursor: help;
	position: relative;
}
.cb-calc-info::after {
	content: attr(data-tooltip);
	position: absolute;
	bottom: 130%;
	left: 50%;
	transform: translateX(-50%);
	background: var(--cb-brun-dark);
	color: var(--cb-blanc);
	font-family: var(--cb-font-texte);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
	padding: 8px 12px;
	border-radius: var(--cb-radius);
	width: max-content;
	max-width: 240px;
	text-align: left;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s;
	z-index: 10;
	white-space: normal;
	box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.cb-calc-info:hover::after,
.cb-calc-info:focus::after { opacity: 1; }

/* Sliders */
.cb-calc-slider-row {
	display: flex;
	align-items: center;
	gap: 16px;
}
.cb-calc-slider {
	flex: 1;
	-webkit-appearance: none;
	appearance: none;
	height: 6px;
	border-radius: 3px;
	background: var(--cb-brun-border);
	outline: none;
	cursor: pointer;
}
.cb-calc-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cb-orange);
	border: 3px solid var(--cb-blanc);
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
	cursor: grab;
	transition: transform 0.1s;
}
.cb-calc-slider::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.1); }
.cb-calc-slider::-moz-range-thumb {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cb-orange);
	border: 3px solid var(--cb-blanc);
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
	cursor: grab;
	border-style: solid;
}
.cb-calc-value {
	font-family: var(--cb-font-titre);
	font-size: 16px;
	font-weight: 700;
	color: var(--cb-orange);
	min-width: 80px;
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* Selects */
.cb-calc-select {
	width: 100%;
	padding: 12px 16px;
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	cursor: pointer;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.cb-calc-select:focus {
	outline: none;
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 3px rgba(192, 98, 42, 0.15);
}

/* Cards (type appareil) */
.cb-calc-cards {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 10px;
}
@media (max-width: 720px) { .cb-calc-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .cb-calc-cards { grid-template-columns: 1fr; } }
.cb-calc-card-input { position: absolute; opacity: 0; pointer-events: none; }
.cb-calc-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4px;
	padding: 14px 10px;
	background: var(--cb-blanc);
	border: 2px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	cursor: pointer;
	transition: all 0.15s;
}
.cb-calc-card:hover {
	border-color: var(--cb-orange);
	background: rgba(192, 98, 42, 0.04);
	transform: translateY(-1px);
}
.cb-calc-card-input:checked + .cb-calc-card {
	border-color: var(--cb-orange);
	background: rgba(192, 98, 42, 0.08);
	box-shadow: 0 4px 12px rgba(192, 98, 42, 0.18);
}
.cb-calc-card-input:focus-visible + .cb-calc-card {
	outline: 2px solid var(--cb-orange);
	outline-offset: 2px;
}
.cb-calc-card .cb-calc-card-icon {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--cb-radius);
	background: var(--cb-brun) !important;
	color: var(--cb-orange) !important;
	margin-bottom: 8px;
	transition: background 0.2s, color 0.2s, transform 0.2s;
}
.cb-calc-card-icon svg { width: 22px; height: 22px; display: block; }
.cb-calc-card[aria-pressed="true"] .cb-calc-card-icon,
.cb-calc-card.is-active .cb-calc-card-icon {
	background: var(--cb-orange);
	color: var(--cb-blanc);
}
.cb-calc-card:hover .cb-calc-card-icon { transform: scale(1.05); }
.cb-calc-card-title {
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-brun-dark);
	line-height: 1.2;
}
.cb-calc-card-meta {
	font-family: var(--cb-font-texte);
	font-size: 11px;
	color: var(--cb-brun-light);
}

/* Toggle */
.cb-calc-toggle {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 4px;
}
.cb-calc-toggle-input { position: absolute; opacity: 0; pointer-events: none; }
.cb-calc-toggle-label {
	text-align: center;
	padding: 10px;
	font-family: var(--cb-font-titre);
	font-size: 13px;
	font-weight: 600;
	color: var(--cb-brun-light);
	cursor: pointer;
	border-radius: calc(var(--cb-radius) - 2px);
	transition: all 0.15s;
}
.cb-calc-toggle-input:checked + .cb-calc-toggle-label {
	background: var(--cb-orange);
	color: var(--cb-blanc);
}

/* ============ RÉSULTATS (en dessous, pleine largeur) ============ */
.cb-calc-results {
	background: linear-gradient(135deg, var(--cb-brun) 0%, var(--cb-brun-dark) 100%);
	border-radius: var(--cb-radius-lg);
	padding: clamp(28px, 4vw, 44px);
	color: var(--cb-blanc);
	position: relative;
	overflow: hidden;
}
.cb-calc-results::before {
	content: "";
	position: absolute;
	top: -120px;
	right: -120px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.20), transparent 70%);
	filter: blur(60px);
	pointer-events: none;
}
.cb-calc-results > * { position: relative; z-index: 1; }
.cb-calc-results .cb-calc-section-title { color: var(--cb-blanc); }
.cb-calc-results .cb-calc-section-title::before { background: var(--cb-orange); }

.cb-calc-result-main {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 28px 24px;
	background: rgba(255,255,255,0.06);
	border: 1px solid rgba(212, 184, 150, 0.2);
	border-radius: var(--cb-radius);
	margin-bottom: 24px;
	text-align: center;
}
.cb-calc-result-label {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cb-beige);
	font-weight: 600;
}
.cb-calc-result-value {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 800;
	color: var(--cb-orange);
	line-height: 1.1;
	font-variant-numeric: tabular-nums;
}

/* Grille des combustibles (3 colonnes en desktop) */
.cb-calc-fuels-title {
	grid-column: 1 / -1;
	font-family: var(--cb-font-titre);
	font-size: 14px;
	font-weight: 700;
	color: var(--cb-blanc);
	margin: 0 0 4px;
	letter-spacing: 0.02em;
}
.cb-calc-fuels {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-top: 8px;
	align-items: stretch;
}
@media (max-width: 720px) { .cb-calc-fuels { grid-template-columns: 1fr; } }
.cb-calc-fuel {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(212, 184, 150, 0.15);
	border-radius: var(--cb-radius);
	padding: 18px 18px;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
	height: 100%;
	justify-content: space-between;
}
.cb-calc-fuel-head { display: flex; align-items: center; gap: 8px; margin: 0; }
.cb-calc-fuel-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: var(--cb-radius);
	background: rgba(192, 98, 42, 0.15);
	color: var(--cb-orange);
	flex-shrink: 0;
}
.cb-calc-fuel-icon svg { width: 20px; height: 20px; display: block; }
.cb-calc-fuel-name {
	font-family: var(--cb-font-titre);
	font-size: 14px;
	font-weight: 600;
	color: var(--cb-blanc);
}
.cb-calc-fuel-body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0;
}
.cb-calc-fuel-qty {
	font-family: var(--cb-font-titre);
	font-size: 22px;
	font-weight: 700;
	color: var(--cb-orange);
	font-variant-numeric: tabular-nums;
	line-height: 1.1;
}
.cb-calc-fuel-cost {
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-beige);
	font-variant-numeric: tabular-nums;
}

.cb-calc-reco {
	margin-top: 20px;
	padding: 14px 16px;
	background: rgba(192, 98, 42, 0.12);
	border-left: 3px solid var(--cb-orange);
	border-radius: 4px;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	line-height: 1.5;
	color: var(--cb-blanc);
}
.cb-calc-reco:empty { display: none; }

.cb-calc-disclaimer {
	display: flex;
	gap: 8px;
	align-items: flex-start;
	margin: 20px 0 0;
	padding-top: 16px;
	border-top: 1px solid rgba(212, 184, 150, 0.15);
	font-family: var(--cb-font-texte);
	font-size: 11px;
	line-height: 1.5;
	color: var(--cb-beige);
	opacity: 0.8;
}
.cb-calc-disclaimer svg { width: 14px; height: 14px; flex-shrink: 0; margin-top: 2px; }

/* ============ CONTENU ÉDITORIAL (asymétrique, premium) ============ */
.cb-calc-content {
	background: var(--cb-beige);
	padding: clamp(56px, 7vw, 96px) 20px;
	position: relative;
	overflow: hidden;
}
.cb-calc-content::before {
	content: "";
	position: absolute;
	top: 100px;
	left: -200px;
	width: 450px;
	height: 450px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.06), transparent 70%);
	filter: blur(50px);
	pointer-events: none;
}
.cb-calc-content-wrap {
	max-width: 920px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
}
.cb-calc-content-intro {
	max-width: 720px;
	margin: 0 auto 56px;
}
.cb-calc-content-lead {
	font-family: var(--cb-font-texte);
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	line-height: 1.65;
	color: var(--cb-brun-dark);
	margin: 0;
}
.cb-calc-dropcap {
	float: left;
	font-family: var(--cb-font-titre);
	font-size: 4.4em;
	line-height: 0.85;
	font-weight: 800;
	color: var(--cb-orange);
	margin: 4px 12px 0 0;
	padding: 4px 0;
}

/* Blocs alternants avec icône */
.cb-calc-content-block {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
	margin-bottom: clamp(40px, 5vw, 64px);
	padding-bottom: clamp(40px, 5vw, 64px);
	border-bottom: 1px solid rgba(122, 92, 69, 0.15);
}
.cb-calc-content-block:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.cb-calc-content-block--reverse {
	grid-template-columns: 1fr 80px;
}
.cb-calc-content-block--reverse .cb-calc-content-block-icon { order: 2; }
.cb-calc-content-block--reverse .cb-calc-content-block-body { order: 1; }
@media (max-width: 720px) {
	.cb-calc-content-block,
	.cb-calc-content-block--reverse { grid-template-columns: 1fr; gap: 16px; }
	.cb-calc-content-block--reverse .cb-calc-content-block-icon { order: 0; }
	.cb-calc-content-block--reverse .cb-calc-content-block-body { order: 0; }
}
.cb-calc-content-block-icon {
	width: 80px;
	height: 80px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--cb-brun);
	border-radius: var(--cb-radius);
	color: var(--cb-orange);
	position: relative;
}
.cb-calc-content-block-icon::after {
	content: "";
	position: absolute;
	inset: -2px;
	border-radius: calc(var(--cb-radius) + 2px);
	border: 2px solid var(--cb-orange);
	opacity: 0.3;
	pointer-events: none;
}
.cb-calc-content-block-icon svg { width: 36px; height: 36px; }
.cb-calc-content-block-body h2 {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.4rem, 2.6vw, 1.85rem);
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
	line-height: 1.2;
	letter-spacing: -0.005em;
}
.cb-calc-content-block-body p {
	font-family: var(--cb-font-texte);
	font-size: 15px;
	line-height: 1.7;
	color: var(--cb-brun-dark);
	margin: 0 0 16px;
}
.cb-calc-content-block-body p:last-child { margin-bottom: 0; }
.cb-calc-content-block-body strong { color: var(--cb-brun-dark); font-weight: 700; }
.cb-calc-content-block-body small {
	font-size: 12px;
	color: var(--cb-brun-light);
	line-height: 1.5;
	display: inline-block;
}

/* Pull-quote (citation encadrée) */
.cb-calc-content-pullquote {
	position: relative;
	margin: 24px 0;
	padding: 20px 24px 20px 32px;
	background: var(--cb-blanc);
	border-left: 4px solid var(--cb-orange);
	border-radius: 0 var(--cb-radius) var(--cb-radius) 0;
	font-family: var(--cb-font-titre);
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	line-height: 1.5;
	color: var(--cb-brun-dark);
	font-weight: 600;
	font-style: italic;
	box-shadow: 0 2px 8px rgba(61, 42, 30, 0.06);
}
.cb-calc-content-pullquote::before {
	content: "“";
	position: absolute;
	left: 8px;
	top: -8px;
	font-family: Georgia, serif;
	font-size: 48px;
	color: var(--cb-orange);
	opacity: 0.3;
	line-height: 1;
	font-style: normal;
}

/* Stats inline */
.cb-calc-content-stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 24px 0;
	padding: 0;
}
@media (max-width: 480px) { .cb-calc-content-stats { grid-template-columns: 1fr; } }
.cb-calc-content-stat {
	padding: 18px 20px;
	background: var(--cb-blanc);
	border-radius: var(--cb-radius);
	border: 1px solid var(--cb-brun-border);
}
.cb-calc-content-stat-num {
	display: block;
	font-family: var(--cb-font-titre);
	font-size: clamp(1.6rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--cb-orange);
	line-height: 1;
	margin-bottom: 8px;
}
.cb-calc-content-stat-lbl {
	display: block;
	font-family: var(--cb-font-texte);
	font-size: 12px;
	line-height: 1.5;
	color: var(--cb-brun-light);
}

/* Pricing rows */
.cb-calc-content-pricetable {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 20px 0;
}
.cb-calc-content-pricerow {
	display: grid;
	grid-template-columns: 32px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 14px 18px;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	transition: border-color 0.15s, transform 0.15s;
}
.cb-calc-content-pricerow:hover {
	border-color: var(--cb-orange);
	transform: translateX(2px);
}
.cb-calc-content-priceicon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: var(--cb-radius);
	background: var(--cb-brun);
	color: var(--cb-orange);
	flex-shrink: 0;
}
.cb-calc-content-priceicon svg { width: 22px; height: 22px; display: block; }
.cb-calc-content-pricelabel { display: flex; flex-direction: column; gap: 2px; }
.cb-calc-content-pricelabel strong {
	font-family: var(--cb-font-titre);
	font-size: 14px;
	color: var(--cb-brun-dark);
	font-weight: 700;
}
.cb-calc-content-pricelabel small {
	font-family: var(--cb-font-texte);
	font-size: 12px;
	color: var(--cb-brun-light);
}
.cb-calc-content-priceval {
	font-family: var(--cb-font-titre);
	font-size: clamp(1rem, 1.8vw, 1.2rem);
	font-weight: 800;
	color: var(--cb-orange);
	white-space: nowrap;
}
.cb-calc-content-priceval small {
	font-family: var(--cb-font-texte);
	font-size: 12px;
	font-weight: 400;
	color: var(--cb-brun-light);
	margin-left: 2px;
}

/* Mobile généraux */
@media (max-width: 640px) {
	.cb-calc-info::after { left: 0; transform: none; max-width: 200px; }
}

/* ============================================================
   HEADER : très petits écrans (Oppo, Galaxy A, vieux SE...)
   Le logo + le burger doivent toujours tenir sur une ligne
   ============================================================ */
@media (max-width: 480px) {
	.cb-header-inner {
		padding: 0 16px;
		gap: 12px;
	}
	.cb-logo-name {
		font-size: 32px;
	}
	.cb-logo-ext {
		font-size: 20px;
	}
	.cb-burger {
		flex-shrink: 0;
	}
}

/* Encore plus étroit (iPhone SE 1ère gén, Galaxy Fold fermé) */
@media (max-width: 360px) {
	.cb-logo-name {
		font-size: 28px;
	}
	.cb-logo-ext {
		font-size: 18px;
	}
}

/* ============================================================
   CB-DV — Page Devenir vendeur
   Page de conversion B2B avec hero, piliers, étapes,
   comparatif, tarifs, FAQ et CTA final
   ============================================================ */

/* Wrapper générique pour toutes les sections */
.cb-dv-wrap {
	max-width: 1100px;
	margin: 0 auto;
}
.cb-dv-wrap--narrow { max-width: 800px; }

.cb-dv-section-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin: 0 0 12px;
	line-height: 1.2;
	letter-spacing: -0.005em;
}
.cb-dv-section-lead {
	font-family: var(--cb-font-texte);
	font-size: clamp(0.95rem, 1.4vw, 1.05rem);
	line-height: 1.65;
	color: var(--cb-brun-light);
	max-width: 700px;
	margin: 0 0 40px;
}

/* ============ HERO ============ */
.cb-dv-hero {
	background: var(--cb-brun-dark);
	color: var(--cb-blanc);
	padding: clamp(72px, 10vw, 120px) 20px clamp(56px, 7vw, 88px);
	position: relative;
	overflow: hidden;
}
.cb-dv-hero::before {
	content: "";
	position: absolute;
	top: -180px;
	right: -120px;
	width: 540px;
	height: 540px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.32), transparent 65%);
	filter: blur(60px);
	pointer-events: none;
	z-index: 0;
}
.cb-dv-hero::after {
	content: "";
	position: absolute;
	bottom: -220px;
	left: -180px;
	width: 640px;
	height: 460px;
	background: radial-gradient(ellipse, rgba(122, 92, 69, 0.28), transparent 70%);
	filter: blur(70px);
	pointer-events: none;
	z-index: 0;
}
.cb-dv-hero-wrap {
	max-width: 900px;
	margin: 0 auto;
	position: relative;
	z-index: 1;
	text-align: center;
}
.cb-dv-hero-eyebrow {
	font-family: var(--cb-font-titre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--cb-orange);
	margin: 0 0 18px;
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid rgba(192, 98, 42, 0.35);
	border-radius: 999px;
	background: rgba(192, 98, 42, 0.08);
}
.cb-dv-hero-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(2rem, 6vw, 3.6rem);
	font-weight: 800;
	line-height: 1.05;
	margin: 0 0 22px;
	color: var(--cb-blanc);
	letter-spacing: -0.01em;
}
.cb-dv-hero-accent {
	color: var(--cb-orange);
	white-space: nowrap;
}
.cb-dv-hero-accent sup { font-size: 0.55em; vertical-align: super; }
.cb-dv-hero-lead {
	font-family: var(--cb-font-texte);
	font-size: clamp(1rem, 1.8vw, 1.15rem);
	line-height: 1.6;
	color: var(--cb-beige);
	max-width: 700px;
	margin: 0 auto 32px;
}
.cb-dv-hero-lead strong { color: var(--cb-blanc); font-weight: 700; }
.cb-dv-hero-ctas {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 28px;
}
.cb-dv-hero-trust {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	justify-content: center;
	gap: clamp(16px, 3vw, 28px);
	flex-wrap: wrap;
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-beige);
}
.cb-dv-hero-trust li {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.cb-dv-check {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	font-weight: 800;
	font-size: 12px;
	flex-shrink: 0;
}

/* Bouton outline-light pour fond brun */
.cb-btn.cb-btn-outline-light {
	background: transparent;
	color: var(--cb-blanc);
	border: 2px solid var(--cb-blanc);
}
.cb-btn.cb-btn-outline-light:hover {
	background: var(--cb-blanc);
	color: var(--cb-brun-dark);
}

/* ============ PILIERS (4 cards) ============ */
.cb-dv-pillars {
	background: var(--cb-blanc);
	padding: clamp(56px, 7vw, 96px) 20px;
}
.cb-dv-pillars-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
@media (max-width: 1023px) { .cb-dv-pillars-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .cb-dv-pillars-grid { grid-template-columns: 1fr; } }
.cb-dv-pillar {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 24px;
	transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.cb-dv-pillar:hover {
	transform: translateY(-3px);
	border-color: var(--cb-orange);
	box-shadow: 0 8px 24px rgba(61, 42, 30, 0.08);
}
.cb-dv-pillar-icon {
	width: 56px;
	height: 56px;
	border-radius: var(--cb-radius);
	background: var(--cb-brun);
	color: var(--cb-orange);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}
.cb-dv-pillar-icon svg { width: 28px; height: 28px; }
.cb-dv-pillar-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(1rem, 1.6vw, 1.15rem);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 10px;
	line-height: 1.25;
}
.cb-dv-pillar p {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.6;
	color: var(--cb-brun-dark);
	margin: 0;
}
.cb-dv-pillar strong { color: var(--cb-brun-dark); font-weight: 700; }

/* ============ ÉTAPES (timeline) ============ */
.cb-dv-steps {
	background: var(--cb-beige);
	padding: clamp(56px, 7vw, 96px) 20px;
}
.cb-dv-timeline {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 28px;
	position: relative;
}
.cb-dv-timeline::before {
	content: "";
	position: absolute;
	left: 27px;
	top: 28px;
	bottom: 28px;
	width: 2px;
	background: var(--cb-brun-border);
	z-index: 0;
}
.cb-dv-step {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 20px;
	align-items: start;
	position: relative;
	z-index: 1;
}
.cb-dv-step-num {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cb-font-titre);
	font-size: 22px;
	font-weight: 800;
	flex-shrink: 0;
	box-shadow: 0 0 0 6px var(--cb-beige);
}
.cb-dv-step-body {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 20px 24px;
}
.cb-dv-step-body h3 {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.05rem, 1.8vw, 1.25rem);
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 8px;
}
.cb-dv-step-body p {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.6;
	color: var(--cb-brun-dark);
	margin: 0;
}

/* ============ COMPARATIF (3 cards) ============ */
.cb-dv-compare {
	background: var(--cb-blanc);
	padding: clamp(56px, 7vw, 96px) 20px;
	position: relative;
	overflow: hidden;
}
.cb-dv-compare::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 600px;
	height: 600px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.06), transparent 70%);
	filter: blur(80px);
	pointer-events: none;
	z-index: 0;
}
.cb-dv-compare > * { position: relative; z-index: 1; }
.cb-dv-compare-cards {
	display: grid;
	grid-template-columns: 1fr 1.15fr 1fr;
	gap: 20px;
	align-items: stretch;
	max-width: 1100px;
	margin: 0 auto;
}
@media (max-width: 1023px) {
	.cb-dv-compare-cards { grid-template-columns: 1fr; gap: 16px; max-width: 480px; }
}

/* Card générique */
.cb-dv-cmp-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 28px 24px 24px;
	transition: transform 0.2s, box-shadow 0.2s;
}

/* Variante alternatives (pas Comparabois) */
.cb-dv-cmp-card--alt {
	opacity: 0.92;
}
.cb-dv-cmp-card--alt:hover {
	opacity: 1;
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(61, 42, 30, 0.06);
}

/* Variante Comparabois (mise en avant) */
.cb-dv-cmp-card--us {
	background: linear-gradient(180deg, var(--cb-blanc) 0%, rgba(245, 240, 232, 0.4) 100%);
	border: 2px solid var(--cb-orange);
	box-shadow: 0 16px 40px rgba(192, 98, 42, 0.18);
	transform: scale(1.04);
	z-index: 2;
	padding-top: 36px;
}
@media (max-width: 1023px) {
	.cb-dv-cmp-card--us { transform: none; padding-top: 36px; }
}

/* Ribbon "Recommandé" */
.cb-dv-cmp-ribbon {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translate(-50%, -50%);
	background: var(--cb-orange);
	color: var(--cb-blanc);
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 6px 18px;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(192, 98, 42, 0.35);
	white-space: nowrap;
}

/* Header de card */
.cb-dv-cmp-head {
	text-align: center;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-dv-cmp-card--us .cb-dv-cmp-head {
	border-bottom-color: rgba(192, 98, 42, 0.25);
}
.cb-dv-cmp-tag {
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cb-brun-light);
	margin: 0 0 6px;
}
.cb-dv-cmp-card--us .cb-dv-cmp-tag {
	color: var(--cb-orange);
}
.cb-dv-cmp-name {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.3rem, 2.4vw, 1.6rem);
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin: 0;
	line-height: 1.1;
}
.cb-dv-cmp-card--us .cb-dv-cmp-name { color: var(--cb-brun-dark); }

/* Liste des features */
.cb-dv-cmp-features {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}
.cb-dv-cmp-features li {
	font-family: var(--cb-font-texte);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--cb-brun-dark);
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding-left: 0;
	position: relative;
}
.cb-dv-cmp-bullet {
	flex-shrink: 0;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
	position: relative;
}

/* État YES (vert) */
.cb-dv-cmp-yes .cb-dv-cmp-bullet {
	background: rgba(77, 140, 90, 0.15);
}
.cb-dv-cmp-yes .cb-dv-cmp-bullet::after {
	content: "";
	width: 12px;
	height: 12px;
	background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234d8c5a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}
.cb-dv-cmp-yes { color: var(--cb-brun-dark); font-weight: 500; }

/* État PARTIAL (jaune) */
.cb-dv-cmp-partial .cb-dv-cmp-bullet {
	background: rgba(217, 162, 59, 0.18);
}
.cb-dv-cmp-partial .cb-dv-cmp-bullet::after {
	content: "";
	width: 10px;
	height: 2px;
	background: #d9a23b;
	border-radius: 1px;
}
.cb-dv-cmp-partial { color: var(--cb-brun-light); }

/* État NO (rouge) */
.cb-dv-cmp-no .cb-dv-cmp-bullet {
	background: rgba(184, 84, 80, 0.15);
}
.cb-dv-cmp-no .cb-dv-cmp-bullet::after {
	content: "";
	width: 12px;
	height: 12px;
	background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b85450' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E") no-repeat center / contain;
}
.cb-dv-cmp-no { color: var(--cb-brun-light); }

/* Card Comparabois : tous les yes en orange (plus visible) */
.cb-dv-cmp-card--us .cb-dv-cmp-yes .cb-dv-cmp-bullet {
	background: var(--cb-orange);
}
.cb-dv-cmp-card--us .cb-dv-cmp-yes .cb-dv-cmp-bullet::after {
	background: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fdfaf6' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}
.cb-dv-cmp-card--us .cb-dv-cmp-yes { color: var(--cb-brun-dark); font-weight: 600; }

/* Coût en bas */
.cb-dv-cmp-cost {
	font-family: var(--cb-font-titre);
	font-size: 14px;
	font-weight: 700;
	text-align: center;
	padding: 14px 16px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	color: var(--cb-brun-dark);
	margin: auto 0 0;
}
.cb-dv-cmp-cost--us {
	background: var(--cb-orange);
	color: var(--cb-blanc);
	font-size: 15px;
	box-shadow: 0 4px 12px rgba(192, 98, 42, 0.25);
}

/* ============ TARIFS ============ */
.cb-dv-pricing {
	background: var(--cb-beige);
	padding: clamp(56px, 7vw, 96px) 20px;
}
.cb-dv-pricing-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}
@media (max-width: 720px) { .cb-dv-pricing-grid { grid-template-columns: 1fr; } }
.cb-dv-price-card {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 28px 26px;
	position: relative;
}
.cb-dv-price-card--main {
	border: 2px solid var(--cb-orange);
	box-shadow: 0 8px 24px rgba(192, 98, 42, 0.12);
}
.cb-dv-price-badge {
	display: inline-block;
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--cb-orange);
	background: rgba(192, 98, 42, 0.10);
	padding: 5px 12px;
	border-radius: 999px;
	margin: 0 0 16px;
}
.cb-dv-price-badge--soon {
	color: var(--cb-brun-light);
	background: var(--cb-beige-dark);
}
.cb-dv-price-title {
	font-family: var(--cb-font-titre);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 12px;
}
.cb-dv-price-amount {
	font-family: var(--cb-font-titre);
	font-size: clamp(2rem, 4vw, 2.6rem);
	font-weight: 800;
	color: var(--cb-orange);
	line-height: 1;
	margin: 0 0 6px;
}
.cb-dv-price-amount--soon {
	font-size: clamp(1.1rem, 2vw, 1.3rem);
	color: var(--cb-brun-light);
	font-weight: 700;
}
.cb-dv-price-meta {
	font-family: var(--cb-font-texte);
	font-size: 13px;
	color: var(--cb-brun-light);
	margin: 0 0 20px;
}
.cb-dv-price-features {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.cb-dv-price-features li {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	padding-left: 26px;
	position: relative;
}
.cb-dv-price-features li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--cb-orange);
	color: var(--cb-blanc);
	font-size: 11px;
	font-weight: 800;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cb-dv-price-soon-note {
	font-family: var(--cb-font-texte);
	font-size: 12px;
	color: var(--cb-brun-light);
	font-style: italic;
	margin: 16px 0 0;
	padding: 12px 14px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	border-left: 3px solid var(--cb-orange);
}

/* ============ FAQ (accordions) ============ */
.cb-dv-faq {
	background: var(--cb-blanc);
	padding: clamp(56px, 7vw, 96px) 20px;
}
.cb-dv-faq-item {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	margin-bottom: 12px;
	overflow: hidden;
	transition: border-color 0.15s, box-shadow 0.15s;
}
.cb-dv-faq-item:hover { border-color: var(--cb-orange); }
.cb-dv-faq-item[open] {
	border-color: var(--cb-orange);
	background: var(--cb-blanc);
	box-shadow: 0 4px 12px rgba(61, 42, 30, 0.06);
}
.cb-dv-faq-item summary {
	list-style: none;
	padding: 18px 50px 18px 22px;
	font-family: var(--cb-font-titre);
	font-size: 15px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	cursor: pointer;
	position: relative;
}
.cb-dv-faq-item summary::-webkit-details-marker { display: none; }
.cb-dv-faq-item summary::after {
	content: "";
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: var(--cb-orange);
	background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fdfaf6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
	transition: transform 0.25s ease;
	flex-shrink: 0;
}
.cb-dv-faq-item[open] summary::after {
	transform: translateY(-50%) rotate(180deg);
}
.cb-dv-faq-body {
	padding: 0 22px 20px;
}
.cb-dv-faq-body p {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.65;
	color: var(--cb-brun-dark);
	margin: 0;
}
.cb-dv-faq-body strong { color: var(--cb-brun-dark); font-weight: 700; }

/* ============ CTA FINAL ============ */
.cb-dv-cta-final {
	background: linear-gradient(135deg, var(--cb-brun) 0%, var(--cb-brun-dark) 100%);
	padding: clamp(64px, 8vw, 96px) 20px;
	text-align: center;
	position: relative;
	overflow: hidden;
}
.cb-dv-cta-final::before {
	content: "";
	position: absolute;
	top: -120px;
	right: -120px;
	width: 380px;
	height: 380px;
	background: radial-gradient(circle, rgba(192, 98, 42, 0.20), transparent 70%);
	filter: blur(60px);
	pointer-events: none;
}
.cb-dv-cta-final > * { position: relative; z-index: 1; }
.cb-dv-cta-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 800;
	color: var(--cb-blanc);
	margin: 0 0 14px;
	letter-spacing: -0.01em;
}
.cb-dv-cta-lead {
	font-family: var(--cb-font-texte);
	font-size: clamp(1rem, 1.5vw, 1.1rem);
	line-height: 1.6;
	color: var(--cb-beige);
	max-width: 560px;
	margin: 0 auto 32px;
}
.cb-dv-cta-buttons {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
}

/* ============ Mobile fine tuning ============ */
@media (max-width: 480px) {
	.cb-dv-step { grid-template-columns: 44px 1fr; gap: 14px; }
	.cb-dv-step-num { width: 44px; height: 44px; font-size: 18px; }
	.cb-dv-timeline::before { left: 21px; }
	.cb-dv-step-body { padding: 16px 18px; }
}

/* ============================================================
   CB-CONSENT — Bandeau cookies + modal de personnalisation
   ============================================================ */

/* Container racine, hidden par défaut */
.cb-consent-root[hidden] { display: none !important; }

/* ============ Bandeau ============ */
.cb-consent-banner {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 9999;
	background: var(--cb-brun-dark);
	color: var(--cb-blanc);
	border: 1px solid rgba(212, 184, 150, 0.20);
	border-radius: var(--cb-radius-lg);
	box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25);
	animation: cb-consent-slide-up 0.35s cubic-bezier(0.4, 0, 0.2, 1);
	max-width: 1100px;
	margin: 0 auto;
}
@keyframes cb-consent-slide-up {
	from { transform: translateY(100%); opacity: 0; }
	to   { transform: translateY(0); opacity: 1; }
}
.cb-consent-banner[hidden] { display: none; }

.cb-consent-banner-inner {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: clamp(16px, 2.5vw, 32px);
	align-items: center;
	padding: clamp(16px, 2.5vw, 24px) clamp(20px, 3vw, 28px);
}
@media (max-width: 720px) {
	.cb-consent-banner-inner { grid-template-columns: 1fr; }
}

.cb-consent-banner-title {
	font-family: var(--cb-font-titre);
	font-size: clamp(0.95rem, 1.6vw, 1.05rem);
	font-weight: 700;
	color: var(--cb-blanc);
	margin: 0 0 6px;
	display: flex;
	align-items: center;
	gap: 8px;
}
.cb-consent-banner-icon {
	font-size: 18px;
}
.cb-consent-banner-desc {
	font-family: var(--cb-font-texte);
	font-size: 13px;
	line-height: 1.55;
	color: var(--cb-beige);
	margin: 0;
}

.cb-consent-banner-actions {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
	justify-content: flex-end;
}
@media (max-width: 720px) {
	.cb-consent-banner-actions { justify-content: stretch; }
	.cb-consent-banner-actions .cb-btn { flex: 1 0 calc(50% - 5px); justify-content: center; }
}

/* Override des boutons CB pour fond brun */
.cb-consent-banner .cb-btn-outline {
	background: transparent;
	color: var(--cb-blanc);
	border: 1.5px solid rgba(253, 250, 246, 0.4);
}
.cb-consent-banner .cb-btn-outline:hover {
	background: rgba(253, 250, 246, 0.1);
	border-color: var(--cb-blanc);
}
.cb-consent-banner .cb-btn-link {
	background: transparent;
	color: var(--cb-beige);
	border: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cb-consent-banner .cb-btn-link:hover { color: var(--cb-blanc); }

/* ============ Modal ============ */
.cb-consent-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.cb-consent-modal[hidden] { display: none; }

.cb-consent-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(42, 31, 23, 0.55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	animation: cb-consent-fade-in 0.2s ease;
}
@keyframes cb-consent-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.cb-consent-dialog {
	position: relative;
	background: var(--cb-blanc);
	border-radius: var(--cb-radius-lg);
	box-shadow: 0 32px 64px rgba(0, 0, 0, 0.30);
	max-width: 560px;
	width: 100%;
	max-height: calc(100vh - 32px);
	display: flex;
	flex-direction: column;
	animation: cb-consent-pop 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@keyframes cb-consent-pop {
	from { opacity: 0; transform: scale(0.94); }
	to   { opacity: 1; transform: scale(1); }
}

.cb-consent-dialog-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 22px 24px 18px;
	border-bottom: 1px solid var(--cb-brun-border);
}
.cb-consent-dialog-head h2 {
	font-family: var(--cb-font-titre);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0;
}
.cb-consent-close {
	background: transparent;
	border: none;
	padding: 6px;
	cursor: pointer;
	color: var(--cb-brun-light);
	border-radius: var(--cb-radius);
	transition: background 0.15s, color 0.15s;
	flex-shrink: 0;
}
.cb-consent-close:hover { background: var(--cb-beige); color: var(--cb-brun-dark); }
.cb-consent-close svg { width: 20px; height: 20px; display: block; }

.cb-consent-dialog-body {
	padding: 20px 24px;
	overflow-y: auto;
	flex: 1;
}
.cb-consent-dialog-intro {
	font-family: var(--cb-font-texte);
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--cb-brun-dark);
	margin: 0 0 18px;
}

.cb-consent-cat {
	background: var(--cb-beige);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	padding: 14px 16px;
	margin-bottom: 10px;
}
.cb-consent-cat-head {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 16px;
	align-items: center;
}
.cb-consent-cat h3 {
	font-family: var(--cb-font-titre);
	font-size: 14px;
	font-weight: 700;
	color: var(--cb-brun-dark);
	margin: 0 0 4px;
}
.cb-consent-cat p {
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--cb-brun-light);
	margin: 0;
}

/* Toggle switch */
.cb-consent-toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	flex-shrink: 0;
}
.cb-consent-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.cb-consent-toggle-track {
	display: inline-block;
	width: 40px;
	height: 22px;
	background: var(--cb-brun-border);
	border-radius: 999px;
	position: relative;
	transition: background 0.2s;
}
.cb-consent-toggle-thumb {
	position: absolute;
	top: 2px;
	left: 2px;
	width: 18px;
	height: 18px;
	background: var(--cb-blanc);
	border-radius: 50%;
	transition: transform 0.2s;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.cb-consent-toggle input:checked ~ .cb-consent-toggle-track {
	background: var(--cb-orange);
}
.cb-consent-toggle input:checked ~ .cb-consent-toggle-track .cb-consent-toggle-thumb {
	transform: translateX(18px);
}
.cb-consent-toggle--locked { cursor: not-allowed; opacity: 0.85; }
.cb-consent-toggle--locked .cb-consent-toggle-track { background: var(--cb-brun-light); }
.cb-consent-toggle-status {
	font-family: var(--cb-font-texte);
	font-size: 11px;
	color: var(--cb-brun-light);
	font-style: italic;
}

.cb-consent-dialog-link {
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	color: var(--cb-brun-light);
	margin: 16px 0 0;
	text-align: center;
}
.cb-consent-dialog-link a {
	color: var(--cb-orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cb-consent-dialog-foot {
	display: flex;
	gap: 10px;
	align-items: center;
	justify-content: flex-end;
	flex-wrap: wrap;
	padding: 16px 24px 20px;
	border-top: 1px solid var(--cb-brun-border);
	background: var(--cb-beige);
	border-radius: 0 0 var(--cb-radius-lg) var(--cb-radius-lg);
}
@media (max-width: 480px) {
	.cb-consent-dialog-foot {
		justify-content: stretch;
	}
	.cb-consent-dialog-foot .cb-btn { flex: 1; justify-content: center; }
	.cb-consent-dialog-foot .cb-btn-link { flex: 1 0 100%; text-align: center; }
}
.cb-consent-dialog-foot .cb-btn-link {
	background: transparent;
	color: var(--cb-brun-light);
	border: none;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.cb-consent-dialog-foot .cb-btn-link:hover { color: var(--cb-orange); }

/* ============ Bouton "Gérer mes cookies" dans le footer ============ */
.cb-footer-cookies-btn {
	background: transparent;
	border: none;
	color: var(--cb-beige);
	font-family: var(--cb-font-texte);
	font-size: 12px;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
	opacity: 0.85;
	transition: opacity 0.15s;
}
.cb-footer-cookies-btn:hover { opacity: 1; color: var(--cb-blanc); }
/* ============================================================
   CB-CAROUSEL — Carrousel d'articles internes
   Shortcode [cb_carousel] dans inc/shortcodes.php
   ============================================================ */

.cb-carousel {
	margin: 36px 0;
}

/* Override du soulignement global .cb-article-content a */
.cb-article-content .cb-carousel a,
.cb-article-content .cb-carousel a:hover,
.cb-carousel a {
	text-decoration: none !important;
}

/* Header : titre + contrôles desktop */
.cb-carousel-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 12px;
}

.cb-carousel-title,
.cb-article-content .cb-carousel-title {
	margin: 0 !important;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 22px;
	line-height: 1.2;
	color: var(--cb-brun-dark);
}

.cb-carousel-controls {
	display: none;
	gap: 8px;
}

@media (min-width: 768px) {
	.cb-carousel-controls {
		display: flex;
	}
}

.cb-carousel-btn {
	width: 36px;
	height: 36px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid var(--cb-brun-border);
	background: var(--cb-blanc);
	color: var(--cb-brun);
	border-radius: 50%;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, opacity 0.15s ease;
}

.cb-carousel-btn:hover:not(:disabled) {
	background: var(--cb-orange);
	border-color: var(--cb-orange);
	color: #fff;
}

.cb-carousel-btn:focus-visible {
	outline: 2px solid var(--cb-orange);
	outline-offset: 2px;
}

.cb-carousel-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

/* Track : flex avec scroll horizontal natif et snap.
   Largeur des cards calculée pour montrer ~3 cards desktop, ~1.2 mobile. */
.cb-carousel-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scroll-padding: 4px;
	padding: 4px 4px 12px;
	margin: 0 -4px;
	scrollbar-width: thin;
	scrollbar-color: var(--cb-brun-border) transparent;
	-webkit-overflow-scrolling: touch;
}

.cb-carousel-track::-webkit-scrollbar {
	height: 6px;
}

.cb-carousel-track::-webkit-scrollbar-track {
	background: transparent;
}

.cb-carousel-track::-webkit-scrollbar-thumb {
	background: var(--cb-brun-border);
	border-radius: 3px;
}

/* Card : largeur fixe pour avoir un nombre prévisible de cards visibles */
.cb-carousel-card {
	flex: 0 0 calc((100% - 32px) / 3); /* 3 cards visibles (16px gap × 2) */
	display: flex;
	flex-direction: column;
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius);
	overflow: hidden;
	color: var(--cb-texte);
	scroll-snap-align: start;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
	min-width: 0;
}

@media (max-width: 767px) {
	.cb-carousel-card {
		flex: 0 0 82%; /* ~1.2 cards visibles, on devine la suivante */
	}
}

.cb-carousel-card:hover {
	transform: translateY(-2px);
	box-shadow: var(--cb-shadow);
	border-color: var(--cb-orange);
}

.cb-carousel-card:focus-visible {
	outline: 2px solid var(--cb-orange);
	outline-offset: 2px;
}

/* Image scopée explicitement à .cb-carousel-card-image (pas global !) */
.cb-carousel-card-image {
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--cb-beige);
	flex-shrink: 0;
}

.cb-carousel-card-image img,
.cb-article-content .cb-carousel-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	margin: 0;
	border-radius: 0;
	transition: transform 0.4s ease;
}

.cb-carousel-card:hover .cb-carousel-card-image img {
	transform: scale(1.04);
}

.cb-carousel-card-body {
	padding: 16px 18px 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
	min-width: 0;
}

.cb-carousel-card-title {
	margin: 0;
	font-family: var(--cb-font-titre);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.3;
	color: var(--cb-brun-dark);
}

.cb-carousel-card-excerpt {
	margin: 0;
	font-family: var(--cb-font-texte);
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--cb-texte-mute);
}

.cb-carousel-card-link {
	margin-top: auto;
	padding-top: 6px;
	font-family: var(--cb-font-titre);
	font-weight: 600;
	font-size: 13px;
	color: var(--cb-orange);
	letter-spacing: 0.01em;
}

.cb-carousel-card:hover .cb-carousel-card-link {
	color: var(--cb-orange-dark);
}


/* Override margins from .cb-article-content */
.cb-article-content .cb-carousel-card-title { margin: 0 !important; }
.cb-article-content .cb-carousel-card-excerpt { margin: 0 !important; }


/* ============================================================
   CB-VP-PUBLISH — Section publication fiche dans dashboard vendeur
   ============================================================ */
.cb-vp-publish-box {
	background: var(--cb-blanc);
	border: 1px solid var(--cb-brun-border);
	border-radius: var(--cb-radius-lg);
	padding: 28px 28px 24px;
	margin-top: 24px;
}
.cb-vp-publish-box--draft {
	border-left: 4px solid #d9a23b;
}
.cb-vp-publish-box--published {
	border-left: 4px solid #4d8c5a;
	background: #f5fbf6;
}

.cb-vp-publish-head {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 8px;
}
.cb-vp-publish-head h2 {
	font-family: var(--cb-font-titre);
	font-size: clamp(1.15rem, 2.4vw, 1.45rem);
	font-weight: 800;
	color: var(--cb-brun-dark);
	margin: 0;
}
.cb-vp-publish-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--cb-font-titre);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.10em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 999px;
}
.cb-vp-publish-badge--draft {
	background: rgba(217, 162, 59, 0.18);
	color: #8a6b1a;
}
.cb-vp-publish-badge--published {
	background: rgba(77, 140, 90, 0.18);
	color: #2d5a3a;
}

.cb-vp-publish-intro {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	line-height: 1.6;
	color: var(--cb-brun-dark);
	margin: 0 0 18px;
}

/* Barre de progression */
.cb-vp-progress {
	height: 8px;
	background: var(--cb-beige-dark);
	border-radius: 4px;
	overflow: hidden;
	margin-bottom: 6px;
}
.cb-vp-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--cb-orange), #d97a3e);
	transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	border-radius: 4px;
}
.cb-vp-progress-text {
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	color: var(--cb-brun-light);
	margin: 0 0 18px;
}
.cb-vp-progress-text strong {
	color: var(--cb-orange);
	font-weight: 700;
}

/* Checklist */
.cb-vp-checklist {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.cb-vp-checklist-item {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 14px;
	background: var(--cb-beige);
	border-radius: var(--cb-radius);
	border: 1px solid var(--cb-brun-border);
	transition: background 0.2s, border-color 0.2s;
}
.cb-vp-checklist-item--ok {
	background: rgba(77, 140, 90, 0.08);
	border-color: rgba(77, 140, 90, 0.25);
}
.cb-vp-checklist-icon {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 1px;
}
.cb-vp-checklist-item--ok .cb-vp-checklist-icon {
	background: #4d8c5a;
	color: var(--cb-blanc);
}
.cb-vp-checklist-item--todo .cb-vp-checklist-icon {
	background: transparent;
	color: var(--cb-brun-light);
}
.cb-vp-checklist-icon svg { width: 14px; height: 14px; display: block; }
.cb-vp-checklist-item--todo .cb-vp-checklist-icon svg { width: 18px; height: 18px; }
.cb-vp-checklist-content {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
}
.cb-vp-checklist-label {
	font-family: var(--cb-font-texte);
	font-size: 14px;
	color: var(--cb-brun-dark);
	line-height: 1.4;
}
.cb-vp-checklist-item--ok .cb-vp-checklist-label {
	color: #2d5a3a;
	font-weight: 600;
}
.cb-vp-checklist-hint {
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	color: var(--cb-brun-light);
	line-height: 1.4;
}

/* Form publication + bouton */
.cb-vp-publish-form { margin: 0 0 12px; }
.cb-vp-publish-form .cb-btn {
	width: 100%;
	justify-content: center;
}
.cb-vp-publish-form .cb-btn:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	background: var(--cb-brun-light);
	border-color: var(--cb-brun-light);
}
.cb-vp-publish-form .cb-btn:disabled:hover {
	background: var(--cb-brun-light);
	transform: none;
}
.cb-vp-publish-help {
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	color: var(--cb-brun-light);
	margin: 0;
	text-align: center;
}
.cb-vp-publish-help a {
	color: var(--cb-orange);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Variantes alert (warning + success) */
.cb-vp-alert--warning {
	background: rgba(217, 162, 59, 0.10);
	border-left: 4px solid #d9a23b;
	color: #8a6b1a;
}
.cb-vp-alert--success {
	background: rgba(77, 140, 90, 0.10);
	border-left: 4px solid #4d8c5a;
	color: #2d5a3a;
}

/* === CB-VENDOR mobile fix : breadcrumb full width + anti-overflow texte === */

/* Le hero-inner accueille maintenant le breadcrumb en first child : */
/*   - desktop : breadcrumb sur sa propre ligne en haut, puis avatar + info en row en dessous */
/*   - mobile  : tout en column, breadcrumb centré en haut, puis avatar centré, puis info */
.cb-vendor-hero-inner {
	flex-wrap: wrap;
}
.cb-vendor-hero-inner > .cb-breadcrumb {
	width: 100%;
	flex-basis: 100%;
	margin-bottom: clamp(16px, 2vw, 24px);
}

/* Anti-overflow sur les longs mots sans espace (URLs, dictées du chat, etc.) */
.cb-vendor-about,
.cb-vendor-about p,
.cb-vendor-section p,
.cb-vendor-section-title,
.cb-vendor-hero-name,
.cb-vendor-hero-loc {
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* En mobile : centrer le contenu du breadcrumb (la liste est en flex) */
@media (max-width: 768px) {
	.cb-vendor-hero-inner > .cb-breadcrumb {
		text-align: center;
	}
	.cb-vendor-hero-inner > .cb-breadcrumb .cb-breadcrumb-list {
		justify-content: center;
	}
	/* Sécurité anti-débordement générale en mobile */
	.cb-vendor-section {
		min-width: 0;
	}
}

/* === CB-VENDOR breadcrumb color fix : blanc sur fond brun du hero === */
.cb-vendor-hero .cb-breadcrumb,
.cb-vendor-hero .cb-breadcrumb-list,
.cb-vendor-hero .cb-breadcrumb-list li {
	color: rgba(253, 250, 246, 0.85);
}
.cb-vendor-hero .cb-breadcrumb-list a {
	color: var(--cb-blanc);
	text-decoration: none;
	transition: color .2s;
}
.cb-vendor-hero .cb-breadcrumb-list a:hover {
	color: var(--cb-orange);
	text-decoration: underline;
}
.cb-vendor-hero .cb-breadcrumb-list [aria-current="page"] {
	color: var(--cb-blanc);
	font-weight: 600;
}
.cb-vendor-hero .cb-breadcrumb-list li + li::before {
	color: var(--cb-orange);
}

/* === CB-OFFER GALLERY : thumbnails public + form vendeur === */

/* PUBLIC : thumbnails sous l'image principale */
.cb-offer-thumbs {
	display: flex;
	gap: 10px;
	margin-top: 14px;
	flex-wrap: wrap;
}
.cb-offer-thumb {
	appearance: none;
	padding: 0;
	border: 2px solid var(--cb-brun-border);
	background: transparent;
	border-radius: 8px;
	width: 72px;
	height: 72px;
	cursor: pointer;
	overflow: hidden;
	transition: border-color 0.18s, transform 0.18s, box-shadow 0.18s;
	flex-shrink: 0;
}
.cb-offer-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cb-offer-thumb:hover {
	border-color: var(--cb-orange);
	transform: translateY(-2px);
}
.cb-offer-thumb.is-active {
	border-color: var(--cb-orange);
	box-shadow: 0 0 0 2px rgba(192, 98, 42, 0.15);
}
.cb-offer-thumb:focus-visible {
	outline: 2px solid var(--cb-orange);
	outline-offset: 2px;
}

@media (max-width: 640px) {
	.cb-offer-thumb {
		width: 56px;
		height: 56px;
	}
}

/* FORM VENDEUR : aperçu galerie existante avec toggle de suppression */
.cb-vp-gallery-preview {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 10px 0 14px;
}
.cb-vp-gallery-item {
	position: relative;
	width: 90px;
	height: 90px;
	display: block;
	cursor: pointer;
	border-radius: 8px;
	overflow: hidden;
	border: 2px solid var(--cb-brun-border);
	transition: border-color 0.18s;
}
.cb-vp-gallery-item:hover {
	border-color: var(--cb-orange);
}
.cb-vp-gallery-item-checkbox {
	position: absolute;
	opacity: 0;
	pointer-events: none;
	width: 1px;
	height: 1px;
}
.cb-vp-gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: opacity 0.18s, filter 0.18s;
}
.cb-vp-gallery-item-toggle {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: rgba(183, 28, 28, 0.92);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	box-shadow: 0 2px 6px rgba(0,0,0,0.18);
	transition: transform 0.18s, background 0.18s;
}
.cb-vp-gallery-item:hover .cb-vp-gallery-item-toggle {
	transform: scale(1.1);
}
.cb-vp-gallery-item-undo {
	display: none;
}
.cb-vp-gallery-item-badge {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: none;
	background: rgba(183, 28, 28, 0.92);
	color: #fff;
	font-size: 11px;
	font-weight: 600;
	text-align: center;
	padding: 4px 2px;
}
/* État coché — image à supprimer */
.cb-vp-gallery-item-checkbox:checked ~ img {
	opacity: 0.35;
	filter: grayscale(1);
}
.cb-vp-gallery-item-checkbox:checked ~ .cb-vp-gallery-item-toggle {
	background: #2e7d32;
}
.cb-vp-gallery-item-checkbox:checked ~ .cb-vp-gallery-item-toggle .cb-vp-gallery-item-x {
	display: none;
}
.cb-vp-gallery-item-checkbox:checked ~ .cb-vp-gallery-item-toggle .cb-vp-gallery-item-undo {
	display: inline;
}
.cb-vp-gallery-item-checkbox:checked ~ .cb-vp-gallery-item-badge {
	display: block;
}
.cb-vp-gallery-item:has(.cb-vp-gallery-item-checkbox:checked) {
	border-color: #b71c1c;
}


/* === CB-VP FORM GRID 3 (utilisé pour Prix + Stock + Livraison) === */
.cb-vp-form-grid-3 {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 768px) {
	.cb-vp-form-grid-3 {
		grid-template-columns: 1fr;
	}
}

/* === CB-OFFER LIVRAISON : badge sous le prix === */
.cb-offer-price-delivery {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 10px 0 0;
	padding: 5px 10px 5px 8px;
	border-radius: 999px;
	font-family: var(--cb-font-texte);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
}
.cb-offer-price-delivery svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
.cb-offer-price-delivery--oui {
	background: rgba(77, 140, 90, 0.12);
	color: #2d5a3a;
}
.cb-offer-price-delivery--non {
	background: rgba(192, 98, 42, 0.12);
	color: var(--cb-orange-dark);
}
