/* ByGiel — de opmaak van de locatiepagina's, het blogoverzicht en de plaatsenlijst.
 *
 * ==========================================================================
 * DE KLEURVARIABELEN, EN WAT ER MIS WAS
 *
 * Deze stonden op `.byg-locatie, .byg-blog, .byg-locatielijst`. Dat leek netjes — geen
 * lekkage naar de rest van de pagina — maar de helft van mijn eigen blokken staat NAAST
 * die elementen en niet erin: de filterknoppen, de inhoudsopgave, de oproep en de
 * omhulling van de gerelateerde artikelen.
 *
 * Daar was elke `var(--byg-*)` dus ongedefinieerd, en een declaratie met een
 * ongedefinieerde variabele gooit de browser weg. Gevolgen, allemaal zichtbaar:
 *
 *   - `.byg-pil.is-actief` verloor zijn achtergrond maar hield `color: #fff`
 *     -> de knop "Alles" stond er als WITTE TEKST OP WIT
 *   - de rand om de knoppen verdween
 *   - mijn hover verdween, dus de hover-achtergrond van het thema won: roze
 *   - de inhoudsopgave en de oproep hadden helemaal geen vlak
 *
 * Nu staan ze op `body`. Niet op `:root`: Elementor zet zijn kit-klasse
 * (`elementor-kit-5`) op de BODY, dus op `:root` zijn de globals nog niet bekend en zou
 * hij stilletjes op mijn terugvalwaarden draaien. Dat is dezelfde fout een niveau hoger.
 *
 * ==========================================================================
 * WELKE KLEUR VAN WIE
 *
 * Het accent volgt de site: dat is de knopkleur, en die hoort mee te veranderen als de
 * klant hem in Elementor aanpast.
 *
 * Kop- en tekstkleur volgen de site NIET meer. De kit van deze site heeft `primary` op
 * het accentblauw staan, dus elke kaarttitel werd blauw terwijl het ontwerp daar bijna
 * zwart heeft. En `text` is er zo licht dat de datumregel met `opacity: .65` vrijwel
 * onleesbaar werd. Deze twee komen daarom uit het ontwerp zelf: #0A2342 is de donkere
 * kleur uit de hero, gemeten in de Magic Patterns-bundel. */

body {
  --byg-tekst:   #475569;   /* de kit heeft hier #EEF4FF: bijna wit, dus onleesbaar op wit */
  --byg-zacht:   #64748b;                              /* datum en leestijd; geen opacity meer */
  --byg-kop:     #0A2342;                              /* de donkere kleur uit het ontwerp */
  /* PRIMARY, niet accent. Gemeten in de browser op de live site:
   *   primary   #4A9FFF  <- de knop "Plan kennismaking" meet exact rgb(74,159,255)
   *   secondary #2B5EAD      het donkerdere blauw van de kopbanden
   *   text      #EEF4FF      bijna wit; bedoeld voor tekst op een donkere achtergrond
   *   accent    #1F2937      bijna zwart
   * Deze kit gebruikt "accent" dus niet voor het accent. Dat was niet te raden en ik
   * had het ook niet moeten raden: ik las de rolnamen en nam aan wat ze betekenden. */
  --byg-accent:  var(--e-global-color-primary, #4A9FFF);
  --byg-rand:    rgba(15, 23, 42, .12);
  --byg-vlak:    rgba(15, 23, 42, .04);
}

.byg-locatie,
.byg-blog,
.byg-locatielijst { color: var(--byg-tekst); }

/* ------------------------------------------------------------------ kop */

.byg-kop { margin-bottom: 2.5rem; }
.byg-ref { margin: 0 0 1.25rem; opacity: .75; }

.byg-feiten {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 1px;
  background: var(--byg-rand); border: 1px solid var(--byg-rand); border-radius: 12px;
  overflow: hidden;
}
.byg-feiten li {
  flex: 1 1 12rem; min-width: 0;      /* min-width 0: anders wil een flexitem niet krimpen */
  background: #fff; padding: .85rem 1.1rem;
  display: flex; flex-direction: column; gap: .15rem;
}
.byg-feiten strong { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; opacity: .6; }

/* -------------------------------------------------------------- secties */

.byg-locatie section { margin: 0 0 2.75rem; }
.byg-locatie h2 { color: var(--byg-kop); margin: 0 0 .75rem; }
.byg-context p { margin: 0 0 1rem; }

.byg-varianten h2 { margin-top: 2rem; font-size: 1.25rem; }
.byg-varianten h2:first-child { margin-top: 0; }

/* -------------------------------------------------------------- kaarten */

.byg-kaarten { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 1rem; }
.byg-kaart {
  display: flex; flex-direction: column; gap: .35rem;
  padding: 1.15rem 1.25rem; text-decoration: none; color: inherit;
  border: 1px solid var(--byg-rand); border-radius: 12px; background: #fff;
  transition: border-color .15s, transform .15s;
}
.byg-kaart:hover { border-color: var(--byg-accent); transform: translateY(-2px); }
.byg-kaart strong { color: var(--byg-kop); }
.byg-kaart span   { font-size: .92rem; opacity: .8; }

/* ---------------------------------------------------------------- vragen */

.byg-vraag { border-bottom: 1px solid var(--byg-rand); padding: .9rem 0; }
.byg-vraag summary { cursor: pointer; font-weight: 600; color: var(--byg-kop); list-style: none; }
.byg-vraag summary::-webkit-details-marker { display: none; }
.byg-vraag summary::before { content: "+"; margin-right: .6rem; color: var(--byg-accent); }
.byg-vraag[open] summary::before { content: "–"; }
.byg-vraag > div { padding-top: .5rem; }

/* ---------------------------------------------------------------- buren */

.byg-buren ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem; }
.byg-buren a {
  display: inline-block; padding: .4rem .85rem; border-radius: 999px;
  border: 1px solid var(--byg-rand); text-decoration: none; color: inherit; font-size: .93rem;
}
.byg-buren a:hover { border-color: var(--byg-accent); color: var(--byg-accent); }

/* ------------------------------------------------------------------ cta */

.byg-cta { background: var(--byg-vlak); border-radius: 16px; padding: 2rem; }
.byg-knoppen { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.25rem 0 0; }
.byg-knop {
  display: inline-block; padding: .8rem 1.5rem; border-radius: 999px;
  background: #1d4ed8; background: var(--byg-accent); color: #fff; text-decoration: none; font-weight: 600;
}
.byg-knop-licht {
  background: transparent;
  color: #1d4ed8; color: var(--byg-accent);
  border: 1px solid #1d4ed8; border-color: var(--byg-accent);
}

/* ----------------------------------------------------------------- blog
 *
 * Nagebouwd naar de kaart uit het ontwerp: beeld van 16:9 bovenaan, categorie als
 * badge erover, datum en leestijd, titel, samenvatting van drie regels, en "Lees
 * artikel" met een pijl die meebeweegt.
 *
 * De kaart is een <a> met <span>-elementen erin en geen <div>'s: een blok-element in
 * een link is geldig in HTML5, maar een <div> in een <a> geeft in sommige
 * screenreaders een rare voorlezing. Spans met display:block doen hetzelfde zonder
 * dat bezwaar. */

/* De secties van de locatiepagina, zodat ze niet tegen elkaar aan lopen. */
.byg-diensten, .byg-faq { margin-top: 3rem; }

.byg-filters {
  display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center;
  margin: 0 0 2.5rem;
}
/* Elke regel hieronder staat er TWEE keer: eerst met een vaste waarde, dan met de
 * variabele. Valt de variabele ooit weer weg, dan gooit de browser alleen de tweede weg
 * en blijft de eerste staan. Dat is precies wat hier eerder ontbrak: `is-actief` hield
 * `color: #fff` over zonder achtergrond, en dan lees je niets meer. */

.byg-pil {
  appearance: none; cursor: pointer;
  padding: .55rem 1.35rem; border-radius: 999px; font: inherit; font-size: .93rem;
  border: 1px solid rgba(15, 23, 42, .12);
  border-color: var(--byg-rand);
  background: #fff;
  color: #475569;
  color: var(--byg-tekst);
  transition: background .15s, color .15s, border-color .15s;
}
.byg-pil:hover {
  /* De achtergrond MOET hier staan. Zonder eigen waarde wint de hover die het thema aan
   * elke <button> geeft, en dat was op deze site roze. */
  background: #fff;
  border-color: #1d4ed8;
  border-color: var(--byg-accent);
  color: #1d4ed8;
  color: var(--byg-accent);
}
.byg-pil.is-actief {
  background: #1d4ed8;
  background: var(--byg-accent);
  border-color: #1d4ed8;
  border-color: var(--byg-accent);
  color: #fff;
}
.byg-pil.is-actief:hover { background: #1d4ed8; background: var(--byg-accent); color: #fff; }

.byg-blog {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); gap: 2rem;
}

/* `.byg-blog a.` en niet `.` alleen: Elementor zet `.elementor a { box-shadow: none }`
 * en dat is specifieker (0-1-1) dan een losse klasse (0-1-0). Mijn schaduw kwam daardoor
 * niet aan -- gemeten in de browser, computed `none`. Elke kaart staat in `.byg-blog`,
 * ook die onder de gerelateerde artikelen, dus dit dekt ze allemaal. */
.byg-blog a.byg-kaart-artikel,
.byg-kaart-artikel {
  display: flex; flex-direction: column; height: 100%;
  background: #fff; border-radius: 12px; overflow: hidden;
  text-decoration: none; color: var(--byg-tekst);
  /* Een rand ERBIJ, niet alleen schaduw. Een witte kaart met alleen een zachte schaduw
   * op een witte pagina heeft geen zichtbare grens; in het ontwerp is de kaart een blok. */
  border: 1px solid rgba(15, 23, 42, .10);
  border-color: var(--byg-rand);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .06);
  transition: box-shadow .3s, transform .3s, border-color .3s;
}
.byg-blog a.byg-kaart-artikel:hover,
.byg-kaart-artikel:hover {
  box-shadow: 0 14px 30px rgba(15, 23, 42, .13);
  transform: translateY(-3px);
  border-color: transparent;
}
.byg-kaart-artikel.is-verborgen { display: none; }

.byg-beeld {
  display: block; position: relative; height: 12rem; overflow: hidden; background: var(--byg-vlak);
}
.byg-beeld img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s;
}
.byg-kaart-artikel:hover .byg-beeld img { transform: scale(1.05); }
.byg-beeld::after {
  /* Het donkere waas uit het ontwerp, dat wegtrekt bij aanwijzen. */
  content: ""; position: absolute; inset: 0;
  background: #0a2342; opacity: .10; transition: opacity .3s;
}
.byg-kaart-artikel:hover .byg-beeld::after { opacity: 0; }

.byg-badge {
  position: absolute; top: 1rem; left: 1rem; z-index: 1;
  background: #fff; color: var(--byg-accent);
  padding: .3rem .8rem; border-radius: 999px;
  font-size: .72rem; font-weight: 600; letter-spacing: .01em;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .12);
}

.byg-body { display: flex; flex-direction: column; flex: 1 1 auto; padding: 1.5rem; }

.byg-meta {
  display: flex; align-items: center; gap: 1rem;
  /* Geen `opacity`. Dat vermenigvuldigt met de tekstkleur, en op deze site was die zo
   * licht dat de datumregel vrijwel verdween. Een eigen kleur is voorspelbaar. */
  font-size: .78rem; color: #64748b; color: var(--byg-zacht); margin-bottom: .75rem;
}
.byg-leestijd { display: inline-flex; align-items: center; gap: .3rem; }
.byg-icoon { width: .85em; height: .85em; }
.byg-icoon-pijl { width: 1em; height: 1em; transition: transform .3s; }
.byg-kaart-artikel:hover .byg-icoon-pijl { transform: translateX(4px); }

.byg-titel {
  color: #0A2342;   /* vaste terugval; de variabele eronder wint als hij bestaat */
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  font-size: 1.2rem; font-weight: 700; line-height: 1.35;
  color: var(--byg-kop); margin-bottom: .7rem; transition: color .2s;
}
.byg-kaart-artikel:hover .byg-titel { color: var(--byg-accent); }

.byg-samenvatting {
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  font-size: .94rem; margin-bottom: 1.5rem; flex: 1 1 auto;
}

.byg-lees {
  display: inline-flex; align-items: center; gap: .5rem; margin-top: auto;
  color: var(--byg-accent); font-weight: 600; font-size: .95rem;
}

/* De inhoudsopgave boven een lang artikel. */
.byg-toc {
  background: rgba(15, 23, 42, .04); background: var(--byg-vlak);
  border-left: 3px solid #1d4ed8; border-left-color: var(--byg-accent);
  border-radius: 0 8px 8px 0; padding: 1.25rem 1.5rem; margin: 0 0 2.5rem;
}
.byg-toc-titel {
  font-weight: 700; color: #0A2342; color: var(--byg-kop); margin: 0 0 .6rem; font-size: .95rem;
}
.byg-toc ol { margin: 0; padding-left: 1.2rem; }
.byg-toc li { margin: .3rem 0; font-size: .95rem; }
.byg-toc a { color: #475569; color: var(--byg-tekst); text-decoration: none; }
.byg-toc a:hover { color: #1d4ed8; color: var(--byg-accent); text-decoration: underline; }

/* Een kop waar vanaf de inhoudsopgave naartoe gesprongen wordt, mag niet onder een
 * vaste menubalk verdwijnen. */
.byg-toc ~ h2, h2[id] { scroll-margin-top: 6rem; }

/* De oproep onderaan een artikel. Dezelfde vlakkleur als de inhoudsopgave, maar
 * gecentreerd en met de knop die de site elders ook gebruikt. */
.byg-oproep {
  background: rgba(15, 23, 42, .04); background: var(--byg-vlak);
  border-radius: 12px; padding: 2rem 1.75rem; margin: 3rem 0 0; text-align: center;
}
.byg-oproep > h2 { font-size: 1.35rem; margin: 0 0 .6rem; }
.byg-oproep > p  { margin: 0 auto 1.35rem; max-width: 34rem; }

/* Gerelateerde artikelen onder een blogartikel. Een streep erboven, want het hoort
 * zichtbaar níet meer bij het artikel zelf. */
.byg-gerelateerd {
  margin-top: 4rem; padding-top: 2.5rem;
  border-top: 1px solid rgba(15, 23, 42, .12); border-top-color: var(--byg-rand);
}
.byg-gerelateerd > h2 { font-size: 1.5rem; margin-bottom: 1.75rem; }

/* ------------------------------------------------------- plaatsenlijst */

.byg-locatielijst { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: 1.5rem; }
.byg-locatielijst > h2 { grid-column: 1 / -1; margin: 0; }
.byg-gemeente strong { display: block; margin-bottom: .4rem; color: var(--byg-kop); font-size: .9rem; }
.byg-gemeente ul { list-style: none; margin: 0; padding: 0; }
.byg-gemeente li { margin: 0 0 .2rem; }
.byg-gemeente a  { text-decoration: none; color: inherit; font-size: .93rem; }
.byg-gemeente a:hover { color: var(--byg-accent); text-decoration: underline; }

@media (max-width: 600px) {
  .byg-feiten li { flex-basis: 100%; }
  .byg-cta { padding: 1.5rem; }
}
