:root{
  --red: #E2231A;
  --red-deep: #B81C15;
  --black: #131110;
  --black-2: #1C1917;
  --white: #FFFFFF;
  --white-dim: rgba(255,255,255,0.72);
  --white-faint: rgba(255,255,255,0.45);
  --line: rgba(255,255,255,0.22);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--red);
  color:var(--white);
  font-family:'Inter', sans-serif;
  line-height:1.65;
  overflow-x:hidden;
}
a{color:var(--white); text-decoration:none;}
.mono{font-family:'Inter', sans-serif; font-weight:600; letter-spacing:0.08em;}

/* --- signature divider: simple, net, chic --- */
.divider{ height:1px; background:var(--line); }
.divider.thin{ height:1px; background:var(--line); opacity:0.6; }

header.top-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(19,17,16,0.0);
  backdrop-filter:blur(0px);
}
nav{
  max-width:1280px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:26px 4vw;
  gap:12px;
  border-bottom:1px solid var(--line);
}
.brand{
  display:flex;
  align-items:baseline;
  gap:8px;
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.3rem;
  color:var(--white);
  letter-spacing:0.01em;
}
.brand span{
  font-family:'Inter', sans-serif;
  font-weight:500;
  font-style:italic;
  color:var(--white-dim);
  font-size:0.85rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.nav-links{display:flex; gap:30px; align-items:center; flex-wrap:wrap;}
.nav-links a{
  font-family:'Inter', sans-serif;
  font-weight:500;
  font-size:0.86rem;
  letter-spacing:0.03em;
  color:var(--white-dim);
  transition:color .2s;
  position:relative;
  padding-bottom:2px;
}
.nav-links a:hover{ color:var(--white); }
.nav-menu-link{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.84rem;
  color:var(--white) !important;
  background:transparent;
  border:1px solid var(--line);
  border-radius:2px;
  padding:10px 18px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.2s;
}
.nav-menu-link:hover{ background:rgba(255,255,255,0.08); border-color:var(--white); }
.nav-menu-link svg{width:14px; height:14px;}
.nav-cta{
  font-family:'Inter', sans-serif;
  font-weight:700;
  font-size:0.84rem;
  color:var(--red) !important;
  background:var(--white);
  border:none;
  border-radius:2px;
  padding:11px 20px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  transition:.2s;
}
.nav-cta:hover{ background:#F2E9E8; }
.nav-cta svg{width:15px; height:15px;}
@media(max-width:760px){
  .nav-links{gap:16px;}
  .nav-links a:not(.nav-cta){display:none;}
}

/* --- hero --- */
.hero{
  position:relative;
  min-height:82vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:6vw 6vw 8vw;
  background:var(--red);
}
.eyebrow{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.78rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--white-dim);
  margin-bottom:26px;
  display:flex;
  align-items:center;
  gap:14px;
}
.eyebrow::before{ content:""; width:32px; height:1px; background:var(--white-dim); }
h1.headline{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-style:normal;
  font-size:clamp(2.8rem, 7.5vw, 6.4rem);
  line-height:0.98;
  text-transform:none;
  color:var(--white);
  max-width:18ch;
  letter-spacing:-0.01em;
}
h1.headline em{
  font-style:italic;
  font-weight:500;
  color:var(--white);
  display:block;
  opacity:0.92;
}
.hero-sub{
  margin-top:28px;
  max-width:540px;
  color:var(--white-dim);
  font-size:1.05rem;
  font-weight:400;
}
.hero-actions{
  margin-top:44px;
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}
.btn{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.86rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:16px 30px;
  border:1px solid var(--white);
  border-radius:2px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  transition:.2s;
  cursor:pointer;
  background:none;
  color:var(--white);
}
.btn-solid{ background:var(--white); color:var(--red); border-color:var(--white); }
.btn-solid:hover{ background:#F2E9E8; }
.btn-ghost{ color:var(--white); }
.btn-ghost:hover{ background:rgba(255,255,255,0.1); }

.hero-tag{
  position:absolute;
  right:6vw; bottom:6vw;
  font-family:'Inter', sans-serif;
  font-size:0.78rem;
  color:var(--white-faint);
  text-align:right;
  letter-spacing:0.04em;
  display:none;
  line-height:1.6;
}
@media(min-width:900px){ .hero-tag{display:block;} }

/* --- section shell --- */
section{
  padding:110px 6vw;
  background:var(--red);
  border-bottom:1px solid var(--line);
}
section.band-alt{ background:var(--black); }
.section-head{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin-bottom:56px;
  flex-wrap:wrap;
}
.section-num{
  font-family:'Inter', sans-serif;
  font-weight:600;
  color:var(--white-faint);
  font-size:0.85rem;
  letter-spacing:0.05em;
}
h2.section-title{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:clamp(1.9rem, 3.6vw, 3rem);
  text-transform:none;
  color:var(--white);
}

/* --- presentation --- */
.presentation-grid{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:64px;
}
@media(max-width:860px){ .presentation-grid{grid-template-columns:1fr;} }
.presentation-grid p{
  color:var(--white-dim);
  font-size:1.06rem;
  font-weight:400;
  max-width:58ch;
}
.presentation-grid p + p{margin-top:20px;}
.badge-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.badge{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.74rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--white);
  border:1px solid var(--line);
  border-radius:2px;
  padding:9px 14px;
}
.spec-card{
  background:var(--black);
  border:1px solid var(--line);
  padding:40px;
}
.spec-card dl{display:grid; grid-template-columns:1fr; gap:22px;}
.spec-card dt{
  font-family:'Inter', sans-serif;
  font-size:0.74rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--white-faint);
}
.spec-card dd{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.2rem;
  color:var(--white);
  margin-top:5px;
}

/* --- menu preview (accueil) --- */
.menu-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.menu-preview-item{
  background:var(--black);
  padding:32px 28px;
  transition:.2s;
}
.menu-preview-item:hover{ background:#252120; }
.menu-preview-item .cat{
  font-family:'Inter', sans-serif;
  color:var(--white-faint);
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.1em;
  font-weight:600;
}
.menu-preview-item h3{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.15rem;
  text-transform:none;
  margin-top:12px;
  line-height:1.3;
  color:var(--white);
}
.menu-preview-item .price{
  font-family:'Inter', sans-serif;
  color:var(--white-dim);
  font-weight:600;
  margin-top:12px;
  font-size:0.9rem;
}
.menu-cta{ margin-top:40px; }

/* --- full menu page --- */
.full-menu-wrap{max-width:720px; margin:0 auto;}
.full-menu-cat{margin-bottom:48px;}
.full-menu-cat-title{
  font-family:'Inter', sans-serif;
  font-weight:600;
  font-size:0.76rem;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--white-dim);
  margin-bottom:22px;
  display:flex;
  align-items:center;
  gap:16px;
}
.full-menu-cat-title::after{ content:""; flex:1; height:1px; background:var(--line); }
.full-menu-item{
  display:flex;
  gap:16px;
  align-items:flex-start;
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.full-menu-item:last-child{border-bottom:none;}
.full-menu-item .thumb{
  width:54px; height:54px;
  border-radius:2px;
  background-size:cover;
  background-position:center;
  background-color:var(--black);
  flex-shrink:0;
  border:1px solid var(--line);
}
.full-menu-item .body{flex:1;}
.full-menu-item .row{ display:flex; align-items:baseline; gap:10px; }
.full-menu-item .name{
  font-family:'Playfair Display', serif;
  font-weight:700;
  font-size:1.08rem;
  color:var(--white);
}
.full-menu-item .leader{
  flex:1;
  border-bottom:1px dotted var(--white-faint);
  position:relative;
  top:-4px;
}
.full-menu-item .price{
  font-family:'Inter', sans-serif;
  font-weight:600;
  color:var(--white);
  white-space:nowrap;
}
.full-menu-item .desc{ color:var(--white-faint); font-size:0.9rem; margin-top:4px; }

/* --- témoignages --- */
.testi-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px,1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.testi-card{ background:var(--black); padding:32px; transition:.2s; }
.testi-card:hover{ background:#252120; }
.testi-quote{
  color:var(--white);
  font-family:'Playfair Display', serif;
  font-style:italic;
  font-weight:500;
  font-size:1.05rem;
  line-height:1.6;
}
.testi-name{
  font-family:'Inter', sans-serif;
  font-weight:600;
  letter-spacing:0.04em;
  text-transform:uppercase;
  font-size:0.74rem;
  color:var(--white-faint);
  margin-top:20px;
}

/* --- heures / zones --- */
.hours-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media(max-width:860px){ .hours-wrap{grid-template-columns:1fr;} }
.hours-row{
  display:flex;
  justify-content:space-between;
  padding:15px 0;
  border-bottom:1px solid var(--line);
  font-family:'Inter', sans-serif;
  font-size:0.92rem;
}
.hours-row .day{color:var(--white-faint);}
.hours-row .time{color:var(--white); font-weight:500;}
.zone-list{display:flex; flex-wrap:wrap; gap:12px; align-content:flex-start;}
.zone-pill{
  font-family:'Inter', sans-serif;
  font-weight:500;
  font-size:0.84rem;
  color:var(--white);
  border:1px solid var(--line);
  border-radius:2px;
  padding:10px 18px;
}

/* --- contact --- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; }
@media(max-width:860px){ .contact-grid{grid-template-columns:1fr;} }
.info-row{ display:flex; gap:18px; padding:18px 0; border-bottom:1px solid var(--line); }
.info-row .k{
  font-family:'Inter', sans-serif;
  font-size:0.74rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--white-faint);
  min-width:120px;
}
.info-row .v{color:var(--white); font-weight:500;}
.info-row .v a{color:var(--white); text-decoration:underline;}

form{display:flex; flex-direction:column; gap:16px;}
.field-row{display:flex; gap:16px; flex-wrap:wrap;}
.field-row > *{flex:1; min-width:200px;}
label.f-label{
  display:block;
  font-family:'Inter', sans-serif;
  font-size:0.74rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
  color:var(--white-faint);
  margin-bottom:9px;
}
input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select{
  width:100%;
  background:transparent;
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--white);
  padding:14px 16px;
  font-family:'Inter', sans-serif;
  font-size:0.95rem;
}
input::placeholder, textarea::placeholder{ color:var(--white-faint); }
input:focus, textarea:focus, select:focus{ outline:none; border-color:var(--white); }
textarea{resize:vertical; min-height:120px;}
.consent{ display:flex; gap:10px; align-items:flex-start; font-size:0.8rem; color:var(--white-faint); margin-top:2px; }
.consent input{width:auto; margin-top:3px;}
#form-status{
  font-family:'Inter', sans-serif;
  font-size:0.85rem;
  padding:14px 16px;
  display:none;
  border:1px solid var(--white);
  border-radius:2px;
  color:var(--white);
}

footer{
  padding:40px 6vw;
  background:var(--black);
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
  font-family:'Inter', sans-serif;
  font-size:0.78rem;
  color:var(--white-faint);
}
footer a{color:var(--white-faint); text-decoration:underline;}
footer a:hover{color:var(--white);}

::selection{background:var(--white); color:var(--red);}

/* --- scroll reveal --- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s cubic-bezier(.16,.8,.24,1), transform .8s cubic-bezier(.16,.8,.24,1);
  transition-delay:var(--delay, 0ms);
}
.reveal.in{ opacity:1; transform:translateY(0); }
@media(prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }
.load-in{ opacity:0; transform:translateY(18px); animation:loadIn .9s cubic-bezier(.16,.8,.24,1) forwards; }
@keyframes loadIn{ to{ opacity:1; transform:translateY(0); } }

/* --- admin panel specific --- */
.admin-shell{max-width:640px; margin:0 auto; padding:56px 6vw 100px; background:var(--black); min-height:100vh;}
.admin-item-row{
  display:flex; align-items:center; gap:12px; padding:13px 15px;
  background:var(--black-2); border:1px solid var(--line);
  margin-bottom:8px; cursor:pointer;
}
.admin-item-row:hover{border-color:var(--white-dim);}
.admin-thumb{ width:40px; height:40px; flex-shrink:0; background-size:cover; background-position:center; background-color:var(--black); border:1px solid var(--line); }
.admin-editor{ background:var(--black-2); border:1px solid var(--line); padding:22px; margin-bottom:16px; }
.admin-editor .top-row{display:flex; gap:12px; margin-bottom:12px;}
.admin-photo-box{
  width:64px; height:64px; flex-shrink:0; cursor:pointer;
  background-color:var(--black); background-size:cover; background-position:center;
  border:1px dashed var(--line); display:flex; align-items:center; justify-content:center;
  color:var(--white-faint); font-size:10px; text-align:center;
}
.admin-fields{flex:1; display:flex; flex-direction:column; gap:8px;}
.admin-fields .two-col{display:flex; gap:8px;}
.admin-editor textarea{margin-bottom:12px;}
.editor-actions{display:flex; justify-content:space-between;}
.btn-small{
  font-family:'Inter', sans-serif; font-weight:600; font-size:0.82rem;
  padding:10px 16px; border-radius:2px; border:1px solid var(--line);
  background:transparent; color:var(--white-dim); cursor:pointer;
}
.btn-small.primary{background:var(--white); border-color:var(--white); color:var(--red); font-weight:700;}
.btn-small.danger{border-color:rgba(255,255,255,0.3); color:#E8A8A3;}
.admin-gate{ min-height:70vh; display:flex; align-items:center; justify-content:center; background:var(--black); }
.admin-gate-box{width:300px; text-align:center;}
.save-flash{ color:#8FD98A; font-size:0.85rem; font-weight:600; font-family:'Inter',sans-serif; }
.export-box{ margin-top:32px; background:var(--black-2); border:1px solid var(--line); padding:22px; }
.export-box textarea{
  width:100%; min-height:160px; background:#0D0B0A; color:var(--white-dim);
  font-family:'Inter', monospace; font-size:0.76rem; border:1px solid var(--line);
  padding:12px;
}
