/* ==========================================================================
   Virginie Chaumet — composants
   Les réglages globaux (couleurs, typographies, tailles) sont dans theme.json.
   ========================================================================== */

:root {
	--c-cream: var(--wp--preset--color--cream, #FBF6F1);
	--c-linen: var(--wp--preset--color--linen, #F4EAE2);
	--c-blush: var(--wp--preset--color--blush, #EBD3C8);
	--c-rose: var(--wp--preset--color--rose, #C98F7D);
	--c-terracotta: var(--wp--preset--color--terracotta, #9A5844);
	--c-gold: var(--wp--preset--color--gold, #B8925F);
	--c-taupe: var(--wp--preset--color--taupe, #6B564D);
	--c-cocoa: var(--wp--preset--color--cocoa, #3D2B26);
	--c-line: rgba(61, 43, 38, .12);
	--f-serif: var(--wp--preset--font-family--newsreader, Georgia, serif);
	--radius: 22px;
	--radius-lg: 32px;
	--shadow: 0 1px 2px rgba(61, 43, 38, .05), 0 18px 40px -22px rgba(61, 43, 38, .35);
	--ease: cubic-bezier(.22, .7, .2, 1);
	--header-h: 76px;
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--c-blush); color: var(--c-cocoa); }
:where(a, button, input, textarea, summary, select):focus-visible { outline: 3px solid var(--c-rose); outline-offset: 3px; border-radius: 6px; }
img { height: auto; }
h1, h2, h3, h4 { text-wrap: balance; font-kerning: normal; font-feature-settings: "kern" 1, "liga" 1; }
p { text-wrap: pretty; }
em { font-style: italic; }

/* Les grands blocs se touchent : pas d'espace parasite entre en-tête, sections et pied de page. */
.wp-site-blocks > * + *,
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignfull + * { margin-block-start: 0; }
.site-main { padding: 0; }

/* ---------- Typographies éditoriales ---------- */
.is-style-eyebrow {
	display: inline-flex; align-items: center; gap: .75em;
	margin-bottom: .9rem !important;
	font-size: .78rem; font-weight: 650; letter-spacing: .18em; text-transform: uppercase;
	color: var(--c-terracotta);
}
.is-style-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; opacity: .6; }
.is-style-lead { font-family: var(--f-serif); font-size: clamp(1.15rem, 1.05rem + .45vw, 1.4rem); line-height: 1.5; font-weight: 380; color: var(--c-cocoa); }
.is-style-note { font-size: .92rem; color: var(--c-taupe); }

/* ---------- Boutons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .25s var(--ease), color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease); }
.wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -12px rgba(61, 43, 38, .6); }
.is-style-phone .wp-block-button__link { display: inline-flex; align-items: center; gap: .6em; letter-spacing: .02em; }
.is-style-phone .wp-block-button__link::before {
	content: ""; width: 1.05em; height: 1.05em; flex: none; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%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='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.is-style-ghost .wp-block-button__link { background: transparent; color: var(--c-cocoa); box-shadow: inset 0 0 0 1.5px rgba(61, 43, 38, .28); }
.is-style-ghost .wp-block-button__link:hover { background: var(--c-cocoa); color: var(--c-cream); box-shadow: none; }

/* ---------- En-tête ---------- */
.site-header {
	position: sticky; top: 0; z-index: 50;
	border-bottom: 1px solid transparent;
	transition: border-color .3s, box-shadow .3s;
}
/* Le flou est porté par un pseudo-élément : appliqué à l'en-tête lui-même, il enfermerait
   le menu mobile plein écran (position: fixed) dans la hauteur de l'en-tête. */
.site-header::before {
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: rgba(251, 246, 241, .86);
	-webkit-backdrop-filter: saturate(150%) blur(14px); backdrop-filter: saturate(150%) blur(14px);
}
.admin-bar .site-header { top: var(--wp-admin--admin-bar--height, 32px); }
.site-header.is-scrolled { border-bottom-color: var(--c-line); box-shadow: 0 10px 30px -24px rgba(61, 43, 38, .5); }
.site-header__inner { max-width: 1280px; margin-inline: auto; min-height: var(--header-h); padding-inline: var(--wp--style--root--padding-left, 1.25rem); gap: 1.5rem; }
.site-header__actions { gap: 1.25rem; }
.site-header__call .wp-block-button__link { padding: .65em 1.15em; font-size: .92rem; }

.brand__link { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--c-cocoa); }
.brand__link:hover { color: var(--c-cocoa); }
.brand__mark { width: 44px; height: 44px; flex: none; transition: transform .8s var(--ease); }
.brand__link:hover .brand__mark { transform: rotate(30deg); }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__name { font-family: var(--f-serif); font-size: 1.32rem; font-weight: 420; letter-spacing: -.01em; }
.brand__tag { font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-taupe); margin-top: 3px; }

.site-nav .wp-block-navigation-item__content { padding: .4rem .2rem; text-decoration: none; position: relative; }
.site-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--c-terracotta); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.site-nav .wp-block-navigation-item__content:hover { color: var(--c-terracotta); }
.site-nav .wp-block-navigation-item__content:hover::after { transform: scaleX(1); }
.site-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--c-cream); padding: 1.5rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.25rem; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-family: var(--f-serif); font-size: 1.6rem; }
.site-nav .wp-block-navigation__responsive-container-open:not([hidden]) { width: 44px; height: 44px; border-radius: 50%; background: var(--c-linen); place-items: center; }
/* Menu « hamburger » jusqu'aux petits écrans d'ordinateur : les 6 liens demandent ~1160 px
   (WordPress ne le prévoit que sous 600 px). */
@media (max-width: 1199px) {
	.site-nav .wp-block-navigation__responsive-container-open { display: grid !important; }
	.site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}

@media (max-width: 1023px) {
	.brand__tag { display: none; }
}
@media (max-width: 599px) {
	:root { --header-h: 64px; }
	.brand__mark { width: 36px; height: 36px; }
	.brand__name { font-size: 1.15rem; }
	.site-header__actions { gap: .6rem; }
	.site-header__call .wp-block-button__link { font-size: 0; padding: 0; width: 44px; height: 44px; justify-content: center; gap: 0; }
	.site-header__call .wp-block-button__link::before { width: 18px; height: 18px; }
}

/* ---------- Sections ---------- */
.section { padding-block: var(--wp--preset--spacing--60); position: relative; }
.section--linen { background: var(--c-linen); }
.section--blush { background: linear-gradient(180deg, #F3E3DB 0%, var(--c-linen) 100%); }
.section--cocoa { background: var(--c-cocoa); color: rgba(251, 246, 241, .86); }
.section--cocoa :where(h1, h2, h3, h4) { color: var(--c-cream); }
.section--cocoa .is-style-eyebrow { color: #D9B48A; }
.section--cocoa a:where(:not(.wp-element-button)) { color: var(--c-cream); }
.section__intro { text-align: center; margin-bottom: var(--wp--preset--spacing--50); }
.section__intro .is-style-eyebrow { justify-content: center; }
.section__intro > p:last-child { color: var(--c-taupe); font-size: 1.08rem; }

/* ---------- Hero ---------- */
.hero {
	padding-block: clamp(2.5rem, 6vw, 6rem) clamp(3.5rem, 8vw, 7.5rem);
	background:
		radial-gradient(55% 60% at 82% 38%, rgba(235, 211, 200, .75), transparent 70%),
		radial-gradient(40% 50% at 8% 95%, rgba(184, 146, 95, .14), transparent 70%),
		var(--c-cream);
	overflow: hidden;
}
.hero__grid { gap: clamp(2rem, 5vw, 5rem) !important; }
.hero__title { margin-block: .1em .35em; font-weight: 390; overflow-wrap: normal; word-break: normal; hyphens: manual; }
.hero__title em { font-style: italic; font-weight: 380; color: var(--c-terracotta); }
.hero .is-style-lead { max-width: 34em; color: var(--c-taupe); }
.hero__actions { margin-top: 2rem !important; gap: .75rem; }
.hero__place { margin-top: 1.4rem !important; font-size: .93rem; color: var(--c-taupe); display: flex; align-items: center; gap: .55em; }
.hero__place::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--c-rose); box-shadow: 0 0 0 4px rgba(201, 143, 125, .2); flex: none; }

/* Lotus + portrait */
.lotus-hero { position: relative; width: min(100%, 520px); margin-inline: auto; aspect-ratio: 1; }
.lotus-hero__halo { position: absolute; inset: 0; }
.lotus { position: absolute; inset: 0; }
.lotus__layer { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.lotus__layer--outer { color: var(--c-gold); }
.lotus__layer--inner { color: var(--c-rose); }
.lotus__layer--seeds { color: var(--c-terracotta); opacity: .85; }
.lotus-hero__photo {
	position: absolute; z-index: 1; margin: 0;
	inset: 21%; border-radius: 50%; overflow: hidden;
	box-shadow: 0 0 0 6px var(--c-cream), 0 30px 60px -28px rgba(61, 43, 38, .55);
	background: var(--c-linen);
}
.lotus-hero__img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; display: block; }
.lotus-hero--solo .lotus__layer--seeds { opacity: 1; }

/* Animation du hero (≈ 2,7 s) : un bourgeon arrive depuis la gauche, s'ouvre en mandala,
   puis un cercle s'agrandit au centre et révèle la photo. Pilotée par un micro-script :
   .is-bloom = version complète, .is-simple = fondu court (hero hors écran, économie de données,
   retour sur l'accueil). Sans script, dans l'éditeur ou en mouvement réduit : rendu final statique. */
:root { --bloom: cubic-bezier(.16, 1, .3, 1); --drift: cubic-bezier(.45, .05, .25, 1); }
.lotus-hero::before {
	content: ""; position: absolute; inset: 18%; z-index: 0; border-radius: 50%; pointer-events: none;
	background: radial-gradient(circle, rgba(251, 246, 241, .95) 0%, rgba(235, 211, 200, .55) 45%, rgba(184, 146, 95, 0) 70%);
	opacity: 0;
}
.lotus-hero__bud { position: absolute; z-index: 2; left: 41%; top: 39%; width: 18%; aspect-ratio: 1; opacity: 0; pointer-events: none; }
.lotus-hero__bud svg { width: 100%; height: 100%; overflow: visible; display: block; }
.lotus-hero__bud .bud__petal { transform-box: fill-box; transform-origin: 50% 100%; }
.lotus-hero.is-done .lotus-hero__bud, .lotus-hero:not(.is-pending) .lotus-hero__bud { display: none; }

@media (prefers-reduced-motion: no-preference) {
	/* État de départ, tant que l'animation n'a pas été lancée. */
	.lotus-hero.is-pending:not(.is-bloom):not(.is-simple) .lotus__layer,
	.lotus-hero.is-pending:not(.is-bloom):not(.is-simple) .lotus-hero__photo { opacity: 0; }

	/* 1. Le bourgeon arrive depuis la gauche, sur un arc doux. */
	.lotus-hero.is-bloom .lotus-hero__bud { animation: bud-arrive .95s var(--drift) both, bud-away .55s ease-in 1.15s forwards; }
	.lotus-hero.is-bloom .bud__petal--left { animation: bud-open-left .7s var(--bloom) .9s both; }
	.lotus-hero.is-bloom .bud__petal--right { animation: bud-open-right .7s var(--bloom) .9s both; }
	.lotus-hero.is-bloom .bud__petal--heart { animation: bud-open-heart .7s var(--bloom) .9s both; }

	/* 2. Il s'ouvre : le mandala grandit depuis la taille du bourgeon, du centre vers l'extérieur. */
	.lotus-hero.is-bloom .lotus__layer--outer { animation: mandala-open 1s var(--bloom) 1s both; }
	.lotus-hero.is-bloom .lotus__layer--inner { animation: mandala-open 1s var(--bloom) 1.07s both; }
	.lotus-hero.is-bloom .lotus__layer--seeds { animation: mandala-seeds .9s var(--bloom) 1.02s both; }
	.lotus-hero.is-bloom .lotus__layer--seeds g { transform-box: view-box; transform-origin: center; animation: seed-open .8s var(--bloom) both; }
	.lotus-hero.is-bloom .lotus__seed--1 { animation-delay: 1.08s; }
	.lotus-hero.is-bloom .lotus__seed--2 { animation-delay: 1.13s; }
	.lotus-hero.is-bloom .lotus__seed--3 { animation-delay: 1.18s; }
	.lotus-hero.is-bloom .lotus__seed--4 { animation-delay: 1.23s; }
	.lotus-hero.is-bloom .lotus__seed--5 { animation-delay: 1.28s; }
	.lotus-hero.is-bloom .lotus__seed--6 { animation-delay: 1.33s; }

	/* 3. Un petit cercle naît au centre et s'agrandit en révélant la photo. */
	.lotus-hero.is-bloom::before { animation: bloom-glow 1.3s ease-out 1.6s both; }
	.lotus-hero.is-bloom .lotus-hero__photo { animation: photo-reveal 1s var(--bloom) 1.75s backwards; }
	.lotus-hero.is-bloom .lotus-hero__img { animation: photo-settle 1.3s var(--bloom) 1.75s backwards; }

	/* Version courte. */
	.lotus-hero.is-simple .lotus__layer--outer { animation: simple-in .6s ease-out both; }
	.lotus-hero.is-simple .lotus__layer--inner { animation: simple-in .6s ease-out both; }
	.lotus-hero.is-simple .lotus__layer--seeds { animation: simple-in .6s ease-out both; }
	.lotus-hero.is-simple .lotus-hero__photo { animation: simple-photo .7s var(--bloom) .1s backwards; }

	/* Intro terminée : l'animation d'ouverture laisse la place à la rotation lente en boucle
	   (sur le même calque, l'état final de l'ouverture masquerait la rotation). */
	.lotus-hero.is-done .lotus__layer--outer { animation: lotus-turn 160s linear infinite; }
	.lotus-hero.is-done .lotus__layer--inner { animation: lotus-turn-back 200s linear infinite; }

	/* Pause hors écran : seulement la rotation lente, jamais l'intro (sinon elle reprendrait en décalé). */
	.lotus-hero.is-done .lotus.is-paused .lotus__layer { animation-play-state: paused; }
}

@keyframes bud-arrive {
	0%   { opacity: 0; transform: translate(-330%, 60%) rotate(-14deg) scale(.7); }
	25%  { opacity: 1; }
	62%  { transform: translate(-95%, -18%) rotate(6deg) scale(.92); }
	100% { opacity: 1; transform: none; }
}
@keyframes bud-away { to { opacity: 0; transform: scale(1.5); } }
@keyframes bud-open-left { to { transform: rotate(-38deg) scale(.9); opacity: .35; } }
@keyframes bud-open-right { to { transform: rotate(38deg) scale(.9); opacity: .35; } }
@keyframes bud-open-heart { to { transform: scaleY(1.15); opacity: .5; } }
@keyframes mandala-open { from { opacity: 0; transform: scale(.18) rotate(-8deg); } 35% { opacity: 1; } to { opacity: 1; transform: none; } }
@keyframes mandala-seeds { from { opacity: 0; transform: scale(.2); } to { opacity: 1; transform: none; } }
@keyframes seed-open { from { opacity: 0; transform: scale(.35); } to { opacity: 1; transform: none; } }
@keyframes bloom-glow { 0% { opacity: 0; transform: scale(.25); } 40% { opacity: 1; } 100% { opacity: 0; transform: scale(1.1); } }
@keyframes photo-reveal {
	0%   { clip-path: circle(0% at 50% 50%); opacity: 0; }
	12%  { clip-path: circle(4% at 50% 50%); opacity: 1; }
	88%  { clip-path: circle(50% at 50% 50%); }
	100% { clip-path: circle(150% at 50% 50%); opacity: 1; }
}
@keyframes photo-settle { from { transform: scale(1.2); } to { transform: none; } }
@keyframes simple-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes simple-photo { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes lotus-turn { to { transform: rotate(360deg); } }
@keyframes lotus-turn-back { to { transform: rotate(-360deg); } }

@media (max-width: 781px) {
	.hero { text-align: center; }
	.hero .is-style-eyebrow, .hero__actions, .hero__place { justify-content: center; }
	.hero .is-style-lead { margin-inline: auto; }
	.hero__visual { order: -1; }
	.lotus-hero { width: min(82vw, 360px); }
	.hero__place { display: block; }
	.hero__place::before { display: inline-block; vertical-align: middle; margin-right: .55em; }
}

/* ---------- Présentation ---------- */
.about__grid { gap: clamp(2rem, 6vw, 6rem) !important; }
.is-style-arch, .is-style-arch img { border-radius: 400px 400px var(--radius-lg) var(--radius-lg); }
.is-style-arch { overflow: hidden; margin: 0; box-shadow: var(--shadow); }
.is-style-arch img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.about__media { position: relative; }
.about__media::before { content: ""; position: absolute; width: 46%; aspect-ratio: 1; right: -8%; top: -6%; background: url("../svg/lotus-mark.svg") center / contain no-repeat; opacity: .18; z-index: 0; }
.about__media > * { position: relative; z-index: 1; }
.about__media .wp-block-image { max-width: 460px; margin-inline: auto; }
.about__badges { list-style: none; padding: 0; margin-top: 1.75rem !important; display: grid; gap: .6rem; }
.about__badges li { display: flex; align-items: center; gap: .75rem; font-weight: 550; color: var(--c-cocoa); }
.about__badges li::before { content: ""; width: 22px; height: 22px; flex: none; background: url("../svg/lotus-mark.svg") center / contain no-repeat; }

/* ---------- Accompagnements ---------- */
.practice { margin-block: clamp(3rem, 7vw, 6.5rem) 0 !important; }
.practice:first-of-type { margin-top: 0 !important; }
.practice__grid { gap: clamp(2rem, 6vw, 5.5rem) !important; align-items: center !important; }
@media (min-width: 782px) {
	.practice--reverse .practice__grid { flex-direction: row-reverse; }
	.practice__media { position: sticky; top: calc(var(--header-h) + 2rem); align-self: flex-start; }
}
.practice__media { position: relative; }
.practice__media::before { content: ""; position: absolute; inset: 7% -5% -5% 7%; border-radius: var(--radius-lg); background: var(--c-blush); opacity: .55; }
.practice--reverse .practice__media::before { inset: 7% 7% -5% -5%; }
.is-style-soft, .is-style-soft img { border-radius: var(--radius-lg); }
.practice__media .wp-block-image { position: relative; margin: 0; overflow: hidden; box-shadow: var(--shadow); }
.practice__media .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.practice__logo { margin: 0 0 1.25rem !important; }
.practice__logo img { height: 58px; width: auto; }
#coupeuse-de-feu .practice__logo img { height: 72px; }
.practice__body h3 { margin-top: .2rem; font-size: clamp(1.9rem, 1.5rem + 1.4vw, 2.6rem); }
.practice__body h4 { font-family: var(--wp--preset--font-family--figtree); font-size: .8rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-taupe); margin-top: 1.8rem; }
.is-style-petals { list-style: none; padding: 0; display: grid; gap: .5rem; }
.is-style-petals li { position: relative; padding-left: 1.9rem; }
.is-style-petals li::before { content: ""; position: absolute; left: 0; top: .3em; width: 16px; height: 16px; background: url("../svg/lotus-mark.svg") center / contain no-repeat; }

.practice__details { margin-top: 1.75rem; border-block: 1px solid var(--c-line); }
.practice__details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; font-family: var(--f-serif); font-size: 1.2rem; color: var(--c-cocoa); }
.practice__details summary::-webkit-details-marker { display: none; }
.practice__details summary::after { content: "+"; flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--c-linen); font: 400 1.2rem/1 var(--wp--preset--font-family--figtree); color: var(--c-terracotta); transition: transform .3s var(--ease); }
.practice__details[open] summary::after { transform: rotate(45deg); }
.practice__details > :not(summary) { margin-block: 0 1rem; }

.tarif { display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1rem; margin-top: 1.75rem !important; }
.tarif__price { font-family: var(--f-serif); font-size: 2.1rem; line-height: 1; color: var(--c-terracotta); font-weight: 460; }
.tarif__mode { font-size: .8rem; font-weight: 650; letter-spacing: .14em; text-transform: uppercase; color: var(--c-taupe); }
.practice__actions { margin-top: 1.25rem !important; }
.practices__disclaimer { text-align: center; max-width: 640px; margin: clamp(3rem, 6vw, 5rem) auto 0 !important; }

@media (max-width: 781px) {
	.practice__grid { flex-direction: column; }
	.practice__media { max-width: 440px; margin-inline: auto; }
}

/* ---------- Vidéo ---------- */
.video-teaser { margin-inline: auto; }
.video-teaser__button {
	all: unset; box-sizing: border-box; cursor: pointer; display: block; position: relative; width: 100%;
	aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; background: var(--c-cocoa);
	box-shadow: 0 40px 80px -40px rgba(61, 43, 38, .7);
}
.video-teaser__button:focus-visible { outline: 3px solid var(--c-rose); outline-offset: 5px; }
.video-teaser__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease), filter .6s; filter: saturate(.92) sepia(.12); }
.video-teaser__button::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(61, 43, 38, 0) 40%, rgba(61, 43, 38, .72) 100%); }
.video-teaser__button:hover .video-teaser__img { transform: scale(1.035); filter: saturate(1) sepia(0); }
.video-teaser__play {
	position: absolute; z-index: 1; left: 50%; top: 50%; translate: -50% -50%;
	width: clamp(68px, 9vw, 96px); aspect-ratio: 1; border-radius: 50%;
	display: grid; place-items: center; background: rgba(251, 246, 241, .94); color: var(--c-terracotta);
	box-shadow: 0 12px 40px -10px rgba(0, 0, 0, .45); transition: transform .4s var(--ease);
}
.video-teaser__play svg { margin-left: 4px; }
.video-teaser__play::before { content: ""; position: absolute; inset: -10px; border-radius: 50%; border: 1px solid rgba(251, 246, 241, .7); }
@media (prefers-reduced-motion: no-preference) {
	.video-teaser__play::before { animation: ripple 2.8s var(--ease) infinite; }
}
@keyframes ripple { from { opacity: .9; transform: scale(.9); } to { opacity: 0; transform: scale(1.35); } }
.video-teaser__button:hover .video-teaser__play { transform: scale(1.07); }
.video-teaser__caption { position: absolute; z-index: 1; left: clamp(1.25rem, 3vw, 2.5rem); right: clamp(1.25rem, 3vw, 2.5rem); bottom: clamp(1rem, 3vw, 2.2rem); display: flex; flex-direction: column; gap: .3rem; color: var(--c-cream); }
.video-teaser__title { font-family: var(--f-serif); font-size: clamp(1.1rem, .9rem + .9vw, 1.6rem); line-height: 1.25; }
.video-teaser__meta { font-size: .78rem; font-weight: 650; letter-spacing: .16em; text-transform: uppercase; opacity: .85; }
.video-section__more { text-align: center; margin-top: 2rem !important; color: var(--c-taupe); }
@media (max-width: 599px) { .video-teaser__title { display: none; } }

/* Fenêtre vidéo */
.video-lightbox { padding: 0; border: 0; background: transparent; width: min(1100px, 94vw); max-width: none; max-height: none; overflow: visible; }
.video-lightbox::backdrop { background: rgba(35, 24, 20, .86); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.video-lightbox__frame { position: relative; aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: #000; box-shadow: 0 40px 100px -30px rgba(0, 0, 0, .8); }
.video-lightbox__frame video, .video-lightbox__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-lightbox__close { position: absolute; right: 0; top: -56px; width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer; background: var(--c-cream); color: var(--c-cocoa); font-size: 1.5rem; line-height: 1; display: grid; place-items: center; }
.video-lightbox[open] { animation: fade-in .3s var(--ease); }
@keyframes fade-in { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }

/* ---------- Avis ---------- */
.avis-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; }
.avis { margin: 0; padding: 3.4rem 2rem 1.8rem; background: #FFFDFB; border-radius: var(--radius-lg); box-shadow: var(--shadow); position: relative; display: flex; flex-direction: column; }
.avis::before { content: "“"; position: absolute; top: .4rem; left: 1.4rem; font: 400 5rem/1 var(--f-serif); color: var(--c-blush); }
.avis__rating { margin: 0 0 .5rem; color: var(--c-gold); letter-spacing: .15em; position: relative; }
.avis__text { margin: 0 0 1.25rem; padding: 0; border: 0; position: relative; flex: 1; }
.avis__text p { font-family: var(--f-serif); font-style: italic; font-size: 1.12rem; line-height: 1.55; color: var(--c-cocoa); margin: 0; }
.avis__author { display: flex; flex-direction: column; padding-top: 1rem; border-top: 1px solid var(--c-line); }
.avis__name { font-weight: 650; }
.avis__context { font-size: .85rem; color: var(--c-taupe); }
.avis-section__more { text-align: center; margin-top: 2.25rem !important; }

/* ---------- Contact ---------- */
.contact-section__grid { gap: clamp(2rem, 6vw, 5rem) !important; }
.contact-section__info > p:not(.is-style-eyebrow) { color: rgba(251, 246, 241, .8); }

.coords { display: grid; gap: 1.5rem; margin-top: 2rem; }
.coords__label { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--c-gold); margin-bottom: .25rem; }
.coords__phone { text-decoration: none; display: block; }
.coords__value { font-family: var(--f-serif); font-weight: 440; font-size: clamp(1.8rem, 1.4rem + 1.5vw, 2.4rem); line-height: 1.1; }
.coords__list { display: grid; gap: 1.1rem; font-style: normal; }
.coords__item { margin: 0; line-height: 1.55; }
.coords__social { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.coords__social a { display: inline-block; padding: .45rem .95rem; border-radius: 999px; font-size: .88rem; text-decoration: none; box-shadow: inset 0 0 0 1px currentColor; opacity: .9; }
.coords__social a:hover { opacity: 1; }
.section--cocoa .coords__phone { color: var(--c-cream); }

.contact-block { background: var(--c-cream); color: var(--c-cocoa); border-radius: var(--radius-lg); padding: clamp(1.5rem, 4vw, 2.75rem); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .5); }
.contact-block a { color: var(--c-terracotta) !important; }
.contact-form { display: grid; gap: .2rem; }
.contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 599px) { .contact-form__row { grid-template-columns: 1fr; } }
.field { margin: 0 0 .9rem; }
.field label, .field legend { display: block; font-size: .88rem; font-weight: 650; margin-bottom: .35rem; color: var(--c-cocoa); }
.field__req { color: var(--c-terracotta); }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field textarea {
	width: 100%; box-sizing: border-box; padding: .85rem 1rem; border-radius: 14px; border: 1.5px solid #E6D6CB; background: #fff;
	font: inherit; color: var(--c-cocoa); transition: border-color .2s, box-shadow .2s;
}
.field input:focus, .field textarea:focus { outline: none; border-color: var(--c-rose); box-shadow: 0 0 0 4px rgba(201, 143, 125, .2); }
.field--chips { border: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .45rem; }
.field--chips legend { width: 100%; }
.field--chips label { display: inline-flex; align-items: center; gap: .45rem; margin: 0; padding: .5rem .9rem; border-radius: 999px; border: 1.5px solid #E6D6CB; font-weight: 550; font-size: .88rem; cursor: pointer; background: #fff; }
.field--chips label:has(input:checked) { border-color: var(--c-terracotta); background: var(--c-linen); }
.field--chips input, .field--consent input { accent-color: var(--c-terracotta); }
.field--consent label { display: flex; gap: .6rem; font-weight: 400; font-size: .85rem; color: var(--c-taupe); }
.field--consent input { margin-top: .3em; flex: none; }
.contact-form__submit { margin: .5rem 0 0; }
.contact-form__submit .wp-element-button { border: 0; cursor: pointer; width: 100%; }
.contact-form__note { font-size: .8rem; color: var(--c-taupe); margin: .6rem 0 0; }
.contact-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-notice { padding: 1rem 1.25rem; border-radius: 14px; margin-bottom: 1rem; }
.form-notice--ok { background: #EFE3D6; }
.form-notice--error { background: #F6DDD4; color: #7A3422; }

/* ---------- Pied de page ---------- */
.site-footer { background: var(--c-linen); padding-block: var(--wp--preset--spacing--50) 1.5rem; font-size: .95rem; }
.site-footer__grid { gap: 2.5rem !important; }
.site-footer__about { color: var(--c-taupe); max-width: 30em; margin-top: 1rem !important; }
.site-footer__title { font-family: var(--wp--preset--font-family--figtree) !important; font-size: .74rem !important; font-weight: 700 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--c-terracotta) !important; margin-bottom: 1rem; }
.site-footer .coords { margin-top: 0; gap: 1rem; }
.site-footer .coords__value { font-size: 1.4rem; }
.site-footer .coords__label { color: var(--c-taupe); }
.site-footer .coords__phone { color: var(--c-cocoa); }
.site-footer .coords__social a { color: var(--c-cocoa); }
.site-footer__links { list-style: none; padding: 0; display: grid; gap: .5rem; }
.site-footer__links a { color: var(--c-cocoa); text-decoration: none; }
.site-footer__links a:hover { color: var(--c-terracotta); text-decoration: underline; }
.site-footer__legal { margin-top: 2.5rem !important; padding-top: 1.5rem; border-top: 1px solid var(--c-line); font-size: .82rem; color: var(--c-taupe); }

/* ---------- Pages intérieures ---------- */
.page-hero { padding-block: clamp(3rem, 7vw, 5.5rem) clamp(1.5rem, 3vw, 2.5rem); text-align: center; background: radial-gradient(60% 90% at 50% 0%, rgba(235, 211, 200, .6), transparent 70%); }
.page-hero__title { font-size: clamp(2.2rem, 1.6rem + 2.5vw, 3.4rem); }
.page-content { padding-bottom: var(--wp--preset--spacing--60); }

/* ---------- Éditeur ---------- */
.cdm-placeholder { padding: 1.5rem; border: 1.5px dashed var(--c-rose); border-radius: 14px; color: var(--c-taupe); background: var(--c-cream); text-align: center; }

/* ---------- Apparition douce (activée par le script, jamais sans) ---------- */
@media (prefers-reduced-motion: no-preference) {
	.can-reveal .reveal { opacity: 0; transform: translateY(22px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
	.can-reveal .reveal.is-in { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.page-content h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.2em; }

/* Menu mobile plein écran, aux couleurs du site. */
.site-header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--c-cream) !important; color: var(--c-cocoa) !important;
	padding: 1.25rem 1.5rem 2rem;
	background-image: url("../svg/lotus-filigrane.svg") !important; background-repeat: no-repeat !important;
	background-size: 70vw !important; background-position: 130% 105% !important;
}
.site-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 4rem !important; }
.site-header .is-menu-open .wp-block-navigation__responsive-container-content,
.site-header .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.site-header .is-menu-open .wp-block-navigation-item__content { font-size: 1.9rem !important; font-weight: 380; color: var(--c-cocoa) !important; }
.site-header .is-menu-open .wp-block-navigation-item__content::after { display: none; }
.site-header .wp-block-navigation__responsive-container-close { width: 44px; height: 44px; border-radius: 50%; background: var(--c-linen); display: grid; place-items: center; }

/* ---------- Questions fréquentes ---------- */
.faq-section { background: var(--c-cream); }
.faq__list > * { margin-block: 0 0 .75rem !important; }
.faq__list > .faq__item { width: 100%; box-sizing: border-box; }
.faq__item { background: #FFFDFB; border-radius: 18px; box-shadow: 0 1px 2px rgba(61, 43, 38, .04), 0 10px 26px -20px rgba(61, 43, 38, .35); transition: box-shadow .3s var(--ease); }
.faq__item[open] { box-shadow: var(--shadow); }
.faq__item summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.15rem 1.4rem; font-family: var(--f-serif); font-size: clamp(1.08rem, 1rem + .3vw, 1.22rem); line-height: 1.35; color: var(--c-cocoa); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; flex: none; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--c-linen); font: 400 1.25rem/1 var(--wp--preset--font-family--figtree); color: var(--c-terracotta); transition: transform .3s var(--ease), background-color .3s; }
.faq__item[open] summary::after { transform: rotate(45deg); background: var(--c-blush); }
.faq__item summary:hover { color: var(--c-terracotta); }
.faq__item > :not(summary) { margin: 0 1.4rem 1rem !important; color: var(--c-taupe); }
.faq__item > :last-child { padding-bottom: .4rem; }

/* Les décors (aplats décalés, filigranes) ne doivent jamais créer de défilement horizontal.
   « clip » (et non « hidden ») préserve l'en-tête collant. */
.wp-site-blocks { overflow-x: clip; }
.page-content h3 { font-size: var(--wp--preset--font-size--large); margin-top: 1.6em; }
.page-content .wp-block-table { margin-block: 1.5rem; overflow-x: auto; }
.page-content .wp-block-table table { border-collapse: collapse; width: 100%; font-size: .97rem; }
.page-content .wp-block-table th, .page-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--c-line); padding: .75rem .9rem; text-align: left; vertical-align: top; }
.page-content .wp-block-table thead th { border-bottom: 1.5px solid var(--c-rose); font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--c-terracotta); font-weight: 700; }
.page-content .wp-block-table td:last-child { white-space: nowrap; }
@media (max-width: 599px) {
	.page-content .wp-block-table table { table-layout: auto; }
	.page-content .wp-block-table th, .page-content .wp-block-table td { padding: .65rem .5rem; }
	.page-content .wp-block-table thead th { letter-spacing: .06em; font-size: .7rem; word-break: keep-all; overflow-wrap: normal; }
}
