/* Mulder's publieke UX-afwerking — behoudt de bestaande wit/goud/rode huisstijl. */
html{scroll-padding-top:108px}
body{min-width:320px}
a,button,input,select,textarea{touch-action:manipulation}
:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #d5a42d!important;outline-offset:3px}
:where(#locatie,#boeken,#over,.menu-category){scroll-margin-top:108px}
.site-header{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
.nav a[aria-current="page"]{background:#fff5d9;color:#79520a;box-shadow:inset 0 0 0 1px #e8cf83}

/* Tijdelijke startmelding: duidelijk, maar niet zwaarder dan de hoofdboodschap. */
.has-start-announcement .home-announcement{margin-top:16px}
.has-start-announcement .home-announcement-card{padding-bottom:20px;border-radius:20px;box-shadow:0 14px 38px rgba(70,45,10,.08)}
.has-start-announcement .home-announcement-card::before{margin-bottom:17px}
.has-start-announcement .home-announcement-logo{width:96px}
.has-start-announcement .home-announcement-head{padding-bottom:13px}
.has-start-announcement .home-announcement-title h2{font-size:clamp(1.25rem,2.1vw,1.65rem)}
.has-start-announcement .home-announcement-intro{margin:13px 0;font-size:.9rem}
.home-announcement-address{text-decoration:none}
.home-announcement-address:hover{border-color:#d5a42d!important;background:#fff4d4!important}
.has-start-announcement .hero{padding-top:58px}

/* Prijskeuze en boekingsstappen. */
.booking-price-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin:23px 0 20px}
.booking-price-card{display:grid;gap:1px;position:relative;padding:15px 16px;border:1px solid #e6ddd0;border-radius:15px;background:#fff;box-shadow:0 7px 22px rgba(49,31,5,.05)}
.booking-price-card.featured{border-color:#dec269;background:linear-gradient(135deg,#fff9e7,#fff)}
.booking-price-card .booking-price-kicker{color:#776d61;font-size:.76rem;font-weight:850}
.booking-price-card strong{color:#2b241c;font-family:Georgia,'Times New Roman',serif;font-size:1.28rem}
.booking-price-card small{color:#807568;font-size:.72rem}
.booking-price-card.featured::after{content:"Meest gekozen";position:absolute;right:10px;top:-9px;padding:3px 8px;border-radius:999px;background:#b5121b;color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.03em}
.booking-progress span{position:relative;min-width:0}
.booking-progress span.complete{background:#eef7f1;color:#2e704b;box-shadow:inset 0 0 0 1px #b7ddc5}
.booking-progress span.complete b::before{content:"✓ ";font-weight:950}
.booking-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:13px;border:1px solid #e6ddd0;border-radius:15px;background:#faf8f3}
.booking-review>strong,.booking-review>p{grid-column:1/-1;margin:0}
.booking-review>div{display:grid;align-content:start;gap:2px;padding:11px;border-radius:11px;background:#fff;box-shadow:0 3px 10px rgba(49,31,5,.04)}
.booking-review span{color:#887d70;font-size:.67rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.booking-review strong{color:#2e2923;font-size:.84rem;line-height:1.35;overflow-wrap:anywhere}
.booking-review small{margin-top:1px!important;color:#81776c!important;font-size:.69rem!important}
.booking-review .booking-review-total{grid-column:1/-1;border:1px solid #ead39a;background:#fff9e9}
.booking-review-total strong{font-size:1.12rem;color:#835b0c}
.booking-submit-status:empty{display:none}
.booking-submit-status.success,.booking-submit-status.error{display:block;margin-top:13px!important;padding:12px 14px;border-radius:12px;font-size:.82rem!important;font-weight:800}
.booking-submit-status.success{border:1px solid #b7dbc4;background:#eff9f2;color:#276341!important}
.booking-submit-status.error{border:1px solid #e4b7ba;background:#fff2f2;color:#8c242a!important}

/* Productfoto's zonder afsnijden; rustiger en herkenbaarder in de menukaart. */
.menu-card-image{object-fit:contain!important;object-position:center!important;padding:6px;background:linear-gradient(145deg,#fff,#f5f0e7)!important}
.menu-card{isolation:isolate}
.menu-card:hover .menu-card-image{transform:scale(1.018)}
.menu-card-image{transition:transform .18s ease}

@media(max-width:900px){
  body.nav-open{overflow:hidden}
  .nav{z-index:70;max-height:calc(100dvh - 92px);overflow:auto;overscroll-behavior:contain;padding:12px!important;border-radius:16px!important}
  .nav a{min-height:48px;display:flex;align-items:center;padding:11px 13px!important;border-radius:10px}
  .nav .nav-cta{justify-content:center;margin-top:4px}
}
@media(max-width:700px){
  html{scroll-padding-top:84px}
  :where(#locatie,#boeken,#over,.menu-category){scroll-margin-top:84px}
  .has-start-announcement .home-announcement-head{align-items:center}
  .has-start-announcement .home-announcement-logo{width:78px}
  .has-start-announcement .home-announcement-intro{display:none}
  .has-start-announcement .home-announcement-date{padding:10px 11px}
  .has-start-announcement .home-announcement-date .home-announcement-day{width:44px!important;min-width:44px;height:44px!important;font-size:1.05rem}
  .has-start-announcement .home-announcement-note{margin-top:11px;font-size:.78rem}
  .has-start-announcement .hero{padding-top:38px}
  .booking-price-strip{grid-template-columns:1fr;gap:8px}
  .booking-price-card{padding:13px 14px}
  .booking-progress{gap:5px!important}
  .booking-progress span{min-height:45px;padding:8px 4px!important;font-size:.7rem!important}
  .booking-review{grid-template-columns:1fr}
  .booking-review .booking-review-total{grid-column:auto}
}
@media(max-width:420px){
  .booking-progress span b{display:none}
  .booking-progress span{font-size:.78rem!important}
  .booking-progress span::after{content:attr(data-short)}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
