/* ==========================================================================
   Betuws Wijndomein — custom styles
   Tailwind doet het meeste; hier staan fonts, texturen en complexe gradients.
   ========================================================================== */

:root {
  --bordeaux: #3d2b1f;
  --bordeaux-deep: #2e1a0f;
  --walnut: #5a3d2a;
  --forest: #2d3a2a;
  --forest-deep: #1e2a1d;
  --oak: #8b5a2b;
  --honey: #e4b363;
  --honey-soft: #f0c988;
  --cream: #f5efe6;
  --cream-warm: #ede3d1;
  --paper: #faf6ee;
  --ink: #1a1410;
  --ink-soft: #463a32;
  --muted: #8a7c6e;
  --line: rgba(26, 20, 16, .12);
  --line-soft: rgba(26, 20, 16, .06);
}

* { box-sizing: border-box; }

html, body {
  background: #e9e0ce;
  color: var(--ink);
  font-family: 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01", "cv11";
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
}

/* Warm ambient background — alleen op desktop/tablet.
   Op mobiel tonen we uitsluitend de vlakke body-kleur zodat de bovenrand
   visueel identiek is aan de zijkant. */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(1200px 600px at 20% 0%, rgba(228, 179, 99, .35), transparent 60%),
    radial-gradient(900px 500px at 100% 100%, rgba(90, 26, 43, .18), transparent 60%),
    linear-gradient(180deg, #e9e0ce 0%, #dfd3ba 100%);
}
@media (max-width: 767px) {
  body::before { display: none; }
}

.font-serif { font-family: 'Fraunces', Georgia, serif; font-feature-settings: "ss01"; }
.font-mono  { font-family: 'JetBrains Mono', ui-monospace, monospace; }

/* ================= NAV =================
   Vloeiende hero→scrolled overgang.
   Truc: altijd gecentreerd layout met margin:auto. Op hero wordt de pill
   alleen via max-width (compact) + transform (naar rechts) uit het midden
   getrokken. Beide zijn CSS-animatable → geen left:auto→value snaps meer. */
.nav-pill {
  top: 56px;
  left: 16px;
  right: 16px;
  max-width: 1360px;                /* fallback: full width up to cap */
  margin-left: auto;
  margin-right: auto;
  transform: translateX(0);
  will-change: transform, max-width;

  background: rgba(250, 246, 238, .72);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border: 1px solid var(--line-soft);

  transition:
    top           .55s cubic-bezier(.2, .7, .2, 1),
    max-width     .6s  cubic-bezier(.2, .7, .2, 1),
    transform     .6s  cubic-bezier(.2, .7, .2, 1),
    padding       .6s  cubic-bezier(.2, .7, .2, 1),
    background    .4s  ease,
    box-shadow    .4s  ease,
    border-color  .4s  ease,
    color         .4s  ease;
}

/* Scrolled: landt terug in het midden, rekt uit naar wide;
   op desktop extra padding-left zodat de ingevlogen logo ruimte heeft. */
.nav-pill.scrolled {
  top: 14px;
  max-width: 1360px;
  transform: translateX(0);
  background: rgba(26, 20, 16, .88);
  color: var(--cream);
  border-color: rgba(255, 255, 255, .08);
  box-shadow: 0 12px 30px -14px rgba(0, 0, 0, .4);
}

/* ====================================================================
   NAV · 1024+ layout (tablet landscape + laptop + desktop)
   ---
   Gebruikt één formule voor de brand-float zodat zijn hero-positie
   smooth schaalt met viewport en in scrolled-state ALTIJD op dezelfde
   absolute x (30px) eindigt — of je nu op een iPad mini of een 4K
   scherm kijkt.
   ==================================================================== */
/* 768+ (portrait tablet en hoger): brand-float zichtbaar + right-align van
   nav-right. In-pill logo verborgen. */
@media (min-width: 768px) {
  .nav-right { margin-left: auto; }
  .nav-pill .brand-in-pill { display: none !important; }
}

/* 1024+ (landscape tablet + desktop): navlinks zichtbaar als absolute layer,
   pill.scrolled extra padding-left voor het ingevlogen logo */
@media (min-width: 1024px) {
  .nav-pill .navlinks {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translate(0, -50%);
    transition:
      left      .6s cubic-bezier(.2, .7, .2, 1),
      transform .6s cubic-bezier(.2, .7, .2, 1);
  }
  .nav-pill.scrolled {
    padding-left: 140px;
    padding-top: 14px;
    padding-bottom: 14px;
  }
  .nav-pill.scrolled .navlinks {
    left: 50%;
    transform: translate(-50%, -50%);
  }
}

/* Pill-breedte + shift: discreet per range zodat navlinks comfortabel
   passen (tablet) of adem hebben (desktop) */
@media (min-width: 768px) and (max-width: 1023px) {
  /* Portrait tablet: logo + pill als gecentreerde groep (zoals scrolled).
     Hero: logo links, pill rechts ernaast — samen in het midden van vw. */
  .nav-pill {
    top: 52px !important;  /* = logo-center (40 + 72/2 = 76) - pill-height/2 (~24) */
    left: auto;
    right: calc(50vw - 220px);
    width: max-content;
    max-width: calc(100vw - 32px);
    margin-left: auto;
    margin-right: 0;
  }

  .brand-float {
    left: calc(50vw - 220px) !important;
    right: auto !important;
  }

  /* Scrolled: brand-float weg (geen dubbele logo), in-pill logo neemt over,
     pill wordt GECENTREERD (zoals desktop) i.p.v. rechts-geankerd */
  body.is-scrolled .nav-pill {
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
    gap: 16px;
  }
  body.is-scrolled .nav-pill .brand-in-pill {
    display: inline-flex !important;
    padding-right: 8px;
  }
  body.is-scrolled .brand-float { display: none !important; }
}
@media (min-width: 1024px) and (max-width: 1351px) {
  .nav-pill {
    max-width: 780px;
    transform: translateX(40px);
  }
  .nav-pill .navlink { padding: 7px 11px; font-size: 12.5px; }
  .nav-pill .navlinks { gap: 2px; }
}
@media (min-width: 1352px) {
  .nav-pill {
    max-width: 890px;
    transform: translateX(81px);
  }
}

/* Mobiel/tablet — pill plakt bovenin, geen shift */
@media (max-width: 1023px) {
  .nav-pill       { top: 40px; }
  .nav-pill.scrolled { top: 14px; }
}

@media (max-width: 640px) {
  .nav-pill          { top: 16px; left: 8px; right: 16px; }
  .nav-pill.scrolled { top: 10px; }
}
.nav-pill.scrolled .navlink { color: rgba(245, 239, 230, .78); }
.nav-pill.scrolled .navlink:hover { color: var(--cream); background: rgba(255,255,255,.06); }
.nav-pill.scrolled .btn-book { background: var(--honey); color: var(--ink); }
.nav-pill.scrolled .btn-book:hover { background: var(--honey-soft); }
.nav-pill.scrolled .nav-lang { color: rgba(245, 239, 230, .55); }
.nav-pill.scrolled .brand-logo { filter: invert(1) brightness(1.08); }

.brand-logo {
  display: block;
  height: 52px;
  width: auto;
  transition: filter .25s ease;
}
@media (max-width: 640px) {
  .brand-logo { height: 44px; }
}
.brand-logo--inverted {
  filter: invert(1) brightness(1.08);
  height: 140px;
}

/* ----- Floating brand — één logo dat van hero naar pill glijdt ----- */
.brand-float {
  display: none;
  position: fixed;
  top: 40px;
  left: 80px;                                   /* 1024+ default */
  z-index: 60;
  line-height: 0;
  transform-origin: top left;                   /* scale pinned aan top-left */
  transform: translate(0, 0) scale(1);
  will-change: transform, filter;
  filter:
    invert(1) brightness(1.1)
    drop-shadow(0 10px 28px rgba(10, 6, 3, .6))
    drop-shadow(0 2px 4px rgba(10, 6, 3, .5));
  transition:
    transform .6s cubic-bezier(.2, .7, .2, 1),
    filter    .5s ease;
}
.brand-float .brand-logo--hero { height: 88px; display: block; }

/* ====================================================================
   BRAND-FLOAT · fluide positie met één formule voor 1024+
   ---
   Hero left = max(
     clamp(32, 14.5vw-117, 80),    ← tablet-range groeit 32→80 (1024→1352)
     calc(50vw - 596)              ← desktop: centered-grid positie
   )
   Bij 1352 vallen beide samen op 80px; daarboven neemt desktop over.

   Scrolled translateX = (30 - hero_left) → logo eindigt ALTIJD op 30px
   absoluut, ongeacht viewport. Geen iPad Air/mini verschil meer.
   ==================================================================== */
@media (min-width: 768px) {
  .brand-float {
    display: block;
    top: 40px;
    left: max(
      clamp(32px, calc(14.5vw - 117px), 80px),
      calc(50vw - 596px)
    );
  }
  .brand-float .brand-logo--hero { height: 72px; }

  body.is-scrolled .brand-float {
    transform:
      translate(
        calc(
          max(30px, calc(50vw - 666px))   /* target-x: volgt pill-links op desktop */
          -
          max(
            clamp(32px, calc(14.5vw - 117px), 80px),
            calc(50vw - 596px)
          )
        ),
        -22px
      )
      scale(.68);
    filter: invert(1) brightness(1.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  .brand-float { transition: none; animation: none; }
}
.navlink {
  position: relative;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 12.5px; font-weight: 500;
  color: var(--ink-soft);
  transition: color .25s ease, background .25s ease;
  white-space: nowrap;
}
.navlink::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--honey);
  opacity: 0;
  transform: translate(-50%, 4px) scale(.6);
  transition: opacity .3s ease, transform .35s cubic-bezier(.2, .7, .2, 1);
}

/* --- Hero (cream pill) states --- */
.navlink:hover {
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .16);
}
.navlink:hover::after {
  opacity: .7;
  transform: translate(-50%, 0) scale(1);
}
.navlink:focus-visible {
  outline: 2px solid var(--honey);
  outline-offset: 2px;
}

.navlink.is-active {
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .22);
  font-weight: 600;
}
.navlink.is-active::after {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

/* --- Scrolled (dark pill) states --- */
.nav-pill.scrolled .navlink { color: rgba(245, 239, 230, .78); }
.nav-pill.scrolled .navlink:hover {
  color: var(--cream);
  background: rgba(245, 239, 230, .08);
}
.nav-pill.scrolled .navlink:hover::after {
  background: var(--honey-soft);
  opacity: .85;
}
.nav-pill.scrolled .navlink.is-active {
  color: var(--honey-soft);
  background: rgba(228, 179, 99, .12);
  font-weight: 600;
}
.nav-pill.scrolled .navlink.is-active::after {
  background: var(--honey);
  opacity: 1;
}

.btn-book {
  background: var(--bordeaux); color: var(--cream);
  padding: 10px 18px; border-radius: 999px;
  font-size: 13.5px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 8px;
  transition: background .2s, transform .2s;
}
.btn-book:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }
.btn-book .arrow { transition: transform .25s; }
.btn-book:hover .arrow { transform: translate(2px, -2px); }

/* ================= HERO ================= */
.hero {
  position: relative;
  min-height: calc(100vh - 40px);
  color: var(--cream);
  overflow: hidden;
  background: #2e1a0f;
  box-shadow:
    0 40px 80px -40px rgba(30, 20, 10, .45),
    0 10px 30px -15px rgba(30, 20, 10, .25),
    inset 0 0 0 1px rgba(255, 255, 255, .04);
}

.hero-slides {
  position: absolute;
  inset: 0;
}

.hero-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1s ease;
  z-index: 1;
}
.hero-slide.is-active {
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
}

.hero-bg {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.05);
  transition: transform 10s ease-out;
}
.hero-slide.is-active .hero-bg {
  transform: scale(1);              /* langzame "Ken Burns" zoom tijdens actieve slide */
}

/* Per-slide bg-afbeelding */
.hero-slide[data-slide="welkom"]     .hero-bg { background-image: url("../images/hero/hero_bg_1.jpg"); }
.hero-slide[data-slide="vergaderen"] .hero-bg { background-image: url("../images/hero/hero_bg_2.jpg"); }
.hero-slide[data-slide="wijn"]       .hero-bg { background-image: url("../images/hero/hero_bg_3.jpg"); }

/* Leesbaarheidslaag — donker links/onder, licht rechtsboven */
.hero-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    linear-gradient(105deg, rgba(20, 14, 10, .78) 0%, rgba(20, 14, 10, .5) 40%, rgba(20, 14, 10, .15) 75%, transparent 100%),
    linear-gradient(180deg, rgba(20, 14, 10, .35) 0%, transparent 25%, transparent 55%, rgba(20, 14, 10, .55) 100%);
}

.eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 11.5px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--honey-soft);
  padding: 8px 14px;
  border: 1px solid rgba(228, 179, 99, .35);
  border-radius: 999px;
}
.eyebrow .dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .2);
  animation: dotPulse 2.4s ease-in-out infinite;
}
@keyframes dotPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(228, 179, 99, .2); }
  50%      { box-shadow: 0 0 0 7px rgba(228, 179, 99, .08); }
}

.hero-title {
  font-family: 'Fraunces', serif; font-weight: 400;
  font-size: clamp(36px, 4.6vw, 64px);
  line-height: 1.02; letter-spacing: -.018em;
  text-wrap: balance;
}
.hero-title em { font-style: italic; color: var(--honey-soft); font-weight: 400; }

.btn-primary {
  background: var(--honey); color: var(--ink);
  padding: 16px 26px; border-radius: 999px;
  font-size: 14.5px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 10px;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 10px 24px -10px rgba(228, 179, 99, .7);
}
.btn-primary:hover { background: var(--honey-soft); transform: translateY(-1px); }

.btn-ghost {
  color: var(--cream); padding: 16px 22px; border-radius: 999px;
  font-size: 14.5px; font-weight: 500;
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid rgba(245, 239, 230, .45);
  background: rgba(245, 239, 230, .04);
  box-shadow: inset 0 0 0 1px rgba(245, 239, 230, .06);
  transition: background .2s, border-color .2s, transform .2s;
}
.btn-ghost:hover {
  background: rgba(245, 239, 230, .12);
  border-color: rgba(245, 239, 230, .7);
  transform: translateY(-1px);
}

.meta-k { font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: rgba(245, 239, 230, .5); }
.meta-v { font-family: 'Fraunces', serif; font-size: 22px; font-weight: 500; line-height: 1; letter-spacing: -.01em; }

.strip-card {
  background:
    linear-gradient(160deg, #e8d2a3 0%, #d9bc82 100%);
  border: 1px solid rgba(139, 90, 43, .25);
  border-radius: 18px; padding: 20px 22px;
  color: var(--ink);
  box-shadow:
    0 14px 28px -16px rgba(30, 20, 10, .45),
    inset 0 1px 0 rgba(255, 255, 255, .4);
}
.strip-k { font-family: 'Fraunces', serif; font-size: 40px; line-height: 1; color: var(--bordeaux); font-weight: 500; letter-spacing: -.01em; }
.strip-v { font-size: 12.5px; color: var(--ink-soft); margin-top: 8px; line-height: 1.45; }

/* ----- Trust whisper-strip ----- */
.trust-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  margin-top: 22px;
  font-size: 12.5px;
  color: rgba(245, 239, 230, .72);
  letter-spacing: .01em;
}
.trust-stars {
  color: var(--honey);
  letter-spacing: 2px;
  font-size: 13px;
  line-height: 1;
}
.trust-strip b { font-weight: 500; }
.trust-dot {
  display: inline-block;
  width: 3px; height: 3px; border-radius: 50%;
  background: rgba(245, 239, 230, .3);
}

/* ----- Hosts signature ----- */
.hosts-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px dashed rgba(245, 239, 230, .18);
  max-width: 440px;
}
.hosts-stack { display: flex; }
.hosts-avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  display: grid; place-items: center;
  font-family: 'Fraunces', serif;
  font-size: 14px; font-weight: 500;
  color: var(--cream);
  border: 2px solid #2e1a0f;
  margin-left: -12px;
  box-shadow: 0 4px 10px -4px rgba(0, 0, 0, .4);
}
.hosts-avatar:first-child { margin-left: 0; }
.hosts-avatar.a-frank { background: linear-gradient(135deg, #6b2034, #3d0f1c); }
.hosts-avatar.a-merel { background: linear-gradient(135deg, #9c6838, #5a3d2a); }
.hosts-text {
  font-size: 12.5px;
  color: rgba(245, 239, 230, .68);
  line-height: 1.45;
}
.hosts-text b {
  display: block;
  color: var(--cream);
  font-family: 'Fraunces', serif;
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: -.005em;
  margin-bottom: 2px;
}

/* ----- Staggered reveal — triggert per slide als ie actief wordt ----- */
.hero-stagger > * {
  opacity: 0;
  transform: translateY(16px);
}
.hero-slide.is-active .hero-stagger > * {
  animation: heroIn .9s cubic-bezier(.2, .7, .2, 1) forwards;
}
.hero-slide.is-active .hero-stagger > *:nth-child(1) { animation-delay: .15s; }
.hero-slide.is-active .hero-stagger > *:nth-child(2) { animation-delay: .30s; }
.hero-slide.is-active .hero-stagger > *:nth-child(3) { animation-delay: .45s; }
.hero-slide.is-active .hero-stagger > *:nth-child(4) { animation-delay: .60s; }
.hero-slide.is-active .hero-stagger > *:nth-child(5) { animation-delay: .75s; }
@keyframes heroIn {
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-stagger > * { animation: none; opacity: 1; transform: none; }
  .hero-slide .hero-bg { transition: none; transform: none; }
}

/* ================= HERO SLIDER CONTROLS — editorial ================= */
.hero-slider-ctrl {
  position: absolute;
  left: 40px;                    /* mobile: aligned met px-6 + mx-4 */
  bottom: 34px;
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 26px;
  color: rgba(255, 255, 255, .92);
  text-shadow: 0 2px 12px rgba(0, 0, 0, .4);
}
@media (min-width: 768px) {
  .hero-slider-ctrl { left: 64px; }          /* md:px-12 */
}
@media (min-width: 1024px) {
  .hero-slider-ctrl { left: 80px; }          /* lg:px-16 */
}
@media (min-width: 1352px) {
  .hero-slider-ctrl { left: calc(50vw - 596px); }  /* centered max-w-1320 content */
}

/* Counter — Fraunces */
.hero-sc-counter {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: 'Fraunces', serif;
  font-weight: 400;
  letter-spacing: -.01em;
}
.hero-sc-current {
  font-size: 32px;
  color: #fff;
  font-feature-settings: "tnum";           /* tabular digits zodat 01→02 niet "springt" */
}
.hero-sc-sep {
  font-size: 18px;
  color: rgba(255, 255, 255, .35);
  padding: 0 2px;
}
.hero-sc-total {
  font-size: 16px;
  color: rgba(255, 255, 255, .55);
  font-feature-settings: "tnum";
}

/* Dunne progress-bars */
.hero-sc-progress {
  display: flex;
  align-items: center;
  gap: 6px;
}
.hero-sc-bar {
  position: relative;
  display: block;
  width: 40px;
  height: 1.5px;
  padding: 0;
  border: none;
  background: rgba(255, 255, 255, .25);
  overflow: hidden;
  cursor: pointer;
  transition: width .55s cubic-bezier(.2, .7, .2, 1), background .3s ease;
}
.hero-sc-bar:hover { background: rgba(255, 255, 255, .45); }
.hero-sc-bar.is-active {
  width: 80px;
  background: rgba(255, 255, 255, .22);
}
.hero-sc-bar > span {
  position: absolute;
  inset: 0;
  background: var(--honey);                /* #e4b363 honey accent */
  transform-origin: left;
  transform: scaleX(0);
}
.hero-sc-bar.is-active > span {
  animation: heroProgress var(--slide-duration, 8s) linear forwards;
}
.hero-slider-ctrl.is-paused .hero-sc-bar.is-active > span {
  animation-play-state: paused;
}
@keyframes heroProgress {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* Minimal nav-arrows — geen cirkel */
.hero-sc-nav {
  display: flex;
  align-items: center;
  gap: 18px;
}
.hero-sc-btn {
  background: none;
  border: none;
  padding: 6px 2px;
  color: rgba(255, 255, 255, .6);
  cursor: pointer;
  line-height: 0;
  transition: color .25s ease, transform .25s ease;
}
.hero-sc-btn:hover {
  color: var(--honey);
  transform: translateX(1px);
}
.hero-sc-btn:first-child:hover { transform: translateX(-2px); }
.hero-sc-btn:last-child:hover  { transform: translateX(2px); }

@media (max-width: 640px) {
  .hero-slider-ctrl {
    bottom: 24px;
    gap: 16px;
  }
  .hero-sc-current { font-size: 26px; }
  .hero-sc-sep    { font-size: 15px; }
  .hero-sc-total  { font-size: 14px; }
  .hero-sc-bar         { width: 28px; }
  .hero-sc-bar.is-active { width: 48px; }
  .hero-sc-nav    { gap: 12px; }
}

/* Scroll hint — muis-symbool met vallend puntje */
.scroll-cue {
  position: absolute; bottom: 34px; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  color: rgba(255, 255, 255, .92);
  font-size: 11px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
  z-index: 5;
  pointer-events: none;
}
.scroll-cue-mouse {
  position: relative;
  width: 26px; height: 44px;
  border: 1.5px solid rgba(255, 255, 255, .75);
  border-radius: 999px;
  background: rgba(255, 255, 255, .05);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
}
.scroll-cue-mouse::before {
  content: "";
  position: absolute;
  left: 50%; top: 8px;
  width: 3px; height: 8px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 0 8px rgba(255, 255, 255, .7);
  transform: translateX(-50%);
  animation: scrollDotFall 1.8s cubic-bezier(.65, 0, .35, 1) infinite;
}
@keyframes scrollDotFall {
  0%      { transform: translate(-50%, 0);    opacity: 0; }
  15%     { opacity: 1; }
  60%     { transform: translate(-50%, 20px); opacity: 0; }
  100%    { transform: translate(-50%, 20px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-cue-mouse::before { animation: none; }
}

/* ================= SECTION BASE ================= */
.sec-eyebrow {
  font-size: 11px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--bordeaux);
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 16px; font-weight: 500;
}
.sec-eyebrow::before { content: ""; width: 24px; height: 1px; background: var(--bordeaux); }

.sec-title {
  font-family: 'Fraunces', serif; font-weight: 400;
  font-size: clamp(36px, 4.4vw, 60px); line-height: 1.02; letter-spacing: -.02em;
  max-width: 680px; text-wrap: balance; color: var(--ink);
}
.sec-title em { font-style: italic; color: var(--bordeaux); }
.sec-lede { max-width: 440px; font-size: 15.5px; line-height: 1.6; color: var(--ink-soft); }

/* ================= OVER ONS — editorial card-overlay =================
   Foto zit links-onder, cream card zweeft over de rechterbovenhoek.
   De rechter- en onderrand van de foto faden naar de cream-kleur van de card,
   zodat de overgang naadloos voelt. */
.over-stage {
  position: relative;
  display: flex;
  flex-direction: column;
}

@media (min-width: 1024px) {
  .over-stage {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    align-items: start;
  }
  .over-stage > .over-visual,
  .over-stage > .over-card {
    grid-column: 1;
    grid-row: 1;
  }
}

.over-visual {
  position: relative;
  border-radius: 32px;
  overflow: hidden;
  aspect-ratio: 4/5;
  /* Scherpe foto — alleen een lichte donkere vignet onderaan zodat
     de witte "28 jaar"-stempel leesbaar blijft */
  background-image:
    linear-gradient(180deg, transparent 55%, rgba(20, 12, 6, .45) 100%),
    url("../images/foto_section_2.jpg");
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
  box-shadow: 0 30px 50px -30px rgba(30, 20, 10, .5);
}
@media (min-width: 1024px) {
  .over-visual {
    width: 48%;
    justify-self: start;
    margin-top: 0;
    margin-left: 4%;  /* van de linkerrand gehaald, richting midden */
    z-index: 1;
  }
}
@media (min-width: 1280px) {
  .over-visual { width: 46%; margin-left: 6%; }
}

.over-visual .grain {
  position: absolute; inset: 0;
  background:
    radial-gradient(500px 300px at 30% 20%, rgba(255, 220, 160, .12), transparent 60%),
    repeating-linear-gradient(90deg, rgba(0, 0, 0, .04) 0 1px, transparent 1px 22px);
  pointer-events: none;
  z-index: 1;
}
.over-visual .stamp {
  position: absolute; top: 24px; left: 24px; right: 24px;
  display: flex; justify-content: space-between;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 10.5px; letter-spacing: .1em; color: rgba(250, 246, 238, .95);
  text-shadow: 0 1px 3px rgba(20, 12, 6, .55);
  z-index: 2;
}
.over-visual .year {
  position: absolute; bottom: 32px; left: 32px;
  font-family: 'Fraunces', serif; font-size: 84px; font-weight: 400;
  line-height: .9; color: var(--cream); font-style: italic; letter-spacing: -.02em;
  z-index: 2;
}
.over-visual .year small {
  display: block; font-family: 'Inter', sans-serif; font-style: normal;
  font-size: 11px; letter-spacing: .24em; text-transform: uppercase;
  color: rgba(250, 246, 238, .7); font-weight: 500; margin-top: 14px;
}

/* Card: slank cream-wit paneel met strakke, gedefinieerde edges.
   Subtiele zachte schaduw zorgt voor diepte tov de scherpe foto. */
.over-card {
  position: relative;
  background: var(--cream);
  border-radius: 32px;
  padding: 36px 28px;
  margin-top: -48px;
  z-index: 2;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.10);
}
@media (min-width: 1024px) {
  .over-card {
    width: 42%;
    justify-self: end;
    align-self: start;
    margin-top: 90px;
    margin-right: 4%;          /* van de rechterrand gehaald, richting midden */
    padding: 48px 44px;
  }
}
@media (min-width: 1280px) {
  .over-card {
    width: 40%;
    margin-right: 6%;
    padding: 52px;
  }
}

/* Binnen de card: compactere sec-title, strakke linker-uitlijning */
.over-card .sec-title {
  font-size: clamp(30px, 2.8vw, 44px);
  margin-bottom: 22px;
  max-width: 100%;
}

.over-lede {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 16.5px; line-height: 1.65;
  color: var(--ink);
  font-weight: 500;
  margin: 0 0 24px;
}

.over-quote {
  position: relative;
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-style: italic;
  font-size: clamp(22px, 2.1vw, 28px);
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--honey);
  padding: 22px 0 22px 20px;
  margin: 8px 0 24px;
  border-left: 3px solid var(--honey);
  text-wrap: pretty;
}
.over-quote-mark {
  font-family: 'Fraunces', Georgia, serif;
  font-style: normal;
  font-size: 1.2em;
  line-height: 1;
  color: var(--honey-soft);
  vertical-align: -0.06em;
}
.over-quote-mark--end { margin-left: 2px; }

.over-p {
  font-size: 15.5px; line-height: 1.7;
  color: var(--ink-soft);
  margin: 0 0 14px;
}
.over-p:last-of-type { margin-bottom: 0; }

.over-signature-block {
  display: flex; align-items: flex-end; gap: 20px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.over-signature {
  font-family: 'Parisienne', 'Dancing Script', cursive;
  font-weight: 400;
  font-size: 46px;
  line-height: 1;
  color: var(--bordeaux);
  letter-spacing: -0.01em;
  transform: translateY(4px);
}
.over-signature-sub {
  font-size: 12px; line-height: 1.45;
  color: var(--muted);
  padding-bottom: 4px;
}
.over-signature-sub b {
  display: block;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  margin-bottom: 2px;
}

/* ================= TOUR ================= */
.tour-section {
  background: linear-gradient(180deg, #2d3a2a 0%, #1e2a1d 100%);
  color: var(--cream);
}
.tour-section .sec-eyebrow { color: var(--honey-soft); }
.tour-section .sec-eyebrow::before { background: var(--honey-soft); }
.tour-section .sec-title { color: var(--cream); }
.tour-section .sec-title em { color: var(--honey-soft); }
.tour-section .sec-lede { color: rgba(245, 239, 230, .72); }

.stop {
  background: rgba(245, 239, 230, .04);
  border: 1px solid rgba(245, 239, 230, .1);
  border-radius: 22px; padding: 26px 24px;
  display: flex; flex-direction: column; gap: 14px;
  transition: transform .3s ease, background .3s, border-color .3s;
  position: relative; overflow: hidden;
}
.stop:hover {
  background: rgba(245, 239, 230, .07);
  transform: translateY(-4px);
  border-color: rgba(228, 179, 99, .35);
}
.stop-num {
  font-family: 'Fraunces', serif; font-size: 13px; color: var(--honey-soft);
  letter-spacing: .1em; font-weight: 500;
  display: flex; align-items: center; gap: 10px;
}
.stop-num::after { content: ""; height: 1px; flex: 1; background: rgba(245, 239, 230, .15); }
.stop-title {
  font-family: 'Fraunces', serif; font-size: 24px; font-weight: 500;
  line-height: 1.1; letter-spacing: -.01em; margin-top: 8px;
}
.stop-desc { font-size: 13.5px; color: rgba(245, 239, 230, .7); line-height: 1.55; text-wrap: pretty; }
.stop-time {
  margin-top: auto; padding-top: 16px;
  border-top: 1px solid rgba(245, 239, 230, .1);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase;
  color: rgba(245, 239, 230, .45);
}
.stop-icon {
  width: 44px; height: 44px; border-radius: 12px;
  background: rgba(228, 179, 99, .12);
  border: 1px solid rgba(228, 179, 99, .25);
  display: grid; place-items: center; color: var(--honey-soft);
}

/* ================= PROEVERIJ — product card ================= */
.product-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 0;
  border-radius: 28px;
  overflow: hidden;
  background: var(--paper);
  border: 1px solid var(--line-soft);
  box-shadow: 0 24px 50px -28px rgba(30, 20, 10, .2);
}

.product-visual {
  position: relative;
  min-height: 580px;
  background: #2e1a0f;
  overflow: hidden;
}
.product-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.product-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 12, 6, .05) 0%, rgba(20, 12, 6, .55) 100%);
  pointer-events: none;
}

.product-badge {
  position: absolute;
  top: 24px; left: 24px;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px 10px 12px;
  border-radius: 999px;
  background: rgba(250, 246, 238, .94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, .35);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .25);
  color: var(--ink);
}
.product-badge-dot {
  width: 9px; height: 9px;
  border-radius: 50%;
  background: var(--bordeaux);
  box-shadow: 0 0 0 3px rgba(61, 43, 31, .2);
  flex-shrink: 0;
}
.product-badge-k {
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1;
  margin-bottom: 3px;
  font-weight: 500;
}
.product-badge-v {
  font-family: 'Fraunces', serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1;
}

.product-corner {
  position: absolute;
  bottom: 24px; left: 24px; right: 24px;
  z-index: 2;
  display: flex; flex-direction: column;
  padding: 18px 20px;
  border-radius: 14px;
  background: rgba(20, 14, 10, .55);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(245, 239, 230, .1);
  color: var(--cream);
}
.product-corner-eyebrow {
  font-size: 10.5px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--honey-soft);
  margin-bottom: 10px;
  font-weight: 500;
}
.product-corner-quote {
  font-family: 'Fraunces', serif;
  font-style: italic;
  font-size: 16px;
  line-height: 1.4;
  text-wrap: pretty;
}
.product-corner-meta {
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .6);
  margin-top: 10px;
}

.product-body {
  padding: 48px 44px;
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.product-eyebrow {
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--bordeaux);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.product-eyebrow::before {
  content: "";
  width: 24px; height: 1px;
  background: var(--bordeaux);
}

.product-title {
  font-family: 'Fraunces', serif;
  font-size: clamp(32px, 3.2vw, 44px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
  color: var(--ink);
}
.product-title em {
  font-style: italic;
  color: var(--bordeaux);
}

.product-desc {
  font-size: 15.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 460px;
  text-wrap: pretty;
}

.product-features {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 22px 0;
  border-top: 1px dashed var(--line-soft);
  border-bottom: 1px dashed var(--line-soft);
}
.product-feature {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
  color: var(--ink-soft);
}
.product-feature svg {
  color: var(--bordeaux);
  flex-shrink: 0;
}

/* Variant toggle */
.product-variations {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.product-var-label {
  font-size: 10.5px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.product-var-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 5px;
  background: var(--cream);
  border-radius: 16px;
  border: 1px solid var(--line-soft);
}
.product-var {
  padding: 14px 18px;
  background: transparent;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  text-align: left;
  color: var(--ink);
  transition: background .25s ease, box-shadow .25s ease, transform .2s ease;
}
.product-var:hover {
  background: rgba(26, 20, 16, .03);
}
.product-var.is-active {
  background: var(--paper);
  box-shadow:
    0 6px 16px -8px rgba(30, 20, 10, .22),
    0 0 0 1.5px var(--honey);
}
.product-var-name {
  display: block;
  font-family: 'Fraunces', serif;
  font-size: 15.5px;
  font-weight: 500;
  letter-spacing: -.01em;
  line-height: 1;
  margin-bottom: 4px;
}
.product-var-sub {
  display: block;
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.35;
}

.product-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  gap: 16px;
  flex-wrap: wrap;
}
.product-price-label {
  display: block;
  font-size: 10.5px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 5px;
  font-weight: 500;
}
.product-price-value {
  font-family: 'Fraunces', serif;
  font-size: 34px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -.015em;
  color: var(--ink);
  transition: opacity .25s ease;
}
.product-price-value small {
  font-size: 18px;
  font-weight: 400;
  margin-left: 0;
  opacity: .7;
}

@media (max-width: 1024px) {
  .product-card { grid-template-columns: 1fr; }
  .product-visual { min-height: 420px; }
  .product-body { padding: 40px 32px; }
}

@media (max-width: 640px) {
  .product-visual { min-height: 320px; }
  .product-corner { left: 16px; right: 16px; bottom: 16px; padding: 14px 16px; }
  .product-corner-quote { font-size: 14.5px; }
  .product-body { padding: 32px 24px; gap: 22px; }
  .product-var-options { grid-template-columns: 1fr; }
  .product-footer { flex-direction: column; align-items: stretch; }
  .product-footer .btn-primary { justify-content: center; }
}

/* ================= GALLERY ================= */
.slider {
  position: relative; overflow: hidden; border-radius: 24px;
  background: var(--ink);
}
.slider-track { display: flex; transition: transform .6s cubic-bezier(.4, 0, .2, 1); }
.slide { flex: 0 0 100%; height: 540px; position: relative; overflow: hidden; }
.slide .img { position: absolute; inset: 0; }

.slide .img {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.slide-1 .img {
  /* Wijngaard bij gouden uur */
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .15) 0%, rgba(20, 12, 6, .55) 100%),
    url("https://images.unsplash.com/photo-1506377247377-2a5b3b417ebb?w=1600&q=85&auto=format&fit=crop");
}
.slide-2 .img {
  /* Barrique kelder — eiken vaten */
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .25) 0%, rgba(20, 12, 6, .6) 100%),
    url("https://images.unsplash.com/photo-1505252585461-04db1eb84625?w=1600&q=85&auto=format&fit=crop");
}
.slide-3 .img {
  /* Lange houten tafel met glazen wijn */
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .15) 0%, rgba(20, 12, 6, .55) 100%),
    url("https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1600&q=85&auto=format&fit=crop");
}
.slide-4 .img {
  /* Boomgaard / natuur — boerenerf sfeer */
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .2) 0%, rgba(20, 12, 6, .6) 100%),
    url("https://images.unsplash.com/photo-1509319117193-57bab727e09d?w=1600&q=85&auto=format&fit=crop");
}

.slide-overlay {
  position: absolute; inset: 0;
  display: flex; align-items: end; justify-content: space-between;
  padding: 40px 40px 108px; color: var(--cream);
  background: linear-gradient(180deg, transparent 40%, rgba(0, 0, 0, .55) 100%);
}
@media (max-width: 640px) {
  .slide-overlay { padding: 28px 28px 96px; }
}
.slide-eyebrow {
  font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase;
  color: var(--honey-soft); margin-bottom: 12px;
}
.slide-title {
  font-family: 'Fraunces', serif; font-size: 42px; line-height: 1;
  font-weight: 400; letter-spacing: -.02em; text-wrap: balance;
}
.slide-title em { font-style: italic; color: var(--honey-soft); }

.s-btn {
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(250, 246, 238, .12);
  border: 1px solid rgba(250, 246, 238, .25);
  color: var(--cream);
  display: grid; place-items: center;
  transition: background .2s, transform .2s;
  backdrop-filter: blur(6px);
}
.s-btn:hover { background: rgba(250, 246, 238, .22); transform: scale(1.05); }
.dot {
  width: 24px; height: 3px; background: rgba(250, 246, 238, .3);
  border-radius: 2px; transition: background .25s, width .25s;
  cursor: pointer;
}
.dot.active { background: var(--honey); width: 40px; }

/* ================= REVIEWS — editorial, island cards ================= */
.reviews-head {
  display: flex; flex-wrap: wrap; align-items: end;
  justify-content: space-between; gap: 48px;
  margin-bottom: 72px;
}
.reviews-head-left { flex: 1 1 520px; min-width: 0; }

.reviews-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(40px, 5vw, 72px);
  line-height: 1;
  letter-spacing: -0.025em;
  color: var(--ink);
  max-width: 820px;
  text-wrap: balance;
}
/* Override: "langer" krijgt honey-kleur binnen de reviews-titel */
.reviews-title em {
  font-style: italic;
  color: var(--honey);
}

.reviews-rating {
  display: flex; align-items: center; gap: 22px;
  flex-shrink: 0;
}
.reviews-rating-score {
  display: flex; align-items: center; gap: 14px;
  padding-right: 22px;
  border-right: 1px solid rgba(139, 90, 43, .2);
}
.reviews-rating-star {
  width: 68px; height: 68px;
  fill: var(--honey);
  filter: drop-shadow(0 6px 14px rgba(228, 179, 99, .35));
}
.reviews-rating-num {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 64px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.reviews-rating-meta {
  display: flex; flex-direction: column; gap: 4px;
  max-width: 220px;
}
.reviews-rating-count {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.reviews-rating-sources {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--ink-soft);
  font-weight: 500;
  letter-spacing: 0.01em;
}

@media (max-width: 767px) {
  .reviews-head { margin-bottom: 44px; gap: 28px; }
  .reviews-rating { gap: 16px; }
  .reviews-rating-score { padding-right: 16px; gap: 10px; }
  .reviews-rating-star { width: 52px; height: 52px; }
  .reviews-rating-num { font-size: 48px; }
}

/* Review cards grid — 3 koloms op desktop */
.reviews-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .reviews-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .reviews-grid { grid-template-columns: repeat(3, 1fr); } }

.review {
  /* Bg fractie lichter dan sectie (#ede3d1 cream-warm) → paper #faf6ee */
  background: var(--paper);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 34px 30px;
  display: flex; flex-direction: column; gap: 18px;
  min-height: 280px;
  box-shadow: 0 8px 24px -18px rgba(30, 20, 10, .18);
  transition: transform .3s ease, box-shadow .3s ease;
}
.review:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -20px rgba(30, 20, 10, .22);
}

.stars { display: flex; gap: 3px; color: var(--honey); }
.stars svg { width: 16px; height: 16px; fill: currentColor; }

.rev-text {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 19px; line-height: 1.45;
  color: var(--ink); text-wrap: pretty; font-weight: 400;
  flex: 1;
}

.review-foot {
  display: flex; align-items: center; gap: 14px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(139, 90, 43, .12);
}
.avatar {
  width: 42px; height: 42px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px; color: var(--cream); font-weight: 500;
  flex-shrink: 0;
}
.review-who { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.review-name {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px; font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  line-height: 1.2;
}
.review-meta {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  color: var(--muted);
}
.review-source {
  display: inline-flex; align-items: center; gap: 5px;
  font-weight: 500;
  color: var(--ink-soft);
}
.review-source svg {
  color: var(--walnut);
}
.review-dot {
  width: 3px; height: 3px; border-radius: 50%;
  background: rgba(139, 90, 43, .4);
  flex-shrink: 0;
}
.review-date {
  font-size: 11.5px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}

/* ================= BOOKING ================= */
.booking-wrap {
  border-radius: 28px; overflow: hidden;
  background:
    radial-gradient(600px 300px at 20% 0%, rgba(228, 179, 99, .22), transparent 60%),
    linear-gradient(160deg, #1a100a 0%, #3d2b1f 55%, #5a3d2a 100%);
  color: var(--cream);
  display: grid; grid-template-columns: 1fr 1fr; min-height: 540px;
}
.book-left {
  padding: 64px 56px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
}
.book-left h3 {
  font-family: 'Fraunces', serif; font-size: clamp(40px, 4vw, 58px);
  font-weight: 400; line-height: 1; letter-spacing: -.02em; text-wrap: balance;
}
.book-left h3 em { font-style: italic; color: var(--honey-soft); }
.bbullet { display: flex; align-items: center; gap: 14px; font-size: 14px; color: rgba(245, 239, 230, .85); }
.bbullet::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--honey); flex-shrink: 0; }

.book-right {
  padding: 48px;
  background: rgba(245, 239, 230, .04);
  border-left: 1px solid rgba(245, 239, 230, .08);
  display: flex; flex-direction: column; gap: 18px;
}
.fbox {
  background: rgba(245, 239, 230, .06);
  border: 1px solid rgba(245, 239, 230, .14);
  border-radius: 12px; padding: 13px 16px;
  color: var(--cream); font-size: 14px; font-family: inherit;
  transition: border-color .2s, background .2s;
  cursor: pointer; width: 100%;
}
.fbox:hover { border-color: rgba(228, 179, 99, .4); background: rgba(245, 239, 230, .08); }
.fbox:focus { outline: none; border-color: var(--honey); }
.fbox option { background: var(--ink); color: var(--cream); }

.date-chip {
  flex: 1; min-width: 70px; padding: 12px 10px; border-radius: 12px; text-align: center;
  background: rgba(245, 239, 230, .05);
  border: 1px solid rgba(245, 239, 230, .12);
  transition: all .2s; cursor: pointer; color: inherit;
}
.date-chip:hover { background: rgba(245, 239, 230, .1); }
.date-chip.active { background: var(--honey); color: var(--ink); border-color: var(--honey); }
.date-day { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; opacity: .6; margin-bottom: 4px; }
.date-num { font-family: 'Fraunces', serif; font-size: 20px; font-weight: 500; line-height: 1; }
.date-chip.active .date-day { opacity: .75; color: var(--ink); }

.book-submit {
  background: var(--honey); color: var(--ink);
  padding: 16px; border-radius: 14px; font-weight: 600; font-size: 14.5px;
  display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 8px;
  transition: background .2s, transform .2s;
  width: 100%; border: none; cursor: pointer;
}
.book-submit:hover { background: var(--honey-soft); transform: translateY(-1px); }

/* ================= LOCATIE — Google Maps embed ================= */
.map-box {
  position: relative;
  border-radius: 24px;
  overflow: hidden;
  min-height: 440px;
  background: var(--cream-warm);
  border: 1px solid rgba(139, 90, 43, .12);
  box-shadow:
    0 20px 40px -24px rgba(30, 20, 10, .2),
    0 6px 14px -10px rgba(30, 20, 10, .1);
}
.map-iframe {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  border: 0;
  display: block;
  filter: saturate(1.05) contrast(1.02);
}
.map-open {
  position: absolute;
  bottom: 18px; left: 18px;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: rgba(26, 20, 16, .88);
  color: var(--cream);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.005em;
  text-decoration: none;
  box-shadow: 0 8px 20px -10px rgba(20, 12, 6, .45);
  transition: background .2s, transform .2s, gap .2s;
}
.map-open:hover {
  background: var(--bordeaux);
  transform: translateY(-1px);
  gap: 10px;
}

.loc-phone {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.loc-phone:hover { color: var(--bordeaux); }

.loc-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 26px 28px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
.loc-k {
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.loc-k::before { content: ""; width: 20px; height: 1px; background: var(--muted); }
.loc-v {
  font-family: 'Fraunces', serif; font-size: 22px; font-weight: 500;
  line-height: 1.3; letter-spacing: -.01em;
}
.loc-v small {
  display: block; font-family: 'Inter', sans-serif; font-size: 14px;
  font-weight: 400; color: var(--ink-soft); margin-top: 4px; letter-spacing: 0;
}
.hr-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 10px 12px;
  margin: 0 -12px;
  border-bottom: 1px dashed var(--line-soft);
  font-size: 14px;
  border-radius: 12px;
  transition: background .25s ease;
}
.hr-row:last-child { border-bottom: none; }
.hr-row b {
  font-family: 'Fraunces', serif;
  font-weight: 500;
  display: inline-flex; align-items: center;
  gap: 10px;
}
.hr-row span { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.hr-row.closed span { color: var(--bordeaux); font-style: italic; }

/* Vandaag-highlight: zachte honey tint + pulserende dot + badge */
.hr-row.today {
  background: linear-gradient(90deg, rgba(228, 179, 99, .18) 0%, rgba(228, 179, 99, .06) 100%);
  border-bottom-color: transparent;
  border-bottom-style: solid;
}
.hr-row.today + .hr-row { border-top: 1px dashed var(--line-soft); margin-top: -1px; }
.hr-row.today b {
  color: var(--ink);
  font-weight: 600;
}
.hr-row.today b::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 0 rgba(228, 179, 99, .7);
  animation: todayPulse 2.2s ease-out infinite;
}
.hr-row.today span {
  color: var(--bordeaux);
  font-weight: 600;
}

.hr-today-badge {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .35);
  padding: 2px 8px;
  border-radius: 999px;
  line-height: 1;
  margin-left: 2px;
}

@keyframes todayPulse {
  0%   { box-shadow: 0 0 0 0 rgba(228, 179, 99, .7); }
  70%  { box-shadow: 0 0 0 10px rgba(228, 179, 99, 0); }
  100% { box-shadow: 0 0 0 0 rgba(228, 179, 99, 0); }
}
@media (prefers-reduced-motion: reduce) {
  .hr-row.today b::before { animation: none; }
}

/* ================= FOOTER ================= */
.foot-col a {
  display: block; padding: 5px 0; font-size: 13.5px;
  color: rgba(245, 239, 230, .7); transition: color .2s;
}
.foot-col a:hover { color: var(--honey); }

/* ================= RESPONSIVE ================= */
@media (max-width: 1024px) {
  .proev-wrap { grid-template-columns: 1fr; }
  .booking-wrap { grid-template-columns: 1fr; }
  .book-left { padding: 48px 32px; }
  .book-right { border-left: none; border-top: 1px solid rgba(245, 239, 230, .08); padding: 40px 32px; }
}

@media (max-width: 1024px) {
  .hero-meta-strip { gap: 20px 28px; }
  .scroll-cue { display: none; }
}

@media (max-width: 768px) {
  .hero-scrim {
    background:
      linear-gradient(180deg, rgba(20, 14, 10, .45) 0%, rgba(20, 14, 10, .35) 35%, rgba(20, 14, 10, .75) 100%);
  }
  .trust-strip { font-size: 12px; }
  .slide { height: 440px; }
  .slide-title { font-size: 30px; }
  .proev-visual { min-height: 360px; padding: 32px; }
  .proev-glass { width: 220px; height: 320px; right: -60px; }
}


/* ================= NAV · CART PILL (floating mini-pill) =================
   Dezelfde visuele taal als .nav-pill: rounded, blur, subtle border.
   Volgt dezelfde top/kleur-transitie tussen hero en scrolled state. */
.nav-cart-pill {
  top: 56px;
  right: 16px;
  width: 56px;
  height: 56px;
  background: rgba(250, 246, 238, .72);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  border: 1px solid var(--line-soft);
  color: var(--ink);
  padding: 6px;
  box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
  transition:
    top             .55s cubic-bezier(.2, .7, .2, 1),
    right           .6s  cubic-bezier(.2, .7, .2, 1),
    width           .6s  cubic-bezier(.2, .7, .2, 1),
    height          .6s  cubic-bezier(.2, .7, .2, 1),
    padding         .6s  cubic-bezier(.2, .7, .2, 1),
    background      .4s  ease,
    border-color    .4s  ease,
    color           .4s  ease,
    box-shadow      .4s  ease,
    backdrop-filter .4s  ease;
}

/* Hero-state op brede schermen: staat direct rechts van de nav-pill
   (nav-pill max-width 890 + translateX 81 → ~34px gap tussen beide pillen) */
@media (min-width: 1352px) {
  .nav-cart-pill {
    right: calc((100vw - 1360px) / 2 + 64px);
  }
}

/* Tablet / kleine laptop: cart-pill staat direct rechts van de compacte
   nav-pill (net zoals desktop), maar met kleinere offset. */
@media (min-width: 1024px) and (max-width: 1351px) {
  .nav-cart-pill {
    right: max(16px, calc(50vw - 506px));
  }
}

/* Scrolled: glijdt IN de donkere hoofd-pill, links van de Reserveren-knop.
   Subtiel: alleen cream icoon, geen eigen achtergrond/border — alle aandacht
   naar btn-book. */
body.is-scrolled .nav-cart-pill {
  top: 26px;
  right: 178px;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-color: transparent;
  color: var(--cream);
  box-shadow: none;
}

@media (min-width: 1392px) {
  body.is-scrolled .nav-cart-pill {
    right: calc((100vw - 1360px) / 2 + 162px);
  }
}

@media (max-width: 1023px) {
  .nav-cart-pill                  { top: 40px; right: 16px; }
  body.is-scrolled .nav-cart-pill { top: 22px; right: 168px; }
}
@media (max-width: 640px) {
  .nav-cart-pill                  { top: 16px; width: 46px; height: 46px; }
  body.is-scrolled .nav-cart-pill { top: 18px; right: 146px; width: 40px; height: 40px; }
}

.cart-pill-btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  border-radius: 999px;
  background: transparent;
  color: inherit;
  border: 0;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.cart-pill-btn:hover { background: rgba(26, 20, 16, .06); }
.cart-pill-btn.is-open { background: var(--bordeaux); color: var(--cream); }

/* Subtiel in scrolled state — minimalistisch, geen opvallende cirkel */
body.is-scrolled .cart-pill-btn { background: transparent; color: var(--cream); }
body.is-scrolled .cart-pill-btn:hover { background: rgba(245, 239, 230, .08); color: var(--cream); }
body.is-scrolled .cart-pill-btn.is-open { background: rgba(245, 239, 230, .12); color: var(--honey-soft); }

/* Subtiele divider tussen winkelmandje en Reserveren-knop in scrolled state */
.nav-cart-pill::after {
  content: "";
  position: absolute;
  right: -16px;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 0;
  background: rgba(245, 239, 230, .18);
  opacity: 0;
  transition: height .45s ease .1s, opacity .35s ease;
  pointer-events: none;
}
body.is-scrolled .nav-cart-pill::after {
  height: 22px;
  opacity: 1;
}
@media (max-width: 1023px) {
  .nav-cart-pill::after { display: none; }
}

.cart-pill-ico { display: block; }

.cart-pill-count {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 18px; height: 18px; padding: 0 5px;
  border-radius: 999px;
  background: var(--honey); color: var(--ink);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px; font-weight: 600;
  line-height: 18px; text-align: center;
  box-shadow: 0 2px 6px rgba(30, 20, 10, .25);
}

/* ================= CART PANEL (dropdown) ================= */
.cart-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: min(360px, 92vw);
  background: var(--paper);
  border: 1px solid rgba(26, 20, 16, .08);
  border-radius: 20px;
  box-shadow:
    0 30px 60px -20px rgba(30, 20, 10, .25),
    0 8px 20px -10px rgba(30, 20, 10, .15);
  padding: 18px;
  z-index: 60;
  color: var(--ink);
}

.cart-panel-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 12px; margin-bottom: 12px;
  border-bottom: 1px solid rgba(26, 20, 16, .08);
}
.cart-panel-eyebrow {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px; font-weight: 500; letter-spacing: -0.01em;
  color: var(--ink);
}
.cart-panel-count-label {
  font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--muted);
}

.cart-panel-empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 20px 10px 14px;
  color: var(--muted);
  font-size: 13.5px;
}
.cart-panel-empty svg { color: rgba(26, 20, 16, .25); }

.cart-panel-items {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 12px;
  max-height: 320px; overflow-y: auto;
}
.cart-item {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 12px;
}
.cart-item-thumb {
  width: 44px; height: 44px;
  border-radius: 10px;
  background: var(--cream);
  overflow: hidden;
  display: grid; place-items: center;
  font-size: 18px;
  flex-shrink: 0;
}
.cart-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cart-item-name {
  display: block;
  font-size: 13.5px; font-weight: 500;
  color: var(--ink);
  line-height: 1.3;
  text-decoration: none;
  transition: color .2s;
}
.cart-item-name:hover { color: var(--bordeaux); }
.cart-item-meta {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 2px;
  display: flex; gap: 6px;
}
.cart-item-total {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12.5px;
  color: var(--ink);
  white-space: nowrap;
}

.cart-panel-totals {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 14px; margin-top: 14px;
  border-top: 1px solid rgba(26, 20, 16, .08);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 16px; font-weight: 500;
}
.cart-panel-totals > span:last-child { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 14.5px; }

.cart-panel-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 14px;
}
.cart-panel-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 11px 14px;
  border-radius: 999px;
  font-size: 13px; font-weight: 500;
  text-decoration: none;
  transition: background .2s, color .2s, transform .2s;
}
.cart-panel-btn--ghost {
  background: transparent;
  color: var(--ink);
  border: 1px solid rgba(26, 20, 16, .12);
}
.cart-panel-btn--ghost:hover { background: rgba(26, 20, 16, .04); }
.cart-panel-btn--primary {
  background: var(--bordeaux);
  color: var(--cream);
}
.cart-panel-btn--primary:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }

@media (max-width: 640px) {
  .cart-panel { right: -4px; width: calc(100vw - 32px); }
}

/* ================= COOKIE BANNER — Bottom island (glassmorphism) =================
   Zwevend midden-onderaan als elegante island-card. Sterke blur zodat de
   scroll-cue eronder subtiel zichtbaar blijft (diepte ipv blokkade). */
.cookie-consent {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translate(-50%, 16px);
  z-index: 90;                     /* allerhoogste laag */
  max-width: calc(100vw - 24px);

  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px 10px 22px;
  border-radius: 32px;

  background: rgba(245, 239, 230, .7);
  border: 1px solid rgba(228, 179, 99, .28);
  backdrop-filter: blur(15px) saturate(150%);
  -webkit-backdrop-filter: blur(15px) saturate(150%);
  box-shadow: 0 10px 28px -14px rgba(30, 20, 10, .18);

  opacity: 0;
  pointer-events: none;
  transition:
    opacity  .45s cubic-bezier(.2, .7, .2, 1),
    transform .55s cubic-bezier(.2, .7, .2, 1);
}
.cookie-consent.show {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
}

/* Scrolled: zelfde donker-thema transitie als .nav-pill.scrolled */
body.is-scrolled .cookie-consent {
  background: rgba(26, 20, 16, .82);
  border-color: rgba(255, 255, 255, .08);
  box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .45);
}
body.is-scrolled .cookie-consent .cookie-icon { color: var(--honey-soft); }
body.is-scrolled .cookie-consent .cookie-message { color: var(--cream); }
body.is-scrolled .cookie-consent .cookie-link { color: rgba(245, 239, 230, .78); }
body.is-scrolled .cookie-consent .cookie-link:hover { color: var(--cream); }
body.is-scrolled .cookie-consent .cookie-accept:hover { box-shadow: 0 6px 18px -6px rgba(228, 179, 99, .7); }
.cookie-consent {
  transition:
    background   .4s ease,
    border-color .4s ease,
    color        .4s ease,
    box-shadow   .4s ease,
    opacity      .45s cubic-bezier(.2, .7, .2, 1),
    transform    .55s cubic-bezier(.2, .7, .2, 1);
}
.cookie-consent .cookie-icon,
.cookie-consent .cookie-message,
.cookie-consent .cookie-link {
  transition: color .4s ease;
}

.cookie-consent .cookie-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--walnut);
  flex-shrink: 0;
}
.cookie-consent .cookie-icon svg { display: block; }

.cookie-consent .cookie-message {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.2;
  color: var(--ink);
  letter-spacing: -0.005em;
  white-space: nowrap;
}

.cookie-consent .cookie-link {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--bordeaux);
  text-decoration: none;
  padding: 6px 4px;
  background: none;
  border: 0;
  cursor: pointer;
  transition: color .2s;
  white-space: nowrap;
}
.cookie-consent .cookie-link:hover { color: var(--bordeaux-deep); text-decoration: underline; text-underline-offset: 3px; }

.cookie-consent .cookie-accept {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  margin-left: 2px;
  border-radius: 999px;
  border: 0;
  background: var(--honey);
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
  white-space: nowrap;
}
.cookie-consent .cookie-accept:hover {
  background: var(--honey-soft);
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -6px rgba(228, 179, 99, .5);
}
.cookie-consent .cookie-accept svg { color: var(--bordeaux); }

@media (max-width: 767px) {
  /* Cookie banner mobile — Floating Card, royale 2-rij layout. */
  .cookie-consent {
    left: 50% !important;
    right: auto !important;
    bottom: 20px !important;
    max-width: min(340px, calc(100vw - 24px)) !important;
    width: 100% !important;

    display: grid !important;
    grid-template-columns: 24px 1fr auto !important;
    grid-template-rows: auto auto !important;
    column-gap: 12px !important;
    row-gap: 18px !important;
    align-items: start !important;

    padding: 22px 22px 20px !important;
    border-radius: 28px !important;

    background: rgba(245, 239, 230, .88) !important;
    border: 1px solid rgba(228, 179, 99, .3) !important;
    backdrop-filter: blur(14px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(14px) saturate(160%) !important;
    box-shadow:
      0 18px 40px -16px rgba(228, 179, 99, .4),
      0 10px 24px -12px rgba(30, 20, 10, .18) !important;

    gap: initial !important;
    transform: translate(-50%, 20px);
  }
  .cookie-consent.show { transform: translate(-50%, 0); }

  /* Rij 1: cookie-icoontje linksboven */
  .cookie-consent .cookie-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 24px !important; height: 24px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--walnut);
    display: grid; place-items: center;
    margin-top: 1px;
  }
  .cookie-consent .cookie-icon svg { width: 18px; height: 18px; }

  /* Rij 1: tekst spant naast icon */
  .cookie-consent .cookie-message {
    grid-column: 2 / -1 !important;
    grid-row: 1 !important;
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 13.5px !important;
    line-height: 1.45 !important;
    color: var(--ink);
    font-weight: 500;
    white-space: normal !important;
    flex: initial !important;
    min-width: 0;
  }

  /* Rij 2: Weigeren → subtiele tekst-link */
  .cookie-consent #rejectCookies {
    grid-column: 2 !important;
    grid-row: 2 !important;
    justify-self: start !important;
    align-self: center !important;
    padding: 10px 4px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--ink-soft);
    font-family: 'Inter', system-ui, sans-serif;
    font-size: 13px !important;
    font-weight: 500;
    letter-spacing: 0.01em;
    cursor: pointer;
    flex: initial !important;
    transition: color .2s;
    margin: 0 !important;
  }
  .cookie-consent #rejectCookies:hover {
    color: var(--bordeaux);
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  /* Rij 2: Akkoord → prominente honey pill rechts */
  .cookie-consent .cookie-accept {
    grid-column: 3 !important;
    grid-row: 2 !important;
    justify-self: end !important;
    align-self: center !important;
    padding: 11px 20px !important;
    margin: 0 !important;
    font-size: 13px !important;
    font-weight: 600;
    flex: initial !important;
    box-shadow: 0 6px 16px -6px rgba(228, 179, 99, .6);
  }
  .cookie-consent .cookie-accept svg { display: none; }

  /* Negeer de globale is-scrolled dark variant op mobile — blijft altijd light */
  body.is-scrolled .cookie-consent {
    background: rgba(245, 239, 230, .85);
    border-color: rgba(228, 179, 99, .28);
    color: var(--ink);
  }
  body.is-scrolled .cookie-consent .cookie-icon { color: var(--walnut); }
  body.is-scrolled .cookie-consent .cookie-message { color: var(--ink); }
  body.is-scrolled .cookie-consent #rejectCookies { color: var(--ink-soft); }
}

/* ================= CART PAGE — boutique island layout ================= */
.cart-page {
  background: var(--cream-warm);   /* warmer vlak → cards steken duidelijk af */
  padding: 128px 24px 56px;
  min-height: 100vh;
}
@media (min-width: 1024px) {
  .cart-page { padding: 138px 64px 72px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .cart-page { padding: 132px 48px 64px; }
}

.cart-page-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.cart-page-head {
  margin-bottom: 40px;
}
.cart-page-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 4.4vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}

/* Grid layout */
.cart-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 1024px) {
  .cart-grid {
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr);
    gap: 32px;
    align-items: start;
  }
}

/* Shared Island card */
.cart-items-card,
.cart-summary-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}

/* Items card */
.cart-items-card {
  padding: 28px;
}
@media (min-width: 1024px) { .cart-items-card { padding: 36px; } }

.cart-items-head {
  display: flex; align-items: baseline; justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.cart-items-head-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0;
}
.cart-items-head-count {
  font-size: 11.5px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--muted);
}

.cart-items { list-style: none; padding: 0; margin: 0; }
.cart-row {
  display: grid;
  grid-template-columns: 80px 1fr auto auto;
  align-items: center;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid rgba(139, 90, 43, .1);
}
.cart-row:last-child { border-bottom: 0; padding-bottom: 8px; }

@media (max-width: 640px) {
  .cart-row {
    grid-template-columns: 64px 1fr;
    grid-template-areas:
      "thumb body"
      "thumb qty"
      "total total";
    gap: 8px 14px;
    padding: 20px 0;
  }
  .cart-row-thumb { grid-area: thumb; }
  .cart-row-body { grid-area: body; }
  .cart-qty { grid-area: qty; justify-self: start; margin-top: 4px; }
  .cart-row-total { grid-area: total; justify-self: end; }
}

.cart-row-thumb {
  width: 80px; height: 80px;
  border-radius: 16px;
  overflow: hidden;
  background: var(--cream-warm);
}
.cart-row-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 640px) {
  .cart-row-thumb { width: 64px; height: 64px; border-radius: 14px; }
}

.cart-row-body { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.cart-row-name {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 19px;
  line-height: 1.2;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: -0.01em;
  transition: color .2s;
}
.cart-row-name:hover { color: var(--bordeaux); }
.cart-row-price {
  font-size: 12.5px;
  color: var(--muted);
  letter-spacing: 0.01em;
}

/* Quantity stepper */
.cart-qty {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px;
  border: 1px solid rgba(139, 90, 43, .24);
  border-radius: 999px;
  background: rgba(250, 246, 238, .5);
}
.cart-qty-btn {
  width: 32px; height: 32px;
  border-radius: 999px;
  display: grid; place-items: center;
  background: transparent;
  border: 0;
  color: var(--honey);
  cursor: pointer;
  transition: background .2s, color .2s, transform .15s;
}
.cart-qty-btn:hover:not(:disabled) {
  background: rgba(228, 179, 99, .18);
  transform: scale(1.06);
}
.cart-qty-btn:disabled {
  color: rgba(139, 90, 43, .3);
  cursor: not-allowed;
}
.cart-qty-value {
  min-width: 24px;
  text-align: center;
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 13.5px;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

/* Line total + remove */
.cart-row-total {
  display: flex; flex-direction: column; align-items: flex-end; gap: 6px;
  text-align: right;
  min-width: 90px;
}
.cart-row-total > span:first-child {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.cart-row-remove {
  background: transparent;
  border: 0;
  padding: 4px;
  color: var(--walnut);
  cursor: pointer;
  display: inline-flex; align-items: center;
  border-radius: 999px;
  transition: color .2s, background .2s, transform .15s;
}
.cart-row-remove:hover {
  color: var(--bordeaux-deep);
  background: rgba(26, 20, 16, .04);
  transform: translateY(-1px);
}

/* Items card foot */
.cart-items-foot {
  display: flex; align-items: center; justify-content: space-between;
  padding-top: 22px;
  margin-top: 8px;
  border-top: 1px solid rgba(139, 90, 43, .14);
  gap: 16px;
  flex-wrap: wrap;
}
.cart-continue {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none;
  transition: color .2s, gap .2s;
}
.cart-continue:hover { color: var(--bordeaux-deep); gap: 10px; }
.cart-clear {
  background: transparent;
  border: 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--muted);
  cursor: pointer;
  padding: 6px 2px;
  transition: color .2s;
}
.cart-clear:hover { color: var(--bordeaux); text-decoration: underline; text-underline-offset: 3px; }

/* Summary card */
.cart-summary-card {
  padding: 28px;
  position: sticky;
  top: 106px;
}
@media (min-width: 1024px) { .cart-summary-card { padding: 36px; } }

.cart-summary-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0 0 20px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}

.cart-summary-rows {
  margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.cart-summary-row {
  display: flex; justify-content: space-between; align-items: baseline;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0;
}
.cart-summary-row dt { font-weight: 400; }
.cart-summary-row dd {
  margin: 0;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  font-weight: 500;
}

.cart-summary-note {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px;
  margin-top: 6px;
  background: rgba(228, 179, 99, .14);
  border-radius: 12px;
  font-size: 12px;
  color: var(--walnut);
}
.cart-summary-note b { color: var(--bordeaux); font-weight: 600; }

.cart-summary-total {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-top: 20px;
  margin-top: 20px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.cart-summary-total-label {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 18px;
  color: var(--ink);
  letter-spacing: -0.005em;
}
.cart-summary-total-value {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 28px;
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

.cart-checkout-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 22px;
  padding: 16px 22px;
  border-radius: 999px;
  background: var(--honey);
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 8px 20px -10px rgba(228, 179, 99, .6);
}
.cart-checkout-btn:hover {
  background: var(--honey-soft);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(228, 179, 99, .7);
}
.cart-checkout-btn svg { transition: transform .2s; }
.cart-checkout-btn:hover svg { transform: translateX(3px); }

.cart-summary-trust {
  display: flex; flex-direction: column; gap: 6px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(139, 90, 43, .1);
}
.cart-trust-item {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11.5px;
  color: var(--muted);
}
.cart-trust-item svg { color: var(--walnut); flex-shrink: 0; }

/* Empty state */
.cart-empty {
  background: var(--cream);
  border-radius: 32px;
  padding: 80px 40px;
  text-align: center;
  box-shadow: 0 20px 50px -30px rgba(30, 20, 10, .18);
}
.cart-empty-icon {
  width: 72px; height: 72px;
  border-radius: 999px;
  margin: 0 auto 20px;
  display: grid; place-items: center;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
}
.cart-empty-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(24px, 2.4vw, 32px);
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0 0 8px;
}
.cart-empty-sub {
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0 0 28px;
}
.cart-empty-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 22px;
  border-radius: 999px;
  background: var(--bordeaux);
  color: var(--cream);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
.cart-empty-cta:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }

/* ================= CHECKOUT PAGE — boutique form ================= */
.checkout-page {
  background: var(--cream-warm);   /* warmer vlak → cards steken duidelijk af */
  padding: 128px 24px 72px;
  min-height: 100vh;
}
@media (min-width: 1024px) {
  .checkout-page { padding: 138px 64px 80px; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .checkout-page { padding: 132px 48px 72px; }
}

.checkout-page-inner {
  max-width: 1280px;
  margin: 0 auto;
}

.checkout-page-head { margin-bottom: 36px; }
.checkout-page-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 4.4vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}

.checkout-alert {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px;
  margin-bottom: 24px;
  border-radius: 16px;
  background: rgba(178, 34, 34, .08);
  border: 1px solid rgba(178, 34, 34, .22);
  color: #8a1b1b;
  font-size: 13.5px;
}
.checkout-alert svg { flex-shrink: 0; }

/* Grid */
.checkout-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}
@media (min-width: 1024px) {
  .checkout-grid {
    grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr);
    gap: 32px;
    align-items: start;
  }
}

.checkout-main {
  display: flex; flex-direction: column;
  gap: 20px;
}

/* Form cards (island style) */
.checkout-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 28px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
@media (min-width: 1024px) { .checkout-card { padding: 36px 40px; } }

.checkout-card-head {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 22px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.checkout-step-num {
  display: inline-grid; place-items: center;
  width: 32px; height: 32px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  font-weight: 500;
}
.checkout-card-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0;
}

/* Form fields */
.checkout-fields {
  display: grid; gap: 16px;
  grid-template-columns: 1fr;
}
.checkout-fields--2col {
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .checkout-fields--2col { grid-template-columns: 1fr 1fr; gap: 18px; }
}

.field {
  display: flex; flex-direction: column; gap: 8px;
  min-width: 0;
}
.field--full { grid-column: 1 / -1; }

.field-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}
.field-label em {
  font-style: normal;
  color: var(--bordeaux);
  margin-left: 2px;
}

.field-input {
  width: 100%;
  padding: 14px 16px;
  background: #ffffff;
  border: 1px solid rgba(139, 90, 43, .18);
  border-radius: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  color: var(--ink);
  line-height: 1.4;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.field-input::placeholder { color: rgba(139, 90, 43, .4); }
.field-input:hover { border-color: rgba(139, 90, 43, .32); }
.field-input:focus {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .16);
  background: #fffdf9;
}
.field-input.is-invalid {
  border-color: #c94444;
  background: #fffaf9;
}

.field-textarea {
  resize: vertical;
  min-height: 96px;
}

/* Select met custom chevron */
.field-select {
  position: relative;
}
.field-select select.field-input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 42px;
  background: #ffffff;
  cursor: pointer;
}
.field-select-chevron {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  color: var(--walnut);
  pointer-events: none;
}

.field-error {
  font-size: 12px;
  color: #c94444;
  margin-top: -2px;
}

/* Back link */
.checkout-back {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 4px;
  padding: 6px 2px;
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: color .2s, gap .2s;
  align-self: flex-start;
}
.checkout-back svg { transition: transform .2s; }
.checkout-back:hover { color: var(--bordeaux-deep); gap: 10px; }
.checkout-back:hover svg { transform: translateX(-2px); }

/* Summary card */
.checkout-summary-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 28px;
  position: sticky;
  top: 106px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
@media (min-width: 1024px) { .checkout-summary-card { padding: 36px; } }

.checkout-summary-items {
  list-style: none; padding: 0;
  margin: 0 0 18px;
  display: flex; flex-direction: column; gap: 10px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.checkout-summary-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: baseline;
  gap: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  color: var(--ink-soft);
}
.checkout-summary-item-qty {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.checkout-summary-item-name {
  color: var(--ink);
  font-weight: 500;
  letter-spacing: -0.005em;
}
.checkout-summary-item-total {
  color: var(--ink);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.checkout-summary-rows {
  margin-bottom: 4px;
}

.checkout-submit-btn {
  margin-top: 20px;
  width: 100%;
}

/* Trust icons */
.checkout-trust {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(139, 90, 43, .1);
}
.checkout-trust-icons {
  display: flex; flex-wrap: wrap;
  align-items: center; gap: 10px 14px;
}
.checkout-trust-ideal {
  display: inline-flex; align-items: center;
  padding: 5px 9px;
  background: #CC0066;
  color: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  border-radius: 5px;
}
.checkout-trust-lock {
  display: inline-flex; align-items: center; gap: 5px;
  color: var(--walnut);
  font-size: 11.5px;
  font-weight: 500;
}
.checkout-trust-lock svg { color: var(--walnut); }
.checkout-trust-note {
  margin: 12px 0 0;
  font-size: 11.5px;
  color: var(--muted);
  line-height: 1.45;
}

/* ================= CART CONFIRM MODAL ================= */
.cart-modal {
  position: fixed; inset: 0;
  z-index: 200;
  display: grid; place-items: center;
  padding: 24px;
}
.cart-modal-backdrop {
  position: absolute; inset: 0;
  background: rgba(20, 12, 6, .55);
  backdrop-filter: blur(8px) saturate(130%);
  -webkit-backdrop-filter: blur(8px) saturate(130%);
}
.cart-modal-panel {
  position: relative;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 38px 36px 32px;
  width: min(440px, 100%);
  box-shadow:
    0 40px 80px -30px rgba(0, 0, 0, .5),
    0 12px 30px -10px rgba(0, 0, 0, .2);
  text-align: center;
}
@media (max-width: 540px) {
  .cart-modal-panel { padding: 32px 24px 26px; border-radius: 26px; }
}

/* Enter animation */
.cart-modal-enter { transition: opacity .28s cubic-bezier(.2, .7, .2, 1), transform .3s cubic-bezier(.2, .7, .2, 1); }
.cart-modal-enter-start { opacity: 0; transform: translateY(12px) scale(.97); }
.cart-modal-enter-end { opacity: 1; transform: translateY(0) scale(1); }

.cart-modal-icon {
  display: grid; place-items: center;
  width: 56px; height: 56px;
  margin: 0 auto 18px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
}
.cart-modal-icon--danger {
  background: rgba(178, 34, 34, .1);
  color: #9a2424;
}

.cart-modal-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 10px;
  text-wrap: balance;
}
.cart-modal-message {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0 0 26px;
  text-wrap: pretty;
}
.cart-modal-message b {
  color: var(--ink);
  font-weight: 600;
}

.cart-modal-actions {
  display: flex;
  gap: 10px;
  justify-content: center;
  flex-wrap: wrap;
}
.cart-modal-cancel,
.cart-modal-confirm {
  flex: 1 1 140px;
  padding: 13px 22px;
  border-radius: 999px;
  border: 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .2s, box-shadow .2s;
}

.cart-modal-cancel {
  background: transparent;
  color: var(--ink-soft);
  border: 1px solid rgba(26, 20, 16, .16);
}
.cart-modal-cancel:hover {
  background: rgba(26, 20, 16, .04);
  color: var(--ink);
  border-color: rgba(26, 20, 16, .28);
}

.cart-modal-confirm {
  background: var(--bordeaux);
  color: var(--cream);
  box-shadow: 0 8px 20px -10px rgba(61, 43, 31, .6);
}
.cart-modal-confirm:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 12px 24px -8px rgba(61, 43, 31, .7);
}

/* ================= MOBILE NAV — HAMBURGER + CART ICON ================= */
.nav-hamburger {
  display: none;
  width: 40px; height: 40px;
  border-radius: 999px;
  background: rgba(26, 20, 16, .05);
  border: 1px solid rgba(26, 20, 16, .08);
  color: var(--ink);
  cursor: pointer;
  padding: 0;
  align-items: center; justify-content: center;
  flex-direction: column; gap: 4px;
  transition: background .2s, color .2s, border-color .2s;
}
.nav-hamburger span {
  display: block;
  width: 16px; height: 1.6px;
  background: currentColor;
  border-radius: 2px;
  transition: transform .25s ease, opacity .25s ease;
}
.nav-hamburger:hover { background: rgba(26, 20, 16, .1); }

@media (max-width: 1023px) {
  .nav-hamburger { display: inline-flex; }
}
body.is-scrolled .nav-hamburger {
  background: rgba(245, 239, 230, .08);
  border-color: rgba(245, 239, 230, .12);
  color: var(--cream);
}
body.is-scrolled .nav-hamburger:hover {
  background: rgba(245, 239, 230, .18);
}

/* Mobile cart pill (inline in nav-right) */
.nav-cart-mobile {
  position: relative;
  display: none;
  width: 40px; height: 40px;
  border-radius: 999px;
  background: rgba(26, 20, 16, .05);
  border: 1px solid rgba(26, 20, 16, .08);
  color: var(--ink);
  align-items: center; justify-content: center;
  transition: background .2s, color .2s, border-color .2s;
  text-decoration: none;
}
.nav-cart-mobile:hover { background: rgba(26, 20, 16, .1); }
@media (max-width: 1023px) {
  .nav-cart-mobile { display: inline-flex; }
}
.nav-cart-mobile-count {
  position: absolute;
  top: -4px; right: -4px;
  min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 999px;
  background: var(--honey);
  color: var(--ink);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px; font-weight: 600;
  line-height: 17px; text-align: center;
  box-shadow: 0 2px 6px rgba(30, 20, 10, .2);
}
body.is-scrolled .nav-cart-mobile {
  background: rgba(245, 239, 230, .08);
  border-color: rgba(245, 239, 230, .12);
  color: var(--cream);
}
body.is-scrolled .nav-cart-mobile:hover {
  background: rgba(245, 239, 230, .18);
}

/* Hide desktop floating cart-pill onder 1024 — inline in-pill cart neemt over.
   (Portrait tablets <1024 gebruiken hamburger + inline cart; 1024+ krijgt de
   losse floating cart-pill.) */
@media (max-width: 1023px) {
  .nav-cart-pill { display: none !important; }
}

/* ================= OFFCANVAS MENU ================= */
.offcanvas-overlay {
  position: fixed; inset: 0;
  z-index: 110;
  background: rgba(20, 12, 6, .55);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
}
.offcanvas-overlay-enter { transition: opacity .4s cubic-bezier(.2, .7, .2, 1); }
.offcanvas-overlay-leave { transition: opacity .35s cubic-bezier(.2, .7, .2, 1); }
.offcanvas-overlay-start { opacity: 0; }
.offcanvas-overlay-end   { opacity: 1; }

.offcanvas-menu {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  z-index: 120;
  width: min(420px, 92vw);
  background: var(--cream);
  box-shadow: -24px 0 60px -20px rgba(30, 20, 10, .35);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform .55s cubic-bezier(.2, .7, .2, 1);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.offcanvas-menu.is-open { transform: translateX(0); }

/* Decoratief vlak links in de offcanvas — honey line accent */
.offcanvas-menu::before {
  content: "";
  position: absolute;
  top: 120px; bottom: 120px; left: 0;
  width: 2px;
  background: linear-gradient(180deg, transparent 0%, rgba(228, 179, 99, .35) 50%, transparent 100%);
  pointer-events: none;
}

.offcanvas-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 24px 20px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.offcanvas-logo {
  height: 52px; width: auto;
  display: block;
}
.offcanvas-close {
  width: 42px; height: 42px;
  border-radius: 999px;
  border: 1px solid rgba(26, 20, 16, .14);
  background: transparent;
  color: var(--ink);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .25s, color .25s, transform .3s, border-color .25s;
}
.offcanvas-close:hover {
  background: var(--ink);
  color: var(--cream);
  border-color: var(--ink);
  transform: rotate(90deg);
}

.offcanvas-body {
  flex: 1;
  padding: 24px 24px 12px;
  display: flex; flex-direction: column;
}

.offcanvas-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  display: flex; align-items: center; gap: 10px;
  margin: 10px 0 18px;
}
.offcanvas-eyebrow + .offcanvas-eyebrow,
.offcanvas-nav + .offcanvas-eyebrow {
  margin-top: 32px;
}
.offcanvas-eyebrow::before {
  content: "";
  width: 24px; height: 1px;
  background: var(--walnut);
}

/* Navigation links */
.offcanvas-nav {
  display: flex; flex-direction: column;
  gap: 2px;
  margin-bottom: 4px;
}
.offcanvas-nav a {
  position: relative;
  display: flex; align-items: baseline;
  padding: 8px 0 8px 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-decoration: none;
  transition: color .25s ease, padding-left .3s cubic-bezier(.2, .7, .2, 1);
}
.offcanvas-nav a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 18px; height: 1.5px;
  background: var(--honey);
  transform: translateY(-50%) scaleX(0);
  transform-origin: left center;
  transition: transform .3s cubic-bezier(.2, .7, .2, 1), width .3s cubic-bezier(.2, .7, .2, 1);
}
.offcanvas-nav a:hover,
.offcanvas-nav a:focus-visible,
.offcanvas-nav a.is-active {
  color: var(--bordeaux);
  padding-left: 30px;
  outline: none;
}
.offcanvas-nav a:hover::before,
.offcanvas-nav a:focus-visible::before,
.offcanvas-nav a.is-active::before {
  transform: translateY(-50%) scaleX(1);
}
.offcanvas-nav a.is-active {
  font-weight: 500;
}

/* Staggered entry animation when menu opens */
.offcanvas-menu.is-open .offcanvas-nav a {
  animation: offcanvas-link-in .5s cubic-bezier(.2, .7, .2, 1) both;
}
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(1) { animation-delay: .08s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(2) { animation-delay: .12s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(3) { animation-delay: .16s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(4) { animation-delay: .20s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(5) { animation-delay: .24s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(6) { animation-delay: .28s; }
.offcanvas-menu.is-open .offcanvas-nav a:nth-child(7) { animation-delay: .32s; }

@keyframes offcanvas-link-in {
  0%   { opacity: 0; transform: translateX(20px); }
  100% { opacity: 1; transform: translateX(0); }
}

/* Contact block */
.offcanvas-contact {
  display: flex; flex-direction: column; gap: 4px;
}
.offcanvas-contact a {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  color: var(--ink-soft);
  text-decoration: none;
  transition: color .2s, gap .2s;
}
.offcanvas-contact a svg {
  color: var(--walnut);
  flex-shrink: 0;
}
.offcanvas-contact a:hover { color: var(--bordeaux); gap: 14px; }

/* Foot with CTA */
.offcanvas-foot {
  padding: 20px 24px 28px;
  border-top: 1px solid rgba(139, 90, 43, .14);
  background: var(--cream);
}
.offcanvas-cta {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 22px;
  border-radius: 999px;
  background: var(--honey);
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 8px 22px -10px rgba(228, 179, 99, .55);
}
.offcanvas-cta:hover {
  background: var(--honey-soft);
  transform: translateY(-1px);
  box-shadow: 0 12px 28px -8px rgba(228, 179, 99, .7);
}
.offcanvas-cta svg { transition: transform .25s; }
.offcanvas-cta:hover svg { transform: translateX(3px); }

/* ================= MOBILE/TABLET RESPONSIVE POLISH — HOME PAGE ================= */

/* Kleinere section-paddings op tablet */
@media (max-width: 1023px) {
  #over, #tour, #proeverij, #gallery, #reviews, #locatie {
    padding-top: 80px; padding-bottom: 80px;
  }
}

@media (max-width: 767px) {
  /* Hero compacter */
  .hero {
    min-height: calc(100vh - 24px);
    border-radius: 22px;
  }

  /* Hero content padding minder royaal op mobiel */
  .hero-slide > .relative {
    padding-top: 120px !important;
    padding-bottom: 100px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Hero meta strip wraps netter */
  .hero-meta-strip { gap: 16px 24px !important; padding-top: 22px !important; margin-top: 28px !important; }

  /* Secties minder padding */
  #over, #tour, #proeverij, #gallery, #reviews, #locatie, #reserveer {
    padding-top: 64px !important; padding-bottom: 64px !important;
    padding-left: 20px !important; padding-right: 20px !important;
  }

  /* Section titles kleiner op mobiel */
  .sec-title, .checkout-page-title, .cart-page-title, .reviews-title {
    font-size: clamp(30px, 8vw, 44px) !important;
  }

  /* Tour-section ronde hoeken iets kleiner + minder margin */
  .tour-section { margin-left: 16px; margin-right: 16px; border-radius: 22px; }

  /* Proeverij product-card stacked */
  .product-card { grid-template-columns: 1fr !important; }
  .product-visual { aspect-ratio: 4/3 !important; min-height: 260px; }
  .product-body { padding: 28px !important; }

  /* Booking split card: stack */
  .booking-wrap { grid-template-columns: 1fr !important; }
  .book-left, .book-right { padding: 28px !important; }

  /* Gallery slider kleiner */
  .slider { border-radius: 22px; }

  /* Locatie map stack */
  .map-box { min-height: 280px; }
}

@media (max-width: 640px) {
  /* Hero title compacter */
  .hero-title { font-size: clamp(34px, 10vw, 52px) !important; }

  /* Over card padding minder */
  .over-card { padding: 28px !important; border-radius: 24px !important; }
  .over-visual { margin-left: 0 !important; border-radius: 24px !important; }

  /* Footer compact */
  footer .foot-brand,
  footer .foot-col { text-align: left; }
}

/* ================= OFFCANVAS — mobile compact ================= */
@media (max-width: 767px) {
  .offcanvas-head { padding: 18px 22px 16px; }
  .offcanvas-logo { height: 46px; }
  .offcanvas-close { width: 40px; height: 40px; }

  .offcanvas-body { padding: 18px 24px 10px; }

  .offcanvas-eyebrow { margin: 8px 0 12px; font-size: 10.5px; }
  .offcanvas-nav + .offcanvas-eyebrow,
  .offcanvas-eyebrow + .offcanvas-eyebrow { margin-top: 24px; }

  .offcanvas-nav a {
    font-size: 23px;
    padding: 6px 0;
    letter-spacing: -0.018em;
  }
  .offcanvas-nav a:hover,
  .offcanvas-nav a:focus-visible { padding-left: 26px; }
  .offcanvas-nav a::before { width: 16px; }

  .offcanvas-contact a { padding: 7px 0; font-size: 13px; }

  .offcanvas-foot { padding: 16px 24px 22px; }
  .offcanvas-cta { padding: 14px 20px; font-size: 14px; }
}

@media (max-width: 380px) {
  .offcanvas-nav a { font-size: 21px; padding: 5px 0; }
}

/* =========================================================================
   DESKTOP HERO — content verticaal gecentreerd (≥768px)
   Content zakt naar het midden i.p.v. bovenin het vlak te staan.
   ========================================================================= */
@media (min-width: 768px) {
  .hero-slide > .relative.z-10 {
    justify-content: center;
  }
}

/* =========================================================================
   MOBILE HERO — Island Design revision (≤767px)
   Dark glassmorphism card zweeft boven full-bleed wijngaard-foto.
   Twee losse floating pills in de nav, minimalistische bottom frame.
   ========================================================================= */
@media (max-width: 767px) {

  /* --- NAV gedrag matcht desktop ---
     Hero (unscrolled) = logo los linksboven + losse rechter pill.
     Scrolled = unified donkere pill (logo + cart + hamburger + Reserveren). */

  /* Hero state: wit logo los linksboven */
  .brand-float {
    display: block !important;
    top: 22px;
    left: 22px;
    filter:
      invert(1) brightness(1.1)
      drop-shadow(0 6px 14px rgba(20, 12, 6, .5))
      drop-shadow(0 2px 3px rgba(20, 12, 6, .4));
    transition: opacity .4s ease;
  }
  .brand-float .brand-logo--hero { height: 64px; width: auto; }

  /* Scrolled: brand-float verdwijnt, in-pill logo neemt over */
  body.is-scrolled .brand-float {
    display: none !important;
    transform: none;
  }

  /* Rechter pill uitlijnen op zelfde hoogte als logo-midden + iets naar links */
  .nav-pill { top: 34px !important; right: 28px !important; }
  body.is-scrolled .nav-pill { top: 14px !important; right: 16px !important; }

  /* Nav-pill hero-state: GEEN achtergrond → alleen rechter cluster zichtbaar */
  .nav-pill {
    background: transparent !important;
    border: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  .nav-pill .brand-in-pill { display: none; }

  /* Rechter cluster → eigen cream pill */
  .nav-pill .nav-right {
    padding: 4px !important;
    background: rgba(250, 246, 238, .75);
    border: 1px solid var(--line-soft);
    border-radius: 999px;
    backdrop-filter: blur(14px) saturate(150%);
    -webkit-backdrop-filter: blur(14px) saturate(150%);
    box-shadow: 0 10px 28px -14px rgba(20, 12, 6, .4);
    gap: 3px !important;
  }

  /* Scrolled: unified donkere pill (logo verschijnt in-pill) */
  body.is-scrolled .nav-pill {
    background: rgba(26, 20, 16, .88) !important;
    border: 1px solid rgba(255, 255, 255, .08) !important;
    backdrop-filter: blur(12px) saturate(150%) !important;
    -webkit-backdrop-filter: blur(12px) saturate(150%) !important;
    box-shadow: 0 10px 30px -14px rgba(20, 12, 6, .55) !important;
    padding: 4px 5px 4px 8px !important;
  }
  body.is-scrolled .nav-pill .brand-in-pill {
    display: inline-flex;
    background: transparent;
    border: 0;
    padding: 0 6px 0 4px;
    gap: 10px;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  body.is-scrolled .nav-pill .brand-in-pill .brand-logo {
    height: 46px;
    width: auto;
    filter: invert(1) brightness(1.08);
  }
  body.is-scrolled .nav-pill .nav-right {
    background: transparent;
    border: 0;
    padding: 0 !important;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  /* Cart + hamburger: ink op hero-pil, cream op scrolled */
  .nav-cart-mobile,
  .nav-hamburger {
    width: 34px !important;
    height: 34px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--ink) !important;
    transition: color .4s ease, background .2s;
  }
  .nav-cart-mobile:hover,
  .nav-hamburger:hover {
    background: rgba(26, 20, 16, .06) !important;
  }
  body.is-scrolled .nav-cart-mobile,
  body.is-scrolled .nav-hamburger {
    color: var(--cream) !important;
  }
  body.is-scrolled .nav-cart-mobile:hover,
  body.is-scrolled .nav-hamburger:hover {
    background: rgba(245, 239, 230, .1) !important;
  }
  .nav-cart-mobile-count { background: var(--honey); color: var(--ink); }

  /* Reserveren-button: zichtbaar in scrolled unified pill op elk mobiel formaat */
  .nav-pill .btn-book {
    display: none;
    padding: 6px 10px;
    margin-left: 2px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0;
    gap: 0;
    white-space: nowrap;
  }
  .nav-pill .btn-book .arrow { display: none; }
  .nav-pill .btn-book .btn-book-label { display: inline; }
  body.is-scrolled .nav-pill .btn-book { display: inline-flex; }

  /* Hele smalle devices (<360px, klassieke oude telefoons): label inkorten */
  @media (max-width: 359px) {
    body.is-scrolled .nav-pill .btn-book { padding: 6px 9px; font-size: 11px; }
  }

  /* --- HERO: past in één oogopslag in de viewport (svh = visible viewport) --- */
  .hero {
    min-height: calc(100svh - 24px);
    border-radius: 24px;
  }

  /* Centreer content, verklein scrim zodat foto meer naar voren komt */
  .hero-scrim {
    background:
      linear-gradient(180deg, rgba(20, 14, 10, .45) 0%, rgba(20, 14, 10, .2) 35%, rgba(20, 14, 10, .35) 65%, rgba(20, 14, 10, .55) 100%);
  }

  .hero-slide > .relative.z-10 {
    justify-content: flex-start !important;
    min-height: calc(100svh - 24px) !important;
    padding: 104px 16px 64px !important;
    gap: 0 !important;
  }

  /* Content → centrale island card */
  .hero-stagger {
    max-width: 100% !important;
    padding: 32px 26px 28px !important;
    background: rgba(46, 26, 15, .78);
    border: 1px solid rgba(228, 179, 99, .22);
    border-radius: 32px;
    backdrop-filter: blur(15px) saturate(140%);
    -webkit-backdrop-filter: blur(15px) saturate(140%);
    box-shadow:
      0 30px 80px -20px rgba(20, 12, 6, .7),
      0 0 60px -10px rgba(228, 179, 99, .22),
      inset 0 0 0 1px rgba(228, 179, 99, .04);
  }

  /* Trust-strip krijgt iets meer contrast op de donkere card */
  .hero-stagger .trust-strip {
    flex-wrap: wrap;
    gap: 8px 12px;
    font-size: 11.5px;
    color: rgba(245, 239, 230, .72);
  }
  .hero-stagger .trust-strip b { color: var(--honey-soft); }

  /* Title groter in Fraunces cream — zonder margin-top nu trust-strip weg is */
  .hero-stagger .hero-title {
    font-size: clamp(32px, 8.5vw, 44px) !important;
    line-height: 1.02;
    color: var(--cream);
    margin-top: 0 !important;
    letter-spacing: -0.025em;
  }
  .hero-stagger .hero-title em { color: var(--honey-soft); font-style: italic; }
  .hero-stagger .hero-title br { display: none; }

  /* Subtekst in Inter cream-soft */
  .hero-stagger > p {
    font-size: 14.5px !important;
    line-height: 1.55 !important;
    color: rgba(245, 239, 230, .82) !important;
    margin-top: 16px !important;
    max-width: 100% !important;
  }

  /* Buttons verticaal gestapeld, full-width */
  .hero-stagger .mt-8.flex.flex-wrap {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    margin-top: 22px !important;
  }
  .hero-stagger .btn-primary,
  .hero-stagger .btn-ghost {
    justify-content: center;
    width: 100%;
    padding: 13px 20px !important;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
  }
  .hero-stagger .btn-primary svg,
  .hero-stagger .btn-ghost svg { display: none; }
  /* Secondary contact/secondary button: outline op cream */
  .hero-stagger .btn-ghost {
    background: transparent !important;
    color: var(--cream) !important;
    border: 1px solid rgba(245, 239, 230, .35) !important;
  }
  .hero-stagger .btn-ghost:hover {
    background: rgba(245, 239, 230, .08) !important;
    border-color: rgba(245, 239, 230, .6) !important;
  }

  /* Meta-strip: verberg op mobile — card wordt te druk */
  .hero-stagger .hero-meta-strip { display: none; }

  /* --- BOTTOM FRAME: slider indicator + scroll cue → minimalist, screen edges --- */
  .hero-slider-ctrl {
    left: 20px !important;
    bottom: 20px !important;
    gap: 14px !important;
  }
  .hero-sc-counter { font-size: 12px !important; }
  .hero-sc-progress { gap: 4px !important; }
  .hero-sc-bar {
    width: 18px !important;
    height: 2px !important;
  }
  .hero-sc-nav { display: none !important; }  /* prev/next buttons weg op mobile */

  /* Scroll-cue minimaal, rechtsonder */
  .scroll-cue {
    right: 20px !important;
    left: auto !important;
    bottom: 20px !important;
    transform: none !important;
    font-size: 10px !important;
    letter-spacing: 0.18em !important;
    color: rgba(245, 239, 230, .75) !important;
  }
  .scroll-cue-mouse { display: none; }

  /* Op mobile hero → brand-float los linksboven (zichtbaar).
     Op scrolled verdwijnt hij via de body.is-scrolled .brand-float rule hierboven. */
  .nav-pill .nav-right { margin-left: auto; }
}

/* ================= OVER ONS · decoratieve druiven + bladeren ================= */
.over-deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  color: var(--walnut);
  opacity: 0;
  transition: opacity .6s ease .2s;
}
/* Alleen op tablet+ tonen (desktop focus) */
@media (min-width: 1024px) {
  .over-deco { opacity: 1; }
}
@media (max-width: 1023px) {
  .over-deco { display: none; }
}

/* Druiventros linksboven — deels uit beeld naar links */
.over-deco--grapes {
  top: 40px;
  left: -140px;
  width: 380px;
  height: 460px;
  color: var(--walnut);
  opacity: .14;
  transform: rotate(-12deg);
  filter: drop-shadow(0 20px 30px rgba(61, 43, 31, .15));
}

/* Bladeren/ranken rechtsonder — bleedt vanaf buiten de sectie naar binnen */
.over-deco--leaves {
  bottom: -80px;
  right: -200px;
  width: 760px;
  height: 660px;
  color: var(--forest);
  opacity: .16;
  transform: rotate(8deg);
  filter: drop-shadow(0 24px 40px rgba(45, 58, 42, .18));
}

/* Extra zwaarder bleeding op brede schermen */
@media (min-width: 1440px) {
  .over-deco--leaves {
    right: -240px;
    width: 860px;
    height: 740px;
  }
}

/* ================= LOCATIE · decoratieve wijnfles + wijnglas ================= */
.loc-deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity .6s ease .2s;
}
@media (min-width: 1024px) {
  .loc-deco { opacity: 1; }
}
@media (max-width: 1023px) {
  .loc-deco { display: none; }
}

/* Wijnfles — linksboven, kantelt naar rechts */
.loc-deco--bottle {
  top: 60px;
  left: -100px;
  width: 260px;
  height: 540px;
  color: var(--bordeaux);
  opacity: .1;
  transform: rotate(14deg);
  filter: drop-shadow(0 20px 30px rgba(61, 43, 31, .15));
}

/* Wijnglas — rechtsonder, bleedt naar rechts uit beeld */
.loc-deco--glass {
  bottom: -60px;
  right: -90px;
  width: 340px;
  height: 460px;
  color: var(--walnut);
  opacity: .12;
  transform: rotate(8deg);
  filter: drop-shadow(0 24px 40px rgba(139, 90, 43, .2));
}

/* Extra scaling op breed scherm */
@media (min-width: 1440px) {
  .loc-deco--bottle { left: -120px; width: 300px; height: 620px; }
  .loc-deco--glass  { right: -120px; width: 400px; height: 540px; }
}

/* ================= CART & CHECKOUT · botanische achtergrond-decoraties ================= */
.cart-page,
.checkout-page {
  position: relative;
  overflow: hidden;
}
.cart-page-inner,
.checkout-page-inner {
  position: relative;
  z-index: 1;
}

.page-deco {
  position: absolute;
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity .6s ease .2s;
}
@media (min-width: 1024px) {
  .page-deco { opacity: 1; }
}
@media (max-width: 1023px) {
  .page-deco { display: none; }
}

/* ----- /cart ----- */

/* Olijftak rechtsboven — komt uit de rechterrand gekanteld binnen */
.page-deco--olive {
  top: 100px;
  right: -80px;
  width: 420px;
  height: 110px;
  color: var(--forest);
  opacity: .12;
  transform: rotate(22deg);
  filter: drop-shadow(0 12px 20px rgba(45, 58, 42, .15));
}

/* Tarweaar linksonder — rechtop staand, half uit beeld */
.page-deco--wheat {
  bottom: -60px;
  left: -30px;
  width: 140px;
  height: 480px;
  color: var(--oak);
  opacity: .14;
  transform: rotate(-8deg);
  filter: drop-shadow(0 16px 24px rgba(139, 90, 43, .18));
}

/* ----- /checkout ----- */

/* Olijftak linksboven — gespiegeld tov cart */
.page-deco--olive-left {
  top: 110px;
  left: -80px;
  width: 380px;
  height: 100px;
  color: var(--forest);
  opacity: .12;
  transform: rotate(-20deg) scaleX(-1);
  filter: drop-shadow(0 12px 20px rgba(45, 58, 42, .15));
}

/* Perentak rechtsonder — bleedt buiten de pagina */
.page-deco--pear {
  bottom: -40px;
  right: -70px;
  width: 300px;
  height: 420px;
  color: var(--walnut);
  opacity: .13;
  transform: rotate(12deg);
  filter: drop-shadow(0 18px 28px rgba(139, 90, 43, .18));
}

/* Extra forser op breedbeeld */
@media (min-width: 1440px) {
  .page-deco--olive      { right: -100px; width: 480px; height: 130px; }
  .page-deco--wheat      { left: -40px;   width: 160px; height: 540px; }
  .page-deco--olive-left { left: -100px;  width: 440px; height: 120px; }
  .page-deco--pear       { right: -90px;  width: 340px; height: 480px; }
}

/* ================= PAGE WATERMARK — signature met muis-spotlight ================= */
.page-watermark {
  position: absolute;
  left: 0; right: 0;
  bottom: 20px;
  z-index: 0;
  pointer-events: none;

  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 500;
  font-size: clamp(48px, 9vw, 140px);
  line-height: 1.15;
  letter-spacing: -0.03em;
  text-align: center;
  white-space: nowrap;
  overflow-x: hidden;
  overflow-y: visible;
  padding-bottom: 0.12em;
  user-select: none;

  /* Base: zachte bordeaux wash — spotlight blijft subtiel transparent */
  background:
    radial-gradient(
      circle 320px at var(--mx, 50%) var(--my, 50%),
      rgba(61, 43, 31, .16) 0%,
      rgba(61, 43, 31, .1) 30%,
      rgba(61, 43, 31, .04) 80%
    );
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  transition: background-position .15s ease-out;
}
@media (max-width: 1023px) {
  .page-watermark {
    font-size: clamp(40px, 11vw, 100px);
    bottom: 16px;
  }
}
@media (max-width: 640px) {
  .page-watermark {
    font-size: 44px;
    bottom: 14px;
  }
}
@media (hover: none) {
  /* Touch devices: statische subtiele wash, geen spotlight */
  .page-watermark {
    background: none;
    -webkit-text-fill-color: rgba(61, 43, 31, .05);
    color: rgba(61, 43, 31, .05);
  }
}

/* =========================================================================
   VERGADEREN PAGE — hero booking + arrangementen + catering + contact
   ========================================================================= */

/* ----- Hero ----- */
.meeting-hero {
  position: relative;
  color: var(--cream);
  overflow: hidden;
  background: #2e1a0f;
  box-shadow:
    0 40px 80px -40px rgba(30, 20, 10, .45),
    0 10px 30px -15px rgba(30, 20, 10, .25),
    inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.meeting-hero-bg {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(120deg, rgba(20, 12, 6, .82) 0%, rgba(20, 12, 6, .55) 50%, rgba(20, 12, 6, .3) 100%),
    url("../images/hero/hero_bg_2.jpg");
  background-size: cover;
  background-position: center;
  filter: saturate(1.05);
}
.meeting-hero-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 80% at 30% 50%, rgba(20, 12, 6, .5), transparent 75%),
    linear-gradient(180deg, rgba(20, 12, 6, .3) 0%, transparent 30%, transparent 60%, rgba(20, 12, 6, .5) 100%);
}

.meeting-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--honey-soft);
  padding: 8px 14px;
  border: 1px solid rgba(228, 179, 99, .38);
  border-radius: 999px;
  background: rgba(228, 179, 99, .08);
  backdrop-filter: blur(8px);
}
.meeting-eyebrow-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 10px rgba(228, 179, 99, .7);
}

.meeting-hero-stats {
  border-top: 1px solid rgba(245, 239, 230, .18);
  padding-top: 22px;
}
.meeting-hero-stats > div {
  display: flex; flex-direction: column; gap: 4px;
}
.meeting-hero-stats b {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--cream);
  letter-spacing: -0.02em;
}
.meeting-hero-stats span {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .62);
}

/* Hero inner layout — content-driven, wizard zit in de hero */
.meeting-hero-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.meeting-hero-text--center { text-align: center; }
.meeting-hero-text--center .meeting-eyebrow { justify-content: center; }

/* Wizard-kaart die binnen de hero leeft — extra depth + bevel tegen de wijngaard-bg */
.meeting-reserveer-card--in-hero {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .14);
  border-radius: 28px;
  padding: 22px 18px 26px;
  box-shadow:
    0 50px 100px -40px rgba(10, 6, 3, .6),
    0 20px 40px -18px rgba(10, 6, 3, .35);
  text-align: left;
}
@media (min-width: 640px)  { .meeting-reserveer-card--in-hero { padding: 32px 28px 36px; border-radius: 32px; } }
@media (min-width: 1024px) { .meeting-reserveer-card--in-hero { padding: 40px 44px 44px; } }

.meeting-hero-text--full { max-width: 820px; }

/* Hero CTA-knoppen */
.meeting-hero-cta {
  /* flex wrap + gap zijn inline */
}
.meeting-hero-cta-primary {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px;
  background: var(--honey);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  box-shadow: 0 14px 32px -10px rgba(228, 179, 99, .55);
  transition: all .2s;
}
.meeting-hero-cta-primary:hover {
  background: var(--honey-soft);
  transform: translateY(-2px);
  box-shadow: 0 18px 38px -10px rgba(228, 179, 99, .7);
}
.meeting-hero-cta-primary svg { transition: transform .2s; }
.meeting-hero-cta-primary:hover svg { transform: translateX(3px); }

.meeting-hero-cta-ghost {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 14px 22px;
  background: rgba(245, 239, 230, .1);
  color: var(--cream);
  border: 1.5px solid rgba(245, 239, 230, .35);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: all .2s;
}
.meeting-hero-cta-ghost:hover {
  background: rgba(245, 239, 230, .2);
  border-color: rgba(245, 239, 230, .55);
}

/* ----- Booking wizard section (voorheen in de hero) ----- */
.meeting-reserveer {
  background: var(--cream-warm);
  position: relative;
  overflow: hidden;
}
.meeting-reserveer > div { position: relative; z-index: 1; }
.meeting-reserveer-head {
  text-align: center;
  margin-bottom: 36px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}
.meeting-reserveer-head .sec-eyebrow {
  justify-content: center;
  display: inline-flex;
}
.meeting-reserveer-lede {
  margin-top: 14px;
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-soft);
}

.meeting-reserveer-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .12);
  border-radius: 28px;
  padding: 24px 20px 28px;
  box-shadow:
    0 40px 90px -40px rgba(30, 20, 10, .4),
    0 12px 28px -16px rgba(30, 20, 10, .18);
  scroll-margin-top: 80px;
}
@media (min-width: 640px)  { .meeting-reserveer-card { padding: 32px 28px 36px; border-radius: 32px; } }
@media (min-width: 1024px) { .meeting-reserveer-card { padding: 44px 48px 48px; } }

/* Booking card (hero right) — constrained width, rechts uitgelijnd */
.meeting-booking {
  width: 100%;
  max-width: 440px;
  margin-left: auto;
  background: rgba(245, 239, 230, .96);
  border-radius: 28px;
  padding: 28px;
  box-shadow:
    0 40px 80px -30px rgba(10, 6, 3, .55),
    0 10px 28px -10px rgba(10, 6, 3, .25);
  color: var(--ink);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(228, 179, 99, .25);
}
@media (min-width: 1024px) {
  .meeting-booking { padding: 32px; }
}

.meeting-booking-head {
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.meeting-booking-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  display: block;
  margin-bottom: 6px;
}
.meeting-booking-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0;
}

.meeting-booking-field { margin-bottom: 18px; }
.meeting-booking-field:last-of-type { margin-bottom: 12px; }

.meeting-booking-label {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  font-weight: 500;
}
.meeting-booking-hint {
  font-size: 11.5px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--bordeaux);
  font-weight: 500;
}

/* Screenreader-only helper */
.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;
}

/* Date toolbar (maand label + week nav) */
.meeting-dates-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  min-height: 28px;
}
.meeting-dates-month {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 13.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
  color: var(--ink-soft);
  text-transform: capitalize;
  transition: color .2s;
}
.meeting-dates-nav {
  display: flex; gap: 6px;
  flex-shrink: 0;
}
.meeting-dates-nav button {
  width: 28px; height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .16);
  background: #fff;
  color: var(--walnut);
  display: grid; place-items: center;
  cursor: pointer;
  transition: border-color .2s, background .2s, color .2s, transform .15s, box-shadow .2s;
}
.meeting-dates-nav button:hover:not(:disabled) {
  border-color: var(--honey);
  color: var(--bordeaux);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -4px rgba(228, 179, 99, .4);
}
.meeting-dates-nav button:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.meeting-dates-nav button:disabled {
  opacity: .35;
  cursor: not-allowed;
}

/* Date scroller */
.meeting-dates {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  padding: 2px 2px 6px;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(139, 90, 43, .25) transparent;
  scroll-behavior: smooth;
}
.meeting-dates::-webkit-scrollbar { height: 4px; }
.meeting-dates::-webkit-scrollbar-track { background: transparent; }
.meeting-dates::-webkit-scrollbar-thumb { background: rgba(139, 90, 43, .25); border-radius: 10px; }

.meeting-date {
  flex-shrink: 0;
  scroll-snap-align: start;
  min-width: 56px;
  min-height: 64px;
  padding: 10px 6px 12px;
  border-radius: 14px;
  border: 1px solid rgba(139, 90, 43, .14);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  transition: background .2s, border-color .2s, transform .18s, color .2s, box-shadow .2s;
  position: relative;
}
.meeting-date:hover:not(:disabled) {
  border-color: var(--honey);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px -4px rgba(228, 179, 99, .5);
}
.meeting-date:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .38);
  z-index: 2;
}
.meeting-date.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 8px 20px -10px rgba(61, 43, 31, .55);
}
.meeting-date.is-selected:focus-visible {
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .55), 0 8px 20px -10px rgba(61, 43, 31, .55);
}
.meeting-date.is-disabled,
.meeting-date:disabled {
  opacity: .32;
  cursor: not-allowed;
}
/* Subtiele markering voor eerste van de maand — geeft visueel ritme bij scrollen */
.meeting-date.is-first-of-month:not(.is-selected)::before {
  content: '';
  position: absolute;
  top: 6px; right: 6px;
  width: 4px; height: 4px;
  border-radius: 999px;
  background: var(--honey);
  opacity: .65;
}
@media (prefers-reduced-motion: reduce) {
  .meeting-date,
  .meeting-dates-nav button { transition: none; }
  .meeting-date:hover:not(:disabled) { transform: none; }
  .meeting-dates { scroll-behavior: auto; }
}
.meeting-date-day {
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.meeting-date.is-selected .meeting-date-day,
.meeting-date.is-selected .meeting-date-month { color: rgba(245, 239, 230, .7); }
.meeting-date-num {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}
.meeting-date-month {
  font-size: 10.5px;
  color: var(--ink-soft);
  letter-spacing: 0.08em;
  text-transform: lowercase;
}

/* Custom arrangement dropdown */
.meeting-select {
  position: relative;
}
.meeting-select-btn {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  width: 100%;
  padding: 13px 16px;
  background: #fff;
  border: 1px solid rgba(139, 90, 43, .18);
  border-radius: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.meeting-select-btn:hover { border-color: rgba(139, 90, 43, .32); }
.meeting-select-btn:focus-visible,
.meeting-select-btn.is-open {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .18);
}
.meeting-select-value {
  font-weight: 500;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.meeting-select-chev {
  color: var(--walnut);
  flex-shrink: 0;
  transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.meeting-select-btn.is-open .meeting-select-chev { transform: rotate(180deg); }

.meeting-select-panel {
  position: absolute;
  top: calc(100% + 6px);
  left: 0; right: 0;
  z-index: 50;
  background: #fff;
  border: 1px solid rgba(139, 90, 43, .18);
  border-radius: 14px;
  padding: 6px;
  box-shadow:
    0 20px 40px -16px rgba(30, 20, 10, .25),
    0 8px 20px -8px rgba(30, 20, 10, .12);
  display: flex; flex-direction: column;
  gap: 2px;
}
.meeting-select-enter { transition: opacity .2s ease, transform .25s cubic-bezier(.2, .7, .2, 1); }
.meeting-select-enter-start { opacity: 0; transform: translateY(-6px); }
.meeting-select-enter-end { opacity: 1; transform: translateY(0); }

.meeting-select-option {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 11px 14px;
  background: transparent;
  border: 0;
  border-radius: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: background .18s, color .18s;
}
.meeting-select-option:hover { background: rgba(228, 179, 99, .14); }
.meeting-select-option.is-selected {
  background: rgba(228, 179, 99, .22);
  color: var(--bordeaux);
  font-weight: 600;
}
.meeting-select-check {
  color: var(--bordeaux);
  flex-shrink: 0;
}

.meeting-stepper {
  display: flex; align-items: center; justify-content: space-between;
  padding: 4px;
  background: #fff;
  border: 1px solid rgba(139, 90, 43, .18);
  border-radius: 999px;
}
.meeting-stepper button {
  width: 34px; height: 34px;
  border-radius: 999px;
  border: 0; background: transparent;
  color: var(--honey);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.meeting-stepper button:hover:not(:disabled) {
  background: rgba(228, 179, 99, .16);
  transform: scale(1.05);
}
.meeting-stepper button:disabled {
  color: rgba(139, 90, 43, .3);
  cursor: not-allowed;
}
.meeting-stepper-value {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 15px;
  color: var(--ink);
  letter-spacing: -0.005em;
}

.meeting-booking-note {
  font-size: 11.5px;
  color: var(--muted);
  margin-top: 8px;
  line-height: 1.4;
}

.meeting-booking-submit {
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 22px;
  background: var(--honey);
  color: var(--bordeaux);
  border: 0;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 10px 22px -10px rgba(228, 179, 99, .55);
  margin-top: 4px;
}
.meeting-booking-submit:hover {
  background: var(--honey-soft);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(228, 179, 99, .7);
}
.meeting-booking-submit svg { transition: transform .2s; }
.meeting-booking-submit:hover svg { transform: translateX(3px); }

.meeting-booking-fineprint {
  font-size: 11px;
  color: var(--muted);
  text-align: center;
  margin-top: 12px;
  letter-spacing: 0.02em;
}

/* ----- Intro ----- */
.meeting-intro { background: var(--paper); }
.meeting-intro-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .meeting-intro-grid {
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
  }
}
.meeting-intro-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 36px 32px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) {
  .meeting-intro-card { padding: 48px 44px; }
}
.meeting-intro-p {
  font-size: 15.5px; line-height: 1.7;
  color: var(--ink-soft);
  margin: 16px 0 0;
}
.meeting-intro-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.meeting-intro-features > div {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  color: var(--ink);
  font-weight: 500;
}
.meeting-intro-features svg { color: var(--walnut); flex-shrink: 0; }

.meeting-intro-visual {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 32px;
  overflow: hidden;
  box-shadow: 0 30px 60px -30px rgba(30, 20, 10, .35);
  margin: 0;
}
.meeting-intro-visual-img {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .1) 0%, rgba(20, 12, 6, .4) 100%),
    url("https://images.unsplash.com/photo-1505252585461-04db1eb84625?w=1400&q=85&auto=format&fit=crop");
  background-size: cover;
  background-position: center;
}
.meeting-intro-visual-cap {
  position: absolute; bottom: 24px; left: 24px; right: 24px;
  display: flex; flex-direction: column; gap: 3px;
  color: var(--cream);
}
.meeting-intro-visual-k {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.meeting-intro-visual-v {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .7);
}

/* ----- Arrangementen ----- */
.meeting-arrangementen { background: var(--cream-warm); }
.meeting-arr-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .meeting-arr-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .meeting-arr-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

.meeting-arr-card {
  position: relative;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  padding: 30px 28px 28px;
  display: flex; flex-direction: column; gap: 14px;
  box-shadow:
    0 16px 40px -24px rgba(30, 20, 10, .2),
    0 6px 14px -10px rgba(30, 20, 10, .08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.meeting-arr-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 24px 50px -24px rgba(30, 20, 10, .3),
    0 10px 22px -8px rgba(30, 20, 10, .15);
}
.meeting-arr-num {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 12px;
  color: var(--muted);
  letter-spacing: 0.08em;
}
.meeting-arr-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
  text-wrap: balance;
}
.meeting-arr-desc {
  font-size: 14px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}
.meeting-arr-list {
  list-style: none; padding: 0; margin: 8px 0 0;
  display: flex; flex-direction: column; gap: 8px;
  padding-top: 16px;
  border-top: 1px solid rgba(139, 90, 43, .12);
}
.meeting-arr-list li {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px; line-height: 1.45;
  color: var(--ink);
  font-weight: 500;
}
.meeting-arr-list li::before {
  content: "";
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--honey);
  flex-shrink: 0;
  margin-top: 7px;
}

.meeting-arr-card--featured {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow:
    0 24px 60px -24px rgba(61, 43, 31, .6),
    inset 0 0 0 1px rgba(228, 179, 99, .16);
}
.meeting-arr-card--featured .meeting-arr-num { color: var(--honey-soft); }
.meeting-arr-card--featured .meeting-arr-title { color: var(--cream); }
.meeting-arr-card--featured .meeting-arr-desc { color: rgba(245, 239, 230, .82); }
.meeting-arr-card--featured .meeting-arr-list { border-top-color: rgba(245, 239, 230, .12); }
.meeting-arr-card--featured .meeting-arr-list li { color: var(--cream); }
.meeting-arr-card--featured .meeting-arr-list li::before { background: var(--honey); }

.meeting-arr-badge {
  position: absolute;
  top: -10px; right: 22px;
  background: var(--honey);
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  box-shadow: 0 6px 14px -4px rgba(228, 179, 99, .55);
}

.meeting-arr-card--ghost {
  background: transparent;
  border: 1.5px dashed rgba(139, 90, 43, .35);
  box-shadow: none;
}
.meeting-arr-card--ghost:hover {
  background: rgba(228, 179, 99, .08);
  border-color: var(--honey);
  transform: translateY(-4px);
}
.meeting-arr-ghost-icon {
  width: 44px; height: 44px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .2);
  color: var(--bordeaux);
  display: grid; place-items: center;
}
.meeting-arr-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-weight: 600;
  font-size: 13.5px;
  text-decoration: none;
  margin-top: auto;
  transition: gap .2s, color .2s;
}
.meeting-arr-link:hover { gap: 10px; color: var(--bordeaux-deep); }

/* ----- Catering ----- */
.meeting-catering { background: var(--paper); }
.meeting-catering-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .meeting-catering-grid {
    grid-template-columns: 1fr 1.1fr;
    gap: 56px;
    align-items: stretch;
  }
}
.meeting-catering-visual {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 32px;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 30px 60px -30px rgba(30, 20, 10, .35);
}
.meeting-catering-img {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .08) 0%, rgba(20, 12, 6, .3) 100%),
    url("https://images.unsplash.com/photo-1414235077428-338989a2e8c0?w=1400&q=85&auto=format&fit=crop");
  background-size: cover;
  background-position: center;
}
.meeting-catering-tag {
  position: absolute;
  top: 24px; left: 24px;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  background: rgba(245, 239, 230, .88);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  backdrop-filter: blur(8px);
  box-shadow: 0 4px 12px -4px rgba(30, 20, 10, .25);
}

.meeting-catering-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 36px 32px;
  align-self: center;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) {
  .meeting-catering-card { padding: 48px 44px; }
}
.meeting-catering-p {
  font-size: 15.5px; line-height: 1.7;
  color: var(--ink-soft);
  margin: 16px 0 0;
}
.meeting-catering-badges {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 24px;
}
.meeting-catering-badges span {
  padding: 7px 14px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* ----- Meer doen ----- */
.meeting-more { background: var(--cream-warm); }
.meeting-more-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .meeting-more-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .meeting-more-grid { grid-template-columns: repeat(4, 1fr); } }

.meeting-more-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 24px 22px;
  display: flex; flex-direction: column; gap: 10px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.meeting-more-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 14px 30px -16px rgba(30, 20, 10, .2);
}
.meeting-more-card svg {
  color: var(--honey);
  padding: 10px;
  background: rgba(228, 179, 99, .14);
  border-radius: 12px;
  width: 42px;
  height: 42px;
  flex-shrink: 0;
}
.meeting-more-card h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
}
.meeting-more-card p {
  font-size: 13px; line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}

/* ----- Waarom kiezen (donker vlak) ----- */
.meeting-why { background: var(--paper); }
.meeting-why-card {
  background:
    radial-gradient(500px 400px at 20% 0%, rgba(228, 179, 99, .22), transparent 60%),
    linear-gradient(160deg, #1a100a 0%, #3d2b1f 60%, #5a3d2a 100%);
  color: var(--cream);
  border-radius: 32px;
  padding: 44px 36px;
  display: grid;
  gap: 36px;
  grid-template-columns: 1fr;
  box-shadow: 0 30px 60px -30px rgba(10, 6, 3, .5);
}
@media (min-width: 1024px) {
  .meeting-why-card {
    grid-template-columns: 1fr 1.4fr;
    padding: 64px 56px;
    gap: 72px;
    align-items: center;
  }
}
/* Em-woord "karakter" → honey op de donkere card (ipv bordeaux) */
.meeting-why-card .sec-title em { color: var(--honey-soft); }

.meeting-why-list {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .meeting-why-list { grid-template-columns: 1fr 1fr; gap: 32px 28px; } }
.meeting-why-item {
  display: flex; gap: 14px; align-items: flex-start;
}
.meeting-why-icon {
  flex-shrink: 0;
  width: 40px; height: 40px;
  border-radius: 12px;
  background: rgba(228, 179, 99, .14);
  color: var(--honey);
  display: grid; place-items: center;
  margin-top: 2px;
}
.meeting-why-item h4 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--cream);
  margin: 0 0 5px;
}
.meeting-why-item p {
  font-size: 13.5px; line-height: 1.55;
  color: rgba(245, 239, 230, .72);
  margin: 0;
}

/* ----- Contact Arina ----- */
.meeting-contact { background: var(--cream-warm); }
.meeting-contact-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 40px 32px;
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
  align-items: center;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
@media (min-width: 768px) {
  .meeting-contact-card {
    grid-template-columns: auto 1fr;
    padding: 52px 52px;
    gap: 44px;
  }
}
.meeting-contact-avatar {
  width: 120px; height: 120px;
  border-radius: 999px;
  display: grid; place-items: center;
  background:
    radial-gradient(80% 80% at 30% 20%, var(--honey-soft), var(--bordeaux));
  color: var(--cream);
  font-family: 'Parisienne', 'Dancing Script', cursive;
  font-size: 72px;
  line-height: 1;
  padding-bottom: 12px;
  box-shadow:
    0 20px 40px -16px rgba(61, 43, 31, .5),
    inset 0 0 0 4px rgba(245, 239, 230, .15);
  justify-self: center;
}
.meeting-contact-p {
  font-size: 15.5px; line-height: 1.65;
  color: var(--ink-soft);
  margin: 14px 0 22px;
  max-width: 560px;
}
.meeting-contact-actions {
  display: flex; flex-wrap: wrap;
  align-items: center; gap: 16px;
}
.meeting-contact-cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px;
  background: var(--bordeaux);
  color: var(--cream);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  text-decoration: none;
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
  transition: background .2s, transform .2s, box-shadow .2s;
}
.meeting-contact-cta:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.meeting-contact-alt {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 500;
  text-decoration: none;
  transition: gap .2s, color .2s;
}
.meeting-contact-alt:hover { gap: 10px; color: var(--bordeaux-deep); }

/* ----- Mobile responsive refinements ----- */
@media (max-width: 1023px) {
  .meeting-hero .relative.z-10 {
    padding-top: 140px !important;
    padding-bottom: 80px !important;
  }
  .meeting-hero-stats { flex-wrap: wrap; gap: 16px 22px !important; }
  .meeting-hero-stats b { font-size: 18px; }
}
@media (max-width: 767px) {
  .meeting-hero {
    min-height: calc(100svh - 24px);
    border-radius: 24px;
  }
  .meeting-hero .relative.z-10 {
    padding-left: 20px !important;
    padding-right: 20px !important;
    gap: 32px !important;
  }
  .meeting-booking { padding: 22px; border-radius: 24px; }
  .meeting-booking-title { font-size: 19px; }
  .meeting-intro, .meeting-arrangementen, .meeting-catering,
  .meeting-more, .meeting-why, .meeting-contact {
    padding-left: 0; padding-right: 0;
  }
  .meeting-intro > div, .meeting-arrangementen > div,
  .meeting-catering > div, .meeting-more > div,
  .meeting-why > div, .meeting-contact > div {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
  }
  .meeting-why-card { padding: 36px 28px; }
  .meeting-contact-card { padding: 34px 24px; }
  .meeting-contact-avatar { width: 96px; height: 96px; font-size: 54px; padding-bottom: 8px; }
  .meeting-intro-features { grid-template-columns: 1fr; }
}

/* =========================================================================
   ALCOHOLVRIJ PAGE
   ========================================================================= */

/* ----- Hero ----- */
.alcohol-hero {
  position: relative;
  color: var(--cream);
  overflow: hidden;
  background: #2e1a0f;
  box-shadow:
    0 40px 80px -40px rgba(30, 20, 10, .45),
    0 10px 30px -15px rgba(30, 20, 10, .25);
}
.alcohol-hero-bg {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(120deg, rgba(20, 12, 6, .75) 0%, rgba(20, 12, 6, .45) 55%, rgba(20, 12, 6, .25) 100%),
    url("../images/hero/hero_bg_1.jpg");
  background-size: cover;
  background-position: center;
}
.alcohol-hero-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(70% 90% at 20% 40%, rgba(20, 12, 6, .45), transparent 75%),
    linear-gradient(180deg, rgba(20, 12, 6, .32) 0%, transparent 30%, transparent 55%, rgba(20, 12, 6, .55) 100%);
}

.alcohol-hero-inner {
  min-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.alcohol-hero-text { max-width: 720px; }

.alcohol-hero-stats > div {
  display: flex; flex-direction: column; gap: 4px;
}
.alcohol-hero-stats b {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--cream);
  letter-spacing: -0.02em;
}
.alcohol-hero-stats span {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .62);
}

/* ----- Intro ----- */
.alcohol-intro { background: var(--paper); }
.alcohol-intro-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .alcohol-intro-grid {
    grid-template-columns: 1.15fr 1fr;
    gap: 56px;
    align-items: center;
  }
}
.alcohol-intro-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 36px 32px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) { .alcohol-intro-card { padding: 48px 44px; } }

.alcohol-intro-visual {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 32px;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 30px 60px -30px rgba(30, 20, 10, .35);
}
.alcohol-intro-visual-img {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .05) 0%, rgba(20, 12, 6, .4) 100%),
    url("https://images.unsplash.com/photo-1524592094714-0f0654e20314?w=1400&q=85&auto=format&fit=crop");
  background-size: cover;
  background-position: center;
}
.alcohol-intro-visual-cap {
  position: absolute; bottom: 24px; left: 24px;
  display: flex; flex-direction: column; gap: 3px;
  color: var(--cream);
}
.alcohol-intro-visual-k {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 20px;
  font-weight: 500;
}
.alcohol-intro-visual-v {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .75);
}

/* ----- Betuwse Bruis: twee flessen ----- */
.alcohol-bruis { background: var(--cream-warm); }
.alcohol-bottles-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .alcohol-bottles-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
}

.alcohol-bottle-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 40px 32px 36px;
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 28px;
  align-items: center;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
  transition: transform .3s ease, box-shadow .3s ease;
}
.alcohol-bottle-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 32px 70px -28px rgba(30, 20, 10, .32),
    0 12px 24px -10px rgba(30, 20, 10, .15);
}
@media (max-width: 640px) {
  .alcohol-bottle-card { grid-template-columns: 80px 1fr; padding: 28px 22px; gap: 18px; }
}

.alcohol-bottle-svg svg {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 16px 24px rgba(30, 20, 10, .3));
}

.alcohol-bottle-body { min-width: 0; }
.alcohol-bottle-meta {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--honey);
  font-weight: 600;
  margin-bottom: 8px;
}
.alcohol-bottle-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 10px;
}
.alcohol-bottle-title em { color: var(--bordeaux); font-style: italic; }
.alcohol-bottle-desc {
  font-size: 14px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}
.alcohol-bottle-tags {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 14px;
}
.alcohol-bottle-tags span {
  padding: 5px 10px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.02em;
}

/* ----- Botanicals (HopHout/VeldFlora/Verjus) ----- */
.alcohol-botanicals { background: var(--paper); }
.alcohol-botanicals-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .alcohol-botanicals-grid { grid-template-columns: repeat(3, 1fr); gap: 24px; } }

.alcohol-bot-card .alcohol-bot-icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  background: rgba(228, 179, 99, .16);
  color: var(--honey);
  display: grid; place-items: center;
  margin-bottom: 4px;
}

/* ----- Featured product (pakket) ----- */
.alcohol-featured { background: var(--cream-warm); }
.alcohol-package-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  box-shadow:
    0 32px 80px -28px rgba(30, 20, 10, .35),
    0 12px 24px -10px rgba(30, 20, 10, .15);
}
@media (min-width: 1024px) {
  .alcohol-package-card { grid-template-columns: 1.1fr 1fr; }
}

.alcohol-package-visual {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  min-height: 280px;
}
@media (min-width: 1024px) { .alcohol-package-visual { aspect-ratio: auto; min-height: 100%; } }
.alcohol-package-visual img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.alcohol-package-badge {
  position: absolute;
  top: 20px; left: 20px;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: rgba(245, 239, 230, .92);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px -6px rgba(30, 20, 10, .3);
}
.alcohol-package-badge-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 10px rgba(228, 179, 99, .7);
}
.alcohol-package-badge-k {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.alcohol-package-badge-v {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--bordeaux);
  line-height: 1;
}

.alcohol-package-body {
  padding: 36px 32px;
  display: flex; flex-direction: column; gap: 24px;
}
@media (min-width: 1024px) { .alcohol-package-body { padding: 52px 48px; } }

.alcohol-package-body .product-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bordeaux);
  font-weight: 600;
  margin-bottom: 12px;
  display: inline-block;
}

.alcohol-package-desc {
  font-size: 15.5px; line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
}
.alcohol-package-list {
  list-style: none; padding: 0;
  margin: 0;
  display: flex; flex-direction: column; gap: 10px;
  padding-top: 20px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.alcohol-package-list li {
  display: flex; align-items: center; gap: 10px;
  font-size: 13.5px; line-height: 1.45;
  color: var(--ink);
  font-weight: 500;
}
.alcohol-package-list li svg {
  width: 24px; height: 24px;
  padding: 4px;
  border-radius: 50%;
  background: rgba(228, 179, 99, .22);
  color: var(--bordeaux);
  flex-shrink: 0;
}

.alcohol-package-footer {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.alcohol-package-price { display: flex; flex-direction: column; gap: 2px; }
.alcohol-package-price-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.alcohol-package-price-value {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 36px;
  line-height: 1;
  color: var(--bordeaux);
  letter-spacing: -0.02em;
}
.alcohol-package-price-value small {
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0;
}
.alcohol-package-price-strike {
  font-size: 13px;
  color: var(--muted);
  text-decoration: line-through;
  margin-top: 4px;
}
.alcohol-package-cta {
  background: var(--honey) !important;
  color: var(--bordeaux) !important;
  border: 0;
  cursor: pointer;
  padding: 14px 22px;
  font-size: 14px;
  font-weight: 600;
  box-shadow: 0 10px 22px -10px rgba(228, 179, 99, .55);
}
.alcohol-package-cta:hover { background: var(--honey-soft) !important; }

/* ----- Linge lijn mini cards ----- */
.alcohol-linge { background: var(--paper); }
.alcohol-linge-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .alcohol-linge-grid { grid-template-columns: repeat(3, 1fr); } }

.alcohol-linge-card {
  position: relative;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 26px 24px;
  display: flex; flex-direction: column; gap: 12px;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}
.alcohol-linge-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px -18px rgba(30, 20, 10, .25);
}
.alcohol-linge-swatch {
  width: 100%; height: 80px;
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);
}
.alcohol-linge-card h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0;
}
.alcohol-linge-card p {
  font-size: 13.5px; line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}

/* ----- Bestellen & ophalen ----- */
.alcohol-order { background: var(--cream-warm); }
.alcohol-order-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .alcohol-order-grid { grid-template-columns: 1fr 1fr; gap: 28px; } }

.alcohol-order-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  padding: 34px 28px 30px;
  display: flex; flex-direction: column; gap: 16px;
  box-shadow:
    0 20px 50px -30px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
.alcohol-order-icon {
  width: 50px; height: 50px;
  border-radius: 16px;
  background: rgba(228, 179, 99, .2);
  color: var(--bordeaux);
  display: grid; place-items: center;
}
.alcohol-order-card h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.15;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin: 0;
}
.alcohol-order-card p {
  font-size: 14px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}
.alcohol-order-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.alcohol-order-list li {
  display: flex; justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .14);
  font-size: 13.5px;
}
.alcohol-order-list li:last-child { border-bottom: 0; }
.alcohol-order-list b { font-family: 'Fraunces', serif; font-weight: 500; color: var(--ink); }
.alcohol-order-list span { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.alcohol-order-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-weight: 600;
  font-size: 13.5px;
  text-decoration: none;
  margin-top: auto;
  transition: gap .2s, color .2s;
}
.alcohol-order-link:hover { gap: 10px; color: var(--bordeaux-deep); }

/* ----- Contact CTA ----- */
.alcohol-contact-cta { background: var(--paper); }
/* Em-woord → honey op de donkere card (anders valt bordeaux weg) */
.alcohol-contact-card .sec-title em { color: var(--honey-soft); }
.alcohol-contact-card {
  background:
    radial-gradient(500px 400px at 20% 0%, rgba(228, 179, 99, .22), transparent 60%),
    linear-gradient(160deg, #1a100a 0%, #3d2b1f 60%, #5a3d2a 100%);
  color: var(--cream);
  border-radius: 32px;
  padding: 42px 32px;
  display: grid;
  gap: 28px;
  grid-template-columns: 1fr;
  align-items: center;
  box-shadow: 0 30px 60px -30px rgba(10, 6, 3, .5);
}
@media (min-width: 1024px) {
  .alcohol-contact-card {
    grid-template-columns: 1.3fr 1fr;
    padding: 56px 52px;
    gap: 48px;
  }
}
.alcohol-contact-p {
  font-size: 14.5px; line-height: 1.6;
  color: rgba(245, 239, 230, .78);
  margin: 14px 0 0;
  max-width: 480px;
}
.alcohol-contact-actions {
  display: flex; flex-wrap: wrap; gap: 12px;
}
.alcohol-contact-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 13px 22px;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.005em;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s, color .2s;
}
.alcohol-contact-btn--primary {
  background: var(--honey);
  color: var(--bordeaux);
  box-shadow: 0 10px 22px -10px rgba(228, 179, 99, .55);
}
.alcohol-contact-btn--primary:hover {
  background: var(--honey-soft);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(228, 179, 99, .7);
}
.alcohol-contact-btn--ghost {
  background: transparent;
  color: var(--cream);
  border: 1px solid rgba(245, 239, 230, .3);
}
.alcohol-contact-btn--ghost:hover {
  background: rgba(245, 239, 230, .08);
  border-color: rgba(245, 239, 230, .55);
}

/* ----- Mobile refinements ----- */
@media (max-width: 1023px) {
  .alcohol-hero-inner { padding-top: 130px !important; padding-bottom: 70px !important; }
  .alcohol-hero-stats { flex-wrap: wrap; gap: 14px 22px !important; }
  .alcohol-hero-stats b { font-size: 18px; }
}
@media (max-width: 767px) {
  .alcohol-hero { min-height: calc(100svh - 24px); border-radius: 24px; }
  .alcohol-hero-inner { padding-left: 20px !important; padding-right: 20px !important; }
  .alcohol-intro, .alcohol-bruis, .alcohol-botanicals, .alcohol-featured,
  .alcohol-linge, .alcohol-order, .alcohol-contact-cta { padding-left: 0; padding-right: 0; }
  .alcohol-intro > div, .alcohol-bruis > div, .alcohol-botanicals > div, .alcohol-featured > div,
  .alcohol-linge > div, .alcohol-order > div, .alcohol-contact-cta > div {
    padding-top: 60px !important; padding-bottom: 60px !important;
  }
  .alcohol-package-body { padding: 28px 22px; gap: 18px; }
  .alcohol-package-price-value { font-size: 30px; }
  .alcohol-bottle-title { font-size: 22px; }
  .alcohol-contact-card { padding: 32px 24px; }
}

/* =========================================================================
   CONTACT PAGE
   ========================================================================= */
.contact-page {
  position: relative;
  overflow: hidden;
  background: var(--cream-warm);
  padding: 128px 24px 72px;
  min-height: 100vh;
}
@media (min-width: 1024px) { .contact-page { padding: 138px 64px 96px; } }
@media (min-width: 768px) and (max-width: 1023px) { .contact-page { padding: 132px 48px 80px; } }

.contact-page-inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
}

/* Head */
.contact-head {
  max-width: 760px;
  margin-bottom: 40px;
}
.contact-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 4.4vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}
.contact-title em { color: var(--bordeaux); font-style: italic; }
.contact-lede {
  font-size: 16px; line-height: 1.65;
  color: var(--ink-soft);
  margin-top: 20px;
  max-width: 580px;
}

/* Quick contact row (3 cards) */
.contact-quick {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
  margin-bottom: 32px;
}
@media (min-width: 768px) { .contact-quick { grid-template-columns: repeat(3, 1fr); gap: 20px; } }

.contact-quick-card {
  display: flex; align-items: center; gap: 14px;
  padding: 20px 22px;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 20px;
  text-decoration: none;
  color: var(--ink);
  box-shadow:
    0 14px 32px -22px rgba(30, 20, 10, .2),
    0 4px 10px -6px rgba(30, 20, 10, .08);
  transition: transform .25s ease, box-shadow .25s ease, border-color .2s;
}
.contact-quick-card:hover {
  transform: translateY(-3px);
  border-color: rgba(228, 179, 99, .45);
  box-shadow:
    0 20px 40px -20px rgba(30, 20, 10, .28),
    0 8px 16px -6px rgba(30, 20, 10, .14);
}
.contact-quick-icon {
  flex-shrink: 0;
  width: 46px; height: 46px;
  border-radius: 14px;
  background: rgba(228, 179, 99, .2);
  color: var(--bordeaux);
  display: grid; place-items: center;
}
.contact-quick-body {
  display: flex; flex-direction: column; gap: 2px;
  min-width: 0;
  flex: 1;
}
.contact-quick-k {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.contact-quick-v {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15.5px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.01em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.contact-quick-arrow {
  color: var(--walnut);
  transition: transform .2s;
  flex-shrink: 0;
}
.contact-quick-card:hover .contact-quick-arrow { transform: translate(2px, -2px); color: var(--bordeaux); }

/* Grid: form + side */
.contact-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .contact-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr);
    gap: 32px;
    align-items: start;
  }
}

/* Form card */
.contact-form-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 32px 28px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
@media (min-width: 1024px) { .contact-form-card { padding: 48px 44px; } }

.contact-form-head {
  padding-bottom: 22px;
  margin-bottom: 26px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.contact-form-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
  display: block;
  margin-bottom: 6px;
}
.contact-form-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 26px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}

.contact-form-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) {
  .contact-form-grid { grid-template-columns: 1fr 1fr; }
}

.contact-form-foot {
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between;
  gap: 16px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.contact-form-note {
  font-size: 12.5px;
  color: var(--muted);
  margin: 0;
  max-width: 360px;
  line-height: 1.5;
}
.contact-form-submit {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 24px;
  background: var(--bordeaux);
  color: var(--cream);
  border: 0;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.contact-form-submit:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.contact-form-submit svg { transition: transform .2s; }
.contact-form-submit:hover svg { transform: translateX(3px); }

/* Alerts */
.contact-alert {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px;
  margin-bottom: 22px;
  border-radius: 14px;
  font-size: 13.5px;
}
.contact-alert--success {
  background: rgba(45, 58, 42, .1);
  color: #2d3a2a;
  border: 1px solid rgba(45, 58, 42, .22);
}
.contact-alert--error {
  background: rgba(178, 34, 34, .08);
  color: #8a1b1b;
  border: 1px solid rgba(178, 34, 34, .22);
}

/* Side column */
.contact-side {
  display: flex; flex-direction: column; gap: 18px;
}
.contact-side-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 28px;
  box-shadow:
    0 20px 50px -30px rgba(30, 20, 10, .22),
    0 6px 14px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) { .contact-side-card { padding: 32px; } }

.contact-side-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 4px 0 10px;
}
.contact-side-p {
  font-size: 13.5px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0 0 14px;
}
.contact-side-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-weight: 600;
  font-size: 13px;
  text-decoration: none;
  transition: gap .2s, color .2s;
}
.contact-side-link:hover { gap: 10px; color: var(--bordeaux-deep); }

/* Arina dark card */
.contact-side-card--dark {
  background:
    radial-gradient(400px 300px at 0% 0%, rgba(228, 179, 99, .22), transparent 60%),
    linear-gradient(160deg, #1a100a 0%, #3d2b1f 60%, #5a3d2a 100%);
  color: var(--cream);
  border-color: transparent;
  display: grid;
  grid-template-columns: 64px 1fr;
  gap: 18px;
  align-items: start;
}
.contact-side-card--dark .sec-eyebrow,
.contact-side-card--dark .contact-arina-eyebrow {
  color: var(--honey-soft);
}
.contact-arina-avatar {
  width: 64px; height: 64px;
  border-radius: 999px;
  background: radial-gradient(80% 80% at 30% 20%, var(--honey-soft), var(--bordeaux));
  color: var(--cream);
  display: grid; place-items: center;
  font-family: 'Parisienne', 'Dancing Script', cursive;
  font-size: 40px;
  padding-bottom: 6px;
  box-shadow: inset 0 0 0 3px rgba(245, 239, 230, .15);
  flex-shrink: 0;
}
.contact-arina-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  display: block;
  margin-bottom: 6px;
}
.contact-arina-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--cream);
  letter-spacing: -0.015em;
  margin: 0 0 8px;
}
.contact-arina-p {
  font-size: 13px; line-height: 1.55;
  color: rgba(245, 239, 230, .72);
  margin: 0 0 14px;
}
.contact-arina-cta {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  background: var(--honey);
  color: var(--bordeaux);
  text-decoration: none;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  transition: background .2s, transform .2s;
}
.contact-arina-cta:hover { background: var(--honey-soft); transform: translateY(-1px); }

/* Map */
.contact-map-wrap {
  margin-top: 56px;
}
.contact-map-wrap .sec-title em { color: var(--bordeaux); }
.contact-map-box {
  position: relative;
  border-radius: 32px;
  overflow: hidden;
  min-height: 440px;
  background: var(--cream-warm);
  border: 1px solid rgba(139, 90, 43, .1);
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .25),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}

/* Mobile refinements */
@media (max-width: 767px) {
  .contact-page { padding: 120px 16px 48px; }
  .contact-title { font-size: clamp(32px, 9vw, 44px); }
  .contact-head { margin-bottom: 28px; }
  .contact-quick-card { padding: 16px 18px; }
  .contact-quick-icon { width: 42px; height: 42px; }
  .contact-quick-v { font-size: 14px; }
  .contact-form-card { padding: 26px 22px; }
  .contact-form-title { font-size: 22px; }
  .contact-form-foot { flex-direction: column; align-items: stretch; }
  .contact-form-submit { width: 100%; justify-content: center; }
  .contact-side-card { padding: 24px 22px; }
  .contact-side-card--dark {
    grid-template-columns: 1fr;
    text-align: left;
  }
  .contact-arina-avatar { width: 56px; height: 56px; font-size: 34px; }
  .contact-map-wrap { margin-top: 36px; }
  .contact-map-box { min-height: 340px; }
}

/* =========================================================================
   WIJN PAGE
   ========================================================================= */

/* ----- Hero ----- */
.wijn-hero {
  position: relative;
  color: var(--cream);
  overflow: hidden;
  background: #2e1a0f;
  box-shadow:
    0 40px 80px -40px rgba(30, 20, 10, .45),
    0 10px 30px -15px rgba(30, 20, 10, .25);
}
.wijn-hero-bg {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(120deg, rgba(20, 12, 6, .82) 0%, rgba(20, 12, 6, .5) 55%, rgba(20, 12, 6, .25) 100%),
    url("../images/hero/hero_bg_3.jpg");
  background-size: cover;
  background-position: center;
  filter: saturate(1.08);
}
.wijn-hero-scrim {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(65% 85% at 20% 50%, rgba(20, 12, 6, .5), transparent 75%),
    linear-gradient(180deg, rgba(20, 12, 6, .32) 0%, transparent 30%, transparent 60%, rgba(20, 12, 6, .55) 100%);
}
.wijn-hero-inner {
  min-height: calc(100vh - 40px);
  display: flex; flex-direction: column; justify-content: center;
}
.wijn-hero-text { max-width: 720px; }

.wijn-hero-stats > div {
  display: flex; flex-direction: column; gap: 4px;
}
.wijn-hero-stats b {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  color: var(--cream);
  letter-spacing: -0.02em;
}
.wijn-hero-stats span {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .62);
}

/* ----- Intro ----- */
.wijn-intro { background: var(--paper); }
.wijn-intro-grid {
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
}
@media (min-width: 1024px) {
  .wijn-intro-grid {
    grid-template-columns: 1fr 1.1fr;
    gap: 56px;
    align-items: center;
  }
}

.wijn-intro-visual {
  position: relative;
  aspect-ratio: 4/5;
  border-radius: 32px;
  overflow: hidden;
  margin: 0;
  box-shadow: 0 30px 60px -30px rgba(30, 20, 10, .35);
}
.wijn-intro-visual-img {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(180deg, rgba(20, 12, 6, .05) 0%, rgba(20, 12, 6, .4) 100%),
    url("https://images.unsplash.com/photo-1506377247377-2a5b3b417ebb?w=1400&q=85&auto=format&fit=crop");
  background-size: cover;
  background-position: center;
}
.wijn-intro-visual-cap {
  position: absolute; bottom: 24px; left: 24px;
  display: flex; flex-direction: column; gap: 3px;
  color: var(--cream);
}
.wijn-intro-visual-k {
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 20px; font-weight: 500;
}
.wijn-intro-visual-v {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(245, 239, 230, .75);
}

.wijn-intro-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 36px 32px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) { .wijn-intro-card { padding: 48px 44px; } }

.wijn-intro-highlights {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 18px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.wijn-intro-highlights > div {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  color: var(--ink);
  font-weight: 500;
}
.wijn-intro-highlights svg { color: var(--walnut); flex-shrink: 0; }

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

/* ----- Assortiment grid ----- */
.wijn-assortiment { background: var(--cream-warm); }
.wijn-assortiment-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .wijn-assortiment-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .wijn-assortiment-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

.wijn-bottle {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 22px;
  display: flex; flex-direction: column; gap: 16px;
  box-shadow:
    0 16px 40px -24px rgba(30, 20, 10, .2),
    0 6px 14px -10px rgba(30, 20, 10, .08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.wijn-bottle:hover {
  transform: translateY(-4px);
  box-shadow:
    0 22px 50px -24px rgba(30, 20, 10, .3),
    0 10px 22px -8px rgba(30, 20, 10, .15);
}
.wijn-bottle-swatch {
  position: relative;
  display: block;
  height: 120px;
  border-radius: 16px;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, .12),
    inset 0 12px 20px -8px rgba(255, 255, 255, .15);
}
.wijn-bottle-badge {
  position: absolute;
  top: 10px; right: 10px;
  padding: 3px 8px;
  background: rgba(245, 239, 230, .92);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  backdrop-filter: blur(4px);
}
.wijn-bottle-kind {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--honey);
  font-weight: 600;
  margin-bottom: 6px;
}
.wijn-bottle h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 8px;
}
.wijn-bottle p {
  font-size: 13px; line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}

/* ----- Proefbox featured ----- */
.wijn-proefbox { background: var(--paper); }
.wijn-proefbox-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1fr;
  box-shadow:
    0 32px 80px -28px rgba(30, 20, 10, .35),
    0 12px 24px -10px rgba(30, 20, 10, .15);
}
@media (min-width: 1024px) {
  .wijn-proefbox-card { grid-template-columns: 1.1fr 1fr; }
}

.wijn-proefbox-visual {
  position: relative;
  aspect-ratio: 4/3;
  min-height: 300px;
  overflow: hidden;
}
@media (min-width: 1024px) { .wijn-proefbox-visual { aspect-ratio: auto; min-height: 100%; } }
.wijn-proefbox-visual img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.wijn-proefbox-badge {
  position: absolute;
  top: 20px; left: 20px;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: rgba(245, 239, 230, .92);
  border-radius: 999px;
  backdrop-filter: blur(8px);
  box-shadow: 0 6px 18px -6px rgba(30, 20, 10, .3);
}
.wijn-proefbox-badge-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 10px rgba(228, 179, 99, .7);
}
.wijn-proefbox-badge-k {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.wijn-proefbox-badge-v {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 14px;
  color: var(--bordeaux);
  line-height: 1;
}
.wijn-proefbox-medal {
  position: absolute;
  bottom: 20px; left: 20px;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 12px;
  background: var(--honey);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: 0 6px 16px -6px rgba(228, 179, 99, .6);
}

.wijn-proefbox-body {
  padding: 34px 28px;
  display: flex; flex-direction: column; gap: 22px;
}
@media (min-width: 1024px) { .wijn-proefbox-body { padding: 48px 44px; } }

.wijn-proefbox-body .product-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bordeaux);
  font-weight: 600;
  margin-bottom: 12px;
  display: inline-block;
}
.wijn-proefbox-desc {
  font-size: 15.5px; line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
}

.wijn-proefbox-list {
  padding: 18px 20px;
  background: rgba(228, 179, 99, .1);
  border-radius: 18px;
  border: 1px solid rgba(228, 179, 99, .22);
}
.wijn-proefbox-list-title {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bordeaux);
  font-weight: 600;
  margin-bottom: 10px;
}
.wijn-proefbox-list ul {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}
@media (min-width: 640px) { .wijn-proefbox-list ul { grid-template-columns: 1fr 1fr; gap: 8px 16px; } }
.wijn-proefbox-list li {
  display: flex; align-items: center; gap: 10px;
  font-size: 13.5px;
  color: var(--ink);
  font-weight: 500;
}
.wijn-proefbox-dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 1px rgba(139, 90, 43, .25);
}

.wijn-proefbox-footer {
  display: flex; flex-wrap: wrap;
  align-items: flex-end; justify-content: space-between;
  gap: 16px;
  padding-top: 20px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.wijn-proefbox-price { display: flex; flex-direction: column; gap: 2px; }
.wijn-proefbox-price-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.wijn-proefbox-price-value {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 38px;
  line-height: 1;
  color: var(--bordeaux);
  letter-spacing: -0.02em;
}
.wijn-proefbox-price-value small {
  font-size: 18px;
  font-weight: 400;
}
.wijn-proefbox-cta {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px;
  background: var(--bordeaux);
  color: var(--cream);
  border: 0;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.wijn-proefbox-cta:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.wijn-proefbox-cta svg { transition: transform .2s; }
.wijn-proefbox-cta:hover svg { transform: translate(2px, -2px); }

/* ----- Order (hergebruik alcohol patroon, lichtere variant) ----- */
.wijn-order { background: var(--cream-warm); }
.wijn-order-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) { .wijn-order-grid { grid-template-columns: 1fr 1fr; gap: 28px; } }

.wijn-order-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  padding: 32px 28px;
  display: flex; flex-direction: column; gap: 20px;
  box-shadow:
    0 20px 50px -30px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
.wijn-order-icon {
  width: 50px; height: 50px;
  border-radius: 16px;
  background: rgba(228, 179, 99, .2);
  color: var(--bordeaux);
  display: grid; place-items: center;
}
.wijn-order-body {
  display: flex; flex-direction: column; gap: 12px;
  flex: 1;
}
.wijn-order-card h3 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.wijn-order-card p {
  font-size: 14px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}
.wijn-order-list {
  list-style: none; padding: 0; margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.wijn-order-list li {
  display: flex; justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .14);
  font-size: 13.5px;
}
.wijn-order-list li:last-child { border-bottom: 0; }
.wijn-order-list b { font-family: 'Fraunces', serif; font-weight: 500; color: var(--ink); }
.wijn-order-list span { color: var(--ink-soft); font-variant-numeric: tabular-nums; }
.wijn-order-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-weight: 600;
  font-size: 13.5px;
  text-decoration: none;
  margin-top: auto;
  transition: gap .2s, color .2s;
}
.wijn-order-link:hover { gap: 10px; color: var(--bordeaux-deep); }

/* ----- Verkooppunten ----- */
.wijn-retail { background: var(--paper); }
.wijn-retail-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 40px 32px;
  display: grid;
  gap: 32px;
  grid-template-columns: 1fr;
  align-items: center;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .22),
    0 8px 18px -10px rgba(30, 20, 10, .1);
}
@media (min-width: 1024px) {
  .wijn-retail-card {
    grid-template-columns: 1.2fr 1fr;
    padding: 56px 52px;
    gap: 56px;
  }
}

.wijn-retail-p {
  font-size: 15px; line-height: 1.65;
  color: var(--ink-soft);
  margin: 16px 0 22px;
  max-width: 520px;
}
.wijn-retail-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--bordeaux);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  transition: gap .2s, color .2s;
}
.wijn-retail-link:hover { gap: 10px; color: var(--bordeaux-deep); }

.wijn-retail-right {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.wijn-retail-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.005em;
}
.wijn-retail-chip svg { color: var(--walnut); }

/* ----- Mobile refinements ----- */
@media (max-width: 1023px) {
  .wijn-hero-inner { padding-top: 130px !important; padding-bottom: 70px !important; }
  .wijn-hero-stats { flex-wrap: wrap; gap: 14px 22px !important; }
  .wijn-hero-stats b { font-size: 18px; }
}
@media (max-width: 767px) {
  .wijn-hero { min-height: calc(100svh - 24px); border-radius: 24px; }
  .wijn-hero-inner { padding-left: 20px !important; padding-right: 20px !important; }
  .wijn-intro, .wijn-assortiment, .wijn-proefbox, .wijn-order, .wijn-retail {
    padding-left: 0; padding-right: 0;
  }
  .wijn-intro > div, .wijn-assortiment > div, .wijn-proefbox > div,
  .wijn-order > div, .wijn-retail > div {
    padding-top: 60px !important; padding-bottom: 60px !important;
  }
  .wijn-proefbox-body { padding: 28px 22px; gap: 18px; }
  .wijn-proefbox-price-value { font-size: 32px; }
  .wijn-retail-card { padding: 32px 24px; }
  .wijn-order-card { padding: 26px 22px; }
  .wijn-bottle { padding: 18px; }
  .wijn-bottle-swatch { height: 90px; }
}

/* =========================================================================
   AGENDA PAGE
   ========================================================================= */

.agenda-page {
  position: relative;
  overflow: hidden;
  background: var(--cream-warm);
  padding: 128px 24px 72px;
  min-height: 100vh;
}
@media (min-width: 1024px) { .agenda-page { padding: 138px 64px 96px; } }
@media (min-width: 768px) and (max-width: 1023px) { .agenda-page { padding: 132px 48px 80px; } }

.agenda-page-inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
}

/* ----- Head ----- */
.agenda-head {
  max-width: 760px;
  margin-bottom: 40px;
}
.agenda-head-top { margin-bottom: 18px; }
.agenda-today-pill {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 14px;
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .35);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--ink-soft);
  box-shadow: 0 6px 14px -8px rgba(30, 20, 10, .15);
}
.agenda-today-pill > span:first-child + span {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--bordeaux);
  font-size: 10.5px;
}
.agenda-today-pill b {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  color: var(--ink);
  font-size: 13px;
  letter-spacing: -0.01em;
}
.agenda-today-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 0 rgba(228, 179, 99, .7);
  animation: todayPulse 2.2s ease-out infinite;
}

.agenda-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 4.6vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
}
.agenda-title em { color: var(--bordeaux); font-style: italic; }
.agenda-lede {
  font-size: 16px; line-height: 1.65;
  color: var(--ink-soft);
  margin-top: 20px;
  max-width: 600px;
}

/* ----- Main grid ----- */
.agenda-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: minmax(0, 1fr);
  margin-bottom: 64px;
}
.agenda-calendar-card,
.agenda-side { min-width: 0; }
@media (min-width: 1024px) {
  .agenda-grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(320px, 1fr);
    gap: 28px;
    align-items: start;
  }
}

/* ----- Calendar card ----- */
.agenda-calendar-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 32px;
  padding: 28px 24px;
  box-shadow:
    0 24px 60px -28px rgba(30, 20, 10, .3),
    0 8px 18px -10px rgba(30, 20, 10, .14);
}
@media (min-width: 768px) { .agenda-calendar-card { padding: 36px 32px; } }

.agenda-cal-head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
  padding-bottom: 22px;
  margin-bottom: 22px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.agenda-cal-month {
  display: flex; flex-direction: column; gap: 4px;
}
.agenda-cal-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  font-weight: 500;
}
.agenda-cal-month h2 {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 28px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0;
  text-transform: capitalize;
}

.agenda-cal-nav {
  display: flex; align-items: center; gap: 4px;
  padding: 4px;
  background: rgba(139, 90, 43, .06);
  border-radius: 999px;
}
.agenda-cal-btn {
  width: 34px; height: 34px;
  border-radius: 999px;
  border: 0; background: transparent;
  color: var(--bordeaux);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.agenda-cal-btn:hover { background: rgba(228, 179, 99, .2); transform: scale(1.04); }
.agenda-cal-btn:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .35);
}
.agenda-cal-today {
  padding: 8px 14px;
  border-radius: 999px;
  border: 0; background: var(--bordeaux);
  color: var(--cream);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: background .2s, transform .2s;
}
.agenda-cal-today:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }
.agenda-cal-today:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}

.agenda-cal-dows {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 10px;
}
.agenda-cal-dows span {
  text-align: center;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--muted);
  padding: 6px 0;
}

.agenda-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.agenda-day {
  position: relative;
  aspect-ratio: 1;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 4px;
  padding: 0;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: background .2s, border-color .2s, transform .15s, color .2s;
}
.agenda-day:hover:not(.is-out) {
  background: rgba(228, 179, 99, .14);
  transform: translateY(-1px);
}
.agenda-day:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .38);
  z-index: 2;
}
.agenda-day.is-today:focus-visible {
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .6), 0 6px 16px -8px rgba(61, 43, 31, .55);
}
.agenda-day.is-out {
  color: rgba(26, 20, 16, .28);
  cursor: pointer;
  opacity: .5;
}
.agenda-day.is-out:hover { background: rgba(228, 179, 99, .08); }
.agenda-day.has-events .agenda-day-num {
  font-weight: 600;
}
.agenda-day.is-today {
  color: var(--cream);
  background: var(--bordeaux);
  box-shadow: 0 6px 16px -8px rgba(61, 43, 31, .55);
}
.agenda-day.is-today:hover { background: var(--bordeaux-deep); }
.agenda-day.is-selected:not(.is-today) {
  border-color: var(--honey);
  background: rgba(228, 179, 99, .18);
}
.agenda-day.is-selected.is-today { outline: 2px solid var(--honey); outline-offset: 2px; }

.agenda-day-num { line-height: 1; font-variant-numeric: tabular-nums; }

.agenda-day-dots {
  display: flex;
  gap: 3px;
  height: 6px;
}
.agenda-day-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--walnut);
}
.agenda-day.is-today .agenda-day-dot { background: var(--honey-soft); }
.agenda-day.is-selected:not(.is-today) .agenda-day-dot { background: var(--bordeaux); }

/* Cat colors */
.is-cat-proeverij { --cat-color: #e4b363; }
.is-cat-concert   { --cat-color: #5a1a2b; }
.is-cat-workshop  { --cat-color: #2d3a2a; }
.is-cat-tour      { --cat-color: #8b5a2b; }
.is-cat-feest     { --cat-color: #c4573b; }

.agenda-day-dot.is-cat-proeverij { background: #e4b363; }
.agenda-day-dot.is-cat-concert   { background: #5a1a2b; }
.agenda-day-dot.is-cat-workshop  { background: #2d3a2a; }
.agenda-day-dot.is-cat-tour      { background: #8b5a2b; }
.agenda-day-dot.is-cat-feest     { background: #c4573b; }

/* ----- Filter chips (tevens legenda) ----- */
.agenda-cal-filters {
  display: flex; flex-wrap: wrap; gap: 6px;
  padding: 14px 0 18px;
  border-bottom: 1px solid rgba(139, 90, 43, .08);
  margin-bottom: 14px;
}
.agenda-cal-filter {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 12px 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .18);
  background: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ink);
  cursor: pointer;
  transition: background .2s, border-color .2s, color .2s, transform .15s, box-shadow .2s;
}
.agenda-cal-filter:hover {
  border-color: var(--honey);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -4px rgba(228, 179, 99, .4);
}
.agenda-cal-filter:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.agenda-cal-filter.is-active {
  background: var(--ink);
  color: var(--cream);
  border-color: transparent;
}
.agenda-cal-filter.is-active:hover { background: var(--bordeaux); }
.agenda-cal-filter-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.agenda-cal-filter--all {
  background: transparent;
  border-color: rgba(139, 90, 43, .28);
  padding-left: 12px;
}
.agenda-cal-filter--all svg {
  color: var(--honey);
  flex-shrink: 0;
}
.agenda-cal-filter--all.is-active {
  background: var(--bordeaux);
  color: var(--cream);
}
.agenda-cal-filter--all.is-active svg { color: var(--honey-soft); }

/* Subtiele keyboard-hint onder kalender */
.agenda-cal-hint {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(139, 90, 43, .1);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  color: var(--muted);
  text-align: center;
  display: flex; align-items: center; justify-content: center; gap: 4px;
  flex-wrap: wrap;
}
.agenda-cal-hint kbd {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px;
  padding: 1px 5px;
  background: #fff;
  border: 1px solid rgba(139, 90, 43, .22);
  border-radius: 4px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--walnut);
  box-shadow: 0 1px 0 rgba(139, 90, 43, .14);
}
@media (max-width: 640px) {
  .agenda-cal-hint { display: none; }
}

/* ----- Side / selected day ----- */
.agenda-side { position: sticky; top: 106px; }
@media (max-width: 1023px) { .agenda-side { position: static; } }

.agenda-side-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  padding: 28px 24px;
  box-shadow:
    0 20px 50px -30px rgba(30, 20, 10, .25),
    0 8px 18px -10px rgba(30, 20, 10, .12);
}
@media (min-width: 768px) { .agenda-side-card { padding: 32px 28px; } }

.agenda-side-head {
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid rgba(139, 90, 43, .14);
}
.agenda-side-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bordeaux);
  font-weight: 600;
  display: block;
  margin-bottom: 6px;
}
.agenda-side-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 22px;
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
  text-transform: capitalize;
}

.agenda-side-empty {
  padding: 24px 10px;
  text-align: center;
  color: var(--muted);
}
.agenda-side-empty svg { color: rgba(139, 90, 43, .32); display: block; margin: 0 auto 14px; }
.agenda-side-empty p {
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0 0 10px;
}
.agenda-side-empty-link {
  font-size: 12.5px;
  color: var(--bordeaux);
  text-decoration: none;
  font-weight: 500;
}
.agenda-side-empty-link:hover { text-decoration: underline; text-underline-offset: 3px; }

.agenda-side-list {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column;
  gap: 16px;
}
.agenda-side-event {
  position: relative;
  padding: 18px 20px 18px 24px;
  background: rgba(228, 179, 99, .08);
  border: 1px solid rgba(228, 179, 99, .22);
  border-radius: 18px;
  overflow: hidden;
}
.agenda-side-event::before {
  content: "";
  position: absolute;
  left: 0; top: 14px; bottom: 14px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: var(--cat-color, var(--honey));
}

.agenda-side-event-time {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  color: var(--ink-soft);
  margin-bottom: 6px;
  font-weight: 500;
}
.agenda-side-event-cat {
  padding: 3px 8px;
  background: var(--cat-color, var(--honey));
  color: var(--cream);
  border-radius: 999px;
  font-size: 9.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
}
.agenda-side-event.is-cat-proeverij .agenda-side-event-cat { color: var(--ink); }

.agenda-side-event-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0 0 6px;
}
.agenda-side-event-desc {
  font-size: 13px; line-height: 1.5;
  color: var(--ink-soft);
  margin: 0 0 14px;
}
.agenda-side-event-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.agenda-side-event-status {
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
}
.agenda-side-event-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  background: var(--bordeaux);
  color: var(--cream);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  transition: background .2s, transform .2s;
}
.agenda-side-event-cta:hover { background: var(--bordeaux-deep); transform: translateY(-1px); }
.agenda-side-event-cta:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .4);
}

.agenda-side-event-actions {
  display: flex; align-items: center; gap: 8px;
}
.agenda-side-event-ics {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 11px;
  background: transparent;
  border: 1px solid rgba(139, 90, 43, .22);
  color: var(--walnut);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: border-color .2s, color .2s, background .2s, transform .15s;
}
.agenda-side-event-ics:hover {
  border-color: var(--honey);
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .12);
  transform: translateY(-1px);
}
.agenda-side-event-ics:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.agenda-side-event-ics svg { flex-shrink: 0; }

.agenda-upcoming-empty {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink-soft);
  font-style: italic;
  padding: 24px 20px;
  background: rgba(228, 179, 99, .06);
  border: 1px dashed rgba(228, 179, 99, .3);
  border-radius: 16px;
  text-align: center;
}

/* ----- Global reduced-motion respect voor de agenda ----- */
@media (prefers-reduced-motion: reduce) {
  .agenda-day,
  .agenda-cal-filter,
  .agenda-side-event-cta,
  .agenda-side-event-ics,
  .agenda-cal-btn,
  .agenda-cal-today { transition: none; }
  .agenda-day:hover:not(.is-out),
  .agenda-cal-filter:hover,
  .agenda-side-event-cta:hover,
  .agenda-side-event-ics:hover,
  .agenda-upcoming-card:hover { transform: none; }
}

/* ----- Upcoming events grid ----- */
.agenda-upcoming {
  padding-top: 48px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.agenda-upcoming-head {
  margin-bottom: 32px;
}
.agenda-upcoming-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .agenda-upcoming-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .agenda-upcoming-grid { grid-template-columns: repeat(3, 1fr); gap: 22px; } }

.agenda-upcoming-card {
  display: grid;
  grid-template-columns: 78px 1fr;
  gap: 18px;
  padding: 22px;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 22px;
  box-shadow:
    0 16px 40px -24px rgba(30, 20, 10, .18),
    0 4px 10px -6px rgba(30, 20, 10, .08);
  transition: transform .3s ease, box-shadow .3s ease;
}
.agenda-upcoming-card:hover {
  transform: translateY(-3px);
  box-shadow:
    0 22px 50px -24px rgba(30, 20, 10, .28),
    0 8px 18px -8px rgba(30, 20, 10, .14);
}

.agenda-upcoming-date {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center;
  padding: 10px 0;
  background: var(--cat-color, var(--honey));
  color: var(--cream);
  border-radius: 16px;
  min-height: 92px;
}
.agenda-upcoming-card.is-cat-proeverij .agenda-upcoming-date { color: var(--ink); }
.agenda-upcoming-dow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: .75;
  margin-bottom: 4px;
}
.agenda-upcoming-day {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 32px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}
.agenda-upcoming-month {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 600;
  margin-top: 4px;
}

.agenda-upcoming-body { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.agenda-upcoming-cat {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--cat-color, var(--honey));
  font-weight: 700;
}
.agenda-upcoming-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 18px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.agenda-upcoming-desc {
  font-size: 13px; line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}
.agenda-upcoming-meta {
  display: flex; flex-wrap: wrap; gap: 10px 14px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(139, 90, 43, .12);
}
.agenda-upcoming-meta > span {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px;
  color: var(--muted);
  font-weight: 500;
}
.agenda-upcoming-meta svg { color: var(--walnut); }

/* ----- CTA ----- */
.agenda-cta-wrap { margin-top: 64px; }
.agenda-cta-card {
  background:
    radial-gradient(500px 400px at 20% 0%, rgba(228, 179, 99, .22), transparent 60%),
    linear-gradient(160deg, #1a100a 0%, #3d2b1f 60%, #5a3d2a 100%);
  color: var(--cream);
  border-radius: 32px;
  padding: 44px 32px;
  display: grid;
  gap: 28px;
  grid-template-columns: 1fr;
  align-items: center;
  box-shadow: 0 30px 60px -30px rgba(10, 6, 3, .5);
}
.agenda-cta-card .sec-title em { color: var(--honey-soft); }
@media (min-width: 1024px) {
  .agenda-cta-card {
    grid-template-columns: 1.4fr 1fr;
    padding: 56px 52px;
    gap: 48px;
  }
}
.agenda-cta-p {
  font-size: 14.5px; line-height: 1.6;
  color: rgba(245, 239, 230, .78);
  margin: 14px 0 0;
  max-width: 520px;
}
.agenda-cta-actions {
  display: flex; flex-wrap: wrap; gap: 12px;
}

/* ----- Mobile refinements ----- */
@media (max-width: 767px) {
  .agenda-page { padding: 120px 14px 48px; }
  .agenda-head { margin-bottom: 28px; }
  .agenda-title { font-size: clamp(32px, 9vw, 44px); }
  .agenda-calendar-card { padding: 22px 16px; border-radius: 24px; }
  .agenda-cal-head { padding-bottom: 16px; margin-bottom: 16px; }
  .agenda-cal-month h2 { font-size: 22px; }
  .agenda-day { font-size: 13px; border-radius: 10px; }
  .agenda-day-dot { width: 4px; height: 4px; }
  .agenda-cal-dows span { font-size: 9.5px; }
  .agenda-side-card { padding: 22px 18px; border-radius: 22px; }
  .agenda-side-title { font-size: 19px; }
  .agenda-side-event { padding: 14px 14px 14px 18px; }
  .agenda-side-event-foot {
    flex-wrap: wrap;
    row-gap: 10px;
    align-items: stretch;
  }
  .agenda-side-event-status { flex-basis: 100%; }
  .agenda-side-event-actions { width: 100%; justify-content: flex-end; }
  .agenda-upcoming-card {
    grid-template-columns: 64px 1fr;
    padding: 16px;
    gap: 14px;
  }
  .agenda-upcoming-date { min-height: 78px; }
  .agenda-upcoming-day { font-size: 26px; }
  .agenda-cta-card { padding: 32px 24px; }
}

/* =========================================================================
   RESERVEER PAGE — Multi-step wizard
   ========================================================================= */

.reserveer-page {
  position: relative;
  background: var(--cream-warm);
  min-height: 100vh;
  overflow: hidden;
}

/* ----- HERO ----- */
.reserveer-hero {
  position: relative;
  padding: 132px 24px 48px;
  text-align: center;
  overflow: hidden;
}
@media (min-width: 768px) { .reserveer-hero { padding: 152px 48px 64px; } }
@media (min-width: 1024px) { .reserveer-hero { padding: 172px 64px 80px; } }

.reserveer-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 500px at 15% -10%, rgba(228, 179, 99, .22), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(90, 26, 43, .12), transparent 60%);
  pointer-events: none;
}

.reserveer-hero-inner {
  position: relative;
  z-index: 1;
  max-width: 820px;
  margin: 0 auto;
}

.reserveer-hero-deco {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  width: min(480px, 80%);
  color: var(--honey);
  opacity: .4;
  pointer-events: none;
}

.reserveer-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px;
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .35);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bordeaux);
  box-shadow: 0 6px 14px -8px rgba(30, 20, 10, .15);
  margin-bottom: 22px;
}
.reserveer-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 0 rgba(228, 179, 99, .7);
  animation: todayPulse 2.2s ease-out infinite;
}

.reserveer-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(38px, 5.4vw, 68px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
  margin: 0 0 24px;
}
.reserveer-title em {
  color: var(--bordeaux);
  font-style: italic;
  font-weight: 400;
}

.reserveer-lede {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 600px;
  margin: 0 auto;
}

/* ----- WIZARD WRAPPER ----- */
.reserveer-wizard-wrap {
  position: relative;
  z-index: 1;
  max-width: 1440px;
  margin: 0 auto;
  padding: 16px 16px 96px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 28px;
}
@media (min-width: 768px)  { .reserveer-wizard-wrap { padding: 24px 32px 96px; } }
@media (min-width: 1024px) { .reserveer-wizard-wrap { padding: 32px 48px 120px; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; } }
@media (min-width: 1280px) { .reserveer-wizard-wrap { padding: 40px 64px 120px; grid-template-columns: minmax(0, 1fr) 360px; gap: 40px; } }

.reserveer-wizard {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .12);
  border-radius: 28px;
  padding: 24px 20px 32px;
  box-shadow:
    0 36px 80px -40px rgba(30, 20, 10, .35),
    0 8px 24px -16px rgba(30, 20, 10, .14);
  min-width: 0;
}
@media (min-width: 768px)  { .reserveer-wizard { padding: 36px 36px 44px; border-radius: 32px; } }
@media (min-width: 1024px) { .reserveer-wizard { padding: 44px 48px 48px; } }

/* ----- STEP INDICATOR ----- */
.reserveer-steps {
  position: relative;
  margin-bottom: 32px;
}
.reserveer-steps-list {
  display: flex;
  justify-content: space-between;
  gap: 6px;
  list-style: none;
  margin: 0; padding: 0;
  position: relative;
  z-index: 2;
}
.reserveer-step-item { flex: 1; min-width: 0; }

.reserveer-step-btn {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  width: 100%;
  background: transparent;
  border: 0; padding: 0;
  cursor: pointer;
  color: var(--muted);
  transition: color .2s;
}
.reserveer-step-btn:disabled { cursor: not-allowed; }
.reserveer-step-item.is-navigable .reserveer-step-btn:hover { color: var(--ink-soft); }
.reserveer-step-item.is-active .reserveer-step-btn,
.reserveer-step-item.is-complete .reserveer-step-btn { color: var(--bordeaux); }

.reserveer-step-num {
  display: grid; place-items: center;
  width: 36px; height: 36px;
  border-radius: 999px;
  background: var(--cream);
  border: 1.5px solid rgba(139, 90, 43, .2);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  transition: all .25s cubic-bezier(.2, .7, .2, 1);
}
.reserveer-step-item.is-active .reserveer-step-num {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .28), 0 8px 20px -10px rgba(61, 43, 31, .55);
  transform: scale(1.06);
}
.reserveer-step-item.is-complete .reserveer-step-num {
  background: var(--honey);
  color: var(--bordeaux);
  border-color: transparent;
}

.reserveer-step-btn:focus-visible {
  outline: none;
}
.reserveer-step-btn:focus-visible .reserveer-step-num {
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}

.reserveer-step-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.2;
}
@media (max-width: 520px) {
  .reserveer-step-label { font-size: 9.5px; letter-spacing: 0.06em; }
  .reserveer-step-num   { width: 30px; height: 30px; font-size: 13px; }
}

.reserveer-steps-progress {
  position: absolute;
  top: 18px;
  left: 18px; right: 18px;
  height: 2px;
  background: rgba(139, 90, 43, .14);
  border-radius: 999px;
  z-index: 1;
  overflow: hidden;
}
@media (max-width: 520px) { .reserveer-steps-progress { top: 15px; } }
.reserveer-steps-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--honey), var(--bordeaux));
  border-radius: 999px;
  transition: width .45s cubic-bezier(.2, .7, .2, 1);
}

/* ----- STEP HEAD ----- */
.reserveer-step-head {
  margin-bottom: 28px;
  text-align: left;
}
.reserveer-step-eyebrow {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.reserveer-step-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(26px, 3.2vw, 36px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 10px;
  text-wrap: balance;
}
.reserveer-step-title em { color: var(--bordeaux); font-style: italic; }
.reserveer-step-lede {
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  max-width: 560px;
}

/* ----- STEP TRANSITIONS ----- */
.reserveer-enter { transition: opacity .35s ease, transform .35s cubic-bezier(.2, .7, .2, 1); }
.reserveer-enter-start { opacity: 0; transform: translateY(12px); }
.reserveer-enter-end   { opacity: 1; transform: translateY(0); }

/* ======== STAP 1 — ACTIVITEITEN ======== */
.reserveer-activities {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr;
}
@media (min-width: 560px) { .reserveer-activities { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.reserveer-activity {
  position: relative;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding: 18px 18px 18px 16px;
  background: #fff;
  border: 1.5px solid rgba(139, 90, 43, .14);
  border-radius: 18px;
  text-align: left;
  cursor: pointer;
  min-height: 88px;
  transition: border-color .2s, background .2s, transform .18s, box-shadow .2s;
  color: var(--ink);
}
.reserveer-activity:hover {
  border-color: var(--honey);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -18px rgba(30, 20, 10, .28);
}
.reserveer-activity:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.reserveer-activity.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 18px 32px -16px rgba(61, 43, 31, .5);
}

.reserveer-activity-icon {
  display: grid; place-items: center;
  width: 48px; height: 48px;
  border-radius: 14px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
  flex-shrink: 0;
  transition: background .2s, color .2s;
}
.reserveer-activity.is-selected .reserveer-activity-icon {
  background: rgba(245, 239, 230, .14);
  color: var(--honey);
}

.reserveer-activity-body {
  display: flex; flex-direction: column; gap: 4px;
  min-width: 0;
}
.reserveer-activity-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 17px;
  letter-spacing: -0.015em;
  line-height: 1.15;
}
.reserveer-activity-desc {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ink-soft);
}
.reserveer-activity.is-selected .reserveer-activity-desc { color: rgba(245, 239, 230, .72); }

.reserveer-activity-check {
  width: 26px; height: 26px;
  border-radius: 999px;
  border: 1.5px solid rgba(139, 90, 43, .22);
  display: grid; place-items: center;
  color: transparent;
  transition: all .2s;
  flex-shrink: 0;
}
.reserveer-activity.is-selected .reserveer-activity-check {
  background: var(--honey);
  border-color: transparent;
  color: var(--bordeaux);
}

/* ======== STAP 2 — DATUM + TIJD ======== */
.reserveer-fieldset {
  border: 0; padding: 0; margin: 0 0 24px;
  min-width: 0;
  max-width: 100%;
  width: 100%;
}
.reserveer-fieldset--times { margin-bottom: 8px; }
.reserveer-fieldset legend {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  width: 100%;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 12px;
  padding: 0;
}
.reserveer-hint {
  font-size: 12px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--bordeaux);
  font-weight: 500;
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
}

/* Calendar head (maand label + nav) */
.reserveer-cal-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.reserveer-cal-month {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
  text-transform: capitalize;
}
.reserveer-cal-nav {
  display: flex; align-items: center; gap: 6px;
  flex-shrink: 0;
}
.reserveer-cal-nav button {
  width: 32px; height: 32px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .16);
  background: #fff;
  color: var(--walnut);
  display: grid; place-items: center;
  cursor: pointer;
  transition: border-color .2s, background .2s, color .2s, transform .15s, box-shadow .2s;
}
.reserveer-cal-nav button:hover:not(:disabled) {
  border-color: var(--honey);
  color: var(--bordeaux);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -4px rgba(228, 179, 99, .4);
}
.reserveer-cal-nav button:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.reserveer-cal-nav button:disabled { opacity: .3; cursor: not-allowed; }

.reserveer-cal-today {
  width: auto !important;
  padding: 0 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Dow headers */
.reserveer-cal-dows {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  margin: 0 auto 8px;
  max-width: 460px;
}
.reserveer-cal-dows span {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
  padding: 4px 0;
}

/* Date grid (maand view: 7 kolommen vast, compact) */
.reserveer-dates {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  padding: 2px;
  max-width: 460px;
  margin: 0 auto;
}
@media (max-width: 479px) {
  .reserveer-cal-dows,
  .reserveer-dates { gap: 4px; max-width: 100%; }
}

.reserveer-date {
  aspect-ratio: 1;
  min-height: 40px;
  padding: 0;
  border-radius: 10px;
  border: 1px solid rgba(139, 90, 43, .14);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  display: grid; place-items: center;
  transition: background .2s, border-color .2s, transform .18s, color .2s, box-shadow .2s;
  position: relative;
}
.reserveer-date:hover:not(:disabled) {
  border-color: var(--honey);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px -4px rgba(228, 179, 99, .5);
}
.reserveer-date:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .38);
  z-index: 2;
}
.reserveer-date.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 8px 20px -10px rgba(61, 43, 31, .55);
}
.reserveer-date.is-today:not(.is-selected) {
  border-color: var(--honey);
  color: var(--bordeaux);
  font-weight: 700;
}
.reserveer-date.is-today:not(.is-selected)::after {
  content: '';
  position: absolute;
  bottom: 4px; left: 50%;
  transform: translateX(-50%);
  width: 3px; height: 3px;
  border-radius: 50%;
  background: var(--honey);
}
.reserveer-date.is-out {
  color: rgba(26, 20, 16, .28);
  background: transparent;
  border-color: transparent;
  cursor: default;
}
.reserveer-date.is-out:hover { transform: none; box-shadow: none; border-color: transparent; }
.reserveer-date.is-disabled,
.reserveer-date:disabled { cursor: not-allowed; }
.reserveer-date.is-disabled:not(.is-out) {
  opacity: .4;
  background: rgba(139, 90, 43, .04);
}

.reserveer-date-num {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14.5px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}

/* Time slots */
.reserveer-time-groups {
  display: grid; gap: 18px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .reserveer-time-groups { grid-template-columns: repeat(3, 1fr); } }

.reserveer-time-group-label {
  display: block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 8px;
}
.reserveer-time-slots {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.reserveer-time {
  padding: 11px 18px;
  border-radius: 999px;
  border: 1.5px solid rgba(139, 90, 43, .16);
  background: #fff;
  color: var(--ink);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
  cursor: pointer;
  transition: all .2s;
  min-height: 44px;
}
.reserveer-time:hover {
  border-color: var(--honey);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -4px rgba(228, 179, 99, .4);
}
.reserveer-time:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.reserveer-time.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 8px 18px -8px rgba(61, 43, 31, .55);
}

/* ======== STAP 3 — GEZELSCHAP ======== */
.reserveer-guests {
  display: flex; flex-direction: column; align-items: center;
  gap: 24px;
  padding: 12px 0 8px;
}
.reserveer-guests-stepper {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 14px;
  background: #fff;
  border: 1.5px solid rgba(139, 90, 43, .16);
  border-radius: 999px;
  box-shadow: 0 10px 24px -14px rgba(30, 20, 10, .2);
}
.reserveer-guests-stepper button {
  width: 44px; height: 44px;
  border-radius: 999px;
  border: 0;
  background: rgba(228, 179, 99, .14);
  color: var(--bordeaux);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .2s, transform .15s, color .2s;
}
.reserveer-guests-stepper button:hover:not(:disabled) {
  background: var(--honey);
  color: var(--bordeaux);
  transform: scale(1.06);
}
.reserveer-guests-stepper button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}
.reserveer-guests-stepper button:disabled {
  color: rgba(139, 90, 43, .3);
  cursor: not-allowed;
}
.reserveer-guests-value {
  display: flex; flex-direction: column; align-items: center;
  min-width: 120px;
  padding: 0 6px;
}
.reserveer-guests-num {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 48px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bordeaux);
  font-variant-numeric: tabular-nums;
}
.reserveer-guests-word {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 4px;
}

.reserveer-guests-quick {
  display: flex; flex-wrap: wrap; gap: 8px;
  justify-content: center;
}
.reserveer-chip {
  min-width: 48px;
  padding: 9px 14px;
  border-radius: 999px;
  border: 1.5px solid rgba(139, 90, 43, .18);
  background: #fff;
  color: var(--ink);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all .2s;
}
.reserveer-chip:hover {
  border-color: var(--honey);
  transform: translateY(-1px);
}
.reserveer-chip:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.reserveer-chip.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
}

.reserveer-guests-note {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: rgba(228, 179, 99, .18);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--bordeaux);
  font-weight: 500;
}

/* ======== STAP 4 — CONTACT ======== */
.reserveer-review {
  padding: 18px 20px;
  background: rgba(228, 179, 99, .1);
  border: 1px dashed rgba(228, 179, 99, .5);
  border-radius: 18px;
  margin-bottom: 24px;
}
.reserveer-review-eyebrow {
  display: block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--bordeaux);
  margin-bottom: 10px;
}
.reserveer-review-list {
  display: grid; gap: 8px;
  grid-template-columns: 1fr;
  margin: 0; padding: 0;
}
@media (min-width: 480px) { .reserveer-review-list { grid-template-columns: repeat(2, 1fr); gap: 10px 16px; } }
.reserveer-review-list > div {
  display: flex; flex-direction: column; gap: 2px;
}
.reserveer-review-list dt {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.reserveer-review-list dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
}

.reserveer-form-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px) { .reserveer-form-grid { grid-template-columns: repeat(2, 1fr); gap: 18px; } }

.reserveer-field {
  display: flex; flex-direction: column; gap: 6px;
  min-width: 0;
}
.reserveer-field--full { grid-column: 1 / -1; }
.reserveer-field label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
}
.reserveer-field label span { color: var(--bordeaux); }

.reserveer-field input,
.reserveer-field textarea {
  width: 100%;
  padding: 13px 16px;
  background: #fff;
  border: 1.5px solid rgba(139, 90, 43, .16);
  border-radius: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14.5px;
  color: var(--ink);
  line-height: 1.5;
  transition: border-color .2s, box-shadow .2s;
  min-height: 48px;
}
.reserveer-field textarea { min-height: 120px; resize: vertical; }
.reserveer-field input::placeholder,
.reserveer-field textarea::placeholder { color: rgba(139, 90, 43, .45); }
.reserveer-field input:hover,
.reserveer-field textarea:hover { border-color: rgba(139, 90, 43, .32); }
.reserveer-field input:focus-visible,
.reserveer-field textarea:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .2);
}

/* ======== WIZARD NAVIGATION ======== */
.reserveer-nav {
  display: flex; align-items: center; gap: 12px;
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid rgba(139, 90, 43, .12);
}
.reserveer-nav-spacer { flex: 1; }

.reserveer-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 13px 22px;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  border: 0;
  transition: all .2s;
  min-height: 46px;
  text-decoration: none;
  white-space: nowrap;
}
.reserveer-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}

.reserveer-btn--primary {
  background: var(--bordeaux);
  color: var(--cream);
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.reserveer-btn--primary:hover:not(:disabled) {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.reserveer-btn--primary svg { transition: transform .2s; }
.reserveer-btn--primary:hover:not(:disabled) svg { transform: translateX(3px); }
.reserveer-btn--primary:disabled {
  background: rgba(139, 90, 43, .22);
  color: rgba(245, 239, 230, .55);
  box-shadow: none;
  cursor: not-allowed;
}

.reserveer-btn--submit {
  background: linear-gradient(135deg, var(--bordeaux), var(--bordeaux-deep));
  padding: 15px 26px;
  font-size: 14.5px;
}
.reserveer-btn--submit:not(:disabled) {
  box-shadow: 0 14px 32px -10px rgba(228, 179, 99, .5), 0 6px 18px -8px rgba(61, 43, 31, .5);
}
.reserveer-btn--submit:disabled { background: rgba(139, 90, 43, .22); }

.reserveer-btn--ghost {
  background: transparent;
  color: var(--ink-soft);
  border: 1.5px solid rgba(139, 90, 43, .18);
}
.reserveer-btn--ghost:hover:not(:disabled) {
  border-color: var(--honey);
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .08);
}
.reserveer-btn--ghost:disabled { opacity: .4; cursor: not-allowed; }
.reserveer-btn--ghost svg { transition: transform .2s; }
.reserveer-btn--ghost:hover:not(:disabled) svg { transform: translateX(-3px); }

/* ======== SUMMARY (desktop rail) ======== */
.reserveer-summary {
  position: sticky;
  top: 100px;
  align-self: start;
  display: none;
}
@media (min-width: 1024px) { .reserveer-summary { display: block; } }

.reserveer-summary-card {
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .32);
  border-radius: 24px;
  padding: 28px 26px;
  box-shadow:
    0 24px 50px -28px rgba(30, 20, 10, .28),
    0 4px 14px -6px rgba(30, 20, 10, .1);
}
.reserveer-summary-head { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid rgba(139, 90, 43, .14); }
.reserveer-summary-eyebrow {
  display: block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bordeaux);
  margin-bottom: 6px;
}
.reserveer-summary-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 22px;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.reserveer-summary-list {
  display: grid; gap: 14px;
  margin: 0 0 18px;
}
.reserveer-summary-list > div {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .12);
  opacity: .55;
  transition: opacity .3s;
}
.reserveer-summary-list > div:last-child { border-bottom: 0; }
.reserveer-summary-list > div.is-filled { opacity: 1; }
.reserveer-summary-list dt {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.reserveer-summary-list dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14.5px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  text-align: right;
  max-width: 60%;
}
.reserveer-summary-fineprint {
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--muted);
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(139, 90, 43, .1);
}

/* ======== SUCCESS STATE ======== */
.reserveer-success {
  text-align: center;
  padding: 20px 12px 12px;
}
.reserveer-success-icon {
  display: grid; place-items: center;
  width: 72px; height: 72px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .2);
  color: var(--bordeaux);
  margin: 0 auto 22px;
  animation: successPop .5s cubic-bezier(.25, .9, .3, 1.5);
}
@keyframes successPop {
  0%   { transform: scale(0.6); opacity: 0; }
  60%  { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
.reserveer-success-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(28px, 3.4vw, 40px);
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 10px 0 14px;
}
.reserveer-success-title span { color: var(--bordeaux); font-style: italic; }
.reserveer-success-p {
  font-size: 15px; line-height: 1.6;
  color: var(--ink-soft);
  max-width: 520px;
  margin: 0 auto 26px;
}
.reserveer-success-summary {
  display: grid; gap: 10px;
  grid-template-columns: 1fr;
  max-width: 440px;
  margin: 0 auto 32px;
  padding: 20px 22px;
  background: rgba(228, 179, 99, .1);
  border: 1px dashed rgba(228, 179, 99, .4);
  border-radius: 18px;
  text-align: left;
}
@media (min-width: 480px) { .reserveer-success-summary { grid-template-columns: repeat(2, 1fr); gap: 12px 20px; } }
.reserveer-success-summary > div { display: flex; flex-direction: column; gap: 2px; }
.reserveer-success-summary span {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.reserveer-success-summary b {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 14.5px;
  color: var(--ink);
}
.reserveer-success-actions {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}

/* ======== MOTION & RESPONSIVE TWEAKS ======== */
@media (prefers-reduced-motion: reduce) {
  .reserveer-activity,
  .reserveer-date,
  .reserveer-time,
  .reserveer-chip,
  .reserveer-btn,
  .reserveer-step-num,
  .reserveer-steps-progress-bar,
  .reserveer-enter { transition: none; }
  .reserveer-activity:hover,
  .reserveer-date:hover:not(:disabled),
  .reserveer-time:hover,
  .reserveer-chip:hover,
  .reserveer-btn:hover { transform: none; }
  .reserveer-success-icon { animation: none; }
}

@media (max-width: 767px) {
  .reserveer-wizard { padding: 20px 16px 24px; }
  .reserveer-step-head { margin-bottom: 22px; }
  .reserveer-nav {
    position: sticky;
    bottom: 10px;
    margin-top: 28px;
    padding: 12px;
    background: rgba(245, 239, 230, .96);
    border: 1px solid rgba(139, 90, 43, .14);
    border-radius: 999px;
    box-shadow: 0 10px 30px -10px rgba(30, 20, 10, .35);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 10;
  }
  .reserveer-btn { padding: 12px 18px; font-size: 13.5px; }
  .reserveer-btn--primary svg,
  .reserveer-btn--ghost svg { display: inline-flex; }
  .reserveer-activity { min-height: 76px; padding: 14px; gap: 14px; }
  .reserveer-activity-icon { width: 42px; height: 42px; }
  .reserveer-activity-title { font-size: 15.5px; }
  .reserveer-activity-desc { font-size: 12px; }
  .reserveer-guests-value { min-width: 96px; }
  .reserveer-guests-num { font-size: 40px; }
}

/* =========================================================================
   EVENEMENTEN PAGE
   ========================================================================= */

.evenementen-page {
  position: relative;
  overflow: hidden;
  background: var(--cream-warm);
  padding: 128px 24px 72px;
  min-height: 100vh;
}
@media (min-width: 768px)  { .evenementen-page { padding: 132px 48px 80px; } }
@media (min-width: 1024px) { .evenementen-page { padding: 138px 64px 96px; } }

.evenementen-inner {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  margin: 0 auto;
}

/* ----- Hero ----- */
.evenementen-head {
  max-width: 820px;
  margin-bottom: 40px;
}
.evenementen-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px;
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .35);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bordeaux);
  box-shadow: 0 6px 14px -8px rgba(30, 20, 10, .15);
  margin-bottom: 18px;
}
.evenementen-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 0 rgba(228, 179, 99, .7);
  animation: todayPulse 2.2s ease-out infinite;
}
.evenementen-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 4.6vw, 60px);
  line-height: 1.02;
  letter-spacing: -0.025em;
  color: var(--ink);
  text-wrap: balance;
  margin: 0;
}
.evenementen-title em { color: var(--bordeaux); font-style: italic; }
.evenementen-lede {
  font-size: 16px; line-height: 1.65;
  color: var(--ink-soft);
  margin-top: 20px;
  max-width: 600px;
}

/* ----- Filters ----- */
.evenementen-filters {
  display: flex; flex-wrap: wrap; gap: 8px;
  padding: 18px 0 28px;
  margin-bottom: 36px;
  border-bottom: 1px solid rgba(139, 90, 43, .12);
}
.evenementen-filter {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .18);
  background: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s, background .2s, color .2s, transform .15s, box-shadow .2s;
}
.evenementen-filter:hover {
  border-color: var(--honey);
  transform: translateY(-1px);
  box-shadow: 0 4px 10px -4px rgba(228, 179, 99, .4);
}
.evenementen-filter:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .32);
}
.evenementen-filter.is-active {
  background: var(--ink);
  color: var(--cream);
  border-color: transparent;
}
.evenementen-filter.is-active:hover { background: var(--bordeaux); }
.evenementen-filter-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}
.evenementen-filter--all svg { color: var(--honey); }
.evenementen-filter--all.is-active svg { color: var(--honey-soft); }

/* ----- Grid ----- */
.evenementen-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr;
}
@media (min-width: 640px)  { .evenementen-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; } }
@media (min-width: 1024px) { .evenementen-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; } }

/* ----- Card ----- */
.evenementen-card {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  box-shadow:
    0 16px 40px -24px rgba(30, 20, 10, .2),
    0 4px 10px -6px rgba(30, 20, 10, .08);
  transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s;
}
.evenementen-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 26px 56px -24px rgba(30, 20, 10, .32),
    0 10px 22px -10px rgba(30, 20, 10, .14);
}
.evenementen-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
  height: 100%;
}
.evenementen-card-link:focus-visible {
  outline: none;
}
.evenementen-card-link:focus-visible + * ,
.evenementen-card:has(.evenementen-card-link:focus-visible) {
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .55),
              0 26px 56px -24px rgba(30, 20, 10, .32);
}

.evenementen-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, rgba(228, 179, 99, .18), rgba(90, 26, 43, .1));
  overflow: hidden;
}
.evenementen-card-media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s cubic-bezier(.2, .7, .2, 1);
}
.evenementen-card:hover .evenementen-card-media img { transform: scale(1.04); }
.evenementen-card-media-fallback {
  position: relative;
  width: 100%; height: 100%;
  background:
    radial-gradient(70% 60% at 30% 30%, rgba(228, 179, 99, .22), transparent 70%),
    radial-gradient(60% 50% at 75% 80%, rgba(90, 26, 43, .18), transparent 70%),
    linear-gradient(135deg, rgba(228, 179, 99, .2), rgba(90, 26, 43, .14));
  overflow: hidden;
}
/* Verberg het generieke wijnglas-icoontje uit de view */
.evenementen-card-media-fallback > svg { display: none; }
/* Gebruik het domein-logo als nette placeholder */
.evenementen-card-media-fallback::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url('/theme/images/logo/logo.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: min(50%, 130px) auto;
  opacity: .48;
  filter: drop-shadow(0 8px 18px rgba(10, 6, 3, .25));
  transition: opacity .35s, transform .4s cubic-bezier(.2, .7, .2, 1);
}
.evenementen-card:hover .evenementen-card-media-fallback::after {
  opacity: .7;
  transform: scale(1.05);
}

/* ----- Live category-filter (theme JS) ----- */
.evenementen-card.is-filtered-out { display: none; }
.evenementen-card.is-filter-appearing {
  animation: evenementenFilterFadeIn .4s cubic-bezier(.2, .7, .2, 1) both;
}
@keyframes evenementenFilterFadeIn {
  from { opacity: 0; transform: translateY(10px) scale(.97); }
  to   { opacity: 1; transform: none; }
}
.evenementen-empty--inline {
  margin-top: 24px;
  padding: 36px 24px;
}
@media (prefers-reduced-motion: reduce) {
  .evenementen-card.is-filter-appearing { animation: none; }
}

.evenementen-card-cat {
  position: absolute;
  left: 14px; bottom: 14px;
  display: inline-flex; align-items: center;
  padding: 5px 11px 5px 13px;
  background: rgba(245, 239, 230, .96);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  border-left: 3px solid var(--cat-color, var(--honey));
}

.evenementen-card-featured {
  position: absolute;
  top: 14px; right: 14px;
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 10px 5px 8px;
  background: var(--honey);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  box-shadow: 0 6px 16px -8px rgba(228, 179, 99, .7);
}
.evenementen-card-featured svg { flex-shrink: 0; }

.evenementen-card-body {
  padding: 22px 22px 24px;
  display: flex; flex-direction: column; gap: 10px;
}
.evenementen-card-date {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--walnut);
  letter-spacing: 0.01em;
  flex-wrap: wrap;
}
.evenementen-card-date svg { color: var(--honey); flex-shrink: 0; }
.evenementen-card-date-sep { color: rgba(139, 90, 43, .4); padding: 0 2px; }

.evenementen-card-meta {
  display: flex; flex-wrap: wrap; gap: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 500;
  color: var(--walnut);
  letter-spacing: 0.01em;
}
.evenementen-card-meta > span {
  display: inline-flex; align-items: center; gap: 5px;
}
.evenementen-card-meta svg { color: var(--honey); flex-shrink: 0; }

.evenementen-card-desc {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 4px 0 0;
}

.evenementen-card-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 2px 0 0;
  text-wrap: balance;
  transition: color .2s;
}
.evenementen-card:hover .evenementen-card-title { color: var(--bordeaux); }

.evenementen-card-loc {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  color: var(--ink-soft);
  margin: 0;
}
.evenementen-card-loc svg { color: var(--walnut); flex-shrink: 0; }

.evenementen-card-foot {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px solid rgba(139, 90, 43, .12);
}
.evenementen-card-price {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 500;
  font-size: 18px;
  letter-spacing: -0.015em;
  color: var(--bordeaux);
}
.evenementen-card-price.is-free {
  color: #2d6a4f;
}
.evenementen-card-price.is-muted {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--muted);
  font-style: italic;
}
.evenementen-card-cta {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .16);
  color: var(--bordeaux);
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  transition: background .2s, transform .2s;
}
.evenementen-card:hover .evenementen-card-cta {
  background: var(--bordeaux);
  color: var(--cream);
}
.evenementen-card:hover .evenementen-card-cta svg { transform: translate(2px, -2px); }
.evenementen-card-cta svg { transition: transform .2s; }

/* ----- Pagination ----- */
.evenementen-pagination {
  margin-top: 40px;
  display: flex; justify-content: center;
}
.evenementen-pagination nav {
  display: flex; align-items: center; gap: 4px;
}
.evenementen-pagination svg { width: 14px; height: 14px; }
.evenementen-pagination a,
.evenementen-pagination span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 38px; height: 38px;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .16);
  background: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  transition: all .2s;
}
.evenementen-pagination a:hover {
  border-color: var(--honey);
  color: var(--bordeaux);
}
.evenementen-pagination .active span,
.evenementen-pagination [aria-current="page"] span {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
}
.evenementen-pagination .disabled span {
  opacity: .35;
  cursor: not-allowed;
}

/* ----- Empty state ----- */
.evenementen-empty {
  text-align: center;
  padding: 56px 24px;
  background: var(--cream);
  border: 1px dashed rgba(228, 179, 99, .5);
  border-radius: 24px;
}
.evenementen-empty-icon {
  display: grid; place-items: center;
  width: 72px; height: 72px;
  margin: 0 auto 22px;
  border-radius: 999px;
  background: rgba(228, 179, 99, .18);
  color: var(--bordeaux);
}
.evenementen-empty-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(24px, 3vw, 32px);
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 12px;
}
.evenementen-empty-p {
  font-size: 15px; line-height: 1.6;
  color: var(--ink-soft);
  max-width: 480px;
  margin: 0 auto 24px;
}
.evenementen-empty-actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}
.evenementen-empty-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 20px;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: all .2s;
}
.evenementen-empty-btn--primary {
  background: var(--bordeaux);
  color: var(--cream);
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.evenementen-empty-btn--primary:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
}
.evenementen-empty-btn--ghost {
  background: transparent;
  color: var(--ink-soft);
  border: 1.5px solid rgba(139, 90, 43, .2);
}
.evenementen-empty-btn--ghost:hover {
  border-color: var(--honey);
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .08);
}

/* ----- Motion & mobile ----- */
@media (prefers-reduced-motion: reduce) {
  .evenementen-card,
  .evenementen-filter,
  .evenementen-empty-btn,
  .evenementen-card-media img,
  .evenementen-card-cta { transition: none; }
  .evenementen-card:hover,
  .evenementen-filter:hover,
  .evenementen-empty-btn:hover { transform: none; }
  .evenementen-card:hover .evenementen-card-media img { transform: none; }
}
@media (max-width: 767px) {
  .evenementen-page { padding: 120px 14px 48px; }
  .evenementen-card-body { padding: 18px 18px 20px; }
  .evenementen-card-title { font-size: 18px; }
}

/* =========================================================================
   ACTIVITY SHOW PAGE
   ========================================================================= */
.activity-show { background: var(--cream-warm); min-height: 100vh; padding-bottom: 96px; }

.activity-hero {
  position: relative;
  min-height: 420px;
  padding: 132px 24px 56px;
  overflow: hidden;
  color: var(--cream);
  background: var(--bordeaux);
}
@media (min-width: 768px)  { .activity-hero { padding: 152px 48px 72px; min-height: 480px; } }
@media (min-width: 1024px) { .activity-hero { padding: 172px 64px 88px; min-height: 520px; } }

.activity-hero-img {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: saturate(.95);
}
.activity-hero-scrim {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(30, 20, 10, .5) 0%, rgba(61, 43, 31, .85) 100%);
}
.activity-hero-inner {
  position: relative; z-index: 1;
  max-width: 860px;
  margin: 0 auto;
}
.activity-crumb {
  display: flex; align-items: center; gap: 8px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11.5px;
  color: rgba(245, 239, 230, .7);
  margin-bottom: 18px;
  letter-spacing: 0.04em;
}
.activity-crumb a {
  color: inherit;
  text-decoration: none;
  transition: color .2s;
}
.activity-crumb a:hover { color: var(--honey); }
.activity-crumb span { color: rgba(245, 239, 230, .4); }

.activity-hero-cat {
  display: inline-flex; align-items: center;
  padding: 5px 12px 5px 14px;
  background: rgba(245, 239, 230, .16);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cream);
  border-left: 3px solid var(--cat-color, var(--honey));
  margin-bottom: 18px;
}
.activity-hero-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--cream);
  text-wrap: balance;
  margin: 0;
}
.activity-hero-lede {
  font-size: 17px;
  line-height: 1.6;
  color: rgba(245, 239, 230, .88);
  margin-top: 18px;
  max-width: 620px;
}

.activity-body {
  max-width: 1200px;
  margin: -48px auto 0;
  padding: 0 24px;
  position: relative;
  z-index: 2;
}
@media (min-width: 768px) { .activity-body { padding: 0 48px; } }

.activity-body-grid {
  display: grid; gap: 28px;
  grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 1024px) {
  .activity-body-grid { grid-template-columns: minmax(0, 1fr) 340px; gap: 36px; align-items: start; }
}

.activity-content {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 24px;
  padding: 32px 28px;
  box-shadow: 0 20px 50px -30px rgba(30, 20, 10, .25);
  min-width: 0;
}
@media (min-width: 768px) { .activity-content { padding: 44px 40px; } }

.activity-description {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: var(--ink);
}
.activity-description h2, .activity-description h3 {
  font-family: 'Fraunces', Georgia, serif;
  color: var(--ink);
  letter-spacing: -0.02em;
  font-weight: 500;
  margin-top: 1.6em;
}
.activity-description h2 { font-size: 24px; }
.activity-description h3 { font-size: 19px; }
.activity-description p { margin: 0 0 1em; color: var(--ink-soft); }
.activity-description ul, .activity-description ol {
  margin: 0 0 1em 1.25em;
  color: var(--ink-soft);
}
.activity-description li { margin-bottom: .4em; }
.activity-description a {
  color: var(--bordeaux);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.activity-description img { border-radius: 14px; margin: 1em 0; }

.activity-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 36px;
}
@media (min-width: 640px) { .activity-gallery { grid-template-columns: repeat(2, 1fr); } }
.activity-gallery-item {
  margin: 0;
  border-radius: 18px;
  overflow: hidden;
  aspect-ratio: 4 / 3;
  background: rgba(228, 179, 99, .1);
}
.activity-gallery-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Sidebar */
.activity-side { position: sticky; top: 96px; }
@media (max-width: 1023px) { .activity-side { position: static; } }
.activity-side-card {
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .32);
  border-radius: 24px;
  padding: 28px 26px;
  box-shadow: 0 24px 50px -28px rgba(30, 20, 10, .28);
}
.activity-side-head { padding-bottom: 16px; margin-bottom: 18px; border-bottom: 1px solid rgba(139, 90, 43, .14); }
.activity-side-eyebrow {
  display: block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bordeaux);
  margin-bottom: 6px;
}
.activity-side-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 22px;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0;
}
.activity-side-list {
  display: grid; gap: 14px;
  margin: 0 0 22px;
}
.activity-side-list > div {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .14);
}
.activity-side-list > div:last-child { border-bottom: 0; }
.activity-side-list dt {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  flex-shrink: 0;
}
.activity-side-list dt svg { color: var(--honey); flex-shrink: 0; }
.activity-side-list dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  text-align: right;
}

.activity-side-cta {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%;
  padding: 14px 20px;
  background: var(--bordeaux);
  color: var(--cream);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-decoration: none;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.activity-side-cta:hover {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
}
.activity-side-cta svg { transition: transform .2s; }
.activity-side-cta:hover svg { transform: translateX(3px); }
.activity-side-cta:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .5), 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.activity-side-fineprint {
  font-size: 11.5px;
  color: var(--muted);
  text-align: center;
  margin: 12px 0 0;
  line-height: 1.5;
}

.activity-related { margin-top: 80px; padding: 0 24px; }
@media (min-width: 768px) { .activity-related { padding: 0 48px; } }
.activity-related-inner { max-width: 1200px; margin: 0 auto; }
.activity-related-head { margin-bottom: 28px; }

/* =========================================================================
   RESERVERINGEN MODULE PAGES (/reserveren, /vergaderen, /bevestiging)
   ========================================================================= */

.reserveringen-page {
  position: relative;
  background: var(--cream-warm);
  min-height: 100vh;
  padding: 132px 24px 96px;
  overflow: hidden;
}
@media (min-width: 768px)  { .reserveringen-page { padding: 152px 48px 112px; } }
@media (min-width: 1024px) { .reserveringen-page { padding: 172px 64px 120px; } }

.reserveringen-inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
}
.reserveringen-inner--narrow { max-width: 640px; }

.reserveringen-head {
  max-width: 760px;
  margin-bottom: 40px;
}
.reserveringen-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px;
  background: var(--cream);
  border: 1px solid rgba(228, 179, 99, .35);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--bordeaux);
  box-shadow: 0 6px 14px -8px rgba(30, 20, 10, .15);
  margin-bottom: 18px;
}
.reserveringen-eyebrow-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 0 rgba(228, 179, 99, .7);
  animation: todayPulse 2.2s ease-out infinite;
}
.reserveringen-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(32px, 4.4vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.025em;
  color: var(--ink);
  margin: 0 0 16px;
  text-wrap: balance;
}
.reserveringen-lede {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink-soft);
  max-width: 580px;
  margin: 0;
}

.reserveringen-preselect {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 20px;
  padding: 9px 14px;
  background: rgba(228, 179, 99, .18);
  border: 1px solid rgba(228, 179, 99, .4);
  color: var(--bordeaux);
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
}
.reserveringen-preselect svg { color: var(--bordeaux); flex-shrink: 0; }
.reserveringen-preselect strong { font-weight: 700; }

.reserveringen-card {
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  padding: 24px 20px;
  box-shadow:
    0 36px 80px -40px rgba(30, 20, 10, .35),
    0 8px 24px -16px rgba(30, 20, 10, .14);
}
@media (min-width: 768px)  { .reserveringen-card { padding: 36px; border-radius: 32px; } }
@media (min-width: 1024px) { .reserveringen-card { padding: 44px 48px; } }

/* De calendar-component kan Tailwind-classes gebruiken; zorg dat primary kleur
   matches met het thema. */
.reserveringen-card .bg-primary,
.reserveringen-card [class*="bg-primary"] { background-color: var(--bordeaux) !important; }
.reserveringen-card .text-primary,
.reserveringen-card [class*="text-primary"] { color: var(--bordeaux) !important; }

/* ----- Confirmation ----- */
.reserveringen-confirm {
  text-align: center;
  padding: 48px 28px;
  background: var(--cream);
  border: 1px solid rgba(139, 90, 43, .1);
  border-radius: 28px;
  box-shadow:
    0 36px 80px -40px rgba(30, 20, 10, .35),
    0 8px 24px -16px rgba(30, 20, 10, .14);
}
@media (min-width: 768px) { .reserveringen-confirm { padding: 56px 44px; } }

.reserveringen-confirm-icon {
  display: grid; place-items: center;
  width: 72px; height: 72px;
  margin: 0 auto 22px;
  border-radius: 999px;
  background: rgba(45, 106, 79, .14);
  color: #2d6a4f;
  animation: successPop .5s cubic-bezier(.25, .9, .3, 1.5);
}
.reserveringen-confirm-title {
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 40px);
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 8px 0 14px;
}
.reserveringen-confirm-title span { color: var(--bordeaux); font-style: italic; }
.reserveringen-confirm-lede {
  font-size: 15px; line-height: 1.6;
  color: var(--ink-soft);
  max-width: 460px;
  margin: 0 auto 28px;
}
.reserveringen-confirm-list {
  display: grid; gap: 0;
  margin: 0 0 24px;
  padding: 20px 22px;
  background: rgba(228, 179, 99, .1);
  border: 1px dashed rgba(228, 179, 99, .4);
  border-radius: 18px;
  text-align: left;
}
.reserveringen-confirm-list > div {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .14);
}
.reserveringen-confirm-list > div:last-child { border-bottom: 0; }
.reserveringen-confirm-list dt {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.reserveringen-confirm-list dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  text-align: right;
}
.reserveringen-confirm-list dd.is-mono {
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: 13px;
}
.reserveringen-confirm-list dd.is-total { color: var(--bordeaux); font-size: 17px; }

.reserveringen-confirm-fineprint {
  font-size: 13px;
  color: var(--ink-soft);
  margin: 0 0 28px;
}
.reserveringen-confirm-fineprint strong { color: var(--ink); }

.reserveringen-confirm-actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
}

/* =========================================================================
   RESV WIDGET — Reserveringen booking component (wine theme)
   ========================================================================= */

.resv-widget {
  display: flex; flex-direction: column;
  gap: 0;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--ink);
}
.resv-widget [x-cloak] { display: none !important; }

.resv-empty {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  padding: 36px 24px;
  background: rgba(228, 179, 99, .08);
  border: 1px dashed rgba(228, 179, 99, .4);
  border-radius: 18px;
  color: var(--muted);
  text-align: center;
  font-size: 14px;
}
.resv-empty svg { color: rgba(139, 90, 43, .4); }

.resv-section {
  padding: 18px 4px;
  border-bottom: 1px solid rgba(139, 90, 43, .12);
}
.resv-section:first-child { padding-top: 4px; }
.resv-section:last-child { border-bottom: 0; padding-bottom: 4px; }

.resv-section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
  margin-bottom: 10px;
}

.resv-label {
  display: block;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 10px;
}
.resv-label span { color: var(--bordeaux); }
.resv-section-head .resv-label { margin-bottom: 0; }

.resv-hint {
  font-size: 11.5px;
  color: var(--muted);
  font-style: italic;
}
.resv-hint--selected {
  color: var(--bordeaux);
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-size: 12.5px;
}

/* ----- Type chips ----- */
.resv-type-chips {
  display: flex; flex-wrap: wrap; gap: 6px;
}
.resv-type {
  padding: 8px 14px;
  border-radius: 999px;
  border: 1.5px solid rgba(139, 90, 43, .18);
  background: #fff;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  cursor: pointer;
  transition: all .2s;
}
.resv-type:hover { border-color: var(--honey); transform: translateY(-1px); }
.resv-type.is-active {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
}
.resv-type-desc {
  margin: 10px 0 0;
  font-size: 12.5px;
  color: var(--ink-soft);
  line-height: 1.5;
}

/* ----- Date scroller ----- */
.resv-dates-wrap {
  position: relative;
}
.resv-dates-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px; height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(139, 90, 43, .18);
  background: #fff;
  color: var(--walnut);
  display: grid; place-items: center;
  cursor: pointer;
  transition: all .2s;
  box-shadow: 0 4px 10px -4px rgba(30, 20, 10, .2);
}
.resv-dates-nav:hover {
  border-color: var(--honey);
  color: var(--bordeaux);
}
.resv-dates-nav:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .3);
}
.resv-dates-nav--prev { left: -14px; }
.resv-dates-nav--next { right: -14px; }

.resv-dates {
  display: flex; gap: 6px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: thin;
  scrollbar-color: rgba(139, 90, 43, .25) transparent;
  padding: 2px 14px 10px;
  scroll-snap-type: x mandatory;
}
.resv-dates::-webkit-scrollbar { height: 4px; }
.resv-dates::-webkit-scrollbar-track { background: transparent; }
.resv-dates::-webkit-scrollbar-thumb { background: rgba(139, 90, 43, .25); border-radius: 10px; }

.resv-dates-empty {
  padding: 16px 20px;
  font-size: 12.5px;
  color: var(--muted);
  font-style: italic;
}

.resv-date {
  flex-shrink: 0;
  scroll-snap-align: start;
  min-width: 62px;
  min-height: 74px;
  padding: 10px 6px 12px;
  border-radius: 12px;
  border: 1.5px solid rgba(139, 90, 43, .14);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  transition: all .2s;
  position: relative;
  font-family: 'Inter', system-ui, sans-serif;
}
.resv-date:hover:not(:disabled) {
  border-color: var(--honey);
  transform: translateY(-2px);
  box-shadow: 0 6px 14px -6px rgba(228, 179, 99, .5);
}
.resv-date:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .38);
  z-index: 2;
}
.resv-date.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 8px 20px -10px rgba(61, 43, 31, .55);
}
/* Status-varianten */
.resv-date.is-partial:not(.is-selected) {
  border-color: rgba(228, 179, 99, .6);
  background: rgba(228, 179, 99, .06);
}
.resv-date.is-full:not(.is-selected),
.resv-date.is-blocked:not(.is-selected),
.resv-date.is-closed:not(.is-selected),
.resv-date.is-past:not(.is-selected) {
  opacity: .35;
  cursor: not-allowed;
  background: rgba(139, 90, 43, .04);
  border-color: transparent;
}
.resv-date.is-full:not(.is-selected):hover,
.resv-date.is-blocked:not(.is-selected):hover,
.resv-date.is-closed:not(.is-selected):hover,
.resv-date.is-past:not(.is-selected):hover {
  transform: none;
  box-shadow: none;
}
.resv-date:disabled { cursor: not-allowed; }

.resv-date-day {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
.resv-date.is-selected .resv-date-day,
.resv-date.is-selected .resv-date-month { color: rgba(245, 239, 230, .72); }
.resv-date-num {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}
.resv-date-month {
  font-size: 10px;
  color: var(--ink-soft);
  letter-spacing: 0.08em;
  text-transform: lowercase;
}
.resv-date-badge {
  position: absolute;
  top: 6px; right: 6px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--honey);
  box-shadow: 0 0 0 2px #fff;
}

.resv-legend {
  display: flex; flex-wrap: wrap; gap: 10px 16px;
  margin-top: 6px;
  padding: 0 4px;
  font-size: 10.5px;
  color: var(--muted);
  font-family: 'Inter', system-ui, sans-serif;
}
.resv-legend > span {
  display: inline-flex; align-items: center; gap: 5px;
}
.resv-legend-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
}
.resv-legend-dot--empty   { background: #fff; border: 1.5px solid rgba(139, 90, 43, .4); }
.resv-legend-dot--partial { background: var(--honey); }
.resv-legend-dot--full    { background: rgba(139, 90, 43, .25); }
.resv-legend-dot--closed  { background: rgba(139, 90, 43, .12); }

/* ----- Slots ----- */
.resv-slots {
  display: grid; gap: 8px;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
}
.resv-slot {
  padding: 11px 14px;
  border-radius: 12px;
  border: 1.5px solid rgba(139, 90, 43, .16);
  background: #fff;
  text-align: left;
  cursor: pointer;
  transition: all .2s;
  display: flex; flex-direction: column; gap: 2px;
}
.resv-slot:hover:not(:disabled) { border-color: var(--honey); transform: translateY(-1px); }
.resv-slot:focus-visible { outline: none; border-color: var(--honey); box-shadow: 0 0 0 3px rgba(228, 179, 99, .3); }
.resv-slot.is-selected {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 8px 18px -8px rgba(61, 43, 31, .55);
}
.resv-slot.is-unavailable,
.resv-slot:disabled {
  opacity: .4;
  cursor: not-allowed;
  background: rgba(139, 90, 43, .04);
}
.resv-slot-label {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.resv-slot-meta {
  font-size: 11px;
  color: var(--muted);
}
.resv-slot.is-selected .resv-slot-meta { color: rgba(245, 239, 230, .72); }

/* ----- Arrangements ----- */
.resv-arrangements {
  display: grid; gap: 8px;
}
.resv-arr {
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1.5px solid rgba(139, 90, 43, .14);
  background: #fff;
  cursor: pointer;
  transition: all .2s;
  position: relative;
}
.resv-arr:hover { border-color: var(--honey); }
.resv-arr:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(228, 179, 99, .32); border-color: var(--honey); }
.resv-arr.is-selected {
  background: rgba(228, 179, 99, .12);
  border-color: var(--honey);
}
.resv-arr-indicator {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 2px solid rgba(139, 90, 43, .25);
  background: #fff;
  transition: all .2s;
  position: relative;
  flex-shrink: 0;
}
.resv-arr.is-selected .resv-arr-indicator {
  border-color: var(--bordeaux);
  background: var(--bordeaux);
  box-shadow: inset 0 0 0 3px #fff;
}
.resv-arr-body { min-width: 0; }
.resv-arr-head {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.resv-arr-name {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.resv-arr-badge {
  padding: 2px 7px;
  background: var(--honey);
  color: var(--bordeaux);
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.resv-arr-desc {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.4;
}
.resv-arr-price {
  display: flex; flex-direction: column; align-items: flex-end;
  text-align: right;
  white-space: nowrap;
}
.resv-arr-price-main {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 15px;
  font-weight: 500;
  color: var(--bordeaux);
}
.resv-arr-price-sub {
  font-size: 11px;
  color: var(--muted);
}

/* ----- Form ----- */
.resv-section--form {
  display: flex; flex-direction: column; gap: 14px;
}
.resv-form-grid {
  display: grid; gap: 12px;
  grid-template-columns: 1fr;
}
@media (min-width: 480px) { .resv-form-grid { grid-template-columns: 1fr 1fr; } }

.resv-field {
  display: flex; flex-direction: column; gap: 5px;
  min-width: 0;
}
.resv-field .resv-label { margin-bottom: 0; }

.resv-input {
  width: 100%;
  padding: 11px 14px;
  background: #fff;
  border: 1.5px solid rgba(139, 90, 43, .16);
  border-radius: 10px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  color: var(--ink);
  line-height: 1.4;
  transition: all .2s;
  min-height: 42px;
}
.resv-input::placeholder { color: rgba(139, 90, 43, .45); }
.resv-input:hover { border-color: rgba(139, 90, 43, .32); }
.resv-input:focus-visible {
  outline: none;
  border-color: var(--honey);
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .22);
}
.resv-textarea { min-height: 80px; resize: vertical; }

.resv-total {
  padding: 10px 14px;
  background: rgba(228, 179, 99, .16);
  border-radius: 10px;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--bordeaux);
  letter-spacing: -0.015em;
  min-height: 42px;
  display: flex; align-items: center;
}

.resv-error {
  padding: 10px 14px;
  background: rgba(196, 87, 59, .08);
  border: 1px solid rgba(196, 87, 59, .3);
  border-radius: 10px;
  color: #c4573b;
  font-size: 13px;
}

.resv-submit {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%;
  padding: 13px 20px;
  background: var(--bordeaux);
  color: var(--cream);
  border: 0;
  border-radius: 999px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all .2s;
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
  min-height: 48px;
}
.resv-submit:hover:not(:disabled) {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.resv-submit:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .5), 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.resv-submit:disabled { opacity: .55; cursor: not-allowed; }
.resv-submit svg { transition: transform .2s; }
.resv-submit:hover:not(:disabled) svg { transform: translateX(3px); }

.resv-fineprint {
  font-size: 11.5px;
  color: var(--muted);
  text-align: center;
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px dashed rgba(139, 90, 43, .14);
  line-height: 1.5;
}

@media (prefers-reduced-motion: reduce) {
  .resv-type, .resv-date, .resv-slot, .resv-arr,
  .resv-dates-nav, .resv-submit, .resv-input { transition: none; }
  .resv-date:hover:not(:disabled),
  .resv-slot:hover:not(:disabled),
  .resv-submit:hover:not(:disabled) { transform: none; }
}

/* =========================================================================
   RESV WIZARD — step indicator, pane transitions, totals, payment
   ========================================================================= */

.resv-wizard {
  display: flex;
  flex-direction: column;
  font-family: 'Inter', system-ui, sans-serif;
  color: var(--ink);
  min-height: 560px;
}
@media (min-width: 640px)  { .resv-wizard { min-height: 600px; } }
@media (min-width: 1024px) { .resv-wizard { min-height: 640px; } }
.resv-wizard [x-cloak] { display: none !important; }
.resv-wizard > .resv-pane { flex: 1 1 auto; }
.resv-wizard > .resv-nav { margin-top: auto; }

/* ----- Step indicator ----- */
.resv-steps {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 24px;
  padding-bottom: 4px;
}
.resv-step {
  flex: 1;
  min-width: 0;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  background: transparent;
  border: 0; padding: 0;
  cursor: pointer;
  color: var(--muted);
  transition: color .2s;
  position: relative;
  z-index: 2;
}
.resv-step:disabled { cursor: not-allowed; }
.resv-step.is-reachable:hover:not(.is-active) { color: var(--ink-soft); }
.resv-step.is-active,
.resv-step.is-complete { color: var(--bordeaux); }

.resv-step-num {
  display: grid; place-items: center;
  width: 34px; height: 34px;
  border-radius: 999px;
  background: var(--cream);
  border: 1.5px solid rgba(139, 90, 43, .22);
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14px;
  font-weight: 500;
  transition: all .25s cubic-bezier(.2, .7, .2, 1);
}
.resv-step.is-active .resv-step-num {
  background: var(--bordeaux);
  color: var(--cream);
  border-color: transparent;
  box-shadow: 0 0 0 4px rgba(228, 179, 99, .26), 0 8px 18px -10px rgba(61, 43, 31, .5);
  transform: scale(1.06);
}
.resv-step.is-complete .resv-step-num {
  background: var(--honey);
  color: var(--bordeaux);
  border-color: transparent;
}
.resv-step:focus-visible { outline: none; }
.resv-step:focus-visible .resv-step-num {
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .5);
}

.resv-step-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.2;
}
@media (max-width: 520px) {
  .resv-step-label { font-size: 9px; letter-spacing: 0.04em; }
  .resv-step-num   { width: 30px; height: 30px; font-size: 13px; }
}

.resv-steps-progress {
  position: absolute;
  top: 17px;
  left: 17px; right: 17px;
  height: 2px;
  background: rgba(139, 90, 43, .14);
  border-radius: 999px;
  z-index: 1;
  overflow: hidden;
}
@media (max-width: 520px) { .resv-steps-progress { top: 15px; } }
.resv-steps-progress-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--honey), var(--bordeaux));
  border-radius: 999px;
  transition: width .45s cubic-bezier(.2, .7, .2, 1);
}

/* ----- Pane transitions ----- */
.resv-pane { min-height: 320px; }
.resv-enter { transition: opacity .3s ease, transform .35s cubic-bezier(.2, .7, .2, 1); }
.resv-enter-start { opacity: 0; transform: translateY(10px); }
.resv-enter-end { opacity: 1; transform: translateY(0); }

/* ----- Stepper (personen) ----- */
.resv-stepper {
  display: inline-flex; align-items: center; gap: 14px;
  padding: 8px 12px;
  background: #fff;
  border: 1.5px solid rgba(139, 90, 43, .16);
  border-radius: 999px;
  box-shadow: 0 8px 20px -12px rgba(30, 20, 10, .18);
}
.resv-stepper button {
  width: 40px; height: 40px;
  border-radius: 999px;
  border: 0;
  background: rgba(228, 179, 99, .14);
  color: var(--bordeaux);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.resv-stepper button:hover:not(:disabled) {
  background: var(--honey);
  transform: scale(1.06);
}
.resv-stepper button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}
.resv-stepper button:disabled {
  color: rgba(139, 90, 43, .3);
  cursor: not-allowed;
}
.resv-stepper-value {
  display: flex; flex-direction: column; align-items: center;
  min-width: 110px;
}
.resv-stepper-num {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 36px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--bordeaux);
  font-variant-numeric: tabular-nums;
}
.resv-stepper-word {
  margin-top: 2px;
  font-size: 10.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.resv-stepper-note {
  margin: 10px 0 0;
  font-size: 11.5px;
  color: var(--muted);
}

/* ----- Form grid (stap 3) ----- */
.resv-field--full { grid-column: 1 / -1; }
.resv-field-label {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-bottom: 4px;
  display: block;
}
.resv-field-label span { color: var(--bordeaux); }

/* ----- Arrangement tweaks voor stap 1 ----- */
.resv-arr-includes {
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
  display: flex; flex-wrap: wrap; gap: 4px 8px;
}
.resv-arr-includes li {
  font-size: 11px;
  color: var(--ink-soft);
  padding-left: 14px;
  position: relative;
}
.resv-arr-includes li::before {
  content: '';
  position: absolute;
  left: 0; top: 7px;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--honey);
}
.resv-arr-meta {
  display: inline-block;
  margin-top: 6px;
  font-size: 11px;
  color: var(--muted);
  font-style: italic;
}

/* ----- Review (stap 4) ----- */
.resv-review {
  background: rgba(228, 179, 99, .08);
  border: 1px dashed rgba(228, 179, 99, .45);
  border-radius: 18px;
  padding: 18px 22px;
}
.resv-review-list {
  display: grid; gap: 0;
  margin: 0; padding: 0;
}
.resv-review-list > div {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 9px 0;
  border-bottom: 1px dashed rgba(139, 90, 43, .18);
}
.resv-review-list > div:last-child { border-bottom: 0; }
.resv-review-list dt {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  flex-shrink: 0;
}
.resv-review-list dt svg { color: var(--honey); flex-shrink: 0; }
.resv-review-list dd {
  margin: 0;
  font-family: 'Fraunces', Georgia, serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  letter-spacing: -0.005em;
  text-align: right;
}

/* ----- Totals ----- */
.resv-section--totals {
  display: flex; flex-direction: column; gap: 14px;
}
.resv-totals {
  background: linear-gradient(135deg, var(--bordeaux) 0%, var(--bordeaux-deep) 100%);
  color: var(--cream);
  border-radius: 18px;
  padding: 18px 22px;
  display: flex; flex-direction: column; gap: 10px;
  box-shadow: 0 16px 32px -18px rgba(61, 43, 31, .55);
}
.resv-totals-row {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
}
.resv-totals-row span em {
  font-style: normal;
  font-size: 11px;
  opacity: .7;
  margin-left: 4px;
}
.resv-totals-main {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: -0.015em;
}
.resv-totals-row--deposit {
  padding-top: 10px;
  border-top: 1px dashed rgba(245, 239, 230, .22);
  font-weight: 600;
}
.resv-totals-deposit {
  font-family: 'Fraunces', Georgia, serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--honey);
  letter-spacing: -0.02em;
}
.resv-totals-row--rest {
  font-size: 12px;
  opacity: .7;
}

.resv-payment-info {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  background: rgba(228, 179, 99, .1);
  border: 1px solid rgba(228, 179, 99, .3);
  border-radius: 12px;
  font-size: 12px;
  color: var(--ink-soft);
  line-height: 1.4;
}
.resv-payment-info svg { color: var(--bordeaux); flex-shrink: 0; }

/* ----- Nav bar ----- */
.resv-nav {
  display: flex; align-items: center; gap: 10px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid rgba(139, 90, 43, .14);
}
.resv-nav-spacer { flex: 1; }

.resv-nav-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 18px;
  border-radius: 999px;
  border: 0;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: all .2s;
  min-height: 44px;
  white-space: nowrap;
}
.resv-nav-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(228, 179, 99, .45);
}
.resv-nav-btn--ghost {
  background: transparent;
  color: var(--ink-soft);
  border: 1.5px solid rgba(139, 90, 43, .18);
}
.resv-nav-btn--ghost:hover:not(:disabled) {
  border-color: var(--honey);
  color: var(--bordeaux);
  background: rgba(228, 179, 99, .08);
}
.resv-nav-btn--ghost svg { transition: transform .2s; }
.resv-nav-btn--ghost:hover:not(:disabled) svg { transform: translateX(-3px); }

.resv-nav-btn--primary {
  background: var(--bordeaux);
  color: var(--cream);
  box-shadow: 0 10px 22px -10px rgba(61, 43, 31, .55);
}
.resv-nav-btn--primary:hover:not(:disabled) {
  background: var(--bordeaux-deep);
  transform: translateY(-1px);
  box-shadow: 0 14px 28px -8px rgba(61, 43, 31, .7);
}
.resv-nav-btn--primary svg { transition: transform .2s; }
.resv-nav-btn--primary:hover:not(:disabled) svg { transform: translateX(3px); }
.resv-nav-btn--primary:disabled {
  background: rgba(139, 90, 43, .24);
  color: rgba(245, 239, 230, .6);
  box-shadow: none;
  cursor: not-allowed;
}

.resv-nav-btn--pay {
  background: linear-gradient(135deg, var(--bordeaux), var(--bordeaux-deep));
  color: var(--cream);
  padding: 14px 24px;
  font-size: 14px;
  box-shadow: 0 14px 30px -10px rgba(228, 179, 99, .4), 0 6px 16px -8px rgba(61, 43, 31, .5);
  position: relative;
}
.resv-nav-btn--pay::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  background: linear-gradient(135deg, var(--honey), var(--bordeaux));
  z-index: -1;
  opacity: 0;
  transition: opacity .3s;
}
.resv-nav-btn--pay:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 18px 38px -10px rgba(228, 179, 99, .55), 0 8px 20px -8px rgba(61, 43, 31, .55);
}
.resv-nav-btn--pay:hover:not(:disabled)::before { opacity: 1; }
.resv-nav-btn--pay:disabled {
  background: rgba(139, 90, 43, .24);
  color: rgba(245, 239, 230, .6);
  box-shadow: none;
  cursor: not-allowed;
}
.resv-nav-btn--pay svg { transition: transform .2s; }
.resv-nav-btn--pay:hover:not(:disabled) svg { transform: translateX(3px); }

/* Mobiel: sticky bottom nav */
@media (max-width: 640px) {
  .resv-nav {
    position: sticky;
    bottom: 8px;
    margin-top: 20px;
    padding: 10px;
    background: rgba(245, 239, 230, .96);
    border: 1px solid rgba(139, 90, 43, .14);
    border-top: 1px solid rgba(139, 90, 43, .14);
    border-radius: 999px;
    box-shadow: 0 10px 30px -10px rgba(30, 20, 10, .3);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    z-index: 10;
  }
  .resv-nav-btn { padding: 11px 14px; font-size: 12.5px; }
}

@media (prefers-reduced-motion: reduce) {
  .resv-enter, .resv-step-num, .resv-steps-progress-bar,
  .resv-nav-btn, .resv-stepper button { transition: none; }
  .resv-step.is-active .resv-step-num { transform: none; }
}

/* ====================================================================
   HERO · portrait tablet (tall viewports)
   ---
   Op staand tablet blijft hero volledig (100vh-40) zodat sectie 2 niet
   zichtbaar is onder de fold. We centreren alleen de content VERTICAAL
   binnen de hero zodat het hoofd-blok op de ooghoogte landt i.p.v.
   bovenaan vastgeplakt.
   ==================================================================== */
@media (min-width: 768px) and (max-width: 1023px) and (orientation: portrait) {
  .hero-slide > .relative.z-10 {
    justify-content: center !important;
    padding-top: 120px !important;
    padding-bottom: 120px !important;
  }
}

/* ====================================================================
   BACK TO TOP — druiventros boven een honey-cirkel met pijl
   ==================================================================== */
.to-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  width: 110px;
  height: 110px;
  z-index: 60;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .35s ease, transform .35s ease;
  pointer-events: none;
}
.to-top.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.to-top__leaves {
  position: absolute;
  bottom: 7px;
  left: -10px;
  width: 70px;
  height: auto;
  transform: rotate(-90deg);
  transform-origin: 50% 50%;
  opacity: .9;
  filter: drop-shadow(0 4px 8px rgba(10, 6, 3, .35));
  transition: transform .4s cubic-bezier(.2, .7, .2, 1), opacity .25s ease;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.to-top__circle {
  position: absolute;
  bottom: 14px;
  right: 14px;
  width: 56px;
  height: 56px;
  border-radius: 999px;
  background: var(--ink);
  color: var(--honey);
  border: 2px solid var(--honey);
  display: grid;
  place-items: center;
  box-shadow: 0 10px 24px rgba(10, 6, 3, .35), inset 0 1px 0 rgba(255,255,255,.06);
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
  z-index: 1;
}
.to-top:hover .to-top__leaves {
  transform: rotate(-93deg) translate(0, -1px);
  opacity: 1;
}
.to-top:hover .to-top__circle {
  transform: translateY(-2px);
  background: var(--ink-soft);
  border-color: var(--honey-soft);
}
.to-top:focus-visible {
  outline: none;
}
.to-top:focus-visible .to-top__circle {
  outline: 2px solid var(--honey);
  outline-offset: 3px;
}
@media (max-width: 640px) {
  .to-top { right: 16px; bottom: 16px; width: 96px; height: 96px; }
  .to-top__circle { width: 48px; height: 48px; bottom: 12px; right: 12px; }
  .to-top__leaves { width: 60px; bottom: 6px; left: -8px; }
}
@media (prefers-reduced-motion: reduce) {
  .to-top,
  .to-top__grape,
  .to-top__circle { transition: opacity .15s ease; }
}

/* ============================================
   THEMED SCROLLBAR — wijndomein bordeaux + honey
   Globale, dunne scrollbar die past bij de site-stijl.
   ============================================ */

/* Firefox */
html {
  scrollbar-width: thin;
  scrollbar-color: rgba(139, 90, 43, 0.35) transparent;
}

/* Webkit / Chromium */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background-color: rgba(139, 90, 43, 0.35);
  border-radius: 10px;
  border: 2px solid transparent;
  background-clip: content-box;
  transition: background-color 0.2s ease;
}

::-webkit-scrollbar-thumb:hover {
  background-color: rgba(228, 179, 99, 0.7);
  background-clip: content-box;
}

::-webkit-scrollbar-corner {
  background: transparent;
}

