/* ==========================================================================
   Espiègle Studio — styles du thème
   Les couleurs et polices viennent de theme.json (Apparence > Éditeur > Styles).
   ========================================================================== */

:root {
	--es-bordeaux: var(--wp--preset--color--bordeaux, #9D3155);
	--es-bleu: var(--wp--preset--color--bleu, #95C7F9);
	--es-jaune: var(--wp--preset--color--jaune, #FCF5B1);
	--es-rose: var(--wp--preset--color--rose, #B6647F);
	--es-noir: var(--wp--preset--color--noir, #1D1D1B);
	--es-blanc: var(--wp--preset--color--blanc, #FFFFFF);
	--es-beige: var(--wp--preset--color--beige, #FBF8F3);
	--es-gris: var(--wp--preset--color--gris, #6F6F6D);
	--es-ligne: rgba(29, 29, 27, 0.14);
	--es-f-gothique: var(--wp--preset--font-family--gothique);
	--es-f-script: var(--wp--preset--font-family--manuscrite);
	--es-f-mono: var(--wp--preset--font-family--mono);
	--es-f-texte: var(--wp--preset--font-family--texte);
	--es-ombre: 0 30px 50px -28px rgba(29, 29, 27, 0.45), 0 8px 18px -10px rgba(29, 29, 27, 0.18);
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { overflow-x: clip; -webkit-font-smoothing: antialiased; }
img { height: auto; }
:focus-visible { outline: 2px solid var(--es-bordeaux); outline-offset: 3px; }
.wp-site-blocks > * { margin-block: 0; }
.wp-block-post-content > .alignfull,
.es-main > .alignfull,
.es-main > .wp-block-pattern { margin-block: 0 !important; }
.es-main { overflow-x: clip; }
html { scroll-padding-top: 100px; }

/* Mot-clé manuscrit (bouton « Mot-clé manuscrit » dans l'éditeur) */
.es-kw {
	font-family: var(--es-f-script);
	font-size: 1.6em;
	line-height: 0.55;
	letter-spacing: 0;
	color: var(--es-bordeaux);
	white-space: nowrap;
	font-weight: 400;
	text-transform: none;
}

/* Surtitre (mono) */
.is-style-surtitre,
.es-surtitre,
.es-h1-surtitre {
	font-family: var(--es-f-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase;
	color: var(--es-gris);
	line-height: 1.5 !important;
	font-weight: 400 !important;
}
.es-surtitre a { color: inherit; text-decoration: none; }
.es-surtitre a:hover { color: var(--es-bordeaux); }

/* Chapô */
.is-style-chapo { font-size: clamp(1rem, 1.3vw, 1.12rem); max-width: 56ch; }
.is-layout-constrained > .is-style-chapo,
.is-layout-constrained > .es-sommaire { margin-left: max(0px, calc((100% - 1240px) / 2)) !important; margin-right: auto !important; }
.es-final.is-layout-constrained > .is-style-chapo { margin-left: auto !important; margin-right: auto !important; }

/* Liens-boutons : texte souligné + flèche bordeaux */
.wp-block-buttons { gap: 14px 36px; }
.wp-element-button,
.wp-block-button__link {
	border-bottom: 1px solid var(--es-noir) !important;
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	transition: color 0.2s, border-color 0.2s;
}
.wp-block-button__link::after { content: "→"; color: var(--es-bordeaux); transition: transform 0.25s; }
.wp-block-button__link:hover { border-color: var(--es-bordeaux) !important; }
.wp-block-button__link:hover::after { transform: translateX(4px); }
.wp-block-search__button::after { content: none; }

/* Liens mono soulignés */
.es-lien-mono a {
	font-family: var(--es-f-mono);
	font-size: 0.74rem;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
}

/* ---------- Sections ---------- */
.es-section { padding-block: clamp(72px, 10vw, 150px); }
.es-section--serre { padding-top: clamp(24px, 4vw, 48px); }
.es-section--bas-serre { padding-bottom: clamp(40px, 5vw, 64px); }
.es-section--haut-serre { padding-top: clamp(40px, 5vw, 64px); }
.es-filet { border-top: 1px solid var(--es-ligne); }
.es-section h2.wp-block-heading { margin-top: 0; }
.es-tete { margin-bottom: clamp(40px, 6vw, 72px) !important; }
.es-tete-split { margin-bottom: clamp(40px, 6vw, 72px) !important; gap: 28px clamp(28px, 5vw, 80px); }
.es-tete-split .is-style-chapo { margin: 0; }

/* Titre + phrase chacun sur une ligne (services) */
.es-tete-ligne { margin-bottom: clamp(40px, 6vw, 72px); display: grid; gap: 22px; }
.es-tete-ligne > * { margin: 0 !important; }
.es-tete-ligne h2 { font-size: clamp(1.7rem, 3vw, 2.75rem) !important; }
.es-tete-ligne .is-style-chapo { max-width: none; font-size: 1rem; }
@media (min-width: 1100px) {
	.es-tete-ligne h2, .es-tete-ligne .is-style-chapo { white-space: nowrap; }
}

/* ---------- En-tête ---------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 50;
	background: rgba(255, 255, 255, 0.94);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}
.admin-bar header.wp-block-template-part { top: 32px; }
@media (max-width: 782px) { .admin-bar header.wp-block-template-part { top: 46px; } }
.es-header { padding-block: 18px; }
.es-header__inner { gap: 20px; }
.es-logo { margin: 0 !important; }
.es-logo img { display: block; }
.es-header .wp-block-navigation { font-size: 0.9rem; gap: 34px; }
.es-header .wp-block-navigation-item__content { text-decoration: none; padding-block: 4px; border-bottom: 1px solid transparent; }
.es-header .wp-block-navigation-item__content:hover { border-bottom-color: var(--es-bordeaux); color: var(--es-noir); }
.es-nav-mobile { display: none !important; }
@media (min-width: 901px) {
	.es-header__inner { display: grid !important; grid-template-columns: 1fr auto 1fr; }
	.es-nav-droite { justify-self: end; }
}
@media (max-width: 900px) {
	.es-nav-desktop { display: none !important; }
	.es-nav-mobile { display: flex !important; }
	.es-logo img { width: 140px !important; }
}
.es-nav-mobile .wp-block-navigation__responsive-container.is-menu-open { padding: 28px 24px; }
.es-nav-mobile .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1.15rem; padding-block: 6px; }

/* ---------- Haut de page ---------- */
.es-hero { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(64px, 8vw, 110px); }
.es-hero__grille { gap: clamp(32px, 5vw, 72px) !important; }
.es-hero__texte > * + * { margin-top: 26px; }
.es-h1-surtitre { margin: 0; }
.es-slogan {
	font-family: var(--es-f-gothique);
	font-size: clamp(2.6rem, 6vw, 5.3rem);
	line-height: 1.04;
	letter-spacing: -0.005em;
	text-wrap: balance;
	margin-top: 20px !important;
}
.es-hero__visuel { position: relative; padding-bottom: 64px; }
.es-hero__photo { margin: 0 0 0 auto !important; max-width: 520px; }
.es-hero__photo img { aspect-ratio: 4 / 5; width: 100%; object-fit: cover; }
.es-hero__feuillet {
	position: absolute !important;
	left: calc(-1 * clamp(10px, 2.8vw, 40px));
	bottom: 0;
	width: min(300px, 68%);
	margin: 0 !important;
}
.es-hero__feuillet::before { inset: 16px 24px -14px -12px !important; transform: rotate(-3.5deg) !important; }
.es-hero__feuillet .es-verre-contenu { padding: 56px 26px 22px; }
.es-hero__feuillet .es-cachet { position: absolute; top: -42px; left: 50%; margin: 0 0 0 -37px !important; z-index: 3; }
@media (max-width: 781px) {
	.es-hero__photo { margin: 0 !important; max-width: 440px; }
	.es-hero__feuillet { left: auto; right: 0; width: min(290px, 78%); }
}

.es-cachet { margin: 0 !important; }
.es-cachet img { filter: drop-shadow(0 6px 8px rgba(80, 20, 40, 0.3)); transition: transform 0.5s cubic-bezier(0.3, 1.6, 0.5, 1); }
.es-cachet:hover img { transform: rotate(-8deg) scale(1.05); }

.es-script-titre,
h2.es-titre-script {
	font-family: var(--es-f-script) !important;
	color: var(--es-bordeaux);
	font-weight: 400 !important;
	line-height: 1 !important;
}
.es-hero__feuillet .es-script-titre { font-size: 2.3rem; text-align: center; margin: 0 0 8px; }

/* Liste numérotée 01. 02. (mono bordeaux) */
.es-liste-numeros { list-style: none; padding: 0; margin: 0; counter-reset: es; }
.es-liste-numeros li { counter-increment: es; border-top: 1px solid rgba(29, 29, 27, 0.14); padding-block: 9px; display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: baseline; font-family: var(--es-f-gothique); font-size: 0.98rem; }
.es-liste-numeros li::before { content: counter(es, decimal-leading-zero) "."; font-family: var(--es-f-mono); font-size: 0.8rem; color: var(--es-bordeaux); }
.es-liste-numeros a { text-decoration: none; }
.es-liste-numeros a:hover { color: var(--es-bordeaux); }
.es-sommaire { max-width: 420px; margin-top: 28px !important; }

/* ---------- Verre dépoli & feuilles ---------- */
[class*="is-style-feuille-"] { position: relative; isolation: isolate; --es-feuille: var(--es-rose); }
.is-style-feuille-bleu { --es-feuille: var(--es-bleu); }
.is-style-feuille-jaune { --es-feuille: var(--es-jaune); }
[class*="is-style-feuille-"]::before {
	content: "";
	position: absolute;
	inset: 12px 14px -12px -14px;
	background: var(--es-feuille);
	transform: rotate(-1.8deg);
	z-index: -1;
	box-shadow: 0 18px 30px -18px rgba(29, 29, 27, 0.35);
	transition: transform 0.45s ease;
}
[class*="is-style-feuille-"] > .wp-block-group,
.is-style-verre {
	background: rgba(255, 255, 255, 0.6);
	-webkit-backdrop-filter: blur(16px) saturate(1.15);
	backdrop-filter: blur(16px) saturate(1.15);
	border: 1px solid rgba(255, 255, 255, 0.85);
	box-shadow: var(--es-ombre), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.is-style-verre { padding: 26px 24px; }
.is-style-cadre { border: 1px solid var(--es-noir); padding: clamp(28px, 4vw, 48px); }

/* Cartes services */
.es-services { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(30px, 3vw, 42px); padding: 0 4px 16px 18px; }
.es-services > * { margin: 0 !important; }
.es-carte { transition: transform 0.45s ease; }
.es-services .es-carte { height: 100%; }
.es-carte:hover { transform: translateY(-6px); }
.es-carte:hover::before { transform: rotate(-3deg) translate(-3px, 3px); }
.es-services .es-carte__verre { height: 100%; }
.es-carte__verre { padding: 26px 24px 22px; display: flex; flex-direction: column; gap: 14px; }
.es-carte__verre > * { margin: 0 !important; }
.es-num { font-family: var(--es-f-mono); font-size: 0.78rem; color: var(--es-bordeaux); }
h3.es-carte__titre {
	font-family: var(--es-f-script) !important;
	font-size: 2.2rem !important;
	line-height: 1 !important;
	color: var(--es-bordeaux);
	min-height: 2em;
	display: flex;
	align-items: flex-end;
	margin-top: 14px !important;
}
.es-carte__accroche { font-family: var(--es-f-gothique); font-size: 0.95rem; line-height: 1.4; min-height: 2.8em; }
.es-carte__desc { font-size: 0.94rem; line-height: 1.6; color: rgba(29, 29, 27, 0.72); flex: 1; }
.es-carte__pied { border-top: 1px solid rgba(29, 29, 27, 0.18); padding-top: 14px; }
.es-carte__pied > * { margin: 0; }
.es-prix { font-family: var(--es-f-mono); font-size: 0.74rem; line-height: 1.4; color: var(--es-gris); }
.es-prix strong { font-size: 1rem; font-weight: 500; color: var(--es-noir); }
@media (max-width: 1040px) { .es-services { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .es-services { grid-template-columns: 1fr; padding-right: 10px; } }

/* ---------- Bandeaux défilants ---------- */
.es-bandeau-zone { border-block: 1px solid var(--es-ligne); overflow: hidden; padding-block: 20px; }
.is-style-bandeau { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 32px; justify-content: center; align-items: center; }
.is-style-bandeau li { font-family: var(--es-f-gothique); font-size: 1.02rem; letter-spacing: 0.01em; white-space: nowrap; display: flex; align-items: center; gap: 32px; }
.is-style-bandeau li::after { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--es-bordeaux); }
.is-style-bandeau .es-kw { font-size: 1.9rem; line-height: 1; }
/* Animation (ajoutée par assets/js/espiegle.js) */
.es-piste { display: flex; width: max-content; animation: es-defile 40s linear infinite; }
.es-piste > .is-style-bandeau { flex-wrap: nowrap; padding-right: 32px; justify-content: flex-start; }
.es-bandeau-zone--inverse .es-piste { animation-direction: reverse; animation-duration: 48s; }
.es-bandeau-zone:hover .es-piste { animation-play-state: paused; }
@keyframes es-defile { to { transform: translateX(-50%); } }

/* ---------- Qui est vraiment Espiègle ---------- */
.es-qui__grille { gap: clamp(32px, 5vw, 72px) !important; align-items: stretch !important; }
.es-qui__photo-col { display: flex; }
.es-qui__photo { margin: 0 !important; width: 100%; height: 100%; }
.es-qui__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 85% 50%; }
.es-qui__texte { display: flex; flex-direction: column; justify-content: space-between; gap: 32px; }
.es-qui__intro > * + * { margin-top: 18px; }
h2.es-h2-moyen { font-size: clamp(2rem, 3.6vw, 3.1rem) !important; margin-top: -0.08em !important; }
.es-faits { display: grid !important; grid-template-columns: 1fr 1fr; column-gap: 28px; margin: 0 !important; }
.es-faits--colonne { grid-template-columns: 1fr; margin-top: 40px !important; }
.es-fait { padding-block: 14px; border-bottom: 1px solid var(--es-ligne); margin: 0 !important; }
.es-faits > .es-fait:nth-child(-n+2) { border-top: 1px solid var(--es-ligne); }
.es-faits--colonne > .es-fait:nth-child(2) { border-top: 0; }
.es-fait > * { margin: 0 !important; }
.es-fait p:not(.is-style-surtitre) { font-size: 0.95rem; margin-top: 4px !important; }
@media (max-width: 781px) {
	.es-qui__photo img { height: auto; max-width: 440px; }
}

/* Planche de photos décalées */
.es-planche { display: grid !important; grid-template-columns: 1.1fr 0.9fr 1fr 0.9fr; gap: clamp(12px, 2vw, 28px); align-items: start; margin-top: clamp(56px, 7vw, 100px) !important; padding-bottom: clamp(24px, 4vw, 56px); }
.es-planche > * { margin: 0 !important; }
.es-planche img { width: 100%; object-fit: cover; }
.es-planche > :nth-child(1) img { aspect-ratio: 3 / 4; }
.es-planche > :nth-child(2) { margin-top: clamp(40px, 6vw, 90px) !important; }
.es-planche > :nth-child(2) img { aspect-ratio: 1 / 1; }
.es-planche > :nth-child(3) { margin-top: clamp(16px, 2vw, 30px) !important; }
.es-planche > :nth-child(3) img { aspect-ratio: 4 / 5; }
.es-planche > :nth-child(4) { margin-top: clamp(56px, 8vw, 120px) !important; }
.es-planche > :nth-child(4) img { aspect-ratio: 3 / 4; }
@media (max-width: 700px) {
	.es-planche { grid-template-columns: 1fr 1fr; }
	.es-planche > :nth-child(3) { margin-top: 0 !important; }
	.es-planche > :nth-child(4) { margin-top: clamp(40px, 6vw, 90px) !important; }
}

/* Images noir & blanc */
.is-style-noir-et-blanc img { filter: grayscale(1); }

/* ---------- Offre phare ---------- */
.es-phare { position: relative; padding-top: clamp(44px, 5vw, 64px) !important; }
.es-phare__cachet { position: absolute !important; top: -34px; left: clamp(20px, 5vw, 60px); }
.es-phare__grille { gap: clamp(32px, 6vw, 90px) !important; }
.es-phare__grille .wp-block-column > * + * { margin-top: 20px; }
h2.es-titre-script { font-size: clamp(2.8rem, 5.4vw, 4.4rem) !important; }
.es-parcours { font-family: var(--es-f-mono); font-size: 0.74rem; letter-spacing: 0.08em; text-transform: uppercase; }
.es-phase { display: grid !important; grid-template-columns: auto 1fr auto; gap: 8px 24px; padding-block: 22px; border-bottom: 1px solid var(--es-ligne); margin: 0 !important; }
.es-phase:first-child { border-top: 1px solid var(--es-ligne); }
.es-phase > * { margin: 0 !important; }
.es-phase__n { font-family: var(--es-f-mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--es-bordeaux); padding-top: 6px; }
h3.es-phase__titre { font-size: 1.4rem !important; }
.es-phase__tarif { font-family: var(--es-f-mono); font-weight: 500; font-size: 0.95rem; text-align: right; grid-column: 3; grid-row: 1; }
.es-phase__liste { grid-column: 2; list-style: none; padding: 0; display: grid; gap: 4px; font-size: 0.95rem; color: var(--es-gris); }
.es-total { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; padding-top: 20px; font-family: var(--es-f-mono); font-size: 0.82rem; margin: 0 !important; }
.es-total strong { background: var(--es-jaune); padding: 2px 8px; font-weight: 500; }
@media (max-width: 781px) {
	.es-phase { grid-template-columns: 1fr auto; }
	.es-phase__n, .es-phase__liste { grid-column: 1 / -1; }
	.es-phase__titre { grid-column: 1; }
	.es-phase__tarif { grid-column: 2; grid-row: 2; }
}

/* ---------- Projets : bandeau défilant ---------- */
.es-projets-defile { overflow: hidden; margin-top: 0 !important; padding-block: 6px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.es-projets-defile .wp-block-post-template { display: flex !important; flex-wrap: nowrap; gap: clamp(14px, 2vw, 24px); list-style: none; margin: 0; padding: 0 clamp(14px, 2vw, 24px) 0 0; width: max-content; }
.es-projets-defile .wp-block-post { width: clamp(230px, 24vw, 300px); flex: none; margin: 0 !important; }
.es-projets-defile .es-piste-projets { display: flex; width: max-content; animation: es-defile 45s linear infinite; }
.es-projets-defile:hover .es-piste-projets,
.es-projets-defile:focus-within .es-piste-projets { animation-play-state: paused; }
.es-projets .wp-block-buttons { margin-top: clamp(36px, 5vw, 56px); }
.wp-block-post .wp-block-post-featured-image { margin: 0 0 10px; overflow: hidden; background: var(--es-beige); }
.wp-block-post .wp-block-post-featured-image img { transition: transform 0.7s ease; }
.wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.03); }
.es-projet__legende { gap: 12px; align-items: baseline !important; }
.es-projet__legende .wp-block-post-title { font-family: var(--es-f-gothique); font-style: italic; font-size: 0.95rem !important; margin: 0; }
.es-projet__legende .wp-block-post-title a { text-decoration: none; }
.es-projet__legende .wp-block-post-terms { font-family: var(--es-f-mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--es-gris); text-align: right; }
.es-projet__legende .wp-block-post-terms a { text-decoration: none; color: inherit; }

/* Grilles réalisations & blog */
.es-filtres { list-style: none; padding: 0; margin-top: 32px !important; margin-bottom: 40px !important; display: flex; flex-wrap: wrap; gap: 6px 22px; font-family: var(--es-f-gothique); font-size: 0.92rem; }
.es-filtres li a { text-decoration: none; color: var(--es-gris); border-bottom: 1px solid transparent; padding-bottom: 3px; }
.es-filtres li a:hover, .es-filtres .current-cat a { color: var(--es-noir); border-bottom-color: var(--es-bordeaux); }
.es-grille-projets .wp-block-post-template, .es-grille-articles .wp-block-post-template { gap: clamp(18px, 2.4vw, 32px); }
.es-grille-articles .wp-block-post-title { font-size: 1.3rem; }
.es-grille-articles .wp-block-post-title a { text-decoration: none; }
.wp-block-query-pagination { margin-top: 48px; font-family: var(--es-f-mono); font-size: 0.85rem; }

/* ---------- Étapes ---------- */
.es-etapes { gap: 0 !important; border-top: 1px solid var(--es-noir); }
.es-etape { padding: 26px 24px 8px 0; }
.es-etape + .es-etape { padding-left: 24px; border-left: 1px solid var(--es-ligne); }
.es-etape > * { margin: 0 0 12px !important; }
.es-etape__n { font-family: var(--es-f-mono); font-size: clamp(2rem, 3.4vw, 2.8rem) !important; line-height: 1 !important; color: var(--es-bordeaux); }
h3.es-etape__titre { font-size: 1.08rem !important; letter-spacing: 0.01em; }
.es-etape__texte { font-size: 0.94rem; line-height: 1.6; color: var(--es-gris); }
.es-etape__objectif { font-family: var(--es-f-mono); font-size: 0.7rem; letter-spacing: 0.03em; }
.es-etape__objectif strong { color: var(--es-bordeaux); font-weight: 400; }
@media (max-width: 781px) {
	.es-etape, .es-etape + .es-etape { padding: 22px 0 6px; border-left: 0; border-top: 1px solid var(--es-ligne); }
	.es-etape:first-child { border-top: 0; }
}

/* ---------- Pour qui ---------- */
.es-cibles { display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)); border-top: 1px solid var(--es-noir); border-left: 1px solid var(--es-ligne); }
.es-cibles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.es-cibles > * { margin: 0 !important; }
.es-cible { display: flex; flex-direction: column; justify-content: space-between; gap: 36px; padding: 22px 20px 26px; min-height: 230px; border-right: 1px solid var(--es-ligne); border-bottom: 1px solid var(--es-ligne); transition: background 0.3s; }
.es-cible > * { margin: 0 !important; }
.es-cible h3, .es-cible p, .es-cible .is-style-surtitre { transition: color 0.3s; }
h3.es-cible__titre { font-family: var(--es-f-script) !important; font-size: 2.1rem !important; line-height: 1 !important; color: var(--es-bordeaux); margin: 0 !important; }
.es-cible p:not(.is-style-surtitre) { font-size: 0.92rem; line-height: 1.55; color: var(--es-gris); margin-top: 8px !important; }
.es-cible:nth-child(3n+1):hover { background: var(--es-jaune); }
.es-cible:nth-child(3n+2):hover { background: var(--es-bleu); }
.es-cible:nth-child(3n+2):hover p { color: var(--es-noir) !important; }
.es-cible:nth-child(3n):hover { background: var(--es-rose); }
.es-cible:nth-child(3n):hover h3, .es-cible:nth-child(3n):hover p { color: var(--es-blanc) !important; }
@media (max-width: 1040px) { .es-cibles, .es-cibles--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .es-cibles, .es-cibles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .es-cible { min-height: 0; } }
@media (max-width: 420px) { .es-cibles, .es-cibles--4 { grid-template-columns: 1fr; } }

/* ---------- Avis ---------- */
.es-fleches { display: flex; gap: 10px; justify-content: flex-end; }
.es-fleches button { width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--es-noir); background: transparent; color: var(--es-noir); font-size: 1rem; cursor: pointer; }
.es-fleches button:hover { border-color: var(--es-bordeaux); color: var(--es-bordeaux); }
@media (max-width: 781px) { .es-fleches { justify-content: flex-start; } }
.es-carrousel { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(260px, calc((100% - 48px) / 3)); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-block: 4px 18px; scrollbar-width: thin; }
.es-carrousel > * { margin: 0 !important; }
.es-avis { scroll-snap-align: start; border-top: 1px solid var(--es-noir) !important; padding: 22px 0 0 !important; display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.es-avis p { font-size: 1.02rem; line-height: 1.6; }
.es-avis::before { content: "“"; display: block; font-family: var(--es-f-script); font-size: 4rem; line-height: 0.6; color: var(--es-bordeaux); }
.es-avis cite { font-family: var(--es-f-gothique); font-style: normal; font-size: 0.88rem; }

/* ---------- Vision ---------- */
.es-vision { gap: clamp(28px, 6vw, 90px) !important; }
.es-vision__photo img { aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }
.es-vision .wp-block-column > * + * { margin-top: 26px; }
.es-citation { font-family: var(--es-f-gothique); font-size: clamp(1.5rem, 3vw, 2.4rem); line-height: 1.2; text-wrap: balance; }
.es-signature { gap: 14px !important; }
.es-signature > * { margin: 0 !important; }
.es-signature__nom { font-family: var(--es-f-script); font-size: 3.2rem; line-height: 1; color: var(--es-bordeaux); }

/* ---------- Appel final ---------- */
.es-final { text-align: center; }
.es-final > * { margin-left: auto !important; margin-right: auto !important; }
.es-final > * + * { margin-top: 30px !important; }
h2.es-final__titre { font-size: clamp(1.7rem, 4.4vw, 3.6rem) !important; }
@media (min-width: 900px) { h2.es-final__titre { white-space: nowrap; } }
.es-contact-direct { font-family: var(--es-f-mono); font-size: 0.78rem; color: var(--es-gris); }

/* ---------- Pages intérieures ---------- */
.es-page-tete { padding-bottom: clamp(48px, 6vw, 80px); }
.es-page-tete > * + * { margin-top: 22px; }
h1.es-titre-page, .es-titre-page { font-family: var(--es-f-gothique); font-size: clamp(2.4rem, 5.4vw, 4.6rem) !important; line-height: 1.05 !important; text-wrap: balance; }
.es-titre-page--moyen { font-size: clamp(2rem, 4vw, 3.2rem) !important; }
.es-pole__grille { gap: clamp(32px, 6vw, 90px) !important; }
.es-pole__intro > * + * { margin-top: 18px; }
.es-offre { display: grid !important; grid-template-columns: 1fr auto; gap: 4px 24px; padding-block: 20px; border-bottom: 1px solid var(--es-ligne); margin: 0 !important; }
.es-offres > .es-offre:first-child { border-top: 1px solid var(--es-noir); }
.es-offre > * { margin: 0 !important; }
h3.es-offre__nom { font-size: 1.2rem !important; }
.es-offre__prix { font-family: var(--es-f-mono); font-weight: 500; font-size: 0.92rem; text-align: right; white-space: nowrap; }
.es-offre__desc { grid-column: 1 / -1; color: var(--es-gris); font-size: 0.95rem; }
.es-offres__note { font-family: var(--es-f-mono); font-size: 0.74rem; color: var(--es-gris); margin-top: 18px !important; }
.es-offres .wp-block-buttons { margin-top: 28px; }
.es-faq { gap: clamp(28px, 6vw, 90px) !important; }
.es-question { border-bottom: 1px solid var(--es-ligne); padding-block: 18px; margin: 0 !important; }
.es-question:first-child { border-top: 1px solid var(--es-noir); }
.es-question summary { font-family: var(--es-f-gothique); font-size: 1.12rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.es-question summary::-webkit-details-marker { display: none; }
.es-question summary::after { content: "+"; color: var(--es-bordeaux); font-family: var(--es-f-mono); }
.es-question[open] summary::after { content: "–"; }
.es-question p { color: var(--es-gris); margin-top: 12px; }
.es-histoire { gap: clamp(28px, 6vw, 90px) !important; }
.es-histoire .wp-block-column > * + * { margin-top: 18px; }
.es-apropos-tete { gap: clamp(28px, 6vw, 90px) !important; }
.es-apropos-tete .wp-block-column > * + * { margin-top: 22px; }
.es-apropos-tete img { aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.es-ancrage { gap: clamp(28px, 6vw, 90px) !important; }
.es-ancrage .wp-block-column > * + * { margin-top: 22px; }
.es-contact { gap: clamp(32px, 6vw, 90px) !important; }
.es-contact__formulaire > * + * { margin-top: 24px; }
h2.es-h2-petit { font-size: clamp(1.6rem, 2.6vw, 2.2rem) !important; }
.es-contact__infos { padding-left: 14px; }
.es-a-remplacer { background: var(--es-beige); }
.es-legal h3 { font-size: 1.15rem; margin-top: 2.2em; }
.es-legal p, .es-legal li { color: #3a3a38; }
.es-article .wp-block-post-content { margin-top: 40px; }
.es-article__nav, .es-projet-fiche .es-article__nav { margin-top: 64px !important; padding-top: 24px; border-top: 1px solid var(--es-ligne); font-family: var(--es-f-gothique); }
.es-article__nav a { text-decoration: none; }
.es-projet-fiche > * + * { margin-top: 24px; }
.es-projet-fiche__image { margin-top: 48px !important; }
.es-projet-fiche__contenu { margin-top: 56px !important; }
.es-projet-fiche__contenu h2 { font-size: clamp(1.4rem, 2.4vw, 2rem); margin-top: 2.2em !important; }
.es-projet-fiche__contenu > h2:first-child { margin-top: 0 !important; }
.wp-block-gallery img { filter: none; }

/* Formulaire Contact Form 7 */
.wpcf7 form { display: grid; gap: 18px; }
.wpcf7 label { font-family: var(--es-f-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--es-gris); display: grid; gap: 8px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; font: inherit; font-family: var(--es-f-texte); font-size: 1rem; text-transform: none; letter-spacing: 0; color: var(--es-noir);
	border: 0; border-bottom: 1px solid var(--es-noir); background: transparent; padding: 10px 0; border-radius: 0;
}
.wpcf7 textarea { border: 1px solid var(--es-noir); padding: 12px; min-height: 160px; }
.wpcf7 fieldset { border: 0; padding: 0; margin: 0; }
.wpcf7 legend { font-family: var(--es-f-mono); font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--es-gris); margin-bottom: 10px; padding: 0; }
.wpcf7 .wpcf7-list-item label { display: inline-flex; gap: 8px; align-items: center; font-family: var(--es-f-texte); font-size: 0.95rem; letter-spacing: 0; text-transform: none; color: var(--es-noir); }
.wpcf7 input:focus, .wpcf7 textarea:focus, .wpcf7 select:focus { outline: none; border-color: var(--es-bordeaux); }
.wpcf7 .wpcf7-list-item { margin: 0 16px 8px 0; font-family: var(--es-f-texte); text-transform: none; letter-spacing: 0; font-size: 0.95rem; color: var(--es-noir); }
.wpcf7 input[type="submit"] { justify-self: start; font-family: var(--es-f-gothique); font-size: 1rem; background: transparent; border: 0; border-bottom: 1px solid var(--es-noir); padding: 0 0 4px; cursor: pointer; color: var(--es-noir); }
.wpcf7 input[type="submit"]:hover { color: var(--es-bordeaux); border-color: var(--es-bordeaux); }

/* ---------- Pied de page ---------- */
.es-footer { border-top: 1px solid var(--es-noir); padding-block: 56px 28px; }
.es-footer__haut { gap: 32px !important; }
.es-footer__logo { margin: 0 0 14px !important; }
.es-footer__titre { font-family: var(--es-f-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--es-gris); margin: 0 0 14px !important; }
.es-footer__liste { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; font-size: 0.94rem; }
.es-footer__liste a { text-decoration: none; }
.es-footer__bas { margin-top: 48px !important; border-top: 1px solid var(--es-ligne); padding-top: 20px; font-family: var(--es-f-mono); font-size: 0.7rem; letter-spacing: 0.06em; color: var(--es-gris); gap: 12px; }
.es-footer__bas > * { margin: 0 !important; }
.es-footer__bas a { text-decoration: none; color: inherit; }

/* ---------- Mouvement réduit ---------- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; animation: none !important; }
	.es-piste, .es-piste-projets { width: auto !important; }
	.es-piste [aria-hidden="true"], .es-piste-projets [aria-hidden="true"] { display: none !important; }
	.es-projets-defile { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* ---------- Éditeur : on montre les feuilles sans animation ---------- */
.editor-styles-wrapper .es-header { position: static; }
.editor-styles-wrapper .es-hero__feuillet { position: relative !important; left: 0; margin-top: -120px !important; }
