﻿/*
Theme Name: Bowlingvereniging Oss
Theme URI: https://bowlingverenigingoss.nl
Author: Bowlingvereniging Oss
Author URI: https://bowlingverenigingoss.nl
Description: Sportief clubthema voor Bowlingvereniging Oss. Marineblauw/oranje huisstijl met hero, speeldata- en toernooikaarten, over-ons sectie, CTA-blok en uitgebreide footer. Volledig instelbaar via de Customizer.
Version: 1.43.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bvoss
Tags: sports, club, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, block-styles, wide-blocks
*/

/* =========================================================
   1. Design tokens
   ========================================================= */
:root {
  --bv-navy:        #0E2A56;
  --bv-navy-deep:   #0A1F42;
  --bv-navy-soft:   #16386E;
  --bv-orange:      #E8641A;
  --bv-orange-dark: #CE5411;
  --bv-orange-soft: #FBE2D2;
  --bv-ink:         #16233B;
  --bv-body:        #4A5A73;
  --bv-muted:       #7A8AA3;
  --bv-line:        #E3E8EF;
  /* Net geen vlak wit: grote lege vlakken ogen daardoor rustiger en witte
     kaarten steken er nog steeds vanaf. */
  --bv-bg-alt:      #F2F5F9;

  --bv-font-head: "Barlow Condensed", "Oswald", "Arial Narrow", Impact, sans-serif;
  --bv-font-body: "Nunito Sans", "Segoe UI", Helvetica, Arial, sans-serif;

  --bv-radius:    10px;
  --bv-radius-lg: 16px;
  --bv-shadow:    0 2px 10px rgba(14, 42, 86, .06);
  --bv-shadow-md: 0 10px 30px rgba(14, 42, 86, .10);
  --bv-shadow-lg: 0 22px 50px rgba(14, 42, 86, .14);

  --bv-wrap: 1280px;
  --bv-gut:  24px;
  --bv-header-h: 108px;
}

/* =========================================================
   2. Reset / base
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* Houdt ankerdoelen vrij van de vastgezette header, ook bij een sprong
     vanuit de URL of via de terugknop. */
  scroll-padding-top: calc(var(--bv-header-h) + 16px);
}

body {
  margin: 0;
  font-family: var(--bv-font-body);
  font-size: 16px;
  line-height: 1.7;
  color: var(--bv-body);
  /* Het stippenraster staat op de pagina zelf in plaats van per sectie. Zo is
     de achtergrond overal gelijk en loopt het raster door over een sectiegrens
     heen; per sectie zou het bij elke overgang opnieuw beginnen. */
  background-color: var(--bv-bg-alt);
  background-image: radial-gradient(rgba(14, 42, 86, .05) 1px, transparent 1px);
  background-size: 22px 22px;
  overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--bv-orange); text-decoration: none; transition: color .18s ease; }
a:hover { color: var(--bv-orange-dark); }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--bv-font-head);
  color: var(--bv-navy);
  margin: 0 0 .5em;
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: .01em;
}

h1 { font-size: clamp(2.6rem, 6vw, 4.6rem); }
h2 { font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
h3 { font-size: 1.35rem; }
h4 { font-size: 1.1rem; }

p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.25em; }

hr { border: 0; border-top: 1px solid var(--bv-line); margin: 2rem 0; }

table { width: 100%; border-collapse: collapse; }
th, td { padding: .7rem .9rem; border-bottom: 1px solid var(--bv-line); text-align: left; }
th { font-family: var(--bv-font-head); text-transform: uppercase; letter-spacing: .06em; color: var(--bv-navy); font-size: .95rem; }

blockquote {
  margin: 1.6rem 0; padding: .3rem 0 .3rem 1.4rem;
  border-left: 4px solid var(--bv-orange); color: var(--bv-ink); font-style: italic;
}

code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; }
pre { background: var(--bv-bg-alt); padding: 1rem 1.2rem; border-radius: var(--bv-radius); overflow-x: auto; }

:focus-visible { outline: 3px solid var(--bv-orange); outline-offset: 2px; border-radius: 4px; }
/* Een ankerlink zet de focus op het doel zodat het toetsenbord meeloopt.
   Zo'n doel is zelf niet tabbaar, dus de oranje ring hoort er niet omheen. */
[tabindex="-1"]:focus, [tabindex="-1"]:focus-visible { outline: none; }

/* =========================================================
   3. Layout helpers
   ========================================================= */
.bv-wrap { width: 100%; max-width: var(--bv-wrap); margin-inline: auto; padding-inline: var(--bv-gut); }

.bv-section { padding: clamp(48px, 5.5vw, 76px) 0; }
.bv-section--tight { padding: clamp(32px, 3.6vw, 50px) 0; }

/* Het raster staat op de pagina; deze klasse hoeft dus niets meer te
   schilderen. Hij blijft bestaan omdat de sjablonen hem gebruiken, en zou de
   stippen eronder juist afdekken als hij een eigen vlak zou tekenen. */
.bv-section--alt { background: transparent; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px,1px,1px,1px); clip-path: inset(50%); white-space: nowrap;
}
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 999;
  background: var(--bv-orange); color: #fff; padding: .8rem 1.2rem; font-weight: 700;
}
.skip-link:focus { left: 8px; top: 8px; color: #fff; }

.bv-eyebrow {
  font-family: var(--bv-font-head);
  text-transform: uppercase;
  letter-spacing: .16em;
  font-weight: 700;
  font-size: .92rem;
  color: var(--bv-orange);
  margin: 0 0 .6rem;
}

/* =========================================================
   4. Buttons
   ========================================================= */
.bv-btn {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--bv-font-head);
  font-weight: 700; font-size: 1rem;
  text-transform: uppercase; letter-spacing: .1em;
  padding: .95rem 1.6rem;
  border-radius: var(--bv-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .18s ease, background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
  line-height: 1.1;
}
.bv-btn svg { width: 20px; height: 20px; flex: none; }

.bv-btn--primary { background: var(--bv-orange); color: #fff; box-shadow: 0 6px 18px rgba(232,100,26,.25); }
.bv-btn--primary:hover { background: var(--bv-orange-dark); color: #fff; transform: translateY(-2px); }

.bv-btn--ghost { background: #fff; color: var(--bv-orange); border-color: var(--bv-orange); }
.bv-btn--ghost:hover { background: var(--bv-orange); color: #fff; transform: translateY(-2px); }

.bv-btn--navy { background: var(--bv-navy); color: #fff; }
.bv-btn--navy:hover { background: var(--bv-navy-deep); color: #fff; transform: translateY(-2px); }

.bv-btn--outline-light { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.bv-btn--outline-light:hover { background: #fff; color: var(--bv-navy); border-color: #fff; transform: translateY(-2px); }

.bv-btn--sm { padding: .6rem 1.05rem; font-size: .85rem; }

/* =========================================================
   5. Header
   ========================================================= */
.bv-header {
  position: sticky; top: 0; z-index: 200;
  background: #fff;
  border-bottom: 1px solid var(--bv-line);
}
.bv-header.is-stuck { box-shadow: var(--bv-shadow-md); }

.bv-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
  min-height: var(--bv-header-h);
}

.bv-brand { display: flex; align-items: center; gap: .75rem; flex: none; }
/* Werkt voor zowel een gestapeld logo (embleem boven het woordmerk, ~1,6:1)
   als een horizontaal lockup (~3,5:1): de hoogte begrenst het eerste, de
   breedte het tweede. */
.bv-brand img, .bv-brand svg { max-height: 88px; max-width: 260px; width: auto; height: auto; }
.bv-brand .custom-logo-link { display: block; line-height: 0; }
.bv-brand__text { display: flex; flex-direction: column; line-height: 1; }
.bv-brand__name {
  font-family: var(--bv-font-head); font-weight: 700; font-size: 1.35rem;
  text-transform: uppercase; letter-spacing: .02em; color: var(--bv-navy);
}
.bv-brand__sub {
  font-family: var(--bv-font-head); font-weight: 700; font-size: 1.6rem;
  text-transform: uppercase; color: var(--bv-orange);
}

/* Het menu pakt de ruimte tussen het logo en de knop en zet zichzelf daar
   in het midden. Met alleen margin-left:auto schoof het tegen de knop aan. */
.bv-nav { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.bv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1.9rem; }
/* Safety net: a bare <li> from a menu fallback must never render as a bullet. */
.bv-nav li { position: relative; list-style: none; }
.bv-nav > div { padding: 0; margin: 0; }
.bv-nav a {
  display: inline-flex; align-items: center; gap: .35rem;
  font-family: var(--bv-font-head);
  font-size: .95rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--bv-navy); padding: .5rem 0; white-space: nowrap;
}
.bv-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -2px;
  height: 3px; background: var(--bv-orange);
  transform: scaleX(0); transform-origin: left; transition: transform .2s ease;
}
.bv-nav li:hover > a, .bv-nav .current-menu-item > a, .bv-nav .current_page_item > a,
.bv-nav .current-menu-ancestor > a, .bv-nav .current_page_ancestor > a { color: var(--bv-orange); }
.bv-nav li:hover > a::after, .bv-nav .current-menu-item > a::after,
.bv-nav .current_page_item > a::after, .bv-nav .current-menu-ancestor > a::after { transform: scaleX(1); }

.bv-nav .menu-item-has-children > a::before {
  content: ""; order: 2;
  width: 8px; height: 8px; margin-left: .3rem;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

.bv-nav .sub-menu {
  position: absolute; top: 100%; left: -1rem; min-width: 240px;
  display: block; gap: 0;
  background: #fff; border: 1px solid var(--bv-line); border-top: 3px solid var(--bv-orange);
  border-radius: 0 0 var(--bv-radius) var(--bv-radius);
  box-shadow: var(--bv-shadow-md);
  padding: .5rem 0;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.bv-nav li:hover > .sub-menu, .bv-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bv-nav .sub-menu li { width: 100%; }
.bv-nav .sub-menu a { display: block; padding: .6rem 1.25rem; letter-spacing: .07em; font-size: .88rem; }
.bv-nav .sub-menu a::after { display: none; }
.bv-nav .sub-menu a:hover { background: var(--bv-bg-alt); color: var(--bv-orange); }

.bv-header__cta { flex: none; }

.bv-burger {
  display: none; width: 46px; height: 46px; border: 0; background: transparent;
  cursor: pointer; padding: 10px; border-radius: var(--bv-radius);
}
.bv-burger span { display: block; height: 3px; background: var(--bv-navy); border-radius: 2px; margin: 4px 0; transition: transform .2s ease, opacity .2s ease; }
.bv-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.bv-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.bv-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* =========================================================
   6. Hero
   ========================================================= */
/* De opmaak van de hero staat verderop, bij het blok "Homepage"; die versie
   hoort bij het huidige ontwerp met het marineblauwe vlak. */

/* =========================================================
   7. Highlight cards
   ========================================================= */
.bv-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(18px, 2.2vw, 28px); }

.bv-card {
  background: #fff; border-radius: var(--bv-radius); overflow: hidden;
  box-shadow: var(--bv-shadow); display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.bv-card:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow-md); }

.bv-card__head {
  display: flex; align-items: center; gap: .7rem;
  padding: .95rem 1.25rem; color: #fff;
  font-family: var(--bv-font-head); font-weight: 700; font-size: 1.02rem;
  text-transform: uppercase; letter-spacing: .09em;
}
.bv-card__head svg { width: 22px; height: 22px; flex: none; }
.bv-card--navy .bv-card__head { background: var(--bv-navy); }
.bv-card--orange .bv-card__head { background: var(--bv-orange); }

.bv-card__body { padding: 1.4rem 1.25rem .4rem; flex: 1; }
.bv-card__foot { padding: 0 1.25rem 1.2rem; }
.bv-card__foot::before { content: ""; display: block; border-top: 1px solid var(--bv-line); margin-bottom: .9rem; }
.bv-card__link {
  display: inline-flex; align-items: center; gap: .6rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .88rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--bv-navy);
}
.bv-card--orange .bv-card__link { color: var(--bv-orange); }
.bv-card__link:hover { color: var(--bv-orange); }
.bv-card__link svg { width: 18px; height: 18px; transition: transform .18s ease; }
.bv-card__link:hover svg { transform: translateX(4px); }

.bv-next { display: flex; gap: 1.1rem; align-items: flex-start; }
.bv-datebox {
  flex: none; width: 96px; text-align: center;
  border: 1px solid var(--bv-line); border-radius: var(--bv-radius); overflow: hidden;
  background: #fff;
}
.bv-datebox__dow, .bv-datebox__mo {
  font-family: var(--bv-font-head); font-weight: 700; font-size: .78rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--bv-navy);
  padding: .4rem 0; background: var(--bv-bg-alt);
}
.bv-datebox__day {
  font-family: var(--bv-font-head); font-weight: 700; font-size: 2.6rem;
  color: var(--bv-navy); line-height: 1; padding: .45rem 0 .35rem;
}
.bv-next__body h3 { margin: 0 0 .5rem; font-size: 1.18rem; }
.bv-next__body ul { list-style: none; padding: 0; margin: 0; font-size: .95rem; }
.bv-next__body li { position: relative; padding-left: 1rem; margin-bottom: .28rem; }
.bv-next__body li::before {
  content: ""; position: absolute; left: 0; top: .68em;
  width: 5px; height: 5px; border-radius: 50%; background: var(--bv-navy);
}
.bv-next__body strong { color: var(--bv-ink); font-weight: 700; }

.bv-eventrow { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.1rem; }
.bv-eventrow:last-child { margin-bottom: 0; }
.bv-eventrow__icon {
  flex: none; width: 56px; height: 56px; border-radius: 50%;
  display: grid; place-items: center; background: var(--bv-orange-soft); color: var(--bv-orange);
}
.bv-eventrow__icon svg { width: 26px; height: 26px; }
.bv-eventrow--solid .bv-eventrow__icon { background: var(--bv-orange); color: #fff; width: 44px; height: 44px; }
.bv-eventrow--solid .bv-eventrow__icon svg { width: 22px; height: 22px; }
.bv-eventrow__title { font-family: var(--bv-font-head); font-weight: 700; font-size: 1.05rem; color: var(--bv-navy); line-height: 1.25; }
.bv-eventrow__meta { font-size: .95rem; color: var(--bv-body); }

/* =========================================================
   8. About / features
   ========================================================= */
.bv-about__inner {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 60px); align-items: center;
}
.bv-about__title { margin-bottom: .9rem; }
.bv-features { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.6rem; margin-top: 2.2rem; }
.bv-feature__icon { color: var(--bv-orange); width: 34px; height: 34px; margin-bottom: .7rem; }
.bv-feature__icon svg { width: 100%; height: 100%; }
.bv-feature:nth-child(1) .bv-feature__icon { color: var(--bv-navy); }
.bv-feature h3 { font-size: 1.05rem; margin-bottom: .35rem; }
.bv-feature p { font-size: .92rem; margin: 0; line-height: 1.6; }
.bv-about__media img { border-radius: var(--bv-radius-lg); }

/* =========================================================
   9. CTA banner
   ========================================================= */
.bv-cta { padding-bottom: clamp(56px, 7vw, 92px); }
.bv-cta__box {
  background: var(--bv-navy); color: #fff;
  border-radius: var(--bv-radius-lg);
  padding: clamp(28px, 4vw, 44px) clamp(24px, 4vw, 48px);
  display: grid; grid-template-columns: auto minmax(0,1fr) auto;
  gap: clamp(20px, 3vw, 40px); align-items: center;
  box-shadow: var(--bv-shadow-lg);
}
.bv-cta__badge {
  flex: none; width: 130px; height: 130px; border-radius: 50%;
  border: 3px solid rgba(255,255,255,.5);
  display: grid; place-items: center;
}
.bv-cta__badge svg { width: 74px; height: 74px; }
.bv-cta__title { color: #fff; margin: 0 0 .5rem; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.bv-cta__text { color: rgba(255,255,255,.82); margin: 0; max-width: 34rem; }
.bv-cta__actions { display: flex; flex-direction: column; gap: .85rem; min-width: 240px; }
.bv-cta__actions .bv-btn { justify-content: flex-start; }

/* =========================================================
   10. Footer
   ========================================================= */
.bv-footer { background: var(--bv-navy-deep); color: rgba(255,255,255,.78); font-size: .95rem; }
.bv-footer a { color: rgba(255,255,255,.78); }
.bv-footer a:hover { color: var(--bv-orange); }

.bv-footer__top {
  display: grid; grid-template-columns: 1.3fr .8fr .9fr 1.1fr;
  gap: clamp(24px, 3vw, 44px);
  padding-block: clamp(44px, 5vw, 64px) clamp(30px, 4vw, 44px);
}
.bv-footer__logo img { max-height: 104px; max-width: 300px; width: auto; height: auto; margin-bottom: 1rem; }

/* Een donker woordmerk verdwijnt op de marineblauwe footer, dus krijgt het
   eigen logo daar een lichte plaat. Upload een lichte variant onder
   "Footerlogo" om die plaat te vervangen. */
.bv-logo-link--plate {
  display: inline-block;
  background: #fff;
  border-radius: var(--bv-radius);
  padding: 14px 18px;
  margin-bottom: 1rem;
}
.bv-logo-link--plate img { margin-bottom: 0; max-height: 92px; }
.bv-footer h4 {
  color: #fff; font-size: .95rem; text-transform: uppercase; letter-spacing: .14em;
  margin: 0 0 1.1rem;
}
.bv-footer ul { list-style: none; margin: 0; padding: 0; }
.bv-footer li { margin-bottom: .5rem; }
.bv-footer .sub-menu { display: none; }

.bv-contact li { display: flex; gap: .7rem; align-items: flex-start; margin-bottom: .9rem; }
.bv-contact svg { width: 17px; height: 17px; flex: none; margin-top: .28rem; color: rgba(255,255,255,.6); }
.bv-contact strong { color: #fff; display: block; font-weight: 700; }

.bv-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 1.2rem 0 1.4rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-size: .86rem; color: rgba(255,255,255,.6);
}
.bv-social { display: flex; gap: .7rem; }
.bv-social a {
  width: 36px; height: 36px; border-radius: 50%;
  display: grid; place-items: center; background: rgba(255,255,255,.1); color: #fff;
  transition: background-color .18s ease, transform .18s ease;
}
.bv-social a:hover { background: var(--bv-orange); color: #fff; transform: translateY(-2px); }
.bv-social svg { width: 18px; height: 18px; }

/* =========================================================
   11. Inner pages, posts, archives
   ========================================================= */
/* Alle paginabanners even hoog: één minimumhoogte, inhoud verticaal
   gecentreerd. Een banner met meer inhoud groeit alleen mee als het echt
   niet past. */
.bv-pagehead {
  background: var(--bv-navy); color: #fff;
  position: relative; overflow: hidden;
  display: flex; align-items: center;
  min-height: clamp(250px, 26vw, 350px);
  padding: clamp(32px, 3.4vw, 44px) 0;
}
.bv-pagehead > .bv-wrap { width: 100%; }
.bv-pagehead::after {
  content: ""; position: absolute; right: -60px; bottom: -80px;
  width: 320px; height: 320px; border-radius: 50%;
  background: rgba(232,100,26,.14);
}
.bv-pagehead__inner { position: relative; z-index: 1; }
.bv-pagehead h1 { color: #fff; margin: 0; text-transform: uppercase; font-size: clamp(2rem, 4.4vw, 3.2rem); }
.bv-pagehead p { color: rgba(255,255,255,.8); margin: .6rem 0 0; max-width: 46rem; }
.bv-breadcrumb { font-size: .82rem; text-transform: uppercase; letter-spacing: .14em; color: rgba(255,255,255,.65); margin-bottom: .6rem; font-family: var(--bv-font-head); }
.bv-breadcrumb a { color: var(--bv-orange); }

.bv-pagehead__media {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: 54%; z-index: 0;
  clip-path: ellipse(104% 132% at 100% 50%);
}
.bv-pagehead__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.bv-pagehead__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14,42,86,.55) 38%, rgba(14,42,86,0) 78%);
}

.bv-pagehead__title { color: #fff; text-transform: uppercase; margin: 0 0 .7rem; font-size: clamp(1.9rem, 3.4vw, 2.6rem); }
.bv-pagehead__title span { display: block; }
.bv-pagehead__title .is-accent { color: var(--bv-orange); font-size: 1.18em; line-height: .95; }
.bv-pagehead__intro { color: rgba(255,255,255,.82); margin: 0; max-width: 40rem; font-size: .96rem; }
.bv-pagehead__actions { display: flex; gap: .9rem; margin-top: 1.1rem; }
.bv-pagehead__actions .bv-btn { padding: .8rem 1.3rem; font-size: .92rem; }

/* Klein oranje streepje achter een kopje */
.bv-dash::after {
  content: ""; display: inline-block; vertical-align: middle;
  width: 26px; height: 2px; margin-left: .6rem;
  background: var(--bv-orange);
}

/* --- Missie / visie / kernwaarden --- */
.bv-pillars { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bv-pillar { display: flex; gap: 1.1rem; align-items: flex-start; padding: 0 clamp(18px, 2.4vw, 34px); }
.bv-pillar:first-child { padding-left: 0; }
.bv-pillar:last-child { padding-right: 0; }
.bv-pillar + .bv-pillar { border-left: 1px solid var(--bv-line); }
.bv-pillar__icon {
  flex: none; width: 58px; height: 58px; border-radius: 50%;
  background: var(--bv-navy); color: #fff;
  display: grid; place-items: center;
}
.bv-pillar__icon svg { width: 28px; height: 28px; }
.bv-pillar h2 {
  font-size: 1rem; text-transform: uppercase; letter-spacing: .12em;
  margin: .35rem 0 .5rem;
}
.bv-pillar p { font-size: .93rem; line-height: 1.65; margin: 0; }

/* --- Cijferbalk --- */
.bv-statbar-wrap { padding-bottom: clamp(36px, 4vw, 56px); }
.bv-statbar {
  background: var(--bv-navy); border-radius: var(--bv-radius-lg);
  padding: clamp(26px, 3.4vw, 40px) clamp(16px, 2.6vw, 32px);
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  box-shadow: var(--bv-shadow-lg);
}
.bv-statbar__item { text-align: center; padding: 0 clamp(8px, 1.6vw, 20px); }
.bv-statbar__item + .bv-statbar__item { border-left: 1px solid rgba(255,255,255,.16); }
.bv-statbar__icon { color: var(--bv-orange); width: 34px; height: 34px; margin: 0 auto .6rem; }
.bv-statbar__icon svg { width: 100%; height: 100%; }
.bv-statbar__value {
  font-family: var(--bv-font-head); font-weight: 700; line-height: 1;
  font-size: clamp(2.1rem, 3.4vw, 2.9rem); color: #fff; margin: 0 0 .55rem;
}
.bv-statbar__label {
  position: relative; margin: 0; padding-top: .75rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .85rem;
  text-transform: uppercase; letter-spacing: .12em; color: #fff;
}
.bv-statbar__label::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 34px; height: 2px; background: var(--bv-orange);
}

/* --- Verhaalblok met zijkaart --- */
.bv-story {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr) minmax(0, .8fr);
  gap: clamp(24px, 3vw, 44px);
  align-items: start;
}
.bv-story__media img { width: 100%; border-radius: var(--bv-radius); }
.bv-story__text h2 { font-size: clamp(1.3rem, 2.2vw, 1.7rem); margin-bottom: .9rem; }
.bv-story__body p { font-size: .95rem; }
.bv-story__body > :last-child { margin-bottom: 0; }

.bv-story--wide { grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); }
.bv-story__tagline {
  margin: 1.1rem 0 0; color: var(--bv-orange);
  font-weight: 600; font-style: italic; font-size: 1rem;
}

/* --- Gecentreerde kop met oranje streepjes ernaast --- */
.bv-headline {
  display: flex; align-items: center; justify-content: center; gap: 1.1rem;
  text-align: center; text-transform: uppercase; letter-spacing: .06em;
  font-size: clamp(1.15rem, 2vw, 1.5rem);
  margin: 0 0 clamp(28px, 3vw, 44px);
}
.bv-headline::before, .bv-headline::after {
  content: ""; flex: none; width: clamp(26px, 4vw, 54px); height: 2px;
  background: var(--bv-orange);
}

/* --- Waarom kiezen voor --- */
.bv-why { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 24px); }
.bv-why__card {
  background: #fff; border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius); padding: 1.4rem 1.3rem 1.5rem;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.bv-why__card:hover { transform: translateY(-3px); box-shadow: var(--bv-shadow-md); border-color: transparent; }
.bv-why__icon {
  display: grid; place-items: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--bv-navy); color: #fff; margin-bottom: .9rem;
}
.bv-why__icon svg { width: 22px; height: 22px; }
.bv-why__card h3 {
  font-size: .95rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .45rem;
}
.bv-why__card p { font-size: .88rem; line-height: 1.6; margin: 0; }

/* --- Zo werkt het --- */
.bv-steps {
  display: grid; grid-template-columns: 1fr auto 1fr auto 1fr;
  gap: clamp(14px, 2vw, 26px); align-items: start;
}
.bv-steps__arrow { display: grid; place-items: center; color: var(--bv-orange); padding-top: 2.6rem; }
.bv-steps__arrow svg { width: 26px; height: 26px; }

/* Het volgnummer staat links achter het icoon; de padding houdt er ruimte voor
   vrij zodat het niet tegen de bovenrand van de sectie loopt. */
.bv-step { position: relative; display: flex; align-items: flex-start; gap: 1rem; padding: .4rem 0 0 2.4rem; }
.bv-step__number {
  position: absolute; left: -.2rem; top: -.5rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: 3.6rem;
  color: var(--bv-navy); opacity: .12; line-height: 1; pointer-events: none;
}
.bv-step__icon {
  position: relative; z-index: 1;
  flex: none; width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-step__icon svg { width: 24px; height: 24px; }
.bv-step__body { position: relative; z-index: 1; }
.bv-step__body h3 {
  font-size: .95rem; text-transform: uppercase; letter-spacing: .09em; margin-bottom: .4rem;
}
.bv-step__body p { font-size: .88rem; line-height: 1.6; margin: 0; }

/* --- Iedereen is welkom --- */
.bv-welcome {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(26px, 4vw, 52px); align-items: center;
}
.bv-welcome__text h2 { font-size: clamp(1.35rem, 2.4vw, 1.85rem); margin-bottom: 1.4rem; }
.bv-welcome__list { list-style: none; margin: 0; padding: 0; }
.bv-welcome__list li { display: flex; gap: .9rem; align-items: flex-start; margin-bottom: 1rem; }
.bv-welcome__list li:last-child { margin-bottom: 0; }
.bv-welcome__list strong { display: block; color: var(--bv-navy); font-size: .95rem; }
.bv-welcome__list span:last-child { font-size: .9rem; line-height: 1.6; }
.bv-welcome__icon {
  flex: none; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-orange); color: #fff; margin-top: .15rem;
}
.bv-welcome__icon svg { width: 18px; height: 18px; }
.bv-welcome__media img { width: 100%; border-radius: var(--bv-radius); }

/* --- Oproepblok met pluspunten --- */
.bv-cta__box--over { align-items: center; }
.bv-cta__badge--solid {
  background: var(--bv-orange); border-color: transparent; color: #fff;
  width: 108px; height: 108px;
}
.bv-cta__badge--solid svg { width: 58px; height: 58px; }
.bv-cta__title--upper {
  text-transform: uppercase; letter-spacing: .02em;
  font-size: clamp(1.35rem, 2.4vw, 1.9rem);
}

/* Knop met het icoon achter de tekst, op inhoudsbreedte. */
.bv-btn--trail { align-self: flex-start; }

.bv-checks {
  list-style: none; margin: 1.1rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .5rem 1.4rem;
}
.bv-checks li {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .85rem; color: rgba(255,255,255,.85);
}
.bv-checks svg { width: 15px; height: 15px; color: var(--bv-orange); flex: none; }

/* --- Paginakop met foto over de volle breedte (template Standen) --- */
.bv-pagehead--photo::after { display: none; }
.bv-pagehead--photo .bv-pagehead__media {
  position: absolute; inset: 0; width: 100%;
  clip-path: none; opacity: .5;
}
.bv-pagehead--photo .bv-pagehead__media::after {
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14,42,86,.9) 42%, rgba(14,42,86,.45) 100%);
}
.bv-pagehead__title--plain { font-size: clamp(2.2rem, 4.6vw, 3.4rem); }

/* --- Filterbalk --- */
.bv-filterbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: .9rem;
  margin-bottom: 1.4rem;
}
.bv-select { position: relative; display: inline-block; }
.bv-select::after {
  content: ""; position: absolute; right: 1rem; top: 50%;
  width: 8px; height: 8px; margin-top: -6px;
  border-right: 2px solid var(--bv-navy); border-bottom: 2px solid var(--bv-navy);
  transform: rotate(45deg); pointer-events: none;
}
.bv-select select {
  appearance: none; -webkit-appearance: none;
  font: inherit; font-size: .95rem; color: var(--bv-ink);
  background: #fff; border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
  padding: .8rem 2.4rem .8rem 1rem;
  min-width: 165px; cursor: pointer;
}
.bv-select select:hover { border-color: var(--bv-orange); }
.bv-filterbar .bv-btn { padding: .8rem 1.3rem; }

.bv-updated {
  display: inline-flex; align-items: center; gap: .45rem;
  margin: 0 0 0 auto; font-size: .84rem; color: var(--bv-muted);
  white-space: nowrap;
}
.bv-updated svg { width: 16px; height: 16px; flex: none; }

/* --- Standentabel --- */
.bv-standings { min-width: 780px; }
.bv-standings thead th { font-size: .82rem; letter-spacing: .1em; padding: .95rem .8rem; }
.bv-standings thead th.is-pos { color: var(--bv-orange); }
.bv-standings th.is-num, .bv-standings td.is-num { text-align: center; }
.bv-standings td { padding: .85rem .8rem; font-size: .95rem; }
.bv-standings td.is-pos { text-align: center; width: 64px; color: var(--bv-navy); font-weight: 700; }
.bv-standings td.is-team { color: var(--bv-navy); font-weight: 600; white-space: nowrap; }
.bv-standings td.is-points { font-weight: 700; color: var(--bv-navy); }
/* Geen zebrastreping hier: de koploper is de enige gemarkeerde rij.
   Extra klasse voor de specificiteit, anders wint .bv-table verderop. */
.bv-table.bv-standings tbody tr:nth-child(even) { background: transparent; }
.bv-standings tbody tr:hover { background: var(--bv-bg-alt); }

.bv-standings tr.is-leader { background: #FFF6F0; }
.bv-standings tr.is-leader:hover { background: #FFEFE4; }
.bv-standings tr.is-leader td.is-pos,
.bv-standings tr.is-leader td.is-team,
.bv-standings tr.is-leader td.is-points { color: var(--bv-orange); }
.bv-standings__trophy { display: inline-flex; vertical-align: -4px; margin-right: .5rem; color: var(--bv-orange); }
.bv-standings__trophy svg { width: 18px; height: 18px; }

.bv-tablenote {
  display: flex; align-items: flex-start; gap: .5rem;
  margin: .9rem 0 0; font-size: .86rem; color: var(--bv-muted);
}
.bv-tablenote svg { width: 16px; height: 16px; flex: none; margin-top: .18rem; }

/* --- Standen: hoofdkolom + zijkolom --- */
.bv-standings-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 290px;
  gap: clamp(24px, 3vw, 40px); align-items: start;
}
/* Loopt mee tijdens het scrollen langs een lange tabel; dat vult de ruimte
   ernaast en houdt de informatie in beeld. */
.bv-standings-side, .bv-schedule-side { position: sticky; top: calc(var(--bv-header-h) + 20px); }
.bv-standings-side { display: grid; gap: 1.2rem; }
.bv-standings-side .bv-card__body { padding: 1.1rem 1.25rem 1.3rem; }

.bv-infolist { list-style: none; margin: 0; padding: 0; }
.bv-infolist li {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .55rem 0; border-bottom: 1px solid var(--bv-line);
}
.bv-infolist li:last-child { border-bottom: 0; }
.bv-infolist__label {
  display: inline-flex; align-items: center; gap: .55rem;
  font-size: .92rem; color: var(--bv-body);
}
.bv-infolist__label svg { width: 17px; height: 17px; flex: none; color: var(--bv-navy); }
.bv-infolist__value {
  font-family: var(--bv-font-head); font-weight: 700; font-size: .98rem;
  color: var(--bv-navy); text-align: right; white-space: nowrap;
}

.bv-results { list-style: none; margin: 0 0 1.1rem; padding: 0; }
.bv-results li {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .5rem;
  padding: .5rem 0; border-bottom: 1px solid var(--bv-line);
  font-size: .92rem;
}
.bv-results li:last-child { border-bottom: 0; }
.bv-results__team { color: var(--bv-body); }
.bv-results__team:last-child { text-align: right; }
.bv-results__team.is-winner { color: var(--bv-orange); font-weight: 700; }
.bv-results__score {
  font-family: var(--bv-font-head); font-weight: 700; font-size: 1rem;
  color: var(--bv-navy); white-space: nowrap; padding: 0 .5rem;
}

.bv-btn--block {
  width: 100%; justify-content: space-between;
  font-size: .86rem; letter-spacing: .06em; padding: .85rem 1.1rem;
}

/* =========================================================
   Competitiepagina
   ========================================================= */

/* Vier kenmerken naast elkaar, gescheiden door dunne lijnen. */
.bv-facts-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bv-fact { display: flex; gap: .9rem; align-items: flex-start; padding: 0 clamp(14px, 1.8vw, 26px); }
.bv-fact:first-child { padding-left: 0; }
.bv-fact:last-child { padding-right: 0; }
.bv-fact + .bv-fact { border-left: 1px solid var(--bv-line); }
.bv-fact__icon {
  flex: none; width: 46px; height: 46px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-fact__icon svg { width: 22px; height: 22px; }
.bv-fact h2 {
  font-size: .88rem; text-transform: uppercase; letter-spacing: .1em;
  margin: .3rem 0 .4rem;
}
.bv-fact p { font-size: .85rem; line-height: 1.6; margin: 0; }

.bv-noticebar--white { background: #fff; box-shadow: var(--bv-shadow); }

.bv-comp-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(20px, 2.4vw, 30px); align-items: start;
}
.bv-comp-side { display: grid; gap: 1.2rem; position: sticky; top: calc(var(--bv-header-h) + 20px); }
.bv-comp-main__btn { margin-top: 1.4rem; }
.bv-comp-main .bv-table-wrap { border: 0; }

/* Compacte stand: past in een smallere kolom, zonder gemarkeerde koploper. */
.bv-table.bv-standings--compact { min-width: 560px; }
.bv-standings--compact thead th { font-size: .7rem; letter-spacing: .06em; padding: .75rem .5rem; }
.bv-standings--compact td { padding: .7rem .5rem; font-size: .88rem; }
.bv-standings--compact td.is-pos { width: 44px; }
.bv-standings--compact tr.is-leader { background: transparent; }
.bv-standings--compact tr.is-leader:hover { background: var(--bv-bg-alt); }
.bv-standings--compact tr.is-leader td.is-team,
.bv-standings--compact tr.is-leader td.is-points { color: var(--bv-navy); }

.bv-quicklinks { list-style: none; margin: 0; padding: 0; }
.bv-quicklinks li { border-bottom: 1px solid var(--bv-line); }
.bv-quicklinks li:last-child { border-bottom: 0; }
.bv-quicklinks a {
  display: flex; align-items: center; justify-content: space-between;
  padding: .7rem 0; font-size: .93rem; color: var(--bv-navy);
}
.bv-quicklinks a::after {
  content: ""; flex: none;
  width: 7px; height: 7px; margin-right: .25rem;
  border-right: 2px solid var(--bv-muted); border-bottom: 2px solid var(--bv-muted);
  transform: rotate(-45deg); transition: border-color .18s ease, transform .18s ease;
}
.bv-quicklinks a:hover { color: var(--bv-orange); }
.bv-quicklinks a:hover::after { border-color: var(--bv-orange); transform: rotate(-45deg) translate(2px, -2px); }

/* Oproepblok met een foto die naar het marineblauw vervaagt. */
.bv-cta__box--wide { position: relative; overflow: hidden; }
.bv-cta__photo {
  position: absolute; top: 0; right: 0; bottom: 0; width: 46%;
  background-size: cover; background-position: center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 45%);
  mask-image: linear-gradient(90deg, transparent, #000 45%);
  opacity: .5; pointer-events: none;
}
.bv-cta__box--wide > *:not(.bv-cta__photo) { position: relative; z-index: 1; }

/* =========================================================
   Nieuwsoverzicht
   ========================================================= */
.bv-news-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 290px;
  gap: clamp(22px, 2.6vw, 34px); align-items: start;
}
.bv-news-side { display: grid; gap: 1.2rem; }

.bv-newsbar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.5rem;
}
.bv-pills { display: flex; flex-wrap: wrap; gap: .6rem; }
.bv-pill {
  display: inline-flex; align-items: center;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .85rem;
  text-transform: uppercase; letter-spacing: .1em;
  padding: .65rem 1.15rem; border-radius: var(--bv-radius);
  background: #fff; color: var(--bv-navy); border: 1px solid var(--bv-line);
  transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.bv-pill:hover { border-color: var(--bv-orange); color: var(--bv-orange); }
.bv-pill.is-active { background: var(--bv-orange); border-color: var(--bv-orange); color: #fff; }

.bv-newssearch { position: relative; }
.bv-newssearch input {
  font: inherit; font-size: .92rem; color: var(--bv-ink);
  background: #fff; border: 1px solid var(--bv-line); border-radius: var(--bv-radius);
  padding: .7rem 2.8rem .7rem 1rem; min-width: 240px;
}
.bv-newssearch input:focus {
  outline: none; border-color: var(--bv-orange);
  box-shadow: 0 0 0 3px rgba(232,100,26,.14);
}
.bv-newssearch button {
  position: absolute; right: .3rem; top: 50%; transform: translateY(-50%);
  background: transparent; border: 0; cursor: pointer;
  padding: .5rem; color: var(--bv-muted); line-height: 0;
}
.bv-newssearch button:hover { color: var(--bv-orange); }
.bv-newssearch svg { width: 18px; height: 18px; }

/* Berichtkaarten */
.bv-newsgrid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: clamp(18px, 2vw, 26px); }
.bv-news {
  background: #fff; border-radius: var(--bv-radius); overflow: hidden;
  box-shadow: var(--bv-shadow); display: flex; flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.bv-news:hover { transform: translateY(-4px); box-shadow: var(--bv-shadow-md); }
.bv-news__thumb { display: block; aspect-ratio: 3/2; overflow: hidden; background: var(--bv-navy); }
.bv-news__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bv-news:hover .bv-news__thumb img { transform: scale(1.05); }
.bv-news__placeholder { display: grid; place-items: center; height: 100%; color: rgba(255,255,255,.3); }
.bv-news__placeholder svg { width: 46px; height: 46px; }

.bv-news__body { padding: 1rem 1.15rem 1.25rem; flex: 1; display: flex; flex-direction: column; }
.bv-news__meta {
  display: flex; align-items: center; justify-content: space-between; gap: .6rem;
  margin-bottom: .75rem;
}
.bv-badge {
  display: inline-flex; align-items: center;
  background: var(--bv-orange); color: #fff;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .7rem;
  text-transform: uppercase; letter-spacing: .1em;
  padding: .3rem .55rem; border-radius: 4px;
}
.bv-badge:hover { background: var(--bv-orange-dark); color: #fff; }
.bv-news__date {
  display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap;
  font-size: .78rem; color: var(--bv-muted);
}
.bv-news__date svg { width: 14px; height: 14px; }

.bv-news__title { font-size: 1.05rem; margin: 0 0 .5rem; line-height: 1.25; }
.bv-news__title a { color: var(--bv-navy); }
.bv-news__title a:hover { color: var(--bv-orange); }
.bv-news__excerpt { font-size: .88rem; line-height: 1.6; margin: 0 0 1rem; flex: 1; }
.bv-news__more {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .82rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--bv-orange);
}
.bv-news__more svg { width: 16px; height: 16px; transition: transform .18s ease; }
.bv-news__more:hover svg { transform: translateX(4px); }

.bv-loadmore { display: flex; justify-content: center; margin-top: 1.8rem; }

/* Zijkaarten */
/* Let op: de basisregels van .bv-panel staan verderop in dit bestand (bij de
   contactpagina). Modifiers hierboven hebben daarom een verdubbelde klasse
   nodig, anders wint de basis op bronvolgorde. */
.bv-panel.bv-panel--navy { background: var(--bv-navy); box-shadow: var(--bv-shadow-md); }
.bv-panel--navy .bv-panel__title { color: #fff; }
.bv-panel__text { font-size: .9rem; }
.bv-panel__link {
  display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .8rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--bv-orange);
}
.bv-panel__link svg { width: 15px; height: 15px; }

.bv-catlist { list-style: none; margin: 0; padding: 0; }
.bv-catlist li {
  display: flex; align-items: center; justify-content: space-between; gap: .8rem;
  padding: .5rem 0; border-bottom: 1px solid rgba(255,255,255,.12);
}
.bv-catlist li:last-child { border-bottom: 0; }
.bv-catlist a { color: rgba(255,255,255,.85); font-size: .92rem; }
.bv-catlist a:hover, .bv-catlist li.is-active a { color: var(--bv-orange); }
.bv-count {
  min-width: 30px; text-align: center;
  background: rgba(255,255,255,.12); color: #fff;
  border-radius: 999px; padding: .12rem .5rem;
  font-size: .78rem; font-weight: 700;
}
.bv-catlist li.is-active .bv-count { background: var(--bv-orange); }

.bv-recent { list-style: none; margin: 0; padding: 0; }
.bv-recent li { display: flex; gap: .8rem; padding: .7rem 0; border-bottom: 1px solid var(--bv-line); }
.bv-recent li:first-child { padding-top: 0; }
.bv-recent li:last-child { border-bottom: 0; padding-bottom: 0; }
.bv-recent__thumb {
  flex: none; width: 54px; height: 54px; border-radius: var(--bv-radius);
  overflow: hidden; background: var(--bv-navy);
  display: grid; place-items: center; color: rgba(255,255,255,.35);
}
.bv-recent__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bv-recent__thumb svg { width: 24px; height: 24px; }
.bv-recent__title {
  display: block; color: var(--bv-navy); font-weight: 600;
  font-size: .88rem; line-height: 1.35;
}
.bv-recent__title:hover { color: var(--bv-orange); }
.bv-recent__date { display: block; font-size: .78rem; color: var(--bv-muted); margin-top: .2rem; }

.bv-newsletter__row { display: flex; gap: .5rem; }
.bv-newsletter input[type="email"] {
  flex: 1; min-width: 0; font: inherit; font-size: .9rem;
  border: 1px solid var(--bv-line); border-radius: var(--bv-radius);
  padding: .7rem .9rem; background: #fff; color: var(--bv-ink);
}
.bv-newsletter input[type="email"]:focus {
  outline: none; border-color: var(--bv-orange);
  box-shadow: 0 0 0 3px rgba(232,100,26,.14);
}
.bv-newsletter__go {
  flex: none; width: 46px; border: 0; cursor: pointer;
  background: var(--bv-orange); color: #fff;
  border-radius: var(--bv-radius); display: grid; place-items: center;
  transition: background-color .18s ease;
}
.bv-newsletter__go:hover { background: var(--bv-orange-dark); }
.bv-newsletter__go svg { width: 18px; height: 18px; }

/* =========================================================
   Uitslagen van één speelavond
   ========================================================= */
.bv-roundbar {
  display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.5rem;
}
.bv-roundpick { display: flex; align-items: flex-end; flex-wrap: wrap; gap: .7rem; }
.bv-roundpick__label {
  display: block; width: 100%; margin: 0 0 .45rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .82rem;
  text-transform: uppercase; letter-spacing: .12em; color: var(--bv-navy);
}
/* De knop is alleen nodig als JavaScript uitstaat. */
.bv-roundpick.has-autojump .bv-roundpick__go { display: none; }

.bv-select--icon .bv-select__icon {
  position: absolute; left: .9rem; top: 50%; margin-top: -9px;
  color: var(--bv-orange); pointer-events: none;
}
.bv-select--icon .bv-select__icon svg { width: 18px; height: 18px; }
.bv-select--icon select { padding-left: 2.8rem; min-width: 320px; }

.bv-btn--lead { flex-direction: row; }

.bv-results-layout {
  display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 30px); align-items: start;
}

.bv-card__head--split { justify-content: space-between; }
.bv-card__head--split > span:first-child { display: inline-flex; align-items: center; gap: .7rem; }
.bv-card__cols {
  display: inline-flex; gap: 1.4rem;
  font-size: .74rem; letter-spacing: .1em; color: rgba(255,255,255,.72);
}
.bv-card__cols span { width: 58px; text-align: right; }

.bv-matchlist { list-style: none; margin: 0; padding: 0; background: #fff; }
.bv-matchlist li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) 58px;
  align-items: center; gap: 1rem;
  padding: .85rem 1.25rem; border-bottom: 1px solid var(--bv-line);
}
.bv-matchlist li:last-child { border-bottom: 0; }

.bv-matchlist__team {
  display: inline-flex; align-items: center; gap: .7rem;
  font-weight: 600; color: var(--bv-navy); font-size: .95rem;
}
.bv-matchlist__team--away { justify-content: flex-start; }
.bv-matchlist__badge {
  flex: none; width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-matchlist__badge.is-winner { background: var(--bv-orange); }
.bv-matchlist__badge svg { width: 17px; height: 17px; }

.bv-matchlist__score {
  display: inline-flex; align-items: center; gap: .7rem; white-space: nowrap;
  font-family: var(--bv-font-head);
}
.bv-matchlist__score strong { font-size: 1.35rem; font-weight: 700; color: var(--bv-navy); }
.bv-matchlist__score strong.is-winner { color: var(--bv-orange); }
.bv-matchlist__score em { font-style: normal; color: var(--bv-muted); }

.bv-matchlist__points {
  text-align: right; white-space: nowrap;
  font-family: var(--bv-font-head); font-weight: 700; font-size: 1.05rem;
  color: var(--bv-orange);
}

.bv-matchnote {
  display: flex; gap: .8rem; align-items: flex-start;
  background: var(--bv-bg-alt); padding: 1rem 1.25rem;
}
.bv-matchnote__icon { color: var(--bv-muted); flex: none; margin-top: .1rem; }
.bv-matchnote__icon svg { width: 18px; height: 18px; }
.bv-matchnote strong {
  display: block; color: var(--bv-navy);
  font-family: var(--bv-font-head); font-size: .92rem;
  text-transform: uppercase; letter-spacing: .08em;
}
.bv-matchnote span { font-size: .88rem; color: var(--bv-body); }

/* Compacte stand naast de uitslagen */
.bv-table-wrap--flush { border: 0; border-radius: 0; background: #fff; }
/* Extra klasse voor de specificiteit: .bv-table zet verderop min-width 620px. */
.bv-table.bv-ministand { min-width: 0; }
.bv-ministand thead th { background: var(--bv-bg-alt); color: var(--bv-navy); font-size: .74rem; padding: .6rem .7rem; }
.bv-ministand td { padding: .6rem .7rem; font-size: .88rem; }
.bv-ministand th.is-num, .bv-ministand td.is-num { text-align: center; }
.bv-ministand .is-pos { width: 46px; text-align: center; font-weight: 700; color: var(--bv-navy); }
.bv-ministand .is-team { color: var(--bv-navy); font-weight: 600; white-space: nowrap; }
.bv-ministand .is-points { font-weight: 700; color: var(--bv-navy); }
.bv-table.bv-ministand tbody tr:nth-child(even) { background: #FAFBFD; }
.bv-ministand tr.is-top .is-pos { color: var(--bv-orange); }

.bv-noticebar--navy { background: var(--bv-navy); }
.bv-noticebar--navy h2 { color: #fff; }
.bv-noticebar--navy p { color: rgba(255,255,255,.78); }
.bv-noticebar__icon--ghost { background: rgba(255,255,255,.12); color: #fff; }

/* =========================================================
   Speeldata-archief
   ========================================================= */
.bv-pagehead__title--rule { position: relative; padding-bottom: .9rem; }
.bv-pagehead__title--rule::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 56px; height: 3px; background: var(--bv-orange);
}

.bv-schedule-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 300px;
  gap: clamp(20px, 2.6vw, 32px); align-items: start;
}
.bv-schedule-main .bv-table-wrap { box-shadow: var(--bv-shadow); border-color: transparent; }

.bv-schedule { min-width: 720px; }
.bv-schedule thead th { padding: 1rem .95rem; font-size: .82rem; letter-spacing: .09em; }
.bv-schedule thead th span { display: inline-flex; align-items: center; gap: .5rem; }
.bv-schedule thead svg { width: 16px; height: 16px; color: var(--bv-orange); }
.bv-schedule td { padding: .95rem; font-size: .93rem; }
.bv-table.bv-schedule tbody tr:nth-child(even) { background: #FAFBFD; }
.bv-schedule tbody tr:hover { background: var(--bv-bg-alt); }
.bv-schedule .is-round a { color: var(--bv-orange); font-weight: 700; }
.bv-schedule .is-round a:hover { color: var(--bv-orange-dark); }
.bv-schedule .is-date { color: var(--bv-navy); font-weight: 600; }
.bv-schedule .is-strong { color: var(--bv-navy); font-weight: 700; }
.bv-schedule .is-go { width: 46px; text-align: right; }
.bv-schedule .is-go a { display: inline-flex; color: var(--bv-muted); }
.bv-schedule .is-go svg { width: 18px; height: 18px; }
.bv-schedule tbody tr:hover .is-go a { color: var(--bv-orange); }

/* Feitenlijst in de zijkaart */
.bv-facts { list-style: none; margin: 0 0 1.3rem; padding: 0; }
.bv-facts li { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: 1.15rem; }
.bv-facts li:last-child { margin-bottom: 0; }
.bv-facts__icon { color: var(--bv-orange); flex: none; margin-top: .1rem; }
.bv-facts__icon svg { width: 18px; height: 18px; }
.bv-facts strong {
  display: block; color: var(--bv-navy);
  font-family: var(--bv-font-head); font-size: 1rem; letter-spacing: .02em;
}
.bv-facts span { font-size: .9rem; line-height: 1.55; color: var(--bv-body); }

/* Twee balken onder het schema */
.bv-noticebars { display: grid; gap: 1rem; }
.bv-noticebar {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(16px, 2vw, 28px); align-items: center;
  border-radius: var(--bv-radius-lg);
  padding: clamp(18px, 2.2vw, 26px) clamp(20px, 2.4vw, 30px);
}
.bv-noticebar--blue { background: #EAF0F8; }
.bv-noticebar--peach { background: #FDEEE4; }
.bv-noticebar__icon {
  flex: none; width: 58px; height: 58px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-noticebar__icon--orange { background: var(--bv-orange); }
/* Wit vlak met een oranje icoon: rustiger in een lopende tekst. */
.bv-noticebar__icon--soft { background: #fff; color: var(--bv-orange); border-radius: 14px; }
.bv-noticebar__icon svg { width: 26px; height: 26px; }
.bv-noticebar__body h2 {
  font-size: 1.05rem; text-transform: uppercase; letter-spacing: .08em; margin-bottom: .35rem;
}
.bv-noticebar__body p { margin: 0; font-size: .9rem; line-height: 1.6; }
.bv-noticebar .bv-btn { white-space: nowrap; }

.bv-btn--outline-navy { background: #fff; color: var(--bv-navy); border-color: var(--bv-navy); }
.bv-btn--outline-navy:hover { background: var(--bv-navy); color: #fff; transform: translateY(-2px); }

/* =========================================================
   Contactpagina
   ========================================================= */

/* Contactgegevens in de paginakop */
.bv-headcontacts {
  list-style: none; margin: 1.2rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .8rem clamp(24px, 4vw, 56px);
}
.bv-headcontacts li { display: flex; align-items: flex-start; gap: .7rem; }
.bv-headcontacts__icon { color: var(--bv-orange); flex: none; margin-top: .15rem; }
.bv-headcontacts__icon svg { width: 20px; height: 20px; }
.bv-headcontacts a, .bv-headcontacts strong {
  display: block; color: #fff; font-weight: 700; font-size: .98rem;
}
.bv-headcontacts a:hover { color: var(--bv-orange); }
.bv-headcontacts small { display: block; color: rgba(255,255,255,.6); font-size: .82rem; }

/* Drie kolommen: formulier, snel contact, langskomen */
.bv-contact-layout {
  display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr) minmax(0, .85fr);
  gap: clamp(20px, 2.4vw, 30px); align-items: start;
}

.bv-panel {
  background: #fff; border-radius: var(--bv-radius);
  padding: clamp(22px, 2.6vw, 32px);
  box-shadow: var(--bv-shadow);
}
/* Iets grijzer dan de sectie eronder, met een randje zodat de kaart ook op een
   grijze achtergrond herkenbaar blijft. */
.bv-panel--muted { background: #EDF1F7; border: 1px solid var(--bv-line); box-shadow: none; }
.bv-panel__title {
  position: relative; padding-bottom: .9rem; margin-bottom: 1.5rem;
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
  text-transform: uppercase; letter-spacing: .06em;
}
.bv-panel__title::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--bv-orange);
}

/* Formulier */
.bv-form__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bv-field { position: relative; margin: 0 0 .9rem; }
.bv-field__icon {
  position: absolute; left: .95rem; top: .95rem;
  color: var(--bv-muted); pointer-events: none;
}
.bv-field__icon svg { width: 18px; height: 18px; }
.bv-field--area .bv-field__icon { top: .95rem; }

.bv-field input, .bv-field textarea {
  width: 100%; font: inherit; font-size: .95rem; color: var(--bv-ink);
  background: #fff; border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius);
  padding: .85rem 1rem .85rem 2.9rem;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.bv-field textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.bv-field input::placeholder, .bv-field textarea::placeholder { color: var(--bv-muted); }
.bv-field input:focus, .bv-field textarea:focus {
  outline: none; border-color: var(--bv-orange);
  box-shadow: 0 0 0 3px rgba(232,100,26,.14);
}

.bv-btn--full { width: 100%; justify-content: center; margin-top: .4rem; }

.bv-notice {
  border-radius: var(--bv-radius); padding: .85rem 1rem;
  font-size: .92rem; margin-bottom: 1.2rem;
}
.bv-notice--ok { background: #E9F7EF; color: #1D6B3F; border: 1px solid #BFE5CE; }
.bv-notice--error { background: #FDECEA; color: #96261B; border: 1px solid #F5C6C0; }

/* Snel contact */
.bv-quick { list-style: none; margin: 0; padding: 0; }
.bv-quick li { display: flex; gap: .85rem; align-items: flex-start; margin-bottom: 1.3rem; }
.bv-quick li:last-child { margin-bottom: 0; }
.bv-quick__icon { color: var(--bv-orange); flex: none; margin-top: .15rem; }
.bv-quick__icon svg { width: 19px; height: 19px; }
.bv-quick strong {
  display: block; color: var(--bv-navy);
  font-family: var(--bv-font-head); font-size: 1rem; letter-spacing: .02em;
}
.bv-quick a, .bv-quick span { font-size: .93rem; color: var(--bv-body); }
.bv-quick a:hover { color: var(--bv-orange); }
.bv-quick small { display: block; font-size: .82rem; color: var(--bv-muted); }
.bv-quick__social { display: flex; gap: .5rem; margin-top: .35rem; }
.bv-quick__social a {
  width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
  transition: background-color .18s ease, transform .18s ease;
}
.bv-quick__social a:hover { background: var(--bv-orange); color: #fff; transform: translateY(-2px); }
.bv-quick__social svg { width: 17px; height: 17px; }

/* Liever langskomen */
.bv-visit {
  background: var(--bv-navy); border-radius: var(--bv-radius);
  overflow: hidden; box-shadow: var(--bv-shadow-md);
  display: flex; flex-direction: column;
}
.bv-visit__body { padding: clamp(20px, 2.4vw, 28px); }
.bv-visit__title {
  color: var(--bv-orange); font-size: 1.1rem;
  text-transform: uppercase; letter-spacing: .06em; margin-bottom: .9rem;
}
.bv-visit__body p { color: rgba(255,255,255,.82); font-size: .92rem; }
.bv-visit__box {
  background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--bv-radius); padding: 1rem 1.1rem; margin-top: 1.2rem;
}
.bv-visit__label {
  display: flex; align-items: center; gap: .5rem; margin: 0 0 .5rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .85rem;
  text-transform: uppercase; letter-spacing: .1em; color: #fff !important;
}
.bv-visit__label svg { width: 16px; height: 16px; color: var(--bv-orange); }
.bv-visit__days { margin: 0 0 .2rem; color: #fff !important; font-weight: 600; font-size: .95rem; }
.bv-visit__time { margin: 0; color: rgba(255,255,255,.7) !important; font-size: .9rem; }
.bv-visit__media { margin-top: auto; }
.bv-visit__media img { width: 100%; height: 190px; object-fit: cover; border-radius: 0; }

/* Veelgestelde vragen */
.bv-faq {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 3vw, 44px); align-items: start;
}
.bv-faq__item { border-bottom: 1px solid var(--bv-line); }
.bv-faq__item summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .95rem 0; font-weight: 600; font-size: .95rem; color: var(--bv-navy);
}
.bv-faq__item summary::-webkit-details-marker { display: none; }
.bv-faq__item summary::after {
  content: "+"; flex: none;
  font-family: var(--bv-font-head); font-size: 1.4rem; line-height: 1;
  color: var(--bv-orange);
}
.bv-faq__item[open] summary { color: var(--bv-orange); }
.bv-faq__item[open] summary::after { content: "\2013"; }
.bv-faq__item summary:hover { color: var(--bv-orange); }
.bv-faq__answer { padding: 0 0 1rem; }
.bv-faq__answer p { font-size: .9rem; line-height: 1.65; margin: 0 0 .6rem; }
.bv-faq__answer p:last-child { margin-bottom: 0; }
.bv-faq__media img { width: 100%; border-radius: var(--bv-radius); }

.bv-content { max-width: 780px; }
.bv-content--wide { max-width: none; }
.bv-content img { border-radius: var(--bv-radius); }

/* De uitgelichte foto krijgt een vast vak met een vaste verhouding. Zonder dat
   vak bepaalt de upload de hoogte: een staande foto duwt de tekst dan meters
   naar beneden. Nu wordt elke foto bijgesneden tot dezelfde maat als op de
   nieuwskaarten, zodat de artikelen er onderling gelijk uitzien. */
.bv-post__media {
  margin: 0 0 1.6rem;
  aspect-ratio: 3 / 2; overflow: hidden;
  border-radius: var(--bv-radius); background: var(--bv-navy);
}
.bv-post__media img {
  width: 100%; height: 100%;
  object-fit: cover; object-position: center;
  border-radius: 0; display: block;
}
.bv-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.bv-layout--full { grid-template-columns: minmax(0,1fr); }

/* Dezelfde tussenruimte als de zijbalken op de andere pagina's, die elk hun
   eigen wrapper met grid en gap hadden. Zonder dit plakken de kaarten in de
   zijbalk van een nieuwsartikel en een toernooi tegen elkaar aan. */
.bv-sidebar { display: grid; gap: 1.2rem; align-content: start; }
.bv-sidebar .widget {
  background: #fff; border: 1px solid var(--bv-line); border-radius: var(--bv-radius);
  padding: 1.4rem; margin-bottom: 0;
}
.bv-sidebar .widget-title { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .1em; margin-bottom: .9rem; }
.bv-sidebar ul { list-style: none; padding: 0; margin: 0; }
.bv-sidebar li { padding: .4rem 0; border-bottom: 1px solid var(--bv-line); }
.bv-sidebar li:last-child { border-bottom: 0; }

.bv-entry-meta { color: var(--bv-muted); font-size: .9rem; margin-bottom: 1.5rem; }
.bv-entry-meta span + span::before { content: "\2022"; margin: 0 .5rem; }

.bv-pagination { margin-top: 2.6rem; display: flex; justify-content: center; }
.bv-pagination .page-numbers {
  display: inline-grid; place-items: center; min-width: 42px; height: 42px; padding: 0 .6rem;
  border-radius: var(--bv-radius); border: 1px solid var(--bv-line);
  margin: 0 .25rem; color: var(--bv-navy); font-family: var(--bv-font-head); font-weight: 700;
}
.bv-pagination .page-numbers.current, .bv-pagination .page-numbers:hover { background: var(--bv-orange); border-color: var(--bv-orange); color: #fff; }

.bv-table-wrap { overflow-x: auto; border: 1px solid var(--bv-line); border-radius: var(--bv-radius); background: #fff; }
.bv-table { min-width: 620px; margin: 0; }
.bv-table thead th { background: var(--bv-navy); color: #fff; white-space: nowrap; }
.bv-table tbody tr:nth-child(even) { background: var(--bv-bg-alt); }
.bv-table td:first-child { font-weight: 700; color: var(--bv-navy); }

.bv-404 { text-align: center; padding: clamp(60px, 9vw, 120px) 0; }
.bv-404__code { font-family: var(--bv-font-head); font-size: clamp(5rem, 16vw, 11rem); line-height: .9; color: var(--bv-orange); margin: 0; }

.alignleft { float: left; margin: .4rem 1.6rem 1rem 0; }
.alignright { float: right; margin: .4rem 0 1rem 1.6rem; }
.aligncenter { margin-inline: auto; }
.alignwide { max-width: 1100px; margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption-text, .wp-element-caption { font-size: .85rem; color: var(--bv-muted); text-align: center; margin-top: .5rem; }
.sticky .bv-news__title::after { content: " \2605"; color: var(--bv-orange); }

/* =========================================================
   Reglementpagina
   ========================================================= */

/* Drie kenmerken in plaats van vier; de smallere schermen worden verderop
   in de responsive-sectie geregeld, die na dit blok staat en dus wint. */
.bv-facts-row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Inhoudsopgave: elke regel is een hoofdstuk dat opengeklapt kan worden. */
.bv-toc__intro { margin-bottom: 1.4rem; }
.bv-toc { display: grid; gap: .7rem; }
.bv-toc__item {
  background: var(--bv-bg-alt);
  border: 1px solid var(--bv-line); border-radius: 10px;
  transition: border-color .18s ease, background .18s ease;
}
.bv-toc__item:hover { border-color: var(--bv-orange); }
.bv-toc__item[open] { background: #fff; border-color: var(--bv-orange); }
.bv-toc__head {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; gap: .9rem;
  padding: .95rem 1.1rem;
}
.bv-toc__head::-webkit-details-marker { display: none; }
/* Een hoofdstuk zonder verdere tekst klapt nergens naartoe open. */
.bv-toc__item--flat .bv-toc__head { cursor: default; }
.bv-toc__num {
  flex: none; width: 26px; height: 26px; border-radius: 6px;
  display: grid; place-items: center;
  background: var(--bv-orange); color: #fff;
  font-family: var(--bv-font-head); font-size: .95rem; line-height: 1;
}
.bv-toc__label { flex: 1 1 auto; min-width: 0; }
.bv-toc__label strong { display: block; font-size: .95rem; color: var(--bv-navy); }
.bv-toc__label span {
  display: block; margin-top: .18rem;
  font-size: .82rem; line-height: 1.5; color: var(--bv-muted);
}
.bv-toc__chev {
  flex: none; display: grid; place-items: center; color: var(--bv-muted);
  transition: transform .2s ease, color .18s ease;
}
.bv-toc__chev svg { width: 18px; height: 18px; }
.bv-toc__item[open] .bv-toc__chev { transform: rotate(180deg); color: var(--bv-orange); }
/* Inspringen tot onder de titel, dus voorbij het nummerblokje en de tussenruimte. */
.bv-toc__body { padding: 0 1.1rem 1.1rem calc(2rem + 26px); }
.bv-toc__body > *:first-child { margin-top: 0; }
.bv-toc__body > *:last-child { margin-bottom: 0; }
.bv-toc__body p, .bv-toc__body li { font-size: .9rem; line-height: 1.7; }

/* Slotkader onder de hoofdstukken. */
.bv-notebox {
  display: flex; gap: .8rem; align-items: flex-start;
  margin-top: 1.4rem; padding: 1rem 1.15rem;
  background: var(--bv-bg-alt);
  border: 1px solid var(--bv-line); border-radius: 10px;
}
.bv-notebox__icon { flex: none; display: grid; place-items: center; color: var(--bv-muted); }
.bv-notebox__icon svg { width: 20px; height: 20px; }
.bv-notebox p { margin: 0; font-size: .86rem; line-height: 1.65; color: var(--bv-muted); }

/* Snelle links op een marineblauwe kaart. */
.bv-quicklinks--light li { border-bottom-color: rgba(255, 255, 255, .16); }
.bv-quicklinks--light a { color: rgba(255, 255, 255, .86); }
.bv-quicklinks--light a::after { border-color: rgba(255, 255, 255, .5); }
.bv-quicklinks--light a:hover { color: #fff; }
.bv-quicklinks--light a:hover::after { border-color: #fff; }

/* Bestandstegel bij de download. */
.bv-filetile {
  display: inline-grid; place-items: center; gap: .12rem;
  width: 64px; height: 64px; border-radius: 10px;
  background: var(--bv-orange-soft); color: var(--bv-orange);
}
.bv-filetile svg { width: 22px; height: 22px; }
.bv-filetile em {
  font-style: normal; font-family: var(--bv-font-head);
  font-size: .7rem; letter-spacing: .08em;
}
.bv-filetile__text { margin: .9rem 0 1.1rem; font-size: .88rem; line-height: 1.6; color: var(--bv-muted); }

.bv-panel__text { margin: 0 0 1.1rem; font-size: .88rem; line-height: 1.65; color: var(--bv-muted); }


/* =========================================================
   Toernooienpagina
   ========================================================= */

/* Vier kaarten naast elkaar; de responsive-sectie hieronder stapelt ze. */
.bv-cards--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Kop van een sectie met een knop ernaast. */
.bv-sectionbar {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1rem; margin-bottom: clamp(20px, 2.4vw, 30px);
}
.bv-sectionbar__title {
  position: relative; margin: 0; padding-bottom: .8rem;
  font-size: clamp(1.2rem, 2.1vw, 1.6rem);
  text-transform: uppercase; letter-spacing: .06em;
}
.bv-sectionbar__title::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--bv-orange);
}
.bv-sectionbar__title--later { margin: clamp(32px, 3.4vw, 48px) 0 clamp(20px, 2.4vw, 30px); }
.bv-sectionbar .bv-btn { flex: none; }

/* De toernooikaart: oranje balk, foto met datumblok, twee inforegels. */
/* Twee regels ruimte, zodat een korte en een lange toernooinaam naast elkaar
   even hoog beginnen en de foto's op één lijn staan. */
.bv-tcard .bv-card__head { align-items: flex-start; line-height: 1.25; min-height: 4.45rem; }
.bv-tcard .bv-card__head svg { margin-top: .1rem; }
.bv-tcard__media { position: relative; aspect-ratio: 3 / 2; background: var(--bv-navy); }
.bv-tcard__media img {
  width: 100%; height: 100%; object-fit: cover;
  border-radius: 0; display: block;
}
/* Datumblok linksonder, half over de foto heen. */
.bv-tcard__date {
  position: absolute; left: 0; bottom: 0;
  display: grid; justify-items: center; gap: .05rem;
  padding: .5rem .75rem .55rem;
  background: var(--bv-navy); color: #fff;
  font-family: var(--bv-font-head); line-height: 1;
}
.bv-tcard__date strong { font-size: 1.5rem; font-weight: 700; }
.bv-tcard__date em { font-style: normal; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.bv-tcard__date i { font-style: normal; font-size: .72rem; color: rgba(255, 255, 255, .7); }

.bv-tcard .bv-card__body { padding: 0 1.25rem; }
.bv-tcard__meta { list-style: none; margin: 0; padding: 0; }
.bv-tcard__meta li {
  display: flex; align-items: flex-start; gap: .6rem;
  padding: .8rem 0; font-size: .84rem; line-height: 1.5; color: var(--bv-muted);
}
.bv-tcard__meta li + li { border-top: 1px solid var(--bv-line); }
.bv-tcard__meta svg { width: 16px; height: 16px; flex: none; margin-top: .12rem; color: var(--bv-navy); }

/* Afgelopen toernooien blijven leesbaar maar vragen minder aandacht. */
.bv-cards--past .bv-card { box-shadow: none; border: 1px solid var(--bv-line); }
.bv-cards--past .bv-tcard__media img { filter: saturate(.55); }

/* Kalenderblok tussen de kaarten. */
.bv-panel.bv-tpromo {
  display: flex; flex-direction: column; text-align: center;
  padding: clamp(20px, 2.2vw, 26px);
}
.bv-tpromo .bv-panel__title { margin-bottom: 1.4rem; }
/* De streep onder de kop staat elders links; hier hoort hij onder het midden. */
.bv-tpromo .bv-panel__title::after { left: 50%; transform: translateX(-50%); }
.bv-tpromo__icon {
  width: 66px; height: 66px; margin: 0 auto 1.1rem; border-radius: 50%;
  display: grid; place-items: center;
  background: #fff; color: var(--bv-navy);
}
.bv-tpromo__icon svg { width: 28px; height: 28px; }
.bv-tpromo p {
  margin: 0 0 1.3rem; font-size: .88rem; line-height: 1.6;
  color: rgba(255, 255, 255, .8);
}
.bv-tpromo .bv-btn { margin-top: auto; }

/* Balk onderaan. */
.bv-joinbar {
  display: flex; align-items: center; gap: clamp(18px, 2.4vw, 32px);
  background: #fff; border-radius: var(--bv-radius);
  padding: clamp(22px, 2.6vw, 34px);
  box-shadow: var(--bv-shadow);
}
.bv-joinbar__badge {
  flex: none; width: 84px; height: 84px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-joinbar__badge svg { width: 40px; height: 40px; }
.bv-joinbar__body { flex: 1 1 auto; min-width: 0; }
.bv-joinbar__body h2 {
  margin: 0 0 .5rem; font-size: clamp(1.15rem, 1.9vw, 1.5rem);
  text-transform: uppercase; letter-spacing: .04em;
}
.bv-joinbar__body p { margin: 0; font-size: .9rem; line-height: 1.6; color: var(--bv-muted); }
.bv-joinbar__actions {
  flex: none; display: flex; flex-direction: column; align-items: flex-end;
}
.bv-joinbar__actions .bv-checks { justify-content: flex-end; }

/* Vinkjes op een lichte achtergrond. */
.bv-checks--dark li { color: var(--bv-navy); }
.bv-checks--dark svg { color: var(--bv-navy); }

/* Kalenderweergave: per maand gegroepeerd. */
.bv-tmonths { display: grid; gap: clamp(22px, 2.6vw, 32px); }
.bv-tmonth__title {
  margin: 0 0 .9rem; font-size: 1.1rem;
  text-transform: uppercase; letter-spacing: .08em; color: var(--bv-navy);
}
.bv-tmonth__list {
  list-style: none; margin: 0; padding: 0;
  background: #fff; border-radius: var(--bv-radius);
  box-shadow: var(--bv-shadow); overflow: hidden;
}
.bv-tmonth__list li {
  display: flex; align-items: center; gap: 1.1rem;
  padding: .9rem 1.2rem;
}
.bv-tmonth__list li + li { border-top: 1px solid var(--bv-line); }
.bv-tmonth__day {
  flex: none; width: 52px; padding: .4rem 0; border-radius: 8px;
  display: grid; justify-items: center; gap: .05rem;
  background: var(--bv-navy); color: #fff;
  font-family: var(--bv-font-head); line-height: 1;
}
.bv-tmonth__day strong { font-size: 1.25rem; }
.bv-tmonth__day em { font-style: normal; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.72); }
.bv-tmonth__body { flex: 1 1 auto; min-width: 0; }
.bv-tmonth__body a { display: block; font-weight: 700; color: var(--bv-navy); }
.bv-tmonth__body a:hover { color: var(--bv-orange); }
.bv-tmonth__body span { display: block; margin-top: .15rem; font-size: .84rem; color: var(--bv-muted); }
.bv-tmonth__list .bv-card__link { flex: none; }

/* =========================================================
   Homepage
   ========================================================= */

/* --- Hero: marineblauw vlak met de foto er rechts in --- */
.bv-hero {
  position: relative; overflow: hidden;
  background: var(--bv-navy); color: #fff;
  padding: clamp(40px, 5vw, 68px) 0 clamp(28px, 3vw, 40px);
}
.bv-hero__media {
  position: absolute; top: 0; right: 0; bottom: 0; width: 62%;
  pointer-events: none;
}
.bv-hero__media img {
  width: 100%; height: 100%; object-fit: cover;
  border-radius: 0; display: block;
}
/* De foto loopt naar links weg in het blauw, zodat de tekst leesbaar blijft. */
.bv-hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14, 42, 86, .92) 34%, rgba(14, 42, 86, .35) 100%);
}
.bv-hero__inner { position: relative; z-index: 1; }
.bv-hero__text { max-width: 34rem; }

/* De handgeschreven begroeting boven de titel. */
.bv-hero__welcome {
  margin: 0 0 .1rem;
  font-family: "Caveat", "Segoe Script", "Brush Script MT", cursive;
  font-size: clamp(1.8rem, 3.2vw, 2.6rem);
  line-height: 1; color: var(--bv-orange);
}
.bv-hero__title {
  position: relative; margin: 0 0 1.5rem; padding-bottom: 1.1rem;
  color: #fff; text-transform: uppercase; letter-spacing: -.01em;
  font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.02;
}
.bv-hero__title span { display: block; }
.bv-hero__title::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 64px; height: 3px; background: var(--bv-orange);
}
.bv-hero__lead {
  font-size: 1rem; line-height: 1.65; max-width: 26rem;
  color: rgba(255, 255, 255, .82);
}
.bv-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1.6rem; }

/* --- Balk met de vier kenmerken, onderin de hero --- */
.bv-hero__foot { position: relative; z-index: 1; margin-top: clamp(28px, 4vw, 48px); }
.bv-herobar {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--bv-radius);
  padding: clamp(16px, 1.8vw, 22px) 0;
}
.bv-herobar__item {
  display: flex; gap: .8rem; align-items: flex-start;
  padding: 0 clamp(14px, 1.8vw, 24px);
}
.bv-herobar__item + .bv-herobar__item { border-left: 1px solid rgba(255, 255, 255, .14); }
.bv-herobar__icon {
  flex: none; width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: rgba(255, 255, 255, .1); color: #fff;
}
.bv-herobar__icon svg { width: 20px; height: 20px; }
.bv-herobar strong {
  display: block; margin-bottom: .3rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .88rem;
  text-transform: uppercase; letter-spacing: .08em; color: #fff;
}
.bv-herobar span { font-size: .8rem; line-height: 1.5; color: rgba(255, 255, 255, .72); }

/* --- Sectiekop met een link ernaast --- */
.bv-sectionbar--home { align-items: flex-end; }
.bv-sectionbar--home .bv-eyebrow { margin: 0 0 .2rem; font-size: .82rem; }
/* Zonder oranje streepje: hier staat de eyebrow er al boven. */
.bv-sectionbar__title--bare { padding-bottom: 0; }
.bv-sectionbar__title--bare::after { display: none; }

/* --- Schuivende rij toernooikaarten --- */
.bv-carousel { position: relative; }
.bv-carousel__track {
  display: grid; grid-auto-flow: column;
  grid-auto-columns: calc((100% - 3 * clamp(18px, 2.2vw, 28px)) / 4);
  gap: clamp(18px, 2.2vw, 28px);
  overflow-x: auto; scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  /* Ruimte voor de schaduw van de kaarten, anders wordt die afgeknipt. */
  padding: 6px 4px 10px;
  margin: -6px -4px -10px;
  scrollbar-width: none;
}
.bv-carousel__track::-webkit-scrollbar { display: none; }
.bv-carousel__track > * { scroll-snap-align: start; }
.bv-carousel__nav {
  position: absolute; top: 50%; z-index: 2;
  width: 40px; height: 40px; margin-top: -20px; padding: 0;
  border: 1px solid var(--bv-line); border-radius: 50%;
  background: #fff; color: var(--bv-navy); cursor: pointer;
  display: grid; place-items: center;
  box-shadow: var(--bv-shadow);
  transition: color .18s ease, border-color .18s ease, transform .18s ease;
}
.bv-carousel__nav:hover { color: var(--bv-orange); border-color: var(--bv-orange); transform: scale(1.06); }
.bv-carousel__nav svg { width: 18px; height: 18px; }
.bv-carousel__nav--prev { left: calc(-1 * clamp(14px, 2.6vw, 48px)); }
.bv-carousel__nav--next { right: calc(-1 * clamp(14px, 2.6vw, 48px)); }
.bv-carousel__nav[hidden] { display: none; }

/* Compacte toernooikaart in die rij. */
.bv-minicard .bv-card__head {
  align-items: flex-start; line-height: 1.25; min-height: 3.9rem;
  font-size: .92rem; padding: .8rem 1rem;
}
.bv-minicard .bv-card__head svg { width: 18px; height: 18px; margin-top: .05rem; }
.bv-minicard .bv-card__body { padding: 1rem 1rem .2rem; }
.bv-minicard .bv-card__foot { padding: 0 1rem 1rem; }
.bv-minicard .bv-card__link { font-size: .78rem; letter-spacing: .09em; }
.bv-minicard__row { display: flex; gap: .9rem; align-items: flex-start; }
.bv-minicard__date {
  flex: none; display: grid; justify-items: center; gap: .04rem;
  font-family: var(--bv-font-head); line-height: 1; color: var(--bv-navy);
}
.bv-minicard__date strong { font-size: 1.6rem; font-weight: 700; }
.bv-minicard__date em { font-style: normal; font-size: .76rem; text-transform: uppercase; letter-spacing: .08em; }
.bv-minicard__date i { font-style: normal; font-size: .72rem; color: var(--bv-muted); }
.bv-minicard__text { margin: 0; font-size: .82rem; line-height: 1.55; color: var(--bv-muted); }

/* --- Stand naast de eerstvolgende speelronde --- */
.bv-homerow {
  display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 30px); align-items: start;
}
/* Kop met een link aan de andere kant van dezelfde regel. */
.bv-panel__bar {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 1rem; margin-bottom: 1.4rem;
}
.bv-panel__bar .bv-panel__title { margin-bottom: 0; }
.bv-panel__title--bare { padding-bottom: 0; }
.bv-panel__title--bare::after { display: none; }
.bv-homerow .bv-table-wrap { border: 0; }
/* De slanke stand heeft vijf kolommen minder en past dus in een smallere
   kaart; de basisregel .bv-table { min-width } zou hem anders laten scrollen. */
.bv-table.bv-standings--slim { min-width: 0; }
.bv-homerow .bv-tablenote { margin-top: 1.1rem; }

/* --- Oproepblok zonder badge: tekst links, knop rechts --- */
.bv-cta__box--split { grid-template-columns: minmax(0, 1fr) auto; }

/* =========================================================
   Lid worden
   ========================================================= */

/* Een sectiekop die los boven een blok staat, zonder knop ernaast. */
.bv-sectionbar__title--solo { margin-bottom: clamp(22px, 2.6vw, 32px); }

/* --- Vijf redenen naast elkaar, gescheiden door dunne lijnen --- */
.bv-reasons { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.bv-reasons--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bv-reason {
  text-align: center;
  padding: 0 clamp(10px, 1.4vw, 20px);
}
.bv-reason + .bv-reason { border-left: 1px solid var(--bv-line); }
.bv-reason:first-child { padding-left: 0; }
.bv-reason:last-child { padding-right: 0; }
.bv-reason__icon {
  width: 54px; height: 54px; margin: 0 auto .9rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-reason__icon svg { width: 24px; height: 24px; }
/* Lichte schijf: voor rijen die achtergrondinformatie geven in plaats van een
   oproep, zoals de kenmerken van De Rusheuvel. */
.bv-reason__icon--soft { background: var(--bv-bg-alt); color: var(--bv-navy); }
.bv-reason h3 {
  font-size: .86rem; text-transform: uppercase; letter-spacing: .09em;
  margin: 0 0 .5rem;
}
.bv-reason p { font-size: .84rem; line-height: 1.6; margin: 0; color: var(--bv-muted); }

/* --- Vier stappen met pijlen ertussen --- */
.bv-joinsteps {
  display: grid; grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  gap: clamp(10px, 1.4vw, 18px); align-items: stretch;
}
.bv-joinsteps__arrow { display: grid; place-items: center; color: var(--bv-orange); }
.bv-joinsteps__arrow svg { width: 22px; height: 22px; }
.bv-joinstep {
  position: relative; text-align: center;
  background: #fff; border: 1px solid var(--bv-line); border-radius: 10px;
  padding: 1.6rem 1.1rem 1.4rem;
}
.bv-joinstep__number {
  position: absolute; left: -8px; top: -10px;
  width: 26px; height: 26px; border-radius: 6px;
  display: grid; place-items: center;
  background: var(--bv-orange); color: #fff;
  font-family: var(--bv-font-head); font-size: .92rem; line-height: 1;
}
.bv-joinstep__icon {
  width: 52px; height: 52px; margin: 0 auto .9rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-orange-soft); color: var(--bv-orange);
}
.bv-joinstep__icon svg { width: 24px; height: 24px; }
.bv-joinstep h3 {
  font-size: .86rem; text-transform: uppercase; letter-spacing: .09em;
  margin: 0 0 .5rem;
}
.bv-joinstep p { font-size: .83rem; line-height: 1.6; margin: 0; color: var(--bv-muted); }

/* --- Kosten naast de praktische informatie --- */
.bv-joinrow {
  display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr);
  gap: clamp(20px, 2.4vw, 30px); align-items: start;
}
.bv-panel.bv-pricecard { position: relative; overflow: hidden; }
/* De illustratie zit achter de tekst; vandaar de lage dekking en geen muisdoel. */
.bv-pricecard__media {
  position: absolute; right: clamp(-10px, -1vw, 0px); bottom: 0;
  width: clamp(200px, 38%, 340px);
  opacity: .45; pointer-events: none;
}
.bv-pricecard__media img { width: 100%; height: auto; border-radius: 0; }
.bv-pricecard > *:not(.bv-pricecard__media) { position: relative; z-index: 1; }

.bv-price { display: flex; align-items: baseline; gap: .7rem; margin: 0 0 .35rem; flex-wrap: wrap; }
.bv-price strong {
  font-family: var(--bv-font-head); font-weight: 700;
  font-size: clamp(2.1rem, 4vw, 2.9rem); line-height: 1; color: var(--bv-navy);
}
.bv-price span { font-size: .95rem; font-weight: 600; color: var(--bv-orange); }
.bv-price__season { margin: 0 0 1.3rem; font-size: .88rem; color: var(--bv-muted); }

.bv-pricelist { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.bv-pricelist li { display: flex; align-items: flex-start; gap: .6rem; font-size: .88rem; line-height: 1.55; }
.bv-pricelist svg { width: 16px; height: 16px; flex: none; margin-top: .18rem; color: var(--bv-orange); }

/* De feitenlijst op een marineblauwe kaart. */
.bv-facts--light strong { color: #fff; }
.bv-facts--light span { color: rgba(255, 255, 255, .75); }
.bv-facts--light .bv-facts__icon { color: var(--bv-orange); }

/* --- Veelgestelde vragen in twee kolommen --- */
.bv-qagrid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.2vw, 28px);
  align-items: start;
}
.bv-qacol { display: grid; gap: .7rem; align-content: start; }
.bv-qa {
  background: #fff; border: 1px solid var(--bv-line); border-radius: 10px;
  align-self: start;
  transition: border-color .18s ease;
}
.bv-qa:hover { border-color: var(--bv-orange); }
.bv-qa[open] { border-color: var(--bv-orange); }
.bv-qa summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: .9rem 1.1rem;
  font-size: .9rem; font-weight: 600; color: var(--bv-navy);
}
.bv-qa summary::-webkit-details-marker { display: none; }
.bv-qa__chev { flex: none; display: grid; place-items: center; color: var(--bv-muted); transition: transform .2s ease, color .18s ease; }
.bv-qa__chev svg { width: 18px; height: 18px; }
.bv-qa[open] .bv-qa__chev { transform: rotate(180deg); color: var(--bv-orange); }
.bv-qa__answer { padding: 0 1.1rem 1.1rem; }
.bv-qa__answer p { margin: 0 0 .6rem; font-size: .86rem; line-height: 1.65; color: var(--bv-muted); }
.bv-qa__answer p:last-child { margin-bottom: 0; }


/* =========================================================
   De Rusheuvel
   ========================================================= */

/* Kop waarvan de tekst de linkerhelft houdt, zodat de foto ernaast in beeld
   blijft. Onder 980px vult de tekst weer de hele breedte. */
/* Niet de wrap zelf smaller maken: die centreert zichzelf, waardoor de tekst
   naar het midden zou schuiven. De inhoud erbinnen krijgt de beperking. */
.bv-pagehead--half .bv-pagehead__inner > * { max-width: 48%; }

/* Deze banner draagt een regel meer dan de andere; de tekst blijft daarom
   smaller, zodat hij niet tot over de foto doorloopt. */
.bv-pagehead__intro--narrow { max-width: 30rem; }

/* Een extra regel tussen de titel en de introtekst in de paginakop. */
.bv-pagehead__sub {
  margin: 0 0 .9rem; max-width: 26rem;
  font-family: var(--bv-font-head); font-weight: 600;
  font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.35;
  color: #fff;
}

/* --- Tekst links, een rij kenmerken rechts --- */
.bv-textcols {
  display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr);
  gap: clamp(26px, 3.4vw, 52px); align-items: start;
}
.bv-textcols__text p { font-size: .93rem; line-height: 1.75; margin: 0 0 1rem; }
.bv-textcols__text p:last-child { margin-bottom: 0; }
.bv-textcols__text .bv-btn { margin-top: 1.2rem; }

.bv-story__btn { margin-top: 1.4rem; }

/* --- Balk met praktische gegevens --- */
.bv-infobar {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 2vw, 26px);
  background: var(--bv-bg-alt); border-radius: var(--bv-radius);
  padding: clamp(20px, 2.4vw, 30px) clamp(18px, 2.2vw, 28px);
}
.bv-infobar__item { display: flex; gap: .9rem; align-items: flex-start; }
.bv-infobar__item + .bv-infobar__item { border-left: 1px solid var(--bv-line); padding-left: clamp(16px, 2vw, 26px); }
.bv-infobar__icon { flex: none; color: var(--bv-navy); display: grid; place-items: center; margin-top: .1rem; }
.bv-infobar__icon svg { width: 30px; height: 30px; }
.bv-infobar h3 {
  font-size: .84rem; text-transform: uppercase; letter-spacing: .09em;
  margin: 0 0 .4rem;
}
.bv-infobar p { margin: 0 0 .6rem; font-size: .83rem; line-height: 1.6; color: var(--bv-muted); }
.bv-infobar p a { color: var(--bv-muted); }
.bv-infobar p a:hover { color: var(--bv-orange); }
.bv-infobar__link {
  display: inline-flex; align-items: center; gap: .45rem;
  font-family: var(--bv-font-head); font-weight: 700; font-size: .76rem;
  text-transform: uppercase; letter-spacing: .1em; color: var(--bv-orange);
}
.bv-infobar__link svg { width: 15px; height: 15px; transition: transform .18s ease; }
.bv-infobar__link:hover svg { transform: translateX(3px); }

/* --- Het bestuur --- */
.bv-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 1.8vw, 22px); }
.bv-boardcard {
  text-align: center; background: #fff;
  border: 1px solid var(--bv-line); border-radius: 10px;
  padding: 1.5rem 1rem 1.4rem;
}
.bv-boardcard__icon {
  width: 52px; height: 52px; margin: 0 auto .9rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-boardcard__icon svg { width: 24px; height: 24px; }
.bv-boardcard h3 {
  font-size: .82rem; text-transform: uppercase; letter-spacing: .09em;
  margin: 0 0 .35rem;
}
.bv-boardcard p { margin: 0; font-size: .84rem; color: var(--bv-muted); }

/* Oproepblok met de tekst en de knop onder elkaar. */
.bv-cta__box.bv-cta__box--stack { grid-template-columns: minmax(0, 1fr); }
.bv-cta__box--stack .bv-cta__text { max-width: 32rem; }
.bv-cta__btn { margin-top: 1.4rem; }


/* =========================================================
   Aanmeldformulier
   ========================================================= */

.bv-signup-layout {
  display: grid; grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(24px, 3vw, 44px); align-items: start;
}
.bv-signup-side { display: grid; gap: 1.2rem; position: sticky; top: calc(var(--bv-header-h) + 20px); }

.bv-signup__block + .bv-signup__block {
  margin-top: clamp(24px, 3vw, 36px);
  padding-top: clamp(24px, 3vw, 36px);
  border-top: 1px solid var(--bv-line);
}
.bv-signup__title { margin-bottom: clamp(16px, 2vw, 22px); }

/* Vier kolommen, zodat een veld een hele, een halve of een kwart regel kan
   beslaan; precies de indeling van het ontwerp. */
.bv-formgrid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.1rem clamp(14px, 1.6vw, 20px);
}
.bv-formfield--half { grid-column: span 2; }
.bv-formfield--smal { grid-column: span 1; }
.bv-formfield--breed { grid-column: 1 / -1; }

.bv-formfield__label {
  display: block; margin-bottom: .4rem;
  font-size: .84rem; font-weight: 600; color: var(--bv-navy);
}
.bv-formfield__label em { font-style: normal; color: var(--bv-orange); }

.bv-formgrid input[type="text"],
.bv-formgrid input[type="email"],
.bv-formgrid input[type="tel"],
.bv-formgrid input[type="date"],
.bv-formgrid input[type="number"],
.bv-formgrid select,
.bv-formgrid textarea {
  width: 100%; padding: .75rem .9rem;
  font: inherit; font-size: .9rem; color: var(--bv-body);
  background: #fff;
  border: 1px solid var(--bv-line); border-radius: 8px;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.bv-formgrid input:focus,
.bv-formgrid select:focus,
.bv-formgrid textarea:focus {
  outline: none; border-color: var(--bv-orange);
  box-shadow: 0 0 0 3px rgba(232, 100, 26, .14);
}
.bv-formgrid textarea { resize: vertical; min-height: 7rem; }
.bv-formgrid ::placeholder { color: var(--bv-muted); opacity: 1; }

/* Keuzelijst met een eigen pijltje, zodat hij bij de invoervelden past. */
.bv-formgrid select {
  appearance: none; -webkit-appearance: none;
  padding-right: 2.4rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A8AA3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.6 9.4 5.4 5.2 5.4-5.2'/%3E%3C/svg%3E");
  background-position: right .8rem center;
  background-size: 18px 18px;
  background-repeat: no-repeat;
}

.bv-radios { display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; padding-top: .2rem; }
.bv-radio { display: inline-flex; align-items: center; gap: .5rem; font-size: .88rem; cursor: pointer; }
.bv-radio input { width: 18px; height: 18px; accent-color: var(--bv-orange); }

.bv-check { display: flex; align-items: flex-start; gap: .6rem; font-size: .86rem; line-height: 1.6; cursor: pointer; }
.bv-check input { width: 17px; height: 17px; margin-top: .18rem; flex: none; accent-color: var(--bv-orange); }
.bv-check a { color: var(--bv-orange); text-decoration: underline; }
.bv-check em { font-style: normal; color: var(--bv-orange); }

.bv-signup__privacy { margin: clamp(22px, 2.6vw, 32px) 0 1.3rem; }
.bv-signup__submit { justify-content: flex-start; }
.bv-signup__after { margin: 1rem 0 0; font-size: .84rem; color: var(--bv-muted); }

/* Zijkaart met de pluspunten. */
.bv-perks { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.bv-perks li { display: flex; gap: .85rem; align-items: flex-start; }
.bv-perks__icon {
  flex: none; width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--bv-navy); color: #fff;
}
.bv-perks__icon svg { width: 19px; height: 19px; }
.bv-perks strong { display: block; margin-bottom: .2rem; font-size: .88rem; color: var(--bv-navy); }
.bv-perks span { font-size: .83rem; line-height: 1.55; color: var(--bv-muted); }

.bv-contactlines { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.bv-contactlines li { display: flex; align-items: center; gap: .7rem; font-size: .88rem; }
.bv-contactlines svg { width: 18px; height: 18px; flex: none; color: var(--bv-orange); }
.bv-contactlines a { color: var(--bv-navy); }
.bv-contactlines a:hover { color: var(--bv-orange); }

/* Knop onder de contributie. */
.bv-pricecard__btn { margin-top: 1.4rem; }


/* =========================================================
   Privacyverklaring
   ========================================================= */

/* Paginakop zonder foto, met een groot vervaagd symbool rechts. */
.bv-pagehead--mark { position: relative; overflow: hidden; }
.bv-pagehead--mark::after { display: none; }
.bv-pagehead__mark {
  position: absolute; right: clamp(24px, 8vw, 140px); top: 50%;
  transform: translateY(-50%);
  color: #fff; opacity: .06; pointer-events: none;
}
.bv-pagehead__mark svg { width: clamp(180px, 22vw, 300px); height: auto; }

/* Balk met de datum van de laatste wijziging. */
.bv-updated-bar {
  display: flex; gap: clamp(14px, 1.8vw, 22px); align-items: flex-start;
  background: var(--bv-bg-alt); border-radius: var(--bv-radius);
  padding: clamp(18px, 2.2vw, 26px);
  margin-bottom: clamp(26px, 3.2vw, 44px);
}
.bv-updated-bar__icon {
  flex: none; width: 56px; height: 56px; border-radius: 12px;
  display: grid; place-items: center;
  background: #fff; color: var(--bv-orange);
}
.bv-updated-bar__icon svg { width: 26px; height: 26px; }
.bv-updated-bar p { margin: 0; max-width: 46rem; font-size: .88rem; line-height: 1.65; color: var(--bv-muted); }
.bv-updated-bar__date { margin-bottom: .3rem !important; }
.bv-updated-bar__date strong { color: var(--bv-navy); font-size: .92rem; }

/* De genummerde onderdelen. */
.bv-legal__intro { margin-bottom: clamp(20px, 2.4vw, 30px); }
.bv-legal { display: grid; }
.bv-legal__item {
  display: flex; gap: clamp(16px, 2vw, 26px); align-items: flex-start;
  padding: clamp(22px, 2.6vw, 32px) 0;
}
.bv-legal__item + .bv-legal__item { border-top: 1px solid var(--bv-line); }
.bv-legal__icon {
  flex: none; width: 48px; height: 48px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--bv-orange-soft); color: var(--bv-orange);
}
.bv-legal__icon svg { width: 24px; height: 24px; }
.bv-legal__body { flex: 1 1 auto; min-width: 0; max-width: 48rem; }
.bv-legal__body h2 {
  font-size: clamp(1.05rem, 1.8vw, 1.3rem);
  text-transform: uppercase; letter-spacing: .05em;
  margin: .2rem 0 .7rem;
}
.bv-legal__body p { font-size: .9rem; line-height: 1.7; margin: 0 0 .7rem; }
.bv-legal__body > :last-child { margin-bottom: 0; }
.bv-legal__body ul { list-style: none; margin: .3rem 0 .7rem; padding: 0; }
.bv-legal__body li {
  position: relative; padding-left: 1.1rem;
  font-size: .9rem; line-height: 1.7;
}
/* Oranje bolletje in plaats van de standaard opsommingsstip. */
.bv-legal__body li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--bv-orange);
}

/* Contactgegevens onder het laatste onderdeel. */
.bv-legal__contact {
  list-style: none; margin: 1.2rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .9rem clamp(24px, 3vw, 44px);
}
.bv-legal__contact li { display: flex; gap: .6rem; align-items: flex-start; font-size: .88rem; padding-left: 0; }
.bv-legal__contact li::before { display: none; }
.bv-legal__contact svg { width: 18px; height: 18px; flex: none; margin-top: .15rem; color: var(--bv-orange); }
.bv-legal__contact a { color: var(--bv-body); }
.bv-legal__contact a:hover { color: var(--bv-orange); }

/* =========================================================
   Nieuwsartikel
   ========================================================= */

/* De banner leent de foto-rechts van de andere paginakoppen; alleen de oranje
   cirkel eronder moet weg, want die botst met de foto. */
.bv-pagehead--post::after { display: none; }
/* Het fotovlak stond op 54% breed in een balk van 350px hoog: dat is bijna
   2,5:1, terwijl de foto's 3:2 zijn. Er ging daardoor tot 39% van de foto
   verloren en wat overbleef oogde uitvergroot. Smaller en hoger houdt het
   vlak dicht bij 1,6:1, waardoor er nog maar een randje afgaat. */
.bv-pagehead--post { min-height: clamp(300px, 29vw, 430px); }
.bv-pagehead--post .bv-pagehead__media { width: 46%; }

/* Keuze in de Customizer: de foto helemaal laten zien in plaats van hem het
   vlak te laten vullen. Handig bij beeld met tekst erin, dat niet tegen een
   bijsnede kan. */
.bv-pagehead__media--fit img { object-fit: contain; object-position: center; }
.bv-pagehead__media--fit { clip-path: none; }
.bv-pagehead__media--fit::after {
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14,42,86,.72) 30%, rgba(14,42,86,0) 62%);
}
.bv-pagehead--post .bv-pagehead__title { font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.06; }
.bv-pagehead--post .bv-pagehead__intro { color: rgba(255,255,255,.82); margin: 0; max-width: 34rem; font-size: .95rem; line-height: 1.75; }

/* Datum en categorie boven de titel. Dubbele klasse: .bv-pagehead p is
   specifieker dan een losse klasse en zou anders de marge terugzetten. */
.bv-pagehead .bv-postmeta {
  display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1.5rem;
  margin: 0 0 .9rem;
  font-family: var(--bv-font-head); font-weight: 600;
  font-size: .8rem; text-transform: uppercase; letter-spacing: .1em;
  color: rgba(255,255,255,.88);
}
.bv-postmeta__item { display: inline-flex; align-items: center; gap: .45rem; }
.bv-postmeta svg { width: 15px; height: 15px; color: var(--bv-orange); flex: none; }
.bv-postmeta a { color: inherit; }
.bv-postmeta a:hover { color: var(--bv-orange); }

/* Kort oranje streepje onder een kop. */
.bv-rule { display: block; width: 56px; height: 3px; background: var(--bv-orange); margin: 1.1rem 0; }

/* De tekst van het artikel. */
.bv-article > :first-child { margin-top: 0; }
.bv-article > :last-child { margin-bottom: 0; }
.bv-article h2 {
  position: relative; padding-bottom: .7rem; margin: 2.4rem 0 1.1rem;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  text-transform: uppercase; letter-spacing: .04em; color: var(--bv-navy);
}
.bv-article h2::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--bv-orange);
}
.bv-article h3 { font-size: 1.05rem; margin: 1.8rem 0 .6rem; }
.bv-article p { font-size: .95rem; line-height: 1.8; margin: 0 0 1.1rem; }
.bv-article figure { margin: 1.8rem 0; }
.bv-article figcaption { font-size: .82rem; color: var(--bv-muted); margin-top: .5rem; }

/* Zijbalk: meer nieuws. */
.bv-morenews { list-style: none; margin: 0; padding: 0; }
.bv-morenews__item {
  display: grid; grid-template-columns: 84px minmax(0, 1fr) auto;
  column-gap: .9rem; align-items: center;
  padding: 1.1rem 0;
}
.bv-morenews__item:first-child { padding-top: 0; }
.bv-morenews__item:last-child { padding-bottom: 0; }
.bv-morenews__item + .bv-morenews__item { border-top: 1px solid var(--bv-line); }
.bv-morenews__thumb {
  width: 84px; height: 84px; border-radius: var(--bv-radius); overflow: hidden;
  background: var(--bv-navy); display: grid; place-items: center;
  color: rgba(255,255,255,.35);
}
.bv-morenews__thumb img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.bv-morenews__thumb svg { width: 26px; height: 26px; }
.bv-morenews__date {
  display: block; margin-bottom: .3rem;
  font-family: var(--bv-font-head); font-weight: 600;
  font-size: .72rem; text-transform: uppercase; letter-spacing: .1em;
  color: var(--bv-muted);
}
.bv-morenews__title { display: block; color: var(--bv-navy); font-weight: 700; font-size: .92rem; line-height: 1.35; }
.bv-morenews__title:hover { color: var(--bv-orange); }
.bv-morenews__go { align-self: end; display: grid; place-items: center; color: var(--bv-orange); padding-bottom: .1rem; }
.bv-morenews__go svg { width: 18px; height: 18px; transition: transform .18s ease; }
.bv-morenews__item:hover .bv-morenews__go svg { transform: translateX(4px); }

/* Zijbalk: het oproepblok. */
.bv-sidecta {
  position: relative; overflow: hidden;
  background: var(--bv-navy); color: #fff;
  border-radius: var(--bv-radius); box-shadow: var(--bv-shadow-md);
}
/* De foto begint op een derde en loopt naar links weg in het blauw, zodat de
   tekst er altijd leesbaar overheen staat. */
.bv-sidecta__media { position: absolute; inset: 0 0 0 28%; }
.bv-sidecta__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.bv-sidecta__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14,42,86,.88) 40%, rgba(14,42,86,.42) 100%);
}
.bv-sidecta__body { position: relative; z-index: 1; padding: clamp(22px, 2.6vw, 30px); }
.bv-sidecta__title { color: #fff; margin: 0; text-transform: uppercase; letter-spacing: .06em; font-size: clamp(1.1rem, 1.8vw, 1.3rem); }
.bv-sidecta .bv-rule { margin: .85rem 0 1rem; }
.bv-sidecta__body p { color: rgba(255,255,255,.82); font-size: .9rem; line-height: 1.65; margin: 0 0 1.3rem; max-width: 17rem; }

/* =========================================================
   Coming soon
   ========================================================= */

/* Deze pagina staat los: geen header, geen footer. De hoogte van het scherm
   vullen zorgt dat er geen streep wit onder de banner overblijft als er weinig
   op staat. */
.bv-cs { display: flex; flex-direction: column; }

/* Een vaste hoogte in plaats van meegroeien met het venster: op een hoog
   scherm zou de banner anders een half scherm leeg blauw worden. */
.bv-cs__hero {
  position: relative; overflow: hidden;
  background: var(--bv-navy); color: #fff;
  padding: clamp(44px, 6vw, 80px) 0 clamp(40px, 5vw, 64px);
  min-height: clamp(520px, 68vh, 760px);
  display: flex; align-items: center;
}
.bv-cs__hero > .bv-wrap { width: 100%; }

/* De foto loopt naar links weg in het blauw, zodat de tekst leesbaar blijft. */
.bv-cs__media { position: absolute; inset: 0 0 0 40%; z-index: 0; }
.bv-cs__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.bv-cs__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--bv-navy) 0%, rgba(14,42,86,.82) 34%, rgba(14,42,86,.2) 100%);
}

.bv-cs__inner { position: relative; z-index: 1; }
.bv-cs__inner > * { max-width: 46%; }

.bv-cs__eyebrow {
  margin: 0 0 .7rem; color: var(--bv-orange);
  font-family: var(--bv-font-head); font-weight: 700;
  font-size: .82rem; text-transform: uppercase; letter-spacing: .18em;
}
.bv-cs__title {
  margin: 0; color: #fff; text-transform: uppercase;
  font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.04;
}
.bv-cs__title span { display: block; }
.bv-cs__title .is-accent { color: var(--bv-orange); }
.bv-cs__intro { color: rgba(255,255,255,.82); margin: 0; font-size: .95rem; line-height: 1.8; }

/* Kader met de melding, met alleen een randje: rustiger dan een vlak. */
.bv-cs__note {
  display: flex; gap: 1rem; align-items: center;
  margin-top: clamp(22px, 2.6vw, 32px);
  border: 1px solid rgba(255,255,255,.28); border-radius: var(--bv-radius);
  padding: clamp(14px, 1.8vw, 20px) clamp(16px, 2vw, 24px);
}
.bv-cs__note-icon {
  flex: none; width: 46px; height: 46px; border-radius: 12px;
  display: grid; place-items: center;
  background: rgba(255,255,255,.1); color: var(--bv-orange);
}
.bv-cs__note-icon svg { width: 22px; height: 22px; }
.bv-cs__note strong {
  display: block; color: #fff;
  font-family: var(--bv-font-head); font-size: 1rem;
  text-transform: uppercase; letter-spacing: .05em;
}
.bv-cs__note span { display: block; margin-top: .2rem; font-size: .85rem; color: rgba(255,255,255,.75); }

/* Het witte kaartje onder de tekst, op de plek van de aftelklok. */
.bv-cs__badge {
  position: relative; z-index: 1;
  max-width: 520px; margin: clamp(34px, 4.5vw, 56px) auto 0;
  background: #fff; border-radius: var(--bv-radius-lg);
  box-shadow: var(--bv-shadow-md);
  padding: clamp(24px, 3vw, 36px) clamp(20px, 3vw, 40px);
  text-align: center;
}
.bv-cs__badge strong {
  display: block; color: var(--bv-navy);
  font-family: var(--bv-font-head); font-weight: 700;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem); line-height: 1;
  text-transform: uppercase; letter-spacing: .06em;
}
.bv-cs__badge span {
  display: block; margin-top: .6rem;
  font-family: var(--bv-font-head); font-weight: 600;
  font-size: .82rem; text-transform: uppercase; letter-spacing: .18em;
  color: var(--bv-orange);
}

/* --- Wat kun je verwachten? --- */
.bv-cs__more { flex: none; }
.bv-cs__h2 {
  position: relative; text-align: center;
  margin: 0 0 clamp(30px, 4vw, 48px); padding-bottom: 1rem;
  text-transform: uppercase; letter-spacing: .05em;
  font-size: clamp(1.2rem, 2.2vw, 1.6rem);
}
.bv-cs__h2::after {
  content: ""; position: absolute; left: 50%; bottom: 0;
  transform: translateX(-50%);
  width: 46px; height: 3px; background: var(--bv-orange);
}

.bv-cs__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 36px);
  margin-bottom: clamp(30px, 4vw, 52px);
}
.bv-cs__item { text-align: center; }
.bv-cs__item-icon {
  display: grid; place-items: center;
  width: 62px; height: 62px; margin: 0 auto .9rem;
  border-radius: 50%; background: var(--bv-bg-alt); color: var(--bv-navy);
}
.bv-cs__item-icon svg { width: 26px; height: 26px; }
.bv-cs__item h3 {
  font-size: .95rem; margin: 0 0 .5rem;
  text-transform: uppercase; letter-spacing: .06em;
}
.bv-cs__item p { margin: 0; font-size: .86rem; line-height: 1.65; color: var(--bv-muted); }

.bv-cs__bar { border: 1px solid var(--bv-line); }

/* =========================================================
   Toernooipagina
   ========================================================= */

/* Deze banner draagt een label, een regel met gegevens en twee knoppen; die
   heeft dus wat meer hoogte nodig dan de andere. */
.bv-pagehead--event { min-height: clamp(340px, 30vw, 460px); }
.bv-pagehead--event .bv-pagehead__inner > * { max-width: 60%; }

.bv-eventtag {
  display: inline-flex; align-items: center; gap: .5rem;
  margin: 0 0 .7rem; color: var(--bv-orange);
  font-family: var(--bv-font-head); font-weight: 700;
  font-size: .82rem; text-transform: uppercase; letter-spacing: .14em;
}
.bv-eventtag svg { width: 20px; height: 20px; }

/* De regel met datum, aanvang en locatie onder de titel. */
.bv-eventmeta {
  display: flex; flex-wrap: wrap; gap: .9rem clamp(24px, 3vw, 46px);
  margin: 1.1rem 0 0;
}
.bv-eventmeta__item { display: flex; align-items: center; gap: .65rem; }
.bv-eventmeta__item > svg { width: 22px; height: 22px; color: var(--bv-orange); flex: none; }
.bv-eventmeta em {
  display: block; font-style: normal;
  font-family: var(--bv-font-head); font-weight: 600;
  font-size: .72rem; text-transform: uppercase; letter-spacing: .12em;
  color: rgba(255,255,255,.7);
}
.bv-eventmeta strong { display: block; color: #fff; font-size: .95rem; }

.bv-pagehead--event .bv-pagehead__intro { margin-top: 1.2rem; }
.bv-pagehead--event .bv-pagehead__actions { margin-top: 1.4rem; }

/* --- De tekstkolom --- */
.bv-blockhead {
  position: relative; padding-bottom: .7rem; margin: 0 0 1.2rem;
  font-size: clamp(1.15rem, 1.9vw, 1.45rem);
  text-transform: uppercase; letter-spacing: .04em; color: var(--bv-navy);
}
.bv-blockhead::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 46px; height: 3px; background: var(--bv-orange);
}
.bv-blockhead + * { margin-top: 0; }
* + .bv-blockhead { margin-top: clamp(30px, 3.6vw, 48px); }

.bv-eventtext p { font-size: .95rem; line-height: 1.8; margin: 0 0 .7rem; }
.bv-eventtext > :last-child { margin-bottom: 0; }
.bv-eventwho { margin-top: clamp(20px, 2.4vw, 30px); }
.bv-eventdeadline { font-size: .95rem; line-height: 1.8; margin: 0 0 1.2rem; }

/* De zes gegevens in twee kolommen. */
.bv-facttiles {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 1.6vw, 20px);
}
.bv-facttile {
  display: flex; gap: clamp(12px, 1.4vw, 18px); align-items: flex-start;
  background: #fff; border: 1px solid var(--bv-line);
  border-radius: var(--bv-radius); padding: clamp(14px, 1.7vw, 20px);
}
.bv-facttile__icon {
  flex: none; width: 42px; height: 42px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--bv-bg-alt); color: var(--bv-navy);
}
.bv-facttile__icon svg { width: 21px; height: 21px; }
.bv-facttile strong {
  display: block; color: var(--bv-navy); font-size: .92rem; margin-bottom: .1rem;
}
.bv-facttile > div > span { display: block; font-size: .88rem; line-height: 1.5; }
.bv-facttile em { display: block; font-style: normal; font-size: .82rem; color: var(--bv-muted); margin-top: .15rem; }

/* --- Zijbalk: praktische informatie --- */
.bv-practical { list-style: none; margin: 0; padding: 0; }
.bv-practical li { display: flex; gap: .8rem; align-items: flex-start; padding: .85rem 0; }
.bv-practical li:first-child { padding-top: 0; }
.bv-practical li:last-child { padding-bottom: 0; }
.bv-practical li + li { border-top: 1px solid var(--bv-line); }
.bv-practical__icon {
  flex: none; width: 38px; height: 38px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--bv-orange-soft); color: var(--bv-orange);
}
.bv-practical__icon svg { width: 19px; height: 19px; }
.bv-practical strong { display: block; color: var(--bv-navy); font-size: .9rem; margin-bottom: .1rem; }
.bv-practical span { display: block; font-size: .85rem; line-height: 1.55; color: var(--bv-muted); }

/* --- Zijbalk: andere toernooien --- */
.bv-otherlist { list-style: none; margin: 0 0 1rem; padding: 0; }
.bv-otherlist li + li { border-top: 1px solid var(--bv-line); }
.bv-otherlist a {
  display: flex; align-items: center; gap: .8rem;
  padding: .85rem 0; color: var(--bv-navy);
}
.bv-otherlist li:first-child a { padding-top: 0; }
.bv-otherlist__icon {
  flex: none; width: 38px; height: 38px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--bv-bg-alt); color: var(--bv-navy);
}
.bv-otherlist__icon svg { width: 19px; height: 19px; }
.bv-otherlist__body { flex: 1 1 auto; min-width: 0; }
.bv-otherlist strong { display: block; font-size: .9rem; line-height: 1.3; }
.bv-otherlist em { display: block; font-style: normal; font-size: .82rem; color: var(--bv-muted); margin-top: .15rem; }
.bv-otherlist a > svg { width: 18px; height: 18px; flex: none; color: var(--bv-muted); }
.bv-otherlist a:hover strong { color: var(--bv-orange); }
.bv-otherlist a:hover > svg { color: var(--bv-orange); }

/* --- De thumbnail op de kaart van de homepage --- */
.bv-minicard__media {
  aspect-ratio: 3 / 2; overflow: hidden;
  background: var(--bv-navy);
}
.bv-minicard__media img {
  width: 100%; height: 100%;
  object-fit: cover; border-radius: 0; display: block;
}

/* Een lang speelschema in een eigen schuifvenster.
   Achtentwintig rondes maken de pagina meters lang, terwijl de zijkaart
   ernaast al na een schermhoogte ophoudt. De tabel schuift nu zelf; de pagina
   blijft kort. Onder de grens verschijnt er vanzelf geen schuifbalk. */
.bv-table-wrap--scroll {
  max-height: min(64vh, 620px);
  overflow: auto;
  overscroll-behavior: contain;
  position: relative;
}
/* De kopregel loopt mee, zodat je bij ronde 20 nog ziet welke kolom wat is. */
.bv-table-wrap--scroll thead th {
  position: sticky; top: 0; z-index: 2;
}
/* Toetsenbordgebruikers kunnen het venster met de pijltjes bedienen; dan hoort
   er ook een zichtbare rand omheen te staan. */
.bv-table-wrap--scroll:focus-visible {
  outline: 3px solid var(--bv-orange); outline-offset: 2px;
}

/* De eerstvolgende speelavond. */
.bv-table.bv-schedule tbody tr.is-next,
.bv-table.bv-schedule tbody tr.is-next:nth-child(even) {
  background: var(--bv-orange-soft);
}
.bv-schedule tbody tr.is-next td:first-child {
  box-shadow: inset 3px 0 0 var(--bv-orange);
}
.bv-schedule tbody tr.is-next td { font-weight: 600; }

@media (max-width: 720px) {
  /* Op een telefoon schuift de tabel ook al zijwaarts; twee richtingen in een
     klein venster wordt onhandig, dus hier wat meer hoogte. */
  .bv-table-wrap--scroll { max-height: min(76vh, 560px); }
}

/* =========================================================
   Teampagina (externe competitie)
   ========================================================= */

/* Vier kenmerken naast elkaar in plaats van twee. */
.bv-facttiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bv-facttiles--4 .bv-facttile__icon { background: var(--bv-orange-soft); color: var(--bv-orange); }

/* De regel onder de titel: hetzelfde label als op de toernooipagina, maar
   zonder icoon ervoor. */
.bv-eventtag--plain svg { display: none; }

/* Foto naast de tekst. */
.bv-teamsplit {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(24px, 3.4vw, 52px); align-items: center;
}
.bv-teamsplit__media {
  aspect-ratio: 3 / 2; overflow: hidden;
  border-radius: var(--bv-radius); background: var(--bv-navy);
}
.bv-teamsplit__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; display: block; }
.bv-teamsplit__body h2 {
  margin: 0 0 .8rem;
  font-size: clamp(1.3rem, 2.4vw, 1.9rem);
  text-transform: uppercase; letter-spacing: .03em;
}
.bv-teamsplit__body p { font-size: .95rem; line-height: 1.8; margin: 0 0 1.1rem; }
/* In het ontwerp staat elk punt op een eigen regel; de basisregel laat ze
   naast elkaar lopen. */
.bv-teamsplit__body .bv-checks { margin: 0 0 1.4rem; flex-direction: column; align-items: flex-start; gap: .55rem; }
.bv-teamsplit__body .bv-btn { margin-top: 0; }

/* De stand van de externe competitie: dezelfde tabel, met onze eigen regel
   oranje in plaats van een gemarkeerde koploper. */
.bv-standings--ntl { min-width: 860px; }
.bv-table.bv-standings--ntl tbody tr.is-own,
.bv-table.bv-standings--ntl tbody tr.is-own:nth-child(even) {
  background: var(--bv-orange-soft);
}
.bv-standings--ntl tbody tr.is-own td { color: var(--bv-orange); font-weight: 700; }
.bv-standings--ntl tbody tr.is-own td:first-child { box-shadow: inset 3px 0 0 var(--bv-orange); }

.bv-tablefoot { margin: .9rem 0 0; font-size: .82rem; color: var(--bv-muted); }

/* =========================================================
   12. Responsive
   ========================================================= */
@media (max-width: 1080px) {
  .bv-footer__top { grid-template-columns: 1fr 1fr; }
  .bv-cta__box { grid-template-columns: auto minmax(0,1fr); }
  .bv-cta__actions { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
}

@media (max-width: 980px) {
  :root { --bv-header-h: 84px; }
  .bv-brand img, .bv-brand svg { max-height: 62px; max-width: 190px; }
  .bv-burger { display: block; }
  /* De knoptekst blijft staan: een losse pijl zegt niets. */
  .bv-header__cta .bv-btn { padding: .6rem .95rem; white-space: nowrap; }
  .bv-header__cta .bv-btn svg { display: none; }
  .bv-header__inner { gap: .75rem; }

  .bv-nav {
    position: fixed; inset: var(--bv-header-h) 0 auto 0;
    background: #fff; border-bottom: 1px solid var(--bv-line);
    box-shadow: var(--bv-shadow-md);
    max-height: calc(100vh - var(--bv-header-h)); overflow-y: auto;
    display: none; padding: .5rem var(--bv-gut) 1.5rem;
  }
  .bv-nav.is-open { display: block; }
  .bv-nav ul { flex-direction: column; align-items: stretch; gap: 0; }
  .bv-nav > div > ul > li { border-bottom: 1px solid var(--bv-line); }
  .bv-nav a { padding: .95rem 0; font-size: 1rem; }
  .bv-nav a::after { display: none; }
  .bv-nav .sub-menu {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: 0; border-left: 3px solid var(--bv-orange);
    border-radius: 0; margin: 0 0 .6rem .2rem; padding: 0 0 0 .8rem;
  }

  /* De foto zakt naar de achtergrond van het hele vlak; naast de tekst is
     er geen ruimte meer voor. */
  .bv-hero__media { width: 100%; opacity: .5; }
  .bv-hero__text { max-width: none; }
  .bv-herobar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.3rem 0; }
  .bv-herobar__item:nth-child(odd) { border-left: 0; }
  .bv-carousel__track { grid-auto-columns: calc((100% - clamp(18px, 2.2vw, 28px)) / 2); }
  /* Vanaf hier is er geen ruimte meer naast de rij; de pijlen zouden over de
     kaarten heen vallen. Vegen werkt hier prettiger. */
  .bv-carousel__nav { display: none; }
  .bv-homerow { grid-template-columns: minmax(0, 1fr); }
  .bv-reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.8rem 0; }
  .bv-reason:nth-child(3n+1) { border-left: 0; padding-left: 0; }
  /* De pijlen tussen de stappen vallen weg zodra de rij afbreekt. */
  .bv-joinsteps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
  .bv-joinsteps__arrow { display: none; }
  .bv-joinrow { grid-template-columns: minmax(0, 1fr); }
  .bv-pagehead--half .bv-pagehead__inner > * { max-width: none; }
  .bv-textcols { grid-template-columns: minmax(0, 1fr); }
  .bv-signup-layout { grid-template-columns: minmax(0, 1fr); }
  .bv-signup-side { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-reasons--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.8rem 0; }
  /* De regel voor de rij van vijf (drie kolommen) hoort hier niet; deze twee
     zetten de lijnen op de grens van twee kolommen. */
  .bv-reasons--4 .bv-reason:nth-child(odd) { border-left: 0; padding-left: 0; }
  .bv-reasons--4 .bv-reason:nth-child(even) {
    border-left: 1px solid var(--bv-line);
    padding-left: clamp(10px, 1.4vw, 20px);
  }
  .bv-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-infobar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem clamp(16px, 2vw, 26px); }
  .bv-infobar__item:nth-child(odd) { border-left: 0; padding-left: 0; }
  .bv-cards { grid-template-columns: 1fr; }
  /* Vier toernooikaarten worden er twee; helemaal onder elkaar is op een
     tablet zonde van de ruimte. */
  .bv-cards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-joinbar { flex-wrap: wrap; }
  .bv-joinbar__actions { align-items: flex-start; width: 100%; }
  .bv-joinbar__actions .bv-checks { justify-content: flex-start; }
  .bv-about__inner { grid-template-columns: 1fr; }
  .bv-layout { grid-template-columns: 1fr; }


  /* Paginakoppen met een foto ernaast: de foto komt boven de tekst te staan,
     dus geen flexbox en geen gedeelde minimumhoogte meer. */
  .bv-pagehead:not(.bv-pagehead--photo) { display: block; min-height: 0; padding: 0 0 clamp(36px, 5vw, 52px); }
  .bv-pagehead:not(.bv-pagehead--photo) .bv-pagehead__inner { max-width: none; padding-top: clamp(28px, 4vw, 40px); }
  /* De smallere foto van het nieuwsartikel geldt alleen naast de tekst; hier
     staat hij erboven en pakt hij weer de volle breedte. */
  .bv-pagehead--post .bv-pagehead__media { width: 100%; }

  /* Coming soon: de foto als achtergrond over de hele banner, de tekst erover. */
  .bv-cs__inner > * { max-width: none; }
  .bv-cs__media { inset: 0; opacity: .35; }
  .bv-cs__media::after { background: linear-gradient(90deg, rgba(14,42,86,.92) 0%, rgba(14,42,86,.75) 100%); }
  .bv-cs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-pagehead--event .bv-pagehead__inner > * { max-width: none; }
  .bv-facttiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-teamsplit { grid-template-columns: minmax(0, 1fr); }
  .bv-pagehead__media--fit img { object-fit: cover; }
  .bv-pagehead__media {
    position: static; width: 100%; height: clamp(200px, 40vw, 300px);
    clip-path: none; margin-bottom: 0;
  }
  .bv-pagehead__media::after {
    background: linear-gradient(180deg, rgba(14,42,86,0) 40%, var(--bv-navy) 100%);
  }

  .bv-pillars { grid-template-columns: 1fr; gap: 1.8rem; }
  .bv-pillar { padding: 0; }
  .bv-pillar + .bv-pillar { border-left: 0; }

  .bv-statbar { grid-template-columns: repeat(2, minmax(0,1fr)); row-gap: 2rem; }
  .bv-statbar__item + .bv-statbar__item { border-left: 0; }
  .bv-statbar__item:nth-child(even) { border-left: 1px solid rgba(255,255,255,.16); }

  .bv-story, .bv-story--wide { grid-template-columns: 1fr; }
  .bv-story__media { max-width: 520px; }

  .bv-why { grid-template-columns: repeat(2, minmax(0,1fr)); }

  /* Stappen onder elkaar; de pijlen wijzen dan naar beneden. */
  .bv-steps { grid-template-columns: 1fr; gap: 1.2rem; }
  .bv-steps__arrow { padding: 0; transform: rotate(90deg); }

  .bv-welcome { grid-template-columns: 1fr; }
  .bv-welcome__media { max-width: 520px; }
  .bv-pagehead__actions { flex-wrap: wrap; }

  /* Contact: formulier boven, de twee kaarten eronder naast elkaar. */
  .bv-contact-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bv-contact-layout > .bv-panel:first-child { grid-column: 1 / -1; }
  .bv-faq { grid-template-columns: 1fr; }
  .bv-faq__media { max-width: 520px; }

  /* Standen. minmax(0,1fr) is nodig: met een kale 1fr rekt de brede tabel
     de kolom op in plaats van binnen .bv-table-wrap te scrollen. */
  .bv-standings-layout, .bv-schedule-layout, .bv-results-layout,
  .bv-news-layout, .bv-comp-layout { grid-template-columns: minmax(0, 1fr); }
  .bv-comp-side { position: static; grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bv-facts-row { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.6rem 0; }
  .bv-fact { padding: 0 clamp(14px, 2vw, 24px); }
  .bv-fact:nth-child(odd) { padding-left: 0; }
  .bv-fact:nth-child(even) { padding-right: 0; }
  .bv-fact:nth-child(3) { border-left: 0; }
  .bv-cta__photo { display: none; }
  .bv-newsgrid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bv-news-side { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bv-newssearch, .bv-newssearch input { width: 100%; min-width: 0; }
  .bv-standings-side, .bv-schedule-side { position: static; }
  .bv-matchlist li { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); row-gap: .5rem; }
  .bv-matchlist__points { grid-column: 1 / -1; text-align: center; }
  .bv-card__cols { display: none; }
  .bv-noticebar { grid-template-columns: auto minmax(0, 1fr); }
  .bv-noticebar .bv-btn { grid-column: 1 / -1; justify-content: center; }
  .bv-standings-side { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .bv-updated { margin-left: 0; width: 100%; }
  .bv-pagehead--photo .bv-pagehead__media { opacity: .35; }
}

@media (max-width: 720px) {
  /* Een regel per team, met zijn eigen score erachter. De twee getallen zitten
     in een omhulsel; display:contents haalt dat weg zodat ze los in het raster
     te plaatsen zijn en er geen nieuwe opmaak nodig is. */
  .bv-matchlist li {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 1rem; row-gap: .45rem;
  }
  .bv-matchlist__score { display: contents; }
  .bv-matchlist__score em { display: none; }

  .bv-matchlist__team { grid-column: 1; justify-content: flex-start; }
  .bv-matchlist__score strong { grid-column: 2; text-align: right; font-size: 1.15rem; }
  .bv-matchlist__score strong:first-of-type { grid-row: 1; }
  .bv-matchlist__score strong:last-of-type { grid-row: 2; }
  .bv-matchlist__team:not(.bv-matchlist__team--away) { grid-row: 1; }
  .bv-matchlist__team--away { grid-row: 2; }

  /* De punten eronder, met een woordje ervoor zodat het getal duidt. */
  .bv-matchlist__points {
    grid-column: 1 / -1; grid-row: 3; text-align: right;
    border-top: 1px solid var(--bv-line); padding-top: .45rem;
  }
  .bv-matchlist__points::before {
    content: attr(data-label); float: left;
    font-family: var(--bv-font-head); font-weight: 600;
    font-size: .72rem; text-transform: uppercase; letter-spacing: .1em;
    color: var(--bv-muted);
  }

  .bv-standings-side { grid-template-columns: 1fr; }
  .bv-select--icon select { min-width: 0; width: 100%; }
  .bv-roundpick, .bv-roundbar { width: 100%; }
  .bv-roundbar .bv-btn { width: 100%; justify-content: center; }
  .bv-filterbar .bv-select, .bv-filterbar .bv-select select { width: 100%; }
  .bv-filterbar .bv-btn { width: 100%; justify-content: center; }

  .bv-why { grid-template-columns: 1fr; }
  .bv-newsgrid, .bv-news-side, .bv-comp-side { grid-template-columns: 1fr; }
  .bv-facts-row { grid-template-columns: 1fr; }
  .bv-fact { padding: 0; }
  .bv-fact + .bv-fact { border-left: 0; }
  .bv-pills { width: 100%; }
  .bv-contact-layout { grid-template-columns: 1fr; }
  .bv-headcontacts { gap: 1rem; }
  .bv-headcontacts li { width: 100%; }
  .bv-pagehead__actions { flex-direction: column; align-items: stretch; }
  .bv-pagehead__actions .bv-btn { justify-content: center; }
  .bv-cta__box--over .bv-cta__actions { align-items: stretch; }
  .bv-checks { justify-content: center; }
  .bv-toc__body { padding-left: 1.1rem; }
  .bv-toc__head { align-items: flex-start; gap: .7rem; }
  .bv-cards--4 { grid-template-columns: 1fr; }
  .bv-reasons { grid-template-columns: 1fr; }
  .bv-reason { padding: 0; border-left: 0; }
  .bv-reason + .bv-reason { border-left: 0; }
  .bv-joinsteps { grid-template-columns: 1fr; }
  .bv-qagrid { grid-template-columns: 1fr; }
  .bv-reasons--4 { grid-template-columns: 1fr; }
  .bv-signup-side { grid-template-columns: 1fr; }
  /* Naast de tekst is hier geen plek meer voor het symbool. */
  .bv-pagehead__mark { display: none; }
  .bv-legal__item { gap: 1rem; }
  .bv-legal__icon { width: 40px; height: 40px; }
  .bv-legal__icon svg { width: 20px; height: 20px; }
  .bv-updated-bar__icon { width: 46px; height: 46px; }
  /* Een half of kwart veld heeft hier geen ruimte meer. */
  .bv-formfield--half, .bv-formfield--smal { grid-column: 1 / -1; }
  .bv-signup__submit { width: 100%; justify-content: center; }
  .bv-reasons--4 .bv-reason:nth-child(even) { border-left: 0; padding-left: 0; }
  .bv-board { grid-template-columns: 1fr; }
  .bv-infobar { grid-template-columns: 1fr; }
  .bv-infobar__item + .bv-infobar__item { border-left: 0; padding-left: 0; }
  .bv-pricecard__media { display: none; }
  .bv-sectionbar { flex-direction: column; align-items: stretch; }
  .bv-sectionbar .bv-btn { justify-content: center; }
  .bv-joinbar { flex-direction: column; text-align: center; }
  .bv-joinbar__actions { align-items: center; }
  .bv-joinbar__actions .bv-checks { justify-content: center; }
  .bv-tmonth__list li { flex-wrap: wrap; }
  .bv-tmonth__list .bv-card__link { width: 100%; }
}

@media (max-width: 720px) {
  .bv-features { grid-template-columns: 1fr; gap: 1.2rem; }

  .bv-cta__box { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .bv-cta__badge { width: 104px; height: 104px; }
  .bv-cta__badge svg { width: 58px; height: 58px; }
  .bv-cta__text { margin-inline: auto; }
  .bv-cta__actions { flex-direction: column; width: 100%; }
  .bv-cta__actions .bv-btn { justify-content: center; }
  .bv-footer__top { grid-template-columns: 1fr; }
  .bv-footer__logo img { max-height: 72px; max-width: 210px; }
  .bv-logo-link--plate { padding: 10px 14px; }
  .bv-logo-link--plate img { max-height: 64px; }
  .bv-herobar { grid-template-columns: 1fr; }
  .bv-herobar__item { border-left: 0; }
  .bv-herobar__item + .bv-herobar__item { border-left: 0; }
  .bv-carousel__track { grid-auto-columns: 80%; }
  .bv-sectionbar--home { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .bv-panel__bar { flex-direction: column; align-items: flex-start; gap: .5rem; }
  .bv-hero__actions .bv-btn { flex: 1 1 100%; justify-content: center; }
  .bv-next { flex-direction: column; }
  /* Op een telefoon vult de inhoud het scherm al; een minimumhoogte zou
     alleen een lap leeg blauw opleveren. */
  .bv-cs__hero { min-height: 0; }
  .bv-cs__grid { grid-template-columns: 1fr; }
  .bv-facttiles { grid-template-columns: 1fr; }
  .bv-facttiles--4 { grid-template-columns: 1fr; }
  .bv-eventmeta { flex-direction: column; gap: .7rem; }
  .bv-cs__badge { max-width: none; }
  .bv-cs__bar { text-align: left; }
}

@media (max-width: 420px) {
  .bv-header__cta .bv-btn { padding: .55rem .75rem; font-size: .78rem; }
  .bv-header__inner { gap: .5rem; }
}

/* Onder 360px is er geen ruimte voor logo en knop naast elkaar; het logo mag
   dan wat kleiner, liever dan dat de aanmeldknop verdwijnt. */
@media (max-width: 360px) {
  .bv-brand img, .bv-brand svg { max-height: 46px; max-width: 150px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}
