/*
Theme Name:   Cœur de Chocolat — Boutique
Description:  Thème enfant de la boutique en ligne. Reprend le socle du thème de l'Atelier (tokens, base, titres, boutons, grille, en-tête, pied de page, fil du voyage) ; les règles propres aux pages de l'Atelier n'y sont pas. Source du socle : Claude répertoire/hello-elementor-child/style.css (v2.37.2).
Author:       Cœur de Chocolat
Template:     hello-elementor
Version:      1.14.0
Text Domain:  cdc-boutique
*/


/* ==========================================================================
   Design system — tokens
   Les valeurs Elementor (kit global) priment ; les hex sont des valeurs de repli.
   Référence : DESIGN.md
   ========================================================================== */
:root {
	/* Couleurs — direction « Cacao + canopée » (DESIGN.md) */
	--cdc-cacao:   var(--e-global-color-primary, #15100E);  /* Hero, appel final, footer, boutons, texte fort */
	--cdc-torrefie: #2A211D;                                 /* Survol des boutons cacao, filets sur cacao */
	--cdc-papier:  var(--e-global-color-2c1e0fd, #F2F0EB);  /* Fond de page */
	--cdc-texte:   var(--e-global-color-text, #4A4340);     /* Corps de texte */
	--cdc-cuivre:  var(--e-global-color-7d5c5cc, #D9B27C);  /* Accent unique (jamais en texte sur fond clair) */
	--cdc-canopee: #2C3A28;                                  /* Une section origine/producteurs par page */
	--cdc-canopee-texte: #D6D1C4;
	--cdc-filet:   #D8D3CB;
	--cdc-sur-sombre: #C9C2B8;                               /* Texte courant sur cacao */

	/* Anciens noms, conservés pour les règles existantes */
	--cdc-lin:        var(--cdc-papier);
	--cdc-ebene:      var(--cdc-cacao);
	--cdc-silex:      var(--cdc-texte);
	--cdc-terracotta: var(--cdc-cacao);
	--cdc-terracotta-fonce: var(--cdc-torrefie);
	--cdc-or:         var(--cdc-cuivre);
	--cdc-sable:      #E6E2DC;

	/* Typographie : une seule famille */
	--cdc-font-titres: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
	--cdc-font-texte:  "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Échelle typographique (fluide entre 375 et 1440 px) */
	--cdc-fs-h1:      clamp(2.5rem, 1.8rem + 3vw, 4.5rem);      /* 40 → 72 */
	--cdc-fs-h2:      clamp(2rem, 1.5rem + 2vw, 3.25rem);       /* 32 → 52 */
	--cdc-fs-h2-sm:   clamp(1.5rem, 1.2rem + 0.8vw, 2rem);       /* 24 → 32 : titre dans une colonne ou un panneau */
	--cdc-fs-h3:      clamp(1.375rem, 1.3rem + 0.3vw, 1.625rem); /* 22 → 26 */
	--cdc-fs-lead:    1.125rem;  /* 18 — chapeaux */
	--cdc-fs-body:    1rem;      /* 16 — corps */
	--cdc-fs-small:   0.875rem;  /* 14 — listes, métadonnées */
	--cdc-fs-label:   0.8125rem; /* 13 — étiquettes, pastilles, titres de footer */
	--cdc-fs-micro:   0.75rem;   /* 12 — minimum absolu (étiquettes des billets et du passeport) */

	/* Espacements — rythme vertical */
	--cdc-space-section: clamp(4rem, 2.5rem + 6vw, 8rem);     /* 64 → 128 : entre deux sections */
	--cdc-space-intro:   clamp(2rem, 1.5rem + 1.5vw, 3rem);   /* 32 → 48  : titre de section → son contenu */
	--cdc-space-band:    clamp(2.5rem, 2rem + 1.5vw, 3.5rem); /* 40 → 56  : bandes colorées */
	--cdc-radius: 10px;
	--cdc-radius-in: 10px; /* règle d'Alex : un seul arrondi partout (2026-10-15) */

	/* Teintes dérivées de la palette */
	--cdc-cuivre-clair:  #E6C597; /* survol des boutons cuivre */
	--cdc-papier-ancien: #EFE7D8; /* billets, passeport */
	--cdc-encre:         #8A5A2E; /* tampon */
	--cdc-canopee-filet: #3F4F3A; /* filets sur fond canopée */
	--cdc-champ-bord:    #7D6B5E; /* bord des champs sur fond torréfié */

	/* Grille horizontale — alignée sur le header (72 px à 1440) */
	--cdc-max:    1296px;
	--cdc-gutter: 5%;
	--cdc-inline: max(var(--cdc-gutter), (100% - var(--cdc-max)) / 2);
	--cdc-header-h: 80px;

	--cdc-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ==========================================================================
   Base
   ========================================================================== */
body {
	font-family: var(--cdc-font-texte);
	font-size: var(--cdc-fs-body);
	line-height: 1.6;
	color: var(--cdc-silex);
	caret-color: var(--cdc-terracotta);
	scrollbar-color: var(--cdc-or) var(--cdc-lin);
}

::selection {
	background: var(--cdc-or);
	color: var(--cdc-ebene);
}

a {
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
}

:focus-visible,
:is(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible {
	outline: 2px solid var(--cdc-cuivre);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--cdc-cacao);
}

/* Contour de focus en deux tons : l'anneau cacao se voit sur fond clair,
   le contour cuivre sur fond sombre (cacao, canopée, photo). */
html { scroll-padding-top: calc(var(--cdc-header-h) + 16px); }
main#content:focus { outline: none; box-shadow: none; }

/* ==========================================================================
   Titres — une seule échelle pour tout le site.
   Spécificité volontairement supérieure aux défauts d'Elementor (0,2,0),
   inférieure aux réglages par élément (on retire ceux-ci des pages).
   ========================================================================== */
h1, h2, h3,
.elementor-widget-heading :is(h1, h2, h3).elementor-heading-title,
.elementor-widget-slides .elementor-slides .swiper-slide-inner .elementor-slide-heading {
	font-family: var(--cdc-font-titres);
	color: var(--cdc-ebene);
	text-wrap: balance;
}

h1,
.elementor-widget-heading h1.elementor-heading-title,
.elementor-widget-slides .elementor-slides .swiper-slide-inner .elementor-slide-heading {
	font-size: var(--cdc-fs-h1);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -0.03em;
}

h2,
.elementor-widget-heading h2.elementor-heading-title {
	font-size: var(--cdc-fs-h2);
	font-weight: 600;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

h3,
.elementor-widget-heading h3.elementor-heading-title {
	font-size: var(--cdc-fs-h3);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
}

/* Le titre du hero est posé sur photo */
.elementor-widget-slides .elementor-slides .swiper-slide-inner .elementor-slide-heading {
	color: var(--cdc-lin);
}

/* Titres de colonnes du footer : étiquettes, pas des titres éditoriaux */
.elementor-location-footer .elementor-widget-heading h4.elementor-heading-title,
.elementor-location-footer :is(.elementor-element-15431ecd, .elementor-element-5248877e, .elementor-element-68717616) .elementor-heading-title {
	font-family: var(--cdc-font-texte);
	font-size: var(--cdc-fs-label);
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--cdc-or);
}

/* ==========================================================================
   Boutons
   ========================================================================== */
.elementor-button,
.e-form-submit-button,
button[type="submit"] {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s var(--cdc-ease), transform 0.3s var(--cdc-ease);
}

.elementor-button:hover,
.e-form-submit-button:hover,
button[type="submit"]:hover {
	background-color: var(--cdc-terracotta-fonce);
}

.elementor-widget-stepbookingbutton .amelia-step-booking-button-trigger a.elementor-button,
.elementor-widget-stepbookingbutton .amelia-step-booking-button-trigger a.elementor-button:hover {
	color: #fff; /* le bouton Amelia n'a pas de href : sinon il hérite du gris */
}

.elementor-button:active {
	transform: translateY(1px);
}

/* ==========================================================================
   Navigation
   ========================================================================== */
.elementor-nav-menu--main .elementor-item {
	min-height: 44px;
	display: flex;
	align-items: center;
}

/* ==========================================================================
   Pastilles de métadonnées des cartes (durée, groupe, niveau, accord)
   Icônes au trait 1.5, tracées en SVG, teintées par currentColor.
   ========================================================================== */
.cdc-meta p {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	font-size: var(--cdc-fs-label);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.cdc-meta p::before {
	content: "";
	flex: none;
	width: 1.1em;
	height: 1.1em;
	background-color: currentColor;
	-webkit-mask: var(--cdc-icon) center / contain no-repeat;
	mask: var(--cdc-icon) center / contain no-repeat;
}

.cdc-meta--duree  { --cdc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.cdc-meta--groupe { --cdc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20c0-3.6 2.9-6 6.5-6s6.5 2.4 6.5 6'/%3E%3Cpath d='M16 4.6a3.5 3.5 0 0 1 0 6.8M18 14.3c2.1.7 3.5 2.8 3.5 5.7'/%3E%3C/svg%3E"); }
.cdc-meta--niveau { --cdc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round'%3E%3Cpath d='M5 20v-5M12 20V10M19 20V4'/%3E%3C/svg%3E"); }
.cdc-meta--accord { --cdc-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3h8l-.5 6a3.5 3.5 0 0 1-7 0z'/%3E%3Cpath d='M12 12.5V20M8.5 20.5h7'/%3E%3C/svg%3E"); }

/* Badge prix : sur une ligne, largeur selon le contenu */
.elementor .elementor-element.elementor-widget-text-editor:has(.unite-prix) {
	width: auto;
	max-width: none;
	white-space: nowrap;
}

/* Prix : chiffres alignés */
.unite-prix,
.elementor-widget-text-editor:has(.unite-prix) {
	font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   Accessibilité du mouvement
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.elementor-button,
	.e-form-submit-button {
		transition: none;
	}
}

/* ==========================================================================
   Mise en page — rythme vertical et grille horizontale
   Rôles par classe (pour les nouvelles pages) :
     .cdc-section  section standard
     .cdc-intro    titre de section : collé à la section qui le suit
     .cdc-step     étape d'une suite (actes) : demi-rythme
     .cdc-band     bande colorée pleine largeur
     .cdc-bleed    contenu pleine largeur (photos, 3D)
     .cdc-stack    rangée à empiler sur mobile
     .cdc-wrap     simple enveloppe, sans marge propre
   Les pages existantes sont rattachées à ces rôles par l'ID de leurs éléments.
   ========================================================================== */
@media (max-width: 767px) {
	:root {
		--cdc-gutter: 20px;
	}
}

/* Le header est fixe : la première section de chaque page démarre sous lui */
.elementor[data-elementor-type="wp-page"] > .elementor-element:first-child {
	margin-top: var(--cdc-header-h);
}

/* Header et footer sur la même grille que le contenu */
.elementor .elementor-element-64e0c638,
.elementor .elementor-element-704cdf78,
.elementor .elementor-element-3fc68fd5 {
	padding-inline: var(--cdc-inline);
}

.elementor :is(.cdc-section, .cdc-intro, .cdc-step, .cdc-band,
	/* Accueil */ .elementor-element-99c2bb0, .elementor-element-72ee826, .elementor-element-a765d68, .elementor-element-5a17968, .elementor-element-3736741, .elementor-element-7eb13f8) {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-block: var(--cdc-space-section);
	padding-inline: var(--cdc-inline);
}

/* Les cartes posent sur le fond lin, pas sur un aplat blanc pleine largeur */
.elementor :is(.elementor-element-5a17968) {
	background: transparent;
}

/* Titre de section → son contenu */
.elementor :is(.cdc-intro, .elementor-element-99c2bb0, .elementor-element-a765d68, .elementor-element-3736741) {
	padding-bottom: var(--cdc-space-intro);
}

.elementor :is(.cdc-intro, .elementor-element-99c2bb0, .elementor-element-a765d68, .elementor-element-3736741) + .elementor-element {
	padding-top: 0;
}

/* Actes de la Création : demi-rythme entre étapes */
.elementor :is(.cdc-step) {
	padding-block: calc(var(--cdc-space-section) / 2);
}

/* Bandes colorées */
.elementor :is(.cdc-band, .elementor-element-7eb13f8) {
	padding-block: var(--cdc-space-band);
}

/* Pleine largeur : pas de marge latérale, rythme conservé en bas */
.elementor :is(.cdc-bleed, .elementor-element-3794123) {
	padding: 0 0 var(--cdc-space-section);
}

.elementor .elementor-element-bc051bb {
	padding: 0;
}

/* Enveloppes sans marge propre */
.elementor :is(.cdc-wrap) {
	padding: 0;
}

/* Pages éditoriales : le header est déjà compensé */
.elementor .cdc-page {
	padding-top: clamp(3rem, 1.5rem + 4vw, 6rem);
	padding-bottom: var(--cdc-space-section);
}

/* Rangées empilées sur mobile */
@media (max-width: 767px) {
	.elementor :is(.cdc-stack,
		.elementor-element-99c2bb0, .elementor-element-72ee826) {
		flex-direction: column;
		flex-wrap: nowrap;
	}

	/* Les enfants de ces rangées prennent toute la largeur */
	.elementor :is(.cdc-stack,
		.elementor-element-99c2bb0, .elementor-element-72ee826) > .elementor-element {
		width: 100%;
		max-width: 100%;
	}
}

/* Hero : sur mobile, le texte occupe toute la largeur utile */
@media (max-width: 767px) {
	.elementor-widget-slides .elementor-slides .swiper-slide-inner {
		padding-inline: var(--cdc-gutter);
	}

	.elementor-widget-slides .elementor-slides .swiper-slide-contents {
		max-width: 100%;
	}
}

/* ==========================================================================
   Direction « Cacao + canopée » : sections sombres et bouton principal
     .cdc-dark     section sur fond cacao
     .cdc-canopee  section origine / producteurs (une par page)
     .cdc-cta      bouton principal cuivre (« Demander un devis »)
   ========================================================================== */
.elementor .cdc-dark    { background-color: var(--cdc-cacao); }
.elementor .cdc-canopee { background-color: var(--cdc-canopee); }

.elementor :is(.cdc-dark, .cdc-canopee) .elementor-widget-heading .elementor-heading-title {
	color: var(--cdc-papier);
}

.elementor .cdc-dark .elementor-widget-text-editor :is(p, li),
.elementor .cdc-dark .elementor-widget-text-editor {
	color: var(--cdc-sur-sombre);
}

.elementor .cdc-canopee .elementor-widget-text-editor :is(p, li),
.elementor .cdc-canopee .elementor-widget-text-editor {
	color: var(--cdc-canopee-texte);
}

.elementor .cdc-cta .elementor-button {
	background-color: var(--cdc-cuivre);
	color: var(--cdc-cacao);
	min-height: 52px;
	padding-inline: 28px;
}

.elementor .cdc-cta .elementor-button:hover {
	background-color: var(--cdc-cuivre-clair);
}

/* Bouton secondaire sur fond sombre : contour fin */
.elementor :is(.cdc-dark, .cdc-canopee) .cdc-ghost .elementor-button {
	background-color: transparent;
	color: var(--cdc-papier);
	box-shadow: inset 0 0 0 1px #6B5E55;
}

.elementor :is(.cdc-dark, .cdc-canopee) .cdc-ghost .elementor-button:hover {
	background-color: rgba(242, 240, 235, 0.08);
}

/* Chiffres repères (cuivre, sur fond sombre uniquement) */
.elementor :is(.cdc-dark, .cdc-canopee) .cdc-chiffre .elementor-heading-title {
	color: var(--cdc-cuivre);
	font-variant-numeric: tabular-nums;
}

/* ==========================================================================
   Uniformisation après bascule (audit du 2026-10-06)
   ========================================================================== */
/* Un seul arrondi de bouton, header compris */
.elementor-location-header .elementor-button {
	border-radius: var(--cdc-radius);
}

/* Boutons d'envoi des formulaires Elementor 4 : cacao sur fond clair… */
.elementor .e-form-submit-button-base {
	background-color: var(--cdc-cacao);
	color: var(--cdc-papier);
	border-radius: var(--cdc-radius);
	font-family: var(--cdc-font-texte);
}

/* …et cuivre dans le footer cacao */
.elementor-location-footer .e-form-submit-button-base {
	background-color: var(--cdc-cuivre);
	color: var(--cdc-cacao);
}

/* Liens-boutons Elementor 4 (contour) : cacao, plus le rose par défaut du thème parent */
.elementor .e-button-base.e-default-a {
	color: var(--cdc-cacao);
	border-color: currentColor;
	border-radius: var(--cdc-radius);
}

/* Copyright : texte courant, pas du noir pur */
.elementor-location-footer .elementor-element-1294221 .elementor-heading-title {
	color: var(--cdc-texte);
}

/* Accueil : « L'Univers des Ateliers » en cacao comme tous les titres */
.elementor-10 .elementor-element-066ab3b .elementor-heading-title {
	color: var(--cdc-cacao);
}

/* Footer : liens avec une zone cliquable de 44 px */
.elementor-location-footer .elementor-icon-list-item > a {
	min-height: 44px;
	display: flex;
	align-items: center;
}

.elementor-location-footer .elementor-icon-list-items {
	row-gap: 0;
}


/* ==========================================================================
   Lot 4 (2026-10-09) : le fil du voyage
   Vert = le voyage (origine, documents de voyage), cacao = la décision.
   ========================================================================== */
/* Tampon d'origine, commun aux billets */
.cdc-tampon { width: 58px; height: 58px; flex: none; border-radius: 50%; border: 1.5px solid var(--cdc-encre); color: var(--cdc-encre); display: grid; place-content: center; text-align: center; transform: rotate(-10deg); line-height: 1.1; }
.cdc-tampon span { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.cdc-tampon b { font-size: 12.5px; font-weight: 700; }
.cdc-billet__origine { display: flex; align-items: center; gap: 12px; margin-top: 14px; font-size: 13.5px; font-weight: 600; color: var(--cdc-encre); }

/* Suite du voyage, à la sortie d'une section verte */
.cdc-suite { margin: 28px 0 0 !important; font-size: 15.5px; font-weight: 600; }
.cdc-suite a { color: var(--cdc-cuivre); text-decoration: underline; text-underline-offset: .25em; }
.cdc-suite a:hover { color: var(--cdc-cuivre-clair); }
.cdc-suite--hist { padding-inline: var(--cdc-inline); padding-bottom: clamp(48px, 6vw, 80px); margin-top: 0 !important; }

/* Nos ateliers : extrait du passeport dans la section Colombie */
.cdc-pass-mini { margin: 26px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 22px; max-width: 460px; background-color: var(--cdc-papier-ancien); background-image: repeating-linear-gradient(0deg, transparent 0 23px, rgba(21,16,14,.035) 23px 24px); color: var(--cdc-cacao); border-radius: var(--cdc-radius); padding: 14px 22px; box-shadow: 0 30px 50px -34px #000; }
.cdc-pass-mini div { padding: 9px 0; border-bottom: 1px dashed rgba(21,16,14,.25); }
.cdc-pass-mini div:nth-last-child(-n+2) { border-bottom: 0; }
.cdc-pass-mini dt { font-size: var(--cdc-fs-micro); letter-spacing: .1em; text-transform: uppercase; font-weight: 600; color: var(--cdc-texte); }
.cdc-pass-mini dd { margin: 2px 0 0; font-weight: 500; color: var(--cdc-cacao); }

/* Offrir : le bon cadeau rejoint les documents de voyage (hero vert), cartes en billets d'escale */
.cdc-off-choix article { background-color: var(--cdc-papier-ancien); background-image: repeating-linear-gradient(0deg, transparent 0 23px, rgba(21,16,14,.035) 23px 24px); border-color: rgba(21,16,14,.12); }
.cdc-off-escale { font-size: var(--cdc-fs-micro); letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: var(--cdc-encre); }
.cdc-off-choix .cdc-billet__origine { margin-top: 4px; }
.cdc-off-choix .prix { margin-top: 0 !important; }
.cdc-off-choix .cdc-billet__origine { margin-top: auto; padding-top: 8px; }

/* Histoire, mobile et tablette : le panneau collant de la carte tient dans l'écran
   (sur petit écran, la fiche de l'origine débordait sur « Les six visages ») */
@media (max-width: 860px) {
	.cdc-hist-sticky { overflow: hidden; }
	.cdc-hist-carte-boite { height: 30vh; }
	.cdc-hist-fiche { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 18px; }
	.cdc-hist-fiche div { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 6px 0; }
}

/* Histoire, frise « Du fruit au chocolat » : la ligne cuivre passe derrière les pastilles pendant l'animation
   (l'élément de remplissage est un <li> et héritait du z-index des étapes) */
.cdc-hist-chemin li.cdc-hist-rempli { z-index: 0; }

/* ==========================================================================
   Boutique — en-tête, pied de page, accueil (maquette « parcours voyage », 2026-10-19)
   https://claude.ai/artifact/SFKe4qr3t3CQZwCVMcKLrP · rendu : inc/gabarits.php
   ========================================================================== */
.cdc-w { max-width: var(--cdc-max); margin: 0 auto; padding-inline: var(--cdc-gutter); box-sizing: border-box; }
.cdc-lab { margin: 0; font-size: var(--cdc-fs-label); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cdc-encre); }
.cdc-cu { color: var(--cdc-cuivre); }
.cdc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 12px 22px; border-radius: var(--cdc-radius); font-weight: 600; font-size: 16px; text-decoration: none; border: 1px solid transparent; transition: background-color .2s, color .2s, border-color .2s; }
.cdc-btn--cuivre { background: var(--cdc-cuivre); color: var(--cdc-cacao); }
.cdc-btn--cuivre:hover { background: var(--cdc-cuivre-clair); color: var(--cdc-cacao); }
.cdc-btn--cacao { background: var(--cdc-cacao); color: var(--cdc-papier); }
.cdc-btn--cacao:hover { background: var(--cdc-torrefie); color: var(--cdc-papier); }
.cdc-btn--contour { border-color: currentColor; color: inherit; }
.cdc-tampon-r { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; width: 116px; height: 116px; border-radius: 50%; border: 2px solid currentColor; box-shadow: inset 0 0 0 4px transparent, inset 0 0 0 5px currentColor; transform: rotate(-9deg); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.35; padding: 10px; flex: none; box-sizing: border-box; }
.cdc-tampon-r b { font-size: 13px; letter-spacing: .02em; }
.cdc-tampon-r--petit { width: 74px; height: 74px; font-size: 8px; padding: 6px; }
.cdc-tampon-r--petit b { font-size: 9.5px; letter-spacing: 0; }
.cdc-ph { display: flex; flex-direction: column; gap: 12px; align-items: center; justify-content: center; text-align: center; padding: 16px; box-sizing: border-box; background: #E6E1D9; color: #6B605A; font-size: 14px; border-radius: var(--cdc-radius); }
.cdc-ph--sombre { background: var(--cdc-torrefie); color: #A39689; }
.cdc-ph--vert { background: #3A4A35; color: #C5CCBE; }
.cdc-cabosse { display: block; color: currentColor; }
.cdc-billet { position: relative; background: #fff; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); text-decoration: none; color: var(--cdc-texte); transition: transform .35s var(--cdc-ease), box-shadow .35s var(--cdc-ease); }
a.cdc-billet:hover { transform: translateY(-3px); box-shadow: 0 26px 48px -34px rgba(21,16,14,.55); color: var(--cdc-texte); }
.cdc-billet--sombre { background: var(--cdc-cacao); border-color: var(--cdc-cacao); color: var(--cdc-sur-sombre); }
a.cdc-billet--sombre:hover { color: var(--cdc-sur-sombre); }

/* En-tête */
.cdc-ent { background: var(--cdc-papier); border-bottom: 1px solid var(--cdc-filet); position: relative; z-index: 20; }
.cdc-ent__in { display: flex; align-items: center; gap: 12px 32px; padding-block: 12px; min-height: 80px; }
.cdc-ent__logo { flex: none; line-height: 0; }
.cdc-ent__logo img { width: 116px; height: auto; }
.cdc-ent__nav { display: flex; flex-wrap: wrap; gap: 6px 26px; flex: 1 1 auto; font-weight: 500; }
.cdc-ent__nav a, .cdc-ent__atelier { color: var(--cdc-cacao); text-decoration: none; padding-block: 8px; border-bottom: 1.5px solid transparent; }
.cdc-ent__nav a:hover, .cdc-ent__nav a[aria-current], .cdc-ent__atelier:hover { border-color: var(--cdc-cuivre); color: var(--cdc-cacao); }
.cdc-ent__atelier { font-weight: 500; flex: none; }
.cdc-ent__panier { min-height: 44px; padding: 8px 16px; color: var(--cdc-cacao); flex: none; }
.cdc-ent__panier:hover { background: var(--cdc-cacao); color: var(--cdc-papier); }
.cdc-ent__menu { display: none; }
.cdc-ent__menu > summary { list-style: none; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); cursor: pointer; color: var(--cdc-cacao); }
.cdc-ent__menu > summary::-webkit-details-marker { display: none; }
.cdc-ent__tiroir { position: absolute; left: 0; right: 0; top: 100%; background: var(--cdc-papier); border-bottom: 1px solid var(--cdc-filet); box-shadow: 0 30px 40px -30px rgba(21,16,14,.4); }
.cdc-ent__tiroir nav { display: grid; padding-block: 8px 20px; }
.cdc-ent__tiroir a { display: block; padding: 12px 0; border-bottom: 1px solid var(--cdc-filet); color: var(--cdc-cacao); text-decoration: none; font-weight: 500; font-size: 17px; }
@media (max-width: 1024px) {
	.cdc-ent__nav, .cdc-ent__atelier { display: none; }
	.cdc-ent__menu { display: block; order: 3; }
	.cdc-ent__in { justify-content: space-between; }
	.cdc-ent__panier { margin-left: auto; }
}
@media (max-width: 420px) { .cdc-ent__panier .cdc-ent__mot { display: none; } }

/* Pied de page */
.cdc-pied { background: var(--cdc-cacao); color: #D8D3CB; }
.cdc-pied__in { padding-block: 72px 32px; display: flex; flex-direction: column; gap: 48px; }
.cdc-pied__cols { display: flex; flex-wrap: wrap; gap: 40px; }
.cdc-pied__marque { flex: 1 1 260px; display: flex; flex-direction: column; gap: 12px; }
.cdc-pied__marque img { width: 150px; height: auto; }
.cdc-pied__col { flex: 1 1 170px; display: flex; flex-direction: column; gap: 4px; }
.cdc-pied__col .cdc-lab { color: var(--cdc-papier); margin-bottom: 6px; }
.cdc-pied a { color: #D8D3CB; text-decoration: none; padding-block: 6px; }
.cdc-pied a:hover { color: var(--cdc-papier); text-decoration: underline; text-underline-offset: .25em; }
.cdc-pied__bas { margin: 0; font-size: 14px; border-top: 1px solid var(--cdc-torrefie); padding-top: 16px; display: flex; flex-wrap: wrap; gap: 0 14px; align-items: center; }

/* Accueil */
.cdc-acc { font-size: 17px; line-height: 1.6; }
.cdc-acc h1, .cdc-acc h2, .cdc-acc h3 { margin: 0; color: var(--cdc-cacao); font-weight: 600; text-wrap: balance; }
.cdc-acc .cdc-h1 { font-size: clamp(2.5rem, 1.6rem + 3.4vw, 4.25rem); line-height: 1.02; letter-spacing: -.03em; }
.cdc-acc .cdc-h2 { font-size: clamp(2rem, 1.5rem + 1.8vw, 3rem); line-height: 1.05; letter-spacing: -.02em; }
.cdc-acc p { margin: 0; }
.cdc-acc .cdc-sombre { background: var(--cdc-cacao); color: #D8D3CB; }
.cdc-acc .cdc-sombre :is(h1, h2, h3) { color: var(--cdc-papier); }
.cdc-acc .cdc-sombre .cdc-lab, .cdc-acc .cdc-vert .cdc-lab { color: var(--cdc-cuivre); }
.cdc-acc .cdc-vert { background: var(--cdc-canopee); color: var(--cdc-canopee-texte); }
.cdc-acc .cdc-vert :is(h2, h3) { color: var(--cdc-papier); }
.cdc-acc-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px; margin-bottom: 36px; }
.cdc-acc-tete .cdc-lab { margin-bottom: 12px; }
.cdc-acc-tete > a { font-weight: 600; color: var(--cdc-cacao); }

.cdc-acc-hero { position: relative; overflow: hidden; }
.cdc-acc-hero__in { padding-block: clamp(56px, 7vw, 88px) clamp(48px, 6vw, 72px); display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.cdc-acc-hero__txt { flex: 1 1 520px; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cdc-acc-hero__txt > p:not(.cdc-lab) { font-size: 19px; max-width: 50ch; }
.cdc-acc-hero__btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.cdc-acc-hero__btns .cdc-btn--contour { color: var(--cdc-papier); }
.cdc-acc-hero__btns .cdc-btn--contour:hover { background: var(--cdc-papier); color: var(--cdc-cacao); }
.cdc-acc-hero__vis { flex: 1 1 440px; position: relative; min-width: 0; }
.cdc-acc-hero__vis :is(.cdc-ph, .cdc-photo) { aspect-ratio: 4 / 3; }
.cdc-photo { display: block; width: 100%; height: auto; object-fit: cover; border-radius: var(--cdc-radius); }
.cdc-acc-hero__vis .cdc-tampon-r { position: absolute; left: -28px; bottom: -28px; color: var(--cdc-cuivre); background: var(--cdc-cacao); }
.cdc-route { list-style: none; margin: 0; padding: 0 0 72px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cdc-route li { position: relative; padding: 28px 16px 0 0; display: flex; flex-direction: column; }
.cdc-route li::before { content: ""; position: absolute; top: 6px; left: 0; right: 0; border-top: 2px solid var(--cdc-cuivre); transform-origin: left; }
.cdc-route li:nth-child(3)::before { border-top-style: dashed; border-top-color: #5A4D47; }
.cdc-route li:last-child::before { display: none; }
.cdc-route li::after { content: ""; position: absolute; top: 0; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--cdc-cuivre); }
.cdc-route li:last-child::after { background: none; border: 2px solid var(--cdc-cuivre); box-sizing: border-box; }
.cdc-route b { color: var(--cdc-papier); font-weight: 600; }
@media (max-width: 767px) {
	.cdc-route { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.cdc-route li { padding: 0 0 18px 32px; }
	.cdc-route li::before { top: 14px; bottom: -4px; left: 6px; right: auto; border-top: 0; border-left: 2px solid var(--cdc-cuivre); }
	.cdc-route li:nth-child(3)::before { border-left-style: dashed; border-left-color: #5A4D47; }
	.cdc-acc-hero__vis .cdc-tampon-r { left: auto; right: 12px; bottom: -24px; width: 96px; height: 96px; }
	.cdc-tampon-r b { font-size: 11px; }
}
/* La ligne du voyage se trace au défilement ; au repos (mouvement réduit, navigateur sans support) elle est entière */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		@media (min-width: 768px) {
			.cdc-route li::before { animation: cdc-trace linear both; animation-timeline: view(); animation-range: entry 20% cover 45%; }
		}
		.cdc-apparait { animation: cdc-apparait linear both; animation-timeline: view(); animation-range: entry 0% entry 40%; }
	}
}
@keyframes cdc-trace { from { transform: scaleX(0); } to { transform: none; } }
@keyframes cdc-apparait { from { transform: translateY(24px); } to { transform: none; } }

.cdc-portes { padding-block: clamp(64px, 7vw, 96px) 40px; }
.cdc-portes .cdc-h2 { max-width: 20ch; margin: 12px 0 40px; }
.cdc-portes__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; }
.cdc-porte { display: flex; overflow: hidden; }
.cdc-porte__txt { flex: 1; min-width: 0; padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 14px; }
.cdc-porte__titre { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--cdc-cacao); }
.cdc-porte__suite { margin-top: auto; font-weight: 600; color: var(--cdc-cacao); }
.cdc-porte__talon { width: 150px; flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; padding: 16px; background: var(--cdc-papier); border-left: 2px dashed var(--cdc-filet); }
.cdc-porte__code { font-size: 28px; font-weight: 700; color: var(--cdc-cacao); letter-spacing: -.02em; line-height: 1; }
.cdc-porte.cdc-billet--sombre .cdc-porte__titre, .cdc-porte.cdc-billet--sombre .cdc-porte__suite { color: var(--cdc-papier); }
.cdc-porte.cdc-billet--sombre .cdc-porte__talon { background: none; border-left-color: #3A2E29; color: var(--cdc-cuivre); }
.cdc-porte .cdc-tampon-r { width: 104px; height: 104px; }
@media (max-width: 520px) { .cdc-porte { flex-direction: column; } .cdc-porte__talon { width: auto; flex-direction: row; border-left: 0; border-top: 2px dashed var(--cdc-filet); } .cdc-porte.cdc-billet--sombre .cdc-porte__talon { border-top-color: #3A2E29; } }

.cdc-dest { padding-block: 72px clamp(80px, 9vw, 112px); }
.cdc-dest__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.cdc-dest__carte { display: flex; flex-direction: column; overflow: hidden; }
.cdc-dest__carte .cdc-ph { aspect-ratio: 1; border-radius: 0; }
.cdc-dest__carte img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.cdc-dest__bas { border-top: 2px dashed var(--cdc-filet); padding: 18px 20px; display: flex; flex-direction: column; gap: 4px; }
.cdc-dest__bas .cdc-lab { font-size: 11px; }
.cdc-dest__nom { font-size: 22px; font-weight: 600; color: var(--cdc-cacao); }
.cdc-dest__bas span:last-child { font-size: 15px; }
@media (max-width: 1024px) { .cdc-dest__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.cdc-coop__in { padding-block: clamp(80px, 9vw, 112px); display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.cdc-coop__vis { flex: 1 1 440px; position: relative; min-width: 0; }
.cdc-coop__vis :is(.cdc-ph, .cdc-photo) { aspect-ratio: 4 / 5; max-height: 640px; }
.cdc-coop__vis .cdc-tampon-r { position: absolute; right: -24px; top: 32px; color: var(--cdc-cuivre); background: var(--cdc-canopee); }
.cdc-coop__txt { flex: 1 1 480px; display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cdc-coop__txt > p:not(.cdc-lab) { max-width: 52ch; }
.cdc-coop__liste { list-style: none; margin: 8px 0 0; padding: 0; }
.cdc-coop__liste li { display: flex; gap: 20px; padding: 20px 0; border-top: 1px solid var(--cdc-canopee-filet); }
.cdc-coop__liste li:last-child { border-bottom: 1px solid var(--cdc-canopee-filet); }
.cdc-coop__liste .cdc-lab { min-width: 32px; }
.cdc-coop__liste b { display: block; color: var(--cdc-papier); }
.cdc-coop__txt > a { color: var(--cdc-papier); font-weight: 600; }
@media (max-width: 767px) { .cdc-coop__vis .cdc-tampon-r { right: 12px; top: auto; bottom: -24px; width: 96px; height: 96px; } }

.cdc-sel { background: #fff; }
.cdc-sel__in { padding-block: clamp(80px, 9vw, 112px); }
.cdc-sel__grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.cdc-prod { padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.cdc-prod__vis { position: relative; }
.cdc-prod__vis .cdc-ph, .cdc-prod__vis img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; border-radius: var(--cdc-radius); background: var(--cdc-papier); }
.cdc-prod__vis .cdc-tampon-r { position: absolute; right: 10px; top: 10px; color: var(--cdc-cacao); background: #fff; }
.cdc-prod .cdc-lab { font-size: 11px; }
.cdc-prod h3 { font-size: 20px; line-height: 1.25; }
.cdc-prod h3 a { color: inherit; text-decoration: none; }
.cdc-prod__info { font-size: 15px; }
.cdc-prod__bas { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: auto; }
.cdc-prod__prix { font-size: 20px; font-weight: 600; color: var(--cdc-cacao); font-variant-numeric: tabular-nums; }
.cdc-prod__bas .cdc-btn { min-height: 44px; padding: 10px 16px; font-size: 15px; }
@media (max-width: 1024px) { .cdc-sel__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
	.cdc-sel__grille { grid-template-columns: minmax(0, 1fr); }
	.cdc-dest__grille { gap: 12px; }
	.cdc-dest__bas { padding: 14px; }
	.cdc-dest__nom { font-size: 18px; }
	.cdc-prod__vis .cdc-ph, .cdc-prod__vis img { aspect-ratio: 4 / 3; }
}

.cdc-pont { padding-block: clamp(80px, 9vw, 112px); display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.cdc-pont__txt { flex: 1 1 360px; display: flex; flex-direction: column; gap: 16px; }
.cdc-pont__txt > p:not(.cdc-lab) { max-width: 44ch; }
.cdc-pont__grille { flex: 2 1 640px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; min-width: 0; }
.cdc-pont__carte { padding: 28px; display: flex; flex-direction: column; gap: 10px; }
.cdc-pont__titre { font-size: 22px; font-weight: 600; line-height: 1.2; color: var(--cdc-cacao); }
.cdc-billet--sombre .cdc-pont__titre, .cdc-billet--sombre .cdc-pont__suite { color: var(--cdc-papier); }
.cdc-pont__suite { margin-top: auto; padding-top: 12px; font-weight: 600; color: var(--cdc-cacao); }
@media (max-width: 900px) { .cdc-pont__grille { grid-template-columns: minmax(0, 1fr); } }

.cdc-reass { border-top: 1px solid var(--cdc-filet); }
.cdc-reass ul { margin: 0 auto; padding-block: 40px; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.cdc-reass li { display: flex; gap: 12px; align-items: center; }
.cdc-reass svg { flex: none; color: var(--cdc-cacao); }
@media (max-width: 1024px) { .cdc-reass ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .cdc-reass ul { grid-template-columns: minmax(0, 1fr); } }
.cdc-acompleter { font-style: italic; color: var(--cdc-encre); }
.cdc-sombre .cdc-acompleter, .cdc-vert .cdc-acompleter { color: var(--cdc-cuivre-clair); }


/* Catalogue (écran 2 de la maquette) : page Boutique et catégories */
.cdc-ariane { padding-block: 20px; }
.cdc-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 15px; }
.cdc-ariane a { color: var(--cdc-cacao); }
.cdc-ariane__trait { width: 40px; border-top: 2px solid var(--cdc-cacao); }
.cdc-ariane__trait--suite { border-top-style: dashed; border-top-color: #B8B0A6; }
.cdc-ariane__ici { font-weight: 600; color: var(--cdc-cacao); display: inline-flex; align-items: center; gap: 8px; }
.cdc-ariane__ici::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--cdc-cacao); }
.cdc-cat__tete { padding-block: clamp(48px, 6vw, 72px); display: flex; flex-wrap: wrap; gap: 48px; align-items: center; justify-content: space-between; }
.cdc-cat__titre { flex: 1 1 560px; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.cdc-cat__titre > p:not(.cdc-lab) { font-size: 19px; max-width: 54ch; }
.cdc-acc .cdc-cat__titre .cdc-h1 { font-size: clamp(2.375rem, 1.6rem + 2.6vw, 3.75rem); }
.cdc-cat__depart { flex: 0 1 380px; display: flex; overflow: hidden; background: var(--cdc-torrefie); border-color: #3A2E29; color: #D8D3CB; }
.cdc-cat__depart-txt { flex: 1; padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.cdc-cat__depart-txt .cdc-lab { font-size: 11px; }
.cdc-cat__lieu { color: var(--cdc-papier); font-size: 22px; font-weight: 600; }
.cdc-cat__depart-talon { width: 110px; flex: none; display: flex; align-items: center; justify-content: center; border-left: 2px dashed #4A3C35; color: var(--cdc-cuivre); }
.cdc-cat__outils { padding-block: 40px 8px; display: flex; flex-wrap: wrap; gap: 16px 32px; align-items: center; justify-content: space-between; }
.cdc-cat__puces { display: flex; flex-wrap: wrap; gap: 10px; }
.cdc-puce { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; border: 1px solid var(--cdc-filet); border-radius: 999px; font-size: 15px; background: #fff; color: var(--cdc-cacao); text-decoration: none; box-sizing: border-box; }
.cdc-puce:hover { border-color: var(--cdc-cacao); color: var(--cdc-cacao); }
.cdc-puce.is-on { background: var(--cdc-cacao); color: var(--cdc-papier); border-color: var(--cdc-cacao); }
.cdc-cat__tri { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; font-size: 15px; }
.cdc-cat__tri .woocommerce-ordering { margin: 0; }
.cdc-cat__tri select.orderby { font: inherit; min-height: 44px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); padding: 8px 12px; background: #fff; color: var(--cdc-cacao); }
.cdc-cat__bloc { padding-block: 32px 8px; }
.cdc-carnet { display: flex; flex-wrap: wrap; overflow: hidden; }
.cdc-carnet > :is(.cdc-photo, .cdc-ph) { flex: 1 1 380px; min-height: 280px; max-height: 420px; border-radius: 0; aspect-ratio: auto; }
.cdc-carnet__txt { flex: 1.4 1 480px; padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; gap: 16px; justify-content: center; min-width: 0; }
.cdc-acc .cdc-carnet__txt .cdc-h2 { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); }
.cdc-carnet__txt > p:not(.cdc-lab) { max-width: 56ch; }
.cdc-carnet__txt > a { font-weight: 600; color: var(--cdc-cacao); }
.cdc-cat__note { margin-top: 16px; font-size: 15px; }
.cdc-cat__suite { padding-block: 72px clamp(80px, 9vw, 112px); }
.cdc-cat__suite > .cdc-lab { margin-bottom: 20px; }
.cdc-cat__suite-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cdc-cat__suite-carte { padding: 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.cdc-cat__suite-carte .cdc-lab { display: block; font-size: 11px; }
.cdc-cat__suite-nom { font-size: 22px; font-weight: 600; color: var(--cdc-cacao); }
.cdc-billet--sombre .cdc-cat__suite-nom { color: var(--cdc-papier); }
.cdc-cat__fleche { font-size: 24px; color: var(--cdc-cacao); }
.cdc-billet--sombre .cdc-cat__fleche { color: var(--cdc-cuivre); }
.cdc-cat .woocommerce-pagination ul { display: flex; gap: 8px; list-style: none; padding: 0; margin: 24px 0 0; border: 0; }
@media (max-width: 900px) { .cdc-cat__suite-grille { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 560px) {
	.cdc-cat__depart-talon { width: 72px; }
	.cdc-carnet > :is(.cdc-photo, .cdc-ph) { flex-basis: 100%; min-height: 0; aspect-ratio: 16 / 10; }
}

/* Fiche produit (écran 3 de la maquette) */
.cdc-fiche__haut { padding-block: 24px clamp(64px, 8vw, 96px); display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.cdc-fiche__galerie { flex: 1.1 1 520px; display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cdc-fiche__principale { position: relative; }
.cdc-fiche__principale :is(.cdc-ph, .cdc-photo) { aspect-ratio: 1; }
.cdc-fiche__tampon { position: absolute; right: 24px; top: 24px; color: var(--cdc-cacao); background: var(--cdc-papier); width: 128px; height: 128px; }
.cdc-fiche__vignettes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cdc-fiche__vignettes > * { aspect-ratio: 1; border-radius: var(--cdc-radius); overflow: hidden; }
.cdc-fiche__vignettes img { width: 100%; height: 100%; object-fit: cover; }
.cdc-fiche__vignettes > div:first-child, .cdc-fiche__vignettes a[aria-current] { outline: 2px solid var(--cdc-cacao); outline-offset: -2px; }
.cdc-fiche__vignettes a { display: block; }
.cdc-fiche__infos { flex: 1 1 440px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.cdc-acc .cdc-fiche__infos .cdc-h1 { font-size: clamp(2.25rem, 1.7rem + 1.8vw, 3.25rem); }
.cdc-fiche__meta { font-size: 19px; }
.cdc-fiche__prix { font-size: 32px; font-weight: 600; color: var(--cdc-cacao); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.cdc-fiche__desc p { max-width: 52ch; }
.cdc-fiche__achat form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: stretch; margin: 0; }
.cdc-fiche__achat .quantity { display: inline-flex; }
.cdc-fiche__achat .quantity .qty { width: 88px; min-height: 52px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; font: inherit; font-weight: 600; text-align: center; color: var(--cdc-cacao); }
.cdc-fiche__achat .single_add_to_cart_button.button { flex: 1 1 220px; min-height: 52px; border: 0; border-radius: var(--cdc-radius); background: var(--cdc-cacao); color: var(--cdc-papier); font: inherit; font-weight: 600; cursor: pointer; padding: 12px 22px; }
.cdc-fiche__achat .single_add_to_cart_button.button:hover { background: var(--cdc-torrefie); color: var(--cdc-papier); }
/* WooCommerce colore .button.alt en violet : on reprend la main */
.woocommerce .cdc-fiche__achat .single_add_to_cart_button.button.alt { background: var(--cdc-cacao); color: var(--cdc-papier); }
.woocommerce .cdc-fiche__achat .single_add_to_cart_button.button.alt:hover { background: var(--cdc-torrefie); }
.cdc-fiche__achat .stock { margin: 0 0 8px; font-size: 15px; }
.cdc-fiche__plus { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 15px; }
.cdc-fiche__plus li { display: flex; gap: 10px; align-items: center; }
.cdc-fiche__plus svg { flex: none; color: var(--cdc-cacao); }
.cdc-fiche__billet { display: flex; overflow: hidden; margin-top: 8px; }
.cdc-fiche__billet dl { flex: 1; margin: 0; padding: 24px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
.cdc-fiche__billet dt { font-size: 13px; }
.cdc-fiche__billet dd { margin: 0; font-weight: 700; color: var(--cdc-cacao); }
.cdc-fiche__billet-titre { grid-column: 1 / -1; }
.cdc-fiche__billet-titre .cdc-lab { font-size: 11px; }
.cdc-fiche__billet-talon { width: 72px; flex: none; display: flex; align-items: center; justify-content: center; background: var(--cdc-papier); border-left: 2px dashed var(--cdc-filet); writing-mode: vertical-rl; transform: rotate(180deg); font-size: 12px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--cdc-cacao); }
.cdc-fiche__pli { border-top: 1px solid var(--cdc-filet); padding: 16px 0; }
.cdc-fiche__pli + .cdc-fiche__pli { border-bottom: 1px solid var(--cdc-filet); margin-top: -22px; }
.cdc-fiche__pli summary { font-weight: 600; color: var(--cdc-cacao); cursor: pointer; min-height: 28px; }
.cdc-fiche__pli p { margin-top: 12px; }
.cdc-fiche__voyage { padding-block: clamp(72px, 8vw, 104px); }
.cdc-fiche__voyage .cdc-h2 { max-width: 22ch; margin: 12px 0 56px; }
.cdc-fiche__etapes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.cdc-fiche__etapes li { position: relative; padding-top: 36px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cdc-fiche__etapes li::before { content: ""; position: absolute; top: 8px; left: 0; right: -28px; border-top: 2px solid var(--cdc-cuivre); }
.cdc-fiche__etapes li:nth-child(3)::before { border-top-style: dashed; border-top-color: #6B7A63; }
.cdc-fiche__etapes li:last-child::before { display: none; }
.cdc-fiche__etapes li::after { content: ""; position: absolute; top: 0; left: 0; width: 18px; height: 18px; border-radius: 50%; background: var(--cdc-cuivre); }
.cdc-fiche__etapes li:last-child::after { background: none; border: 2px solid var(--cdc-cuivre); box-sizing: border-box; }
.cdc-fiche__etapes :is(.cdc-ph, .cdc-photo) { aspect-ratio: 4 / 3; }
.cdc-fiche__etapes b { color: var(--cdc-papier); }
.cdc-fiche__pont { padding-block: clamp(64px, 8vw, 96px) 48px; }
.cdc-fiche__pont-carte { display: flex; flex-wrap: wrap; overflow: hidden; }
.cdc-fiche__pont-txt { flex: 1 1 520px; padding: clamp(28px, 4vw, 48px); display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.cdc-acc .cdc-fiche__pont-txt .cdc-h2 { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); color: var(--cdc-papier); }
.cdc-fiche__pont-talon { flex: 0 1 260px; display: flex; align-items: center; justify-content: center; border-left: 2px dashed #3A2E29; padding: 32px; color: var(--cdc-cuivre); }
.cdc-fiche__pont-talon .cdc-tampon-r { width: 132px; height: 132px; }
.cdc-fiche__suite { padding-block: 48px clamp(80px, 9vw, 112px); }
.cdc-acc .cdc-fiche__suite .cdc-h2 { font-size: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem); }
@media (max-width: 900px) {
	.cdc-fiche__etapes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cdc-fiche__etapes li::before { display: none; }
	.cdc-fiche__pont-talon { border-left: 0; border-top: 2px dashed #3A2E29; flex-basis: 100%; }
}
@media (max-width: 560px) {
	.cdc-fiche__etapes { grid-template-columns: minmax(0, 1fr); }
	.cdc-fiche__tampon { width: 96px; height: 96px; right: 12px; top: 12px; }
	.cdc-fiche__billet dl { grid-template-columns: minmax(0, 1fr); }
}

/* Fiche : choix de la variante (format, poids, nombre de bonbons) */
.cdc-fiche__achat form.variations_form { display: block; }
.cdc-fiche__achat table.variations, .cdc-fiche__achat table.variations :is(tbody, tr, th, td) { display: block; border: 0; background: none; padding: 0; margin: 0; text-align: left; width: auto; }
.cdc-fiche__achat table.variations { margin-bottom: 16px; }
.cdc-fiche__achat table.variations label { display: block; margin-bottom: 8px; font-weight: 600; color: var(--cdc-cacao); }
.cdc-fiche__achat table.variations select { font: inherit; min-height: 52px; width: 100%; max-width: 360px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); padding: 10px 14px; background: #fff; color: var(--cdc-cacao); }
.cdc-fiche__achat .reset_variations { display: inline-block; margin-top: 8px; font-size: 14px; color: var(--cdc-texte); }
.cdc-fiche__achat .woocommerce-variation-price { margin-bottom: 12px; font-size: 22px; font-weight: 600; color: var(--cdc-cacao); }
.cdc-fiche__achat .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; }
.woocommerce .cdc-fiche__achat .single_add_to_cart_button.button.alt.disabled { background: var(--cdc-cacao); color: var(--cdc-papier); opacity: .45; cursor: not-allowed; }

/* Carte produit cliquable en entier : le lien du nom couvre la carte, le bouton reste au-dessus */
.cdc-prod { position: relative; }
.cdc-prod h3 a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.cdc-prod h3 a:focus-visible { outline: none; box-shadow: none; }
.cdc-prod:has(h3 a:focus-visible) { outline: 2px solid var(--cdc-cuivre); outline-offset: 2px; box-shadow: 0 0 0 4px var(--cdc-cacao); }
.cdc-prod:hover h3 a { text-decoration: underline; text-underline-offset: .2em; }
.cdc-prod__bas .cdc-btn { position: relative; z-index: 2; }
.cdc-prod .cdc-tampon-r { z-index: 0; }

/* Pages légales (CGV, confidentialité) */
.cdc-legal { max-width: 760px; font-size: 17px; line-height: 1.65; padding-bottom: clamp(64px, 8vw, 112px); }
.cdc-legal__maj { font-size: 14px; color: var(--cdc-encre); margin: 0 0 8px; }
.cdc-legal__chapeau { font-size: 19px; margin: 0 0 32px; }
.cdc-legal__sommaire { border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; padding: 20px 24px; margin-bottom: 40px; }
.cdc-legal__sommaire ol { margin: 0; padding-left: 1.4em; columns: 2 240px; column-gap: 32px; }
.cdc-legal__sommaire li { padding-block: 4px; break-inside: avoid; }
.cdc-legal__sommaire a { color: var(--cdc-cacao); }
.cdc-legal__art { padding-block: 24px; border-top: 1px solid var(--cdc-filet); scroll-margin-top: 24px; }
.cdc-legal__art h2 { display: flex; gap: 14px; align-items: baseline; margin: 0 0 12px; font-size: clamp(1.375rem, 1.3rem + .3vw, 1.625rem); color: var(--cdc-cacao); }
.cdc-legal__art h2 span { font-size: var(--cdc-fs-label); font-weight: 600; letter-spacing: .14em; color: var(--cdc-encre); }
.cdc-legal__art p { margin: 0 0 12px; }
.cdc-legal__question { margin-top: 32px; padding: 24px; border-radius: var(--cdc-radius); background: var(--cdc-cacao); color: var(--cdc-sur-sombre); }
.cdc-legal__question p { margin: 0; }
.cdc-legal__question b { color: var(--cdc-papier); }

/* Pages WordPress simples (CGV, confidentialité) : le titre respire sous l’en-tête */
.site-main > .page-header { padding-top: clamp(40px, 5vw, 64px); }

/* Message d'été (expéditions du lundi au mercredi) */
.cdc-ete { display: flex; gap: 10px; align-items: flex-start; margin: 8px 0 16px; padding: 12px 16px; border-radius: var(--cdc-radius); background: var(--cdc-papier-ancien); color: var(--cdc-cacao); font-size: 15px; border: 1px solid rgba(138,90,46,.25); }
.cdc-ete svg { flex: none; color: var(--cdc-encre); margin-top: 2px; }

/* Écran 4 : étapes de commande */
.cdc-etapes { list-style: none; margin: 0; padding: 48px 0 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cdc-etapes li { position: relative; padding: 30px 12px 0 0; display: flex; flex-direction: column; color: var(--cdc-texte); }
.cdc-etapes li::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; border-top: 2px dashed #B8B0A6; }
.cdc-etapes li.is-fait::before, .cdc-etapes li.is-ici:has(+ .is-ici)::before { border-top: 2px solid var(--cdc-cacao); }
.cdc-etapes li:last-child::before { display: none; }
.cdc-etapes li::after { content: ""; position: absolute; top: 0; left: 0; width: 16px; height: 16px; border-radius: 50%; box-sizing: border-box; border: 2px solid #B8B0A6; background: var(--cdc-papier); }
.cdc-etapes li.is-ici::after { border-color: var(--cdc-cacao); }
.cdc-etapes li.is-fait::after { background: var(--cdc-cacao); border-color: var(--cdc-cacao); }
.cdc-etapes .cdc-lab { font-size: 11px; }
.cdc-etapes b { font-weight: 400; }
.cdc-etapes li:is(.is-ici, .is-fait) b { font-weight: 600; color: var(--cdc-cacao); }

/* Écran 4 : panier « Votre panier » */
.cdc-panier { padding-block: 40px clamp(64px, 8vw, 96px); display: flex; flex-wrap: wrap; gap: 48px; align-items: flex-start; }
.cdc-panier__liste { flex: 1.6 1 600px; display: flex; flex-direction: column; min-width: 0; margin: 0; }
.cdc-panier__titre { margin: 0 0 8px; font-size: clamp(2.25rem, 1.7rem + 1.8vw, 3.25rem); line-height: 1.05; letter-spacing: -.03em; color: var(--cdc-cacao); }
.cdc-panier__nb { margin: 0 0 32px; }
.cdc-panier__lignes { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--cdc-filet); }
.cdc-panier__ligne { display: flex; flex-wrap: wrap; gap: 16px 20px; align-items: center; padding: 20px 0; border-top: 1px solid var(--cdc-filet); }
.cdc-panier__vis { flex: none; width: 104px; }
.cdc-panier__vis img { width: 104px; height: 104px; object-fit: cover; border-radius: var(--cdc-radius); }
.cdc-panier__desc { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.cdc-panier__desc .cdc-lab { font-size: 11px; }
.cdc-panier__nom { color: var(--cdc-cacao); font-size: 18px; font-weight: 700; text-decoration: none; }
.cdc-panier__infos { font-size: 15px; }
.cdc-panier__retirer { font-size: 14px; color: var(--cdc-texte); align-self: flex-start; padding-block: 4px; }
.cdc-panier__qte .quantity .qty { width: 72px; min-height: 44px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; font: inherit; font-weight: 600; text-align: center; color: var(--cdc-cacao); }
.cdc-panier__prix { min-width: 88px; text-align: right; color: var(--cdc-cacao); font-variant-numeric: tabular-nums; }
.cdc-panier__maj { align-self: flex-start; margin-top: 16px; min-height: 44px; color: var(--cdc-cacao); background: none; cursor: pointer; }
.cdc-panier__encart { margin-top: 16px; padding: 20px 24px; display: flex; flex-wrap: wrap; gap: 16px; align-items: center; text-decoration: none; }
.cdc-panier__encart:first-of-type { margin-top: 24px; }
.cdc-panier__encart > span { flex: 1 1 280px; font-size: 15px; }
.cdc-panier__encart b { display: block; font-size: 16px; color: var(--cdc-cacao); }
.cdc-panier__encart svg { flex: none; color: var(--cdc-cacao); }
.cdc-billet--sombre.cdc-panier__encart b, .cdc-panier__encart-lien { color: var(--cdc-papier); }
.cdc-billet--sombre.cdc-panier__encart .cdc-cabosse { color: var(--cdc-cuivre); }
.cdc-panier__encart-lien { flex: none !important; font-weight: 600; }
.cdc-panier__recap { flex: 1 1 360px; position: sticky; top: 24px; min-width: 0; }
.cdc-embarq { overflow: hidden; }
.cdc-embarq__tete { background: var(--cdc-cacao); padding: 18px 24px; display: flex; justify-content: space-between; align-items: center; color: var(--cdc-cuivre); }
.cdc-embarq__tete .cdc-lab { font-size: 11px; }
.cdc-embarq__trajet { padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--cdc-cacao); }
.cdc-embarq__trajet span { display: block; font-size: 13px; color: var(--cdc-texte); }
.cdc-embarq__trajet b { font-size: 28px; letter-spacing: -.02em; line-height: 1.1; }
.cdc-embarq__fin { text-align: right; }
.cdc-embarq__trajet svg { flex: 1 1 40px; min-width: 40px; }
.cdc-embarq__total { border-top: 2px dashed var(--cdc-filet); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.cdc-embarq__ligne { display: flex; justify-content: space-between; gap: 12px; }
.cdc-embarq__ligne b { color: var(--cdc-cacao); }
.cdc-embarq__ligne--total { border-top: 1px solid var(--cdc-filet); padding-top: 14px; margin-top: 4px; align-items: baseline; }
.cdc-embarq__ligne--total b:last-child { font-size: 26px; }
.cdc-embarq__ligne--total small { font-size: 13px; font-weight: 400; display: block; }
.cdc-embarq__offerte { margin: 0; padding: 10px 12px; border-radius: var(--cdc-radius); background: var(--cdc-papier-ancien); font-size: 14px; color: var(--cdc-cacao); }
.cdc-embarq__code { font-size: 15px; }
.cdc-embarq__code summary { cursor: pointer; min-height: 28px; }
.cdc-embarq__code-form { display: flex; gap: 8px; margin-top: 10px; }
.cdc-embarq__code-form input { flex: 1; min-width: 0; font: inherit; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); padding: 10px 12px; }
.cdc-embarq__code-form .cdc-btn { min-height: 44px; padding: 8px 14px; background: none; color: var(--cdc-cacao); cursor: pointer; }
.cdc-embarq__go { width: 100%; margin-top: 8px; }
.cdc-embarq__note { font-size: 13px; text-align: center; }
.cdc-panier-vide { padding-block: clamp(64px, 8vw, 112px); display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; }
.cdc-panier-vide .cdc-tampon-r { color: var(--cdc-encre); }
@media (max-width: 560px) {
	.cdc-panier__vis, .cdc-panier__vis img { width: 80px; height: 80px; }
	.cdc-panier__prix { min-width: 0; margin-left: auto; }
	.cdc-etapes { padding-top: 32px; }
	.cdc-etapes b { font-size: 14px; }
}

/* Écran 4 : commande (bloc WooCommerce) */
.cdc-commande { padding-block: 24px clamp(64px, 8vw, 96px); }
.cdc-commande__titre { margin: 0 0 24px; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.75rem); letter-spacing: -.02em; color: var(--cdc-cacao); }
.cdc-commande .wc-block-components-button:not(.is-link) { border-radius: var(--cdc-radius); background: var(--cdc-cacao); color: var(--cdc-papier); }
.cdc-commande .wc-block-components-button:not(.is-link):hover { background: var(--cdc-torrefie); }
.cdc-commande .wc-block-components-checkout-step__title { color: var(--cdc-cacao); font-weight: 600; }
.cdc-commande a { color: var(--cdc-cacao); }

/* Écran 4 : confirmation « Bon voyage » */
.cdc-merci__in { padding-block: clamp(64px, 8vw, 96px) 56px; display: flex; flex-wrap: wrap; gap: 56px; align-items: center; }
.cdc-merci__txt { flex: 1 1 440px; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.cdc-acc .cdc-merci__txt .cdc-h2 { font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.5rem); }
.cdc-merci__txt > p:not(.cdc-lab) { font-size: 19px; max-width: 44ch; }
.cdc-merci__carte { flex: 1 1 480px; min-width: 0; background: var(--cdc-papier); color: var(--cdc-texte); border-radius: var(--cdc-radius); display: flex; overflow: hidden; }
.cdc-merci__carte dl { flex: 1; margin: 0; padding: 32px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.cdc-merci__carte dt { font-size: 13px; }
.cdc-merci__carte dd { margin: 0; font-weight: 700; color: var(--cdc-cacao); }
.cdc-merci__carte-tete { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; }
.cdc-merci__carte-tete .cdc-lab { font-size: 11px; color: var(--cdc-encre); }
.cdc-merci__talon { width: 140px; flex: none; display: flex; align-items: center; justify-content: center; border-left: 2px dashed var(--cdc-filet); color: var(--cdc-cacao); }
.cdc-merci__talon .cdc-tampon-r { width: 104px; height: 104px; box-shadow: inset 0 0 0 4px var(--cdc-papier), inset 0 0 0 5px currentColor; }
.cdc-merci__suite { border-top: 1px solid var(--cdc-torrefie); padding-block: 40px clamp(64px, 8vw, 96px); display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.cdc-merci__suite .cdc-lab { margin-bottom: 6px; }
.cdc-merci__suite span { color: var(--cdc-papier); font-size: 22px; font-weight: 600; }
.cdc-merci__suite .cdc-btn--contour { color: var(--cdc-papier); }
.cdc-merci__details { padding-block: 48px clamp(64px, 8vw, 96px); }
.cdc-merci__details .woocommerce-order-details__title, .cdc-merci__details .woocommerce-column__title { font-size: clamp(1.5rem, 1.3rem + .6vw, 1.875rem); color: var(--cdc-cacao); }
.cdc-merci-echec { padding-block: clamp(64px, 8vw, 96px); display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
@media (max-width: 560px) {
	.cdc-merci__carte { flex-direction: column; }
	.cdc-merci__talon { width: auto; border-left: 0; border-top: 2px dashed var(--cdc-filet); padding: 16px; }
	.cdc-merci__carte dl { padding: 24px; }
}

/* Écran 4 : retouches (soulignés du thème parent, bouton de mise à jour, confirmation) */
.page-content a.cdc-btn, .page-content a.cdc-billet, .page-content a.cdc-billet *, .page-content .cdc-panier__nom { text-decoration: none; }
.page-content a.cdc-panier__nom:hover { text-decoration: underline; text-underline-offset: .2em; }
.cdc-embarq__ligne small { display: block; font-size: 13px; color: var(--cdc-texte); }
.cdc-panier button.cdc-panier__maj { background: none; color: var(--cdc-cacao); border: 1px solid var(--cdc-cacao); border-radius: var(--cdc-radius); font: inherit; font-weight: 600; padding: 10px 18px; }
.cdc-panier button.cdc-panier__maj:hover { background: var(--cdc-cacao); color: var(--cdc-papier); }
.cdc-merci { border-radius: var(--cdc-radius); }
.cdc-merci__details a, .cdc-panier a.cdc-panier__retirer { color: var(--cdc-cacao); }

/* Habillage de la commande (2026-10-20) : un seul arrondi, bouton sans bordure, récapitulatif en billet */
.cdc-commande :is(.wc-block-components-text-input input, .wc-blocks-components-select__select, .wc-block-components-textarea, .wc-block-components-radio-control-accordion-option, .wc-block-components-radio-control__option, .wc-block-components-express-payment__content, .wc-block-components-notice-banner, .wc-block-components-form .wc-block-components-text-input input) { border-radius: var(--cdc-radius); }
.cdc-commande .wc-block-components-text-input input:focus, .cdc-commande .wc-blocks-components-select__select:focus { border-color: var(--cdc-cacao); box-shadow: 0 0 0 1px var(--cdc-cacao); outline: 0; }
.cdc-commande .wc-block-components-button:not(.is-link) { border: 0; min-height: 52px; font-weight: 600; }
.cdc-commande .wc-block-components-button:not(.is-link):focus-visible { outline: 2px solid var(--cdc-cacao); outline-offset: 3px; box-shadow: none; }
.cdc-commande .wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--cdc-cacao); border-color: var(--cdc-cacao); }
.cdc-commande .wc-block-components-checkbox .wc-block-components-checkbox__mark { fill: var(--cdc-papier); }
.cdc-commande .wp-block-woocommerce-checkout-order-summary-block { background: #fff; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); overflow: hidden; }
.cdc-commande .wc-block-components-checkout-order-summary__title { margin: 0 !important; padding: 18px 24px !important; background: var(--cdc-cacao); border: 0 !important; display: flex; align-items: center; gap: 12px; }
.cdc-commande .wc-block-components-checkout-order-summary__title .wc-block-components-checkout-order-summary__title-text { margin: 0 !important; font-size: 0 !important; line-height: 1 !important; flex: 1; }
.cdc-commande .wc-block-components-checkout-order-summary__title-text::before { content: "Votre billet"; font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cdc-cuivre); }
.cdc-commande .wc-block-components-checkout-order-summary__title :is(.wc-block-components-checkout-order-summary__title-price, .wc-block-components-checkout-order-summary__title-icon) { color: var(--cdc-papier) !important; fill: currentColor; font-weight: 700; }
.cdc-commande .wc-block-components-checkout-order-summary__title-icon svg { fill: currentColor; }
.cdc-commande .wp-block-woocommerce-checkout-order-summary-block > *:not(.wc-block-components-checkout-order-summary__title) { padding-inline: 8px; }
.cdc-commande .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 700; color: var(--cdc-cacao); }
.cdc-commande .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 26px; font-weight: 700; color: var(--cdc-cacao); }
.cdc-commande .wc-block-components-order-summary-item__quantity { background: var(--cdc-cacao) !important; color: var(--cdc-papier) !important; border-color: var(--cdc-cacao) !important; box-shadow: none !important; }
.cdc-commande .wc-block-components-order-summary-item__image img { border-radius: var(--cdc-radius); }

/* Confirmation : détails de la commande en cartes, comme le billet */
.cdc-merci__details { display: grid; gap: 40px; }
.cdc-merci__details :is(.woocommerce-order-details, .woocommerce-customer-details, .wc-block-order-confirmation-additional-fields-wrapper) { margin: 0; }
.cdc-merci__details :is(.woocommerce-order-details__title, .woocommerce-column__title, .wc-block-order-confirmation-additional-fields-wrapper h2) { margin: 0 0 16px; font-size: clamp(1.375rem, 1.25rem + .4vw, 1.625rem); letter-spacing: -.01em; color: var(--cdc-cacao); }
.cdc-merci__details table.shop_table { width: 100%; margin: 0; border: 1px solid var(--cdc-filet); border-collapse: separate; border-spacing: 0; border-radius: var(--cdc-radius); background: #fff; overflow: hidden; }
.cdc-merci__details table.shop_table :is(th, td) { padding: 14px 20px; border: 0; border-top: 1px solid var(--cdc-filet); background: none; text-align: left; font-size: 15px; }
.cdc-merci__details table.shop_table thead th { border-top: 0; background: var(--cdc-cacao); color: var(--cdc-cuivre); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.cdc-merci__details table.shop_table :is(tr td:last-child, tr th:last-child) { text-align: right; }
.cdc-merci__details table.shop_table tfoot th { font-weight: 400; color: var(--cdc-texte); }
.cdc-merci__details table.shop_table tfoot td { color: var(--cdc-cacao); font-weight: 600; }
.cdc-merci__details table.shop_table tfoot tr:nth-last-child(2) :is(th, td) { font-weight: 700; color: var(--cdc-cacao); }
.cdc-merci__details table.shop_table tfoot tr:nth-last-child(2) td { font-size: 20px; }
.cdc-merci__details table.shop_table tbody td { color: var(--cdc-cacao); }
.cdc-merci__details .woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin: 0; }
.cdc-merci__details .woocommerce-columns--addresses .woocommerce-column { width: auto; float: none; max-width: none; padding: 0; }
.cdc-merci__details .woocommerce-columns--addresses::before, .cdc-merci__details .woocommerce-columns--addresses::after { display: none; }
.cdc-merci__details address { margin: 0; padding: 20px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; font-style: normal; line-height: 1.6; color: var(--cdc-texte); }
.cdc-merci__details .wc-block-components-additional-fields-list { margin: 0; padding: 16px 20px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; font-size: 15px; }
.cdc-merci__details .wc-block-components-additional-fields-list dt { font-weight: 400; color: var(--cdc-texte); }
.cdc-merci__details .wc-block-components-additional-fields-list dd { margin: 0; font-weight: 600; color: var(--cdc-cacao); }

/* Pages légales au modèle de l'Atelier (2026-10-20) : bande cacao, sommaire collant à gauche */
.cdc-leg { padding-block: clamp(24px, 3vw, 40px) clamp(64px, 8vw, 112px); }
.cdc-leg :is(h1, h2) { margin: 0; text-wrap: balance; }
.cdc-leg p { margin: 0; }
.cdc-leg-tete { background: var(--cdc-cacao); border-radius: var(--cdc-radius); padding: clamp(48px, 7vw, 112px) clamp(24px, 5vw, 72px); }
.cdc-leg-tete h1 { color: var(--cdc-papier); font-size: var(--cdc-fs-h1); line-height: 1.05; letter-spacing: -.03em; }
.cdc-leg-maj { display: inline-flex; margin-bottom: 20px; font-size: 13px; font-weight: 600; color: var(--cdc-cuivre); border: 1px solid rgba(217,178,124,.4); border-radius: 999px; padding: 6px 14px; }
.cdc-leg-chapeau { margin-top: 20px !important; font-size: var(--cdc-fs-lead); line-height: 1.55; color: var(--cdc-sur-sombre); max-width: 36em; }
.cdc-leg-corps { margin-top: clamp(48px, 7vw, 96px); display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.cdc-leg-sommaire { position: sticky; top: calc(var(--cdc-header-h) + 24px); display: flex; flex-direction: column; gap: 2px; }
.cdc-leg-sommaire a { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: baseline; min-height: 44px; padding: 10px 14px; border-radius: var(--cdc-radius); color: var(--cdc-texte); text-decoration: none; font-size: 15px; font-weight: 500; line-height: 1.35; transition: background-color .2s, color .2s; }
.cdc-leg-sommaire a span { font-size: 12px; font-variant-numeric: tabular-nums; }
.cdc-leg-sommaire a:hover { color: var(--cdc-cacao); background: rgba(21,16,14,.05); }
.cdc-leg-sommaire a.on { background: var(--cdc-cacao); color: var(--cdc-papier); }
.cdc-leg-sommaire a.on span { color: var(--cdc-cuivre); }
.cdc-leg-art { padding: 28px 0; border-top: 1px solid var(--cdc-filet); scroll-margin-top: calc(var(--cdc-header-h) + 24px); }
.cdc-leg-art:first-child { border-top: 0; padding-top: 0; }
.cdc-leg-art h2 { font-size: var(--cdc-fs-h2-sm); letter-spacing: -.01em; color: var(--cdc-cacao); }
.cdc-leg-art p { margin-top: 12px !important; font-size: 16.5px; line-height: 1.7; max-width: 44em; }
.cdc-leg-art a { color: var(--cdc-cacao); font-weight: 600; }
.cdc-leg-ac { font-style: italic; color: #8A6A44; }
.cdc-leg-form { margin-top: 16px; padding: 4px 24px 20px; border: 1px dashed var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; }
.cdc-leg-question { margin-top: 32px; padding: 24px; border-radius: var(--cdc-radius); background: var(--cdc-cacao); color: var(--cdc-sur-sombre); }
.cdc-leg-question b { color: var(--cdc-papier); }
@media (max-width: 860px) {
	.cdc-leg-corps { grid-template-columns: minmax(0, 1fr); }
	.cdc-leg-sommaire { position: static; }
}

/* ==========================================================================
   Pages de service (2026-10-20, maquettes validées) : 404 A, contact C, suivi B, FAQ A, idées cadeaux C
   ========================================================================== */
.cdc-err-btns { display: flex; flex-wrap: wrap; gap: 12px; }
.cdc-err__titre { margin: 0; font-size: var(--cdc-fs-h2); line-height: 1.05; letter-spacing: -.03em; color: var(--cdc-cacao); text-wrap: balance; }
.cdc-err__txt { margin: 0; font-size: var(--cdc-fs-lead); max-width: 36em; }
.cdc-err--a { padding-block: clamp(56px, 7vw, 96px) 24px; display: flex; flex-direction: column; align-items: center; gap: 20px; text-align: center; }
.cdc-err--a .cdc-tampon-r { color: var(--cdc-encre); width: 132px; height: 132px; }
.cdc-err--a .cdc-err-btns { justify-content: center; }
.error404 .cdc-dest { padding-bottom: clamp(56px, 7vw, 96px); }

/* Formulaires et en-têtes communs */
.cdc-ct { padding-block: clamp(32px, 4vw, 56px) clamp(56px, 7vw, 96px); display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); }
.cdc-ct-tete { display: flex; flex-direction: column; gap: 12px; }
.cdc-ct-tete--centre { align-items: center; text-align: center; }
.cdc-ct-titre { margin: 0; font-size: var(--cdc-fs-h2); line-height: 1.05; letter-spacing: -.03em; color: var(--cdc-cacao); }
.cdc-ct-chapeau { margin: 0; font-size: var(--cdc-fs-lead); max-width: 36em; }
.cdc-ct-cols { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.cdc-ct-form { padding: clamp(20px, 3vw, 32px); background: #fff; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.cdc-ct-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.cdc-ct-champ { margin: 0; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cdc-ct label { font-size: 14px; font-weight: 600; color: var(--cdc-cacao); }
.cdc-ct label small { font-weight: 400; color: var(--cdc-texte); }
.cdc-ct :is(input, select, textarea) { width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; font: inherit; color: var(--cdc-cacao); box-sizing: border-box; }
.cdc-ct textarea { resize: vertical; line-height: 1.55; }
.cdc-ct :is(input, select, textarea):focus { outline: 0; border-color: var(--cdc-cacao); box-shadow: 0 0 0 1px var(--cdc-cacao); }
.cdc-ct-rgpd { margin: 0; font-size: 14px; }
.page-content :is(.cdc-ct-rgpd, .cdc-ct-atelier) a { color: var(--cdc-cacao); font-weight: 600; }
.cdc-ct-envoyer { align-self: flex-start; cursor: pointer; }
.cdc-ct-cote { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cdc-ct-aide { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.page-content .cdc-ct-aide a { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); background: #fff; text-decoration: none; color: var(--cdc-texte); font-size: 14px; }
.cdc-ct-aide a b { color: var(--cdc-cacao); font-size: 16px; }
.cdc-ct-aide a:hover { border-color: var(--cdc-cacao); }
.cdc-ct-atelier { margin: 0; font-size: 15px; }
.cdc-ct-atelier--centre { text-align: center; }
.cdc-ct-reass .cdc-ct-aide, .cdc-cad .cdc-ct-aide { flex-direction: row; flex-wrap: wrap; justify-content: center; }
.cdc-ct-reass .cdc-ct-aide li, .cdc-cad .cdc-ct-aide li { flex: 1 1 220px; }
.cdc-ct-reass .cdc-ct-aide li { max-width: 320px; }
.cdc-ct-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.cdc-ct-erreur { margin: 0; padding: 12px 16px; border-radius: var(--cdc-radius); background: #fff; border: 1px solid #B4190F; color: #B4190F; font-weight: 600; }
.cdc-ct-merci { max-width: 720px; width: 100%; margin-inline: auto; padding: clamp(24px, 3vw, 36px); display: flex; flex-wrap: wrap; gap: 24px; align-items: center; }
.cdc-ct-merci .cdc-tampon-r { color: var(--cdc-encre); }
.cdc-ct-merci div { flex: 1 1 260px; display: flex; flex-direction: column; gap: 6px; }
.cdc-ct-merci b { font-size: 22px; color: var(--cdc-cacao); }

/* Contact : la carte postale */
.cdc-ct-carte { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); background: #fff; border: 1px solid var(--cdc-filet); border-radius: var(--cdc-radius); max-width: 1000px; width: 100%; margin-inline: auto; box-shadow: 0 30px 60px -44px rgba(21,16,14,.5); }
.cdc-ct-carte__msg { padding: clamp(20px, 3vw, 36px); display: flex; flex-direction: column; gap: 10px; border-right: 2px dashed var(--cdc-filet); min-width: 0; }
.cdc-ct .cdc-ct-carte__msg textarea { flex: 1; min-height: 260px; border: 0; border-radius: 0; padding: 0; background: repeating-linear-gradient(to bottom, transparent 0 31px, var(--cdc-filet) 31px 32px); line-height: 32px; box-shadow: none; }
.cdc-ct .cdc-ct-carte__msg textarea:focus { box-shadow: none; outline: 2px solid var(--cdc-cacao); outline-offset: 6px; }
.cdc-ct-carte__adr { padding: clamp(20px, 3vw, 36px); display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.cdc-ct-carte__haut { display: flex; justify-content: space-between; align-items: flex-start; color: var(--cdc-encre); }
.cdc-ct-timbre { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 70px; border: 2px dotted var(--cdc-encre); border-radius: 4px; background: var(--cdc-papier-ancien); }
.cdc-ct-ligne { margin: 0; display: flex; flex-direction: column; gap: 4px; }
.cdc-ct .cdc-ct-ligne :is(input, select) { border: 0; border-bottom: 1px solid var(--cdc-filet); border-radius: 0; padding-inline: 0; min-height: 40px; }
.cdc-ct .cdc-ct-ligne :is(input, select):focus { box-shadow: 0 1px 0 0 var(--cdc-cacao); }

/* Suivi de commande : le comptoir, colonne « Où trouver mon numéro ? » collante */
.cdc-sv-pile { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.cdc-sv-cote { position: sticky; top: 32px; }
.cdc-sv-res { padding: clamp(20px, 3vw, 32px); display: flex; flex-direction: column; gap: 24px; }
.cdc-sv-res__tete { display: flex; flex-direction: column; gap: 4px; }
.cdc-sv-res__tete b { font-size: 22px; color: var(--cdc-cacao); }
.cdc-sv-route { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cdc-sv-route li { position: relative; padding: 28px 12px 0 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.cdc-sv-route li::before { content: ""; position: absolute; top: 7px; left: 0; right: 0; border-top: 2px dashed #B8B0A6; }
.cdc-sv-route li.is-fait::before { border-top: 2px solid var(--cdc-cacao); }
.cdc-sv-route li:last-child::before { display: none; }
.cdc-sv-route li::after { content: ""; position: absolute; top: 0; left: 0; width: 16px; height: 16px; border-radius: 50%; box-sizing: border-box; border: 2px solid #B8B0A6; background: #fff; }
.cdc-sv-route li.is-fait::after { background: var(--cdc-cacao); border-color: var(--cdc-cacao); }
.cdc-sv-route li.is-ici::after { border-color: var(--cdc-cacao); box-shadow: 0 0 0 4px rgba(21,16,14,.12); }
.cdc-sv-route b { color: var(--cdc-cacao); font-size: 15px; }
.cdc-sv-route li:not(.is-fait):not(.is-ici) b { color: var(--cdc-texte); font-weight: 500; }
.cdc-sv-mail { padding: 22px; display: flex; flex-direction: column; gap: 14px; }
.cdc-sv-mail dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.cdc-sv-mail dt { font-size: 13px; }
.cdc-sv-mail dd { margin: 0; font-weight: 700; color: var(--cdc-cacao); }
.cdc-sv-surligne { justify-self: start; padding: 2px 8px; border-radius: var(--cdc-radius); background: var(--cdc-cuivre); }

/* Questions fréquentes : accordéons dans le modèle des pages légales */
.cdc-faq-q { border-bottom: 1px solid var(--cdc-filet); }
.cdc-leg-art .cdc-faq-q:first-of-type { margin-top: 12px; }
.cdc-faq-q summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 52px; padding-block: 12px; cursor: pointer; list-style: none; font-weight: 600; font-size: 17px; color: var(--cdc-cacao); }
.cdc-faq-q summary::-webkit-details-marker { display: none; }
.cdc-faq-q summary::after { content: "+"; flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--cdc-filet); border-radius: 50%; font-weight: 400; }
.cdc-faq-q[open] summary::after { content: "–"; background: var(--cdc-cacao); color: var(--cdc-papier); border-color: var(--cdc-cacao); }
.cdc-faq-q summary:focus-visible { outline: 2px solid var(--cdc-cacao); outline-offset: 4px; }
.cdc-leg-art .cdc-faq-q p { margin: 0 0 16px !important; }
.cdc-leg-question a { color: var(--cdc-cuivre); font-weight: 600; }

/* Idées cadeaux : le récit, 3 produits par ligne sur tablette et ordinateur */
.cdc-cad-sel { display: flex; flex-direction: column; gap: 24px; }
.cdc-cad-atelier { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; justify-content: space-between; padding: clamp(24px, 3vw, 36px); }
.cdc-cad-atelier > div { display: flex; flex-direction: column; gap: 6px; max-width: 40em; }
.cdc-cad-atelier b { color: var(--cdc-papier); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); }
.cdc-cad-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: center; }
.cdc-cad-hero__txt { display: flex; flex-direction: column; gap: 16px; }
.cdc-cad-hero__vis { position: relative; }
.cdc-cad-hero__vis img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--cdc-radius); }
.cdc-cad-hero__vis .cdc-tampon-r { position: absolute; left: -24px; bottom: -24px; background: var(--cdc-papier); color: var(--cdc-encre); }
@media (min-width: 768px) { .cdc-sel__grille.cdc-cad-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (max-width: 860px) {
	.cdc-ct-cols, .cdc-ct-carte, .cdc-cad-hero { grid-template-columns: minmax(0, 1fr); }
	.cdc-sv-cote { position: static; }
	.cdc-ct-carte__msg { border-right: 0; border-bottom: 2px dashed var(--cdc-filet); }
	.cdc-cad-hero__vis .cdc-tampon-r { left: 12px; bottom: -20px; }
}
@media (max-width: 560px) {
	.cdc-ct-grille { grid-template-columns: minmax(0, 1fr); }
	.cdc-ct-envoyer { align-self: stretch; }
	.cdc-sv-route { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.cdc-sv-route li { padding: 0 0 18px 30px; }
	.cdc-sv-route li::before { top: 16px; left: 7px; right: auto; bottom: 0; border-top: 0; border-left: 2px dashed #B8B0A6; }
	.cdc-sv-route li.is-fait::before { border-top: 0; border-left: 2px solid var(--cdc-cacao); }
}
