/* ==========================================================================
   Bulle1924 — feuille de styles du thème enfant (GeneratePress)
   Contrastes vérifiés AA : or #c9a45c uniquement sur fond vert ; sur fond clair, --or-texte.
   ========================================================================== */

:root {
	--vert: #004f48;
	--vert-fonce: #00332f;
	--vert-nuit: #001f1c;
	--or: #c9a45c;
	--or-texte: #7a5a1c;
	--creme: #f7f2e8;
	--creme-2: #efe8da;
	--encre: #1d2322;
	--gris: #5d6664;
	--ligne: rgba(0, 79, 72, .16);
	--serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--sans: 'Roboto Condensed', 'Arial Narrow', Arial, sans-serif;
	--largeur: 1180px;
	--texte: 760px;
}

/* ---- Base ---------------------------------------------------------------- */
body { background: var(--creme); color: var(--encre); font-family: var(--sans); font-size: 17px; line-height: 1.65; }
body, button, input, select, textarea { font-family: var(--sans); }
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.15; color: var(--vert); }
h2 { font-size: clamp(1.9rem, 4vw, 2.6rem); margin: 2.4em 0 .6em; }
h3 { font-size: clamp(1.4rem, 2.6vw, 1.7rem); margin: 1.8em 0 .5em; }
a { color: var(--vert); text-underline-offset: .2em; }
a:hover, a:focus { color: var(--vert-fonce); }
:focus-visible { outline: 2px solid var(--or); outline-offset: 3px; }
img { height: auto; }
.center { text-align: center; }
.screen-reader-text:focus { background: #fff; color: var(--vert); }

/* ---- Boutons ------------------------------------------------------------- */
.btn, .entry-content .btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em;
	min-height: 44px; padding: .75em 1.6em; border: 1px solid var(--or);
	font-family: var(--sans); font-weight: 700; font-size: .85rem; letter-spacing: .16em; text-transform: uppercase;
	text-decoration: none; line-height: 1.2; cursor: pointer; transition: background-color .2s, color .2s, border-color .2s;
}
.btn--primaire { background: var(--or); color: var(--vert-nuit); }
.btn--primaire:hover, .btn--primaire:focus { background: var(--vert-fonce); color: #fff; border-color: var(--vert-fonce); }
.btn--contour { background: transparent; color: var(--vert); border-color: var(--vert); }
.btn--contour:hover, .btn--contour:focus { background: var(--vert); color: #fff; }
.btn--clair { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .75); }
.btn--clair:hover, .btn--clair:focus { background: #fff; color: var(--vert-fonce); border-color: #fff; }
.btn--petit { min-height: 36px; padding: .45em 1em; font-size: .75rem; }

/* ---- Barre haute --------------------------------------------------------- */
.barre-haute { background: var(--vert-nuit); color: #fff; font-size: .85rem; }
.barre-haute__inner { max-width: var(--largeur); margin: 0 auto; padding: .35rem 20px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 48px; }
.barre-haute a { color: #fff; }
.barre-haute__adresse { margin: 0; }
.barre-haute__adresse a { text-decoration: none; opacity: .9; }
.barre-haute__adresse a:hover { color: var(--or); }
.barre-haute__actions { display: flex; align-items: center; gap: 1rem; }
.barre-haute__tel { font-weight: 700; letter-spacing: .05em; text-decoration: none; }
.barre-haute__tel:hover { color: var(--or); }
.langues ul { display: flex; gap: .2rem; list-style: none; margin: 0; padding: 0; }
.langues a { display: inline-block; padding: .35rem .45rem; min-width: 32px; text-align: center; text-decoration: none; font-size: .78rem; letter-spacing: .08em; }
.langues a[aria-current] { color: var(--or); border-bottom: 1px solid var(--or); }
@media (max-width: 768px) {
	.barre-haute__adresse, .barre-haute .btn { display: none; }
	.barre-haute__inner { justify-content: space-between; }
}

/* ---- En-tête GeneratePress ---------------------------------------------- */
.site-header { background: var(--vert-fonce); }
.site-header .inside-header { max-width: var(--largeur); padding: 10px 20px; }
.site-logo img, .site-header .header-image { max-height: 64px; width: auto; }
.main-title a, .main-title a:hover { color: #fff; font-family: var(--serif); }
.main-navigation, .main-navigation ul ul { background: var(--vert-fonce); }
.main-navigation .main-nav ul li a { color: #fff; font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; }
.main-navigation .main-nav ul li:hover > a, .main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--or); background: transparent; }
.main-navigation .menu-toggle { color: #fff; }
.main-navigation .main-nav ul ul li a { font-size: .8rem; }

/* ---- Bandeau de page ----------------------------------------------------- */
.bandeau { background: var(--vert); color: #fff; }
.bandeau__inner { max-width: var(--largeur); margin: 0 auto; padding: 2.5rem 20px 3rem; }
.bandeau__titre { color: #fff; font-size: clamp(2.2rem, 5.5vw, 3.6rem); margin: .3rem 0 0; max-width: 22ch; }
.bandeau__sur-titre { color: var(--or); letter-spacing: .25em; text-transform: uppercase; font-size: .8rem; margin: 0; }
.bandeau__chapo { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 2.4vw, 1.45rem); color: #eae4d6; max-width: 60ch; margin: .9rem 0 0; }
.bandeau__actions { display: flex; flex-wrap: wrap; gap: .8rem; margin: 1.6rem 0 0; }
.fil-ariane { font-size: .8rem; letter-spacing: .06em; color: #eae4d6; }
.fil-ariane p { margin: 0; }
.fil-ariane a { color: #fff; }
.fil-ariane .separator { margin: 0 .35em; color: var(--or); }
.fil-ariane .last { color: #eae4d6; }

/* ---- Accueil : héros ---------------------------------------------------- */
.heros { position: relative; display: grid; min-height: min(88vh, 760px); color: #fff; background: var(--vert-nuit); overflow: hidden; }
.heros picture { position: absolute; inset: 0; }
.heros__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.heros::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 31, 28, .55), rgba(0, 31, 28, .45) 45%, rgba(0, 31, 28, .85)); }
.heros__contenu { position: relative; z-index: 1; align-self: center; text-align: center; max-width: 900px; margin: 0 auto; padding: 3rem 20px; }
.heros__logo { width: 120px; height: auto; margin: 0 auto 1.2rem; }
.heros__surtitre { margin: 0 0 .6rem; color: var(--or); font-family: var(--sans); font-size: .85rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.avis-badge { display: inline-flex; align-items: center; gap: .45rem; margin: 0 0 1.4rem; padding: .45rem .95rem; border-radius: 999px; background: rgba(255,255,255,.95); color: #202124; font-family: var(--sans); font-size: .9rem; line-height: 1; text-decoration: none; box-shadow: 0 2px 10px rgba(0,0,0,.25); transition: transform .15s; }
.avis-badge:hover, .avis-badge:focus-visible { transform: translateY(-1px); color: #202124; }
.avis-badge strong { font-size: 1rem; }
.avis-badge__g { flex: none; display: block; }
.avis-badge__etoiles { position: relative; display: inline-block; color: #dadce0; letter-spacing: .05em; font-size: 1rem; }
.avis-badge__etoiles span { position: absolute; inset: 0 auto 0 0; overflow: hidden; white-space: nowrap; color: #fbbc04; }
.avis-badge__nb { color: #5f6368; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 420px) { .avis-badge { font-size: .8rem; gap: .35rem; padding: .4rem .75rem; } }
.heros__titre { color: #fff; font-size: clamp(2.3rem, 6vw, 4.2rem); margin: 0; }
.heros__chapo { font-family: var(--serif); font-style: italic; font-size: clamp(1.2rem, 2.6vw, 1.6rem); margin: .8rem auto 0; max-width: 40ch; }
.heros__actions { display: flex; flex-wrap: wrap; gap: .9rem; justify-content: center; margin: 2rem 0 0; }
.heros__adresse { margin: 1.4rem 0 0; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; }
.heros__adresse a { color: #fff; text-decoration: none; opacity: .9; }
.heros__adresse a:hover { color: var(--or); }

/* ---- Contenu ------------------------------------------------------------- */
.separate-containers .inside-article, .one-container .container, .one-container .site-content { background: transparent; }
.site-content .content-area { width: 100%; }
.entry-content { max-width: var(--texte); margin: 0 auto; }
.entry-content > .alignwide { max-width: var(--largeur); }
.entry-content > .alignfull { max-width: none; }
.contenu { padding: 3rem 0 4rem; }
.entry-content h2:first-child { margin-top: 0; }
.entry-content ul { margin-left: 1.2em; }
.liste-puces { list-style: none; margin-left: 0 !important; padding: 0; }
.liste-puces li { padding-left: 1.2em; position: relative; }
.liste-puces li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; background: var(--or-texte); transform: rotate(45deg); }
.sur-titre { color: var(--or-texte); letter-spacing: .25em; text-transform: uppercase; font-size: .8rem; margin: 0 0 .4rem; }
.a-confirmer { border: 2px dashed #b36b00; background: #fff4e0; color: #5a3600; padding: 1rem 1.2rem; margin: 1.5rem 0; }

/* Tableau des horaires */
.horaires { width: 100%; border-collapse: collapse; margin: 0 0 1rem; font-size: .95rem; }
.horaires th, .horaires td { padding: .6rem .4rem; border-bottom: 1px solid var(--ligne); text-align: left; vertical-align: top; }
.horaires thead th { font-family: var(--sans); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gris); font-weight: 700; }
.horaires tbody th { font-family: var(--serif); font-size: 1.15rem; font-weight: 600; color: var(--vert); }
.horaires td.ferme { color: var(--gris); font-style: italic; }
.horaires-exceptionnels { font-size: .9rem; }

address.nap { font-style: normal; line-height: 1.7; }

/* ---- Bloc de fin --------------------------------------------------------- */
.bloc-fin { background: var(--creme-2); border-top: 1px solid var(--ligne); }
.bloc-fin__inner { max-width: var(--largeur); margin: 0 auto; padding: 4rem 20px; }
.bloc-fin__titre { text-align: center; margin: 0 0 2.5rem; }
.bloc-fin__grille { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 3rem; }
.bloc-fin h3 { margin-top: 0; }
.bloc-fin__tel a { font-weight: 700; }
@media (max-width: 900px) { .bloc-fin__grille { grid-template-columns: 1fr; gap: 2rem; } }

/* ---- Pied de page -------------------------------------------------------- */
.site-footer { background: var(--vert-nuit); }
.pied { color: #b8bfbd; font-size: .95rem; }
.pied__inner { max-width: var(--largeur); margin: 0 auto; padding: 3.5rem 20px 1.5rem; }
.pied__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 2.5rem; }
.pied a { color: #fff; text-decoration: none; }
.pied a:hover, .pied a:focus { color: var(--or); }
.pied__titre { font-family: var(--sans); font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; color: var(--or); margin: 0 0 1rem; }
.pied__liste { list-style: none; margin: 0; padding: 0; }
.pied__liste li { margin-bottom: .45rem; }
.pied__copyright { margin: 3rem 0 0; padding-top: 1.2rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .8rem; text-align: center; }

/* ---- 404 ----------------------------------------------------------------- */
.liens-404 { list-style: none; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin: 1rem 0 2rem; padding: 0; }

/* ---- Barre d'action mobile (fixe : n'entraîne pas de décalage de mise en page) */
.barre-mobile { display: none; }
@media (max-width: 768px) {
	.barre-mobile { display: grid; grid-template-columns: 1fr 1.4fr; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); background: var(--vert-nuit); box-shadow: 0 -2px 12px rgba(0, 0, 0, .25); }
	.barre-mobile .btn { width: 100%; }
	body { padding-bottom: 64px; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---- Carte ---------------------------------------------------------------- */
.carte-nav { position: sticky; top: 0; z-index: 5; background: var(--creme); border-bottom: 1px solid var(--ligne); margin: 0 0 1rem; }
.carte-nav ul { display: flex; gap: 1.4rem; list-style: none; margin: 0 !important; padding: 0; overflow-x: auto; scrollbar-width: none; }
.carte-nav a { display: block; padding: .9rem 0; white-space: nowrap; text-decoration: none; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; border-bottom: 2px solid transparent; }
.carte-nav a:hover, .carte-nav a:focus { border-bottom-color: var(--or-texte); }
.carte-section { padding-top: 1rem; }
.carte-section h2 { text-align: center; }
.carte-note { margin: 1rem 0 0; font-size: .88rem; color: var(--gris); }
.carte-intro { text-align: center; color: var(--gris); white-space: pre-line; }
.carte-sous { font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--or-texte); border-bottom: 1px solid var(--ligne); padding-bottom: .4rem; margin: 2rem 0 .4rem; }
.carte-liste { list-style: none; margin: 0 !important; padding: 0; }
.plat { display: grid; grid-template-columns: 1fr auto; gap: .15rem 1.2rem; padding: .85rem 0; border-bottom: 1px dotted var(--ligne); }
.plat__nom { font-family: var(--serif); font-size: 1.25rem; font-weight: 600; line-height: 1.3; }
.plat__prix { grid-row: 1 / span 2; grid-column: 2; text-align: right; font-weight: 700; color: var(--vert); white-space: nowrap; }
.plat__prix small { display: block; font-weight: 400; font-size: .8rem; color: var(--gris); }
.plat__desc { grid-column: 1; font-size: .95rem; color: var(--gris); }
.plat__allergenes { grid-column: 1; display: block; margin-top: .15rem; font-size: .78rem; font-style: italic; color: var(--gris); }

/* ---- Galerie, encadrés ------------------------------------------------------ */
.entry-content .gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin: 2rem 0; }
.entry-content .gallery .gallery-item { margin: 0; width: auto !important; max-width: none; }
.entry-content .gallery img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 0 !important; }
.entry-content .gallery-caption { font-size: .8rem; color: var(--gris); }
.entry-content .gallery-columns-3 { grid-template-columns: repeat(3, 1fr); }
.entry-content .gallery-columns-4 { grid-template-columns: repeat(4, 1fr); }
.entry-content .gallery .gallery-caption { margin: .35rem 0 0; line-height: 1.3; text-align: center; }
.encadre { background: #fff; border: 1px solid var(--ligne); padding: 1.4rem 1.6rem; margin: 2rem 0; }
.encadre > :first-child { margin-top: 0; }
.encadre > :last-child { margin-bottom: 0; }
.tableau { width: 100%; border-collapse: collapse; margin: 1rem 0 2rem; }
.tableau th, .tableau td { padding: .6rem .5rem; border-bottom: 1px solid var(--ligne); text-align: left; }
.tableau th { font-family: var(--serif); font-size: 1.1rem; color: var(--vert); font-weight: 600; }
.lien-inactif { border-bottom: 1px dashed #b36b00; }
.plat--photo { grid-template-columns: 64px 1fr auto; }
.plat--photo .plat__photo { grid-row: 1 / span 2; grid-column: 1; display: block; width: 64px; }
.plat--photo .plat__photo img { width: 64px; height: 85px; object-fit: cover; border-radius: 2px; }
.plat--photo-plat { grid-template-columns: 76px 1fr auto; }
.plat--photo-plat .plat__photo, .plat--photo-plat .plat__photo img { width: 76px; height: 76px; border-radius: 4px; }
.plat--photo .plat__nom, .plat--photo .plat__desc, .plat--photo .plat__allergenes { grid-column: 2; }
.plat--photo .plat__prix { grid-column: 3; }
.entry-content .photo { margin: 2rem 0; }
.entry-content .photo img { width: 100%; height: auto; max-height: 80vh; object-fit: cover; }
.entry-content .photo figcaption { font-size: .85rem; color: var(--gris); margin-top: .4rem; }

/* Bandeau avec photo de fond (voile sombre : contraste AA du titre blanc garanti) */
.bandeau--image { position: relative; overflow: hidden; }
.bandeau__fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bandeau--image::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(0, 31, 28, .9) 0%, rgba(0, 31, 28, .8) 60%, rgba(0, 31, 28, .75) 100%); }
.bandeau__credit { position: absolute; right: 12px; bottom: 8px; z-index: 2; margin: 0; font-size: .72rem; color: rgba(255, 255, 255, .75); }
.bandeau--image .bandeau__inner { position: relative; z-index: 2; padding-top: 3.5rem; padding-bottom: 4rem; }

/* ---- Boutons réseaux sociaux ------------------------------------------------ */
.reseaux { display: flex; flex-wrap: wrap; gap: .6rem; margin: .4rem 0 1rem; }
.reseau { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--vert); color: var(--vert); text-decoration: none; font-weight: 700; font-size: .85rem; letter-spacing: .08em; }
.reseau:hover, .reseau:focus { background: var(--vert); color: #fff; }
.reseaux--pied .reseau { border-color: rgba(255, 255, 255, .5); color: #fff; }
.reseaux--pied .reseau:hover, .reseaux--pied .reseau:focus { background: #fff; color: var(--vert-nuit); border-color: #fff; }
.pied__avis { font-size: .9rem; margin: 0; }
.reseaux-titre { margin: 1.5rem 0 0; }

/* ---- Fenêtre de réservation (nouveau module) ---------------------------------- */
.resa-fenetre { padding: 0; border: 0; width: min(520px, 94vw); height: min(780px, 90vh); max-height: none; max-width: none; background: var(--creme); color: var(--encre); box-shadow: 0 20px 60px rgba(0, 0, 0, .4); border-radius: 6px; overflow: hidden; }
.resa-fenetre[open] { display: flex; flex-direction: column; }
.resa-fenetre::backdrop { background: rgba(0, 25, 22, .7); }
.resa-fenetre__barre { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem .6rem .6rem 1.2rem; background: var(--vert-nuit); color: #fff; }
.resa-fenetre__titre { margin: 0; font-family: var(--serif); font-size: 1.3rem; }
.resa-fenetre__titre span { color: var(--or); font-size: 1rem; }
.resa-fenetre__fermer { display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: 0 1rem; background: transparent; color: #fff; border: 1px solid rgba(255, 255, 255, .5); font: 700 .8rem var(--sans); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.resa-fenetre__fermer span { font-size: 1.4rem; line-height: 1; }
.resa-fenetre__fermer:hover, .resa-fenetre__fermer:focus { background: #fff; color: var(--vert-nuit); }
.resa-fenetre__corps { position: relative; flex: 1; background: #fff; }
.resa-fenetre__corps iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.resa-fenetre__attente { position: absolute; inset: 0; display: grid; place-items: center; margin: 0; color: var(--gris); }
.resa-fenetre.est-charge .resa-fenetre__attente { display: none; }
.resa-fenetre__pied { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; margin: 0; padding: .6rem 1.2rem; font-size: .85rem; border-top: 1px solid var(--ligne); }
html.resa-ouverte { overflow: hidden; }
@media (max-width: 768px) {
	.resa-fenetre { inset: 0; width: 100vw; height: 100vh; height: 100dvh; border-radius: 0; margin: 0; max-width: 100vw; max-height: 100dvh; }
	.resa-fenetre__pied { padding-bottom: calc(.6rem + env(safe-area-inset-bottom)); }
}

/* ==========================================================================
   Mobile (≤ 768 px) — repasse UX/UI
   ========================================================================== */
@media (max-width: 768px) {
	/* En-tête : une seule ligne compacte, logo à gauche, menu à droite */
	.site-header { position: relative; }
	.site-header .inside-header { display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 6px 12px 6px 16px; text-align: left; }
	.site-header .site-logo { margin: 0 !important; }
	.site-header .header-image, .site-logo img { width: 44px; height: 44px; max-height: 44px; }
	.main-navigation { width: auto; margin: 0; background: transparent; position: static; }
	.main-navigation .inside-navigation { justify-content: flex-end; padding: 0; position: static; }
	/* Les pseudo-éléments « clearfix » de GeneratePress deviennent des éléments flex et décentrent le logo */
	.site-header .inside-header::before, .site-header .inside-header::after,
	.main-navigation .inside-navigation::before, .main-navigation .inside-navigation::after { display: none; }
	.site-header .inside-header > .main-navigation { margin-left: auto; }
	.main-navigation .menu-toggle { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: 0 12px; background: transparent; color: #fff; font-size: .85rem; letter-spacing: .14em; text-transform: uppercase; border: 1px solid rgba(255, 255, 255, .35); }
	.main-navigation .menu-toggle:hover, .main-navigation .menu-toggle:focus { background: rgba(255, 255, 255, .08); color: #fff; }
	/* Menu ouvert : panneau déroulant sous l'en-tête, par-dessus la page */
	.main-navigation.toggled .main-nav { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; background: var(--vert-fonce); border-top: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 12px 24px rgba(0, 0, 0, .35); width: 100%; max-height: calc(100vh - 140px); max-height: calc(100dvh - 140px); overflow-y: auto; overscroll-behavior: contain; }
	.main-navigation.toggled .main-nav > ul { padding: 4px 0 8px; }
	.main-navigation.toggled .main-nav ul li a { white-space: normal; }
	.main-navigation.toggled .main-nav ul li a { padding: 14px 20px; line-height: 1.3; font-size: .95rem; border-bottom: 1px solid rgba(255, 255, 255, .06); }
	.main-navigation.toggled .main-nav ul ul { background: rgba(0, 0, 0, .18); }
	.main-navigation.toggled .main-nav ul ul li a { padding-left: 36px; font-size: .9rem; text-transform: none; letter-spacing: .02em; }
	.main-navigation.toggled .main-nav ul ul ul li a { padding-left: 52px; }
	.main-navigation .dropdown-menu-toggle { padding: 0 16px; }

	/* Barre haute : téléphone + langues, plus aérée */
	.barre-haute__inner { min-height: 40px; padding: 4px 16px; }
	.langues ul { gap: 0; }
	.langues a { min-width: 0; padding: .35rem .32rem; letter-spacing: .04em; }

	/* Héros : pleine largeur, sans le logo en double (déjà dans l'en-tête) */
	.heros { min-height: 72svh; }
	.heros__logo { display: none; }
	.heros__contenu { padding: 2.5rem 20px 3rem; }
	.heros__titre { font-size: 2.3rem; }
	.heros__actions .btn { flex: 1 1 100%; }

	/* Bandeau des pages intérieures : plus compact */
	.bandeau__inner, .bandeau--image .bandeau__inner { padding: 1.6rem 16px 2rem; }
	.bandeau__titre { font-size: 2rem; }
	.bandeau__actions .btn { flex: 1 1 auto; }

	/* Contenu : marges latérales cohérentes (16 px) */
	.one-container .site-content { padding: 0; }
	.contenu, .separate-containers .inside-article, .one-container .inside-article { padding-left: 16px; padding-right: 16px; }
	.entry-content h2 { margin-top: 1.8em; }

	/* Galeries : deux colonnes sur téléphone */
	.entry-content .gallery, .entry-content .gallery-columns-3, .entry-content .gallery-columns-4 { grid-template-columns: repeat(2, 1fr); gap: 6px; }

	/* Tableaux larges : défilement horizontal plutôt que débordement */
	.tableau { display: block; overflow-x: auto; }

	/* Bloc de fin et pied de page : moins d'espace vide */
	.bloc-fin__inner { padding: 2.5rem 16px; }
	.pied__inner { padding: 2.5rem 16px 1.5rem; }
	.pied__marque { display: none; }
}

/* Accueil : le contenu commence sous le héros, sans cadre autour */
.home .site-content { padding-top: 0; }
.home.one-container .site-content { padding: 0; }
.contenu--accueil { padding-top: 3rem; }

/* Chinois : polices système, pas d'italique (illisible en CJK) */
:lang(zh) body, :lang(zh) h1, :lang(zh) h2, :lang(zh) h3, :lang(zh) .heros__chapo, :lang(zh) .bandeau__chapo { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", sans-serif; }
:lang(zh) em, :lang(zh) i, :lang(zh) .heros__chapo, :lang(zh) .carte-note em { font-style: normal; }
:lang(zh) .main-navigation .main-nav ul li a, :lang(zh) .heros__surtitre { letter-spacing: .05em; }

/* Labels et distinctions : bandeau de réassurance sous l'image d'accueil */
.labels { background: #fff; border-bottom: 1px solid var(--ligne); }
.labels__liste { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 28px; max-width: var(--largeur); margin: 0 auto; padding: 16px 20px; list-style: none; }
.labels__liste li { margin: 0; }
.labels__liste a, .labels__liste li > span:first-child { color: inherit; text-decoration: none; }
.labels__liste a, .labels__liste li { display: flex; align-items: center; gap: 10px; }
.labels__logo { width: 56px; height: 56px; object-fit: contain; border-radius: 10px; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, .12); padding: 4px; }
.labels__nom { font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--vert); max-width: 9em; line-height: 1.25; }
@media (max-width: 600px) { .labels__liste { gap: 10px 14px; padding: 12px; } .labels__logo { width: 46px; height: 46px; } .labels__nom { font-size: .7rem; } }
.entry-content .label-page { margin: .5rem 0 1rem; }
.entry-content .label-page img { width: 120px; height: auto; background: #fff; border-radius: 10px; padding: 8px; box-shadow: 0 1px 4px rgba(0, 0, 0, .12); }

/* Page « Notes et avis » (inc/notes-avis.php) */
.na-sources { list-style: none; margin: 2rem 0 3rem !important; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.na-source { background: #fff; border: 1px solid var(--ligne); border-top: 4px solid var(--vert); padding: 1.4rem 1.2rem 1.2rem; text-align: center; margin: 0; }
.na-source--google { border-top-color: #4285f4; }
.na-source--tripadvisor { border-top-color: #00af87; }
.na-source--zenchef { border-top-color: var(--or); }
.na-source__logo { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin: 0 auto .8rem; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px var(--ligne), 0 3px 10px rgba(0,0,0,.08); }
.na-source__logo svg { display: block; }
.na-source--tripadvisor .na-source__logo { background: #34e0a1; box-shadow: none; }
.na-source--petitfute { border-top-color: #d00c16; }
.na-source--petitfute .na-source__logo { overflow: hidden; box-shadow: 0 3px 10px rgba(0,0,0,.08); }
.na-source--petitfute .na-source__logo img { display: block; width: 100%; height: 100%; }
.na-source--zenchef .na-source__logo { background: var(--vert); color: var(--or); box-shadow: none; }
.na-source__nom { margin: 0 0 .6rem; font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--gris); }
.na-source__note { margin: 0 0 .2rem; font-family: var(--serif); font-size: 3rem; line-height: 1; color: var(--vert); }
.na-source__note small { font-size: 1.1rem; color: var(--gris); }
.na-source__nb { margin: .4rem 0 0; font-size: .85rem; color: var(--gris); }
.na-source__liens { margin: .8rem 0 0; font-size: .9rem; }
.na-centre { text-align: center; margin: 0 0 3.5rem; }
.na-plus { margin: 0 0 3rem; }
.na-plus summary { display: table; margin: 0 auto 1.5rem; cursor: pointer; list-style: none; }
.na-plus summary::-webkit-details-marker { display: none; }
.na-plus[open] summary { display: none; }
.av-synthese { display: grid; grid-template-columns: auto 1fr 1fr; gap: 2.5rem; align-items: center; background: #fff; border: 1px solid var(--ligne); padding: 2rem 2.2rem; margin: 1.5rem 0 1rem; }
.av-note { text-align: center; }
.av-note__chiffre { font-family: var(--serif); font-size: 4.2rem; line-height: 1; color: var(--vert); margin: 0 0 .3rem; }
.av-note__chiffre small { font-size: 1.5rem; color: var(--gris); }
.av-note__nb { margin: .4rem 0 0; font-size: .9rem; color: var(--gris); }
.av-etoiles { display: inline-block; font-size: 1.15rem; line-height: 1; letter-spacing: .12em; background: linear-gradient(90deg, var(--or) var(--note), #d9d2c3 var(--note)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.av-etoiles::before { content: "★★★★★"; }
.av-barres { display: grid; gap: .45rem; font-size: .9rem; }
.av-barre { display: grid; grid-template-columns: 2.4rem 1fr 2.2rem; gap: .6rem; align-items: center; }
.av-barre span:last-child { text-align: right; color: var(--gris); }
.av-barre__fond { height: .55rem; background: var(--creme-2); border-radius: 1rem; overflow: hidden; }
.av-barre__fond span { display: block; height: 100%; background: var(--vert); }
.av-criteres { display: grid; gap: .55rem; font-size: .95rem; }
.av-critere { display: grid; grid-template-columns: 1fr auto 2rem; gap: .6rem; align-items: center; }
.av-critere strong { text-align: right; }
.av-verif { font-size: .9rem; color: var(--gris); margin: 0 0 2rem; }
.av-verif strong { color: var(--vert); }
.av-liste { list-style: none; margin: 0 0 1.5rem !important; padding: 0; columns: 2 340px; column-gap: 1.5rem; }
.av-carte { break-inside: avoid; background: #fff; border: 1px solid var(--ligne); padding: 1.3rem 1.4rem 1.1rem; margin: 0 0 1.5rem; }
.av-carte__tete { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.av-carte__date { font-size: .8rem; color: var(--gris); }
.av-carte blockquote { margin: .8rem 0; padding: 0; border: 0; font-family: var(--serif); font-size: 1.12rem; font-style: italic; line-height: 1.5; color: var(--encre); }
.av-carte__auteur { margin: 0; font-size: .82rem; letter-spacing: .04em; color: var(--or-texte); }
.av-carte__auteur a { color: inherit; }
.av-carte__source { margin: .4rem 0 0; font-size: .78rem; }
.av-carte__source a { color: var(--gris); }
@media (max-width: 900px) { .av-synthese { grid-template-columns: 1fr; gap: 1.6rem; padding: 1.6rem; } }
