:root{
  padding-top:env(safe-area-inset-top, 0px);
  padding-bottom:env(safe-area-inset-bottom, 0px);

  --paper:#F6F0E7;
  --paper-alt:#EEE3D3;
  --surface:#FFFDFA;
  --ink:#1C1712;
  --ink-soft:#5B4F42;
  --ink-faint:#8C7C6A;
  --clay:#A6552E;
  --clay-deep:#7C3B21;
  --clay-ink:#FFFFFF;
  --clay-soft:#EEDBC9;
  --line:#DED0BC;
  --shadow: 0 30px 70px -35px rgba(45,25,12,.45);
  --shadow-sm: 0 14px 30px -18px rgba(45,25,12,.38);
  --radius-lg:26px;
  --radius-md:16px;
  --radius-sm:10px;
  --font-display:'Italiana', 'Times New Roman', Georgia, serif;
  --font-body:'Epilogue', 'Segoe UI', system-ui, sans-serif;
  --font-signature:'WindSong', cursive;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#1B1611;
    --paper-alt:#221B14;
    --surface:#262019;
    --ink:#F3E9DC;
    --ink-soft:#CBB9A3;
    --ink-faint:#93816D;
    --clay:#E08653;
    --clay-deep:#F0A272;
    --clay-ink:#241206;
    --clay-soft:#3B2617;
    --line:#3B3025;
    --shadow: 0 30px 70px -35px rgba(0,0,0,.65);
    --shadow-sm: 0 14px 30px -18px rgba(0,0,0,.55);
  }
}
:root[data-theme="dark"]{
  --paper:#1B1611;
  --paper-alt:#221B14;
  --surface:#262019;
  --ink:#F3E9DC;
  --ink-soft:#CBB9A3;
  --ink-faint:#93816D;
  --clay:#E08653;
  --clay-deep:#F0A272;
  --clay-ink:#241206;
  --clay-soft:#3B2617;
  --line:#3B3025;
  --shadow: 0 30px 70px -35px rgba(0,0,0,.65);
  --shadow-sm: 0 14px 30px -18px rgba(0,0,0,.55);
}

*{box-sizing:border-box;}
.adresse-grid > *, .contact-grid > *, .footer-inner > *{ min-width:0; }
img{max-width:100%; display:block;}
[hidden]{display:none!important;}
html{scroll-behavior:smooth; scroll-padding-top:90px;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;}
.wrap{max-width:1180px; margin-inline:auto; padding-inline:24px;}
h1,h2,h3{
  font-family:var(--font-display);
  font-weight:400;
  margin:0;
  text-wrap:balance;
  color:var(--ink);
  letter-spacing:.01em;
}
p{margin:0;}
.eyebrow{
  font-family:var(--font-body);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--clay);
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--clay); display:inline-block;}

.btn{
  font-family:var(--font-body);
  font-weight:700;
  font-size:.92rem;
  letter-spacing:.01em;
  border-radius:2px;
  padding:14px 26px;
  border:1px solid transparent;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease;
  white-space:nowrap;
}
.btn:focus-visible{outline:2px solid var(--clay); outline-offset:3px;}
.btn-solid{background:var(--clay); color:var(--clay-ink); box-shadow:var(--shadow-sm);}
.btn-solid:hover{transform:translateY(-2px); box-shadow:var(--shadow); background:var(--clay-deep);}
.btn-line{background:transparent; color:var(--ink); border-color:var(--line);}
.btn-line:hover{border-color:var(--clay); color:var(--clay); transform:translateY(-2px);}

/* HEADER */
.site-header{
  position:sticky;
  top:env(safe-area-inset-top, 0px);
  z-index:50;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1180px;
  margin-inline:auto;
  padding:16px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.brand{display:flex; flex-direction:column; gap:2px; text-decoration:none; line-height:1;}
.brand-name{font-family:var(--font-display); font-size:1.5rem; color:var(--ink); letter-spacing:.02em;}
.brand-locale{font-size:.62rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--clay);}
.main-nav ul{display:flex; align-items:center; gap:32px; list-style:none; margin:0; padding:0;}
.main-nav a{text-decoration:none; font-size:.88rem; font-weight:600; color:var(--ink-soft);}
.main-nav a:hover{color:var(--clay);}
.header-actions{display:flex; align-items:center; gap:14px;}
.header-call{padding:10px 18px; font-size:.82rem;}
.nav-toggle{
  display:none;
  width:42px; height:42px;
  border-radius:2px;
  border:1px solid var(--line);
  background:var(--surface);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  flex-direction:column;
  gap:4px;
}
.nav-toggle span{width:16px; height:2px; background:var(--ink); display:block; transition:transform .3s ease, opacity .3s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
.mobile-nav{display:none;}

/* HERO — sculptural type block, asymmetric, no gradients */
.hero{
  position:relative;
  padding-block:72px 0;
  background:var(--paper);
}
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:36px;
  align-items:start;
}
.hero-mark{
  font-family:var(--font-display);
  font-size:1rem;
  color:var(--ink-faint);
  border:1px solid var(--line);
  width:44px; height:44px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  margin-top:10px;
}
.hero-copy{max-width:760px;}
.hero-title{
  font-size:clamp(3.2rem, 9vw, 6.4rem);
  line-height:.98;
  color:var(--ink);
}
.hero-title-accent{color:var(--clay);}
.hero-lead{
  margin-top:30px;
  max-width:52ch;
  font-size:1.08rem;
  color:var(--ink-soft);
}
.hero-actions{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
.hero-baseline{
  margin-top:64px;
  padding-block:20px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center;
  font-family:var(--font-display);
  font-size:1.05rem;
  letter-spacing:.06em;
  color:var(--ink-faint);
}

/* ADRESSE — asymmetric editorial section */
.adresse{padding-block:100px; background:var(--paper-alt);}
.adresse-grid{
  display:grid;
  grid-template-columns:120px 1fr;
  gap:48px;
}
.adresse-label{display:flex; flex-direction:column; align-items:flex-start; gap:18px;}
.adresse-vertical{
  writing-mode:vertical-rl;
  transform:rotate(180deg);
  font-family:var(--font-display);
  font-size:2.4rem;
  color:var(--clay);
  letter-spacing:.03em;
}
.adresse-eyebrow{
  font-family:var(--font-body);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-faint);
  writing-mode:vertical-rl;
  transform:rotate(180deg);
}
.adresse-body{max-width:760px;}
.adresse-body h2{font-size:clamp(2.2rem, 4vw, 3rem); margin-bottom:26px;}
.adresse-lead{font-size:1.12rem; color:var(--ink); margin-bottom:20px;}
.adresse-body p{color:var(--ink-soft); font-size:1rem; margin-bottom:0;}
.adresse-facts{
  margin-top:48px;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:28px;
  padding-top:38px;
  border-top:1px solid var(--line);
}
.fact{display:flex; flex-direction:column; gap:8px;}
.fact-num{font-family:var(--font-display); font-size:1.7rem; color:var(--clay);}
.fact-label{font-size:.84rem; color:var(--ink-faint); max-width:22ch;}

/* MENU — carte élégante, colonnes prix à droite */
.menu{padding-block:100px;}
.menu-head{max-width:640px; margin-bottom:56px;}
.menu-head h2{font-size:clamp(2.2rem, 3.6vw, 2.9rem); margin-top:14px;}
.menu-note-top{margin-top:14px; font-size:.86rem; color:var(--ink-faint); font-style:italic;}
.menu-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px 64px;
}
.menu-group h3{
  font-size:1.3rem;
  color:var(--clay-deep);
  margin-bottom:20px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.menu-row{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:11px 0;
}
.menu-item-name{font-size:1rem; font-weight:500; color:var(--ink);}
.menu-leader{
  flex:1;
  border-bottom:1px dotted var(--line);
  margin-bottom:5px;
  min-width:24px;
}
.menu-price{
  font-family:var(--font-display);
  font-size:1.2rem;
  color:var(--clay);
  white-space:nowrap;
}

/* GALERIE — bandeau typographique défilant */
.filmstrip-band{
  overflow:hidden;
  background:var(--ink);
  padding-block:34px;
  margin-block:20px 0;
}
.filmstrip-track{
  display:flex;
  align-items:center;
  gap:22px;
  width:max-content;
  white-space:nowrap;
  animation:filmstripScroll 32s linear infinite;
  font-family:var(--font-display);
  font-size:clamp(1.6rem, 3.4vw, 2.6rem);
  color:var(--paper);
}
.filmstrip-track .dot{color:var(--clay); font-size:1.4rem;}
@keyframes filmstripScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .filmstrip-track{animation:none;}
}

/* AVIS — ton sobre, pas d'avatars ronds */
.avis{padding-block:100px;}
.avis-head{max-width:640px; margin-bottom:48px;}
.avis-head h2{font-size:clamp(2.2rem, 3.6vw, 2.9rem); margin-top:14px;}
.avis-note{margin-top:14px; font-size:.84rem; color:var(--ink-faint); font-style:italic;}
.avis-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:24px;
}
.avis-card{
  margin:0;
  background:var(--surface);
  border:1px solid var(--line);
  border-left:3px solid var(--clay);
  padding:32px 28px;
  border-radius:2px;
  display:flex;
  flex-direction:column;
  gap:22px;
  box-shadow:var(--shadow-sm);
}
.avis-card p{font-size:.98rem; color:var(--ink); line-height:1.55;}
.avis-card footer{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.8rem;
  color:var(--ink-faint);
  font-style:normal;
}
.avis-mark{
  font-family:var(--font-display);
  font-size:.95rem;
  color:var(--clay);
  border:1px solid var(--line);
  width:28px; height:28px;
  border-radius:2px;
  display:flex; align-items:center; justify-content:center;
  flex:none;
}

/* CONTACT */
.contact{padding-block:100px; background:var(--paper-alt);}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:start;
}
.contact-info h2{font-size:clamp(2.2rem, 3.6vw, 2.9rem); margin-top:14px;}
.contact-list{list-style:none; margin:32px 0 0; padding:0; display:grid; gap:22px;}
.contact-list li{display:flex; flex-direction:column; gap:4px;}
.contact-label{font-size:.68rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-faint);}
.contact-list a{font-size:1.05rem; text-decoration:none; color:var(--ink); border-bottom:1px solid transparent; width:fit-content;}
.contact-list a:hover{color:var(--clay); border-color:var(--clay);}
.contact-cta{margin-top:36px;}
.contact-map{
  border-radius:var(--radius-md);
  overflow:hidden;
  box-shadow:var(--shadow);
  aspect-ratio:4/3;
  border:1px solid var(--line);
}
.contact-map iframe{width:100%; height:100%; border:0; filter:grayscale(.15) contrast(1.02);}

/* FOOTER */
.site-footer{background:var(--ink); color:var(--paper); padding-block:56px 30px;}
.footer-inner{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:32px;
  flex-wrap:wrap;
}
.footer-signature{
  font-family:var(--font-signature);
  font-size:2.4rem;
  color:var(--clay);
  line-height:1;
  display:inline-block;
}
.footer-brand p{margin-top:14px; color:color-mix(in srgb, var(--paper) 65%, transparent); font-size:.88rem; max-width:34ch;}
.footer-meta{display:flex; flex-direction:column; gap:10px; align-items:flex-end;}
.footer-meta a{text-decoration:none; color:color-mix(in srgb, var(--paper) 82%, transparent); font-size:.92rem;}
.footer-meta a:hover{color:var(--clay);}
.footer-bottom{
  margin-top:44px;
  padding-top:22px;
  border-top:1px solid color-mix(in srgb, var(--paper) 18%, transparent);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  font-size:.76rem;
  color:color-mix(in srgb, var(--paper) 45%, transparent);
}

/* RESPONSIVE */
@media (max-width:980px){
  .adresse-grid{grid-template-columns:1fr;}
  .adresse-label{flex-direction:row; align-items:center; gap:20px;}
  .adresse-vertical, .adresse-eyebrow{writing-mode:horizontal-tb; transform:none; font-size:1.2rem;}
  .adresse-facts{grid-template-columns:1fr 1fr;}
  .avis-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .menu-list{grid-template-columns:1fr;}
}
@media (max-width:720px){
  .main-nav{display:none;}
  .header-call{display:none;}
  .nav-toggle{display:flex;}
  .mobile-nav{
    display:block;
    max-height:0;
    overflow:hidden;
    transition:max-height .35s ease;
    background:var(--paper);
    border-bottom:1px solid var(--line);
  }
  .mobile-nav.open{max-height:360px;}
  .mobile-nav ul{list-style:none; margin:0; padding:18px 24px; display:grid; gap:16px;}
  .mobile-nav a{text-decoration:none; color:var(--ink); font-weight:600; display:block;}
  .mobile-nav .btn{width:100%; justify-content:center; margin-top:6px;}
  .hero{padding-block:48px 0;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-mark{display:none;}
  .hero-title{font-size:clamp(2.6rem, 12vw, 3.6rem);}
  .adresse{padding-block:64px;}
  .adresse-facts{grid-template-columns:1fr;}
  .menu, .avis, .contact{padding-block:64px;}
  .footer-meta{align-items:flex-start;}
}
