/* BDM — Bar du Marché · design system */
:root{
  --bordeaux:#3f4a2c;
  --bordeaux-deep:#2a331e;
  --brass:#c9a24d;
  --brass-deep:#9c7d34;
  --cream:#f6f0df;
  --cream-deep:#ece2c6;
  --ink:#1e2416;
  --foreground:#242a1a;
  --muted:#726c58;
  --border:#d9cead;
  --bg:#f6f0df;
  --shadow-soft:0 4px 20px -8px rgba(30,36,22,.18);
  --shadow-lift:0 24px 60px -28px rgba(30,36,22,.45);
  --font-display:"Playfair Display","Cormorant Garamond",Georgia,serif;
  --font-body:"Inter",system-ui,-apple-system,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--foreground);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul{list-style:none;margin:0;padding:0}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;letter-spacing:-.01em;margin:0;line-height:1.1}
p{margin:0}
::selection{background:var(--bordeaux);color:var(--cream)}

.nav-logo-img{
  height:44px;
  width:44px;
  object-fit:contain;
  flex-shrink:0;
}

/* Helpers */
.container{max-width:1200px;margin:0 auto;padding:0 24px}
.container-sm{max-width:880px;margin:0 auto;padding:0 24px}
.container-md{max-width:1040px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;font-weight:500;color:var(--brass-deep)}
.eyebrow-light{color:#e5c98a}
.btn{display:inline-flex;align-items:center;gap:12px;padding:14px 24px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;border-radius:2px;transition:background .25s,color .25s,transform .25s;cursor:pointer;border:0}
.btn-primary{background:var(--bordeaux);color:var(--cream)}
.btn-primary:hover{background:var(--bordeaux-deep)}
.btn-brass{background:var(--brass);color:var(--ink)}
.btn-brass:hover{background:#d4a957}
.btn-ghost{border:1px solid rgba(247,241,227,.4);color:var(--cream)}
.btn-ghost:hover{background:rgba(247,241,227,.1)}
.btn-outline{border:1px solid rgba(90,26,34,.3);color:var(--bordeaux)}
.btn-outline:hover{background:var(--bordeaux);color:var(--cream)}
.bg-paper{
  background-color:var(--cream);
  background-image:radial-gradient(rgba(40,30,20,.05) 1px,transparent 1px);
  background-size:22px 22px;
}
.divider-ornament{display:flex;align-items:center;gap:16px;color:var(--brass-deep);max-width:420px;margin:48px auto}
.divider-ornament::before,.divider-ornament::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brass-deep),transparent)}

/* NAV */
.nav{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);background:rgba(247,241,227,.85);border-bottom:1px solid rgba(217,205,181,.6)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px}
.nav-brand{display:flex;align-items:center;gap:10px}
.nav-brand .logo{font-family:var(--font-display);font-size:1.5rem;color:var(--bordeaux)}
.nav-brand .tag{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.nav-menu{display:none;gap:32px;font-size:.9rem}
.nav-menu a{color:rgba(43,33,28,.7);transition:color .2s}
.nav-menu a:hover{color:var(--bordeaux)}
@media (min-width:768px){.nav-menu{display:flex}}
@media (max-width:639px){.nav-brand .tag{display:none}}

/* HERO */
.hero{position:relative;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(20,12,8,.85),rgba(20,12,8,.4) 50%,rgba(20,12,8,.6))}
.hero-inner{position:relative;padding:112px 24px;max-width:1200px;margin:0 auto}
@media(min-width:768px){.hero-inner{padding:160px 24px}}
@media(min-width:1024px){.hero-inner{padding:208px 40px}}
.hero h1{margin-top:24px;font-size:clamp(2.5rem,7vw,5.5rem);color:var(--cream);line-height:.95;max-width:880px;text-wrap:balance}
.hero h1 em{color:#e5c98a;font-style:italic}
.hero-lead{margin-top:32px;max-width:560px;color:rgba(247,241,227,.85);font-size:1.125rem;line-height:1.7}
.hero-cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px}
.hero-tags{margin-top:64px;display:flex;flex-wrap:wrap;gap:12px 32px;color:rgba(247,241,227,.7);font-size:.72rem;letter-spacing:.25em;text-transform:uppercase}
.hero-tags .dot{color:var(--brass)}

/* INTRO */
.intro{padding:96px 0}
@media(min-width:768px){.intro{padding:128px 0}}
.intro-grid{display:grid;grid-template-columns:1fr;gap:48px}
@media(min-width:1024px){.intro-grid{grid-template-columns:5fr 7fr;gap:80px}}
.intro h2{margin-top:16px;font-size:clamp(2rem,4vw,3rem);color:var(--bordeaux);text-wrap:balance}
.intro p{font-size:1.125rem;line-height:1.75;color:rgba(43,33,28,.8);margin-top:24px}
.intro-list{margin-top:40px;padding-top:32px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr;gap:16px 32px}
@media(min-width:640px){.intro-list{grid-template-columns:1fr 1fr}}
.intro-list li{display:flex;gap:12px;align-items:flex-start}
.intro-list li::before{content:"";margin-top:9px;width:6px;height:6px;border-radius:50%;background:var(--brass-deep);flex-shrink:0}

/* MOMENTS */
.moments{padding:96px 0;background:var(--cream-deep);border-top:1px solid rgba(217,205,181,.7);border-bottom:1px solid rgba(217,205,181,.7)}
@media(min-width:768px){.moments{padding:128px 0}}
.moments-head{text-align:center;max-width:640px;margin:0 auto}
.moments h2{margin-top:16px;font-size:clamp(2rem,4vw,3rem);color:var(--bordeaux);text-wrap:balance}
.moments-head p{margin-top:20px;font-size:1.125rem;color:rgba(43,33,28,.75)}
.moments-grid{margin-top:64px;display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border-radius:2px;overflow:hidden;box-shadow:var(--shadow-soft)}
@media(min-width:768px){.moments-grid{grid-template-columns:1fr 1fr}}
.moment{background:#fff;padding:40px;display:flex;flex-direction:column;gap:20px}
.moment-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.moment-time{font-family:var(--font-display);font-size:3rem;font-style:italic;color:var(--brass-deep)}
.moment-rule{flex:1;height:1px;background:var(--border)}
.moment h3{font-size:1.75rem;color:var(--bordeaux)}
.moment-lead{color:rgba(43,33,28,.75);line-height:1.65}
.moment-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.moment-tags li{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;padding:6px 12px;border:1px solid var(--border);background:var(--cream);color:rgba(43,33,28,.7);border-radius:2px}
.moment-note{margin-top:auto;padding-top:16px;font-size:.9rem;font-style:italic;color:var(--muted)}

/* WINE */
.wine{position:relative;overflow:hidden;background:var(--bordeaux-deep);color:var(--cream);padding:96px 0}
@media(min-width:768px){.wine{padding:128px 0}}
.wine-bg{position:absolute;inset:0;opacity:.3}
.wine-bg img{width:100%;height:100%;object-fit:cover}
.wine-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,var(--bordeaux-deep),rgba(61,18,24,.85) 60%,transparent)}
.wine-inner{position:relative;max-width:1200px;margin:0 auto;padding:0 24px}
.wine-content{max-width:640px}
.wine h2{margin-top:16px;font-size:clamp(2rem,5vw,4rem);line-height:1.05;text-wrap:balance}
.wine h2 em{color:#e5c98a;font-style:italic}
.wine-lead{margin-top:24px;font-size:1.125rem;color:rgba(247,241,227,.8);line-height:1.7}
.wine-grid{margin-top:40px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(min-width:640px){.wine-grid{grid-template-columns:repeat(4,1fr)}}
.wine-cell{padding:20px;border:1px solid rgba(247,241,227,.2);border-radius:2px;backdrop-filter:blur(4px);background:rgba(247,241,227,.04)}
.wine-cell-k{font-family:var(--font-display);font-size:1.5rem}
.wine-cell-v{font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:rgba(247,241,227,.6);margin-top:4px}
.wine .btn-brass-outline{margin-top:48px;display:inline-flex;align-items:center;gap:12px;padding:14px 24px;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;border:1px solid rgba(200,155,74,.6);color:var(--brass);border-radius:2px;transition:.25s}
.wine .btn-brass-outline:hover{background:var(--brass);color:var(--ink)}

/* SPIRIT */
.spirit{padding:96px 0;text-align:center}
@media(min-width:768px){.spirit{padding:128px 0}}
.spirit h2{margin-top:24px;font-size:clamp(2rem,5vw,4rem);color:var(--bordeaux);line-height:1.05;text-wrap:balance}
.spirit h2 em{font-style:italic}
.spirit-grid{display:grid;grid-template-columns:1fr;gap:16px 48px;max-width:560px;margin:0 auto;font-family:var(--font-display);font-size:1.5rem;font-style:italic;color:rgba(43,33,28,.85)}
@media(min-width:640px){.spirit-grid{grid-template-columns:1fr 1fr}}
.spirit-foot{margin-top:48px;font-size:1.125rem;color:rgba(43,33,28,.7);max-width:560px;margin-left:auto;margin-right:auto;line-height:1.7}

/* GALLERY */
.gallery{padding:96px 0;background:var(--ink);color:var(--cream)}
@media(min-width:768px){.gallery{padding:128px 0}}
.gallery-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-bottom:48px}
.gallery h2{margin-top:16px;font-size:clamp(2rem,4vw,3rem);max-width:480px;text-wrap:balance}
.gallery-head p{max-width:360px;color:rgba(247,241,227,.7)}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:768px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;height:640px;grid-auto-flow:dense}
  .gallery-grid .span2{grid-row:span 2}
}
.gallery-figure{position:relative;overflow:hidden;border-radius:2px;transition:transform .4s ease,box-shadow .4s ease;min-height:240px}
.gallery-figure:hover{transform:translateY(-4px);box-shadow:var(--shadow-lift)}
.gallery-figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease}
.gallery-figure:hover img{transform:scale(1.05)}
.gallery-figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.8),rgba(0,0,0,.05) 60%,transparent)}
.gallery-cap{position:absolute;bottom:0;left:0;right:0;padding:20px;z-index:1}
.gallery-cap-t{font-family:var(--font-display);font-size:1.5rem}
.gallery-cap-d{font-size:.875rem;color:rgba(247,241,227,.75)}

/* SOCIAL */
.social{background:var(--cream-deep);border-bottom:1px solid rgba(217,205,181,.7);padding:80px 0;text-align:center}
.social h2{margin-top:16px;font-size:clamp(2rem,4vw,3rem);color:var(--bordeaux);text-wrap:balance}
.social p{margin-top:20px;color:rgba(43,33,28,.7);max-width:560px;margin-left:auto;margin-right:auto}
.social a.ig{margin-top:32px;display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-size:1.5rem;color:var(--bordeaux);transition:color .2s}
.social a.ig:hover{color:var(--bordeaux-deep)}
.social a.ig em{font-style:italic}
.btn-instagram{
  margin-top:32px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--bordeaux);
  border:1px solid rgba(63,74,44,.35);
  border-radius:2px;
  transition:background .2s, color .2s, border-color .2s;
}
.btn-instagram:hover{
  background:var(--bordeaux);
  border-color:var(--bordeaux);
  color:var(--cream);
}

/* REVIEWS */
.reviews{padding:96px 0;text-align:center}
.reviews .stars{margin-top:24px;font-size:1.75rem;letter-spacing:.2em;color:var(--brass-deep)}
.reviews blockquote{margin:32px auto 0;max-width:680px;font-family:var(--font-display);font-style:italic;font-size:clamp(1.4rem,2.5vw,1.875rem);color:rgba(43,33,28,.85);line-height:1.3;text-wrap:balance}
.reviews .credit{margin-top:24px;color:rgba(43,33,28,.7)}

/* PRACTICAL */
.practical{background:var(--bordeaux);color:var(--cream);padding:96px 0}
@media(min-width:768px){.practical{padding:128px 0}}
.practical h2{margin-top:16px;font-size:clamp(2rem,4vw,3rem);max-width:640px;text-wrap:balance}
.practical-grid{margin-top:64px;display:grid;grid-template-columns:1fr;gap:1px;background:rgba(247,241,227,.15);border:1px solid rgba(247,241,227,.15)}
@media(min-width:768px){.practical-grid{grid-template-columns:repeat(3,1fr)}}
.info{padding:40px;background:var(--bordeaux);transition:background .2s}
.info.link:hover{background:var(--bordeaux-deep)}
.info-title{margin-top:16px;font-family:var(--font-display);font-size:1.75rem}
.info-lines{margin-top:12px;font-size:.875rem;color:rgba(247,241,227,.75);display:flex;flex-direction:column;gap:4px}
.practical-foot{margin-top:48px;max-width:640px;color:rgba(247,241,227,.75);line-height:1.7}
.btn-itineraire{
  margin-top:16px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--brass);
  border:1px solid rgba(200,155,74,.5);
  border-radius:2px;
  transition:background .2s, color .2s, border-color .2s;
}
.btn-itineraire:hover{
  background:var(--brass);
  border-color:var(--brass);
  color:var(--ink);
}

/* RESERVE */
.reserve{padding:96px 0;text-align:center}
@media(min-width:768px){.reserve{padding:128px 0}}
.reserve h2{margin-top:16px;font-size:clamp(2rem,5vw,4rem);color:var(--bordeaux);text-wrap:balance}
.reserve p{margin-top:24px;font-size:1.125rem;color:rgba(43,33,28,.75);max-width:640px;margin-left:auto;margin-right:auto}
.reserve-cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;justify-content:center}

/* FOOTER */
.footer{background:var(--ink);color:rgba(247,241,227,.75);padding:64px 0}
.footer-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr)}}
.footer-brand .name{font-family:var(--font-display);font-size:1.875rem;color:var(--cream)}
.footer-brand .sub{font-size:11px;letter-spacing:.3em;text-transform:uppercase;margin-top:4px}
.footer-brand p{margin-top:20px;font-size:.9rem;line-height:1.7;max-width:280px}
.footer-col .eyebrow{color:#e5c98a}
.footer-col-body{margin-top:16px;font-size:.9rem;display:flex;flex-direction:column;gap:6px}
.footer-col-body a:hover{color:var(--brass)}
.footer-bottom{margin-top:56px;padding-top:24px;border-top:1px solid rgba(247,241,227,.15);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;font-size:.75rem}
.footer-bottom .meta{color:rgba(247,241,227,.5)}

.fl-social{display:flex;gap:.6rem;margin-top:1.2rem}
.fl-social a{width:30px;height:30px;border:1px solid var(--c4);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--c3);transition:all .18s}
.fl-social a:hover{border-color:var(--c3);color:var(--creme)}
.fl-social svg{width:13px;height:13px}

/* Mentions légales et Politique de confidentialité */

.legal-hero{padding:72px 0 48px;text-align:left;border-bottom:1px solid var(--border)}
.legal-hero .eyebrow{display:block;margin-bottom:14px}
.legal-hero h1{font-size:clamp(2rem,4.5vw,3.25rem);color:var(--bordeaux)}
.legal-hero p{margin-top:20px;font-size:1.05rem;color:var(--muted);max-width:640px;line-height:1.7}

.legal-body{padding:64px 0 96px}
.legal-body section{max-width:760px;margin:0 auto 56px}
.legal-body section:last-child{margin-bottom:0}
.legal-body h2{font-size:1.5rem;color:var(--bordeaux);margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.legal-body h3{font-family:var(--font-body);font-weight:600;font-size:.95rem;letter-spacing:.04em;text-transform:uppercase;color:var(--brass-deep);margin:28px 0 12px}
.legal-body p{color:rgba(36,42,26,.82);line-height:1.75;font-size:1rem;margin-top:14px}
.legal-body ul{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.legal-body ul li{position:relative;padding-left:20px;color:rgba(36,42,26,.82);line-height:1.65}
.legal-body ul li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:50%;background:var(--brass-deep)}

.legal-card{margin-top:20px;background:var(--cream-deep);border:1px solid var(--border);border-radius:4px;padding:28px 32px}
.legal-card dl{display:grid;grid-template-columns:auto 1fr;gap:8px 20px;margin:0}
.legal-card dt{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.legal-card dd{margin:0;color:var(--foreground);font-weight:500}
.legal-card + .legal-card{margin-top:16px}

.cookie-table{margin-top:20px;width:100%;border-collapse:collapse;font-size:.92rem}
.cookie-table th,.cookie-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:top}
.cookie-table th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cookie-table td{color:rgba(36,42,26,.82)}

.todo{display:inline-block;background:rgba(201,162,77,.22);border:1px dashed var(--brass-deep);color:var(--bordeaux-deep);font-weight:600;font-style:normal;padding:1px 8px;border-radius:3px;font-size:.92em}

.legal-nav{margin-top:56px;padding-top:32px;border-top:1px solid var(--border);display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px}
.legal-nav a{font-size:.85rem;color:var(--bordeaux);border-bottom:1px solid var(--brass-deep);padding-bottom:2px}
.legal-nav a:hover{color:var(--bordeaux-deep)}

/* MODALE */
  .modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.25s ease;
  }

  .modal-overlay.active {
    opacity: 1;
    visibility: visible;
  }

  .modal-box {
    background: #fff;
    max-width: 480px;
    width: 90%;
    border-radius: 10px;
    padding: 28px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
    position: relative;
    transform: translateY(-20px);
    transition: transform 0.25s ease;
  }

  .modal-overlay.active .modal-box {
    transform: translateY(0);
  }

  .modal-close {
    position: absolute;
    top: 12px;
    right: 14px;
    background: none;
    border: none;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    color: #666;
  }

  .modal-close:hover {
    color: #000;
  }

  .modal-box h2 {
    margin-top: 0;
    font-size: 20px;
  }

  .modal-box p {
    color: #444;
    line-height: 1.5;
  }
.modal-ig{
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #ece2cb;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: .72rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: #9a7530;
  transition: color .2s;
}

.modal-ig:hover{
  color: #5a1a22;
}

/* ===== LIGHTBOX GALERIE ===== */
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(20, 20, 15, .95);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9998;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease;
}
.lightbox.active{
  opacity: 1;
  visibility: visible;
}
.lightbox-img{
  max-width: 88vw;
  max-height: 80vh;
  object-fit: contain;
  border-radius: 2px;
  box-shadow: var(--shadow-lift);
}
.lightbox-caption{
  position: absolute;
  bottom: 32px;
  left: 0;
  right: 0;
  text-align: center;
  color: var(--cream);
  font-size: .85rem;
  letter-spacing: .05em;
}
.lightbox-close{
  position: absolute;
  top: 20px;
  right: 24px;
  background: none;
  border: none;
  color: var(--cream);
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
  transition: color .2s;
}
.lightbox-close:hover{ color: var(--brass); }
.lightbox-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--cream);
  font-size: 22px;
  cursor: pointer;
  padding: 16px;
  transition: color .2s;
}
.lightbox-nav:hover{ color: var(--brass); }
.lightbox-prev{ left: 8px; }
.lightbox-next{ right: 8px; }
@media (max-width: 640px){
  .lightbox-nav{ font-size: 18px; padding: 10px; }
  .lightbox-caption{ bottom: 16px; font-size: .75rem; padding: 0 48px; }
}