/*
Theme Name: Kadence ELC
Theme URI: https://ecolelibredecourriere.be
Description: Thème enfant de Kadence pour l'École libre de Courrière (DA « Joie simple »). Contient uniquement les détails que Kadence ne règle pas seul.
Author: Puramis
Author URI: https://puramis.be
Template: kadence
Version: 1.0.0
Text Domain: kadence-elc
*/

/* ==========================================================================
   Repères.
   Couleurs : uniquement la palette Kadence (--global-palette1 à 9),
   réglée dans Apparence > Personnaliser > Couleurs.
   Classes « elc-... » : à saisir dans « Classe(s) CSS additionnelle(s) »
   (onglet Avancé de chaque bloc) pour réutiliser un style.
   ========================================================================== */
:root {
	--elc-wrap: 1200px;
	--elc-gouttiere: 20px;
	--elc-rayon: 28px;
	--elc-ombre: 0 2px 0 rgba(31, 42, 34, .04), 0 8px 24px rgba(31, 42, 34, .06);
	--elc-titre: "Bricolage Grotesque", system-ui, sans-serif;
}
@media (min-width: 768px) { :root { --elc-gouttiere: 32px; } }

h1, h2 { letter-spacing: -0.02em; }
h1 { letter-spacing: -0.03em; }
.entry-content p, .entry-content li { max-width: 68ch; }
.entry-content sup { font-size: .6em; }

/* ---------- Repères de chantier (à retirer avant la mise en ligne) ---------- */
mark.elc-todo {
	display: inline-block; padding: 2px 8px; line-height: 1.4;
	background: #FCE4EC; color: #8A1538; border: 1px dashed #C2185B; border-radius: 3px;
	font: 600 .85em/1.4 ui-monospace, Menlo, monospace;
}
mark.elc-verif {
	background: var(--global-palette5); color: var(--global-palette3);
	outline: 2px dashed #B8860B; outline-offset: 2px; border-radius: 2px; padding: 0 2px;
}

/* ---------- Boutons ---------- */
.wp-block-button__link, .button, .header-button, .mobile-header-button {
	min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
	transition: background-color .15s, color .15s, transform .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s;
}
.wp-block-button__link:hover, .header-button:hover, .mobile-header-button:hover {
	transform: translateY(-2px); box-shadow: 0 6px 16px rgba(36, 80, 42, .18);
}
.wp-block-button__link:active { transform: translateY(0) scale(.98); box-shadow: none; }
.wp-block-button.is-style-outline > .wp-block-button__link,
.wp-block-button.is-style-outline > .wp-block-button__link:not(:hover) {
	background: transparent; color: var(--global-palette2); border: 2px solid var(--global-palette2);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--global-palette2); color: var(--global-palette9); border-color: var(--global-palette2);
}
:is(.elc-btn-sapin, .elc-btn-sapin > .wp-block-group__inner-container) > .wp-block-button__link { background: var(--global-palette2); }
:is(.elc-btn-sapin, .elc-btn-sapin > .wp-block-group__inner-container) > .wp-block-button__link:hover { background: var(--global-palette1); }
.wp-block-buttons { gap: 12px; }

/* ---------- En-tête : téléphone cliquable ---------- */
.elc-tel {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px;
	font-weight: 700; color: var(--global-palette2); text-decoration: none; white-space: nowrap;
}
.elc-tel::before, .elc-ico::before, .elc-mobilebar__tel::before {
	content: ""; width: 20px; height: 20px; flex-shrink: 0; background: currentColor;
	-webkit-mask: var(--elc-icone) center / contain no-repeat; mask: var(--elc-icone) center / contain no-repeat;
}
.elc-tel, .elc-ico--tel, .elc-mobilebar__tel {
	--elc-icone: 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.2a1 1 0 0 1 1-.25 11.4 11.4 0 0 0 3.6.57 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1L6.6 10.8z'/%3E%3C/svg%3E");
}
.site-header .header-html a.elc-tel { text-decoration: none; }
.elc-tel:hover { color: var(--global-palette1); }
.site-header .header-html { margin-right: 4px; }

/* ---------- Ouverture (bloc d'accueil) ---------- */
.elc-hero { position: relative; overflow: hidden; isolation: isolate; padding: 40px var(--elc-gouttiere) 32px; }
.elc-hero::before { /* forme organique décorative */
	content: ""; position: absolute; z-index: -1; right: -120px; top: -80px; width: 520px; height: 520px;
	background: var(--global-palette6); border-radius: 58% 42% 55% 45% / 48% 60% 40% 52%;
}
:is(.elc-hero, .elc-hero > .wp-block-group__inner-container) > *, :is(.elc-section, .elc-section > .wp-block-group__inner-container) > * { max-width: var(--elc-wrap); margin-left: auto !important; margin-right: auto !important; }
.elc-hero__grid { gap: 32px 56px; margin-bottom: 0; }
.elc-hero__title { margin: 0 0 .4em; }
.elc-surligne {
	background: linear-gradient(transparent 58%, var(--global-palette5) 58%, var(--global-palette5) 92%, transparent 92%);
	padding: 0 .08em;
}
.elc-eyebrow {
	font-size: .85rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: var(--global-palette2); margin-bottom: .75em;
}
.elc-lead { font-size: 1.15rem; max-width: 38em; }
.elc-signature { font-family: var(--elc-titre); font-weight: 700; font-size: 1.25rem; color: var(--global-palette1); margin-bottom: 1.4em; }
.elc-hero__media { position: relative; }
.elc-hero__media::before {
	content: ""; position: absolute; left: -18px; bottom: 50px; width: 90px; height: 90px;
	background: var(--global-palette5); border-radius: 50%; z-index: -1;
}
.elc-legende { font-size: .9rem; color: var(--global-palette3); margin-top: 10px; }
@media (min-width: 900px) { .elc-hero { padding-top: 64px; padding-bottom: 40px; } }

/* Emplacements photo (remplacer chaque bloc par un bloc Image le moment venu) */
.elc-photo {
	display: flex; align-items: flex-end; aspect-ratio: 4 / 3; padding: 14px !important; margin: 0;
	border-radius: 48px 48px 48px 12px; overflow: hidden;
	background: radial-gradient(circle at 30% 30%, #CDE7A9, transparent 60%), radial-gradient(circle at 80% 70%, #A9D47A, transparent 55%), #BFE09A;
}
:is(.elc-photo, .elc-photo > .wp-block-group__inner-container) > * { margin: 0 !important; max-width: none; }
.elc-photo__label {
	padding: 6px 14px; font-size: .85rem; font-weight: 600; line-height: 1.35;
	background: rgba(255, 255, 255, .92); color: var(--global-palette3); border-radius: 999px;
}
.elc-photo--pilier { aspect-ratio: 16 / 9; border-radius: var(--elc-rayon) var(--elc-rayon) 0 0; }
.elc-photo--equipe { aspect-ratio: 5 / 4; }
.elc-photo--large { aspect-ratio: 21 / 9; margin-top: 48px; }

/* Bandeau de coordonnées */
.elc-infobar {
	margin-top: 32px !important; padding: 10px 28px; gap: 4px 24px;
	background: var(--global-palette2); color: var(--global-palette9); border-radius: 999px;
}
.elc-infobar p { margin: 0; }
.elc-infobar a { color: var(--global-palette9); }
.elc-ico { position: relative; padding-left: 32px; overflow-wrap: anywhere; }
.elc-ico::before { position: absolute; left: 0; top: .2em; }
.elc-infobar .elc-ico { display: flex; align-items: center; gap: 10px; min-height: 44px; padding-left: 0; }
.elc-infobar .elc-ico::before { position: static; }
.elc-ico--lieu { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.elc-ico--mail { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 5h18a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zm9 7.2L4.4 7H19.6L12 12.2zM4 9.2V17h16V9.2l-8 5.4-8-5.4z'/%3E%3C/svg%3E"); }
@media (max-width: 899px) { .elc-infobar { border-radius: 24px; flex-direction: column; align-items: flex-start !important; } }

/* ---------- Sections ---------- */
.elc-section { padding: 56px var(--elc-gouttiere); }
@media (min-width: 900px) { .elc-section { padding-top: 88px; padding-bottom: 88px; } }
.elc-section--tendre { background: var(--global-palette6); }
.elc-section--jaune { background: var(--global-palette7); }
.elc-section h2 { margin-bottom: .6em; }
.elc-intro { font-size: 1.1rem; }
/* Vague en haut des sections colorées */
.elc-vague { position: relative; margin-top: 40px; }
.elc-vague::before {
	content: ""; position: absolute; left: 0; right: 0; top: -39px; height: 40px; background: inherit;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 2 450 18s300 22 450 4 225-20 300-10V40z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 2 450 18s300 22 450 4 225-20 300-10V40z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
	max-width: none !important;
}
.elc-lien-fleche a { font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; gap: .4em; min-height: 44px; }
.elc-lien-fleche a::after { content: "→"; transition: transform .15s; }
.elc-lien-fleche a:hover { text-decoration: underline; }
.elc-lien-fleche a:hover::after { transform: translateX(4px); }

/* ---------- Piliers : trois cartes de couleurs différentes, en escalier ---------- */
.elc-piliers { display: grid; gap: 20px; }
.elc-pilier { border-radius: var(--elc-rayon); box-shadow: var(--elc-ombre); overflow: hidden; }
:is(.elc-pilier, .elc-pilier > .wp-block-group__inner-container) > :not(.elc-photo):not(.elc-img) { padding-inline: 28px; }
:is(.elc-pilier, .elc-pilier > .wp-block-group__inner-container) > h3 { padding-top: 28px; }
:is(.elc-pilier, .elc-pilier > .wp-block-group__inner-container) > :is(.elc-photo, .elc-img) + h3 { padding-top: 24px; }
:is(.elc-pilier, .elc-pilier > .wp-block-group__inner-container) > p:last-child { padding-bottom: 28px; margin-bottom: 0; }
.elc-pilier--blanc { background: var(--global-palette9); }
.elc-pilier--jaune { background: var(--global-palette7); }
.elc-pilier--sapin { background: var(--global-palette2); color: var(--global-palette9); }
.elc-pilier--sapin h3 { color: var(--global-palette9); }
@media (min-width: 900px) {
	.elc-piliers { grid-template-columns: 1.3fr 1fr 1fr; gap: 24px; align-items: start; }
	.elc-piliers .elc-pilier { margin-top: 0 !important; }
	.elc-piliers .elc-pilier--jaune { margin-top: 48px !important; }
	.elc-piliers .elc-pilier--sapin { margin-top: 96px !important; }
}

/* ---------- Une journée à l'école ---------- */
.elc-journee { display: grid; gap: 0; }
.elc-etape { position: relative; padding: 0 0 28px 36px; }
:is(.elc-etape, .elc-etape > .wp-block-group__inner-container) > * { margin-top: 0; }
.elc-etape::before { content: ""; position: absolute; left: 0; top: 6px; width: 18px; height: 18px; border-radius: 50%; background: var(--global-palette5); }
.elc-etape:nth-child(even)::before { background: var(--global-palette4); }
.elc-etape::after { content: ""; position: absolute; left: 8px; top: 28px; bottom: 0; width: 2px; background: var(--global-palette6); }
.elc-etape:last-child::after { display: none; }
.elc-etape h3 { font-size: 1.15rem; margin-bottom: .3em; }
.elc-etape p:last-child { margin: 0; }
.elc-heure { font-family: var(--elc-titre); font-weight: 700; color: var(--global-palette1); margin-bottom: 4px; }
@media (min-width: 1024px) {
	.elc-journee { grid-template-columns: repeat(6, 1fr); gap: 20px; }
	.elc-etape { padding: 36px 0 0; }
	.elc-etape::before { top: 0; }
	.elc-etape::after { left: 24px; right: -20px; top: 8px; bottom: auto; width: auto; height: 2px; }
}

/* ---------- Étapes numérotées (inscriptions) ---------- */
ol.elc-etapes { list-style: none; counter-reset: etape; padding: 0; margin: 0; display: grid; gap: 18px; }
ol.elc-etapes li { counter-increment: etape; position: relative; padding-left: 64px; min-height: 44px; }
ol.elc-etapes li::before {
	content: counter(etape); position: absolute; left: 0; top: 0; width: 44px; height: 44px;
	display: grid; place-items: center; border-radius: 50%;
	background: var(--global-palette1); color: var(--global-palette9); font: 700 1.2rem var(--elc-titre);
}
ol.elc-etapes strong { font-family: var(--elc-titre); color: var(--global-palette2); font-size: 1.1rem; }
.elc-etapes--page { margin: 0 0 40px !important; }
.elc-portes-ouvertes { padding: 12px 18px; background: var(--global-palette9); border-radius: 16px; display: inline-block; }

/* ---------- Tuiles (infos pratiques, pédagogie, partenaires) ---------- */
.elc-tuiles { display: grid; gap: 20px; margin-bottom: 1.5em; }
@media (min-width: 768px) { .elc-tuiles { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .elc-tuiles { grid-template-columns: repeat(4, 1fr); } .elc-tuiles--3 { grid-template-columns: repeat(3, 1fr); } }
.elc-tuile { background: var(--global-palette9); border-radius: var(--elc-rayon); box-shadow: var(--elc-ombre); padding: 28px; }
:is(.elc-tuile, .elc-tuile > .wp-block-group__inner-container) > * { margin-top: 0; }
.elc-tuile p:last-child { margin-bottom: 0; }
.elc-tuile h3 { font-size: 1.15rem; }
.elc-tuile[class*="elc-tuile--"]::before {
	content: ""; display: block; width: 52px; height: 52px; margin-bottom: 12px; border-radius: 50%;
	background: var(--global-palette6) var(--elc-icone) center / 28px no-repeat;
}
.elc-tuile--garderie::before, .elc-tuile--venir::before { background-color: var(--global-palette7) !important; }
.elc-tuile--horaires { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324502A' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }
.elc-tuile--garderie { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324502A' stroke-width='1.8' stroke-linejoin='round'%3E%3Cpath d='M3 11l9-7 9 7v9a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E"); }
.elc-tuile--repas { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324502A' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M4 12h16a8 8 0 0 1-16 0zM12 4c0 2 2 2 2 4M8 5c0 2 2 2 2 4'/%3E%3C/svg%3E"); }
.elc-tuile--venir { --elc-icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2324502A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='6' cy='16' r='3.5'/%3E%3Ccircle cx='18' cy='16' r='3.5'/%3E%3Cpath d='M6 16l4-7h5l3 7M9 6h3'/%3E%3C/svg%3E"); }
.elc-chiffre { font: 700 2rem/1.1 var(--elc-titre); color: var(--global-palette1); margin-bottom: 6px; }

/* ---------- Équipe ---------- */
.elc-equipe { gap: 32px 64px; }
.elc-equipe-liste { margin: 24px 0 1.5em; }
.elc-equipe-liste p {
	position: relative; margin: 0 !important; padding: 10px 0 10px 9.5em;
	border-top: 1px solid rgba(36, 80, 42, .18); max-width: none;
}
.elc-equipe-liste strong { position: absolute; left: 0; top: 10px; color: var(--global-palette2); }
@media (max-width: 480px) {
	.elc-equipe-liste p { padding-left: 0; }
	.elc-equipe-liste strong { position: static; display: block; }
}

/* ---------- Actualités et agenda ---------- */
.elc-actus { gap: 24px; }
.elc-actus__liste.wp-block-latest-posts { padding: 0; margin: 0 0 12px; gap: 20px; }
.elc-actus__liste li {
	background: var(--global-palette9); border-radius: var(--elc-rayon); box-shadow: var(--elc-ombre);
	padding: 24px; margin: 0 !important; width: auto !important;
}
.elc-actus__liste .wp-block-latest-posts__post-title { display: block; font: 700 1.2rem/1.25 var(--elc-titre); color: var(--global-palette2); text-decoration: none; }
.elc-actus__liste .wp-block-latest-posts__post-title:hover { text-decoration: underline; }
.elc-actus__liste .wp-block-latest-posts__post-date { color: var(--global-palette3); font-size: .85rem; margin: 6px 0 10px; }
.elc-actus__liste .wp-block-latest-posts__post-excerpt { font-size: .95rem; margin: 0; }
@media (min-width: 600px) { .elc-actus__liste.is-grid { display: grid; grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 1023px) { .elc-actus__liste.is-grid { grid-template-columns: 1fr; } }
.elc-agenda { background: var(--global-palette7); border-radius: var(--elc-rayon); padding: 24px 28px; }
.elc-agenda p { padding: 12px 0; margin: 0; border-top: 1px solid rgba(36, 80, 42, .18); }
.elc-agenda strong { color: var(--global-palette1); }

/* ---------- Rappel d'action ---------- */
.elc-cta { padding-top: 40px; }
.elc-cta__boite { background: var(--global-palette7); border-radius: 40px; padding: 48px 24px; }
:is(.elc-cta__boite, .elc-cta__boite > .wp-block-group__inner-container) > * { max-width: 640px; margin-left: auto !important; margin-right: auto !important; }

/* ---------- Pages intérieures ---------- */
.entry-content > h2 { margin-top: 1.8em; }
.elc-cycles { display: grid; gap: 16px; grid-template-columns: repeat(2, 1fr); margin-bottom: 1.5em; }
@media (min-width: 900px) { .elc-cycles { grid-template-columns: repeat(4, 1fr); } }
.elc-cycle { background: var(--global-palette6); border-radius: 20px; padding: 20px; }
:is(.elc-cycle, .elc-cycle > .wp-block-group__inner-container) > * { margin: 0; }
.elc-cycle h3 { font-size: 1.3rem; margin-bottom: 4px; }
.elc-split { gap: 32px 56px; }
ul.elc-puces { padding-left: 0; list-style: none; }
ul.elc-puces li { position: relative; padding-left: 28px; margin-bottom: .5em; }
ul.elc-puces li::before { content: ""; position: absolute; left: 0; top: .45em; width: 12px; height: 12px; border-radius: 50%; background: var(--global-palette4); }
.elc-encart { background: var(--global-palette9); border-radius: var(--elc-rayon); box-shadow: var(--elc-ombre); padding: 28px !important; margin: 32px 0; }
:is(.elc-encart, .elc-encart > .wp-block-group__inner-container) > * { max-width: none !important; }
:is(.elc-encart, .elc-encart > .wp-block-group__inner-container) > :first-child { margin-top: 0; }
:is(.elc-encart, .elc-encart > .wp-block-group__inner-container) > :last-child { margin-bottom: 0; }
.elc-encart--jaune { background: var(--global-palette7); box-shadow: none; }
.elc-encart--sapin { background: var(--global-palette2); color: var(--global-palette9); box-shadow: none; }
.elc-encart--sapin h3, .elc-encart--sapin a:not(.wp-block-button__link) { color: var(--global-palette9); }
.elc-encart--sapin .is-style-outline > .wp-block-button__link:not(:hover) { color: var(--global-palette9); border-color: var(--global-palette9); }
.elc-encart--sapin .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover { background: var(--global-palette9); color: var(--global-palette2); }

/* Bandeau de titre des pages : petite vague sous le titre */
.entry-hero.page-hero-section, .entry-hero.post-archive-hero-section { position: relative; margin-bottom: 40px; }
.entry-hero.page-hero-section::after, .entry-hero.post-archive-hero-section::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -39px; height: 40px; background: var(--global-palette6);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0v18C150 38 300 38 450 22S750 0 900 18s225 20 300 10V0z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 0v18C150 38 300 38 450 22S750 0 900 18s225 20 300 10V0z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
}

/* Actualités (liste des articles) : cartes arrondies */
.loop-entry.type-post { border-radius: var(--elc-rayon); box-shadow: var(--elc-ombre); overflow: hidden; }

/* ---------- Pied de page ---------- */
.site-footer .elc-footer-titre { font-size: 1.05rem; margin: 0 0 .8em; }
.site-footer .elc-petit { font-size: .88rem; }
.site-footer a { text-underline-offset: 3px; }
.site-footer .widget_block p a { display: inline-block; min-height: 32px; line-height: 32px; }
.elc-social { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-top: 8px; }
.elc-social svg { background: #fff; border-radius: 50%; transition: transform .15s; }
.elc-social:hover svg { transform: scale(1.08); }

/* ---------- Barre d'action mobile (téléphone et inscription toujours accessibles) ---------- */
.elc-mobilebar {
	position: fixed; left: 0; right: 0; bottom: 0; z-index: 1000;
	display: flex; gap: 10px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	background: var(--global-palette8); border-top: 1px solid var(--global-palette6);
	box-shadow: 0 -6px 18px rgba(0, 0, 0, .06);
}
.elc-mobilebar .button { flex: 1; border-radius: 999px; }
.elc-mobilebar__tel {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	min-height: 48px; padding: 0 18px; font-weight: 700; text-decoration: none; border-radius: 999px;
	color: var(--global-palette2); border: 2px solid var(--global-palette2);
}
body { padding-bottom: 72px; }
@media (min-width: 768px) { .elc-mobilebar { display: none; } body { padding-bottom: 0; } }

/* ---------- Apparition douce au défilement (désactivée si l'appareil demande moins d'animations) ---------- */
.elc-anim [data-elc-reveal] { transition: opacity .6s cubic-bezier(.2, .8, .2, 1), transform .6s cubic-bezier(.2, .8, .2, 1); }
.elc-anim [data-elc-reveal]:not(.is-in) { opacity: 0; transform: translateY(18px); }
@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link, .header-button { transition: none; }
	.wp-block-button__link:hover, .header-button:hover { transform: none; }
}

/* ---------- Accessibilité ---------- */
:focus-visible { outline: 3px solid var(--global-palette1); outline-offset: 3px; }

/* En-tête : tout sur une ligne (menu, téléphone, bouton) */
.site-header .header-navigation ul.menu { flex-wrap: nowrap; }
.site-header .header-navigation .menu > li > a { white-space: nowrap; }
.site-header .header-button { white-space: nowrap; }
.site-header .site-branding .site-title { white-space: nowrap; }

/* Kadence enveloppe le contenu des groupes dans un conteneur intermédiaire :
   on le rend transparent pour que grilles et cartes s'appliquent directement aux blocs. */
[class*="elc-"] > .wp-block-group__inner-container { display: contents; }

/* Marges latérales des sections pleine largeur (Kadence les remet à zéro par défaut) */
.entry-content .elc-section.alignfull, .entry-content .elc-hero.alignfull {
	padding-left: var(--elc-gouttiere) !important; padding-right: var(--elc-gouttiere) !important;
}

/* Liens légaux du pied de page : plus serrés */
.site-footer .footer-navigation .menu > li > a { padding-left: .6em; padding-right: .6em; font-size: .95rem; }

/* ---------- Photos (bloc Image avec une classe elc-img--…) ---------- */
.elc-img { margin: 0; }
.elc-img img { display: block; width: 100%; height: auto; object-fit: cover; aspect-ratio: 4 / 3; border-radius: var(--elc-rayon); }
.elc-img--hero img { border-radius: 48px 48px 48px 12px; }
.elc-img--pilier img { aspect-ratio: 16 / 9; border-radius: var(--elc-rayon) var(--elc-rayon) 0 0; }
.elc-img--equipe img { aspect-ratio: 5 / 4; border-radius: 48px 48px 12px 48px; }
.elc-img--large { margin: 0 0 32px; }
.elc-img--large img { aspect-ratio: 16 / 9; }
.elc-img--colonne img { border-radius: 48px 12px 48px 48px; }
.elc-img--contact { margin-top: 48px; }

/* Portraits de l'équipe : grille de 6, légende sous chaque photo */
.elc-portraits { display: grid; gap: 20px; grid-template-columns: repeat(2, 1fr); margin: 8px 0 32px; }
@media (min-width: 768px) { .elc-portraits { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .elc-portraits { grid-template-columns: repeat(6, 1fr); } }
.elc-portrait { margin: 0; }
.elc-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 20px; }
.elc-portrait figcaption { margin-top: 8px; font-size: .9rem; text-align: center; }

/* Actualités de l'accueil : image en haut de chaque carte */
.elc-actus__liste .wp-block-latest-posts__featured-image { margin: -24px -24px 16px; }
.elc-actus__liste .wp-block-latest-posts__featured-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.elc-actus__liste.is-layout-grid, .elc-actus__liste.is-grid { display: grid; grid-template-columns: 1fr; }
@media (min-width: 1024px) { .elc-actus__liste.is-layout-grid, .elc-actus__liste.is-grid { grid-template-columns: repeat(3, 1fr); } }
.elc-actus__liste li { overflow: hidden; }

/* Titre principal de l'accueil : nom de l'école et lieu en petit, au-dessus de la phrase d'accroche */
.elc-h1-sur {
	display: block; margin-bottom: 1em;
	font-family: Figtree, system-ui, sans-serif; font-size: .85rem; font-weight: 700; line-height: 1.4;
	letter-spacing: .06em; text-transform: uppercase; color: var(--global-palette2);
}

/* Ouverture sur téléphone : titre, puis photo, puis texte et boutons (l'ordinateur ne change pas).
   On « dissout » les deux colonnes pour intercaler la photo entre le titre et le paragraphe.
   782 px = largeur sous laquelle WordPress empile les colonnes. */
@media (max-width: 781px) {
	.elc-hero__grid { display: flex; flex-direction: column; gap: 0; }
	.elc-hero__grid > .wp-block-column { display: contents; }
	.elc-hero__grid .elc-hero__title { order: 1; }
	.elc-hero__grid .elc-img--hero { order: 2; margin: 4px 0 0 !important; width: 100%; }
	.elc-hero__grid .elc-legende { order: 3; margin: 10px 0 24px !important; }
	.elc-hero__grid .elc-lead { order: 4; }
	.elc-hero__grid .elc-signature { order: 5; }
	.elc-hero__grid .wp-block-buttons { order: 6; }
	.elc-hero__media::before { display: none; } /* pastille jaune décorative : sans repère sur mobile */
}

/* Petites photos dans les cartes piliers : en retrait des bords (en haut pour la jaune, en bas pour la verte) */
.elc-img--carte { margin: 0 !important; }
.elc-img--carte img { aspect-ratio: 3 / 2; border-radius: 20px; }
.elc-pilier .elc-img--carte-haut { margin: 16px 16px 0 !important; }
.elc-pilier .elc-img--carte-bas { margin: 4px 16px 16px !important; }

/* Grilles de cartes : Kadence met une marge de 32 px sous chaque bloc sauf le dernier,
   ce qui rendait la dernière carte plus haute que les autres. On la retire dans les grilles. */
:is(.elc-tuiles, .elc-cycles, .elc-piliers, .elc-journee, .elc-portraits) > *,
:is(.elc-tuiles, .elc-cycles, .elc-piliers, .elc-journee, .elc-portraits) > .wp-block-group__inner-container > * {
	margin-bottom: 0 !important;
}

/* ==========================================================================
   Ouverture de l'accueil : photo pleine largeur (retenue par la direction le 20/10/2026).
   La photo se change dans l'éditeur (bloc Image « elc-hero-plein__photo »).
   ========================================================================== */
.entry-content .elc-hero-plein.alignfull {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; align-items: flex-end; min-height: min(82vh, 780px);
	padding: 120px var(--elc-gouttiere) 96px !important; margin-top: 0; color: #fff;
}
.elc-hero-plein__photo { position: absolute; inset: 0; z-index: -2; margin: 0 !important; max-width: none !important; }
.elc-hero-plein__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 55%; }
.elc-hero-plein::before { /* voile vert sapin pour la lisibilité du texte */
	content: ""; position: absolute; inset: 0; z-index: -1;
	background: linear-gradient(90deg, rgba(20,40,24,.82) 0%, rgba(20,40,24,.55) 42%, rgba(20,40,24,.08) 75%),
	            linear-gradient(0deg, rgba(20,40,24,.55) 0%, transparent 45%);
}
.elc-hero-plein::after { /* vague crème en bas de la photo */
	content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 48px; background: var(--global-palette8);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 2 450 18s300 22 450 4 225-20 300-10V40z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
	        mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 40' preserveAspectRatio='none'%3E%3Cpath d='M0 40V22C150 2 300 2 450 18s300 22 450 4 225-20 300-10V40z' /%3E%3C/svg%3E") center / 100% 100% no-repeat;
}
.elc-hero-plein__contenu { width: 100%; max-width: var(--elc-wrap); margin: 0 auto !important; }
.elc-hero-plein__contenu > *, .elc-hero-plein__contenu > .wp-block-group__inner-container > * { max-width: 640px; }
.elc-hero-plein .elc-hero__title { color: #fff; text-shadow: 0 2px 24px rgba(0,0,0,.25); }
.elc-hero-plein .elc-h1-sur { color: var(--global-palette7); }
.elc-hero-plein .elc-surligne { background: linear-gradient(transparent 84%, var(--global-palette5) 84%, var(--global-palette5) 96%, transparent 96%); }
.elc-hero-plein .elc-lead { color: rgba(255,255,255,.94); }
.elc-hero-plein .is-style-outline > .wp-block-button__link,
.elc-hero-plein .is-style-outline > .wp-block-button__link:not(:hover) { color: #fff; border-color: #fff; }
.elc-hero-plein .is-style-outline > .wp-block-button__link:hover { background: #fff; color: var(--global-palette2); }
/* Bandeau de coordonnées sous la photo : largeur du contenu, centré entre la vague de la photo
   et celle de la section suivante (la vague du bas empiète d'environ 40 px, d'où plus d'espace en bas). */
.entry-content .elc-hero-plein-infos.alignfull { margin-top: 0 !important; margin-bottom: 0 !important; padding: 8px var(--elc-gouttiere) 84px !important; }
:is(.elc-hero-plein-infos, .elc-hero-plein-infos > .wp-block-group__inner-container) > * { max-width: var(--elc-wrap); margin-left: auto !important; margin-right: auto !important; }
.elc-hero-plein-infos .elc-infobar { margin-top: 0 !important; }
@media (max-width: 781px) {
	.entry-content .elc-hero-plein.alignfull { min-height: 88vh; padding-top: 96px !important; padding-bottom: 72px !important; }
	.elc-hero-plein::before { background: linear-gradient(0deg, rgba(20,40,24,.9) 0%, rgba(20,40,24,.6) 50%, rgba(20,40,24,.2) 100%); }
	.elc-hero-plein__photo img { object-position: 65% 50%; }
}

/* Boutons à contour déjà visités : Kadence leur donne la couleur des boutons pleins (corail)
   via --global-palette-btn-out quand elle n'est pas définie. On la fixe : vert sapin,
   et blanc sur fond foncé (photo de la variante, encadré vert). */
:root { --global-palette-btn-out: var(--global-palette2); }
.elc-hero-plein, .elc-encart--sapin { --global-palette-btn-out: #fff; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(:hover):visited { color: var(--global-palette-btn-out); background: transparent; }

/* Actualités de l'accueil : le lien autour de la photo était en ligne (espace de 19 px au-dessus) */
.elc-actus__liste .wp-block-latest-posts__featured-image a { display: block; line-height: 0; }

/* Légendes d'images : Kadence les colore avec la couleur 5 de la palette (jaune, illisible).
   On les passe en encre ; dans les portraits, nom en gras et rôle à la ligne. */
.wp-element-caption, figcaption, .wp-block-image figcaption, .wp-block-embed figcaption, .wp-block-table figcaption, .blocks-gallery-caption figcaption { color: var(--global-palette3); }
.elc-portrait figcaption { line-height: 1.35; }
.elc-portrait figcaption strong { display: inline-block; color: var(--global-palette2); font-family: var(--elc-titre); font-size: 1rem; }

/* Accueil, bloc Inscriptions sur mobile : les trois étapes juste après le paragraphe d'intro,
   avant l'encadré fancy-fair et le bouton (demande du 20/10/2026). */
@media (max-width: 781px) {
	.elc-section--jaune .wp-block-columns:has(.elc-etapes) { display: flex; flex-direction: column; gap: 0; }
	.elc-section--jaune .wp-block-columns:has(.elc-etapes) > .wp-block-column { display: contents; }
	.elc-section--jaune .wp-block-columns:has(.elc-etapes) .elc-etapes { order: 1; margin: 8px 0 28px !important; }
	.elc-section--jaune .wp-block-columns:has(.elc-etapes) .elc-portes-ouvertes,
	.elc-section--jaune .wp-block-columns:has(.elc-etapes) .wp-block-buttons { order: 2; }
}

/* Signature Puramis dans la barre du bas : « Fait avec le (cœur) par Puramis », discrète (22/10/2026). */
.elc-credit { white-space: nowrap; }
.elc-coeur { display: inline-block; width: 1.05em; height: 1em; margin: 0 .15em; vertical-align: -.12em; background: url("assets/coeur-puramis.png") center / contain no-repeat; }
.elc-credit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
