/*
Theme Name: Maison
Theme URI: https://example.com/maison
Author: Toi
Description: Un thème de blog doux et simple, en blanc et chocolat. Rubriques Lectures, Voyage (pays puis lieux), Cuisine et Fourre-tout, fil d'Ariane, recherche, tri des articles et mémoire des dernières visites.
Version: 3.0.0
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maison
Tags: blog, one-column, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ---------- Couleurs et typographie ---------- */
:root {
	--blanc: #ffffff;
	--lait: #f6f0eb;
	--trait: #e8ddd3;
	--noisette: #b89780;
	--cacao: #6e4430;
	--chocolat: #3b2218;
	--encre: #4a3930;
	--olive: #7c7d3e;
	--olive-fonce: #595a2a;
	--olive-clair: #ecebd7;
	--terra: #c0704d;
	--terra-fonce: #a2553a;
	--terra-clair: #f6e3d9;

	--titre: "Fraunces", "Iowan Old Style", Georgia, serif;
	--texte: "Figtree", "Segoe UI", system-ui, -apple-system, sans-serif;

	--largeur: 1180px;
	--lecture: 42rem;
	--marge: clamp(1.25rem, 4vw, 2.5rem);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
	margin: 0;
	background: var(--blanc);
	color: var(--encre);
	font-family: var(--texte);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--titre);
	font-variation-settings: "SOFT" 100;
	font-weight: 450;
	color: var(--chocolat);
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 0.5em;
}
h1 { font-size: clamp(2.3rem, 5vw, 3.6rem); }
h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); }
h3 { font-size: 1.3rem; }

p { margin: 0 0 1em; }
img { max-width: 100%; height: auto; display: block; }

a { color: var(--cacao); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--chocolat); }

:focus-visible { outline: 2px solid var(--cacao); outline-offset: 3px; border-radius: 4px; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.lien-evitement:focus {
	position: fixed; top: 1rem; left: 1rem; z-index: 100;
	width: auto; height: auto; clip: auto;
	background: var(--chocolat); color: var(--blanc);
	padding: 0.6rem 1rem; border-radius: 8px;
}

.conteneur { width: 100%; max-width: var(--largeur); margin-inline: auto; padding-inline: var(--marge); }

/* ---------- En-tête ---------- */
.site-entete { border-bottom: 1px solid var(--trait); background: var(--blanc); position: relative; z-index: 10; }
.site-entete__rang { display: flex; align-items: center; gap: 1.5rem; min-height: 5rem; }

.site-nom { margin: 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.7rem; font-weight: 500; line-height: 1; }
.site-nom a { color: var(--chocolat); text-decoration: none; display: inline-flex; align-items: center; gap: 0.55rem; }
.site-nom a span { white-space: nowrap; }
.jumelles { display: block; width: 1em; height: 1em; flex: none; overflow: visible; }
.site-nom__jumelles { width: 1.2em; height: 1.2em; color: var(--cacao); transform: translateY(-0.04em) rotate(-8deg); transition: transform 0.35s ease; }
.site-nom a:hover .site-nom__jumelles { transform: translateY(-0.04em) rotate(0deg); }
.custom-logo { max-height: 56px; width: auto; }

.navigation { margin-left: auto; }
.navigation ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem 1.6rem; flex-wrap: wrap; }
.navigation a {
	color: var(--encre); text-decoration: none; font-weight: 500;
	padding-block: 0.4rem; border-bottom: 2px solid transparent;
}
.navigation a:hover { color: var(--chocolat); border-bottom-color: var(--trait); }
.navigation .est-actif > a,
.navigation .current-menu-item > a,
.navigation .current-menu-ancestor > a,
.navigation .current-post-ancestor > a,
.navigation .current-category-ancestor > a { color: var(--chocolat); border-bottom-color: var(--cacao); }
.navigation .sub-menu { display: none; }

.menu-bouton {
	display: none; margin-left: auto;
	font: 500 1rem var(--texte); color: var(--chocolat);
	background: none; border: 1px solid var(--trait); border-radius: 999px;
	padding: 0.45rem 1rem; cursor: pointer;
}

/* Recherche dans l'en-tête */
.recherche-entete { position: relative; }
.recherche-entete summary {
	list-style: none; cursor: pointer; display: grid; place-items: center;
	width: 2.6rem; height: 2.6rem; border-radius: 50%; color: var(--chocolat);
}
.recherche-entete summary::-webkit-details-marker { display: none; }
.recherche-entete summary:hover,
.recherche-entete[open] summary { background: var(--lait); }
.recherche-entete__panneau {
	position: absolute; right: 0; top: calc(100% + 0.75rem);
	width: min(26rem, calc(100vw - 2 * var(--marge)));
	background: var(--blanc); border: 1px solid var(--trait); border-radius: 16px; padding: 1rem;
}

.formulaire-recherche { display: flex; gap: 0.5rem; }
.formulaire-recherche input[type="search"] {
	flex: 1; min-width: 0;
	font: inherit; color: var(--encre);
	border: 1px solid var(--trait); border-radius: 999px; padding: 0.6rem 1.1rem; background: var(--blanc);
}
.formulaire-recherche input[type="search"]:focus { outline: 2px solid var(--cacao); outline-offset: 1px; }

.bouton {
	font: 600 0.95rem var(--texte); color: var(--blanc); background: var(--chocolat);
	border: 0; border-radius: 999px; padding: 0.6rem 1.2rem; cursor: pointer; text-decoration: none; display: inline-block;
}
.bouton:hover { background: var(--cacao); color: var(--blanc); }

/* ---------- Fil d'Ariane ---------- */
.fil-ariane { font-size: 0.92rem; padding-block: 1.1rem 0; }
.fil-ariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.2rem 0; }
.fil-ariane li { display: flex; align-items: center; }
.fil-ariane li + li::before { content: "/"; color: var(--noisette); margin-inline: 0.6rem; }
.fil-ariane a { color: var(--cacao); text-decoration: none; }
.fil-ariane a:hover { text-decoration: underline; }
.fil-ariane [aria-current] { color: var(--encre); }

/* ---------- Mise en page générale ---------- */
.site-main { padding-block: 2rem 5rem; }
.entete-page { max-width: var(--lecture); margin-bottom: 2.5rem; }
.entete-page__intro { font-size: 1.15rem; }
.entete-page__intro p:last-child { margin-bottom: 0; }

.section { margin-top: 4.5rem; }
.section:first-child { margin-top: 0; }
.section__entete { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.section__entete h2 { margin: 0; }

/* ---------- Accueil ---------- */
.accueil-hero {
	display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: clamp(2rem, 5vw, 5rem); align-items: end;
	padding-block: clamp(2rem, 6vw, 5rem) clamp(1rem, 3vw, 2rem);
}
.accueil-hero h1 {
	font-size: clamp(2.8rem, 7vw, 5.6rem); font-weight: 400; line-height: 0.98; letter-spacing: -0.025em; margin-bottom: 0.4em;
}
.accueil-hero h1 span { display: block; }
.accueil-hero h1 span + span { color: var(--cacao); }
.accueil-hero__texte { font-size: 1.2rem; max-width: 34rem; margin: 0; }

.faire-connaissance { background: var(--lait); border-radius: 220px 220px 20px 20px; padding: 4.5rem 2rem 2rem; }
.faire-connaissance h2 { font-size: 1.35rem; text-align: center; margin-bottom: 1.2rem; }
.faire-connaissance ul { list-style: none; margin: 0; padding: 0; }
.faire-connaissance li + li { border-top: 1px solid var(--trait); }
.faire-connaissance a { display: block; padding: 0.8rem 0; text-decoration: none; color: var(--chocolat); font-weight: 600; text-align: center; }
.faire-connaissance a:hover { color: var(--cacao); }
.faire-connaissance a span { display: block; font-weight: 400; color: var(--encre); font-size: 0.95rem; }


/* ---------- Accueil : la carte postale ---------- */
html { scroll-behavior: smooth; }
.accueil { padding-top: 0; }
.accueil__hero { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; padding: clamp(1.5rem, 4vw, 3rem) 0 0.5rem; }
.accueil__hero h1 { font-size: clamp(2.8rem, 6.2vw, 4.5rem); line-height: 0.98; letter-spacing: -0.02em; font-weight: 400; margin: 0 0 1.4rem; }
.accueil__hero h1 span { display: block; }
.accueil__hero h1 span + span { color: var(--cacao); }
.accueil__texte { font-size: 1.12rem; max-width: 30rem; margin: 0 0 1.75rem; }
.accueil__entrer {
	position: relative; display: inline-flex; align-items: center; gap: 0.95rem; margin-top: clamp(1rem, 3vw, 2.25rem);
	padding: 0.5rem 1.6rem 0.5rem 0.5rem; border: 1px solid var(--trait); border-radius: 999px;
	font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.3rem;
	color: var(--chocolat); text-decoration: none; background: var(--blanc);
	transition: background 0.35s ease, border-color 0.35s ease, transform 0.35s ease, box-shadow 0.35s ease;
}
.accueil__entrer > span {
	flex: none; width: 3.1rem; height: 3.1rem; border-radius: 50%; background: var(--lait); color: var(--cacao);
	display: grid; place-items: center; transition: background 0.35s ease, color 0.35s ease;
}
.accueil__entrer svg { width: 20px; height: 20px; animation: maison-respire 2.6s ease-in-out infinite; }
.accueil__entrer::after {
	content: ""; position: absolute; left: 4.55rem; right: 1.6rem; bottom: 0.95rem; height: 1px;
	background: var(--noisette); transform: scaleX(0); transform-origin: left; transition: transform 0.4s ease;
}
.accueil__entrer:hover, .accueil__entrer:focus-visible {
	background: var(--lait); border-color: var(--noisette); color: var(--chocolat);
	transform: translateY(-2px); box-shadow: 0 16px 30px -22px rgba(59, 34, 24, 0.6);
}
.accueil__entrer:hover > span, .accueil__entrer:focus-visible > span { background: var(--chocolat); color: var(--blanc); }
.accueil__entrer:hover svg, .accueil__entrer:focus-visible svg { animation-duration: 0.9s; }
.accueil__entrer:hover::after, .accueil__entrer:focus-visible::after { transform: scaleX(1); }
@keyframes maison-respire {
	0%, 100% { transform: translateY(-2px); }
	50% { transform: translateY(3px); }
}

.postale {
	position: relative; display: block; justify-self: center; width: min(100%, 23rem);
	background: var(--blanc); border: 1px solid var(--trait); border-radius: 30px; padding: 1rem 1rem 1.25rem;
	color: inherit; text-decoration: none; transform: rotate(-2deg);
	box-shadow: 0 24px 44px -34px rgba(59, 34, 24, 0.6); transition: transform 0.35s ease, box-shadow 0.35s ease;
}
a.postale:hover { transform: rotate(0deg) translateY(-3px); box-shadow: 0 30px 50px -34px rgba(59, 34, 24, 0.7); color: inherit; }
.postale__photo { display: block; aspect-ratio: 6 / 5.4; border-radius: 18px; overflow: hidden; background: var(--lait); }
.postale__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.postale__tampon {
	position: absolute; top: 1.6rem; right: 1.6rem; width: 4.4rem; height: 4.4rem; border-radius: 50%;
	border: 1.5px dashed rgba(255, 255, 255, 0.9); color: var(--blanc); background: rgba(59, 34, 24, 0.25);
	backdrop-filter: blur(2px); -webkit-backdrop-filter: blur(2px); transform: rotate(10deg);
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.15rem;
}
.postale__tampon .jumelles { width: 1.4rem; height: 1.4rem; }
.postale__tampon em { font-style: normal; font-size: 0.7rem; letter-spacing: 0.05em; }
.postale__corps { display: block; padding: 1.1rem 0.5rem 0; }
.postale__surtitre { display: flex; align-items: center; gap: 0.45rem; font-size: 0.82rem; color: var(--cacao); margin: 0 0 0.35rem; }
.postale__surtitre .jumelles { width: 1.05rem; height: 1.05rem; }
.postale__nom { display: block; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.6rem; line-height: 1.15; color: var(--chocolat); margin: 0 0 0.25rem; }
.postale__texte { display: block; margin: 0 0 0.85rem; font-size: 0.98rem; }
.postale__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 1.1rem; }
.postale__tags span { background: var(--lait); border-radius: 999px; padding: 0.22rem 0.7rem; font-size: 0.8rem; color: var(--cacao); }
.postale__lien { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--trait); padding-top: 0.9rem; font-weight: 600; color: var(--chocolat); }
.postale__rond { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--chocolat); color: var(--blanc); display: grid; place-items: center; transition: transform 0.3s ease; }
a.postale:hover .postale__rond { transform: translateX(3px); }

.accueil__bloc { margin-top: 3.25rem; scroll-margin-top: 1.5rem; }
.accueil__titre { font-size: 1.7rem; margin: 0 0 1.25rem; }

/* Pièces : arches basses avec une icône */
.pieces { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.piece__lien { display: block; text-align: center; text-decoration: none; color: inherit; }
.piece__arche { display: grid; place-items: center; aspect-ratio: 16 / 10; background: var(--lait); border-radius: 999px 999px 18px 18px; color: var(--cacao); margin-bottom: 0.8rem; transition: background 0.3s ease; }
.piece__arche svg { width: 3rem; height: 3rem; margin-top: 0.6rem; transition: transform 0.35s ease; }
.piece__lettre { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 2.4rem; color: var(--noisette); margin-top: 0.6rem; }
.piece__lien:hover .piece__arche { background: var(--trait); }
.piece__lien:hover .piece__arche svg { transform: translateY(-3px); }
.piece__nom { display: block; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.2rem; color: var(--chocolat); }
.piece__compte { display: block; font-size: 0.85rem; color: var(--cacao); }

/* Nouveautés : une à la une, trois petites */
.nouveautes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; align-items: start; }
.une { position: relative; border: 1px solid var(--trait); border-radius: 22px; padding: 0.7rem 0.7rem 1.3rem; transition: border-color 0.25s ease; }
.une:hover, .mini:hover { border-color: var(--noisette); }
.une__img { aspect-ratio: 16 / 8.5; border-radius: 15px; overflow: hidden; margin-bottom: 1rem; background: var(--lait); }
.une__img img { width: 100%; height: 100%; object-fit: cover; }
.une--livre .une__img { display: grid; place-items: center; }
.une--livre .une__img img { width: auto; height: 86%; object-fit: contain; border-radius: 4px; box-shadow: 0 10px 22px -12px rgba(59, 34, 24, 0.55); }
.une > p, .une > h3 { padding-inline: 0.5rem; }
.nouv__etiq { display: block; font-size: 0.82rem; color: var(--cacao); margin: 0 0 0.3rem; }
.une__titre { font-size: 1.55rem; margin: 0 0 0.4rem; }
.une__extrait { font-size: 0.98rem; margin: 0 0 0.5rem; }
.nouv__date { display: block; font-size: 0.82rem; color: var(--noisette); margin: 0; }
.nouv__lien { color: var(--chocolat); text-decoration: none; }
.nouv__lien::after { content: ""; position: absolute; inset: 0; }
.mini { position: relative; display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); gap: 1rem; align-items: center; padding: 0.55rem; border: 1px solid var(--trait); border-radius: 18px; transition: border-color 0.25s ease; }
.mini + .mini { margin-top: 0.9rem; }
.mini__img { width: 5.25rem; height: 5.25rem; border-radius: 12px; overflow: hidden; background: var(--lait); display: grid; place-items: center; font-family: var(--titre); font-size: 1.6rem; color: var(--noisette); }
.mini__img img { width: 100%; height: 100%; object-fit: cover; }
.mini__img--livre img { width: auto; height: 84%; object-fit: contain; border-radius: 3px; box-shadow: 0 5px 10px -6px rgba(59, 34, 24, 0.6); }
.mini__texte { display: block; min-width: 0; }
.mini__titre { font-size: 1.12rem; line-height: 1.25; margin: 0 0 0.25rem; }
.nouveautes__tous { margin: 1rem 0 0 0.3rem; }
.nouveautes__tous a { color: var(--cacao); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--noisette); padding-bottom: 2px; }

@media (max-width: 900px) {
	.accueil__hero { grid-template-columns: 1fr; }
	.postale-cadre { justify-self: start; transform: rotate(-1.5deg); }
	.nouveautes { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.pieces { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 1rem; }
	.postale-cadre { justify-self: center; }
}


/* ---------- Section Voyages ---------- */
.voyages { padding-top: 1.25rem; }
.voyages__titre { font-size: clamp(2.1rem, 4vw, 2.6rem); margin: 0 0 1.1rem; }
.onglets { display: inline-flex; flex-wrap: wrap; background: var(--lait); border-radius: 999px; padding: 0.3rem; gap: 0.25rem; margin-bottom: 2rem; }
.onglet {
	display: inline-flex; align-items: center; gap: 0.5rem; border: 0; border-radius: 999px; padding: 0.6rem 1.2rem;
	font: 600 0.98rem var(--texte); color: var(--cacao); background: transparent; cursor: pointer; transition: background 0.25s ease, color 0.25s ease;
}
.onglet .jumelles { width: 1.1rem; height: 1.1rem; }
.onglet small { font-weight: 400; color: var(--noisette); }
.onglet[aria-selected="true"] { background: var(--blanc); color: var(--chocolat); box-shadow: 0 6px 16px -10px rgba(59, 34, 24, 0.5); }
.onglet:hover { color: var(--chocolat); }
.js .panneau[hidden] { display: none; }
.no-js .panneau + .panneau { margin-top: 3rem; }

/* Destinations : une ligne par pays */
.pays-liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--trait); }
.pays-ligne { position: relative; display: grid; grid-template-columns: 3.25rem minmax(9rem, 15rem) minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; padding: 0.95rem 0.25rem; border-bottom: 1px solid var(--trait); transition: background 0.25s ease; }
.pays-ligne:hover { background: linear-gradient(90deg, var(--lait), transparent 70%); }
.pays-ligne__arche { width: 3.25rem; height: 3.6rem; border-radius: 999px 999px 9px 9px; background: var(--lait); display: grid; place-items: center; font-family: var(--titre); font-variation-settings: "SOFT" 100; color: var(--noisette); font-size: 1.3rem; }
.pays-ligne:hover .pays-ligne__arche { background: var(--blanc); }
.pays-ligne__nom { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.25rem; color: var(--chocolat); }
.pays-ligne__nom small { display: block; font-family: var(--texte); font-size: 0.8rem; color: var(--cacao); font-weight: 400; }
.pays-ligne__lien { color: inherit; text-decoration: none; }
.pays-ligne__lien::after { content: ""; position: absolute; inset: 0; }
.pays-ligne__lieux { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 0.4rem; }
.pays-ligne__lieux em { font-size: 0.85rem; color: var(--noisette); }
.pays-ligne__fleche { width: 2.2rem; height: 2.2rem; border-radius: 50%; border: 1px solid var(--trait); display: grid; place-items: center; color: var(--cacao); background: var(--blanc); transition: transform 0.25s ease; }
.pays-ligne:hover .pays-ligne__fleche { transform: translateX(3px); }
.pastille {
	display: inline-flex; align-items: center; gap: 0.3rem; font: 400 0.88rem var(--texte); color: var(--chocolat);
	background: var(--blanc); border: 1px solid var(--trait); border-radius: 999px; padding: 0.3rem 0.85rem; text-decoration: none; cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.pastille b { font-weight: 400; color: var(--noisette); }
.pastille:hover { border-color: var(--noisette); color: var(--chocolat); }
.pastille--on { background: var(--chocolat); border-color: var(--chocolat); color: var(--blanc); }
.pastille--on b { color: var(--trait); }
.pastille--on:hover { color: var(--blanc); }

/* Coulisses : trois étapes */
.etapes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: stretch; }
.etape { background: var(--lait); border-radius: 22px; padding: 1.2rem 1.2rem 1rem; }
.etape__tete { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.6rem; }
.etape__tete span { width: 2rem; height: 2rem; border-radius: 50%; background: var(--blanc); display: grid; place-items: center; font-family: var(--titre); color: var(--cacao); }
.etape__tete h2 { margin: 0; font-size: 1.25rem; }
.etape__phrase { font-size: 0.88rem; margin: 0 0 0.75rem; color: var(--encre); }
.etape__vide { font-size: 0.85rem; color: var(--noisette); font-style: italic; margin: 0.2rem 0 0; }
.coul { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); gap: 0.8rem; align-items: center; text-decoration: none; color: inherit; background: var(--blanc); border-radius: 14px; padding: 0.5rem; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.coul + .coul { margin-top: 0.5rem; }
.coul:hover { transform: translateY(-2px); box-shadow: 0 10px 20px -14px rgba(59, 34, 24, 0.5); color: inherit; }
.coul__img { width: 3.5rem; height: 3.5rem; border-radius: 10px; overflow: hidden; background: var(--lait); display: grid; place-items: center; font-family: var(--titre); color: var(--noisette); font-size: 1.3rem; }
.coul__img img { width: 100%; height: 100%; object-fit: cover; }
.coul__titre { display: block; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; color: var(--chocolat); line-height: 1.25; }
.coul__date { display: block; font-size: 0.8rem; color: var(--noisette); margin-top: 0.15rem; }
.en-vrac { margin-top: 2rem; }
.en-vrac h2 { font-size: 1.15rem; margin: 0 0 0.75rem; }
.en-vrac__liste { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.en-vrac .coul { border: 1px solid var(--trait); }
.en-vrac .coul + .coul { margin-top: 0; }

/* Page d'un pays ou d'un lieu */
.retour-dest { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--cacao); text-decoration: none; font-size: 0.92rem; margin-bottom: 0.9rem; }
.retour-dest svg { transform: rotate(180deg); transition: transform 0.25s ease; }
.retour-dest:hover svg { transform: rotate(180deg) translateX(3px); }
.pays-tete h1 { display: flex; align-items: center; gap: 0.7rem; font-size: clamp(2.1rem, 4vw, 2.6rem); margin: 0 0 0.35rem; }
.drapeau--titre { display: inline-block; width: 1.9rem; height: 1.3rem; border-radius: 3px; box-shadow: 0 0 0 1px var(--trait); }
.pays-tete__compte { color: var(--cacao); font-size: 0.92rem; margin: 0 0 0.9rem; }
.pays-tete__mot { max-width: 38rem; margin: 0 0 1.6rem; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.1rem; color: var(--encre); }
.pays-tete__mot p:last-child { margin-bottom: 0; }
.lieux-filtre { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.75rem; }
.lieux-filtre .pastille { padding: 0.4rem 1rem; font-size: 0.92rem; }
.recits { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.recit { position: relative; border: 1px solid var(--trait); border-radius: 22px; padding: 0.6rem 0.6rem 1.1rem; transition: border-color 0.25s ease, transform 0.25s ease; }
.recit:hover { border-color: var(--noisette); transform: translateY(-3px); }
.recit[hidden] { display: none; }
.recit__img { display: block; aspect-ratio: 16 / 10; border-radius: 15px; overflow: hidden; margin-bottom: 0.85rem; background: var(--lait); }
.recit__img img { width: 100%; height: 100%; object-fit: cover; }
.recit > :not(.recit__img) { margin-inline: 0.45rem; }
.recit__lieu { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.8rem; color: var(--cacao); }
.epingle { width: 0.9rem; height: 0.9rem; }
.recit__titre { font-size: 1.25rem; margin: 0.2rem 0.45rem 0.3rem; }
.recit__titre a { color: var(--chocolat); text-decoration: none; }
.recit__titre a::after { content: ""; position: absolute; inset: 0; }
.recit__extrait { margin-top: 0; margin-bottom: 0.45rem; font-size: 0.93rem; }
.recit__date { display: block; font-size: 0.8rem; color: var(--noisette); }
.recits-vide { display: flex; align-items: center; gap: 1rem; background: var(--lait); border-radius: 22px; padding: 1.5rem 1.75rem; max-width: 38rem; color: var(--encre); }
.recits-vide[hidden] { display: none; }
.recits-vide .jumelles { width: 2.4rem; height: 2.4rem; color: var(--noisette); }
.recits-vide p { margin: 0; }

@media (max-width: 900px) {
	.etapes, .en-vrac__liste, .recits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.etapes, .en-vrac__liste, .recits { grid-template-columns: 1fr; }
	.pays-ligne { grid-template-columns: 2.75rem minmax(0, 1fr) auto; gap: 0.5rem 0.9rem; }
	.pays-ligne__arche { width: 2.75rem; height: 3rem; grid-row: span 2; }
	.pays-ligne__lieux { grid-column: 2 / 3; }
	.pays-ligne__fleche { grid-row: 1 / span 2; grid-column: 3; }
	.onglet { padding: 0.55rem 0.9rem; font-size: 0.92rem; flex: none; }
	.onglets { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; scrollbar-width: none; }
	.onglets::-webkit-scrollbar { display: none; }
}


/* ---------- Lectures : la bibliothèque ---------- */
.onglet svg { color: var(--cacao); }
.biblio { position: relative; margin-top: 0.5rem; }
.biblio__piste {
	list-style: none; margin: 0; padding: 1rem 0.25rem 0.5rem; display: flex; gap: 2.25rem;
	overflow-x: auto; scroll-snap-type: x proximity; scroll-behavior: smooth; overscroll-behavior-x: contain;
	scrollbar-width: none; -webkit-overflow-scrolling: touch; cursor: grab; scroll-padding-inline: 0.25rem;
}
.biblio__piste::-webkit-scrollbar { display: none; }
.biblio__piste.est-attrape { cursor: grabbing; scroll-behavior: auto; scroll-snap-type: none; }
.biblio__piste.est-attrape a { pointer-events: none; }
.livre { flex: 0 0 10.5rem; scroll-snap-align: start; text-align: center; }
.livre[hidden] { display: none; }
.livre__lien { display: block; color: inherit; text-decoration: none; -webkit-user-drag: none; user-select: none; }
.livre__couv { position: relative; display: flex; align-items: flex-end; justify-content: center; height: 15rem; }
.livre__couv::after {
	content: ""; position: absolute; left: -1.2rem; right: -1.2rem; bottom: -14px; height: 14px;
	background: linear-gradient(var(--trait), var(--lait)); box-shadow: 0 10px 18px -12px rgba(59, 34, 24, 0.45);
}
.livre__couv img, .livre__sans-couv, .livre__pointilles { position: relative; z-index: 1; }
.livre__couv img {
	width: auto; max-width: 100%; max-height: 14.5rem; border-radius: 3px 6px 6px 3px; pointer-events: none;
	box-shadow: inset -1px 0 0 rgba(0, 0, 0, 0.08), 0 14px 24px -14px rgba(59, 34, 24, 0.65); transition: transform 0.35s ease;
}
.livre__lien:hover img, .livre__lien:focus-visible img { transform: translateY(-8px) rotate(-1.5deg); }
.livre__sans-couv {
	display: grid; place-items: center; width: 9rem; height: 14.5rem; max-width: 100%; padding: 1rem; border-radius: 3px 6px 6px 3px;
	background: var(--cacao); color: var(--lait); font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.05rem; line-height: 1.25;
	box-shadow: 0 14px 24px -14px rgba(59, 34, 24, 0.65); transition: transform 0.35s ease;
}
.livre__lien:hover .livre__sans-couv { transform: translateY(-8px) rotate(-1.5deg); }
.livre__pointilles { display: grid; place-items: center; width: 9rem; height: 14.5rem; max-width: 100%; box-sizing: border-box; text-align: center; border: 1.5px dashed var(--noisette); border-radius: 3px 6px 6px 3px; background: rgba(246, 240, 235, 0.5); color: var(--noisette); font-size: 0.85rem; padding: 1rem; }
.livre__titre { display: block; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.08rem; color: var(--chocolat); line-height: 1.25; margin-top: 1.55rem; }
.livre__auteur { display: block; font-size: 0.84rem; color: var(--cacao); margin: 0.15rem 0 0.35rem; }
.livre .coeurs--petits { margin: 0.3rem auto 0; }
.biblio .rangee__bouton { top: 7.5rem; }
.biblio__vide { color: var(--noisette); font-style: italic; margin-top: 1rem; }
@media (max-width: 600px) {
	.livre { flex-basis: 8.5rem; }
	.livre__couv { height: 12.5rem; }
	.livre__couv img { max-height: 12rem; }
	.livre__sans-couv, .livre__pointilles { width: 7.45rem; height: 12rem; }
	.biblio__piste { gap: 1.6rem; }
	.biblio .rangee__bouton { display: none; }
}

/* ---------- Portes (rubriques et destinations) ---------- */
.portes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); gap: 2.5rem 1.75rem; list-style: none; margin: 0; padding: 0; }
.porte { position: relative; text-align: center; }
.porte__image {
	aspect-ratio: 3 / 4; overflow: hidden; background: var(--lait);
	border-radius: 999px 999px 0 0; margin-bottom: 1rem;
}
.porte__image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.porte:hover .porte__image img { transform: scale(1.03); }
.porte__titre { font-size: 1.5rem; margin: 0 0 0.2rem; }
.porte__lien { color: var(--chocolat); text-decoration: none; }
.porte__lien::after { content: ""; position: absolute; inset: 0; }
.porte:hover .porte__lien { text-decoration: underline; text-decoration-color: var(--noisette); }
.porte__compte { font-size: 0.92rem; color: var(--cacao); margin: 0; }
.porte__description { font-size: 0.95rem; margin: 0.4rem auto 0; max-width: 18rem; }

.substitut {
	width: 100%; height: 100%; display: grid; place-items: center;
	font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 4rem; color: var(--noisette);
}

/* Petits drapeaux des pays : plusieurs styles, au choix dans le Personnaliseur */
.porte__image { position: relative; }
.drapeau { display: block; overflow: hidden; pointer-events: none; }
.drapeau svg { display: block; width: 100%; height: 100%; }

/* Pastille ronde en bas à gauche */
.drapeau--coin {
	position: absolute; left: 1rem; bottom: 1rem; z-index: 1;
	width: 1.6rem; height: 1.6rem; border-radius: 50%;
	box-shadow: 0 0 0 2.5px var(--blanc); filter: saturate(0.75); opacity: 0.9;
	transition: opacity 0.3s ease, filter 0.3s ease;
}
.porte:hover .drapeau--coin { opacity: 1; filter: none; }

/* Timbre-poste, comme sur une carte postale */
.drapeau--timbre {
	position: absolute; left: 1rem; bottom: 1rem; z-index: 1;
	width: 2.5rem; height: 1.9rem; padding: 4px;
	background: radial-gradient(circle, transparent 1.25px, var(--blanc) 1.5px) -2.25px -2.25px / 4.5px 4.5px;
	transform: rotate(-7deg); filter: saturate(0.75) drop-shadow(0 2px 3px rgba(59, 34, 24, 0.2));
	transition: transform 0.35s ease;
}
.drapeau--timbre svg { border-radius: 1px; outline: 1px solid var(--blanc); }
.porte:hover .drapeau--timbre { transform: rotate(0deg); }

/* Fin ruban aux couleurs du pays, au pied de l'arche */
.drapeau--ruban {
	position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 5px; opacity: 0.75;
	transition: height 0.3s ease, opacity 0.3s ease;
}
.porte:hover .drapeau--ruban { height: 8px; opacity: 1; }

/* Minuscule, à côté du nom */
.drapeau--nom {
	display: inline-block; vertical-align: 0.12em; margin-left: 0.45rem;
	width: 1.05rem; height: 0.72rem; border-radius: 2px; filter: saturate(0.8);
	box-shadow: 0 0 0 1px var(--trait);
}

.substitut--coeur svg { width: 38%; height: auto; fill: var(--cacao); }

/* ---------- Rangée d'arches qui défile (Voyages) ---------- */
.rangee { position: relative; }
.rangee__piste {
	list-style: none; margin: 0; padding: 0.25rem 0 0.5rem; display: flex; gap: 1.75rem;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain;
	scrollbar-width: none; -webkit-overflow-scrolling: touch;
}
.rangee__piste::-webkit-scrollbar { display: none; }
.rangee__item { flex: 0 0 clamp(11rem, 22%, 15rem); scroll-snap-align: start; }
.rangee__bouton {
	position: absolute; top: 38%; transform: translateY(-50%); z-index: 2;
	width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; cursor: pointer;
	background: var(--blanc); color: var(--chocolat); display: grid; place-items: center;
	box-shadow: 0 6px 18px -8px rgba(59, 34, 24, 0.45); transition: opacity 0.2s ease;
}
.rangee__bouton svg { width: 1.1rem; height: 1.1rem; }
.rangee__bouton[disabled] { opacity: 0; pointer-events: none; }
.rangee__bouton--avant { left: -0.9rem; }
.rangee__bouton--apres { right: -0.9rem; }
@media (max-width: 560px) {
	.rangee__item { flex-basis: 62%; }
	.rangee__bouton { display: none; }
}

/* Rangée de cartes (coulisses) */
.rangee--cartes .rangee__item { flex: 0 0 clamp(15rem, 31%, 22rem); display: flex; }
.rangee--cartes .rangee__item > .carte { width: 100%; }
.rangee--cartes .rangee__piste { padding: 0.5rem 1px 0.75rem; }
.rangee--cartes .rangee__bouton { top: 42%; }
.rangee__item[hidden], .voyage-bloc[hidden] { display: none !important; }
@media (max-width: 560px) { .rangee--cartes .rangee__item { flex-basis: 82%; } }

/* Barre de recherche de la page Voyages */
.voyage-recherche {
	position: relative; display: flex; align-items: center; max-width: 34rem; margin: -0.5rem 0 0;
}
.voyage-recherche__loupe { position: absolute; left: 1.15rem; color: var(--cacao); pointer-events: none; }
.voyage-recherche input[type="search"] {
	width: 100%; font: inherit; color: var(--encre); background: var(--lait);
	border: 1px solid transparent; border-radius: 999px; padding: 0.85rem 3rem 0.85rem 3rem;
	transition: border-color 0.2s ease, background 0.2s ease;
}
.voyage-recherche input[type="search"]::placeholder { color: var(--noisette); }
.voyage-recherche input[type="search"]:focus { outline: none; background: var(--blanc); border-color: var(--noisette); }
.voyage-recherche input[type="search"]::-webkit-search-cancel-button { display: none; }
.voyage-recherche__effacer {
	position: absolute; right: 0.6rem; width: 2rem; height: 2rem; border-radius: 50%; border: 0;
	background: transparent; color: var(--cacao); cursor: pointer; display: grid; place-items: center;
}
.voyage-recherche__effacer:hover { background: var(--trait); }
.voyage-recherche__effacer[hidden], .voyage-recherche__vide[hidden] { display: none; }
.voyage-recherche__vide { margin: 1.5rem 0 0; color: var(--encre); }
.voyage-recherche__vide a { margin-left: 0.4rem; }


/* ---------- Page Voyages compacte : destinations et coulisses sur un même écran ---------- */
@media (min-width: 761px) {
	.site-main--voyage { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 2.5rem; align-items: end; padding-top: 1.25rem; }
	.site-main--voyage > * { grid-column: 1 / -1; }
	.site-main--voyage > .entete-page { grid-column: 1; margin-bottom: 0; }
	.site-main--voyage > .voyage-recherche { grid-column: 2; justify-self: end; width: 100%; max-width: 26rem; margin: 0 0 0.35rem; }
}
.site-main--voyage .entete-page h1 { font-size: clamp(2.1rem, 4vw, 2.8rem); margin-bottom: 0; }
.site-main--voyage .entete-page__intro { margin-top: 0.5rem; font-size: 1rem; }
.site-main--voyage .voyage-recherche input[type="search"] { padding-block: 0.7rem; }
.site-main--voyage .section { margin-top: 2.25rem; }
.site-main--voyage .section__entete { margin-bottom: 1rem; }
.site-main--voyage .section__entete h2 { font-size: 1.5rem; }

.site-main--voyage .rangee:not(.rangee--cartes) .rangee__item { flex: 0 0 clamp(8.5rem, 15%, 11rem); }
.site-main--voyage .rangee__piste { gap: 1.25rem; }
.site-main--voyage .porte__image { aspect-ratio: 5 / 6; margin-bottom: 0.65rem; }
.site-main--voyage .porte .substitut { font-size: 2.6rem; }
.site-main--voyage .porte__titre { font-size: 1.15rem; }
.site-main--voyage .porte__compte { font-size: 0.85rem; }
.site-main--voyage .rangee:not(.rangee--cartes) .rangee__bouton { top: 40%; width: 2.4rem; height: 2.4rem; }

.site-main--voyage .coulisses { padding-top: 2rem; margin-top: 2.25rem; }
.site-main--voyage .coulisses__jumelles { width: 2rem; height: 2rem; }
.site-main--voyage .coulisses__texte { font-size: 0.95rem; margin-top: 0.15rem; }
/* Cartes des coulisses en format horizontal : petite vignette à gauche, texte à droite */
.site-main--voyage .rangee--cartes .rangee__item { flex-basis: clamp(16rem, 32%, 22rem); }
.site-main--voyage .rangee--cartes .carte {
	display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); grid-template-rows: 1fr auto auto auto 1fr; column-gap: 1rem;
	padding: 0.6rem 1rem 0.6rem 0.6rem; min-height: 6.7rem;
}
.site-main--voyage .rangee--cartes .carte > * { grid-column: 2; padding-inline: 0; }
.site-main--voyage .rangee--cartes .carte__image {
	grid-column: 1; grid-row: 1 / -1; align-self: center; margin: 0; width: 5.5rem; height: 5.5rem; aspect-ratio: auto; border-radius: 12px;
}
.site-main--voyage .rangee--cartes .carte--livre .carte__image > img { top: 0.4rem; bottom: 0.4rem; height: calc(100% - 0.8rem); }
.site-main--voyage .rangee--cartes .carte--sans-image > * { grid-column: 1 / -1; }
.site-main--voyage .rangee--cartes .carte--sans-image .carte__image { display: none; }
.site-main--voyage .rangee--cartes .carte__rubrique { display: none; }
.site-main--voyage .rangee--cartes .carte__titre { grid-row: 2; font-size: 1.08rem; line-height: 1.25; margin-bottom: 0.25rem; }
.site-main--voyage .rangee--cartes .coeurs { grid-row: 3; }
.site-main--voyage .rangee--cartes .carte__date { grid-row: 4; margin-top: 0; padding-top: 0; }
.site-main--voyage .rangee--cartes .rangee__bouton { top: 50%; }

@media (max-width: 560px) {
	.site-main--voyage .rangee:not(.rangee--cartes) .rangee__item { flex-basis: 40%; }
	.site-main--voyage .rangee--cartes .rangee__item { flex-basis: 75%; }
}

/* ---------- Les coulisses ---------- */
.coulisses { border-top: 1px solid var(--trait); padding-top: 3.5rem; }
.coulisses__entete { justify-content: flex-start; align-items: center; gap: 1.1rem; flex-wrap: nowrap; }
.coulisses__jumelles { width: 2.6rem; height: 2.6rem; color: var(--noisette); flex: none; }
.coulisses__texte { margin: 0.35rem 0 0; color: var(--encre); }

/* ---------- Cartes d'articles ---------- */
/* Les articles sont de petites « fiches » encadrées, pour se distinguer des arches des rubriques. */
.cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 2rem 1.75rem; }
.carte {
	position: relative; display: flex; flex-direction: column;
	background: var(--blanc); border: 1px solid var(--trait); border-radius: 22px; padding: 0.7rem 0.7rem 1.2rem;
	transition: border-color 0.25s ease, transform 0.25s ease;
}
.carte:hover { border-color: var(--noisette); transform: translateY(-3px); }
.carte__image { aspect-ratio: 4 / 3; overflow: hidden; border-radius: 15px; background: var(--lait); margin-bottom: 1rem; }
.carte__image img { width: 100%; height: 100%; object-fit: cover; }
.carte > :not(.carte__image) { padding-inline: 0.45rem; }

/* Livres : la couverture entière, posée sur un fond lait comme sur une étagère */
.carte--livre .carte__image { position: relative; isolation: isolate; }
.carte--livre .carte__fond { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.carte--livre .carte__fond::after { content: ""; position: absolute; inset: 0; background: rgba(246, 240, 235, 0.35); }
.carte--livre .carte__image .carte__fond img {
	position: absolute; inset: -15%; width: 130%; height: 130%; max-width: none; margin: 0;
	object-fit: cover; filter: blur(22px) saturate(1.15); border-radius: 0; box-shadow: none; transform: none;
}
.carte--livre .carte__image > img {
	position: absolute; top: 1.1rem; bottom: 1.1rem; left: 0; right: 0; margin: auto;
	width: auto; height: calc(100% - 2.2rem); max-width: 70%; object-fit: contain;
	border-radius: 6px; box-shadow: 0 10px 22px -12px rgba(59, 34, 24, 0.55);
}

/* Sans image : un simple bandeau, pour ne pas imiter les arches */
.carte--sans-image .carte__image { aspect-ratio: auto; height: 0.5rem; background: var(--lait); margin-bottom: 1.1rem; }
.carte--sans-image .substitut { display: none; }

.carte__rubrique { font-size: 0.85rem; color: var(--cacao); margin: 0 0 0.3rem; }
.carte__titre { font-size: 1.3rem; margin: 0 0 0.4rem; }
.carte__lien { color: var(--chocolat); text-decoration: none; }
.carte__lien::after { content: ""; position: absolute; inset: 0; border-radius: 22px; }
.carte:hover .carte__lien { text-decoration: underline; text-decoration-color: var(--noisette); }
.carte__extrait { font-size: 0.97rem; margin: 0 0 0.4rem; }
.carte__date { font-size: 0.85rem; color: var(--noisette); margin: 0; margin-top: auto; padding-top: 0.2rem; }

/* ---------- Note en cœurs ---------- */
.coeurs { display: inline-flex; gap: 0.2em; vertical-align: middle; font-size: 1.5rem; line-height: 1; }
.coeur { width: 1em; height: 1em; display: block; }
.coeur__fond { fill: var(--trait); }
.coeur__rempli { fill: var(--cacao); }
.coeurs--petits { font-size: 1rem; margin: 0.1rem 0 0.4rem; display: flex; width: max-content; }
.fiche {
	display: grid; grid-auto-flow: column; grid-auto-columns: auto; justify-content: center; gap: 1.25rem 2.25rem;
	margin: 1.75rem auto 0; padding: 1.25rem 1.5rem; background: var(--lait); border-radius: 20px; max-width: 50rem; width: fit-content;
}
.fiche__item { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; }
.fiche dt { font-size: 0.85rem; color: var(--cacao); }
.fiche dd { margin: 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.3rem; color: var(--chocolat); line-height: 1.5rem; min-height: 1.5rem; display: flex; align-items: center; }
.fiche .coeurs, .fiche .chronos { font-size: 1.35rem; }
.fiche .coeur__fond { fill: var(--blanc); }
.chronos { display: inline-flex; gap: 0.2em; vertical-align: middle; line-height: 1; }
.chrono { width: 1em; height: 1em; display: block; }
.chrono__corps { fill: var(--trait); }
.fiche .chrono__corps { fill: var(--blanc); }
.chrono--plein .chrono__corps { fill: var(--cacao); }
.chrono__aiguille { stroke: var(--lait); stroke-width: 1.8; stroke-linecap: round; fill: none; }
.chrono:not(.chrono--plein) .chrono__aiguille { stroke: var(--trait); }

/* ---------- Barre de tri ---------- */
.tri {
	display: flex; flex-wrap: wrap; align-items: end; gap: 0.75rem 1.25rem;
	padding: 1rem 0 1.25rem; margin-bottom: 2rem; border-bottom: 1px solid var(--trait);
}
.tri__champ { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.88rem; color: var(--cacao); }
.tri select {
	font: 500 0.97rem var(--texte); color: var(--chocolat);
	border: 1px solid var(--trait); border-radius: 999px; padding: 0.5rem 2.2rem 0.5rem 1rem;
	background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%236e4430' stroke-width='1.6'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 0.9rem center;
	appearance: none; cursor: pointer;
}
.tri__total { margin-left: auto; font-size: 0.92rem; color: var(--encre); align-self: center; }
.tri__reinit { font-size: 0.92rem; align-self: center; }
.js .tri__ok { display: none; }

.vide { background: var(--lait); border-radius: 18px; padding: 2rem; max-width: var(--lecture); }
.vide p:last-child { margin-bottom: 0; }

/* Pagination */
.pagination { margin-top: 3.5rem; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 0.4rem; justify-content: center; }
.pagination .page-numbers {
	min-width: 2.6rem; height: 2.6rem; padding-inline: 0.8rem; display: grid; place-items: center;
	border-radius: 999px; text-decoration: none; color: var(--chocolat); border: 1px solid var(--trait);
}
.pagination .page-numbers.current { background: var(--chocolat); color: var(--blanc); border-color: var(--chocolat); }
.pagination a.page-numbers:hover { background: var(--lait); }

/* ---------- Habillage des articles ---------- */
/* Petit trait noisette au-dessus des intertitres */
.prose h2::before {
	content: ""; display: block; width: 2.5rem; height: 2px; border-radius: 2px;
	background: var(--noisette); margin-bottom: 0.9rem;
}
.prose h3 { color: var(--cacao); }

/* Lettrine (option « Lettrine » du paragraphe) */
.prose .has-drop-cap:not(:focus)::first-letter {
	float: left; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450;
	font-size: 3.6em; line-height: 0.85; color: var(--cacao); margin: 0.06em 0.1em 0 0; text-transform: none;
}

/* Chapô : l'introduction, plus grande et posée */
.prose > p.is-style-maison-chapo {
	font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 350; font-size: 1.15rem; line-height: 1.65;
	color: var(--cacao); text-align: left; hyphens: manual;
}

/* Encadré : un « Le saviez-vous ? », une info pratique… */
.prose .wp-block-group.is-style-maison-encadre,
.prose .wp-block-group.is-style-maison-encadre-chocolat {
	position: relative; border-radius: 22px; padding: 1.5rem 1.75rem;
}
.prose .wp-block-group.is-style-maison-encadre { background: var(--lait); }
.prose .wp-block-group.is-style-maison-encadre-chocolat { background: #5a3727; color: #f3e6da; }
/* WordPress ajoute parfois un conteneur interne : on gère les deux cas */
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) > .wp-block-group__inner-container { display: contents; }
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) :is(p, h2, h3, h4, ul, ol) { margin-top: 0; margin-bottom: 0; }
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) :is(p, h2, h3, h4, ul, ol) + :is(p, ul, ol) { margin-top: 0.7em; }
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) :is(h2, h3, h4) {
	display: flex; align-items: center; gap: 0.65rem; font-size: 1.2rem; font-weight: 450; margin-bottom: 0.75rem;
}
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) h2:not(:first-child)::before { display: none; }
.prose .is-style-maison-encadre :is(h2, h3, h4) { color: var(--chocolat); }
.prose .is-style-maison-encadre-chocolat :is(h2, h3, h4) { color: #fffaf5; }
/* La petite feuille devant le titre de l'encadré */
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) :is(h2, h3, h4):first-child::before {
	content: ""; display: block; flex: 0 0 2rem; width: 2rem; height: 2rem; margin: 0; border-radius: 50%;
	background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236e4430' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 14-14-1 9-6 14-14 14z'/%3E%3Cpath d='M5 19l8-8'/%3E%3C/svg%3E") no-repeat center / 1.1rem;
}
.prose .is-style-maison-encadre-chocolat :is(h2, h3, h4):first-child::before {
	background: rgba(255, 250, 245, 0.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3e6da' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 14-14-1 9-6 14-14 14z'/%3E%3Cpath d='M5 19l8-8'/%3E%3C/svg%3E") no-repeat center / 1.1rem;
}
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) p { text-align: left; hyphens: manual; font-size: 0.98rem; line-height: 1.7; }
.prose .is-style-maison-encadre-chocolat :is(p, li) { color: #eadbcd; }
.prose .is-style-maison-encadre-chocolat strong { color: #fffaf5; font-weight: 500; }
.prose .is-style-maison-encadre-chocolat a { color: #fffaf5; }

/* Frise chronologique : une ligne fine, de petits points, la date en italique */
.prose ul.is-style-maison-frise,
.prose ol.is-style-maison-frise {
	list-style: none; padding: 0 0 0 1.6rem; margin-left: 0.3rem; border-left: 1px solid var(--trait);
}
.prose .is-style-maison-frise > li { position: relative; }
.prose .is-style-maison-frise > li + li { margin-top: 1.4rem; }
.prose .is-style-maison-frise > li::before {
	content: ""; position: absolute; left: calc(-1.6rem - 4px); top: 0.6rem;
	width: 7px; height: 7px; border-radius: 50%; background: var(--noisette);
}
/* Le retour à la ligne après la date est géré par le thème : on masque les sauts en trop */
.prose .is-style-maison-frise > li > strong:first-child + br,
.prose .is-style-maison-frise > li > strong:first-child + br + br { display: none; }
.prose .is-style-maison-frise > li > strong:first-child {
	display: block; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic;
	font-weight: 400; font-size: 1.15rem; line-height: 1.4; color: var(--cacao); margin-bottom: 0.15rem;
}
.prose .is-style-maison-frise > li > strong:first-child sup { font-style: italic; }

/* Média et texte « Doux » : photo arrondie à côté d'un paragraphe */
.prose .wp-block-media-text.is-style-maison-doux { gap: 0; align-items: center; }
.prose .wp-block-media-text.is-style-maison-doux .wp-block-media-text__content { padding: 0 0 0 2rem; }
.prose .wp-block-media-text.is-style-maison-doux.has-media-on-the-right .wp-block-media-text__content { padding: 0 2rem 0 0; }
.prose .wp-block-media-text.is-style-maison-doux .wp-block-media-text__content p { text-align: left; hyphens: manual; }
@media (max-width: 600px) {
	.prose .wp-block-media-text.is-style-maison-doux .wp-block-media-text__content,
	.prose .wp-block-media-text.is-style-maison-doux.has-media-on-the-right .wp-block-media-text__content { padding: 1.25rem 0 0; }
}


/* Photo habillée par le texte (bloc Image aligné à gauche ou à droite) */
.prose .wp-block-image.alignleft,
.prose .wp-block-image.alignright,
.prose figure.alignleft,
.prose figure.alignright { max-width: 42%; margin-top: 0.4em; margin-bottom: 1em; }
.prose .wp-block-image.alignleft,
.prose figure.alignleft { float: left; margin-right: 1.75rem; margin-left: 0; }
.prose .wp-block-image.alignright,
.prose figure.alignright { float: right; margin-left: 1.75rem; margin-right: 0; }
.prose .wp-block-image.alignleft img,
.prose .wp-block-image.alignright img { width: 100%; height: auto; }
.prose h2, .prose h3, .prose .wp-block-group, .prose .wp-block-gallery:not(.alignleft):not(.alignright), .prose .defilant:not(.alignleft):not(.alignright), .prose hr { clear: both; }
@media (max-width: 600px) {
	.prose .wp-block-image.alignleft,
	.prose .wp-block-image.alignright,
	.prose figure.alignleft,
	.prose figure.alignright { float: none; max-width: 100%; margin: 0 0 1.4em; }
}

/* ---------- Les jumelles, petite signature du blog ---------- */
.fin-article { display: flex; align-items: center; gap: 1.25rem; max-width: var(--lecture); margin: 3.5rem auto 0; color: var(--noisette); }
.fin-article::before, .fin-article::after { content: ""; flex: 1; height: 1px; background: var(--trait); }
.fin-article .jumelles { width: 1.9rem; height: 1.9rem; }
.fin-article + .voisins { margin-top: 1.5rem; border-top: 0; padding-top: 0; }
.entete-page__jumelles { width: 3.5rem; height: 3.5rem; color: var(--noisette); margin-bottom: 1.25rem; }
.vide--jumelles { display: flex; align-items: center; gap: 1.5rem; }
.vide__jumelles { width: 3.25rem; height: 3.25rem; color: var(--noisette); }
.vide__titre { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.3rem; color: var(--chocolat); margin-bottom: 0.3rem !important; }

/* ---------- Galerie « Défilant » ---------- */
.defilant { position: relative; }
.prose .wp-block-gallery.is-style-maison-defilant {
	display: flex !important; flex-wrap: nowrap !important; gap: 1rem !important;
	overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0; padding: 0;
}
.prose .wp-block-gallery.is-style-maison-defilant::-webkit-scrollbar { display: none; }
.prose .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image {
	flex: 0 0 82% !important; width: auto !important; max-width: none !important; margin: 0 !important;
	scroll-snap-align: center; position: relative;
}
.prose .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image img {
	width: 100% !important; height: 26rem !important; object-fit: cover; display: block;
}
.defilant__bouton {
	position: absolute; top: calc(50% - 1rem); transform: translateY(-50%); z-index: 2;
	width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; cursor: pointer;
	background: rgba(255, 255, 255, 0.92); color: var(--chocolat);
	display: grid; place-items: center; box-shadow: 0 6px 18px -8px rgba(59, 34, 24, 0.5);
	transition: opacity 0.2s ease;
}
.defilant__bouton:hover { background: var(--blanc); }
.defilant__bouton[disabled] { opacity: 0; pointer-events: none; }
.defilant__bouton--avant { left: 0.75rem; }
.defilant__bouton--apres { right: 0.75rem; }
.defilant__bouton svg { width: 1.1rem; height: 1.1rem; }
.defilant__compteur { text-align: center; font-size: 0.85rem; color: var(--cacao); margin: 0.6rem 0 0; }
/* Galerie défilante habillée par le texte (alignée à gauche ou à droite) */
.prose .wp-block-gallery.is-style-maison-defilant.alignleft,
.prose .defilant.alignleft { float: left; width: 42%; max-width: 42%; margin: 0.4em 1.75rem 1em 0; clear: none; }
.prose .wp-block-gallery.is-style-maison-defilant.alignright,
.prose .defilant.alignright { float: right; width: 42%; max-width: 42%; margin: 0.4em 0 1em 1.75rem; clear: none; }
.prose .defilant--compact .wp-block-gallery.is-style-maison-defilant { gap: 0.5rem !important; }
.prose .defilant--compact .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image { flex-basis: 100% !important; }
.prose .defilant--compact .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image img { height: auto !important; aspect-ratio: 3 / 4; }
.defilant--compact .defilant__bouton { width: 2.2rem; height: 2.2rem; }
.defilant--compact .defilant__bouton--avant { left: 0.5rem; }
.defilant--compact .defilant__bouton--apres { right: 0.5rem; }
@media (max-width: 600px) {
	.prose .wp-block-gallery.is-style-maison-defilant.alignleft,
	.prose .wp-block-gallery.is-style-maison-defilant.alignright,
	.prose .defilant.alignleft,
	.prose .defilant.alignright { float: none; width: 100%; max-width: 100%; margin: 0 0 1.4em; }
	.prose .defilant--compact .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image img { aspect-ratio: 4 / 3; }
}

@media (max-width: 560px) {
	.prose .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image { flex-basis: 88% !important; }
	.prose .wp-block-gallery.is-style-maison-defilant > figure.wp-block-image img { height: 18rem !important; }
	.defilant__bouton { width: 2.4rem; height: 2.4rem; }
}

/* ---------- Article ---------- */
.article__entete { max-width: var(--lecture); margin: 1rem auto 2.5rem; text-align: center; }
.article__entete h1 { font-size: clamp(2.1rem, 4.2vw, 2.9rem); }
.article__meta { color: var(--cacao); font-size: 0.95rem; margin: 0; }
.article__image { margin: 0 auto 3rem; max-width: 64rem; }
.article__image img { width: 100%; border-radius: 28px; }

.prose { max-width: var(--lecture); margin-inline: auto; font-size: 1.0625rem; line-height: 1.8; }
.prose > * { margin-top: 0; margin-bottom: 0; }
.prose > * + * { margin-top: 1.4em; }
.prose > p { text-align: justify; hyphens: auto; -webkit-hyphens: auto; }
.prose .has-text-align-left { text-align: left; }
.prose .has-text-align-center { text-align: center; }
.prose .has-text-align-right { text-align: right; }
.prose .wp-block-spacer { margin-top: 0; }
.prose .wp-block-spacer + * { margin-top: 0; }
.prose h2 { font-size: 1.6rem; margin: 2.2em 0 0.6em; }
.prose h3 { font-size: 1.25rem; margin: 1.8em 0 0.5em; }
.prose blockquote,
.prose .wp-block-quote {
	margin: 0; padding: 0.2rem 0 0.2rem 1.25rem; border: 0; border-left: 3px solid var(--noisette);
	font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.3rem; line-height: 1.5; color: var(--chocolat);
	text-align: left; hyphens: manual;
}
.prose blockquote p { margin: 0; text-align: inherit; }
.prose blockquote p + p { margin-top: 0.6em; }
.prose blockquote cite,
.prose .wp-block-pullquote cite { display: block; margin-top: 0.6rem; font-family: var(--texte); font-size: 0.9rem; font-style: normal; color: var(--cacao); }

/* Citation mise en avant : centrée, entre deux traits fins */
.prose .wp-block-pullquote {
	margin-left: 0; margin-right: 0; padding: 1.75rem 0.5rem; text-align: center;
	border: 0; border-top: 1px solid var(--noisette); border-bottom: 1px solid var(--noisette);
}
.prose .wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; text-align: center; font-size: 1.3rem; line-height: 1.55; }

/* Colonnes (ex. couverture + citation) : alignées au centre, image qui remplit sa colonne */
.prose .wp-block-columns { gap: 2rem; align-items: center; }
.prose .wp-block-column > * + * { margin-top: 1rem; }
.prose .wp-block-column .wp-block-image { margin: 0; }
.prose .wp-block-column .wp-block-image img { width: 100%; height: auto; }

/* Toutes les images du texte ont des coins arrondis, quels que soient les réglages du bloc */
.prose img { border-radius: 14px !important; }
.prose .alignfull img { border-radius: 0 !important; }

/* Couverture + citation côte à côte : la couverture prend automatiquement un bon tiers */
@media (min-width: 782px) {
	.prose .wp-block-columns > .wp-block-column:has(> .wp-block-image:only-child) { flex: 0 0 32% !important; max-width: 32%; }
	.prose .wp-block-columns > .wp-block-column:not(:has(> .wp-block-image:only-child)) { flex: 1 1 0 !important; }
}
@media (max-width: 781px) {
	.prose .wp-block-column .wp-block-image img { max-width: 13rem; margin-inline: auto; }
}
.prose .wp-block-column .wp-block-pullquote { padding: 1.25rem 0.25rem; }
.prose .wp-block-column .wp-block-pullquote blockquote,
.prose .wp-block-column blockquote { font-size: 1.1rem; }

/* Séparateur : un trait fin sur toute la largeur du texte */
.prose hr,
.prose .wp-block-separator {
	border: 0; border-top: 1px solid var(--trait); height: 0; width: 100%; max-width: none;
	margin-left: 0; margin-right: 0; background: none; opacity: 1;
}
.prose .wp-block-separator:not(.is-style-dots):not(.is-style-maison) { width: 100%; border-bottom: 0; }
.prose .wp-block-separator.is-style-dots { border: 0; text-align: center; }
.prose .wp-block-separator.is-style-dots::before { color: var(--noisette); }
.prose img, .prose figure img { border-radius: 16px; }
.prose figure { margin-inline: 0; }
.prose figcaption { font-size: 0.9rem; color: var(--cacao); margin-top: 0.5rem; text-align: center; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li + li { margin-top: 0.35em; }
.prose .alignwide { max-width: 64rem; margin-inline: auto; }
.prose .alignfull { width: 100vw; max-width: 100vw; margin-inline: calc(50% - 50vw); }
.prose .alignfull img { border-radius: 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.prose th, .prose td { border-bottom: 1px solid var(--trait); padding: 0.6rem; text-align: left; }

.article__pied { max-width: var(--lecture); margin: 3rem auto 0; }
.etiquettes { display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; padding: 0; margin: 0; }
.etiquettes a { display: inline-block; font-size: 0.9rem; text-decoration: none; background: var(--lait); color: var(--chocolat); padding: 0.3rem 0.9rem; border-radius: 999px; }
.etiquettes a:hover { background: var(--trait); }

.voisins {
	max-width: var(--lecture); margin: 3.5rem auto 0; padding-top: 2rem; border-top: 1px solid var(--trait);
	display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem;
}
.voisins a { text-decoration: none; display: flex; align-items: center; gap: 1rem; }
.voisins__vignette {
	flex: 0 0 5.5rem; width: 5.5rem; height: 5.5rem; border-radius: 14px; overflow: hidden; background: var(--lait);
	display: grid; place-items: center;
}
.voisins__vignette img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.voisins__vignette--livre img { width: auto; height: 82%; object-fit: contain; border-radius: 3px; box-shadow: 0 6px 12px -8px rgba(59, 34, 24, 0.6); }
.voisins a:hover .voisins__vignette img { transform: scale(1.04); }
.voisins__texte { display: block; min-width: 0; }
.voisins__suivant { flex-direction: row-reverse; }
.voisins span { display: block; font-size: 0.88rem; color: var(--cacao); }
.voisins strong { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.2rem; color: var(--chocolat); }
.voisins a:hover strong { text-decoration: underline; text-decoration-color: var(--noisette); }
.voisins__suivant { text-align: right; grid-column: 2; }

.retour { max-width: var(--lecture); margin: 2rem auto 0; }

/* Commentaires */
.commentaires { max-width: var(--lecture); margin: 4rem auto 0; }
.commentaires ol { list-style: none; padding: 0; }
.commentaires .children { padding-left: 1.5rem; }
.commentaires .comment-body { padding: 1.25rem 0; border-bottom: 1px solid var(--trait); }
.commentaires .comment-meta { font-size: 0.9rem; }
.commentaires .avatar { border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: 0.5rem; }
.commentaires label { display: block; font-size: 0.92rem; color: var(--cacao); }
.commentaires input[type="text"],
.commentaires input[type="email"],
.commentaires input[type="url"],
.commentaires textarea { width: 100%; font: inherit; border: 1px solid var(--trait); border-radius: 12px; padding: 0.6rem 0.9rem; }
.commentaires .submit { font: 600 0.95rem var(--texte); color: var(--blanc); background: var(--chocolat); border: 0; border-radius: 999px; padding: 0.7rem 1.4rem; cursor: pointer; }

/* ---------- Dernières visites ---------- */
.visites { max-width: var(--lecture); margin: 2.5rem auto 0; padding-top: 1.5rem; border-top: 1px solid var(--trait); }
.visites h2 { font-family: var(--texte); font-size: 0.85rem; font-weight: 600; color: var(--cacao); letter-spacing: 0; margin: 0 0 0.75rem; }
.visites ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.6rem; }
.visites a {
	display: flex; align-items: center; gap: 0.65rem; text-decoration: none; color: var(--chocolat);
	border-radius: 12px; padding: 0.35rem; line-height: 1.3; font-size: 0.9rem; transition: background 0.2s ease;
}
.visites a:hover { background: var(--lait); color: var(--chocolat); }
.visites__vignette {
	flex: 0 0 2.6rem; width: 2.6rem; height: 2.6rem; border-radius: 9px; overflow: hidden; background: var(--lait);
	display: grid; place-items: center; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 1.05rem; color: var(--noisette);
}
.visites__vignette img { width: 100%; height: 100%; object-fit: cover; }
.visites__vignette--livre img { width: auto; height: 86%; object-fit: contain; border-radius: 2px; }
.visites__texte { display: flex; flex-direction: column; min-width: 0; }
.visites__texte > span { overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.visites small { color: var(--noisette); font-size: 0.75rem; }
@media (max-width: 600px) { .visites ul { grid-template-columns: 1fr; } }

/* ---------- Pied de page ---------- */
.site-pied { background: var(--chocolat); color: var(--lait); padding-block: 3.5rem 2rem; }
.site-pied a { color: var(--blanc); }
.site-pied__rang { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1.2fr); gap: 2.5rem; }
.site-pied__nom { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-size: 2rem; color: var(--blanc); margin: 0 0 0.5rem; line-height: 1.1; display: flex; align-items: center; gap: 0.6rem; }
.site-pied__jumelles { width: 1.05em; height: 1.05em; color: var(--lait); opacity: 0.9; }
.site-pied h2 { font-family: var(--texte); font-size: 0.95rem; font-weight: 600; color: var(--blanc); letter-spacing: 0; margin-bottom: 0.8rem; }
.site-pied ul { list-style: none; margin: 0; padding: 0; }
.site-pied li + li { margin-top: 0.35rem; }
.site-pied ul a { text-decoration: none; }
.site-pied ul a:hover { text-decoration: underline; }
.site-pied .formulaire-recherche input[type="search"] { border-color: transparent; }
.site-pied .bouton { background: var(--lait); color: var(--chocolat); }
.site-pied .bouton:hover { background: var(--blanc); }
.site-pied__bas { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgba(246, 240, 235, 0.2); font-size: 0.88rem; }
.site-pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; }
.site-pied__bas p { margin: 0; }
.site-pied :focus-visible { outline-color: var(--lait); }

/* ---------- WordPress ---------- */
.wp-caption-text, .gallery-caption { font-size: 0.9rem; color: var(--cacao); }
.sticky, .bypostauthor { }
.alignleft { float: left; margin: 0.3em 1.5em 1em 0; }
.alignright { float: right; margin: 0.3em 0 1em 1.5em; }
.aligncenter { margin-inline: auto; }

/* ---------- Petits écrans ---------- */
@media (max-width: 900px) {
	.accueil-hero { grid-template-columns: 1fr; align-items: start; }
	.faire-connaissance { max-width: 30rem; }
	.site-pied__rang { grid-template-columns: 1fr 1fr; }
	.site-pied__rang > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
	.js .menu-bouton { display: inline-block; }
	.js .navigation {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		background: var(--blanc); border-bottom: 1px solid var(--trait); padding: 1rem var(--marge) 1.5rem;
	}
	.js .navigation.est-ouvert { display: block; }
	.js .navigation ul { flex-direction: column; gap: 0; }
	.js .navigation a { display: block; padding: 0.8rem 0; border-bottom: 1px solid var(--trait); font-size: 1.1rem; }
	.js .navigation .est-actif > a,
	.js .navigation .current-menu-item > a { border-bottom-color: var(--trait); color: var(--cacao); }
	.site-entete__rang { gap: 0.75rem; }
	.no-js .site-entete__rang { flex-wrap: wrap; padding-block: 1rem; }
	.no-js .navigation { margin-left: 0; width: 100%; }
}

@media (max-width: 560px) {
	.fiche { grid-auto-flow: row; grid-template-columns: 1fr 1fr; justify-content: stretch; width: 100%; padding: 1.25rem 0.75rem; gap: 1.25rem 0.5rem; }
	.fiche .coeurs, .fiche .chronos { font-size: 1.2rem; }
	.portes { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
	.porte__titre { font-size: 1.2rem; }
	.porte__description { display: none; }
	.voisins { grid-template-columns: 1fr; }
	.voisins__suivant { grid-column: 1; text-align: left; flex-direction: row; }
	.tri__total { margin-left: 0; width: 100%; }
	.site-pied__rang { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}

/* ==========================================================================
   L'atelier : projet du moment et tableau de fiches punaisées
   ========================================================================== */
.atelier__intro, .atelier__intro p { margin: -0.4rem 0 1.6rem; max-width: 38rem; color: var(--encre); font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.12rem; }
.atelier__intro p { margin: 0; }
.genre { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; font-weight: 600; color: var(--cacao); }
.genre svg { width: 1.05rem; height: 1.05rem; flex: none; }
.statut { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.75rem; font-weight: 600; border-radius: 999px; padding: 0.18rem 0.6rem; white-space: nowrap; }
.statut--en-cours { background: #fbeee2; color: #9a5a2c; }
.statut--en-cours::before { content: ""; width: 0.45rem; height: 0.45rem; border-radius: 50%; background: currentColor; animation: maison-pouls 2.4s ease-in-out infinite; }
.statut--termine { background: var(--lait); color: var(--cacao); }
.statut--termine::before { content: "✓"; }
@keyframes maison-pouls { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.35; transform: scale(0.75); } }

.moment { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); align-items: stretch; max-width: 46rem; background: var(--lait); border-radius: 22px; overflow: hidden; margin-bottom: 2rem; color: inherit; text-decoration: none; transition: box-shadow 0.35s ease, transform 0.35s ease; }
.moment:hover { transform: translateY(-2px); box-shadow: 0 20px 36px -30px rgba(59, 34, 24, 0.6); }
.moment__visuel { position: relative; display: grid; place-items: center; align-content: center; gap: 0.7rem; min-height: 8.5rem; background: #efe5dc; color: var(--cacao); }
.moment__visuel > svg:first-child { width: 3.2rem; height: 3.2rem; transition: transform 0.5s ease; }
.moment:hover .moment__visuel > svg:first-child { transform: rotate(-8deg); }
.moment__visuel--photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.moment__onde { display: flex; gap: 3px; align-items: center; height: 1rem; }
.moment__onde i { display: block; width: 3px; max-height: 1rem; border-radius: 2px; background: var(--noisette); animation: maison-onde 1.6s ease-in-out infinite; transform-origin: center; }
.moment__onde i:nth-child(2n) { animation-delay: -0.4s; } .moment__onde i:nth-child(3n) { animation-delay: -0.9s; }
@keyframes maison-onde { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(0.55); } }
.moment__trace { width: 4.5rem; color: var(--noisette); }
.moment__texte { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 1.1rem 1.5rem; }
.moment__sur { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--noisette); margin-bottom: 0.25rem; }
.moment__titre { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.3rem; line-height: 1.2; color: var(--chocolat); margin-bottom: 0.25rem; }
.moment__extrait { color: var(--encre); font-size: 0.92rem; margin-bottom: 0.6rem; }
.moment__pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1.2rem; width: 100%; }
.avancement { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; font-size: 0.78rem; color: var(--noisette); }
.avancement span { display: inline-flex; align-items: center; gap: 0.35rem; }
.avancement span::before { content: ""; width: 0.6rem; height: 0.6rem; border-radius: 50%; border: 2px solid var(--trait); box-sizing: border-box; }
.avancement .fait { color: var(--cacao); } .avancement .fait::before { background: var(--cacao); border-color: var(--cacao); }
.avancement .ici { color: var(--chocolat); font-weight: 600; } .avancement .ici::before { border-color: var(--cacao); background: var(--blanc); box-shadow: 0 0 0 3px rgba(110, 68, 48, 0.15); }
.avancement i { width: 1.2rem; border-top: 2px dotted var(--trait); }
.moment__bouton { display: inline-flex; gap: 0.4rem; align-items: center; color: var(--cacao); font-weight: 600; font-size: 0.88rem; }
.moment__bouton svg { transition: transform 0.25s ease; }
.moment:hover .moment__bouton { color: var(--chocolat); }
.moment:hover .moment__bouton svg { transform: translateX(3px); }

.atelier .lieux-filtre { margin-bottom: 1.4rem; }
.tableau { columns: 3; column-gap: 1.6rem; padding-top: 1rem; }
.postit { display: inline-block; width: 100%; vertical-align: top; position: relative; margin: 0 0 1.9rem; padding: 1.5rem 1.4rem 1.2rem; background: var(--blanc); border: 1px solid var(--trait); border-radius: 6px; box-shadow: 0 14px 26px -18px rgba(59, 34, 24, 0.45); transform: rotate(var(--penche, -1deg)); transition: transform 0.3s ease, box-shadow 0.3s ease; }
.postit:nth-child(3n+2) { --penche: 0.9deg; }
.postit:nth-child(3n) { --penche: -0.5deg; }
.postit:nth-child(4n) { --penche: 1.3deg; }
.postit:hover { transform: rotate(0deg) translateY(-4px); box-shadow: 0 22px 34px -20px rgba(59, 34, 24, 0.55); }
.postit::before { content: ""; position: absolute; top: -11px; left: 50%; width: 5.5rem; height: 1.4rem; transform: translateX(-50%) rotate(-3deg); background: rgba(232, 214, 198, 0.85); border-radius: 2px; }
.postit:nth-child(2n)::before { transform: translateX(-40%) rotate(4deg); }
.postit--idee { background: #fbf5ec; }
.postit__img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 3px; margin-bottom: 0.9rem; }
.postit__haut { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.postit__titre { font-size: 1.3rem; margin: 0 0 0.4rem; line-height: 1.25; }
.postit__titre a { color: var(--chocolat); text-decoration: none; }
.postit__titre a::after { content: ""; position: absolute; inset: 0; }
.postit__titre a:focus-visible { outline: none; }
.postit:focus-within { outline: 2px solid var(--cacao); outline-offset: 3px; }
.postit__extrait { margin: 0 0 0.7rem; color: var(--encre); font-size: 0.95rem; }
.postit--idee .postit__extrait { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.05rem; }
.postit__date { font-size: 0.8rem; color: var(--noisette); }
.tableau--vide { columns: auto; max-width: 24rem; }
.tableau.est-range { columns: auto; display: flex; gap: 1.6rem; align-items: flex-start; }
.tableau__col { flex: 1 1 0; min-width: 0; }
@media (max-width: 960px) { .tableau { columns: 2; } }
@media (max-width: 560px) {
	.moment { grid-template-columns: 5.5rem minmax(0, 1fr); }
	.moment__visuel > svg:first-child { width: 2.4rem; height: 2.4rem; }
	.moment__texte { padding: 1rem 1.1rem; }
}
@media (max-width: 600px) { .tableau { columns: 1; } .postit { --penche: 0deg !important; } .atelier .lieux-filtre { flex-wrap: nowrap; overflow-x: auto; } }
@media (prefers-reduced-motion: reduce) { .statut--en-cours::before, .moment__onde i { animation: none; } }
.postit[hidden] { display: none; }

/* ==========================================================================
   Cuisine : la carte du restaurant
   ========================================================================== */
.carte-menu { position: relative; display: grid; grid-template-columns: repeat(var(--colonnes, 2), minmax(0, 1fr)); gap: 0 3.5rem; background: var(--lait); border-radius: 30px; padding: 2.6rem 3rem 2.2rem; margin-bottom: 1rem; }
.carte-menu::before { content: ""; position: absolute; inset: 0.9rem; border: 1px solid var(--trait); border-radius: 22px; pointer-events: none; }
.carte-menu--seule { max-width: 40rem; }
@media (max-width: 900px) { .carte-menu:not(.carte-menu--seule) { --colonnes: 2 !important; } }
.carte-menu__col { position: relative; min-width: 0; margin-bottom: 1rem; }
.carte-menu__titre { display: flex; flex-direction: column; align-items: center; gap: 0.35rem; text-align: center; font-size: 1.6rem; margin: 0 0 1.3rem; }
.carte-menu__titre svg { width: 2.4rem; height: 2.4rem; color: var(--cacao); transition: transform 0.4s ease; }
.carte-menu__col:hover .carte-menu__titre svg { transform: rotate(-6deg) translateY(-2px); }
.carte-menu__titre a { color: var(--chocolat); text-decoration: none; }
.carte-menu__titre a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.carte-menu__titre small { font-family: var(--texte); font-size: 0.8rem; font-weight: 400; color: var(--noisette); }
.plats { list-style: none; margin: 0; padding: 0; }
.plat + .plat { border-top: 1px dashed var(--trait); }
.plat a { display: block; padding: 0.75rem 0; color: inherit; text-decoration: none; }
.plat__ligne { display: flex; align-items: baseline; gap: 0.6rem; }
.plat__nom { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 450; font-size: 1.15rem; line-height: 1.3; color: var(--chocolat); transition: color 0.2s ease; }
.plat__ligne i { flex: 1; min-width: 1.5rem; border-bottom: 2px dotted var(--noisette); opacity: 0.5; transform: translateY(-4px); }
.plat__temps { display: inline-flex; align-items: center; gap: 0.3rem; font-size: 0.85rem; color: var(--cacao); white-space: nowrap; }
.plat__mot { display: block; margin-top: 0.15rem; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 0.92rem; color: var(--encre); }
.plat a:hover .plat__nom { color: var(--cacao); }
.plat a:hover .plat__ligne i { opacity: 0.9; }
.plats__vide { text-align: center; font-family: var(--titre); font-style: italic; color: var(--noisette); margin: 0.5rem 0 0; }
.carte-menu__signature { grid-column: 1 / -1; position: relative; text-align: center; margin: 0.6rem 0 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; color: var(--noisette); }
.recette-infos { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin: 0.6rem 0 0; font-size: 0.9rem; color: var(--cacao); }
.recette-infos span { display: inline-flex; align-items: center; gap: 0.35rem; }
@media (max-width: 640px) {
	.carte-menu { grid-template-columns: 1fr; padding: 2rem 1.5rem 1.8rem; border-radius: 24px; }
	.carte-menu::before { inset: 0.6rem; border-radius: 18px; }
	.carte-menu__col + .carte-menu__col { margin-top: 1rem; }
}

/* ==========================================================================
   Petites animations : apparition au défilement, icônes vivantes, tampon, barre de lecture
   (toutes coupées si le visiteur a demandé de réduire les animations)
   ========================================================================== */
.apparait { opacity: 0; translate: 0 18px; transition: opacity 0.7s ease, translate 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); transition-delay: var(--delai, 0s); }
.apparait.est-visible { opacity: 1; translate: 0 0; }

/* Les icônes des pièces au survol */
.piece--lectures .piece__lien:hover svg { animation: maison-feuillette 0.9s ease; }
@keyframes maison-feuillette { 0%, 100% { transform: translateY(-3px) scaleX(1); } 35% { transform: translateY(-3px) scaleX(0.55); } 60% { transform: translateY(-3px) scaleX(1.06); } }
.piece--cuisine svg path:nth-child(3) { transition: transform 0.4s ease, opacity 0.4s ease; }
.piece--cuisine .piece__lien:hover svg path:nth-child(3) { animation: maison-vapeur 1.4s ease-in-out infinite; }
@keyframes maison-vapeur { 0% { transform: translateY(2px); opacity: 0.3; } 50% { transform: translateY(-3px); opacity: 1; } 100% { transform: translateY(-6px); opacity: 0; } }
.piece--voyage .piece__lien:hover svg { animation: maison-guette 1.2s ease; }
@keyframes maison-guette { 0%, 100% { transform: translateY(-3px) rotate(0); } 25% { transform: translateY(-3px) rotate(-9deg); } 60% { transform: translateY(-3px) rotate(8deg); } }
.piece--atelier .piece__lien:hover svg { transform-origin: 85% 15%; animation: maison-coup-pinceau 0.8s ease; }
@keyframes maison-coup-pinceau { 0%, 100% { transform: rotate(0); } 30% { transform: rotate(-16deg) translate(-2px, 2px); } 60% { transform: rotate(6deg); } }
.piece--fourre-tout .piece__lien:hover svg { animation: maison-secoue 0.6s ease; }
@keyframes maison-secoue { 0%, 100% { transform: rotate(0); } 25% { transform: rotate(-7deg); } 75% { transform: rotate(7deg); } }

/* Les livres qui sortent de l'étagère */
.livre__couv img { transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1), box-shadow 0.35s ease; }
.livre__lien:hover img, .livre__lien:focus-visible img { transform: translateY(-14px) rotate(-2deg); box-shadow: -1px 0 0 rgba(0, 0, 0, 0.08) inset, 0 26px 30px -16px rgba(59, 34, 24, 0.6); }

/* Le tampon de la carte postale qui s'imprime */
.js .postale__tampon { animation: maison-tampon 0.55s cubic-bezier(0.3, 1.5, 0.5, 1) 0.7s both; }
@keyframes maison-tampon { 0% { opacity: 0; transform: rotate(-12deg) scale(1.8); } 70% { opacity: 1; transform: rotate(13deg) scale(0.92); } 100% { opacity: 1; transform: rotate(10deg) scale(1); } }

/* Barre de lecture des articles */
.barre-lecture { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200; background: transparent; pointer-events: none; }
.barre-lecture span { display: block; height: 100%; width: 100%; background: var(--cacao); border-radius: 0 3px 3px 0; transform-origin: 0 50%; transform: scaleX(0); }
.admin-bar .barre-lecture { top: 32px; }
@media (max-width: 782px) { .admin-bar .barre-lecture { top: 46px; } }

@media (prefers-reduced-motion: reduce) {
	.apparait { opacity: 1 !important; translate: none !important; }
	.js .postale__tampon { animation: none; }
}

/* Le pied de page reste collé en bas, même sur les très grands écrans */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body > .site-pied { margin-top: auto; }

/* ---------- Logo du pied de page : cliquable et animé comme en haut ---------- */
.site-pied__nom a { display: inline-flex; align-items: center; gap: 0.6rem; color: inherit; text-decoration: none; }
.site-pied__jumelles { transform: translateY(-0.04em) rotate(-8deg); transition: transform 0.35s ease; }
.site-pied__nom a:hover .site-pied__jumelles, .site-pied__nom a:focus-visible .site-pied__jumelles { transform: translateY(-0.04em) rotate(0deg); }

/* ---------- Ma photo dans l'article de bienvenue ---------- */
.portrait { position: relative; width: min(100%, 19rem); margin: 0.5rem auto 2.8rem; padding: 0.8rem 0.8rem 0; background: var(--blanc); border: 1px solid var(--trait); border-radius: 6px; box-shadow: 0 22px 40px -30px rgba(59, 34, 24, 0.65); transform: rotate(-2.5deg); transition: transform 0.4s ease; }
.portrait:hover { transform: rotate(0deg); }
.portrait::before { content: ""; position: absolute; top: -12px; left: 50%; width: 6rem; height: 1.5rem; transform: translateX(-50%) rotate(3deg); background: rgba(232, 214, 198, 0.85); border-radius: 2px; z-index: 1; }
.portrait__photo { display: block; aspect-ratio: 4 / 4.6; overflow: hidden; border-radius: 3px; background: var(--lait); }
.portrait__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.portrait figcaption { padding: 0.7rem 0 0.9rem; text-align: center; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.15rem; color: var(--cacao); }

/* ---------- La chasse aux jumelles ---------- */
.cachette { display: inline-grid; place-items: center; width: 2rem; height: 2rem; padding: 0; border: 0; background: none; color: var(--noisette); opacity: 0.45; cursor: pointer; transform: rotate(-16deg); transition: opacity 0.3s ease, transform 0.3s ease, color 0.3s ease; }
.cachette .jumelles { width: 1.2rem; height: 1.2rem; }
.cachette:hover, .cachette:focus-visible { opacity: 1; color: var(--cacao); animation: maison-secoue 0.6s ease; }
.cachette.est-trouvee { opacity: 0.9; color: var(--cacao); position: relative; }
.cachette.est-trouvee::after { content: "✓"; position: absolute; right: -2px; top: -2px; width: 0.9rem; height: 0.9rem; border-radius: 50%; background: var(--cacao); color: var(--blanc); font-size: 0.55rem; line-height: 0.9rem; text-align: center; transform: rotate(16deg); }
.cachette.vient-de-trouver { animation: maison-saute 0.7s cubic-bezier(0.3, 1.6, 0.5, 1); }
@keyframes maison-saute { 0% { transform: rotate(-16deg) scale(1); } 40% { transform: rotate(10deg) scale(1.8) translateY(-6px); } 100% { transform: rotate(-16deg) scale(1); } }
.cachette-coin { display: flex; justify-content: flex-end; margin-top: 0.6rem; }
.cachette-coin--sol { margin-top: -0.4rem; padding-right: 2rem; }
.cachette--etagere { position: absolute; z-index: 2; right: -0.4rem; bottom: -4px; }
.cachette--carte { position: absolute; left: 1.6rem; bottom: 1.4rem; }
.cachette--portrait { position: absolute; right: 0.4rem; bottom: 0.45rem; }
.livre--attente { position: relative; }

.chasse-invitation { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0; border: 0; background: none; font: inherit; font-size: 0.85rem; color: var(--trait); cursor: pointer; text-align: left; }
.chasse-invitation .jumelles { width: 1.1rem; height: 1.1rem; flex: none; transition: transform 0.35s ease; }
.chasse-invitation:hover { color: var(--blanc); }
.chasse-invitation:hover .jumelles { transform: rotate(-12deg); }

.chasse-compteur { position: fixed; left: 1rem; bottom: 1rem; z-index: 150; display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.5rem 0.9rem 0.5rem 0.7rem; border: 1px solid var(--trait); border-radius: 999px; background: var(--blanc); color: var(--cacao); font: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; box-shadow: 0 14px 30px -18px rgba(59, 34, 24, 0.55); transition: transform 0.25s ease; }
.chasse-compteur:hover { transform: translateY(-2px); }
.chasse-compteur .jumelles { width: 1.2rem; height: 1.2rem; }
.chasse-compteur.pop { animation: maison-pop 0.5s ease; }
@keyframes maison-pop { 50% { transform: scale(1.15); } }

.chasse-bulle { position: fixed; left: 50%; bottom: 1.4rem; z-index: 160; transform: translate(-50%, 1.5rem); opacity: 0; display: flex; align-items: center; gap: 0.6rem; padding: 0.75rem 1.2rem; border-radius: 999px; background: var(--chocolat); color: var(--blanc); font-size: 0.92rem; box-shadow: 0 20px 40px -20px rgba(59, 34, 24, 0.8); transition: opacity 0.35s ease, transform 0.35s ease; pointer-events: none; white-space: nowrap; }
.chasse-bulle.est-la { opacity: 1; transform: translate(-50%, 0); }
.chasse-bulle .jumelles { width: 1.3rem; height: 1.3rem; color: var(--lait); }
.chasse-bulle b { color: var(--trait); }

.chasse-fond { position: fixed; inset: 0; z-index: 300; display: grid; place-items: center; padding: 1rem; background: rgba(59, 34, 24, 0.45); opacity: 0; transition: opacity 0.3s ease; }
.chasse-fond.est-la { opacity: 1; }
.chasse-carnet { position: relative; width: min(100%, 26rem); max-height: 90vh; overflow: auto; background: var(--blanc); border-radius: 24px; padding: 1.8rem 1.8rem 1.5rem; box-shadow: 0 30px 60px -30px rgba(59, 34, 24, 0.8); transform: translateY(14px) rotate(-1deg); transition: transform 0.35s ease; }
.chasse-fond.est-la .chasse-carnet { transform: none; }
.chasse-carnet h2 { display: flex; align-items: center; gap: 0.6rem; font-size: 1.5rem; margin: 0 0 0.5rem; }
.chasse-carnet h2 .jumelles { width: 1.6rem; height: 1.6rem; color: var(--cacao); }
.chasse-carnet p { margin: 0 0 1rem; color: var(--encre); }
.chasse-carnet ul { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.chasse-carnet li { display: flex; gap: 0.7rem; align-items: baseline; padding: 0.55rem 0; border-top: 1px dashed var(--trait); color: var(--encre); font-size: 0.95rem; }
.chasse-carnet li::before { content: ""; flex: none; width: 0.9rem; height: 0.9rem; border: 2px solid var(--trait); border-radius: 50%; transform: translateY(0.15rem); }
.chasse-carnet li.ok { color: var(--noisette); text-decoration: line-through; }
.chasse-carnet li.ok::before { border-color: var(--cacao); background: var(--cacao); }
.chasse-carnet__jauge { height: 8px; border-radius: 999px; background: var(--lait); overflow: hidden; margin-bottom: 1.2rem; }
.chasse-carnet__jauge span { display: block; height: 100%; background: var(--cacao); border-radius: 999px; transition: width 0.6s ease; }
.chasse-carnet__actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.chasse-carnet__fermer { border: 0; border-radius: 999px; padding: 0.6rem 1.2rem; background: var(--chocolat); color: var(--blanc); font: inherit; font-weight: 600; cursor: pointer; }
.chasse-carnet__reset { border: 0; background: none; padding: 0; font: inherit; font-size: 0.8rem; color: var(--noisette); text-decoration: underline; cursor: pointer; }
.chasse-carnet--fin { text-align: center; }
.chasse-carnet--fin h2 { flex-direction: column; font-size: 1.8rem; }
.chasse-carnet--fin h2 .jumelles { width: 3.4rem; height: 3.4rem; animation: maison-guette 1.4s ease 0.3s 2; }
.chasse-carnet--fin .chasse-carnet__actions { justify-content: center; flex-direction: column-reverse; }
.chasse-confetti { position: fixed; top: -2rem; z-index: 310; width: 0.6rem; height: 0.9rem; border-radius: 2px; pointer-events: none; animation: maison-confetti linear forwards; }
@keyframes maison-confetti { to { transform: translateY(110vh) rotate(720deg); } }
@media (prefers-reduced-motion: reduce) { .chasse-confetti { display: none; } }

/* Ma photo, plus petite et glissée dans le texte de l'article */
.prose figure.portrait--article { float: right; clear: none; width: 11rem; margin: 0.4rem 0.3rem 1.2rem 2.6rem; padding: 0.55rem 0.55rem 0; transform: rotate(2deg); shape-outside: margin-box; }
.portrait--article::before { width: 4.5rem; height: 1.2rem; top: -10px; }
.portrait--article figcaption { padding: 0.45rem 1.1rem 0.6rem; font-size: 0.95rem; line-height: 1.3; }
.portrait--article .cachette--portrait { right: 0.1rem; bottom: 0.1rem; }
.prose::after { content: ""; display: block; clear: both; }
@media (max-width: 560px) {
	.prose figure.portrait--article { width: 8.5rem; margin: 0.3rem 0.2rem 0.9rem 1.5rem; }
	.portrait--article figcaption { font-size: 0.8rem; padding-inline: 0.9rem; }
	.portrait--article .cachette { width: 1.5rem; height: 1.5rem; }
	.portrait--article .cachette .jumelles { width: 0.95rem; height: 0.95rem; }
}

/* ---------- Partager un article ---------- */
.partage { max-width: var(--lecture); margin: 3rem auto 0; padding: 1.4rem 1.2rem 1.5rem; background: var(--lait); border-radius: 22px; text-align: center; }
.partage__titre { font-size: 1.2rem; margin: 0 0 0.9rem; }
.partage__boutons { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.partage__bouton { display: inline-flex; align-items: center; gap: 0.4rem; padding: 0.5rem 0.85rem; border: 1px solid var(--trait); border-radius: 999px; background: var(--blanc); color: var(--cacao); font: inherit; font-size: 0.88rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease, border-color 0.2s ease; }
.partage__bouton:hover, .partage__bouton:focus-visible { transform: translateY(-2px); border-color: var(--noisette); color: var(--chocolat); }
.partage__bouton svg { flex: none; transition: transform 0.3s ease; }
.partage__bouton:hover svg { transform: rotate(-8deg); }
.partage__bouton--natif { background: var(--chocolat); border-color: var(--chocolat); color: var(--blanc); }
.partage__bouton--natif:hover, .partage__bouton--natif:focus-visible { color: var(--blanc); border-color: var(--chocolat); }
.partage__bouton.est-copie { background: var(--cacao); border-color: var(--cacao); color: var(--blanc); }
.partage__bouton[hidden] { display: none; }
@media (max-width: 560px) { .partage { padding: 1.2rem 1rem 1.3rem; } .partage__bouton { padding: 0.5rem 0.85rem; font-size: 0.84rem; } }

/* ==========================================================================
   Les couleurs d'accent : vert olive et terracotta, par petites touches
   (le chocolat reste la couleur principale)
   ========================================================================== */
::selection { background: var(--terra-clair); color: var(--chocolat); }

/* Les pièces : olive pour Lectures et L'atelier, terracotta pour Voyages et Cuisine */
.piece--lectures .piece__arche, .piece--atelier .piece__arche, .piece--fourre-tout .piece__arche { background: var(--olive-clair); color: var(--olive-fonce); }
.piece--voyage .piece__arche, .piece--cuisine .piece__arche { background: var(--terra-clair); color: var(--terra); }
.piece--lectures .piece__lien:hover .piece__arche, .piece--atelier .piece__lien:hover .piece__arche, .piece--fourre-tout .piece__lien:hover .piece__arche { background: #dfddbf; }
.piece--voyage .piece__lien:hover .piece__arche, .piece--cuisine .piece__lien:hover .piece__arche { background: #f0d2c2; }

/* Filtres et pastilles actives */
.pastille--on { background: var(--olive); border-color: var(--olive); color: var(--blanc); }
.pastille--on b { color: var(--olive-clair); }
.pastille--on:hover { color: var(--blanc); }
.onglet[aria-selected="true"] svg, .onglet[aria-selected="true"] .jumelles { color: var(--terra); }

/* Liens dans les articles */
.prose a { color: var(--terra-fonce); text-decoration-color: rgba(192, 112, 77, 0.45); }
.prose a:hover { color: var(--chocolat); text-decoration-color: currentColor; }
.retour-dest { color: var(--terra-fonce); }
.etiquettes a { background: var(--olive-clair); color: var(--olive-fonce); }
.etiquettes a:hover { background: #dfddbf; color: var(--chocolat); }
.prose h2::before { background: var(--terra); }

/* Lectures */
.livre__pointilles { border-color: var(--olive); color: var(--olive-fonce); background: rgba(236, 235, 215, 0.6); }

/* Voyages */
.recit__lieu, .recit__lieu .epingle { color: var(--terra-fonce); }

/* L'atelier */
.statut--en-cours { background: var(--olive-clair); color: var(--olive-fonce); }
.statut--termine { background: var(--terra-clair); color: var(--terra-fonce); }
.moment__visuel { background: var(--olive-clair); color: var(--olive-fonce); }
.moment__onde i, .moment__trace { background-color: var(--olive); color: var(--olive); }
.moment__trace { background: none; }
.avancement .fait { color: var(--olive-fonce); }
.avancement .fait::before { background: var(--olive); border-color: var(--olive); }
.avancement .ici::before { border-color: var(--terra); box-shadow: 0 0 0 3px rgba(192, 112, 77, 0.18); }
.moment__bouton { color: var(--terra-fonce); }
.postit--projet .genre { color: var(--terra-fonce); }
.postit--idee .genre { color: var(--olive-fonce); }
.postit::before { background: rgba(236, 235, 215, 0.95); }
.postit:nth-child(2n)::before { background: rgba(246, 227, 217, 0.95); }

/* Cuisine : la salière en terracotta, la part de gâteau en olive */
.carte-menu__col:nth-of-type(odd) .carte-menu__titre svg { color: var(--terra); }
.carte-menu__col:nth-of-type(even) .carte-menu__titre svg { color: var(--olive-fonce); }
.plat__temps { color: var(--terra-fonce); }
.plat a:hover .plat__nom { color: var(--terra-fonce); }

/* Partage et barre de lecture */
.partage__bouton:hover, .partage__bouton:focus-visible { border-color: var(--olive); color: var(--olive-fonce); }
.partage__bouton.est-copie { background: var(--olive); border-color: var(--olive); color: var(--blanc); }
.barre-lecture span { background: var(--terra); }

/* ---------- Lectures : les livres en cours et l'alignement de l'étagère ---------- */
.livre__objet { position: relative; z-index: 1; display: inline-block; line-height: 0; max-width: 100%; transition: transform 0.35s cubic-bezier(0.2, 0.7, 0.2, 1); }
.livre__lien:hover img, .livre__lien:focus-visible img, .livre__lien:hover .livre__sans-couv { transform: none; }
.livre__lien:hover .livre__objet, .livre__lien:focus-visible .livre__objet { transform: translateY(-14px) rotate(-2deg); }
.bandeau-coin { position: absolute; top: 0; right: 0; z-index: 2; width: 4.8rem; height: 4.8rem; overflow: hidden; border-top-right-radius: 6px; pointer-events: none; }
.bandeau-coin span { position: absolute; top: 1.05rem; right: -1.9rem; width: 7.6rem; transform: rotate(45deg); background: var(--terra); color: var(--blanc); text-align: center; font-family: var(--texte); font-size: 0.62rem; font-weight: 700; line-height: 1; letter-spacing: 0.09em; text-transform: uppercase; padding: 0.32rem 0; box-shadow: 0 3px 8px -3px rgba(59, 34, 24, 0.55); }
.livre__titre { min-height: 2.7rem; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.livre__auteur { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 1.3rem; }
.livre .coeurs--petits, .livre__verdict { display: flex; align-items: center; justify-content: center; height: 1.3rem; margin: 0.3rem auto 0; }
.livre__verdict { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 0.92rem; color: var(--olive-fonce); }
.fiche dd.verdict { font-style: italic; font-size: 1.1rem; color: var(--olive-fonce); }

/* ==========================================================================
   Accueil : « Les Nouvelles de la Maison », les nouveautés en une de journal
   ========================================================================== */
.gazette { background: #fffdf9; border: 1px solid var(--trait); border-radius: 6px; padding: 1.6rem 2rem 1.3rem; box-shadow: 0 24px 44px -38px rgba(59, 34, 24, 0.6); }
.gazette p { margin: 0; }
.gazette__tete { text-align: center; }
.gazette__nom { font-family: var(--titre); font-variation-settings: "SOFT" 0, "WONK" 1; font-weight: 600; font-size: clamp(1.9rem, 4.2vw, 2.7rem); letter-spacing: -0.01em; line-height: 1.05; color: var(--chocolat); padding-bottom: 0.7rem; border-bottom: 3px double var(--chocolat); }
.gazette__ligne { display: flex; justify-content: space-between; gap: 1rem; margin-top: 0.45rem !important; padding: 0.35rem 0; border-bottom: 1px solid var(--chocolat); font-size: 0.76rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cacao); }
.gazette__corps { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 0 2rem; margin-top: 1.4rem; }
.gazette__corps--seul { grid-template-columns: 1fr; }
.gazette__une { padding-right: 2rem; border-right: 1px solid var(--trait); }
.gazette__corps--seul .gazette__une { padding-right: 0; border-right: 0; }
.gazette__une--livre { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 0 1.5rem; align-items: start; }
.gazette__visuel { margin: 0; }
.gazette__visuel img { display: block; width: 100%; height: auto; border-radius: 3px; box-shadow: 0 12px 20px -14px rgba(59, 34, 24, 0.7); transition: transform 0.35s ease; }
.gazette__une:hover .gazette__visuel img { transform: translateY(-3px) rotate(-1deg); }
.gazette__une--photo .gazette__visuel { margin-bottom: 1rem; }
.gazette__une--photo .gazette__visuel img { aspect-ratio: 16 / 9; object-fit: cover; border-radius: 4px; }
.gazette__visuel figcaption { margin-top: 0.4rem; text-align: center; font-size: 0.72rem; font-style: italic; color: var(--noisette); }
.kicker { display: block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
.kicker--o { color: var(--olive-fonce); }
.kicker--t { color: var(--terra-fonce); }
.gazette__titre { font-size: clamp(1.5rem, 2.6vw, 1.95rem); line-height: 1.12; margin: 0.35rem 0 0.7rem; }
.gazette__titre a { color: var(--chocolat); text-decoration: none; }
.gazette__titre a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.gazette__extrait { font-size: 0.98rem; color: var(--encre); margin-bottom: 0.8rem !important; }
.gazette__extrait--lettrine::first-letter { float: left; font-family: var(--titre); font-size: 3.35rem; line-height: 0.82; padding: 0.28rem 0.4rem 0 0; margin-bottom: -0.2rem; color: var(--terra); }
.gazette__extrait--lettrine { display: flow-root; }
.gazette__lire { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.88rem; font-weight: 600; color: var(--terra-fonce); text-decoration: none; }
.gazette__lire svg { transition: transform 0.25s ease; }
.gazette__une:hover .gazette__lire svg { transform: translateX(3px); }
.breves__titre { margin: 0 0 0.2rem; padding-bottom: 0.3rem; border-bottom: 1px solid var(--chocolat); font-family: var(--titre); font-style: italic; font-weight: 400; font-size: 1.15rem; color: var(--chocolat); }
.breve { display: block; padding: 0.7rem 0; border-bottom: 1px solid var(--trait); color: inherit; text-decoration: none; }
.breve:last-child { border-bottom: 0; }
.breve__titre { display: block; margin: 0.15rem 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 500; font-size: 1.08rem; line-height: 1.25; color: var(--chocolat); transition: color 0.2s ease; }
.breve:hover .breve__titre { color: var(--terra-fonce); }
.breve__date { font-size: 0.78rem; color: var(--noisette); }
.gazette__pied { margin-top: 1rem !important; padding-top: 0.7rem; border-top: 1px solid var(--chocolat); text-align: center; }
.gazette__pied a { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.88rem; font-weight: 600; color: var(--terra-fonce); text-decoration: none; }
@media (max-width: 820px) {
	.gazette { padding: 1.3rem 1.2rem 1.1rem; }
	.gazette__corps { grid-template-columns: 1fr; }
	.gazette__une { padding: 0 0 1.2rem; border-right: 0; border-bottom: 1px solid var(--trait); margin-bottom: 0.6rem; }
	.gazette__devise { display: none; }
}
@media (max-width: 480px) {
	.gazette__une--livre { grid-template-columns: 6.5rem minmax(0, 1fr); gap: 0 1rem; }
	.gazette__ligne { font-size: 0.66rem; }
}

/* ---------- L'alignement choisi dans l'éditeur gagne toujours (même dans un encadré) ---------- */
.prose .has-text-align-left.has-text-align-left { text-align: left; }
.prose .has-text-align-center.has-text-align-center { text-align: center; }
.prose .has-text-align-right.has-text-align-right { text-align: right; }

/* ---------- Style de paragraphe « Mot de la fin » ---------- */
.prose p.is-style-maison-mot-fin { position: relative; margin-top: 2.4em; padding-top: 1.3rem; text-align: center; hyphens: manual; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.35rem; line-height: 1.45; color: var(--terra-fonce); }
.prose p.is-style-maison-mot-fin::before { content: "· · ·"; position: absolute; top: 0; left: 0; right: 0; font-style: normal; font-size: 1rem; letter-spacing: 0.4em; color: var(--noisette); line-height: 1; }
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) p.is-style-maison-mot-fin { margin-top: 0; padding-top: 0; font-size: 1.25rem; text-align: center; }
.prose :is(.is-style-maison-encadre, .is-style-maison-encadre-chocolat) p.is-style-maison-mot-fin::before { display: none; }

/* ---------- Style d'image « Médaillon » : une petite photo ronde glissée dans le texte ---------- */
/* WordPress enveloppe parfois l'image alignée dans un <div> : on le rend transparent. */
.prose div.is-style-maison-medaillon { display: contents; }
.prose figure.is-style-maison-medaillon, .prose .is-style-maison-medaillon > figure { display: block; width: 10rem !important; max-width: 10rem !important; margin: 0.3rem auto 1.2rem; text-align: center; }
.prose figure.is-style-maison-medaillon.alignright, .prose .is-style-maison-medaillon > figure.alignright { float: right; margin: 0.3rem 0 1rem 2rem; }
.prose figure.is-style-maison-medaillon.alignleft, .prose .is-style-maison-medaillon > figure.alignleft { float: left; margin: 0.3rem 2rem 1rem 0; }
.prose .is-style-maison-medaillon img { display: block; width: 10rem !important; height: 10rem !important; max-width: none; object-fit: cover; border-radius: 50% !important; border: 5px solid var(--blanc); box-shadow: 0 0 0 1.5px var(--olive), 0 16px 28px -20px rgba(59, 34, 24, 0.7); transition: transform 0.4s ease; }
.prose figure.is-style-maison-medaillon.alignleft img, .prose .is-style-maison-medaillon > figure.alignleft img { box-shadow: 0 0 0 1.5px var(--terra), 0 16px 28px -20px rgba(59, 34, 24, 0.7); }
.prose .is-style-maison-medaillon img:hover { transform: rotate(-3deg) scale(1.03); }
.prose .is-style-maison-medaillon figcaption { display: block; margin-top: 0.6rem; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 0.9rem; line-height: 1.3; color: var(--cacao); text-align: center; }
@media (max-width: 600px) {
	.prose figure.is-style-maison-medaillon, .prose .is-style-maison-medaillon > figure { width: 7.5rem !important; max-width: 7.5rem !important; }
	.prose figure.is-style-maison-medaillon.alignright, .prose .is-style-maison-medaillon > figure.alignright { float: right; margin: 0.2rem 0 0.8rem 1.2rem; }
	.prose figure.is-style-maison-medaillon.alignleft, .prose .is-style-maison-medaillon > figure.alignleft { float: left; margin: 0.2rem 1.2rem 0.8rem 0; }
	.prose .is-style-maison-medaillon img { width: 7.5rem !important; height: 7.5rem !important; border-width: 4px; }
}

/* ---------- Instagram ---------- */
/* La carte postale est portée par un cadre, pour que le tampon Instagram (un lien à part) tourne avec elle. */
.postale-cadre { position: relative; justify-self: center; width: min(100%, 23rem); transform: rotate(-2deg); transition: transform 0.35s ease; }
.postale-cadre .postale { width: 100%; transform: none; }
.postale-cadre:hover { transform: rotate(0deg) translateY(-3px); }
.postale-cadre a.postale:hover { transform: none; }
a.postale__tampon--insta { z-index: 2; gap: 0.2rem; text-decoration: none; transition: background 0.3s ease, transform 0.35s ease; }
a.postale__tampon--insta:hover, a.postale__tampon--insta:focus-visible { background: var(--terra); border-style: solid; transform: rotate(0deg) scale(1.08); color: var(--blanc); }
.postale__tampon--insta em { font-size: 0.66rem; font-weight: 600; }
.js .postale__tampon--insta { animation: maison-tampon 0.55s cubic-bezier(0.3, 1.5, 0.5, 1) 0.7s both; }
.pied-insta { margin-top: 1rem !important; }
.pied-insta a { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.45rem 0.95rem 0.45rem 0.75rem; border: 1px solid rgba(246, 240, 235, 0.35); border-radius: 999px; color: var(--lait); font-size: 0.92rem; font-weight: 600; text-decoration: none; transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease; }
.pied-insta a:hover, .pied-insta a:focus-visible { background: var(--lait); color: var(--chocolat); border-color: var(--lait); }
.partage__insta { margin: 1.1rem 0 0; padding-top: 1rem; border-top: 1px dashed var(--trait); font-size: 0.92rem; color: var(--encre); }
.partage__insta a { display: inline-flex; align-items: center; gap: 0.3rem; font-weight: 700; color: var(--terra-fonce); text-decoration: none; white-space: nowrap; }
.partage__insta a:hover { text-decoration: underline; text-underline-offset: 3px; }
.partage__insta .icone-insta { position: relative; top: -1px; }

/* ==========================================================================
   Accueil : « Les Nouvelles de la Maison », des pages de journal à feuilleter
   ========================================================================== */
.journal__tete { text-align: center; margin-bottom: 1.4rem; }
.journal__nom { margin: 0; font-family: var(--titre); font-variation-settings: "SOFT" 0, "WONK" 1; font-weight: 600; font-size: clamp(1.8rem, 4.4vw, 2.6rem); line-height: 1.05; letter-spacing: -0.01em; color: var(--chocolat); }
.journal__sous { margin: 0.4rem 0 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.02rem; color: var(--cacao); }
.journal__sous::before, .journal__sous::after { content: " — "; color: var(--noisette); }
.feuilles { position: relative; }
.feuilles__piste { list-style: none; margin: 0 -1rem; padding: 0.6rem 1rem 1.6rem; display: flex; gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 1rem; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; }
.feuilles__piste::-webkit-scrollbar { display: none; }
.feuilles__piste.est-attrape { cursor: grabbing; scroll-snap-type: none; }
.feuilles__piste.est-attrape a { pointer-events: none; }
.feuille { flex: 0 0 calc((100% - 2 * 1.4rem) / 3); scroll-snap-align: start; display: flex; }
.feuille article { position: relative; display: flex; flex-direction: column; width: 100%; background: #fffdf9; border: 1px solid var(--trait); border-radius: 6px; padding: 1rem 1.1rem 1.1rem; box-shadow: 0 18px 30px -26px rgba(59, 34, 24, 0.7); transition: transform 0.35s ease, box-shadow 0.35s ease; }
.feuille article:hover { transform: translateY(-4px) rotate(-0.6deg); box-shadow: 0 26px 38px -26px rgba(59, 34, 24, 0.75); }
.feuille__tete { display: flex; align-items: flex-end; gap: 0.6rem; padding-bottom: 0.45rem; margin-bottom: 0.85rem; border-bottom: 1px solid var(--chocolat); }
.feuille__jour { font-family: var(--titre); font-variation-settings: "SOFT" 100; font-weight: 500; font-size: 2.1rem; line-height: 0.9; color: var(--chocolat); }
.feuille__mois { font-size: 0.7rem; line-height: 1.25; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cacao); }
.feuille__une { margin-left: auto; align-self: center; padding: 0.2rem 0.6rem; border-radius: 999px; background: var(--terra); color: var(--blanc); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.feuille__visuel { display: grid; place-items: center; height: 10rem; margin-bottom: 0.85rem; border-radius: 4px; overflow: hidden; }
.feuille__visuel--o { background: var(--olive-clair); color: var(--olive-fonce); }
.feuille__visuel--t { background: var(--terra-clair); color: var(--terra); }
.feuille__visuel svg, .feuille__visuel .jumelles { width: 3rem; height: 3rem; transition: transform 0.4s ease; }
.feuille article:hover .feuille__visuel svg { transform: rotate(-8deg) scale(1.06); }
.feuille__visuel--photo img { width: 100%; height: 100%; object-fit: cover; }
.feuille__visuel--livre img { height: 8.6rem; width: auto; max-width: 80%; object-fit: contain; border-radius: 2px 4px 4px 2px; box-shadow: 0 10px 18px -10px rgba(59, 34, 24, 0.75); }
.feuille__piece { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.2rem 0.65rem 0.2rem 0.45rem; border-radius: 999px; font-size: 0.78rem; font-weight: 600; }
.feuille__piece svg, .feuille__piece .jumelles { width: 1rem; height: 1rem; }
.feuille__piece--o { background: var(--olive-clair); color: var(--olive-fonce); }
.feuille__piece--t { background: var(--terra-clair); color: var(--terra-fonce); }
.feuille__titre { margin: 0.55rem 0 0.35rem; font-size: 1.3rem; line-height: 1.18; }
.feuille__titre a { color: var(--chocolat); text-decoration: none; }
.feuille__titre a::after { content: ""; position: absolute; inset: 0; }
.feuille article:focus-within { outline: 2px solid var(--cacao); outline-offset: 3px; }
.feuille__titre a:focus-visible { outline: none; }
.feuille__extrait { margin: 0 0 0.8rem; font-size: 0.92rem; line-height: 1.55; color: var(--encre); }
.feuille__lire { margin-top: auto; display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.88rem; font-weight: 600; color: var(--terra-fonce); }
.feuille__lire svg { transition: transform 0.25s ease; }
.feuille article:hover .feuille__lire svg { transform: translateX(3px); }
.feuilles .rangee__bouton { top: 44%; }
.feuilles__bas { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.feuilles__points { display: flex; gap: 0.4rem; }
.feuilles__points i { width: 0.5rem; height: 0.5rem; border-radius: 999px; background: var(--trait); transition: width 0.3s ease, background 0.3s ease; }
.feuilles__points i.est-la { width: 1.3rem; background: var(--terra); }
.feuilles__aide { margin: 0; font-size: 0.82rem; font-style: italic; color: var(--noisette); }
.feuilles__tous { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 0.4rem; font-weight: 600; font-size: 0.92rem; color: var(--terra-fonce); text-decoration: none; }
@media (min-width: 761px) { .feuilles__aide { display: none; } }
@media (max-width: 1000px) { .feuille { flex-basis: calc((100% - 1.4rem) / 2); } }
@media (max-width: 760px) {
	.feuilles__piste { gap: 1rem; margin-right: calc(-1 * var(--marge)); padding-right: var(--marge); }
	.feuille { flex-basis: 80%; }
	.feuilles .rangee__bouton { display: none; }
}

/* ==========================================================================
   La Lettre de la Maison (newsletter, avec MailPoet)
   ========================================================================== */
.lettre { position: relative; overflow: hidden; margin: 3rem auto 0; max-width: 46rem; padding: 2rem 2rem 1.8rem; border-radius: 26px; background: var(--chocolat); color: #e8ddd3; text-align: center; scroll-margin-top: 6rem; }
.lettre::before { content: ""; position: absolute; inset: 0.6rem; border: 1px dashed rgba(246, 240, 235, 0.32); border-radius: 20px; pointer-events: none; }
.lettre > * { position: relative; }
.lettre__enveloppe { display: block; width: 2.8rem; height: 2.8rem; margin: 0 auto 0.5rem; color: var(--terra-clair); }
.lettre__rabat { transform-origin: 24px 13px; transition: transform 0.4s ease; }
.lettre:hover .lettre__rabat { transform: translateY(2px) scaleY(0.75); }
.lettre__titre { margin: 0 0 0.4rem; font-size: 1.55rem; color: var(--blanc); }
.lettre__texte { max-width: 30rem; margin: 0 auto 1.1rem; font-size: 0.98rem; }
.lettre__form { display: flex; gap: 0.6rem; max-width: 30rem; margin: 0 auto; }
.lettre__email { flex: 1; min-width: 0; padding: 0.8rem 1.1rem; border: 2px solid transparent; border-radius: 999px; background: #fffdf9; color: var(--encre); font: inherit; font-size: 0.98rem; }
.lettre__email:focus { outline: none; border-color: var(--terra); }
.lettre__bouton { flex: none; padding: 0.8rem 1.4rem; border: 0; border-radius: 999px; background: var(--terra); color: var(--blanc); font: inherit; font-size: 0.98rem; font-weight: 700; cursor: pointer; transition: background 0.25s ease, transform 0.25s ease; }
.lettre__bouton:hover, .lettre__bouton:focus-visible { background: var(--terra-fonce); transform: translateY(-2px); }
.lettre__piege { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lettre__note { margin: 0.8rem 0 0; font-size: 0.78rem; color: #c7b3a3; }
.lettre__message { max-width: 30rem; margin: 0.4rem auto 1rem; padding: 0.75rem 1rem; border-radius: 14px; font-size: 0.95rem; }
.lettre__message--ok { background: rgba(236, 235, 215, 0.14); color: #f3efd9; }
.lettre__message--oups { background: rgba(192, 112, 77, 0.25); color: #fbe3d6; }
.lettre--article { max-width: var(--lecture); margin-top: 1.4rem; padding: 1.6rem 1.6rem 1.4rem; }
.lettre--article .lettre__titre { font-size: 1.3rem; }
@media (max-width: 560px) {
	.lettre { padding: 1.6rem 1.2rem 1.4rem; border-radius: 22px; }
	.lettre__form { flex-direction: column; }
}

/* Voyages : toute la ligne d'un pays est cliquable, flèche comprise */
.pays-ligne__fleche { pointer-events: none; }
.pays-ligne__lieux { pointer-events: none; }
.pays-ligne__lieux .pastille { pointer-events: auto; }

/* Lectures : la petite phrase qui explique chaque étagère */
.etagere-mot { display: flex; align-items: flex-start; gap: 0.6rem; max-width: 40rem; margin: 0.9rem 0 0; padding: 0.7rem 1rem; border-left: 3px solid var(--olive); background: var(--olive-clair); border-radius: 0 14px 14px 0; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.02rem; line-height: 1.45; color: var(--encre); }
.etagere-mot[hidden] { display: none; }
.etagere-mot.change { animation: maison-mot 0.4s ease; }
@keyframes maison-mot { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }

/* ==========================================================================
   Politique de confidentialité
   ========================================================================== */
.confid { max-width: var(--lecture); margin: 0 auto; }
.confid .article__entete { margin-bottom: 1.6rem; }
.confid__intro p { margin: 0 0 1.8rem; font-family: var(--titre); font-variation-settings: "SOFT" 100; font-style: italic; font-size: 1.15rem; line-height: 1.55; color: var(--cacao); text-align: center; }
.confid__bref { padding: 1.5rem 1.6rem 1.3rem; background: var(--lait); border-radius: 24px; }
.confid__bref h2 { margin: 0 0 1rem; font-size: 1.3rem; }
.confid__bref ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.4rem; margin: 0; padding: 0; list-style: none; }
.confid__bref li { display: flex; gap: 0.75rem; align-items: flex-start; font-size: 0.92rem; line-height: 1.5; color: var(--encre); }
.confid__bref svg { flex: none; width: 2.2rem; height: 2.2rem; padding: 0.45rem; border-radius: 50%; background: var(--olive-clair); color: var(--olive-fonce); }
.confid__bref li:nth-child(even) svg { background: var(--terra-clair); color: var(--terra-fonce); }
.confid__bref b { display: block; color: var(--chocolat); font-weight: 600; }
.confid__sommaire { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 1.6rem 0 0.4rem; }
.confid__sommaire a { padding: 0.35rem 0.85rem; border: 1px solid var(--trait); border-radius: 999px; font-size: 0.84rem; color: var(--cacao); text-decoration: none; transition: background 0.2s ease, color 0.2s ease; }
.confid__sommaire a:hover { background: var(--olive-clair); border-color: var(--olive-clair); color: var(--olive-fonce); }
.confid__texte h2 { display: flex; align-items: center; gap: 0.7rem; scroll-margin-top: 6rem; }
.confid__texte h2::before { display: none; }
.confid__n { flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--terra-clair); color: var(--terra-fonce); font-family: var(--texte); font-size: 0.9rem; font-weight: 700; }
.confid__texte h3 { font-size: 1.1rem; color: var(--cacao); }
.confid__texte > p, .confid__texte li { text-align: left; hyphens: manual; }
.confid__fin { margin: 2.6rem 0 0; padding: 1.4rem 1.5rem; border: 1px dashed var(--trait); border-radius: 22px; text-align: center; }
.confid__fin p { margin: 0 0 0.8rem; font-family: var(--titre); font-style: italic; color: var(--cacao); }
.confid__bouton { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.65rem 1.3rem; border-radius: 999px; background: var(--chocolat); color: var(--blanc); font-weight: 600; text-decoration: none; }
.confid__bouton:hover { background: var(--terra-fonce); color: var(--blanc); }
@media (max-width: 640px) { .confid__bref ul { grid-template-columns: 1fr; } }
