/*! ChemChem — main.css (généré depuis assets/css/src, ne pas modifier directement) */
/* ==========================================================================
   ChemChem — jetons & base
   Palette : Miel de Kagneri (logo), Ambre (contour du logo), Basalte (pots
   Miel du Volcan, roche volcanique), Canopée (collines de Lubero), Cire, Pollen.
   ========================================================================== */

:root {
	/* Couleurs (surchargées par le Customizer) */
	--cc-miel: #ffc400;
	--cc-miel-clair: #ffedb3;
	--cc-ambre: #e97a00;
	--cc-ambre-texte: #9a5000;
	--cc-basalte: #1a1611;
	--cc-basalte-2: #2a2620;
	--cc-encre-douce: #5d564c;
	--cc-canopee: #1d3a2b;
	--cc-canopee-2: #344e40;
	--cc-cire: #f7f0e1;
	--cc-cire-2: #ebe3d4;
	--cc-pollen: #fffcf6;
	--cc-ligne: color-mix(in srgb, var(--cc-basalte) 12%, transparent);
	--cc-ligne-forte: color-mix(in srgb, var(--cc-basalte) 22%, transparent);

	/* Typographie */
	--cc-font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;
	--cc-font-body: "Figtree", system-ui, sans-serif;
	--cc-fs-base: 1.125rem;
	--cc-heading-weight: 720;
	--fs-xs: 0.8125rem;
	--fs-s: 0.9375rem;
	--fs-m: var(--cc-fs-base);
	--fs-lead: clamp(1.125rem, 1.02rem + 0.45vw, 1.375rem);
	--fs-h4: clamp(1.15rem, 1.08rem + 0.3vw, 1.3rem);
	--fs-h3: clamp(1.35rem, 1.18rem + 0.75vw, 1.8rem);
	--fs-h2: clamp(2.05rem, 1.45rem + 2.6vw, 3.6rem);
	--fs-h1: clamp(2.6rem, 1.55rem + 4.5vw, 5.6rem);
	--fs-display: clamp(3.1rem, 1.4rem + 7.2vw, 8.4rem);

	/* Espace (échelle 4 px + tailles fluides) */
	--s-1: 0.25rem;
	--s-2: 0.5rem;
	--s-3: 0.75rem;
	--s-4: 1rem;
	--s-5: 1.5rem;
	--s-6: 2rem;
	--s-7: 3rem;
	--s-8: 4rem;
	--s-9: 6rem;
	--cc-gutter: clamp(1rem, 4vw, 3rem);
	--cc-section-y: clamp(4.5rem, 3rem + 7vw, 10rem);
	--cc-container: 1320px;

	/* Formes */
	--r-xs: 6px;
	--r-s: 12px;
	--r-m: 22px;
	--r-l: 36px;
	--cc-petal: 140px;
	--petal: min(var(--cc-petal), 22vw);

	/* Ombres & mouvement */
	--sh-1: 0 1px 2px color-mix(in srgb, var(--cc-basalte) 6%, transparent), 0 18px 40px -22px color-mix(in srgb, var(--cc-basalte) 35%, transparent);
	--sh-2: 0 2px 4px color-mix(in srgb, var(--cc-basalte) 8%, transparent), 0 30px 60px -28px color-mix(in srgb, var(--cc-basalte) 45%, transparent);
	--ease: cubic-bezier(0.2, 0.7, 0.1, 1);
	--ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
	--dur: 0.45s;
	--header-h: 88px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--header-h) + 1rem);
}

body {
	margin: 0;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	font-family: var(--cc-font-body);
	font-size: var(--fs-m);
	line-height: 1.6;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--s-4);
	font-family: var(--cc-font-display);
	font-weight: var(--cc-heading-weight);
	line-height: 1.06;
	letter-spacing: -0.028em;
	text-wrap: balance;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: 1.15; letter-spacing: -0.018em; }
h4 { font-size: var(--fs-h4); line-height: 1.25; letter-spacing: -0.01em; }

p {
	margin: 0 0 var(--s-4);
	text-wrap: pretty;
}

a {
	color: var(--cc-ambre-texte);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	transition: color var(--dur) var(--ease);
}

a:hover {
	color: var(--cc-basalte);
}

:focus-visible {
	outline: 3px solid var(--cc-ambre);
	outline-offset: 3px;
	border-radius: 4px;
}

::selection {
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

button,
input,
select,
textarea {
	font: inherit;
	color: inherit;
}

strong,
b {
	font-weight: 650;
}

hr {
	border: 0;
	border-top: 1px solid var(--cc-ligne);
	margin: var(--s-7) 0;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.cc-skip {
	position: fixed;
	top: -100px;
	left: var(--s-4);
	z-index: 1000;
	padding: var(--s-3) var(--s-5);
	background: var(--cc-miel);
	color: var(--cc-basalte);
	font-weight: 650;
	border-radius: var(--r-s);
	text-decoration: none;
}

.cc-skip:focus-visible {
	top: var(--s-4);
}

.cc-main:focus {
	outline: none;
}

/* Conteneurs & sections --------------------------------------------------- */

.cc-container {
	width: 100%;
	max-width: calc(var(--cc-container) + var(--cc-gutter) * 2);
	margin-inline: auto;
	padding-inline: var(--cc-gutter);
}

.cc-container--narrow { max-width: calc(760px + var(--cc-gutter) * 2); }
.cc-container--mid { max-width: calc(1040px + var(--cc-gutter) * 2); }

.cc-section {
	position: relative;
	padding-block: var(--cc-section-y);
	isolation: isolate;
}

.cc-section.is-wax { background: var(--cc-cire); }

.cc-section.is-dark,
.cc-section.is-green {
	color: var(--cc-pollen);
	--cc-muted: color-mix(in srgb, var(--cc-pollen) 74%, transparent);
	--cc-ligne: color-mix(in srgb, var(--cc-pollen) 16%, transparent);
}

.cc-section.is-dark { background: var(--cc-basalte); }
.cc-section.is-green { background: var(--cc-canopee); }

.is-dark a:not(.cc-btn),
.is-green a:not(.cc-btn) { color: var(--cc-miel); }

.cc-prose p,
.cc-head__text,
.cc-head-row__text p { color: var(--cc-muted, var(--cc-encre-douce)); }

.cc-prose {
	max-width: 62ch;
}

.cc-prose p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Composants
   ========================================================================== */

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

.cc-btn,
.wp-block-button .wp-block-button__link,
.cc-page-content .wp-element-button {
	--btn-bg: var(--cc-miel);
	--btn-fg: var(--cc-basalte);
	--btn-bd: var(--cc-miel);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6em;
	min-height: 52px;
	padding: 0.85em 1.45em;
	border: 1.5px solid var(--btn-bd);
	border-radius: 999px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--cc-font-body);
	font-size: var(--fs-s);
	font-weight: 650;
	line-height: 1.1;
	letter-spacing: 0.005em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

/* Les boutons gardent la couleur de texte de leur variante, y compris au survol et au focus
   (la règle générale a:hover ne doit pas les noircir). */
a.cc-btn,
a.cc-btn:hover,
a.cc-btn:focus-visible,
.cc-btn:hover {
	color: var(--btn-fg);
}

/* En-tête : liens de navigation et icônes conservent leur couleur au survol (contraste sur fond transparent) */
.cc-header a:not(.cc-btn):hover,
.cc-header .cc-iconbtn:hover,
.cc-offcanvas a:not(.cc-btn):hover { color: inherit; }

.cc-nav .sub-menu a:hover { color: var(--cc-basalte); }
.cc-offcanvas .cc-nav__list--mobile a:hover { color: var(--cc-miel); }

/* Pied de page : liens au survol en jaune miel, jamais en noir sur fond basalte */
.cc-footer a:not(.cc-btn):not(.cc-totop):hover { color: var(--cc-miel); }
.cc-footer .cc-social a:not(.cc-btn):not(.cc-totop):hover,
.cc-offcanvas .cc-social a:not(.cc-btn):hover { color: var(--cc-basalte); }
.cc-btn__icon {
	width: 1.15em;
	height: 1.15em;
	flex: none;
	transition: transform var(--dur) var(--ease);
}

.cc-btn:hover .cc-btn__icon { transform: translateX(3px); }

.cc-btn--miel:hover,
.wp-block-button.is-style-miel .wp-block-button__link:hover,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover {
	--btn-bg: var(--cc-basalte);
	--btn-fg: var(--cc-miel);
	--btn-bd: var(--cc-basalte);
}

.cc-btn--basalte,
.wp-block-button.is-style-basalte .wp-block-button__link {
	--btn-bg: var(--cc-basalte);
	--btn-fg: var(--cc-pollen);
	--btn-bd: var(--cc-basalte);
}

.cc-btn--basalte:hover,
.wp-block-button.is-style-basalte .wp-block-button__link:hover {
	--btn-bg: var(--cc-miel);
	--btn-fg: var(--cc-basalte);
	--btn-bd: var(--cc-miel);
}

.cc-btn--ligne,
.wp-block-button.is-style-ligne .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
	--btn-bg: transparent;
	--btn-fg: var(--cc-basalte);
	--btn-bd: var(--cc-ligne-forte);
}

.cc-btn--ligne:hover,
.wp-block-button.is-style-ligne .wp-block-button__link:hover {
	--btn-bd: var(--cc-basalte);
	--btn-bg: var(--cc-basalte);
	--btn-fg: var(--cc-pollen);
}

.cc-btn--ligne-claire,
.is-dark .cc-btn--ligne,
.is-green .cc-btn--ligne,
.is-style-basalte .wp-block-button.is-style-ligne .wp-block-button__link,
.is-style-canopee .wp-block-button.is-style-ligne .wp-block-button__link {
	--btn-bg: transparent;
	--btn-fg: var(--cc-pollen);
	--btn-bd: color-mix(in srgb, var(--cc-pollen) 45%, transparent);
}

.cc-btn--ligne-claire:hover,
.is-dark .cc-btn--ligne:hover,
.is-green .cc-btn--ligne:hover {
	--btn-bg: var(--cc-pollen);
	--btn-fg: var(--cc-basalte);
	--btn-bd: var(--cc-pollen);
}

.cc-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-3);
	margin-top: var(--s-6);
}

.cc-iconbtn {
	display: inline-grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-iconbtn:hover { background: color-mix(in srgb, currentColor 10%, transparent); }

.cc-iconbtn--light {
	color: var(--cc-pollen);
	border: 1.5px solid color-mix(in srgb, var(--cc-pollen) 40%, transparent);
}

.cc-iconbtn--light:hover {
	background: var(--cc-pollen);
	color: var(--cc-basalte);
}

.cc-iconbtn--line {
	border: 1.5px solid var(--cc-ligne-forte);
}

.cc-iconbtn--line:hover {
	background: var(--cc-basalte);
	color: var(--cc-pollen);
	border-color: var(--cc-basalte);
}

.cc-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-weight: 650;
	font-size: var(--fs-s);
	color: var(--cc-basalte);
	text-decoration: underline;
	text-decoration-color: var(--cc-miel);
	text-decoration-thickness: 2px;
	text-underline-offset: 0.35em;
}

.cc-link:hover { text-decoration-color: var(--cc-basalte); }

.cc-chip {
	display: inline-flex;
	align-items: center;
	padding: 0.35em 0.9em;
	border: 1px solid var(--cc-ligne-forte);
	border-radius: 999px;
	font-size: var(--fs-xs);
	font-weight: 600;
	line-height: 1.3;
	color: var(--cc-basalte);
	text-decoration: none;
	background: transparent;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

a.cc-chip:hover,
.cc-chip.is-active {
	background: var(--cc-miel);
	border-color: var(--cc-miel);
	color: var(--cc-basalte);
}

/* Titres de section ------------------------------------------------------ */

.cc-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.55em;
	margin: 0 0 var(--s-4);
	font-family: var(--cc-font-body);
	font-size: var(--fs-s);
	font-weight: 650;
	color: var(--cc-ambre-texte);
	letter-spacing: 0.01em;
}

.cc-kicker__mark {
	width: 1.05em;
	height: 1.05em;
	color: var(--cc-ambre);
	fill: var(--cc-miel);
}

.is-dark .cc-kicker,
.is-green .cc-kicker,
.cc-kicker--light {
	color: var(--cc-miel);
}

.is-dark .cc-kicker__mark,
.is-green .cc-kicker__mark,
.cc-kicker--light .cc-kicker__mark {
	color: var(--cc-miel);
	fill: color-mix(in srgb, var(--cc-miel) 30%, transparent);
}

.cc-head {
	max-width: 44rem;
	margin-bottom: var(--s-7);
}

.cc-head--center {
	margin-inline: auto;
	text-align: center;
}

.cc-head__title { margin-bottom: 0; }

.cc-head__text {
	margin: var(--s-5) 0 0;
	font-size: var(--fs-lead);
	line-height: 1.55;
}

.cc-head--center .cc-head__text { margin-inline: auto; max-width: 38rem; }

.cc-head-row {
	display: grid;
	gap: var(--s-5) var(--s-8);
	align-items: end;
	margin-bottom: var(--s-8);
}

.cc-head-row .cc-head { margin-bottom: 0; }

.cc-head-row__text {
	font-size: var(--fs-lead);
	line-height: 1.55;
	color: var(--cc-muted, var(--cc-encre-douce));
}

.cc-head-row__text p { margin-bottom: var(--s-5); }
.cc-head-row__text p:last-child { margin-bottom: 0; }
.cc-head-row__text .cc-btn { margin-top: var(--s-2); }

@media (min-width: 960px) {
	.cc-head-row { grid-template-columns: 7fr 5fr; }
}

/* Masques d'image (pétale ApiConnect, arche) ------------------------------ */

.cc-mask {
	position: relative;
	overflow: hidden;
	background: var(--cc-cire-2);
}

.cc-mask img,
.wp-block-image.is-style-petale img,
.wp-block-image.is-style-arche img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-mask--petal,
.wp-block-image.is-style-petale img { border-radius: 0 var(--petal) 0 var(--petal); }

.cc-mask--petal-alt { border-radius: var(--petal) 0 var(--petal) 0; }

.cc-mask--arch,
.wp-block-image.is-style-arche img { border-radius: 999px 999px var(--r-m) var(--r-m); }

/* Deux colonnes image / texte -------------------------------------------- */

.cc-split {
	display: grid;
	gap: var(--s-8);
	align-items: center;
}

@media (min-width: 960px) {
	.cc-split { grid-template-columns: 1fr 1fr; gap: clamp(3rem, 6vw, 7rem); }
	.cc-split--reverse .cc-split__media { order: 2; }
}

/* Images superposées + badge « ChemChem » -------------------------------- */

.cc-stack {
	position: relative;
	padding: 0 12% 18% 0;
}

.cc-stack__main { aspect-ratio: 4 / 5; }

.cc-stack__second {
	position: absolute;
	right: 0;
	bottom: 0;
	width: 50%;
	aspect-ratio: 1;
	border: 8px solid var(--cc-pollen);
	box-shadow: var(--sh-1);
}

.cc-badge {
	position: absolute;
	top: 10%;
	right: 2%;
	display: grid;
	gap: 0.2rem;
	max-width: 13rem;
	padding: var(--s-5) var(--s-5) var(--s-5) var(--s-5);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
}

.cc-badge::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 22px;
	height: 22px;
	background: linear-gradient(225deg, var(--cc-pollen) 50%, var(--cc-ambre) 50%);
}

.cc-badge__word {
	font-family: var(--cc-font-display);
	font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.3rem);
	font-weight: 780;
	letter-spacing: -0.03em;
	line-height: 1;
}

.cc-badge__text {
	font-size: var(--fs-s);
	line-height: 1.35;
}

/* Encadré téléphone ------------------------------------------------------ */

.cc-phonebox {
	display: inline-flex;
	align-items: center;
	gap: var(--s-3);
	color: inherit;
	text-decoration: none;
}

.cc-phonebox__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	transition: transform var(--dur) var(--ease);
}

.cc-phonebox:hover .cc-phonebox__icon { transform: rotate(-12deg); }

.cc-phonebox small {
	display: block;
	font-size: var(--fs-xs);
	color: var(--cc-muted, var(--cc-encre-douce));
}

.cc-phonebox strong {
	display: block;
	font-family: var(--cc-font-display);
	font-size: 1.2rem;
	letter-spacing: -0.01em;
}

/* Badge circulaire rotatif ------------------------------------------------ */

.cc-ring {
	position: absolute;
	display: grid;
	place-items: center;
	width: clamp(110px, 12vw, 160px);
	aspect-ratio: 1;
	color: var(--cc-basalte);
	text-decoration: none;
}

.cc-ring__svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	animation: cc-spin 22s linear infinite;
}

.cc-ring__bg { fill: var(--cc-miel); }

.cc-ring__text {
	font-family: var(--cc-font-body);
	font-size: 13.4px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	fill: var(--cc-basalte);
}

.cc-ring__center {
	position: relative;
	display: grid;
	place-items: center;
	width: 44%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--cc-basalte);
	color: var(--cc-miel);
}

.cc-ring__center .cc-icon { width: 56%; height: 56%; }

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

/* Carte flottante --------------------------------------------------------- */

.cc-floatcard {
	position: absolute;
	left: -6%;
	bottom: 12%;
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-4) var(--s-5) var(--s-4) var(--s-4);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
	text-decoration: none;
	font-size: var(--fs-s);
	line-height: 1.3;
}

.cc-floatcard strong {
	display: block;
	font-family: var(--cc-font-display);
	font-size: 1.1rem;
}

.cc-floatcard__icon {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: var(--r-s) 0 var(--r-s) 0;
	background: var(--cc-miel);
}

/* Listes ------------------------------------------------------------------ */

.cc-checklist,
.wp-block-list.is-style-coches {
	display: grid;
	gap: var(--s-3);
	margin: var(--s-5) 0;
	padding: 0;
	list-style: none;
}

.cc-checklist li {
	display: flex;
	gap: var(--s-3);
	align-items: flex-start;
}

.cc-checklist .cc-icon {
	flex: none;
	margin-top: 0.2em;
	padding: 3px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	stroke-width: 2.4;
}

.wp-block-list.is-style-coches li {
	position: relative;
	padding-left: 2.1em;
}

.wp-block-list.is-style-coches li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--cc-miel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a1611' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.cc-features {
	display: grid;
	gap: var(--s-4) var(--s-6);
	margin: var(--s-6) 0 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.cc-features { grid-template-columns: 1fr 1fr; }
}

.cc-features li {
	display: flex;
	gap: var(--s-3);
	align-items: flex-start;
	font-size: var(--fs-s);
	line-height: 1.4;
	color: var(--cc-muted, var(--cc-encre-douce));
}

.cc-features strong {
	display: block;
	color: var(--cc-basalte);
	font-size: var(--fs-m);
}

.is-dark .cc-features strong { color: var(--cc-pollen); }

.cc-features__icon {
	display: grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: var(--r-s) 0 var(--r-s) 0;
	background: var(--cc-cire);
	color: var(--cc-ambre-texte);
}

.is-dark .cc-features__icon {
	background: color-mix(in srgb, var(--cc-miel) 14%, transparent);
	color: var(--cc-miel);
}

/* Coordonnées & réseaux ---------------------------------------------------- */

.cc-contact-list {
	display: grid;
	gap: var(--s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-contact-list li {
	display: flex;
	gap: var(--s-3);
	align-items: flex-start;
	line-height: 1.45;
}

.cc-contact-list li > .cc-icon {
	flex: none;
	width: 40px;
	height: 40px;
	padding: 9px;
	border-radius: 50%;
	background: var(--cc-cire);
	color: var(--cc-ambre-texte);
}

.cc-contact-list__label {
	display: block;
	font-size: var(--fs-xs);
	font-weight: 650;
	letter-spacing: 0.02em;
	color: var(--cc-muted, var(--cc-encre-douce));
}

.cc-contact-list a {
	color: inherit;
	text-decoration: none;
}

.cc-contact-list a:hover { text-decoration: underline; }

.cc-contact-list--light li > .cc-icon,
.cc-contact-list--footer li > .cc-icon,
.cc-contact-list--compact li > .cc-icon {
	background: color-mix(in srgb, var(--cc-pollen) 10%, transparent);
	color: var(--cc-miel);
}

.cc-contact-list--compact { gap: var(--s-3); font-size: var(--fs-s); }

.cc-social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-social a {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 30%, transparent);
	color: inherit;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.cc-social a:hover {
	background: var(--cc-miel);
	border-color: var(--cc-miel);
	color: var(--cc-basalte);
}

/* Signature : courbes de niveau du Rift ----------------------------------- */

.cc-contours {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	pointer-events: none;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.4;
	opacity: 0.16;
}

.cc-contours path {
	stroke-dasharray: 1;
	stroke-dashoffset: 0;
}

.is-dark .cc-contours,
.is-green .cc-contours { color: var(--cc-miel); opacity: 0.2; }

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

.cc-form__grid {
	display: grid;
	gap: var(--s-4);
}

@media (min-width: 640px) {
	.cc-form__grid { grid-template-columns: 1fr 1fr; }
	.cc-field--full { grid-column: 1 / -1; }
}

.cc-field { margin: 0; }

.cc-field label,
.comment-form label {
	display: block;
	margin-bottom: var(--s-2);
	font-size: var(--fs-s);
	font-weight: 600;
}

.cc-field abbr { text-decoration: none; color: var(--cc-ambre); }

.cc-form input[type="text"],
.cc-form input[type="email"],
.cc-form input[type="tel"],
.cc-form select,
.cc-form textarea,
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea,
.cc-newsletter__form input[type="email"],
.cc-searchform__input {
	width: 100%;
	min-height: 52px;
	padding: 0.8em 1em;
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: var(--r-s);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.cc-form textarea { min-height: 150px; resize: vertical; }

/* Liste déroulante : chevron maison au lieu du rendu natif */
.cc-form select {
	padding-right: 2.8em;
	background: var(--cc-pollen) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23E97A00' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1.1em center;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.cc-form [type="submit"].cc-btn { min-height: 56px; padding-inline: 2em; font-size: var(--fs-m); }

@media (max-width: 599px) {
	.cc-form [type="submit"].cc-btn { width: 100%; }
}

/* Formulaire de commentaire : case de consentement alignée avec son libellé */
.comment-form-cookies-consent {
	display: flex;
	align-items: flex-start;
	gap: var(--s-3);
	font-size: var(--fs-s);
}

.comment-form-cookies-consent input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--cc-ambre); }
.comment-form-cookies-consent label { margin: 0; font-weight: 500; }

.cc-form input:focus,
.cc-form select:focus,
.cc-form textarea:focus,
.comment-form input:focus,
.comment-form textarea:focus,
.cc-newsletter__form input:focus,
.cc-searchform__input:focus {
	outline: none;
	border-color: var(--cc-ambre);
	box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-miel) 35%, transparent);
}

.cc-form__hp { position: absolute; left: -9999px; }

.cc-form__consent {
	margin: var(--s-4) 0;
	font-size: var(--fs-xs);
	color: var(--cc-encre-douce);
}

.cc-form__notice {
	padding: var(--s-4) var(--s-5);
	border-radius: var(--r-s);
	font-weight: 600;
}

.cc-form__notice--ok { background: #e3efe2; color: #1d4a26; }
.cc-form__notice--error { background: #f8e1dc; color: #7a2413; }

.cc-searchform {
	position: relative;
	display: flex;
	max-width: 40rem;
}

.cc-searchform__input { padding-right: 3.6em; border-radius: 999px; }

.cc-searchform__submit {
	position: absolute;
	right: 6px;
	top: 50%;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	cursor: pointer;
	transform: translateY(-50%);
}

/* Cartes d'articles ----------------------------------------------------- */

.cc-posts--grid,
.cc-posts--magazine {
	display: grid;
	gap: var(--s-7) var(--s-6);
}

@media (min-width: 700px) {
	.cc-posts--grid,
	.cc-posts--magazine { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.cc-posts--grid,
	.cc-posts--magazine { grid-template-columns: repeat(3, 1fr); }
	.has-sidebar .cc-posts--grid,
	.has-sidebar .cc-posts--magazine { grid-template-columns: repeat(2, 1fr); }
}

.cc-posts--magazine .cc-post--feature { grid-column: 1 / -1; }

.cc-post {
	position: relative;
	display: flex;
	flex-direction: column;
}

.cc-post__media {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: var(--r-m);
	background: var(--cc-cire-2);
}

.cc-post__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.9s var(--ease);
}

.cc-post:hover .cc-post__media img { transform: scale(1.04); }

.cc-post__body { padding-top: var(--s-5); }

.cc-post__title {
	margin: var(--s-3) 0;
	font-size: var(--fs-h4);
	line-height: 1.22;
}

.cc-post__title a {
	color: inherit;
	text-decoration: none;
	background: linear-gradient(var(--cc-miel), var(--cc-miel)) 0 100% / 0 2px no-repeat;
	transition: background-size var(--dur) var(--ease);
}

.cc-post:hover .cc-post__title a { background-size: 100% 2px; }

.cc-post__excerpt {
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
}

.cc-post--feature {
	display: grid;
	gap: var(--s-6);
	align-items: center;
}

@media (min-width: 900px) {
	.cc-post--feature { grid-template-columns: 7fr 5fr; }
	.cc-post--feature .cc-post__media { aspect-ratio: 16 / 10; border-radius: 0 var(--petal) 0 var(--petal); }
	.cc-post--feature .cc-post__title { max-width: 20ch; font-size: clamp(1.8rem, 1.2rem + 1.4vw, 2.6rem); line-height: 1.1; letter-spacing: -0.025em; }
}

.cc-posts--list { display: grid; gap: var(--s-6); }

.cc-post--row {
	display: grid;
	grid-template-columns: minmax(120px, 280px) 1fr;
	gap: var(--s-6);
	align-items: center;
	padding-bottom: var(--s-6);
	border-bottom: 1px solid var(--cc-ligne);
}

.cc-post--row .cc-post__body { padding-top: 0; }

@media (max-width: 560px) {
	.cc-post--row { grid-template-columns: 1fr; }
}

.cc-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-2) var(--s-4);
	font-size: var(--fs-xs);
	color: var(--cc-encre-douce);
}

.is-dark .cc-meta { color: var(--cc-muted); }

/* Carrousel horizontal (rail) ------------------------------------------- */

.cc-rail {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(82vw, 360px);
	gap: var(--s-5);
	margin: 0;
	padding: 0 0 var(--s-5);
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	scrollbar-color: var(--cc-miel) transparent;
	overscroll-behavior-x: contain;
}

.cc-rail > * { scroll-snap-align: start; }

.cc-rail-nav {
	display: flex;
	gap: var(--s-2);
	margin-top: var(--s-5);
}

/* ==========================================================================
   En-tête : barre supérieure, barre principale, menus, panneau mobile
   ========================================================================== */

.cc-progress {
	position: fixed;
	inset: 0 0 auto;
	z-index: 200;
	height: 3px;
	pointer-events: none;
}

.cc-progress span {
	display: block;
	height: 100%;
	width: 100%;
	background: var(--cc-miel);
	transform: scaleX(var(--p, 0));
	transform-origin: 0 50%;
}

.cc-masthead {
	position: relative;
	z-index: 100;
}

/* Barre supérieure */
.cc-topbar {
	background: var(--cc-basalte);
	color: color-mix(in srgb, var(--cc-pollen) 82%, transparent);
	font-size: var(--fs-xs);
}

.cc-topbar__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-2) var(--s-6);
	min-height: 44px;
}

.cc-topbar__text {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0;
	margin-right: auto;
}

.cc-topbar .cc-icon { color: var(--cc-miel); flex: none; }

.cc-topbar__contact,
.cc-topbar__menu {
	display: flex;
	gap: var(--s-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-topbar a {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	color: inherit;
	text-decoration: none;
}

.cc-topbar a:hover { color: var(--cc-miel); }

.cc-topbar__social a {
	width: 30px;
	height: 30px;
	border: 0;
}

.cc-topbar__social a:hover { background: transparent; color: var(--cc-miel); }

@media (max-width: 900px) {
	.cc-topbar__menu,
	.cc-topbar__social { display: none; }
}

/* Mobile : téléphone et e-mail sur une même ligne à gauche, sélecteur de langue à droite */
@media (max-width: 600px) {
	.cc-topbar__text { display: none; }

	.cc-topbar__inner {
		flex-wrap: nowrap;
		justify-content: space-between;
		gap: var(--s-2);
		min-height: 38px;
		padding-block: 4px;
	}

	.cc-topbar__contact {
		flex-direction: row;
		align-items: center;
		gap: 10px;
		min-width: 0;
	}

	.cc-topbar__contact li { min-width: 0; }
	.cc-topbar__contact li + li { padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--cc-pollen) 22%, transparent); }

	.cc-topbar__contact a {
		gap: 5px;
		max-width: 100%;
		font-size: 11.5px;
		line-height: 1.3;
		white-space: nowrap;
	}

	.cc-topbar__contact a span,
	.cc-topbar__contact a { overflow: hidden; text-overflow: ellipsis; }

	.cc-topbar__contact .cc-icon { width: 12px; height: 12px; }

	.cc-topbar__lang { flex: none; }
	.cc-topbar .trp-shortcode-switcher__wrapper { --font-size: 11px !important; --flag-size: 14px !important; }
}

/* Petits téléphones : sans icônes, pour garder numéro et e-mail entiers sur une ligne */
@media (max-width: 480px) {
	.cc-topbar__contact .cc-icon { display: none; }
	.cc-topbar__contact { gap: 8px; }
	.cc-topbar__contact li + li { padding-left: 8px; }
}

@media (max-width: 360px) {
	.cc-topbar__contact a { font-size: 10.5px; }
}
/* Barre principale */
.cc-header {
	position: relative;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	border-bottom: 1px solid var(--cc-ligne);
	transition: background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-header__inner {
	display: flex;
	align-items: center;
	gap: var(--s-5);
	min-height: var(--header-h);
}

.cc-header__brand { flex: none; }

.cc-logo {
	display: block;
	line-height: 0;
}

.cc-logo .cc-logo__img {
	width: auto;
	max-width: none;
	height: 54px;
}

.cc-header__logo--light { display: none; }

/* En-tête transparent sur le héros */
.cc-header--overlay .cc-masthead,
.cc-header--overlay-light .cc-masthead {
	position: absolute;
	inset: 0 0 auto;
}

.cc-header--overlay .cc-header,
.cc-header--overlay-light .cc-header {
	background: transparent;
	border-bottom-color: color-mix(in srgb, currentColor 16%, transparent);
}

.cc-header--overlay .cc-header { color: var(--cc-pollen); }

/* Logo couleur (jaune) conservé sur l'en-tête transparent, avec une ombre légère pour la lisibilité sur photo */
.cc-header--overlay .cc-masthead:not(.is-stuck) .cc-logo__img { filter: drop-shadow(0 1px 8px rgba(0, 0, 0, 0.45)); }

.cc-header--overlay .cc-topbar {
	background: color-mix(in srgb, var(--cc-basalte) 55%, transparent);
	backdrop-filter: blur(6px);
}

/* En-tête collant */
.cc-masthead.is-stuck .cc-header {
	position: fixed;
	inset: 0 0 auto;
	background: color-mix(in srgb, var(--cc-pollen) 94%, transparent);
	backdrop-filter: saturate(1.4) blur(12px);
	color: var(--cc-basalte);
	border-bottom-color: var(--cc-ligne);
	box-shadow: 0 10px 30px -20px color-mix(in srgb, var(--cc-basalte) 40%, transparent);
	animation: cc-slide-down 0.45s var(--ease);
}

.cc-masthead.is-stuck .cc-header__inner { min-height: 74px; }
.cc-masthead.is-stuck .cc-logo .cc-logo__img { height: 46px; }
.cc-masthead.is-stuck .cc-header__logo--dark { display: block; }
.cc-masthead.is-stuck .cc-header__logo--light { display: none; }

.admin-bar .cc-masthead.is-stuck .cc-header { top: 32px; }

@media (max-width: 782px) {
	.admin-bar .cc-masthead.is-stuck .cc-header { top: 0; }
}

@keyframes cc-slide-down {
	from { transform: translateY(-100%); }
	to { transform: none; }
}

/* Navigation */
.cc-nav {
	display: none;
	margin-inline: auto;
}

.cc-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(0.25rem, 1vw, 1rem);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-nav__list > li {
	position: relative;
	display: flex;
	align-items: center;
}

.cc-nav__list > li > a {
	position: relative;
	display: block;
	padding: 0.6em 0.55em;
	color: inherit;
	font-size: 0.96rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.cc-nav__list > li > a::after {
	content: "";
	position: absolute;
	left: 0.55em;
	right: 0.55em;
	bottom: 0.2em;
	height: 2px;
	border-radius: 2px;
	background: var(--cc-miel);
	transform: scaleX(0);
	transform-origin: 0 50%;
	transition: transform var(--dur) var(--ease);
}

.cc-nav__list > li:hover > a::after,
.cc-nav__list > li.current-menu-item > a::after,
.cc-nav__list > li.current-menu-ancestor > a::after,
.cc-nav__list > li.current_page_item > a::after {
	transform: scaleX(1);
}

.cc-nav__toggle {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	margin-left: -0.3em;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	cursor: pointer;
}

.cc-nav__toggle .cc-icon { transition: transform var(--dur) var(--ease); }
.cc-nav__toggle[aria-expanded="true"] .cc-icon { transform: rotate(180deg); }

.cc-nav .sub-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: -0.4em;
	z-index: 20;
	min-width: 260px;
	margin: 0;
	padding: var(--s-3);
	list-style: none;
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), visibility 0.3s;
}

.cc-nav .sub-menu::before {
	content: "";
	position: absolute;
	inset: -12px 0 auto;
	height: 12px;
}

.cc-nav li:hover > .sub-menu,
.cc-nav li:focus-within > .sub-menu,
.cc-nav li.is-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
}

.cc-nav .sub-menu a {
	display: block;
	padding: 0.6em 0.8em;
	border-radius: var(--r-s);
	color: inherit;
	font-size: var(--fs-s);
	font-weight: 550;
	text-decoration: none;
}

.cc-nav .sub-menu a:hover {
	background: var(--cc-cire);
}

/* Actions */
.cc-header__actions {
	display: flex;
	align-items: center;
	gap: var(--s-1);
	margin-left: auto;
}

.cc-cart-link { position: relative; color: inherit; }

.cc-cart-link__count {
	position: absolute;
	top: 3px;
	right: 1px;
	display: grid;
	place-items: center;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	font-size: 11px;
	font-weight: 700;
}

.cc-header__cta { display: none; margin-left: var(--s-3); }

@media (min-width: 1180px) {
	.cc-nav { display: block; }
	.cc-header__actions { margin-left: 0; }
	.cc-burger { display: none; }
	.cc-header__cta { display: inline-flex; }
}

@media (max-width: 1179px) {
	.cc-logo .cc-logo__img { height: 46px; }
}

/* Panneau mobile */
.cc-offcanvas {
	position: fixed;
	inset: 0;
	z-index: 300;
}

.cc-offcanvas[hidden] { display: none; }

.cc-offcanvas__backdrop {
	position: absolute;
	inset: 0;
	background: color-mix(in srgb, var(--cc-basalte) 55%, transparent);
	opacity: 0;
	transition: opacity 0.35s var(--ease);
}

.cc-offcanvas__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: var(--s-6);
	width: min(440px, 100%);
	padding: var(--s-5) var(--s-6) var(--s-7);
	overflow-y: auto;
	background: var(--cc-basalte);
	color: var(--cc-pollen);
	isolation: isolate;
	transform: translateX(100%);
	transition: transform 0.45s var(--ease);
}

.cc-offcanvas.is-open .cc-offcanvas__backdrop { opacity: 1; }
.cc-offcanvas.is-open .cc-offcanvas__panel { transform: none; }

.cc-offcanvas__contours { color: var(--cc-miel); opacity: 0.14; }

.cc-offcanvas__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.cc-offcanvas .cc-logo .cc-logo__img { height: 48px; }

.cc-nav__list--mobile {
	display: block;
}

.cc-nav__list--mobile > li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	border-bottom: 1px solid color-mix(in srgb, var(--cc-pollen) 12%, transparent);
}

.cc-nav__list--mobile > li > a {
	flex: 1;
	padding: 0.7em 0;
	color: var(--cc-pollen);
	font-family: var(--cc-font-display);
	font-size: 1.45rem;
	font-weight: 650;
	letter-spacing: -0.015em;
	text-decoration: none;
}

.cc-nav__list--mobile > li > a:hover { color: var(--cc-miel); }

.cc-nav__list--mobile .cc-nav__toggle {
	width: 44px;
	height: 44px;
	margin: 0;
}

.cc-nav__list--mobile .sub-menu {
	display: none;
	flex-basis: 100%;
	margin: 0 0 var(--s-4);
	padding: 0;
	list-style: none;
}

.cc-nav__list--mobile li.is-open > .sub-menu { display: block; }

.cc-nav__list--mobile .sub-menu a {
	display: block;
	padding: 0.45em 0 0.45em var(--s-4);
	color: color-mix(in srgb, var(--cc-pollen) 78%, transparent);
	text-decoration: none;
	border-left: 2px solid var(--cc-miel);
}

.cc-offcanvas__foot {
	display: grid;
	gap: var(--s-5);
	margin-top: auto;
}

.cc-offcanvas__foot .cc-btn { justify-self: start; }
.cc-offcanvas .cc-contact-list__label { color: color-mix(in srgb, var(--cc-pollen) 60%, transparent); }

/* Recherche */
.cc-search {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
}

.cc-search[open] { animation: cc-slide-down 0.4s var(--ease); }

.cc-search::backdrop { background: color-mix(in srgb, var(--cc-basalte) 55%, transparent); }

.cc-search__inner {
	position: relative;
	padding-block: var(--s-8) var(--s-7);
}

.cc-search__title {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h3);
	font-weight: 700;
}

.cc-search__hints {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2) var(--s-4);
	margin-top: var(--s-5);
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
}

.cc-search__close {
	position: absolute;
	top: var(--s-5);
	right: var(--cc-gutter);
}

.cc-search__inner form[method="dialog"] { margin: 0; }

/* Sélecteur de langue (TranslatePress) */
.cc-lang {
	position: relative;
	z-index: 150;
	font-size: var(--fs-xs);
	line-height: 1.2;
}

.cc-lang img { display: inline-block; vertical-align: middle; }

.cc-topbar .cc-lang a,
.cc-topbar .cc-lang span { font-size: var(--fs-xs) !important; }

.cc-offcanvas__lang { align-self: start; font-size: var(--fs-s); }

/* Sélecteur compact dans la barre supérieure (variables TranslatePress) */
.cc-topbar .trp-shortcode-switcher__wrapper {
	--font-size: 12px !important;
	--flag-size: 15px !important;
}

.cc-topbar .trp-language-item { padding: 3px 6px !important; min-height: 0 !important; }
.cc-topbar .trp-language-switcher { padding-block: 2px !important; }
.cc-topbar .trp-shortcode-arrow { width: 14px; height: 14px; }

/* ==========================================================================
   Héros, bandeau défilant, bannière des pages intérieures
   ========================================================================== */

.cc-hero {
	--hero-top: 0px;
	position: relative;
	padding: 0;
	overflow: hidden;
	color: var(--cc-pollen);
	background: var(--cc-basalte);
}

.cc-header--overlay .cc-hero,
.cc-header--overlay-light .cc-hero,
.cc-header--overlay .cc-banner,
.cc-header--overlay-light .cc-banner {
	--hero-top: var(--cc-masthead-h, calc(var(--header-h) + 44px));
}

.cc-hero__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.cc-hero__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, color-mix(in srgb, var(--cc-basalte) 82%, transparent) 0%, color-mix(in srgb, var(--cc-basalte) 45%, transparent) 55%, color-mix(in srgb, var(--cc-basalte) 10%, transparent) 100%),
		linear-gradient(0deg, color-mix(in srgb, var(--cc-basalte) 55%, transparent) 0%, transparent 40%);
}

.cc-hero__contours {
	z-index: -1;
	color: var(--cc-miel);
	opacity: 0.22;
}

.cc-hero__title {
	margin: 0;
	font-size: var(--fs-h1);
	line-height: 1;
	letter-spacing: -0.035em;
	max-width: 15ch;
}

.cc-hero__title--xl {
	font-size: var(--fs-display);
	line-height: 0.94;
	letter-spacing: -0.045em;
	max-width: 13ch;
}

.cc-hero__text {
	max-width: 36rem;
	margin: var(--s-5) 0 0;
	font-size: var(--fs-lead);
	line-height: 1.55;
	color: color-mix(in srgb, var(--cc-pollen) 84%, transparent);
}

/* Ordinateur : descriptions sur 3 lignes, coupures équilibrées */
@media (min-width: 1024px) {
	.cc-hero__text {
		max-width: 41rem;
		text-wrap: balance;
	}
}

@media (min-width: 1024px) and (max-width: 1279px) {
	.cc-hero__text { max-width: 37rem; }
}

/* 1 — Diaporama ------------------------------------------------------------ */

.cc-hero__slides {
	position: relative;
	display: grid;
	min-height: clamp(600px, 88svh, 900px);
	isolation: isolate;
}

.cc-hero__slide {
	grid-area: 1 / 1;
	position: relative;
	display: flex;
	align-items: center;
	padding: calc(var(--hero-top) + var(--s-8)) 0 calc(var(--s-9) + 3rem);
	isolation: isolate;
	opacity: 0;
	visibility: hidden;
	transition: opacity 1s var(--ease-in-out), visibility 1s;
}

.cc-hero__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.cc-hero__slide .cc-hero__media img {
	transform: scale(1.06);
	transition: transform 8s linear;
}

.cc-hero__slide.is-active .cc-hero__media img { transform: scale(1); }

.cc-hero__slide .cc-hero__content > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
}

.cc-hero__slide.is-active .cc-hero__content > * {
	opacity: 1;
	transform: none;
}

.cc-hero__slide.is-active .cc-hero__content > :nth-child(2) { transition-delay: 0.12s; }
.cc-hero__slide.is-active .cc-hero__content > :nth-child(3) { transition-delay: 0.24s; }
.cc-hero__slide.is-active .cc-hero__content > :nth-child(4) { transition-delay: 0.36s; }

.cc-hero__controls {
	position: absolute;
	left: 0;
	right: 0;
	bottom: var(--s-6);
	margin-inline: auto;
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--s-5);
	z-index: 2;
}

.cc-hero__dots {
	display: flex;
	gap: var(--s-5);
	flex: 1;
	max-width: 760px;
}

.cc-hero__dot {
	flex: 1;
	display: grid;
	gap: var(--s-2);
	padding: var(--s-2) 0;
	border: 0;
	background: none;
	color: color-mix(in srgb, var(--cc-pollen) 65%, transparent);
	text-align: left;
	font-size: var(--fs-xs);
	font-weight: 600;
	cursor: pointer;
}

.cc-hero__dot.is-active { color: var(--cc-pollen); }

.cc-hero__dot-bar {
	display: block;
	height: 2px;
	background: color-mix(in srgb, var(--cc-pollen) 25%, transparent);
	overflow: hidden;
}

.cc-hero__dot-bar span {
	display: block;
	height: 100%;
	background: var(--cc-miel);
	transform: scaleX(0);
	transform-origin: 0 50%;
}

.cc-hero__dot.is-active .cc-hero__dot-bar span {
	animation: cc-progress var(--cc-interval, 7s) linear forwards;
}

.cc-hero__slides.is-paused .cc-hero__dot.is-active .cc-hero__dot-bar span {
	animation-play-state: paused;
}

@keyframes cc-progress { to { transform: scaleX(1); } }

.cc-hero__arrows { display: flex; gap: var(--s-2); }

.cc-pause-icon {
	width: 12px;
	height: 14px;
	border-left: 3px solid currentColor;
	border-right: 3px solid currentColor;
}

[data-cc-pause][aria-pressed="true"] .cc-pause-icon {
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 7px 0 7px 12px;
	border-color: transparent transparent transparent currentColor;
}

@media (max-width: 720px) {
	.cc-hero__dot-label { display: none; }
	.cc-hero__dots { gap: var(--s-2); }
}

/* 2 — Immersif -------------------------------------------------------------- */

.cc-s-hero--immersive {
	display: flex;
	align-items: flex-end;
	min-height: max(640px, 100svh);
	padding: calc(var(--hero-top) + var(--s-8)) 0 var(--s-9);
	isolation: isolate;
}

.cc-s-hero--immersive .cc-hero__contours { opacity: 0.28; }

.cc-hero__row {
	display: grid;
	gap: var(--s-5) var(--s-8);
	align-items: end;
	margin-top: var(--s-6);
}

@media (min-width: 900px) {
	.cc-hero__row { grid-template-columns: 1fr auto; }
	.cc-hero__row .cc-actions { margin-top: 0; }
}

.cc-hero__row .cc-hero__text { margin-top: 0; }

.cc-hero__scroll {
	position: absolute;
	left: 50%;
	bottom: var(--s-4);
	display: grid;
	justify-items: center;
	gap: 2px;
	color: color-mix(in srgb, var(--cc-pollen) 70%, transparent);
	font-size: var(--fs-xs);
	text-decoration: none;
	transform: translateX(-50%);
}

.cc-hero__scroll .cc-icon { animation: cc-bob 1.8s var(--ease-in-out) infinite; }

@keyframes cc-bob { 50% { transform: translateY(5px); } }

.cc-play {
	display: inline-flex;
	align-items: center;
	gap: var(--s-3);
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font-weight: 650;
	cursor: pointer;
}

.cc-play__icon {
	width: 58px;
	height: 58px;
	padding: 18px 16px 18px 20px;
	border-radius: 50%;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	fill: currentColor;
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--cc-pollen) 45%, transparent);
	animation: cc-pulse 2.4s var(--ease) infinite;
}

@keyframes cc-pulse { 70% { box-shadow: 0 0 0 16px transparent; } }

/* 3 — Éditorial ------------------------------------------------------------- */

.cc-s-hero--editorial {
	padding: calc(var(--hero-top) + var(--s-7)) 0 var(--s-9);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	isolation: isolate;
}

.cc-s-hero--editorial .cc-hero__contours { color: var(--cc-ambre); opacity: 0.14; }

/* Titre éditorial : monumental mais contenu sur 3 à 4 lignes. */
.cc-s-hero--editorial .cc-hero__title--xl {
	font-size: clamp(2.8rem, 1.2rem + 4.6vw, 6.4rem);
	max-width: 16ch;
}
.cc-s-hero--editorial .cc-hero__text { color: var(--cc-encre-douce); }

.cc-hero__grid {
	display: grid;
	gap: var(--s-8);
	align-items: center;
}

@media (min-width: 960px) {
	.cc-hero__grid { grid-template-columns: 7fr 5fr; }
}

.cc-hero__figure {
	position: relative;
	margin: 0;
}

.cc-s-hero--editorial .cc-mask--arch { aspect-ratio: 4 / 5; }

.cc-s-hero--editorial .cc-ring {
	left: -12%;
	bottom: 8%;
}

/* 4 — Partagé -------------------------------------------------------------- */

.cc-s-hero--split {
	padding: calc(var(--hero-top) + var(--s-7)) 0 var(--s-9);
	background: var(--cc-canopee);
	isolation: isolate;
}

.cc-s-hero--split .cc-hero__contours { opacity: 0.16; }
.cc-s-hero--split .cc-hero__title { font-size: clamp(2.4rem, 1.3rem + 3.4vw, 4.6rem); max-width: 16ch; }
.cc-s-hero--split .cc-mask--petal { aspect-ratio: 4 / 5; }

@media (min-width: 960px) {
	.cc-s-hero--split .cc-hero__grid { grid-template-columns: 1fr 1fr; }
}

/* 5 — Commerce ------------------------------------------------------------- */

.cc-s-hero--commerce {
	display: flex;
	align-items: center;
	min-height: clamp(620px, 90svh, 880px);
	padding: calc(var(--hero-top) + var(--s-7)) 0 calc(var(--s-9) + 5rem);
	isolation: isolate;
}

.cc-hero__edge {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -1px;
	width: 100%;
	height: clamp(40px, 7vw, 110px);
	fill: var(--cc-pollen);
}

/* Bandeau défilant ------------------------------------------------------- */

.cc-s-marquee {
	padding-block: var(--s-6);
	overflow: hidden;
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

.cc-s-marquee--basalte {
	background: var(--cc-basalte);
	color: var(--cc-pollen);
}

.cc-s-marquee--contour {
	background: var(--cc-pollen);
	border-block: 1px solid var(--cc-ligne);
}

.cc-marquee__track {
	display: flex;
	width: max-content;
	animation: cc-marquee var(--cc-marquee-speed, 38s) linear infinite;
}

.cc-s-marquee:hover .cc-marquee__track { animation-play-state: paused; }

.cc-marquee__row {
	display: flex;
	flex: none;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-marquee__row li {
	display: flex;
	align-items: center;
	gap: clamp(1.25rem, 3vw, 2.75rem);
	padding-right: clamp(1.25rem, 3vw, 2.75rem);
	font-family: var(--cc-font-display);
	font-size: clamp(1.6rem, 1rem + 2.4vw, 3.2rem);
	font-weight: 700;
	letter-spacing: -0.03em;
	white-space: nowrap;
}

.cc-s-marquee--contour .cc-marquee__row li:nth-child(odd) span {
	color: color-mix(in srgb, var(--cc-basalte) 28%, transparent);
}

.cc-marquee__sep {
	width: 0.7em;
	height: 0.7em;
	fill: currentColor;
	stroke: none;
	opacity: 0.85;
}

.cc-s-marquee--basalte .cc-marquee__sep { fill: var(--cc-miel); }
.cc-s-marquee--contour .cc-marquee__sep { fill: var(--cc-miel); }

@keyframes cc-marquee { to { transform: translateX(-50%); } }

/* Bannière des pages intérieures --------------------------------------- */

.cc-banner {
	--hero-top: 0px;
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(340px, 46vw, 520px);
	padding: calc(var(--hero-top) + var(--s-8)) 0 var(--s-8);
	overflow: hidden;
	background: var(--cc-basalte);
	color: var(--cc-pollen);
	isolation: isolate;
}

.cc-banner__media {
	position: absolute;
	inset: 0;
	z-index: -2;
}

.cc-banner__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-banner__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, color-mix(in srgb, var(--cc-basalte) 88%, transparent) 0%, color-mix(in srgb, var(--cc-basalte) 55%, transparent) 55%, color-mix(in srgb, var(--cc-basalte) 40%, transparent) 100%);
}

.cc-banner__contours { color: var(--cc-miel); opacity: 0.2; z-index: -1; }

.cc-banner__title {
	max-width: 20ch;
	margin: 0;
	font-size: clamp(2.3rem, 1.5rem + 3.4vw, 4.6rem);
	line-height: 1.02;
	letter-spacing: -0.035em;
}

.cc-banner__text {
	max-width: 40rem;
	margin: var(--s-5) 0 0;
	font-size: var(--fs-lead);
	color: color-mix(in srgb, var(--cc-pollen) 82%, transparent);
}

.cc-breadcrumbs {
	margin-bottom: var(--s-5);
	font-size: var(--fs-xs);
}

.cc-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-breadcrumbs li:not(:last-child)::after {
	content: "/";
	margin-left: var(--s-2);
	opacity: 0.5;
}

.cc-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	opacity: 0.8;
}

.cc-breadcrumbs a:hover { opacity: 1; text-decoration: underline; }
.cc-breadcrumbs [aria-current] { opacity: 0.65; }

/* ==========================================================================
   Sections d'accueil
   ========================================================================== */

/* Identité ---------------------------------------------------------------- */

.cc-identite__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-5) var(--s-7);
	margin-top: var(--s-6);
}

.cc-identite__statement { position: relative; }

.cc-identite__word {
	margin: 0 0 var(--s-6);
	font-family: var(--cc-font-display);
	font-size: clamp(2.8rem, 16vw, 15rem);
	font-weight: 800;
	line-height: 0.82;
	letter-spacing: -0.06em;
	color: var(--cc-miel);
}

.cc-identite__cols {
	display: grid;
	gap: var(--s-6) var(--s-9);
}

@media (min-width: 960px) {
	.cc-identite__cols { grid-template-columns: 5fr 6fr; }
}

/* Activités --------------------------------------------------------------- */

.cc-acts {
	display: grid;
	gap: var(--s-5);
}

@media (min-width: 700px) {
	.cc-acts { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1100px) {
	.cc-acts { grid-template-columns: repeat(4, 1fr); }
}

/* Cartes à révélation photo */
.cc-actcard {
	position: relative;
	display: flex;
	flex-direction: column;
	min-height: 400px;
	padding: var(--s-6);
	overflow: hidden;
	border: 1px solid var(--cc-ligne);
	border-radius: 0 var(--r-l) 0 var(--r-l);
	background: var(--cc-pollen);
	isolation: isolate;
	transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.cc-actcard__bg {
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0;
	transition: opacity 0.6s var(--ease);
}

.cc-actcard__bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale(1.08);
	transition: transform 1.2s var(--ease);
}

.cc-actcard__bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, color-mix(in srgb, var(--cc-basalte) 92%, transparent) 10%, color-mix(in srgb, var(--cc-basalte) 45%, transparent));
}

.cc-actcard:hover,
.cc-actcard:focus-within {
	color: var(--cc-pollen);
	border-color: transparent;
}

.cc-actcard:hover .cc-actcard__bg,
.cc-actcard:focus-within .cc-actcard__bg { opacity: 1; }

.cc-actcard:hover .cc-actcard__bg img { transform: scale(1); }

@media (max-width: 699px) {
	.cc-actcard { min-height: 0; padding: var(--s-5); }
	.cc-actcard__title { margin-top: var(--s-5) !important; }
}

.cc-actcard__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin-bottom: 0;
	transition: transform 0.6s var(--ease), border-radius 0.6s var(--ease);
	border-radius: var(--r-m) 0 var(--r-m) 0;
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

.cc-actcard__title {
	margin: var(--s-7) 0 var(--s-3);
	line-height: 1.15;
	font-size: var(--fs-h3);
}

.cc-actcard__title a {
	color: inherit;
	text-decoration: none;
}

.cc-actcard__title a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.cc-actcard__text {
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
	transition: color var(--dur) var(--ease);
}

.cc-actcard:hover .cc-actcard__text,
.cc-actcard:focus-within .cc-actcard__text { color: color-mix(in srgb, var(--cc-pollen) 82%, transparent); }

.cc-actcard__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	margin-top: auto;
	padding-top: var(--s-4);
	font-size: var(--fs-s);
	font-weight: 650;
}

.cc-actcard:hover .cc-actcard__cta { color: var(--cc-miel); }
.cc-actcard:hover .cc-actcard__icon { transform: rotate(-8deg); border-radius: 50%; }
.cc-actcard:hover .cc-actcard__cta .cc-icon { transform: translateX(4px); }
.cc-actcard__cta .cc-icon { transition: transform var(--dur) var(--ease); }

/* Cartes images */
.cc-actimg {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 480px;
	overflow: hidden;
	border-radius: var(--r-m);
	color: var(--cc-pollen);
	text-decoration: none;
	isolation: isolate;
}

/* Pétale en haut uniquement : le texte en bas n'est jamais rogné par l'arrondi. */
.cc-actimg:nth-child(even) { border-radius: 0 var(--petal) var(--r-m) var(--r-m); }
.cc-actimg:nth-child(odd) { border-radius: var(--petal) 0 var(--r-m) var(--r-m); }

.cc-actimg__media {
	position: absolute;
	inset: 0;
	z-index: -1;
}

.cc-actimg__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 1s var(--ease);
}

.cc-actimg__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(0deg, color-mix(in srgb, var(--cc-basalte) 90%, transparent) 15%, transparent 70%);
}

.cc-actimg:hover .cc-actimg__media img { transform: scale(1.05); }

.cc-actimg__body {
	display: grid;
	gap: var(--s-2);
	padding: var(--s-6);
}

.cc-actimg__icon {
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin-bottom: var(--s-2);
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

.cc-actimg__title {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h3);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
}

.cc-actimg__text {
	max-height: 0;
	overflow: hidden;
	font-size: var(--fs-s);
	color: color-mix(in srgb, var(--cc-pollen) 82%, transparent);
	transition: max-height 0.6s var(--ease);
}

.cc-actimg:hover .cc-actimg__text,
.cc-actimg:focus .cc-actimg__text { max-height: 8em; }

@media (hover: none) {
	.cc-actimg__text { max-height: none; }
}

/* Grille à icônes */
.cc-actgrid {
	position: relative;
	padding: var(--s-7) var(--s-6) var(--s-8);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
}

.cc-actgrid__icon {
	display: inline-grid;
	place-items: center;
	width: 70px;
	height: 70px;
	margin-bottom: var(--s-5);
	border-radius: 50%;
	background: var(--cc-cire);
	color: var(--cc-ambre-texte);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-actgrid:hover .cc-actgrid__icon {
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

.cc-actgrid__title { font-size: var(--fs-h4); }

.cc-actgrid p {
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
}

.cc-actgrid__more {
	position: absolute;
	right: var(--s-5);
	bottom: var(--s-5);
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--cc-basalte);
	color: var(--cc-miel);
	transition: transform var(--dur) var(--ease);
}

.cc-actgrid__link {
	color: inherit;
	text-decoration: none;
}

/* Toute la carte est cliquable via le lien du titre. */
.cc-actgrid__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
}

.cc-actgrid:focus-within { outline: 3px solid var(--cc-ambre); outline-offset: 3px; }
.cc-actgrid__link:focus-visible { outline: none; }

.cc-actgrid:hover .cc-actgrid__more { transform: rotate(90deg); }

/* Onglets de solutions -------------------------------------------------- */

.cc-tabs__list {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	justify-content: center;
	margin-bottom: var(--s-6);
}

.cc-tabs__tab {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	padding: 0.9em 1.4em;
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: var(--r-m) var(--r-m) 0 0;
	background: transparent;
	color: var(--cc-basalte);
	font-weight: 650;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.cc-tabs__tab[aria-selected="true"] {
	background: var(--cc-basalte);
	border-color: var(--cc-basalte);
	color: var(--cc-pollen);
}

.cc-tabs__tab[aria-selected="true"] .cc-icon { color: var(--cc-miel); }

.cc-tabs__panel {
	display: grid;
	gap: 0;
	overflow: hidden;
	border-radius: var(--r-l);
	background: var(--cc-pollen);
	box-shadow: var(--sh-1);
	animation: cc-fade 0.5s var(--ease);
}

.cc-tabs__panel[hidden] { display: none; }

@media (min-width: 960px) {
	.cc-tabs__panel { grid-template-columns: 7fr 5fr; }
}

.cc-tabs__media { min-height: 320px; }

.cc-tabs__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-tabs__body {
	padding: clamp(1.75rem, 4vw, 3.5rem);
}

.cc-tabs__body p { color: var(--cc-encre-douce); }

@keyframes cc-fade { from { opacity: 0; } }

/* Univers du Shop -------------------------------------------------------- */

.cc-s-boutique-cats { padding-block: var(--s-8); }

.cc-s-boutique-cats--overlap {
	z-index: 3;
	margin-top: calc(-1 * clamp(5rem, 9vw, 9rem));
	padding-block: 0 var(--s-8);
}

.cc-shopcats__title {
	margin-bottom: var(--s-6);
	font-size: var(--fs-h3);
}

.cc-shopcats__list {
	display: grid;
	gap: var(--s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.cc-shopcats__list { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.cc-shopcats__list { grid-template-columns: repeat(4, 1fr); }
}

.cc-shopcat {
	display: grid;
	gap: var(--s-2);
	height: 100%;
	padding: var(--s-6);
	border-radius: var(--r-m);
	background: var(--cc-cire);
	color: var(--cc-basalte);
	text-decoration: none;
	transition: background-color var(--dur) var(--ease);
}

.cc-s-boutique-cats--overlap .cc-shopcat {
	background: var(--cc-pollen);
	box-shadow: var(--sh-2);
}

.cc-shopcat:hover { background: var(--cc-miel); }

.cc-shopcat__icon {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin-bottom: var(--s-3);
	border-radius: var(--r-s) 0 var(--r-s) 0;
	background: var(--cc-basalte);
	color: var(--cc-miel);
}

.cc-shopcat__title {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 700;
}

.cc-shopcat__text {
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
}

.cc-shopcat:hover .cc-shopcat__text { color: var(--cc-basalte); }

/* Miel du Volcan ------------------------------------------------------- */

.cc-s-miel { overflow: hidden; }

.cc-miel__contours { opacity: 0.18; }

.cc-miel__grid {
	display: grid;
	gap: var(--s-8);
	align-items: center;
}

@media (min-width: 960px) {
	.cc-miel__grid { grid-template-columns: 5fr 6fr; }
}

.cc-miel__visual {
	position: relative;
	min-height: 520px;
}

.cc-miel__land {
	width: 62%;
	aspect-ratio: 3 / 4;
	margin-left: auto;
}

.cc-miel__product {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 58%;
	aspect-ratio: 4 / 3;
	border: 8px solid var(--cc-basalte);
}

.cc-s-miel--light .cc-miel__product { border-color: var(--cc-cire); }

.cc-miel__visual .cc-ring {
	top: 4%;
	left: 6%;
}

.cc-places {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-3) var(--s-6);
	margin: var(--s-8) 0 0;
	padding: var(--s-6) 0 0;
	border-top: 1px solid var(--cc-ligne);
	list-style: none;
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 600;
}

.cc-places li {
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
}

.cc-places .cc-icon { color: var(--cc-miel); }
.cc-s-miel--light .cc-places .cc-icon { color: var(--cc-ambre); }

/* Collage (variante commerce) */
.cc-collage {
	position: relative;
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: repeat(12, 1fr);
	aspect-ratio: 1;
	gap: var(--s-3);
}

.cc-collage > div:not(.cc-ring) {
	overflow: hidden;
	border-radius: var(--r-m);
}

.cc-collage img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-collage__a { grid-area: 1 / 1 / 8 / 8; border-radius: var(--petal) 0 var(--r-m) var(--r-m) !important; }
.cc-collage__b { grid-area: 1 / 8 / 6 / 13; }
.cc-collage__c { grid-area: 8 / 1 / 13 / 6; }
.cc-collage__d { grid-area: 6 / 8 / 13 / 13; border-radius: var(--r-m) var(--r-m) var(--petal) 0 !important; }

.cc-ring--collage {
	left: 50%;
	top: 60%;
	transform: translate(-60%, -50%);
}

/* Traçabilité ---------------------------------------------------------- */

.cc-trace-wrap {
	position: relative;
	margin-top: var(--s-7);
}

.cc-trace__line {
	position: absolute;
	top: 30px;
	left: calc(100% / var(--cc-steps) / 2);
	right: calc(100% / var(--cc-steps) / 2);
	width: auto;
	height: 60px;
	fill: none;
	stroke: var(--cc-miel);
	stroke-width: 2;
	stroke-dasharray: 1;
	stroke-dashoffset: 0;
	transform: translateY(-50%);
}

.cc-trace__line path { stroke-dasharray: 1; }

.cc-trace {
	position: relative;
	display: grid;
	gap: var(--s-6);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) {
	.cc-trace { grid-template-columns: repeat(var(--cc-steps), 1fr); gap: var(--s-4); }
}

@media (max-width: 899px) {
	.cc-trace__line { display: none; }
	.cc-trace { padding-left: var(--s-2); border-left: 2px dashed color-mix(in srgb, var(--cc-miel) 60%, transparent); }
	.cc-trace__step { padding-left: var(--s-5); }
}

.cc-trace__step { text-align: left; }

@media (min-width: 900px) {
	.cc-trace__step { text-align: center; }
}

.cc-trace__dot {
	display: inline-grid;
	place-items: center;
	width: 60px;
	height: 60px;
	border: 2px solid var(--cc-miel);
	border-radius: 50%;
	background: var(--cc-canopee);
	color: var(--cc-miel);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.cc-trace__step:hover .cc-trace__dot {
	background: var(--cc-miel);
	color: var(--cc-basalte);
	transform: scale(1.08);
}

.cc-trace__num {
	display: block;
	margin-top: var(--s-4);
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--cc-miel);
	font-variant-numeric: tabular-nums;
}

.cc-trace__title {
	margin: var(--s-1) 0 var(--s-2);
	font-size: var(--fs-h4);
}

.cc-trace__text {
	font-size: var(--fs-s);
	color: var(--cc-muted);
}

.cc-s-tracabilite .cc-head-row { align-items: start; }
.cc-s-tracabilite .cc-head-row__text .cc-btn { margin-top: var(--s-5); }

/* ApiConnect ------------------------------------------------------------ */

/* Visuel : une seule photo (pétale), motif apitech en haut, carte d'alerte */
.cc-api__media {
	position: relative;
	padding-bottom: 8%;
}

.cc-api__main { position: relative; z-index: 1; aspect-ratio: 5 / 4; }

.cc-api__alert { z-index: 3; }

/* Motif apitech (puce + abeille) posé sur le coin haut de la photo */
.cc-deco--api-tech {
	z-index: 2;
	top: -9%;
	left: -7%;
	width: clamp(110px, 11vw, 160px);
	filter: drop-shadow(0 14px 24px color-mix(in srgb, var(--cc-basalte) 30%, transparent));
	animation: cc-hover 6s ease-in-out infinite;
}

@media (max-width: 899px) {
	.cc-deco--api-tech { top: -6%; left: -2%; width: 88px; }
}

@media (prefers-reduced-motion: reduce) {
	.cc-deco--api-tech { animation: none; }
}


.cc-apiv__svg { display: block; width: 100%; height: auto; overflow: visible; }
.cc-apiv__bg { fill: var(--cc-basalte); }
.cc-apiv__grid polygon { fill: none; stroke: var(--cc-miel); stroke-opacity: 0.09; stroke-width: 1.2; }

.cc-apiv__ring { fill: none; stroke: var(--cc-miel); stroke-opacity: 0.45; stroke-width: 1.4; stroke-dasharray: 2 10; transform-origin: 240px 240px; animation: cc-turn 40s linear infinite; }
.cc-apiv__ring--inner { stroke-opacity: 0.25; stroke-dasharray: 18 8; animation-direction: reverse; animation-duration: 60s; }

.cc-apiv__trace { fill: none; stroke: var(--cc-miel); stroke-opacity: 0.4; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cc-apiv__pulse {
	fill: none;
	stroke: var(--cc-miel);
	stroke-width: 3.4;
	stroke-linecap: round;
	stroke-dasharray: 12 300;
	filter: drop-shadow(0 0 4px var(--cc-miel));
	animation: cc-dash-pulse 3.6s linear infinite;
	animation-delay: calc(var(--d) * -0.6s);
}

.cc-apiv__end { fill: var(--cc-basalte); stroke: var(--cc-miel); stroke-width: 2; }
.cc-apiv__pins path { fill: none; stroke: var(--cc-ambre); stroke-width: 4; stroke-linecap: round; }
.cc-apiv__chip { fill: var(--cc-basalte-2); stroke: var(--cc-miel); stroke-width: 2; }
.cc-apiv__hex { fill: var(--cc-miel); stroke: var(--cc-ambre); stroke-width: 2; }
.cc-apiv__svg .cc-bee { animation: cc-hover 3.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.cc-apiv__svg .cc-bee__body { fill: var(--cc-pollen); }

.cc-apiv__halo { fill: var(--cc-miel); opacity: 0.12; animation: cc-halo 3.2s ease-in-out infinite; animation-delay: calc(var(--d) * -0.8s); transform-box: fill-box; transform-origin: center; }
.cc-apiv__dot { fill: var(--cc-pollen); stroke: var(--cc-miel); stroke-width: 2.5; }
.cc-apiv__ico { fill: none; stroke: var(--cc-basalte); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; overflow: visible; }
.cc-apiv__node.is-flore .cc-apiv__dot { fill: color-mix(in srgb, #7fb069 30%, var(--cc-pollen)); }
.cc-apiv__node.is-phone .cc-apiv__dot { fill: var(--cc-miel); stroke: var(--cc-pollen); }

.cc-apiv__waves path { fill: none; stroke: var(--cc-miel); stroke-width: 3; stroke-linecap: round; animation: cc-signal-wave 2.4s ease-in-out infinite; }
.cc-apiv__waves path:nth-child(2) { animation-delay: 0.35s; }

@keyframes cc-halo { 0%, 100% { transform: scale(0.85); opacity: 0.1; } 50% { transform: scale(1.12); opacity: 0.22; } }

.cc-api__chip {
	position: absolute;
	top: 6%;
	right: -2%;
	display: inline-flex;
	align-items: center;
	gap: var(--s-2);
	padding: 0.55em 1em;
	border-radius: 999px;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
	font-size: var(--fs-xs);
	font-weight: 700;
	white-space: nowrap;
	animation: cc-float 7s var(--ease-in-out) infinite reverse;
}

.cc-api__chip-dot { width: 9px; height: 9px; border-radius: 50%; background: #3fa34d; box-shadow: 0 0 0 4px color-mix(in srgb, #3fa34d 25%, transparent); animation: cc-twinkle 1.6s ease-in-out infinite; }

.cc-deco--api-circuit { z-index: -1; top: -6%; left: -10%; width: clamp(140px, 16vw, 230px); color: var(--cc-ambre); opacity: 0.6; }

@media (max-width: 599px) {
	.cc-api__chip { right: 0; top: 2%; font-size: 0.7rem; }
}

@media (prefers-reduced-motion: reduce) {
	.cc-apiv__svg *, .cc-api__chip, .cc-api__chip-dot { animation: none !important; }
}

.cc-api__alert {
	position: absolute;
	left: -4%;
	bottom: 6%;
	display: flex;
	gap: var(--s-3);
	align-items: center;
	max-width: 300px;
	padding: var(--s-4);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
	font-size: var(--fs-xs);
	line-height: 1.35;
	animation: cc-float 6s var(--ease-in-out) infinite;
}

.cc-api__alert strong,
.is-dark .cc-api__alert strong {
	display: block;
	font-size: var(--fs-s);
	color: var(--cc-basalte);
}

.cc-api__alert-icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--cc-miel);
}

@keyframes cc-float { 50% { transform: translateY(-8px); } }

.cc-api__logo {
	width: auto;
	height: 56px;
	margin-bottom: var(--s-6);
}

.is-dark .cc-api__logo {
	padding: 10px 16px;
	border-radius: var(--r-s);
	background: var(--cc-pollen);
	height: 68px;
}

/* Chiffres clés ----------------------------------------------------------- */

.cc-s-chiffres--band {
	background-image: linear-gradient(color-mix(in srgb, var(--cc-basalte) 78%, transparent), color-mix(in srgb, var(--cc-basalte) 78%, transparent)), var(--cc-bg);
	background-size: cover;
	background-position: center;
	background-attachment: fixed;
}

@media (hover: none), (max-width: 900px) {
	.cc-s-chiffres--band { background-attachment: scroll; }
}

.cc-counters__title {
	max-width: 30ch;
	margin-bottom: var(--s-7);
	font-size: clamp(1.6rem, 1.1rem + 2vw, 2.6rem);
	letter-spacing: -0.02em;
}

.cc-counters {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--s-6) var(--s-4);
	margin: 0;
}

@media (min-width: 1024px) {
	.cc-counters { grid-template-columns: repeat(4, 1fr); }
}

.cc-counter {
	padding-top: var(--s-5);
	border-top: 2px solid var(--cc-miel);
}

.cc-counter__value {
	font-family: var(--cc-font-display);
	font-size: clamp(3.2rem, 2rem + 4.5vw, 6rem);
	font-weight: 750;
	line-height: 1;
	letter-spacing: -0.05em;
	font-variant-numeric: tabular-nums;
}

.cc-counter__suffix { color: var(--cc-miel); }

.cc-s-chiffres--plain .cc-counter__suffix,
.cc-s-chiffres--panel .cc-counter__suffix { color: var(--cc-ambre); }

.cc-counter__label {
	margin: var(--s-3) 0 0;
	font-size: var(--fs-s);
	color: var(--cc-muted, var(--cc-encre-douce));
}

.cc-s-chiffres--plain { padding-block: var(--s-8); border-block: 1px solid var(--cc-ligne); }

.cc-s-chiffres--panel .cc-counters-wrap {
	display: grid;
	gap: var(--s-7);
	padding: clamp(2rem, 5vw, 5rem);
	border-radius: var(--r-l) var(--r-l) var(--r-l) clamp(80px, 14vw, 200px);
	background: var(--cc-cire);
}

@media (min-width: 1024px) {
	.cc-s-chiffres--panel .cc-counters-wrap { grid-template-columns: 5fr 6fr; align-items: center; }
	.cc-s-chiffres--panel .cc-counters { grid-template-columns: repeat(2, 1fr); }
}

/* Roue de l'approche ------------------------------------------------------ */

.cc-wheel {
	display: grid;
	gap: var(--s-8);
	align-items: center;
}

@media (min-width: 1024px) {
	.cc-wheel { grid-template-columns: 1fr 1fr; }
}

.cc-wheel__visual {
	position: relative;
	width: min(100%, 540px);
	aspect-ratio: 1;
	margin-inline: auto;
}

.cc-wheel__photo {
	position: absolute;
	inset: 17%;
	overflow: hidden;
	border-radius: 50%;
}

.cc-wheel__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cc-wheel__orbit {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: var(--cc-ambre);
	stroke-width: 0.35;
	stroke-dasharray: 1.2 1.6;
	animation: cc-spin 90s linear infinite;
}

.cc-wheel__node {
	--r: calc(min(100vw - 2 * var(--cc-gutter), 540px) * 0.46);
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 52px;
	height: 52px;
	margin: -26px 0 0 -26px;
	border-radius: 50%;
	background: var(--cc-pollen);
	border: 2px solid var(--cc-miel);
	font-family: var(--cc-font-display);
	font-weight: 750;
	transform: rotate(var(--a)) translateX(var(--r)) rotate(calc(-1 * var(--a)));
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

@media (min-width: 1024px) {
	.cc-wheel__node { --r: calc(min(50vw - 2 * var(--cc-gutter), 540px) * 0.46); }
}

.cc-wheel__node.is-active {
	background: var(--cc-miel);
	transform: rotate(var(--a)) translateX(var(--r)) rotate(calc(-1 * var(--a))) scale(1.18);
}

.cc-wheel__list {
	display: grid;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-wheel__item {
	display: flex;
	gap: var(--s-4);
	align-items: baseline;
	padding: var(--s-3) var(--s-4);
	border-radius: var(--r-s);
	color: var(--cc-encre-douce);
	cursor: default;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-wheel__item strong {
	color: var(--cc-basalte);
	font-family: var(--cc-font-display);
	font-size: 1.1rem;
}

.cc-wheel__item.is-active {
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-1);
}

.cc-wheel__num {
	flex: none;
	width: 1.6em;
	font-weight: 700;
	color: var(--cc-ambre-texte);
	font-variant-numeric: tabular-nums;
}

/* Impact ---------------------------------------------------------------- */

.cc-impact {
	display: grid;
	gap: var(--s-7);
}

@media (min-width: 1024px) {
	.cc-impact {
		grid-template-columns: 5fr 6fr;
		grid-template-areas: "head head" "media body";
		column-gap: var(--s-9);
	}
	.cc-impact__head { grid-area: head; }
	.cc-impact__media { grid-area: media; }
	.cc-impact__body { grid-area: body; align-self: center; }
}

.cc-impact__head .cc-head { max-width: 60rem; }
.cc-impact__head .cc-head__title { font-size: clamp(2.2rem, 1.4rem + 3.2vw, 4.4rem); }
.cc-impact__media { aspect-ratio: 4 / 5; }

.cc-impact__lead {
	font-size: var(--fs-lead);
	line-height: 1.55;
	color: var(--cc-encre-douce);
}

.cc-impact__intro {
	margin-top: var(--s-6);
	font-weight: 650;
}

.cc-impact__links {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: var(--s-3);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-impact__links li {
	display: flex;
	align-items: center;
	gap: var(--s-3);
	padding: var(--s-3) var(--s-4);
	border: 1px solid var(--cc-ligne);
	border-radius: 999px;
	font-weight: 600;
	font-size: var(--fs-s);
}

.cc-impact__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--cc-miel);
}

.cc-impact__icon .cc-icon { width: 20px; height: 20px; }

/* ODD ------------------------------------------------------------------- */

.cc-odd-head {
	display: grid;
	gap: var(--s-6);
	align-items: center;
	margin-bottom: var(--s-8);
}

@media (min-width: 900px) {
	.cc-odd-head { grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-8); }
}

.cc-odd-head .cc-head { margin-bottom: var(--s-4); }

.cc-odd-head__text {
	max-width: 52ch;
	margin: 0 0 var(--s-5);
	font-size: var(--fs-lead);
	line-height: 1.55;
	color: var(--cc-encre-douce);
}

.cc-odd-legend {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-odd-legend li {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: var(--odd);
	color: #fff;
	font-family: var(--cc-font-display);
	font-size: 0.9rem;
	font-weight: 800;
}

.cc-rail-nav { margin-top: var(--s-5); }

/* Roue des ODD */
.cc-oddwheel {
	position: relative;
	width: clamp(220px, 26vw, 320px);
	aspect-ratio: 1;
	justify-self: center;
}

.cc-oddwheel__svg { display: block; width: 100%; height: 100%; overflow: visible; }

.cc-oddwheel__seg {
	fill: none;
	stroke-width: 34;
	transition: stroke-width var(--dur) var(--ease), opacity var(--dur) var(--ease);
}

.cc-oddwheel.has-active .cc-oddwheel__seg { opacity: 0.28; }
.cc-oddwheel.has-active .cc-oddwheel__seg.is-active { opacity: 1; stroke-width: 44; }

.cc-oddwheel__n {
	fill: #fff;
	font-family: var(--cc-font-display);
	font-size: 15px;
	font-weight: 800;
	text-anchor: middle;
	dominant-baseline: central;
	pointer-events: none;
}

.cc-oddwheel__ring {
	fill: var(--cc-pollen);
	stroke: var(--cc-ambre);
	stroke-width: 1.4;
	stroke-dasharray: 3 7;
	transform-origin: 110px 110px;
	animation: cc-turn 50s linear infinite;
}

.cc-oddwheel__center {
	position: absolute;
	inset: 0;
	display: grid;
	place-content: center;
	text-align: center;
	pointer-events: none;
}

.cc-oddwheel__center strong {
	font-family: var(--cc-font-display);
	font-size: clamp(2.2rem, 1.6rem + 2vw, 3.2rem);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--cc-basalte);
	transition: color var(--dur) var(--ease);
}

.cc-oddwheel__center span {
	max-width: 13ch;
	margin-top: 4px;
	font-size: var(--fs-xs);
	font-weight: 700;
	line-height: 1.2;
	color: var(--cc-encre-douce);
}

/* Cartes */
.cc-odds:not(.cc-rail) {
	display: grid;
	gap: var(--s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 640px) {
	.cc-odds:not(.cc-rail) { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1100px) {
	.cc-odds:not(.cc-rail) { grid-template-columns: repeat(4, 1fr); }
}

.cc-odds.cc-rail { grid-auto-columns: min(78vw, 310px); }

.cc-odd {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--s-5) var(--s-5) var(--s-6);
	border: 1px solid color-mix(in srgb, var(--odd) 18%, transparent);
	border-radius: var(--r-m) var(--r-m) var(--r-m) 6px;
	background: var(--cc-pollen);
	overflow: hidden;
	isolation: isolate;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

/* Remplissage coloré qui monte au survol */
.cc-odd::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(160deg, color-mix(in srgb, var(--odd) 12%, var(--cc-pollen)) 0%, var(--cc-pollen) 70%);
	opacity: 0;
	transition: opacity var(--dur) var(--ease);
}

/* Barre de couleur en pied de carte */
.cc-odd::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 5px;
	background: var(--odd);
	transform: scaleX(0.22);
	transform-origin: left;
	transition: transform 0.7s var(--ease);
}

.cc-odd:hover,
.cc-odd:focus-within {
	border-color: color-mix(in srgb, var(--odd) 45%, transparent);
	box-shadow: 0 24px 48px -30px color-mix(in srgb, var(--odd) 80%, transparent);
	transform: translateY(-4px);
}

.cc-odd:hover::before,
.cc-odd:focus-within::before { opacity: 1; }
.cc-odd:hover::after,
.cc-odd:focus-within::after { transform: scaleX(1); }

.cc-odd__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--s-3);
	margin-bottom: var(--s-4);
}

.cc-odd__tile {
	display: grid;
	place-items: center;
	flex: none;
	width: 64px;
	height: 64px;
	border-radius: 18px 18px 18px 4px;
	background: var(--odd);
	color: #fff;
	box-shadow: inset 0 -6px 0 color-mix(in srgb, #000 12%, transparent);
	transition: transform var(--dur) var(--ease), border-radius var(--dur) var(--ease);
}

.cc-odd:hover .cc-odd__tile { transform: rotate(-6deg); border-radius: 50%; }

.cc-odd__icon { width: 64px; height: 64px; border-radius: inherit; object-fit: cover; }

.cc-odd__num {
	font-family: var(--cc-font-display);
	font-size: 3.4rem;
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.06em;
	color: transparent;
	-webkit-text-stroke: 1.5px color-mix(in srgb, var(--odd) 55%, transparent);
	font-variant-numeric: tabular-nums;
	transition: color var(--dur) var(--ease);
}

.cc-odd:hover .cc-odd__num { color: color-mix(in srgb, var(--odd) 16%, transparent); }

.cc-odd__label {
	margin: 0 0 var(--s-1);
	font-size: var(--fs-xs);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--odd);
	filter: brightness(0.85);
}

.cc-odd__title {
	margin-bottom: var(--s-3);
	font-size: var(--fs-h4);
	line-height: 1.2;
}

.cc-odd__text {
	margin: 0;
	font-size: var(--fs-s);
	line-height: 1.6;
	color: var(--cc-encre-douce);
}

/* Mobile : carrousel horizontal à défilement aimanté au lieu de huit cartes empilées */
@media (max-width: 639px) {
	.cc-odds:not(.cc-rail) {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: 84%;
		grid-template-columns: none;
		gap: var(--s-3);
		margin-inline: calc(var(--cc-gutter) * -1);
		padding: var(--s-2) var(--cc-gutter) var(--s-4);
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: var(--cc-gutter);
		scrollbar-width: none;
	}
	.cc-odds:not(.cc-rail)::-webkit-scrollbar { display: none; }
	.cc-odds:not(.cc-rail) > .cc-odd { scroll-snap-align: start; }
	.cc-odd:hover, .cc-odd:focus-within { transform: none; }
	.cc-oddwheel { width: 200px; }
	.cc-odd-head { margin-bottom: var(--s-6); }
}

@media (max-width: 639px) {
	.cc-odd { padding: var(--s-5); }
	.cc-odd__tile { width: 56px; height: 56px; }
	.cc-odd__num { font-size: 2.8rem; }
}

/* Produits ------------------------------------------------------------- */

.cc-products {
	display: grid;
	gap: var(--s-6) var(--s-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 600px) {
	.cc-products { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.cc-products { grid-template-columns: repeat(4, 1fr); }
}

.cc-product {
	display: flex;
	flex-direction: column;
}

.cc-product__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 1;
	border-radius: var(--r-m);
	background: radial-gradient(circle at 50% 60%, var(--cc-pollen) 0%, var(--cc-cire) 70%);
}

.cc-product__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	padding: 8%;
	transition: transform 0.8s var(--ease);
}

.cc-product:hover .cc-product__media img { transform: scale(1.05) rotate(-2deg); }

.cc-product__flag {
	position: absolute;
	top: var(--s-4);
	left: var(--s-4);
	padding: 0.3em 0.8em;
	border-radius: 999px;
	background: var(--cc-basalte);
	color: var(--cc-miel);
	font-size: var(--fs-xs);
	font-weight: 700;
}

.cc-product__body { padding-top: var(--s-4); }

.cc-product__cat {
	margin: 0 0 var(--s-1);
	font-size: var(--fs-xs);
	font-weight: 600;
	color: var(--cc-ambre-texte);
}

.cc-product__title {
	margin: 0 0 var(--s-3);
	font-size: var(--fs-h4);
}

.cc-product__title a { color: inherit; text-decoration: none; }

.cc-product__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-3);
}

.cc-product__price {
	font-family: var(--cc-font-display);
	font-size: 1.3rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}

.cc-product__price del { opacity: 0.5; font-size: 0.8em; }
.cc-product__price ins { text-decoration: none; }

.cc-product__add.button {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-product__add.button:hover {
	background: var(--cc-basalte);
	color: var(--cc-miel);
}

.cc-product__add.loading { opacity: 0.6; }
.cc-product__add.added::after { display: none; }

.cc-product .added_to_cart {
	display: block;
	margin-top: var(--s-2);
	font-size: var(--fs-xs);
	font-weight: 650;
}

.cc-products__quote {
	display: flex;
	align-items: center;
	gap: var(--s-4);
	max-width: 50rem;
	margin: var(--s-8) auto 0;
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 600;
	text-align: left;
}

.cc-products__quote .cc-icon { flex: none; color: var(--cc-ambre); }

/* Publics / commandes en volume -------------------------------------------- */

.cc-s-volume { overflow: hidden; }

.cc-audiences {
	display: grid;
	gap: var(--s-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) {
	.cc-audiences { grid-template-columns: repeat(3, 1fr); }
}

.cc-audience {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--s-7) var(--s-6);
	border: 1px solid var(--cc-ligne);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: color-mix(in srgb, var(--cc-pollen) 4%, transparent);
}

.cc-audience.is-featured {
	background: var(--cc-miel);
	color: var(--cc-basalte);
	border-color: var(--cc-miel);
}

.cc-audience p {
	flex: 1;
	color: var(--cc-muted);
}

.cc-audience.is-featured p { color: var(--cc-basalte); }

.cc-audience__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	margin-bottom: var(--s-6);
	border-radius: 50%;
	background: color-mix(in srgb, var(--cc-miel) 16%, transparent);
	color: var(--cc-miel);
}

.cc-audience.is-featured .cc-audience__icon {
	background: var(--cc-basalte);
	color: var(--cc-miel);
}

.cc-audience.is-featured .cc-btn--miel {
	--btn-bg: var(--cc-basalte);
	--btn-fg: var(--cc-pollen);
	--btn-bd: var(--cc-basalte);
}

.cc-audience__title { font-size: var(--fs-h3); }

/* FAQ -------------------------------------------------------------------- */

.cc-faq {
	display: grid;
	gap: var(--s-8);
}

@media (min-width: 1024px) {
	.cc-faq { grid-template-columns: 5fr 7fr; align-items: start; }
	.cc-faq__aside { position: sticky; top: calc(var(--header-h) + var(--s-6)); }
}

.cc-faq__media {
	aspect-ratio: 16 / 11;
	margin-bottom: var(--s-6);
}

.cc-s-faq--over-image {
	background-image: linear-gradient(color-mix(in srgb, var(--cc-basalte) 84%, transparent), color-mix(in srgb, var(--cc-basalte) 84%, transparent)), var(--cc-bg);
	background-size: cover;
	background-position: center;
}

.cc-accordion {
	display: grid;
	gap: var(--s-3);
}

.cc-accordion__item {
	border: 1px solid var(--cc-ligne);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.cc-accordion__item[open] {
	border-color: transparent;
	box-shadow: var(--sh-1);
}

.cc-accordion__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--s-4);
	padding: var(--s-5) var(--s-6);
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 650;
	line-height: 1.3;
	letter-spacing: -0.01em;
	list-style: none;
	cursor: pointer;
}

.cc-accordion__q::-webkit-details-marker { display: none; }

.cc-accordion__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--cc-cire);
	transition: transform var(--dur) var(--ease), background-color var(--dur) var(--ease);
}

.cc-accordion__item[open] .cc-accordion__icon {
	background: var(--cc-miel);
	transform: rotate(45deg);
}

.cc-accordion__a {
	padding: 0 var(--s-6) var(--s-5);
	color: var(--cc-encre-douce);
}

.cc-accordion__a p { margin: 0; max-width: 60ch; }

/* Devis --------------------------------------------------------------------- */


.cc-s-devis--over-image,
.cc-s-devis--band {
	background-image: linear-gradient(color-mix(in srgb, var(--cc-basalte) 80%, transparent), color-mix(in srgb, var(--cc-basalte) 80%, transparent)), var(--cc-bg);
	background-size: cover;
	background-position: center;
}

.cc-devis {
	display: grid;
	gap: var(--s-8);
	align-items: start;
}

@media (min-width: 1024px) {
	.cc-devis { grid-template-columns: 5fr 7fr; }
}

.cc-devis__intro .cc-head { margin-bottom: var(--s-6); }

.cc-devis__form {
	padding: clamp(1.5rem, 4vw, 3rem);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: var(--sh-2);
}

/* Blog (accueil) ---------------------------------------------------------- */

.cc-s-blog .cc-rail { grid-auto-columns: min(82vw, 400px); }

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

.cc-s-galerie { padding-bottom: 0; overflow: hidden; }

.cc-galerie__title {
	max-width: 18ch;
	margin-bottom: var(--s-7);
	font-size: var(--fs-h2);
	letter-spacing: -0.03em;
}

/* Fondu sur les bords de la bande défilante */
.cc-galerie__viewport {
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

.cc-galerie__track {
	display: flex;
	width: max-content;
	animation: cc-marquee 60s linear infinite;
}

.cc-galerie__track:hover { animation-play-state: paused; }

.cc-galerie__row {
	display: flex;
	gap: var(--s-3);
	margin: 0;
	padding: 0 var(--s-3) 0 0;
	list-style: none;
}

.cc-galerie__row li {
	width: clamp(200px, 22vw, 320px);
	aspect-ratio: 1;
	overflow: hidden;
	border-radius: var(--r-m);
}

.cc-galerie__row li:nth-child(3n + 1) { border-radius: 0 var(--r-l) 0 var(--r-l); }

.cc-galerie__row img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Rencontres & réseaux ------------------------------------------------------ */

.cc-reseau {
	display: grid;
	gap: var(--s-6) var(--s-8);
}

@media (min-width: 960px) {
	.cc-reseau { grid-template-columns: 4fr 8fr; }
}

.cc-reseau__title { font-size: var(--fs-h3); }

.cc-reseau__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--cc-ligne);
}

.cc-reseau__list li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: var(--s-2) var(--s-5);
	padding: var(--s-4) 0;
	border-bottom: 1px solid var(--cc-ligne);
}

.cc-reseau__name {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 650;
}

.cc-reseau__detail {
	color: var(--cc-encre-douce);
	font-size: var(--fs-s);
}

/* Appel final ---------------------------------------------------------------- */

.cc-cta__contours {
	color: var(--cc-basalte);
	opacity: 0.12;
}

.cc-cta {
	position: relative;
	display: grid;
	gap: var(--s-7);
	align-items: center;
	padding: clamp(2rem, 6vw, 6rem);
	overflow: hidden;
	border-radius: var(--r-l) var(--r-l) var(--r-l) clamp(80px, 12vw, 180px);
	background: var(--cc-miel);
	color: var(--cc-basalte);
	isolation: isolate;
}

@media (min-width: 960px) {
	.cc-cta { grid-template-columns: 7fr 4fr; }
}

.cc-cta__title {
	margin: 0;
	font-size: clamp(2.1rem, 1.4rem + 3vw, 4.2rem);
	line-height: 1.02;
}

.cc-cta__text {
	max-width: 40rem;
	margin: var(--s-5) 0 0;
	font-size: var(--fs-lead);
}

.cc-cta .cc-btn--ligne { --btn-bd: var(--cc-basalte); }

.cc-cta__media { aspect-ratio: 4 / 5; }

.cc-ring--cta {
	position: relative;
	justify-self: center;
	width: clamp(150px, 18vw, 230px);
}

.cc-ring--cta .cc-ring__bg { fill: var(--cc-basalte); }
.cc-ring--cta .cc-ring__text { fill: var(--cc-miel); }

.cc-ring--cta .cc-ring__center {
	background: var(--cc-miel);
	color: var(--cc-basalte);
	border: 2px solid var(--cc-basalte);
}

/* Responsive : médias superposés ---------------------------------------------- */

@media (max-width: 700px) {
	.cc-floatcard { left: 4%; }
	.cc-api__alert { left: 0; max-width: 240px; }
	.cc-badge { right: 0; max-width: 11rem; padding: var(--s-4); }
	.cc-s-hero--editorial .cc-ring { left: 0; }
	.cc-miel__visual { min-height: 420px; }
}

/* ==========================================================================
   Contenu des pages (blocs), blog, article, commentaires, 404
   ========================================================================== */

/* Flux de blocs : colonne de lecture, blocs larges et pleine largeur */
.cc-page-content {
	--measure: 760px;
	--wide: var(--cc-container);
	padding-block: var(--cc-section-y);
}

.cc-page-content > * {
	max-width: var(--measure);
	margin-inline: auto;
	padding-inline: var(--cc-gutter);
	box-sizing: content-box;
}

.cc-page-content > .alignwide { max-width: var(--wide); }

.cc-page-content > .alignfull,
.cc-page-content > .cc-embed {
	max-width: none;
	padding-inline: 0;
}

.cc-page-content:has(> .alignfull:first-child),
.cc-page-content:has(> .cc-embed:first-child) { padding-top: 0; }

.cc-page-content:has(> .alignfull:last-child),
.cc-page-content:has(> .cc-embed:last-child) { padding-bottom: 0; }

.cc-page-content--bare { padding: 0; }
.cc-page-content--bare > * { max-width: none; padding-inline: 0; box-sizing: border-box; }

/* Sections de blocs (patterns) */
.cc-b-section {
	position: relative;
	padding-block: var(--cc-section-y);
	isolation: isolate;
	overflow: hidden;
}

.cc-b-section.cc-b-section > * {
	max-width: var(--cc-container);
	margin-left: auto;
	margin-right: auto;
	padding-inline: var(--cc-gutter);
	box-sizing: content-box;
}

/* Textes directs : alignés sur le bord du conteneur, longueur de ligne limitée. */
.cc-b-section.cc-b-section > :is(p, h2, h3, .wp-block-buttons) {
	box-sizing: border-box;
	width: min(46rem, 100% - 2 * var(--cc-gutter));
	max-width: none;
	margin-left: max(var(--cc-gutter), (100% - var(--cc-container)) / 2);
	margin-right: auto;
	padding-inline: 0;
}

.cc-b-section.cc-b-section > .cc-b-word { width: auto; }

.cc-b-section.cc-b-section > .cc-contours,
.cc-b-section.cc-b-section > .cc-b-contours { max-width: none; padding: 0; margin: 0; }

.wp-block-group.is-style-cire { background: var(--cc-cire); }

.wp-block-group.is-style-basalte,
.wp-block-group.is-style-canopee,
.wp-block-column.is-dark {
	color: var(--cc-pollen);
	--cc-muted: color-mix(in srgb, var(--cc-pollen) 76%, transparent);
	--cc-ligne: color-mix(in srgb, var(--cc-pollen) 16%, transparent);
}

.wp-block-group.is-style-basalte { background: var(--cc-basalte); }
.wp-block-group.is-style-canopee { background: var(--cc-canopee); }

.wp-block-group.is-style-basalte .cc-b-contours,
.wp-block-group.is-style-canopee .cc-b-contours { color: var(--cc-miel); opacity: 0.18; }

.cc-b-contours {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	fill: none;
	stroke: currentColor;
	opacity: 0.12;
	pointer-events: none;
}


.cc-page-content h2,
.cc-b-section h2 { max-width: 22ch; }

.cc-b-section p,
.cc-b-section li { color: var(--cc-muted, var(--cc-encre-douce)); }

.cc-b-section strong { color: var(--cc-basalte); }
.is-style-basalte strong,
.is-style-canopee strong,
.is-dark strong { color: var(--cc-pollen); }

.cc-b-section p.cc-kicker {
	display: flex;
	align-items: center;
	gap: 0.55em;
	color: var(--cc-ambre-texte);
}

.cc-b-section p.cc-kicker::before {
	content: "";
	width: 0.85em;
	height: 1.05em;
	flex: none;
	background: var(--cc-ambre);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.2c3.3 4.2 5.5 7.4 5.5 10.3a5.5 5.5 0 0 1-11 0c0-2.9 2.2-6.1 5.5-10.3z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3.2c3.3 4.2 5.5 7.4 5.5 10.3a5.5 5.5 0 0 1-11 0c0-2.9 2.2-6.1 5.5-10.3z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.is-style-basalte p.cc-kicker,
.is-style-canopee p.cc-kicker,
.is-dark p.cc-kicker { color: var(--cc-miel); }

.is-style-basalte p.cc-kicker::before,
.is-style-canopee p.cc-kicker::before,
.is-dark p.cc-kicker::before { background: var(--cc-miel); }

.cc-b-lead {
	max-width: 46rem;
	font-size: var(--fs-lead);
	line-height: 1.55;
}

/* Colonnes image / texte */
.wp-block-columns.cc-b-split {
	gap: clamp(2rem, 6vw, 7rem);
	align-items: center;
	margin: 0 auto;
}

@media (min-width: 782px) {
	.wp-block-columns.cc-b-split.is-reverse { flex-direction: row-reverse; }
}

.cc-b-split__media .wp-block-image { margin: 0; }
.cc-b-split__media .wp-block-image img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; }
.cc-b-split__media .is-style-arche img { aspect-ratio: 3 / 4; }

.cc-b-split__body h2 { margin-bottom: var(--s-5); }

/* Cartes de colonnes */
.wp-block-columns.cc-b-cards { gap: var(--s-5); margin: 0 auto; }

.wp-block-column.cc-b-card {
	padding: clamp(1.75rem, 4vw, 3.25rem);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: var(--cc-cire);
}

.wp-block-column.cc-b-card.is-green { background: var(--cc-canopee); color: var(--cc-pollen); --cc-muted: color-mix(in srgb, var(--cc-pollen) 78%, transparent); }
.wp-block-column.cc-b-card.is-green p.cc-kicker { color: var(--cc-miel); }
.wp-block-column.cc-b-card.is-dark { background: var(--cc-basalte); }

.cc-b-card__text {
	font-family: var(--cc-font-display);
	font-size: clamp(1.35rem, 1.1rem + 1vw, 2rem) !important;
	font-weight: 600;
	line-height: 1.25 !important;
	letter-spacing: -0.02em;
	color: inherit !important;
}

.cc-b-card__media { margin: 0 0 var(--s-5); }
.cc-b-card__media img { border-radius: var(--r-m); aspect-ratio: 16 / 10; width: 100%; object-fit: cover; }

.wp-block-columns.cc-b-duo {
	gap: clamp(2rem, 6vw, 6rem);
	margin: 0 auto;
}

/* Nom de marque monumental */
.cc-b-word {
	margin-bottom: var(--s-6) !important;
	font-family: var(--cc-font-display);
	font-size: clamp(2.8rem, 15vw, 13rem);
	font-weight: 800;
	line-height: 0.84 !important;
	letter-spacing: -0.06em;
	color: var(--cc-miel) !important;
}

/* Listes spéciales */

/* Valeurs : parcours d'alvéoles numérotées ---------------------------------- */
.wp-block-list.cc-b-values {
	position: relative;
	display: grid;
	gap: var(--s-5);
	margin-top: var(--s-7);
	padding-block: 0;
	isolation: isolate;
	list-style: none;
}

@media (min-width: 700px) { .wp-block-list.cc-b-values { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .wp-block-list.cc-b-values { grid-template-columns: repeat(5, 1fr); } }

.cc-value {
	position: relative;
	display: flex;
	flex-direction: column;
	padding: var(--s-5) var(--s-5) var(--s-6);
	border: 1px solid var(--cc-ligne);
	border-radius: var(--r-m) var(--r-m) var(--r-m) 6px;
	background: var(--cc-pollen);
	font-size: var(--fs-s);
	isolation: isolate;
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

/* Fond d'alvéoles qui apparaît au survol */
.cc-value::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='75'%3E%3Cpath d='M21 49.5L0 37.5V12.5L21 0l21 12.5v25L21 49.5v25.5M21 0v25.5L0 37.5v25l21 12.5 21-12.5v-25L21 25.5' fill='none' stroke='%23FFC400' stroke-opacity='.16' stroke-width='1.2'/%3E%3C/svg%3E") 100% 0 / 42px 75px;
	-webkit-mask-image: radial-gradient(circle at 100% 0, #000, transparent 70%);
	mask-image: radial-gradient(circle at 100% 0, #000, transparent 70%);
	opacity: 0;
	transition: opacity var(--dur) var(--ease);
}

/* Trait pointillé reliant les alvéoles d'une carte à l'autre */
@media (min-width: 1100px) {
	.cc-value:not(:last-child)::after {
		content: "";
		position: absolute;
		top: calc(var(--s-5) + 32px);
		left: 100%;
		width: var(--s-5);
		border-top: 2px dotted var(--cc-ambre);
		opacity: 0.6;
	}
}

.cc-value:hover {
	border-color: var(--cc-basalte);
	background: var(--cc-basalte);
	box-shadow: var(--sh-2);
	transform: translateY(-6px);
}

.cc-value:hover::before { opacity: 1; }

.cc-value__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin-bottom: var(--s-5);
}

.cc-value__hex {
	display: grid;
	place-items: center;
	width: 58px;
	height: 64px;
	background: var(--cc-miel);
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	color: var(--cc-basalte);
	transition: transform 0.6s var(--ease), background-color var(--dur) var(--ease);
}

.cc-value:nth-child(even) .cc-value__hex { background: var(--cc-miel-clair); }
.cc-value:hover .cc-value__hex { background: var(--cc-miel); transform: rotate(60deg); }
.cc-value:hover .cc-value__hex .cc-icon { transform: rotate(-60deg); }
.cc-value__hex .cc-icon { transition: transform 0.6s var(--ease); }

.cc-value__num {
	font-family: var(--cc-font-display);
	font-size: 2.6rem;
	font-weight: 800;
	line-height: 0.9;
	letter-spacing: -0.05em;
	color: transparent;
	-webkit-text-stroke: 1.2px color-mix(in srgb, var(--cc-ambre) 60%, transparent);
	transition: -webkit-text-stroke-color var(--dur) var(--ease);
}

.cc-value:hover .cc-value__num { -webkit-text-stroke-color: var(--cc-miel); }

.wp-block-list.cc-b-values .cc-value__title {
	display: block;
	margin-bottom: var(--s-2);
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 720;
	letter-spacing: -0.01em;
	color: var(--cc-basalte);
	transition: color var(--dur) var(--ease);
}

.cc-value__text {
	line-height: 1.6;
	color: var(--cc-encre-douce);
	transition: color var(--dur) var(--ease);
}

.wp-block-list.cc-b-values .cc-value:hover .cc-value__title { color: var(--cc-miel); }
.cc-value:hover .cc-value__text { color: color-mix(in srgb, var(--cc-pollen) 80%, transparent); }

/* Mobile : frise verticale */
@media (max-width: 699px) {
	.wp-block-list.cc-b-values { gap: var(--s-3); }
	.cc-value {
		display: grid;
		grid-template-columns: 52px 1fr;
		column-gap: var(--s-4);
		padding: var(--s-4);
	}
	.cc-value__top { grid-row: span 2; flex-direction: column; align-items: center; gap: var(--s-2); margin: 0; }
	.cc-value__hex { width: 50px; height: 56px; }
	.cc-value__num { font-size: 1.1rem; -webkit-text-stroke: 0; color: var(--cc-ambre-texte); letter-spacing: 0; }
	.cc-value:not(:last-child)::after {
		content: "";
		position: absolute;
		left: calc(var(--s-4) + 25px);
		top: calc(100% - var(--s-3));
		height: calc(var(--s-3) * 2);
		border-left: 2px dotted var(--cc-ambre);
		opacity: 0.6;
	}
	.cc-value:hover { transform: none; }
}

/* Étapes : processus illustré ----------------------------------------------- */
.wp-block-list.cc-b-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--s-6) var(--s-4);
	margin-top: var(--s-7);
	padding-block: 0;
	isolation: isolate;
	list-style: none;
}

@media (min-width: 700px) { .wp-block-list.cc-b-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .wp-block-list.cc-b-steps { grid-template-columns: repeat(var(--n, 6), minmax(0, 1fr)); } }

.cc-step {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--s-3);
	text-align: center;
}

/* Ligne de liaison entre deux étapes */
.cc-step:not(:last-child)::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 36px;
	left: 50%;
	width: calc(100% + var(--s-4));
	height: 2px;
	background: repeating-linear-gradient(90deg, var(--cc-ambre) 0 6px, transparent 6px 12px);
	opacity: 0.55;
}

@media (max-width: 699px) { .cc-step:nth-child(2n)::before { display: none; } }
@media (min-width: 700px) and (max-width: 1099px) { .cc-step:nth-child(4n)::before { display: none; } }

.cc-step__node {
	position: relative;
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	border: 2px solid var(--cc-miel);
	border-radius: 50%;
	background: var(--cc-pollen);
	color: var(--cc-basalte);
	box-shadow: 0 0 0 6px var(--cc-step-ring, var(--cc-pollen));
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.cc-step:hover .cc-step__node { background: var(--cc-miel); transform: translateY(-4px); }

.cc-step__n {
	position: absolute;
	top: -4px;
	right: -4px;
	display: grid;
	place-items: center;
	min-width: 24px;
	height: 24px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--cc-basalte);
	color: var(--cc-miel);
	font-family: var(--cc-font-display);
	font-size: 0.75rem;
	font-weight: 800;
}

.cc-step__label {
	font-family: var(--cc-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--cc-basalte);
}

/* Version claire (sur fond sombre) */
.wp-block-list.cc-b-steps.is-light { --cc-step-ring: transparent; }
.wp-block-list.cc-b-steps.is-light .cc-step__node { background: color-mix(in srgb, var(--cc-pollen) 8%, transparent); color: var(--cc-miel); }
.wp-block-list.cc-b-steps.is-light .cc-step:hover .cc-step__node { background: var(--cc-miel); color: var(--cc-basalte); }
.wp-block-list.cc-b-steps.is-light .cc-step__n { background: var(--cc-miel); color: var(--cc-basalte); }
.wp-block-list.cc-b-steps.is-light .cc-step__label { color: var(--cc-pollen); }
.wp-block-list.cc-b-steps.is-light .cc-step::before { background: repeating-linear-gradient(90deg, var(--cc-miel) 0 6px, transparent 6px 12px); }

.is-style-cire .wp-block-list.cc-b-steps { --cc-step-ring: var(--cc-cire); }

.wp-block-list.cc-b-chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin-top: var(--s-5);
	padding-block: 0;
	list-style: none;
}

.wp-block-list.cc-b-chips li {
	padding: 0.45em 1em;
	border: 1px solid var(--cc-ligne-forte);
	border-radius: 999px;
	font-size: var(--fs-s);
	font-weight: 600;
}

.wp-block-list.cc-b-chips.is-large li { font-size: var(--fs-m); padding: 0.6em 1.3em; }

.is-style-basalte .wp-block-list.cc-b-chips li,
.is-style-canopee .wp-block-list.cc-b-chips li { color: var(--cc-pollen); border-color: color-mix(in srgb, var(--cc-pollen) 26%, transparent); }

.wp-block-list.cc-b-anchors {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin-top: var(--s-6);
	padding-block: 0;
	list-style: none;
}

.wp-block-list.cc-b-anchors a,
.cc-subnav a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.55em 1.1em;
	border-radius: 999px;
	background: var(--cc-cire);
	color: var(--cc-basalte);
	font-weight: 600;
	font-size: var(--fs-s);
	white-space: nowrap;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.wp-block-list.cc-b-anchors a:hover,
.cc-subnav a:hover { background: var(--cc-miel); color: var(--cc-basalte); }

.wp-block-list.cc-b-anchors a[aria-current],
.cc-subnav a[aria-current] { background: var(--cc-basalte); color: var(--cc-pollen); }

.cc-subnav a[aria-current] .cc-icon,
.wp-block-list.cc-b-anchors a[aria-current] .cc-icon { color: var(--cc-miel); }

/* Barre de sommaire collante (créée en JS) */
.cc-subnav {
	position: fixed;
	left: 0;
	right: 0;
	z-index: 85;
	padding-block: var(--s-2);
	border-bottom: 1px solid var(--cc-ligne);
	background: color-mix(in srgb, var(--cc-pollen) 92%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: 0 10px 30px -24px color-mix(in srgb, var(--cc-basalte) 60%, transparent);
	opacity: 0;
	transform: translateY(-12px);
	visibility: hidden;
	transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility 0s linear var(--dur);
}

.cc-subnav.is-visible {
	opacity: 1;
	transform: none;
	visibility: visible;
	transition-delay: 0s;
}

.cc-subnav__list {
	display: flex;
	gap: var(--s-2);
	margin: 0;
	padding: 2px 0;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}

.cc-subnav__list::-webkit-scrollbar { display: none; }
.cc-subnav a { padding: 0.45em 0.95em; font-size: var(--fs-xs); }

html.has-subnav { scroll-padding-top: calc(var(--header-h) + 5rem); }

.wp-block-list.cc-b-evocations {
	margin-top: var(--s-6);
	padding-block: 0;
	list-style: none;
}

.wp-block-list.cc-b-evocations li {
	padding: var(--s-4) 0;
	border-bottom: 1px solid var(--cc-ligne);
	font-family: var(--cc-font-display);
	font-size: clamp(1.5rem, 1rem + 2vw, 2.6rem);
	font-weight: 650;
	letter-spacing: -0.025em;
	color: var(--cc-pollen);
}

.wp-block-list.cc-b-places {
	display: grid;
	gap: 0 var(--s-7);
	margin-top: var(--s-6);
	padding-block: 0;
	list-style: none;
}

@media (min-width: 800px) { .wp-block-list.cc-b-places { grid-template-columns: 1fr 1fr; } }

.wp-block-list.cc-b-places li {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--s-4);
	padding: var(--s-4) 0;
	border-bottom: 1px solid var(--cc-ligne);
	font-size: var(--fs-s);
}

.wp-block-list.cc-b-places strong {
	font-family: var(--cc-font-display);
	font-size: clamp(1.35rem, 1rem + 1.4vw, 2.1rem);
	font-weight: 700;
	letter-spacing: -0.025em;
}

/* Grille d'icônes */
.cc-b-icongrid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: var(--s-4);
	margin: var(--s-6) auto;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) {
	.cc-b-icongrid { grid-template-columns: repeat(3, 1fr); }
	.cc-b-icongrid.is-4 { grid-template-columns: repeat(4, 1fr); }
}

.cc-b-icongrid li {
	display: grid;
	gap: var(--s-2);
	align-content: start;
	padding: var(--s-6) var(--s-5);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	font-size: var(--fs-s);
	color: var(--cc-encre-douce);
}

.cc-b-icongrid strong {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	color: var(--cc-basalte);
}

.cc-b-icongrid__icon {
	display: grid;
	place-items: center;
	width: 56px;
	height: 56px;
	margin-bottom: var(--s-3);
	border-radius: var(--r-s) 0 var(--r-s) 0;
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

.cc-b-icongrid.is-chain li {
	grid-template-columns: auto 1fr;
	align-items: center;
	padding: var(--s-4) var(--s-5);
	border-radius: 999px;
}

.cc-b-icongrid.is-chain .cc-b-icongrid__icon { margin: 0; border-radius: 50%; width: 46px; height: 46px; }

/* Alertes ApiConnect */
.cc-b-alerts {
	display: grid;
	gap: var(--s-4);
	margin: var(--s-6) auto 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) { .cc-b-alerts { grid-template-columns: repeat(3, 1fr); } }

.cc-b-alerts li {
	display: flex;
	gap: var(--s-4);
	align-items: flex-start;
	padding: var(--s-5);
	border-radius: var(--r-m);
	background: var(--cc-pollen);
	color: var(--cc-encre-douce);
	box-shadow: var(--sh-2);
}

.cc-b-alerts strong {
	display: block;
	margin-bottom: var(--s-1);
	color: var(--cc-basalte) !important;
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
}

.cc-b-alerts__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
}

/* Onde sonore décorative */
.cc-b-wave {
	display: flex;
	align-items: center;
	gap: 4px;
	height: 90px;
	margin-bottom: var(--s-6);
}

.cc-b-wave span {
	flex: 1;
	height: 20%;
	border-radius: 4px;
	background: var(--cc-miel);
	animation: cc-wave 1.6s var(--ease-in-out) infinite alternate;
}

.cc-b-wave span:nth-child(3n) { animation-delay: -0.4s; }
.cc-b-wave span:nth-child(3n + 1) { animation-delay: -0.9s; }
.cc-b-wave span:nth-child(4n) { animation-delay: -1.2s; }

@keyframes cc-wave { to { height: 100%; } }

/* Équipe */
.cc-b-team {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--s-4);
	max-width: var(--wide, var(--cc-container)) !important;
	margin: var(--s-7) auto 0;
	padding: 0;
	list-style: none;
}

@media (min-width: 900px) {
	.cc-b-team { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-5); }
}

.cc-b-team__member {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: var(--s-6) var(--s-4) var(--s-5);
	border: 1px solid var(--cc-ligne);
	border-radius: var(--r-l) var(--r-l) var(--r-m) var(--r-m);
	background: var(--cc-pollen);
	text-align: center;
	overflow: hidden;
	isolation: isolate;
	transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

/* Bandeau d'alvéoles derrière le portrait */
.cc-b-team__member::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	z-index: -1;
	height: 58%;
	background:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='75'%3E%3Cpath d='M21 49.5L0 37.5V12.5L21 0l21 12.5v25L21 49.5v25.5' fill='none' stroke='%23E97A00' stroke-opacity='.28' stroke-width='1.2'/%3E%3Cpath d='M21 0v25.5L0 37.5v25l21 12.5 21-12.5v-25L21 25.5' fill='none' stroke='%23E97A00' stroke-opacity='.28' stroke-width='1.2'/%3E%3C/svg%3E") 50% 0 / 42px 75px,
		var(--cc-cire);
	border-radius: 0 0 50% 50% / 0 0 22% 22%;
	transition: height 0.6s var(--ease), background-color var(--dur) var(--ease);
}

.cc-b-team__member:nth-child(4n + 2)::before { background-color: var(--cc-miel-clair); }
.cc-b-team__member:nth-child(4n + 3)::before { background-color: color-mix(in srgb, var(--cc-canopee) 14%, var(--cc-cire)); }
.cc-b-team__member:nth-child(4n + 4)::before { background-color: var(--cc-cire-2); }

.cc-b-team__member:hover {
	border-color: transparent;
	box-shadow: var(--sh-2);
	transform: translateY(-6px);
}

.cc-b-team__member:hover::before { height: 66%; }

.cc-b-team__visual {
	position: relative;
	display: grid;
	place-items: center;
	width: clamp(124px, 15vw, 176px);
	aspect-ratio: 1;
	margin-bottom: var(--s-5);
}

.cc-b-team__photo,
.cc-b-team__initials {
	grid-area: 1 / 1;
	width: 86%;
	height: 86%;
	border-radius: 50%;
	border: 5px solid var(--cc-pollen);
	box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--cc-basalte) 70%, transparent);
	object-fit: cover;
	background: var(--cc-cire);
	transition: transform 0.6s var(--ease);
}

.cc-b-team__member:hover .cc-b-team__photo { transform: scale(1.04); }

.cc-b-team__initials {
	display: grid;
	place-items: center;
	background: var(--cc-basalte);
	color: var(--cc-miel);
	font-family: var(--cc-font-display);
	font-size: 2.2rem;
	font-weight: 750;
}

/* Anneau pointillé qui tourne */
.cc-b-team__ring {
	grid-area: 1 / 1;
	width: 100%;
	height: 100%;
	overflow: visible;
	animation: cc-turn 40s linear infinite;
	animation-play-state: paused;
}

.cc-b-team__ring circle {
	fill: none;
	stroke: var(--cc-ambre);
	stroke-width: 2;
	stroke-dasharray: 2 9;
	stroke-linecap: round;
}

.cc-b-team__member:hover .cc-b-team__ring { animation-play-state: running; }

/* Monogramme dans une alvéole */
.cc-b-team__badge {
	position: absolute;
	right: 2%;
	bottom: 6%;
	display: grid;
	place-items: center;
	width: 42px;
	height: 46px;
	background: var(--cc-miel);
	clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
	color: var(--cc-basalte);
	font-family: var(--cc-font-display);
	font-size: 0.82rem;
	font-weight: 800;
	transition: transform var(--dur) var(--ease);
}

.cc-b-team__member:hover .cc-b-team__badge { transform: rotate(30deg); }
.cc-b-team__initials ~ .cc-b-team__badge { display: none; }

.cc-b-team__body { display: grid; gap: 2px; }

.cc-b-team__name {
	font-family: var(--cc-font-display);
	font-size: var(--fs-h4);
	font-weight: 720;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--cc-basalte);
}

.cc-b-team__role {
	font-size: var(--fs-xs);
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--cc-ambre-texte);
}

.cc-b-team__link {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin-top: var(--s-4);
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: 50%;
	color: var(--cc-basalte);
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-b-team__link:hover,
.cc-b-team__link:focus-visible { border-color: var(--cc-basalte); background: var(--cc-basalte); color: var(--cc-miel); }

@media (max-width: 599px) {
	.cc-b-team__member { padding: var(--s-5) var(--s-3) var(--s-4); border-radius: var(--r-m); }
	.cc-b-team__visual { width: 118px; margin-bottom: var(--s-4); }
	.cc-b-team__badge { width: 32px; height: 36px; font-size: 0.7rem; }
	.cc-b-team__name { font-size: 1rem; }
	.cc-b-team__link { width: 36px; height: 36px; margin-top: var(--s-3); }
}

/* Divers */
.cc-b-quote {
	max-width: 22ch;
	margin-bottom: var(--s-6) !important;
	font-family: var(--cc-font-display);
	font-size: clamp(2.1rem, 1.2rem + 3.8vw, 5rem);
	font-weight: 700;
	line-height: 1.02 !important;
	letter-spacing: -0.035em;
	color: var(--cc-basalte) !important;
}

.cc-b-api-logo {
	width: auto;
	height: clamp(56px, 7vw, 84px);
	margin-bottom: var(--s-7);
}

.cc-b-final {
	text-align: center;
	background: var(--cc-miel);
}

.cc-b-section.cc-b-final.cc-b-final > :is(h2, .wp-block-buttons) {
	margin-inline: auto;
	width: min(44rem, 100% - 2 * var(--cc-gutter));
}

.cc-b-final .wp-block-buttons { justify-content: center; gap: var(--s-3); margin-top: var(--s-6); }
.cc-b-final .wp-block-button.is-style-ligne .wp-block-button__link { --btn-bd: var(--cc-basalte); }
.cc-b-final .wp-block-button__link { min-height: 56px; padding-inline: 1.7em; font-size: var(--fs-m); }
.cc-b-final h2 { font-size: clamp(2.2rem, 1.4rem + 3vw, 4.2rem); line-height: 1.02; letter-spacing: -0.035em; }

/* Décor de l'appel final : alvéoles en filigrane */
.cc-b-final::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66v34M28 0v34L0 50v34l28 16 28-16V50L28 34' fill='none' stroke='%231A1611' stroke-opacity='.08' stroke-width='1.4'/%3E%3C/svg%3E") 0 0 / 56px 100px;
	-webkit-mask-image: radial-gradient(ellipse at 50% 50%, transparent 30%, #000 80%);
	mask-image: radial-gradient(ellipse at 50% 50%, transparent 30%, #000 80%);
	pointer-events: none;
}

.cc-b-section.cc-b-section > .cc-deco--final { max-width: none; margin: 0; padding: 0; }
.cc-deco--final { top: 14%; right: 8%; width: clamp(120px, 13vw, 190px); color: var(--cc-basalte); }
.cc-deco--final-drops { top: auto; right: auto; bottom: 12%; left: 9%; width: clamp(44px, 5vw, 70px); }

@media (max-width: 599px) {
	.cc-b-final .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.cc-b-final .wp-block-button__link { width: 100%; }
}

/* Colonnes image / texte : centrage vertical (le cœur WP force align-items: normal) */
.wp-block-columns.cc-b-split { align-items: center !important; }

/* Miel du Volcan — manifeste avec visuel produit */
.cc-b-section.cc-b-section > .cc-b-manifest__media {
	position: absolute;
	top: 50%;
	right: max(var(--cc-gutter), (100% - var(--cc-container)) / 2);
	width: min(28vw, 420px);
	max-width: none;
	margin: 0;
	padding: 0;
	transform: translateY(-50%);
}

.cc-b-manifest__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--petal) var(--r-m) var(--petal) var(--r-m);
	box-shadow: var(--sh-2);
}

.cc-b-manifest__badge {
	position: absolute;
	left: -28px;
	bottom: 12%;
	display: grid;
	place-items: center;
	width: 104px;
	height: 104px;
	border-radius: 50%;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	font-family: var(--cc-font-display);
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.15;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	box-shadow: var(--sh-1);
	animation: cc-hover 6s ease-in-out infinite;
}

@media (max-width: 1279px) {
	.cc-b-section.cc-b-section > .cc-b-manifest__media { display: none; }
}

/* Grand Rift : évocations numérotées sur deux colonnes */
.wp-block-list.cc-b-evocations { counter-reset: evo; }
.wp-block-list.cc-b-evocations li { counter-increment: evo; display: flex; align-items: baseline; gap: var(--s-4); }
.wp-block-list.cc-b-evocations li::before {
	content: counter(evo, decimal-leading-zero);
	flex: none;
	font-family: var(--cc-font-body);
	font-size: var(--fs-s);
	font-weight: 700;
	letter-spacing: 0.04em;
	color: var(--cc-miel);
}

@media (min-width: 1000px) {
	.wp-block-list.cc-b-evocations { display: grid; grid-template-columns: 1fr 1fr; column-gap: var(--s-7); }
	.wp-block-list.cc-b-evocations li { font-size: clamp(1.4rem, 0.9rem + 1.3vw, 2.1rem); }
}

.cc-b-rift > p:not(.cc-kicker) { margin-top: var(--s-4); font-size: var(--fs-lead); }

.cc-b-contact__cols { gap: clamp(2rem, 6vw, 6rem); margin: 0 auto; }

.cc-b-contact__form {
	padding: clamp(1.5rem, 4vw, 3rem);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: var(--cc-cire);
}

.cc-social--page { margin-top: var(--s-5); }
.cc-contact-list--page { margin-top: var(--s-5); }

/* Blocs natifs dans les articles et pages */
.cc-entry > * + *,
.cc-page-content > * + * { margin-top: var(--s-5); }

.cc-entry {
	font-size: 1.1875rem;
	line-height: 1.7;
}

.cc-entry h2 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.6rem); margin-top: var(--s-8); }
.cc-entry h3 { margin-top: var(--s-7); }

.cc-entry blockquote,
.wp-block-quote {
	margin: var(--s-7) 0;
	padding: var(--s-2) 0 var(--s-2) var(--s-6);
	border-left: 4px solid var(--cc-miel);
	font-family: var(--cc-font-display);
	font-size: var(--fs-h3);
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: -0.015em;
}

.wp-block-quote cite {
	display: block;
	margin-top: var(--s-3);
	font-family: var(--cc-font-body);
	font-size: var(--fs-s);
	font-style: normal;
	font-weight: 500;
	color: var(--cc-encre-douce);
}

.wp-block-image figcaption,
.cc-single__figure figcaption {
	margin-top: var(--s-3);
	font-size: var(--fs-xs);
	color: var(--cc-encre-douce);
}

.cc-entry img,
.cc-page-content .wp-block-image:not([class*="is-style-"]) img { border-radius: var(--r-m); }

.wp-block-separator { border-top: 1px solid var(--cc-ligne); }

.wp-block-table table { width: 100%; border-collapse: collapse; font-size: var(--fs-s); }
.wp-block-table th,
.wp-block-table td { padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--cc-ligne); text-align: left; }
.wp-block-table th { font-weight: 650; }

.cc-embed .cc-section { overflow: hidden; }

/* Archive ---------------------------------------------------------------- */

.cc-filters { margin-bottom: var(--s-8); }

.cc-filters ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-filters .cc-chip { padding: 0.55em 1.1em; font-size: var(--fs-s); }

.cc-archive__layout.has-sidebar,
.cc-single__layout.has-sidebar,
.cc-shop__layout.has-sidebar {
	display: grid;
	gap: var(--s-8);
}

@media (min-width: 1024px) {
	.cc-archive__layout.has-sidebar,
	.cc-single__layout.has-sidebar { grid-template-columns: minmax(0, 1fr) 320px; }
}

.cc-sidebar {
	display: grid;
	gap: var(--s-6);
	align-content: start;
}

.cc-widget {
	padding: var(--s-6);
	border-radius: var(--r-m);
	background: var(--cc-cire);
	font-size: var(--fs-s);
}

.cc-widget__title {
	margin-bottom: var(--s-4);
	font-size: var(--fs-h4);
}

.cc-widget ul { margin: 0; padding: 0; list-style: none; }
.cc-widget li { padding: var(--s-2) 0; border-bottom: 1px solid var(--cc-ligne); }
.cc-widget a { color: var(--cc-basalte); text-decoration: none; }
.cc-widget a:hover { color: var(--cc-ambre-texte); }

.cc-pagination { margin-top: var(--s-8); }

.cc-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 48px;
	height: 48px;
	padding: 0 var(--s-3);
	border: 1px solid var(--cc-ligne-forte);
	border-radius: 999px;
	color: var(--cc-basalte);
	font-weight: 650;
	text-decoration: none;
}

.cc-pagination .page-numbers.current,
.cc-pagination a.page-numbers:hover {
	background: var(--cc-miel);
	border-color: var(--cc-miel);
}

.cc-empty {
	display: grid;
	justify-items: center;
	gap: var(--s-3);
	padding: var(--s-9) 0;
	text-align: center;
}

.cc-empty .cc-icon { color: var(--cc-ambre); }
.cc-empty .cc-searchform { width: 100%; }

/* Article ---------------------------------------------------------------- */

.cc-single__head {
	position: relative;
	padding: calc(var(--cc-masthead-h, 0px) * var(--overlay, 0) + var(--s-8)) 0 var(--s-7);
	overflow: hidden;
	isolation: isolate;
	background: var(--cc-cire);
}

.cc-header--overlay-light .cc-single__head { --overlay: 1; }

.cc-single__contours { color: var(--cc-ambre); opacity: 0.12; }

.cc-single__title {
	max-width: 22ch;
	margin: var(--s-4) 0 0;
	font-size: clamp(2.2rem, 1.5rem + 3vw, 4.2rem);
	line-height: 1.04;
}

.cc-single__lead {
	max-width: 42rem;
	margin: var(--s-5) 0 0;
	font-size: var(--fs-lead);
	color: var(--cc-encre-douce);
}

.cc-single__figure {
	margin-top: calc(-1 * var(--s-5));
	position: relative;
}

.cc-single__figure img {
	width: 100%;
	aspect-ratio: 2 / 1;
	object-fit: cover;
	border-radius: 0 var(--petal) 0 var(--petal);
}

.cc-single__layout { padding-block: var(--s-8) var(--cc-section-y); }

.cc-single__main {
	max-width: 760px;
	margin-inline: auto;
	width: 100%;
}

.cc-single__foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: var(--s-5);
	margin-top: var(--s-8);
	padding-top: var(--s-6);
	border-top: 1px solid var(--cc-ligne);
}

.cc-tags {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-tags a {
	display: inline-block;
	padding: 0.3em 0.85em;
	border-radius: 999px;
	background: var(--cc-cire);
	color: var(--cc-basalte);
	font-size: var(--fs-xs);
	font-weight: 600;
	text-decoration: none;
}

.cc-share {
	display: flex;
	align-items: center;
	gap: var(--s-3);
}

.cc-share__label { font-size: var(--fs-s); font-weight: 650; }

.cc-share ul {
	display: flex;
	gap: var(--s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-share a,
.cc-share button {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--cc-ligne-forte);
	border-radius: 50%;
	background: none;
	color: var(--cc-basalte);
	cursor: pointer;
	transition: background-color var(--dur) var(--ease);
}

.cc-share a:hover,
.cc-share button:hover { background: var(--cc-miel); border-color: var(--cc-miel); }

.cc-postnav { margin-top: var(--s-7); }

.cc-postnav .nav-links {
	display: grid;
	gap: var(--s-4);
}

@media (min-width: 700px) {
	.cc-postnav .nav-links { grid-template-columns: 1fr 1fr; }
	.cc-postnav .nav-next { text-align: right; grid-column: 2; }
}

.cc-postnav a {
	display: grid;
	gap: var(--s-1);
	padding: var(--s-5);
	border-radius: var(--r-m);
	background: var(--cc-cire);
	color: var(--cc-basalte);
	text-decoration: none;
}

.cc-postnav__label { font-size: var(--fs-xs); color: var(--cc-encre-douce); }
.cc-postnav__title { font-family: var(--cc-font-display); font-weight: 650; line-height: 1.25; }

.cc-related__title { margin-bottom: var(--s-7); font-size: var(--fs-h2); }

/* Commentaires ------------------------------------------------------------- */
.cc-comments { margin-top: var(--s-8); }

.cc-comments__head { margin-bottom: var(--s-6); }
.cc-comments__title { margin: 0; font-size: var(--fs-h3); }

.cc-comments__list,
.cc-comments__list .children { margin: 0; padding: 0; list-style: none; }

.cc-comments__list > .cc-comment + .cc-comment { margin-top: var(--s-4); }

.cc-comments__list .children {
	position: relative;
	margin-top: var(--s-4);
	padding-left: clamp(1rem, 4vw, 3rem);
}

/* Filet pointillé qui relie les réponses à leur commentaire */
.cc-comments__list .children::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: var(--s-6);
	left: clamp(0.4rem, 1.6vw, 1.4rem);
	border-left: 2px dotted color-mix(in srgb, var(--cc-ambre) 55%, transparent);
}

.cc-comments__list .children > .cc-comment + .cc-comment { margin-top: var(--s-3); }

.cc-comment__card {
	position: relative;
	padding: var(--s-5);
	border: 1px solid var(--cc-ligne);
	border-radius: var(--r-m) var(--r-m) var(--r-m) 6px;
	background: var(--cc-pollen);
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.cc-comment__card:hover { border-color: color-mix(in srgb, var(--cc-miel) 60%, transparent); box-shadow: var(--sh-1); }
.cc-comment:target > .cc-comment__card { border-color: var(--cc-miel); box-shadow: 0 0 0 4px color-mix(in srgb, var(--cc-miel) 30%, transparent); }
.cc-comment.is-author > .cc-comment__card { background: var(--cc-cire); }

.cc-comment__head { display: flex; align-items: center; gap: var(--s-3); margin-bottom: var(--s-3); }

.cc-comment__avatar {
	flex: none;
	padding: 3px;
	border: 2px dashed color-mix(in srgb, var(--cc-ambre) 60%, transparent);
	border-radius: 50%;
	line-height: 0;
}

.cc-comment__img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

.cc-comment__who { display: flex; flex-wrap: wrap; align-items: center; gap: 2px var(--s-2); min-width: 0; }
.cc-comment__name { font-family: var(--cc-font-display); font-size: 1.05rem; color: var(--cc-basalte); }

.cc-comment__badge {
	padding: 0.15em 0.65em;
	border-radius: 999px;
	background: var(--cc-basalte);
	color: var(--cc-miel);
	font-size: 0.7rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cc-comment__date { flex-basis: 100%; font-size: var(--fs-xs); color: var(--cc-encre-douce); text-decoration: none; }
.cc-comment__date:hover { color: var(--cc-ambre-texte); }

.cc-comment__text { font-size: var(--fs-s); line-height: 1.7; color: var(--cc-encre-douce); }
.cc-comment__text p { margin: 0 0 var(--s-3); }
.cc-comment__text p:last-child { margin-bottom: 0; }

.cc-comment__pending {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	margin: 0 0 var(--s-3);
	padding: var(--s-2) var(--s-3);
	border-radius: var(--r-s);
	background: var(--cc-miel-clair);
	font-size: var(--fs-xs);
	font-weight: 650;
	color: var(--cc-ambre-texte);
}

.cc-comment__actions { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-4); }
.cc-comment__actions:empty { display: none; }

.cc-comment__actions .comment-reply-link,
.cc-comment__actions .comment-edit-link {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.4em 0.95em;
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: 999px;
	color: var(--cc-basalte);
	font-size: var(--fs-xs);
	font-weight: 650;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.cc-comment__actions .comment-reply-link .cc-icon { transform: scaleX(-1) rotate(180deg); }
.cc-comment__actions .comment-reply-link:hover,
.cc-comment__actions .comment-edit-link:hover { border-color: var(--cc-basalte); background: var(--cc-basalte); color: var(--cc-miel); }

.cc-comments__closed {
	display: flex;
	align-items: center;
	gap: var(--s-2);
	margin-top: var(--s-6);
	padding: var(--s-4) var(--s-5);
	border-radius: var(--r-m);
	background: var(--cc-cire);
	font-size: var(--fs-s);
	font-weight: 600;
}

.cc-comments .comment-navigation .nav-links { display: flex; justify-content: space-between; gap: var(--s-4); margin-top: var(--s-5); font-size: var(--fs-s); font-weight: 650; }

/* Formulaire --------------------------------------------------------------- */
.cc-respond {
	position: relative;
	margin-top: var(--s-7);
	padding: clamp(1.5rem, 4vw, 3rem);
	overflow: hidden;
	border-radius: var(--r-l) var(--r-l) var(--r-l) var(--r-s);
	background: var(--cc-cire);
	isolation: isolate;
}

/* Alvéoles en filigrane dans le coin */
.cc-respond::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
	width: min(320px, 60%);
	height: 260px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='42' height='75'%3E%3Cpath d='M21 49.5L0 37.5V12.5L21 0l21 12.5v25L21 49.5v25.5M21 0v25.5L0 37.5v25l21 12.5 21-12.5v-25L21 25.5' fill='none' stroke='%23E97A00' stroke-opacity='.28' stroke-width='1.2'/%3E%3C/svg%3E") 100% 0 / 42px 75px;
	-webkit-mask-image: radial-gradient(circle at 100% 0, #000, transparent 72%);
	mask-image: radial-gradient(circle at 100% 0, #000, transparent 72%);
	pointer-events: none;
}

/* Réponse en cours : le formulaire se glisse sous le commentaire, en blanc */
.cc-comment .cc-respond { margin-top: var(--s-4); background: var(--cc-pollen); border: 1px solid var(--cc-miel); }

.cc-respond__kicker { margin-bottom: var(--s-2) !important; }

.cc-respond__title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--s-2) var(--s-4);
	margin: 0 0 var(--s-4);
	font-size: var(--fs-h3);
}

.cc-respond__title small a {
	display: inline-flex;
	padding: 0.35em 0.9em;
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: 999px;
	color: var(--cc-basalte);
	font-family: var(--cc-font-body);
	font-size: var(--fs-xs);
	font-weight: 650;
	text-decoration: none;
}

.cc-respond__title small a:hover { border-color: var(--cc-basalte); background: var(--cc-basalte); color: var(--cc-pollen); }

.cc-respond__notes {
	display: flex;
	align-items: flex-start;
	gap: var(--s-2);
	margin: 0 0 var(--s-5);
	font-size: var(--fs-xs);
	line-height: 1.5;
	color: var(--cc-encre-douce);
}

.cc-respond__notes .cc-icon { flex: none; color: var(--cc-ambre); }
.cc-respond__notes a { color: var(--cc-ambre-texte); font-weight: 650; }

.cc-comment-form { display: grid; gap: var(--s-4); }

@media (min-width: 640px) {
	.cc-comment-form { grid-template-columns: 1fr 1fr; }
	.cc-comment-form > .cc-field--full,
	.cc-comment-form > .cc-respond__notes,
	.cc-comment-form > .logged-in-as,
	.cc-comment-form > .form-submit,
	.cc-comment-form > .comment-form-cookies-consent { grid-column: 1 / -1; }
}

/* La zone de texte passe en premier, avant nom et e-mail */
.cc-comment-form > .comment-form-comment { order: -1; }
.cc-comment-form > .cc-respond__notes,
.cc-comment-form > .logged-in-as { order: -2; }

.cc-comment-form .cc-field { position: relative; margin: 0; }

.cc-comment-form label {
	display: block;
	margin-bottom: var(--s-1);
	font-size: var(--fs-s);
	font-weight: 650;
	color: var(--cc-basalte);
}

.cc-comment-form abbr { text-decoration: none; color: var(--cc-ambre); }

.cc-field__control { position: relative; display: block; }

.cc-field__control .cc-icon {
	position: absolute;
	top: 50%;
	left: 1em;
	color: var(--cc-ambre);
	transform: translateY(-50%);
	pointer-events: none;
}

.cc-comment-form .cc-field__control input { padding-left: 2.9em; }

.cc-comment-form textarea {
	min-height: 150px;
	max-height: 480px;
	resize: vertical;
	line-height: 1.6;
}

.cc-comment-form input::placeholder,
.cc-comment-form textarea::placeholder { color: color-mix(in srgb, var(--cc-encre-douce) 65%, transparent); }

.cc-field__count {
	position: absolute;
	right: var(--s-3);
	bottom: var(--s-2);
	padding: 0 6px;
	border-radius: 999px;
	background: var(--cc-pollen);
	font-size: 0.72rem;
	font-weight: 650;
	color: var(--cc-encre-douce);
	font-variant-numeric: tabular-nums;
}

.cc-field__count.is-near { color: var(--cc-ambre-texte); }

/* Case de consentement personnalisée */
.cc-comment-form .comment-form-cookies-consent { margin: 0; }
.cc-comment-form .comment-form-cookies-consent label { margin: 0; font-size: var(--fs-xs); font-weight: 500; color: var(--cc-encre-douce); cursor: pointer; }

.cc-comment-form .comment-form-cookies-consent input {
	display: grid;
	place-items: center;
	flex: none;
	width: 22px;
	height: 22px;
	margin: 0;
	border: 1.5px solid var(--cc-ligne-forte);
	border-radius: 6px;
	background: var(--cc-pollen);
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}

.cc-comment-form .comment-form-cookies-consent input::after {
	content: "";
	width: 11px;
	height: 6px;
	border-left: 2.2px solid var(--cc-basalte);
	border-bottom: 2.2px solid var(--cc-basalte);
	transform: translateY(-1px) rotate(-45deg) scale(0);
	transition: transform 0.2s var(--ease);
}

.cc-comment-form .comment-form-cookies-consent input:checked { border-color: var(--cc-miel); background: var(--cc-miel); }
.cc-comment-form .comment-form-cookies-consent input:checked::after { transform: translateY(-1px) rotate(-45deg) scale(1); }
.cc-comment-form .comment-form-cookies-consent input:focus-visible { outline: 3px solid color-mix(in srgb, var(--cc-miel) 55%, transparent); outline-offset: 2px; }

.cc-comment-form__footer { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-4); margin: var(--s-2) 0 0; }
.cc-comment-form__submit { min-height: 56px; padding-inline: 1.8em; }

@media (max-width: 599px) {
	.cc-comment-form__submit { width: 100%; }
}

/* 404 -------------------------------------------------------------------- */

.cc-404 {
	overflow: hidden;
	text-align: center;
}

.cc-404__contours { color: var(--cc-ambre); opacity: 0.16; }

.cc-404__inner {
	display: grid;
	justify-items: center;
}

.cc-404__code {
	margin: 0;
	font-family: var(--cc-font-display);
	font-size: clamp(7rem, 4rem + 18vw, 18rem);
	font-weight: 800;
	line-height: 0.85;
	letter-spacing: -0.07em;
	color: var(--cc-miel);
}

.cc-404__title { margin-top: var(--s-6); }

.cc-404__text {
	max-width: 36rem;
	margin-bottom: var(--s-6);
	color: var(--cc-encre-douce);
}

.cc-404 .cc-searchform { width: 100%; }
.cc-404 .cc-actions { justify-content: center; }

/* ==========================================================================
   Pied de page & newsletter
   ========================================================================== */

.cc-footer {
	position: relative;
	background: var(--cc-basalte);
	color: color-mix(in srgb, var(--cc-pollen) 80%, transparent);
}

.cc-newsletter {
	position: relative;
	z-index: 1;
	padding-top: var(--s-8);
	background: linear-gradient(var(--cc-pollen) 50%, var(--cc-basalte) 50%);
}

.cc-newsletter__inner {
	display: grid;
	gap: var(--s-6);
	align-items: center;
	padding: clamp(1.75rem, 4vw, 3.25rem) clamp(1.5rem, 4vw, 3.5rem);
	border-radius: var(--r-l) 0 var(--r-l) 0;
	background: var(--cc-miel);
	color: var(--cc-basalte);
	max-width: calc(var(--cc-container));
	margin-inline: auto;
	width: calc(100% - 2 * var(--cc-gutter));
}

@media (min-width: 960px) {
	.cc-newsletter__inner { grid-template-columns: 1fr 1fr; }
}

.cc-newsletter__copy {
	display: flex;
	gap: var(--s-5);
	align-items: flex-start;
}

.cc-newsletter__icon {
	flex: none;
	width: 64px;
	height: 64px;
	padding: 16px;
	border-radius: 50%;
	background: var(--cc-basalte);
	color: var(--cc-miel);
}

.cc-newsletter__title {
	margin-bottom: var(--s-2);
	font-size: var(--fs-h3);
}

.cc-newsletter__copy p { margin: 0; }

.cc-newsletter__form {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-2);
}

.cc-newsletter__form input[type="email"] {
	flex: 1 1 240px;
	border-color: transparent;
	border-radius: 999px;
	padding-inline: 1.4em;
}

.cc-newsletter__form .cc-btn--miel {
	--btn-bg: var(--cc-basalte);
	--btn-fg: var(--cc-pollen);
	--btn-bd: var(--cc-basalte);
}

.cc-newsletter__form .cc-btn--miel:hover {
	--btn-bg: var(--cc-pollen);
	--btn-fg: var(--cc-basalte);
	--btn-bd: var(--cc-pollen);
}

.cc-newsletter__notice {
	flex-basis: 100%;
	margin: var(--s-2) 0 0;
	font-weight: 650;
}

/* Formulaires Mailchimp éventuels */
.cc-newsletter .mc4wp-form-fields { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.cc-newsletter .mc4wp-form-fields p { margin: 0; flex: 1 1 240px; }
.cc-newsletter .mc4wp-form input[type="email"] { width: 100%; min-height: 52px; padding: 0 1.4em; border: 0; border-radius: 999px; }
.cc-newsletter .mc4wp-form input[type="submit"] { min-height: 52px; padding: 0 1.6em; border: 0; border-radius: 999px; background: var(--cc-basalte); color: var(--cc-pollen); font-weight: 650; cursor: pointer; }

.cc-footer__main {
	position: relative;
	padding-block: var(--s-9) var(--s-8);
	overflow: hidden;
	isolation: isolate;
}

.cc-footer__contours { color: var(--cc-miel); opacity: 0.08; }

.cc-footer__final {
	max-width: 24ch;
	margin: 0 0 var(--s-9);
	font-family: var(--cc-font-display);
	font-size: clamp(2rem, 1.2rem + 3.4vw, 4.4rem);
	font-weight: 700;
	line-height: 1.04;
	letter-spacing: -0.035em;
	color: var(--cc-pollen);
	text-wrap: balance;
}

.cc-footer__grid {
	display: grid;
	gap: var(--s-7) var(--s-6);
}

@media (min-width: 700px) {
	.cc-footer__grid { grid-template-columns: repeat(2, 1fr); }
}

/* Mobile : liens sur deux colonnes, marque et contact en pleine largeur */
@media (max-width: 699px) {
	.cc-footer__grid { grid-template-columns: 1fr 1fr; gap: var(--s-6) var(--s-4); }
	.cc-footer__col--brand,
	.cc-footer__grid > .cc-footer__col:has(.cc-contact-list) { grid-column: 1 / -1; }
	.cc-footer__grid > .cc-footer__col:has(.cc-contact-list) { padding-top: var(--s-5); border-top: 1px solid color-mix(in srgb, var(--cc-pollen) 12%, transparent); }
	.cc-footer__title { margin-bottom: var(--s-3); }
	.cc-newsletter__form .cc-btn { flex: 1 1 100%; }
}

@media (min-width: 1100px) {
	.cc-footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1fr 1.3fr; }
}

.cc-footer .cc-logo .cc-logo__img { height: 60px; }

.cc-footer__tagline {
	max-width: 30ch;
	margin: var(--s-5) 0;
	font-size: var(--fs-s);
}

.cc-footer__title {
	margin-bottom: var(--s-5);
	font-family: var(--cc-font-body);
	font-size: var(--fs-s);
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--cc-miel);
}

.cc-footer__links {
	display: grid;
	gap: var(--s-3);
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: var(--fs-s);
}

.cc-footer a {
	color: inherit;
	text-decoration: none;
}

.cc-footer__links a:hover,
.cc-footer .cc-contact-list a:hover {
	color: var(--cc-miel);
	text-decoration: none;
}

.cc-footer .cc-contact-list { font-size: var(--fs-s); }
.cc-footer .cc-contact-list__label { color: color-mix(in srgb, var(--cc-pollen) 55%, transparent); }

.cc-footer__bottom {
	border-top: 1px solid color-mix(in srgb, var(--cc-pollen) 12%, transparent);
	font-size: var(--fs-xs);
}

.cc-footer__bottom-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--s-3) var(--s-6);
	min-height: 76px;
	padding-block: var(--s-4);
	padding-right: calc(var(--cc-gutter) + 64px); /* place du bouton flottant « retour en haut » */
}

.cc-footer__copy { margin: 0 auto 0 0; }

.cc-footer__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--s-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cc-footer__legal a:hover { color: var(--cc-miel); }

/* Retour en haut : bouton flottant, anneau de progression de lecture */
.cc-totop {
	--size: 54px;
	position: fixed;
	right: max(var(--s-5), env(safe-area-inset-right));
	bottom: calc(var(--s-5) + env(safe-area-inset-bottom));
	z-index: 95;
	display: grid;
	place-items: center;
	width: var(--size);
	height: var(--size);
	border-radius: 50%;
	background: var(--cc-basalte);
	color: var(--cc-miel) !important;
	box-shadow: 0 14px 30px -12px color-mix(in srgb, var(--cc-basalte) 70%, transparent);
	opacity: 0;
	visibility: hidden;
	transform: translateY(16px) scale(0.85);
	transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease), visibility 0s linear var(--dur), bottom var(--dur) var(--ease), background-color var(--dur) var(--ease), color var(--dur) var(--ease);
	-webkit-tap-highlight-color: transparent;
}

/* Sans JavaScript : le bouton reste visible */
.no-js .cc-totop,
.cc-totop.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

.cc-totop:hover,
.cc-totop:focus-visible { background: var(--cc-miel); color: var(--cc-basalte) !important; }
.cc-totop:hover .cc-icon { transform: translateY(-2px); }
.cc-totop .cc-icon { position: relative; z-index: 1; width: 20px; height: 20px; transition: transform var(--dur) var(--ease); }

.cc-totop__ring {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	transform: rotate(-90deg);
	pointer-events: none;
}

.cc-totop__ring circle { fill: none; stroke-width: 3; }
.cc-totop__track { stroke: color-mix(in srgb, var(--cc-miel) 22%, transparent); }

.cc-totop__bar {
	stroke: var(--cc-miel);
	stroke-linecap: round;
	stroke-dasharray: 100;
	stroke-dashoffset: calc(100 - var(--p, 0) * 100);
	transition: stroke-dashoffset 0.15s linear;
}

.cc-totop:hover .cc-totop__bar { stroke: var(--cc-basalte); }

@media (max-width: 599px) {
	.cc-totop { --size: 48px; right: max(var(--s-3), env(safe-area-inset-right)); bottom: calc(var(--s-3) + env(safe-area-inset-bottom)); }
}

/* Ne jamais masquer les barres d'action collantes du bas d'écran */
@media (max-width: 781px) {
	.woocommerce-cart .cc-totop { bottom: calc(96px + env(safe-area-inset-bottom)); }
}

.cc-buybar-on .cc-totop { bottom: calc(92px + env(safe-area-inset-bottom)); }
html.cc-menu-open .cc-totop { opacity: 0; visibility: hidden; }

@media (prefers-reduced-motion: reduce) {
	.cc-totop, .cc-totop__bar { transition: none; }
}

/* Lecteur vidéo (modale) */
.cc-video {
	width: min(1100px, 94vw);
	max-width: none;
	padding: 0;
	border: 0;
	border-radius: var(--r-m);
	background: #000;
	overflow: visible;
}

.cc-video::backdrop { background: color-mix(in srgb, var(--cc-basalte) 88%, transparent); }

.cc-video__frame { aspect-ratio: 16 / 9; }

.cc-video__frame iframe,
.cc-video__frame video {
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: var(--r-m);
}

.cc-video__close {
	position: absolute;
	top: -56px;
	right: 0;
	color: var(--cc-pollen);
}

/* ==========================================================================
   Mouvement
   Un seul geste fort : les courbes de niveau se dessinent quand leur section
   entre à l'écran. Le reste : transitions courtes, sans fondu systématique.
   ========================================================================== */

.cc-js .cc-contours path,
.cc-js .cc-b-contours path {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 2.6s var(--ease) calc(var(--i, 0) * 70ms);
}

.cc-js .is-inview > .cc-contours path,
.cc-js .is-inview .cc-contours path,
.cc-js .is-inview > .cc-b-contours path {
	stroke-dashoffset: 0;
}

.cc-js .cc-trace__line path {
	stroke-dashoffset: 1;
	transition: stroke-dashoffset 2.4s var(--ease) 0.3s;
}

.cc-js .is-inview .cc-trace__line path { stroke-dashoffset: 0; }

.cc-js .cc-trace__step {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
	transition-delay: calc(0.4s + var(--i, 0) * 0.15s);
}

.cc-js .is-inview .cc-trace__step {
	opacity: 1;
	transform: none;
}

/* Réduction des animations : option du thème ou préférence système */
.cc-no-motion *,
.cc-no-motion *::before,
.cc-no-motion *::after {
	animation: none !important;
	transition-duration: 0.01ms !important;
	transition-delay: 0s !important;
}

.cc-no-motion .cc-contours path,
.cc-no-motion .cc-b-contours path,
.cc-no-motion .cc-trace__line path { stroke-dashoffset: 0 !important; }

.cc-no-motion .cc-trace__step { opacity: 1 !important; transform: none !important; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
	}

	.cc-contours path,
	.cc-b-contours path,
	.cc-trace__line path { stroke-dashoffset: 0 !important; }

	.cc-js .cc-trace__step { opacity: 1; transform: none; }

	.cc-marquee__track,
	.cc-galerie__track { animation: none !important; }

	.cc-s-marquee,
	.cc-galerie__track { overflow-x: auto; }

	.cc-hero__slide .cc-hero__media img { transform: none !important; }
}

/* Impression */
@media print {
	.cc-masthead,
	.cc-offcanvas,
	.cc-newsletter,
	.cc-footer__main,
	.cc-share,
	.cc-postnav,
	.cc-related,
	.cc-progress { display: none !important; }
	body { background: #fff; color: #000; }
	.cc-single__head { padding-top: 0; background: none; }
}

/* ==========================================================================
   Motifs décoratifs : abeilles, alvéoles, coulée de miel
   ========================================================================== */

.cc-deco-host { position: relative; }

/* Les motifs animés près des bords ne doivent jamais créer de défilement horizontal. */
.cc-site { overflow-x: clip; }
.cc-section, .cc-footer { overflow-x: clip; }

.cc-deco {
	position: absolute;
	display: block;
	line-height: 0;
	pointer-events: none;
	color: var(--cc-ambre);
}

.cc-deco svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}

/* Abeille */
.cc-bee__wing {
	fill: color-mix(in srgb, var(--cc-pollen) 78%, transparent);
	stroke: var(--cc-basalte);
	stroke-width: 1.5;
	transform-box: fill-box;
	transform-origin: 50% 100%;
	animation: cc-wing 0.18s ease-in-out infinite alternate;
}

.cc-bee__wing--r { animation-delay: 0.09s; }
.cc-bee__body { fill: var(--cc-miel); stroke: var(--cc-basalte); stroke-width: 2; }
.cc-bee__stripe { fill: none; stroke: var(--cc-basalte); stroke-width: 3.2; stroke-linecap: round; }
.cc-bee__head { fill: var(--cc-basalte); }
.cc-bee__line { fill: none; stroke: var(--cc-basalte); stroke-width: 2; stroke-linecap: round; }

.cc-deco--bee svg,
.cc-deco--bee-trail .cc-bee {
	animation: cc-hover 3.6s ease-in-out infinite;
	transform-box: fill-box;
	transform-origin: center;
}

.cc-deco__trail {
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-dasharray: 3 8;
	opacity: 0.75;
}

@keyframes cc-wing { to { transform: scaleY(0.72); } }
@keyframes cc-hover {
	0%, 100% { transform: translate(0, 0) rotate(0deg); }
	50% { transform: translate(3px, -6px) rotate(-4deg); }
}

/* Alvéoles */
.cc-comb__cell {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	opacity: 0.75;
}

.cc-comb__cell.is-full { fill: var(--cc-miel); stroke: var(--cc-ambre); opacity: 1; }
.cc-comb__cell.is-half { fill: var(--cc-miel-clair); stroke: var(--cc-ambre); opacity: 1; }

/* Coulée de miel (haut de section) */
.cc-deco--drip {
	top: -1px;
	left: 0;
	right: 0;
	z-index: 0;
	color: var(--cc-miel);
}

.cc-deco--drip svg {
	height: clamp(36px, 5.5vw, 84px);
	fill: currentColor;
}

/* Texture d'alvéoles dans les sections « cire » */
.cc-section.is-wax::before,
.wp-block-group.is-style-cire::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	z-index: -1;
	width: min(460px, 60vw);
	height: 380px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='100'%3E%3Cpath d='M28 66L0 50V16L28 0l28 16v34L28 66v34' fill='none' stroke='%23E97A00' stroke-opacity='.22' stroke-width='1.4'/%3E%3Cpath d='M28 0v34L0 50v34l28 16 28-16V50L28 34' fill='none' stroke='%23E97A00' stroke-opacity='.22' stroke-width='1.4'/%3E%3C/svg%3E") 0 0 / 56px 100px;
	-webkit-mask-image: radial-gradient(circle at 100% 0, #000 0, transparent 72%);
	mask-image: radial-gradient(circle at 100% 0, #000 0, transparent 72%);
	pointer-events: none;
}

.wp-block-group.is-style-cire { position: relative; isolation: isolate; }

/* Positions ------------------------------------------------------------- */

.cc-deco--hero {
	z-index: 2;
	top: calc(var(--hero-top, 0px) + clamp(2rem, 6vw, 5rem));
	right: 6%;
	width: clamp(130px, 14vw, 220px);
	color: var(--cc-miel);
}

.cc-deco--figure {
	top: -5%;
	right: -6%;
	width: clamp(90px, 9vw, 130px);
	color: var(--cc-ambre);
}

.cc-deco--figure-bee {
	top: -6%;
	left: -12%;
	width: clamp(120px, 13vw, 180px);
	color: var(--cc-miel);
}

.cc-deco--act {
	top: -2.6rem;
	right: 2%;
	width: 54px;
	z-index: 1;
}

.cc-deco--stack {
	left: -9%;
	bottom: 6%;
	width: 34%;
}

.cc-deco--odd {
	top: -3.2rem;
	right: 34%;
	width: clamp(80px, 8vw, 116px);
}

.cc-deco--cta {
	z-index: 1;
	top: 9%;
	right: 36%;
	width: clamp(120px, 12vw, 170px);
	color: var(--cc-basalte);
}

.cc-deco--footer {
	top: -2.5rem;
	right: 3%;
	width: clamp(150px, 15vw, 220px);
	color: var(--cc-miel);
}

.cc-deco--banner {
	z-index: 1;
	top: calc(var(--hero-top, 0px) + 12%);
	right: 7%;
	width: clamp(130px, 13vw, 190px);
	color: var(--cc-miel);
}

.cc-deco--404 {
	top: 0;
	right: 14%;
	width: clamp(120px, 14vw, 190px);
}

/* Les sections sombres gardent leur contenu au-dessus de la coulée */
.cc-s-miel--dark > .cc-container { position: relative; z-index: 1; }
.cc-s-miel--dark { padding-top: calc(var(--cc-section-y) + 2rem); }

/* Petits écrans : on garde l'essentiel pour ne pas gêner la lecture */
@media (max-width: 899px) {
	.cc-deco--hero,
	.cc-deco--banner,
	.cc-deco--cta,
	.cc-deco--figure-bee { display: none; }
	.cc-deco--footer { width: 120px; top: -3rem; }
	.cc-deco--odd { top: -2.5rem; right: 0; width: 70px; }
	.cc-deco--stack { left: -4%; width: 28%; }
}

/* Deuxième série : fleur, cuillère à miel, gouttes, pollen, feuillage, alvéole ---------- */

.cc-flower { transform-origin: 40px 102px; animation: cc-sway 6s ease-in-out infinite; }
.cc-flower__petal { fill: var(--cc-miel-clair); stroke: var(--cc-ambre); stroke-width: 1.4; }
.cc-flower__heart { fill: var(--cc-miel); stroke: var(--cc-ambre); stroke-width: 1.4; }
.cc-flower__dots { fill: none; stroke: var(--cc-ambre-texte); stroke-width: 2.4; stroke-linecap: round; }
.cc-flower__stem { fill: none; stroke: var(--cc-canopee-2); stroke-width: 2.2; stroke-linecap: round; }
.cc-flower__leaf { fill: color-mix(in srgb, var(--cc-canopee-2) 30%, transparent); stroke: var(--cc-canopee-2); stroke-width: 1.4; }

.cc-dipper__handle { fill: none; stroke: var(--cc-basalte); stroke-width: 5; stroke-linecap: round; }
.cc-dipper__head { fill: var(--cc-miel); stroke: var(--cc-ambre); stroke-width: 1.6; }
.cc-dipper__groove { fill: none; stroke: var(--cc-ambre); stroke-width: 1.6; }
.cc-dipper__drop { fill: var(--cc-miel); stroke: var(--cc-ambre); stroke-width: 1.2; transform-box: fill-box; transform-origin: 50% 0; animation: cc-drip 4s ease-in-out infinite; }

.cc-drops__drop { fill: var(--cc-miel); stroke: var(--cc-ambre); stroke-width: 1.2; }
.cc-drops__shine { fill: var(--cc-pollen); opacity: 0.7; }
.cc-deco--drops svg { animation: cc-hover 5s ease-in-out infinite; }

.cc-pollen__dot { fill: currentColor; animation: cc-twinkle 3.2s ease-in-out infinite; animation-delay: calc(var(--d) * -0.7s); }

.cc-sprig__stem { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.cc-sprig__leaf { fill: color-mix(in srgb, currentColor 18%, transparent); stroke: currentColor; stroke-width: 1.4; }

.cc-hex__outer { fill: none; stroke: currentColor; stroke-width: 1.4; stroke-dasharray: 4 6; }
.cc-hex__inner { fill: color-mix(in srgb, var(--cc-miel) 22%, transparent); stroke: currentColor; stroke-width: 1.2; }
.cc-deco--hex svg { animation: cc-turn 60s linear infinite; }

@keyframes cc-sway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes cc-drip { 0%, 60%, 100% { transform: scaleY(1); } 80% { transform: scaleY(1.25); } }
@keyframes cc-twinkle { 0%, 100% { opacity: 0.35; } 50% { opacity: 0.95; } }
@keyframes cc-turn { to { transform: rotate(360deg); } }

/* Positions (toutes tailles) */
.cc-deco--wheel { top: -2%; left: -4%; width: clamp(54px, 9vw, 92px); }
.cc-deco--trace-pollen { top: 4%; right: 3%; width: clamp(110px, 16vw, 220px); color: var(--cc-miel); opacity: 0.8; }
.cc-deco--trace-drops { bottom: 8%; left: 3%; width: 64px; }
.cc-deco--api-hex { top: -8%; left: -8%; width: clamp(110px, 12vw, 170px); color: var(--cc-ambre); opacity: 0.8; }
.cc-deco--counters { top: -2.4rem; right: 0; width: clamp(42px, 5vw, 64px); }
.cc-deco--impact { right: 0; bottom: -5.5rem; width: clamp(52px, 7vw, 86px); }
.cc-deco--impact-sprig { top: -2.4rem; right: 0; width: clamp(100px, 12vw, 150px); color: var(--cc-canopee-2); }
.cc-deco--products { top: -2.8rem; right: 0; width: clamp(84px, 10vw, 130px); }
.cc-deco--faq { bottom: -0.6rem; right: 0; width: 110px; color: var(--cc-canopee-2); transform: scaleX(-1); }
.cc-deco--devis { top: 6%; left: 2%; width: 150px; color: var(--cc-miel); opacity: 0.6; }
.cc-deco--devis-drops { bottom: 6%; right: 3%; width: clamp(40px, 5vw, 64px); }
.cc-deco--blog { top: -2.6rem; left: 30%; width: clamp(100px, 13vw, 170px); color: var(--cc-ambre); opacity: 0.7; }
.cc-deco--galerie { top: -0.6rem; right: var(--cc-gutter); width: clamp(48px, 6vw, 72px); }
.cc-s-galerie .cc-container { position: relative; }
.cc-deco--volume { bottom: 8%; right: 4%; width: 160px; color: var(--cc-miel); opacity: 0.5; }
.cc-deco--volume-pollen { top: 6%; left: 4%; width: clamp(110px, 15vw, 200px); color: var(--cc-miel); opacity: 0.7; }
.cc-deco--reseau { top: -1rem; right: 0; width: clamp(90px, 11vw, 140px); color: var(--cc-canopee-2); }
.cc-deco--newsletter { top: -2.2rem; right: 4%; width: clamp(40px, 4vw, 56px); z-index: 2; }
.cc-deco--single { top: 18%; right: 6%; width: clamp(56px, 7vw, 96px); }
.cc-deco--single-pollen { bottom: 10%; right: 18%; width: 180px; color: var(--cc-ambre); opacity: 0.7; }
.cc-deco--banner-pollen { bottom: 8%; right: 4%; width: clamp(100px, 14vw, 200px); color: var(--cc-miel); opacity: 0.85; z-index: 1; }

.cc-wheel__visual .cc-deco { z-index: 2; }
.cc-s-tracabilite .cc-deco, .cc-s-volume .cc-deco, .cc-s-devis .cc-deco { z-index: 0; }

/* Mobile : les motifs « is-mobile » restent visibles, plus petits et calés dans les coins */
@media (max-width: 899px) {
	.cc-deco:not(.is-mobile):not(.cc-deco--drip):not(.cc-deco--act):not(.cc-deco--stack):not(.cc-deco--odd):not(.cc-deco--footer) { display: none; }
	.cc-deco--trace-pollen { width: 110px; top: 2%; right: 2%; }
	.cc-deco--blog { left: auto; right: 0; top: -2.2rem; width: 96px; }
	.cc-deco--products { top: -2.4rem; width: 76px; }
	.cc-deco--impact { bottom: -4rem; width: 46px; }
	.cc-deco--banner-pollen { width: 96px; bottom: 6%; }
	.cc-deco--single { top: 12%; right: 4%; width: 48px; }
	.cc-deco--volume-pollen { width: 110px; }
	.cc-deco--newsletter { top: -1.8rem; width: 38px; }
	.cc-deco--reseau { top: -2.4rem; width: 84px; }
	.cc-deco--galerie { width: 44px; }
}

/* Pages intérieures (blocs) : motifs en CSS seul ------------------------- */
.cc-b-split__media { position: relative; }

.cc-b-split__media::after {
	content: "";
	position: absolute;
	top: -18px;
	left: -14px;
	width: clamp(46px, 6vw, 78px);
	aspect-ratio: 80 / 104;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 104'%3E%3Cpath d='M40 50c0 18-3 30 0 52' fill='none' stroke='%23344E40' stroke-width='2.2' stroke-linecap='round'/%3E%3Cpath d='M40 80c-8-9-19-10-25-4 8 7 18 9 25 4z' fill='%23344E404d' stroke='%23344E40' stroke-width='1.4'/%3E%3Cg fill='%23FFEDB3' stroke='%23E97A00' stroke-width='1.4'%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14'/%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14' transform='rotate(60 40 36)'/%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14' transform='rotate(120 40 36)'/%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14' transform='rotate(180 40 36)'/%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14' transform='rotate(240 40 36)'/%3E%3Cellipse cx='40' cy='21' rx='8.5' ry='14' transform='rotate(300 40 36)'/%3E%3C/g%3E%3Ccircle cx='40' cy='36' r='7.5' fill='%23FFC400' stroke='%23E97A00' stroke-width='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	pointer-events: none;
	z-index: 2;
}

.cc-b-split.is-reverse .cc-b-split__media::after { left: auto; right: -14px; }

.wp-block-group.is-style-basalte::after,
.wp-block-group.is-style-canopee::after {
	content: "";
	position: absolute;
	top: 5%;
	right: 3%;
	width: clamp(110px, 16vw, 210px);
	aspect-ratio: 160 / 100;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 100' fill='%23FFC400'%3E%3Ccircle cx='8' cy='14' r='3'/%3E%3Ccircle cx='30' cy='6' r='1.6' opacity='.6'/%3E%3Ccircle cx='52' cy='22' r='2.4'/%3E%3Ccircle cx='74' cy='10' r='1.4' opacity='.5'/%3E%3Ccircle cx='96' cy='28' r='3.2' opacity='.8'/%3E%3Ccircle cx='120' cy='12' r='1.8' opacity='.6'/%3E%3Ccircle cx='142' cy='30' r='2.2'/%3E%3Ccircle cx='44' cy='52' r='2.8' opacity='.7'/%3E%3Ccircle cx='90' cy='58' r='2' opacity='.5'/%3E%3Ccircle cx='136' cy='66' r='2.6' opacity='.7'/%3E%3Ccircle cx='104' cy='86' r='2.2' opacity='.5'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: 0.8;
	pointer-events: none;
	z-index: 0;
}

.wp-block-group.is-style-basalte,
.wp-block-group.is-style-canopee { position: relative; isolation: isolate; }

.wp-block-column.cc-b-card { position: relative; }

.wp-block-column.cc-b-card::after {
	content: "";
	position: absolute;
	right: 18px;
	bottom: 18px;
	width: 46px;
	aspect-ratio: 1;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'%3E%3Cpolygon points='60,4 108.5,32 108.5,88 60,116 11.5,88 11.5,32' fill='none' stroke='%23E97A00' stroke-width='3' stroke-dasharray='8 10'/%3E%3Cpolygon points='60,34 82.5,47 82.5,73 60,86 37.5,73 37.5,47' fill='%23FFC40055' stroke='%23E97A00' stroke-width='2.4'/%3E%3C/svg%3E") center / contain no-repeat;
	opacity: 0.55;
	pointer-events: none;
}

.cc-no-decor .cc-b-split__media::after,
.cc-no-decor .wp-block-group.is-style-basalte::after,
.cc-no-decor .wp-block-group.is-style-canopee::after,
.cc-no-decor .wp-block-column.cc-b-card::after { display: none; }
/* Désactivation */
.cc-no-decor .cc-deco,
.cc-no-decor .cc-section.is-wax::before,
.cc-no-decor .wp-block-group.is-style-cire::before { display: none; }

.cc-no-motion .cc-deco *,
.cc-no-motion .cc-deco svg { animation: none !important; }

@media (prefers-reduced-motion: reduce) {
	.cc-deco *,
	.cc-deco svg { animation: none !important; }
}

/* ==========================================================================
   Illustrations des solutions (page « Nos solutions »)
   ========================================================================== */

.cc-deco .f-m { fill: var(--cc-miel); }
.cc-deco .f-mc { fill: var(--cc-miel-clair); }
.cc-deco .f-w { fill: var(--cc-pollen); }
.cc-deco .f-c { fill: var(--cc-cire); }
.cc-deco .f-b { fill: var(--cc-basalte); }
.cc-deco .f-a { fill: var(--cc-ambre); }
.cc-deco .f-g { fill: var(--cc-canopee-2); }
.cc-deco .f-gl { fill: color-mix(in srgb, #7fb069 55%, var(--cc-pollen)); }
.cc-deco .o { stroke: var(--cc-basalte); stroke-width: 2.2; stroke-linejoin: round; }
.cc-deco .o-a { stroke: var(--cc-ambre); stroke-width: 1.6; }
.cc-deco .og { stroke: var(--cc-canopee-2); stroke-width: 2; stroke-linejoin: round; }
.cc-deco .o-soft { stroke: color-mix(in srgb, var(--cc-basalte) 45%, transparent); stroke-width: 1.6; }
.cc-deco :is(.l, .lt, .la, .lg, .lm, .lw) { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.cc-deco .l { stroke: var(--cc-basalte); stroke-width: 2.2; }
.cc-deco .l--thick { stroke-width: 4; }
.cc-deco .lt { stroke: color-mix(in srgb, var(--cc-basalte) 45%, transparent); stroke-width: 1.6; }
.cc-deco .la { stroke: var(--cc-ambre); stroke-width: 2.4; }
.cc-deco .la--dash { stroke-dasharray: 3 6; stroke-width: 2; }
.cc-deco .lg { stroke: var(--cc-canopee-2); stroke-width: 2; }
.cc-deco .lg--thick { stroke-width: 3.2; }
.cc-deco .lm { stroke: var(--cc-miel); stroke-width: 1.8; }
.cc-deco .lw { stroke: var(--cc-pollen); stroke-width: 1.8; }
.cc-deco .lw--thick { stroke-width: 2.6; }

.cc-art__trail { fill: none; stroke: var(--cc-ambre); stroke-width: 1.8; stroke-dasharray: 3 6; stroke-linecap: round; }
.cc-art__smoke circle { animation: cc-smoke 4s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }
.cc-art__smoke circle:nth-child(2) { animation-delay: -1.3s; }
.cc-art__smoke circle:nth-child(3) { animation-delay: -2.6s; }
.cc-art__drop { animation: cc-drip 4s ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 0; }
.cc-art__waves path { animation: cc-signal-wave 2.4s ease-in-out infinite; }
.cc-art__waves path:nth-child(2) { animation-delay: 0.3s; }
.cc-art__waves path:nth-child(3) { animation-delay: 0.6s; }
.cc-art__blink { animation: cc-twinkle 1.6s ease-in-out infinite; }

@keyframes cc-smoke { 0%, 100% { transform: translateY(0) scale(1); opacity: 0.9; } 50% { transform: translateY(-4px) scale(1.12); opacity: 0.55; } }
@keyframes cc-signal-wave { 0%, 100% { opacity: 0.25; } 40% { opacity: 1; } }

/* Illustration posée sur le coin de la photo */
.cc-deco--sol {
	z-index: 3;
	top: -34px;
	right: -26px;
	width: clamp(104px, 11vw, 150px);
	padding: 10px;
	border-radius: 50%;
	background: var(--cc-pollen);
	box-shadow: var(--sh-1);
	animation: cc-hover 6s ease-in-out infinite;
}

.cc-b-split.is-reverse .cc-deco--sol { right: auto; left: -26px; }
.is-style-basalte .cc-deco--sol { background: var(--cc-basalte-2); box-shadow: 0 0 0 1px color-mix(in srgb, var(--cc-miel) 30%, transparent); }

/* Le motif « fleur » générique laisse la place à l'illustration */
.cc-b-split__media:has(.cc-deco--sol)::after { display: none; }

/* Filigrane : la même illustration au trait, en grand, derrière le texte */
.cc-b-section.cc-b-section > .cc-deco--sol-mark {
	z-index: -1;
	top: 50%;
	right: 2%;
	left: auto;
	width: clamp(220px, 26vw, 380px);
	max-width: none;
	margin: 0;
	padding: 0;
	opacity: 0.09;
	transform: translateY(-50%) rotate(-8deg);
}

.cc-deco--sol-mark * { fill: none !important; stroke: var(--cc-ambre) !important; stroke-width: 1.4 !important; animation: none !important; }
.is-style-basalte > .cc-deco--sol-mark { opacity: 0.16; }
.is-style-basalte > .cc-deco--sol-mark * { stroke: var(--cc-miel) !important; }

/* Sommaire : pictogrammes */
.cc-b-anchors__icon { flex: none; color: var(--cc-ambre); }
.cc-b-anchors a { display: inline-flex; align-items: center; gap: 0.5em; }

@media (max-width: 899px) {
	.cc-deco--sol { top: -22px; right: -6px; width: 92px; padding: 7px; }
	.cc-b-split.is-reverse .cc-deco--sol { left: -6px; }
}

/* ==========================================================================
   Motifs « tech » (ApiConnect) : circuit, puce, capteur, feuille-circuit, réseau
   ========================================================================== */

.cc-circuit__trace { fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; opacity: 0.55; }
.cc-circuit__pulse {
	fill: none;
	stroke: var(--cc-miel);
	stroke-width: 2.6;
	stroke-linecap: round;
	stroke-dasharray: 10 320;
	animation: cc-dash-pulse 4.5s linear infinite;
	animation-delay: calc(var(--d) * -0.9s);
}
.cc-circuit__node { fill: var(--cc-pollen); stroke: currentColor; stroke-width: 1.6; }
.cc-circuit__pad { fill: var(--cc-miel); stroke: currentColor; stroke-width: 1.4; }

.cc-chip__pins path { fill: none; stroke: var(--cc-ambre); stroke-width: 3; stroke-linecap: round; }
.cc-chip__body { fill: var(--cc-basalte); stroke: var(--cc-ambre); stroke-width: 1.6; }
.cc-chip__hex { fill: color-mix(in srgb, var(--cc-miel) 22%, transparent); stroke: var(--cc-miel); stroke-width: 1.6; stroke-dasharray: 4 4; }
.cc-deco--chip-bee .cc-bee { animation: cc-hover 3.6s ease-in-out infinite; transform-box: fill-box; transform-origin: center; }

.cc-signal__waves path { fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; animation: cc-signal-wave 2.4s ease-in-out infinite; }
.cc-signal__waves path:nth-child(2) { animation-delay: 0.3s; }
.cc-signal__waves path:nth-child(3) { animation-delay: 0.6s; }
.cc-signal__mast { fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; }
.cc-signal__dot { fill: var(--cc-miel); }
.cc-signal__box { fill: var(--cc-miel); stroke: var(--cc-basalte); stroke-width: 2.2; }
.cc-signal__screen { fill: var(--cc-basalte); }
.cc-signal__led { fill: var(--cc-canopee-2); animation: cc-twinkle 1.6s ease-in-out infinite; }

.cc-leafc__leaf { fill: color-mix(in srgb, #7fb069 26%, transparent); stroke: var(--cc-canopee-2); stroke-width: 2; }
.cc-leafc__vein { fill: none; stroke: var(--cc-canopee-2); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cc-leafc__node { fill: var(--cc-miel); stroke: var(--cc-canopee-2); stroke-width: 1.4; animation: cc-twinkle 3s ease-in-out infinite; }
.cc-leafc__node:nth-of-type(2) { animation-delay: -1s; }
.cc-leafc__node:nth-of-type(3) { animation-delay: -2s; }

.cc-net__link { fill: none; stroke: currentColor; stroke-width: 1.2; stroke-dasharray: 2 4; opacity: 0.7; }
.cc-net__node { fill: transparent; stroke: currentColor; stroke-width: 1.4; }
.cc-net__node.is-on { fill: var(--cc-miel); stroke: var(--cc-miel); animation: cc-twinkle 2.6s ease-in-out infinite; animation-delay: calc(var(--d) * -0.5s); }

@keyframes cc-dash-pulse { from { stroke-dashoffset: 330; } to { stroke-dashoffset: 0; } }

/* Positions sur les pages tech (les enfants directs des sections ne sont pas contraints) */
.cc-b-section.cc-b-section > :is(.cc-deco--t-intro-l, .cc-deco--t-intro-r, .cc-deco--t-net, .cc-deco--t-leaf, .cc-deco--t-bottom, .cc-deco--t-wax, .cc-deco--t-plain) { max-width: none; margin: 0; padding: 0; }

.cc-deco--t-intro-l { z-index: -1; top: 10%; left: -2%; width: clamp(160px, 22vw, 300px); color: var(--cc-ambre); opacity: 0.7; }
.cc-deco--t-intro-r { z-index: 0; top: 14%; right: 6%; width: clamp(80px, 9vw, 128px); }
.cc-deco--t-media { z-index: 3; top: -30px; right: -22px; width: clamp(96px, 10vw, 138px); padding: 8px; border-radius: 26px; background: var(--cc-pollen); box-shadow: var(--sh-1); color: var(--cc-ambre); animation: cc-hover 6s ease-in-out infinite; }
.cc-b-split.is-reverse .cc-deco--t-media { right: auto; left: -22px; }
.cc-deco--t-net { z-index: 0; bottom: 7%; right: 3%; width: clamp(150px, 16vw, 230px); color: var(--cc-miel); opacity: 0.7; }
.cc-deco--t-leaf { z-index: 0; top: 8%; right: 4%; width: clamp(80px, 10vw, 140px); }
.is-style-canopee .cc-deco--t-leaf .cc-leafc__leaf { fill: color-mix(in srgb, var(--cc-miel) 12%, transparent); stroke: var(--cc-miel); }
.is-style-canopee .cc-deco--t-leaf .cc-leafc__vein { stroke: var(--cc-miel); }
.cc-deco--t-bottom { z-index: 0; top: 12%; right: 16%; width: clamp(150px, 16vw, 220px); color: var(--cc-miel); opacity: 0.4; }
.cc-deco--t-wax { z-index: 0; top: 7%; right: 4%; width: clamp(110px, 13vw, 180px); color: var(--cc-ambre); opacity: 0.8; }
.cc-deco--t-plain { z-index: -1; bottom: 8%; right: 3%; width: clamp(130px, 15vw, 200px); color: var(--cc-ambre); opacity: 0.55; }
.cc-deco--t-banner { width: clamp(110px, 11vw, 160px); color: var(--cc-miel); }
.cc-deco--t-banner-net { color: var(--cc-miel); opacity: 0.6; }

/* Pages tech : les motifs « miel » génériques cèdent la place */
.cc-tech .cc-b-split__media::after,
.cc-tech .wp-block-group.is-style-basalte::after,
.cc-tech .wp-block-group.is-style-canopee::after { display: none; }

/* Texture des sections cire : grille de circuit au lieu des alvéoles */
.cc-tech .wp-block-group.is-style-cire::before {
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' fill='none' stroke='%23E97A00' stroke-opacity='.3' stroke-width='1.2'%3E%3Cpath d='M0 20h22l8 8h20M50 28V0M30 28v22l10 10h40M10 80V58l8-8M60 60v20'/%3E%3Ccircle cx='50' cy='28' r='2.4'/%3E%3Ccircle cx='18' cy='50' r='2.4'/%3E%3Ccircle cx='60' cy='60' r='2.4'/%3E%3C/svg%3E") 0 0 / 80px 80px;
}

/* Cartes : petite puce au lieu de l'alvéole */
.cc-tech .wp-block-column.cc-b-card::after {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 118 118' fill='none' stroke='%23E97A00' stroke-width='4' stroke-linecap='round'%3E%3Cpath d='M36 14v12M50 14v12M64 14v12M78 14v12M36 92v12M50 92v12M64 92v12M78 92v12M14 36h12M14 50h12M14 64h12M14 78h12M92 36h12M92 50h12M92 64h12M92 78h12'/%3E%3Crect x='26' y='26' width='66' height='66' rx='12' stroke-width='3'/%3E%3Cpolygon points='59,40 75,49 75,69 59,78 43,69 43,49' fill='%23FFC40055' stroke-width='3'/%3E%3C/svg%3E");
}

@media (max-width: 899px) {
	.cc-deco--t-intro-r { top: 3%; right: 3%; width: 64px; }
	.cc-deco--t-media { top: -18px; right: -4px; width: 80px; padding: 6px; border-radius: 18px; }
	.cc-b-split.is-reverse .cc-deco--t-media { left: -4px; }
	.cc-deco--t-net { top: 2%; right: 2%; width: 120px; opacity: 0.6; }
	.cc-deco--t-leaf { top: 3%; right: 3%; width: 64px; }
	.cc-deco--t-wax { top: 2%; right: 2%; width: 84px; opacity: 0.6; }
	.cc-deco--t-banner-net { width: 110px; }
}

/* Mouvement réduit : s'applique aussi aux nouveaux motifs */
@media (prefers-reduced-motion: reduce) {
	.cc-deco--sol,
	.cc-deco--t-media { animation: none !important; }
}
.cc-no-motion .cc-deco--sol,
.cc-no-motion .cc-deco--t-media { animation: none !important; }
