/*
Theme Name: Alhert
Theme URI: https://alhert.org/
Author: Alhert
Author URI: https://alhert.org/
Description: Magazine généraliste : ce qui change dans votre quotidien, avant que ça vous change.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License: Proprietary
Text Domain: alh-ping
*/

/* ===================== Jetons : Aube, Nuit, Vermillon ===================== */
:root {
	color-scheme: light;
	--alh-nuit: #161A2C;
	--alh-verm: #E8412C;
	--alh-verm-t: #C42E1A;
	--alh-verm-fonce: #9E2314;
	--alh-verm-c: #FF7A66;
	--alh-aube: #FBF4EE;
	--alh-rose: #FFE2D6;
	--alh-blanc: #FFFFFF;
	--alh-ardoise: #575C70;
	--alh-brume: #B9BDCC;
	--alh-filet: #E9DFD6;
	--alh-titre: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--alh-lecture: "Source Serif 4", Georgia, "Times New Roman", serif;
	--alh-ombre: 0 10px 30px -12px rgba(22,26,44,.22);
	--alh-ombre-haut: 0 24px 60px -20px rgba(22,26,44,.30);
	--alh-rayon: 18px;
	--alh-tete-h: 68px;

	/* habillage des blocs d'article */
	--sb-fond: #FBF4EE; --sb-encre: #161A2C; --sb-doux: #575C70; --sb-filet: #E9DFD6;
	--sb-accent: #E8412C; --sb-accent-fort: #C42E1A; --sb-accent-2: #161A2C;
	--sb-surf: #FFFFFF; --sb-surf2: #FFE2D6; --sb-rub: #C42E1A;
	--sb-rayon: 18px;
	--sb-ombre: 0 10px 30px -12px rgba(22,26,44,.22);
	--sb-ombre-haut: 0 24px 60px -20px rgba(22,26,44,.30);
	--sb-titre: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--sb-lecture: "Source Serif 4", Georgia, "Times New Roman", serif;
	--sb-aside-largeur: 340px;
	--sb-haut-collant: 92px;
}
/* Le site est en clair uniquement : les variables des blocs ne basculent jamais. */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		--sb-fond: #FBF4EE; --sb-encre: #161A2C; --sb-doux: #575C70; --sb-filet: #E9DFD6;
		--sb-surf: #FFFFFF; --sb-surf2: #FFE2D6;
	}
}
:root[data-theme="dark"] {
	--sb-fond: #FBF4EE; --sb-encre: #161A2C; --sb-doux: #575C70; --sb-filet: #E9DFD6;
	--sb-surf: #FFFFFF; --sb-surf2: #FFE2D6;
}

/* ===================== Base ===================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: 96px; }
body {
	margin: 0; min-width: 320px; background: var(--alh-aube); color: var(--alh-nuit);
	font: 400 17px/1.55 var(--alh-titre); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
	display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh;
}
body > * { min-width: 0; }
body > #contenu { flex: 1 0 auto; }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: inherit; }
h1, h2, h3, h4, p, ul, ol, figure { margin-block: 0; }
ul, ol { padding: 0; }
button, input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--alh-verm-t); outline-offset: 3px; border-radius: 4px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); border: 0; white-space: nowrap; }
.alh-evitement { position: absolute; left: 12px; top: -80px; z-index: 100; padding: 12px 18px; background: var(--alh-nuit); color: #fff; border-radius: 12px; font-weight: 700; text-decoration: none; }
.alh-evitement:focus { top: 12px; }
.alh-cadre, .sb-cadre { width: min(1280px, 100% - 32px); margin-inline: auto; }
@media (min-width: 768px) { .alh-cadre, .sb-cadre { width: min(1280px, 100% - 64px); } }
#contenu { display: block; }
.alh-ton2 { font-style: normal; color: var(--alh-verm-t); }
.alh-surtitre { font: 700 14px/1.2 var(--alh-titre); color: var(--alh-verm-t); letter-spacing: .02em; }

/* ===================== Bandeau « À la minute » ===================== */
.alh-minute { background: var(--alh-rose); color: var(--alh-nuit); font: 600 14.5px/1 var(--alh-titre); }
.alh-minute__in { display: flex; align-items: center; gap: 20px; height: 40px; }
.alh-minute__label { display: inline-flex; align-items: center; gap: 9px; flex: 0 0 auto; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; font-size: 13px; }
.alh-point { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--alh-verm); box-shadow: 0 0 0 0 rgba(232,65,44,.55); animation: alh-pulse 2.4s ease-out infinite; flex: 0 0 auto; }
@keyframes alh-pulse { 0% { box-shadow: 0 0 0 0 rgba(232,65,44,.55); } 70%, 100% { box-shadow: 0 0 0 10px rgba(232,65,44,0); } }
.alh-minute__fil { position: relative; flex: 1 1 auto; min-width: 0; height: 40px; margin: 0; padding: 0; list-style: none; }
/* Rotation : l'ancien titre s'efface (0,25 s) AVANT que le nouveau apparaisse (départ à 0,3 s) — jamais deux titres lisibles. */
.alh-minute__fil li { position: absolute; inset: 0; display: flex; align-items: center; gap: 10px; min-width: 0; opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s; }
.alh-minute__fil li.is-actif { opacity: 1; visibility: visible; transition: opacity .35s ease .3s, visibility 0s linear .3s; }
.alh-minute__fil time { flex: 0 0 auto; color: var(--alh-verm-t); font-weight: 800; font-variant-numeric: tabular-nums; }
.alh-minute__fil a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; font-weight: 600; }
.alh-minute__fil a:hover { text-decoration: underline; text-underline-offset: 3px; }
.alh-minute__maj, .alh-minute__date { flex: 0 0 auto; color: #3D4258; font-weight: 600; font-variant-numeric: tabular-nums; }
.alh-minute__date { font-weight: 700; color: var(--alh-nuit); }
.alh-minute__ecrire { flex: 0 0 auto; display: inline-flex; align-items: center; height: 28px; padding: 0 14px; border-radius: 999px; background: var(--alh-verm-t); color: #fff; font-weight: 700; text-decoration: none; transition: background .2s; }
.alh-minute__ecrire:hover { background: var(--alh-verm-fonce); }
@media (max-width: 1260px) { .alh-minute__maj { display: none; } }
@media (max-width: 1060px) { .alh-minute__date { display: none; } }
@media (max-width: 760px) { .alh-minute__in { height: 36px; gap: 12px; } .alh-minute__fil, .alh-minute__fil li { height: 36px; } .alh-minute__ecrire { display: none; } .alh-minute__label { font-size: 12px; } }

/* ===================== Barre d'en-tête : une seule ligne, Nuit ===================== */
.alh-tete { position: sticky; top: 0; z-index: 60; height: var(--alh-tete-h); background: var(--alh-nuit); color: #fff; transition: box-shadow .25s ease; }
.alh-tete.is-pose { box-shadow: 0 10px 28px -14px rgba(22,26,44,.6); }
.alh-tete__in { display: flex; align-items: center; gap: 24px; height: 100%; width: min(1440px, 100% - 32px); margin-inline: auto; }
@media (min-width: 768px) { .alh-tete__in { width: min(1440px, 100% - 48px); } }
.alh-logo { flex: 0 0 auto; display: block; line-height: 0; text-decoration: none; }
.alh-logo-svg { display: block; height: 58px; width: auto; max-width: none; }
.alh-nav { flex: 1 1 auto; min-width: 0; }
.alh-nav__liste { display: flex; justify-content: center; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.alh-nav__lien { position: relative; display: flex; align-items: center; gap: 10px; padding: 12px 9px; border-radius: 999px; color: #fff; font: 600 17px/1 var(--alh-titre); letter-spacing: -.01em; white-space: nowrap; text-decoration: none; transition: background .2s; }
.alh-nav__lien:hover { background: rgba(255,255,255,.1); }
.alh-nav__lien.is-actif { background: rgba(255,255,255,.14); }
.alh-nav__lien.is-actif::after { content: ""; position: absolute; left: 9px; right: 9px; bottom: 4px; height: 3px; border-radius: 3px; background: color-mix(in srgb, var(--alh-rub) 40%, #fff); }
.alh-nav__point { display: none; width: 10px; height: 10px; border-radius: 50%; background: color-mix(in srgb, var(--alh-rub) 40%, #fff); flex: 0 0 auto; }
.alh-nav__pied { display: none; }
.alh-outils { display: flex; align-items: center; gap: 10px; margin-left: auto; position: relative; }
.alh-loupe { position: relative; }
.alh-loupe > summary { list-style: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.45); cursor: pointer; transition: background .2s, border-color .2s; }
.alh-loupe > summary::-webkit-details-marker { display: none; }
.alh-loupe > summary:hover, .alh-loupe[open] > summary { background: rgba(255,255,255,.14); border-color: #fff; }
.alh-loupe svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }
.alh-loupe__panneau { position: absolute; right: 0; top: calc(100% + 12px); width: min(460px, calc(100vw - 32px)); padding: 12px; background: #fff; border-radius: 20px; box-shadow: var(--alh-ombre-haut); z-index: 70; }
.alh-recherche { display: flex; align-items: stretch; gap: 8px; margin: 0; }
.alh-recherche input { flex: 1 1 auto; min-width: 0; height: 48px; padding: 0 18px; border: 1.5px solid var(--alh-filet); border-radius: 14px; background: var(--alh-aube); color: var(--alh-nuit); font: 500 16px/1 var(--alh-titre); }
.alh-recherche input:focus { border-color: var(--alh-nuit); outline: none; box-shadow: 0 0 0 3px rgba(22,26,44,.14); }
.alh-recherche button { flex: 0 0 auto; height: 48px; padding: 0 20px; border: 0; border-radius: 14px; background: var(--alh-verm-t); color: #fff; font: 700 16px/1 var(--alh-titre); cursor: pointer; }
.alh-recherche button:hover { background: var(--alh-verm-fonce); }
.alh-burger { display: none; align-items: center; gap: 10px; height: 46px; padding: 0 16px 0 14px; border: 0; border-radius: 999px; background: var(--alh-verm-t); color: #fff; font: 700 16px/1 var(--alh-titre); cursor: pointer; }
.alh-burger__barres, .alh-burger__barres::before { display: block; width: 18px; height: 2px; border-radius: 2px; background: #fff; }
.alh-burger__barres { position: relative; box-shadow: 0 6px 0 #fff; margin-bottom: 0; transform: translateY(-3px); }
.alh-burger__barres::before { content: ""; position: absolute; top: 12px; left: 0; }
.alh-tete.is-menu .alh-burger__barres { box-shadow: none; transform: rotate(45deg); }
.alh-tete.is-menu .alh-burger__barres::before { top: 0; transform: rotate(-90deg); }

@media (max-width: 1399.98px) {
	.alh-nav__point { display: inline-block; }
	.alh-nav__lien.is-actif::after { display: none; }
	.alh-burger { display: inline-flex; }
	.alh-nav { position: absolute; left: 0; right: 0; top: 100%; display: none; padding: 8px 16px 28px; background: var(--alh-nuit); border-top: 1px solid rgba(255,255,255,.12); max-height: calc(100vh - var(--alh-tete-h)); overflow-y: auto; box-shadow: 0 30px 40px -20px rgba(22,26,44,.6); }
	.alh-tete.is-menu .alh-nav { display: block; }
	.alh-nav__liste { flex-direction: column; align-items: stretch; gap: 0; max-width: 560px; margin-inline: auto; }
	.alh-nav__lien { padding: 15px 8px; border-radius: 0; font-size: 20px; border-bottom: 1px solid rgba(255,255,255,.1); }
	.alh-nav__lien:hover, .alh-nav__lien.is-actif { background: rgba(255,255,255,.07); }
	.alh-nav__pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; max-width: 560px; margin: 18px auto 0; }
	.alh-nav__date { color: var(--alh-brume); font-weight: 600; font-size: 16px; }
}
@media (max-width: 760px) {
	:root { --alh-tete-h: 58px; --sb-haut-collant: 76px; }
	.alh-tete__in { gap: 12px; }
	.alh-logo-svg { height: 48px; }
	.alh-burger__txt { display: none; }
	.alh-burger { width: 46px; padding: 0; justify-content: center; }
	.alh-loupe > summary { width: 44px; height: 44px; }
}

/* ===================== Boutons, pastilles, liens ===================== */
.alh-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 24px; border: 1.5px solid var(--alh-nuit); border-radius: 14px; background: transparent; color: var(--alh-nuit); font: 700 16px/1.1 var(--alh-titre); text-decoration: none; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.alh-bouton:hover { background: var(--alh-nuit); color: #fff; }
.alh-bouton--plein { background: var(--alh-verm-t); border-color: var(--alh-verm-t); color: #fff; }
.alh-bouton--plein:hover { background: var(--alh-verm-fonce); border-color: var(--alh-verm-fonce); }
.alh-bouton[disabled] { opacity: .6; cursor: progress; }
.alh-lien-fleche { display: inline-flex; align-items: center; gap: 6px; color: var(--alh-verm-t); font: 700 16px/1.2 var(--alh-titre); text-decoration: none; }
.alh-lien-fleche:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 2px; }
.alh-pastille { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 5px 12px; border-radius: 999px; background: var(--alh-rub, var(--alh-nuit)); color: #fff; font: 700 13px/1.2 var(--alh-titre); text-decoration: none; transition: filter .2s; }
a.alh-pastille:hover { filter: brightness(1.12); }
.alh-ariane a.alh-pastille, .alh-ariane a.alh-pastille:hover, .alh-pastille, a.alh-pastille:visited { color: #fff; text-decoration: none; }

/* ===================== Le Ping et le voyant d'éveil ===================== */
.alh-ping { width: 24px; height: 24px; flex: 0 0 auto; overflow: visible; }
.alh-voyant { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding: 5px 13px 5px 8px; border-radius: 999px; background: #fff; color: var(--alh-nuit); box-shadow: var(--alh-ombre); font: 700 13px/1.15 var(--alh-titre); }
.alh-voyant .alh-ping { width: 22px; height: 22px; color: var(--alh-verm); }
.alh-voyant__txt { min-width: 0; }
.alh-voyant--cheval { position: absolute; left: 12px; bottom: 12px; z-index: 3; max-width: calc(100% - 24px); }
.alh-voyant--ligne { box-shadow: none; padding: 0; background: none; color: var(--alh-ardoise); font-size: 13px; margin-bottom: 4px; }
.alh-voyant--ligne .alh-ping { width: 20px; height: 20px; }
.alh-ondes { position: absolute; right: 100%; top: 0; width: 340px; height: 340px; overflow: visible; color: var(--alh-verm); pointer-events: none; z-index: 0; }

/* ===================== Cartes ===================== */
.alh-carte { position: relative; display: flex; flex-direction: column; min-width: 0; background: #fff; border: 1px solid var(--alh-filet); border-radius: var(--alh-rayon); box-shadow: var(--alh-ombre); transition: box-shadow .3s ease, transform .3s ease; }
.alh-carte:hover { box-shadow: var(--alh-ombre-haut); }
.alh-carte__media { position: relative; }
.alh-carte__photo { display: block; overflow: hidden; border-radius: var(--alh-rayon) var(--alh-rayon) 0 0; aspect-ratio: 16 / 10; background: var(--alh-rose); }
.alh-carte__photo img, .alh-carte__media > img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.alh-carte:hover .alh-carte__photo img { transform: scale(1.04); }
.alh-carte__corps { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; padding: 16px 18px 18px; }
.alh-carte__corps .alh-pastille { margin-bottom: 10px; }
.alh-carte__titre { font: 800 20px/1.2 var(--alh-titre); letter-spacing: -.015em; text-wrap: balance; overflow-wrap: anywhere; }
.alh-carte__lien { color: var(--alh-nuit); text-decoration: none; }
.alh-carte__lien::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.alh-carte:hover .alh-carte__lien { color: var(--alh-verm-t); }
.alh-carte__chapo { margin-top: 10px; font: 400 16px/1.5 var(--alh-lecture); color: var(--alh-ardoise); }
.alh-carte__meta { margin-top: 10px; font: 600 13px/1.2 var(--alh-titre); color: var(--alh-ardoise); font-variant-numeric: tabular-nums; }
.alh-etiquette { position: absolute; left: 12px; top: 12px; z-index: 3; padding: 5px 11px; border-radius: 999px; background: var(--alh-nuit); color: #fff; font: 700 12.5px/1.1 var(--alh-titre); }

/* carte horizontale : photo à gauche */
.alh-carte--h { flex-direction: row; align-items: flex-start; gap: 14px; padding: 10px; }
.alh-carte--h .alh-carte__media { flex: 0 0 112px; width: 112px; }
.alh-carte--h .alh-carte__photo { aspect-ratio: 1 / 1; border-radius: 14px; }
.alh-carte--h .alh-carte__corps { padding: 2px 0 0; flex: 1 1 auto; }
.alh-carte--h .alh-carte__titre { font-size: 17px; line-height: 1.22; }
/* rangée à vignette ronde */
.alh-carte--m { flex-direction: row; align-items: center; gap: 14px; padding: 12px 0; background: none; border: 0; border-top: 1px solid var(--alh-filet); border-radius: 0; box-shadow: none; }
.alh-carte--m:first-child { border-top: 0; }
.alh-carte--m:hover { box-shadow: none; }
.alh-carte--m .alh-carte__media { flex: 0 0 56px; width: 56px; order: 2; }
.alh-carte--m .alh-carte__photo { aspect-ratio: 1 / 1; border-radius: 50%; }
.alh-carte--m .alh-carte__corps { padding: 0; flex: 1 1 auto; order: 1; }
.alh-carte--m .alh-carte__titre { font-size: 16.5px; line-height: 1.25; }
.alh-carte--m .alh-carte__meta { margin: 0 0 4px; }
/* carte haute : titre sur la photo */
.alh-carte--t { background: none; border: 0; box-shadow: none; }
.alh-carte--t .alh-carte__photo { aspect-ratio: 5 / 4; border-radius: 22px; box-shadow: var(--alh-ombre); }
.alh-carte--t .alh-carte__voile { position: absolute; inset: 0; border-radius: 22px; background: linear-gradient(to top, rgba(22,26,44,.92) 0%, rgba(22,26,44,.55) 42%, rgba(22,26,44,0) 72%); pointer-events: none; }
.alh-carte--t .alh-voyant--cheval { top: 14px; bottom: auto; left: 14px; }
.alh-carte--t .alh-carte__corps { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; color: #fff; }
.alh-carte--t .alh-carte__titre { font-size: 24px; line-height: 1.12; }
.alh-carte--t .alh-carte__lien { color: #fff; }
.alh-carte--t:hover .alh-carte__lien { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.alh-carte--t .alh-carte__meta { color: rgba(255,255,255,.88); }
.alh-repli { display: grid; place-items: center; width: 100%; height: 100%; min-height: 100%; background: var(--alh-repli, var(--alh-nuit)); color: rgba(255,255,255,.85); }
.alh-repli .alh-ping { width: 34%; height: auto; }

/* apparition au défilement ; les ondes du voyant se dessinent */
/* Apparition au défilement = AMÉLIORATION seulement (passe 3) : une carte est visible par défaut. Le script ne pose
 * .alh-a-venir que sur les cartes SOUS le pli au chargement (jamais dans un carrousel horizontal) et retire tout
 * au bout de 1,5 s quoi qu'il arrive : aucune capture, aucun visiteur ne voit une section vide. */
.alh-carte.alh-a-venir { opacity: 0; transform: translateY(12px); }
.alh-carte.alh-a-venir.is-vu { opacity: 1; transform: none; transition: opacity .55s ease, transform .55s ease, box-shadow .3s ease; }
@media (hover: hover) { .alh-carte:hover { transform: translateY(-3px); transition: box-shadow .3s ease, transform .3s ease; } }
.alh-carte.alh-a-venir .alh-onde { stroke-dasharray: 1; stroke-dashoffset: 1; }
.alh-carte.alh-a-venir.is-vu .alh-onde { stroke-dashoffset: 0; transition: stroke-dashoffset .4s ease .3s; }

/* ===================== Grilles de cartes : jamais de case vide, jamais de carte orpheline ===================== */
.alh-grille { display: grid; gap: 24px; min-width: 0; }
.alh-grille > * { min-width: 0; }
.alh-grille--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.alh-grille--3 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.alh-grille--3 > * { grid-column: span 2; }
.alh-grille--3.alh-grille--reste-1 > :first-child { grid-column: span 6; }
.alh-grille--3.alh-grille--reste-2 > :nth-child(-n+2) { grid-column: span 3; }
.alh-grille--3.alh-grille--reste-1 > :first-child .alh-carte__photo { aspect-ratio: 21 / 9; }
@media (max-width: 1080px) {
	.alh-grille--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.alh-grille--4 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
	.alh-grille--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.alh-grille--3 > *, .alh-grille--3.alh-grille--reste-1 > :first-child, .alh-grille--3.alh-grille--reste-2 > :nth-child(-n+2) { grid-column: auto; }
	.alh-grille--3.alh-grille--reste-1 > :first-child .alh-carte__photo { aspect-ratio: 16 / 10; }
	.alh-grille--3 > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.alh-grille--4, .alh-grille--3 { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.alh-grille--4 > :last-child:nth-child(odd), .alh-grille--3 > :last-child:nth-child(odd) { grid-column: auto; }
}

/* ===================== « Charger plus » et liste de secours ===================== */
.alh-suite { display: flex; justify-content: center; margin: 36px 0 8px; }
.alh-secours { margin-top: 40px; padding: 26px 28px; background: #fff; border: 1px solid var(--alh-filet); border-radius: var(--alh-rayon); }
.alh-secours__titre { font: 800 20px/1.2 var(--alh-titre); margin-bottom: 14px; }
.alh-secours__titre span { color: var(--alh-ardoise); font-weight: 600; font-variant-numeric: tabular-nums; }
.alh-secours__liste { list-style: none; margin: 0; columns: 2; column-gap: 40px; }
.alh-secours__liste li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-top: 1px solid var(--alh-filet); break-inside: avoid; font: 600 16px/1.35 var(--alh-titre); }
.alh-secours__liste time { color: var(--alh-ardoise); font-size: 14px; font-variant-numeric: tabular-nums; padding-top: 1px; }
.alh-secours__liste a { text-decoration: none; }
.alh-secours__liste a:hover { color: var(--alh-verm-t); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) { .alh-secours { padding: 20px 16px; } .alh-secours__liste { columns: 1; } }

/* ===================== Formulaires ===================== */
.alh-form { min-width: 0; }
.alh-form__corps { position: relative; display: grid; gap: 12px; }
.alh-champ { margin: 0; display: grid; gap: 6px; min-width: 0; }
.alh-champ label { font: 700 14px/1.2 var(--alh-titre); }
.alh-champ input, .alh-champ textarea { width: 100%; min-width: 0; padding: 12px 14px; border: 1.5px solid var(--alh-filet); border-radius: 12px; background: #fff; color: var(--alh-nuit); font: 500 16px/1.4 var(--alh-titre); }
.alh-champ textarea { resize: vertical; min-height: 64px; }
.alh-champ input:focus, .alh-champ textarea:focus { border-color: var(--alh-nuit); outline: none; box-shadow: 0 0 0 3px rgba(22,26,44,.14); }
.alh-champs-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.alh-piege { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; margin: 0; }
.alh-piege label, .alh-piege input { display: block; width: 1px; height: 1px; padding: 0; border: 0; overflow: hidden; }
.alh-form__titre { display: flex; align-items: center; gap: 8px; font: 800 18px/1.2 var(--alh-titre); }
.alh-form__ping { width: 24px; height: 24px; color: var(--alh-verm); }
.alh-form__erreur { font: 600 14px/1.4 var(--alh-titre); color: var(--alh-verm-fonce); }
.alh-form__confirmation { padding: 16px 18px; border-radius: 14px; background: #EAF5EF; color: #0A4F40; font: 700 16px/1.4 var(--alh-titre); }
.alh-objets { margin: 0; padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: 10px; min-width: 0; }
.alh-objets legend { padding: 0; margin-bottom: 10px; font: 700 14px/1.2 var(--alh-titre); }
.alh-objet input { position: absolute; opacity: 0; pointer-events: none; }
.alh-objet span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border: 1.5px solid var(--alh-nuit); border-radius: 999px; font: 700 15px/1 var(--alh-titre); cursor: pointer; transition: background .2s, color .2s; }
.alh-objet input:checked + span { background: var(--alh-nuit); color: #fff; }
.alh-objet input:focus-visible + span { outline: 3px solid var(--alh-verm-t); outline-offset: 3px; }
@media (max-width: 560px) { .alh-champs-duo { grid-template-columns: minmax(0, 1fr); } }

/* ===================== Avatars ===================== */
.alh-avatar { display: block; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; background: var(--alh-nuit); }
.alh-avatar--ping svg { display: block; width: 100%; height: 100%; }

/* ===================== Sections de l'accueil : fonds qui alternent ===================== */
.alh-sec { position: relative; padding: clamp(36px, 3.6vw, 52px) 0; }
.alh-sec--aube { background: var(--alh-aube); }
.alh-sec--blanc { background: #fff; }
.alh-sec--rose { background: var(--alh-rose); }
.alh-sec--nuit { background: var(--alh-nuit); color: #fff; }
.alh-sec > .alh-cadre { position: relative; z-index: 1; }
.alh-sec-tete { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 4px solid var(--alh-rub, var(--alh-verm)); }
.alh-sec-titre { font: 900 clamp(32px, 3.6vw, 52px)/1 var(--alh-titre); letter-spacing: -.03em; color: var(--alh-rub, var(--alh-nuit)); text-wrap: balance; }
.alh-sec-ping { width: 38px; height: 38px; color: var(--alh-rub, var(--alh-verm)); }
.alh-sec-tete .alh-lien-fleche { margin-left: auto; }
.alh-sec-tete--petit { margin-bottom: 18px; padding-bottom: 10px; }
.alh-sec-tete--petit .alh-sec-titre { font-size: clamp(26px, 2.6vw, 34px); }
.alh-sec-tete--petit .alh-lien-fleche { font-size: 15px; }
.alh-sec--nuit .alh-sec-tete, .alh-sec-tete--clair { border-bottom-color: var(--alh-verm); }
.alh-sec--nuit .alh-sec-titre { color: #fff; }
.alh-sec--nuit .alh-sec-ping { color: var(--alh-verm-c); }
.alh-sec--nuit .alh-lien-fleche { color: var(--alh-verm-c); }
@media (max-width: 760px) { .alh-sec-tete { margin-bottom: 20px; } .alh-sec-ping { width: 30px; height: 30px; } }

/* ===================== Pied de page (bloc figé, habillage) ===================== */
.sb-pied { position: relative; isolation: isolate; overflow: hidden; background: var(--alh-nuit); color: #fff; padding-top: 56px; font-family: var(--alh-titre); }
.sb-pied::after { content: ""; position: absolute; z-index: -1; right: -70px; bottom: -110px; width: 600px; height: 600px; opacity: .12; pointer-events: none; background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23E8412C' stroke-linecap='round'%3E%3Cpath d='M12 19A7 7 0 0 0 5 12' stroke-width='3.2'/%3E%3Cpath d='M17 19A12 12 0 0 0 5 7' stroke-width='2.4'/%3E%3Cpath d='M22 19A17 17 0 0 0 5 2' stroke-width='1.7'/%3E%3C/g%3E%3Ccircle cx='5' cy='19' r='3' fill='%23E8412C'/%3E%3C/svg%3E"); }
.sb-pied-haut { padding-bottom: 36px; border-bottom-color: rgba(255,255,255,.16); }
.sb-pied-marque { gap: 20px; }
.sb-mono--pied, .alh-logo-svg--pied { height: 64px; width: auto; max-width: none; }
.sb-pied-nom { font: 800 18px/1.2 var(--alh-titre); }
.sb-pied-baseline { font: 400 16px/1.4 var(--alh-lecture); color: var(--alh-brume); max-width: 32ch; }
.sb-pied-loupe { border-color: rgba(255,255,255,.4); }
.sb-pied-loupe input { min-width: 240px; font: 500 16px/1 var(--alh-titre); }
.sb-pied-loupe input::placeholder { color: var(--alh-brume); }
.sb-pied-loupe button { background: var(--alh-verm-t); font: 700 15px/1 var(--alh-titre); padding-inline: 22px; }
.sb-pied-grille { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1.2fr) minmax(0, .7fr); gap: 48px; padding-block: 44px; }
.sb-pied-titre { color: var(--alh-brume); font: 700 13px/1.2 var(--alh-titre); letter-spacing: .08em; }
.sb-pied-rubriques { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 28px; }
.sb-pied-rubrique-tete { font-size: 15.5px; flex-wrap: wrap; }
.sb-pied-compte { color: var(--alh-brume); opacity: 1; font-size: 13px; }
.sb-pied-rubrique-chapo { color: var(--alh-brume); font: 400 13.5px/1.4 var(--alh-lecture); }
.sb-pied-fil a, .sb-pied-liste a { color: #fff; font-size: 15px; line-height: 1.35; }
.sb-pied-fil time { color: var(--alh-brume); font-size: 12.5px; }
.sb-pied-fil { gap: 14px; }
.sb-pied-liste { gap: 14px; }
.sb-ours { color: var(--alh-brume); font-size: 14px; border-top-color: rgba(255,255,255,.16); }
.sb-nav-mobile { display: none !important; }
@media (max-width: 980px) { .sb-pied-grille { grid-template-columns: minmax(0, 1fr); gap: 36px; } .sb-pied::after { width: 420px; height: 420px; } }
@media (max-width: 560px) { .sb-pied-rubriques { grid-template-columns: minmax(0, 1fr); } .sb-pied-loupe { width: 100%; } .sb-pied-loupe input { min-width: 0; flex: 1; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	.alh-js .alh-carte, .alh-js .alh-carte.is-vu { opacity: 1; transform: none; }
	.alh-js .alh-carte .alh-onde { stroke-dashoffset: 0; }
	.alh-minute__fil li { transition: none; }
}
