/* ══════════════════════════════════════════════════
   BDR RESTAURANT TEMPLATE — style.css
   ══════════════════════════════════════════════════ */

:root {
/* VARS_INJECT_START */
  --color-bg: #141414;
  --color-surface: #1C1C1C;
  --color-accent: #C9A96E;
  --color-accent-light: rgba(201,169,110,0.15);
  --color-btn-bg: #C9A96E;
  --color-btn-text: #1A1200;
  --color-text: #F0EBE3;
  --color-text-muted: #9E8E80;
  --font-heading: 'Cormorant Garamond', serif;
  --font-body: 'Jost', sans-serif;
/* VARS_INJECT_END */

  --color-border: rgba(201,169,110,0.2);
  --color-overlay: rgba(12,10,8,0.58);
  --transition: 0.35s cubic-bezier(0.4,0,0.2,1);
  --container: 1160px;
}

/* ──────── RESET ──────── */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-font-smoothing:antialiased; }
body { background:var(--color-bg); color:var(--color-text); font-family:var(--font-body); font-weight:300; overflow-x:hidden; max-width:100%; }
img { max-width:100%; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; background:none; border:none; font:inherit; }

/* ──────── UTILS ──────── */
.container { max-width:var(--container); margin:0 auto; padding:0 48px; }
.section { padding:120px 0; }
.section-dark { background:var(--color-surface); padding:120px 0; }

.section-header { text-align:center; margin-bottom:72px; }
.section-header.reveal { text-align:center; }

.eyebrow { font-family:var(--font-body); font-size:11px; font-weight:500; letter-spacing:0.25em; text-transform:uppercase; color:var(--color-text-muted); margin-bottom:16px; }
.eyebrow-gold { font-family:var(--font-body); font-size:11px; font-weight:500; letter-spacing:0.25em; text-transform:uppercase; color:var(--color-accent); margin-bottom:16px; }

.section-title { font-family:var(--font-heading); font-size:clamp(2.4rem,4vw,3.6rem); font-weight:400; line-height:1.1; color:var(--color-text); }
.section-title em { font-style:italic; color:var(--color-accent); }
.section-title-light { font-family:var(--font-heading); font-size:clamp(2.4rem,4vw,3.6rem); font-weight:400; line-height:1.1; color:var(--color-text); }
.section-title-light em { font-style:italic; color:var(--color-accent); }

.orn-divider { display:flex; align-items:center; gap:14px; margin:24px auto 0; color:var(--color-accent); justify-content:center; }
.orn-divider span { display:block; height:1px; width:60px; background:var(--color-accent); opacity:0.5; }
.orn-divider svg { opacity:0.8; flex-shrink:0; }
.orn-divider.light span { background:var(--color-accent); }

/* ──────── SCROLL REVEAL ──────── */
.reveal, .reveal-right {
  opacity:0;
  transform:translateY(40px);
  transition:opacity 0.8s ease, transform 0.8s ease;
}
.reveal-right { transform:translateX(40px); }
.reveal.visible, .reveal-right.visible { opacity:1; transform:none; }

/* ──────── BUTTONS ──────── */
.btn-gold {
  display:inline-block;
  padding:14px 36px;
  background:var(--color-btn-bg, var(--color-accent));
  color:var(--color-btn-text, #1A1200);
  font-family:var(--font-body);
  font-size:11px;
  font-weight:500;
  letter-spacing:0.2em;
  text-transform:uppercase;
  transition:background var(--transition), transform var(--transition);
  position:relative;
  overflow:hidden;
}
.btn-gold::after { content:''; position:absolute; inset:0; background:rgba(255,255,255,0.15); transform:translateX(-100%); transition:transform 0.4s; }
.btn-gold:hover::after { transform:translateX(0); }
.btn-gold:hover { transform:translateY(-2px); }
.btn-gold.large { padding:17px 52px; font-size:12px; }

.btn-outline {
  display:inline-block;
  padding:13px 35px;
  border:1px solid rgba(240,235,227,0.5);
  color:var(--color-text);
  font-family:var(--font-body);
  font-size:11px;
  font-weight:500;
  letter-spacing:0.2em;
  text-transform:uppercase;
  transition:border-color var(--transition), background var(--transition), transform var(--transition);
}
.btn-outline:hover { border-color:var(--color-text); background:rgba(240,235,227,0.07); transform:translateY(-2px); }

/* ──────── NAVIGATION ──────── */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:28px 0;
  transition:background var(--transition), padding var(--transition), box-shadow var(--transition);
}
.navbar.scrolled {
  background:rgba(12,10,8,0.94);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  padding:16px 0;
  box-shadow:0 1px 0 var(--color-border);
}
.nav-inner { max-width:var(--container); margin:0 auto; padding:0 48px; display:flex; align-items:center; gap:40px; }

.nav-logo { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.logo-img { height:40px; width:auto; object-fit:contain; }
.logo-img[src=""], .logo-img:not([src]) { display:none; }
.logo-text-wrap { display:flex; flex-direction:column; gap:1px; }
.nav-name { font-family:var(--font-heading); font-size:1.15rem; font-weight:500; letter-spacing:0.12em; text-transform:uppercase; line-height:1; }
.nav-cuisine { font-family:var(--font-body); font-size:9px; font-weight:400; letter-spacing:0.2em; text-transform:uppercase; color:var(--color-accent); line-height:1; }

.nav-links { display:flex; gap:36px; margin:0 auto; }
.nav-links a { font-family:var(--font-body); font-size:11px; font-weight:400; letter-spacing:0.18em; text-transform:uppercase; color:rgba(240,235,227,0.7); transition:color var(--transition); position:relative; padding-bottom:2px; }
.nav-links a::after { content:''; position:absolute; bottom:0; left:0; width:0; height:1px; background:var(--color-accent); transition:width 0.3s; }
.nav-links a:hover { color:var(--color-text); }
.nav-links a:hover::after { width:100%; }

.nav-end { display:flex; align-items:center; gap:20px; flex-shrink:0; margin-left:auto; }
.nav-social { color:rgba(240,235,227,0.6); transition:color var(--transition); display:flex; }
.nav-social:hover { color:var(--color-accent); }
.nav-social[href="#"],.nav-social[href=""] { display:none; }

.btn-reserve {
  padding:9px 22px;
  border:1px solid var(--color-accent);
  color:var(--color-accent);
  font-family:var(--font-body);
  font-size:10px;
  font-weight:500;
  letter-spacing:0.18em;
  text-transform:uppercase;
  transition:background var(--transition), color var(--transition);
}
.btn-reserve:hover { background:var(--color-accent); color:#1A1200; }

.nav-burger { display:none; flex-direction:column; gap:5px; padding:4px; }
.nav-burger span { display:block; width:22px; height:1px; background:var(--color-text); transition:var(--transition); }
.nav-burger.open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
.nav-burger.open span:nth-child(2) { opacity:0; }
.nav-burger.open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }

/* ──────── HERO ──────── */
.hero { position:relative; height:100vh; min-height:640px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:#111; transform:scale(1.06); transition:transform 8s ease; will-change:transform; }
.hero.loaded .hero-bg { transform:scale(1); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(160deg, rgba(10,8,5,0.5) 0%, rgba(10,8,5,0.7) 100%); }

.hero-content { position:relative; z-index:2; text-align:center; padding:0 24px; max-width:900px; }

.hero-tagline {
  font-family:var(--font-body);
  font-size:11px;
  font-weight:400;
  letter-spacing:0.32em;
  text-transform:uppercase;
  color:var(--color-accent);
  margin-bottom:28px;
  opacity:0;
  transform:translateY(20px);
  transition:opacity 1s 0.3s ease, transform 1s 0.3s ease;
}
.hero.loaded .hero-tagline { opacity:1; transform:none; }

.hero-title {
  font-family:var(--font-heading);
  font-size:clamp(4rem,10vw,9rem);
  font-weight:400;
  line-height:0.95;
  letter-spacing:0.04em;
  text-transform:uppercase;
  margin-bottom:28px;
  overflow:hidden;
}
.hero-title .word {
  display:inline-block;
  opacity:0;
  transform:translateY(100%);
  transition:opacity 0.9s ease, transform 0.9s ease;
}
.hero.loaded .hero-title .word { opacity:1; transform:none; }
.hero.loaded .hero-title .word:nth-child(1) { transition-delay:0.5s; }
.hero.loaded .hero-title .word:nth-child(2) { transition-delay:0.65s; }
.hero.loaded .hero-title .word:nth-child(3) { transition-delay:0.8s; }

.hero-ornament { display:flex; align-items:center; gap:18px; justify-content:center; margin-bottom:24px; opacity:0; transition:opacity 1s 1s ease; }
.hero.loaded .hero-ornament { opacity:1; }
.orn-line { display:block; height:1px; width:50px; background:var(--color-accent); opacity:0.6; }
.orn-label { font-family:var(--font-body); font-size:10px; font-weight:400; letter-spacing:0.28em; text-transform:uppercase; color:var(--color-accent); }

.hero-desc {
  font-family:var(--font-heading);
  font-size:clamp(1.1rem,1.8vw,1.35rem);
  font-weight:300;
  font-style:italic;
  color:rgba(240,235,227,0.85);
  line-height:1.65;
  margin-bottom:40px;
  opacity:0;
  transition:opacity 1s 1.1s ease;
}
.hero.loaded .hero-desc { opacity:1; }

.hero-cta { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; opacity:0; transition:opacity 1s 1.3s ease; }
.hero.loaded .hero-cta { opacity:1; }

.hero-scroll {
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:12px;
  color:rgba(240,235,227,0.5);
  z-index:2;
  opacity:0;
  transition:opacity 1s 1.8s ease;
  cursor:pointer;
}
.hero.loaded .hero-scroll { opacity:1; }
.scroll-label { font-size:9px; letter-spacing:0.22em; text-transform:uppercase; }
.scroll-bar { width:1px; height:40px; background:linear-gradient(to bottom, var(--color-accent), transparent); animation:scrollPulse 1.8s ease-in-out infinite; }
@keyframes scrollPulse {
  0%,100% { transform:scaleY(1); opacity:0.5; }
  50% { transform:scaleY(1.3); opacity:1; }
}

/* ──────── ABOUT ──────── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; }

.about-img-wrap { position:relative; }
.about-img { height:560px; background-size:cover; background-position:center; background-color:var(--color-surface); }
.about-img-frame {
  position:absolute;
  top:-18px; left:-18px;
  right:18px; bottom:18px;
  border:1px solid var(--color-border);
  pointer-events:none;
  z-index:-1;
}

.about-body { padding:24px 0; }
.about-text { font-size:1rem; line-height:1.85; color:rgba(240,235,227,0.75); margin:28px 0 36px; font-weight:300; }

.chef-sig { display:flex; align-items:center; gap:20px; }
.sig-line { height:1px; width:40px; background:var(--color-accent); opacity:0.5; }
.sig-name { font-family:var(--font-heading); font-size:1.25rem; font-style:italic; color:var(--color-accent); font-weight:400; }

/* ──────── MENU PDF ──────── */
.menu-block { max-width:800px; margin:0 auto; }
.menu-pdf-card {
  max-width: 640px;
  margin: 0 auto;
  padding: 72px 48px;
  text-align: center;
  border: 1px solid rgba(201,169,110,0.2);
  background: rgba(255,255,255,0.015);
}
.mpdf-deco {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 36px;
  color: var(--color-accent);
  opacity: 0.5;
}
.mpdf-deco--btm { margin-bottom: 0; margin-top: 36px; }
.mpdf-deco span { flex: 1; height: 1px; background: var(--color-accent); }
.mpdf-eyebrow { margin-bottom: 12px; display: block; }
.mpdf-title { font-size: clamp(1.6rem,4vw,2.4rem); margin-bottom: 20px; }
.mpdf-sub {
  font-size: 0.8rem;
  color: var(--color-text-muted);
  line-height: 1.7;
  margin-bottom: 36px;
  letter-spacing: 0.04em;
}
.menu-pdf-card .btn-gold[href*="{{"] { opacity:0.35; pointer-events:none; }
@media(max-width:600px) { .menu-pdf-card { padding:48px 24px; } }

/* ──────── MENU INLINE ──────── */
.menu-inline-tabs {
  display: flex;
  gap: 2px;
  margin-bottom: 40px;
  border-bottom: 1px solid var(--color-border);
}
.menu-itab {
  background: none;
  border: none;
  color: var(--color-text-muted);
  font-family: var(--font-body);
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 12px 24px;
  cursor: pointer;
  position: relative;
  transition: color 0.25s;
}
.menu-itab::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--color-accent);
  transform: scaleX(0);
  transition: transform 0.25s;
}
.menu-itab.active { color: var(--color-accent); }
.menu-itab.active::after { transform: scaleX(1); }
.menu-ipanel { display: none; }
.menu-ipanel.on { display: block; }
.menu-iitem {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.menu-iitem:last-child { border-bottom: none; }
.menu-iname {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: 4px;
}
.menu-idesc {
  font-size: 0.82rem;
  color: var(--color-text-muted);
  line-height: 1.5;
  margin: 0;
}
.menu-iprice {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  color: var(--color-accent);
  white-space: nowrap;
  padding-top: 2px;
  flex-shrink: 0;
}

/* ──────── GALLERY ──────── */
.gallery-section .section-header { padding:0 48px; }
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:320px 320px;
  gap:3px;
  margin-top:64px;
}
.gallery-item { position:relative; background-size:cover; background-position:center; background-color:var(--color-surface); overflow:hidden; cursor:zoom-in; }
.gallery-item.g-large { grid-column:span 2; }
.g-overlay { position:absolute; inset:0; background:rgba(10,8,5,0.35); opacity:0; transition:opacity 0.4s; }
.gallery-item:hover .g-overlay { opacity:1; }
.gallery-item { transition:transform 0.5s cubic-bezier(0.4,0,0.2,1); }
.gallery-item:hover { transform:scale(1.015); z-index:1; }

/* ──────── HORAIRES ──────── */
.hours-table { max-width:600px; margin:0 auto; }
.hours-row {
  display:flex;
  align-items:center;
  gap:16px;
  padding:18px 0;
  border-bottom:1px solid rgba(240,235,227,0.06);
}
.hours-row:last-child { border-bottom:none; }
.hours-row.highlight .day,
.hours-row.highlight .time { color:var(--color-accent); }
.day { font-family:var(--font-heading); font-size:1.15rem; font-weight:400; min-width:110px; }
.dots { flex:1; border-bottom:1px dotted rgba(158,128,112,0.3); margin-bottom:3px; }
.time { font-family:var(--font-body); font-size:13px; letter-spacing:0.05em; color:rgba(240,235,227,0.7); text-align:right; min-width:220px; }

/* ──────── RESERVATION ──────── */
.resa-section { position:relative; padding:120px 0; }
.resa-bg { position:absolute; inset:0; background-size:cover; background-position:center; background-color:#0a0806; }
.resa-overlay { position:absolute; inset:0; background:rgba(8,6,4,0.82); }
.resa-section .container { position:relative; z-index:1; }

.resa-form { max-width:780px; margin:0 auto; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-bottom:24px; }
.form-group { display:flex; flex-direction:column; gap:8px; }
.form-group.full { grid-column:1/-1; }
.form-group label { font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--color-text-muted); }
.form-group input,
.form-group select,
.form-group textarea {
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(240,235,227,0.15);
  color:var(--color-text);
  padding:14px 18px;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:300;
  outline:none;
  transition:border-color var(--transition), background var(--transition);
  appearance:none;
  -webkit-appearance:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color:var(--color-accent); background:rgba(201,169,110,0.04); }
.form-group textarea { resize:vertical; min-height:120px; }
.form-group select { cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239E8E80' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 16px center; padding-right:40px; }
.form-group input[type=date]::-webkit-calendar-picker-indicator { filter:invert(0.5); cursor:pointer; }

.form-submit { text-align:center; margin-top:40px; }

/* ──────── CONTACT ──────── */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:80px; align-items:start; }
.contact-info .section-title-light { margin:12px 0 32px; }
.contact-items { display:flex; flex-direction:column; gap:0; }
.contact-item { display:flex; align-items:flex-start; gap:16px; padding:18px 0; border-bottom:1px solid rgba(240,235,227,0.06); }
.contact-item:last-child { border-bottom:none; }
.contact-item svg { color:var(--color-accent); margin-top:2px; flex-shrink:0; }
.contact-item div { display:flex; flex-direction:column; gap:4px; }
.contact-item strong { font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--color-text-muted); font-weight:400; }
.contact-item span, .contact-item a { font-size:14px; color:rgba(240,235,227,0.75); font-weight:300; }
.contact-item a:hover { color:var(--color-accent); }

/* Social links optionnels cachés via JS quand pas d'URL */


.map-wrap { position:relative; height:440px; overflow:hidden; background:var(--color-bg); }
.map-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.map-empty { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px; color:var(--color-text-muted); border:1px solid var(--color-border); }
.map-empty p { font-size:12px; letter-spacing:0.1em; text-transform:uppercase; text-align:center; max-width:200px; }

/* ──────── FOOTER ──────── */
.footer { background:#0C0A08; padding:72px 0 40px; border-top:1px solid var(--color-border); }
.footer-top { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:40px; margin-bottom:56px; }
.footer-brand { display:flex; flex-direction:column; gap:6px; }
.footer-name { font-family:var(--font-heading); font-size:1.5rem; font-weight:400; letter-spacing:0.1em; text-transform:uppercase; }
.footer-tagline { font-size:11px; letter-spacing:0.18em; color:var(--color-text-muted); text-transform:uppercase; }
.footer-nav { display:flex; gap:32px; justify-content:center; }
.footer-nav a { font-size:10px; letter-spacing:0.2em; text-transform:uppercase; color:var(--color-text-muted); transition:color var(--transition); }
.footer-nav a:hover { color:var(--color-accent); }
.footer-social { display:flex; gap:20px; justify-content:flex-end; }
.footer-social a { color:rgba(240,235,227,0.4); transition:color var(--transition); display:flex; }
.footer-social a:hover { color:var(--color-accent); }
.footer-bottom { border-top:1px solid rgba(240,235,227,0.06); padding-top:28px; display:flex; justify-content:space-between; align-items:center; }
.footer-bottom p { font-size:11px; color:rgba(158,142,128,0.7); letter-spacing:0.08em; }
.footer-bottom strong { color:var(--color-accent); font-weight:500; }

/* ──────── RESPONSIVE · TABLETTE ──────── */
@media (max-width:900px) {
  .container { padding:0 28px; }
  .section, .section-dark { padding:80px 0; }

  /* Nav — backdrop-filter retiré sur mobile : il crée un containing block
     qui casse position:fixed des enfants (bug Chrome/Safari connu) */
  .navbar.scrolled {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: rgba(10,8,6,0.97);
  }
  .nav-links { display:none; }
  .nav-links.open {
    display:flex; flex-direction:column;
    position:fixed; top:0; left:0; width:100vw; height:100vh;
    background:rgba(10,8,6,0.97);
    align-items:center; justify-content:center;
    gap:32px; z-index:999;
    margin:0; padding:0;
  }
  .nav-links.open a { font-size:1.2rem; letter-spacing:0.2em; }
  .nav-burger { display:flex; z-index:1000; }

  /* About */
  .about-grid { grid-template-columns:1fr; gap:48px; }
  .about-img { height:360px; }
  .about-img-frame { display:none; }

  /* Gallery — grille 2 colonnes sur tablette */
  .gallery-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto;
    gap:4px;
    margin-top:48px;
  }
  .gallery-item.g-large { grid-column:span 1; }
  .gallery-item { height:220px; }

  /* Hours */
  .hours-table { padding:0 8px; }
  .time { min-width:auto; }

  /* Form */
  .form-row { grid-template-columns:1fr; }

  /* Contact */
  .contact-grid { grid-template-columns:1fr; gap:48px; }
  .map-wrap { height:320px; }

  /* Footer */
  .footer-top { grid-template-columns:1fr; text-align:center; gap:28px; }
  .footer-social { justify-content:center; }
  .footer-nav { flex-wrap:wrap; gap:20px; justify-content:center; }
  .footer-bottom { flex-direction:column; gap:10px; text-align:center; }
}

/* ──────── RESPONSIVE · MOBILE ──────── */
@media (max-width:600px) {
  .container { padding:0 22px; width:100%; }
  .section, .section-dark { padding:64px 0; }
  * { max-width:100%; }

  /* Nav */
  .navbar { padding:18px 0; }
  .nav-inner { padding:0 16px; gap:12px; overflow:hidden; }
  .btn-reserve { display:none; }
  .nav-end { gap:10px; margin-left:auto; flex-shrink:0; }
  .nav-social { display:none; }
  .nav-name { font-size:0.95rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:160px; }
  .nav-cuisine { display:none; }
  .logo-img { height:32px; }

  /* Hero */
  .hero-title { font-size:clamp(2.8rem,13vw,4.2rem); letter-spacing:0.03em; }
  .hero-tagline { font-size:10px; letter-spacing:0.22em; }
  .hero-desc { font-size:1rem; padding:0 8px; }
  .hero-cta { flex-direction:column; align-items:center; gap:12px; }
  .hero-cta a { width:100%; max-width:280px; text-align:center; padding:14px 20px; }
  .hero-scroll { display:none; }

  /* About */
  .about-img { height:260px; }
  .section-title { font-size:clamp(2rem,9vw,2.8rem); }
  .section-title-light { font-size:clamp(2rem,9vw,2.8rem); }
  .about-text { font-size:0.95rem; }

  /* ── GALLERY : défilement horizontal ── */
  .gallery-section .section-header { padding:0 20px; }
  .gallery-grid {
    display:flex;
    flex-direction:row;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    gap:10px;
    padding:0 20px 16px;
    margin-top:40px;
    /* masquer la scrollbar */
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .gallery-grid::-webkit-scrollbar { display:none; }
  .gallery-item,
  .gallery-item.g-large {
    flex:0 0 72vw;
    min-width:220px;
    max-width:300px;
    height:260px !important;
    grid-column:unset !important;
    scroll-snap-align:start;
    border-radius:4px;
  }
  /* indicateur de scroll */
  .gallery-grid::after {
    content:'';
    flex:0 0 4px;
    align-self:stretch;
  }

  /* Indicateur dots galerie */
  .gallery-dots {
    display:flex;
    justify-content:center;
    gap:6px;
    margin-top:16px;
    padding:0 20px;
  }
  .gallery-dot {
    width:6px; height:6px;
    border-radius:50%;
    background:rgba(240,235,227,0.2);
    transition:background 0.3s, transform 0.3s;
    cursor:pointer;
  }
  .gallery-dot.active {
    background:var(--color-accent);
    transform:scale(1.3);
  }

  /* Hours */
  .hours-row { flex-wrap:wrap; gap:4px; padding:14px 0; }
  .day { font-size:1rem; width:100%; min-width:auto; }
  .dots { display:none; }
  .time { text-align:left; font-size:12px; color:rgba(240,235,227,0.55); }

  /* Reservation */
  .resa-section { padding:64px 0; }
  .resa-form { padding:0; }
  .form-row { display:flex; flex-direction:column; gap:0; margin-bottom:0; }
  .form-group { margin-bottom:20px; }
  .form-group input,
  .form-group select,
  .form-group textarea { padding:13px 14px; font-size:14px; width:100%; }
  .form-submit { margin-top:28px; }
  .form-submit .btn-gold { width:100%; text-align:center; padding:15px 20px; }

  /* Contact */
  .contact-grid { gap:40px; }
  .map-wrap { height:260px; }

  /* Footer */
  .footer { padding:52px 0 32px; }
  .footer-top { gap:24px; }
  .footer-name { font-size:1.25rem; }
  .footer-bottom { flex-direction:column; gap:8px; text-align:center; }

  /* Menu section */
  .menu-block { padding:0 4px; }

  /* Buttons */
  .btn-gold.large { padding:15px 36px; }
}
