:root{
  --wine:#4A1F2B;
  --wine-deep:#33141D;
  --espresso:#1B1714;
  --ivory:#F3ECDF;
  --brass:#B68A4E;
  --brass-soft:#D9BC8C;
  --sage:#6B7857;
  --line: rgba(243,236,223,0.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{
  background:var(--espresso);
  color:var(--ivory);
  font-family:'Inter', sans-serif;
  font-weight:400;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:-0.01em;
}
a{color:inherit;text-decoration:none; -webkit-tap-highlight-color:transparent;}
button{-webkit-tap-highlight-color:transparent;}
.container{
  max-width:1120px;
  margin:0 auto;
  padding:0 32px;
  padding-left:calc(32px + env(safe-area-inset-left));
  padding-right:calc(32px + env(safe-area-inset-right));
}
::selection{background:var(--brass); color:var(--espresso);}

/* focus visibility */
a:focus-visible, button:focus-visible{
  outline:2px solid var(--brass-soft);
  outline-offset:3px;
}

/* skip link */
.skip-link{
  position:absolute;
  top:-100px; left:16px;
  z-index:200;
  background:var(--brass);
  color:var(--espresso);
  padding:12px 20px;
  border-radius:2px;
  font-size:0.85rem;
  transition:top .2s ease;
}
.skip-link:focus{top:16px;}

/* ---------- NAV ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:calc(22px + env(safe-area-inset-top)) 0 22px;
  background:linear-gradient(to bottom, rgba(27,23,20,0.92), rgba(27,23,20,0));
  backdrop-filter:blur(2px);
  transition:padding .3s ease, background .3s ease;
}
header.scrolled{
  padding:calc(14px + env(safe-area-inset-top)) 0 14px;
  background:rgba(27,23,20,0.92);
  border-bottom:1px solid var(--line);
}
nav{display:flex; justify-content:space-between; align-items:center; gap:20px;}
.logo{display:flex; align-items:center;}
.logo img{height:40px; width:auto; display:block;}
.nav-links{display:flex; gap:26px; font-size:0.82rem; letter-spacing:0.06em; text-transform:uppercase;}
.nav-links a{opacity:0.75; transition:opacity .25s ease, color .25s ease; position:relative;}
.nav-links a:hover{opacity:1; color:var(--brass-soft);}
.nav-cta{
  border:1px solid var(--brass);
  padding:9px 20px;
  font-size:0.78rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  border-radius:2px;
  transition:background .25s ease, color .25s ease;
  white-space:nowrap;
}
.nav-cta:hover{background:var(--brass); color:var(--espresso);}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:38px; height:38px;
  background:none;
  border:none;
  cursor:pointer;
  flex-shrink:0;
}
.nav-toggle span{
  display:block;
  width:20px; height:1.5px;
  background:var(--ivory);
  transition:transform .25s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

@media (max-width:800px){
  .logo{margin-right:auto;}
  .nav-toggle{display:flex; order:2;}
  .nav-cta{order:3;}
  .nav-links{
    order:4;
    position:absolute;
    top:100%;
    left:0;
    right:0;
    flex-direction:column;
    gap:0;
    background:rgba(27,23,20,0.98);
    border-bottom:1px solid var(--line);
    padding:0 calc(32px + env(safe-area-inset-right)) 0 calc(32px + env(safe-area-inset-left));
    max-height:0;
    overflow:hidden;
    opacity:0;
    transition:max-height .35s ease, opacity .25s ease, padding .35s ease;
  }
  .nav-links a{opacity:1; width:100%; padding:14px 0; border-bottom:1px solid var(--line);}
  .nav-links a:last-child{border-bottom:none;}
  .nav-links.open{
    max-height:320px;
    opacity:1;
    padding-top:10px;
    padding-bottom:18px;
  }
}

/* ---------- HERO ---------- */
.hero{
  min-height:100vh;
  min-height:100dvh;
  display:flex; flex-direction:column; justify-content:center;
  position:relative;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(74,31,43,0.55), transparent 60%),
    linear-gradient(180deg, var(--espresso) 0%, var(--wine-deep) 120%);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(90deg, rgba(243,236,223,0.025) 0 1px, transparent 1px 120px);
  pointer-events:none;
}
.flame{
  position:absolute;
  width:2px; height:2px;
  border-radius:50%;
  background:var(--brass-soft);
  filter:blur(1px);
  opacity:0.5;
  animation:flicker 3.4s ease-in-out infinite;
}
@keyframes flicker{
  0%,100%{opacity:0.35; transform:scale(1);}
  50%{opacity:0.75; transform:scale(1.6);}
}
.hero-inner{position:relative; z-index:2;}
.eyebrow{
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--brass-soft);
  margin-bottom:22px;
  opacity:0;
  animation:riseIn 1s ease forwards .2s;
}
.hero h1{
  font-size:clamp(2.6rem, 6.2vw, 5.4rem);
  line-height:1.03;
  max-width:14ch;
  opacity:0;
  animation:riseIn 1.1s ease forwards .4s;
}
.hero h1 em{
  font-style:italic;
  color:var(--brass-soft);
  font-weight:400;
}
.hero p{
  margin-top:26px;
  max-width:46ch;
  font-size:1.08rem;
  color:rgba(243,236,223,0.78);
  font-weight:300;
  opacity:0;
  animation:riseIn 1.1s ease forwards .65s;
}
.hero-actions{
  margin-top:44px;
  display:flex; gap:20px; align-items:center; flex-wrap:wrap;
  opacity:0;
  animation:riseIn 1.1s ease forwards .85s;
}
.btn-primary{
  background:var(--brass);
  color:var(--espresso);
  padding:15px 30px;
  font-size:0.85rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  border-radius:2px;
  transition:background .25s ease, transform .25s ease;
  display:inline-block;
}
.btn-primary:hover{background:var(--brass-soft); transform:translateY(-1px);}
.btn-ghost{
  font-size:0.85rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  border-bottom:1px solid var(--brass);
  padding-bottom:3px;
  color:var(--ivory);
  opacity:0.85;
  transition:opacity .2s ease;
}
.btn-ghost:hover{opacity:1;}
@keyframes riseIn{
  from{opacity:0; transform:translateY(16px);}
  to{opacity:1; transform:translateY(0);}
}
.scroll-cue{
  position:absolute; bottom:36px; left:32px;
  font-size:0.72rem; letter-spacing:0.12em; text-transform:uppercase;
  color:rgba(243,236,223,0.45);
  display:flex; align-items:center; gap:12px;
}
.scroll-cue .line{width:36px; height:1px; background:rgba(243,236,223,0.35);}

/* ---------- SHARED SECTION STYLES ---------- */
section{padding:130px 0; position:relative;}
.section-head{max-width:640px; margin-bottom:70px;}
.section-eyebrow{
  font-size:0.76rem; letter-spacing:0.16em; text-transform:uppercase;
  color:var(--sage);
  margin-bottom:16px;
  display:flex; align-items:center; gap:14px;
}
.section-eyebrow::before{content:""; width:26px; height:1px; background:var(--sage);}
.section-head h2{
  font-size:clamp(2rem, 3.6vw, 3rem);
  line-height:1.12;
}
.section-head p.lead{
  margin-top:20px;
  color:rgba(243,236,223,0.68);
  font-weight:300;
  font-size:1.05rem;
  max-width:52ch;
}
.reveal{opacity:0; transform:translateY(24px); transition:opacity .8s ease, transform .8s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- CONCEPT ---------- */
.concept{background:var(--wine-deep);}
.concept-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--line);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.concept-card{
  background:var(--wine-deep);
  padding:44px 38px;
}
.concept-card h3{
  font-size:1.28rem; font-weight:500; margin-bottom:16px;
  color:var(--brass-soft);
}
.concept-card p{
  color:rgba(243,236,223,0.72); font-weight:300; font-size:0.96rem;
}
@media (max-width:800px){ .concept-grid{grid-template-columns:1fr;} }

/* ---------- WERKWIJZE ---------- */
.steps{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.step{
  background:var(--espresso);
  padding:40px 30px;
}
.step-num{
  display:block;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:1.6rem;
  color:var(--brass-soft);
  opacity:0.65;
  margin-bottom:18px;
}
.step h3{font-size:1.1rem; font-weight:500; margin-bottom:10px;}
.step p{color:rgba(243,236,223,0.72); font-weight:300; font-size:0.92rem;}
@media (max-width:900px){ .steps{grid-template-columns:1fr 1fr;} }
@media (max-width:560px){ .steps{grid-template-columns:1fr;} }

/* ---------- KEUKEN ---------- */
.keuken{
  display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start;
}
@media (max-width:900px){ .keuken{grid-template-columns:1fr; gap:50px;} }
.menu-card{
  border:1px solid var(--line);
  padding:48px 40px;
  position:relative;
  background:linear-gradient(160deg, rgba(74,31,43,0.25), transparent 60%);
}
.menu-card::before{
  content:"Menu du Soir";
  position:absolute; top:-14px; left:40px;
  background:var(--espresso);
  padding:0 14px;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:0.95rem;
  color:var(--brass-soft);
}
.menu-line{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:16px 0;
  border-bottom:1px dashed var(--line);
  font-size:0.95rem;
}
.menu-line:last-child{border-bottom:none;}
.menu-line .course{color:rgba(243,236,223,0.5); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase;}
.menu-line .name{font-family:'Fraunces', serif; font-style:italic; font-size:1.05rem;}
.keuken-text p{
  color:rgba(243,236,223,0.72); font-weight:300; margin-bottom:22px; font-size:1rem;
}
.keuken-text strong{color:var(--brass-soft); font-weight:500;}

/* ---------- TAFEL VOOR ACHT (signature) ---------- */
.table-section{
  background:radial-gradient(ellipse 70% 60% at 50% 40%, rgba(74,31,43,0.4), var(--espresso) 70%);
  text-align:center;
}
.table-wrap{
  position:relative;
  width:min(420px, 80vw);
  aspect-ratio:1;
  margin:70px auto 0;
}
.table-center{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:38%; height:38%;
  border-radius:50%;
  border:1px solid var(--brass);
  display:flex; align-items:center; justify-content:center;
  background:rgba(182,138,78,0.06);
}
.table-center .num{
  font-family:'Fraunces', serif; font-size:2.6rem; color:var(--brass-soft);
}
.table-center .cap{
  position:absolute; bottom:-34px; font-size:0.72rem; letter-spacing:0.14em; text-transform:uppercase; color:rgba(243,236,223,0.55);
}
.seat{
  position:absolute;
  width:14px; height:14px;
  border-radius:50%;
  background:var(--ivory);
  opacity:0.85;
  box-shadow:0 0 0 1px rgba(243,236,223,0.15);
}
.table-copy{max-width:520px; margin:64px auto 0; color:rgba(243,236,223,0.72); font-weight:300; font-size:1.02rem;}

/* ---------- FAQ ---------- */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none;
  cursor:pointer;
  padding:24px 0;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-family:'Fraunces', serif;
  font-size:1.08rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  font-family:'Inter', sans-serif;
  font-weight:300;
  font-size:1.5rem;
  line-height:1;
  color:var(--brass-soft);
  flex-shrink:0;
  transition:transform .25s ease;
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{
  padding:0 0 24px;
  max-width:60ch;
  color:rgba(243,236,223,0.72);
  font-weight:300;
  font-size:0.98rem;
}

/* ---------- DOELGROEP / QUOTE ---------- */
.quote-section{
  padding:150px 0;
  background:var(--wine-deep);
}
.quote{
  max-width:760px; margin:0 auto; text-align:center;
  font-family:'Fraunces', serif;
  font-style:italic;
  font-size:clamp(1.5rem, 3vw, 2.2rem);
  line-height:1.5;
  color:var(--ivory);
}
.quote .accent{color:var(--brass-soft);}
.quote-attr{
  margin-top:28px; font-family:'Inter'; font-style:normal;
  font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(243,236,223,0.5);
}

/* ---------- CTA / CONTACT ---------- */
.cta{
  text-align:center;
}
.cta h2{font-size:clamp(2.1rem,4vw,3.2rem); max-width:16ch; margin:0 auto;}
.cta p.lead{margin:22px auto 0;}
.cta-form{
  max-width:420px; margin:56px auto 0;
  display:flex; flex-direction:column; gap:16px;
  text-align:left;
}
.cta-form label{
  font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(243,236,223,0.55);
  margin-bottom:6px; display:block;
}
.cta-form input, .cta-form textarea{
  width:100%;
  background:transparent;
  border:none;
  border-bottom:1px solid var(--line);
  color:var(--ivory);
  font-family:'Inter'; font-size:0.98rem;
  padding:10px 2px;
}
.cta-form input:focus, .cta-form textarea:focus{
  outline:none; border-bottom-color:var(--brass);
}
.cta-form button{
  margin-top:14px;
  align-self:flex-start;
  background:var(--brass);
  color:var(--espresso);
  border:none;
  padding:15px 32px;
  font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase;
  border-radius:2px;
  cursor:pointer;
  transition:background .25s ease;
}
.cta-form button:hover{background:var(--brass-soft);}
.cta-form button:disabled{opacity:0.6; cursor:default;}
.form-status{
  font-size:0.85rem;
  color:rgba(243,236,223,0.68);
  min-height:1.2em;
}

/* ---------- FOOTER ---------- */
footer{
  border-top:1px solid var(--line);
  padding:40px 0 calc(40px + env(safe-area-inset-bottom));
  display:flex; justify-content:space-between; align-items:center;
  font-size:0.82rem; color:rgba(243,236,223,0.5);
  flex-wrap:wrap; gap:16px;
}

/* ---------- SMALL SCREENS ---------- */
@media (max-width:480px){
  .container{ padding-left:calc(20px + env(safe-area-inset-left)); padding-right:calc(20px + env(safe-area-inset-right)); }
  .logo img{ height:32px; }
  .nav-cta{ padding:8px 14px; font-size:0.72rem; }
  section{ padding:80px 0; }
  .section-head{ margin-bottom:44px; }
  .quote-section{ padding:90px 0; }
  .concept-card{ padding:34px 24px; }
  .menu-card{ padding:36px 24px; }
  .step{ padding:32px 22px; }
  .table-wrap{ margin-top:52px; }
}

/* ---------- BACK TO TOP ---------- */
.back-to-top{
  position:fixed;
  bottom:calc(24px + env(safe-area-inset-bottom));
  right:calc(24px + env(safe-area-inset-right));
  width:46px; height:46px;
  border-radius:50%;
  background:var(--brass);
  color:var(--espresso);
  font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s ease, background .25s ease;
  z-index:90;
}
.back-to-top.visible{opacity:1; visibility:visible; transform:translateY(0);}
.back-to-top:hover{background:var(--brass-soft);}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
}
