/* ============================================================
   L'Horloge Gourmande — Thème « Bistrot »
   ------------------------------------------------------------
   Couche posée PAR-DESSUS public.css, chargée seulement quand le
   thème est actif (Admin → Paramètres → Apparence). Tout est scopé
   sous html[data-theme="bistrot"] : retirer la feuille rend le
   site classique à l'identique.

   Direction : une carte papier plutôt qu'une vitrine de luxe.
   Fond crème, encre brun-noir, un seul accent — le rouge brique
   des serviettes de la salle — et l'ardoise du mur comme unique
   aplat sombre. Angles presque droits, aucune ombre, aucun halo,
   aucun dégradé décoratif, rien qui apparaisse au scroll.
   ============================================================ */

/* ── Polices (auto-hébergées, OFL) ─────────────────────────────── */

@font-face {
    font-family: "Young Serif";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/young-serif-latin-ext.woff2) format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Young Serif";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/young-serif-latin.woff2) format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Source Sans 3";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin-ext.woff2) format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Source Sans 3";
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
    src: url(../fonts/source-sans-3-latin.woff2) format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: "Source Sans 3";
    font-style: italic;
    font-weight: 400;
    font-display: swap;
    src: url(../fonts/source-sans-3-italic-latin.woff2) format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ── Jetons ────────────────────────────────────────────────────
   Les variables de public.css sont redéfinies : la majorité des
   composants suivent sans autre retouche. `--gold*` devient le
   rouge brique (c'est « la couleur d'accent » dans public.css). */

:root[data-theme="bistrot"] {
    --paper: #f4eee3;
    --paper-deep: #ebe2d2;
    --sheet: #fbf8f2;
    --ink: #221c16;
    --ink-soft: #5b5045;
    --rule: rgba(34, 28, 22, 0.16);
    --rule-strong: rgba(34, 28, 22, 0.34);
    --brick: #a3392b;
    --brick-dark: #862b1f;
    --slate: #2b2e2b;
    --chalk: #eee9df;
    --chalk-soft: #b9b4aa;

    --bg-dark: var(--paper);
    --bg-main: var(--paper);
    --bg-card: var(--sheet);
    --bg-soft: #fffdf9;
    --gold: var(--brick);
    --gold-soft: var(--brick);
    --gold-strong: var(--brick-dark);
    --gold-glow: rgba(163, 57, 43, 0.08);
    --text-main: var(--ink);
    --text-muted: var(--ink-soft);
    --text-secondary: var(--ink-soft);
    --border-soft: var(--rule);
    --border-gold: var(--rule-strong);
    --radius-md: 3px;
    --radius-lg: 4px;
    --radius-xl: 4px;
    --shadow-soft: none;
    --shadow-gold: none;
    --transition: 0.15s ease;
    --font-display: "Young Serif", Georgia, serif;
    --font-body: "Source Sans 3", system-ui, -apple-system, sans-serif;
}

[data-theme="bistrot"] body {
    background: var(--paper);
    background-image: none;
    font-size: 1.0625rem;
    line-height: 1.6;
}

/* Young Serif n'existe qu'en 400 : pas de gras synthétique. */
[data-theme="bistrot"] h1,
[data-theme="bistrot"] h2,
[data-theme="bistrot"] h3,
[data-theme="bistrot"] h4 {
    font-family: var(--font-display);
    font-weight: 400;
    letter-spacing: -0.005em;
}

/* ── Rien n'apparaît au scroll, rien ne floute ─────────────────── */

[data-theme="bistrot"] .reveal,
[data-theme="bistrot"] .reveal-stagger > * {
    opacity: 1;
    transform: none;
    transition: none;
}
[data-theme="bistrot"] .img-lazy {
    filter: none;
    opacity: 1;
    transform: none;
    transition: none;
}

/* ── En-tête ───────────────────────────────────────────────────── */

[data-theme="bistrot"] .site-header,
[data-theme="bistrot"] .site-header.scrolled {
    background: var(--paper);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: 1px solid var(--rule);
    box-shadow: none;
}
[data-theme="bistrot"] .logo-main {
    color: var(--ink);
    text-transform: none;
    letter-spacing: 0;
    font-size: 1.3rem;
}
[data-theme="bistrot"] .logo-sub {
    text-transform: none;
    letter-spacing: 0;
    font-style: italic;
    font-size: 0.9rem;
    color: var(--ink-soft);
}
[data-theme="bistrot"] .main-nav { font-size: 1rem; }
[data-theme="bistrot"] .main-nav a { color: var(--ink); }
[data-theme="bistrot"] .main-nav a:hover { color: var(--brick); }
[data-theme="bistrot"] .main-nav a::after { background: var(--brick); }
[data-theme="bistrot"] .btn-nav {
    background: var(--brick);
    color: #fff !important;
    border: 1px solid var(--brick) !important;
    border-radius: 3px;
    font-weight: 600;
}
[data-theme="bistrot"] .btn-nav:hover {
    background: var(--brick-dark) !important;
    color: #fff !important;
}
[data-theme="bistrot"] .nav-toggle {
    border-radius: 3px;
    border-color: var(--rule-strong);
    color: var(--ink);
}

@media (max-width: 800px) {
    [data-theme="bistrot"] .main-nav {
        background: var(--paper);
        backdrop-filter: none;
        border-bottom: 1px solid var(--rule-strong);
    }
    [data-theme="bistrot"] .main-nav > a:not(.btn-nav) {
        border-bottom: 1px solid var(--rule);
    }
}

/* ── Boutons ───────────────────────────────────────────────────── */

[data-theme="bistrot"] .btn-primary,
[data-theme="bistrot"] .btn-secondary,
[data-theme="bistrot"] .btn-ghost {
    border-radius: 3px;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: none;
}
[data-theme="bistrot"] .btn-sm { font-size: 0.9rem; }
[data-theme="bistrot"] .btn-primary {
    background: var(--brick);
    color: #fff;
}
[data-theme="bistrot"] .btn-primary:hover {
    background: var(--brick-dark);
    transform: none;
    box-shadow: none;
}
[data-theme="bistrot"] .btn-secondary {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
}
[data-theme="bistrot"] .btn-secondary:hover {
    background: var(--ink);
    color: var(--paper);
    border-color: var(--ink);
}
[data-theme="bistrot"] .btn-ghost {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--rule-strong);
}
[data-theme="bistrot"] .btn-ghost:hover {
    background: var(--paper-deep);
    border-color: var(--rule-strong);
}

/* ── Formulaires ───────────────────────────────────────────────── */

[data-theme="bistrot"] label {
    color: var(--ink);
    font-weight: 600;
    font-size: 0.95rem;
}
[data-theme="bistrot"] input,
[data-theme="bistrot"] textarea,
[data-theme="bistrot"] select,
[data-theme="bistrot"] .date-picker-inline input[type="date"],
[data-theme="bistrot"] .date-jump input[type="date"] {
    background-color: var(--bg-soft);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
    color: var(--ink);
}
[data-theme="bistrot"] input:focus,
[data-theme="bistrot"] textarea:focus,
[data-theme="bistrot"] select:focus,
[data-theme="bistrot"] input:focus-visible,
[data-theme="bistrot"] textarea:focus-visible,
[data-theme="bistrot"] select:focus-visible {
    border-color: var(--ink);
    box-shadow: 0 0 0 2px rgba(163, 57, 43, 0.25);
}
[data-theme="bistrot"] .reservation-form {
    background: var(--sheet);
    border: 1px solid var(--rule);
    box-shadow: none;
}

/* ── Mise en page commune ──────────────────────────────────────── */

[data-theme="bistrot"] .section-header { text-align: left; }
[data-theme="bistrot"] .section-header p { margin-inline: 0; }
[data-theme="bistrot"] .section-header h1,
[data-theme="bistrot"] .section-header h2 { font-size: clamp(2rem, 7vw, 2.8rem); }

[data-theme="bistrot"] .about,
[data-theme="bistrot"] .section-menu,
[data-theme="bistrot"] .section-gallery,
[data-theme="bistrot"] .section-gallery-preview,
[data-theme="bistrot"] .section-location,
[data-theme="bistrot"] .section-reservation,
[data-theme="bistrot"] .section-menu-preview {
    background: transparent;
}

[data-theme="bistrot"] .tag {
    border-radius: 2px;
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--rule-strong);
    font-size: 0.8rem;
}

[data-theme="bistrot"] .flash-success {
    background: #e6eddf;
    border: 1px solid #8aa477;
    color: #2f4a22;
}
[data-theme="bistrot"] .flash-error {
    background: #f6e1dc;
    border: 1px solid #c46a5a;
    color: #7a2418;
}

/* ── La carte ──────────────────────────────────────────────────── */

[data-theme="bistrot"] .menu-block {
    background: var(--sheet);
    border: 1px solid var(--rule);
    box-shadow: none;
}
[data-theme="bistrot"] .menu-nav {
    background: var(--paper);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border: 0;
    border-bottom: 1px solid var(--rule-strong);
    border-radius: 0;
    box-shadow: none;
}
[data-theme="bistrot"] .menu-nav-link {
    border-radius: 3px;
    color: var(--ink-soft);
    border-color: var(--rule);
    font-size: 0.9rem;
}
[data-theme="bistrot"] .menu-nav-link:hover {
    color: var(--ink);
    border-color: var(--ink);
    background: transparent;
}
[data-theme="bistrot"] .menu-nav-link.active {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--paper);
}
[data-theme="bistrot"] .menu-search {
    background: var(--bg-soft);
    border: 1px solid var(--rule-strong);
    border-radius: 3px;
    font-size: 1rem;
}
[data-theme="bistrot"] .menu-search:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 2px rgba(163, 57, 43, 0.25);
}
[data-theme="bistrot"] .menu-section-title {
    color: var(--ink);
    font-size: 1.45rem;
    border-bottom: 1px solid var(--ink);
}
[data-theme="bistrot"] .menu-section-count {
    background: transparent;
    color: var(--ink-soft);
    font-size: 0.85rem;
}

/* Lignes : plus de zébrage, un pointillé entre les plats et des points
   de conduite entre le nom et le prix, comme sur la carte imprimée. */
[data-theme="bistrot"] .menu-list .menu-item,
[data-theme="bistrot"] .menu-list .menu-item:nth-child(even),
[data-theme="bistrot"] .menu-list .menu-item:hover {
    background: transparent;
    border-radius: 0;
    padding: 0.75rem 0;
}
[data-theme="bistrot"] .menu-list .menu-item + .menu-item {
    border-top: 1px dotted var(--rule-strong);
}
[data-theme="bistrot"] .menu-item-row {
    grid-template-columns: minmax(0, max-content) minmax(1rem, 1fr) auto;
    align-items: end;
    gap: 0.5rem;
}
[data-theme="bistrot"] .menu-item.has-photo .menu-item-row {
    grid-template-columns: 56px minmax(0, max-content) minmax(1rem, 1fr) auto;
    align-items: center;
}
[data-theme="bistrot"] .menu-item-dots {
    display: block;
    align-self: end;
    border-bottom: 2px dotted var(--rule-strong);
    margin-bottom: 0.4em;
}
[data-theme="bistrot"] .menu-item-row .menu-item-name { font-size: 1.1rem; }
[data-theme="bistrot"] .menu-item-row .menu-item-price {
    color: var(--ink);
    font-size: 1rem;
    font-variant-numeric: tabular-nums;
}
[data-theme="bistrot"] .menu-item-description {
    font-size: 0.95rem;
    font-style: italic;
}
[data-theme="bistrot"] .menu-item-thumb {
    border: 1px solid var(--rule-strong);
    border-radius: 2px;
    background: var(--paper-deep);
}
[data-theme="bistrot"] .menu-item-thumb:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--ink);
}
[data-theme="bistrot"] .menu-item-thumb:hover img { transform: none; }
[data-theme="bistrot"] .menu-item-thumb::after { display: none; }

@media (max-width: 640px) {
    [data-theme="bistrot"] .menu-item.has-photo .menu-item-row {
        grid-template-columns: 48px minmax(0, max-content) minmax(0.75rem, 1fr) auto;
    }
}

[data-theme="bistrot"] .menu-category-note-price { color: var(--ink); }
[data-theme="bistrot"] .menu-category-notes { border-top-color: var(--rule-strong); }

/* Bande des jours */
[data-theme="bistrot"] .day-pill,
[data-theme="bistrot"] .day-nav-arrow {
    background: var(--sheet);
    border-color: var(--rule);
    border-radius: 3px;
}
[data-theme="bistrot"] .day-pill:hover,
[data-theme="bistrot"] .day-nav-arrow:hover {
    border-color: var(--ink);
    color: var(--ink);
}
[data-theme="bistrot"] .day-pill.is-today { border-color: var(--ink); }
[data-theme="bistrot"] .day-pill.is-selected {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--paper);
}
[data-theme="bistrot"] .day-pill.is-selected .day-pill-label { color: var(--chalk-soft); }
[data-theme="bistrot"] .day-pill-dot.has-menu { box-shadow: none; }
[data-theme="bistrot"] .day-pill.is-selected .day-pill-dot.has-menu { background: var(--paper); }

/* Menu du jour sur la carte : la même ardoise que sur l'accueil. */
[data-theme="bistrot"] .daily-formula {
    background: var(--slate);
    color: var(--chalk);
    border: 0;
    border-radius: 4px;
    padding: 1.4rem 1.4rem 1.5rem;
}
[data-theme="bistrot"] .daily-formula-header { border-bottom-color: rgba(238, 233, 223, 0.25); }
[data-theme="bistrot"] .daily-formula-header h3 { color: var(--chalk); font-size: 1.35rem; }
[data-theme="bistrot"] .daily-formula-label { color: var(--chalk-soft); min-width: 5.5rem; }
[data-theme="bistrot"] .daily-formula-text { font-size: 1.05rem; }
[data-theme="bistrot"] .daily-formula-text strong { font-weight: 600; }
/* Prix des formules : une liste nom … prix plutôt que des encadrés. */
[data-theme="bistrot"] .daily-formulas-grid {
    flex-direction: column;
    gap: 0;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px dashed rgba(238, 233, 223, 0.3);
}
[data-theme="bistrot"] .daily-formula-option {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    min-width: 0;
    padding: 0.3rem 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
[data-theme="bistrot"] .daily-formula-option-name { color: var(--chalk); font-size: 1rem; }
[data-theme="bistrot"] .daily-formula-option-price {
    color: var(--chalk);
    font-size: 1rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* Menu enfant */
[data-theme="bistrot"] .kids-block {
    background: var(--sheet);
    border-color: var(--rule-strong);
}
[data-theme="bistrot"] .kids-price {
    background: var(--brick);
    color: #fff;
    border-radius: 3px;
    box-shadow: none;
    font-weight: 400;
}
[data-theme="bistrot"] .kids-label { color: var(--ink-soft); }

/* ── Réservation ───────────────────────────────────────────────── */

[data-theme="bistrot"] .resa-hero { text-align: left; margin-inline: 0; }
[data-theme="bistrot"] .resa-card {
    background: var(--sheet);
    border: 1px solid var(--rule);
}
[data-theme="bistrot"] .resa-card:hover { border-color: var(--rule); }
[data-theme="bistrot"] .resa-card a { color: var(--brick); font-weight: 600; }
[data-theme="bistrot"] .resa-block-banner,
[data-theme="bistrot"] .resa-block-warning {
    background: #f6e1dc;
    border: 1px solid #c46a5a;
    border-radius: 3px;
    color: #7a2418;
}
[data-theme="bistrot"] .resa-block-banner svg { color: var(--brick); }

[data-theme="bistrot"] .lang-switch {
    border-radius: 3px;
    border-color: var(--rule);
    background: transparent;
}
[data-theme="bistrot"] .lang-switch-link { border-radius: 2px; color: var(--ink-soft); }
[data-theme="bistrot"] .lang-switch-link:hover { background: var(--paper-deep); color: var(--ink); }
[data-theme="bistrot"] .lang-switch-link.is-active {
    background: var(--ink);
    color: var(--paper);
    box-shadow: none;
}
[data-theme="bistrot"] .lang-flag { box-shadow: 0 0 0 1px var(--rule); }

/* ── Galerie et visionneuses ───────────────────────────────────── */

[data-theme="bistrot"] .gallery-item,
[data-theme="bistrot"] .gallery-preview-item { border-radius: 2px; }
[data-theme="bistrot"] .gallery-item:hover img,
[data-theme="bistrot"] .gallery-preview-item:hover img { transform: none; }
[data-theme="bistrot"] .gallery-item-overlay { color: #fff; }
[data-theme="bistrot"] .gallery-item-overlay p { color: rgba(255, 255, 255, 0.82); }

[data-theme="bistrot"] .lightbox-caption h3 { color: var(--chalk); }
[data-theme="bistrot"] .lightbox-caption p { color: var(--chalk-soft); }
[data-theme="bistrot"] .lightbox-spinner,
[data-theme="bistrot"] .dish-lightbox-spinner { border-top-color: var(--brick); }

[data-theme="bistrot"] .dish-lightbox { background: rgba(34, 28, 22, 0.88); backdrop-filter: none; }
[data-theme="bistrot"] .dish-lightbox-card {
    background: var(--sheet);
    border: 0;
    border-radius: 4px;
    box-shadow: none;
    transition: none;
    transform: none;
}
[data-theme="bistrot"] .dish-lightbox-img-wrap { background: var(--paper-deep); }
[data-theme="bistrot"] .dish-lightbox-price { color: var(--ink); }
[data-theme="bistrot"] .dish-lightbox-close {
    background: var(--sheet);
    border: 1px solid var(--rule-strong);
    color: var(--ink);
    backdrop-filter: none;
}
[data-theme="bistrot"] .dish-lightbox-close:hover {
    background: var(--paper-deep);
    transform: none;
}

/* ── Annonce, cookies, barre mobile ────────────────────────────── */

[data-theme="bistrot"] .announcement-overlay { background: rgba(34, 28, 22, 0.55); }
[data-theme="bistrot"] .announcement-modal {
    background: var(--sheet);
    border: 1px solid var(--rule-strong);
    box-shadow: none;
    animation: none;
}
[data-theme="bistrot"] .announcement-title { color: var(--ink); font-size: 1.4rem; }
[data-theme="bistrot"] .announcement-close:hover { color: var(--ink); }
[data-theme="bistrot"] .announcement-message { color: var(--ink); }
[data-theme="bistrot"] .announcement-message a { color: var(--brick); }

[data-theme="bistrot"] .cookie-banner {
    background: var(--sheet);
    border-top: 1px solid var(--ink);
    box-shadow: none;
    animation: none;
}

@media (max-width: 800px) {
    [data-theme="bistrot"] .mobile-cta-bar {
        background: var(--paper);
        border-top: 1px solid var(--rule-strong);
        box-shadow: none;
    }
    [data-theme="bistrot"] .mobile-cta-bar a { border-radius: 3px; }
    [data-theme="bistrot"] .mobile-cta-bar .cta-call {
        color: var(--ink);
        border-color: var(--ink);
    }
    [data-theme="bistrot"] .mobile-cta-bar .cta-book {
        background: var(--brick);
        border-color: var(--brick);
        color: #fff;
    }
}

/* ── Pied de page : l'encre en fond, le papier en texte ────────── */

[data-theme="bistrot"] .site-footer {
    --text-main: var(--paper);
    --text-muted: #cbc1b2;
    --border-soft: rgba(244, 238, 227, 0.16);
    --border-gold: rgba(244, 238, 227, 0.4);
    --gold-soft: var(--paper);
    --gold-glow: rgba(244, 238, 227, 0.08);
    background: var(--ink);
    color: var(--paper);
    border-top: 0;
}
[data-theme="bistrot"] .footer-grid h3,
[data-theme="bistrot"] .footer-grid h4 { font-size: 1.1rem; }
[data-theme="bistrot"] .footer-grid { font-size: 0.98rem; }
[data-theme="bistrot"] .footer-social a { border-radius: 3px; }
[data-theme="bistrot"] .footer-bottom { font-size: 0.85rem; letter-spacing: 0; }

/* ============================================================
   Accueil Bistrot — templates/_partials/home_bistrot.html
   Écrit mobile d'abord (390 px), élargi ensuite.
   ============================================================ */

[data-theme="bistrot"] .b-link {
    color: var(--ink);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.25em;
}
[data-theme="bistrot"] .b-link:hover { color: var(--brick); }

[data-theme="bistrot"] .b-section-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem 1.5rem;
    margin-bottom: 1.75rem;
}
[data-theme="bistrot"] .b-section-head h2,
[data-theme="bistrot"] .b-house h2,
[data-theme="bistrot"] .b-visit h2 {
    font-size: clamp(1.9rem, 7vw, 2.6rem);
    line-height: 1.1;
    margin: 0;
}

/* Ouverture */
[data-theme="bistrot"] .b-hero {
    padding: calc(var(--header-height) + 1.75rem) 0 2.5rem;
}
[data-theme="bistrot"] .b-hero-grid {
    display: grid;
    gap: 1.75rem;
}
[data-theme="bistrot"] .b-kicker {
    margin: 0 0 0.9rem;
    color: var(--ink-soft);
    font-size: 1rem;
}
[data-theme="bistrot"] .b-hero h1 {
    font-size: clamp(2.2rem, 9vw, 3.7rem);
    line-height: 1.06;
    margin: 0 0 1.1rem;
    max-width: 15ch;
}
[data-theme="bistrot"] .b-lead {
    font-size: 1.2rem;
    color: var(--ink-soft);
    max-width: 34ch;
    margin: 0 0 1.6rem;
}
[data-theme="bistrot"] .b-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem 1.6rem;
}
[data-theme="bistrot"] .b-actions .btn-primary {
    min-height: 48px;
    padding-inline: 1.5rem;
}
[data-theme="bistrot"] .b-call {
    margin: 1.25rem 0 0;
    color: var(--ink-soft);
}
[data-theme="bistrot"] .b-call a {
    color: var(--ink);
    font-weight: 600;
    white-space: nowrap;
}
/* Sur téléphone la photo va d'un bord à l'autre ; le conteneur laisse
   1,25 rem de chaque côté (public.css : width = 100% - 2.5rem). */
[data-theme="bistrot"] .b-hero-photo {
    margin: 0 -1.25rem;
}
[data-theme="bistrot"] .b-hero-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1920 / 1240;
    object-fit: cover;
}

@media (min-width: 900px) {
    [data-theme="bistrot"] .b-hero { padding-bottom: 4rem; }
    [data-theme="bistrot"] .b-hero-grid {
        grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
        align-items: end;
        gap: 3.5rem;
    }
    [data-theme="bistrot"] .b-hero-photo { margin: 0; }
    [data-theme="bistrot"] .b-hero-photo img { border-radius: 3px; }
}

/* Ardoise du jour */
[data-theme="bistrot"] .b-slate-section { padding: 0.5rem 0 3rem; }
[data-theme="bistrot"] .b-slate {
    max-width: 760px;
    margin-inline: auto;
    background: var(--slate);
    color: var(--chalk);
    border-radius: 4px;
    padding: 1.6rem 1.35rem 1.75rem;
}
[data-theme="bistrot"] .b-slate-head {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.25rem 1rem;
    padding-bottom: 0.9rem;
    margin-bottom: 1.2rem;
    border-bottom: 1px solid rgba(238, 233, 223, 0.25);
}
[data-theme="bistrot"] .b-slate h2 {
    color: var(--chalk);
    font-size: clamp(1.6rem, 6vw, 2rem);
    margin: 0;
}
[data-theme="bistrot"] .b-slate-date {
    color: var(--chalk-soft);
    font-style: italic;
}
[data-theme="bistrot"] .b-slate-formula + .b-slate-formula { margin-top: 1.4rem; }
[data-theme="bistrot"] .b-slate-formula h3 {
    color: var(--chalk);
    font-size: 1.2rem;
    margin: 0 0 0.4rem;
}
[data-theme="bistrot"] .b-slate dl { margin: 0; }
[data-theme="bistrot"] .b-slate dl > div {
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    gap: 0.75rem;
    padding: 0.35rem 0;
}
[data-theme="bistrot"] .b-slate dt {
    color: var(--chalk-soft);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding-top: 0.25rem;
}
[data-theme="bistrot"] .b-slate dd {
    margin: 0;
    font-family: var(--font-display);
    font-size: 1.15rem;
    line-height: 1.35;
}
[data-theme="bistrot"] .b-prices {
    list-style: none;
    margin: 1.4rem 0 0;
    padding: 1rem 0 0;
    border-top: 1px dashed rgba(238, 233, 223, 0.3);
}
[data-theme="bistrot"] .b-prices li {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.2rem 0;
}
[data-theme="bistrot"] .b-dots {
    flex: 1 1 auto;
    min-width: 1rem;
    border-bottom: 2px dotted rgba(238, 233, 223, 0.4);
}
[data-theme="bistrot"] .b-prices li > span:last-child {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
[data-theme="bistrot"] .b-slate-empty {
    margin: 0;
    color: var(--chalk-soft);
    font-size: 1.05rem;
}
[data-theme="bistrot"] .b-slate-more {
    display: inline-block;
    margin-top: 1.5rem;
    color: var(--chalk);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 0.25em;
}
[data-theme="bistrot"] .b-slate-more:hover { color: #fff; }
[data-theme="bistrot"] .b-slate a:focus-visible { outline-color: var(--chalk); }

@media (min-width: 700px) {
    [data-theme="bistrot"] .b-slate { padding: 2.25rem 2.5rem 2.4rem; }
}

/* La maison */
[data-theme="bistrot"] .b-house {
    padding: 3rem 0;
    border-top: 1px solid var(--rule);
}
[data-theme="bistrot"] .b-house-grid {
    display: grid;
    gap: 2rem;
}
[data-theme="bistrot"] .b-house h2 { margin-bottom: 1.25rem; }
[data-theme="bistrot"] .b-house-text p {
    font-size: 1.15rem;
    max-width: 36em;
    margin: 0 0 1rem;
}
[data-theme="bistrot"] .b-house-photo { margin: 0; }
[data-theme="bistrot"] .b-house-photo img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 3px;
}
@media (min-width: 900px) {
    [data-theme="bistrot"] .b-house { padding: 4.5rem 0; }
    [data-theme="bistrot"] .b-house-grid.has-photo {
        grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
        align-items: center;
        gap: 4rem;
    }
}

/* Avis */
[data-theme="bistrot"] .b-reviews {
    padding: 3rem 0;
    background: var(--paper-deep);
}
[data-theme="bistrot"] .b-rating { margin: 0; color: var(--ink-soft); }
[data-theme="bistrot"] .b-rating strong { color: var(--ink); }
[data-theme="bistrot"] .b-quotes {
    display: grid;
    gap: 2rem;
}
[data-theme="bistrot"] .b-quote {
    margin: 0;
    padding-top: 1rem;
    border-top: 2px solid var(--ink);
}
[data-theme="bistrot"] .b-quote blockquote { margin: 0; }
[data-theme="bistrot"] .b-quote p {
    margin: 0 0 0.9rem;
    font-size: 1.05rem;
}
[data-theme="bistrot"] .b-quote figcaption {
    color: var(--ink-soft);
    font-size: 0.95rem;
}
[data-theme="bistrot"] .b-stars {
    color: var(--brick);
    letter-spacing: 0.08em;
    margin-right: 0.35rem;
}
@media (min-width: 900px) {
    [data-theme="bistrot"] .b-reviews { padding: 4.5rem 0; }
    [data-theme="bistrot"] .b-quotes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2.5rem;
    }
}

/* Photos */
[data-theme="bistrot"] .b-photos { padding: 3rem 0; }
[data-theme="bistrot"] .b-photo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}
[data-theme="bistrot"] .b-photo {
    margin: 0;
    aspect-ratio: auto;
    overflow: visible;
    border-radius: 0;
    cursor: zoom-in;
}
[data-theme="bistrot"] .b-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 2px;
}
[data-theme="bistrot"] .b-photo figcaption h3 {
    font-family: var(--font-body);
    font-size: 0.92rem;
    color: var(--ink-soft);
    margin: 0.35rem 0 0;
}
@media (min-width: 700px) {
    [data-theme="bistrot"] .b-photo-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.75rem;
    }
}

/* Venir */
[data-theme="bistrot"] .b-visit {
    padding: 3rem 0 3.5rem;
    border-top: 1px solid var(--rule);
}
[data-theme="bistrot"] .b-visit-grid {
    display: grid;
    gap: 2rem;
}
[data-theme="bistrot"] .b-visit h2 { margin-bottom: 1rem; }
[data-theme="bistrot"] .b-visit address {
    font-style: normal;
    font-size: 1.12rem;
    margin-bottom: 0.75rem;
}
[data-theme="bistrot"] .b-visit address a {
    color: var(--ink);
    font-weight: 600;
    text-decoration: none;
}
[data-theme="bistrot"] .b-visit h3 {
    font-size: 1.3rem;
    margin: 1.75rem 0 0.4rem;
}
[data-theme="bistrot"] .b-hours { margin: 0; }
[data-theme="bistrot"] .b-hours > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.5rem 0;
    border-bottom: 1px dotted var(--rule-strong);
}
[data-theme="bistrot"] .b-hours dd {
    margin: 0;
    color: var(--ink-soft);
    text-align: right;
}
[data-theme="bistrot"] .b-map {
    position: relative;
    min-height: 300px;
    border: 1px solid var(--rule-strong);
}
[data-theme="bistrot"] .b-map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
@media (min-width: 900px) {
    [data-theme="bistrot"] .b-visit { padding: 4.5rem 0; }
    [data-theme="bistrot"] .b-visit-grid {
        grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
        gap: 3.5rem;
        align-items: stretch;
    }
    [data-theme="bistrot"] .b-map { min-height: 420px; }
}
