/* =========================================================================
   NACHT VAN DE WIJN  Editie 7  2026
   Shared stylesheet  v2
   --------------------------------------------------------------------------
   Themes: light is default, dark via [data-theme="dark"] op <html>
   Talen: NL default, EN via [lang="en"] op <html>
   ========================================================================= */

/* ---------- Brand tokens ---------- */
:root{
  --navy:        #010341;
  --midnight:    #33357e;
  --bordeaux:    #9b3737;
  --terracotta:  #ac595a;
  --gold:        #feb72a;
  --cream:       #fef1d5;
  --sand:        #f0e4c0;
  --white:       #ffffff;
}

/* ---------- Themed surface tokens (LIGHT IS DEFAULT) ---------- */
:root,
:root[data-theme="light"]{
  --bg:          var(--cream);
  --bg-soft:     var(--sand);
  --ink:         var(--navy);
  --ink-soft:    rgba(1, 3, 65, 0.78);
  --ink-muted:   rgba(1, 3, 65, 0.50);
  --rule:        rgba(1, 3, 65, 0.10);
  --rule-strong: rgba(1, 3, 65, 0.25);
  --accent:      var(--bordeaux);
  --accent-soft: var(--terracotta);
  --highlight:   var(--bordeaux);
  --ph-bg:       var(--sand);
  --ph-ink:      rgba(1, 3, 65, 0.50);
  color-scheme: light;
}

:root[data-theme="dark"]{
  --bg:          var(--navy);
  --bg-soft:     #060845;
  --ink:         var(--cream);
  --ink-soft:    rgba(254, 241, 213, 0.78);
  --ink-muted:   rgba(254, 241, 213, 0.50);
  --rule:        rgba(254, 241, 213, 0.14);
  --rule-strong: rgba(254, 241, 213, 0.32);
  --accent:      var(--terracotta);
  --accent-soft: var(--bordeaux);
  --highlight:   var(--gold);
  --ph-bg:       #060845;
  --ph-ink:      rgba(254, 241, 213, 0.55);
  color-scheme: dark;
}

/* ---------- Fonts ---------- */
/* Gobold Blocky lokaal. Geen fallback die er op lijkt (Anton eruit) zodat
   een laadfout direct opvalt in plaats van een mimic. */
@font-face{
  font-family: "Gobold Blocky";
  /* BLOK-variant = het handelsmerk: gevuld blok met de letter eruit geknipt.
     Overlap schoon gemergd via skia-pathops (geen sliver-artefacten in counters).
     Geen text-stroke meer eroverheen: die at juist in de counters en maakte de
     letters dunner. Zo staan de blokken voller. */
  src: url("./GoboldBlocky-merged.woff2") format("woff2"),
       url("./GoboldBlocky-merged.woff") format("woff");
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html, body{
  margin: 0; padding: 0;
  hyphens: none; -webkit-hyphens: none;
  word-break: normal;
}
html{ scroll-behavior: smooth; }
img, svg{ max-width: 100%; display: block; }
a{ color: inherit; text-decoration: none; }
button{ font: inherit; cursor: pointer; }
::selection{ background: var(--accent); color: var(--cream); }

body{
  background: var(--bg);
  color: var(--ink);
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
  font-optical-sizing: auto;
  font-variation-settings: "opsz" 14, "SOFT" 50;
  font-weight: 400;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: color .35s ease;  /* geen background-fade: voorkomt felblauwe flash bij thema-wissel */
  overflow-x: hidden;
}

/* ---------- Display (Gobold) ---------- */
.display{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0;
  font-weight: 400;
  line-height: 0.88;
  -webkit-font-smoothing: antialiased;
  }

/* Caption / label / mono */
.caption, .mono{
  font-family: "Inter", system-ui, sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

/* ---------- Frame ---------- */
.frame{ max-width: 1280px; margin: 0 auto; padding: 0 56px; }
@media (max-width: 720px){ .frame{ padding: 0 24px; } }

/* =========================================================================
   TICKER
   ========================================================================= */
.ticker{
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
  background: var(--bg);
}
.ticker-track{
  display: inline-flex;
  gap: 64px;
  padding: 14px 0;
  animation: scroll 60s linear infinite;
  white-space: nowrap;
  will-change: transform;
}
.ticker:hover .ticker-track{ animation-play-state: paused; }
.ticker-track span{
  font-family: "Inter", sans-serif;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  font-size: 11px;
  color: var(--ink-soft);
}
.ticker-track span::before{
  content: "✦";
  color: var(--accent);
  margin-right: 64px;
  font-size: 9px;
  position: relative;
  top: -2px;
}
@keyframes scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* =========================================================================
   NAV
   ========================================================================= */
nav.topnav{
  position: sticky;
  top: 0;
  z-index: 80;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 48px;
  padding: 22px 56px;
  border-bottom: 1px solid var(--rule);
  background: color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  transition: background .4s ease;
}
@media (max-width: 720px){ nav.topnav{ padding: 16px 24px; gap: 16px; } }

/* Brand mark  ALTIJD één kleur (no .accent override here) */
.brand-mark{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: 18px;
  line-height: 1.02;
  color: var(--ink);
  letter-spacing: 0;
  padding: 2px 0;
}

.nav-links{
  justify-self: center;
  display: flex;
  gap: 36px;
}
.nav-links a{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-soft);
  transition: color .2s;
  position: relative;
  padding: 4px 0;
}
.nav-links a:hover,
.nav-links a.is-active{ color: var(--ink); }
.nav-links a.is-active::after,
.nav-links a:hover::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: var(--accent);
  transform-origin: left;
  animation: linewidth .35s cubic-bezier(.4,0,.2,1);
}
@keyframes linewidth { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (max-width: 960px){ .nav-links{ display: none; } }

.nav-tools{ display: flex; align-items: center; gap: 14px; }

.icon-btn{
  width: 36px; height: 36px;
  border: 1px solid var(--rule-strong);
  background: transparent;
  color: var(--ink);
  display: grid; place-items: center;
  border-radius: 50%;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
  padding: 0;
}
.icon-btn:hover{ background: var(--accent); color: var(--cream); border-color: var(--accent); transform: rotate(15deg); }

.lang-switch{
  display: inline-flex;
  align-items: center;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--ink-soft);
  border: 1px solid var(--rule-strong);
  border-radius: 999px;
  padding: 5px 4px;
  gap: 2px;
}
.lang-switch button{
  background: transparent;
  border: 0;
  color: inherit;
  padding: 4px 10px;
  border-radius: 999px;
  letter-spacing: inherit;
  transition: background .25s, color .25s;
}
.lang-switch button.is-on{ background: var(--accent); color: var(--cream); }

.nav-cta{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 11px 22px;
  border: 1px solid var(--accent);
  color: var(--cream);
  background: var(--accent);
  border-radius: 999px;
  transition: transform .2s, background .25s;
}
.nav-cta:hover{ transform: translateY(-1px); background: var(--ink); border-color: var(--ink); }

/* =========================================================================
   BUTTONS  with ripple
   ========================================================================= */
.btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 30px;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  border: 1px solid var(--accent);
  color: var(--cream);
  background: var(--accent);
  border-radius: 999px;
  overflow: hidden;
  transition: transform .25s cubic-bezier(.4,0,.2,1), background .25s, color .25s, border-color .25s;
}
.btn:hover{ transform: translateY(-2px); background: var(--ink); border-color: var(--ink); color: var(--bg); }
.btn-ghost{ background: transparent; color: var(--ink); border-color: var(--rule-strong); }
.btn-ghost:hover{ background: var(--ink); color: var(--bg); border-color: var(--ink); }

.btn .ripple{
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.35);
  transform: scale(0);
  animation: ripple .7s linear;
  pointer-events: none;
}
@keyframes ripple {
  to { transform: scale(4); opacity: 0; }
}

/* =========================================================================
   SECTION
   ========================================================================= */
section{
  padding: 144px 0;
  border-top: 1px solid var(--rule);
  position: relative;
}
@media (max-width: 720px){ section{ padding: 84px 0; } }

/* Section head minimalistisch  geen romeinse num meer */
.section-head{
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 96px;
  max-width: 900px;
}
.section-head .num{ display: none; }  /* romeinse cijfers weg */
.section-head .eye{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--accent);
}
.section-head .title{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(34px, 4.8vw, 60px);
  line-height: 1.0;
  letter-spacing: 0;
  margin: 0;
  color: var(--ink);
  }
.section-head .lede{
  max-width: 640px;
  margin: 16px 0 0;
  font-size: 19px;
  line-height: 1.5;
  color: var(--ink-soft);
  font-family: "Fraunces", serif;
}
@media (max-width: 720px){
  .section-head{ margin-bottom: 56px; }
  .section-head .lede{ font-size: 17px; }
}

/* =========================================================================
   HERO
   ========================================================================= */
.hero{
  position: relative;
  padding: 80px 0 160px;
  overflow: hidden;
}
@media (max-width: 720px){ .hero{ padding: 48px 0 80px; } }

.hero .eyebrow{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--accent);
  margin: 0 0 56px;
  display: flex;
  align-items: center;
  gap: 24px;
  justify-content: center;
}
.hero .eyebrow::before,
.hero .eyebrow::after{
  content: "";
  flex: 1; max-width: 120px;
  height: 1px;
  background: var(--rule-strong);
}

/* Hero h1: ALTIJD één kleur Gobold. Geen italic split, geen .small spans. */
.hero h1{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(44px, 8.5vw, 112px);  /* kleiner: counters tonen geen render-slivers op dit formaat */
  line-height: 1.0;
  letter-spacing: 0;
  margin: 0;
  text-align: center;
  color: var(--ink);
  padding: 0.06em 0;
}

/* Letter reveal animatie  per regel mask */
.hero h1 .line{
  display: block;
  overflow: hidden;
  padding: 0.06em 0;
}
.hero h1 .line span{
  display: inline-block;
  transform: translateY(110%);
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.is-loaded .hero h1 .line span{ transform: translateY(0); }
.hero h1 .line:nth-child(1) span{ transition-delay: .15s; }
.hero h1 .line:nth-child(2) span{ transition-delay: .30s; }
.hero h1 .line:nth-child(3) span{ transition-delay: .45s; }

.hero-meta{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 56px;
  margin-top: 96px;
  padding-top: 40px;
  border-top: 1px solid var(--rule);
}
.hero-meta .cell{ display: flex; flex-direction: column; gap: 10px; }
.hero-meta .label{
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
}
.hero-meta .value{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.0;
  color: var(--ink);
  padding: 2px 0;
}
@media (max-width: 720px){ .hero-meta{ grid-template-columns: 1fr; gap: 24px; margin-top: 56px; } }

.hero-cta{
  margin-top: 64px;
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Edition seal */
.seal{
  width: 120px; height: 120px;
  border: 1px solid var(--accent);
  border-radius: 50%;
  display: grid; place-items: center;
  text-align: center;
  color: var(--accent);
  font-family: "Inter", sans-serif;
  font-size: 9px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  line-height: 1.5;
  position: relative;
  padding: 8px;
}
.seal strong{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  font-size: 32px;
  letter-spacing: 0;
  color: var(--accent);
  display: block;
  margin: 2px 0;
  line-height: 1;
}
.seal::before{
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px dashed var(--accent);
  border-radius: 50%;
  opacity: 0.4;
}
.seal-float{
  position: absolute;
  top: 96px;
  right: 56px;
  animation: spin 60s linear infinite;
  will-change: transform;
}
@keyframes spin { from{transform:rotate(0)} to{transform:rotate(360deg)} }
@media (max-width: 960px){ .seal-float{ display: none; } }

/* =========================================================================
   PHOTO  placeholder + image
   ========================================================================= */
.ph{
  position: relative;
  background: var(--ph-bg);
  border: 1px solid var(--rule);
  overflow: hidden;
  aspect-ratio: 4 / 5;
  cursor: pointer;
}
.ph::before,
.ph::after{
  content: ""; position: absolute; background: var(--rule); z-index: 1;
}
.ph::before{ left: 0; right: 0; top: 50%; height: 1px; }
.ph::after { top: 0; bottom: 0; left: 50%; width: 1px; }
.ph.has-image{ background: var(--bg-soft); }
.ph.has-image::before,
.ph.has-image::after{ display: none; }
.ph img{
  width: 100%; height: 100%;
  object-fit: cover; display: block;
  transition: transform 1.4s cubic-bezier(.2,.7,.2,1), filter .6s;
  will-change: transform;
}
.ph:hover img{ transform: scale(1.05); }
.ph .ph-label{
  position: absolute;
  left: 14px; bottom: 14px;
  font-family: "Inter", sans-serif;
  font-size: 9px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ph-ink);
  z-index: 2;
  pointer-events: none;
}
.ph .ph-tag{ display: none; }  /* tags rechtsbovenin op foto's uit */
.ph-wide{ aspect-ratio: 16 / 9; }
.ph-square{ aspect-ratio: 1 / 1; }
.ph-portrait{ aspect-ratio: 3 / 4; }
.ph-tall{ aspect-ratio: 2 / 3; }

/* =========================================================================
   PHOTO GRID (homepage collage)
   ========================================================================= */
.photo-grid{
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 20px;
  margin-top: 112px;
}
.photo-grid .ph-a{ grid-column: 1 / -1;   aspect-ratio: 16 / 7; }
.photo-grid .ph-b{ grid-column: 1 / span 6; aspect-ratio: 3 / 4; }
.photo-grid .ph-c{ grid-column: 7 / span 6; aspect-ratio: 3 / 4; }
.photo-grid .ph-d{ grid-column: 1 / -1;   aspect-ratio: 16 / 7; }
@media (max-width: 720px){
  .photo-grid .ph-b, .photo-grid .ph-c{ grid-column: 1 / -1; aspect-ratio: 4 / 5; }
}
/* Smart object-position for portraits: focus a bit higher */
.photo-grid .ph-b img,
.photo-grid .ph-c img{ object-position: center 30%; }

/* =========================================================================
   LIGHTBOX
   ========================================================================= */
.lightbox{
  position: fixed; inset: 0;
  background: rgba(1, 3, 65, 0.92);
  display: none;
  z-index: 200;
  align-items: center; justify-content: center;
  padding: 48px;
  cursor: zoom-out;
  opacity: 0;
  transition: opacity .35s;
}
.lightbox.is-open{ display: flex; opacity: 1; }
.lightbox img{
  max-width: 92vw; max-height: 88vh;
  object-fit: contain;
  border: 1px solid var(--rule-strong);
  transform: scale(0.96);
  transition: transform .45s cubic-bezier(.2,.7,.2,1);
}
.lightbox.is-open img{ transform: scale(1); }
.lightbox .close{
  position: absolute; top: 24px; right: 28px;
  background: transparent; border: 0;
  color: var(--cream);
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  cursor: pointer;
}

/* =========================================================================
   EDITORIAL BLOCK (manifest)
   ========================================================================= */
.editorial{
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 96px;
  align-items: start;
}
.editorial .body{
  font-family: "Fraunces", serif;
  font-size: 19px;
  line-height: 1.7;
  color: var(--ink);
  max-width: 640px;
}
.editorial .body p{ margin: 0 0 22px; }
.editorial .body p:first-child::first-letter{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  float: left;
  font-size: 120px;
  line-height: 0.85;
  margin: 8px 18px 0 0;
  color: var(--accent);
  text-transform: uppercase;
  }
.editorial aside{
  border-left: 1px solid var(--accent);
  padding: 8px 0 8px 24px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
  color: var(--accent);
  line-height: 1.9;
}
.editorial aside strong{
  display: block;
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  letter-spacing: 0;
  font-size: 24px;
  color: var(--accent);
  margin-top: 8px;
  line-height: 1.05;
  padding: 2px 0;
}
@media (max-width: 720px){
  .editorial{ grid-template-columns: 1fr; gap: 32px; }
  .editorial .body{ font-size: 17px; }
  .editorial .body p:first-child::first-letter{ font-size: 92px; }
}

/* =========================================================================
   STAT NUMBERS
   ========================================================================= */
.numbers{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--rule-strong);
  border: 1px solid var(--rule-strong);
  margin-top: 24px;
}
.numbers .cell{
  background: var(--bg);
  padding: 56px 32px;
  text-align: center;
}
.numbers .cell .figure{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  font-size: clamp(44px, 5.5vw, 72px);
  line-height: 1;
  color: var(--accent);
  padding: 4px 0;
}
.numbers .cell .figure .plus{
  font-family: "Fraunces", serif;
  font-style: italic;
  font-weight: 300;
  font-size: 0.5em;
  color: var(--ink-soft);
}
.numbers .cell .cap{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--ink-soft);
  margin-top: 16px;
}
@media (max-width: 720px){ .numbers{ grid-template-columns: 1fr; } }

/* =========================================================================
   DAYS / PROGRAMMA
   ========================================================================= */
.days{ border-top: 1px solid var(--rule); }
.day{
  display: grid;
  grid-template-columns: 180px 1fr 240px;
  gap: 64px;
  padding: 80px 0;
  border-bottom: 1px solid var(--rule);
  align-items: start;
  position: relative;
  transition: background .35s ease;
}
.day:hover{ background: color-mix(in srgb, var(--accent) 5%, transparent); }
.day .date{ font-family: "Fraunces", serif; }
.day .date .dow{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  font-size: 28px;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0;
  display: block;
  margin-bottom: 8px;
  line-height: 1.05;
  padding: 2px 0;
}
.day .date .num{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  font-size: 72px;
  color: var(--ink);
  letter-spacing: 0;
  display: block;
  line-height: 0.95;
  padding: 4px 0;
}
.day .date .month{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin-top: 8px;
  display: block;
}
.day .content h3{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: 32px;
  line-height: 1.0;
  letter-spacing: 0;
  margin: 0 0 20px;
  color: var(--ink);
  padding: 2px 0;
}
.day .content p{
  font-family: "Fraunces", serif;
  font-size: 17px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0 0 16px;
  max-width: 560px;
}
.day .content .highlights{
  display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px;
}
.tag{
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid var(--rule-strong);
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--ink);
  border-radius: 999px;
}
.tag.bordeaux{ border-color: var(--bordeaux); color: var(--bordeaux); }
.tag.terra{ border-color: var(--terracotta); color: var(--terracotta); }
.tag.gold{ border-color: var(--gold); color: var(--gold); }

.day .side{
  border-left: 1px solid var(--accent);
  padding: 4px 0 4px 24px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  line-height: 1.9;
}
.day .side strong{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  letter-spacing: 0;
  font-size: 24px;
  display: block;
  color: var(--accent);
  margin-top: 6px;
  line-height: 1.05;
  padding: 2px 0;
}
.day .side .small{
  font-family: "Fraunces", serif;
  font-style: italic;
  font-weight: 300;
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink-soft);
  margin-top: 12px;
  display: block;
}
@media (max-width: 960px){
  .day{ grid-template-columns: 1fr; gap: 24px; padding: 48px 0; }
  .day .date{ display: flex; align-items: baseline; gap: 16px; }
  .day .date .num{ font-size: 56px; }
}

/* =========================================================================
   CTA BLOCK
   ========================================================================= */
.cta-block{
  text-align: center;
  padding: 180px 56px;
  border-top: 1px solid var(--accent);
  border-bottom: 1px solid var(--rule);
  position: relative;
}
.cta-block h2{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(40px, 6.5vw, 92px);
  line-height: 0.98;
  letter-spacing: 0;
  margin: 0 0 32px;
  color: var(--ink);
  padding: 0.06em 0;
}
.cta-block .lede{
  font-family: "Fraunces", serif;
  font-size: 19px;
  line-height: 1.5;
  color: var(--ink-soft);
  max-width: 540px;
  margin: 0 auto 48px;
}
.cta-block .row{
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
}
.cta-block .meta{
  margin-top: 36px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}
@media (max-width: 720px){ .cta-block{ padding: 96px 24px; } }

/* =========================================================================
   PARTNERS
   ========================================================================= */
.partners-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
}
.partner{
  background: var(--bg);
  padding: 56px 24px;
  text-align: center;
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: 22px;
  color: var(--ink-soft);
  letter-spacing: 0;
  line-height: 1.05;
  transition: color .25s, background .25s, transform .35s;
  min-height: 140px;
  display: grid; place-items: center;
  padding: 56px 24px;
}
.partner:hover{ color: var(--accent); background: var(--bg-soft); transform: scale(1.02); }
@media (max-width: 960px){ .partners-grid{ grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px){ .partners-grid{ grid-template-columns: repeat(2, 1fr); } }

/* =========================================================================
   CARDS (programma sub, proeverijen)
   ========================================================================= */
.cards{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.card{ display: flex; flex-direction: column; gap: 16px; }
.card .ph{ aspect-ratio: 4 / 5; }
.card .meta{
  display: flex;
  gap: 12px;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 8px;
}
.card h4{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: 26px;
  line-height: 1.0;
  letter-spacing: 0;
  margin: 0;
  color: var(--ink);
  padding: 2px 0;
}
.card p{
  font-family: "Fraunces", serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}
@media (max-width: 960px){ .cards{ grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px){ .cards{ grid-template-columns: 1fr; } }

/* =========================================================================
   FAQ
   ========================================================================= */
.faq{ border-top: 1px solid var(--rule); }
.faq details{
  border-bottom: 1px solid var(--rule);
  padding: 28px 0;
  transition: background .25s;
}
.faq summary{
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: baseline;
  gap: 24px;
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.15;
  letter-spacing: 0;
  color: var(--ink);
  padding: 4px 0;
}
.faq summary::-webkit-details-marker{ display: none; }
.faq summary .q-toggle{
  margin-left: auto;
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.24em;
  color: var(--accent);
  align-self: center;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.faq details[open] .q-toggle{ transform: rotate(45deg); }
.faq details[open] summary .q-toggle::after{ content: ""; }
.faq details:not([open]) summary .q-toggle::after{ content: ""; }
.faq summary .q-toggle::before{ content: "+"; font-size: 24px; line-height: 1; }
.faq .answer{
  margin-top: 18px;
  max-width: 720px;
  font-family: "Fraunces", serif;
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
}

/* =========================================================================
   EMBED (Paylogic)
   ========================================================================= */
.embed-wrap{
  border: 1px solid var(--rule);
  background: var(--bg-soft);
  padding: 32px;
  min-height: 440px;
  display: grid;
  place-items: center;
}
.embed-wrap iframe{ width: 100%; min-height: 480px; border: 0; }
.embed-empty{
  text-align: center;
  font-family: "Fraunces", serif;
  font-style: italic;
  font-weight: 300;
  font-size: 18px;
  color: var(--ink-soft);
  max-width: 480px;
}

/* =========================================================================
   FOOTER
   ========================================================================= */
footer{
  padding: 96px 56px 32px;
  border-top: 1px solid var(--rule);
  background: var(--bg);
}
footer .top{
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 56px;
  padding-bottom: 56px;
  border-bottom: 1px solid var(--rule);
}
/* Footer logo: ALTIJD één kleur. Line height ruim genoeg om overlap te voorkomen. */
footer .logo-block{
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  font-size: 36px;
  line-height: 1.05;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: 0;
  margin-bottom: 20px;
  padding: 4px 0;
}
footer .col h5{
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 18px;
  font-weight: 600;
}
footer .col a, footer .col p{
  font-family: "Fraunces", serif;
  font-size: 15px;
  line-height: 1.8;
  color: var(--ink-soft);
  display: block;
  margin-bottom: 2px;
}
footer .col a{ position: relative; transition: color .2s, padding-left .3s; }
footer .col a:hover{ color: var(--accent); padding-left: 14px; }
footer .col a:hover::before{
  content: "→";
  position: absolute;
  left: 0;
  color: var(--accent);
}
footer .bottom{
  padding-top: 32px;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  letter-spacing: 0.30em;
  text-transform: uppercase;
  color: var(--ink-muted);
}
@media (max-width: 720px){
  footer{ padding: 56px 24px 24px; }
  footer .top{ grid-template-columns: 1fr; gap: 32px; }
}

/* =========================================================================
   Utility i18n
   ========================================================================= */
html[lang="nl"] [data-en-only]{ display: none !important; }
html[lang="en"] [data-nl-only]{ display: none !important; }

/* =========================================================================
   Reveal on scroll
   ========================================================================= */
.reveal{
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 1s cubic-bezier(.2,.7,.2,1), transform 1s cubic-bezier(.2,.7,.2,1);
}
.reveal.is-in{ opacity: 1; transform: translateY(0); }

/* Mask reveal for photos */
.mask-reveal{ position: relative; overflow: hidden; }
.mask-reveal::after{
  content: "";
  position: absolute; inset: 0;
  background: var(--bg);
  transform-origin: right;
  transform: scaleX(1);
  transition: transform 1.2s cubic-bezier(.7,0,.2,1);
  z-index: 5;
  pointer-events: none;
}
.mask-reveal.is-in::after{ transform: scaleX(0); }

/* =========================================================================
   ADDITIONS  editie 7 herziening (data/tijden, festival-overzicht, restaurant)
   ========================================================================= */

/* Hero meta: kleinere, leesbare waarden voor data + tijden */
.hero-meta-2{ grid-template-columns: 1.5fr 1fr; }
@media (max-width: 720px){ .hero-meta-2{ grid-template-columns: 1fr; } }
.hero-meta .value.sm{
  font-family: "Inter", sans-serif;
  text-transform: none;
  font-size: 15px;
  line-height: 1.95;
  letter-spacing: 0;
  font-weight: 500;
  color: var(--ink);
}

/* Wat is er te doen  grid */
.doe-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--rule);
  border: 1px solid var(--rule);
  margin-top: 8px;
}
.doe{
  background: var(--bg);
  padding: 36px 30px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 150px;
  transition: background .3s ease;
}
.doe:hover{ background: var(--bg-soft); }
.doe .n{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--accent);
  font-weight: 600;
}
.doe h3{
  font-family: "Fraunces", serif;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.18;
  color: var(--ink);
}
@media (max-width: 860px){ .doe-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .doe-grid{ grid-template-columns: 1fr; } }

/* Openingstijden strip */
.times-strip{
  margin-top: 28px;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  letter-spacing: 0.02em;
  color: var(--ink-soft);
  text-align: center;
}

/* Restaurant feature: tekst naast beeld */
.editorial.feature{ align-items: center; }
.editorial.feature .eye{
  font-family: "Inter", sans-serif;
  font-size: 11px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 18px;
}

/* Wanneer: nette kolom-uitlijning (dag / datum / tijd) */
.when-rows{ display: flex; flex-direction: column; gap: 6px; }
.when-rows .wr{
  display: grid;
  grid-template-columns: 86px 54px auto;
  gap: 4px 16px;
  align-items: baseline;
}
.when-rows .wr span:nth-child(3){ font-variant-numeric: tabular-nums; }

/* =========================================================================
   LOGO (druiventros + maan)  klein in nav/footer, groot als watermark
   ========================================================================= */
.brand-mark{ display: inline-flex; align-items: center; gap: 12px; }
.brand-logo{ height: 50px; width: auto; flex: none; }
.footer-logo{ height: 58px; width: auto; margin-bottom: 16px; }
/* thema-wissel: navy logo in light, cream logo in dark */
.logo-cream{ display: none; }
[data-theme="dark"] .logo-navy{ display: none; }
[data-theme="dark"] .logo-cream{ display: inline-block; }
/* footer-logo: toon alleen de JUISTE variant als block. Voorheen toonde
   .logo-block .footer-logo beide, waardoor de creme-versie (onzichtbaar op
   creme, behalve het gouden maantje) een "verdwaald maantje" gaf. */
.logo-block .footer-logo.logo-navy{ display: block; }
.logo-block .footer-logo.logo-cream{ display: none; }
[data-theme="dark"] .logo-block .footer-logo.logo-navy{ display: none; }
[data-theme="dark"] .logo-block .footer-logo.logo-cream{ display: block; }

/* =========================================================================
   HERO met foto (full-bleed) + wit wordmark + logo-watermark
   ========================================================================= */
.hero-photo{
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  padding: 0;
  overflow: hidden;
}
.hero-photo .hero-bg{ position: absolute; inset: 0; z-index: 0; }
.hero-photo .hero-bg img{ width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-photo::after{
  content: "";
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(1,3,65,.55) 0%, rgba(1,3,65,.62) 45%, rgba(1,3,65,.82) 100%);
}
.hero-watermark{
  position: absolute; z-index: 2;
  right: -8%; bottom: -14%;
  width: min(62vh, 620px);
  opacity: .12;
  pointer-events: none;
}
.hero-watermark img{ width: 100%; height: auto; display: block; }
.hero-photo .hero-inner{
  position: relative; z-index: 3;
  width: 100%;
  text-align: center;
  color: var(--cream);
  padding: 96px 0;
}
.hero-photo .eyebrow{ color: var(--cream); }
.hero-photo .eyebrow::before,
.hero-photo .eyebrow::after{ background: rgba(254,241,213,.45); }
.hero-photo h1{ color: var(--cream); }
.hero-photo .hero-meta{
  border-top-color: rgba(254,241,213,.28);
  justify-items: center;
  max-width: 760px;
  margin-left: auto; margin-right: auto;
}
.hero-photo .hero-meta .label{ color: var(--gold); }
.hero-photo .hero-meta .value,
.hero-photo .hero-meta .value.sm{ color: var(--cream); }
.hero-photo .btn-ghost{ color: var(--cream); border-color: rgba(254,241,213,.55); }
.hero-photo .btn-ghost:hover{ background: var(--cream); color: var(--ink); border-color: var(--cream); }
@media (max-width: 720px){
  .hero-photo{ min-height: 86vh; }
  .hero-photo .hero-inner{ padding: 64px 0; }
}

/* Hero wordmark als afbeelding (PNG, transparant) i.p.v. levende tekst */
.wordmark-img{ margin: 0; line-height: 0; }
.wordmark-img img{
  width: min(440px, 72vw);
  height: auto;
  margin: 0 auto;
  display: block;
}
@media (max-width: 720px){ .wordmark-img img{ width: min(300px, 78vw); } }

/* =========================================================================
   DESIGN-LAAG: groot logo-motief op achtergrond + subtiele beweging
   ========================================================================= */
.has-mark{ overflow: hidden; }
.has-mark .frame{ position: relative; z-index: 1; }
.bigmark{ position: absolute; z-index: 0; pointer-events: none; opacity: .055; }
.bigmark img{ width: 100%; height: auto; display: block; }
.bigmark .logo-cream{ display: none; }
[data-theme="dark"] .bigmark .logo-navy{ display: none; }
[data-theme="dark"] .bigmark .logo-cream{ display: block; }
.bigmark-left{
  left: -10%; top: 90px;
  width: min(56vw, 680px);
  animation: drift-a 22s ease-in-out infinite alternate;
}
.bigmark-right{
  right: -12%; bottom: -8%;
  width: min(50vw, 600px);
  animation: drift-b 26s ease-in-out infinite alternate;
}
/* WATERPAS: geen rotatie meer, alleen zachte translatie zodat het logo altijd
   recht hangt. De atypische scroll-beweging komt uit nvdw.js via translate. */
@keyframes drift-a{ from{ transform: translate3d(0,0,0); } to{ transform: translate3d(16px,-20px,0); } }
@keyframes drift-b{ from{ transform: translate3d(0,0,0); } to{ transform: translate3d(-18px,-16px,0); } }

/* Hero foto: trage Ken-Burns voor leven */
.hero-photo .hero-bg img{
  animation: kenburns 26s ease-in-out infinite alternate;
  transform-origin: 60% 40%;
}
@keyframes kenburns{ from{ transform: scale(1.04); } to{ transform: scale(1.12) translate(-1.5%, -1%); } }

/* Hero watermark zacht ademend */
.hero-watermark{ animation: drift-b 24s ease-in-out infinite alternate; }

/* Respecteer reduced motion */
@media (prefers-reduced-motion: reduce){
  .bigmark, .hero-photo .hero-bg img, .hero-watermark, .ticker-track{ animation: none !important; }
}

/* =========================================================================
   ARTY: schuine marquee-band met grote woorden
   ========================================================================= */
.diag-band{
  background: var(--accent);
  color: var(--cream);
  overflow: hidden;
  transform: rotate(-3deg);
  width: 108%;
  margin-left: -4%;
  padding: 20px 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.diag-track{
  display: inline-flex;
  gap: 36px;
  white-space: nowrap;
  animation: scroll 34s linear infinite;
  font-family: "Gobold Blocky", Impact, "Arial Black", sans-serif;
  text-transform: uppercase;
  font-size: clamp(26px, 4.4vw, 52px);
  line-height: 1;
  align-items: center;
}
.diag-track span{ opacity: .96; }
.diag-band:hover .diag-track{ animation-play-state: paused; }

/* =========================================================================
   ARTY: horizontaal scrollende galerij (scroll-driven)
   ========================================================================= */
.hscroll{ position: relative; height: 340vh; background: var(--bg); border-top: 1px solid var(--rule); }
.hscroll-sticky{ position: sticky; top: 0; height: 100vh; overflow: hidden; display: flex; align-items: center; }
.hscroll-track{ display: flex; gap: 22px; padding: 0 56px; will-change: transform; }
.hscroll-intro{ flex: 0 0 auto; width: 34vw; max-width: 460px; align-self: center; padding-right: 24px; }
.hscroll-intro .eye{ font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.28em; text-transform:uppercase; color:var(--accent); font-weight:600; }
.hscroll-intro h2{ font-family:"Gobold Blocky",Impact,sans-serif; text-transform:uppercase; font-size:clamp(32px,4vw,56px); line-height:1.0; margin:14px 0 0; color:var(--ink); }
.hpanel{ position: relative; flex: 0 0 auto; width: 62vw; max-width: 860px; height: 74vh; overflow: hidden; }
.hpanel img{ width: 100%; height: 100%; object-fit: cover; }
.hpanel::after{ content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(1,3,65,0) 40%, rgba(1,3,65,.78) 100%); }
.hpanel-cap{ position:absolute; left:0; bottom:0; z-index:2; padding:36px; color:var(--cream); }
.hpanel-cap .n{ font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.28em; font-weight:600; opacity:.9; }
.hpanel-cap h3{ font-family:"Gobold Blocky",Impact,sans-serif; text-transform:uppercase; font-size:clamp(26px,3.2vw,44px); line-height:1.0; margin:10px 0 0; }
@media (max-width: 720px){
  .hscroll{ height: auto; }
  .hscroll-sticky{ position: static; height: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; padding: 32px 0; }
  .hscroll-track{ padding: 0 24px; }
  .hscroll-intro{ width: 78vw; }
  .hpanel{ width: 82vw; height: 60vh; scroll-snap-align: center; }
}
@media (prefers-reduced-motion: reduce){
  .diag-track{ animation: none !important; }
}

/* =========================================================================
   POLISH: titel-veiligheid, scroll-hint, nav-krimp
   ========================================================================= */
.section-head .title{ max-width: 100%; overflow-wrap: break-word; }
.cta-block h2{ max-width: 100%; overflow-wrap: break-word; }

/* Nav krimpt subtiel na scrollen */
nav.topnav.shrink{ padding-top: 12px; padding-bottom: 12px; box-shadow: 0 1px 0 var(--rule); }
nav.topnav{ transition: padding .3s ease, background .4s ease; }

/* Scroll-hint onder de hero */
.scroll-cue{
  position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%);
  z-index: 4; display: flex; flex-direction: column; align-items: center; gap: 10px;
  color: var(--cream); pointer-events: none;
}
.scroll-cue span{
  font-family: "Inter", sans-serif; font-size: 10px; letter-spacing: .28em; text-transform: uppercase; opacity: .85;
}
.scroll-cue i{
  width: 1px; height: 46px; background: linear-gradient(var(--cream), transparent);
  position: relative; overflow: hidden;
}
.scroll-cue i::after{
  content:""; position:absolute; left:0; top:-50%; width:1px; height:50%;
  background: var(--gold); animation: cue 1.8s ease-in-out infinite;
}
@keyframes cue{ 0%{ top:-50%; } 60%{ top:100%; } 100%{ top:100%; } }
@media (prefers-reduced-motion: reduce){ .scroll-cue i::after{ animation: none; } }

/* =========================================================================
   CONVERSIE: sticky ticketbalk + early-bird urgentie
   ========================================================================= */
.ticketbar{
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 14px 24px;
  background: var(--accent); color: var(--cream);
  transform: translateY(110%); transition: transform .45s cubic-bezier(.2,.7,.2,1);
  box-shadow: 0 -8px 30px rgba(1,3,65,.18);
}
.ticketbar.show{ transform: translateY(0); }
.ticketbar .tb-text{ font-family:"Inter",sans-serif; font-size:12px; letter-spacing:.06em; }
.ticketbar .tb-text strong{ font-weight:600; }
.ticketbar .tb-cta{
  flex: none; font-family:"Inter",sans-serif; font-size:12px; letter-spacing:.18em; text-transform:uppercase; font-weight:600;
  background: var(--cream); color: var(--accent); padding: 12px 22px; border-radius: 999px;
  transition: transform .2s, background .2s; white-space:nowrap;
}
.ticketbar .tb-cta:hover{ transform: translateY(-1px); background: var(--gold); color: var(--ink); }
@media (max-width: 600px){ .ticketbar .tb-text{ font-size: 11px; } .ticketbar{ padding: 12px 16px; } }

.urgency{
  display:inline-flex; align-items:center; gap:10px;
  font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.2em; text-transform:uppercase; font-weight:600;
  color: var(--accent); border:1px solid var(--accent); border-radius:999px; padding:8px 16px;
}
.urgency .dot{ width:7px; height:7px; border-radius:50%; background: var(--gold); box-shadow:0 0 0 0 var(--gold); animation: pulse 2s infinite; }
@keyframes pulse{ 0%{ box-shadow:0 0 0 0 rgba(254,183,42,.6);} 70%{ box-shadow:0 0 0 8px rgba(254,183,42,0);} 100%{ box-shadow:0 0 0 0 rgba(254,183,42,0);} }
.cta-block .urgency{ margin-bottom: 28px; }
@media (prefers-reduced-motion: reduce){ .urgency .dot{ animation:none; } }

/* =========================================================================
   PROEVERIJEN: dag-switcher + tasting cards
   ========================================================================= */
.daytabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 8px; }
.daytab{
  font-family:"Gobold Blocky",Impact,sans-serif; text-transform:uppercase; font-size:clamp(20px,2.4vw,30px);
  background:transparent; border:1px solid var(--rule-strong); color:var(--ink-soft);
  border-radius:999px; padding:12px 26px; cursor:pointer; transition:all .25s; line-height:1;
}
.daytab .d{ display:block; font-family:"Inter",sans-serif; font-size:10px; letter-spacing:.24em; margin-top:6px; color:var(--ink-muted); }
.daytab.is-on{ background:var(--accent); border-color:var(--accent); color:var(--cream); }
.daytab.is-on .d{ color:var(--cream); }
.daypanel{ display:none; }
.daypanel.is-on{ display:block; animation: fadeup .5s cubic-bezier(.2,.7,.2,1); }
@keyframes fadeup{ from{ opacity:0; transform:translateY(20px);} to{ opacity:1; transform:none;} }
.tasting-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule); margin-top:32px; }
.tasting{ background:var(--bg); padding:28px 26px; display:flex; flex-direction:column; gap:12px; min-height:188px; transition:background .3s; }
.tasting:hover{ background:var(--bg-soft); }
.tasting .top{ display:flex; justify-content:space-between; align-items:baseline; }
.tasting .time{ font-family:"Gobold Blocky",Impact,sans-serif; font-size:22px; color:var(--accent); }
.tasting .tag{ font-size:9px; }
.tasting h3{ font-family:"Fraunces",serif; font-size:21px; font-weight:500; line-height:1.2; color:var(--ink); }
.tasting .host{ font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-muted); margin-top:auto; }
@media (max-width:860px){ .tasting-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .tasting-grid{ grid-template-columns:1fr; } }

/* =========================================================================
   WIJNHUIZEN: uitgelichte huizen
   ========================================================================= */
.house-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.house{ border:1px solid var(--rule); display:flex; flex-direction:column; overflow:hidden; transition:transform .35s, border-color .3s; }
.house:hover{ transform:translateY(-4px); border-color:var(--accent); }
.house .ph{ aspect-ratio:4/3; }
.house .body{ padding:24px 24px 28px; display:flex; flex-direction:column; gap:8px; }
.house .country{ font-family:"Inter",sans-serif; font-size:10px; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); font-weight:600; }
.house h3{ font-family:"Gobold Blocky",Impact,sans-serif; text-transform:uppercase; font-size:24px; line-height:1; color:var(--ink); }
.house p{ font-family:"Fraunces",serif; font-size:14px; line-height:1.5; color:var(--ink-soft); }
@media (max-width:860px){ .house-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .house-grid{ grid-template-columns:1fr; } }

/* =========================================================================
   DISPLAY-KOPPEN: de solide Gobold is al vol/dik. Geen text-stroke meer nodig
   (die was een band-aid voor de dunne blok-letters). Wel een haarfijne tracking
   voor lucht en chic, en optisch nette uitlijning.
   ========================================================================= */
.section-head .title,
.cta-block h2,
.hero h1,
.faq summary,
.card h4,
.house h3,
.partner,
.daytab,
.day .content h3{
  letter-spacing: 0.006em;
}

/* =========================================================================
   CHIC v3  editie 7  beeld dominanter, koppen vol, conversie scherper
   ========================================================================= */

/* --- Hero: cinematischer beeld, diepere gradient, fijne korrel --- */
.hero-photo::after{
  background:
    linear-gradient(180deg, rgba(1,3,65,.32) 0%, rgba(1,3,65,.40) 38%, rgba(1,3,65,.78) 100%),
    radial-gradient(120% 80% at 50% 30%, rgba(1,3,65,0) 40%, rgba(1,3,65,.45) 100%);
}
/* fijne filmkorrel over de hele hero voor een chique, warme look */
.hero-photo .grain{
  position:absolute; inset:0; z-index:2; pointer-events:none; opacity:.06; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-photo .wordmark-img img{ width: min(560px, 80vw); filter: drop-shadow(0 8px 40px rgba(1,3,65,.45)); }
@media (max-width:720px){ .hero-photo .wordmark-img img{ width:min(330px,82vw); } }

/* --- Beeld komt tot leven bij hover: zachte zoom (chic, niet druk) --- */
.hpanel img, .ph.has-image img, .editorial.feature .ph img{
  transition: transform 1.1s cubic-bezier(.2,.7,.2,1);
}
.hpanel:hover img, .ph.has-image:hover img, .editorial.feature .ph:hover img{ transform: scale(1.05); }

/* =========================================================================
   TRUST STRIP  feiten + bewijslast direct onder de hero (conversie)
   ========================================================================= */
.trust{
  background: var(--ink);
  color: var(--cream);
  border: none;
  padding: 0;
}
[data-theme="dark"] .trust{ background:#06083a; }
.trust .frame{ padding-top: 40px; padding-bottom: 40px; }
.trust-facts{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  text-align: center;
}
.trust-facts .tf{
  padding: 14px 18px;
  border-right: 1px solid rgba(254,241,213,.16);
  display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:center;
}
.trust-facts .tf:last-child{ border-right: none; }
.trust-facts .tf .big{
  font-family:"Gobold Blocky", Impact, sans-serif; text-transform:uppercase;
  font-size: clamp(24px, 2.6vw, 34px); line-height:1; color: var(--cream); letter-spacing:.006em;
}
.trust-facts .tf .lab{
  font-family:"Inter",sans-serif; font-size:10px; letter-spacing:.22em; text-transform:uppercase;
  color: var(--gold); font-weight:600;
}
@media (max-width: 860px){
  .trust-facts{ grid-template-columns: repeat(2,1fr); gap:1px; background:rgba(254,241,213,.14); }
  .trust-facts .tf{ background:var(--ink); border-right:none; padding:20px 12px; }
  [data-theme="dark"] .trust-facts .tf{ background:#06083a; }
}
/* persquote in de trust-band */
.trust-quote{
  margin-top: 8px; border-top: 1px solid rgba(254,241,213,.16); padding-top: 32px;
  text-align:center; max-width: 880px; margin-left:auto; margin-right:auto;
}
.trust-quote blockquote{
  margin:0; font-family:"Fraunces",serif; font-style:italic; font-weight:300;
  font-size: clamp(20px, 2.4vw, 30px); line-height:1.4; color:var(--cream);
}
.trust-quote cite{
  display:block; margin-top:16px; font-style:normal;
  font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold);
}

/* =========================================================================
   TICKET-VERGELIJKING  drie kaarten, anchoring + loss aversion
   ========================================================================= */
.ticket-cards{
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
  margin-top: 8px; text-align:left;
}
.tcard{
  position:relative; display:flex; flex-direction:column;
  background: var(--bg); border:1px solid var(--rule-strong); border-radius: 18px;
  padding: 36px 32px 32px; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .3s;
}
.tcard:hover{ transform: translateY(-6px); box-shadow: 0 24px 60px rgba(1,3,65,.14); border-color: var(--accent); }
.tcard .tc-kicker{
  font-family:"Inter",sans-serif; font-size:10px; letter-spacing:.24em; text-transform:uppercase; font-weight:600;
  color: var(--ink-muted); margin-bottom: 18px;
}
.tcard .tc-name{
  font-family:"Gobold Blocky",Impact,sans-serif; text-transform:uppercase; letter-spacing:.006em;
  font-size: clamp(26px,2.6vw,34px); line-height:1; color: var(--ink); margin:0 0 10px;
}
.tcard .tc-price{ display:flex; align-items:baseline; gap:10px; margin: 10px 0 4px; }
.tcard .tc-price .now{
  font-family:"Gobold Blocky",Impact,sans-serif; font-size:48px; line-height:1; color:var(--accent); letter-spacing:.006em;
}
.tcard .tc-price .cur{ font-family:"Fraunces",serif; font-style:italic; font-size:20px; color:var(--ink-soft); }
.tcard .tc-was{
  font-family:"Inter",sans-serif; font-size:12px; letter-spacing:.04em; color: var(--ink-muted); margin-bottom: 16px;
}
.tcard .tc-was s{ text-decoration-thickness: 1px; opacity:.8; }
.tcard .tc-was b{ color: var(--accent); font-weight:600; }
.tcard .tc-desc{
  font-family:"Fraunces",serif; font-size:16px; line-height:1.5; color: var(--ink-soft); margin: 0 0 24px;
}
.tcard .tc-cta{ margin-top:auto; }
.tcard .tc-cta .btn{ width:100%; justify-content:center; }
/* highlighted (passe-partout) */
.tcard.is-hot{
  border-color: var(--accent); background: color-mix(in srgb, var(--accent) 6%, var(--bg));
  box-shadow: 0 18px 50px rgba(155,55,55,.16);
}
.tcard .badge{
  position:absolute; top:-13px; left:50%; transform:translateX(-50%);
  background: var(--gold); color: var(--ink);
  font-family:"Inter",sans-serif; font-size:10px; letter-spacing:.2em; text-transform:uppercase; font-weight:700;
  padding: 7px 16px; border-radius:999px; white-space:nowrap;
}
/* zachtere badge (popular, navy) voor het dagticket; gold blijft voor de beste deal */
.tcard .badge.badge-soft{ background: var(--ink); color: var(--cream); }
@media (max-width: 860px){ .ticket-cards{ grid-template-columns:1fr; } }

/* tickets-sectie: kop links uitlijnen werkt netter met kaarten */
#tickets .frame{ position:relative; z-index:1; }

/* =========================================================================
   FAQ op de home  net iets ruimer
   ========================================================================= */
#faq-home .section-head{ margin-bottom: 48px; }

/* =========================================================================
   HERO VIDEO  bewegende achtergrond met poster-fallback
   ========================================================================= */
.hero-photo .hero-bg img,
.hero-photo .hero-bg video{
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
}
.hero-photo .hero-bg video{ z-index: 1; }
/* video uit bij reduced-motion: poster blijft staan */
@media (prefers-reduced-motion: reduce){
  .hero-photo .hero-bg video{ display: none; }
}

/* =========================================================================
   PREMIUM v4  subtiele diepte en afwerking voor de launch
   ========================================================================= */
/* Tactiele knoppen met zachte schaduw */
.btn:not(.btn-ghost){ box-shadow: 0 8px 22px rgba(1,3,65,.12); }
.btn:not(.btn-ghost):hover{ box-shadow: 0 14px 34px rgba(1,3,65,.20); }
.nav-cta{ box-shadow: 0 6px 18px rgba(155,55,55,.20); }

/* Kaarten krijgen diepte in plaats van plat met rand */
.tcard{ box-shadow: 0 12px 34px rgba(1,3,65,.06); }
.tcard:hover{ box-shadow: 0 26px 60px rgba(1,3,65,.16); }
.tcard.is-hot{ box-shadow: 0 22px 60px rgba(155,55,55,.20); }

/* Hero: iets diepere, filmischer gradient + vollere wordmark */
.hero-photo::after{
  background:
    linear-gradient(180deg, rgba(1,3,65,.30) 0%, rgba(1,3,65,.40) 38%, rgba(1,3,65,.84) 100%),
    radial-gradient(120% 80% at 50% 28%, rgba(1,3,65,0) 42%, rgba(1,3,65,.48) 100%);
}
.hero-photo .wordmark-img img{ width: min(600px, 82vw); filter: drop-shadow(0 10px 46px rgba(1,3,65,.5)); }
@media (max-width:720px){ .hero-photo .wordmark-img img{ width:min(330px,82vw); } }

/* Net iets meer ademruimte op groot scherm = premium rust */
@media (min-width:1100px){ section{ padding: 164px 0; } }

/* Fijne gouden hairline onder de eyebrow-labels in section-heads */
.section-head .eye{ position: relative; padding-bottom: 16px; }
.section-head .eye::after{
  content:""; position:absolute; left:0; bottom:0;
  width:30px; height:2px; background: var(--gold); border-radius:2px;
}

/* =========================================================================
   ZAKELIJKE ARRANGEMENTEN  pakketkaarten (2 koloms)
   ========================================================================= */
.pkg-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:8px; text-align:left; }
@media (max-width:860px){ .pkg-grid{ grid-template-columns:1fr; } }
.tcard .tc-price .ex{ font-family:"Inter",sans-serif; font-size:12px; letter-spacing:.04em; color:var(--ink-muted); }
.tcard .incl{ list-style:none; margin:4px 0 22px; padding:0; display:flex; flex-direction:column; gap:9px; }
.tcard .incl li{ font-family:"Fraunces",serif; font-size:15px; line-height:1.4; color:var(--ink-soft); padding-left:20px; position:relative; }
.tcard .incl li::before{ content:""; position:absolute; left:0; top:.5em; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.tcard .pkg-for{ font-family:"Fraunces",serif; font-style:italic; font-size:14px; color:var(--ink-muted); margin:0 0 22px; }

/* =========================================================================
   WOW-LAAG  fullscreen beeld-break, scroll-progress, atypische logo-parallax
   ========================================================================= */

/* Scroll-voortgangsbalk bovenin (fijn detail) */
.scrollprog{
  position: fixed; top: 0; left: 0; height: 3px; width: 0;
  background: linear-gradient(90deg, var(--bordeaux), var(--gold));
  z-index: 200; pointer-events: none;
}

/* Paginabrede, fullscreen beeld-break met parallax (liggend, cinematisch) */
.fullbleed{
  position: relative;
  min-height: 86vh;
  display: grid; place-items: center;
  text-align: center;
  background-color: var(--navy);
  background-size: cover;
  background-position: center;
  background-attachment: fixed;          /* parallax: beeld blijft staan, content schuift */
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  overflow: hidden;
}
.fullbleed::after{
  content:""; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(180deg, rgba(1,3,65,.78) 0%, rgba(1,3,65,.66) 45%, rgba(1,3,65,.88) 100%),
    radial-gradient(70% 60% at 50% 50%, rgba(1,3,65,.42) 0%, rgba(1,3,65,.74) 100%);
}
.fullbleed .grain{ position:absolute; inset:0; z-index:2; }
.fullbleed .fb-inner{
  position: relative; z-index: 3; color: var(--cream);
  padding: 0 24px; max-width: 1000px;
}
.fullbleed .fb-eye{
  font-family:"Inter",sans-serif; font-size:11px; letter-spacing:.30em; text-transform:uppercase;
  font-weight:600; color: var(--gold); margin: 0 0 22px;
}
.fullbleed h2{
  font-family:"Gobold Blocky", Impact, sans-serif; text-transform:uppercase; letter-spacing:.006em;
  font-size: clamp(40px, 7vw, 104px); line-height:.98; margin:0; color: var(--cream);
  text-shadow: 0 8px 50px rgba(1,3,65,.5);
}
.fullbleed p{
  font-family:"Fraunces",serif; font-style:italic; font-weight:300;
  font-size: clamp(18px, 2.2vw, 26px); line-height:1.4; color: var(--cream);
  margin: 26px auto 0; max-width: 640px;
}
.fullbleed .fb-cta{ margin-top: 40px; }
/* mobiel: fixed-attachment is schokkerig, dus normaal scrollen */
@media (max-width: 900px){
  .fullbleed{ background-attachment: scroll; min-height: 68vh; }
}
@media (prefers-reduced-motion: reduce){
  .fullbleed{ background-attachment: scroll; }
}

/* Achtergrondlogo: zachte overgang voor de scroll-translate uit JS (blijft recht) */
.bigmark{ transition: translate .12s linear; will-change: translate; }
@media (prefers-reduced-motion: reduce){
  .bigmark{ animation: none !important; }
}
