/*
Theme Name: Thau-Themes
Theme URI: https://thau-themes.fr
Author: Association Thau-Themes
Description: Thème bloc sur mesure de l'association Thau-Themes : bourse aux bénévoles, journal, adhésion HelloAsso. Couleurs et polices réglables dans Apparence → Éditeur → Styles ; en-tête, pied de page et fenêtre d'arrivée dans Apparence → Éditeur → Compositions.
Version: 1.6.0
Requires at least: 6.8
Tested up to: 7.0
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thau-themes
Tags: block-theme, full-site-editing
*/

/* ==========================================================================
   1 · Jetons — alias des couleurs de theme.json (Styles → Couleurs → Palette).
   Aucune couleur en dur ailleurs ; les polices viennent du pont de functions.php.
   ========================================================================== */
:root {
	--fond: var(--wp--preset--color--fond);
	--surface: var(--wp--preset--color--surface);
	--texte: var(--wp--preset--color--texte);
	--sourdine: var(--wp--preset--color--sourdine);
	--trait: var(--wp--preset--color--trait);
	--accent: var(--wp--preset--color--accent);
	--accent-vif: var(--wp--preset--color--accent-vif);
	--sur-accent: var(--wp--preset--color--sur-accent);
	--nuit: var(--wp--preset--color--sombre);
	--nuit-2: var(--wp--preset--color--sombre-2);
	--sur-nuit: var(--wp--preset--color--sur-sombre);
	--sourdine-clair: var(--wp--preset--color--sur-sombre-2);
	--alerte: var(--wp--preset--color--alerte);
	--voile: color-mix(in srgb, var(--nuit) 55%, transparent);
	--facebook: #3b5998; /* couleur de marque Facebook, fixe : elle ne suit pas la palette */

	--rayon: var(--wp--custom--rayon, 8px);
	--rayon-bouton: var(--wp--custom--rayon-bouton, 4px);
	--coupe: 64px;
	--gouttiere: clamp(16px, 4vw, 48px);
	--largeur: 1280px;

	--pinceau: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 120' preserveAspectRatio='none'%3E%3Cpath d='M8 38c40-14 120-22 210-24 96-2 190 0 290 6 40 2 70 6 86 12 6 3 4 9-3 11 4 6 2 14-6 16 6 8 2 18-8 22 8 10-2 20-16 22-60 8-150 12-250 12-104 0-200-4-262-12-14-2-22-10-14-18-8-6-8-16 2-22-8-8-4-18 8-21-10-6-2-15 12-17-6-2-8-9-1-11-4-2-2-6 6-8Z'/%3E%3Cpath d='M30 104c80 6 190 9 300 7 70-1 140-4 200-10-70 10-170 16-280 16-90 0-170-4-220-13Z'/%3E%3C/svg%3E");
	--i-lieu: 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 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E");
	--i-facebook: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8h3V4h-3c-2.8 0-4.5 1.8-4.5 4.6V11H7v4h2.5v9h4v-9h3l.5-4h-3.5V8.8c0-.5.3-.8.5-.8Z'/%3E%3C/svg%3E");
}

/* ==========================================================================
   2 · Base
   ========================================================================== */
html { scroll-behavior: smooth; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; height: auto; }
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image, .wp-block-post-featured-image { margin: 0; }
p { margin: 0; }
h1, h2, h3 { margin: 0; }
h2.wp-block-heading { font-size: clamp(48px, 7vw, 104px); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.conteneur { max-width: var(--largeur); margin-inline: auto; padding-inline: var(--gouttiere); box-sizing: border-box; width: 100%; }
.conteneur--moyen { max-width: 960px; }
.conteneur--etroit { max-width: 860px; }

.surtitre {
	font: 700 15px/1 var(--police-texte);
	text-transform: uppercase; letter-spacing: .04em;
	padding-bottom: 14px; margin-bottom: 28px !important;
	border-bottom: 1px solid currentColor; max-width: 360px;
}
.surtitre--espace { margin-top: 48px !important; }
.manuscrit {
	font: 700 clamp(26px, 2.6vw, 36px)/1 var(--police-manuscrite);
	color: var(--accent); margin-bottom: 10px !important;
}
.manuscrit--clair { color: var(--accent-vif); }
.serif, .serif a { font-family: var(--police-serif); font-weight: 600; text-transform: none; letter-spacing: -.01em; }

/* Boutons : couleur d'accent par défaut (theme.json), variantes par classe */
.wp-block-button__link { transition: transform .15s ease; text-decoration: none; }
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.b-noir > .wp-block-button__link { background: var(--nuit); color: var(--sur-nuit); }
.wp-block-button.b-blanc > .wp-block-button__link { background: var(--fond); color: var(--texte); }
.wp-block-button.b-accent > .wp-block-button__link { background: var(--accent); color: var(--sur-accent); }
.wp-block-button.b-grand > .wp-block-button__link { padding: 18px 30px; font-size: 18px; }
.wp-block-button.b-large, .wp-block-button.b-large > .wp-block-button__link { width: 100%; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }

/* Partager sur Facebook : le « f » du logo en masque, blanc sur le bleu Facebook */
.wp-block-button.b-facebook > .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	background: var(--facebook); color: var(--sur-accent);
}
.wp-block-button.b-facebook > .wp-block-button__link::before {
	content: ""; flex: none; width: 20px; height: 20px; background: currentColor;
	-webkit-mask: var(--i-facebook) center / contain no-repeat; mask: var(--i-facebook) center / contain no-repeat;
}
.wp-block-button.b-facebook--compact > .wp-block-button__link { padding: 13px 16px; }
.aide__boutons { flex-direction: column; }
.texte-courant .source-facebook { font-size: 15px; color: var(--sourdine); padding-top: 14px; border-top: 1px solid var(--trait); }
.partage { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; padding: 28px 0; border-top: 1px solid var(--trait); border-bottom: 1px solid var(--trait); }
.partage__texte { font: 700 18px/1.3 var(--police-texte); }

.lien-fleche { margin-top: 40px !important; }
.lien-fleche a {
	display: inline-flex; align-items: center; gap: 14px;
	font: 700 16px/1 var(--police-texte); text-transform: uppercase; letter-spacing: .03em;
	text-decoration: underline; text-underline-offset: 6px;
}
.lien-fleche a::before { content: "→"; font-size: 22px; display: inline-block; text-decoration: none; }
.lien-fleche--clair a { color: var(--sur-nuit); }

/* Étiquettes de termes (domaine, catégorie) et pastilles (besoins) */
.annonce__domaine a, .meta__etiquette a {
	display: inline-block; padding: 5px 10px 4px; margin: 0 4px 4px 0;
	background: var(--nuit); color: var(--sur-nuit); border-radius: 4px; text-decoration: none;
	font: 700 12px/1 var(--police-texte); text-transform: uppercase; letter-spacing: .05em;
}
.annonce__domaine--clair a { background: var(--accent); color: var(--sur-accent); }
.annonce__domaine .wp-block-post-terms__separator, .besoins .wp-block-post-terms__separator, .meta__etiquette .wp-block-post-terms__separator { display: none; }
.besoins { display: flex; flex-wrap: wrap; gap: 8px; }
.besoins a {
	padding: 6px 12px; border-radius: 40px; background: var(--surface); color: var(--texte);
	font: 600 15px/1.3 var(--police-texte); text-decoration: none;
}
.besoins--grand a { font-size: 17px; padding: 9px 16px; }

.coin-coupe img, .coin-coupe.wp-block-post-featured-image img {
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--coupe)), calc(100% - var(--coupe)) 100%, 0 100%);
}
.coin-coupe--gauche img { clip-path: polygon(var(--coupe) 0, 100% 0, 100% 100%, 0 100%, 0 var(--coupe)); }

/* ==========================================================================
   3 · En-tête et menu
   ========================================================================== */
.entete { background: var(--nuit); color: var(--sur-nuit); position: sticky; top: 0; z-index: 40; }
.admin-bar .entete { top: 32px; }
.entete__in { max-width: 1440px; margin: 0 auto; padding: 14px var(--gouttiere); display: flex; align-items: center; gap: 32px; box-sizing: border-box; }
.logo { display: flex; align-items: center; gap: 12px; flex: none; }
.logo__image img { width: 30px; height: auto; }
.logo__textes { display: flex; flex-direction: column; }
.logo__nom { font: 800 30px/.85 var(--police-titres); text-transform: uppercase; letter-spacing: .01em; }
.logo__nom a { color: var(--sur-nuit); text-decoration: none; }
.logo__sous { font: 700 18px/1 var(--police-manuscrite); color: var(--accent-vif); margin-top: 4px !important; }

.wp-block-navigation.menu { margin-left: auto; }
.menu .wp-block-navigation__container { gap: 30px; }
.menu .wp-block-navigation-item__content {
	font: 700 15px/1 var(--police-texte); text-transform: uppercase; letter-spacing: .03em;
	text-decoration: none; padding: 8px 0 !important; border-bottom: 2px solid transparent;
}
.menu .wp-block-navigation-item__content:hover, .menu .current-menu-item > .wp-block-navigation-item__content { border-color: var(--accent-vif); }
.wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.is-menu-open) .menu-mobile-seul { display: none; }
.entete__adherer > .wp-block-button__link { padding: 12px 20px; }

/* Panneau mobile — le CSS du bloc est imprimé après cette feuille : sélecteurs qualifiés */
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open {
	width: 48px; height: 48px; align-items: center; justify-content: center;
	background: var(--fond); color: var(--texte); border-radius: 50%;
}
.wp-block-navigation.menu .wp-block-navigation__responsive-container-open svg { width: 26px; height: 26px; }
.wp-block-navigation.menu .wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--nuit) !important; color: var(--sur-nuit) !important;
	padding: 16px var(--gouttiere) 40px !important;
}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close {
	top: 0; right: 0; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center;
	background: var(--fond); color: var(--texte); border-radius: 50%;
}
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-close svg { width: 28px; height: 28px; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 72px !important; align-items: stretch !important; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation__container { gap: 0 !important; width: 100%; align-items: stretch !important; }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--nuit-2); }
.wp-block-navigation.menu .is-menu-open .wp-block-navigation-item__content {
	display: block; width: 100%; padding: 12px 0 !important; border: 0;
	font: 800 38px/1.1 var(--police-titres); text-transform: uppercase; letter-spacing: 0;
}
.wp-block-navigation.menu .is-menu-open .menu-mobile-seul .wp-block-navigation-item__content { color: var(--accent-vif); }

/* ==========================================================================
   4 · Héros, portes
   ========================================================================== */
.heros { background: var(--nuit); color: var(--sur-nuit); padding: 56px 0 170px; overflow: hidden; }
.heros__in { max-width: 1440px; margin: 0 auto; padding: 0 var(--gouttiere); box-sizing: border-box; display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; }
.heros__titre { font-size: clamp(56px, 7.6vw, 118px); }
.heros__titre em, .page-tete__titre em {
	font-style: normal; position: relative; display: inline-block; z-index: 0; padding: 0 .12em; white-space: nowrap;
}
.heros__titre em::before, .page-tete__titre em::before {
	content: ""; position: absolute; z-index: -1; left: -.06em; right: -.1em; top: .02em; bottom: -.1em;
	background: var(--accent-vif);
	-webkit-mask: var(--pinceau) center / 100% 100% no-repeat; mask: var(--pinceau) center / 100% 100% no-repeat;
}
.heros__chapo { max-width: 560px; margin-top: 34px !important; font-size: 20px; color: var(--sourdine-clair); }
.heros__photo img { width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; border-radius: var(--rayon); clip-path: polygon(22% 0, 100% 0, 100% 100%, 0 100%, 0 16%); }

.portes {
	max-width: var(--largeur); margin: -120px auto 0; padding: 0 var(--gouttiere); box-sizing: border-box;
	display: grid; grid-template-columns: 1fr 1fr; gap: 24px; position: relative; z-index: 2;
}
.porte {
	position: relative; display: flex; flex-direction: column; gap: 14px;
	padding: 40px 44px 44px; border-radius: var(--rayon); min-height: 300px; box-sizing: border-box;
	transition: transform .2s ease;
}
.porte:hover { transform: translateY(-4px); }
.porte--aider { background: var(--accent); color: var(--sur-accent); clip-path: polygon(0 0, 100% 0, 100% calc(100% - 56px), calc(100% - 56px) 100%, 0 100%); }
.porte--projet { background: var(--fond); color: var(--texte); box-shadow: inset 0 0 0 3px var(--nuit); }
.porte__qui { font: 700 14px/1 var(--police-texte); text-transform: uppercase; letter-spacing: .06em; opacity: .85; }
.porte__titre { font: 800 clamp(48px, 5.4vw, 76px)/.9 var(--police-titres); text-transform: uppercase; }
.porte__titre a { color: inherit; text-decoration: none; }
.porte__titre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.porte__texte { max-width: 440px; font-size: 18px; }
.porte__action { margin-top: auto !important; font: 700 17px/1 var(--police-texte); text-decoration: underline; text-underline-offset: 6px; }

/* ==========================================================================
   5 · Annonces
   ========================================================================== */
.annonces { padding: 130px 0 120px; }
.annonces--fond { background: var(--surface); padding: 110px 0; }
.annonces--liste { padding: 72px 0 120px; }
.tete-section { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 56px !important; }
.tete-section__note { max-width: 320px; color: var(--sourdine); font-size: 17px; }
.grille-annonces { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.grille-annonces > li { margin: 0; display: flex; }
.carte-annonce {
	display: flex; flex-direction: column; gap: 18px; width: 100%; box-sizing: border-box; background: var(--fond);
	padding: 30px 28px 28px; border: 1px solid var(--trait); border-top: 6px solid var(--nuit); border-radius: var(--rayon);
}
.annonce__titre { font: 800 32px/.95 var(--police-titres); text-transform: uppercase; }
.annonce__titre a { color: inherit; text-decoration: none; }
.annonce__titre a:hover { text-decoration: underline; }
.annonce__lieu { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; color: var(--sourdine); font-size: 17px; }
.annonce__lieu::before { content: ""; width: 18px; height: 18px; background: var(--accent); -webkit-mask: var(--i-lieu) center / contain no-repeat; mask: var(--i-lieu) center / contain no-repeat; }
.annonce__periode:not(:empty)::before { content: "· "; }
.annonce__lieu--clair { color: var(--sourdine-clair); font-size: 20px; margin-top: 24px !important; }
.annonce__lieu--clair::before { background: var(--accent-vif); width: 22px; height: 22px; }
.annonce__actions { margin-top: auto !important; }
.annonces-vides { padding: 40px; border: 2px dashed var(--trait); border-radius: var(--rayon); display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.annonces-vides__titre { font: 800 34px/1 var(--police-titres); text-transform: uppercase; }
.filtres { list-style: none; margin: 0 0 40px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.filtres li { margin: 0; }
.filtres a { display: inline-block; padding: 9px 16px; border: 1px solid var(--texte); border-radius: 40px; text-decoration: none; font: 600 15px/1 var(--police-texte); color: var(--texte); }
.filtres a:hover, .filtres .current-cat a { background: var(--nuit); color: var(--sur-nuit); }
.pagination { margin-top: 48px; gap: 16px; font-weight: 700; }
.pagination a, .pagination .current { text-decoration: none; padding: 6px 10px; }
.pagination .current { background: var(--nuit); color: var(--sur-nuit); border-radius: 4px; }

/* ==========================================================================
   6 · Comment ça marche, étapes
   ========================================================================== */
.marche { padding: 40px 0 140px; }
.marche__titre { margin-bottom: 72px !important; }
.marche__colonnes { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; }
.parcours { display: grid; grid-template-columns: minmax(200px, .8fr) 1fr; gap: 32px; align-items: start; }
.parcours--decale { margin-top: 120px; }
.parcours__photo { --coupe: 40px; }
.parcours__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--rayon); }
.parcours__titre { font-size: 40px; margin-bottom: 28px !important; }
.etapes { display: grid; gap: 22px; margin-bottom: 32px !important; }
.etape { display: grid; grid-template-columns: 64px 1fr; gap: 14px; align-items: start; }
.etape__n { font: 800 72px/.75 var(--police-titres); color: var(--accent-vif); }
.etape__texte strong { display: block; font-size: 19px; }
.etape__texte p + p { color: var(--sourdine); font-size: 17px; }
.etapes--compact .etape { grid-template-columns: 48px 1fr; }
.etapes--compact .etape__n { font-size: 54px; }

/* ==========================================================================
   7 · Journal
   ========================================================================== */
.journal { background: var(--surface); padding: 110px 0 120px; }
.journal--liste { padding: 72px 0 120px; }
.tete-section--journal h2 { font-size: clamp(64px, 9vw, 136px); }
.journal__grille { display: grid; grid-template-columns: 1.55fr 1fr; gap: 40px; }
.une-liste, .breves, .grille-actus { list-style: none; margin: 0; padding: 0; }
.une-liste > li, .breves > li, .grille-actus > li { margin: 0; }
.une__photo { --coupe: 80px; }
.une__photo img { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--coupe)), calc(100% - var(--coupe)) 100%, 0 100%); }
.une__photo img, .actu__photo img { border-radius: var(--rayon); }
.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 22px 0 12px !important; }
.meta .meta__etiquette a { margin: 0; }
.meta__date { font: 700 14px/1 var(--police-texte); color: var(--accent); }
.meta--clair .meta__date { color: var(--accent-vif); }
.meta--clair .meta__etiquette a { background: var(--accent); color: var(--sur-accent); }
.une__titre { font-size: clamp(30px, 3vw, 42px); line-height: 1.12; margin-bottom: 12px !important; }
.une__titre a, .breve__titre a, .actu__titre a { color: inherit; text-decoration: none; }
.une__titre a:hover, .breve__titre a:hover, .actu__titre a:hover { text-decoration: underline; }
.une__extrait, .actu__extrait { color: var(--sourdine); }
.journal__colonne { display: flex; flex-direction: column; gap: 28px; }
.breves { display: flex; flex-direction: column; gap: 28px; }
.breve { display: grid; grid-template-columns: 150px 1fr; gap: 20px; align-items: start; padding-bottom: 28px; border-bottom: 1px solid var(--trait); }
.breve__photo img { border-radius: var(--rayon); }
.breve .meta { margin-top: 0 !important; }
.breve__titre { font-size: 24px; line-height: 1.15; }
.grille-actus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 48px 32px; }
.actu__titre { font-size: 28px; line-height: 1.15; margin-bottom: 10px !important; }
.journal--liste .facebook { margin-top: 72px; max-width: 520px; }
.facebook { background: var(--nuit); color: var(--sur-nuit); border-radius: var(--rayon); padding: 30px; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.facebook::before { content: ""; width: 34px; height: 34px; background: var(--accent-vif); -webkit-mask: var(--i-facebook) center / contain no-repeat; mask: var(--i-facebook) center / contain no-repeat; }
.facebook__titre { font: 800 34px/.95 var(--police-titres); text-transform: uppercase; }
.facebook p:not(.facebook__titre) { color: var(--sourdine-clair); font-size: 17px; }
.facebook .wp-block-buttons { margin-top: 8px !important; }

/* ==========================================================================
   8 · L'association, adhésion
   ========================================================================== */
.asso { padding: 160px 0 120px; }
.asso--page { padding: 40px 0 120px; }
.asso__bloc {
	background: var(--nuit); color: var(--sur-nuit); border-radius: var(--rayon);
	padding: 72px clamp(28px, 6vw, 88px) 56px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 56px;
}
.asso__bloc h2 { font-size: clamp(48px, 6vw, 92px); margin-bottom: 28px !important; }
.asso__chapo { color: var(--sourdine-clair); max-width: 560px; }
.asso__photo { margin-top: -140px !important; --coupe: 72px; }
.asso__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--rayon); }
.valeurs { grid-column: 1 / -1; list-style: none; margin: 8px 0 0; padding: 40px 0 0; border-top: 1px solid var(--nuit-2); display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; color: var(--sourdine-clair); font-size: 16px; }
.valeurs li { margin: 0; }
.valeurs strong { display: block; font: 800 26px/1 var(--police-titres); text-transform: uppercase; color: var(--accent-vif); margin-bottom: 10px; }
.asso__bloc--simple { grid-template-columns: 1fr; }
.asso__bloc--simple .valeurs { border-top: 0; padding-top: 0; }
.bureau { grid-column: 1 / -1; font-size: 16px; color: var(--sourdine-clair); }
.bureau strong { text-transform: uppercase; letter-spacing: .05em; color: var(--sur-nuit); margin-right: 12px; }

.adherer { padding: 40px 0 150px; }
.adherer__in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: center; }
.adherer__prix { display: flex; flex-direction: column; }
.adherer__montant { font: 800 clamp(160px, 22vw, 320px)/.8 var(--police-titres); letter-spacing: -.02em; }
.adherer__montant sup { font-size: .4em; vertical-align: top; position: relative; top: .12em; color: var(--accent-vif); }
.adherer__par { font: 800 34px/1 var(--police-titres); text-transform: uppercase; margin: 10px 0 14px !important; }
.adherer__texte h2 { font-size: clamp(44px, 5vw, 76px); margin-bottom: 24px !important; }
.adherer__chapo { color: var(--sourdine); max-width: 560px; }
.adherer__boutons { margin-top: 34px !important; }
.adherer__note { margin-top: 14px !important; font-size: 15px; color: var(--sourdine); }

/* ==========================================================================
   9 · Pied de page
   ========================================================================== */
.pied { background: var(--nuit); color: var(--sur-nuit); padding: 88px 0 40px; }
.pied a { color: inherit; }
.pied__in { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
.pied__logo img { width: 44px; height: auto; margin-bottom: 18px; }
.pied__nom { font: 800 clamp(52px, 6vw, 92px)/.85 var(--police-titres); text-transform: uppercase; margin-bottom: 14px !important; white-space: nowrap; }
.pied__nom a { text-decoration: none; }
.pied .manuscrit { color: var(--accent-vif); }
.pied__col { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.pied__titre { font: 700 14px/1 var(--police-texte); text-transform: uppercase; letter-spacing: .06em; color: var(--sourdine-clair); margin-bottom: 6px !important; }
.pied__col a { text-decoration: none; font-weight: 600; }
.pied__col a:hover { text-decoration: underline; }
.pied__col .wp-block-buttons { margin-top: 10px !important; }
.pied__bas { display: flex; flex-wrap: wrap; gap: 12px 40px; margin-top: 72px !important; padding-top: 24px; border-top: 1px solid var(--nuit-2); font: 700 14px/1.4 var(--police-texte); text-transform: uppercase; letter-spacing: .04em; }
.pied__bas a { text-decoration: none; }
.pied__copyright { margin-right: auto !important; color: var(--sourdine-clair); }

/* Fenêtre d'arrivée — présente dans la page, révélée par app.js (classe est-ouverte) */
.choix { position: fixed; inset: 0; z-index: 80; background: var(--voile); display: none; place-items: center; padding: 16px; }
.choix.est-ouverte { display: grid; }
.choix__boite {
	position: relative; width: min(760px, 100%); max-height: calc(100vh - 32px); overflow: auto; box-sizing: border-box;
	background: var(--fond); color: var(--texte); border-radius: var(--rayon); padding: 48px clamp(22px, 5vw, 56px) 36px;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 48px), calc(100% - 48px) 100%, 0 100%);
}
.choix__titre-principal { font-size: clamp(44px, 6vw, 72px) !important; margin-bottom: 28px !important; }
.choix__fermer { position: absolute; top: 14px; right: 14px; }
.choix__fermer a { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--nuit); color: var(--sur-nuit); font-size: 28px; line-height: 1; text-decoration: none; }
.choix__options { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.choix__option { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 26px 24px 56px; border-radius: var(--rayon); font-size: 17px; }
.choix__option::after { content: "→"; position: absolute; right: 22px; bottom: 16px; font-size: 30px; }
.choix__option--aider { background: var(--accent); color: var(--sur-accent); }
.choix__option--projet { background: var(--nuit); color: var(--sur-nuit); }
.choix__titre { font: 800 34px/.95 var(--police-titres); text-transform: uppercase; }
.choix__titre a { color: inherit; text-decoration: none; }
.choix__titre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.choix__visiter { margin-top: 22px !important; }
.choix__visiter a { font: 600 16px/1 var(--police-texte); color: var(--sourdine); text-underline-offset: 5px; }

/* ==========================================================================
   10 · Pages intérieures
   ========================================================================== */
.page-tete { background: var(--nuit); color: var(--sur-nuit); padding: 72px 0 80px; }
.page-tete__titre { font-size: clamp(56px, 8vw, 120px); }
.page-tete__titre--annonce { font-size: clamp(44px, 6vw, 88px); max-width: 1000px; }
.page-tete__titre--article { font-size: clamp(38px, 5vw, 64px); line-height: 1.08; }
.page-tete__chapo { max-width: 720px; margin-top: 28px !important; font-size: 20px; color: var(--sourdine-clair); }
.page-tete__boutons { margin-top: 32px !important; }
.page-tete--portes { padding-bottom: 170px; }
.page-tete--annonce .annonce__domaine { margin-bottom: 18px !important; }
.page-tete--article .meta { margin-top: 0 !important; margin-bottom: 20px !important; }
.page-corps { padding-block: 72px 120px; }

.texte-courant { font-size: 19px; line-height: 1.65; }
.texte-courant > * + * { margin-top: 1em !important; }
.texte-courant h2 { font-size: clamp(32px, 3.4vw, 44px) !important; margin-top: 1.6em !important; }
.texte-courant h3 { font-size: 28px; margin-top: 1.4em !important; }
.texte-courant a { color: var(--accent); }
.texte-courant ul, .texte-courant ol { padding-left: 1.2em; }

.recit { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; padding-block: 96px 64px; }
.recit__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--rayon); }
.recit__texte h2 { font-size: clamp(44px, 5vw, 76px); margin-bottom: 28px !important; }
.recit__texte p + p { margin-top: 1em !important; }
.ambition { background: var(--surface); padding: 88px 0; }
.ambition__texte { font: 600 clamp(28px, 3.2vw, 44px)/1.2 var(--police-serif); max-width: 1000px; }
.objectifs { display: grid; grid-template-columns: .8fr 1.2fr; gap: 64px; padding-block: 110px; }
.objectifs__tete h2 { font-size: clamp(44px, 5vw, 76px); }
.objectifs__liste { list-style: none; margin: 0; padding: 0; counter-reset: obj; display: grid; gap: 24px; }
.objectifs__liste li { counter-increment: obj; display: grid; grid-template-columns: 64px 1fr; gap: 14px; margin: 0; }
.objectifs__liste li::before { content: counter(obj); font: 800 56px/.8 var(--police-titres); color: var(--accent-vif); }

.faq { padding: 110px 0 130px; }
.faq h2 { margin-bottom: 40px !important; }
.faq .wp-block-details { border-top: 1px solid var(--texte); padding: 22px 0; }
.faq .wp-block-details:last-child { border-bottom: 1px solid var(--texte); }
.faq summary { font: 800 28px/1.1 var(--police-titres); text-transform: uppercase; cursor: pointer; }
.faq details p { margin-top: 14px !important; color: var(--sourdine); max-width: 760px; }

.fiche-annonce { display: grid; grid-template-columns: 1.4fr .8fr; gap: 64px; padding-block: 80px 120px; }
.aide { position: sticky; top: 120px; border: 3px solid var(--nuit); border-radius: var(--rayon); padding: 32px; display: flex; flex-direction: column; gap: 16px; }
.aide__titre { font: 800 40px/.95 var(--police-titres); text-transform: uppercase; }
.aide .lien-fleche { margin-top: 8px !important; }

.article { padding-block: 64px 120px; display: flex; flex-direction: column; gap: 40px; }
.article__photo { --coupe: 72px; }
.article__photo img { border-radius: var(--rayon); }

/* Formulaires (bourse, contact) */
.formulaire-page { display: grid; grid-template-columns: 1.35fr .65fr; gap: 64px; padding-block: 72px 120px; align-items: start; }
.formulaire-page__aside { display: flex; flex-direction: column; gap: 22px; }
.formulaire-page__photo img { width: 100%; aspect-ratio: 16 / 11; object-fit: cover; border-radius: var(--rayon); }
.formulaire-page__photo { --coupe: 40px; }
.formulaire-page__titre { font-size: 34px; }
.formulaire-page__note { color: var(--sourdine); font-size: 16px; }
.formulaire { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
.formulaire__champ { display: flex; flex-direction: column; gap: 8px; }
.formulaire__champ--large, .formulaire__erreur, .formulaire__annonce, .formulaire__envoi { grid-column: 1 / -1; }
.formulaire label, .formulaire legend { font: 700 16px/1.3 var(--police-texte); }
.formulaire input[type="text"], .formulaire input[type="email"], .formulaire input[type="tel"], .formulaire input[type="number"], .formulaire input[type="password"], .formulaire select, .formulaire textarea {
	width: 100%; box-sizing: border-box; padding: 14px 16px; border: 2px solid var(--texte); border-radius: var(--rayon-bouton);
	background: var(--fond); color: var(--texte); font: 400 18px/1.4 var(--police-texte);
}
.formulaire :focus-visible { outline: 3px solid var(--accent-vif); outline-offset: 2px; }
.formulaire fieldset { border: 0; padding: 0; margin: 0; }
.formulaire legend { margin-bottom: 10px; }
.formulaire__cases { display: flex; flex-wrap: wrap; gap: 8px; }
.formulaire__case { position: relative; }
.formulaire__case input { position: absolute; opacity: 0; }
.formulaire__case span { display: inline-block; padding: 9px 16px; border: 1px solid var(--texte); border-radius: 40px; font-weight: 600; font-size: 16px; cursor: pointer; }
.formulaire__case input:checked + span { background: var(--nuit); color: var(--sur-nuit); }
.formulaire__case input:focus-visible + span { outline: 3px solid var(--accent-vif); outline-offset: 2px; }
.formulaire__accord { display: grid; grid-template-columns: 24px 1fr; gap: 12px; font-weight: 400 !important; font-size: 16px !important; color: var(--sourdine); }
.formulaire__accord input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--accent); }
.formulaire__requis { color: var(--accent); }
.formulaire__piege { position: absolute; left: -9999px; }
.formulaire__erreur { padding: 14px 18px; border-left: 4px solid var(--alerte); background: color-mix(in srgb, var(--alerte) 8%, var(--fond)); color: var(--alerte); font-weight: 600; }
.formulaire__annonce { padding: 16px 20px; background: var(--surface); border-radius: var(--rayon); }
.formulaire__bouton { cursor: pointer; border: 0; border-radius: var(--rayon-bouton); background: var(--accent); color: var(--sur-accent); padding: 18px 30px; font: 700 18px/1 var(--police-texte); }
.formulaire__bouton:hover { background: var(--nuit); }
.merci { padding: 40px; border-radius: var(--rayon); background: var(--surface); display: flex; flex-direction: column; gap: 14px; }
.merci__titre { font: 800 44px/.95 var(--police-titres); text-transform: uppercase; }
.merci__adhesion { margin-top: 18px; padding: 28px; border-radius: var(--rayon); background: var(--nuit); color: var(--sur-nuit); display: flex; flex-direction: column; gap: 12px; }
.merci__accroche { font: 700 32px/1 var(--police-manuscrite); color: var(--accent-vif); }
.merci__bouton { display: inline-block; padding: 16px 26px; border-radius: var(--rayon-bouton); background: var(--accent); color: var(--sur-accent); font-weight: 700; text-decoration: none; }

/* Compte membre dans les formulaires : le mot de passe n'apparaît que si la case est cochée */
.formulaire__compte { padding: 18px 20px; border-radius: var(--rayon); background: var(--surface); display: flex; flex-direction: column; gap: 12px; }
.formulaire__compte:not(:has(input[name="tt[compte]"]:checked)) .formulaire__mdp { display: none; }
.formulaire__bouton--danger { background: var(--alerte); }

/* Mon espace */
.espace { display: flex; flex-direction: column; gap: 24px; }
.espace__ok, .espace__info { padding: 14px 18px; border-radius: var(--rayon); font-weight: 600; }
.espace__ok { border-left: 4px solid var(--accent); background: var(--surface); }
.espace__info { border-left: 4px solid var(--accent-vif); background: var(--surface); }
.espace__portes, .espace__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.espace__carte { padding: 30px; border: 1px solid var(--trait); border-radius: var(--rayon); display: flex; flex-direction: column; gap: 14px; background: var(--fond); }
.espace__carte--sombre { background: var(--nuit); color: var(--sur-nuit); border-color: var(--nuit); }
.espace__carte--sombre a { color: var(--sur-nuit); }
.espace__carte--large { grid-column: 1 / -1; }
.espace__carte .formulaire--simple { grid-template-columns: 1fr; }
.espace__titre { font-size: 34px !important; }
.espace__entete { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.espace__deconnexion { color: var(--sourdine); font-weight: 600; }
.espace__petit { font-size: 15px; color: var(--sourdine); }
.espace__carte--sombre .espace__petit { color: var(--sourdine-clair); }
.espace__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.espace__liste li { display: flex; flex-direction: column; gap: 2px; padding-bottom: 12px; border-bottom: 1px solid var(--trait); }
.espace__liste span { font-size: 15px; color: var(--sourdine); }
.espace__carte--sombre .espace__liste li { border-color: var(--nuit-2); }
.espace__carte--sombre .espace__liste span { color: var(--sourdine-clair); }
.espace__avantages { margin: 0; padding-left: 1.1em; display: flex; flex-direction: column; gap: 6px; }
.espace__lien { font-weight: 700; color: var(--accent); }
.espace__lien--accent { display: inline-block; padding: 12px 20px; border-radius: var(--rayon-bouton); background: var(--accent); color: var(--sur-accent) !important; text-decoration: none; }
.espace__statut { font: 800 26px/1 var(--police-titres); text-transform: uppercase; }
.espace__statut--ok { color: var(--accent); }
.espace__statut--alerte { color: var(--alerte); }
.espace__suppression { grid-column: 1 / -1; color: var(--sourdine); }
.espace__suppression summary { cursor: pointer; font-weight: 600; }
.espace__suppression .formulaire { margin-top: 14px; grid-template-columns: 1fr; }
.formulaire--vote fieldset { display: flex; flex-direction: column; gap: 10px; }
.espace__carte--sombre .formulaire__accord { color: var(--sourdine-clair); }
.wp-block-navigation.menu .menu-espace > .wp-block-navigation-item__content { color: var(--accent-vif); }

/* Avantages */
.badge-adherent { display: inline-block; align-self: flex-start; padding: 4px 10px; border-radius: 40px; background: var(--accent); color: var(--sur-accent); font: 700 12px/1.2 var(--police-texte); text-transform: uppercase; letter-spacing: .04em; }
.page-tete .badge-adherent { margin-top: 16px; }
.reserve { padding: 32px; border-radius: var(--rayon); background: var(--surface); display: flex; flex-direction: column; gap: 12px; }
.reserve__titre { font: 800 34px/1 var(--police-titres); text-transform: uppercase; }
.reserve__bouton { display: inline-block; padding: 12px 20px; border-radius: var(--rayon-bouton); background: var(--accent); color: var(--sur-accent) !important; text-decoration: none; font-weight: 700; margin-right: 12px; }

.adhesion-page { display: grid; grid-template-columns: .7fr 1.3fr; gap: 64px; padding-block: 72px 120px; align-items: start; }
.adherer__prix--compact .adherer__montant { font-size: clamp(140px, 14vw, 220px); }
.adhesion-page__ligne { margin-top: 18px !important; color: var(--sourdine); }
.helloasso__cadre { width: 100%; height: 1100px; border: 0; display: block; }
.helloasso__secours { margin-top: 12px; font-size: 15px; color: var(--sourdine); }
.helloasso__secours a { color: var(--accent); }

/* ==========================================================================
   11 · Tablette et mobile
   ========================================================================== */
@media (max-width: 1024px) {
	/* menu replié dès la tablette (WordPress ne replie qu'à 600 px) */
	.wp-block-navigation.menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.wp-block-navigation.menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	/* qualifié : le CSS du bloc Boutons, imprimé après, l'emporterait à spécificité égale */
	.entete__in .wp-block-buttons.entete__actions { display: none; }
	.heros__in { grid-template-columns: 1fr; }
	.heros__photo { max-width: 560px; }
	.marche__colonnes { grid-template-columns: 1fr; gap: 64px; }
	.parcours--decale { margin-top: 0; }
	.journal__grille, .asso__bloc, .recit, .objectifs, .fiche-annonce, .formulaire-page, .adhesion-page { grid-template-columns: 1fr; }
	.asso__photo { margin-top: 0 !important; order: -1; }
	.valeurs { grid-template-columns: 1fr 1fr; }
	.adherer__in { grid-template-columns: 1fr; gap: 24px; }
	.pied__in { grid-template-columns: 1fr 1fr; }
	.pied__marque { grid-column: 1 / -1; }
	.grille-annonces, .grille-actus { grid-template-columns: 1fr 1fr; }
	.aide { position: static; }
}
@media (max-width: 782px) {
	.admin-bar .entete { top: 46px; }
}
@media (max-width: 760px) {
	body { font-size: 17px; }
	.logo__nom { font-size: 26px; }
	.heros { padding: 32px 0 130px; }
	.heros__chapo { font-size: 18px; }
	.heros__photo img { aspect-ratio: 4 / 3; }
	.portes { grid-template-columns: 1fr; margin-top: -96px; gap: 16px; }
	.porte { padding: 30px 26px 34px; min-height: 0; }
	.annonces { padding: 88px 0 80px; }
	.tete-section { flex-direction: column; align-items: flex-start; margin-bottom: 36px !important; }
	.grille-annonces, .grille-actus, .formulaire, .choix__options, .espace__portes, .espace__grille { grid-template-columns: 1fr; }
	.espace__carte { padding: 22px; }
	.parcours { grid-template-columns: 1fr; }
	.parcours__photo img { aspect-ratio: 16 / 10; }
	.marche { padding-bottom: 96px; }
	.marche__titre { margin-bottom: 48px !important; }
	.breve { grid-template-columns: 110px 1fr; }
	.asso { padding: 72px 0 80px; }
	.asso__bloc { padding: 40px 22px; gap: 32px; }
	.valeurs { grid-template-columns: 1fr; gap: 22px; }
	.adherer { padding-bottom: 96px; }
	.pied__in { grid-template-columns: 1fr; }
	.page-tete { padding: 48px 0 56px; }
	.page-tete--portes { padding-bottom: 130px; }
	.recit, .objectifs { padding-block: 64px; gap: 32px; }
	.objectifs__liste li { grid-template-columns: 44px 1fr; }
	.objectifs__liste li::before { font-size: 44px; }
	.faq { padding: 72px 0 88px; }
	.faq summary { font-size: 24px; }
	.choix__boite { padding-top: 56px; }
	.helloasso__cadre { height: 1300px; }
}
