/*
Theme Name:   Printemps Feuillage
Description:  Thème enfant GeneratePress pour residence-printemps.fr, direction « Feuillage ».
Author:       Gérald Aubard
Template:     generatepress
Version:      1.4.8
Requires at least: 6.5
Requires PHP: 7.4
License:      GNU General Public License v2 or later
Text Domain:  printemps-feuillage
*/

/* ==========================================================
   1. Polices auto-hébergées (SIL Open Font License, voir assets/fonts)
   ========================================================== */
@font-face {
	font-family: "Literata";
	font-style: normal;
	font-weight: 200 900;
	font-display: swap;
	src: url("assets/fonts/literata-latin-opsz-normal.woff2") format("woff2-variations"),
	     url("assets/fonts/literata-latin-opsz-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Atkinson Hyperlegible";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/atkinson-hyperlegible-latin-400-normal.woff2") format("woff2");
}
@font-face {
	font-family: "Atkinson Hyperlegible";
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/atkinson-hyperlegible-latin-400-italic.woff2") format("woff2");
}
@font-face {
	font-family: "Atkinson Hyperlegible";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("assets/fonts/atkinson-hyperlegible-latin-700-normal.woff2") format("woff2");
}

/* ==========================================================
   2. Jetons de couleur
   Les variables GeneratePress (--contrast, --base…) sont redéfinies ici :
   ce fichier est chargé après le CSS dynamique du thème parent, il l'emporte
   donc sur les couleurs globales du Personnaliseur.
   ========================================================== */
:root {
	--pf-bg: #F5F7F2;
	--pf-surface: #FFFFFF;
	--pf-soft: #EEF2EC;
	--pf-text: #22302A;
	--pf-title: #14261D;
	--pf-link: #1F5A43;
	--pf-link-hover: #123B2B;
	--pf-muted: #4F6A5C;
	--pf-gold: #CAA33B;      /* décor uniquement : 2,2:1, jamais pour du texte */
	--pf-line: #DCE3D8;
	--pf-line-2: #E6ECE3;
	--pf-input: #B9C7B5;
	--pf-footer: #14261D;
	--pf-footer-text: #DCE6DE;
	--pf-footer-link: #BFE3CF;
	--pf-radius: 14px;

	--contrast: var(--pf-text);
	--contrast-2: var(--pf-muted);
	--contrast-3: var(--pf-input);
	--base: var(--pf-line-2);
	--base-2: var(--pf-bg);
	--base-3: var(--pf-surface);
	--accent: var(--pf-link);
}

/* ==========================================================
   3. Base
   ========================================================== */
body,
button,
input,
select,
textarea {
	font-family: "Atkinson Hyperlegible", Verdana, sans-serif;
}
body {
	background: var(--pf-bg);
	color: var(--pf-text);
	font-size: 18px;
	line-height: 1.55;
}
h1, h2, h3, h4,
.entry-title,
.main-title {
	font-family: "Literata", Georgia, serif;
	color: var(--pf-title);
	text-wrap: balance;
}
h1, .entry-title { font-weight: 700; line-height: 1.15; }
h2, h3 { font-weight: 700; line-height: 1.25; }

a { color: var(--pf-link); }
a:hover, a:focus { color: var(--pf-link-hover); }
:focus-visible { outline: 3px solid var(--pf-link); outline-offset: 2px; }

button,
input[type="submit"],
input[type="button"],
.button,
.wp-block-button__link {
	background: var(--pf-link);
	color: #FFFFFF;
	border-radius: 8px;
	font-weight: 700;
	padding: 12px 18px;
}
button:hover,
input[type="submit"]:hover,
.button:hover { background: var(--pf-link-hover); color: #FFFFFF; }

input[type="text"],
input[type="email"],
input[type="search"],
input[type="tel"],
input[type="url"],
textarea,
select {
	border: 1px solid var(--pf-input);
	border-radius: 8px;
	padding: 10px 14px;
	color: var(--pf-text);
	background: #FFFFFF;
}

/* ==========================================================
   4. En-tête et navigation GeneratePress
   ========================================================== */
.site-header {
	background: var(--pf-surface);
	border-bottom: 1px solid var(--pf-line);
}
.site-logo img,
.header-image {
	max-height: var(--pf-logo-h, 96px); /* 1.4.4 : 76 px auparavant */
	width: auto;
}
/* 1.4.4 : marges verticales de l'en-tête réduites (20 px par défaut dans GeneratePress) */
.site-header .inside-header {
	padding-top: 10px;
	padding-bottom: 10px;
}
/* Hauteur du logo selon la largeur : le menu complet doit tenir sur une ligne. */
@media (max-width: 1199px) {
	.site-header { --pf-logo-h: 76px; }
}
@media (max-width: 1024px) {
	.site-header { --pf-logo-h: 72px; }
}
@media (max-width: 600px) {
	.site-header { --pf-logo-h: 56px; }
	/* Logo, loupe et menu sur la même ligne : marges latérales de 16 px. */
	.site-header .inside-header { padding-left: 16px; padding-right: 16px; }
}
.main-navigation,
.main-navigation ul ul {
	background: var(--pf-surface);
}
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle {
	color: var(--pf-link);
	font-weight: 700;
	font-size: 17px;
}
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li.sfHover > a {
	color: var(--pf-link-hover);
	background: transparent;
}
.main-navigation .main-nav > ul > li[class*="current-menu-"] > a {
	color: var(--pf-title);
	background: transparent;
	box-shadow: inset 0 -3px 0 var(--pf-gold);
}

/* 1.3.6 : sous-menus et survol, indépendants des couleurs du Customizer.
   GeneratePress écrit ses couleurs avec des sélecteurs :not([class*="current-menu-"]),
   plus spécifiques : on les reprend à l'identique pour que nos couleurs l'emportent
   (sinon texte blanc sur fond blanc dans le menu mobile). */
.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a {
	color: var(--pf-link-hover);
	background: transparent;
}
.main-navigation .main-nav ul ul li a {
	color: var(--pf-link);
	font-size: 15px;
	font-weight: 600;
	background: transparent;
}
.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul ul li.sfHover:not([class*="current-menu-"]) > a {
	color: var(--pf-link-hover);
	background: var(--pf-soft);
}
.main-navigation .main-nav ul ul li[class*="current-menu-"] > a {
	color: var(--pf-title);
	background: var(--pf-soft);
}
/* Menu déroulant sur ordinateur : bordure et ombre pour le détacher de la page. */
@media (min-width: 1025px) {
	.main-navigation .main-nav ul ul {
		border: 1px solid var(--pf-line);
		border-radius: 10px;
		box-shadow: 0 8px 24px rgba(20, 38, 29, .12);
		padding: 6px 0;
	}
}

/* Évite le débordement horizontal si le titre texte reste affiché */
.site-branding,
.site-logo { min-width: 0; }
.main-title { overflow-wrap: anywhere; }

/* ==========================================================
   5. Gabarits Feuillage : articles, comptes-rendus, pages, listes
   (maquette « Compte-rendu de CS »)
   ========================================================== */
.pf-feuillage .site.grid-container,
.pf-feuillage .site-content {
	background: transparent;
	padding: 0;
}
.pf-single {
	width: 100%;
	min-width: 0;
	padding: 28px 0 60px;
}

/* Fil d'Ariane */
.pf-crumbs ol {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 0;
	font-size: 15px;
	color: var(--pf-muted);
}
.pf-crumbs li + li::before {
	content: "›";
	margin: 0 8px;
	color: var(--pf-muted);
}
.pf-crumbs li[aria-current] { color: var(--pf-text); }

/* Deux colonnes : texte (720 px max) + colonne de navigation */
.pf-single__grid {
	display: flex;
	flex-wrap: wrap;
	gap: 48px;
	align-items: flex-start;
}
.pf-article {
	flex: 999 1 600px;
	min-width: 0;
	max-width: 720px;
	display: flex;
	flex-direction: column;
	gap: 22px;
	line-height: 1.6;
}
.pf-article__head {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.pf-article__title {
	font-size: 38px;
	line-height: 1.15;
	margin: 0;
}
.pf-article__meta {
	margin: 0;
	color: var(--pf-muted);
	font-size: 16px;
}
.pf-article__media { margin: 0; }
.pf-article__media img {
	display: block;
	width: auto;          /* jamais agrandie au-delà de sa taille réelle (1.3.6) */
	max-width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: contain;
	border-radius: var(--pf-radius);
}

/* Noms des présents, repliés */
.pf-names {
	font-size: 15px;
	color: var(--pf-muted);
}
.pf-names summary {
	cursor: pointer;
	font-weight: 700;
	color: var(--pf-link);
	width: max-content;
	min-height: 32px;
	display: flex;
	align-items: center;
}
.pf-names p { margin: 6px 0 0; }

/* Colonne */
.pf-aside {
	flex: 1 1 260px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 24px;
}
.pf-aside__title { margin: 0; }
.pf-aside__toc { display: flex; flex-direction: column; gap: 14px; }
.pf-aside__title + * { margin-top: -4px; }
* + .pf-aside__title { margin-top: 18px; }
.pf-aside__nav {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 16px;
	line-height: 1.4;
}
.pf-aside__nav a { text-decoration: none; }
.pf-aside__nav a:hover { text-decoration: underline; }
.pf-aside__nav a[aria-current] {
	color: var(--pf-title);
	font-weight: 700;
	box-shadow: inset 3px 0 0 var(--pf-gold);
	padding-left: 10px;
}
.pf-count {
	color: var(--pf-muted);
	font-size: 14px;
}
.pf-aside__more {
	margin-top: 12px;
	font-size: 16px;
}
.pf-aside__prev {
	display: flex;
	flex-direction: column;
	gap: 2px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	padding: 14px 16px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: 12px;
}
.pf-aside__prev span {
	font-weight: 400;
	color: var(--pf-muted);
}

/* Sommaire replié, sur mobile seulement */
.pf-toc-mobile {
	display: none;
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
	padding: 4px 20px;
	font-size: 16px;
}
.pf-toc-mobile summary {
	cursor: pointer;
	font-weight: 700;
	min-height: 44px;
	display: flex;
	align-items: center;
	color: var(--pf-title);
}
.pf-toc-mobile ol { margin: 0 0 14px 1.2em; padding: 0; display: flex; flex-direction: column; gap: 6px; }

/* Texte courant */
.pf-prose > * { margin-top: 0; margin-bottom: 0; }
.pf-prose > * + * { margin-top: 18px; }
.pf-prose h2 {
	font-size: 26px;
	line-height: 1.25;
	margin-top: 36px;
	scroll-margin-top: 24px;
}
.pf-prose h3 {
	font-size: 21px;
	margin-top: 28px;
	scroll-margin-top: 24px;
}
.pf-prose > :first-child { margin-top: 0; }
.pf-article .pf-prose.entry-content { margin: 0; }
.pf-prose h2 + *,
.pf-prose h3 + * { margin-top: 10px; }
.pf-prose ul,
.pf-prose ol { padding-left: 22px; margin-left: 0; }
.pf-prose li + li { margin-top: 8px; }
.pf-prose li::marker { color: var(--pf-muted); }
.pf-prose img {
	max-width: 100%;
	height: auto;
	border-radius: 10px;
}
.pf-prose blockquote {
	margin-left: 0;
	margin-right: 0;
	border-left: 0;
	background: var(--pf-soft);
	border-radius: var(--pf-radius);
	padding: 18px 22px;
	font-style: normal;
}
.pf-prose hr {
	border: 0;
	border-top: 1px solid var(--pf-line);
}

/* Tableaux : cadre blanc arrondi, défilement horizontal sur mobile */
.pf-table,
.pf-prose > table {
	overflow-x: auto;
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
}
.pf-prose table {
	border-collapse: collapse;
	width: 100%;
	margin: 0;
	border: 0;
	font-variant-numeric: tabular-nums;
}
.pf-prose th,
.pf-prose td {
	padding: 12px 14px;
	text-align: left;
	border: 0;
	border-bottom: 1px solid var(--pf-line-2);
	font-size: 17px;
}
.pf-prose tr:last-child td { border-bottom: 0; }
.pf-prose th {
	font-size: 13px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pf-muted);
}

/* Barres de budget */
.pf-bar {
	display: block;
	height: 14px;
	margin-top: 10px;
	background: #E1E8DD;
	border-radius: 999px;
	overflow: hidden;
}
.pf-bar > span {
	display: block;
	height: 100%;
	background: var(--pf-link);
	border-radius: 999px;
}
.pf-bar.is-over > span { background: #8A5A00; }
.pf-bar__value {
	display: block;
	margin-top: 4px;
	font-size: 14px;
	font-weight: 700;
	color: var(--pf-muted);
	font-variant-numeric: tabular-nums;
}

/* Listes (actualités, rubriques, recherche) */
.pf-listing .pf-article { max-width: none; flex-basis: 640px; }
.pf-pagination ul {
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.pf-pagination a,
.pf-pagination span {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	min-width: 44px;
	justify-content: center;
	padding: 0 14px;
	border-radius: 999px;
	border: 1px solid var(--pf-input);
	text-decoration: none;
	font-weight: 700;
	font-size: 15px;
}
.pf-pagination .current {
	background: var(--pf-link);
	border-color: var(--pf-link);
	color: #FFFFFF;
}
.pf-pagination .dots { border: 0; }

/* Recherche */
.pf-search {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.pf-search input[type="search"] {
	flex: 1 1 180px;
	min-width: 0;
	font-size: 16px;
	min-height: 44px;
}
.pf-search button {
	min-height: 44px;
	font-size: 16px;
}
.pf-404 { max-width: 720px; }

/* Commentaires */
.pf-comments .comments-area {
	padding: 22px 26px;
	margin: 0;
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
}

/* Widgets éventuels de GeneratePress */
.widget-title {
	font-family: "Literata", Georgia, serif;
	color: var(--pf-title);
}

@media (max-width: 899px) {
	.pf-aside { position: static; }
	.pf-toc-mobile { display: block; }
	.pf-aside__toc { display: none; }
}
@media (max-width: 600px) {
	.pf-single { padding-top: 18px; }
	.pf-crumbs ol { margin-bottom: 18px; font-size: 14px; }
	.pf-article__title { font-size: 28px; }
	.pf-prose h2 { font-size: 22px; margin-top: 28px; }
	.pf-prose h3 { font-size: 19px; }
	.pf-single__grid { gap: 36px; }
}

/* ==========================================================
   6. Pied de page
   ========================================================== */
.footer-widgets,
.site-info {
	background: var(--pf-footer);
	color: var(--pf-footer-text);
}
.footer-widgets .widget-title,
.footer-widgets strong {
	color: #FFFFFF;
	font-family: "Atkinson Hyperlegible", Verdana, sans-serif;
	font-size: 17px;
	font-weight: 700;
	margin-bottom: 10px;
}
.footer-widgets a,
.site-info a {
	color: var(--pf-footer-link);
}
.footer-widgets a:hover,
.site-info a:hover {
	color: #FFFFFF;
}
.site-info {
	border-top: 1px solid rgba(255, 255, 255, .12);
	font-size: 15px;
}

/* ==========================================================
   7. Accueil (front-page.php)
   ========================================================== */
.pf-front {
	width: 100%;
	min-width: 0;
}
.pf-wrap {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
}
.pf-h2 {
	font-size: 24px;
	margin: 0;
}
.pf-label {
	display: block;
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	font-weight: 700;
	color: var(--pf-muted);
}
.pf-more { font-weight: 700; }
.pf-card,
.pf-box,
.pf-list {
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
}

/* Bloc haut : à la une + au quotidien */
.pf-top {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(320px, 100%), 1fr));
	gap: 28px;
	align-items: stretch;
	padding-top: 40px;
	padding-bottom: 8px;
}
.pf-featured {
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.pf-featured__media img {
	display: block;
	width: 100%;
	height: auto;          /* l'image garde ses proportions : rien n'est rogné sur les côtés */
	max-height: 280px;     /* une image haute est réduite pour tenir dans 280 px… */
	object-fit: contain;   /* …et affichée en entier, centrée, sans recadrage (1.4.3) */
	object-position: center;
	background: var(--pf-surface);
}
.pf-featured__body {
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.pf-featured__body p { margin: 0; }
.pf-featured__title {
	font-size: 34px;
	line-height: 1.15;
	margin: 0;
}
.pf-featured__title a {
	color: var(--pf-title);
	text-decoration: none;
}
.pf-featured__title a:hover { color: var(--pf-link); text-decoration: underline; }

.pf-quotidien {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.pf-tiles {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}
.pf-tile {
	height: 100%;
	box-sizing: border-box;
	min-height: 92px;
	padding: 16px 18px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: 12px;
	text-decoration: none;
	color: var(--pf-link);
}
.pf-tile:hover { border-color: var(--pf-link); }
.pf-tile span {
	font-size: 15px;
	color: var(--pf-muted);
}

/* Bloc bas : actualités + colonne */
.pf-bottom {
	display: flex;
	flex-wrap: wrap;
	gap: 36px;
	padding-top: 40px;
	padding-bottom: 48px;
}
.pf-news {
	flex: 999 1 560px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.pf-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	font-size: 15px;
	font-weight: 700;
}
.pf-pill {
	padding: 6px 14px;
	border-radius: 999px;
	border: 1px solid var(--pf-input);
	text-decoration: none;
	line-height: 1.4;
}
.pf-pill.is-current {
	background: var(--pf-link);
	border-color: var(--pf-link);
	color: #FFFFFF;
}
.pf-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pf-list li {
	padding: 20px 24px;
	border-bottom: 1px solid var(--pf-line-2);
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin: 0;
}
.pf-list li:last-child { border-bottom: 0; }
.pf-list__title {
	font-family: "Literata", Georgia, serif;
	font-weight: 700;
	font-size: 21px;
	line-height: 1.3;
	color: var(--pf-title);
	text-decoration: none;
}
.pf-list__title:hover { color: var(--pf-link); text-decoration: underline; }
.pf-list__excerpt {
	font-size: 16px;
	color: var(--pf-muted);
}

.pf-side {
	flex: 1 1 300px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 24px;
}
.pf-box {
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 16px;
}
.pf-box p { margin: 0; }
.pf-box__title {
	font-size: 21px;
	margin: 0;
}
.pf-box input[type="email"],
.pf-box input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	font-size: 17px;
}
.pf-admin-hint {
	margin: 0;
	padding: 14px 16px;
	border: 2px dashed var(--pf-gold);
	border-radius: 12px;
	font-size: 15px;
	background: #FFFFFF;
}

@media (max-width: 600px) {
	.pf-wrap { padding: 0 16px; }
	.pf-top { padding-top: 20px; gap: 20px; }
	.pf-featured__title { font-size: 26px; }
	.pf-featured__body { padding: 20px; }
	.pf-tile { min-height: 64px; padding: 14px; font-size: 16px; }
	.pf-tile span { display: none; }
	.pf-list li { padding: 16px; }
	.pf-list__title { font-size: 19px; }
	.pf-bottom { padding-top: 28px; gap: 24px; }
}

/* ==========================================================
   8. Encadré « L'essentiel » ([essentiel] dans un compte-rendu)
   ========================================================== */
.pf-essentiel {
	background: var(--pf-surface);
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
	padding: 22px 26px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.pf-prose .pf-essentiel__title {
	font-size: 22px;
	margin: 0;
}
.pf-essentiel ul {
	margin: 0;
	padding-left: 22px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.pf-essentiel li + li { margin-top: 0; }
.pf-cr-list li + li { margin-top: 8px; }
li.pf-cr-point { scroll-margin-top: 24px; }
li.pf-cr-point > strong:first-child {
	display: block;
	font-family: "Literata", Georgia, serif;
	font-size: 21px;
	color: var(--pf-title);
	margin: 12px 0 4px;
}
.pf-prose ul:has(> li.pf-cr-point) {
	list-style: none;
	padding-left: 0;
}


/* 1.3.1 : pastille « À la une » et navigation par année */
.pf-featured__media { position: relative; }
.pf-une {
	display: inline-block;
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--pf-link);   /* blanc sur #1F5A43 : 7,5:1 */
	color: #FFFFFF;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1.4;
}
.pf-featured__media .pf-une {
	position: absolute;
	top: 14px;
	left: 14px;
	box-shadow: 0 1px 3px rgba(20, 38, 29, .25);
}
.pf-une--inline { align-self: flex-start; }
.pf-years { align-items: center; font-size: 14px; }
.pf-years__label {
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pf-muted);
	margin-right: 4px;
}
.pf-years .pf-pill { padding: 4px 12px; font-variant-numeric: tabular-nums; }
.pf-years .pf-count { color: inherit; font-size: inherit; font-weight: 400; opacity: .75; margin-left: 2px; }
.pf-years .pf-pill.is-current .pf-count { opacity: .9; }

/* 1.3.2 : recherche dans l'en-tête et le pied de page */
.menu-bar-items { display: flex; align-items: center; }
.pf-hsearch { position: static; }
.pf-hsearch__toggle {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 10px;
	color: var(--pf-link);
	cursor: pointer;
}
.pf-hsearch__toggle::-webkit-details-marker { display: none; }
.pf-hsearch__toggle::marker { content: ""; }
.pf-hsearch__toggle:hover,
.pf-hsearch[open] .pf-hsearch__toggle { background: var(--pf-soft); }
.pf-hsearch__toggle:focus-visible { outline: 3px solid var(--pf-link); outline-offset: 2px; }
.pf-hsearch__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 100;
	background: var(--pf-surface);
	border-top: 1px solid var(--pf-line);
	border-bottom: 1px solid var(--pf-line);
	box-shadow: 0 8px 18px rgba(20, 38, 29, .08);
	padding: 16px max(16px, env(safe-area-inset-right, 0px)) 16px max(16px, env(safe-area-inset-left, 0px));
}
.pf-hsearch__panel .pf-search { max-width: 720px; margin: 0 auto; }
/* Le panneau s'étend sur toute la largeur de l'en-tête : les conteneurs intermédiaires
   de GeneratePress ne servent plus de repère pendant qu'il est ouvert. */
.site-header { position: relative; }
.site-header:has(.pf-hsearch[open]) :is(.inside-header, .main-navigation, .inside-navigation, .menu-bar-items, .mobile-menu-control-wrapper) {
	position: static;
}
/* La loupe (44 px) ne doit pas faire passer le menu sur deux lignes : on reprend
   8 px par lien de premier niveau (6 liens = 48 px). */
@media (min-width: 1025px) {
	.main-navigation.has-menu-bar-items .main-nav > ul > li > a {
		padding-left: 16px;
		padding-right: 16px;
	}
}
/* 1.4.4 : la flèche des sous-menus gardait 20 px de vide à droite ; réduite à 4 px
   pour laisser la place au logo agrandi. */
@media (min-width: 1025px) {
	.main-navigation .main-nav > ul > li.menu-item-has-children > a > .dropdown-menu-toggle {
		padding-left: 6px;
		padding-right: 4px;
	}
}

.pf-search--footer { flex-direction: column; gap: 6px; margin-top: 16px; }
.pf-search--footer label { font-weight: 700; }
.pf-search__row { display: flex; gap: 8px; }
.pf-search--footer input[type="search"] { flex: 1 1 auto; min-width: 0; }

/* 1.3.7 : bouton « Haut de page » (bouton intégré de GeneratePress, restylé) */
a.generate-back-to-top.pf-top {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	padding: 0;
	line-height: 1;
	border: 2px solid #fff; /* reste visible sur fond sombre (pied de page) */
	border-radius: 50%;
	background: var(--pf-link);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 6px 18px rgba(20, 38, 29, .25);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity .2s, transform .2s, visibility .2s, background-color .2s;
}
a.generate-back-to-top.pf-top::before { content: none; } /* icône police GeneratePress */
a.generate-back-to-top.pf-top.generate-back-to-top__show {
	opacity: 1;
	visibility: visible;
	transform: none;
}
a.generate-back-to-top.pf-top:hover,
a.generate-back-to-top.pf-top:focus-visible { background: var(--pf-link-hover); color: #fff; }
a.generate-back-to-top.pf-top:focus-visible { outline: 3px solid var(--pf-gold); outline-offset: 3px; }
a.generate-back-to-top.pf-top svg { display: block; width: 26px; height: 26px; flex: none; margin-top: -2px; }
@media (max-width: 600px) {
	a.generate-back-to-top.pf-top { right: 14px; bottom: 14px; width: 48px; height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
	a.generate-back-to-top.pf-top { transition: none; }
}
@media print {
	a.generate-back-to-top.pf-top { display: none; }
}

/* 1.4.0 : visionneuse d'images (assets/js/visionneuse.js) */
.entry-content a[href$=".jpg"] img, .entry-content a[href$=".jpeg"] img,
.entry-content a[href$=".png"] img, .entry-content a[href$=".webp"] img { cursor: zoom-in; }
html.pf-lb-open { overflow: hidden; }
dialog.pf-lb {
	position: fixed;
	inset: 0;
	width: 100vw;
	height: 100dvh;
	max-width: none;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: rgba(12, 22, 17, .94);
	color: #fff;
}
dialog.pf-lb::backdrop { background: transparent; }
.pf-lb__fig {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	height: 100%;
	margin: 0;
	padding: 64px 72px 56px;
	box-sizing: border-box;
}
.pf-lb__img {
	max-width: 100%;
	max-height: calc(100dvh - 160px);
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 6px;
	background: #fff;
	transition: opacity .15s;
}
.pf-lb.is-loading .pf-lb__img { opacity: .4; }
.pf-lb__cap { max-width: 60ch; text-align: center; font-size: 15px; line-height: 1.4; color: #E3EBE5; }
.pf-lb__count { position: absolute; top: 18px; left: 20px; margin: 0; font-size: 14px; font-weight: 700; color: #E3EBE5; }
.pf-lb__btn {
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, .7);
	border-radius: 50%;
	background: rgba(31, 90, 67, .85);
	color: #fff;
	cursor: pointer;
}
.pf-lb__btn:hover { background: var(--pf-link); border-color: #fff; }
.pf-lb__btn:focus-visible { outline: 3px solid var(--pf-gold); outline-offset: 3px; }
.pf-lb__btn[hidden] { display: none; }
.pf-lb__close { top: 10px; right: 12px; }
.pf-lb__prev { left: 12px; top: 50%; transform: translateY(-50%); }
.pf-lb__next { right: 12px; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) {
	.pf-lb__fig { padding: 60px 8px 80px; }
	.pf-lb__prev, .pf-lb__next { top: auto; bottom: 14px; transform: none; }
	.pf-lb__prev { left: calc(50% - 60px); }
	.pf-lb__next { right: calc(50% - 60px); }
}
@media (prefers-reduced-motion: reduce) { .pf-lb__img { transition: none; } }

.pf-lb.is-error .pf-lb__img { display: none; }
.pf-lb.is-error .pf-lb__fig::before { content: "Image introuvable"; font-size: 17px; font-weight: 700; }

/* 1.4.5 : bandeau météo (inc/meteo.php) */
.pf-meteo {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px 20px;
	margin: 0 0 12px;
	padding: 14px 18px 10px;
	border: 1px solid var(--pf-line);
	border-radius: var(--pf-radius);
	background: var(--pf-surface);
}
.pf-meteo p { margin: 0; }
.pf-meteo__now { display: flex; align-items: center; gap: 12px; color: var(--pf-title); }
.pf-meteo__now .pf-meteo__icon { color: var(--pf-gold); flex: none; }
.pf-meteo__temp { font-size: 28px; font-weight: 700; line-height: 1; }
.pf-meteo__label { font-weight: 700; color: var(--pf-link); }
.pf-meteo__minmax { font-size: 14px; color: var(--pf-muted); }
.pf-meteo__days { display: flex; gap: 18px; margin: 0; padding: 0; list-style: none; font-size: 14px; color: var(--pf-text); }
.pf-meteo__days li { display: flex; align-items: center; gap: 6px; margin: 0; }
.pf-meteo__days .pf-meteo__icon { color: var(--pf-muted); }
.pf-meteo__day { font-weight: 700; }
.pf-meteo__credit { flex-basis: 100%; font-size: 12px; text-align: right; }
.pf-meteo__credit a { color: var(--pf-muted); }

/* 1.4.6 : bloc bas aligné sur la grille du bloc haut (grand écran).
   « Vie de la copropriété » finit au bord droit de la 1re colonne de tuiles ;
   la colonne de droite commence au bord gauche de la 2e colonne de tuiles.
   28 px = écart à la une / Au quotidien ; 12 px = écart entre tuiles. */
@media (min-width: 1025px) {
	.pf-bottom {
		display: grid;
		grid-template-columns: calc((100% - 28px) / 2 + 28px + ((100% - 28px) / 2 - 12px) / 2) minmax(0, 1fr);
		column-gap: 12px;
		row-gap: 36px;
		align-items: start;
	}
	.pf-bottom > * { min-width: 0; }
}
