/*
Theme Name: Au Soin de Soi
Description: Thème enfant de Twenty Twenty-Five aux couleurs d'Au Soin de Soi — crème, beige, vert doux et or.
Author: Courgette Studio
Author URI: https://courgettestudio.com
Template: twentytwentyfive
Version: 1.28.1
Requires at least: 6.7
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: au-soin-de-soi
*/

/*
 * Presque tout le style vit dans theme.json (couleurs, polices, tailles,
 * boutons). Ici, uniquement ce que theme.json ne sait pas faire.
 */

/* Un mot en italique dans un grand titre passe en vert, comme sur la maquette. */
h1 em,
h2 em {
	color: var(--wp--preset--color--accent-3);
	font-style: italic;
}

/* Focus clavier bien visible (accessibilité). */
:where(a, button, input, select, textarea, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--bronze);
	outline-offset: 3px;
}

/* Logo de Sarah (couronne végétale sur fond transparent) : jamais déformé. */
.wp-block-site-logo img {
	aspect-ratio: 1;
	object-fit: contain;
}

/* Le bouton « Prendre rendez-vous » de l'en-tête ne se coupe jamais en plusieurs lignes. */
header .wp-block-button__link {
	white-space: nowrap;
}

/* Une colonne colorée prend toute la hauteur de sa rangée, contenu centré (bloc d'accueil). */
.wp-block-column.has-background {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* Le pied de page touche la dernière section, sans bande crème entre les deux. */
.wp-site-blocks > footer {
	margin-block-start: 0;
}

/* Cartes d'une même rangée à la même hauteur. */
/* Encadrés côte à côte (cartes, « Ma posture / Mon intention »…) : même hauteur. */
.wp-block-column > [class*="is-style-section-"]:only-child {
	box-sizing: border-box;
	height: 100%;
}

/* Bouton « contour » lisible sur le fond vert profond. */
.is-style-section-vert-profond .is-style-outline .wp-block-button__link {
	background: transparent;
	border-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--base);
}

/* Grille tarifaire : nom à gauche, prix à droite, filet beige entre les lignes. */
.ligne-tarif {
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
	padding-block: 0.8rem;
	gap: 1.5rem;
}
.ligne-tarif p {
	margin: 0;
}
.ligne-tarif .prix {
	color: var(--wp--preset--color--bronze);
	flex-shrink: 0;
	font-size: var(--wp--preset--font-size--small);
	text-align: right;
}

/* Formulaire de contact (Contact Form 7), aux couleurs du site. */
.wpcf7-form label {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	margin-bottom: 1.2rem;
}
.wpcf7-form input:not([type="submit"]),
.wpcf7-form textarea {
	background: var(--wp--preset--color--blanc);
	border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 0;
	box-sizing: border-box;
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: var(--wp--preset--font-size--medium);
	margin-top: 0.4rem;
	padding: 0.75rem 0.9rem;
	width: 100%;
}
.wpcf7-form textarea {
	height: 10rem;
}
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
	border-color: var(--wp--preset--color--accent-3);
	outline: 2px solid var(--wp--preset--color--accent-1);
}
.wpcf7-form input[type="submit"] {
	background: var(--wp--preset--color--accent-3);
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--base);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--jost);
	font-size: 0.75rem;
	letter-spacing: 0.09em;
	padding: 0.875rem 1.375rem;
	text-transform: uppercase;
}
.wpcf7-form input[type="submit"]:hover {
	background: var(--wp--preset--color--contrast);
}
.wpcf7-form .mention-formulaire {
	color: var(--wp--preset--color--accent-4);
	font-size: var(--wp--preset--font-size--small);
}

/*
 * Téléphone : en-tête sur une seule ligne (logo, nom, menu) et bouton
 * « Prendre rendez-vous » fixé en bas de l'écran, toujours à portée de pouce.
 */
@media (max-width: 599px) {
	header .alignwide.is-layout-flex {
		flex-wrap: nowrap;
	}
	header .wp-block-site-logo img {
		height: auto;
		width: 52px !important;
	}
	header .wp-block-site-title {
		font-size: 1.3rem;
	}
	header .wp-block-site-tagline {
		font-size: 0.625rem;
		letter-spacing: 0.22em;
	}
	header .wp-block-buttons {
		background: var(--wp--preset--color--base);
		bottom: 0;
		box-shadow: 0 -1px 0 var(--wp--preset--color--accent-6);
		left: 0;
		margin: 0;
		padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
		position: fixed;
		right: 0;
		z-index: 100;
	}
	header .wp-block-buttons .wp-block-button,
	header .wp-block-buttons .wp-block-button__link {
		box-sizing: border-box;
		text-align: center;
		width: 100%;
	}
	body {
		padding-bottom: 4.5rem;
	}
}

/* Menu ouvert sur téléphone : entrées alignées à gauche, plus grandes, sous-menu en retrait. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	align-items: flex-start !important;
	text-align: left;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding: 2rem 1.5rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	font-size: 0.95rem;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border-left: 1px solid var(--wp--preset--color--accent-6) !important;
	padding: 0 0 0 1.2rem !important;
}

/* Tablette et petit portable : bouton menu au lieu d'un menu sur deux lignes
   (le menu complet a besoin d’environ 1 250 px de large, barre de défilement comprise). */
@media (min-width: 600px) and (max-width: 1259px) {
	header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}
	header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}
}

/* Bloc d'accueil : la photo à côté du bloc beige prend toute sa hauteur. */
.wp-block-column.has-background + .wp-block-column > .wp-block-image,
.wp-block-column.has-background + .wp-block-column > .wp-block-image img {
	height: 100%;
	width: 100%;
}

/*
 * « Offres du moment » : les 3 dernières offres (articles de la catégorie
 * Offres du moment), en cartes centrées. Aucune offre publiée : section masquée.
 */
.offres-du-moment:not(:has(.wp-block-post)) {
	display: none;
}
/* « Parcours fidélité » juste après des offres du moment visibles : même fond, on les lie sans double marge. */
.offres-du-moment:has(.wp-block-post) + .offres-du-moment {
	padding-top: 0 !important;
	scroll-margin-top: var(--wp--preset--spacing--40);
}
.offres-du-moment .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--40);
	justify-content: center;
	list-style: none;
	margin: var(--wp--preset--spacing--30) 0 0;
	padding: 0;
}
.offres-du-moment .wp-block-post {
	flex: 1 1 260px;
	margin: 0;
	max-width: 360px;
}
.offres-du-moment .is-style-section-avis {
	background: var(--wp--preset--color--base);
	height: 100%;
}
.offres-du-moment .wp-block-post-title a {
	color: inherit;
	text-decoration: none;
}
.offres-du-moment .wp-block-post-excerpt__more-link {
	color: var(--wp--preset--color--bronze);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

/* Date de fin d'une offre (« Jusqu'au 31 octobre 2026 »), ajoutée par l'extension Offres. */
.offre-date-fin {
	color: var(--wp--preset--color--bronze);
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* Pages courtes (panier, e-books) : le pied de page reste en bas de l'écran. */
.wp-site-blocks {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
.wp-site-blocks > main,
.wp-site-blocks > .wp-block-group:not(header):not(footer) {
	flex: 1 0 auto;
}

/* Fiche e-book : la ligne « Catégorie » n'apporte rien (une seule catégorie). */
.wp-block-woocommerce-product-meta {
	display: none;
}

/* Titre de section présenté comme un petit surtitre doré (ex. « Offres du moment »). */
h2.titre-surtitre {
	color: var(--wp--preset--color--bronze);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.25em;
	line-height: 1.5;
	text-transform: uppercase;
}

/*
 * Menu mobile : panneau latéral qui glisse depuis la droite (au lieu du plein
 * écran), page visible et assombrie derrière.
 */
.wp-block-navigation__responsive-container.is-menu-open {
	animation: asds-panneau 0.25s ease-out;
	box-shadow: 0 0 0 100vmax rgba(43, 51, 39, 0.45);
	box-sizing: border-box;
	left: auto !important;
	max-width: 360px;
	right: 0 !important;
	width: 85vw;
}
.admin-bar .wp-block-navigation__responsive-container.is-menu-open {
	top: var(--wp-admin--admin-bar--height, 0px);
}
@keyframes asds-panneau {
	from {
		transform: translateX(100%);
	}
	to {
		transform: translateX(0);
	}
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-navigation__responsive-container.is-menu-open {
		animation: none;
	}
}

/* Menu ouvert : le bouton fixé en bas se cache (pas d'appui accidentel en fermant le menu). */
@media (max-width: 599px) {
	body:has(.wp-block-navigation__responsive-container.is-menu-open) header .wp-block-buttons {
		display: none;
	}
}

/* Frise des étapes (pages d'accompagnement) : chiffre doré, trait vertical, texte à droite. */
.frise {
	margin-top: var(--wp--preset--spacing--50);
}
.frise .etape {
	gap: 1.5rem;
	padding-bottom: var(--wp--preset--spacing--40);
	position: relative;
}
.frise .etape:last-child {
	padding-bottom: 0;
}
.frise .etape:not(:last-child)::before {
	border-left: 1px solid var(--wp--preset--color--accent-2);
	bottom: 0.4rem;
	content: "";
	left: 1.25rem;
	position: absolute;
	top: 3.6rem;
}
.frise .etape-numero {
	color: var(--wp--preset--color--bronze);
	flex-shrink: 0;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 2.75rem;
	font-variant-numeric: lining-nums;
	font-weight: 300;
	line-height: 1;
	margin: 0;
	text-align: center;
	width: 2.5rem;
}
.frise .etape > .wp-block-group {
	flex: 1;
}
.frise .etape h3 {
	margin-top: 0.35rem;
}

/*
 * Chiffres « modernes » partout : dans Cormorant Garamond, les chiffres à
 * l'ancienne font lire « I2 » au lieu de « 12 ».
 */
body {
	font-variant-numeric: lining-nums;
}

/* Listes à puces : petite puce dorée au lieu du point noir. */
.entry-content .wp-block-list {
	list-style: none;
	padding-left: 0;
}
.entry-content .wp-block-list > li {
	padding-left: 1.6rem;
	position: relative;
}
.entry-content .wp-block-list > li::before {
	background: var(--wp--preset--color--or);
	border-radius: 50%;
	content: "";
	height: 0.45rem;
	left: 0.2rem;
	position: absolute;
	top: 0.72em;
	width: 0.45rem;
}
.is-style-section-vert-profond .wp-block-list > li::before {
	background: var(--wp--preset--color--accent-2);
}

/* « Carte de soins » : nom du soin à gauche, description à droite, filet doré entre les lignes. */
.ligne-soin {
	border-top: 1px solid var(--wp--preset--color--accent-2);
	gap: var(--wp--preset--spacing--50);
	margin-block: 0 !important;
	padding-block: var(--wp--preset--spacing--40);
}
.ligne-soin:last-child {
	border-bottom: 1px solid var(--wp--preset--color--accent-2);
}
h2 + .ligne-soin {
	margin-top: var(--wp--preset--spacing--40) !important;
}
.ligne-soin h3 {
	margin-top: 0;
}
.ligne-soin > .wp-block-column > p:first-child {
	margin-top: 0;
}
.ligne-soin h4 {
	color: var(--wp--preset--color--bronze);
	font-family: var(--wp--preset--font-family--jost);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.12em;
	margin-bottom: 0.2rem;
	text-transform: uppercase;
}
.ligne-soin h4 + p {
	margin-top: 0;
}
@media (max-width: 781px) {
	.ligne-soin {
		gap: 0.6rem;
	}
}

/* « En savoir plus » : suite de la description, repliée par défaut. */
.en-savoir-plus summary {
	color: var(--wp--preset--color--bronze);
	cursor: pointer;
	display: inline-block;
	font-size: 0.75rem;
	letter-spacing: 0.12em;
	list-style: none;
	text-transform: uppercase;
}
.en-savoir-plus summary::-webkit-details-marker {
	display: none;
}
.en-savoir-plus summary::after {
	content: " +";
}
.en-savoir-plus[open] summary::after {
	content: " –";
}
.en-savoir-plus summary:hover {
	color: var(--wp--preset--color--accent-3);
}
.en-savoir-plus[open] > summary {
	margin-bottom: 0.8rem;
}
.en-savoir-plus > p:first-of-type {
	margin-top: 0;
}

/* Menu : page en cours en vert, soulignée d'un filet doré (et « Accompagnements » sur ses sous-pages). */
header .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
header .wp-block-navigation .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent-3);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--or);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.45em;
}

/* Pied de page : intitulés dorés, liens sans soulignement, filet au-dessus des mentions. */
.pied-de-page .titre-pied {
	color: var(--wp--preset--color--accent-2);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.25em;
	margin-bottom: 0.6rem;
	text-transform: uppercase;
}
/* Même taille, même graisse et même interligne dans toutes les colonnes. */
.pied-de-page .wp-block-columns p:not(.titre-pied):not(.wp-block-site-title):not(.wp-block-site-tagline) {
	font-size: 0.95rem !important;
	font-weight: 400;
	line-height: 1.85;
	margin-block: 0 1rem;
}
.pied-de-page .wp-block-columns p:not(.titre-pied):not(.wp-block-site-title):not(.wp-block-site-tagline):last-child {
	margin-bottom: 0;
}
.pied-de-page .titre-pied {
	margin-block: 0 0.9rem !important;
}
.pied-de-page .wp-block-site-tagline {
	margin-bottom: 0.9rem;
}
.pied-de-page a {
	text-decoration: none;
}
.pied-de-page a:hover {
	color: var(--wp--preset--color--accent-2) !important;
	text-decoration: underline;
}
.pied-de-page .wp-element-button,
.pied-de-page .wp-element-button:hover {
	color: var(--wp--preset--color--contrast) !important;
	text-decoration: none;
}
.pied-de-page .bas-pied {
	border-top: 1px solid rgba(221, 226, 213, 0.2);
	padding-top: var(--wp--preset--spacing--30);
}
.pied-de-page .bas-pied p {
	margin: 0;
	opacity: 0.8;
}

/* ---------- Accueil « haut de gamme » ---------- */

/* Ouverture plein écran : photo pleine largeur, voile en dégradé, texte clair à gauche (aligné sur le logo). */
.accueil-ouverture {
	padding-inline: var(--wp--style--root--padding-left, 1.5rem) !important;
}
.accueil-ouverture .wp-block-cover__background {
	background: linear-gradient(90deg, rgba(43, 51, 39, 0.9) 0%, rgba(43, 51, 39, 0.74) 45%, rgba(43, 51, 39, 0.42) 100%) !important;
	opacity: 1 !important;
}
.accueil-ouverture.accueil-ouverture .wp-block-cover__inner-container {
	margin-inline: auto !important;
	max-width: var(--wp--style--global--wide-size) !important;
	width: 100% !important;
}
.accueil-ouverture .wp-block-cover__inner-container > * {
	max-width: 34rem;
}
.accueil-ouverture h1 {
	font-size: clamp(2.1rem, 3.2vw, 3.1rem) !important;
	line-height: 1.12;
	margin-block: 1rem 1.4rem;
}
.accueil-ouverture h1,
.accueil-ouverture p {
	color: var(--wp--preset--color--base);
}
.accueil-ouverture h1 em,
.accueil-ouverture .is-style-surtitre {
	color: var(--wp--preset--color--accent-2);
}
.accueil-ouverture .is-style-outline .wp-block-button__link {
	border-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--base);
}
@media (max-width: 781px) {
	.accueil-ouverture {
		align-items: flex-end !important;
	}
	.accueil-ouverture .wp-block-cover__background {
		background: linear-gradient(0deg, rgba(43, 51, 39, 0.92) 0%, rgba(43, 51, 39, 0.72) 55%, rgba(43, 51, 39, 0.4) 100%) !important;
	}
}

/* La phrase de Sarah, en grand. */
.citation-accueil {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(1.75rem, 3.2vw, 2.6rem);
	font-weight: 300;
	line-height: 1.3;
	margin-inline: auto;
	max-width: 22em;
}
.citation-accueil::before {
	border-top: 1px solid var(--wp--preset--color--or);
	content: "";
	display: block;
	margin: 0 auto 2rem;
	width: 3rem;
}
.citation-accueil em {
	color: var(--wp--preset--color--accent-3);
}

/* Accompagnements : sans cadre, grandes photos verticales. */
.carte-accompagnement > .wp-block-group {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.carte-accompagnement .wp-block-image img {
	transition: transform 0.6s ease;
}
.carte-accompagnement .wp-block-image {
	overflow: hidden;
}
.carte-accompagnement:hover .wp-block-image img {
	transform: scale(1.03);
}

/* Apparition au défilement : un petit script (functions.php) ajoute « asds-anim » sur <html>,
   puis « est-visible » sur chaque bloc quand il entre à l'écran, une seule fois.
   Rien ne tourne pendant le défilement ; sans script, tout reste visible. */
.asds-anim .entry-content > .alignfull:not(:first-child) > :not(.wp-block-columns),
.asds-anim .entry-content > .alignfull:not(:first-child) > .wp-block-columns > .wp-block-column {
	opacity: 0;
	transform: translateY(1.5rem);
	transition: opacity 0.9s cubic-bezier(0.2, 0.7, 0.2, 1), transform 0.9s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.asds-anim .entry-content > .alignfull:not(:first-child) > .wp-block-columns > .wp-block-column:nth-child(2) {
	transition-delay: 0.15s;
}
.asds-anim .entry-content > .alignfull:not(:first-child) > .wp-block-columns > .wp-block-column:nth-child(3) {
	transition-delay: 0.3s;
}
.asds-anim .entry-content > .alignfull:not(:first-child) > .est-visible:not(.wp-block-columns),
.asds-anim .entry-content > .alignfull:not(:first-child) > .wp-block-columns > .wp-block-column.est-visible {
	opacity: 1;
	transform: none;
}
@keyframes asds-apparition {
	from {
		opacity: 0;
		transform: translateY(1.5rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

/* En-tête plus fin : moins de marge, logo un peu plus petit. */
header > .wp-block-group.alignfull {
	padding-bottom: 0.7rem !important;
	padding-top: 0.7rem !important;
	transition: padding 0.3s ease;
}
header .wp-block-site-logo img {
	transition: width 0.3s ease;
}
@media (min-width: 600px) {
	header .wp-block-site-logo img {
		height: auto;
		width: 56px !important;
	}
}
/* Au défilement (classe posée par le script) : en-tête affiné, logo réduit. */
.en-defilement header > .wp-block-group.alignfull {
	padding-bottom: 0.3rem !important;
	padding-top: 0.3rem !important;
}
@media (min-width: 600px) {
	.en-defilement header .wp-block-site-logo img {
		width: 42px !important;
	}
}

/* Indicateur « Découvrir » en bas de l'ouverture : invite à faire défiler. */
.accueil-ouverture .wp-block-cover__inner-container {
	position: static !important;
}
.accueil-ouverture .wp-block-cover__inner-container > * {
	position: relative;
	z-index: 2;
}
.accueil-ouverture .indicateur-defilement {
	bottom: 1.6rem;
	left: 50%;
	margin: 0;
	max-width: none;
	position: absolute !important;
	transform: translateX(-50%);
	z-index: 3;
}
.indicateur-defilement a {
	align-items: center;
	color: var(--wp--preset--color--base) !important;
	display: flex;
	flex-direction: column;
	font-size: 0.65rem;
	gap: 0.7rem;
	letter-spacing: 0.3em;
	text-decoration: none;
	text-transform: uppercase;
}
.indicateur-defilement a::after {
	animation: asds-defile 2.2s ease-in-out infinite;
	background: linear-gradient(var(--wp--preset--color--accent-2), transparent);
	content: "";
	height: 2.6rem;
	transform-origin: top;
	width: 1px;
}
@keyframes asds-defile {
	0% { opacity: 1; transform: scaleY(0); }
	55% { opacity: 1; transform: scaleY(1); }
	100% { opacity: 0; transform: scaleY(1); }
}
@media (prefers-reduced-motion: reduce) {
	.indicateur-defilement a::after {
		animation: none;
	}
}
@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}
@media (max-width: 781px) {
	.accueil-ouverture .indicateur-defilement {
		display: none;
	}
}

/* Survol des boutons : transition douce, léger soulèvement, couleurs selon le style. */
.wp-element-button {
	transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}
.wp-element-button:hover,
.wp-element-button:focus-visible {
	transform: translateY(-1px);
}
/* Contour vert → rempli de vert. */
.is-style-outline .wp-block-button__link:hover,
.is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--accent-3) !important;
	border-color: var(--wp--preset--color--accent-3) !important;
	color: var(--wp--preset--color--base) !important;
}
/* Doré → crème. */
.is-style-bouton-or .wp-block-button__link:hover,
.is-style-bouton-or .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}
/* Sur fond foncé (ouverture, bandeau vert) : contour clair → rempli de crème. */
.accueil-ouverture .is-style-outline .wp-block-button__link:hover,
.accueil-ouverture .is-style-outline .wp-block-button__link:focus-visible,
.is-style-section-vert-profond .is-style-outline .wp-block-button__link:hover,
.is-style-section-vert-profond .is-style-outline .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--base) !important;
	border-color: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
}
@media (prefers-reduced-motion: reduce) {
	.wp-element-button,
	.wp-element-button:hover {
		transform: none;
		transition: none;
	}
}

/* Bandeau « Offre du moment » tout en haut (extension Offres). */
.bandeau-offre {
	background: var(--wp--preset--color--accent-3);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	padding: 0.55rem var(--wp--style--root--padding-left, 1rem);
	text-align: center;
}
.bandeau-offre a {
	color: var(--wp--preset--color--base);
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.2rem 0.6rem;
	justify-content: center;
	text-decoration: none;
}
/* Plusieurs messages superposés dans la même case (hauteur stable) ; ils alternent en fondu. */
.bandeau-offre {
	display: grid;
}
.bandeau-offre > a {
	grid-area: 1 / 1;
	justify-self: center;
	transition: opacity 0.6s ease, visibility 0.6s;
}
.bandeau-offre > a[inert] {
	opacity: 0;
	visibility: hidden;
}
@media (prefers-reduced-motion: reduce) {
	.bandeau-offre > a {
		transition: none;
	}
}
.bandeau-offre__label {
	color: #E3CFA8; /* doré éclairci : contraste suffisant sur le vert */
	letter-spacing: 0.2em;
	text-transform: uppercase;
}
.bandeau-offre__lien {
	border-bottom: 1px solid var(--wp--preset--color--accent-2);
}
.bandeau-offre a:hover .bandeau-offre__lien {
	color: var(--wp--preset--color--accent-2);
}
@media (max-width: 599px) {
	.bandeau-offre__label,
	.bandeau-offre__date {
		display: none;
	}
}

/*
 * Pied de page : chaque colonne prend la largeur de son contenu et les espaces
 * entre les textes sont égaux (plutôt que des colonnes égales aux vides inégaux).
 */
@media (min-width: 782px) and (max-width: 1099px) {
	.pied-de-page .wp-block-columns {
		display: grid !important;
		gap: var(--wp--preset--spacing--50);
		grid-template-columns: 1fr 1fr;
	}
}
@media (min-width: 1100px) {
	.pied-de-page .wp-block-columns {
		justify-content: space-between;
	}
	.pied-de-page .wp-block-columns > .wp-block-column {
		flex: 0 0 auto !important;
		width: max-content;
	}
}

/* Pied de page : la ligne « À domicile sur demande » bien visible. */
.pied-de-page .domicile-pied strong {
	color: var(--wp--preset--color--base);
	font-weight: 500;
}
.pied-de-page .domicile-pied a {
	color: var(--wp--preset--color--accent-2) !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}
.pied-de-page .domicile-pied a:hover {
	color: var(--wp--preset--color--base) !important;
}

/* Tableaux des tarifs : Soin · Durée · Tarif, colonnes alignées, une ligne par durée. */
.tableau-tarifs {
	margin-block: 0.6rem var(--wp--preset--spacing--50);
}
.tableau-tarifs table {
	border-collapse: collapse;
	width: 100%;
}
.tableau-tarifs th,
.tableau-tarifs td {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
	padding: 0.75rem 0;
	text-align: left;
	vertical-align: top;
}
.tableau-tarifs th {
	border-bottom-color: var(--wp--preset--color--or);
	color: var(--wp--preset--color--bronze);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: 0.2em;
	padding-block: 0 0.5rem;
	text-transform: uppercase;
}
.tableau-tarifs th:nth-child(2),
.tableau-tarifs td:nth-child(2) {
	color: var(--wp--preset--color--accent-4);
	width: 7rem;
}
.tableau-tarifs th:nth-child(3),
.tableau-tarifs td:nth-child(3) {
	text-align: right;
	width: 5.5rem;
}
.tableau-tarifs td:nth-child(3) {
	color: var(--wp--preset--color--contrast);
	font-weight: 300;
}
.tableau-tarifs td:first-child {
	padding-right: 1rem;
}
.tableau-tarifs td strong {
	font-weight: 500;
}
/* Plusieurs durées pour un même soin : lignes regroupées, filet seulement à la fin. */
.tableau-tarifs tr:has(+ tr > td:first-child:empty) > td {
	border-bottom-color: transparent;
	padding-bottom: 0.15rem;
}
.tableau-tarifs tr > td:first-child:empty ~ td,
.tableau-tarifs tr > td:first-child:empty {
	padding-top: 0.15rem;
}
@media (max-width: 599px) {
	.tableau-tarifs th:nth-child(2),
	.tableau-tarifs td:nth-child(2) {
		width: 4.8rem;
	}
	.tableau-tarifs th:nth-child(3),
	.tableau-tarifs td:nth-child(3) {
		width: 4.2rem;
	}
}
.tableau-tarifs thead,
.tableau-tarifs tfoot {
	border: 0;
}

/* Partie dépliée : en retrait, filet doré à gauche, teinte adoucie ; le lien devient « Réduire ». */
.en-savoir-plus[open] > :not(summary) {
	animation: asds-depli 0.35s ease-out;
	border-left: 1px solid var(--wp--preset--color--or);
	font-size: 0.95rem;
	margin-block: 0 !important;
	padding: 0.35rem 0 0.35rem 1.2rem;
}
.en-savoir-plus[open] > :not(summary):last-child {
	padding-bottom: 0.1rem;
}
.en-savoir-plus[open] > h4 {
	padding-top: 0.9rem;
}
.en-savoir-plus[open] summary {
	font-size: 0;
}
.en-savoir-plus[open] summary::after {
	content: "Réduire –";
	font-size: 0.75rem;
}
@keyframes asds-depli {
	from {
		opacity: 0;
		transform: translateY(-0.3rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.en-savoir-plus[open] > :not(summary) {
		animation: none;
	}
}

/* Programme d'un accompagnement (bandeau vert foncé) : tuiles, prix en grand, mention discrète. */
.is-style-section-vert-profond h2 em {
	color: var(--wp--preset--color--accent-2);
}
.programme-tuiles {
	display: flex;
	flex-wrap: wrap;
	gap: 1.2rem 1rem;
	justify-content: center;
	margin-block: var(--wp--preset--spacing--50) !important;
	max-width: var(--wp--style--global--wide-size) !important;
}
.programme-tuiles .tuile-programme {
	border-top: 1px solid var(--wp--preset--color--accent-2);
	box-sizing: border-box;
	flex: 0 1 calc(25% - 0.75rem);
	min-width: 12rem;
	line-height: 1.55;
	margin: 0 !important;
	padding: 1rem 0.6rem 0.4rem;
	text-align: center;
}
.programme-tuiles .tuile-programme strong {
	color: var(--wp--preset--color--accent-2);
	display: block;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 2rem;
	font-weight: 400;
	line-height: 1.1;
	margin-bottom: 0.2rem;
}
.prix-programme {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(2.4rem, 4vw, 3.2rem);
	font-weight: 300;
	line-height: 1;
	margin-block: var(--wp--preset--spacing--40) 0.4rem !important;
}
.modalites-programme {
	color: var(--wp--preset--color--accent-1);
	font-size: 0.95rem;
	margin-top: 0 !important;
}
.note-programme {
	font-size: 0.95rem;
	margin-inline: auto;
	max-width: 36rem;
}
.mention-programme {
	border-top: 1px solid rgba(221, 226, 213, 0.25);
	font-size: 0.8rem;
	margin: var(--wp--preset--spacing--50) auto 0 !important;
	max-width: 40rem;
	opacity: 0.85;
	padding-top: var(--wp--preset--spacing--30);
}
/* Tuile sans chiffre : un petit ornement doré à la place, pour garder l'alignement. */
.programme-tuiles .tuile-programme:not(:has(strong))::before {
	color: var(--wp--preset--color--accent-2);
	content: "✦";
	display: block;
	font-size: 1.2rem;
	line-height: 2.2rem;
	margin-bottom: 0.2rem;
}
@media (max-width: 599px) {
	.programme-tuiles .tuile-programme {
		flex-basis: calc(50% - 0.5rem);
		font-size: 0.9rem;
		min-width: 0;
		padding-inline: 0.2rem;
	}
	.programme-tuiles .tuile-programme strong {
		font-size: 1.7rem;
	}
}

/* Programme : liste (chiffre doré en colonne fixe) + encadré « Tarif ». */
.programme-liste .ligne-programme {
	align-items: baseline;
	border-bottom: 1px solid rgba(217, 195, 155, 0.35);
	column-gap: 1.2rem;
	display: grid;
	grid-template-columns: 4.2rem 1fr;
	margin: 0 !important;
	padding: 0.85rem 0;
}
.programme-liste .ligne-programme:first-child {
	border-top: 1px solid rgba(217, 195, 155, 0.35);
}
.programme-liste .ligne-programme strong,
.programme-liste .ligne-programme:not(:has(strong))::before {
	color: var(--wp--preset--color--accent-2);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.9rem;
	font-weight: 400;
	line-height: 1;
	text-align: right;
}
.programme-liste .ligne-programme:not(:has(strong))::before {
	content: "✦";
	font-size: 1.1rem;
}
.carte-prix {
	border: 1px solid var(--wp--preset--color--accent-2);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
}
.carte-prix .prix-programme {
	margin-top: 0.4rem !important;
}
.carte-prix .wp-block-buttons {
	flex-direction: column;
	gap: 0.7rem;
	margin-top: var(--wp--preset--spacing--40);
}
.carte-prix .wp-block-button,
.carte-prix .wp-block-button__link {
	box-sizing: border-box;
	text-align: center;
	width: 100%;
}
.carte-prix .note-programme {
	font-size: 0.85rem;
	margin-top: var(--wp--preset--spacing--30) !important;
	opacity: 0.9;
}
@media (max-width: 599px) {
	.programme-liste .ligne-programme {
		grid-template-columns: 3.2rem 1fr;
	}
	.programme-liste .ligne-programme strong {
		font-size: 1.6rem;
	}
}
.carte-prix .is-style-surtitre,
.is-style-section-vert-profond .is-style-surtitre {
	color: var(--wp--preset--color--accent-2);
}
.programme-liste .ligne-programme {
	grid-template-columns: 5.2rem 1fr;
}
@media (max-width: 599px) {
	.programme-liste .ligne-programme {
		grid-template-columns: 4.2rem 1fr;
	}
}

/*
 * Programme, alignements : colonne des chiffres à la largeur du plus grand
 * (sous-grille), chiffres à gauche, lignes réparties sur toute la hauteur de
 * l'encadré « Tarif », contenu de l'encadré centré.
 */
.programme-liste {
	column-gap: 1.4rem;
	display: grid;
	grid-auto-rows: 1fr;
	grid-template-columns: max-content 1fr;
	height: 100%;
}
.programme-liste .ligne-programme {
	align-items: center;
	column-gap: 1.4rem;
	grid-column: 1 / -1;
	grid-template-columns: subgrid;
}
.programme-liste .ligne-programme strong,
.programme-liste .ligne-programme:not(:has(strong))::before {
	text-align: left;
}
.carte-prix {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	justify-content: center;
}
@media (max-width: 781px) {
	.programme-liste {
		grid-auto-rows: auto;
		height: auto;
	}
}

/* Programme, version lisible : chaque ligne se lit comme une phrase, chiffre doré dans le texte. */
.programme-liste {
	grid-template-columns: 1fr;
}
.programme-liste .ligne-programme {
	display: flex;
	align-items: center;
	padding-left: 1.6rem;
	position: relative;
}
.programme-liste .ligne-programme::before,
.programme-liste .ligne-programme:not(:has(strong))::before {
	background: var(--wp--preset--color--accent-2);
	border-radius: 50%;
	content: "";
	height: 0.45rem;
	left: 0.2rem;
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 0.45rem;
}
.programme-liste .ligne-programme strong {
	color: var(--wp--preset--color--accent-2);
	font-family: inherit;
	font-size: inherit;
	font-weight: 500;
	line-height: inherit;
	margin-right: 0.3em;
	text-align: left;
}
.programme-liste .ligne-programme {
	column-gap: 0;
}

/* « Et puis, » (Qui suis-je) : tournant du récit, en grand italique comme la phrase qui suit. */
.amorce-recit {
	color: var(--wp--preset--color--accent-3);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(1.9rem, 3vw, 2.5rem);
	font-style: italic;
	font-weight: 300;
	line-height: 1.1;
	margin-bottom: 0.3rem;
}
.amorce-recit + p {
	margin-top: 0;
}
/* Passage « Et puis… » : plus d'air pour un meilleur fil de lecture. */
.amorce-recit {
	margin-bottom: 1rem !important;
}
.amorce-recit + p {
	margin-bottom: 2.4rem !important;
}
.amorce-recit + p + h2 {
	margin-bottom: 2rem !important;
	margin-top: 0 !important;
}

/* Formations (Qui suis-je) : parcours façon CV — année · formation, détail, école. */
.ligne-formation {
	border-top: 1px solid var(--wp--preset--color--accent-6);
	gap: 1.5rem;
	margin-block: 0 !important;
	padding-block: 1.1rem;
}
.ligne-formation:last-child {
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
h2 + .ligne-formation {
	margin-top: var(--wp--preset--spacing--40) !important;
}
.ligne-formation.suite-annee {
	border-top-color: transparent;
	padding-top: 0.2rem;
}
.ligne-formation p {
	margin: 0 !important;
}
.formation-annee {
	color: var(--wp--preset--color--bronze);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.35rem;
	line-height: 1.3;
}
.formation-titre strong {
	font-weight: 500;
}
.formation-detail {
	font-size: 0.95rem;
	margin-top: 0.2rem !important;
}
.formation-ecole {
	color: var(--wp--preset--color--bronze);
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	margin-top: 0.35rem !important;
	text-transform: uppercase;
}
@media (max-width: 781px) {
	.ligne-formation {
		gap: 0.2rem;
	}
	.ligne-formation.suite-annee .formation-annee {
		display: none;
	}
}

/* Boutons pleins et boutons contour : même bordure (1 px) et même marge intérieure,
   donc même hauteur côte à côte. Bordure transparente sur les boutons pleins. */
.wp-block-buttons > .wp-block-button.wp-block-button > .wp-block-button__link {
	border-width: 1px;
	border-style: solid;
	padding: 0.875rem 1.375rem;
}
.wp-block-button:not(.is-style-outline) > .wp-block-button__link {
	border-color: transparent;
}

/* Animations d'arrivée (chargement de la page) : ouverture de l'accueil et haut des autres pages.
   Courtes, sans script, désactivées si la personne a demandé à limiter les animations. */
@keyframes asds-monte {
	from { opacity: 0; transform: translateY(1.25rem); }
	to { opacity: 1; transform: none; }
}
@keyframes asds-zoom-lent {
	from { scale: 1.08; }
	to { scale: 1; }
}
@media (prefers-reduced-motion: no-preference) {
	.accueil-ouverture .wp-block-cover__image-background {
		animation: asds-zoom-lent 2.6s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
	.accueil-ouverture .wp-block-cover__inner-container > *,
	.entry-content > .alignfull:first-child:not(.accueil-ouverture) > :not(.wp-block-columns),
	.entry-content > .alignfull:first-child:not(.accueil-ouverture) > .wp-block-columns > .wp-block-column {
		animation: asds-monte 0.9s cubic-bezier(0.2, 0.7, 0.2, 1) both;
	}
	.accueil-ouverture .wp-block-cover__inner-container > :nth-child(2),
	.entry-content > .alignfull:first-child > :nth-child(2),
	.entry-content > .alignfull:first-child > .wp-block-columns > .wp-block-column:nth-child(2) {
		animation-delay: 0.15s;
	}
	.accueil-ouverture .wp-block-cover__inner-container > :nth-child(3),
	.entry-content > .alignfull:first-child > :nth-child(3) {
		animation-delay: 0.3s;
	}
	.accueil-ouverture .wp-block-cover__inner-container > :nth-child(4),
	.entry-content > .alignfull:first-child > :nth-child(n+4) {
		animation-delay: 0.45s;
	}
	/* L'indicateur « Découvrir » garde son centrage : il apparaît en fondu, en dernier. */
	.accueil-ouverture .indicateur-defilement {
		animation: asds-fondu 1s ease 0.9s both !important;
	}

	/* Menu : filet doré qui se dessine sous le lien survolé. */
	header .wp-block-navigation-item__content {
		background: linear-gradient(var(--wp--preset--color--or), var(--wp--preset--color--or)) no-repeat left 100% / 0 1px;
		padding-bottom: 0.2em;
		transition: background-size 0.35s ease, color 0.25s ease;
	}
	header .wp-block-navigation-item:not(.current-menu-item):not(.current-menu-ancestor) > .wp-block-navigation-item__content:hover {
		background-size: 100% 1px;
	}
}
@keyframes asds-fondu {
	from { opacity: 0; }
	to { opacity: 1; }
}

/* En-tête fixé en haut au défilement (le bandeau d'offre, lui, défile).
   Fond plein et filet beige ; pas de flou d'arrière-plan (coûteux et il casserait
   le bouton « Prendre rendez-vous » fixé en bas sur téléphone). */
header.wp-block-template-part {
	background: var(--wp--preset--color--base);
	box-shadow: 0 1px 0 var(--wp--preset--color--accent-6);
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
/* Les liens vers une ancre (#decouvrir, #formulaire, #offres) ne passent pas sous l'en-tête. */
html {
	scroll-padding-top: 6rem;
}

/* Bouton « Revenir en haut » : apparaît après un écran de défilement.
   Sur téléphone, il se place au-dessus du bouton « Prendre rendez-vous » fixé en bas. */
.retour-haut {
	align-items: center;
	background: var(--wp--preset--color--accent-3);
	border: 0;
	bottom: 1.5rem;
	color: var(--wp--preset--color--base);
	cursor: pointer;
	display: flex;
	height: 2.75rem;
	justify-content: center;
	opacity: 0;
	padding: 0;
	position: fixed;
	right: 1.5rem;
	transform: translateY(0.75rem);
	transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s, background-color 0.25s ease;
	visibility: hidden;
	width: 2.75rem;
	z-index: 90;
}
.retour-haut.est-visible {
	opacity: 1;
	transform: none;
	visibility: visible;
}
.retour-haut:hover,
.retour-haut:focus-visible {
	background: var(--wp--preset--color--contrast);
}
@media (max-width: 781px) {
	.retour-haut {
		bottom: calc(5.25rem + env(safe-area-inset-bottom));
		right: 1rem;
	}
}
@media (prefers-reduced-motion: reduce) {
	header > .wp-block-group.alignfull,
	header .wp-block-site-logo img,
	.retour-haut {
		transition: none;
	}
}

/* Zones à toucher du doigt d'au moins ~40 px, sans changer la mise en page :
   marge intérieure agrandie, compensée par une marge négative. */
.bandeau-offre a {
	margin-block: -0.5rem;
	padding-block: 0.5rem;
}
.is-style-lien-discret a,
.wp-block-post-excerpt__more-link {
	display: inline-block;
	margin-block: -0.75rem;
	padding-block: 0.75rem;
}
.en-savoir-plus > summary {
	margin-block: -0.7rem;
	padding-block: 0.7rem;
}
.en-savoir-plus[open] > summary {
	margin-bottom: 0.1rem;
}
@media (max-width: 781px) {
	.wp-block-navigation__responsive-container-open {
		margin: -10px;
		padding: 10px;
	}
	.pied-de-page .wp-block-columns p.liens-pied:not(.titre-pied):not(.wp-block-site-title):not(.wp-block-site-tagline) {
		line-height: 2.5;
	}
	/* Ouverture de l'accueil : les boutons restent au-dessus de la barre « Prendre rendez-vous ». */
	.accueil-ouverture {
		padding-bottom: calc(5.5rem + env(safe-area-inset-bottom)) !important;
	}
}

/* Programme sur téléphone : la ligne est un paragraphe normal (le chiffre reste collé au texte
   quand il passe à la ligne) ; la pastille s'aligne sur la première ligne. */
@media (max-width: 781px) {
	.programme-liste .ligne-programme {
		display: block;
	}
	.programme-liste .ligne-programme::before,
	.programme-liste .ligne-programme:not(:has(strong))::before {
		top: calc(0.85rem + 0.9em);
	}
}
@media (max-width: 781px) {
	.wp-block-navigation__responsive-container-close {
		margin: -10px;
		padding: 10px;
	}
}

/* Connectée à WordPress sur téléphone (≤ 600 px), la barre noire d'administration défile
   avec la page : l'en-tête fixe doit alors se coller tout en haut, sans laisser de vide. */
@media (max-width: 600px) {
	header.wp-block-template-part {
		top: 0;
	}
}

/* Avis clientes (accueil) : trois citations sans cadre, filet doré au-dessus,
   texte en Cormorant italique, prénom en petites capitales. */
.section-avis .wp-block-column {
	display: flex;
	flex-direction: column;
}
.section-avis .wp-block-column::before {
	background: var(--wp--preset--color--accent-2);
	content: "";
	height: 1px;
	margin-bottom: 1.4rem;
	width: 2.5rem;
}
.section-avis .avis-texte {
	color: var(--wp--preset--color--contrast);
	flex-grow: 1;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.3rem;
	font-style: italic;
	line-height: 1.5;
	margin: 0;
}
.section-avis .avis-autrice {
	color: var(--wp--preset--color--bronze);
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	margin-top: 1.2rem !important;
	text-transform: uppercase;
}
.section-avis .avis-autrice span {
	color: var(--wp--preset--color--accent-4);
	letter-spacing: 0.08em;
	text-transform: none;
}
.section-avis .avis-source {
	color: var(--wp--preset--color--accent-4);
	font-size: 0.8rem;
	font-style: italic;
	margin-top: var(--wp--preset--spacing--50) !important;
}
@media (max-width: 781px) {
	.section-avis .wp-block-columns {
		gap: var(--wp--preset--spacing--50);
	}
}
.section-avis .avis-note {
	font-size: 0.9rem;
	letter-spacing: 0.04em;
	margin-top: 0.6rem !important;
}
.section-avis .avis-note a {
	color: var(--wp--preset--color--accent-4);
	display: inline-block;
	margin-block: -0.6rem;
	padding-block: 0.6rem;
	text-decoration: none;
	transition: color 0.25s ease;
}
.section-avis .avis-note a:hover,
.section-avis .avis-note a:focus-visible {
	color: var(--wp--preset--color--accent-3);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--or);
	text-underline-offset: 0.35em;
}
.section-avis .avis-etoile {
	color: var(--wp--preset--color--or);
	margin-right: 0.2em;
}

/* Signature du site (pied de page) : marque Courgette Studio, libellé discret, nom mis en avant.
   Au survol : la marque passe au doré et un filet se dessine sous le nom. */
.pied-de-page .credit-studio {
	margin: 0;
}
.pied-de-page .credit-studio a {
	align-items: center;
	color: var(--wp--preset--color--accent-1) !important;
	display: inline-flex;
	gap: 0.6rem;
	padding-block: 0.5rem;
	margin-block: -0.5rem;
	text-decoration: none;
}
.pied-de-page .credit-studio a::before {
	background-color: currentColor;
	content: "";
	flex-shrink: 0;
	height: 1.35rem;
	-webkit-mask: url("assets/images/courgette-studio.svg") center / contain no-repeat;
	mask: url("assets/images/courgette-studio.svg") center / contain no-repeat;
	opacity: 0.85;
	transition: background-color 0.3s ease, transform 0.4s ease;
	width: 1.3rem;
}
.credit-studio__label {
	font-size: 0.62rem;
	letter-spacing: 0.22em;
	opacity: 0.7;
	text-transform: uppercase;
}
.credit-studio__nom {
	background: linear-gradient(var(--wp--preset--color--accent-2), var(--wp--preset--color--accent-2)) no-repeat left 100% / 0 1px;
	color: var(--wp--preset--color--base);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.05rem;
	letter-spacing: 0.02em;
	padding-bottom: 0.1em;
	transition: background-size 0.35s ease;
}
.pied-de-page .credit-studio a:hover::before,
.pied-de-page .credit-studio a:focus-visible::before {
	background-color: var(--wp--preset--color--accent-2);
	transform: rotate(-8deg);
}
.pied-de-page .credit-studio a:hover .credit-studio__nom,
.pied-de-page .credit-studio a:focus-visible .credit-studio__nom {
	background-size: 100% 1px;
}
@media (prefers-reduced-motion: reduce) {
	.pied-de-page .credit-studio a::before,
	.credit-studio__nom {
		transition: none;
	}
}
.pied-de-page .bas-pied .credit-studio {
	opacity: 1;
}

/* ---------- Parcours d'achat (e-books) ---------- */

/* En-tête de la page de commande : logo seul + « Paiement sécurisé » (pas de menu, pas de bandeau). */
.entete-commande {
	border-bottom: 1px solid var(--wp--preset--color--accent-6);
}
.paiement-securise {
	align-items: center;
	color: var(--wp--preset--color--bronze);
	display: inline-flex;
	font-size: 0.68rem;
	gap: 0.5rem;
	letter-spacing: 0.18em;
	margin: 0;
	text-transform: uppercase;
}
.paiement-securise::before {
	background-color: currentColor;
	content: "";
	height: 0.95rem;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='4.5' y='10.5' width='15' height='10'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Crect x='4.5' y='10.5' width='15' height='10'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 0.95rem;
}
@media (max-width: 599px) {
	.entete-commande .wp-block-site-tagline {
		display: none;
	}
	.paiement-securise {
		font-size: 0.6rem;
		letter-spacing: 0.12em;
	}
}
.titre-commande {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: var(--wp--preset--spacing--40);
}

/* Formulaires du panier et de la commande : angles droits, filets beiges, titres du site. */
.wc-block-components-title.wc-block-components-title,
.wc-block-cart__totals-title.wc-block-cart__totals-title {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.35rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-blocks-components-select .wc-blocks-components-select__select,
.wc-block-components-textarea,
.wc-block-components-radio-control--highlight-checked,
.wc-block-components-radio-control-accordion-option,
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-components-notice-banner {
	border-radius: 0 !important;
}
.wc-block-components-text-input input,
.wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--wp--preset--color--blanc, #fff) !important;
	border-color: var(--wp--preset--color--accent-6) !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--wp--preset--color--accent-3) !important;
	box-shadow: 0 0 0 1px var(--wp--preset--color--accent-3) !important;
}
.wp-block-woocommerce-checkout-order-summary-block {
	background: var(--wp--preset--color--blanc, #fff);
	border-color: var(--wp--preset--color--accent-6) !important;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border-radius: 0;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--wp--preset--color--accent-3);
	border-color: var(--wp--preset--color--accent-3);
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--wp--preset--color--base);
}
.titre-commande.alignwide {
	max-width: var(--wp--style--global--wide-size) !important;
}

/* Page E-books : grille de couvertures, titres du site, prix sobre. */
.intro-boutique {
	color: var(--wp--preset--color--accent-4);
	margin-bottom: var(--wp--preset--spacing--50) !important;
	max-width: 38rem !important;
	margin-left: max(0px, calc((100% - var(--wp--style--global--wide-size)) / 2)) !important;
}
.grille-ebooks .wc-block-product-template {
	gap: var(--wp--preset--spacing--50) !important;
}
.grille-ebooks .wc-block-components-product-image img {
	border-radius: 0 !important;
	box-shadow: 0 10px 30px -18px rgba(43, 51, 39, 0.45);
	transition: transform 0.5s ease;
}
.grille-ebooks .wc-block-components-product-image {
	overflow: hidden;
}
.grille-ebooks .wc-block-product:hover .wc-block-components-product-image img {
	transform: scale(1.03);
}
.grille-ebooks .titre-ebook {
	font-size: 1.45rem !important;
	line-height: 1.25 !important;
	margin-top: 1rem !important;
	text-align: left;
}
.grille-ebooks .titre-ebook a {
	text-decoration: none;
}
.prix-ebook,
.prix-ebook .woocommerce-Price-amount {
	color: var(--wp--preset--color--bronze);
	font-size: 1rem !important;
	letter-spacing: 0.04em;
	text-align: left !important;
}
.grille-ebooks .wp-block-button.wc-block-components-product-button {
	align-items: flex-start;
	margin-top: 0.8rem;
}
.ebooks-bientot {
	border-top: 1px solid var(--wp--preset--color--accent-6);
	padding-top: var(--wp--preset--spacing--40);
}
.ebooks-bientot p {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.5rem;
}

/* Fiche e-book : couverture à gauche, informations à droite, réassurance en petites capitales. */
.fiche-ebook .wp-block-post-title {
	font-size: var(--wp--preset--font-size--x-large);
	margin-top: 0.4rem;
}
.fiche-ebook .prix-ebook .woocommerce-Price-amount {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.8rem !important;
	letter-spacing: 0;
}
.fiche-ebook .woocommerce-product-gallery img {
	box-shadow: 0 18px 40px -22px rgba(43, 51, 39, 0.5);
}
.fiche-ebook form.cart {
	margin-top: var(--wp--preset--spacing--40);
}
.rassurance-ebook {
	border-top: 1px solid var(--wp--preset--color--accent-6);
	color: var(--wp--preset--color--accent-4);
	font-size: 0.68rem;
	letter-spacing: 0.16em;
	list-style: none;
	margin-top: var(--wp--preset--spacing--40);
	padding: 1.2rem 0 0;
	text-transform: uppercase;
}
.rassurance-ebook li {
	padding-left: 1.2rem;
	position: relative;
}
.rassurance-ebook li + li {
	margin-top: 0.5rem;
}
.rassurance-ebook li::before {
	background: var(--wp--preset--color--accent-2);
	border-radius: 50%;
	content: "";
	height: 0.35rem;
	left: 0;
	position: absolute;
	top: 0.5em;
	width: 0.35rem;
}
.wp-block-woocommerce-product-details.is-style-minimal {
	margin-top: var(--wp--preset--spacing--60);
}
.wp-block-woocommerce-product-details .wc-tabs li a {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.35rem;
}

/* Confirmation de commande : message en titre, téléchargements en premier, tableaux à filets. */
.confirmation-commande .wc-block-order-confirmation-status h1 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 0.6rem;
}
.confirmation-commande .wc-block-order-confirmation-status p {
	color: var(--wp--preset--color--accent-4);
	font-family: inherit;
	font-size: 1.05rem !important;
}
.confirmation-commande > * + * {
	margin-top: var(--wp--preset--spacing--50) !important;
}
.confirmation-commande h2,
.confirmation-commande h3 {
	font-size: 1.35rem !important;
	margin-top: var(--wp--preset--spacing--50);
}
.confirmation-commande table,
.confirmation-commande .wc-block-order-confirmation-summary-list,
.confirmation-commande address {
	border-color: var(--wp--preset--color--accent-6) !important;
	border-radius: 0 !important;
}
.confirmation-commande .wc-block-order-confirmation-downloads a,
.confirmation-commande .woocommerce-MyAccount-downloads-file {
	font-weight: 500;
}

/* Pages de la boutique sur téléphone : pas de barre « Prendre rendez-vous » fixée en bas,
   pour ne pas concurrencer « Ajouter au panier » et « Valider la commande ». */
@media (max-width: 781px) {
	body.woocommerce header .wp-block-buttons,
	body.woocommerce-page header .wp-block-buttons {
		display: none;
	}
	body.woocommerce,
	body.woocommerce-page {
		padding-bottom: 0;
	}
	body.woocommerce .retour-haut,
	body.woocommerce-page .retour-haut {
		bottom: calc(1.25rem + env(safe-area-inset-bottom));
	}
}
.panier-vide {
	padding-block: var(--wp--preset--spacing--40);
}
.panier-vide p {
	color: var(--wp--preset--color--accent-4);
}
.fiche-ebook form.cart,
.fiche-ebook form.cart .single_add_to_cart_button {
	margin-left: 0 !important;
}
@media (max-width: 599px) {
	.entete-commande .wp-block-site-title,
	.paiement-securise {
		white-space: nowrap;
	}
	.entete-commande .wp-block-site-title {
		font-size: 1.15rem !important;
	}
	.entete-commande .wp-block-site-logo img {
		width: 42px !important;
	}
}

/* Liens « Découvrir … » : soulignés d'un filet doré et suivis d'une flèche, pour qu'on voie
   que ce sont des liens ; au survol, la flèche avance et le texte passe au vert. */
.is-style-lien-discret a {
	text-decoration: underline !important;
	text-decoration-color: var(--wp--preset--color--or) !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 0.5em;
	transition: color 0.25s ease;
}
.is-style-lien-discret a::after {
	content: "→";
	display: inline-block;
	margin-left: 0.5em;
	text-decoration: none;
	transition: transform 0.25s ease;
}
.is-style-lien-discret a:hover::after,
.is-style-lien-discret a:focus-visible::after {
	transform: translateX(0.3em);
}
@media (prefers-reduced-motion: reduce) {
	.is-style-lien-discret a::after {
		transition: none;
	}
}

/* Accessibilité : sur le vert profond, le doré est légèrement éclairci (contraste ≥ 4,5:1). */
.is-style-section-vert-profond .is-style-surtitre,
.is-style-section-vert-profond .programme-liste .ligne-programme strong,
.carte-prix .is-style-surtitre {
	color: #E3CFA8 !important;
}

/* Focus clavier : aussi sur « En savoir plus » et le bouton du menu ; sur fond sombre, contour clair. */
summary:focus-visible,
.wp-block-navigation__responsive-container-open:focus-visible,
.wp-block-navigation__responsive-container-close:focus-visible,
.wp-block-navigation-submenu__toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--bronze);
	outline-offset: 3px;
}
.accueil-ouverture :focus-visible,
.is-style-section-vert-profond :focus-visible,
.pied-de-page :focus-visible,
.bandeau-offre :focus-visible,
.retour-haut:focus-visible {
	outline-color: var(--wp--preset--color--accent-2) !important;
}

/* Ouverture de l'accueil sur grand écran : la photo (verticale) occupe la moitié droite et se fond
   dans le vert sombre à gauche, derrière le texte. On voit ainsi Sarah et le soin en entier,
   au lieu d'un gros plan recadré sur toute la largeur. */
@media (min-width: 1024px) {
	.accueil-ouverture {
		background-color: var(--wp--preset--color--contrast);
	}
	.accueil-ouverture .wp-block-cover__image-background {
		left: auto !important;
		object-position: 60% 40% !important;
		width: 75% !important;
		-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
		mask-image: linear-gradient(90deg, transparent 0%, #000 45%);
	}
	.accueil-ouverture .wp-block-cover__background {
		background: linear-gradient(90deg, rgba(43, 51, 39, 0.86) 0%, rgba(43, 51, 39, 0.8) 25%, rgba(43, 51, 39, 0.72) 37%, rgba(43, 51, 39, 0.5) 49%, rgba(43, 51, 39, 0.15) 62%, rgba(43, 51, 39, 0.05) 100%) !important;
	}
}

/* Grand écran : l'image semble couvrir toute la largeur.
   - fond du bloc : la miniature de la photo, agrandie (donc floue), exactement sous la photo nette ;
   - ::before : la même miniature en miroir à gauche, à la même hauteur ;
   - la photo nette s'efface progressivement vers la gauche au-dessus de ce fond flou ;
   - ::after : un voile vert qui s'efface d'un bloc à l'apparition (une seule couche qui bouge,
     donc aucune ligne entre les morceaux pendant le fondu). */
@media (min-width: 1024px) {
	.accueil-ouverture {
		background: var(--photo-ouverture) right 0 top 40% / 75% var(--hauteur-photo, auto) no-repeat, var(--wp--preset--color--contrast);
		isolation: isolate;
		overflow: hidden;
	}
	.accueil-ouverture::before {
		background: var(--photo-ouverture) left 40% / 220% var(--hauteur-photo, auto) no-repeat;
		bottom: 0;
		content: "";
		left: 25%;
		position: absolute;
		top: 0;
		transform: scaleX(-1);
		transform-origin: left center;
		width: 75%;
		z-index: -1;
	}
	.accueil-ouverture .wp-block-cover__image-background {
		animation: none !important;
	}
	.asds-anim .accueil-ouverture::after {
		background: var(--wp--preset--color--contrast);
		content: "";
		inset: 0;
		pointer-events: none;
		position: absolute;
		transition: opacity 1.2s ease;
		z-index: 0;
	}
	.asds-anim .accueil-ouverture.est-prete::after {
		opacity: 0;
	}
}

/* Encart « Le guide » de l'accueil : couverture avec ombre douce, prix en doré. */
.section-guide .couverture-guide {
	margin: 0 auto;
	max-width: 340px;
}
.section-guide .couverture-guide img {
	box-shadow: 0 22px 45px -24px rgba(43, 51, 39, 0.55);
	transition: transform 0.5s ease;
}
.section-guide .couverture-guide a:hover img {
	transform: translateY(-4px);
}
.section-guide .prix-guide {
	color: var(--wp--preset--color--bronze);
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}
@media (max-width: 781px) {
	.section-guide .couverture-guide {
		max-width: 240px;
	}
}

/* Menu complet (grand écran) : espacement un peu resserré pour tenir sur une ligne avec « Guides ». */
@media (min-width: 1260px) {
	header .wp-block-navigation .wp-block-navigation__container {
		gap: 1rem !important;
	}
	header .wp-block-navigation-item__content {
		letter-spacing: 0.06em;
	}
}

/* Cartes cadeaux, fidélité et parrainage (Soins & tarifs). */
.image-carte-cadeau img {
	box-shadow: 0 22px 45px -26px rgba(43, 51, 39, 0.5);
}
.liste-occasions {
	list-style: none;
	padding-left: 0;
}
.liste-occasions li {
	padding-left: 1.4rem;
	position: relative;
}
.liste-occasions li + li {
	margin-top: 0.35rem;
}
.liste-occasions li::before {
	color: var(--wp--preset--color--or);
	content: "✦";
	font-size: 0.8em;
	left: 0;
	position: absolute;
	top: 0.2em;
}
.remise-chiffre {
	color: var(--wp--preset--color--bronze);
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(2.6rem, 5vw, 3.4rem);
	font-variant-numeric: lining-nums;
	line-height: 1;
	margin-bottom: 0.4rem !important;
}
#fidelite .wp-block-column {
	border-top: 1px solid var(--wp--preset--color--accent-6);
	padding-top: var(--wp--preset--spacing--40);
}

/*
 * Dorures, comme dans le logo de Sarah : un dégradé doré « feuille d'or » réservé aux éléments
 * décoratifs (filets, ornements, cadres, boutons dorés). Jamais sur le texte courant (lisibilité).
 */
:root {
	--dorure: linear-gradient(100deg, #A8844A 0%, #D8BE86 30%, #F0DFB0 48%, #C9A665 66%, #9E7C42 100%);
}

/* 1. Ornement sous les titres centrés : un filet doré avec une petite perle, comme les éclats du logo. */
.entry-content .wp-block-heading.has-text-align-center::after,
.entry-content .offres-du-moment .wp-block-heading::after {
	background: var(--dorure);
	content: "";
	display: block;
	height: 8px;
	margin: 0.9rem auto 0;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 88 8'%3E%3Cpath d='M0 4h34M54 4h34' stroke='black' stroke-width='1'/%3E%3Ccircle cx='44' cy='4' r='2.6'/%3E%3Ccircle cx='38.5' cy='4' r='1'/%3E%3Ccircle cx='49.5' cy='4' r='1'/%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 88 8'%3E%3Cpath d='M0 4h34M54 4h34' stroke='black' stroke-width='1'/%3E%3Ccircle cx='44' cy='4' r='2.6'/%3E%3Ccircle cx='38.5' cy='4' r='1'/%3E%3Ccircle cx='49.5' cy='4' r='1'/%3E%3C/svg%3E") center / contain no-repeat;
	width: 88px;
}

/* 2. Filets décoratifs existants : du doré uni au dégradé doré. */
.citation-accueil::before {
	background: var(--dorure);
	border-top: 0;
	height: 1px;
}
.section-avis .wp-block-column::before {
	background: var(--dorure);
}
.pied-de-page .bas-pied {
	border-image: linear-gradient(90deg, transparent, #C9A665 20%, #F0DFB0 50%, #C9A665 80%, transparent) 1;
	border-top-width: 1px;
}

/* 3. Photos principales (grand écran) : un fin cadre doré décalé derrière l'image. */
@media (min-width: 782px) {
	.entry-content .wp-block-columns .wp-block-image:not(.couverture-guide):not(.image-carte-cadeau) {
		isolation: isolate;
		position: relative;
	}
	.entry-content .wp-block-columns .wp-block-image:not(.couverture-guide):not(.image-carte-cadeau)::before {
		border: 1px solid transparent;
		border-image: var(--dorure) 1;
		content: "";
		inset: 16px -16px -16px 16px;
		pointer-events: none;
		position: absolute;
		z-index: -1;
	}
}

/* 4. Boutons dorés : effet feuille d'or, avec un léger reflet au survol. */
.is-style-bouton-or .wp-block-button__link,
.accueil-ouverture .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.is-style-section-vert-profond .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	/* Dégradé plus clair que --dorure : le texte foncé garde un contraste ≥ 4,5:1 partout. */
	background: linear-gradient(100deg, #CDAE72 0%, #E3CD98 30%, #F3E6C2 48%, #DCC08A 66%, #CFAF73 100%) !important;
	background-position: 0% 50% !important;
	background-size: 220% 100% !important;
	color: var(--wp--preset--color--contrast) !important;
	transition: background-position 0.6s ease, transform 0.25s ease !important;
}
.is-style-bouton-or .wp-block-button__link:hover,
.is-style-bouton-or .wp-block-button__link:focus-visible,
.accueil-ouverture .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.accueil-ouverture .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible,
.is-style-section-vert-profond .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
.is-style-section-vert-profond .wp-block-button:not(.is-style-outline) .wp-block-button__link:focus-visible {
	background-position: 100% 50% !important;
}

/* Bouton « Revenir en haut » : un liseré doré pour rester visible sur les fonds verts. */
.retour-haut {
	box-shadow: 0 0 0 1px rgba(216, 190, 134, 0.7);
}
@media (prefers-reduced-motion: reduce) {
	.is-style-bouton-or .wp-block-button__link,
	.accueil-ouverture .wp-block-button:not(.is-style-outline) .wp-block-button__link {
		transition: none !important;
	}
}

/* Bouton « Panier » de l'en-tête (functions.php) : sac avec pastille dorée du nombre d'articles. */
.lien-panier {
	align-items: center;
	color: var(--wp--preset--color--contrast);
	display: inline-flex;
	flex: none;
	height: 44px;
	justify-content: center;
	position: relative;
	text-decoration: none;
	width: 44px;
}
.lien-panier[hidden] {
	display: none;
}
.lien-panier:hover {
	color: var(--wp--preset--color--accent-3);
}
.lien-panier__nombre {
	align-items: center;
	background: var(--wp--preset--color--accent-3);
	border-radius: 999px;
	box-shadow: 0 0 0 2px var(--wp--preset--color--base);
	color: var(--wp--preset--color--base);
	display: flex;
	font-size: 0.625rem;
	font-weight: 500;
	height: 1.05rem;
	justify-content: center;
	min-width: 1.05rem;
	position: absolute;
	right: 5px;
	top: 6px;
}
/* Menu complet (grand écran) : la ligne est déjà pleine (1 109 px sur 1 120). Le panier sort du flux
   et se place juste à droite de « Prendre rendez-vous », dans la marge (au moins 60 px dès 1 260 px). */
@media (min-width: 1260px) {
	header .is-layout-flex:has(> .lien-panier) {
		position: relative;
	}
	header .is-layout-flex > .lien-panier {
		left: 100%;
		margin-left: 0.4rem;
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
	}
}
/* Avec le bouton menu (tablette, téléphone) : le panier se place avant lui. */
@media (max-width: 1259px) {
	.lien-panier {
		order: -1;
	}
}
/* Téléphone : plus serré contre le bouton menu, pour garder « Au Soin de Soi » sur une ligne. */
@media (max-width: 599px) {
	header .is-layout-flex > .lien-panier { /* passe devant la marge nulle des groupes WordPress */
		margin-right: -24px; /* écart du groupe (30 px) ramené à 6 px */
		width: 38px;
	}
}

/* Très petits téléphones (moins de 375 px) avec le panier affiché : logo et nom un peu réduits. */
@media (max-width: 374px) {
	header:has(.lien-panier:not([hidden])) .wp-block-site-logo img {
		width: 44px !important;
	}
	header:has(.lien-panier:not([hidden])) .wp-block-site-title {
		font-size: 1.15rem;
	}
}

/* Panier et commande : description du guide coupée par WooCommerce, remplacée par la ligne « Format ». */
.wc-block-components-product-metadata__description {
	display: none;
}

/* Nom manuscrit (functions.php) : hauteur fixe, largeur proportionnelle (image 693 × 187). */
.wp-block-site-title .nom-manuscrit {
	display: block;
	height: 44px;
	max-width: none;
	width: auto;
}
header .wp-block-site-title .nom-manuscrit {
	transition: height 0.25s ease;
}
.en-defilement header .wp-block-site-title .nom-manuscrit {
	height: 36px;
}
.pied-de-page .wp-block-site-title .nom-manuscrit {
	height: 52px;
}
@media (max-width: 599px) {
	.wp-block-site-title .nom-manuscrit {
		height: 36px;
	}
}
@media (prefers-reduced-motion: reduce) {
	header .wp-block-site-title .nom-manuscrit {
		transition: none;
	}
}

/* Photo recadrée vers le haut (visage visible), réglée par la classe « cadrage-haut » du bloc image. */
.cadrage-haut img {
	object-position: 50% 12%;
}

/* Page d'une offre : image entière (carte cadeau, cartes de fidélité, photo), jamais rognée,
   centrée et limitée en hauteur pour rester dans l'écran. */
.image-offre {
	text-align: center;
}
.image-offre img {
	display: inline-block;
	height: auto !important;
	max-height: min(70vh, 640px);
	max-width: 100%;
	object-fit: contain !important;
	width: auto !important;
}

/* Page de confirmation : paiement pas encore confirmé par Stripe (extension Boutique). */
.paiement-en-attente {
	align-items: center;
	box-sizing: border-box;
	background: var(--wp--preset--color--accent-5);
	border-left: 3px solid var(--wp--preset--color--or);
	display: flex;
	gap: 0.8rem;
	margin-top: var(--wp--preset--spacing--30);
	padding: 1rem 1.2rem;
}
.paiement-en-attente__point {
	animation: asds-pulsation 1.2s ease-in-out infinite;
	background: var(--wp--preset--color--accent-3);
	border-radius: 50%;
	flex: none;
	height: 0.6rem;
	width: 0.6rem;
}
@keyframes asds-pulsation {
	50% { opacity: 0.25; }
}
@media (prefers-reduced-motion: reduce) {
	.paiement-en-attente__point {
		animation: none;
	}
}

/* Diaporama (accueil, photos du cabinet) : photos superposées, fondu de l'une à l'autre (script dans functions.php).
   Les règles ne s'appliquent qu'une fois le script lancé (classe diaporama--actif) : sans JavaScript, et dans
   l'éditeur de WordPress, les deux photos restent l'une sous l'autre, visibles et modifiables. */
.diaporama--actif {
	display: grid;
}
.diaporama--actif > .wp-block-image {
	grid-area: 1 / 1;
	margin: 0;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.9s ease;
	z-index: 0;
}
/* L'ancienne photo reste opaque dessous pendant que la nouvelle apparaît dessus : pas de flash clair. */
.diaporama--actif > .wp-block-image.est-precedente {
	opacity: 1;
	transition: none;
	z-index: 1;
}
.diaporama--actif > .wp-block-image.est-montree {
	opacity: 1;
	pointer-events: auto;
	z-index: 2;
}
.diaporama__points {
	display: flex;
	gap: 0.3rem;
	justify-content: center;
	margin-top: 1.6rem;
}
/* Zone de 28 px pour le doigt, point de 9 px au centre. */
.diaporama__points button {
	align-items: center;
	background: none;
	border: 0;
	cursor: pointer;
	display: flex;
	height: 28px;
	justify-content: center;
	padding: 0;
	width: 28px;
}
.diaporama__points button::before {
	border: 1px solid var(--wp--preset--color--or);
	border-radius: 50%;
	content: "";
	height: 9px;
	transition: background-color 0.3s ease;
	width: 9px;
}
.diaporama__points button[aria-current="true"]::before {
	background: var(--wp--preset--color--or);
}
.diaporama__points button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-3);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.diaporama--actif > .wp-block-image,
	.diaporama__points button::before {
		transition: none;
	}
}

/* Contact : mot de fin de Sarah, signé, avec un petit cœur doré (à la place de l'émoji 🤍). */
.mot-de-fin {
	margin-top: var(--wp--preset--spacing--40) !important;
}
.signature-sarah {
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: 1.6rem;
	font-style: italic;
	margin-top: 0.3rem !important;
}
.coeur-dore {
	background: var(--dorure);
	display: inline-block;
	height: 0.75em;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.4-4.5-9.4-9.1C1.3 8.6 3.4 5 6.9 5c2 0 3.6 1.1 5.1 3 1.5-1.9 3.1-3 5.1-3 3.5 0 5.6 3.6 4.3 6.9C19.4 16.5 12 21 12 21z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21s-7.4-4.5-9.4-9.1C1.3 8.6 3.4 5 6.9 5c2 0 3.6 1.1 5.1 3 1.5-1.9 3.1-3 5.1-3 3.5 0 5.6 3.6 4.3 6.9C19.4 16.5 12 21 12 21z'/%3E%3C/svg%3E") center / contain no-repeat;
	margin-left: 0.15em;
	vertical-align: -0.05em;
	width: 0.85em;
}
