/* GymBeheer Leads — styling (accentkleur via --gbl-accent, instelbaar in WP) */
:root { --gbl-accent: #e8620c; }
body.gbl-open { overflow: hidden; }

.gbl-overlay {
  position: fixed; inset: 0; z-index: 99999;
  background: rgba(15, 20, 32, 0.55);
  display: flex; align-items: center; justify-content: center;
  padding: 18px;
}
.gbl-modal {
  position: relative; width: 100%; max-width: 560px; max-height: 88vh;
  background: #fff; border-radius: 16px; overflow-y: auto;
  box-shadow: 0 24px 64px rgba(15, 20, 32, 0.35);
  padding: 26px 26px 24px;
  font-family: inherit; color: #1c2333;
}
.gbl-inline {
  max-width: 560px; background: #fff; border: 1px solid #e4e8f0;
  border-radius: 16px; padding: 24px; color: #1c2333;
  margin-left: auto; margin-right: auto;
}
.gbl-sluit {
  position: absolute; top: 12px; right: 14px; border: none; background: none;
  font-size: 26px; line-height: 1; color: #7c8497; cursor: pointer; padding: 4px 8px;
}
.gbl-sluit:hover { color: #1c2333; }

.gbl-kop { margin-bottom: 14px; }
.gbl-titel { font-size: 21px; font-weight: 800; line-height: 1.25; }
.gbl-sub { font-size: 13.5px; color: #6b7280; margin-top: 4px; }
.gbl-terug {
  border: none; background: none; color: #6b7280; font-size: 13px; font-weight: 600;
  cursor: pointer; padding: 0; margin-bottom: 10px;
}
.gbl-terug:hover { color: #1c2333; }

.gbl-laden { text-align: center; padding: 28px 0; }
.gbl-spinner {
  display: inline-block; width: 26px; height: 26px; border-radius: 50%;
  border: 3px solid #e4e8f0; border-top-color: var(--gbl-accent);
  animation: gbl-draai 0.8s linear infinite;
}
@keyframes gbl-draai { to { transform: rotate(360deg); } }

.gbl-kaarten { display: flex; flex-direction: column; gap: 9px; }
.gbl-kaart {
  display: flex; align-items: baseline; gap: 10px; width: 100%; text-align: left;
  border: 1.5px solid #e4e8f0; border-radius: 12px; background: #fff;
  padding: 13px 16px; cursor: pointer; font-family: inherit; transition: border-color 0.12s;
}
.gbl-kaart:hover { border-color: var(--gbl-accent); }
.gbl-kaart-titel { font-size: 14.5px; font-weight: 800; color: #1c2333; }
.gbl-kaart-sub { font-size: 12px; color: #6b7280; flex: 1; }
.gbl-kaart-prijs { font-size: 13.5px; font-weight: 800; color: var(--gbl-accent); white-space: nowrap; }
.gbl-kaart-prijs small { font-weight: 600; color: #6b7280; }

.gbl-weeknav { display: flex; align-items: center; gap: 10px; margin: 4px 0 12px; }
.gbl-weekknop {
  border: 1px solid #e4e8f0; background: #fff; border-radius: 9px;
  padding: 6px 13px; font-size: 15px; cursor: pointer; font-family: inherit;
}
.gbl-weekknop:disabled { opacity: 0.4; cursor: default; }
.gbl-weeklabel { font-size: 13.5px; font-weight: 800; }

.gbl-dagen { display: flex; flex-direction: column; gap: 14px; }
.gbl-dag-kop { font-size: 12px; font-weight: 800; text-transform: capitalize; color: #6b7280; margin-bottom: 6px; }
.gbl-les {
  display: flex; align-items: center; gap: 10px; width: 100%; text-align: left;
  border: 1.5px solid #bfe3cd; background: #f2faf5; border-radius: 10px;
  padding: 9px 12px; margin-bottom: 6px; cursor: pointer; font-family: inherit;
}
.gbl-les:hover:not(.vol) { border-color: #1e9e5a; }
.gbl-les.vol { border-color: #e4e8f0; background: #f6f7fa; cursor: default; opacity: 0.7; }
.gbl-les-tijd { font-size: 12.5px; font-weight: 800; color: #1e7e4d; white-space: nowrap; }
.gbl-les.vol .gbl-les-tijd { color: #7c8497; }
.gbl-les-naam { flex: 1; font-size: 13.5px; font-weight: 800; color: #155c38; min-width: 0; }
.gbl-les.vol .gbl-les-naam { color: #5a6275; }
.gbl-les-naam small { font-weight: 600; color: #6b7280; }
.gbl-pil {
  font-size: 10.5px; font-weight: 800; color: #fff; background: #1e9e5a;
  border-radius: 999px; padding: 2px 9px; white-space: nowrap;
}
.gbl-pil.oranje { background: var(--gbl-accent); }
.gbl-pil.grijs { background: #c9ced9; }

.gbl-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.gbl-chip {
  border: 1.5px solid #e4e8f0; background: #fff; border-radius: 9px;
  padding: 7px 13px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.gbl-chip:hover { border-color: var(--gbl-accent); color: var(--gbl-accent); }

.gbl-leeg { text-align: center; color: #9aa1b0; font-size: 13px; padding: 18px 0; }

.gbl-samenvatting {
  background: #f2faf5; border: 1px solid #bfe3cd; color: #1e7e4d;
  border-radius: 10px; padding: 10px 13px; font-size: 13px; font-weight: 700; margin-bottom: 13px;
}
.gbl-form { display: flex; flex-direction: column; gap: 10px; }
.gbl-rij { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 480px) { .gbl-rij { grid-template-columns: 1fr; } }
.gbl-veld { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.gbl-veld span { font-size: 11.5px; font-weight: 700; color: #6b7280; }
.gbl-veld input, .gbl-veld textarea {
  border: 1.5px solid #e4e8f0; border-radius: 9px; padding: 9px 12px;
  font-size: 14px; font-family: inherit; width: 100%; background: #fff; color: #1c2333;
}
.gbl-veld input:focus, .gbl-veld textarea:focus { border-color: var(--gbl-accent); outline: none; }
.gbl-akkoord { display: flex; gap: 9px; align-items: flex-start; font-size: 12px; color: #4b5563; margin: 2px 0 0; }
.gbl-akkoord input { margin-top: 2px; }
.gbl-hp { position: absolute !important; left: -9999px !important; opacity: 0; height: 0; }

.gbl-knop {
  display: inline-block; border: 2px solid var(--gbl-accent); background: var(--gbl-accent); color: #fff;
  border-radius: 8px; padding: 10px 20px; font-size: 14.5px; font-weight: 700;
  cursor: pointer; transition: filter 0.12s;
  /* Volgt het knop-lettertype van de site (Elementor-global); anders het paginalettertype */
  font-family: var(--e-global-typography-accent-font-family, inherit);
  box-shadow: 0 0 10px 0 var(--gbl-accent);
}
.gbl-knop:hover { filter: brightness(0.92); }
.gbl-knop:disabled { opacity: 0.6; cursor: default; }
.gbl-verstuur { margin-top: 6px; width: 100%; }
.gbl-tekstlink {
  border: none; background: none; color: var(--gbl-accent); font-size: 13px;
  font-weight: 700; cursor: pointer; padding: 0; text-decoration: underline; font-family: inherit;
  margin-top: 12px;
}
.gbl-fout {
  background: #fdf0ee; border: 1px solid #f2c6bf; color: #b3341f;
  border-radius: 10px; padding: 10px 13px; font-size: 13px; font-weight: 600; margin: 8px 0;
}
/* Eigen formulieren uit de GymBeheer-formulierenbouwer — erven het lettertype
   van de site; alleen de accentkleur komt uit de plugin-instelling */
.gbl-eigen-form select {
  border: 1.5px solid #e4e8f0; border-radius: 9px; padding: 9px 12px;
  font-size: 14px; font-family: inherit; width: 100%; background: #fff; color: #1c2333;
}
.gbl-eigen-form select:focus { border-color: var(--gbl-accent); outline: none; }
.gbl-sectiekop { margin: 14px 0 2px; }
.gbl-sectiekop span { display: block; font-size: 16px; font-weight: 800; color: #1c2333; }
.gbl-sectiekop small { display: block; font-size: 12px; color: #6b7280; margin-top: 2px; }
.gbl-tekstblok { font-size: 13.5px; color: #4b5563; line-height: 1.6; }
.gbl-infobox {
  background: #f0f4fd; border: 1px solid #c9d6f7; border-radius: 10px;
  padding: 10px 13px; font-size: 13px; color: #2f4b96; line-height: 1.55;
}
.gbl-lijn { border: none; border-top: 1px solid #e4e8f0; margin: 12px 0; }
.gbl-keuzes { display: flex; flex-direction: column; gap: 6px; }
.gbl-keuze { display: flex; gap: 9px; align-items: center; font-size: 13.5px; color: #1c2333; margin: 0; cursor: pointer; }
.gbl-keuze input { accent-color: var(--gbl-accent); width: 16px; height: 16px; margin: 0; }
.gbl-akkoord input { accent-color: var(--gbl-accent); }
.gbl-schaal { display: flex; gap: 5px; flex-wrap: wrap; }
.gbl-schaalknop {
  min-width: 34px; padding: 7px 0; border: 1.5px solid #e4e8f0; background: #fff;
  border-radius: 8px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit;
}
.gbl-schaalknop.actief { background: var(--gbl-accent); border-color: var(--gbl-accent); color: #fff; }
.gbl-schaal-labels { display: flex; justify-content: space-between; font-size: 11px; color: #6b7280; margin-top: 3px; }
.gbl-hulp { font-size: 11.5px; color: #6b7280; margin-top: 2px; }
.gbl-turnstile { margin: 4px 0; }

.gbl-klaar { text-align: center; padding: 12px 0 6px; }
.gbl-klaar .gbl-vink {
  display: inline-flex; width: 52px; height: 52px; border-radius: 26px;
  background: #1e9e5a; color: #fff; font-size: 26px; align-items: center; justify-content: center;
  margin-bottom: 12px;
}
.gbl-klaar p { font-size: 14.5px; line-height: 1.6; color: #1c2333; margin: 0 0 14px; }

/* ── Webformulieren uit de WebFormBouwer (web_v2) ─────────────────────────── */
.gbl-webform { display: flex; flex-direction: column; gap: 12px; }
.gbl-wveld { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gbl-minilabel { font-size: 10px; font-weight: 800; letter-spacing: 0.7px; text-transform: uppercase; color: #7a8194; }
.gbl-webform input, .gbl-webform select, .gbl-webform textarea {
  width: 100%; box-sizing: border-box; border: 1px solid #d8dce6; border-radius: 8px;
  padding: 9px 11px; font-size: 14px; font-family: inherit; background: #fff; color: inherit;
}
.gbl-webform input:focus, .gbl-webform select:focus, .gbl-webform textarea:focus { border-color: var(--gbl-accent); outline: none; }
.gbl-wsectie { display: flex; align-items: center; gap: 10px; margin: 8px 0 0; }
.gbl-wsectie span { font-size: 10.5px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: #98a0b3; }
.gbl-wsectie:after { content: ''; flex: 1; height: 1px; background: #e6e9f0; }
.gbl-rij-naam { display: grid; grid-template-columns: 1fr 80px 1fr; gap: 10px; }
.gbl-rij-adres { display: grid; grid-template-columns: 1.4fr 0.8fr 1fr; gap: 10px; }
.gbl-vrienden .gbl-rij-adres { grid-template-columns: 1.2fr 1.2fr 1fr; margin-bottom: 8px; }
.gbl-hulp { font-size: 12px; color: #667085; margin-bottom: 4px; }
.gbl-vriendmeer { align-self: flex-start; border: none; background: none; color: var(--gbl-accent); font-weight: 800; font-size: 12.5px; cursor: pointer; padding: 2px 0; font-family: inherit; }
@media (max-width: 480px) { .gbl-rij-naam, .gbl-rij-adres { grid-template-columns: 1fr; } }
.gbl-ibanhouder { position: relative; }
.gbl-ibanhouder input { padding-right: 110px; }
.gbl-ibanhouder.geldig input { border-color: #35b06c; box-shadow: 0 0 0 1px #35b06c; }
.gbl-ibanhouder.ongeldig input { border-color: #d64545; }
.gbl-ibanbadge { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 11px; font-weight: 800; border-radius: 999px; padding: 3px 10px; pointer-events: none; }
.gbl-ibanhouder.geldig .gbl-ibanbadge { background: #e7f6ec; color: #1e9e5a; border: 1px solid #bfe3cd; }
.gbl-ibanhouder.ongeldig .gbl-ibanbadge { background: #fdf0f0; color: #d64545; border: 1px solid #f0c4c4; }
.gbl-machtiging { background: #f5f6fa; border: 1px solid #e3e6ee; border-radius: 10px; padding: 10px 12px; }
.gbl-machtiging-tekst { font-size: 11px; color: #5a6275; line-height: 1.55; max-height: 76px; overflow: hidden; }
.gbl-machtiging-tekst.open { max-height: none; }
.gbl-leesmeer { border: none; background: none; color: var(--gbl-accent); font-size: 11px; font-weight: 800; cursor: pointer; padding: 4px 0 0; }
.gbl-akkoordrij { display: flex; align-items: center; gap: 8px; border: 1px solid #d8dce6; border-radius: 10px; padding: 9px 12px; }
.gbl-akkoordrij.aan { background: #eaf7ef; border-color: #bfe3cd; }
.gbl-akkoordlabel { flex: 1; font-size: 13px; font-weight: 700; }
.gbl-akkoordknop { border: 1.5px solid var(--gbl-accent); background: #fff; color: var(--gbl-accent); border-radius: 8px; padding: 6px 14px; font-size: 12.5px; font-weight: 800; cursor: pointer; font-family: inherit; }
.gbl-akkoordknop.aan { background: #1e9e5a; border-color: #1e9e5a; color: #fff; }
.gbl-minikno { border: 1px solid #d8dce6; background: #fff; color: #5a6275; border-radius: 8px; padding: 6px 12px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: inherit; }
.gbl-vinkje { font-weight: 800; }
.gbl-reserveer-kop { font-size: 13.5px; font-weight: 800; margin: 14px 0 8px; }
.gbl-reserveer { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.gbl-knop-licht { background: #fff !important; color: #1c2333 !important; border: 1px solid #d8dce6 !important; }

/* iDEAL-verificatie (€0,01) */
.gbl-ideal-info { background: #f0f6ff; border: 1px solid #c9ddf7; border-radius: 10px; padding: 10px 13px; font-size: 13px; line-height: 1.5; margin-bottom: 10px; }
.gbl-ideal-terug { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%); z-index: 99999; background: #1c2333; color: #fff; border-radius: 12px; padding: 12px 40px 12px 16px; font-size: 13.5px; line-height: 1.5; max-width: min(92vw, 480px); box-shadow: 0 10px 30px rgba(15,20,32,0.35); }
.gbl-ideal-dicht { position: absolute; top: 6px; right: 8px; border: none; background: none; color: #aab2c5; font-size: 18px; cursor: pointer; padding: 2px 6px; }

/* Profielfoto-veld */
.gbl-fotorij { display: flex; align-items: center; gap: 14px; }
.gbl-fotopreview { width: 62px; height: 62px; border-radius: 50%; background: #f5f6fa; border: 1.5px dashed #d8dce6; display: inline-flex; align-items: center; justify-content: center; color: #98a2b3; overflow: hidden; flex-shrink: 0; }
.gbl-fotopreview img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gbl-fotoknop { border: 1.5px solid var(--gbl-accent); background: #fff; color: var(--gbl-accent); border-radius: 9px; padding: 8px 15px; font-size: 12.5px; font-weight: 800; cursor: pointer; font-family: inherit; }
.gbl-fotoweg { border: none; background: none; color: #98a2b3; font-size: 11.5px; font-weight: 700; cursor: pointer; font-family: inherit; padding: 6px 2px 0; display: block; }
.gbl-fotohulp { font-size: 11px; color: #98a2b3; margin-top: 6px; line-height: 1.45; }

/* Vast abonnement-vak (persoonlijke inschrijflink / formulier-koppeling) */
.gbl-abovast { background: #fff; border: 1px solid #e4e7ec; border-radius: 14px; padding: 16px 18px; }
.gbl-abovast-kicker { font-size: 11px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--gbl-accent); margin-bottom: 10px; }
.gbl-abovast-rij { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 3px 0; }
.gbl-abovast-hoofd { padding: 0 0 6px; }
.gbl-abovast-naam { font-size: 17px; font-weight: 800; color: #171a20; }
.gbl-abovast-prijs { font-size: 16px; font-weight: 800; color: #171a20; white-space: nowrap; }
.gbl-abovast-prijs i { font-style: normal; font-weight: 700; font-size: 12.5px; color: #98a2b3; }
.gbl-abovast-label { font-size: 13.5px; font-weight: 600; color: #98a2b3; }
.gbl-abovast-waarde { font-size: 13.5px; font-weight: 800; color: #171a20; text-align: right; }
.gbl-abovast-sub { font-size: 11.5px; color: #98a2b3; margin-top: 10px; line-height: 1.5; }

/* ── Donkere stijl voor donkere pagina's: [gymbeheer_formulier ... stijl="donker"] ──
   Het formulier smelt in de pagina (geen witte kaart); velden en kaarten krijgen
   translucente donkere vlakken zodat elke donkere achtergrondkleur werkt. */
.gbl-donker { color-scheme: dark; }
.gbl-inline.gbl-donker { background: transparent; border: none; padding: 0; color: #eef0f4; }
.gbl-donker .gbl-sub, .gbl-donker .gbl-terug, .gbl-donker .gbl-dag-kop { color: #a6adbd; }
.gbl-donker .gbl-terug:hover { color: #eef0f4; }
.gbl-donker .gbl-veld span { color: #a6adbd; }
.gbl-donker .gbl-veld input, .gbl-donker .gbl-veld textarea,
.gbl-donker .gbl-eigen-form select,
.gbl-donker .gbl-webform input, .gbl-donker .gbl-webform select, .gbl-donker .gbl-webform textarea {
  background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.18); color: #f2f3f6;
}
.gbl-donker input::placeholder, .gbl-donker textarea::placeholder { color: #7b8294; }
.gbl-donker select option { background: #1c2333; color: #f2f3f6; }
.gbl-donker .gbl-minilabel { color: #99a1b3; }
.gbl-donker .gbl-wsectie span { color: #8d95a8; }
.gbl-donker .gbl-wsectie:after { background: rgba(255, 255, 255, 0.14); }
.gbl-donker .gbl-sectiekop span { color: #eef0f4; }
.gbl-donker .gbl-sectiekop small, .gbl-donker .gbl-tekstblok { color: #b8bfcc; }
.gbl-donker .gbl-hulp, .gbl-donker .gbl-schaal-labels { color: #99a1b3; }
.gbl-donker .gbl-keuze, .gbl-donker .gbl-akkoord, .gbl-donker .gbl-klaar p,
.gbl-donker .gbl-kaart-titel, .gbl-donker .gbl-weeklabel { color: #eef0f4; }
.gbl-donker .gbl-kaart, .gbl-donker .gbl-chip, .gbl-donker .gbl-weekknop,
.gbl-donker .gbl-schaalknop, .gbl-donker .gbl-minikno {
  background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.18); color: #eef0f4;
}
.gbl-donker .gbl-kaart-sub, .gbl-donker .gbl-kaart-prijs small { color: #a6adbd; }
.gbl-donker .gbl-kaart:hover, .gbl-donker .gbl-chip:hover { border-color: var(--gbl-accent); }
.gbl-donker .gbl-schaalknop.actief { background: var(--gbl-accent); border-color: var(--gbl-accent); color: #fff; }
.gbl-donker .gbl-spinner { border-color: rgba(255, 255, 255, 0.18); border-top-color: var(--gbl-accent); }
.gbl-donker .gbl-les { background: rgba(30, 158, 90, 0.14); border-color: rgba(63, 190, 120, 0.45); }
.gbl-donker .gbl-les-tijd { color: #6fd39e; }
.gbl-donker .gbl-les-naam { color: #a8e6c4; }
.gbl-donker .gbl-les-naam small { color: #94a0b2; }
.gbl-donker .gbl-les.vol { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.14); }
.gbl-donker .gbl-les.vol .gbl-les-tijd, .gbl-donker .gbl-les.vol .gbl-les-naam { color: #8d95a8; }
.gbl-donker .gbl-samenvatting { background: rgba(30, 158, 90, 0.14); border-color: rgba(63, 190, 120, 0.4); color: #8fdcb2; }
.gbl-donker .gbl-infobox { background: rgba(90, 130, 235, 0.14); border-color: rgba(120, 155, 245, 0.35); color: #b9c8f2; }
.gbl-donker .gbl-fout { background: rgba(214, 69, 69, 0.14); border-color: rgba(230, 110, 110, 0.4); color: #f0a2a2; }
.gbl-donker .gbl-lijn { border-top-color: rgba(255, 255, 255, 0.14); }
.gbl-donker .gbl-leeg { color: #8d95a8; }
.gbl-donker .gbl-machtiging { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); }
.gbl-donker .gbl-machtiging-tekst { color: #aeb5c4; }
.gbl-donker .gbl-akkoordrij { border-color: rgba(255, 255, 255, 0.18); }
.gbl-donker .gbl-akkoordrij.aan { background: rgba(30, 158, 90, 0.16); border-color: rgba(63, 190, 120, 0.45); }
.gbl-donker .gbl-akkoordknop { background: transparent; }
.gbl-donker .gbl-minikno { color: #c3c9d4; }
.gbl-donker .gbl-knop-licht { background: rgba(255, 255, 255, 0.08) !important; color: #eef0f4 !important; border-color: rgba(255, 255, 255, 0.2) !important; }
.gbl-donker .gbl-ibanhouder.geldig .gbl-ibanbadge { background: rgba(30, 158, 90, 0.2); color: #7fd6a4; border-color: rgba(63, 190, 120, 0.45); }
.gbl-donker .gbl-ibanhouder.ongeldig .gbl-ibanbadge { background: rgba(214, 69, 69, 0.2); color: #f0a2a2; border-color: rgba(230, 110, 110, 0.45); }
.gbl-donker .gbl-fotopreview { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.24); color: #8d95a8; }
.gbl-donker .gbl-fotoknop { background: transparent; }
.gbl-donker .gbl-ideal-info { background: rgba(90, 130, 235, 0.14); border-color: rgba(120, 155, 245, 0.35); color: #b9c8f2; }
.gbl-donker .gbl-abovast { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); }
.gbl-donker .gbl-abovast-naam, .gbl-donker .gbl-abovast-prijs, .gbl-donker .gbl-abovast-waarde { color: #eef0f4; }

/* ── Wapening tegen thema-resets ─────────────────────────────────────────────
   Hello Elementor (en vergelijkbare thema's) stylen elk kaal <button>:
   [type=button]{background:transparent;border:1px solid #c36;color:#c36;
   font-size:1rem;font-weight:400;border-radius:3px;padding:.5rem 1rem;
   white-space:nowrap} + button:hover{background:#c36;color:#fff}. Dat CSS
   laadt ná het onze met gelijke of hogere specificiteit en wint dus. Daarom
   hieronder alle knop-basisstijlen (incl. hover) één trap hoger (button.klasse)
   opnieuw. De donker-stijl (.gbl-donker …, twee klassen diep) blijft winnen. */
button.gbl-knop, button.gbl-knop:hover, button.gbl-knop:focus {
  background: var(--gbl-accent); color: #fff; border: 2px solid var(--gbl-accent);
  border-radius: 8px; padding: 10px 20px; font-size: 14.5px; font-weight: 700; white-space: normal;
}
button.gbl-knop:hover { filter: brightness(0.92); }
button.gbl-knop.gbl-verstuur { width: 100%; }
button.gbl-knop.gbl-knop-licht, button.gbl-knop.gbl-knop-licht:hover { background: #fff; color: #1c2333; border: 1px solid #d8dce6; }
button.gbl-tekstlink, button.gbl-tekstlink:hover { background: none; border: none; padding: 0; color: var(--gbl-accent); font-size: 13px; font-weight: 700; text-decoration: underline; }
button.gbl-terug, button.gbl-terug:hover { background: none; border: none; padding: 0; font-size: 13px; font-weight: 600; }
button.gbl-terug { color: #6b7280; }
button.gbl-terug:hover { color: #1c2333; }
button.gbl-sluit, button.gbl-sluit:hover { background: none; border: none; padding: 4px 8px; font-size: 26px; }
button.gbl-sluit { color: #7c8497; }
button.gbl-sluit:hover { color: #1c2333; }
button.gbl-leesmeer, button.gbl-leesmeer:hover { background: none; border: none; padding: 4px 0 0; color: var(--gbl-accent); font-size: 11px; font-weight: 800; }
button.gbl-vriendmeer, button.gbl-vriendmeer:hover { background: none; border: none; padding: 2px 0; color: var(--gbl-accent); font-size: 12.5px; font-weight: 800; }
button.gbl-fotoweg, button.gbl-fotoweg:hover { background: none; border: none; padding: 6px 2px 0; color: #98a2b3; font-size: 11.5px; font-weight: 700; }
button.gbl-ideal-dicht, button.gbl-ideal-dicht:hover { background: none; border: none; padding: 2px 6px; color: #aab2c5; font-size: 18px; }
button.gbl-kaart, button.gbl-kaart:hover { background: #fff; border: 1.5px solid #e4e8f0; color: #1c2333; padding: 13px 16px; border-radius: 12px; white-space: normal; }
button.gbl-kaart:hover { border-color: var(--gbl-accent); }
button.gbl-weekknop, button.gbl-weekknop:hover { background: #fff; border: 1px solid #e4e8f0; color: #1c2333; padding: 6px 13px; border-radius: 9px; font-size: 15px; }
button.gbl-chip, button.gbl-chip:hover { background: #fff; border: 1.5px solid #e4e8f0; color: #1c2333; padding: 7px 13px; border-radius: 9px; font-size: 13px; font-weight: 700; }
button.gbl-chip:hover { border-color: var(--gbl-accent); color: var(--gbl-accent); }
button.gbl-les, button.gbl-les:hover { background: #f2faf5; border: 1.5px solid #bfe3cd; color: inherit; padding: 9px 12px; border-radius: 10px; white-space: normal; }
button.gbl-les:hover:not(.vol) { border-color: #1e9e5a; }
button.gbl-les.vol, button.gbl-les.vol:hover { border-color: #e4e8f0; background: #f6f7fa; }
button.gbl-schaalknop, button.gbl-schaalknop:hover { background: #fff; border: 1.5px solid #e4e8f0; color: #1c2333; padding: 7px 0; border-radius: 8px; font-size: 13px; font-weight: 700; }
button.gbl-schaalknop.actief, button.gbl-schaalknop.actief:hover { background: var(--gbl-accent); border-color: var(--gbl-accent); color: #fff; }
button.gbl-akkoordknop, button.gbl-akkoordknop:hover { background: #fff; border: 1.5px solid var(--gbl-accent); color: var(--gbl-accent); padding: 6px 14px; border-radius: 8px; font-size: 12.5px; font-weight: 800; }
button.gbl-akkoordknop.aan, button.gbl-akkoordknop.aan:hover { background: #1e9e5a; border-color: #1e9e5a; color: #fff; }
button.gbl-minikno, button.gbl-minikno:hover { background: #fff; border: 1px solid #d8dce6; color: #5a6275; padding: 6px 12px; border-radius: 8px; font-size: 12px; font-weight: 700; }
button.gbl-fotoknop, button.gbl-fotoknop:hover { background: #fff; border: 1.5px solid var(--gbl-accent); color: var(--gbl-accent); padding: 8px 15px; border-radius: 9px; font-size: 12.5px; font-weight: 800; }
