/*
Theme Name: Maisons Paysannes de Sarthe
Theme URI: https://example.org/mps-sarthe
Author: Maisons Paysannes de Sarthe
Description: Thème block (FSE) de la délégation sarthoise de Maisons Paysannes de France. Agenda d'événements, visite-conseil, journal et adhésion, avec une mise en page verrouillée pour les bénévoles.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mps-sarthe
Tags: full-site-editing, block-patterns, custom-colors, editor-style, featured-images, accessibility-ready
*/

/* ---------- Socle ---------- */
body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: 3px; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--wp--preset--color--bocage);
	outline-offset: 3px;
	border-radius: 2px;
}

.screen-reader-text:not(:focus) {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px; width: 1px; overflow: hidden; position: absolute !important; margin: -1px;
}

/* Cibles tactiles ≥ 44 px */
.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.wp-block-navigation .wp-block-navigation-item__content { min-height: 44px; display: inline-flex; align-items: center; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 4px; }
.wp-block-query-pagination .page-numbers.current { background: var(--wp--preset--color--encre); color: var(--wp--preset--color--blanc); }

/* Variante de bouton « Clair » (sur photo) */
.wp-block-button.is-style-clair .wp-block-button__link { background: transparent; color: #fff; border-color: #fff; }
.wp-block-button.is-style-clair .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--encre); }
.wp-block-button.is-style-contour .wp-block-button__link:hover { background: var(--wp--preset--color--encre); color: #fff; border-color: var(--wp--preset--color--encre); }
.wp-block-button.is-style-encre .wp-block-button__link:hover { background: #4A3F33; color: #fff; }

/* ---------- Surtitre ---------- */
.is-style-surtitre {
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ocre-fonce);
	line-height: 1.4;
}
.has-ocre-background-color .is-style-surtitre,
.wp-block-cover .is-style-surtitre { color: inherit; }
.wp-block-cover .is-style-surtitre { color: #F2C877; }

/* ---------- En-tête ---------- */
.mps-bandeau p { margin: 0; }
.mps-bandeau a { color: var(--wp--preset--color--encre); }
.mps-entete .wp-block-navigation .wp-block-navigation-item__content { border-bottom: 2px solid transparent; padding-inline: 2px; }
.mps-entete .wp-block-navigation .wp-block-navigation-item__content:hover,
.mps-entete .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.mps-entete .wp-block-navigation [aria-current="page"] { border-bottom-color: var(--wp--preset--color--ocre); }
.mps-entete .wp-block-search__button { min-width: 44px; min-height: 44px; background: transparent; color: var(--wp--preset--color--encre); border: 1px solid var(--wp--preset--color--filet); }
.mps-entete .wp-block-search__button:hover { background: var(--wp--preset--color--chaux); color: var(--wp--preset--color--encre); }
.mps-entete .wp-block-site-logo img { height: auto; }
@media (max-width: 781px) {
	.mps-entete .wp-block-search { display: none; }
	.mps-bandeau .mps-bandeau-lien { display: none; }
}
.wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem clamp(1.25rem, 3vw, 2rem);
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.5rem;
}
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close {
	min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
}

/* ---------- Pied de page ---------- */
.mps-pied a { color: var(--wp--preset--color--chaux); text-decoration: none; display: inline-flex; min-height: 44px; align-items: center; }
.mps-pied a:hover { color: #F2C877; text-decoration: underline; }
.mps-pied p { margin: 0; }
.mps-pied .mps-pied-titre { color: #F2C877; }
.mps-pied :focus-visible { outline-color: #F2C877; }

/* ---------- Cartes ---------- */
.is-style-carte {
	border: 1px solid var(--wp--preset--color--filet);
	border-radius: 6px;
	padding: clamp(1.25rem, 2.5vw, 1.75rem);
	background: var(--wp--preset--color--blanc);
}
.is-style-carte-pleine { border-radius: 6px; padding: clamp(1.5rem, 3vw, 2.25rem); background: var(--wp--preset--color--blanc); }
.mps-etape-forte { box-shadow: inset 0 0 0 2px var(--wp--preset--color--ocre); }
.wp-block-post-template.is-layout-grid > li,
.wp-block-post-template > li { display: flex; flex-direction: column; }
.mps-carte-evenement { height: 100%; display: flex; flex-direction: column; }
.mps-carte-evenement > .mps-pied-carte { margin-top: auto !important; }

/* Numéro d'étape */
.mps-numero {
	width: 56px; height: 56px; border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--ocre);
	display: inline-flex !important; align-items: center; justify-content: center;
	font-family: var(--wp--preset--font-family--fraunces); font-size: 1.625rem; color: var(--wp--preset--color--ocre-fonce);
	margin: 0;
}
.mps-numero.is-plein { background: var(--wp--preset--color--ocre); color: var(--wp--preset--color--encre); }

/* Date d'événement */
.mps-jour { font-family: var(--wp--preset--font-family--fraunces); font-size: 3.25rem; line-height: 1; color: var(--wp--preset--color--ocre-fonce); margin: 0; }

/* Ligne lieu / heure avec pictogramme */
.mps-lieu, .mps-heure { display: flex; align-items: center; gap: 0.5rem; }
.mps-lieu::before, .mps-heure::before {
	content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
	-webkit-mask: var(--mps-ico) center / contain no-repeat; mask: var(--mps-ico) center / contain no-repeat;
}
.mps-lieu { --mps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Cpath d='M12 21s7-6.2 7-11.5A7 7 0 0 0 5 9.5C5 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.mps-heure { --mps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E"); }

/* ---------- Badge public ---------- */
.mps-badge {
	display: inline-flex !important; align-items: center; gap: 6px; width: fit-content;
	font-size: 0.8125rem !important; font-weight: 500; line-height: 1;
	padding: 7px 10px; border-radius: 999px; margin: 0;
	background: #E1EAE2; color: #23452F;
}
.mps-badge::before {
	content: ""; width: 13px; height: 13px; background: currentColor;
	-webkit-mask: var(--mps-ico) center / contain no-repeat; mask: var(--mps-ico) center / contain no-repeat;
	--mps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12l3 3 5-6'/%3E%3C/svg%3E");
}
.mps-badge.is-adherents { background: #F6E7CC; color: #6E3D00; }
.mps-badge.is-adherents::before {
	--mps-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Crect x='5' y='11' width='14' height='10' rx='1'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E");
}

/* ---------- Filtres (bloc Catégories / Termes, style « Pastilles ») ---------- */
.wp-block-categories.is-style-pastilles {
	list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.625rem;
}
.wp-block-categories.is-style-pastilles li { margin: 0; }
.wp-block-categories.is-style-pastilles a,
.mps-filtre-tout a {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.25rem;
	border: 1px solid #8A7F72; border-radius: 999px; text-decoration: none;
	color: var(--wp--preset--color--encre); font-weight: 400; font-size: 1rem; background: var(--wp--preset--color--blanc);
}
.wp-block-categories.is-style-pastilles a:hover, .mps-filtre-tout a:hover { border-color: var(--wp--preset--color--encre); }
.wp-block-categories.is-style-pastilles .current-cat > a,
.mps-filtre-tout.is-actif a { background: var(--wp--preset--color--encre); border-color: var(--wp--preset--color--encre); color: #fff; }
.mps-filtres { display: flex; flex-wrap: wrap; gap: 0.625rem; align-items: center; }
.mps-filtres p { margin: 0; }

/* ---------- Liste d'agenda ---------- */
.mps-agenda-ligne { border-bottom: 1px solid var(--wp--preset--color--filet); }
.mps-agenda-ligne .wp-block-post-featured-image { flex: none; }
@media (max-width: 781px) {
	.mps-agenda-ligne .wp-block-post-featured-image { display: none; }
}

/* ---------- Couverture (hero) : légende de la photo ---------- */
.wp-block-cover .mps-legende { position: absolute; right: 1rem; bottom: 1rem; margin: 0; font-size: 0.75rem; background: rgba(255,255,255,0.88); color: var(--wp--preset--color--encre); padding: 4px 8px; border-radius: 2px; }

/* ---------- Détails (FAQ) ---------- */
.wp-block-details summary {
	cursor: pointer; min-height: 56px; display: flex; align-items: center; gap: 0.75rem;
	font-family: var(--wp--preset--font-family--fraunces); font-size: 1.3125rem; list-style: none;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; margin-left: auto; font-size: 1.5rem; color: var(--wp--preset--color--ocre-fonce); }
.wp-block-details[open] summary::after { content: "–"; }

/* ---------- Formulaires (blocs mps/formulaire et mps/inscription) ---------- */
.mps-form { display: flex; flex-direction: column; gap: 1.5rem; }
.mps-form .mps-champs-duo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.25rem; }
.mps-champ { display: flex; flex-direction: column; gap: 0.375rem; }
.mps-champ label, .mps-form legend { font-size: 0.9375rem; font-weight: 500; }
.mps-aide { font-size: 0.875rem; color: var(--wp--preset--color--encre-douce); margin: 0; }
.mps-form input[type="text"], .mps-form input[type="email"], .mps-form input[type="tel"],
.mps-form input[type="number"], .mps-form select, .mps-form textarea {
	font: inherit; font-size: 1.0625rem; font-weight: 300; color: var(--wp--preset--color--encre);
	min-height: 48px; padding: 0.625rem 0.875rem; border: 1px solid #8A7F72; border-radius: 4px;
	background: #fff; box-sizing: border-box; width: 100%;
}
.mps-form textarea { resize: vertical; }
.mps-form fieldset { border: 0; padding: 0; margin: 0; }
.mps-pastilles-choix { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 0.625rem; }
.mps-pastilles-choix label { display: inline-flex; align-items: center; gap: 0.625rem; min-height: 44px; padding: 0 1rem; border: 1px solid #8A7F72; border-radius: 999px; font-size: 1rem; font-weight: 300; cursor: pointer; }
.mps-form input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--wp--preset--color--ocre-fonce); margin: 0; flex: none; }
.mps-consentement { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.9375rem; cursor: pointer; }
.mps-consentement input { margin-top: 3px !important; }
.mps-pot { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mps-form button[type="submit"], .mps-bouton {
	font: inherit; font-weight: 500; font-size: 1rem; min-height: 48px; padding: 0 1.5rem; border-radius: 4px;
	border: 1.5px solid transparent; background: var(--wp--preset--color--ocre); color: var(--wp--preset--color--encre);
	cursor: pointer; align-self: flex-start; display: inline-flex; align-items: center; justify-content: center; text-decoration: none;
}
.mps-form button[type="submit"]:hover, .mps-bouton:hover { background: var(--wp--preset--color--encre); color: #fff; }
.mps-bouton.is-encre { background: var(--wp--preset--color--encre); color: #fff; }
.mps-bouton.is-encre:hover { background: #4A3F33; }
.mps-bouton.is-contour { background: transparent; border-color: currentColor; color: var(--wp--preset--color--encre); }
.mps-bouton.is-contour:hover { background: var(--wp--preset--color--encre); border-color: var(--wp--preset--color--encre); color: #fff; }
.mps-message { border-radius: 6px; padding: 1.25rem 1.5rem; }
.mps-message.is-ok { background: #E1EAE2; color: #23452F; }
.mps-message.is-erreur { background: #F9E1DC; color: #7A1F12; }
.mps-message p { margin: 0; }
.mps-inscription { display: flex; flex-direction: column; gap: 1.25rem; }
.mps-inscription h2 { font-size: 1.5rem; margin: 0; }
.mps-reserve { border: 1.5px solid var(--wp--preset--color--ocre); border-radius: 6px; padding: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; }
.mps-reserve p { margin: 0; }
.mps-reserve .mps-reserve-titre { font-family: var(--wp--preset--font-family--fraunces); font-size: 1.3125rem; line-height: 1.3; }
.mps-boite-inscription { border: 1px solid var(--wp--preset--color--filet); border-radius: 6px; padding: 1.75rem; display: flex; flex-direction: column; gap: 1rem; }
.mps-boite-inscription p { margin: 0; }

/* ---------- Ajustements ---------- */
/* Pas d'espace entre l'en-tête, le contenu et le pied de page. */
.wp-site-blocks > * + * { margin-block-start: 0; }
@media (max-width: 600px) {
	.mps-bandeau { display: none; }
	.mps-entete .mps-logo img { width: 105px !important; height: 52px !important; }
}
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--blanc) !important;
	color: var(--wp--preset--color--encre) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }

.mps-entete .wp-block-button__link { white-space: nowrap; }

/* ---------- Journal : article à la une (première page uniquement) ---------- */
@media (min-width: 782px) {
	body:not(.paged) .mps-journal .wp-block-post-template > li:first-child {
		grid-column: 1 / -1;
		padding-bottom: 3rem;
		border-bottom: 1px solid var(--wp--preset--color--filet);
	}
	body:not(.paged) .mps-journal .wp-block-post-template > li:first-child > .wp-block-group {
		display: grid !important;
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
		column-gap: 3.5rem;
		align-items: center;
	}
	body:not(.paged) .mps-journal .wp-block-post-template > li:first-child .wp-block-post-featured-image { grid-row: 1 / span 5; }
	body:not(.paged) .mps-journal .wp-block-post-template > li:first-child .wp-block-post-title { font-size: var(--wp--preset--font-size--x-large); line-height: 1.12; }
	body:not(.paged) .mps-journal .wp-block-post-template > li:first-child .wp-block-post-excerpt { font-size: var(--wp--preset--font-size--medium) !important; }
}

/* ---------- Agenda : en-têtes de mois ---------- */
.mps-mois {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.75rem; line-height: 1.2;
	margin: 0; padding: 3rem 0 1rem;
	border-bottom: 1px solid var(--wp--preset--color--encre);
}
.mps-mois:empty { display: none; }
.wp-block-post-template > li:first-child > .mps-mois { padding-top: 1rem; }

/* ---------- Bandeau : sur mobile le texte couvre toute l'image, le voile dégradé redevient uniforme ---------- */
@media (max-width: 781px) {
	.wp-block-cover .has-voile-gauche-gradient-background,
	.wp-block-cover .has-voile-bas-gradient-background {
		background: rgba(30, 22, 14, 0.62) !important;
	}
}
