/* Aanvullingen 2 */

/* Laatste optreden van de lijst en van elke maand: onderaan afgerond */
.fvkb-agenda .elementor-loop-container .e-loop-item:last-child .fvkb-optreden { border-bottom-left-radius: 14px; border-bottom-right-radius: 14px; }

/* Lege shortcodes nemen geen ruimte in */
.elementor-widget-shortcode:has(.elementor-shortcode:empty) { display: none; }

/* Groot datumvaandel op de optredenpagina */
.fvkb-grote-datum::before { bottom: -14px; }
.fvkb-grote-datum .elementor-heading-title { line-height: 1.1; }
.fvkb-meta-w--groot .fvkb-meta { font-size: 17px; gap: 8px 28px; }

/* Wie speelt: donker kaartje zoals in het ontwerp */
.fvkb-wie { background: var(--navy); color: #FFF; padding: 28px; }
.fvkb-wie:hover { color: #FFF; box-shadow: 0 0 0 2px var(--koper); }
.fvkb-wie__tekst { color: var(--lavendel); }
.fvkb-wie__tekst strong { color: #FFF; font-size: 22px; }
.fvkb-wie__kicker { color: var(--koper); letter-spacing: 0; text-transform: none; font-size: 14px; }
.fvkb-wie__vaandel { position: relative; }

/* Vaandels rekken nooit mee met de hoogte van de rij */
.fvkb-vaandel { align-self: flex-start; }

/* Jaartal op de albumtegel op één regel */
.fvkb-jaarvaandel .fvkb-vaandel__doek { padding-left: 0 !important; padding-right: 0 !important; }
.fvkb-jaarvaandel .elementor-heading-title { white-space: nowrap; }

/* Groepspagina: secties zonder inhoud verdwijnen */
.fvkb-verhaal:not(:has(.elementor-widget-theme-post-content :is(p, h2, h3, ul))) { display: none; }
.fvkb-video-sectie:not(:has(.fvkb-video)) { display: none; }
.fvkb-groep-beeld:not(:has(img[src])) { display: none; }
.fvkb-groepslabel-licht .fvkb-groep { color: var(--lavendel); }
.fvkb-inhoud h2 { font-family: "Unbounded", sans-serif; font-weight: 600; font-size: 28px; line-height: 1.2; color: var(--navy); margin: 0 0 16px; }
.fvkb-inhoud p { margin: 0 0 16px; }
.fvkb-fotos-sectie .fvkb-fotos { margin-bottom: 8px; }

/* Vijf foto's: eerste foto over twee rijen, zodat het raster sluit */
.fvkb-fotos--5 .fvkb-foto:first-child { grid-row: span 2; aspect-ratio: auto; }
@media (max-width: 767px) { .fvkb-fotos--5 .fvkb-foto:first-child { grid-row: auto; grid-column: span 2; aspect-ratio: 16 / 9; } }
.fvkb-fotos-sectie .fvkb-albums { margin-top: 16px; }

/* Albumpagina */
.fvkb-album-jaar .fvkb-vaandel__doek { justify-content: flex-start; }
.fvkb-soortlabel .elementor-heading-title { display: inline-flex; align-items: center; gap: 8px; }
.fvkb-soortlabel .elementor-heading-title::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--gloed); }
.fvkb-soortlabel:has(.elementor-heading-title:empty) { display: none; }
.fvkb-album-galerij .fvkb-fotos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.fvkb-album-galerij .fvkb-fotos .fvkb-foto:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.fvkb-album-galerij .fvkb-fotos--1 { grid-template-columns: minmax(0, 1fr); }
.fvkb-album-galerij .fvkb-fotos--1 .fvkb-foto:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 16 / 7; }
@media (max-width: 1024px) { .fvkb-album-galerij .fvkb-fotos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .fvkb-album-galerij .fvkb-fotos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fvkb-album-galerij .fvkb-fotos .fvkb-foto:first-child { grid-row: auto; aspect-ratio: 16 / 10; } }
.fvkb-albumnav .elementor-post-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.fvkb-albumnav .elementor-post-navigation__link { width: 100% !important; }
.fvkb-albumnav .elementor-post-navigation__link a { display: flex; align-items: center; gap: 16px; padding: 22px 24px; background: #FFF; border-radius: 14px; height: 100%; }
.fvkb-albumnav .elementor-post-navigation__next a { justify-content: flex-end; text-align: right; }
.fvkb-albumnav .elementor-post-navigation__arrow-wrapper { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 2px solid var(--navy); border-radius: 6px; flex: 0 0 44px; }
.fvkb-albumnav .post-navigation__separator-wrapper { display: none; }
.fvkb-albumnav .elementor-post-navigation__link a:hover .elementor-post-navigation__arrow-wrapper { background: var(--navy); color: #FFF; }
@media (max-width: 767px) { .fvkb-albumnav .elementor-post-navigation { grid-template-columns: 1fr; } }

.fvkb-album-galerij .fvkb-fotos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fvkb-album-galerij .fvkb-fotos--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fvkb-album-galerij :is(.fvkb-fotos--2, .fvkb-fotos--3) .fvkb-foto:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; }
.fvkb-albumnav .post-navigation__prev--label, .fvkb-albumnav .post-navigation__next--label { text-transform: none; }

/* Formulier: veldlabel van de keuzerondjes is geen knop, de opties wel */
.fvkb-formulier .elementor-field-type-radio > label.elementor-field-label { display: block; width: 100%; min-height: 0; padding: 0; border: 0; background: none; border-radius: 0; margin-bottom: 4px; cursor: default; }
.fvkb-formulier .elementor-field-subgroup .elementor-field-option label { min-height: 44px !important; padding: 0 16px !important; font-size: 16px; color: var(--navy); }
.fvkb-formulier .elementor-field-subgroup .elementor-field-option input:checked + label { color: #FFF; }
.fvkb-formulier .elementor-field-textual { border-width: 2px !important; padding: 12px 14px !important; }
.fvkb-formulier .elementor-field-textual:focus { border-color: var(--ultra) !important; box-shadow: none; }
.fvkb-formnoot { margin: 0; font-size: 14px; color: var(--grijs); }
.fvkb-formnoot a { color: var(--ultra); text-decoration: underline; }

#verbroedering .fvkb-vaandel { align-self: center; }
.fvkb-hoofdstuk__tekst { max-width: 860px; }
.fvkb-plek .fvkb-vaandel__doek { background-color: #FFF !important; }

/* Wegwijzer op de groepenpagina */
.fvkb-weg { transition: background-color .25s; text-decoration: none; }
.fvkb-weg:hover { background-color: #262A53; }
.fvkb-weg > .elementor-widget-heading { flex: 1 1 auto; }
.fvkb-weg__groep .fvkb-groep { color: var(--lavendel); font-size: 16px; }
.fvkb-weg__pijl .elementor-icon-wrapper { display: flex; }
.fvkb-weg__pijl .elementor-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border: 2px solid #3E4166; border-radius: 6px; }
.fvkb-weg:hover .fvkb-weg__pijl .elementor-icon { background: #FFF; border-color: #FFF; color: var(--navy); }
.fvkb-weg:hover .fvkb-weg__pijl .elementor-icon svg, .fvkb-weg:hover .fvkb-weg__pijl .elementor-icon i { fill: var(--navy); color: var(--navy); }
@media (max-width: 767px) { .fvkb-weg__pijl { display: none; } }

/* Foto's: jaartallen als vaandels, soorten links */
.fvkb-jaarfilter .e-filter-item:not([aria-pressed="true"]) { background-color: #262A53 !important; color: #FFF !important; }
.fvkb-soortfilter .e-filter { justify-content: flex-start !important; }
.fvkb-weg__groep .fvkb-groep { white-space: nowrap; }
/* Speel mee: instrumenten als labels */
.fvkb-instrumenten p, .fvkb-instrumenten { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.fvkb-instrument { display: inline-block; padding: 4px 10px; border-radius: 6px; background: var(--papier); font-size: 14px; font-weight: 700; color: var(--navy); }
.fvkb-repetitie { border-top: 1px solid var(--lijn); padding-top: 14px; }
.fvkb-stappen.fvkb-stang::before { left: 40px; right: 40px; top: 36px; }
.fvkb-sponsors--groot .fvkb-sponsor { aspect-ratio: 4 / 3; min-height: 0 !important; }
.fvkb-sponsors--groot .fvkb-sponsor img { height: 100% !important; max-height: 120px; }

/* Lange teksten (privacy, groep): lucht boven tussenkoppen, leesbare regellengte */
.fvkb-inhoud { max-width: 760px; }
.fvkb-inhoud h2:not(:first-child), .fvkb-inhoud h3:not(:first-child) { margin-top: 44px; }
.fvkb-inhoud ul { margin: 0 0 16px; padding-left: 22px; }
.fvkb-inhoud li { margin-bottom: 6px; }

/* Het ingeklapte telefoonmenu mag de pagina niet breder maken */
body { overflow-x: clip; }

html { overflow-x: clip; }
/* Lange woorden in koppen (Privacyverklaring) breken af op telefoon */
@media (max-width: 767px) {
	.elementor-heading-title { overflow-wrap: break-word; hyphens: auto; hyphenate-limit-chars: 13 6 6; }
}

/* Contact staat op desktop als knop in de header, in het telefoonmenu als gewoon item */
body .elementor-nav-menu--main li.fvkb-alleen-mobiel { display: none !important; }
/* Telefoonmenu: zelfde zijmarge als de pagina */
.fvkb-hoofdmenu .elementor-nav-menu--dropdown a.elementor-item, .fvkb-hoofdmenu .elementor-nav-menu--dropdown a.elementor-sub-item { padding-left: 20px !important; padding-right: 20px !important; }
.fvkb-hoofdmenu .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item { padding-left: 36px !important; }
.fvkb-hoofdmenu .elementor-nav-menu--dropdown { box-shadow: 0 12px 24px rgba(14, 18, 64, .18); }

@media (max-width: 767px) { .fvkb-stappen.fvkb-stang::before { display: none; } }

/* Groepenpagina: op tablet en telefoon foto boven tekst, ook bij de afwisselende rijen */
@media (max-width: 1024px) { body .fvkb-groeprij-lijst .e-loop-item .fvkb-groeprij { flex-direction: column !important; } }

/* Keuzeknoppen in formulieren (onderwerp, niveau, groep): zelfde vorm als de filterknoppen */
body .fvkb-formulier .elementor-field-type-radio .elementor-field-subgroup { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 2px; }
body .fvkb-formulier .elementor-field-type-radio .elementor-field-option { position: relative; display: inline-flex; margin: 0 !important; padding: 0 !important; }
body .fvkb-formulier .elementor-field-type-radio .elementor-field-option label {
	display: inline-flex !important; align-items: center; min-height: 44px !important; margin: 0 !important; padding: 0 18px !important;
	border: 2px solid var(--lijn); border-radius: 6px; background: #FFF; color: var(--navy);
	font-family: "Figtree", sans-serif; font-size: 16px; font-weight: 700; line-height: 1.2; cursor: pointer;
	transition: border-color .2s, background-color .2s, color .2s;
}
body .fvkb-formulier .elementor-field-type-radio .elementor-field-option label:hover { border-color: var(--navy); }
body .fvkb-formulier .elementor-field-type-radio input[type="radio"]:checked + label { background: var(--navy); border-color: var(--navy); color: #FFF; }
body .fvkb-formulier .elementor-field-type-radio input[type="radio"]:focus-visible + label { outline: 2px solid var(--ultra); outline-offset: 3px; }
body .fvkb-formulier .elementor-field-type-radio input[type="radio"] { left: 18px; bottom: 0; }
@media (max-width: 767px) { body .fvkb-formulier .elementor-field-type-radio .elementor-field-option label { padding: 0 14px !important; font-size: 15px; } }

/* Groep zonder groepsfoto: vaandel groot en gecentreerd op navy in plaats van onzichtbaar op de eigen kleur */
body .e-loop-item .fvkb-groeprij__beeld.fvkb-groepskleur:not(:has(.fvkb-zoom)) { background-color: var(--navy) !important; justify-content: flex-start; align-items: center; }
body .e-loop-item .fvkb-groeprij__beeld:not(:has(.fvkb-zoom)) .fvkb-vaandel { align-self: center !important; position: relative !important; left: auto !important; top: auto !important; transform: scale(1.9); transform-origin: top center; }
