/*
Theme Name: Com de Wouf Studio
Theme URI: https://studio.comdewouf.fr/
Author: Com de Wouf
Author URI: https://comdewouf.fr/
Description: Thème de la boutique Com de Wouf Studio : thèmes et extensions WordPress pour les pros du monde animalier. Thème de blocs, polices hébergées localement, aucun appel externe.
Version: 1.0.1
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cdw-studio
*/

/* ------------------------------------------------------------------
   Bases
------------------------------------------------------------------ */
:root {
	--cdw-encre: #2d0b57;
	--cdw-nuit: #1d0640;
	--cdw-violet: #6a35a8;
	--cdw-lavande: #cda5f6;
	--cdw-brume: #f4eafe;
	--cdw-lait: #fcfaff;
	--cdw-filet: #e8ddf7;
	--cdw-prune: #5f5079;
	--cdw-sapin: #17312b;
	--cdw-laisse: #f4c430;
	--cdw-pre: #e6eedf;
	--cdw-rayon: 22px;
	--cdw-ombre: 0 1px 0 rgba(45, 11, 87, .06), 0 24px 48px -28px rgba(45, 11, 87, .45);
	--cdw-large: min(1200px, calc(100vw - 40px));
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--cdw-lavande); color: var(--cdw-encre); }

:where(a, button, summary, input, textarea):focus-visible {
	outline: 3px solid var(--cdw-violet);
	outline-offset: 3px;
	border-radius: 6px;
}

.cdw-section-sombre :where(a, button, summary):focus-visible { outline-color: var(--cdw-lavande); }

h1, h2, h3 { font-variation-settings: "opsz" 48, "wdth" 94; letter-spacing: -.01em; text-wrap: balance; }

/* Pas de bande blanche entre l'en-tête, le contenu et le pied de page */
.wp-site-blocks > * + * { margin-block-start: 0 !important; }
.cdw-principal > .entry-content > * + *, .cdw-principal .wp-block-post-content > * + * { margin-block-start: 0; }
p { text-wrap: pretty; }

/* Lien d'évitement */
.cdw-evitement {
	position: absolute; left: 12px; top: -60px; z-index: 100;
	background: var(--cdw-encre); color: #fff; padding: 10px 16px; border-radius: 999px;
	text-decoration: none; font-weight: 600;
}
.cdw-evitement:focus { top: 12px; }

/* ------------------------------------------------------------------
   En-tête
------------------------------------------------------------------ */
.cdw-entete {
	position: sticky; top: 0; z-index: 50;
	background: rgba(252, 250, 255, .9);
	backdrop-filter: saturate(1.4) blur(12px);
	-webkit-backdrop-filter: saturate(1.4) blur(12px);
	border-bottom: 1px solid var(--cdw-filet);
}
.admin-bar .cdw-entete { top: 32px; }
@media (max-width: 782px) { .admin-bar .cdw-entete { top: 46px; } }

.cdw-entete__rangee {
	width: var(--cdw-large); margin: 0 auto !important; min-height: 72px;
	display: flex; align-items: center; gap: 28px;
}
.cdw-marque { display: inline-flex; align-items: center; gap: 12px; color: var(--cdw-encre); text-decoration: none; }
.cdw-marque svg { width: 40px; height: 40px; flex: none; }
.cdw-marque__nom { display: flex; flex-direction: column; line-height: 1; }
.cdw-marque__nom strong { font-family: var(--wp--preset--font-family--bricolage); font-variation-settings: "opsz" 24, "wdth" 90; font-weight: 750; font-size: 1.2rem; letter-spacing: -.01em; }
.cdw-marque__nom span { font-size: .82rem; color: var(--cdw-violet); font-weight: 600; margin-top: 4px; }

.cdw-entete .wp-block-navigation { margin: 0 0 0 auto; align-self: center; gap: 26px; font-weight: 550; font-size: .98rem; }
.cdw-entete .wp-block-navigation a { text-decoration: none; }
.cdw-entete .wp-block-navigation a:hover { color: var(--cdw-violet); }
.cdw-entete .wp-block-buttons { flex: none; }
.cdw-entete .wp-block-button__link { padding: 10px 20px; font-size: .95rem; }
@media (max-width: 860px) { .cdw-entete .wp-block-buttons { display: none; } }

/* ------------------------------------------------------------------
   Boutons
------------------------------------------------------------------ */
.wp-block-button__link { transition: background-color .2s ease, color .2s ease, box-shadow .2s ease; }
.wp-block-button__link:hover { background-color: var(--cdw-encre); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--cdw-encre); border: 2px solid currentColor;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--cdw-encre); color: #fff; border-color: var(--cdw-encre); }
.cdw-section-sombre .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cdw-lavande); color: var(--cdw-encre); }
.cdw-section-sombre .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: #fff; }
.cdw-section-sombre .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
.cdw-section-sombre .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--cdw-encre); border-color: #fff; }

/* ------------------------------------------------------------------
   Gabarit commun des sections
------------------------------------------------------------------ */
.cdw-section { padding: clamp(64px, 9vw, 120px) 20px; margin: 0; }
.cdw-section > * { max-width: 1200px; margin-left: auto !important; margin-right: auto !important; }
.cdw-section-sombre { background: var(--cdw-encre); color: #fff; }
.cdw-section-sombre :where(h1, h2, h3, p, li, strong, summary) { color: #fff; }
.cdw-section-brume { background: var(--cdw-brume); }

.cdw-intro { max-width: 720px !important; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-bottom: clamp(32px, 4vw, 56px) !important; }
.cdw-intro h2 { margin: 0 0 14px; }
.cdw-intro p { margin: 0; font-size: 1.15rem; color: var(--cdw-prune); }
.cdw-section-sombre .cdw-intro p { color: #e2d3f7; }

/* ------------------------------------------------------------------
   Héros de l'accueil : la bulle et ses écrans
------------------------------------------------------------------ */
.cdw-heros {
	background: var(--cdw-nuit); color: #fff; margin: 0;
	padding: clamp(56px, 7vw, 96px) 20px clamp(150px, 16vw, 210px);
	overflow: hidden;
}
.cdw-heros__grille {
	max-width: 1200px; margin: 0 auto;
	display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 72px); align-items: center;
}
.cdw-heros h1 {
	color: #fff; margin: 0 0 22px;
	font-size: clamp(2.4rem, 5vw, 4.3rem); line-height: 1.02; letter-spacing: -.015em;
	font-variation-settings: "opsz" 60, "wdth" 92; font-weight: 740;
}
.cdw-heros__texte p { color: #e7dbf8; font-size: clamp(1.08rem, 1.5vw, 1.25rem); max-width: 34em; margin: 0 0 30px; }
.cdw-heros .wp-block-buttons { gap: 12px; }
.cdw-heros .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cdw-lavande); color: var(--cdw-encre); }
.cdw-heros .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: #fff; }
.cdw-heros .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
.cdw-heros .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--cdw-encre); border-color: #fff; }
.cdw-heros .cdw-heros__note { font-size: .95rem; color: #c9b5ea; margin: 22px 0 0; }

/* La bulle : la signature du studio */
.cdw-ecrans { position: relative; min-height: clamp(380px, 44vw, 560px); margin: 0; }
.cdw-ecrans::before {
	content: ""; position: absolute; inset: 6% 2% 12% 6%;
	background: var(--cdw-lavande); border-radius: 46px;
}
.cdw-ecrans::after {
	content: ""; position: absolute; left: 16%; bottom: calc(12% - 46px);
	width: 72px; height: 58px; background: var(--cdw-lavande);
	clip-path: polygon(0 0, 100% 0, 8% 100%);
}

/* Les écrans : une fenêtre de navigateur autour de chaque démo */
.wp-block-image.cdw-ecran {
	position: absolute; margin: 0; width: 46%;
	background: #fff; border-radius: 16px; padding: 30px 8px 8px;
	box-shadow: 0 30px 60px -24px rgba(16, 2, 38, .65);
	transform-origin: 50% 100%;
	animation: cdw-eventail .9s cubic-bezier(.2, .8, .2, 1) both;
}
.wp-block-image.cdw-ecran::before {
	content: ""; position: absolute; top: 11px; left: 12px; width: 44px; height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, #f1a7a7 4px, transparent 4.5px),
		radial-gradient(circle at 22px 4.5px, var(--cdw-laisse) 4px, transparent 4.5px),
		radial-gradient(circle at 39.5px 4.5px, #9fd3a6 4px, transparent 4.5px);
}
.wp-block-image.cdw-ecran img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 10px; }
.cdw-ecran--calm { left: 4%; top: 16%; --cdw-angle: -7deg; }
.cdw-ecran--puppy { right: 3%; top: 14%; --cdw-angle: 6deg; animation-delay: .08s; }
.cdw-ecran--field { left: 27%; top: 2%; width: 50%; z-index: 2; --cdw-angle: 0deg; animation-delay: .16s; }
.wp-block-image.cdw-ecran { transform: rotate(var(--cdw-angle)); }

@keyframes cdw-eventail {
	from { transform: translateY(40px) rotate(0deg) scale(.94); opacity: 0; }
	to { transform: translateY(0) rotate(var(--cdw-angle)) scale(1); opacity: 1; }
}

@media (max-width: 900px) {
	.cdw-heros__grille { grid-template-columns: 1fr; }
	.cdw-ecrans { min-height: 0; aspect-ratio: 1 / .9; max-width: 520px; width: 100%; margin: 8px auto 0; }
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-image.cdw-ecran { animation: none; }
	html { scroll-behavior: auto; }
}

/* ------------------------------------------------------------------
   Catalogue
------------------------------------------------------------------ */
.cdw-catalogue { margin-top: calc(-1 * clamp(110px, 12vw, 160px)) !important; padding-top: 0; position: relative; z-index: 3; }
.cdw-catalogue__grille {
	display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 22px; align-items: stretch;
}
.cdw-catalogue__avenir { display: grid; gap: 22px; margin: 0 !important; }

.cdw-produit {
	margin: 0 !important; background: #fff; border-radius: var(--cdw-rayon); overflow: hidden;
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	box-shadow: var(--cdw-ombre);
}
.cdw-produit .wp-block-image { margin: 0; background: var(--cdw-pre); height: 100%; }
.cdw-produit .wp-block-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cdw-produit__corps { padding: clamp(26px, 3vw, 40px); display: flex; flex-direction: column; margin: 0 !important; }
.cdw-produit__corps > * { margin-top: 0; }
.cdw-produit__etiquette {
	align-self: flex-start; background: var(--cdw-laisse); color: var(--cdw-sapin);
	font-weight: 700; font-size: .85rem; padding: 5px 12px; border-radius: 999px; margin-bottom: 18px !important;
}
.cdw-produit h3 { font-size: clamp(2rem, 3vw, 2.6rem); margin: 0 0 10px; line-height: 1; color: var(--cdw-sapin); }
.cdw-produit__corps p { color: var(--cdw-prune); }
.cdw-produit__prix { font-weight: 700; color: var(--cdw-encre) !important; font-size: 1.05rem; margin-top: auto !important; padding-top: 10px; }
.cdw-produit .wp-block-buttons { margin-top: 16px; gap: 10px; }
.cdw-produit .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cdw-sapin); }
.cdw-produit .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--cdw-encre); }
.cdw-produit .wp-block-button.is-style-outline > .wp-block-button__link { color: var(--cdw-sapin); }

.cdw-bientot {
	margin: 0 !important; border: 2px dashed var(--cdw-lavande); border-radius: var(--cdw-rayon);
	padding: 26px; background: #fff; box-shadow: var(--cdw-ombre);
}
.cdw-bientot > * { margin-top: 0; }
.cdw-bientot h3 { font-size: 1.45rem; margin: 0 0 6px; }
.cdw-bientot p { margin: 0 0 14px; color: var(--cdw-prune); font-size: .98rem; }
.cdw-bientot a { color: var(--cdw-violet); font-weight: 650; }

@media (max-width: 900px) {
	.cdw-catalogue__grille, .cdw-produit { grid-template-columns: 1fr; }
	.cdw-produit .wp-block-image img { aspect-ratio: 16 / 10; }
}

/* ------------------------------------------------------------------
   Pourquoi le studio
------------------------------------------------------------------ */
.cdw-pourquoi__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(36px, 6vw, 96px); align-items: start; }
.cdw-pourquoi__accroche { position: sticky; top: 120px; margin: 0 !important; }
.cdw-pourquoi__accroche h2 { font-size: clamp(2.1rem, 4vw, 3.2rem); line-height: 1.02; letter-spacing: -.018em; margin: 0 0 22px; }
.cdw-pourquoi__accroche p { font-size: 1.12rem; color: var(--cdw-prune); }
.cdw-preuve {
	margin-top: 28px !important; padding: 22px 24px; background: var(--cdw-brume); border-radius: 18px;
	display: flex; gap: 18px; align-items: baseline;
}
.cdw-preuve__chiffre { font-family: var(--wp--preset--font-family--bricolage); font-variation-settings: "opsz" 96, "wdth" 75; font-weight: 800; font-size: clamp(2.6rem, 4.4vw, 3.6rem) !important; line-height: 1 !important; color: var(--cdw-violet) !important; margin: 0 !important; flex: none; }
.cdw-preuve p:not(.cdw-preuve__chiffre) { margin: 0; color: var(--cdw-encre); font-size: 1rem; }
.cdw-raisons { margin: 0 !important; display: grid; gap: 0; }
.cdw-raison { margin: 0 !important; padding: 30px 0; border-top: 1px solid var(--cdw-filet); }
.cdw-raison:last-child { border-bottom: 1px solid var(--cdw-filet); }
.cdw-raison h3 { font-size: 1.5rem; margin: 0 0 10px; line-height: 1.15; }
.cdw-raison p { margin: 0; color: var(--cdw-prune); }
@media (max-width: 900px) {
	.cdw-pourquoi__grille { grid-template-columns: 1fr; }
	.cdw-pourquoi__accroche { position: static; }
}

/* ------------------------------------------------------------------
   Étapes (vraie séquence : numérotée)
------------------------------------------------------------------ */
ol.cdw-etapes { list-style: none; padding: 0; margin: 0; counter-reset: etape; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
ol.cdw-etapes > li { counter-increment: etape; position: relative; padding: 76px 26px 28px; background: rgba(255, 255, 255, .06); border-radius: var(--cdw-rayon); font-size: 1.08rem; color: #f1e8fc; }
ol.cdw-etapes > li::before {
	content: counter(etape); position: absolute; top: 18px; left: 24px;
	font-family: var(--wp--preset--font-family--bricolage); font-variation-settings: "opsz" 96, "wdth" 75;
	font-weight: 800; font-size: 3rem; line-height: 1; color: var(--cdw-lavande);
}
ol.cdw-etapes strong { display: block; font-size: 1.25rem; margin-bottom: 6px; color: #fff; }
@media (max-width: 800px) { ol.cdw-etapes { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------
   Passerelle vers l'agence : la bulle, en grand
------------------------------------------------------------------ */
.cdw-passerelle { padding-top: 0; padding-bottom: clamp(56px, 7vw, 96px); }
.cdw-passerelle__bulle {
	position: relative; background: var(--cdw-lavande); border-radius: 44px;
	padding: clamp(36px, 5vw, 64px); margin-bottom: 46px !important;
	display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 28px; align-items: center;
}
.cdw-passerelle__bulle::after {
	content: ""; position: absolute; left: 12%; bottom: -44px; width: 80px; height: 46px;
	background: var(--cdw-lavande); clip-path: polygon(0 0, 100% 0, 10% 100%);
}
.cdw-passerelle__bulle > * { margin: 0 !important; }
.cdw-passerelle__bulle h2 { font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.02; margin: 0 0 12px !important; }
.cdw-passerelle__bulle p { color: var(--cdw-encre); font-size: 1.1rem; }
.cdw-passerelle__bulle .wp-block-buttons { gap: 10px; }
.cdw-passerelle__bulle .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cdw-encre); }
.cdw-passerelle__bulle .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--cdw-violet); }
@media (max-width: 800px) { .cdw-passerelle__bulle { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------
   FAQ
------------------------------------------------------------------ */
.cdw-faq { max-width: 860px !important; margin-left: max(0px, calc((100% - 1200px) / 2)) !important; }
.wp-block-details.cdw-question { border-top: 1px solid var(--cdw-filet); padding: 0; margin: 0; }
.wp-block-details.cdw-question:last-child { border-bottom: 1px solid var(--cdw-filet); }
.wp-block-details.cdw-question summary {
	list-style: none; cursor: pointer; padding: 22px 48px 22px 0; position: relative;
	font-family: var(--wp--preset--font-family--bricolage); font-variation-settings: "opsz" 32, "wdth" 90;
	font-weight: 650; font-size: 1.22rem; color: var(--cdw-encre);
}
.wp-block-details.cdw-question summary::-webkit-details-marker { display: none; }
.wp-block-details.cdw-question summary::after {
	content: ""; position: absolute; right: 6px; top: 50%; width: 14px; height: 14px; margin-top: -10px;
	border-right: 2.5px solid var(--cdw-violet); border-bottom: 2.5px solid var(--cdw-violet);
	transform: rotate(45deg); transition: transform .25s ease, margin-top .25s ease;
}
.wp-block-details.cdw-question[open] summary::after { transform: rotate(-135deg); margin-top: -3px; }
.wp-block-details.cdw-question > :not(summary) { margin: 0 0 22px; color: var(--cdw-prune); max-width: 68ch; }
@media (prefers-reduced-motion: reduce) { .wp-block-details.cdw-question summary::after { transition: none; } }

/* ------------------------------------------------------------------
   Fiche produit Recall
------------------------------------------------------------------ */
.cdw-fiche-heros { background: var(--cdw-sapin); color: #fff; margin: 0; padding: clamp(56px, 7vw, 96px) 20px clamp(64px, 8vw, 110px); overflow: hidden; }
.cdw-fiche-heros__grille { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.cdw-fiche-heros :where(h1, p, strong) { color: #fff; }
.cdw-fiche-heros__surtitre { display: inline-block; background: var(--cdw-laisse); color: var(--cdw-sapin) !important; font-weight: 700; font-size: .9rem; padding: 6px 14px; border-radius: 999px; margin: 0 0 22px !important; }
.cdw-fiche-heros h1 { font-size: clamp(2.3rem, 4.8vw, 4rem); line-height: 1.02; letter-spacing: -.012em; margin: 0 0 22px; font-variation-settings: "opsz" 60, "wdth" 92; font-weight: 740; }
.cdw-fiche-heros__texte p { color: #dbe7d6; font-size: 1.18rem; max-width: 34em; }
.cdw-fiche-heros .wp-block-buttons { gap: 12px; margin-top: 26px; }
.cdw-fiche-heros .wp-block-button:not(.is-style-outline) > .wp-block-button__link { background: var(--cdw-laisse); color: var(--cdw-sapin); }
.cdw-fiche-heros .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: #fff; }
.cdw-fiche-heros .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
.cdw-fiche-heros .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--cdw-sapin); border-color: #fff; }
.cdw-fiche-heros .cdw-reassurance { color: #b9cfb3; font-size: .98rem; margin-top: 22px; }
.cdw-fiche-heros .wp-block-image { margin: 0; position: relative; }
.cdw-fiche-heros .wp-block-image img { width: 100%; height: auto; border-radius: 40px; display: block; aspect-ratio: 4 / 5; object-fit: cover; }
.cdw-fiche-heros .wp-block-image::after {
	content: ""; position: absolute; right: 14%; bottom: -36px; width: 66px; height: 40px;
	background: var(--cdw-pre); clip-path: polygon(0 0, 100% 0, 92% 100%);
}
@media (max-width: 900px) { .cdw-fiche-heros__grille { grid-template-columns: 1fr; } .cdw-fiche-heros .wp-block-image { max-width: 420px; } }

/* Démos */
.cdw-demos__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.cdw-demo { margin: 0 !important; }
.cdw-demo > * { margin-top: 0; }
.cdw-demo .wp-block-image { margin: 0 0 20px; background: #fff; border-radius: 16px; padding: 30px 8px 8px; position: relative; box-shadow: var(--cdw-ombre); }
.cdw-demo .wp-block-image::before {
	content: ""; position: absolute; top: 11px; left: 12px; width: 44px; height: 9px;
	background:
		radial-gradient(circle at 4.5px 4.5px, #f1a7a7 4px, transparent 4.5px),
		radial-gradient(circle at 22px 4.5px, var(--cdw-laisse) 4px, transparent 4.5px),
		radial-gradient(circle at 39.5px 4.5px, #9fd3a6 4px, transparent 4.5px);
}
.cdw-demo .wp-block-image img { display: block; width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; object-position: center 62%; border-radius: 10px; }
.cdw-demo h3 { font-size: 1.55rem; margin: 0 0 8px; }
.cdw-demo p { color: var(--cdw-prune); margin: 0 0 16px; }
@media (max-width: 900px) { .cdw-demos__grille { grid-template-columns: 1fr; } }

/* Ce que tu as déjà en place : une liste, pas des cartes */
.cdw-atouts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(32px, 5vw, 72px); row-gap: 0; }
.cdw-atout { margin: 0 !important; padding: 26px 0; border-top: 1px solid var(--cdw-filet); }
.cdw-atout > * { margin-top: 0; }
.cdw-atout h3 { font-size: 1.32rem; margin: 0 0 8px; line-height: 1.2; }
.cdw-atout p { margin: 0; color: var(--cdw-prune); }
@media (max-width: 800px) { .cdw-atouts { grid-template-columns: 1fr; } }

/* Deux colonnes : personnaliser / respecter */
.cdw-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.cdw-duo__bloc { margin: 0 !important; background: #fff; border-radius: var(--cdw-rayon); padding: clamp(26px, 3vw, 40px); }
.cdw-duo__bloc > * { margin-top: 0; }
.cdw-duo__bloc h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 0 0 16px; }
.cdw-duo__bloc ul { margin: 0; padding-left: 1.2em; }
.cdw-duo__bloc li { margin-bottom: 10px; }
.cdw-duo__bloc li::marker { color: var(--cdw-violet); }
@media (max-width: 800px) { .cdw-duo { grid-template-columns: 1fr; } }

/* Formules */
.cdw-formules__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.cdw-formule { margin: 0 !important; background: #fff; border: 1px solid var(--cdw-filet); border-radius: var(--cdw-rayon); padding: 32px 28px; display: flex; flex-direction: column; }
.cdw-formule > * { margin-top: 0; }
.cdw-formule h3 { font-size: 1.5rem; margin: 0 0 4px; }
.cdw-formule__prix { font-family: var(--wp--preset--font-family--bricolage); font-variation-settings: "opsz" 96, "wdth" 78; font-weight: 800; font-size: 3rem; line-height: 1; margin: 10px 0 6px !important; color: var(--cdw-encre); }
.cdw-formule__note { color: var(--cdw-prune); font-size: .95rem; margin: 0 0 18px !important; }
.cdw-formule ul { margin: 0 0 24px; padding-left: 1.2em; }
.cdw-formule li { margin-bottom: 8px; }
.cdw-formule li::marker { color: var(--cdw-violet); }
.cdw-formule .wp-block-buttons { margin-top: auto; }
.cdw-formule .wp-block-button, .cdw-formule .wp-block-button__link { width: 100%; text-align: center; }
.cdw-formule.is-vedette { background: var(--cdw-encre); border-color: var(--cdw-encre); color: #fff; position: relative; }
.cdw-formule.is-vedette :where(h3, p, li, strong) { color: #fff; }
.cdw-formule.is-vedette .cdw-formule__note { color: #d9c7f3; }
.cdw-formule.is-vedette li::marker { color: var(--cdw-lavande); }
.cdw-formule.is-vedette .wp-block-button__link { background: var(--cdw-lavande); color: var(--cdw-encre); }
.cdw-formule.is-vedette .wp-block-button__link:hover { background: #fff; }
.cdw-formule__badge { align-self: flex-start; background: var(--cdw-lavande); color: var(--cdw-encre) !important; font-weight: 700; font-size: .85rem; padding: 5px 12px; border-radius: 999px; margin: 0 0 14px !important; }
.cdw-formules__suite { margin-top: 28px !important; color: var(--cdw-prune); }
.cdw-formules__suite a { color: var(--cdw-violet); font-weight: 650; }
@media (max-width: 900px) { .cdw-formules__grille { grid-template-columns: 1fr; } }

/* Dernier appel */
.cdw-final { text-align: center; }
.cdw-final h2 { font-size: clamp(2.2rem, 5vw, 4rem); line-height: 1; letter-spacing: -.02em; margin: 0 auto 26px; max-width: 14em; }
.cdw-final .wp-block-buttons { justify-content: center; }
.cdw-final p { color: #e2d3f7; margin: 22px auto 0; }
.cdw-final p a { color: #fff; }

/* ------------------------------------------------------------------
   Pied de page
------------------------------------------------------------------ */
.cdw-pied { background: var(--cdw-nuit); color: #d9c9f0; padding: 64px 20px 32px; margin: 0; }
.cdw-pied__grille { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 1fr)); gap: 40px; }
.cdw-pied .cdw-marque { color: #fff; }
.cdw-pied .cdw-marque__nom span { color: var(--cdw-lavande); }
.cdw-pied p { margin: 18px 0 0; max-width: 30em; }
.cdw-pied h2 { font-size: 1.05rem; color: #fff; margin: 0 0 14px; font-variation-settings: "opsz" 24, "wdth" 95; }
.cdw-pied ul { list-style: none; margin: 0; padding: 0; }
.cdw-pied li { margin-bottom: 9px; }
.cdw-pied a { color: #d9c9f0; text-decoration: none; }
.cdw-pied a:hover { color: #fff; text-decoration: underline; }
.cdw-pied__bas { max-width: 1200px; margin: 48px auto 0; padding-top: 22px; border-top: 1px solid rgba(205, 165, 246, .25); font-size: .92rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }
@media (max-width: 800px) { .cdw-pied__grille { grid-template-columns: 1fr; } }

/* Pages simples (mentions, CGV…) */
.cdw-page-simple { padding: clamp(48px, 7vw, 96px) 20px; }
.cdw-page-simple h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); line-height: 1.02; letter-spacing: -.02em; }

/* Page catalogue */
.cdw-catalogue-page { padding-top: clamp(48px, 7vw, 96px); }
.cdw-catalogue-page h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); line-height: 1.04; margin: 0 0 14px; }
.cdw-catalogue-page .cdw-catalogue__grille { margin-top: 8px; }

/* Signature de l'agence sur la fiche produit */
.cdw-signature__grille { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; }
.cdw-signature__grille > * { margin: 0 !important; }
.cdw-signature h2 { font-size: clamp(1.9rem, 3.4vw, 2.8rem); line-height: 1.04; margin: 0 0 16px; }
.cdw-signature p { color: #e2d3f7; font-size: 1.1rem; margin: 0; }
.cdw-signature ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.cdw-signature li { position: relative; padding: 18px 22px 18px 58px; background: rgba(255, 255, 255, .07); border-radius: 18px; color: #fff; }
.cdw-signature li::before {
	content: ""; position: absolute; left: 22px; top: 22px; width: 22px; height: 18px; background: var(--cdw-lavande);
	border-radius: 6px; clip-path: polygon(0 0, 100% 0, 100% 72%, 40% 72%, 14% 100%, 18% 72%, 0 72%);
}
@media (max-width: 800px) { .cdw-signature__grille { grid-template-columns: 1fr; } }
