/*
 * Havvaa V2.1 — gabarits : fil d'Ariane, article (§14), épisode (§10), page légale (§15),
 * page pilier, page de liens, 404, archive. Valeurs : design-sources/v2.1/source/_gen/*.js.
 */

.hv-main { display: block; }
.hv-main > .hv-b-cta-final, .hv-main > .hv-seuil-wrap { margin-top: var(--hv-section); }
.hv-contenu-page { display: block; }
.hv-contenu-page > .hv-b-cta-final:last-child { margin-bottom: 16px; }
@media (max-width: 1023px) { .hv-contenu-page > .hv-b-cta-final:last-child { margin-bottom: 10px; } }

/* ---------- fil d'Ariane ---------- */
.hv-fil-ariane { padding-top: 20px; }
.hv-fil-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; font-size: 12.5px; line-height: normal; color: var(--hv-meta); }
.hv-fil-ariane li { display: flex; gap: 8px; align-items: center; }
.hv-fil-ariane li + li::before { content: "›"; color: var(--hv-meta); }
.hv-fil-ariane a { color: var(--hv-meta); text-decoration: none; }
.hv-fil-ariane [aria-current] { color: var(--hv-encre); }
.hv-fil-ariane li:nth-last-child(2):has(+ .hv-fil-ariane-titre) a { color: var(--hv-encre); }
.hv-fil-ariane-titre { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hv-fil-ariane + .hv-contenu-page > .hv-b-hero:first-child, .hv-main--territoire .hv-fil-ariane { padding-bottom: 20px; }
@media (max-width: 599px) { .hv-fil-ariane { padding-top: 12px; } .hv-main--territoire .hv-fil-ariane { padding-bottom: 12px; } }

/* ---------- article ---------- */
.hv-article-tete { padding-top: 36px; }
.hv-article-tete-texte { display: flex; flex-direction: column; gap: 22px; align-items: center; text-align: center; }
.hv-article-tete-texte .hv-meta { justify-content: center; font-size: 13px; }
.hv-article-titre { font-family: var(--hv-prata); font-size: var(--hv-h1); line-height: 1.04; letter-spacing: -0.02em; text-wrap: balance; }
.hv-article-chapeau { font-family: var(--hv-newsreader); font-size: var(--hv-lead); line-height: 1.45; color: var(--hv-encre-2); text-wrap: pretty; }
.hv-article-tete .hv-reponse { text-align: left; }
.hv-article-ouverture { height: 480px; border-radius: 28px; margin-top: 56px; }
.hv-article-corps-grille { display: grid; grid-template-columns: minmax(0, 1fr) 376px; /* le texte prend la largeur, le sommaire garde la sienne (1280 : 720 + 376) */ gap: 56px; align-items: start; padding-top: 72px; }
.hv-article-tete--sans-image + .hv-article-corps-grille { padding-top: 56px; }
.hv-article-corps { min-width: 0; }
.hv-article-corps > .wp-block-post-content > * + * { margin-top: 26px; }
.hv-article-corps .wp-block-post-content > p, .hv-episode-corps .wp-block-post-content > p { font-size: 19px; }
.hv-article-colonne { align-self: stretch; display: flex; flex-direction: column; gap: 28px; min-width: 0; }
.hv-article-colonne-collante { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }
.hv-fin-article { display: block; }
.hv-fin-article-section { padding-top: 96px; }
.hv-fin-article-section + .hv-fin-article-section { padding-top: 72px; }
.hv-fin-article-section .hv-tete-section { margin-bottom: 28px; }
.hv-article-entre-nous { padding-top: 96px; }
.hv-article-entre-nous .hv-en { width: 100%; max-width: none; }
@media (min-width: 1024px) {
	.hv-article-entre-nous .hv-en--module { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 20px 48px; align-items: center; padding: 40px 48px; }
	.hv-article-entre-nous .hv-en--module .hv-en-tete { grid-row: span 2; }
	.hv-article-entre-nous .hv-en--module .hv-en-note { grid-column: 2; }
}
@media (max-width: 1279px) and (min-width: 1024px) { .hv-article-corps-grille { grid-template-columns: minmax(0, 1fr) 300px; } }
@media (max-width: 1023px) {
	.hv-article-corps-grille { display: flex; flex-direction: column; gap: 32px; padding-top: 40px; }
	.hv-article-colonne { display: contents; }
	.hv-b-sommaire { order: -1; width: 100%; }
	.hv-b-sommaire .hv-sommaire { background: var(--hv-blanc); border: 1px solid var(--hv-filet); border-radius: 20px; padding: 16px 20px; }
	.hv-article-colonne-collante { position: static; width: 100%; }
	.hv-fin-article-section { padding-top: 56px; }
	.hv-fin-article-section + .hv-fin-article-section { padding-top: 48px; }
	.hv-article-entre-nous { padding-top: 48px; padding-inline: 12px; }
}
@media (max-width: 599px) {
	.hv-article-tete { padding-top: 20px; }
	.hv-article-tete-texte { align-items: flex-start; text-align: left; gap: 16px; }
	.hv-article-tete-texte .hv-meta { justify-content: flex-start; font-size: 12.5px; }
	.hv-article-titre { font-size: 42px; }
	.hv-article-chapeau { font-size: 18px; }
	.hv-article-tete .hv-conteneur { padding-inline: 12px; }
	.hv-article-ouverture { height: 240px; border-radius: 22px; margin-top: 28px; }
	.hv-article-corps .wp-block-post-content > p, .hv-episode-corps .wp-block-post-content > p { font-size: 17.5px; }
}

/* ---------- épisode ---------- */
.hv-episode-tete {
	padding-top: 36px; display: grid; grid-template-columns: 360px minmax(0, 1fr); column-gap: 56px; row-gap: 18px; align-items: start;
	grid-template-areas: "poch eb" "poch titre" "poch desc" "poch lecteur" "poch plat" "poch vide";
	grid-template-rows: auto auto auto auto auto 1fr;
}
.hv-episode-pochette { grid-area: poch; width: 360px; height: 360px; border-radius: 24px; background: var(--hv-image-vide); }
.hv-episode-eyebrow { grid-area: eb; }
.hv-episode-eyebrow-mobile, .hv-episode-meta-mobile { display: none; }
.hv-episode-titre { grid-area: titre; font-family: var(--hv-prata); font-size: 48px; line-height: 1.06; letter-spacing: -0.015em; text-wrap: balance; }
.hv-episode-desc { grid-area: desc; font-family: var(--hv-newsreader); font-size: 20px; line-height: 1.5; color: var(--hv-encre-2); max-width: 46ch; }
.hv-lecteur { grid-area: lecteur; margin-top: 6px; background: var(--hv-encre); border-radius: 20px; padding: 18px 22px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.hv-lecteur-centre { flex: 1 1 auto; display: flex; flex-direction: column; gap: 8px; min-width: 120px; }
.hv-lecteur-curseur { height: 20px; display: flex; align-items: center; cursor: pointer; }
.hv-lecteur-curseur .hv-lecteur-piste { width: 100%; }
.hv-lecteur-poignee { position: absolute; left: 0; top: 50%; width: 14px; height: 14px; border-radius: 50%; background: var(--hv-creme); transform: translate(-50%, -50%); }
.hv-lecteur-temps { display: flex; justify-content: space-between; font-size: 12px; color: #D9C5C0; margin: 0; }
.hv-lecteur-vitesse { font-size: 12.5px; font-weight: 600; color: #E9C4BC; border: 1px solid #5A4547; border-radius: 999px; min-height: 36px; padding: 0 12px; background: none; cursor: pointer; }
.hv-lecteur-vitesse[disabled] { opacity: 0.55; cursor: default; }
.hv-lecteur-natif { width: 100%; }
.hv-lecteur-message { flex: 1 0 100%; font-size: 13px; color: #E9C4BC; margin: 0; }
.hv-lecteur-message a { color: inherit; }
.hv-episode-plateformes { grid-area: plat; }
.hv-episode-grille { padding-top: 80px; }
.hv-episode-corps > .wp-block-post-content > * + * { margin-top: 40px; }
.hv-episode-corps > .wp-block-post-content > h2 + p { margin-top: 16px; }
.hv-episode-corps h2 { font-size: 30px; padding-top: 0; }
.hv-plus-loin { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.hv-plus-loin-carte { border-radius: 18px; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; color: var(--hv-encre); text-decoration: none; }
.hv-plus-loin-titre { font-family: var(--hv-prata); font-size: 20px; line-height: 1.2; }
.hv-episode-colonne .hv-b-territoire-carte { margin-top: 0; }
.hv-voisins { padding-top: 80px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: center; }
.hv-voisin { border-radius: 20px; padding: 20px 22px; display: flex; flex-direction: column; gap: 8px; color: var(--hv-encre); text-decoration: none; }
.hv-voisin-titre { font-family: var(--hv-prata); font-size: 22px; line-height: 1.2; }
.hv-voisin-meta { font-size: 12.5px; color: var(--hv-meta); }
.hv-voisins-dernier { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: center; font-size: 13px; color: var(--hv-meta); text-align: center; padding: 20px; margin: 0; }
@media (max-width: 1023px) {
	.hv-episode-tete { grid-template-columns: 88px minmax(0, 1fr); column-gap: 16px; row-gap: 14px; padding-top: 20px;
		grid-template-areas: "ebm ebm" "titre titre" "meta meta" "lecteur lecteur" "plat plat" "poch desc"; grid-template-rows: none; }
	.hv-episode-pochette { width: 88px; height: 88px; border-radius: 14px; margin-top: 10px; }
	.hv-episode-eyebrow { display: none; }
	.hv-episode-eyebrow-mobile { display: block; grid-area: ebm; }
	.hv-episode-meta-mobile { display: block; grid-area: meta; font-size: 13px; color: var(--hv-meta); margin: 0; }
	.hv-episode-titre { font-size: 34px; line-height: 1.08; }
	.hv-episode-desc { font-size: 16.5px; padding-top: 10px; }
	.hv-lecteur { padding: 14px 16px; gap: 12px; margin-top: 6px; }
	.hv-episode-plateformes { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--hv-marge)); padding-inline: var(--hv-marge); gap: 8px; scrollbar-width: none; }
	.hv-episode-plateformes .hv-plateforme { height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--hv-filet); background: var(--hv-blanc); color: var(--hv-encre); font-size: 13px; white-space: nowrap; }
	.hv-episode-plateformes .hv-plateforme span[aria-hidden] { color: var(--hv-bordeaux); }
	.hv-episode-grille { padding-top: 44px; }
	.hv-episode-corps > .wp-block-post-content > * + * { margin-top: 28px; }
	.hv-episode-corps h2 { font-size: 26px; }
	.hv-episode-colonne .hv-article-colonne-collante { padding-top: 20px; }
	.hv-episode-colonne .hv-b-bloc-bilan { order: 3; }
	.hv-voisins { padding-top: 40px; }
	.hv-voisin-titre { font-size: 17px; }
}
@media (max-width: 599px) { .hv-voisins { grid-template-columns: minmax(0, 1fr); } }

/* ---------- page légale ---------- */
.hv-legal-tete { padding-top: 48px; display: flex; flex-direction: column; gap: 22px; }
.hv-legal-onglets .hv-pilules { gap: 8px; }
.hv-legal-tete .hv-legal-titre { font-family: var(--hv-prata); font-size: 52px; line-height: 1.06; letter-spacing: -0.015em; padding-top: 12px; }
.hv-legal-version { display: flex; flex-wrap: wrap; gap: 6px 24px; font-size: 14px; color: var(--hv-meta); margin: 0; }
.hv-legal-version a { font-weight: 600; min-height: 32px; display: inline-flex; align-items: center; }
.hv-main .hv-legal-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 72px; align-items: start; padding-top: 56px; justify-content: start; }
.hv-main .hv-legal-layout:not(:has(.hv-b-legal-sommaire)) { grid-template-columns: minmax(0, 1fr); }
.hv-b-legal-sommaire { position: sticky; top: 24px; }
.hv-b-legal-sommaire .hv-sommaire-liste { gap: 6px; }
.hv-b-legal-sommaire .hv-sommaire-liste a { min-height: 32px; }
.hv-legal .hv-legal-corps h2 { font-size: 26px; line-height: 1.2; padding-top: 20px; }
.hv-legal .hv-legal-corps p, .hv-legal .hv-legal-corps li { font-size: 18px; line-height: 1.65; }
@media (min-width: 1024px) { .hv-b-legal-sommaire .hv-sommaire-titre { display: none; } .hv-b-legal-sommaire .hv-sommaire-liste { margin-top: 0; } }
.hv-fil-court { display: none; }
.hv-legal-corps table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--hv-blanc); border: 1px solid var(--hv-filet); border-radius: 18px; overflow: hidden; font-size: 15px; }
.hv-art-layout > * { min-width: 0; } /* au téléphone, le texte tient dans l'écran (pas de défilement de côté) */
.hv-legal-corps th, .hv-legal-corps td { overflow-wrap: anywhere; }
.hv-legal-corps th, .hv-legal-corps td { padding: 14px 16px; text-align: left; vertical-align: top; border-top: 1px solid var(--hv-filet); }
.hv-legal-corps tr:first-child > * { border-top: 0; }
.hv-legal-corps thead th, .hv-legal-corps th { background: var(--hv-creme); font-size: 12.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--hv-meta); }
/* Tableaux d'un texte (développement des territoires, 13/10) : le même bloc blanc à filet que les pages légales. */
.hv-prose .wp-block-table { overflow-x: auto; }
.hv-prose table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--hv-blanc); border: 1px solid var(--hv-filet); border-radius: 18px; overflow: hidden; font-size: 15px; line-height: 1.5; }
.hv-prose .wp-block-table thead { border: 0; }
.hv-prose th, .hv-prose td { border: 0; border-top: 1px solid var(--hv-filet); padding: 14px 16px; text-align: left; vertical-align: top; overflow-wrap: break-word; hyphens: manual; }
.hv-prose tr:first-child > * { border-top: 0; }
.hv-prose thead th { background: var(--hv-creme); font-size: 12.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--hv-meta); }
.hv-legal-corps .hv-art-corps > *, .hv-legal-corps > .wp-block-post-content > * + * { margin-top: 18px; }
.hv-main.hv-legal { padding-bottom: 96px; }
@media (max-width: 1023px) {
	.hv-main .hv-legal-layout { display: flex; flex-direction: column; gap: 32px; padding-top: 20px; }
	.hv-b-legal-sommaire { position: static; width: 100%; }
	.hv-b-legal-sommaire .hv-sommaire { background: var(--hv-blanc); border: 1px solid var(--hv-filet); border-radius: 20px; padding: 14px 18px; }
	.hv-legal-onglets { margin-inline: calc(-1 * var(--hv-marge)); padding-inline: var(--hv-marge); overflow-x: auto; scrollbar-width: none; }
	.hv-legal-onglets .hv-pilules { flex-wrap: nowrap; }
	.hv-legal-tete { padding-top: 24px; gap: 18px; }
	.hv-legal-tete .hv-legal-titre { padding-top: 0; }
	.hv-legal-version { flex-direction: column; font-size: 13.5px; }
	.hv-legal .hv-legal-corps h2 { font-size: 22px; }
	.hv-legal .hv-legal-corps p, .hv-legal .hv-legal-corps li { font-size: 16.5px; }
	.hv-legal-tete .hv-legal-titre { font-size: 34px; line-height: 1.08; }
	.hv-fil-long { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.hv-fil-court { display: inline; }
	.hv-main.hv-legal { padding-bottom: 64px; }
}

/* ---------- page pilier ---------- */
.hv-pilier-tete { padding-top: 48px; display: flex; flex-direction: column; gap: 12px; }
.hv-texte-importe { padding-top: 40px; }
.hv-texte-importe > .wp-block-post-content > * + * { margin-top: 22px; }

/* ---------- page de liens /liens/ (lot 7, §33 · HANDOFF_LOT7) ----------
 * Boudoir : fond bordeaux (halo rosé en haut, ombre en bas), trois matières (photo voilée, velours, encre),
 * filet satiné en dégradé. Ni bannière, ni en-tête, ni pied ; le bandeau des cookies reste. */
html:has(.hv-liens-page), body:has(.hv-liens-page) { background: #6E1B26; }
.hv-main.hv-liens-page { min-height: 100vh; min-height: 100dvh; padding: 0; background: radial-gradient(90% 38% at 50% 0%, rgba(184, 64, 80, 0.55) 0%, rgba(124, 31, 42, 0) 72%), radial-gradient(140% 70% at 50% 115%, #3A0C14 0%, rgba(58, 12, 20, 0) 62%), #6E1B26; }
.hv-liens-contenu { max-width: none; margin: 0; padding: 0; }
.hv-li { --hv-li-satin: linear-gradient(180deg, rgba(242, 216, 210, 0.5) 0%, rgba(242, 216, 210, 0.08) 100%); --hv-li-ombre: 0 22px 40px -22px rgba(10, 2, 4, 0.85);
	width: 100%; max-width: calc(420px + 36px); margin: 0 auto; box-sizing: border-box; padding: 32px 18px; display: flex; flex-direction: column; gap: 12px; color: #FCF7F0; font-family: var(--hv-jakarta); }
.hv-li :focus-visible { outline: 2px solid #FCF7F0; outline-offset: 3px; }
.hv-li a { text-decoration: none; }
/* Profil */
.hv-li-profil { display: flex; flex-direction: column; align-items: center; text-align: center; margin-bottom: 10px; }
.hv-li-portrait { position: relative; width: 80px; height: 80px; border-radius: 50%; overflow: hidden; background: #52121C; box-shadow: 0 0 0 1px rgba(242, 216, 210, 0.55), 0 0 0 5px rgba(42, 8, 14, 0.4), 0 0 0 6px rgba(242, 216, 210, 0.16), 0 18px 30px -12px rgba(10, 2, 4, 0.8); }
.hv-li-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.hv-li-titre { margin: 16px 0 0; font-family: var(--hv-prata); font-weight: 400; font-size: 31px; line-height: 1; letter-spacing: 0.02em; color: #FCF7F0; text-shadow: 0 2px 18px rgba(10, 2, 4, 0.35); }
.hv-li-signature { margin: 6px 0 0; font-family: var(--hv-newsreader); font-style: italic; font-size: 18px; line-height: 1.25; color: #F4D9CF; }
.hv-li-ornement { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 0 8px; }
.hv-li-ornement span { width: 22px; height: 1px; background: linear-gradient(90deg, rgba(242, 216, 210, 0), rgba(242, 216, 210, 0.5)); }
.hv-li-ornement span:nth-child(2) { width: 4px; height: 4px; transform: rotate(45deg); background: #E9C4BC; }
.hv-li-ornement span:nth-child(3) { background: linear-gradient(90deg, rgba(242, 216, 210, 0.5), rgba(242, 216, 210, 0)); }
.hv-li-phrase { margin: 0; max-width: none; font-family: var(--hv-newsreader); font-size: 15px; line-height: 1.5; color: rgba(252, 247, 240, 0.86); text-wrap: balance; }
.hv-li-reseaux { display: flex; justify-content: center; gap: 12px; padding-top: 14px; }
.hv-li-reseau { width: 44px; height: 44px; box-sizing: border-box; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #FCF7F0; } /* Rendu du dessin (lot 7) : pictogramme seul, sans rond visible. */
.hv-li-reseau:hover { color: #FCF7F0; }
/* Pastille Bilan : la seule action pleine. */
.hv-li-bilan { position: relative; display: block; border-radius: 24px; overflow: hidden; color: #FCF7F0; background: #2F0A12; box-shadow: var(--hv-li-ombre), 0 0 0 1px rgba(242, 216, 210, 0.35); }
.hv-li-bilan:hover { color: #FCF7F0; text-decoration: none; }
.hv-li-bilan-photo { position: absolute; inset: 0; }
.hv-li-bilan-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hv-li-bilan-voile { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(36, 6, 11, 0.94) 0%, rgba(36, 6, 11, 0.78) 52%, rgba(36, 6, 11, 0.2) 100%); }
.hv-li-bilan:active .hv-li-bilan-voile::after { content: ""; position: absolute; inset: 0; background: rgba(36, 6, 11, 0.06); }
.hv-li-bilan-corps { position: relative; min-height: 120px; box-sizing: border-box; padding: 20px 18px 18px 20px; display: grid; grid-template-columns: minmax(0, 1fr) 40px; gap: 14px; align-items: end; }
.hv-li-bilan-texte { display: flex; flex-direction: column; gap: 6px; }
.hv-li-bilan-titre { font-family: var(--hv-prata); font-size: 22px; line-height: 1.12; color: #FCF7F0; }
.hv-li-bilan-phrase { font-size: 13px; line-height: 1.4; color: #F2D8D2; }
.hv-li-fleche { width: 40px; height: 40px; border-radius: 50%; background: #FCF7F0; color: #7C1F2A; box-shadow: 0 8px 18px -8px rgba(10, 2, 4, 0.7); display: flex; align-items: center; justify-content: center; }
/* Entre Nous : velours, rangée qui déplie le formulaire (220 ms). */
.hv-li .hv-en--liens { display: block; border-radius: 24px; padding: 14px; gap: 0; background: linear-gradient(160deg, #4E111B 0%, #2F0A12 100%) padding-box, var(--hv-li-satin) border-box; border: 1px solid transparent; box-shadow: var(--hv-li-ombre); }
.hv-en--liens .hv-en-rangee { width: 100%; display: grid; grid-template-columns: 52px minmax(0, 1fr) 40px; gap: 14px; align-items: center; padding: 0; margin: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; border-radius: 14px; }
.hv-en--liens .hv-en-vignette { position: relative; width: 52px; height: 52px; border-radius: 14px; overflow: hidden; background: #52121C; box-shadow: 0 0 0 1px rgba(242, 216, 210, 0.25); }
.hv-en--liens .hv-en-vignette img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hv-en--liens .hv-en-rangee-texte { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hv-en--liens .hv-en-titre { font-family: var(--hv-prata); font-size: 19px; line-height: 1.15; color: #FCF7F0; }
.hv-en--liens .hv-en-sous-titre { font-family: var(--hv-newsreader); font-style: italic; font-size: 15px; line-height: 1.35; color: #F2D8D2; }
.hv-en--liens .hv-en-chevron { width: 40px; height: 40px; box-sizing: border-box; border-radius: 50%; border: 1px solid rgba(242, 216, 210, 0.35); color: #FCF7F0; display: flex; align-items: center; justify-content: center; }
.hv-en--liens .hv-en-chevron svg { transition: transform 220ms ease-out; }
.hv-en--liens.est-ouvert .hv-en-chevron svg { transform: rotate(180deg); }
.hv-en--liens .hv-en-corps { display: grid; grid-template-rows: 0fr; visibility: hidden; padding: 0; transition: grid-template-rows 220ms ease-out, visibility 0s linear 220ms; }
.hv-en--liens.est-ouvert .hv-en-corps { grid-template-rows: 1fr; visibility: visible; transition: grid-template-rows 220ms ease-out, visibility 0s; }
.hv-en--liens .hv-en-corps-interieur { min-height: 0; overflow: hidden; }
.hv-en--liens .hv-en-corps-contenu { margin-top: 14px; padding-top: 16px; border-top: 1px solid rgba(242, 216, 210, 0.18); display: flex; flex-direction: column; gap: 12px; }
.hv-en--liens .hv-en-label { font-size: 10.5px; letter-spacing: 0.18em; color: #E9C4BC; }
.hv-en--liens .hv-en-champ input { height: 50px; background: rgba(252, 247, 240, 0.06); border: 1px solid rgba(242, 216, 210, 0.35); color: #FCF7F0; }
.hv-en--liens .hv-en-champ input::placeholder { color: rgba(242, 216, 210, 0.7); }
.hv-en--liens .hv-en-champ input:focus { border: 1.5px solid #FCF7F0; box-shadow: 0 0 0 3px rgba(252, 247, 240, 0.14); }
.hv-en--liens .hv-en-champ input[aria-invalid="true"] { border: 1.5px solid #FFC4BA; }
.hv-en--liens .hv-en-erreur { color: #FFC4BA; padding-left: 14px; }
.hv-en--liens .hv-en-bouton, .hv-en--liens .hv-en-form.est-envoi .hv-en-bouton { height: 50px; background: #FCF7F0; color: #7C1F2A; font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.hv-en--liens .hv-en-bouton:hover { background: #FCF7F0; }
.hv-en--liens .hv-en-form.est-envoi .hv-en-bouton::before { border-color: rgba(124, 31, 42, 0.3); border-top-color: #7C1F2A; }
.hv-en--liens .hv-en-note { font-size: 12px; color: #E9C4BC; }
.hv-en--liens .hv-en-etat { border: 1px solid rgba(242, 216, 210, 0.22); background: rgba(252, 247, 240, 0.06); border-radius: 18px; padding: 16px 18px; }
.hv-en--liens .hv-en-picto { display: none; }
.hv-en--liens .hv-en-ok, .hv-en--liens .hv-en-deja { color: #FCF7F0; }
.hv-en--liens .hv-en-etat-texte { font-size: 13.5px; color: #F2D8D2; }
/* Carte podcast : encre, dernier épisode. */
.hv-li-pod { border-radius: 24px; padding: 14px; background: linear-gradient(160deg, #2C0B11 0%, #19070A 100%) padding-box, var(--hv-li-satin) border-box; border: 1px solid transparent; box-shadow: var(--hv-li-ombre); color: #FCF7F0; display: flex; flex-direction: column; gap: 12px; }
.hv-li-pod-rangee { display: grid; grid-template-columns: 52px minmax(0, 1fr) 44px; gap: 14px; align-items: center; }
.hv-li-pod-rangee:not(:has(.hv-li-lecture)) { grid-template-columns: 52px minmax(0, 1fr); }
.hv-li-pochette { width: 52px; height: 52px; border-radius: 14px; background: #52121C; box-shadow: 0 0 0 1px rgba(242, 216, 210, 0.25); }
.hv-li-pod-texte { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hv-li-pod-meta { margin: 0; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; color: #E9C4BC; }
.hv-li-pod-titre { margin: 0; font-family: var(--hv-jakarta); font-size: 14.5px; font-weight: 600; line-height: 1.35; letter-spacing: 0; color: #FCF7F0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hv-li-lecture { width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #FCF7F0; color: #7C1F2A; box-shadow: 0 8px 18px -8px rgba(10, 2, 4, 0.7); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.hv-li-icone-lecture { width: 0; height: 0; margin-left: 3px; border-style: solid; border-width: 6px 0 6px 10px; border-color: transparent transparent transparent currentColor; }
.hv-li-pod.est-lecture .hv-li-icone-lecture { width: 10px; height: 11px; margin: 0; border: 0; border-left: 3px solid currentColor; border-right: 3px solid currentColor; box-sizing: border-box; }
.hv-li-progression { display: flex; align-items: center; gap: 10px; }
.hv-li-progression[hidden] { display: none; }
.hv-li-piste { flex: 1 1 auto; height: 20px; display: flex; align-items: center; cursor: pointer; }
.hv-li-barre { position: relative; width: 100%; height: 2px; border-radius: 2px; background: rgba(242, 216, 210, 0.22); }
.hv-li-ecoule { position: absolute; left: 0; top: 0; bottom: 0; width: 0; background: #FCF7F0; }
.hv-li-poignee { position: absolute; left: 0; top: 50%; width: 10px; height: 10px; border-radius: 50%; background: #FCF7F0; transform: translate(-50%, -50%); }
.hv-li-temps { font-size: 11.5px; color: #E9C4BC; font-variant-numeric: tabular-nums; white-space: nowrap; }
.hv-li-pod-erreur { margin: 0; font-size: 12px; line-height: 1.4; color: #E9C4BC; }
.hv-li-pod-erreur[hidden] { display: none; }
.hv-li-ecoute { display: flex; flex-direction: column; gap: 6px; }
.hv-li-pilules { display: flex; flex-wrap: wrap; gap: 8px; }
.hv-li-pilule { position: relative; height: 36px; padding: 0 14px; box-sizing: border-box; border-radius: 999px; border: 1px solid rgba(242, 216, 210, 0.42); color: #FCF7F0; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; white-space: nowrap; }
.hv-li-pilule::after { content: ""; position: absolute; inset: -4px 0; }
.hv-li-pilule:hover { color: #FCF7F0; }
.hv-li-pilule-fleche { color: #E9C4BC; }
@media (max-width: 360px) { .hv-li { padding-inline: 14px; } }
@media (min-width: 1024px) {
	.hv-li { padding: 64px 18px 56px; }
	.hv-li-portrait { width: 88px; height: 88px; }
	.hv-li-titre { font-size: 34px; }
	.hv-li-signature { font-size: 19px; }
	.hv-li-phrase { font-size: 15.5px; }
}
@media (prefers-reduced-motion: reduce) {
	.hv-en--liens .hv-en-corps, .hv-en--liens.est-ouvert .hv-en-corps, .hv-en--liens .hv-en-chevron svg { transition: none; }
}

/* ---------- 404, erreur, archive ---------- */
.hv-main > .hv-err { padding-top: 72px; }
/* Page 404 (lot 6, §29) : bloc 80 × 64, 860 px au plus ; territoires 120 plus bas ; 128 avant le pied, sans CTA final. */
.hv-404 { padding-bottom: 128px; }
.hv-404-bloc { width: calc(100% - 2 * var(--hv-marge)); max-width: var(--hv-conteneur); margin-inline: auto; padding-top: 80px; display: flex; flex-direction: column; align-items: flex-start; gap: 22px; }
.hv-404-bloc > * { max-width: 860px; }
.hv-404-titre { margin: 0; font-family: var(--hv-prata); font-weight: 400; font-size: 60px; line-height: 1.06; letter-spacing: -0.015em; text-wrap: balance; color: var(--hv-encre); }
.hv-404-texte { margin: 0; font-family: var(--hv-newsreader); font-size: 21px; line-height: 1.5; color: var(--hv-secondaire); max-width: 46ch; text-wrap: pretty; }
.hv-404-boutons { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 10px; }
.hv-404-boutons .hv-bouton { height: 56px; min-height: 56px; white-space: nowrap; }
.hv-404-bilan { padding: 0 28px; font-size: 13px; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 700; }
.hv-404-accueil { padding: 0 24px; font-size: 15px; }
.hv-404 > .hv-b-mosaique { margin-top: 120px; }
.hv-404 > .hv-b-mosaique .hv-tete-section { margin-bottom: 28px; }
@media (max-width: 599px) {
	.hv-404 { padding-bottom: 72px; }
	.hv-404-bloc { padding-top: 32px; gap: 16px; align-items: stretch; }
	.hv-404-titre { font-size: 38px; }
	.hv-404-texte { font-size: 18px; }
	.hv-404-boutons { flex-direction: column; gap: 10px; padding-top: 8px; }
	.hv-404-boutons .hv-bouton { width: 100%; }
	.hv-404 > .hv-b-mosaique { margin-top: 64px; }
	.hv-404 > .hv-b-mosaique .hv-tete-section { margin-bottom: 18px; }
}
.hv-archive { padding-top: 48px; display: flex; flex-direction: column; gap: 40px; }
.hv-main > .hv-seuil-wrap { padding: 0; }
.hv-seuil-wrap > .hv-b-cta-final { margin: 0 16px 16px; }
@media (min-width: 1024px) and (max-width: 1920px) { .hv-seuil-wrap > .hv-b-cta-final { margin-left: 64px; margin-right: 64px; } }
@media (min-width: 1921px) { .hv-seuil-wrap > .hv-b-cta-final { margin-inline: auto; } }
@media (max-width: 1023px) { .hv-seuil-wrap > .hv-b-cta-final { margin: 0 12px 12px; } }
@media (max-width: 599px) { .hv-seuil-wrap > .hv-b-cta-final { margin: 0 10px 10px; } }
/* Épisode (prototype epD / epM de v21-media.js, chapListV, transOpen, prevNext) — à l'abri des styles de lecture. */
.hv-episode-corps .wp-block-post-content > p, .hv-episode-corps .hv-b-section-lecture p { font-size: 18.5px; line-height: 1.6; }
.hv-episode-corps .hv-b-section-lecture-titre, .hv-episode-corps h2.hv-b-section-lecture-titre { font-size: 30px; line-height: normal; padding-top: 0; }
.hv-episode-corps .hv-chapitre, .hv-episode-corps .hv-chapitres li { font-family: var(--hv-jakarta); font-size: 16px; line-height: normal; margin: 0; }
.hv-episode-corps .hv-chapitre-temps { font-family: var(--hv-jakarta); font-size: 12.5px; line-height: normal; }
.hv-episode-corps .hv-chapitre-titre { font-family: var(--hv-newsreader); font-size: 17px; line-height: normal; }
.hv-episode-corps .hv-b-transcription-titre { font-size: 20px; line-height: normal; padding-top: 0; }
.hv-voisins:has(> :only-child), .hv-voisins:not(:has(> .hv-voisin + .hv-voisin)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 599px) {
	.hv-episode-corps .wp-block-post-content > p, .hv-episode-corps .hv-b-section-lecture p { font-size: 17px; line-height: 1.55; }
	.hv-episode-corps .hv-b-section-lecture-titre, .hv-episode-corps h2.hv-b-section-lecture-titre { font-size: 26px; }
	.hv-episode-corps .hv-chapitre-titre { font-size: 16px; }
}
.hv-episode-corps .hv-chapitres { display: flex; flex-direction: column; gap: 0; padding: 0; margin: 0; }
.hv-episode-corps h2.wp-block-heading { line-height: normal; }
.hv-b-transcription-corps .hv-chapitre-temps, .hv-b-transcription-corps a[href^="#t-"], .hv-b-transcription-corps [data-hv-temps] { text-decoration: underline; text-underline-offset: 3px; }
/* Colonne d'épisode (prototype epD) : 14 entre les éléments, 42 entre le Bilan et « Pour aller plus loin ». */
.hv-episode-colonne .hv-article-colonne-collante { gap: 14px; }
.hv-episode-colonne .hv-b-bloc-bilan + .hv-plus-loin { margin-top: 28px; }
.hv-plus-loin-mobile { display: none; }
@media (max-width: 599px) { .hv-plus-loin .hv-plus-loin-carte { display: none; } .hv-plus-loin-mobile { display: block; } .hv-plus-loin { gap: 12px; } }
@media (max-width: 599px) { .hv-episode-colonne .hv-b-territoire-carte .hv-b-territoire-carte-phrase { display: none; } }
/* Article (prototype artHead, lfBody, endSame ; v21-article.js). */
.hv-article-tete .hv-article-chapeau { font-size: 23px; max-width: none; }
.hv-article-corps .hv-b-citation { margin: 8px 0; padding: 32px 36px; border-radius: 24px; align-items: flex-start; text-align: left; }
.hv-article-corps .hv-b-citation-texte p { font-size: 28px; line-height: 1.3; letter-spacing: 0; color: var(--hv-bordeaux-profond); text-wrap: pretty; }
.hv-fin-article-suite { display: none; margin: 0; }
@media (max-width: 1023px) { .hv-article-tete .hv-article-chapeau { font-size: 20px; } }
@media (max-width: 599px) {
	.hv-article-tete .hv-article-chapeau { font-size: 18px; }
	.hv-article-corps .hv-b-citation-texte p { font-size: 22px; }
	.hv-fin-article-section .hv-tete-section .hv-lien-sortie { display: none; }
	.hv-fin-article-suite { display: block; }
}
/* Un bloc Havvaa posé dans le texte d'un article (FAQ, vidéo…) prend la largeur de la colonne de texte, sans ses marges de page. */
.hv-art-corps .hv-conteneur, .hv-art-corps .hv-colonne, .hv-texte-importe .hv-conteneur { max-width: none; padding-inline: 0; margin-inline: 0; }
