/*
 * Chibi Nova — Vitrine 1.0.0
 *
 * Palette
 *   papier   #FBF8F4  fond de page, chaud mais pas jaune
 *   lait     #F5ECE7  sections alternées, rosé comme une joue
 *   sable    #E6DAD2  filets, contours, champs
 *   prune    #2D1F2A  texte fort, boutons : l'encre des contours du chibi
 *   texte    #5B4A56  texte courant
 *   joue     #E0868A  le rose des joues et des cœurs, en touches seulement
 *
 * Un seul moment fort : le carnet de photos. Les photos sont des polaroïds
 * annotés à la main, les portraits des cartes posées dessus. Tout le reste
 * se tait.
 */

:root {
	--cn-papier: #FBF8F4;
	--cn-lait: #F5ECE7;
	--cn-sable: #E6DAD2;
	--cn-prune: #2D1F2A;
	--cn-prune-2: #4A3545;
	--cn-texte: #5B4A56;
	--cn-joue: #E0868A;
	--cn-joue-pale: #F8E1DF;
	--cn-blanc: #FFFFFF;

	--cn-titre: 'Fraunces', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
	--cn-corps: 'Figtree', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--cn-main: 'Caveat', 'Segoe Print', 'Bradley Hand', cursive;

	--cn-large: 1240px;
	--cn-gouttiere: clamp(20px, 5vw, 64px);
	--cn-rythme: clamp(64px, 8vw, 116px);
	--cn-ombre: 0 1px 2px rgba(45, 31, 42, .06), 0 12px 32px -12px rgba(45, 31, 42, .22);
	--cn-ombre-forte: 0 2px 4px rgba(45, 31, 42, .06), 0 28px 60px -24px rgba(45, 31, 42, .38);

	/* Astra lit ses couleurs dans ces variables : la palette entière suit. */
	--ast-global-color-0: var(--cn-prune);
	--ast-global-color-1: var(--cn-prune-2);
	--ast-global-color-2: var(--cn-prune);
	--ast-global-color-3: var(--cn-texte);
	--ast-global-color-4: var(--cn-papier);
	--ast-global-color-5: var(--cn-blanc);
	--ast-global-color-6: var(--cn-lait);
	--ast-global-color-7: var(--cn-sable);
	--ast-global-color-8: var(--cn-prune);
	--ast-border-color: var(--cn-sable);
}

/* ------------------------------------------------------------------ */
/* Socle                                                               */
/* ------------------------------------------------------------------ */

body.cn-vitrine,
body.cn-vitrine.ast-separate-container,
body.cn-vitrine.ast-plain-container {
	background: var(--cn-papier);
	color: var(--cn-texte);
	font-family: var(--cn-corps);
	font-size: 17px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.cn-vitrine h1, body.cn-vitrine h2, body.cn-vitrine h3,
body.cn-vitrine h4, body.cn-vitrine h5, body.cn-vitrine h6,
body.cn-vitrine .entry-title,
body.cn-vitrine .product_title {
	font-family: var(--cn-titre);
	font-variation-settings: 'SOFT' 100, 'WONK' 0;
	font-weight: 420;
	color: var(--cn-prune);
	letter-spacing: -0.012em;
	line-height: 1.12;
	text-transform: none;
}

body.cn-vitrine a { color: var(--cn-prune); text-decoration-color: color-mix(in srgb, var(--cn-prune) 35%, transparent); text-underline-offset: .18em; }
body.cn-vitrine a:hover { color: var(--cn-prune-2); text-decoration-color: currentColor; }
body.cn-vitrine .woocommerce-notices-wrapper :focus,
body.cn-vitrine .woocommerce-message:focus,
body.cn-vitrine .woocommerce-error:focus,
body.cn-vitrine .woocommerce-info:focus { outline: none; }
body.cn-vitrine :focus-visible { outline: 2px solid var(--cn-prune); outline-offset: 3px; border-radius: 4px; }
body.cn-vitrine ::selection { background: var(--cn-joue-pale); color: var(--cn-prune); }

/* Boîtes blanches d'Astra : le papier suffit. */
body.cn-vitrine.ast-separate-container .ast-article-single,
body.cn-vitrine.ast-separate-container .ast-article-post,
body.cn-vitrine.ast-separate-container .ast-woocommerce-container,
body.cn-vitrine.ast-separate-container #primary .site-main > .ast-row,
body.cn-vitrine.ast-separate-container .comments-area,
body.cn-vitrine .ast-separate-container .ast-article-single {
	background: transparent;
	box-shadow: none;
}

/* Boutons génériques (blocs, WooCommerce, Astra) */
body.cn-vitrine .wp-block-button__link,
body.cn-vitrine .ast-button,
body.cn-vitrine .button,
body.cn-vitrine button.button,
body.cn-vitrine input[type="submit"],
body.cn-vitrine .woocommerce a.button,
body.cn-vitrine .woocommerce button.button,
body.cn-vitrine .woocommerce #respond input#submit {
	background: var(--cn-prune);
	color: var(--cn-papier);
	border: 0;
	border-radius: 999px;
	font-family: var(--cn-corps);
	font-weight: 600;
	font-size: 16px;
	letter-spacing: .005em;
	text-transform: none;
	line-height: 1.2;
	padding: 16px 28px;
	transition: background-color .18s ease, transform .18s ease;
}
body.cn-vitrine .wp-block-button__link:hover,
body.cn-vitrine .button:hover,
body.cn-vitrine .woocommerce a.button:hover,
body.cn-vitrine .woocommerce button.button:hover,
body.cn-vitrine input[type="submit"]:hover {
	background: var(--cn-prune-2);
	color: var(--cn-papier);
}

/* ------------------------------------------------------------------ */
/* En-tête                                                             */
/* ------------------------------------------------------------------ */

body.cn-vitrine .site-header,
body.cn-vitrine .main-header-bar,
body.cn-vitrine .ast-primary-header-bar,
body.cn-vitrine .ast-mobile-header-wrap .ast-primary-header-bar {
	background: var(--cn-papier);
	border-bottom-color: var(--cn-sable);
}
body.cn-vitrine .ast-primary-header-bar { border-bottom: 1px solid var(--cn-sable); }

body.cn-vitrine .main-header-menu > .menu-item > .menu-link,
body.cn-vitrine .ast-builder-menu .menu-item > .menu-link {
	font-family: var(--cn-corps);
	font-size: 15px;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	color: var(--cn-prune);
}
body.cn-vitrine .main-header-menu > .menu-item.current-menu-item > .menu-link,
body.cn-vitrine .main-header-menu > .menu-item > .menu-link:hover {
	color: var(--cn-prune);
	text-decoration: underline;
	text-decoration-color: var(--cn-joue);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
body.cn-vitrine .main-header-menu > .menu-item.cn-menu-cta { display: flex; align-items: center; }
/* Sélecteur de langue GTranslate : décollé du bouton « Créer mon portrait ». */
body.cn-vitrine .main-header-menu > .menu-item-gtranslate { margin-left: 20px; display: flex; align-items: center; }
body.cn-vitrine .main-header-menu > .menu-item.cn-menu-cta > .menu-link {
	background: var(--cn-prune);
	color: var(--cn-papier);
	border-radius: 999px;
	padding: 11px 22px;
	margin-left: 10px;
	line-height: 1.2;
	min-height: 0;
	height: auto;
	text-decoration: none;
	font-weight: 600;
}
body.cn-vitrine .main-header-menu > .menu-item.cn-menu-cta > .menu-link:hover { background: var(--cn-prune-2); }
body.cn-vitrine .ast-mobile-popup-content .menu-item.cn-menu-cta > .menu-link,
body.cn-vitrine .ast-header-break-point .main-header-menu .menu-item.cn-menu-cta > .menu-link {
	font-weight: 700;
}

/* Marque typographique */
.cn-marque {
	display: inline-flex;
	align-items: flex-start;
	gap: 2px;
	font-family: var(--cn-titre);
	font-variation-settings: 'SOFT' 100, 'WONK' 1;
	font-weight: 480;
	font-size: 27px;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--cn-prune);
	white-space: nowrap;
}
.cn-marque-eclat { width: 13px; height: 13px; fill: var(--cn-joue); margin-top: -2px; }
body.cn-vitrine .cn-logo, body.cn-vitrine .site-title a { text-decoration: none; }
body.cn-vitrine .site-logo-img .cn-logo { display: inline-block; padding: 6px 0; }

/* ------------------------------------------------------------------ */
/* Pages composées : largeur, rythme                                   */
/* ------------------------------------------------------------------ */

body.cn-page-composee .site-content > .ast-container,
body.cn-page-composee #primary,
body.cn-page-composee .entry-content {
	max-width: none;
	width: 100%;
	padding: 0;
	margin: 0;
}
body.cn-page-composee .entry-header,
body.cn-page-composee .ast-breadcrumbs-wrapper { display: none; }
body.cn-page-composee .site-content { padding: 0; }
body.cn-page-composee #primary { margin: 0 !important; }

.cn-section {
	position: relative;
	padding: var(--cn-rythme) max(var(--cn-gouttiere), calc((100% - var(--cn-large)) / 2)) !important;
	margin: 0 !important;
	max-width: none !important;
}
.cn-section > *,
.cn-section .is-layout-flow > *,
.cn-section.is-layout-flow > * {
	margin-block-start: 0;
	margin-left: 0;
	margin-right: 0;
	max-width: none;
}
.cn-section figure.wp-block-image { margin-bottom: 0; }
.cn-parcours > *, .cn-engagements-liste > *, .cn-compositions-liste > *, .cn-faq-liste > * { margin-block-start: 0 !important; }
.cn-section-lait { background: var(--cn-lait); }
.entry-content .cn-section p { margin-bottom: 0; }
.entry-content .cn-section :where(h1, h2, h3) { margin: 0; }

.cn-titre-section {
	font-size: clamp(32px, 2.2vw + 18px, 50px) !important;
	max-width: 18ch;
}
.cn-chapo-section {
	margin-top: 16px !important;
	max-width: 56ch;
	font-size: 18px;
}
.cn-note { font-size: 14px; color: color-mix(in srgb, var(--cn-texte) 80%, var(--cn-papier)); margin-top: 18px !important; }

/* Boutons des motifs */
.cn-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 32px !important; }
.cn-bouton .wp-block-button__link { padding: 18px 32px !important; font-size: 17px !important; box-shadow: 0 10px 24px -12px rgba(45, 31, 42, .55); }
.cn-bouton .wp-block-button__link:hover { transform: translateY(-1px); }
body.cn-vitrine .cn-lien .wp-block-button__link {
	background: none;
	color: var(--cn-prune);
	padding: 6px 0 !important;
	border-radius: 0;
	text-decoration: underline;
	text-decoration-color: var(--cn-joue);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
	box-shadow: none;
}
body.cn-vitrine .cn-lien .wp-block-button__link:hover { background: none; color: var(--cn-prune-2); }
body.cn-vitrine .cn-bouton-clair .wp-block-button__link { background: var(--cn-papier); color: var(--cn-prune); }
body.cn-vitrine .cn-bouton-clair .wp-block-button__link:hover { background: var(--cn-blanc); color: var(--cn-prune); }

/* ------------------------------------------------------------------ */
/* Carnet : polaroïds et cartes                                        */
/* ------------------------------------------------------------------ */

.cn-polaroid,
.cn-carte-portrait,
.cn-carte-produit { margin: 0; position: relative; }

.cn-polaroid {
	background: var(--cn-blanc);
	padding: 12px 12px 0;
	border-radius: 3px;
	box-shadow: var(--cn-ombre);
}
.cn-polaroid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 1px; }
.cn-polaroid figcaption,
.cn-carte-portrait figcaption,
.cn-carte-produit figcaption {
	font-family: var(--cn-main);
	font-weight: 600;
	font-size: 25px;
	line-height: 1;
	color: var(--cn-prune);
	text-align: center;
	margin: 0 !important;
	padding: 14px 4px 16px;
}
.cn-carte-portrait,
.cn-carte-produit {
	background: var(--cn-blanc);
	border-radius: 20px;
	padding: 10px;
	box-shadow: var(--cn-ombre);
}
.cn-carte-portrait img,
.cn-carte-produit img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 13px; }
.cn-carte-portrait figcaption,
.cn-carte-produit figcaption { padding: 12px 4px 6px; }

/* Flèche dessinée à la main */
.cn-fleche,
.cn-paire:not(:has(.cn-fleche))::after,
.cn-trio-photo::after,
.cn-trio-portrait::after {
	content: '';
	display: block;
	width: 64px;
	height: 40px;
	background: var(--cn-joue);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M3 30c14-18 32-24 52-16' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M46 7l10 7-11 5' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 40'%3E%3Cpath d='M3 30c14-18 32-24 52-16' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3Cpath d='M46 7l10 7-11 5' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* ------------------------------------------------------------------ */
/* Ouverture                                                           */
/* ------------------------------------------------------------------ */

.cn-hero {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
	gap: clamp(28px, 4vw, 64px);
	padding-top: clamp(24px, 3vw, 48px) !important;
	padding-bottom: clamp(40px, 4vw, 72px) !important;
}
.cn-hero > * { max-width: none; margin: 0 !important; }
.cn-hero { overflow-x: clip; }
.cn-hero::before {
	content: '';
	position: absolute;
	right: 4%;
	top: 8%;
	width: min(52vw, 640px);
	aspect-ratio: 1;
	border-radius: 50%;
	background: radial-gradient(closest-side, var(--cn-joue-pale), transparent);
	opacity: .9;
	z-index: 0;
	pointer-events: none;
}
.cn-hero > * { position: relative; z-index: 1; }

.cn-titre-hero {
	font-size: clamp(38px, 2.6vw + 14px, 58px) !important;
	font-weight: 380 !important;
	line-height: 1.02 !important;
	letter-spacing: -0.025em !important;
	font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144 !important;
	max-width: 11ch;
}
.cn-chapo {
	font-size: clamp(17px, .4vw + 15px, 20px);
	line-height: 1.55;
	margin-top: 18px !important;
	max-width: 44ch;
}

.cn-preuves {
	list-style: none;
	margin: 24px 0 0 !important;
	padding: 0 !important;
	display: grid;
	gap: 8px;
	font-size: 15px;
	color: var(--cn-prune);
}
.cn-preuves li { display: flex; align-items: center; gap: 12px; margin: 0; }
.cn-preuves li::before {
	content: '';
	flex: 0 0 26px;
	height: 26px;
	border-radius: 50%;
	background: var(--cn-joue-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%232D1F2A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat;
}

/* Le trio : photo → portrait → t-shirt */
.cn-trio {
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	align-items: start;
	min-height: 0;
	padding: 12px 0 8px;
}
.cn-trio > figure { width: auto !important; }
.cn-trio-photo { grid-column: 1 / span 4; grid-row: 1; transform: translateX(-14%) rotate(-5deg); margin-top: 64px !important; z-index: 1; }
.cn-trio-adulte { grid-column: 4 / span 5; grid-row: 1; transform: rotate(2deg); margin-top: 0 !important; z-index: 3; box-shadow: var(--cn-ombre-forte); }
.cn-trio-enfant { grid-column: 9 / span 4; grid-row: 1; transform: rotate(-2deg); margin-top: 84px !important; z-index: 2; }
.cn-trio-photo::after { position: absolute; z-index: 4; left: 56%; top: -46px; transform: rotate(8deg); }

/* ------------------------------------------------------------------ */
/* Comment ça marche                                                    */
/* ------------------------------------------------------------------ */

.cn-parcours {
	counter-reset: cn-etape;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
	margin-top: clamp(40px, 5vw, 64px) !important;
}
.cn-parcours-etape { counter-increment: cn-etape; position: relative; }
.cn-parcours-etape::before {
	content: counter(cn-etape);
	position: absolute;
	z-index: 2;
	top: -22px;
	left: 18px;
	font-family: var(--cn-titre);
	font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144;
	font-weight: 360;
	font-size: 76px;
	line-height: 1;
	color: var(--cn-joue);
}
.cn-parcours-visuel { margin: 0 0 22px !important; }
.cn-parcours-visuel img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 20px; }
.cn-parcours-etape h3 { font-size: 25px; margin-bottom: 8px !important; }
.cn-parcours-etape p { max-width: 34ch; }

/* ------------------------------------------------------------------ */
/* Transformations                                                     */
/* ------------------------------------------------------------------ */

.cn-exemples {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: clamp(32px, 5vw, 80px);
	align-items: start;
}
.cn-exemples > * { max-width: none; margin: 0 !important; }
.cn-exemples-texte { position: sticky; top: 120px; }
.cn-exemples-texte p:not(.cn-note) { margin-top: 18px !important; max-width: 38ch; }

.cn-onglets { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px; }
body.cn-vitrine .cn-onglets [role="tab"] {
	background: transparent;
	color: var(--cn-prune);
	border: 1px solid color-mix(in srgb, var(--cn-prune) 22%, transparent);
	border-radius: 999px;
	padding: 9px 18px;
	font: 500 15px/1.2 var(--cn-corps);
	cursor: pointer;
	box-shadow: none;
}
body.cn-vitrine .cn-onglets [role="tab"]:hover { border-color: var(--cn-prune); }
body.cn-vitrine .cn-onglets [role="tab"][aria-selected="true"] { background: var(--cn-prune); color: var(--cn-papier); border-color: var(--cn-prune); }

.cn-transformations { display: grid; gap: 56px; }
.cn-transformations.est-onglets { gap: 0; }
.cn-paire {
	display: grid;
	grid-template-columns: minmax(0, 5fr) 72px minmax(0, 6fr);
	grid-template-areas: "titre titre titre" "avant fleche apres";
	align-items: center;
	gap: 8px;
}
.cn-paire[hidden] { display: none; }
.cn-paire-titre { grid-area: titre; font-size: 23px !important; margin: 0 0 14px !important; }
/* 1.3.3 — histoires : le titre et l'occasion restent visibles au-dessus de la paire. */
.cn-paire { grid-template-areas: "titre titre titre" "histoire histoire histoire" "avant fleche apres"; }
.cn-paire-titre { margin: 0 !important; }
.cn-paire-histoire {
	grid-area: histoire;
	margin: 0 0 22px !important;
	font-family: var(--cn-main);
	font-size: 26px;
	line-height: 1.2;
	color: var(--cn-prune-2);
}

/* Onglets à vignettes : une rangée de visages, défilante sur téléphone. */
.cn-onglets.a-vignettes {
	flex-wrap: nowrap;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	margin: 0 -6px 28px;
	padding: 6px;
}
.cn-onglets.a-vignettes::-webkit-scrollbar { display: none; }
/* La rangée défile dans sa colonne : sans ce plancher à 0, la grille s'élargit à la
   largeur des dix vignettes et le téléphone dézoome toute la page. */
.cn-transformations { grid-template-columns: minmax(0, 1fr); min-width: 0; }
.cn-onglets.a-vignettes { min-width: 0; max-width: 100%; }
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"] {
	flex: 0 0 auto;
	position: relative; /* contient le nom masqué, sinon il sort du défilement */
	width: 62px;
	height: 62px;
	padding: 0;
	border-radius: 50%;
	overflow: hidden;
	border: 2px solid var(--cn-papier);
	background: var(--cn-sable);
	box-shadow: 0 0 0 1px color-mix(in srgb, var(--cn-prune) 14%, transparent);
	scroll-snap-align: start;
	transition: box-shadow .2s ease, transform .2s ease;
}
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"] img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 22%;
	transform: scale(1.75);
	transform-origin: 50% 24%;
}
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"] img.est-recadree { object-position: 50% 50%; transform: none; }
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"]:hover { box-shadow: 0 0 0 2px var(--cn-sable); transform: translateY(-2px); }
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"][aria-selected="true"] { background: var(--cn-sable); box-shadow: 0 0 0 3px var(--cn-prune); }
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"]:focus-visible { outline-offset: 5px; }
.cn-onglet-nom { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { body.cn-vitrine .cn-onglets.a-vignettes [role="tab"] { transition: none; } }

/* Défilement des histoires (1.3.5) : anneau qui se remplit autour de la vignette
   ouverte, puis la suivante est « touchée » (enfoncement, onde) avant de s'ouvrir.
   Posé par vitrine.js, jamais si le système demande moins d'animations. */
@property --cn-avance { syntax: '<number>'; inherits: false; initial-value: 0; }
@keyframes cn-avance { to { --cn-avance: 1; } }
@keyframes cn-appui { 0%, 100% { transform: none; } 45% { transform: scale(.86); } }
@keyframes cn-onde {
	0% { opacity: 0; transform: translate(-50%, -50%) scale(.25); }
	35% { opacity: .9; }
	100% { opacity: 0; transform: translate(-50%, -50%) scale(1.15); }
}
body.cn-vitrine .est-en-defilement .cn-onglets.a-vignettes [role="tab"][aria-selected="true"]::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	pointer-events: none;
	z-index: 2;
	background: conic-gradient(var(--cn-joue) calc(var(--cn-avance) * 1turn), transparent 0);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3.5px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3.5px));
	animation: cn-avance var(--cn-defilement, 5.5s) linear forwards;
}
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"].est-indice { animation: cn-appui .9s ease-in-out; }
body.cn-vitrine .cn-onglets.a-vignettes [role="tab"].est-indice::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	pointer-events: none;
	z-index: 1;
	background: color-mix(in srgb, var(--cn-papier) 75%, transparent);
	opacity: 0;
	animation: cn-onde .9s ease-out;
}
.cn-paire-avant { grid-area: avant; transform: rotate(-4deg); }
.cn-paire-apres { grid-area: apres; transform: rotate(1.5deg); box-shadow: var(--cn-ombre-forte); }
.cn-paire .cn-fleche,
.cn-paire:not(:has(.cn-fleche))::after { grid-area: fleche; width: 72px; height: 44px; transform: rotate(6deg); }

/* ------------------------------------------------------------------ */
/* Supports                                                            */
/* ------------------------------------------------------------------ */

.cn-supports {
	list-style: none;
	margin: clamp(36px, 4vw, 56px) auto 0 !important;
	padding: 0 !important;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 28px);
}
.cn-support { margin: 0; position: relative; }
.cn-support-lien { display: block; text-decoration: none !important; color: inherit; }
.cn-support-visuel { display: block; overflow: hidden; border-radius: 20px; background: var(--cn-lait); }
.cn-support-visuel img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.cn-support-lien:hover .cn-support-visuel img { transform: scale(1.03); }
.cn-support-texte { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 16px 4px 0; }
.cn-support-nom { font-family: var(--cn-titre); font-variation-settings: 'SOFT' 100; font-size: 23px; color: var(--cn-prune); }
.cn-support-prix { font-size: 15px; color: var(--cn-texte); white-space: nowrap; }
.cn-support-prix .amount { font-weight: 600; color: var(--cn-prune); }
.cn-support-action {
	display: inline-block;
	margin: 10px 4px 0;
	font-weight: 600;
	font-size: 15px;
	color: var(--cn-prune);
	text-decoration: underline;
	text-decoration-color: var(--cn-joue);
	text-decoration-thickness: 2px;
	text-underline-offset: 6px;
}
.cn-support.est-bientot .cn-support-visuel img { filter: saturate(.85); opacity: .92; }
.cn-support.est-bientot .cn-support-nom { color: color-mix(in srgb, var(--cn-prune) 60%, var(--cn-papier)); }
.cn-support.est-bientot .cn-support-prix { font-style: normal; font-size: 13px; padding: 3px 10px; border-radius: 999px; background: var(--cn-lait); }

/* Étape 1 du tunnel : le support en vente est le choix évident. */
.cn-supports.est-tunnel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cn-supports.est-tunnel .est-disponible { grid-column: 1 / -1; }
.cn-supports.est-tunnel .est-disponible .cn-support-lien {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	align-items: center;
	gap: clamp(24px, 4vw, 64px);
	background: var(--cn-blanc);
	border-radius: 28px;
	padding: clamp(14px, 1.5vw, 20px);
	box-shadow: var(--cn-ombre);
}
.cn-supports.est-tunnel .est-disponible .cn-support-texte { flex-direction: column; align-items: flex-start; gap: 6px; padding: 0; }
.cn-supports.est-tunnel .est-disponible .cn-support-nom { font-size: clamp(30px, 2vw + 16px, 44px); }
.cn-supports.est-tunnel .est-disponible .cn-support-prix { font-size: 18px; }
.cn-supports.est-tunnel .est-disponible .cn-support-action {
	grid-column: 2;
	justify-self: start;
	align-self: start;
	margin: 30px 0 0;
	background: var(--cn-prune);
	color: var(--cn-papier);
	padding: 18px 32px;
	border-radius: 999px;
	text-decoration: none;
	font-size: 17px;
	box-shadow: 0 10px 24px -12px rgba(45, 31, 42, .55);
}
.cn-supports.est-tunnel .est-disponible .cn-support-lien:hover .cn-support-action { background: var(--cn-prune-2); }
.cn-supports.est-tunnel .est-disponible .cn-support-visuel { grid-row: span 2; }
.cn-supports.est-tunnel .est-disponible .cn-support-visuel img { aspect-ratio: 1 / 1; }
.cn-supports.est-tunnel .est-disponible .cn-support-texte { align-self: end; }
.cn-supports.est-tunnel .est-bientot .cn-support-visuel img { aspect-ratio: 5 / 4; }
.cn-support-details { display: block; font-size: 15px; color: var(--cn-texte); }
.cn-support-etapes { display: grid; gap: 10px; margin-top: 22px; counter-reset: cn-se; font-size: 15px; color: var(--cn-prune); }
.cn-support-etapes span { counter-increment: cn-se; display: flex; align-items: center; gap: 12px; }
.cn-support-etapes span::before { content: counter(cn-se); flex: 0 0 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--cn-lait); font-size: 13px; font-weight: 600; }

/* ------------------------------------------------------------------ */
/* Cadeau                                                              */
/* ------------------------------------------------------------------ */

.cn-cadeau {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}
.cn-cadeau > * { max-width: none; margin: 0 !important; }
.cn-cadeau-visuel img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 28px; }
.cn-cadeau-texte > p { margin-top: 18px !important; max-width: 42ch; }
.cn-occasions { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 26px 0 0 !important; padding: 0 !important; }
.cn-occasions li { margin: 0; padding: 7px 14px; border-radius: 999px; background: var(--cn-lait); color: var(--cn-prune); font-size: 15px; }
.cn-astuce {
	margin-top: 26px !important;
	padding-left: 16px;
	border-left: 2px solid var(--cn-joue);
	font-size: 15px;
}

/* ------------------------------------------------------------------ */
/* Engagements                                                         */
/* ------------------------------------------------------------------ */

.cn-engagements-liste {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(24px, 3vw, 48px);
	margin-top: clamp(36px, 4vw, 56px) !important;
}
.cn-engagement { border-top: 1px solid color-mix(in srgb, var(--cn-prune) 18%, transparent); padding-top: 22px; }
.cn-engagement::before {
	content: '';
	display: block;
	width: 36px;
	height: 36px;
	margin-bottom: 18px;
	background: var(--cn-joue);
	-webkit-mask: var(--cn-icone) center / contain no-repeat;
	mask: var(--cn-icone) center / contain no-repeat;
}
.cn-eng-voir { --cn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 18s5.5-10 15-10 15 10 15 10-5.5 10-15 10S3 18 3 18z'/%3E%3Ccircle cx='18' cy='18' r='4.5'/%3E%3C/svg%3E"); }
.cn-eng-meme { --cn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='5' width='19' height='24' rx='2'/%3E%3Cpath d='M12 31h17a2 2 0 0 0 2-2V12'/%3E%3Cpath d='M10 17l3 3 6-7'/%3E%3C/svg%3E"); }
.cn-eng-photo { --cn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 3l12 5v9c0 8-5.5 13-12 16C11.5 30 6 25 6 17V8z'/%3E%3Cpath d='M13 17.5l3.5 3.5 6.5-7'/%3E%3C/svg%3E"); }
.cn-eng-atelier { --cn-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 33s11-9.5 11-18a11 11 0 0 0-22 0c0 8.5 11 18 11 18z'/%3E%3Ccircle cx='18' cy='15' r='4'/%3E%3C/svg%3E"); }
.cn-engagement h3 { font-size: 22px; margin-bottom: 8px !important; }

/* ------------------------------------------------------------------ */
/* Questions                                                           */
/* ------------------------------------------------------------------ */

.cn-faq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.cn-faq > * { max-width: none; margin: 0 !important; }
.cn-faq-liste { border-top: 1px solid var(--cn-sable); }
.cn-question { border-bottom: 1px solid var(--cn-sable); margin: 0 !important; }
.cn-question summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 22px 0;
	font-family: var(--cn-titre);
	font-variation-settings: 'SOFT' 100;
	font-size: 21px;
	line-height: 1.3;
	color: var(--cn-prune);
}
.cn-question summary::-webkit-details-marker { display: none; }
.cn-question summary::after {
	content: '';
	flex: 0 0 22px;
	height: 22px;
	background: var(--cn-prune);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M11 4v14M4 11h14' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath d='M11 4v14M4 11h14' stroke='%23000' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .2s ease;
}
.cn-question[open] summary::after { transform: rotate(45deg); }
.cn-question p { padding: 0 0 24px; max-width: 64ch; }

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

.cn-final {
	background: var(--cn-prune);
	color: color-mix(in srgb, var(--cn-papier) 82%, var(--cn-prune));
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}
.cn-final > * { max-width: none; margin: 0 !important; }
body.cn-vitrine .cn-final h2 { color: var(--cn-papier); max-width: 16ch; }
.cn-final-texte p { margin-top: 18px !important; max-width: 44ch; }
.cn-final-visuel { transform: rotate(-3deg); max-width: 360px !important; justify-self: center; }
.cn-final-visuel img { aspect-ratio: 4 / 5; }

/* ------------------------------------------------------------------ */
/* Étapes du tunnel                                                    */
/* ------------------------------------------------------------------ */

.cn-etapes { margin: 0 0 32px; }
.cn-etapes ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 0; counter-reset: none; }
.cn-etapes li { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; font-weight: 500; color: color-mix(in srgb, var(--cn-texte) 75%, var(--cn-papier)); }
.cn-etapes li + li::before { content: ''; width: clamp(16px, 4vw, 48px); height: 1px; background: var(--cn-sable); margin: 0 12px 0 2px; }
.cn-etape-num {
	display: inline-grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 1px solid var(--cn-sable);
	font-size: 13px;
	font-weight: 600;
	background: var(--cn-papier);
}
.cn-etape-num svg { width: 14px; height: 14px; }
.cn-etapes .est-actif { color: var(--cn-prune); font-weight: 600; }
.cn-etapes .est-actif .cn-etape-num { background: var(--cn-prune); border-color: var(--cn-prune); color: var(--cn-papier); }
.cn-etapes .est-fait { color: var(--cn-prune); }
.cn-etapes .est-fait .cn-etape-num { background: var(--cn-joue-pale); border-color: var(--cn-joue-pale); color: var(--cn-prune); }
.cn-etapes a { text-decoration: none; }
.cn-etapes a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ */
/* Page « Créer mon portrait »                                          */
/* ------------------------------------------------------------------ */

.cn-tunnel-tete { padding-top: clamp(28px, 4vw, 56px) !important; padding-bottom: clamp(56px, 7vw, 104px) !important; }
.cn-titre-tunnel { font-size: clamp(40px, 3.4vw + 16px, 64px) !important; font-weight: 380 !important; font-variation-settings: 'SOFT' 100, 'WONK' 1, 'opsz' 144 !important; }
.cn-tunnel-tete .cn-chapo { margin-top: 14px !important; }

.cn-conseils {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
	gap: clamp(32px, 6vw, 96px);
	align-items: center;
}
.cn-conseils > * { max-width: none; margin: 0 !important; }
.cn-section .cn-conseils-visuel { transform: rotate(-3deg); max-width: 360px; justify-self: center; }
.cn-conseils-texte > p { margin-top: 16px !important; max-width: 46ch; }
.cn-oui, .cn-non { list-style: none; margin: 24px 0 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.cn-oui li, .cn-non li { display: flex; gap: 12px; align-items: flex-start; margin: 0; color: var(--cn-prune); }
.cn-oui li::before, .cn-non li::before { content: ''; flex: 0 0 24px; height: 24px; border-radius: 50%; margin-top: 1px; }
.cn-oui li::before { background: var(--cn-joue-pale) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%232D1F2A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 13px no-repeat; }
.cn-non li { color: var(--cn-texte); }
.cn-non li::before { background: var(--cn-papier) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.5 4.5l7 7M11.5 4.5l-7 7' fill='none' stroke='%235B4A56' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / 12px no-repeat; border: 1px solid var(--cn-sable); }

.cn-compositions-liste {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(16px, 2vw, 28px);
	margin-top: clamp(32px, 4vw, 48px) !important;
}
.cn-compositions-liste > figure { width: auto !important; margin: 0 !important; }
.cn-compositions-liste > figure:nth-child(odd) { transform: rotate(-1.5deg); }
.cn-compositions-liste > figure:nth-child(even) { transform: rotate(1.5deg) translateY(14px); }

/* ------------------------------------------------------------------ */
/* Pied de page                                                        */
/* ------------------------------------------------------------------ */

.cn-pied { background: var(--cn-papier); border-top: 1px solid var(--cn-sable); padding: clamp(56px, 6vw, 88px) var(--cn-gouttiere) 28px; font-size: 15px; }
.cn-pied-haut, .cn-pied-bas { max-width: var(--cn-large); margin: 0 auto; }
.cn-pied-haut { display: flex; flex-wrap: wrap; gap: 40px 56px; }
.cn-pied-marque { flex: 3 1 320px; }
.cn-pied-col { flex: 1 1 160px; }
.cn-pied-marque p { margin: 16px 0 20px; max-width: 34ch; }
.cn-pied-logo { text-decoration: none !important; }
.cn-pied-cta { font-weight: 600; text-decoration: underline; text-decoration-color: var(--cn-joue) !important; text-decoration-thickness: 2px !important; text-underline-offset: 6px; }
.cn-pied-titre { font-weight: 600; color: var(--cn-prune); margin: 6px 0 14px; }
.cn-pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cn-pied-col a { text-decoration: none; color: var(--cn-texte); }
.cn-pied-col a:hover { color: var(--cn-prune); text-decoration: underline; }
.cn-pied-bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; margin-top: 56px; padding-top: 22px; border-top: 1px solid var(--cn-sable); font-size: 14px; }
.cn-pied-bas p { margin: 0; }
.cn-pied-garanties { display: flex !important; flex-wrap: wrap; gap: 8px 22px !important; }
.cn-pied-garanties li { display: flex; align-items: center; gap: 8px; }
.cn-pied-garanties li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--cn-joue); }

/* ------------------------------------------------------------------ */
/* Barre d'action sur téléphone                                         */
/* ------------------------------------------------------------------ */

.cn-barre-mobile { display: none; }
@media (max-width: 760px) {
	.cn-barre-mobile {
		display: flex;
		position: fixed;
		left: 12px;
		right: 12px;
		bottom: max(12px, env(safe-area-inset-bottom));
		z-index: 99;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 10px 10px 10px 18px;
		border-radius: 999px;
		background: var(--cn-blanc);
		box-shadow: var(--cn-ombre-forte);
		font-size: 13px;
		color: var(--cn-texte);
		transform: translateY(calc(100% + 24px));
		transition: transform .28s cubic-bezier(.2, .7, .2, 1);
	}
	.cn-barre-mobile.est-visible { transform: none; }
	.cn-barre-mobile span { flex: 1 1 auto; min-width: 0; line-height: 1.3; }
	.cn-barre-mobile a { flex: 0 0 auto; background: var(--cn-prune); color: var(--cn-papier) !important; text-decoration: none; font-weight: 600; font-size: 15px; padding: 13px 20px; border-radius: 999px; white-space: nowrap; }
}

/* ------------------------------------------------------------------ */
/* Tablette et téléphone                                               */
/* ------------------------------------------------------------------ */

@media (max-width: 1024px) {
	.cn-engagements-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cn-supports { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cn-pied-marque { flex-basis: 100%; }
	.cn-exemples, .cn-faq { grid-template-columns: minmax(0, 1fr); }
	.cn-exemples-texte { position: static; }
	.cn-titre-section { max-width: 22ch; }
}

@media (max-width: 860px) {
	.cn-hero { grid-template-columns: minmax(0, 1fr); padding-top: 24px; }
	.cn-hero::before { top: 0; right: -20%; width: 110vw; }
	.cn-trio { order: -1; min-height: 0; padding: 8px 0 0; }
	.cn-trio { padding: 8px 6px 0; }
	.cn-trio-photo { grid-column: 1 / span 4; margin-top: 34px !important; transform: rotate(-4deg); }
	.cn-trio-adulte { grid-column: 5 / span 5; }
	.cn-trio-enfant { grid-column: 9 / span 4; margin-top: 70px !important; }
	.cn-polaroid figcaption, .cn-carte-portrait figcaption, .cn-carte-produit figcaption { font-size: 20px; padding: 10px 2px 12px; }
	.cn-polaroid { padding: 7px 7px 0; }
	.cn-carte-portrait, .cn-carte-produit { padding: 6px; border-radius: 14px; }
	.cn-carte-portrait img, .cn-carte-produit img { border-radius: 9px; }
	.cn-trio-photo::after { width: 44px; height: 28px; top: -34px; }
	.cn-titre-hero { max-width: 14ch; }

	.cn-parcours { grid-template-columns: minmax(0, 1fr); gap: 48px; }
	.cn-parcours-etape { display: grid; grid-template-columns: 120px minmax(0, 1fr); column-gap: 20px; align-items: start; }
	.cn-parcours-visuel { grid-row: span 2; margin: 0 !important; }
	.cn-parcours-visuel img { border-radius: 14px; }
	.cn-parcours-etape::before { font-size: 52px; top: -18px; left: 8px; }
	.cn-parcours-etape h3 { font-size: 22px; }

	.cn-cadeau, .cn-conseils, .cn-final { grid-template-columns: minmax(0, 1fr); }
	.cn-final-visuel { max-width: 240px !important; }
	.cn-section .cn-conseils-visuel { max-width: 260px; }
	.cn-compositions-liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.cn-supports.est-tunnel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cn-supports.est-tunnel .est-disponible .cn-support-lien { grid-template-columns: minmax(0, 1fr); }
	.cn-supports.est-tunnel .est-disponible .cn-support-action { grid-column: 1; margin: 0 0 6px; justify-self: stretch; text-align: center; }
	.cn-supports.est-tunnel .est-disponible .cn-support-visuel { grid-row: auto; }
}

@media (max-width: 560px) {
	body.cn-vitrine { font-size: 16px; }
	.cn-supports { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.cn-support-texte { flex-direction: column; gap: 2px; padding-top: 10px; }
	.cn-support-nom { font-size: 19px; }
	.cn-paire { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); grid-template-areas: "titre titre" "histoire histoire" "avant apres"; gap: 0; }
	.cn-paire-histoire { font-size: 23px; margin-bottom: 14px !important; }
	.cn-paire .cn-fleche, .cn-paire::after { display: none !important; }
	.cn-paire-apres { margin-left: -10px !important; margin-top: 28px !important; }
	.cn-transformations { min-width: 0; overflow: hidden; margin-inline: -20px; padding-inline: 20px; }
	.cn-onglets { flex-wrap: nowrap; overflow-x: auto; margin-inline: -20px; padding: 2px 20px; scrollbar-width: none; }
	.cn-onglets [role="tab"] { flex: 0 0 auto; }
	.cn-engagements-liste { grid-template-columns: minmax(0, 1fr); }
	.cn-pied-col { flex-basis: 40%; }
	.cn-etapes .cn-etape-nom { font-size: 13px; }
	.cn-etapes li:not(.est-actif) .cn-etape-nom { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
	.cn-question summary { font-size: 19px; }
	.cn-actions { gap: 10px 22px; }
	.cn-bouton, .cn-lien { width: 100%; text-align: center; }
	.cn-bouton .wp-block-button__link { width: 100%; text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
	.cn-support-visuel img, .cn-barre-mobile, .cn-question summary::after { transition: none; }
}

/* Logo image remplacé par la marque : le titre texte d'Astra ferait doublon. */
body.cn-vitrine .ast-site-identity:has(.cn-logo) .ast-site-title-wrap { display: none; }

/* Modern Cart : pastille et en-tête aux couleurs Chibi Nova (non réglables dans sa version gratuite). */
html:root {
	--moderncart-floating-count-bg-color: #E0868A;
	--moderncart-floating-count-bg-color-light: #E0868A12;
	--moderncart-floating-count-text-color: #2D1F2A;
	--moderncart-header-font-color: #2D1F2A;
	--moderncart-header-font-color-light: #2D1F2A12;
}

/* ------------------------------------------------------------------ */
/* Pages de texte — 1.3.4 (mentions légales, CGV, confidentialité…)    */
/* ------------------------------------------------------------------ */

body.cn-page-texte .site-main > article { max-width: 760px; margin-inline: auto; }
body.cn-page-texte .entry-content > * { max-width: none; }
body.cn-page-texte .entry-content h2 { font-size: clamp(24px, 1vw + 18px, 30px); margin: 2.2em 0 .6em; }
body.cn-page-texte .entry-content h3 { font-size: 20px; margin: 1.6em 0 .4em; }
body.cn-page-texte .entry-content p,
body.cn-page-texte .entry-content li { line-height: 1.7; }
body.cn-page-texte .entry-content ul,
body.cn-page-texte .entry-content ol { padding-left: 1.3em; }
body.cn-page-texte .entry-content li + li { margin-top: .35em; }
body.cn-page-texte .wp-block-table { overflow-x: auto; margin: 1.4em 0; }
body.cn-page-texte .wp-block-table table { border-collapse: collapse; width: 100%; min-width: 520px; font-size: 15px; background: var(--cn-blanc); }
body.cn-page-texte .wp-block-table th,
body.cn-page-texte .wp-block-table td { border: 1px solid var(--cn-sable); padding: 10px 12px; text-align: left; vertical-align: top; }
body.cn-page-texte .wp-block-table thead th { background: var(--cn-lait); color: var(--cn-prune); font-weight: 600; border-bottom-width: 1px; }
