:root{
  --sage:        #dfe8dc;
  --sage-line:   #aebfa9;
  --cream:       #f8f1e4;
  --cream-soft:  #f2e9d8;
  --ink:         #3d4a3a;
  --ink-soft:    #5c6b58;
  --gold:        #c79a3c;
  --gold-dark:   #b3872f;
  --white:       #fffdf8;
  --radius:      999px;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;margin:0;color:var(--ink);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.85rem 2rem;border-radius:var(--radius);
  font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500;
  border:1px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-gold{background:var(--gold);color:var(--white);}
.btn-gold:hover{background:var(--gold-dark);}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--ink-soft);}
.btn-outline:hover{background:rgba(61,74,58,.06);}
.btn-block{width:100%;}

/* ---------- Nav ---------- */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(248,241,228,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(61,74,58,.08);
}
.nav-inner{
  max-width:1180px;margin:0 auto;padding:.7rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;position:relative;
}
.nav-logo{}
.nav-logo img{height:30px;width:auto;object-fit:contain;}
.nav-links{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  display:flex;gap:2rem;font-size:.92rem;white-space:nowrap;
}
.nav-right{display:flex;align-items:center;}
.nav-links a,.nav-links-mobile a,.lang-switch a,.lang-switch .lang-current,.nav-cta{
  border-radius:6px;transition:box-shadow .15s ease;
}
.nav-cta{border-radius:999px;}
.nav-links a:active,.nav-links a:focus-visible,
.nav-links-mobile a:active,.nav-links-mobile a:focus-visible,
.lang-switch a:active,.lang-switch a:focus-visible,
.nav-cta:active,.nav-cta:focus-visible{
  box-shadow:0 0 0 2px #c79a3c;
  outline:none;
}
.nav-links a:hover{color:var(--gold-dark);}
.nav-cta{padding:.6rem 1.6rem;font-size:.75rem;}
.lang-switch{display:flex;align-items:center;gap:.4rem;margin-left:1rem;font-size:.72rem;letter-spacing:.04em;}
.lang-switch a,.lang-switch .lang-current{color:var(--ink-soft);padding:.2rem;}
.lang-switch .lang-current{color:var(--gold-dark);font-weight:600;}
.lang-switch a:hover{color:var(--ink);}
.lang-switch-mobile{justify-content:center;margin:.5rem 0 0;}
.nav-burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px;padding:6px;}
.nav-burger span{width:22px;height:2px;background:var(--ink);display:block;}
.nav-links-mobile{display:none;flex-direction:column;gap:1rem;padding:1rem 1.5rem 1.5rem;text-align:center;}
.nav-links-mobile a{padding:.4rem 0;font-size:.95rem;}

@media (max-width:860px){
  .nav-links{display:none;}
  .nav-right{display:none;}
  .nav-burger{display:flex;}
  .nav-links-mobile.open{display:flex;}
}

/* ---------- Hero ---------- */
:root{--nav-h:59px;}
.hero{
  background:var(--cream);text-align:center;
  position:relative;overflow:hidden;
  background-image:
    radial-gradient(rgba(61,74,58,.05) 1px, transparent 1.5px),
    radial-gradient(rgba(61,74,58,.05) 1px, transparent 1.5px);
  background-size:26px 26px;
  background-position:0 0, 13px 13px;
}
.hero-viewport{
  min-height:calc(100vh - var(--nav-h));
  display:flex;align-items:center;justify-content:center;
  padding:2.5rem 1.5rem;
}
.hero-deco{position:absolute;opacity:.55;pointer-events:none;}
.hero-deco-tr{top:0;right:0;}
.hero-deco-bl{bottom:120px;left:0;transform:rotate(180deg);}
@media (max-width:700px){.hero-deco{display:none;}}
.hero-mark{position:relative;width:min(92vw,560px);margin:0 auto;}
.hero-mark img{
  position:relative;z-index:1;
  width:100%;height:auto;display:block;
}
.hero-mark-glow{
  position:absolute;top:-55%;left:-35%;right:-35%;bottom:-15%;z-index:0;
  background:radial-gradient(ellipse, rgba(223,232,220,.95) 0%, rgba(223,232,220,.7) 35%, rgba(223,232,220,.3) 58%, rgba(223,232,220,0) 78%);
}
.hero-tagline{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:#4a5646;margin:3.2rem 0 2rem;position:relative;z-index:2;}
.hero-actions{display:flex;flex-direction:column;gap:.9rem;align-items:center;}
.hero-actions .btn{width:240px;}
.hero-strip{position:relative;z-index:1;overflow:hidden;}
.hero-strip-track{display:flex;width:max-content;animation:heroSlide 42s linear infinite;}
.hero-strip-track:hover{animation-play-state:paused;}
.hero-photo{width:25vw;max-width:340px;aspect-ratio:1/1;object-fit:cover;background:var(--sage);display:block;color:transparent;font-size:0;flex:0 0 auto;}
@keyframes heroSlide{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .hero-strip-track{animation:none;}
}

/* ---------- Section head ---------- */
.section-head{text-align:center;padding:4rem 1.5rem 2rem;}
.rule{display:block;width:60px;height:1px;background:var(--sage-line);margin:0 auto 1.2rem;}
.logo-rule{display:block;margin:0 auto 1rem;}
.section-head h2{font-size:2.4rem;font-style:italic;}
.eyebrow{margin-top:.5rem;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);}

/* ---------- Menu ---------- */
.menu-section{background:var(--sage);padding-bottom:4rem;}
.menu-tabs-wrap{
  display:flex;align-items:center;gap:.5rem;
  max-width:900px;margin:0 auto 2.5rem;padding:0 1.5rem;
}
.menu-tabs{
  display:flex;gap:.4rem;flex-wrap:nowrap;overflow-x:auto;
  scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;
  flex:1;
}
.menu-tabs::-webkit-scrollbar{display:none;}
.tab{
  background:transparent;border:none;padding:.55rem 1.1rem;
  font-family:var(--serif);font-style:italic;font-size:1rem;color:var(--ink-soft);
  cursor:pointer;border-radius:var(--radius);transition:background .15s ease, color .15s ease;
  white-space:nowrap;flex:0 0 auto;
}
.tab.active{background:var(--white);color:var(--ink);}
.tab:hover{color:var(--ink);}
.tab-arrow{
  flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:1px solid var(--sage-line);
  background:var(--white);color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .15s ease;
}
.tab-arrow:hover{background:var(--cream-soft);}

.menu-panels{max-width:900px;margin:0 auto;padding:0 1.5rem;}
.panel{display:none;}
.panel.active{display:block;}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem 3rem;}
.menu-grid.sides-grid{margin-top:1rem;}
.menu-item{display:flex;align-items:baseline;flex-wrap:wrap;border-bottom:1px solid rgba(61,74,58,.18);padding-bottom:.6rem;}
.menu-item.full{grid-column:1/-1;}
.mi-name{font-family:var(--serif);font-style:italic;font-size:1.05rem;white-space:nowrap;}
.mi-name small{font-style:normal;font-size:.72rem;color:var(--ink-soft);}
.mi-dots{flex:1;}
.mi-price{font-size:.92rem;font-weight:500;}
.menu-item.multi{display:block;position:relative;padding-top:.2rem;}
.menu-item.multi .mi-name{display:inline;}
.menu-item.multi .mi-dots{display:none;}
.menu-item.multi .mi-price{float:right;}
.mi-sub{list-style:none;margin:.5rem 0 0;padding:0;font-size:.85rem;color:var(--ink-soft);}
.mi-sub li{padding:.1rem 0;}
.mi-sub.price-sub li{display:flex;justify-content:space-between;max-width:220px;}
.mi-desc{font-size:.85rem;color:var(--ink-soft);margin:.4rem 0 0;max-width:420px;}
.sides-title{text-align:center;font-style:italic;font-size:1.3rem;margin:3rem 0 1.5rem;}
.sides-title small{font-size:.7rem;font-style:normal;color:var(--ink-soft);display:block;margin-top:.2rem;}
.menu-footnote{text-align:center;font-size:.78rem;color:var(--ink-soft);margin:3rem 0 0;font-style:italic;}

@media (max-width:640px){
  .menu-grid{grid-template-columns:1fr;}
}

/* ---------- Reserveer (call-to-reserve) ---------- */
.reserve-section{background:var(--cream);text-align:center;padding-bottom:5rem;}
.reserve-card{max-width:520px;margin:0 auto;padding:0 1.5rem;}
.reserve-copy{color:var(--ink-soft);margin:0 0 1.8rem;line-height:1.7;}
.btn-call{display:inline-flex;align-items:center;gap:.55rem;}
.btn-call svg{flex:0 0 auto;}

/* ---------- Bezoek ons ---------- */
.visit-section{background:var(--sage);padding-bottom:4rem;}
.visit-grid{
  max-width:1050px;margin:0 auto;padding:0 1.5rem;
  display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:start;
}
.visit-info h4{font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);margin:1.6rem 0 .5rem;}
.visit-info h4:first-child{margin-top:0;}
.visit-info p{margin:0;line-height:1.6;}
.contact-link{text-decoration:underline;text-decoration-color:rgba(61,74,58,.35);text-underline-offset:2px;transition:color .15s ease;}
.contact-link:hover{color:var(--gold-dark);text-decoration-color:var(--gold-dark);}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.visit-info a:hover{color:var(--gold-dark);}
.hours{width:100%;border-collapse:collapse;font-size:.92rem;}
.hours td{padding:.35rem 0;border-bottom:1px solid rgba(61,74,58,.12);}
.hours td:last-child{text-align:right;}
.hours .closed{color:var(--ink-soft);font-style:italic;}
.social{display:flex;gap:1rem;margin-top:1.6rem;}
.social a{
  width:36px;height:36px;border:1px solid var(--ink-soft);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
}
.social a:hover{background:var(--white);}

/* ---- Modernized map card ---- */
.map-card{
  position:relative;border-radius:16px;overflow:hidden;
  box-shadow:0 14px 34px -16px rgba(61,74,58,.4);
}
.map-card iframe{
  width:100%;height:340px;border:0;display:block;
  filter:grayscale(.3) sepia(.18) saturate(1.15) hue-rotate(-6deg);
}
.map-cta{
  position:absolute;bottom:14px;right:14px;
  background:var(--gold);color:var(--white);
  padding:.55rem 1.1rem;border-radius:999px;
  font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:500;
  box-shadow:0 6px 16px rgba(0,0,0,.18);
}
.map-cta:hover{background:var(--gold-dark);}

@media (max-width:800px){
  .visit-grid{grid-template-columns:1fr;}
}

/* ---------- Bestellen (coming soon) ---------- */
.order-section{background:var(--cream);text-align:center;padding-bottom:5rem;}
.soon-pill{
  display:inline-block;background:var(--cream-soft);color:var(--gold-dark);
  border:1px solid rgba(199,154,60,.4);border-radius:999px;
  padding:.3rem 1rem;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600;
}
.order-card{max-width:480px;margin:0 auto;padding:0 1.5rem;}
.order-copy{color:var(--ink-soft);margin:0 0 1.6rem;line-height:1.7;}
.order-card .btn{display:inline-flex;align-items:center;gap:.55rem;}
.order-social-ctas{display:flex;flex-direction:column;gap:.8rem;align-items:center;}

/* ---------- Footer ---------- */
.site-footer{background:var(--sage);text-align:center;padding:2.5rem 1.5rem;border-top:1px solid rgba(61,74,58,.1);}
.footer-logo{width:auto;height:28px;margin:0 auto .8rem;object-fit:contain;}
.site-footer p{font-size:.78rem;color:var(--ink-soft);margin:0;}
.footer-credit{margin-top:.5rem !important;}
.footer-credit a{text-decoration:underline;color:var(--ink-soft);}
.footer-credit a:hover{color:var(--gold-dark);}
