/*
Theme Name: Pulsed by Sophie Dehareng
Theme URI: https://calendly.com/sophiedeharengpro
Description: Thème enfant de Twenty Twenty-Five pour « Pulsed by Sophie Dehareng » : ambiance dark feminine × Y2K (crème rosé, noir velours, bordeaux, chrome et reflets holographiques), stickers, effets au survol et à la souris. « Sérieux sur le fond, fun sur la forme. » Polices hébergées dans le thème.
Author: Sophie Dehareng
Template: twentytwentyfive
Version: 0.24.0
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pulsed-child
*/

/* ==========================================================================
   0. Raccourcis (les couleurs se modifient dans Apparence > Éditeur > Styles)
   ========================================================================== */
:root {
	--p-turquoise: var(--wp--preset--color--turquoise);
	--p-turquoise-fonce: var(--wp--preset--color--turquoise-fonce);
	--p-turquoise-clair: var(--wp--preset--color--turquoise-clair);
	--p-noir: var(--wp--preset--color--noir);
	--p-papier: var(--wp--preset--color--papier);
	--p-blanc: var(--wp--preset--color--blanc);
	--p-jaune: var(--wp--preset--color--jaune);
	--p-gris: var(--wp--preset--color--gris-clair);

	/* Noms clairs pour la DA Dark × Y2K (les slugs WordPress gardent leurs anciens noms) */
	--p-accent: var(--p-turquoise);              /* bordeaux */
	--p-accent-texte: var(--p-turquoise-fonce);  /* bordeaux lisible */
	--p-rose-pale: var(--p-turquoise-clair);
	--p-rose: var(--p-jaune);                    /* rose poudré */
	--p-lilas: var(--wp--preset--color--lilas, #CDB8F2);
	--p-glace: var(--wp--preset--color--bleu-glace, #BFE3F2);
	--p-holo: var(--wp--preset--gradient--holo, linear-gradient(115deg, #F6C9D4, #D9C8F5 30%, #C6E6F4 55%, #F4E2F0 75%, #F6C9D4));
	--p-creme-sur-noir: #F4E9E6;
	--p-accroche: var(--wp--preset--font-family--accroche);
	--p-mono: var(--wp--preset--font-family--mono);

	--p-manuscrit: var(--wp--preset--font-family--manuscrit);
	--p-titres: var(--wp--preset--font-family--titres);
	--p-logo: var(--wp--preset--font-family--logo);

	--p-radius-s: var(--wp--custom--radius--small);
	--p-radius-m: var(--wp--custom--radius--medium);
	--p-radius-l: var(--wp--custom--radius--large);

	--p-img: url("assets/images/");
	--p-rebond: cubic-bezier(0.34, 1.56, 0.64, 1);
	--p-doux: cubic-bezier(0.22, 1, 0.36, 1);
	--p-hauteur-admin: var(--wp-admin--admin-bar--height, 0px);
}

/* ==========================================================================
   1. Base : fond uni, moderne
   ========================================================================== */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--p-noir);
	outline-offset: 3px;
	box-shadow: 0 0 0 6px var(--p-jaune);
	border-radius: 6px;
}
::selection { background: var(--p-jaune); color: var(--p-noir); }

/* Liens dans le texte : soulignement fin qui devient un surlignage jaune au survol */
:where(.wp-block-post-content, .entry-content) p a:not(.wp-element-button),
:where(.wp-block-post-content, .entry-content) li a {
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	background: linear-gradient(var(--p-jaune), var(--p-jaune)) left 92% / 0% 40% no-repeat;
	transition: background-size 0.35s var(--p-doux), color 0.2s;
}
:where(.wp-block-post-content, .entry-content) p a:not(.wp-element-button):hover,
:where(.wp-block-post-content, .entry-content) li a:hover {
	background-size: 100% 40%;
	text-decoration: none;
	color: var(--p-noir);
}

/* ==========================================================================
   2. Styles de blocs (éditeur > bloc > onglet « Styles »)
   ========================================================================== */

/* Manuscrit : écriture main, légèrement penchée */
.is-style-manuscrit,
.has-manuscrit-font-family {
	font-family: var(--p-manuscrit) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 400 !important;
	line-height: 1.15;
	-webkit-text-stroke: 0.035em currentColor; /* épaissit le trait, effet feutre */
}
.is-style-manuscrit {
	transform: rotate(-2deg);
	transform-origin: left center;
}
/* Mot en turquoise dans un titre : turquoise foncé pour rester lisible */
.p-accent,
.is-style-manuscrit mark { background: none; color: var(--p-turquoise-fonce); }

/* Capitales très espacées (style logo) */
.is-style-espace {
	font-family: var(--p-logo) !important;
	letter-spacing: var(--wp--custom--tracking--logo) !important;
	text-transform: uppercase;
}

/* Surlignage jaune façon feutre */
.p-surligne {
	background: linear-gradient(transparent 55%, var(--p-jaune) 55%, var(--p-jaune) 92%, transparent 92%);
	padding: 0 0.1em;
	color: inherit;
}

/* Groupe « Papier froissé » (touche crafty ponctuelle, pas en fond général) */
.is-style-papier {
	background-color: var(--p-papier);
	background-image: url("assets/images/papier-texture.webp");
	background-size: 600px auto;
}

/* Groupe « Holographique » (grand appel à l'action) — ancienne classe gardée pour le contenu existant */
.is-style-turquoise-papier {
	background: var(--p-holo);
	color: var(--p-noir);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-l);
	box-shadow: 8px 8px 0 var(--p-noir);
}
.is-style-turquoise-papier :where(h1, h2, h3, h4, p, li, a:not(.wp-element-button)) { color: var(--p-noir); }

/* Groupe « Bord déchiré » : haut et bas façon papier arraché */
.is-style-dechire {
	-webkit-mask:
		url("assets/images/bord-dechire.svg") top / 100% 22px no-repeat,
		linear-gradient(#000, #000) center / 100% calc(100% - 42px) no-repeat,
		url("assets/images/bord-dechire-bas.svg") bottom / 100% 22px no-repeat;
	mask:
		url("assets/images/bord-dechire.svg") top / 100% 22px no-repeat,
		linear-gradient(#000, #000) center / 100% calc(100% - 42px) no-repeat,
		url("assets/images/bord-dechire-bas.svg") bottom / 100% 22px no-repeat;
}

/* Carte sticker : carte blanche, contour noir, ombre décalée, légère inclinaison + effet 3D au survol */
.is-style-carte-sticker,
.p-carte {
	--p-tilt: -1deg;
	--rx: 0deg;
	--ry: 0deg;
	position: relative;
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-m);
	box-shadow: 6px 6px 0 var(--p-noir);
	padding: var(--wp--preset--spacing--40);
	transform: perspective(800px) rotate(var(--p-tilt)) rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform 0.4s var(--p-rebond), box-shadow 0.3s ease;
	will-change: transform;
}
.is-style-carte-sticker:nth-child(even) { --p-tilt: 1.2deg; }
.is-style-carte-sticker:nth-child(3n) { --p-tilt: -0.5deg; }
.is-style-carte-sticker:hover,
.p-carte:hover {
	--p-tilt: 0deg;
	box-shadow: 10px 10px 0 var(--p-noir);
	transition: transform 0.1s linear, box-shadow 0.3s ease;
}

/* Scotch (washi tape) posé sur une image ou une carte */
.is-style-scotch { position: relative; overflow: visible; }
.is-style-scotch::before {
	content: "";
	position: absolute;
	z-index: 2;
	top: -14px;
	left: 50%;
	width: 110px;
	height: 30px;
	background: color-mix(in srgb, var(--p-jaune) 75%, transparent);
	transform: translateX(-50%) rotate(-4deg);
	clip-path: polygon(3% 0, 97% 4%, 100% 25%, 97% 50%, 100% 75%, 96% 100%, 4% 96%, 0 75%, 3% 50%, 0 25%);
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
	pointer-events: none;
}
.is-style-scotch:nth-of-type(even)::before {
	background: color-mix(in srgb, var(--p-turquoise-clair) 85%, transparent);
	transform: translateX(-50%) rotate(5deg);
}

/* Image « Sticker » : contour blanc épais + ombre (photos détourées) */
.is-style-sticker img {
	filter:
		drop-shadow(3px 0 0 var(--p-blanc)) drop-shadow(-3px 0 0 var(--p-blanc))
		drop-shadow(0 3px 0 var(--p-blanc)) drop-shadow(0 -3px 0 var(--p-blanc))
		drop-shadow(0 10px 12px rgba(17, 17, 17, 0.22));
	transition: transform 0.4s var(--p-rebond);
}
.is-style-sticker-ombre img { filter: drop-shadow(0 10px 12px rgba(17, 17, 17, 0.22)); transition: transform 0.4s var(--p-rebond); }
.is-style-sticker:hover img,
.is-style-sticker-ombre:hover img { transform: rotate(-2deg) scale(1.03); }

/* ==========================================================================
   3. Boutons : moderne, ombre décalée, « appui » au clic, petite étoile au survol
   ========================================================================== */
.wp-element-button,
.wp-block-button__link {
	position: relative;
	transition: transform 0.25s var(--p-rebond), box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}
.wp-element-button:hover,
.wp-block-button__link:hover {
	transform: translate(-2px, -2px) rotate(-1.5deg);
	box-shadow: 7px 7px 0 var(--p-noir);
}
.wp-element-button:active,
.wp-block-button__link:active {
	transform: translate(4px, 4px);
	box-shadow: 0 0 0 var(--p-noir);
	transition-duration: 0.05s;
}
/* étoile qui « pop » au survol */
.wp-block-button__link::after {
	content: "";
	position: absolute;
	top: -12px;
	right: -10px;
	width: 26px;
	height: 26px;
	background: url("assets/images/sticker-etoile.svg") center / contain no-repeat;
	transform: scale(0) rotate(-60deg);
	transition: transform 0.35s var(--p-rebond);
	pointer-events: none;
}
.wp-block-button__link:hover::after,
.wp-block-button__link:focus-visible::after { transform: scale(1) rotate(0deg); }

.wp-block-button.is-style-contour .wp-block-button__link {
	background: transparent;
	color: var(--p-noir);
}
.wp-block-button.is-style-contour .wp-block-button__link:hover {
	background: var(--p-noir);
	color: var(--p-blanc);
}

/* ==========================================================================
   4. Petits éléments réutilisables
   ========================================================================== */
.p-pastille {
	display: inline-block;
	padding: 0.35em 0.95em;
	border-radius: 999px;
	background: var(--p-turquoise-clair);
	color: var(--p-noir);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.p-tva { font-size: var(--wp--preset--font-size--small); opacity: 0.85; }
.p-a-completer {
	background: var(--p-jaune);
	color: var(--p-noir);
	outline: 2px dashed var(--p-noir);
	padding: 0 0.25em;
	font-weight: 700;
}

/* Stickers décoratifs : <span class="p-sticker p-sticker--etoile" aria-hidden="true"></span> */
.p-sticker {
	display: inline-block;
	width: var(--p-taille, 2.5rem);
	aspect-ratio: 1;
	background: center / contain no-repeat;
	pointer-events: none;
	vertical-align: middle;
}
.p-sticker--etoile { background-image: url("assets/images/sticker-etoile.svg"); animation: p-scintille 3.5s ease-in-out infinite; }
.p-sticker--fleche { background-image: url("assets/images/sticker-fleche.svg"); aspect-ratio: 2 / 1; width: var(--p-taille, 4.5rem); }
.p-sticker--cercle { background-image: url("assets/images/sticker-cercle.svg"); }
.p-souligne {
	background: url("assets/images/sticker-souligne.svg") left 100% / 100% 0.45em no-repeat;
	padding-bottom: 0.15em;
}

/* ==========================================================================
   5. En-tête
   ========================================================================== */
.p-entete {
	position: sticky;
	top: var(--p-hauteur-admin);
	z-index: 100;
	background: color-mix(in srgb, var(--p-papier) 82%, transparent);
	-webkit-backdrop-filter: blur(12px) saturate(1.2);
	backdrop-filter: blur(12px) saturate(1.2);
	transition: box-shadow 0.3s ease, padding 0.3s var(--p-doux);
}
.is-scrolle .p-entete {
	box-shadow: 0 1px 0 var(--p-noir);
	padding-top: 0.6rem !important;
	padding-bottom: 0.6rem !important;
}

/* Logo texte provisoire (remplaçable par le bloc « Logo du site ») */
.p-logo {
	margin: 0;
	font-family: var(--p-logo);
	font-weight: 700;
	font-size: clamp(0.95rem, 0.85rem + 0.4vw, 1.15rem);
	line-height: 1.12;
	letter-spacing: var(--wp--custom--tracking--logo);
	text-transform: uppercase;
}
.p-logo a {
	position: relative;
	display: inline-block;
	color: var(--p-noir);
	text-decoration: none;
}
.p-logo mark,
.p-logo .p-initiale {
	background: none;
	color: var(--p-turquoise);
	display: inline-block;
	transition: transform 0.4s var(--p-rebond);
}
.p-logo a:hover .p-initiale,
.p-logo a:hover mark { transform: rotate(-12deg) scale(1.15); }
.p-logo-baseline {
	margin: 0;
	font-family: var(--wp--preset--font-family--texte);
	font-size: 0.75rem;
	line-height: 1.2;
	font-weight: 400;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--p-noir);
	opacity: 0.8;
}
/* petite étoile qui tourne au survol du logo */
.p-logo a::after {
	content: "";
	position: absolute;
	top: -0.5em;
	right: -1.4em;
	width: 1.1em;
	height: 1.1em;
	background: url("assets/images/sticker-etoile.svg") center / contain no-repeat;
	transform: scale(0.75) rotate(0deg);
	transition: transform 0.6s var(--p-rebond);
}
.p-logo a:hover::after { transform: scale(1) rotate(144deg); }

/* Menu : soulignement dessiné à la main qui se trace au survol */
.p-entete .wp-block-navigation .wp-block-navigation-item__content {
	padding: 0.35em 0.15em;
	background: url("assets/images/sticker-souligne.svg") left 100% / 0% 0.45em no-repeat;
	transition: background-size 0.4s var(--p-doux);
	text-decoration: none;
}
.p-entete .wp-block-navigation .wp-block-navigation-item__content:hover,
.p-entete .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.p-entete .wp-block-navigation .wp-block-navigation-item__content[aria-current="page"] {
	background-size: 100% 0.45em;
}

/* Sous-menu « Offres » : petite carte sticker qui s'ouvre avec un rebond */
.p-entete .wp-block-navigation__submenu-container {
	border: 2px solid var(--p-noir) !important;
	border-radius: var(--p-radius-m);
	background: var(--p-blanc) !important;
	box-shadow: 6px 6px 0 var(--p-noir);
	padding: 0.5rem !important;
	min-width: 270px !important;
	transform: translateY(8px) rotate(-1.5deg) scale(0.96);
	transform-origin: top left;
	transition: opacity 0.2s ease, transform 0.35s var(--p-rebond), visibility 0.2s !important;
}
.p-entete .has-child:hover > .wp-block-navigation__submenu-container,
.p-entete .has-child:focus-within > .wp-block-navigation__submenu-container,
.p-entete .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	transform: translateY(4px) rotate(-1deg) scale(1);
}
.p-entete .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container,
.p-entete .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	color: var(--p-noir) !important; /* lisible sur la carte blanche (sinon WordPress reprend la couleur claire du menu mobile) */
}
.p-entete .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	border-radius: var(--p-radius-s);
	padding: 0.6em 0.8em !important;
	background-image: none !important;
	transition: background-color 0.2s, transform 0.25s var(--p-rebond);
}
.p-entete .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background-color: var(--p-turquoise-clair) !important;
	transform: translateX(4px);
}

/* Bouton « Audit gratuit » de l'en-tête */
.p-entete .p-bouton-audit .wp-block-button__link { font-size: 0.95rem; padding: 0.65em 1.3em; white-space: nowrap; }

/* Menu mobile plein écran */
.p-entete .wp-block-navigation__responsive-container.is-menu-open {
	background:
		radial-gradient(circle at 85% 90%, color-mix(in srgb, var(--p-accent) 70%, transparent), transparent 45%),
		radial-gradient(circle at 10% 8%, color-mix(in srgb, var(--p-lilas) 45%, transparent), transparent 40%),
		var(--p-noir) !important;
	color: var(--p-creme-sur-noir) !important;
	padding: var(--wp--preset--spacing--40);
}
.p-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: flex-start !important;
	padding-top: 3.5rem;
}
.p-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0.6rem !important;
	align-items: flex-start !important;
}
.p-entete .is-menu-open .wp-block-navigation-item > .wp-block-navigation-item__content {
	font-family: var(--p-titres);
	font-weight: 700;
	font-size: clamp(2rem, 8vw, 3rem);
	line-height: 1.1;
	color: var(--p-creme-sur-noir);
	background-image: none;
}
.p-entete .is-menu-open .wp-block-navigation__submenu-container {
	transform: none !important;
	border: 0 !important;
	box-shadow: none;
	background: transparent !important;
	padding: 0.2rem 0 0.4rem 0.8rem !important;
}
.p-entete .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1.2rem;
	font-weight: 700;
	padding: 0.3em 0 !important;
}
.p-entete .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item {
	animation: p-entree-menu 0.5s var(--p-rebond) both;
}
.p-entete .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(2) { animation-delay: 0.06s; }
.p-entete .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(3) { animation-delay: 0.12s; }
.p-entete .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(4) { animation-delay: 0.18s; }
.p-entete .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:nth-child(5) { animation-delay: 0.24s; }
.p-entete .wp-block-navigation__responsive-container-open,
.p-entete .wp-block-navigation__responsive-container-close {
	width: 46px;
	height: 46px;
	align-items: center;
	justify-content: center;
	border: 2px solid var(--p-noir);
	border-radius: 50%;
	background: var(--p-blanc);
	box-shadow: 3px 3px 0 var(--p-noir);
	transition: transform 0.3s var(--p-rebond);
}
.p-entete .wp-block-navigation__responsive-container-open:hover,
.p-entete .wp-block-navigation__responsive-container-close:hover { transform: rotate(90deg); }

/* Mobile : logo | bouton | burger */
@media (max-width: 599px) {
	.p-entete .p-entete-droite .wp-block-navigation { order: 2; }
	.p-entete .p-bouton-audit .wp-block-button__link { font-size: 0.85rem; padding: 0.55em 1em; }
	.p-entete .p-bouton-audit .wp-block-button__link::after { display: none; }
	.p-logo-baseline { display: none; }
}

/* ==========================================================================
   6. Pied de page (fond noir, bord déchiré en haut)
   ========================================================================== */
.p-pied {
	position: relative;
	margin-top: calc(var(--wp--preset--spacing--60) + 22px) !important;
}
.p-pied::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: -21px;
	height: 22px;
	background: var(--p-noir);
	-webkit-mask: url("assets/images/bord-dechire.svg") center / 100% 100% no-repeat;
	mask: url("assets/images/bord-dechire.svg") center / 100% 100% no-repeat;
}
.p-pied,
.p-pied :where(p, h2, h3, li) { color: var(--p-blanc); }
.p-pied a:not(.wp-element-button) {
	color: var(--p-turquoise-clair);
	text-decoration: none;
	background: linear-gradient(var(--p-jaune), var(--p-jaune)) left 100% / 0% 2px no-repeat;
	transition: background-size 0.3s var(--p-doux), color 0.2s;
}
.p-pied a:not(.wp-element-button):hover { color: var(--p-jaune); background-size: 100% 2px; }
.p-pied .p-logo a { color: var(--p-blanc); }
.p-pied .p-logo mark { color: var(--p-rose) !important; }
.p-pied .p-logo-baseline { color: var(--p-blanc); }
.p-pied-accroche { transform: rotate(-3deg); }
.p-pied-titre-colonne {
	font-family: var(--wp--preset--font-family--texte) !important;
	font-size: 0.8rem !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--p-rose) !important;
}
.p-pied-bas { border-top: 1px solid rgba(255, 255, 255, 0.2); }
.p-pied .wp-block-button__link { box-shadow: 5px 5px 0 var(--p-rose); border-color: var(--p-blanc); }
.p-pied .wp-block-button__link:hover { box-shadow: 7px 7px 0 var(--p-lilas); }
.p-pied ul { list-style: none; padding-left: 0; }
.p-pied li { margin-bottom: 0.45em; }

/* ==========================================================================
   7. Effet souris (activé dans Réglages > Général > « Effet souris »)
   ========================================================================== */
.p-curseur {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9999;
	width: 34px;
	height: 34px;
	margin: -17px 0 0 -17px;
	border: 2px solid var(--p-noir);
	border-radius: 50%;
	pointer-events: none;
	display: grid;
	place-items: center;
	opacity: 0;
	transition: width 0.3s var(--p-rebond), height 0.3s var(--p-rebond), margin 0.3s var(--p-rebond),
		background-color 0.25s, border-color 0.25s, opacity 0.3s;
}
.p-curseur.est-visible { opacity: 1; }
.p-curseur.sur-sombre { border-color: var(--p-blanc); }
.p-curseur.est-actif {
	width: 84px;
	height: 84px;
	margin: -42px 0 0 -42px;
	background: color-mix(in srgb, var(--p-jaune) 88%, transparent);
	border-color: var(--p-noir);
}
.p-curseur.est-presse { width: 26px; height: 26px; margin: -13px 0 0 -13px; }
.p-curseur-texte {
	font-family: var(--p-manuscrit);
	-webkit-text-stroke: 0.03em currentColor;
	font-size: 0.95rem;
	line-height: 1;
	color: var(--p-noir);
	text-align: center;
	opacity: 0;
	transform: scale(0.6) rotate(-8deg);
	transition: opacity 0.2s, transform 0.3s var(--p-rebond);
}
.p-curseur.est-actif .p-curseur-texte:not(:empty) { opacity: 1; transform: scale(1) rotate(-8deg); }

.p-etincelle {
	position: fixed;
	z-index: 9998;
	width: var(--t, 16px);
	height: var(--t, 16px);
	margin: calc(var(--t, 16px) / -2) 0 0 calc(var(--t, 16px) / -2);
	background: center / contain no-repeat;
	pointer-events: none;
	animation: p-etincelle var(--d, 0.8s) var(--p-doux) forwards;
}
.p-etincelle--turquoise { background-image: url("assets/images/etincelle-turquoise.svg"); }
.p-etincelle--jaune { background-image: url("assets/images/etincelle-jaune.svg"); }
.p-etincelle--plus { background-image: url("assets/images/etincelle-plus.svg"); }

/* ==========================================================================
   8. Animations
   ========================================================================== */
@keyframes p-scintille {
	0%, 100% { transform: rotate(-8deg) scale(1); }
	50% { transform: rotate(8deg) scale(1.12); }
}
@keyframes p-tourne { to { transform: rotate(360deg); } }
@keyframes p-balance {
	0%, 100% { transform: scale(1.06) rotate(-2deg); }
	50% { transform: scale(1.06) rotate(2deg); }
}
@keyframes p-entree-menu {
	from { opacity: 0; transform: translateY(24px) rotate(-3deg); }
	to { opacity: 1; transform: none; }
}
@keyframes p-etincelle {
	0% { opacity: 1; transform: translate(0, 0) rotate(0deg) scale(1); }
	100% { opacity: 0; transform: translate(var(--x, 0), var(--y, 20px)) rotate(var(--r, 180deg)) scale(0.2); }
}

/* Apparition au défilement (ajouter la classe « p-reveal » à un bloc) */
.js .p-reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s var(--p-doux); }
.js .p-reveal.is-visible { opacity: 1; transform: none; }

/* ==========================================================================
   9. Mouvement réduit : tout est coupé, rien n'est caché
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation: none !important; transition: none !important; }
	.js .p-reveal { opacity: 1; transform: none; }
	.p-curseur, .p-etincelle { display: none !important; }
	.is-style-carte-sticker, .p-carte { transform: rotate(var(--p-tilt)); }
}
/* Écrans tactiles : pas d'effet souris */
@media (hover: none), (pointer: coarse) {
	.p-curseur, .p-etincelle { display: none !important; }
}
.is-style-manuscrit.has-text-align-center { transform-origin: center; }

/* ==========================================================================
   10. Sections communes
   ========================================================================== */
.p-kicker {
	display: table;
	margin-bottom: 0.6rem !important;
	padding: 0.35em 0.95em;
	border-radius: 999px;
	background: var(--p-turquoise-clair);
	color: var(--p-noir);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.4;
}
.p-kicker.has-text-align-center { margin-left: auto !important; margin-right: auto !important; }
.p-section-tete { margin-bottom: var(--wp--preset--spacing--50) !important; }
.p-lien-fleche a { font-weight: 700; }

/* ==========================================================================
   11. Héros : les 4 personnages
   ========================================================================== */
.p-heros { overflow: hidden; }
.p-heros-intro { text-align: center; }
.p-heros-titre {
	position: relative;
	display: inline-block;
	font-size: var(--wp--preset--font-size--geant) !important;
	transform-origin: center !important;
	margin-bottom: 0.4em !important;
}
.p-heros-titre::after { /* sticker étoile jaune */
	content: "";
	position: absolute;
	top: -0.25em;
	right: -0.55em;
	width: 0.7em;
	height: 0.7em;
	background: url("assets/images/sticker-etoile.svg") center / contain no-repeat;
	animation: p-scintille 3.5s ease-in-out infinite;
}
.p-heros-sous-titre {
	max-width: 40rem;
	margin-left: auto !important;
	margin-right: auto !important;
	font-size: var(--wp--preset--font-size--large);
}
.p-heros-indice {
	font-family: var(--p-manuscrit);
	-webkit-text-stroke: 0.03em currentColor;
	font-size: 1.5rem;
	transform: rotate(-3deg);
	margin-top: var(--wp--preset--spacing--40) !important;
}
.p-heros-indice::after {
	content: "";
	display: inline-block;
	width: 3.2rem;
	height: 1.6rem;
	margin-left: 0.4rem;
	vertical-align: middle;
	background: url("assets/images/sticker-fleche.svg") center / contain no-repeat;
	transform: rotate(35deg) translateY(6px);
}

.p-persos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(0.75rem, 2vw, 2rem);
	margin-top: var(--wp--preset--spacing--30) !important;
	scroll-margin-top: 6rem;
}
.p-perso {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding-top: 2.5rem;
	transition: opacity 0.35s ease, filter 0.35s ease;
}
.p-perso > * { margin-block-start: 0 !important; }

/* Emplacement du halo derrière Sophie */
.p-perso::before {
	content: "";
	position: absolute;
	z-index: 0;
	top: 0.5rem;
	left: 50%;
	width: 108%;
	aspect-ratio: 1;
	margin-left: -54%;
	transition: transform 0.8s var(--p-doux), filter 0.4s;
}
/* Le halo derrière Sophie : dégradé doux, une nuance par carte */
.p-perso,
.p-offre-perso {
	--halo-a: var(--p-rose);
	--halo-b: var(--p-lilas);
	--halo-c: var(--p-glace);
}
.p-perso--2, .p-offre-perso--2 { --halo-a: var(--p-lilas); --halo-b: var(--p-rose-pale); }
.p-perso--3, .p-offre-perso--3 { --halo-a: #F0B7C3; --halo-b: var(--p-glace); --halo-c: var(--p-lilas); }
.p-perso--4, .p-offre-perso--4 { --halo-a: var(--p-rose); --halo-b: #E6D8FA; }
.p-perso::before,
.p-offre-perso::before {
	background:
		radial-gradient(circle at 68% 30%, color-mix(in srgb, var(--halo-c) 55%, transparent) 0%, transparent 32%),
		radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--halo-a) 88%, transparent) 0%, color-mix(in srgb, var(--halo-b) 90%, transparent) 45%, transparent 71%);
	border-radius: 50%;
	filter: blur(14px);
	animation: p-respire 7s ease-in-out infinite;
}
@keyframes p-respire {
	0%, 100% { transform: scale(1) rotate(0deg); }
	50% { transform: scale(1.06) rotate(12deg); }
}
@keyframes p-halo-actif {
	from { transform: scale(1.18) rotate(0deg); }
	to { transform: scale(1.18) rotate(360deg); }
}

.p-perso-photo {
	position: relative;
	z-index: 1;
	width: min(80%, 230px);
	margin: 0 !important;
	transform-origin: 50% 90%;
	transition: transform 0.45s var(--p-rebond);
}
.p-perso-photo img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 5;
	object-fit: contain;
	filter: drop-shadow(0 12px 14px rgba(17, 17, 17, 0.22));
}

/* Nom de l'offre : bannière noire inclinée, écriture manuscrite */
.p-perso-titre {
	position: relative;
	z-index: 3;
	margin: -1.6rem 0 0 !important;
	padding: 0.35em 0.8em 0.25em;
	background: var(--p-noir);
	color: var(--p-blanc);
	font-family: var(--p-manuscrit) !important;
	font-weight: 400 !important;
	-webkit-text-stroke: 0.02em currentColor;
	font-size: clamp(1.15rem, 0.9rem + 0.8vw, 1.6rem) !important;
	line-height: 1.15;
	letter-spacing: 0;
	text-align: center;
	border-radius: 4px;
	transform: rotate(-3deg);
	transition: transform 0.4s var(--p-rebond), background-color 0.25s;
}
.p-perso:nth-child(even) .p-perso-titre { transform: rotate(2.5deg); }
.p-perso-titre a {
	color: inherit;
	text-decoration: none;
}
/* Toute la carte est cliquable (pulsed.js) ; le vrai lien reste le titre, accessible au clavier */
.p-perso { isolation: isolate; cursor: pointer; }
.p-perso:has(a:focus-visible) .p-perso-titre { outline: 3px solid var(--p-jaune); outline-offset: 4px; }
.p-perso-titre a:focus-visible { box-shadow: none; outline: none; }

/* Bulle de résumé */
.p-perso-bulle {
	position: relative;
	z-index: 2;
	max-width: 18rem;
	margin: 0.9rem 0 0 !important;
	padding: 0.7rem 0.9rem;
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-m);
	box-shadow: 4px 4px 0 var(--p-noir);
	font-size: 0.92rem;
	line-height: 1.4;
	text-align: center;
}
.p-perso-bulle strong { display: block; margin-top: 0.25rem; color: var(--p-turquoise-fonce); }

/* Ordinateur : bulle qui apparaît au survol, cartes voisines estompées */
@media (hover: hover) and (min-width: 1024px) {
	.p-perso-bulle {
		position: absolute;
		top: 0;
		left: 50%;
		width: 90%;
		margin: 0 !important;
		opacity: 0;
		transform: translate(-50%, 10px) scale(0.9) rotate(-2deg);
		transition: opacity 0.25s ease, transform 0.35s var(--p-rebond);
		pointer-events: none;
	}
	.p-perso-bulle::after { /* pointe de la bulle */
		content: "";
		position: absolute;
		bottom: -11px;
		left: 50%;
		width: 18px;
		height: 18px;
		background: var(--p-blanc);
		border-right: 2px solid var(--p-noir);
		border-bottom: 2px solid var(--p-noir);
		transform: translateX(-50%) rotate(45deg);
	}
	.p-perso:hover .p-perso-bulle,
	.p-perso:focus-within .p-perso-bulle {
		opacity: 1;
		transform: translate(-50%, -30%) scale(1) rotate(-2deg);
	}
	.p-persos:has(.p-perso:hover) .p-perso:not(:hover),
	.p-persos:has(.p-perso:focus-within) .p-perso:not(:focus-within) {
		opacity: 0.45;
		filter: saturate(0.4);
	}
	.p-perso:hover::before,
	.p-perso:focus-within::before {
		animation: p-halo-actif 6s linear infinite;
		filter: blur(10px) saturate(1.3);
	}
	.p-perso:hover .p-perso-photo,
	.p-perso:focus-within .p-perso-photo {
		animation: p-balance 1.6s ease-in-out infinite;
	}
	.p-perso:hover .p-perso-titre,
	.p-perso:focus-within .p-perso-titre {
		transform: rotate(0deg) scale(1.06);
		background: var(--p-turquoise-fonce);
	}
}

/* Tablette et mobile : grille 2 × 2, résumé toujours visible */
@media (max-width: 1023px) {
	.p-perso-photo { max-width: 210px; width: 88%; }
	.p-perso::before { width: min(108%, 300px); margin-left: calc(min(108%, 300px) / -2); }
	.p-persos { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--wp--preset--spacing--50); }
	.p-heros-indice::after { transform: rotate(80deg); }
}
@media (max-width: 480px) {
	.p-perso { padding-top: 1.5rem; }
	.p-perso-bulle { font-size: 0.82rem; padding: 0.55rem 0.6rem; box-shadow: 3px 3px 0 var(--p-noir); }
	.p-heros-titre::after { right: -0.25em; }
}

/* ==========================================================================
   12. Bandeau de logos qui défile
   ========================================================================== */
.p-logos-titre {
	font-family: var(--wp--preset--font-family--texte) !important;
	font-size: 0.85rem !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	margin-bottom: var(--wp--preset--spacing--30) !important;
}
.p-defile {
	overflow: hidden;
	-webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
	mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.p-defile-piste {
	gap: clamp(2rem, 5vw, 4.5rem) !important;
	width: max-content;
	align-items: flex-start !important;
}
.p-defile-piste.est-pret { animation: p-defile 32s linear infinite; }
.p-defile:hover .p-defile-piste,
.p-defile:focus-within .p-defile-piste { animation-play-state: paused; }
.p-defile-piste figure { margin: 0 !important; flex: 0 0 auto; }
.p-defile-piste img {
	height: 80px !important;
	width: auto !important;
	max-width: 190px;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.7;
	transition: filter 0.3s, opacity 0.3s, transform 0.3s var(--p-rebond);
}
.p-defile-piste figure:focus-within img,
.p-defile-piste figure:hover img { filter: none; opacity: 1; transform: scale(1.08) rotate(-2deg); }
@keyframes p-defile { to { transform: translateX(calc(-50% - clamp(1rem, 2.5vw, 2.25rem))); } }

/* ==========================================================================
   13. Pour qui ? / Méthode / À propos / FAQ
   ========================================================================== */
.p-grille-4 { gap: var(--wp--preset--spacing--40) !important; }
.p-profil h3 { font-size: 1.3rem; margin-bottom: 0.4rem; }
.p-profil { display: flex; flex-direction: column; }
.p-profil-lien { margin-top: auto !important; font-weight: 700; }
.p-profil-lien a { text-decoration: none; }
.p-profil-lien a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* carte entière cliquable */
.p-profil:has(a:focus-visible) { outline: 3px solid var(--p-noir); outline-offset: 4px; }

.p-etapes {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(2rem, 6vw, 6rem);
	margin-bottom: var(--wp--preset--spacing--50) !important;
}
.p-etape { position: relative; text-align: center; }
.p-etape-num {
	display: grid;
	place-items: center;
	width: 5.5rem;
	height: 5.5rem;
	margin: 0 auto 0.75rem !important;
	background: url("assets/images/sticker-cercle.svg") center / contain no-repeat;
	font-family: var(--p-manuscrit);
	-webkit-text-stroke: 0.05em currentColor;
	font-size: 3rem;
	line-height: 1;
	color: var(--p-turquoise-fonce);
	transition: transform 0.4s var(--p-rebond);
}
.p-etape:hover .p-etape-num { transform: rotate(-10deg) scale(1.1); }
.p-etape h3 { font-size: 1.35rem; margin-bottom: 0.4rem; }
.p-etape:not(:last-child)::after { /* flèche vers l'étape suivante */
	content: "";
	position: absolute;
	top: 1.5rem;
	right: calc(clamp(2rem, 6vw, 6rem) / -2 - 2.3rem);
	width: 4.6rem;
	height: 2.3rem;
	background: url("assets/images/sticker-fleche.svg") center / contain no-repeat;
	transform: rotate(8deg);
}
.p-etape:nth-child(2)::after { transform: scaleY(-1) rotate(-8deg); }
@media (max-width: 781px) {
	.p-etapes { grid-template-columns: 1fr; gap: 3.5rem; }
	.p-etape:not(:last-child)::after {
		top: auto;
		bottom: -3.2rem;
		right: 50%;
		transform: translateX(50%) rotate(100deg) !important;
	}
}

.p-apropos-photo { max-width: 380px; margin-inline: auto !important; transform: rotate(-3deg); }
.p-apropos-photo img { filter: drop-shadow(0 12px 14px rgba(17, 17, 17, 0.2)); }
.p-titre-manuscrit { font-size: var(--wp--preset--font-size--manuscrit) !important; margin-bottom: 0.5em !important; }

.p-faq-apercu .wp-block-details,
.wp-block-details {
	max-width: 760px;
	margin-inline: auto;
	border-bottom: 2px solid var(--p-noir);
	padding: 1rem 0;
}
.wp-block-details summary {
	position: relative;
	list-style: none;
	cursor: pointer;
	padding-right: 3rem;
	font-family: var(--p-titres);
	font-weight: 700;
	font-size: 1.15rem;
	transition: color 0.2s;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { /* rond « + » qui tourne en « × » */
	content: "+";
	position: absolute;
	right: 0;
	top: 50%;
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	margin-top: -1rem;
	border: 2px solid var(--p-noir);
	border-radius: 50%;
	background: var(--p-blanc);
	font-family: var(--wp--preset--font-family--texte);
	font-size: 1.3rem;
	line-height: 1;
	transition: transform 0.35s var(--p-rebond), background-color 0.2s;
}
.wp-block-details summary:hover { color: var(--p-turquoise-fonce); }
.wp-block-details summary:hover::after { background: var(--p-jaune); }
.wp-block-details[open] summary::after { transform: rotate(45deg); background: var(--p-rose); }
.wp-block-details > :not(summary) { margin-top: 0.75rem; }

.p-cta { overflow: hidden; position: relative; }
.p-cta::before,
.p-cta::after {
	content: "";
	position: absolute;
	width: 3.5rem;
	aspect-ratio: 1;
	background: url("assets/images/sticker-etoile.svg") center / contain no-repeat;
	animation: p-scintille 4s ease-in-out infinite;
}
.p-cta::before { top: 1.5rem; left: 7%; }
.p-cta::after { bottom: 1.5rem; right: 8%; width: 2.4rem; animation-delay: -2s; }
.p-cta-titre { margin-bottom: 0.3em !important; }

/* ==========================================================================
   14. Calculateur
   ========================================================================== */
.p-calculateur-bloc { max-width: 1100px; margin-inline: auto; }
.p-calc {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--40);
	padding: clamp(1rem, 3vw, 2rem);
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-l);
	box-shadow: 8px 8px 0 var(--p-noir);
}
.p-calc-champs { display: flex; flex-direction: column; gap: 1.4rem; }
.p-calc-champ label { display: block; font-weight: 700; margin-bottom: 0.45rem; }
.p-calc-duo { display: flex; align-items: center; gap: 1rem; }
.p-calc input[type="number"] {
	width: 5.5rem;
	padding: 0.6rem 0.7rem;
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-s);
	background: var(--p-gris);
	font: inherit;
	font-weight: 700;
	color: var(--p-noir);
	text-align: center;
}
.p-calc-euro { display: flex; align-items: center; gap: 0.6rem; font-weight: 700; }
.p-calc-euro input[type="number"] { width: 7.5rem; text-align: left; }

/* Curseur turquoise, assez grand pour le doigt */
.p-calc input[type="range"] {
	--rempli: 50%;
	flex: 1;
	height: 44px;
	margin: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}
.p-calc input[type="range"]::-webkit-slider-runnable-track {
	height: 10px;
	border-radius: 999px;
	border: 2px solid var(--p-noir);
	background: linear-gradient(90deg, var(--p-turquoise) var(--rempli), var(--p-gris) var(--rempli));
}
.p-calc input[type="range"]::-moz-range-track {
	height: 10px;
	border-radius: 999px;
	border: 2px solid var(--p-noir);
	background: var(--p-gris);
}
.p-calc input[type="range"]::-moz-range-progress { height: 10px; border-radius: 999px; background: var(--p-turquoise); }
.p-calc input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 30px;
	height: 30px;
	margin-top: -12px;
	border-radius: 50%;
	border: 2px solid var(--p-noir);
	background: var(--p-turquoise);
	box-shadow: 2px 2px 0 var(--p-noir);
	transition: transform 0.2s var(--p-rebond);
}
.p-calc input[type="range"]::-moz-range-thumb {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	border: 2px solid var(--p-noir);
	background: var(--p-turquoise);
	box-shadow: 2px 2px 0 var(--p-noir);
}
.p-calc input[type="range"]:hover::-webkit-slider-thumb,
.p-calc input[type="range"]:focus-visible::-webkit-slider-thumb { transform: scale(1.18); background: var(--p-jaune); }

.p-calc-inclus-titre { font-weight: 700; margin-bottom: 0.5rem !important; }
.p-calc-inclus ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.4rem 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.p-calc-inclus li { position: relative; padding-left: 1.4rem; }
.p-calc-inclus li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.45em;
	width: 0.75rem;
	height: 0.75rem;
	border-radius: 50%;
	background: var(--p-turquoise);
	border: 2px solid var(--p-noir);
}

/* Résultats : fond noir, texte blanc, gain net en grand et en turquoise */
.p-calc-resultats {
	display: flex;
	flex-direction: column;
	padding: clamp(1rem, 2.5vw, 1.75rem);
	background: var(--p-noir);
	color: var(--p-blanc);
	border-radius: var(--p-radius-m);
}
.p-calc-lignes { margin: 0; }
.p-calc-lignes > div {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px dashed rgba(255, 255, 255, 0.25);
	font-size: 0.95rem;
}
.p-calc-lignes dt { opacity: 0.85; }
.p-calc-lignes dd { margin: 0; font-weight: 700; white-space: nowrap; font-variant-numeric: tabular-nums; }
.p-calc-gain { margin-top: 1rem; }
.p-calc-gain p { margin: 0; }
.p-calc-gain-label { font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8rem; }
.p-calc-gain-montant {
	font-family: var(--p-titres);
	font-weight: 700;
	font-size: clamp(2.4rem, 1.8rem + 2.5vw, 3.6rem);
	line-height: 1.1;
	color: var(--p-rose);
	font-variant-numeric: tabular-nums;
}
.p-calc-hypothese { font-size: 0.82rem; opacity: 0.8; margin-top: 0.3rem !important; }
.p-calc-message { margin-top: 0.4rem !important; font-weight: 700; color: var(--p-rose-pale); }
.p-calc.est-negatif .p-calc-hypothese { display: none; }
.p-calc-action { margin-top: 1.2rem; }
.p-calc-bouton { display: inline-block; text-decoration: none; }
.p-calc .p-calc-bouton { box-shadow: 5px 5px 0 var(--p-rose); border-color: var(--p-blanc); }
.p-calc-mention { margin: 0.8rem 0 0 !important; font-size: 0.75rem; opacity: 0.7; }

@media (max-width: 860px) {
	.p-calc { grid-template-columns: 1fr; box-shadow: 5px 5px 0 var(--p-noir); }
}
@media (max-width: 420px) {
	.p-calc-inclus ul { grid-template-columns: 1fr; }
	.p-calc-lignes > div { font-size: 0.88rem; }
}

/* Mouvement réduit : bandeau figé (logos sur plusieurs lignes), étoiles immobiles */
@media (prefers-reduced-motion: reduce) {
	.p-defile { -webkit-mask: none; mask: none; }
	.p-defile-piste { width: auto; flex-wrap: wrap !important; justify-content: center; }
	.p-defile-piste [aria-hidden="true"] { display: none; }
	.p-perso-bulle { transition: none !important; }
}

/* ==========================================================================
   15. Pages d'offre
   ========================================================================== */
.p-offre-titre {
	font-size: var(--wp--preset--font-size--geant) !important;
	margin-bottom: 0.35em !important;
}
.p-offre-accroche { font-weight: 700; }
.p-titre-section { margin-top: 0 !important; }

/* Personnage de l'offre sur son étoile */
.p-offre-perso {
	position: relative;
	max-width: 420px;
	margin-inline: auto !important;
	padding-top: 1rem;
}
.p-offre-perso::before {
	content: "";
	position: absolute;
	inset: -4% -8% auto;
	aspect-ratio: 1;
}
.p-offre-perso .p-perso-photo { width: 100%; }
.p-offre-perso:hover .p-perso-photo { transform: scale(1.04) rotate(-2deg); }

/* Liste « C'est pour vous si… » avec coches dessinées */
.p-liste-coche,
.p-liste-croix { list-style: none; padding-left: 0; margin: 0; }
.p-liste-coche li,
.p-liste-croix li {
	position: relative;
	padding: 0.65rem 0 0.65rem 2.6rem;
	border-bottom: 1px dashed rgba(17, 17, 17, 0.25);
	font-size: 1.05rem;
}
.p-liste-coche li:last-child,
.p-liste-croix li:last-child { border-bottom: 0; }
.p-liste-coche li::before,
.p-liste-croix li::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0.6rem;
	display: grid;
	place-items: center;
	width: 1.8rem;
	height: 1.8rem;
	border: 2px solid var(--p-noir);
	border-radius: 50%;
	background: var(--p-rose);
	font-weight: 700;
	line-height: 1;
	transform: rotate(-8deg);
	transition: transform 0.35s var(--p-rebond);
}
.p-liste-croix li::before { content: "×"; background: var(--p-gris); font-size: 1.2rem; }
.p-liste-coche li:hover::before { transform: rotate(10deg) scale(1.15); background: var(--p-lilas); }

/* Prestations : cartes numérotées */
.p-grille-prestations { gap: var(--wp--preset--spacing--40) !important; }
.p-prestation h3 { font-size: 1.2rem; margin: 0.3rem 0 0.4rem; }
.p-prestation p:last-child { margin-bottom: 0; }
.p-prestation-num {
	display: inline-block;
	margin: 0 !important;
	padding: 0.1em 0.5em;
	background: var(--p-jaune);
	border: 2px solid var(--p-noir);
	border-radius: 999px;
	font-weight: 700;
	font-size: 0.85rem;
	transform: rotate(-4deg);
}

/* Tarif */
.p-tarif {
	max-width: 560px;
	margin-inline: auto !important;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) !important;
	text-align: center;
	--p-tilt: -1.5deg;
}
.p-tarif .p-kicker { margin-inline: auto !important; }
.p-tarif-libelle { margin: 1rem 0 0 !important; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.85rem; }
.p-prix {
	margin: 0.2rem 0 0 !important;
	font-family: var(--p-titres);
	font-weight: 700;
	font-size: clamp(1.8rem, 1.4rem + 2vw, 2.8rem);
	line-height: 1.15;
}
.p-tarif .p-tva { margin-top: 1rem !important; }
.p-tarif-note { font-size: 0.92rem; opacity: 0.85; }
.p-tarif .wp-block-buttons { margin-top: 1.25rem; }

/* Compris / pas compris */
.p-compris-titre { font-size: 1.4rem; }
.p-pas-compris { background: var(--p-papier); }

/* Exemple concret (audit stratégique) */
.p-note {
	max-width: 360px;
	margin-inline: auto !important;
	padding: 2.5rem 1.5rem 1.5rem;
	background: var(--p-jaune);
	border-radius: 4px;
	box-shadow: 6px 8px 0 rgba(17, 17, 17, 0.15);
	transform: rotate(3deg);
	transition: transform 0.4s var(--p-rebond);
}
.p-note:hover { transform: rotate(0deg) scale(1.03); }
.p-note.is-style-scotch::before { background: color-mix(in srgb, var(--p-turquoise-clair) 85%, transparent); }
.p-note-texte { font-size: 1.7rem; margin: 0 !important; transform: none; }

/* Autres offres : mini-personnages */
.p-persos--mini { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 900px; margin-inline: auto !important; }
.p-persos--mini .p-perso-photo { max-width: 170px; }
.p-persos--mini .p-perso::before { width: min(100%, 240px); margin-left: calc(min(100%, 240px) / -2); }
.p-persos--mini .p-perso-titre { font-size: clamp(1rem, 0.9rem + 0.5vw, 1.3rem) !important; margin-top: -1.2rem !important; }
.p-perso-mini { margin: 0.7rem 0 0 !important; font-size: 0.92rem; text-align: center; }
@media (hover: hover) and (min-width: 1024px) {
	.p-persos--mini .p-perso:hover::before { animation: p-halo-actif 6s linear infinite; }
	.p-persos--mini .p-perso:hover .p-perso-photo { animation: p-balance 1.6s ease-in-out infinite; }
}
@media (max-width: 1023px) {
	.p-persos.p-persos--mini { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.p-persos.p-persos--mini { grid-template-columns: 1fr 1fr; }
	.p-persos--mini .p-perso:last-child { grid-column: 1 / -1; max-width: 50%; justify-self: center; }
	.p-offre-perso { max-width: 300px; }
}
@media (max-width: 640px) {
	.p-cta::before { top: 0.6rem; left: 0.8rem; width: 2rem; }
	.p-cta::after { bottom: 0.6rem; right: 0.8rem; width: 1.6rem; }
}

/* ==========================================================================
   16. DA « Dark × Y2K » — sérieux sur le fond, fun sur la forme
   ========================================================================== */

/* Style de titre « Accroche » : grande serif italique + une partie manuscrite (mot surligné) */
.is-style-accroche {
	font-family: var(--p-accroche) !important;
	font-style: italic;
	font-weight: 400 !important;
	letter-spacing: -0.01em !important;
	text-transform: none !important;
	line-height: 1.02 !important;
}
.is-style-accroche mark {
	display: inline-block;
	margin-top: 0.12em;
	background: none;
	color: var(--p-accent-texte);
	font-family: var(--p-manuscrit);
	font-style: normal;
	font-size: 0.72em;
	-webkit-text-stroke: 0.03em currentColor;
	transform: rotate(-3deg);
}
.has-noir-background-color .is-style-accroche mark,
.p-fond-sombre .is-style-accroche mark { color: var(--p-rose); }
.p-heros-titre.is-style-accroche { transform: none; }

/* Boutons glossy (reflet Y2K) */
.wp-block-button:not(.is-style-contour) .wp-block-button__link,
.wp-element-button:not(.wp-block-button__link) {
	background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.36) 0%, rgba(255, 255, 255, 0.08) 48%, rgba(0, 0, 0, 0.12) 100%);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45), 5px 5px 0 var(--p-noir);
}
.wp-block-button:not(.is-style-contour) .wp-block-button__link:hover {
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5), 7px 7px 0 var(--p-noir);
}

/* Reflet holographique doux derrière l'accroche d'accueil + étincelles chrome */
.p-heros { position: relative; isolation: isolate; }
.p-heros::before {
	content: "";
	position: absolute;
	z-index: -1;
	top: 0;
	left: 50%;
	width: min(1100px, 110%);
	height: 560px;
	translate: -50% -10%;
	background: var(--p-holo);
	border-radius: 50%;
	filter: blur(70px);
	opacity: 0.5;
	pointer-events: none;
}
.p-heros-intro { position: relative; }
.p-heros-intro::before,
.p-heros-intro::after {
	content: "";
	position: absolute;
	width: 2rem;
	aspect-ratio: 1;
	background: url("assets/images/etincelle-jaune.svg") center / contain no-repeat;
	animation: p-scintille 4s ease-in-out infinite;
	pointer-events: none;
}
.p-heros-intro::before { top: 18%; left: 2%; }
.p-heros-intro::after { top: 62%; right: 3%; width: 1.3rem; animation-delay: -2s; }

/* Bulles des offres : petite fenêtre rétro avec barre de titre holo */
.p-perso-bulle { padding-top: 2.1rem; overflow: visible; }
.p-perso-bulle::before {
	content: "● ● ●";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 1.45rem;
	padding: 0 0.65rem;
	border-bottom: 2px solid var(--p-noir);
	border-radius: calc(var(--p-radius-m) - 2px) calc(var(--p-radius-m) - 2px) 0 0;
	background: var(--p-holo);
	color: var(--p-noir);
	font-size: 0.5rem;
	letter-spacing: 0.15em;
	line-height: 1.45rem;
	text-align: left;
}

/* Stickers animés : déjà en place à l'arrivée sur la page (pas d'animation d'entrée) ;
   seule l'animation du sticker lui-même tourne, au rythme lent fixé dans le fichier (250 ms par image). */

/* Section « Sérieux sur le fond, fun sur la forme » (bande noire) */
.p-duo-section { position: relative; overflow: hidden; }
.p-duo-section .p-duo-titre { color: var(--p-creme-sur-noir); font-size: clamp(2.2rem, 1.3rem + 3.4vw, 4.2rem) !important; }
.p-duo-section .p-duo-intro { color: var(--p-creme-sur-noir); max-width: 40rem; margin-inline: auto !important; }
.p-duo {
	position: relative;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2.75rem);
	align-items: start;
	margin-top: var(--wp--preset--spacing--50) !important;
}
.p-duo > * { margin: 0 !important; min-width: 0; }

.p-dossier {
	position: relative;
	background: var(--p-blanc);
	color: var(--p-noir);
	border: 1px solid var(--p-noir);
	border-radius: 4px;
	padding: 1.6rem 1.6rem 3.6rem !important;
	box-shadow: 0 22px 34px -20px rgba(0, 0, 0, 0.6);
	transform: rotate(-0.8deg);
	transition: transform 0.4s var(--p-rebond);
}
.p-dossier:hover { transform: rotate(0deg) translateY(-3px); }
.p-dossier-titre {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	margin: 0 0 0.6rem !important;
	padding-bottom: 0.55rem;
	border-bottom: 2px solid var(--p-noir);
	font-family: var(--wp--preset--font-family--titres);
	font-size: 1.4rem;
	line-height: 1.1;
}
.p-dossier-ref,
.p-mono {
	font-family: var(--p-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #5B4F57;
}
.p-dossier-ligne { display: grid; grid-template-columns: 8rem minmax(0, 1fr); gap: 1rem; margin: 0 !important; padding: 0.55rem 0; border-bottom: 1px solid #EFE7EA; font-size: 0.97rem; line-height: 1.45; }
.p-dossier-ligne .p-mono { padding-top: 0.15rem; }
.p-dossier::after {
	content: "Validé";
	position: absolute;
	right: 1.2rem;
	bottom: 1rem;
	padding: 0.2rem 0.7rem;
	border: 3px solid var(--p-accent);
	border-radius: 6px;
	color: var(--p-accent);
	font-family: var(--p-mono);
	font-size: 0.85rem;
	letter-spacing: 0.12em;
	transform: rotate(-9deg);
	opacity: 0.9;
}

.p-vraie-vie {
	position: relative;
	background: var(--p-holo);
	color: var(--p-noir);
	border: 2px solid var(--p-noir);
	border-radius: 26px;
	padding: 1.6rem 1.6rem 1.8rem 3rem !important;
	box-shadow: 6px 6px 0 var(--p-rose);
	transform: rotate(0.9deg);
	transition: transform 0.4s var(--p-rebond);
}
.p-vraie-vie:hover { transform: rotate(-0.5deg) translateY(-3px); }
.p-vraie-vie-titre { font-family: var(--p-manuscrit); -webkit-text-stroke: 0.03em currentColor; font-size: 1.8rem; line-height: 1.1; margin: 0 0 0.8rem !important; transform: rotate(-2deg); }
.p-vraie-vie-corps { display: grid !important; grid-template-columns: minmax(0, 1fr) 9.5rem; gap: 1rem; align-items: start; }
.p-vraie-vie-corps > * { margin: 0 !important; }
.p-vraie-vie ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.p-vraie-vie li { display: flex; gap: 0.55rem; align-items: baseline; font-size: 0.98rem; line-height: 1.4; }
.p-vraie-vie li::before { content: ""; flex: 0 0 0.95rem; height: 0.95rem; translate: 0 0.12rem; background: url("assets/images/etincelle-jaune.svg") center / contain no-repeat; }
.p-polaroid { margin: 0 !important; padding: 0.45rem 0.45rem 1.6rem; background: var(--p-blanc); border: 1px solid var(--p-noir); box-shadow: 0 8px 18px -8px rgba(23, 16, 26, 0.45); transform: rotate(5deg); position: relative; }
.p-polaroid img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; background: var(--p-rose-pale); }
.p-polaroid figcaption { position: absolute; left: 0; right: 0; bottom: 0.15rem; margin: 0; text-align: center; font-family: var(--p-manuscrit); font-size: 0.95rem; color: var(--p-noir); }
.p-polaroid::before { content: ""; position: absolute; z-index: 1; top: -10px; left: 50%; width: 70px; height: 20px; transform: translateX(-50%) rotate(-6deg); background: color-mix(in srgb, var(--p-rose) 80%, transparent); }

.p-les-deux {
	position: absolute !important;
	z-index: 3;
	left: 50%;
	top: 45%;
	translate: -50% -50%;
	display: grid;
	place-items: center;
	width: 7.5rem;
	aspect-ratio: 1;
	margin: 0 !important;
	padding: 0.8rem;
	background: var(--p-noir);
	color: var(--p-creme-sur-noir);
	border: 3px solid var(--p-blanc);
	border-radius: 50%;
	box-shadow: 0 0 0 2px var(--p-rose);
	font-family: var(--p-manuscrit);
	-webkit-text-stroke: 0.02em currentColor;
	font-size: 1.05rem;
	line-height: 1.1;
	text-align: center;
	animation: p-tampon 9s ease-in-out infinite;
}
@keyframes p-tampon { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(6deg) scale(1.05); } }
.p-duo-section .wp-block-buttons { margin-top: var(--wp--preset--spacing--50); }
.p-duo-section .wp-block-button.is-style-contour .wp-block-button__link { color: var(--p-creme-sur-noir); border-color: var(--p-creme-sur-noir); }
.p-duo-section .wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--p-creme-sur-noir); color: var(--p-noir); }

@media (max-width: 820px) {
	.p-duo { grid-template-columns: 1fr; }
	.p-les-deux { position: relative !important; left: auto; top: auto; translate: none; margin: -2.2rem auto !important; }
	.p-dossier, .p-vraie-vie { transform: none; }
	.p-vraie-vie { padding-left: 1.6rem !important; padding-top: 2.4rem !important; }
}
@media (max-width: 460px) {
	.p-vraie-vie-corps { grid-template-columns: 1fr; }
	.p-polaroid { max-width: 9.5rem; justify-self: end; }
	.p-dossier-ligne { grid-template-columns: 1fr; gap: 0.15rem; }
}

/* Le point d'interrogation clin d'œil de la FAQ */
.p-question-clin-doeil summary { color: var(--p-accent-texte); }

@media (prefers-reduced-motion: reduce) {
	.p-dossier, .p-vraie-vie { transition: none; }
}

/* Héros des pages d'offre : sticker animé au format 3:5 */
.p-offre-perso { max-width: 300px; }
.p-offre-perso .p-perso-photo { width: 100%; max-width: none; }
@media (max-width: 600px) {
	.p-heros-intro::before { top: 4%; left: auto; right: 2%; width: 1.3rem; }
	.p-heros-intro::after { display: none; }
}

/* ==========================================================================
   17. Pages : À propos, Audit gratuit, FAQ, Contact, pages légales
   ========================================================================== */
.p-page-tete { position: relative; isolation: isolate; text-align: center; }
.p-page-tete::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 10% 15% auto;
	height: 70%;
	background: var(--p-holo);
	border-radius: 50%;
	filter: blur(60px);
	opacity: 0.45;
	pointer-events: none;
}
.p-page-titre { font-size: var(--wp--preset--font-size--geant) !important; margin-bottom: 0.3em !important; }
.p-page-intro { max-width: 40rem; margin-inline: auto !important; }
.p-page-tete .p-kicker { margin-inline: auto !important; }

/* Frise du parcours, façon dossier */
.p-dossier-parcours { max-width: 900px; margin-inline: auto !important; transform: rotate(-0.4deg); }
.p-frise { position: relative; margin-top: 0.4rem !important; }
.p-frise::before { content: ""; position: absolute; left: 6.6rem; top: 0.6rem; bottom: 0.6rem; border-left: 2px dashed var(--p-rose); }
.p-frise-etape {
	position: relative;
	display: grid !important;
	grid-template-columns: 6rem minmax(0, 1fr);
	column-gap: 1.6rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid #EFE7EA;
}
.p-frise-etape > * { margin: 0 !important; }
.p-frise-etape::before {
	content: "";
	position: absolute;
	left: calc(6.6rem - 6px);
	top: 1.05rem;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--p-accent);
	box-shadow: 0 0 0 3px var(--p-blanc);
}
.p-frise-annee { grid-row: span 2; font-family: var(--p-mono); font-size: 0.8rem; font-weight: 400; color: var(--p-accent-texte); padding-top: 0.15rem; }
.p-frise-cat { grid-column: 2; }
.p-frise-texte { grid-column: 2; font-size: 0.98rem; line-height: 1.45; }
@media (max-width: 560px) {
	.p-frise::before { left: 0.35rem; }
	.p-frise-etape { grid-template-columns: 1fr; padding-left: 1.5rem; }
	.p-frise-etape::before { left: 0; }
	.p-frise-annee, .p-frise-cat, .p-frise-texte { grid-column: 1; grid-row: auto; }
}

/* Badges de compétences (stickers) */
.p-badges { gap: 0.7rem !important; margin-top: 0.4rem !important; }
.p-badge {
	margin: 0 !important;
	padding: 0.45em 1em;
	border: 2px solid var(--p-noir);
	border-radius: 999px;
	background: var(--p-rose-pale);
	box-shadow: 3px 3px 0 var(--p-noir);
	font-weight: 700;
	font-size: 0.95rem;
	transform: rotate(-1.5deg);
	transition: transform 0.3s var(--p-rebond), background-color 0.2s;
}
.p-badge:nth-child(2n) { background: var(--p-lilas); transform: rotate(1.5deg); }
.p-badge:nth-child(3n) { background: var(--p-glace); }
.p-badge:hover { transform: rotate(0deg) scale(1.06); background: var(--p-rose); }
.p-valeur h3 { font-size: 1.25rem; }

/* Audit gratuit : les deux formats */
.p-formats { display: grid !important; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 1.25rem; align-items: center; max-width: 900px; margin-inline: auto !important; }
.p-formats > * { margin: 0 !important; }
.p-format h3 { font-size: 1.4rem; margin: 0.2rem 0 0.4rem; }
.p-formats-ou { font-family: var(--p-manuscrit); -webkit-text-stroke: 0.03em currentColor; font-size: 1.6rem; color: var(--p-accent-texte); text-align: center; }
@media (max-width: 700px) { .p-formats { grid-template-columns: 1fr; } }

/* Fenêtre rétro qui accueille les formulaires */
.p-fenetre {
	max-width: 820px;
	margin-inline: auto !important;
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-m);
	box-shadow: 8px 8px 0 var(--p-noir);
	overflow: hidden;
}
.p-fenetre > * { margin: 0 !important; }
.p-fenetre-barre {
	padding: 0.45rem 1rem;
	background: var(--p-holo);
	border-bottom: 2px solid var(--p-noir);
	font-family: var(--p-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.p-fenetre-barre::before { content: "● ● ●"; margin-right: 0.8rem; font-size: 0.55rem; letter-spacing: 0.15em; vertical-align: 0.1em; }
.p-fenetre-contenu { padding: clamp(1.25rem, 3vw, 2rem) !important; }
.p-fenetre-note { font-size: 0.9rem; opacity: 0.85; }
.p-lien-calendly { margin-top: var(--wp--preset--spacing--40) !important; font-weight: 700; }
.p-petite-note { font-size: var(--wp--preset--font-size--small); opacity: 0.8; }

/* Contact : coordonnées */
.p-coordonnees { gap: var(--wp--preset--spacing--40) !important; max-width: 1100px; margin-inline: auto !important; }
.p-coord-valeur { font-size: 1.1rem; font-weight: 700; margin: 0.2rem 0 0 !important; overflow-wrap: anywhere; }
.p-coord-valeur a { text-decoration: none; }

/* Pages légales */
.p-legal-corps { background: var(--p-blanc); border: 1px solid var(--p-noir); border-radius: 4px; padding: clamp(1.25rem, 4vw, 2.5rem) !important; box-shadow: 0 22px 34px -24px rgba(23, 16, 26, 0.45); }
.p-legal-titre { font-size: 1.35rem !important; margin-top: 1.8rem !important; padding-bottom: 0.4rem; border-bottom: 2px solid var(--p-noir); }
.p-legal-corps > .p-petite-note:first-child + .p-legal-titre { margin-top: 0.8rem !important; }
.p-legal-corps li { margin-bottom: 0.35rem; }
.p-faq-liste .wp-block-details { max-width: none; }

/* ==========================================================================
   18. Bandeau de logos : étiquette « via Pulsed » / « via Starter Wallonia Liège »
   ========================================================================== */
.p-defile-piste figure {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 0.55rem;
}
.p-via,
.p-defile-piste figcaption {
	margin: 0 !important;
	padding: 0.2em 0.75em;
	border: 1.5px solid var(--p-noir);
	border-radius: 999px;
	background: var(--p-blanc);
	color: var(--p-noir);
	font-family: var(--p-mono);
	font-size: 0.68rem;
	letter-spacing: 0.04em;
	line-height: 1.5;
	white-space: nowrap;
	text-align: center;
}
.is-style-via-pulsed .p-via:not(.p-via-extra) {
	background: var(--p-accent);
	border-color: var(--p-accent);
	color: var(--p-blanc);
}
.is-style-via-mixte .p-via:first-of-type {
	background: var(--p-rose-pale);
}
.p-defile-piste figure .p-via-extra {
	margin-top: -0.3rem !important;
	border-style: dashed;
	background: var(--p-rose-pale);
	font-size: 0.62rem;
}
.p-logos-legende {
	max-width: 44rem;
	margin: var(--wp--preset--spacing--30) auto 0 !important;
	font-size: var(--wp--preset--font-size--small);
	opacity: 0.85;
}
/* Dans l'éditeur, l'étiquette n'existe pas encore : on montre un aperçu sous le logo */
.editor-styles-wrapper .is-style-via-pulsed::after,
.editor-styles-wrapper .is-style-via-starter::after,
.editor-styles-wrapper .is-style-via-mixte::after {
	display: block;
	margin-top: 0.4rem;
	font-family: var(--p-mono);
	font-size: 0.68rem;
	text-align: center;
}
.editor-styles-wrapper .is-style-via-pulsed::after { content: "via Pulsed"; color: var(--p-accent-texte); }
.editor-styles-wrapper .is-style-via-starter::after { content: "via Starter Wallonia Liège"; }
.editor-styles-wrapper .is-style-via-mixte::after { content: "via Pulsed & Starter Wallonia Liège"; }

/* ==========================================================================
   19. Réservation sur le site (Simply Schedule Appointments)
   ========================================================================== */
.p-section-reservation { scroll-margin-top: 6rem; }
.p-section-reservation .p-fenetre { max-width: 900px; }
.p-section-reservation .p-fenetre-contenu iframe { width: 100%; border: 0; }
.p-reservation-attente { margin: 0; text-align: center; }
.p-coordonnees { grid-template-columns: repeat(auto-fit, minmax(min(11.5rem, 100%), 1fr)) !important; }

/* Page « Rendez-vous confirmé » : la note respire sous les cartes. */
.p-section-coordonnees > .p-petite-note {
	margin-top: var(--wp--preset--spacing--50) !important;
}

/* Réservation Google Agenda (chargée au clic, RGPD). */
.p-agenda { text-align: center; }
.p-agenda .wp-block-buttons { justify-content: center; }
.p-agenda-note { margin: var(--wp--preset--spacing--30) auto 0; max-width: 34rem; font-size: 0.875rem; }
.p-agenda-lien { white-space: nowrap; }
.p-agenda iframe {
	display: block;
	width: 100%;
	height: 640px;
	border: 0;
	border-radius: var(--wp--custom--radius--medium, 18px);
	background: var(--wp--preset--color--blanc);
}
@media (max-width: 599px) { .p-agenda iframe { height: 760px; } }
.p-agenda-charger { font-family: inherit; cursor: pointer; }

/* ==========================================================================
   20. Formulaires Forminator aux couleurs Pulsed
   À utiliser avec, dans Forminator : Apparence → Style de design → « Aucun ».
   ========================================================================== */
.forminator-ui.forminator-custom-form {
	font-family: var(--wp--preset--font-family--texte);
	color: var(--p-noir);
	margin: 0 !important;
}
.forminator-ui .forminator-row { margin-bottom: 1.25rem; }
.forminator-ui .forminator-label,
.forminator-ui .forminator-legend {
	display: block;
	font-weight: 600;
	margin-bottom: 0.4rem;
	color: var(--p-noir);
}
.forminator-ui .forminator-required { color: var(--p-accent-texte); }
.forminator-ui .forminator-description { font-size: 0.85rem; opacity: 0.8; margin-top: 0.3rem; }

/* Champs */
.forminator-ui .forminator-input,
.forminator-ui .forminator-textarea,
.forminator-ui select,
.forminator-ui input[type="text"],
.forminator-ui input[type="email"],
.forminator-ui input[type="tel"] {
	width: 100%;
	font: inherit;
	color: var(--p-noir);
	background: var(--p-gris);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-s);
	padding: 0.75rem 0.9rem;
	min-height: 48px;
	transition: box-shadow 0.2s ease, background-color 0.2s ease;
}
.forminator-ui .forminator-textarea { min-height: 7.5rem; resize: vertical; }
.forminator-ui .forminator-input:focus,
.forminator-ui .forminator-textarea:focus,
.forminator-ui select:focus {
	outline: none;
	background: var(--p-blanc);
	box-shadow: 4px 4px 0 var(--p-accent);
}

/* Choix (radio, cases) : des pastilles faciles à toucher */
.forminator-ui .forminator-radio,
.forminator-ui .forminator-checkbox {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.55rem 0.9rem;
	margin: 0 0 0.5rem;
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: 999px;
	cursor: pointer;
	min-height: 44px;
	transition: background-color 0.2s ease;
}
.forminator-ui .forminator-radio:hover,
.forminator-ui .forminator-checkbox:hover { background: var(--p-rose-pale); }
.forminator-ui .forminator-radio input,
.forminator-ui .forminator-checkbox input { accent-color: var(--p-accent); width: 1.15rem; height: 1.15rem; }
.forminator-ui .forminator-radio:has(input:checked),
.forminator-ui .forminator-checkbox:has(input:checked) { background: var(--p-rose-pale); font-weight: 600; }
.forminator-ui .forminator-radio:has(input:focus-visible),
.forminator-ui .forminator-checkbox:has(input:focus-visible) { outline: 3px solid var(--p-accent); outline-offset: 2px; }
/* Consentement RGPD : pas en pastille, texte normal */
.forminator-ui .forminator-field-gdprcheckbox .forminator-checkbox,
.forminator-ui .forminator-field-consent .forminator-checkbox {
	border: 0; background: none; border-radius: 0; padding: 0; align-items: flex-start; font-weight: 400;
}

/* Boutons : mêmes boutons bordeaux que le site */
.forminator-ui .forminator-button,
.forminator-ui button[type="submit"] {
	font: inherit;
	font-weight: 700;
	color: var(--p-blanc);
	background: var(--p-accent);
	border: 2px solid var(--p-noir);
	border-radius: 999px;
	padding: 0.85em 1.7em;
	box-shadow: 4px 4px 0 var(--p-noir);
	cursor: pointer;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.forminator-ui .forminator-button:hover { transform: translate(-1px, -1px); box-shadow: 5px 5px 0 var(--p-noir); }
.forminator-ui .forminator-button:focus-visible { outline: 3px solid var(--p-accent-texte); outline-offset: 3px; }
.forminator-ui .forminator-button-back {
	color: var(--p-noir);
	background: var(--p-blanc);
}
.forminator-ui .forminator-pagination-footer {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.5rem;
}

/* Barre de progression des étapes */
.forminator-ui .forminator-pagination-progress { margin-bottom: 1.75rem; }
.forminator-ui .forminator-progress-label {
	font-family: var(--p-mono);
	font-size: 0.8rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	display: block;
	margin-bottom: 0.5rem;
}
.forminator-ui .forminator-progress-bar {
	height: 12px;
	background: var(--p-gris);
	border: 2px solid var(--p-noir);
	border-radius: 999px;
	overflow: hidden;
}
.forminator-ui .forminator-progress-bar > span {
	display: block;
	height: 100%;
	background: var(--p-accent);
	transition: width 0.4s ease;
}

/* Messages */
.forminator-ui .forminator-error-message {
	display: block;
	color: var(--p-accent-texte);
	font-size: 0.85rem;
	font-weight: 600;
	margin-top: 0.35rem;
}
.forminator-ui .forminator-response-message {
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-m);
	padding: 1rem 1.25rem;
	margin-bottom: 1.25rem;
	background: var(--p-rose-pale);
	color: var(--p-noir);
}
.forminator-ui .forminator-response-message a { color: var(--p-accent-texte); font-weight: 700; }

@media (prefers-reduced-motion: reduce) {
	.forminator-ui * { transition: none !important; }
}

/* ==========================================================================
   21. À propos : plan de route, revue de presse, « Me faire intervenir »
   ========================================================================== */
.p-section-route { scroll-margin-top: 6rem; }
.p-route {
	--p-gouttiere: clamp(2.5rem, 6vw, 5rem);
	position: relative;
	counter-reset: station;
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--p-gouttiere);
	row-gap: 1.25rem;
	align-items: start;
	max-width: 1060px;
	margin-inline: auto !important;
	padding-block: 1rem;
}
.p-route::before { /* la route pointillée */
	content: "";
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	border-left: 3px dashed var(--p-rose);
	transform: translateX(-50%);
}
.p-route > .p-station { grid-column: 1; }
.p-route > .p-station:nth-child(2n) { grid-column: 2; margin-top: 3.5rem !important; }

.wp-block-details.p-station {
	position: relative;
	counter-increment: station;
	max-width: none;
	margin: 0 !important;
	padding: 1rem 1.25rem;
	background: var(--p-blanc);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-m);
	box-shadow: 4px 4px 0 var(--p-noir);
	transition: transform 0.25s var(--p-rebond), box-shadow 0.25s;
}
.wp-block-details.p-station:hover { transform: translateY(-2px); box-shadow: 6px 6px 0 var(--p-noir); }
.wp-block-details.p-station[open] { background: var(--p-papier); }
.p-station::before { /* la « station » sur la route */
	content: counter(station);
	position: absolute;
	top: 1rem;
	right: calc(var(--p-gouttiere) / -2 - 1.05rem - 3px);
	display: grid;
	place-items: center;
	width: 2.1rem;
	height: 2.1rem;
	border: 2px solid var(--p-noir);
	border-radius: 50%;
	background: var(--p-accent);
	color: var(--p-blanc);
	font-family: var(--p-mono);
	font-size: 0.85rem;
	font-weight: 700;
	z-index: 1;
}
.p-route > .p-station:nth-child(2n)::before { right: auto; left: calc(var(--p-gouttiere) / -2 - 1.05rem - 3px); }
.p-route > .p-station:last-child::before { content: "★"; background: var(--p-rose); color: var(--p-noir); }

.p-station summary { font-size: 1.1rem; line-height: 1.25; }
.p-station summary code {
	display: block;
	width: fit-content;
	margin-bottom: 0.4rem;
	padding: 0.15rem 0.6rem;
	border-radius: 999px;
	background: var(--p-rose-pale);
	color: var(--p-noir);
	font-family: var(--p-mono);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.p-station > p { font-size: 0.97rem; line-height: 1.55; }
.p-station .p-station-lieu {
	font-size: 0.78rem !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--p-accent-texte);
}

@media (max-width: 781px) {
	.p-route { grid-template-columns: 1fr; padding-left: 2.5rem; --p-gouttiere: 2.5rem; }
	.p-route::before { left: 1rem; transform: none; }
	.p-route > .p-station,
	.p-route > .p-station:nth-child(2n) { grid-column: 1; margin-top: 0 !important; }
	.p-station::before,
	.p-route > .p-station:nth-child(2n)::before { right: auto; left: calc(-2.5rem + 1rem - 1.05rem + 1.5px); }
}

/* Revue de presse : coupures de journaux scotchées */
.p-section-presse { scroll-margin-top: 6rem; }
.p-coupures {
	gap: clamp(1.5rem, 3vw, 2.25rem) !important;
	max-width: 1100px;
	margin-inline: auto !important;
	padding-top: 1rem;
}
.p-coupure {
	position: relative;
	padding: 1.75rem 1.4rem 1.25rem;
	background: #FFFDF9;
	border: 1px solid #E6DAD5;
	box-shadow: 0 10px 24px -14px rgba(23, 16, 26, 0.45);
	transform: rotate(-1.2deg);
	transition: transform 0.3s var(--p-rebond);
}
.p-coupure:nth-child(2n) { transform: rotate(1.4deg); }
.p-coupure:nth-child(3n) { transform: rotate(-0.4deg); }
.p-coupure:hover,
.p-coupure:focus-within { transform: rotate(0deg) translateY(-4px); }
.p-coupure::before { /* le morceau de scotch */
	content: "";
	position: absolute;
	top: -0.7rem;
	left: 50%;
	width: 5.5rem;
	height: 1.5rem;
	background: rgba(232, 169, 182, 0.55);
	transform: translateX(-50%) rotate(-3deg);
}
.p-coupure:nth-child(2n)::before { background: rgba(205, 184, 242, 0.6); transform: translateX(-50%) rotate(4deg); }
.p-coupure > * { margin: 0 !important; }
.p-coupure-media {
	font-family: var(--p-titres);
	font-size: 1.35rem;
	line-height: 1.1;
	padding-bottom: 0.5rem !important;
	border-bottom: 3px double var(--p-noir);
}
.p-coupure-date { font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; opacity: 0.75; padding-top: 0.5rem !important; }
.p-coupure-titre {
	font-family: var(--p-accroche) !important;
	font-style: italic;
	font-weight: 400 !important;
	font-size: 1.3rem !important;
	line-height: 1.2 !important;
	padding-block: 0.75rem !important;
}
.p-coupure-lien { font-weight: 700; font-size: 0.95rem; }
.p-coupure-lien a { color: var(--p-accent-texte); }

/* Me faire intervenir */
.p-intervenante {
	max-width: 1000px;
	margin-inline: auto !important;
	padding: clamp(1.75rem, 4vw, 3rem);
	background: var(--p-holo);
	border: 2px solid var(--p-noir);
	border-radius: var(--p-radius-l);
	box-shadow: 6px 6px 0 var(--p-noir);
}
.p-intervenante .p-badges { margin-block: 1rem 0.5rem !important; }

/* Page Conférences & formations */
.p-grille-themes { gap: var(--wp--preset--spacing--40) !important; max-width: 1100px; margin-inline: auto !important; }
.p-theme h3 { font-size: 1.3rem; margin-block: 0.4rem 0.6rem; }
.p-dossier-b2b { max-width: 820px; margin-inline: auto !important; }

@media (prefers-reduced-motion: reduce) {
	.p-coupure, .p-coupure:nth-child(n), .wp-block-details.p-station { transition: none; }
}

/* Grilles explicites (au cas où la mise en page « grille » de l'éditeur ne s'appliquerait pas) */
.p-coupures { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr)); }
.p-grille-themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(14rem, 100%), 1fr)); }
