﻿/* ══════════════════════════════
   RESET & BASE
══════════════════════════════ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    --bg:     #0c150d;
    --bg2:    #111c12;
    --bg3:    #182119;
    --ac:     #8db87a;
    --ac2:    #5e8a4a;
    --tx:     #f0ece2;
    --tx2:    rgba(240,236,226,.55);
    --border: rgba(141,184,122,.18);
    --gold:   #c9a96e;
}

html { scroll-behavior: smooth; }

body {
    background: var(--bg);
    color: var(--tx);
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

a { text-decoration: none; color: inherit; }
img { display: block; width: 100%; object-fit: cover; }

/* ══════════════════════════════
   UTILITAIRES
══════════════════════════════ */
.container { max-width: 1140px; margin: 0 auto; padding: 0 40px; }

.eyebrow {
    display: block;
    font-size: .6rem;
    letter-spacing: .35em;
    text-transform: uppercase;
    color: var(--ac);
    margin-bottom: 14px;
}

h2 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    color: var(--tx);
    line-height: 1.15;
    margin-bottom: 16px;
}
h2 em { font-style: italic; color: var(--ac); }

.section-sub {
    font-size: .88rem;
    color: var(--tx2);
    margin-bottom: 48px;
    max-width: 480px;
}

section { padding: 100px 0; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: 'Inter', sans-serif;
    font-size: .75rem;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
    padding: 13px 30px;
    border: 1px solid var(--ac);
    color: var(--ac);
    background: transparent;
    cursor: pointer;
    transition: background .25s, color .25s;
}
.btn:hover { background: var(--ac); color: var(--bg); }
.btn-fill { background: var(--ac); color: var(--bg); }
.btn-fill:hover { background: #a8d094; border-color: #a8d094; }
.btn-full { width: 100%; }

/* ══════════════════════════════
   NAV
══════════════════════════════ */
.nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background:
        linear-gradient(rgba(8,16,9,.93), rgba(8,16,9,.93)),
        url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?w=1400&q=65') center/cover no-repeat;
    border-bottom: 1px solid var(--border);
}

.nav-inner {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 40px;
    height: 68px;
    display: flex;
    align-items: center;
    gap: 40px;
}

.nav-logo {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    font-weight: 500;
    color: var(--tx);
    white-space: nowrap;
    letter-spacing: .03em;
}
.nav-logo em { font-style: italic; color: var(--ac); }

.nav-links {
    display: flex;
    list-style: none;
    gap: 36px;
    margin-left: auto;
}
.nav-links a {
    font-size: .72rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--tx2);
    transition: color .2s;
}
.nav-links a:hover { color: var(--ac); }

.btn-nav { font-size: .7rem; padding: 10px 22px; white-space: nowrap; }

.hamburger { display: none; }
.nav-mobile { display: none; }

/* ══════════════════════════════
   HERO
══════════════════════════════ */
#hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: flex-end;
    padding-bottom: 80px;
}

.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-bg img { height: 100%; object-position: center 30%; }
.hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(12,21,13,1) 0%, rgba(12,21,13,.65) 50%, rgba(12,21,13,.25) 100%);
}

.hero-content {
    position: relative;
    z-index: 1;
    max-width: 1140px;
    margin: 0 auto;
    padding: 0 40px;
    width: 100%;
}

.hero-content h1 {
    font-family: 'Playfair Display', serif;
    font-size: clamp(3rem, 7vw, 6rem);
    font-weight: 700;
    line-height: 1.05;
    color: var(--tx);
    max-width: 680px;
    margin-bottom: 20px;
}
.hero-content h1 em { font-style: italic; color: var(--ac); }

.hero-sub {
    font-size: .9rem;
    color: var(--tx2);
    max-width: 440px;
    margin-bottom: 36px;
    line-height: 1.8;
}

.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-scroll {
    position: absolute;
    bottom: 32px; right: 40px;
    z-index: 2;
    font-size: 1.2rem;
    color: var(--ac);
    opacity: .5;
}

/* ══════════════════════════════
   HISTOIRE
══════════════════════════════ */
#histoire {
    background:
        linear-gradient(rgba(10,18,11,.83), rgba(10,18,11,.83)),
        url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1800&q=80') center/cover fixed;
}

.histoire-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.histoire-img { position: relative; }
.histoire-img img { aspect-ratio: 4/5; }
.histoire-since {
    position: absolute;
    bottom: -24px; right: -24px;
    background: var(--ac);
    color: var(--bg);
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}
.since-num {
    font-family: 'Playfair Display', serif;
    font-size: 2rem;
    font-weight: 700;
    line-height: 1;
}
.since-label { font-size: .55rem; letter-spacing: .2em; text-transform: uppercase; }

.histoire-text h2 { margin-bottom: 20px; }
.histoire-text p { font-size: .88rem; color: var(--tx2); line-height: 1.85; margin-bottom: 16px; }

.histoire-chiffres {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 36px;
    padding-top: 32px;
    border-top: 1px solid var(--border);
}
.chiffre { display: flex; flex-direction: column; gap: 4px; }
.chiffre-num {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--ac);
    line-height: 1;
}
.chiffre-label { font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; color: var(--tx2); }
.chiffre-sep { width: 1px; height: 40px; background: var(--border); }

/* ══════════════════════════════
   LA CARTE — MENU LIVRE
══════════════════════════════ */
#carte {
    background:
        linear-gradient(rgba(8,14,9,.88), rgba(8,14,9,.88)),
        url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1800&q=80') center/cover fixed;
}

.carte-header { text-align: center; margin-bottom: 48px; }
.carte-header h2 { margin-bottom: 8px; }
.carte-header .section-sub { margin: 0 auto; }

/* Couverture */
.menu-cover {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 28px;
    padding: 60px 40px;
    border: 1px solid var(--border);
    background: var(--bg2);
    max-width: 340px;
    margin: 0 auto;
    text-align: center;
    cursor: pointer;
    transition: border-color .3s;
    position: relative;
}
.menu-cover:hover { border-color: var(--ac); }
.menu-cover::before {
    content: '';
    position: absolute;
    left: 12px; top: 12px; bottom: 12px;
    width: 3px;
    background: var(--ac);
    opacity: .4;
}
.menu-cover-ornement {
    font-family: 'Playfair Display', serif;
    font-size: 2.8rem;
    color: var(--ac);
    opacity: .6;
    line-height: 1;
}
.menu-cover-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.4rem;
    font-weight: 500;
    color: var(--tx);
    letter-spacing: .05em;
    line-height: 1.3;
}
.menu-cover-title em { font-style: italic; color: var(--ac); }
.menu-cover-sub {
    font-size: .6rem;
    letter-spacing: .3em;
    text-transform: uppercase;
    color: var(--tx2);
}
.menu-cover-cta {
    font-size: .65rem;
    letter-spacing: .25em;
    text-transform: uppercase;
    color: var(--ac);
    border: 1px solid var(--border);
    padding: 8px 20px;
    margin-top: 8px;
}

/* Livre ouvert */
.menu-book {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}
.menu-book.open { display: flex; }

.menu-spread {
    display: none;
    width: 100%;
    max-width: 1000px;
    background: var(--bg2);
    border: 1px solid var(--border);
    position: relative;
}
.menu-spread.active { display: grid; grid-template-columns: 1fr 1fr; }

/* Reliure centrale */
.menu-spread::after {
    content: '';
    position: absolute;
    left: 50%; top: 0; bottom: 0;
    width: 1px;
    background: linear-gradient(to bottom, transparent, var(--border) 20%, var(--border) 80%, transparent);
    transform: translateX(-50%);
}

.menu-page {
    padding: 44px 40px;
    position: relative;
}
.menu-page-left { border-right: none; }

/* Décoration reliure */
.menu-page-left::before {
    content: '';
    position: absolute;
    left: 0; top: 20px; bottom: 20px;
    width: 3px;
    background: var(--ac);
    opacity: .25;
}

.menu-page-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.1rem;
    font-weight: 500;
    font-style: italic;
    color: var(--ac);
    letter-spacing: .05em;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 10px;
}
.menu-page-title::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border);
}

.menu-page-sub {
    font-size: .58rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--tx2);
    margin-bottom: 24px;
    opacity: .6;
}

.menu-item {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px dashed rgba(141,184,122,.1);
}
.menu-item:last-child { border-bottom: none; }

.menu-item-left { flex: 1; }
.menu-item-name {
    font-family: 'Playfair Display', serif;
    font-size: .9rem;
    font-weight: 500;
    color: var(--tx);
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 3px;
    flex-wrap: wrap;
}
.menu-tag {
    font-family: 'Inter', sans-serif;
    font-size: .48rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    background: var(--ac);
    color: var(--bg);
    padding: 2px 6px;
    font-weight: 500;
}
.menu-tag-v {
    background: none;
    border: 1px solid var(--ac);
    color: var(--ac);
}
.menu-item-desc { font-size: .72rem; color: var(--tx2); line-height: 1.5; }
.menu-item-prix {
    font-family: 'Playfair Display', serif;
    font-size: .95rem;
    color: var(--gold);
    white-space: nowrap;
    flex-shrink: 0;
}

/* Navigation pages */
.menu-nav {
    display: flex;
    align-items: center;
    gap: 20px;
}
.menu-nav-btn {
    background: none;
    border: 1px solid var(--border);
    color: var(--ac);
    font-size: .7rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    padding: 8px 20px;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    transition: background .2s, color .2s;
}
.menu-nav-btn:hover { background: var(--ac); color: var(--bg); }
.menu-nav-btn:disabled { opacity: .25; cursor: default; pointer-events: none; }
.menu-page-indicator {
    font-size: .65rem;
    letter-spacing: .2em;
    color: var(--tx2);
    text-transform: uppercase;
}
.menu-close-btn {
    font-size: .65rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--tx2);
    background: none;
    border: none;
    cursor: pointer;
    font-family: 'Inter', sans-serif;
    padding: 8px 0;
    transition: color .2s;
}
.menu-close-btn:hover { color: var(--ac); }

/* ══════════════════════════════
   NOS PLATS — CAROUSEL DESKTOP
══════════════════════════════ */
#nos-plats {
    background:
        linear-gradient(rgba(7,13,8,.90), rgba(7,13,8,.90)),
        url('https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1800&q=80') center/cover fixed;
}

.plats-carousel-wrap { margin-top: 48px; }

.plats-viewport {
    overflow: hidden;
    width: 100%;
}

.plats-wrapper {
    display: flex;
    gap: 0;
    transition: transform .55s cubic-bezier(.25,.46,.45,.94);
    will-change: transform;
}

.plat-slide {
    flex: 0 0 calc(100% / 3);
    display: flex;
    flex-direction: column;
    background: var(--bg2);
    border: 1px solid var(--border);
    overflow: hidden;
    transition: border-color .25s;
}
.plat-slide + .plat-slide { border-left: none; }
.plat-slide:hover { border-color: rgba(141,184,122,.38); }

.plat-slide img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
    transition: transform .55s ease;
}
.plat-slide:hover img { transform: scale(1.05); }

.plat-info {
    padding: 22px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.plat-cat {
    font-family: 'Inter', sans-serif;
    font-size: .48rem;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--ac);
}
.plat-nom {
    font-family: 'Playfair Display', serif;
    font-size: 1rem;
    font-style: italic;
    color: var(--tx);
    line-height: 1.3;
    margin: 0;
}

/* Navigation */
.plats-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-top: 28px;
}
.plats-btn {
    width: 40px; height: 40px;
    border: 1px solid var(--border);
    background: none;
    color: var(--ac);
    font-size: 1rem;
    font-family: 'Inter', sans-serif;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .2s, border-color .2s, color .2s;
}
.plats-btn:hover:not(:disabled) {
    background: var(--ac);
    border-color: var(--ac);
    color: var(--bg);
}
.plats-btn:disabled { opacity: .2; cursor: default; }

.plats-dots { display: flex; gap: 6px; align-items: center; }
.plats-dot {
    width: 8px; height: 2px;
    background: var(--border);
    border: none;
    cursor: pointer;
    padding: 0;
    transition: width .3s, background .3s;
}
.plats-dot.active {
    width: 24px;
    background: var(--ac);
}

/* ══════════════════════════════
   AMBIANCE
══════════════════════════════ */
#ambiance {
    background:
        linear-gradient(rgba(9,16,10,.86), rgba(9,16,10,.86)),
        url('https://images.unsplash.com/photo-1518709766631-a6a7f45921c3?w=1800&q=80') center/cover fixed;
}
#ambiance h2 { margin-bottom: 40px; }

.ambiance-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 8px;
}
.ambiance-card { overflow: hidden; }
.ambiance-large { grid-row: span 2; }
.ambiance-card img { height: 100%; transition: transform .5s; }
.ambiance-card:hover img { transform: scale(1.03); }
.ambiance-col { display: flex; flex-direction: column; gap: 8px; }
.ambiance-col .ambiance-card img { aspect-ratio: 4/3; }

/* ══════════════════════════════
   RESERVATION
══════════════════════════════ */
#reservation { position: relative; padding: 100px 0; }
.reservation-bg { position: absolute; inset: 0; z-index: 0; }
.reservation-bg img { height: 100%; }
.reservation-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(rgba(8,14,9,.82), rgba(8,14,9,.92));
}

.reservation-content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 80px;
    align-items: start;
}

.reservation-text h2 { margin-bottom: 16px; }
.reservation-text p { font-size: .88rem; color: var(--tx2); line-height: 1.8; margin-bottom: 28px; }
.reservation-infos { display: flex; flex-direction: column; gap: 12px; }
.ri { display: flex; align-items: center; gap: 12px; font-size: .82rem; color: var(--tx2); }
.ri span { color: var(--tx); }

.reservation-form {
    background: var(--bg);
    border: 1px solid var(--border);
    padding: 40px 36px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.form-row { display: flex; gap: 14px; }
.form-group { display: flex; flex-direction: column; gap: 6px; flex: 1; }

label { font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; color: var(--tx2); }

input, select, textarea {
    background: var(--bg2);
    border: 1px solid var(--border);
    color: var(--tx);
    font-family: 'Inter', sans-serif;
    font-size: .82rem;
    padding: 11px 14px;
    outline: none;
    width: 100%;
    transition: border-color .2s;
    appearance: none;
}
input:focus, select:focus, textarea:focus { border-color: var(--ac); }
input::placeholder, textarea::placeholder { color: rgba(240,236,226,.25); }
textarea { resize: none; }

/* ══════════════════════════════
   AVIS
══════════════════════════════ */
#avis {
    background:
        linear-gradient(rgba(8,14,9,.85), rgba(8,14,9,.85)),
        url('https://images.unsplash.com/photo-1504701954957-2010ec3bcec1?w=1800&q=80') center/cover fixed;
}

.avis-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    margin-top: 48px;
}
.avis-card {
    background: var(--bg2);
    border: 1px solid var(--border);
    padding: 32px 28px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    transition: border-color .25s;
}
.avis-card:hover { border-color: rgba(141,184,122,.4); }
.avis-featured { border-color: var(--ac); background: rgba(141,184,122,.04); }
.avis-stars { color: var(--ac); font-size: 1rem; letter-spacing: 2px; }
.avis-text {
    font-family: 'Playfair Display', serif;
    font-size: .88rem;
    font-style: italic;
    color: var(--tx2);
    line-height: 1.8;
    flex: 1;
}
.avis-author {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.avis-avatar {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--ac);
    color: var(--bg);
    display: flex; align-items: center; justify-content: center;
    font-size: .65rem;
    font-weight: 600;
    flex-shrink: 0;
}
.avis-name { font-size: .8rem; font-weight: 500; color: var(--tx); }
.avis-role { font-size: .65rem; color: var(--tx2); margin-top: 2px; }

/* ══════════════════════════════
   CONTACT
══════════════════════════════ */
#contact {
    background:
        linear-gradient(rgba(8,13,9,.87), rgba(8,13,9,.87)),
        url('https://images.unsplash.com/photo-1513836279014-a89f7a76ae86?w=1800&q=80') center/cover fixed;
}
.contact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: start;
}
.contact-grid h2 { margin-bottom: 28px; }

.horaires { border: 1px solid var(--border); margin-bottom: 32px; }
.horaire-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 13px 20px;
    font-size: .82rem;
    border-bottom: 1px solid var(--border);
}
.horaire-row:last-child { border-bottom: none; }
.horaire-row span:first-child { color: var(--tx2); }
.horaire-time { font-weight: 500; color: var(--ac); font-size: .78rem; }
.ferme { color: rgba(240,236,226,.25); font-size: .78rem; }

.contact-infos { display: flex; flex-direction: column; gap: 12px; }
.ci { display: flex; align-items: flex-start; gap: 12px; font-size: .82rem; color: var(--tx2); }
.ci span { color: var(--tx); }

/* ══════════════════════════════
   CARTE LEAFLET
══════════════════════════════ */
#mapLeaflet {
    width: 100%;
    height: 420px;
    border: 1px solid rgba(141,184,122,.18);
    position: relative;
    z-index: 0;
}

/* Marqueur personnalisé */
.map-pin-wrap {
    width: 46px; height: 46px;
    border-radius: 50%;
    background: rgba(201,168,108,.12);
    border: 1.5px solid rgba(201,168,108,.5);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 20px rgba(201,168,108,.25), 0 0 0 8px rgba(201,168,108,.06);
}
.map-pin-glyph {
    color: #c9a86c;
    font-size: .85rem;
    line-height: 1;
}

/* Popup */
.leaflet-popup-content-wrapper {
    background: rgba(8,14,9,.97) !important;
    border: 1px solid rgba(201,168,108,.28) !important;
    border-radius: 0 !important;
    box-shadow: 0 16px 48px rgba(0,0,0,.65) !important;
    padding: 0 !important;
}
.leaflet-popup-content {
    margin: 14px 18px !important;
    color: rgba(240,236,226,.65) !important;
    font-family: 'Inter', sans-serif !important;
    font-size: .7rem !important;
    line-height: 1.75 !important;
}
.leaflet-popup-content strong {
    display: block;
    font-family: 'Playfair Display', serif !important;
    font-size: .95rem !important;
    font-style: italic !important;
    color: #c9a86c !important;
    font-weight: 400 !important;
    margin-bottom: 6px;
}
.leaflet-popup-tip-container { display: none !important; }
.leaflet-popup-close-button { display: none !important; }

/* Contrôles de zoom */
.leaflet-control-zoom a {
    background: rgba(8,14,9,.92) !important;
    border-color: rgba(141,184,122,.18) !important;
    color: rgba(201,168,108,.7) !important;
    font-size: 15px !important;
    line-height: 26px !important;
    width: 28px !important; height: 28px !important;
    transition: color .15s, background .15s;
}
.leaflet-control-zoom a:hover {
    background: rgba(14,22,15,.97) !important;
    color: #c9a86c !important;
}
.leaflet-bar {
    border: 1px solid rgba(141,184,122,.18) !important;
    box-shadow: none !important;
}
.leaflet-bar a + a { border-top-color: rgba(141,184,122,.15) !important; }

/* Attribution */
.leaflet-control-attribution {
    background: rgba(6,11,7,.75) !important;
    color: rgba(240,236,226,.3) !important;
    font-size: .46rem !important;
}
.leaflet-control-attribution a { color: rgba(240,236,226,.4) !important; }

@media (max-width: 768px) {
    #mapLeaflet { height: 280px; }
}

.map-placeholder {
    background: var(--bg3);
    border: 1px solid var(--border);
    aspect-ratio: 4/3;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--tx2);
    font-size: .82rem;
    text-align: center;
    line-height: 1.7;
}
.map-placeholder span { font-size: 2rem; }

/* ══════════════════════════════
   FOOTER
══════════════════════════════ */
.footer {
    background:
        linear-gradient(rgba(6,12,7,.94), rgba(6,12,7,.94)),
        url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?w=1200&q=60') center/cover no-repeat;
    border-top: 1px solid var(--border);
    padding: 48px 0;
}
.footer-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    text-align: center;
}
.footer-sub { font-size: .75rem; color: var(--tx2); letter-spacing: .08em; }
.footer-links { display: flex; gap: 32px; }
.footer-links a {
    font-size: .68rem;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: var(--tx2);
    transition: color .2s;
}
.footer-links a:hover { color: var(--ac); }
.footer-copy { font-size: .62rem; color: rgba(240,236,226,.2); letter-spacing: .08em; margin-top: 8px; }

/* ══════════════════════════════
   HAMBURGER
══════════════════════════════ */
.hamburger {
    background: none; border: none;
    cursor: pointer; display: none;
    flex-direction: column; gap: 5px;
    padding: 4px; margin-left: auto;
}
.hamburger span { display: block; width: 22px; height: 2px; background: var(--tx); }

/* ══════════════════════════════
   MOBILE
══════════════════════════════ */
/* ══════════════════════════════
   MOBILE
══════════════════════════════ */
@media (max-width: 768px) {

    .container { padding: 0 20px; }
    section { padding: 64px 0; }

    .nav-links { display: none; }
    .btn-nav { display: none; }
    .hamburger { display: flex; }

    .nav {
        background: none !important;
        border-bottom: none !important;
    }
    .nav-logo { display: none; }

    .nav-mobile {
        display: none;
        background:
            linear-gradient(rgba(8,16,9,.96), rgba(8,16,9,.96)),
            url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?w=800&q=60') center/cover no-repeat;
        border-top: 1px solid var(--border);
        padding: 16px 20px;
    }
    .nav-mobile.open { display: block; }
    .nav-mobile ul { list-style: none; display: flex; flex-direction: column; gap: 4px; }
    .nav-mobile a {
        display: block; padding: 12px 16px;
        font-size: .78rem; letter-spacing: .15em;
        text-transform: uppercase; color: var(--tx2);
        border-bottom: 1px solid var(--border);
    }
    .nav-mobile .btn-fill { margin-top: 10px; }

    .hero-content h1 { font-size: 2.6rem; }
    .hero-btns { flex-direction: column; }

    .histoire-grid { grid-template-columns: 1fr; gap: 60px; }
    .histoire-since { bottom: -16px; right: -8px; }
    .histoire-chiffres { gap: 16px; }

    /* Menu mobile : une page a la fois */
    .menu-spread.active { grid-template-columns: 1fr; }
    .menu-page-left::before { display: none; }
    .menu-spread::after { display: none; }
    .menu-page { padding: 28px 20px; }
    .menu-cover { max-width: 100%; }

    .ambiance-grid { display: none; }

    .reservation-content { grid-template-columns: 1fr; gap: 40px; }
    .form-row { flex-direction: column; }
    .reservation-form { padding: 28px 20px; }

    .avis-grid { grid-template-columns: 1fr; gap: 2px; }

    .contact-grid { grid-template-columns: 1fr; gap: 40px; }
    .footer-links { flex-wrap: wrap; justify-content: center; gap: 16px; }
}

/* ══════════════════════════════
   MENU COVER — CADRE BOTANIQUE
══════════════════════════════ */
.menu-cover {
    padding: 64px 48px;
    max-width: 380px;
    background:
        linear-gradient(160deg, rgba(20,32,18,.98) 0%, rgba(10,16,11,.98) 100%);
    border: 1px solid rgba(141,184,122,.28);
    box-shadow:
        0 0 0 6px rgba(141,184,122,.06),
        0 0 0 12px rgba(141,184,122,.03),
        inset 0 0 60px rgba(0,0,0,.4);
}

/* ══════════════════════════════
   SECTIONS — PROFONDEUR FORET
══════════════════════════════ */
#histoire {
    background:
        linear-gradient(rgba(8,14,9,.80), rgba(8,14,9,.80)),
        url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1800&q=80') center/cover fixed;
}
#carte {
    background:
        linear-gradient(rgba(6,12,7,.90), rgba(6,12,7,.90)),
        url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1800&q=80') center/cover fixed;
}
#ambiance {
    background:
        linear-gradient(rgba(9,16,10,.86), rgba(9,16,10,.86)),
        url('https://images.unsplash.com/photo-1518709766631-a6a7f45921c3?w=1800&q=80') center/cover fixed;
}
.ambiance-card { position: relative; overflow: hidden; }
.ambiance-card::after {
    content: '';
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 0 1px rgba(141,184,122,.18);
    pointer-events: none;
}

/* ══════════════════════════════
   AVIS — EFFET MOUSSE
══════════════════════════════ */
.avis-card { position: relative; overflow: hidden; }
.avis-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at top left, rgba(61,122,45,.06) 0%, transparent 60%);
    pointer-events: none;
}

/* ══════════════════════════════
   HERO — DEGRADE BAS
══════════════════════════════ */
#hero::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 220px;
    background: linear-gradient(to top, var(--bg) 0%, transparent 100%);
    z-index: 1;
    pointer-events: none;
}

/* ══════════════════════════════
   PARALLAXE MOBILE
══════════════════════════════ */
.prlx-bg { display: none; }

/* ══════════════════════════════
   CAROUSEL CIRCULAIRE — MOBILE
══════════════════════════════ */
.ambiance-carousel { display: none; }

@media (max-width: 768px) {
    .ambiance-carousel {
        display: flex;
        align-items: center;
        justify-content: center;
        perspective: 700px;
        height: 340px;
        margin: 8px 0 32px;
        overflow: visible;
    }

    .ambiance-c-scene {
        width: 175px;
        height: 265px;
        position: relative;
        transform-style: preserve-3d;
        transition: transform 1s cubic-bezier(.45,.05,.55,.95);
    }

    .ambiance-c-card {
        position: absolute;
        width: 175px;
        height: 265px;
        overflow: hidden;
        border: 1px solid rgba(141,184,122,.22);
        backface-visibility: hidden;
    }

    .ambiance-c-card img { height: 100%; }

    /* Positionnement circulaire — 5 cartes, 72° par pas, rayon 230px */
    .ambiance-c-card:nth-child(1) { transform: rotateY(0deg)   translateZ(230px); }
    .ambiance-c-card:nth-child(2) { transform: rotateY(72deg)  translateZ(230px); }
    .ambiance-c-card:nth-child(3) { transform: rotateY(144deg) translateZ(230px); }
    .ambiance-c-card:nth-child(4) { transform: rotateY(216deg) translateZ(230px); }
    .ambiance-c-card:nth-child(5) { transform: rotateY(288deg) translateZ(230px); }
}

@media (max-width: 768px) {
    #histoire, #carte, #nos-plats, #ambiance, #avis, #contact {
        position: relative;
        overflow: hidden;
        background: none !important;
    }
    #histoire > .container, #carte > .container, #nos-plats > .container,
    #ambiance > .container, #avis > .container,
    #contact > .container {
        position: relative;
        z-index: 1;
    }
    .prlx-bg {
        display: block;
        position: absolute;
        left: 0; right: 0;
        top: -35%; bottom: -35%;
        background-size: cover;
        background-position: center 50%;
        z-index: 0;
        will-change: transform;
    }
    #histoire .prlx-bg {
        background-image:
            linear-gradient(rgba(8,14,9,.80), rgba(8,14,9,.80)),
            url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1200&q=80');
    }
    #carte .prlx-bg {
        background-image:
            linear-gradient(rgba(6,12,7,.90), rgba(6,12,7,.90)),
            url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1200&q=80');
    }
    #nos-plats .prlx-bg {
        background-image:
            linear-gradient(rgba(6,12,7,.92), rgba(6,12,7,.92)),
            url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=1200&q=80');
    }
    #ambiance .prlx-bg {
        background-image:
            linear-gradient(rgba(9,16,10,.86), rgba(9,16,10,.86)),
            url('https://images.unsplash.com/photo-1518709766631-a6a7f45921c3?w=1200&q=80');
    }
    #avis .prlx-bg {
        background-image:
            linear-gradient(rgba(8,14,9,.85), rgba(8,14,9,.85)),
            url('https://images.unsplash.com/photo-1504701954957-2010ec3bcec1?w=1200&q=80');
    }
    #contact .prlx-bg {
        background-image:
            linear-gradient(rgba(8,13,9,.87), rgba(8,13,9,.87)),
            url('https://images.unsplash.com/photo-1513836279014-a89f7a76ae86?w=1200&q=80');
    }
}

/* ══════════════════════════════
   MENU COVER & LIVRE — MOBILE
══════════════════════════════ */
@media (max-width: 768px) {
    /* Couverture */
    .menu-cover {
        background:
            linear-gradient(rgba(6,10,7,.83), rgba(6,10,7,.83)),
            url('https://images.unsplash.com/photo-1448375240586-882707db888b?w=900&q=80') center/cover !important;
        border: 1px solid rgba(201,168,108,.3) !important;
        box-shadow:
            0 0 0 7px rgba(201,168,108,.05),
            0 0 0 14px rgba(201,168,108,.025),
            0 32px 80px rgba(0,0,0,.55) !important;
        gap: 16px;
        padding: 48px 36px !important;
    }
    .menu-cover::before { display: none; }

    .mc-corner {
        position: absolute;
        width: 22px; height: 22px;
        border-color: rgba(201,168,108,.45);
        border-style: solid;
    }
    .mc-tl { top: 16px; left: 16px; border-width: 1px 0 0 1px; }
    .mc-tr { top: 16px; right: 16px; border-width: 1px 1px 0 0; }
    .mc-bl { bottom: 16px; left: 16px; border-width: 0 0 1px 1px; }
    .mc-br { bottom: 16px; right: 16px; border-width: 0 1px 1px 0; }

    .mc-label {
        font-family: 'Inter', sans-serif;
        font-size: .42rem;
        letter-spacing: .38em;
        text-transform: uppercase;
        color: rgba(201,168,108,.55);
    }
    .mc-tree { width: 58px; height: 78px; }
    .mc-divider {
        font-size: .58rem;
        letter-spacing: .3em;
        color: rgba(201,168,108,.45);
    }
    .menu-cover .menu-cover-title {
        color: #c9a86c;
        font-size: 1.65rem;
        letter-spacing: .04em;
    }
    .menu-cover .menu-cover-title em { color: #c9a86c; font-style: italic; }
    .menu-cover .menu-cover-sub {
        color: rgba(201,168,108,.5);
        font-size: .5rem;
        letter-spacing: .2em;
    }
    .menu-cover .menu-cover-cta {
        color: rgba(201,168,108,.7);
        border-color: rgba(201,168,108,.22);
        font-size: .54rem;
        padding: 10px 22px;
        margin-top: 4px;
    }

    /* Pages du livre — feuille en filigrane */
    .menu-page { position: relative; overflow: hidden; }
    .menu-page::after {
        content: '';
        position: absolute;
        bottom: -10px; right: -10px;
        width: 90px; height: 90px;
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 80' fill='none'%3E%3Cpath d='M40 75 C40 75 8 55 8 28 C8 12 22 4 40 4 C58 4 72 12 72 28 C72 55 40 75 40 75Z' stroke='%238db87a' stroke-opacity='.13' stroke-width='1.2' fill='none'/%3E%3Cline x1='40' y1='75' x2='40' y2='12' stroke='%238db87a' stroke-opacity='.12' stroke-width='1'/%3E%3Cline x1='40' y1='48' x2='22' y2='34' stroke='%238db87a' stroke-opacity='.1' stroke-width='1'/%3E%3Cline x1='40' y1='38' x2='26' y2='26' stroke='%238db87a' stroke-opacity='.09' stroke-width='.8'/%3E%3Cline x1='40' y1='48' x2='58' y2='34' stroke='%238db87a' stroke-opacity='.1' stroke-width='1'/%3E%3Cline x1='40' y1='38' x2='54' y2='26' stroke='%238db87a' stroke-opacity='.09' stroke-width='.8'/%3E%3C/svg%3E");
        background-size: contain;
        background-repeat: no-repeat;
        pointer-events: none;
    }
    /* Ornement devant les titres de section */
    .menu-page-title::before {
        content: '❧ ';
        color: var(--ac);
        opacity: .55;
        font-size: 1em;
    }
}

/* ══════════════════════════════
   HERO MOBILE — PHOTO FORÊT
══════════════════════════════ */
@media (max-width: 768px) {
    #hero {
        align-items: flex-start;
        padding-bottom: 0;
    }
    #hero .hero-content {
        text-align: center;
        width: 100%;
        padding: 0 28px;
        padding-top: 38vh;
    }
    #hero .hero-content .hero-m-title {
        font-family: 'Playfair Display', serif;
        font-size: 2.9rem;
        font-weight: 700;
        color: #c9a86c;
        line-height: 1.08;
        margin: 0 0 14px;
        letter-spacing: -.01em;
        max-width: none;
    }
    .hero-m-ornement {
        color: #c9a86c;
        font-size: .65rem;
        letter-spacing: .45em;
        margin: 0 0 14px;
        opacity: .75;
    }
    .hero-m-sub {
        font-family: 'Inter', sans-serif;
        font-size: .72rem;
        color: #c9a86c;
        opacity: .8;
        line-height: 1.9;
        letter-spacing: .06em;
    }
}

/* ══════════════════════════════
   PLATS — STICKY CARDS MOBILE
══════════════════════════════ */
@media (max-width: 768px) {
    /* overflow:hidden casse position:sticky — on l'annule pour cette section */
    #nos-plats { overflow: visible !important; }
    #nos-plats .prlx-bg { display: none; }
    #nos-plats .plats-wrapper { display: block; background: transparent; }

    .cards-parallax { position: relative; }


    .cp-item {
        height: 100vh;
        display: flex;
        align-items: center;
        justify-content: center;
        position: sticky;
        top: 0;
        padding: 0 20px;
        background-image:
            linear-gradient(rgba(6,11,7,.78), rgba(6,11,7,.78)),
            url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1200&q=80');
        background-size: cover;
        background-position: center;
    }

    .cp-card {
        position: relative;
        width: 100%;
        max-width: 360px;
        height: 430px;
        overflow: hidden;
        box-shadow: 0 24px 64px rgba(0,0,0,.6);
    }

    .cp-bg {
        position: absolute;
        inset: 0;
        z-index: 0;
    }
    .cp-bg img {
        width: 100%; height: 100%;
        object-fit: cover;
        display: block;
    }

    .cp-overlay {
        position: absolute;
        inset: 0;
        z-index: 1;
        background: linear-gradient(
            to top,
            rgba(6,11,7,.93) 0%,
            rgba(6,11,7,.45) 55%,
            rgba(6,11,7,.10) 100%
        );
    }

    .cp-content {
        position: absolute;
        bottom: 0; left: 0; right: 0;
        z-index: 2;
        padding: 30px 22px;
    }

    .cp-cat {
        display: block;
        font-family: 'Inter', sans-serif;
        font-size: .48rem;
        letter-spacing: .28em;
        text-transform: uppercase;
        color: var(--ac);
        margin-bottom: 8px;
    }

    .cp-title {
        font-family: 'Playfair Display', serif;
        font-size: 1.35rem;
        font-style: italic;
        color: var(--tx);
        line-height: 1.2;
        margin-bottom: 10px;
    }

    .cp-desc {
        font-family: 'Inter', sans-serif;
        font-size: .54rem;
        color: var(--tx2);
        line-height: 1.8;
    }
}

/* ══════════════════════════════
   AVIS — CAROUSEL INFINI MOBILE
══════════════════════════════ */
@media (max-width: 768px) {
    .avis-carousel {
        overflow: hidden;
        margin: 36px -20px 0;
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0%,
            black 12%,
            black 88%,
            transparent 100%
        );
        mask-image: linear-gradient(
            to right,
            transparent 0%,
            black 12%,
            black 88%,
            transparent 100%
        );
    }

    .avis-track {
        display: flex;
        gap: 14px;
        padding: 4px 20px 12px;
        width: max-content;
        animation: avis-scroll 32s linear infinite;
    }

    @keyframes avis-scroll {
        0%   { transform: translateX(0); }
        100% { transform: translateX(-50%); }
    }

    .avis-c-card {
        width: 252px;
        flex-shrink: 0;
        background: rgba(10, 17, 11, 0.88);
        border: 1px solid rgba(141, 184, 122, 0.14);
        border-left: 2px solid rgba(201, 168, 108, 0.38);
        padding: 20px 18px 18px 20px;
        display: flex;
        flex-direction: column;
        gap: 10px;
    }

    .avis-c-stars {
        color: #c9a86c;
        font-size: .68rem;
        letter-spacing: .12em;
    }

    .avis-c-text {
        font-family: 'Playfair Display', serif;
        font-size: .75rem;
        font-style: italic;
        color: var(--tx);
        line-height: 1.75;
        flex: 1;
    }

    .avis-c-author {
        display: flex;
        align-items: center;
        gap: 9px;
        padding-top: 10px;
        border-top: 1px solid rgba(141, 184, 122, 0.1);
        margin-top: 2px;
    }

    .avis-c-avatar {
        width: 30px; height: 30px;
        border-radius: 50%;
        background: rgba(201, 168, 108, 0.1);
        border: 1px solid rgba(201, 168, 108, 0.28);
        display: flex; align-items: center; justify-content: center;
        font-family: 'Inter', sans-serif;
        font-size: .46rem;
        letter-spacing: .08em;
        color: #c9a86c;
        flex-shrink: 0;
    }

    .avis-c-name {
        font-family: 'Inter', sans-serif;
        font-size: .58rem;
        font-weight: 500;
        color: var(--tx);
        letter-spacing: .04em;
    }

    .avis-c-source {
        font-family: 'Inter', sans-serif;
        font-size: .46rem;
        color: var(--tx2);
        letter-spacing: .04em;
        margin-top: 2px;
        opacity: .75;
    }
}

