/* bl3-start - het goedgekeurde ontwerp, 1 op 1 uit het prototype.
   Alleen geleverd aan pagina's met meta _bockje_v3. */
/* ==========================================================================
   1 op 1: de volledige CSS van het prototype (schermen/deel1.html +
   schermen/deel2.html), letterlijk overgenomen en genest onder .bl3.

   Twee toegestane afwijkingen, conform bouw/EENOPEEN.md:
   1. elke selector staat onder .bl3; :root, html en body zijn .bl3 zelf
      geworden, en de @keyframes heten nu bl3-drijf1/2/3.
   2. beweging is beperkt: de 360-graden draaier, de deining op de kopfles,
      de vonken, de korrel en de parallax zijn eruit. De rest staat er
      onveranderd in.

   Archivo staat als @import bovenaan omdat een shortcode geen <link> in de
   head kan zetten. Die regel moet de eerste regel van het bestand blijven.
   ========================================================================== */

.bl3{
  --groen:#2a421e; --groen-diep:#18240f; --nacht:#0e1109;
  --knop:#638351; --knop-h:#4c6a3d; --zand:#c9b98d;
  --grond:#f8f7f4; --kaart:#fdfdfc; --tekst:#22241e; --tekst-stil:#63645c;
  --rand:#e2dfd7; --rand-zacht:#efece6; --accent:#2a421e;
}
@media (prefers-color-scheme: dark){
  .bl3:not([data-theme="light"]){
    --grond:#12150d; --kaart:#191d13; --tekst:#e9e6dc; --tekst-stil:#9d9f93;
    --rand:#2c3225; --rand-zacht:#232920; --accent:#a8c294;
  }
}
.bl3[data-theme="dark"]{
  --grond:#12150d; --kaart:#191d13; --tekst:#e9e6dc; --tekst-stil:#9d9f93;
  --rand:#2c3225; --rand-zacht:#232920; --accent:#a8c294;
}
.bl3 *{box-sizing:border-box}
.bl3 [hidden]{display:none!important}
.bl3 section{position:relative;z-index:1}
.bl3{scroll-behavior:smooth}
.bl3{
  margin:0;background:var(--grond);color:var(--tekst);
  font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
.bl3 img{max-width:100%}
.bl3 h1,.bl3 h2,.bl3 h3{margin:0;text-wrap:balance}
.bl3 p{margin:0}
.bl3 a{color:inherit}
.bl3 .wrap{max-width:1160px;margin:0 auto;padding:0 22px}
/* Volle breedte op een groot scherm. Het thema zet elke pagina in een rij van
   1200 pixels breed; het ontwerp brak daar niet uit, dus bleef er op een laptop
   een brede lege rand over. De banden lopen nu van rand tot rand, en de inhoud
   daarbinnen staat in een bredere, gecentreerde kolom. De margin-left en
   margin-right staan er los in: het thema zet een eigen marge op .wrap en die
   won het van de snelschrijfvorm, waardoor de inhoud tegen de linkerrand plakte. */
.bl3{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw}
.bl3 .wrap,
#main .bl3 .wrap,
.fusion-body .bl3 .wrap{
  max-width:1560px;margin-left:auto;margin-right:auto;
  padding-left:clamp(22px,5vw,76px);padding-right:clamp(22px,5vw,76px);
}

.bl3 .kolom{max-width:66ch}
.bl3 .vw{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ====== schermkiezer ====== */
.bl3 .balk{
  position:sticky;top:0;z-index:60;background:var(--nacht);color:#d9d6cd;
  border-bottom:1px solid rgba(201,185,141,.2);
}
.bl3 .balk__in{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;padding:9px 22px;max-width:1160px;margin:0 auto}
/* Het logo staat er ongewijzigd in: eigen verhouding, eigen witruimte, nergens
   overheen getekend en nergens uitgerekt. */
.bl3 .balk__logo{display:flex;align-items:center;gap:12px;text-decoration:none;padding-right:4px}
.bl3 .balk__logo img{display:block;height:42px;width:auto}
@media(max-width:620px){.bl3 .balk__logo img{height:34px}}
.bl3 .kiezer{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.bl3 .kiezer button{
  font:inherit;font-size:.82rem;color:#a8a89b;background:transparent;border:1px solid transparent;
  border-radius:2px;padding:5px 13px;cursor:pointer;transition:color .15s,background .15s,border-color .15s;
}
.bl3 .kiezer button:hover{color:#fff}
.bl3 .kiezer button[aria-current="true"]{background:var(--knop);border-color:var(--knop);color:#fff}

/* ====== het echte menu van de site ====== */
.bl3 .menu{background:var(--groen-diep);border-bottom:1px solid rgba(201,185,141,.16)}
.bl3 .menu__in{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;max-width:1160px;margin:0 auto;padding:0 22px}
.bl3 .menu__in::-webkit-scrollbar{display:none}
.bl3 .menu a{
  flex:0 0 auto;display:flex;align-items:baseline;gap:7px;white-space:nowrap;
  padding:11px 15px;text-decoration:none;color:#c2c4b6;font-size:.88rem;font-weight:600;
  border-bottom:2px solid transparent;transition:color .15s,border-color .15s,background .15s;
}
.bl3 .menu a span{font-size:.72rem;font-weight:500;color:#8b8d7e;font-variant-numeric:tabular-nums}
.bl3 .menu a:hover{color:#fff;background:rgba(255,255,255,.04)}
.bl3 .menu a[aria-current="page"]{color:#fff;border-bottom-color:var(--zand)}
.bl3 .menu a[aria-current="page"] span{color:var(--zand)}
.bl3 .menu a.menu--uit{color:#9fa294;margin-left:auto}
@media(max-width:760px){
  .bl3 .menu a{padding:10px 12px;font-size:.82rem}
  .bl3 .menu a.menu--uit{margin-left:0}
}

/* ====== kop ====== */
.bl3 .hero{position:relative;min-height:86vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--nacht);isolation:isolate}
.bl3 .hero__foto{position:absolute;inset:-6% 0 0;width:100%;height:112%;object-fit:cover;opacity:.5;z-index:0}

.bl3 .hero__waas{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(14,17,9,.86) 0%,rgba(14,17,9,.44) 34%,rgba(14,17,9,.9) 100%)}
.bl3 h1,.bl3 h2,.bl3 h3,.bl3 p,.bl3 a,.bl3 b,.bl3 span{overflow-wrap:break-word}
.bl3 .sfeer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;contain:paint}
.bl3 .hero[data-rust="ja"] .wolk{animation-play-state:paused}
/* Geen will-change: dan houdt de browser drie schermvullende lagen permanent in
   het geheugen, ook als de animatie gepauzeerd is. Zo worden ze alleen gepromoveerd
   zolang de animatie loopt. En een harde bovengrens, anders schaalt de kostprijs
   mee met de schermbreedte. */
.bl3 .wolk{position:absolute;border-radius:50%;max-width:820px;max-height:820px}
.bl3 .wolk--1{width:78vw;height:78vw;left:-26vw;top:-24vw;
  background:radial-gradient(circle closest-side,rgba(99,131,81,.34),rgba(99,131,81,.16) 46%,rgba(99,131,81,0) 78%);
  animation:bl3-drijf1 46s ease-in-out infinite alternate}
.bl3 .wolk--2{width:66vw;height:66vw;right:-20vw;top:12%;
  background:radial-gradient(circle closest-side,rgba(201,185,141,.20),rgba(201,185,141,.08) 44%,rgba(201,185,141,0) 76%);
  animation:bl3-drijf2 58s ease-in-out infinite alternate}
.bl3 .wolk--3{width:92vw;height:60vw;left:6%;bottom:-26vw;
  background:radial-gradient(ellipse closest-side,rgba(42,66,30,.52),rgba(42,66,30,.22) 48%,rgba(42,66,30,0) 80%);
  animation:bl3-drijf3 72s ease-in-out infinite alternate}
@keyframes bl3-drijf1 {from{transform:translate3d(-4vw,-2vw,0)}to{transform:translate3d(7vw,5vw,0)}}
@keyframes bl3-drijf2 {from{transform:translate3d(4vw,3vw,0)}to{transform:translate3d(-7vw,-5vw,0)}}
@keyframes bl3-drijf3 {from{transform:translate3d(5vw,2vw,0)}to{transform:translate3d(-9vw,-4vw,0)}}

.bl3 .hero__in{position:relative;z-index:2;width:100%;padding:110px 0 44px}
.bl3 .hero__rooster{display:grid;gap:26px;align-items:end}
@media(min-width:900px){.bl3 .hero__rooster{grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:0 48px;align-items:center}}
.bl3 .hero__tekst{min-width:0}
.bl3 .kicker{margin:0;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--zand)}
.bl3 .hero h1{
  font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(2.1rem,5.2vw,3.9rem);line-height:1.03;letter-spacing:-.035em;margin:16px 0 0;max-width:16ch;
}
.bl3 .hero h1 span{display:block;overflow:hidden}
.bl3 .hero h1 span i{display:block;font-style:normal;transform:translateY(105%)}
.bl3 .hero__lead{margin:22px 0 0;max-width:46ch;color:#cfcbbe;font-size:1.05rem;line-height:1.6}
.bl3 .hero__knoppen{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 0}
.bl3 .btn{
  display:inline-flex;align-items:center;gap:8px;border-radius:2px;padding:12px 22px;
  font-size:.86rem;font-weight:700;letter-spacing:.01em;text-decoration:none;
  border:1px solid transparent;cursor:pointer;box-shadow:none;
  transition:background .16s,border-color .16s,color .16s;
}
.bl3 .btn--vol{background:var(--knop);color:#fff;border-color:var(--knop)}
.bl3 .btn--vol:hover{background:var(--knop-h)}
.bl3 .btn--lijn{border-color:rgba(255,255,255,.5);color:#fff}
.bl3 .btn--lijn:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.bl3 .btn--donker{border-color:var(--rand);color:var(--tekst)}
.bl3 .btn--donker:hover{border-color:var(--knop);color:var(--knop)}
.bl3 .btn--klein{padding:7px 15px;font-size:.8rem}
.bl3 .cijfers{
  display:grid;gap:18px 26px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  margin:44px 0 0;padding-top:22px;border-top:1px solid rgba(201,185,141,.24);
}
.bl3 .cijfers b{display:block;font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.7rem,3.4vw,2.3rem);line-height:1;color:#fff;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.bl3 .cijfers span{display:block;margin-top:6px;font-size:.82rem;color:#a8a89b;line-height:1.35}

/* de fles */

.bl3 .hero__fles{position:relative;display:flex;justify-content:center;align-items:flex-end;
  pointer-events:none;padding-bottom:20px}

.bl3 .hero__fles::before{content:"";position:absolute;left:50%;top:6%;transform:translateX(-50%);
  width:min(150%,340px);height:88%;border-radius:50%;
  background:radial-gradient(ellipse closest-side,rgba(0,0,0,.62),rgba(0,0,0,.24) 52%,rgba(0,0,0,0) 82%)}
.bl3 .hero__fles::after{content:"";position:absolute;bottom:2px;left:50%;transform:translateX(-50%);
  width:min(62%,190px);height:24px;border-radius:50%;
  background:radial-gradient(ellipse closest-side,rgba(0,0,0,.62),rgba(0,0,0,0) 76%)}

/* echte flesfoto in de kop */
.bl3 .herofles{position:relative;display:block;width:auto;
  height:clamp(210px,34vw,400px);
  filter:drop-shadow(0 26px 38px rgba(0,0,0,.55))}

.bl3 .hero__fles--trio{align-items:flex-end;padding-bottom:6px}
.bl3 .hero__fles--trio::before,.bl3 .hero__fles--trio::after{display:none}
.bl3 .trio{display:block;width:auto;height:clamp(180px,26vw,300px);
  filter:drop-shadow(0 18px 26px color-mix(in srgb,var(--tekst) 26%,transparent))}
@media(max-width:899px){
  .bl3 .hero__fles--trio{justify-content:flex-start;margin:14px 0 0}
  .bl3 .trio{height:150px}
  .bl3 .hero__fles{justify-content:flex-end;margin:-118px -4px 0 0}
  
  .bl3 .herofles{height:clamp(170px,24vw,240px)}
  
  .bl3 .hero__lead{max-width:23ch}
}

/* ====== hoofdstukken met wisselend beeld ====== */
.bl3 .hfd{background:var(--groen-diep);color:#e8e4d8;padding:clamp(50px,8vw,100px) 0}
.bl3 .hfd__rooster{display:grid;gap:34px}
@media(min-width:940px){.bl3 .hfd__rooster{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 56px;align-items:stretch}}
/* De beeldkolom loopt over de hele hoogte van de hoofdstukken mee; daarbinnen
   blijft het beeld plakken. Zonder die hoogte heeft position:sticky geen ruimte
   om te reizen en verdwijnt de foto zodra je het eerste hoofdstuk voorbij bent. */
.bl3 .hfd__kolom{display:block}
@media(min-width:940px){.bl3 .hfd__vast{position:sticky;top:84px}}
.bl3 .hfd h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.9rem,4.6vw,3rem);line-height:1.06;letter-spacing:-.014em;max-width:15ch;margin:14px 0 0}
.bl3 .rail{display:flex;gap:0;margin:30px 0 0;border-left:1px solid rgba(201,185,141,.28)}
.bl3 .rail button{
  font:inherit;font-size:.74rem;letter-spacing:.14em;background:transparent;border:0;color:#7e7d70;
  padding:6px 16px;cursor:pointer;border-right:1px solid rgba(201,185,141,.16);transition:color .2s;
}
.bl3 .rail button[aria-current="true"]{color:var(--zand)}
.bl3 .hst{padding:clamp(30px,6vw,54px) 0 0;min-height:44vh}
.bl3 .hst h3{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.4rem,3vw,1.9rem);line-height:1.14;margin-bottom:12px}
.bl3 .hst p{color:#a9a89a;font-size:.98rem;line-height:1.68;max-width:44ch}
.bl3 .hst .let{margin-top:18px;display:inline-flex;align-items:center;gap:9px;
  font-size:.78rem;color:var(--zand);text-decoration:none;border-bottom:1px solid rgba(201,185,141,.4);padding-bottom:2px}
.bl3 .hfd__beeld{position:relative;aspect-ratio:4/3;border-radius:2px;overflow:hidden;background:#0b0e07}
.bl3 .beeldlaag{position:absolute;inset:0;opacity:0;transition:opacity .5s ease}
.bl3 .beeldlaag[data-aan="true"]{opacity:1;z-index:2}
.bl3 .beeldlaag img{width:100%;height:100%;object-fit:cover;display:block;
  transform:scale(1.07);transition:transform 5.5s cubic-bezier(.22,.62,.3,1)}
.bl3 .beeldlaag[data-aan="true"] img{transform:scale(1)}
.bl3 .hfd__voortgang{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(201,185,141,.18);z-index:3}
.bl3 .hfd__voortgang span{display:block;height:100%;width:0;background:var(--zand)}
.bl3 .bijschrift{margin-top:10px;font-size:.76rem;color:#8b8a7d;min-height:1.4em}
@media(max-width:939px){.bl3 .hfd__kolom{order:-1;margin-bottom:8px}}

/* ====== tegels ====== */
.bl3 .tegels{padding:clamp(50px,8vw,96px) 0;background:var(--grond)}
.bl3 .sectiekop{display:flex;flex-direction:column;gap:12px;margin-bottom:28px;max-width:62ch}
.bl3 .sectiekop h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.8rem,4vw,2.7rem);line-height:1.08;letter-spacing:-.012em}
.bl3 .sectiekop p{color:var(--tekst-stil);font-size:.95rem}
.bl3 .sectiekop .kicker{color:var(--tekst-stil)}
.bl3 .raster{display:grid;gap:1px;background:var(--rand);border:1px solid var(--rand);border-radius:2px;overflow:hidden;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.bl3 .tegel{background:var(--kaart);padding:16px 18px 18px;text-decoration:none;color:inherit;display:flex;
  flex-direction:column;gap:4px;transition:background .18s}
.bl3 .tegel:hover{background:var(--rand-zacht)}
.bl3 .tegel:focus-visible{outline:2px solid var(--knop);outline-offset:-2px}
.bl3 .tegel b{font-size:.95rem;font-weight:600}
.bl3 .tegel span{display:block;font-size:.8rem;color:var(--tekst-stil);font-variant-numeric:tabular-nums}
.bl3 .tegel--top b{font-size:1.05rem}
.bl3 .tegel--top span{color:var(--accent);font-weight:600}

/* ====== kaarten met echte flessen ====== */
.bl3 .kaarten{padding:clamp(50px,8vw,96px) 0;background:var(--kaart);border-top:1px solid var(--rand)}
.bl3 .rij3{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}
@media(min-width:900px){.bl3 .rij3{grid-template-columns:repeat(3,1fr)}}
.bl3 .fkaart{
  display:flex;flex-direction:column;background:var(--grond);border:1px solid var(--rand);border-radius:2px;
  text-decoration:none;color:inherit;overflow:hidden;transition:border-color .2s,transform .3s cubic-bezier(.2,.7,.3,1);
}
.bl3 .fkaart:hover{border-color:var(--knop);transform:translateY(-3px)}
.bl3 .fkaart:focus-visible{outline:2px solid var(--knop);outline-offset:2px}
.bl3 .fkaart__beeld{background:#fff;height:190px;display:flex;align-items:center;justify-content:center;padding:14px}
/* De breedte mag hier niet op auto: een afbeelding met loading=lazy die nog
   niet geladen is, krijgt dan een vak van nul bij nul, en dan besluit de
   browser dat hij nooit in beeld komt en laadt hij hem ook nooit. Met de
   breedte uit het width-attribuut plus height:auto ontstaat er wel een vak,
   en schaalt max-height de fles netjes terug. */
.bl3 .fkaart__beeld img{height:162px;width:auto;max-width:100%;object-fit:contain;display:block}
.bl3 .fkaart__tekst{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.bl3 .merkje{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tekst-stil)}
.bl3 .fkaart b{font-size:.92rem;font-weight:600;line-height:1.32}
.bl3 .fkaart .note{font-size:.82rem;color:var(--tekst-stil);line-height:1.5;flex:1}
.bl3 .fkaart .prijs{font-size:.95rem;font-weight:700;font-variant-numeric:tabular-nums}
.bl3 .vlag{align-self:flex-start;font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;
  border:1px solid var(--rand);border-radius:2px;padding:2px 9px;color:var(--tekst-stil)}

/* ====== het schap: filter + lijst ====== */
.bl3 .schap{background:var(--grond);padding:clamp(50px,8vw,96px) 0;border-top:1px solid var(--rand)}
.bl3 .filter{display:flex;flex-direction:column;gap:16px;margin:0 0 22px;
  border:1px solid var(--rand);border-radius:2px;background:var(--kaart);padding:18px 18px 20px}
.bl3 .filter__vak{border:0;margin:0;padding:0;min-width:0}
.bl3 .filter__vak legend{padding:0;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--tekst-stil);margin-bottom:9px}
.bl3 .filter__vak--rij{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;
  border-top:1px solid var(--rand-zacht);padding-top:16px}
.bl3 .filter__vak--rij legend{float:left;width:100%}
.bl3 .chips{display:flex;flex-wrap:wrap;gap:7px}
.bl3 .chips--klein .chip span{font-size:.76rem}
.bl3 .chip{position:relative;display:inline-flex;cursor:pointer}
.bl3 .chip input{position:absolute;opacity:0;width:1px;height:1px}
.bl3 .chip span{display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--rand);border-radius:2px;
  padding:6px 13px;font-size:.82rem;line-height:1.2;background:var(--grond);
  transition:border-color .15s,background .15s,color .15s}
.bl3 .chip span b{font-weight:600;font-size:.72rem;color:var(--tekst-stil);font-variant-numeric:tabular-nums}
.bl3 .chip:hover span{border-color:var(--knop)}
.bl3 .chip input:checked + span{background:var(--groen);border-color:var(--groen);color:#fff}
.bl3 .chip input:checked + span b{color:rgba(255,255,255,.72)}
.bl3 .chip input:focus-visible + span{outline:2px solid var(--knop);outline-offset:2px}
.bl3 .filter__meer{margin-top:10px}
.bl3 .filter__meer summary{cursor:pointer;font-size:.8rem;color:var(--tekst-stil);
  border:1px dashed var(--rand);border-radius:2px;padding:5px 13px;display:inline-block;list-style:none}
.bl3 .filter__meer summary::-webkit-details-marker{display:none}
.bl3 .filter__meer summary:hover{color:var(--tekst);border-color:var(--knop)}
.bl3 .filter__meer .chips{margin-top:10px}
.bl3 .sorteer{font-size:.8rem;color:var(--tekst-stil)}
.bl3 select{font:inherit;font-size:.82rem;padding:6px 10px;border:1px solid var(--rand);border-radius:2px;
  background:var(--grond);color:var(--tekst)}
.bl3 .telling{font-size:.88rem;color:var(--tekst-stil);margin:0 0 12px;font-variant-numeric:tabular-nums}
.bl3 .telling b{color:var(--tekst);font-weight:700}
.bl3 .lijst{list-style:none;margin:0;padding:0;border:1px solid var(--rand);border-radius:2px;
  background:var(--kaart);overflow:hidden}
.bl3 .rij + .rij{border-top:1px solid var(--rand-zacht)}
.bl3 .rij a{display:grid;gap:2px 16px;padding:11px 16px;text-decoration:none;color:inherit;
  grid-template-columns:1fr auto;align-items:baseline}
@media(min-width:760px){.bl3 .rij a{grid-template-columns:132px minmax(0,1fr) 176px 100px;gap:0 18px;align-items:baseline}}
.bl3 .rij a:hover{background:var(--rand-zacht)}
.bl3 .rij a:focus-visible{outline:2px solid var(--knop);outline-offset:-2px}
.bl3 .rij__merk{font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--tekst-stil)}
.bl3 .rij__naam{font-size:.9rem;font-weight:600;line-height:1.35}
.bl3 .rij__tag{display:inline-block;margin-left:8px;font-style:normal;font-weight:500;font-size:.68rem;
  letter-spacing:.06em;text-transform:uppercase;color:var(--tekst-stil);
  border:1px solid var(--rand);border-radius:2px;padding:1px 8px;vertical-align:middle}
.bl3 .rij__kenm{font-size:.78rem;color:var(--tekst-stil);font-variant-numeric:tabular-nums}
.bl3 .rij__prijs{font-size:.88rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
@media(max-width:759px){
  .bl3 .rij a{grid-template-areas:"merk prijs" "naam naam" "kenm kenm"}
  .bl3 .rij__merk{grid-area:merk}.bl3 .rij__prijs{grid-area:prijs}
  .bl3 .rij__naam{grid-area:naam}.bl3 .rij__kenm{grid-area:kenm}
}
.bl3 .lijst--leeg{padding:26px 16px;color:var(--tekst-stil);font-size:.9rem}
.bl3 .schap__voet{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.bl3 .nix{margin:16px 0 0;font-size:.78rem;color:var(--tekst-stil)}
.bl3 .nix b{color:var(--tekst);letter-spacing:.06em}

/* ====== winkel ====== */
.bl3 .winkel{background:var(--groen);color:#e6e3db;padding:clamp(46px,7vw,84px) 0}
.bl3 .winkel__rooster{display:grid;gap:28px}
@media(min-width:820px){.bl3 .winkel__rooster{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:0 56px}}
.bl3 .winkel h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.7rem,3.6vw,2.4rem);line-height:1.1;margin-bottom:14px}
.bl3 .winkel p{color:#c7c9bd;font-size:.95rem}
.bl3 .uren{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:1px;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.14);border-radius:2px;overflow:hidden}
.bl3 .uren li{background:var(--groen);display:flex;justify-content:space-between;gap:12px;padding:9px 14px;font-size:.86rem}
.bl3 .uren li span{color:#b6b9ab;font-variant-numeric:tabular-nums}

/* ====== onthullen ====== */
.bl3--beweegt .op,.bl3bw .bl3 .op{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.bl3 .op.aan,.bl3bw .bl3 .op.aan{opacity:1;transform:none}
.bl3 .op[data-vt="1"]{transition-delay:.08s}
.bl3 .op[data-vt="2"]{transition-delay:.16s}
.bl3 .op[data-vt="3"]{transition-delay:.24s}
.bl3 .op[data-vt="4"]{transition-delay:.32s}
.bl3 .streepje{display:block;width:100%;height:1px;border:0;background:var(--rand);margin:0;
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.7,.3,1)}
.bl3 .streepje.aan{transform:scaleX(1)}

/* ====== slot ====== */
.bl3 .slot{background:var(--kaart);border-top:1px solid var(--rand);padding:clamp(46px,7vw,80px) 0}
.bl3 .slot h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.6rem,3.4vw,2.2rem);line-height:1.12;margin-bottom:18px}
.bl3 .slot h3{font-size:1.02rem;font-weight:700;margin:32px 0 12px}
.bl3 .slot ul{margin:0;padding-left:1.15em;display:flex;flex-direction:column;gap:9px;color:var(--tekst-stil);font-size:.95rem}
.bl3 .slot li b{color:var(--tekst)}
.bl3 .meetlat{display:grid;gap:1px;background:var(--rand);border:1px solid var(--rand);border-radius:2px;
  margin-top:26px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));overflow:hidden}
.bl3 .meetlat div{background:var(--kaart);padding:14px 16px}
.bl3 .meetlat dt{font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--tekst-stil)}
.bl3 .meetlat dd{margin:5px 0 0;font-size:1.05rem;font-weight:600;font-variant-numeric:tabular-nums}
.bl3 code{font-size:.88em;background:var(--rand-zacht);padding:1px 5px;border-radius:2px}

@media (prefers-reduced-motion:reduce){
  .bl3{scroll-behavior:auto}
  .bl3 *{transition:none!important;animation:none!important}
  .bl3--beweegt .op,.bl3bw .bl3 .op{opacity:1;transform:none}
  .bl3 .streepje{transform:scaleX(1)}
  .bl3 .hero h1 span i{transform:none}
  .bl3 .hero__foto{transform:none!important}
}

/* ============ HOME: compositie met twee flessen ============ */
.bl3 .comp{background:var(--kaart);padding:clamp(50px,8vw,100px) 0;color:var(--tekst);border-top:1px solid var(--rand)}
.bl3 .comp__rooster{display:grid;gap:30px;align-items:center}
@media(min-width:820px){.bl3 .comp__rooster{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0 48px}}
.bl3 .comp h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.08;letter-spacing:-.012em;max-width:15ch}
.bl3 .comp p{margin:16px 0 0;color:var(--tekst-stil);font-size:.98rem;line-height:1.65;max-width:40ch}
.bl3 .podium{position:relative;height:clamp(320px,46vw,440px)}
.bl3 .podium__ring{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);
  width:min(78%,340px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(42,66,30,.18)}
.bl3 .podium img{position:absolute;bottom:0;display:block;width:auto;
  filter:drop-shadow(0 16px 22px rgba(28,30,24,.26))}
.bl3 .p2{height:88%;left:6%;z-index:3}
.bl3 .p3{height:72%;right:8%;bottom:2%;z-index:2}
.bl3 .prijskaart{position:absolute;background:var(--grond);border:1px solid var(--rand);border-radius:2px;
  padding:8px 12px;font-size:.76rem;line-height:1.35;z-index:5;box-shadow:0 6px 16px rgba(28,30,24,.10)}
.bl3 .prijskaart b{display:block;font-weight:600}
.bl3 .prijskaart span{color:var(--tekst-stil);font-variant-numeric:tabular-nums}
.bl3 .prijskaart--a{left:0;top:10%}
.bl3 .prijskaart--b{right:0;bottom:14%}
@media(max-width:620px){.bl3 .prijskaart{font-size:.7rem;padding:6px 9px}}

/* ============ HOME: de schuifrij ============ */
.bl3 .spoor{padding:clamp(50px,8vw,96px) 0;background:var(--grond);border-top:1px solid var(--rand)}
.bl3 .rail2{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;
  padding:4px 22px 18px;margin:0 -22px;scrollbar-width:thin}
.bl3 .rail2::-webkit-scrollbar{height:6px}
.bl3 .rail2::-webkit-scrollbar-thumb{background:var(--rand);border-radius:2px}
.bl3 .kaartje{flex:0 0 210px;scroll-snap-align:start;background:var(--kaart);border:1px solid var(--rand);
  border-radius:2px;display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;
  transition:border-color .2s,transform .25s cubic-bezier(.2,.7,.3,1)}
.bl3 .kaartje:hover{border-color:var(--knop);transform:translateY(-4px)}
.bl3 .kaartje:focus-visible{outline:2px solid var(--knop);outline-offset:2px}
.bl3 .kaartje__beeld{background:#fff;padding:14px;display:flex;align-items:center;justify-content:center;height:170px}
.bl3 .kaartje__beeld img{max-height:142px;width:auto;display:block}
.bl3 .kaartje__tekst{padding:13px 15px 15px;display:flex;flex-direction:column;gap:6px;flex:1}

/* ============ WHISKY: streekbalken op een blijvende achtergrond ============ */
.bl3 .streken{position:relative;color:#e8e4d8;background:#0b0e07}
/* De foto blijft aan het scherm plakken zolang je in deze sectie bent, zodat je
   elke wisseling ziet gebeuren. Daarvoor moet de laag de hoogte van het scherm
   hebben en niet die van de hele sectie: anders scrol je er langs en gebeurt de
   overgang buiten beeld. */
/* Let op: geen overflow:hidden op de sectie zelf - dan werkt position:sticky niet meer.
   De laag steekt onderaan buiten de sectie; de volgende sectie dekt hem af omdat
   elke sectie z-index 1 heeft en later in de pagina staat. */
.bl3 .streken__plak{position:sticky;top:0;height:100vh;z-index:0;overflow:hidden;
  margin-bottom:-100vh;pointer-events:none}
.bl3 .streken__achtergrond{position:absolute;inset:0}
.bl3 .streken__achtergrond span{position:absolute;inset:0;opacity:0;transition:opacity .8s ease}
.bl3 .streken__achtergrond span[data-aan="true"]{opacity:1}
.bl3 .streken__achtergrond img{width:100%;height:100%;object-fit:cover;display:block;opacity:.42;
  transform:scale(1.06);transition:transform 6s cubic-bezier(.22,.62,.3,1)}
.bl3 .streken__achtergrond span[data-aan="true"] img{transform:scale(1)}
.bl3 .streken__waas{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(11,14,7,.95) 0%,rgba(11,14,7,.78) 48%,rgba(11,14,7,.42) 100%)}
.bl3 .streken__in{position:relative;z-index:2;padding:clamp(50px,8vw,100px) 0}
.bl3 .balk2{position:relative}
.bl3 .balk2[aria-current="true"] .balk2__naam{color:var(--zand)}
.bl3 .balk2[aria-current="true"]::before{content:"";position:absolute;left:-18px;top:14px;bottom:14px;width:2px;
  background:var(--zand)}
@media(max-width:900px){.bl3 .balk2[aria-current="true"]::before{left:-10px}}
.bl3 .streken h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.9rem,4.4vw,2.9rem);line-height:1.06;max-width:16ch;margin:14px 0 8px}
.bl3 .streken__lead{color:#a9a89a;font-size:.96rem;max-width:50ch;margin-bottom:30px}
.bl3 .balken{display:flex;flex-direction:column;gap:2px;max-width:760px}
.bl3 .balk2{display:block;text-decoration:none;color:inherit;padding:26px 0;border-top:1px solid rgba(201,185,141,.2)}
.bl3 .balk2:last-child{border-bottom:1px solid rgba(201,185,141,.2)}
.bl3 .balk2__naam,.bl3 .balk2__n{display:block}
.bl3 .balk2__kop{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.bl3 .balk2__naam{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:clamp(1.15rem,2.6vw,1.6rem);color:#fff}
.bl3 .balk2__n{font-size:.86rem;color:var(--zand);font-variant-numeric:tabular-nums;white-space:nowrap}
.bl3 .balk2__spoor{display:block;margin-top:11px;height:4px;background:rgba(201,185,141,.20);border-radius:2px;overflow:hidden}
.bl3 .balk2__vul{display:block;height:100%;width:0;background:linear-gradient(90deg,#638351,#c9b98d);
  transition:width 1.1s cubic-bezier(.2,.7,.3,1)}
.bl3 .balk2__vul.aan{width:var(--deel,10%)}
.bl3 .balk2__note{display:block;margin-top:10px;font-size:.85rem;color:#8f8f82;max-width:56ch}
.bl3 .balk2:hover .balk2__naam,.bl3 .balk2:focus-visible .balk2__naam{color:var(--zand)}
.bl3 .balk2:focus-visible{outline:2px solid var(--knop);outline-offset:3px}

/* ============ WHISKY: filter naast de lijst ============ */
@media(min-width:1040px){
  .bl3 .schap--zij .schap__rooster{display:grid;grid-template-columns:296px minmax(0,1fr);gap:0 34px;align-items:start}
  .bl3 .schap--zij .filter{position:sticky;top:70px;max-height:calc(100vh - 96px);overflow-y:auto;margin:0}
  .bl3 .schap--zij .filter__vak--rij{flex-direction:column;align-items:stretch}
}

/* ============ ARDBEG: volle banden met een opengaand beeld ============ */
.bl3 .band{position:relative;display:grid;align-items:center;gap:0;background:var(--nacht);color:#e8e4d8;
  border-top:1px solid rgba(201,185,141,.14)}
@media(min-width:900px){
  .bl3 .band{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .bl3 .band--om .band__beeld{order:2}
}
.bl3 .band__beeld{position:relative;overflow:hidden;aspect-ratio:16/11;background:#080b05}
.bl3 .band__beeld img{width:100%;height:100%;object-fit:cover;display:block;
  clip-path:inset(0 0 100% 0);transform:scale(1.08);
  transition:clip-path 1.05s cubic-bezier(.2,.7,.3,1),transform 1.4s cubic-bezier(.2,.7,.3,1)}
.bl3 .band__beeld img.aan{clip-path:inset(0 0 0 0);transform:scale(1)}
.bl3 .band__tekst{padding:clamp(30px,5vw,60px) clamp(22px,4vw,54px)}
.bl3 .band__tekst h3{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1.12;max-width:17ch}
.bl3 .band__tekst p{margin:14px 0 0;color:#a9a89a;font-size:.97rem;line-height:1.68;max-width:46ch}
.bl3 .band__jaar{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:2.4rem;line-height:1;color:var(--zand);
  display:block;margin-bottom:10px;font-variant-numeric:tabular-nums}
.bl3 .band__let{margin-top:18px;display:inline-flex;gap:9px;font-size:.78rem;color:var(--zand);
  text-decoration:none;border-bottom:1px solid rgba(201,185,141,.4);padding-bottom:2px}

/* ============ ARDBEG: de prijsladder ============ */
.bl3 .ladder{background:var(--groen-diep);color:#e8e4d8;padding:clamp(50px,8vw,96px) 0}
.bl3 .ladder h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;color:#fff;
  font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.08;max-width:18ch}
.bl3 .ladder__lead{margin:12px 0 28px;color:#a9a89a;font-size:.95rem;max-width:56ch}
.bl3 .trap{display:flex;flex-direction:column}
.bl3 .trede{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;padding:13px 0;
  border-top:1px solid rgba(201,185,141,.16);text-decoration:none;color:inherit;transition:background .18s}
.bl3 .trede:hover{background:rgba(201,185,141,.05)}
.bl3 .trede:focus-visible{outline:2px solid var(--knop);outline-offset:-2px}
.bl3 .trede:last-child{border-bottom:1px solid rgba(201,185,141,.16)}
.bl3 .trede__kop{display:flex;align-items:baseline;justify-content:space-between;gap:14px}
.bl3 .trede__naam{font-size:.94rem;font-weight:600;color:#fff}
.bl3 .trede__prijs{font-size:.94rem;font-weight:700;color:var(--zand);font-variant-numeric:tabular-nums;white-space:nowrap}
.bl3 .trede__vlag{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#8f8f82}
.bl3 .trede__spoor{display:block;height:3px;background:rgba(201,185,141,.16);overflow:hidden;margin-top:5px}
.bl3 .trede__vul{display:block;height:100%;width:0;background:var(--zand);
  transition:width 1s cubic-bezier(.2,.7,.3,1)}
.bl3 .trede__vul.aan{width:var(--deel,10%)}
.bl3 .trede__note{display:block;font-size:.85rem;color:#8f8f82;line-height:1.5}

/* ============ SLIJTERIJ: lichte kop en kastbalken ============ */
.bl3 .hero--licht{background:var(--grond);min-height:74vh}
.bl3 .hero--licht .hero__foto{opacity:.16}
.bl3 .hero--licht .hero__waas{background:linear-gradient(180deg,
  color-mix(in srgb,var(--grond) 82%,transparent) 0%,
  color-mix(in srgb,var(--grond) 62%,transparent) 40%,
  var(--grond) 100%)}
.bl3 .hero--licht h1{color:var(--tekst)}
.bl3 .hero--licht .kicker{color:var(--tekst-stil)}
.bl3 .hero--licht .hero__lead{color:var(--tekst-stil)}
.bl3 .hero--licht .cijfers{border-top-color:var(--rand)}
.bl3 .hero--licht .cijfers b{color:var(--tekst)}
.bl3 .hero--licht .cijfers span{color:var(--tekst-stil)}
.bl3 .hero--licht .btn--lijn{border-color:var(--rand);color:var(--tekst)}
.bl3 .hero--licht .btn--lijn:hover{border-color:var(--knop);background:transparent;color:var(--knop)}
.bl3 .hero--licht .wolk{opacity:.5}

.bl3 .hero--licht .hero__fles::before{background:radial-gradient(ellipse closest-side,
  color-mix(in srgb,var(--tekst) 22%,transparent),transparent 74%)}
.bl3 .hero--licht .hero__fles::after{background:radial-gradient(ellipse closest-side,
  color-mix(in srgb,var(--tekst) 26%,transparent),transparent 76%)}
.bl3 .tegel__spoor{display:block;height:3px;background:var(--rand-zacht);margin-top:10px;overflow:hidden}
.bl3 .tegel__vul{display:block;height:100%;width:0;background:var(--knop);
  transition:width .9s cubic-bezier(.2,.7,.3,1)}
.bl3 .tegel__vul.aan{width:var(--deel,4%)}
.bl3 .drie{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:8px}
.bl3 .wegwijs{background:var(--kaart);border:1px solid var(--rand);border-radius:2px;overflow:hidden;
  display:flex;flex-direction:column}
.bl3 .wegwijs__beeld{aspect-ratio:16/10;overflow:hidden}
.bl3 .wegwijs__beeld img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform 1.1s cubic-bezier(.2,.7,.3,1)}
.bl3 .wegwijs:hover .wegwijs__beeld img{transform:scale(1.05)}
.bl3 .wegwijs__tekst{padding:18px 20px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.bl3 .wegwijs h3{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;font-size:1.25rem;line-height:1.16}
.bl3 .wegwijs p{font-size:.9rem;color:var(--tekst-stil);line-height:1.6;flex:1}
.bl3 .wegwijs a.let{font-size:.8rem;color:var(--knop);text-decoration:none;
  border-bottom:1px solid color-mix(in srgb,var(--knop) 40%,transparent);align-self:flex-start;padding-bottom:2px}

/* ============ WIJN ============ */
.bl3 .hero--wijn{background:#170f13;min-height:80vh}
.bl3 .hero--wijn .hero__waas{background:
  radial-gradient(120% 90% at 78% 18%,rgba(107,36,52,.42),rgba(23,15,19,0) 62%),
  linear-gradient(180deg,rgba(23,15,19,.72) 0%,rgba(23,15,19,.3) 38%,rgba(23,15,19,.95) 100%)}
.bl3 .hero--wijn .wolk--1{background:radial-gradient(circle closest-side,rgba(107,36,52,.4),rgba(107,36,52,0) 76%)}
.bl3 .hero--wijn .wolk--2{background:radial-gradient(circle closest-side,rgba(201,185,141,.18),rgba(201,185,141,0) 74%)}
.bl3 .hero--wijn .wolk--3{background:radial-gradient(ellipse closest-side,rgba(52,24,34,.6),rgba(52,24,34,0) 78%)}
/* ============ FOTOTEGEL ============ */
/* Eén patroon voor kleur, smaak en stijl: een echte fles uit dat vak,
   op een donkere grond. De kleur is nog maar een gloed achter de fles. */
.bl3 .fotovak{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:5px;
  padding:15px 16px;border-radius:2px;overflow:hidden;text-decoration:none;color:#fff;
  background:var(--vakgrond,#171014);isolation:isolate;
  transition:transform .3s cubic-bezier(.2,.7,.3,1)}
.bl3 .fotovak::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(118% 86% at 74% 24%,var(--tint,#6b2434),rgba(0,0,0,0) 66%);
  opacity:.6}
.bl3 .fotovak::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(9,7,8,0) 30%,rgba(9,7,8,.82) 100%)}
.bl3 .fotovak .fles{position:absolute;right:12%;bottom:0;z-index:1;width:auto;height:74%;
  filter:drop-shadow(0 12px 16px rgba(0,0,0,.55));
  transition:transform .35s cubic-bezier(.2,.7,.3,1)}
.bl3 .fotovak > *:not(.fles){position:relative;z-index:3}
.bl3 .fotovak:hover{transform:translateY(-4px)}
.bl3 .fotovak:hover .fles{transform:translateY(-4px) scale(1.04)}
.bl3 .fotovak:focus-visible{outline:2px solid var(--knop);outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  .bl3 .fotovak,.bl3 .fotovak .fles{transition:none}
  .bl3 .fotovak:hover{transform:none}
  .bl3 .fotovak:hover .fles{transform:none}}

.bl3 .soorten{background:var(--kaart);padding:clamp(50px,8vw,96px) 0;border-top:1px solid var(--rand)}
.bl3 .soortraster{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
@media(min-width:760px){.bl3 .soortraster{grid-template-columns:repeat(3,1fr)}}
.bl3 .soortkaart{min-height:220px}
.bl3 .soortkaart b,.bl3 .soortkaart .n,.bl3 .soortkaart span.k{max-width:62%}
.bl3 .soortkaart b{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.03em;font-size:1.7rem;line-height:1}
.bl3 .soortkaart .n{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:2.6rem;line-height:1;
  font-variant-numeric:tabular-nums}
.bl3 .soortkaart span.k{font-size:.78rem;opacity:.82;line-height:1.45}
.bl3 .smaakwijzer{display:grid;gap:8px;margin-top:26px;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media(min-width:900px){.bl3 .smaakwijzer{grid-template-columns:repeat(4,1fr)}}
.bl3 .smaakvak{min-height:162px;gap:6px}
.bl3 .smaakvak b{font-size:.95rem;font-weight:600;line-height:1.25;max-width:64%}
.bl3 .smaakvak em{font-style:normal;font-size:.78rem;opacity:.78;font-variant-numeric:tabular-nums}
.bl3 .smaakvak .maat{display:block;height:3px;background:rgba(255,255,255,.22);overflow:hidden}
.bl3 .smaakvak .maat span{display:block;height:100%;width:0;background:#fff;
  transition:width .95s cubic-bezier(.2,.7,.3,1)}
.bl3 .smaakvak .maat span.aan{width:var(--deel,10%)}
@media(prefers-reduced-motion:reduce){.bl3 .smaakvak .maat span{transition:none}}

/* ============ BIER ============ */
.bl3 .hero--bier{background:#16110a;min-height:80vh}
.bl3 .hero--bier .hero__waas{background:
  radial-gradient(110% 85% at 22% 22%,rgba(176,116,38,.34),rgba(22,17,10,0) 60%),
  linear-gradient(180deg,rgba(22,17,10,.7) 0%,rgba(22,17,10,.28) 38%,rgba(22,17,10,.95) 100%)}
.bl3 .hero--bier .wolk--1{background:radial-gradient(circle closest-side,rgba(176,116,38,.34),rgba(176,116,38,0) 76%)}
.bl3 .hero--bier .wolk--2{background:radial-gradient(circle closest-side,rgba(228,196,132,.2),rgba(228,196,132,0) 74%)}
.bl3 .hero--bier .wolk--3{background:radial-gradient(ellipse closest-side,rgba(72,48,18,.6),rgba(72,48,18,0) 78%)}
.bl3 .kratje{background:var(--kaart);padding:clamp(50px,8vw,96px) 0;border-top:1px solid var(--rand)}
.bl3 .kratraster{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(136px,1fr))}
@media(min-width:1000px){.bl3 .kratraster{grid-template-columns:repeat(5,1fr)}}
.bl3 .krat{--vakgrond:#14100a;--tint:#b07426;min-height:176px;gap:4px}
.bl3 .krat b{font-size:.86rem;font-weight:600;line-height:1.25;max-width:74%}
.bl3 .krat span.n{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.02em;font-size:1.8rem;line-height:1;
  font-variant-numeric:tabular-nums}
.bl3 .krat span.k{font-size:.72rem;opacity:.78;line-height:1.4}
/* Overig heeft geen eigen fles: één vak zonder foto, met dezelfde grond. */
.bl3 .krat--leeg::before{opacity:.28}
.bl3 .wolkje{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;margin-top:8px}
.bl3 .wolkje a{text-decoration:none;color:var(--tekst-stil);line-height:1.2;
  transition:color .16s}
.bl3 .wolkje a:hover{color:var(--knop)}
.bl3 .wolkje a b{font-weight:600;color:var(--tekst)}
.bl3 .wolkje a i{font-style:normal;font-size:.7rem;color:var(--tekst-stil);
  font-variant-numeric:tabular-nums;margin-left:3px}
.bl3 .gat{background:var(--grond);border:1px solid var(--rand);border-left:3px solid var(--zand);
  padding:16px 18px;margin-top:24px;font-size:.9rem;color:var(--tekst-stil);line-height:1.6}
.bl3 .gat b{color:var(--tekst)}

/* ============ SLIJTERIJ: de merkenmuur ============ */
.bl3 .muur{background:var(--grond);padding:clamp(50px,8vw,96px) 0;border-top:1px solid var(--rand)}
.bl3 .muur__rooster{display:grid;gap:1px;background:var(--rand);border:1px solid var(--rand);
  grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr))}
.bl3 .kast{background:var(--kaart);padding:16px 18px 18px;display:flex;flex-direction:column;gap:10px}
.bl3 .kast__kop{display:flex;flex-direction:column;gap:2px;text-decoration:none;color:inherit}
.bl3 .kast__kop b{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;
  letter-spacing:-.02em;font-size:1.15rem}
.bl3 .kast__kop span{font-size:.76rem;color:var(--tekst-stil);font-variant-numeric:tabular-nums}
.bl3 .kast__kop:hover b{color:var(--knop)}
.bl3 .kast__namen{display:flex;flex-wrap:wrap;gap:6px}
.bl3 .kast__namen a{
  font-size:.78rem;line-height:1.2;text-decoration:none;color:var(--tekst-stil);
  border:1px solid var(--rand);border-radius:2px;padding:4px 9px;background:var(--grond);
  transition:border-color .15s,color .15s;
}
.bl3 .kast__namen a:hover{border-color:var(--knop);color:var(--knop)}
.bl3 .kast__meer{border-style:dashed!important;color:var(--tekst-stil)}

/* ============ LANDING: zes kasten, elk met een eigen kleur en een eigen fles ============ */
.bl3 .kast6{position:relative;overflow:hidden;padding:clamp(58px,9vw,120px) 0;
  background:var(--nacht);color:#e9e6db;border-top:1px solid rgba(201,185,141,.14)}
.bl3 .kast6__gloed{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 70% 90% at var(--gx,78%) 50%,var(--gloed),transparent 70%)}
.bl3 .kast6__rooster{position:relative;z-index:2;display:grid;gap:clamp(28px,5vw,72px);align-items:center;
  grid-template-columns:1fr}
@media(min-width:900px){
  .bl3 .kast6__rooster{grid-template-columns:1.15fr .85fr}
  .bl3 .kast6--links .kast6__tekst{order:2}
  .bl3 .kast6--links .kast6__fles{order:1}
  .bl3 .kast6--links{--gx:22%}
}
.bl3 .kast6 .kicker{color:var(--tint)}
.bl3 .kast6 h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;
  letter-spacing:-.035em;line-height:1.02;font-size:clamp(1.9rem,4.4vw,3.1rem);margin:10px 0 16px}
.bl3 .kast6__tekst>p{color:#bcbcae;font-size:1.02rem;line-height:1.65;max-width:52ch}
.bl3 .kast6__cijfers{display:flex;flex-wrap:wrap;gap:10px 34px;margin:26px 0 4px;
  padding-top:20px;border-top:1px solid rgba(201,185,141,.2)}
.bl3 .kast6__cijfers b{display:block;font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-weight:700;font-size:1.35rem;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums}
.bl3 .kast6__cijfers span{font-size:.8rem;color:#9a9b8e}
.bl3 .kast6__knoppen{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.bl3 .kast6__fles{position:relative;display:flex;justify-content:center;align-items:flex-end;
  min-height:clamp(230px,34vw,420px)}
.bl3 .kast6__fles img{position:relative;z-index:2;display:block;width:auto;
  height:clamp(210px,32vw,400px);filter:drop-shadow(0 26px 40px rgba(0,0,0,.55))}
.bl3 .kast6__schijf{position:absolute;z-index:1;left:50%;top:50%;width:min(78%,340px);aspect-ratio:1;
  transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle closest-side,var(--schijf),transparent 72%)}
/* zes kleurwerelden, allemaal op dezelfde donkere grond */
.bl3 .kast6--whisky{--tint:#9db98a;--gloed:rgba(64,102,44,.36);--schijf:rgba(120,158,92,.20)}
.bl3 .kast6--wijn{--tint:#d69aa8;--gloed:rgba(107,36,52,.40);--schijf:rgba(168,60,84,.22)}
.bl3 .kast6--bier{--tint:#e3b878;--gloed:rgba(150,96,22,.36);--schijf:rgba(196,132,44,.22)}
.bl3 .kast6--likeur{--tint:#c6a2d8;--gloed:rgba(78,34,102,.38);--schijf:rgba(128,72,158,.22)}
.bl3 .kast6--gin{--tint:#8fc2c6;--gloed:rgba(24,78,92,.38);--schijf:rgba(56,130,146,.22)}
.bl3 .kast6--rum{--tint:#d9a97a;--gloed:rgba(96,52,16,.38);--schijf:rgba(154,94,36,.22)}

/* ============ LANDING: partyservice ============ */
.bl3 .party{background:var(--groen-diep);color:#e9e6db;padding:clamp(50px,8vw,96px) 0}
.bl3 .party__rooster{display:grid;gap:clamp(24px,4vw,54px);align-items:center;grid-template-columns:1fr}
@media(min-width:860px){.bl3 .party__rooster{grid-template-columns:1fr 1fr}}
.bl3 .party h2{font-family:Archivo,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;
  letter-spacing:-.03em;line-height:1.05;font-size:clamp(1.6rem,3.4vw,2.4rem);margin:8px 0 14px}
.bl3 .party p{color:#bcbcae;line-height:1.65}
.bl3 .party .kicker{color:var(--zand)}
.bl3 .party__knoppen{display:flex;gap:10px;flex-wrap:wrap}
.bl3 .party p .btn{margin-right:10px;margin-top:12px}
.bl3 .party__beeld{border-radius:2px;overflow:hidden;border:1px solid rgba(201,185,141,.2)}
.bl3 .party__beeld img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}


/* ---- kop2.css ---- */
/* bl3 — aanvulling op 1op1.css voor de kop.
   Eén regel, en die is nodig omdat er beweging geschrapt is.

   Het prototype liet de h1 regel voor regel omhoog schuiven: elke <i> staat in
   1op1.css op transform:translateY(105%) binnen een <span> met overflow:hidden,
   en het script (deel3.js, "de kop regel voor regel") zette hem daarna op 0.
   Die slide is geschrapt — EENOPEEN punt 2 laat alleen invaren bij scrollen en
   hover toe — dus komt het script daar niet meer aan. Zonder deze regel blijft
   de h1 dan voorgoed onder de rand van zijn eigen span staan en is de kop leeg.
   Dit zet de eindtoestand terug als standaard; de rest van de kop-CSS blijft
   ongewijzigd uit het prototype. */
.bl3 .hero h1 span i{transform:none}

/* ---- blokken2.css ---- */
/* bl3 — aanvulling op 1op1.css voor het landenblok en de productrij.
   Alleen wat NIET in 1op1.css staat. Alle klassen zijn die van het prototype,
   alles genest onder .bl3, geen nieuwe tokens, geen tweede radius of accent.

   Dit blok hoort NA 1op1.css te staan: drie van deze regels hebben dezelfde
   zwaarte als een regel daar (.balk2__vul, .fkaart .prijs, .fkaart:hover) en
   winnen alleen doordat ze later komen.

   Vier onderwerpen, in volgorde:
     1. de vulling van de landbalken zonder script
     2. het raster bij 1 tot 6 productkaarten
     3. een productkaart zonder foto
     4. een productkaart zonder land en een productkaart zonder link
*/

/* ---- 1. de landbalken lopen ook zonder script vol -------------------------

   In 1op1.css staat .balk2__vul op width:0 en pas .balk2__vul.aan zet de
   breedte op --deel. Die klasse zette deel3.js (functie "vullen"); van dat
   script is alleen het invaren overgebleven (bl3_script), dus komt 'aan' er
   nooit meer op en zou elke balk leeg blijven. Het contract zegt: de
   eindtoestand is de standaard, zonder JavaScript staat alles goed. Deze regel
   zet die eindtoestand terug. Wordt 'aan' later alsnog gezet, dan verandert er
   niets — het is dezelfde breedte. */
.bl3 .balk2__vul{width:var(--deel,0%)}

/* ---- 2. het raster bij 1 tot 6 kaartjes -----------------------------------

   .rij3 staat in 1op1.css op auto-fill met minimaal 220px, en vanaf 900px op
   precies drie kolommen. Dat klopt voor de zes kaartjes van het prototype,
   maar niet voor elk ander aantal: vier kaartjes worden dan 3 + 1 en twee
   kaartjes laten een derde kolom open. De PHP zet daarom een klasse op het
   raster (bl3_prod_kolommen); hieronder staat wat die klasse doet.
   Drie en zes kaartjes krijgen geen klasse en blijven onveranderd. */

/* Eén kaartje: één kolom, en niet breder dan de kaart in een rij van drie
   (1160 - 44 padding - 2x18 gap, gedeeld door drie = 360). Zonder deze regel
   zou het alleen in de eerste van drie kolommen staan met twee lege ernaast. */
.bl3 .rij3--k1{grid-template-columns:minmax(0,1fr)}
@media(min-width:600px){
  .bl3 .rij3--k1{max-width:360px}
  /* Twee en vier kaartjes: twee kolommen, samen even breed als twee kaarten
     uit een rij van drie (2 x 360 + 18 gap). Vier wordt zo 2 + 2. */
  .bl3 .rij3--k2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:738px}
}
/* Vijf kaartjes op een breed scherm: zes sporen, elk kaartje twee sporen breed,
   de laatste twee elk drie. Dat geeft drie boven en twee eronder die samen de
   volle breedte vullen: geen gat rechts en geen eenzaam kaartje. */
@media(min-width:900px){
  .bl3 .rij3--k5{grid-template-columns:repeat(6,minmax(0,1fr))}
  .bl3 .rij3--k5 > *{grid-column:span 2}
  .bl3 .rij3--k5 > *:nth-child(4),
  .bl3 .rij3--k5 > *:nth-child(5){grid-column:span 3}
}
/* Vijf kaartjes op een tablet: twee kolommen, het vijfde over de hele breedte.
   Anders staat het vijfde kaartje daar alleen in een halve rij. */
@media(min-width:600px) and (max-width:899px){
  .bl3 .rij3--k5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bl3 .rij3--k5 > *:nth-child(5){grid-column:1 / -1}
}

/* ---- 3. een productkaart zonder foto --------------------------------------

   Het prototype kent dit geval niet: daar heeft elke .fkaart een foto. Bij de
   fototegels wordt een ontbrekende fles opgevangen door de gloed te dimmen
   (.krat--leeg), maar een .fkaart heeft geen gloed, alleen een wit vak van
   190px hoog. Dat vak leeg laten leest als een stuk pagina dat niet geladen is.
   Daarom staat er dan het getekende flessilhouet in dat ook de huidige
   renderer gebruikt (bl3_prod_vak). Het vak zelf, de hoogte en de witte grond
   komen ongewijzigd uit .fkaart__beeld; alleen de kleur van de tekening staat
   hier. */
.bl3 .fkaart__omtrek{color:var(--rand);opacity:.9}

/* ---- 4. kaart zonder land, kaart zonder link ------------------------------

   Zonder land is er geen .note, en .note is in 1op1.css het element met
   flex:1 dat de prijs naar de onderrand duwt. Dan zou de prijs vlak onder de
   naam hangen terwijl hij bij de buurkaarten onderaan staat. margin-top:auto
   doet hetzelfde werk; staat de .note er wel, dan is er geen ruimte meer over
   en verandert deze regel niets. */
.bl3 .fkaart .prijs{margin-top:auto}

/* Een product zonder bruikbare webshop-URL wordt een <span> in plaats van een
   <a>. Die mag niet reageren alsof je erop kunt klikken. */
.bl3 .fkaart--stil:hover{border-color:var(--rand);transform:none}

/* ---- tegels2.css ---- */
/* bl3 — aanvulling op 1op1.css voor de fototegels, de merkenwolk en het
   verderblok. Alleen regels die NIET in 1op1.css staan.

   Alle opmaak van .fotovak, .soortkaart, .smaakvak, .krat, .soortraster,
   .smaakwijzer, .kratraster en .wolkje staat al 1 op 1 in 1op1.css
   (schermen/deel2.html, blok "FOTOTEGEL"). Hieronder staan vier dingen die
   daar niet in konden staan, elk met de reden erbij. Dit blok hoort NA
   1op1.css geladen te worden; de selectors hebben dezelfde zwaarte, dus de
   volgorde beslist — net als bij kop2.css.
   ========================================================================== */

/* 1. De maatbalk zonder JavaScript.

   Het prototype zet .smaakvak .maat span op width:0 en laat het script
   (deel3.js, de .vul-lus) er daarna de klasse 'aan' op zetten, die de balk
   naar var(--deel) laat groeien. Draait dat script niet, dan blijft elke balk
   op nul staan en is het maatbalkje weg. CONTRACT.md is daar hard over: de
   eindtoestand is de standaard, niets mag op nul of op opacity:0 blijven
   hangen als het script niet draait. Deze regel zet de eindbreedte terug als
   standaard. De regel .maat span.aan uit 1op1.css blijft gewoon werken en
   geeft nog steeds dezelfde breedte, dus mét script verandert er niets. */
.bl3 .smaakvak .maat span{width:var(--deel,10%)}

/* 2. De 44px lucht boven een tweede sectiekop binnen dezelfde sectie.

   Het prototype schrijft dat als style="margin-top:44px" op de tweede
   <div class="sectiekop"> in .soorten en in .kratje (schermen_wb.py). De kop
   komt hier uit bl3_sectiekop(), die geen inline stijl meegeeft; dit doet
   precies hetzelfde en alleen daar waar het prototype het ook doet: op een
   sectiekop die direct op een tegelraster volgt. */
.bl3 .soortraster + .sectiekop,
.bl3 .smaakwijzer + .sectiekop,
.bl3 .kratraster + .sectiekop{margin-top:44px}

/* 3. De naad tussen de tegels en de merkenwolk.

   In het prototype staan de stijltegels en de merkenwolk in ÉÉN
   <section class="kratje">, gescheiden door alleen die 44px. Hier zijn het
   twee losse functies (bl3_tegels en bl3_merken) en dus twee secties, en dan
   zou er een streep en tweemaal de sectiepadding tussen komen te staan. Deze
   regel haalt dat weg zodra de tweede sectie direct op de eerste volgt: de
   negatieve marge neemt precies de onderpadding van de vorige sectie terug
   (clamp(50px,8vw,96px), dezelfde waarde als in 1op1.css) en de bovenpadding
   wordt de 44px uit het prototype. Staat het blok los, dan gebeurt er niets
   en is het een gewone sectie. */
.bl3 .soorten + .vervolg,
.bl3 .kratje + .vervolg,
.bl3 .vervolg + .vervolg{
  border-top:0;
  margin-top:calc(-1 * clamp(50px,8vw,96px));
  padding-top:44px;
}

/* 4. Twee eisen uit CONTRACT.md die het prototype niet invult.

   a) Zichtbare focus op alles wat met het toetsenbord bereikbaar is. .fotovak
      heeft die al (1op1.css); de links in .wolkje niet. Zelfde omlijning als
      bij de vakken, zodat het één geheel blijft.
   b) Lange namen. Twee eisen die elkaar bij één uitzondering bijten: een naam
      mag niet middenin een woord breken, en hij mag niet onder de fles door
      lopen. Voor elke echte naam gaan ze samen: word-break:normal en
      hyphens:manual houden de afbreking op een spatie (Avada zet op veel
      plaatsen word-break:break-all; die regel wordt hier teruggedraaid), en
      de max-width per variant — 62%, 64% en 74%, staat al in 1op1.css —
      houdt de tekst naast de fles.
      Blijft over: één woord dat op zichzelf al breder is dan die kolom.
      overflow-wrap:break-word grijpt alleen dán in, en breekt dat ene woord
      in plaats van het onder de fles door te laten lopen en tegen de rand van
      het vak af te kappen (wat het prototype doet). Een naam met spaties
      raakt dit nooit. */
.bl3 .wolkje a:focus-visible{outline:2px solid var(--knop);outline-offset:3px}
.bl3 .soortkaart b,
.bl3 .smaakvak b,
.bl3 .krat b{word-break:normal;hyphens:manual;overflow-wrap:break-word}

/* bl3 — aanvulling op 1op1.css voor de landingspagina van de slijterij.
   Alleen wat NIET in 1op1.css staat.

   Alle opmaak van .hero--licht, .hero__fles--trio, .trio, .kast6 (met de zes
   kleurwerelden), .tegels, .raster, .tegel, .muur, .kast, .spoor, .rail2,
   .kaartje, .sectiekop, .nix en .winkel staat al 1 op 1 in 1op1.css
   (schermen/deel2.html). Er blijft één regel over, en die is er alleen omdat
   er beweging geschrapt is.

   Dit blok hoort NA 1op1.css geladen te worden: de selector heeft dezelfde
   zwaarte als de regel daar en wint alleen doordat hij later komt — net als
   bij kop2.css, tegels2.css en blokken2.css.
   ========================================================================== */

/* De streepjes onder de tegels lopen ook zonder script vol.

   In 1op1.css staat .tegel__vul op width:0 en pas .tegel__vul.aan zet de
   breedte op --deel. Die klasse zette deel3.js (functie "vullen", die ook
   .balk2__vul en .trede__vul deed); van dat script is alleen het invaren
   overgebleven (bl3_script), dus komt 'aan' er nooit meer op en zou elk
   streepje leeg blijven — terwijl de sectiekop de lezer er juist op wijst
   ("Het streepje laat zien hoe groot een soort is..."). CONTRACT.md is daar
   hard over: de eindtoestand is de standaard, zonder JavaScript staat alles
   goed. Deze regel zet die eindtoestand terug. Wordt 'aan' later alsnog
   gezet, dan verandert er niets — het is dezelfde breedte.
   Zelfde ingreep als .balk2__vul in blokken2.css. */
.bl3 .tegel__vul{width:var(--deel,4%)}


/* ---------- Blogband op de slijterijpagina (8 september 2026) ----------
   Volle-breedte donkere band met beeld links en uitleg rechts, die naar
   /blog/ wijst. Zand alleen op donkere grond, radius 2px, niets beweegt. */
.bl-blogband{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw;max-width:100vw;background:var(--green-d);color:#d9d6cd}
.bl-blogband__inner{max-width:1160px;margin:0 auto;padding:0 26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.6rem,3.4vw,3rem);align-items:center}
.bl-blogband__beeld{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:2px;margin:clamp(2rem,3.6vw,3.2rem) 0}
.bl-blogband__beeld img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.bl-blogband__tekst{padding:clamp(2rem,3.6vw,3.2rem) 0}
.bl-blogband__kicker{display:block;font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);margin:0 0 .9em}
.bl-blogband h2.bl-blogband__kop{color:#fff;margin:0 0 .55em}
.bl-blogband p{color:#c2beb4;max-width:46ch}
.bl-blogband__lijst{list-style:none;padding:0;margin:0 0 1.6rem;display:flex;flex-wrap:wrap;gap:.45rem}
.bl-blogband__lijst li{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sand);border:1px solid rgba(201,185,141,.45);border-radius:2px;padding:.32rem .6rem .34rem}
.bl-blogband .bl-btn{background:var(--btn);border-color:var(--btn)}
@media(max-width:820px){
 .bl-blogband__inner{grid-template-columns:1fr;gap:0}
 .bl-blogband__beeld{aspect-ratio:16/9;margin:clamp(1.6rem,4vw,2.2rem) 0 0}
 .bl-blogband__tekst{padding:1.4rem 0 clamp(1.8rem,4vw,2.4rem)}
 .bl-blogband p{max-width:none}
}

/* bln-start - Nieuw in het schap.
   Alles hieronder hoort bij /nieuw-in-het-schap/ en hangt aan
   .bl3[data-bl3-cat="nieuw"] of aan een eigen bln-klasse.
   Terugweg: alles vanaf deze markering weghalen. */

.bl3[data-bl3-cat="nieuw"]{--bln-messing:#7a6430}
@media (prefers-color-scheme: dark){
  .bl3[data-bl3-cat="nieuw"]:not([data-theme="light"]){--bln-messing:var(--zand)}
}
.bl3[data-bl3-cat="nieuw"][data-theme="dark"]{--bln-messing:var(--zand)}

.bl3 .sectiekop h1{font-family:Archivo,\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:700;
  font-size:clamp(2rem,4.4vw,3rem);line-height:1.06;letter-spacing:-.022em}

/* DE KOP. Loopt van donkergroen links traag naar wit rechts. De flesfoto's
   uit de webshop staan op een witte studio-achtergrond; op dat wit valt die
   achtergrond gewoon weg, dus hoeft er niets uitgesneden te worden en zie je
   nergens een omlijning. De tekst staat links op het groen, de fles rechts
   op het wit. */
.bl3 .hero--nieuw{min-height:78vh;background:linear-gradient(90deg,
  #101809 0%, #131c0d 20%, #1c2814 29%, #4a5738 38%, #97a086 46%,
  #d8dad2 53%, #f6f6f4 58%, #ffffff 63%, #ffffff 100%)}
/* De waas is een verticaal donker verloop over de HELE kop; die zou de witte
   kant vuil maken. Hier alleen een zachte verdieping aan de groene kant. */
.bl3 .hero--nieuw .hero__waas{background:linear-gradient(90deg,
  rgba(10,15,6,.55) 0%, rgba(10,15,6,.30) 26%, rgba(10,15,6,0) 46%)}
/* De wolkenlaag knipt zichzelf af (overflow:hidden), en op een halve breedte
   gaf dat een zichtbare verticale naad midden in het verloop. Op deze kop
   draagt het verloop de diepte al, dus de wolken kunnen hier weg. */
.bl3 .hero--nieuw .sfeer{display:none}
@media (max-width:900px){
  /* Smal scherm: alles onder elkaar, dus het verloop van boven naar onder. */
  .bl3 .hero--nieuw{background:linear-gradient(180deg,
    #101809 0%, #131c0d 34%, #4a5738 52%, #b9beae 64%, #ffffff 76%, #ffffff 100%)}
  .bl3 .hero--nieuw .hero__waas{background:linear-gradient(180deg,
    rgba(10,15,6,.5) 0%, rgba(10,15,6,0) 44%)}
}

/* Een haarlijn in messing boven de kicker, en een ruimere, iets lichtere
   titel: zwaar vet leest als een aanbieding, niet als een kast met whisky. */
.bl3[data-bl3-cat="nieuw"] .hero__tekst .kicker{display:inline-block;padding-top:20px;
  border-top:1px solid rgba(201,185,141,.45);letter-spacing:.24em}
.bl3[data-bl3-cat="nieuw"] .hero h1{font-size:clamp(2.5rem,6.6vw,5rem);max-width:13ch;
  font-weight:600;letter-spacing:-.018em}
.bl3[data-bl3-cat="nieuw"] .hero__lead{max-width:46ch;font-size:1.12rem;color:#cfcdc0}
.bl3[data-bl3-cat="nieuw"] .hero__rooster{grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:0 56px}

/* DE FLES op de witte kant. Vast vak, altijd even hoog, altijd gecentreerd:
   daardoor staat elke fles op dezelfde plek, hoe de foto ook is bijgesneden.
   Geen schaduw en geen rand: die zouden het vak van de foto juist verraden. */
.bl3 .bln-fles{display:flex;flex-direction:column;align-items:center;gap:16px;
  text-decoration:none;color:var(--tekst);transition:transform .5s cubic-bezier(.2,.7,.3,1)}
.bl3 .bln-fles:hover{transform:translateY(-5px)}
.bl3 .bln-fles:focus-visible{outline:1px solid var(--bln-messing);outline-offset:14px}
.bl3 .bln-fles__beeld{position:relative;display:flex;align-items:center;justify-content:center;
  width:100%;height:clamp(260px,34vw,440px)}
/* De studiofoto is niet overal spierwit; daardoor tekende zich een lichtgrijs
   kader af tegen het wit van de kop. Dit waas legt wit OVER de randen van de
   foto, van doorzichtig in het midden naar dicht wit aan de rand, zodat de
   foto in de achtergrond overloopt en er nergens een lijn staat.
   (Een mask-image werkte niet: samen met mix-blend-mode verdween de fles.) */
.bl3 .bln-fles__beeld::after{content:"";position:absolute;inset:-2px;pointer-events:none;
  background:radial-gradient(ellipse 72% 74% at 50% 47%,
    rgba(255,255,255,0) 58%, rgba(255,255,255,.75) 84%, #ffffff 100%)}
.bl3 .bln-fles__beeld img{max-height:100%;max-width:100%;width:auto;height:auto;
  object-fit:contain;display:block}
.bl3 .bln-fles__label{text-align:center;display:flex;flex-direction:column;gap:7px;max-width:32ch}
.bl3 .bln-fles__net{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--bln-messing);font-weight:700}
.bl3 .bln-fles b{font-size:1rem;font-weight:600;color:#22241e;line-height:1.35}
.bl3 .bln-fles__note{font-size:.82rem;color:#63645c;line-height:1.55}
.bl3 .bln-fles__prijs{font-size:1.05rem;font-weight:700;color:var(--bln-messing);font-variant-numeric:tabular-nums}

/* Ruimere flessenkaarten: er staat nu een uitleg in, dus ze mogen groter. */
.bl3[data-bl3-cat="nieuw"] .fkaart__beeld{height:224px;padding:18px}
.bl3[data-bl3-cat="nieuw"] .fkaart__beeld img{height:188px}
.bl3[data-bl3-cat="nieuw"] .fkaart__tekst{padding:16px 18px 18px;gap:7px}
.bl3[data-bl3-cat="nieuw"] .fkaart .note{font-size:.845rem;line-height:1.62}
.bl3[data-bl3-cat="nieuw"] .fkaart .prijs{color:var(--bln-messing)}
.bl3[data-bl3-cat="nieuw"] .kaarten .sectiekop .kicker{color:var(--bln-messing)}

/* De tussenkopjes per soort. */
.bl3 .bln-groep{display:flex;align-items:baseline;gap:12px;margin:34px 0 16px;
  font-family:Archivo,\"Helvetica Neue\",Helvetica,Arial,sans-serif;font-weight:700;letter-spacing:-.015em;font-size:1.12rem;line-height:1.2;
  padding-bottom:9px;border-bottom:1px solid var(--rand)}
.bl3 .bln-groep:first-of-type{margin-top:6px}
.bl3 .bln-groep i{font-style:normal;font-weight:700;font-size:.78rem;letter-spacing:.06em;
  color:var(--bln-messing);font-variant-numeric:tabular-nums}
.bl3 .bln-groeprij{margin-bottom:6px}


/* De blokkoppen ("Nieuw binnen", "Weer op voorraad") staan midden op het
   scherm in plaats van links; de kaarten eronder staan al gecentreerd. */
.bl3[data-bl3-cat="nieuw"] .kaarten .sectiekop{align-items:center;text-align:center;
  max-width:66ch;margin-left:auto;margin-right:auto}

