/* =============================================================================
   VARIANT-A.CSS — Tuincentrum de Groene Tuin
   Gebaseerd op gardendemo.ontwerp.live/v2/
   Warm groen, organisch, Playfair Display + Poppins

   Vereist laadvolgorde in <head>:
     1. shared/css/base.css
     2. shared/css/brand.css
     3. css/variant-a.css   ← dit bestand

   Dit bestand bevat ALLEEN layout-afwijkingen ten opzichte van brand.css:
   - Hero layout (full-bleed achtergrondafbeelding met overlay)
   - Features grid (4-koloms)
   - Categories grid (3-koloms)
   - Seizoen grid (50/50 naast elkaar)
   - Nieuws grid (3-koloms)
   ============================================================================= */


/* -----------------------------------------------------------------------------
   5. HERO — full-bleed achtergrondafbeelding met gradient-overlay
   (Variant B: 50/50 split · Variant C: 3-blokken raster)
   ----------------------------------------------------------------------------- */
.hero {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  background-color: var(--color-primary-dark);
  background-image: url('../../images/hero-banner.jpg');
  background-size: cover;
  background-position: center center;
  overflow: hidden;
}

/* Gradient overlay */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(41, 86, 64, 0.89) 0%,
    rgba(0, 0, 0, 0.45) 100%
  );
  z-index: 1;
}

.hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  padding-top: 4rem;
  padding-bottom: 4rem;
}

.hero__content {
  max-width: 680px;
  animation: fadeInUp 0.7s ease 0.1s both;
}

/* Verberg het hero media-element — hero is een full-background sectie */
.hero__media {
  display: none;
}

.hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 6vw, 3.75rem);
  font-weight: 700;
  color: #ffffff;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  letter-spacing: -0.01em;
}

.hero__subtitle {
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.5vw, 1.125rem);
  font-weight: 300;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.75;
  margin-bottom: 2.5rem;
  max-width: 560px;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}


/* -----------------------------------------------------------------------------
   6. FEATURES GRID — 4-koloms
   (kaart-stijl zit in brand.css)
   ----------------------------------------------------------------------------- */
.features__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}


/* -----------------------------------------------------------------------------
   7. CATEGORIES GRID — 3-koloms
   (kaart-stijl zit in brand.css)
   ----------------------------------------------------------------------------- */
.categories__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}


/* -----------------------------------------------------------------------------
   8. SEIZOEN LAYOUT — 50/50 grid naast elkaar met ruimte
   (content-stijl zit in brand.css)
   ----------------------------------------------------------------------------- */
.seizoen {
  background-color: var(--color-bg-white);
  padding: var(--section-padding);
}

.seizoen__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}


/* -----------------------------------------------------------------------------
   9. NIEUWS GRID — 3 gelijke kolommen
   (kaart-stijl zit in brand.css)
   ----------------------------------------------------------------------------- */
.nieuws__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 3rem;
}


/* -----------------------------------------------------------------------------
   14. RESPONSIVE — TABLET (768px – 1023px)
   ----------------------------------------------------------------------------- */
@media (min-width: 768px) and (max-width: 1023px) {

  /* Features: 2-koloms op tablet */
  .features__list {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Categorieën: 2-koloms */
  .categories__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  /* Seizoen: gestapeld */
  .seizoen__inner {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }

  .seizoen__media {
    max-height: 400px;
    overflow: hidden;
  }

  /* Nieuws: 2-koloms + 1 breed */
  .nieuws__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .nieuws__grid .nieuws-kaart:last-child {
    grid-column: 1 / -1;
  }
}


/* -----------------------------------------------------------------------------
   15. RESPONSIVE — MOBIEL (< 768px)
   ----------------------------------------------------------------------------- */
@media (max-width: 767px) {

  /* Hero */
  .hero {
    min-height: 75vh;
  }

  .hero__inner {
    min-height: 75vh;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }

  .hero__actions {
    flex-direction: column;
    align-items: flex-start;
  }

  .hero__actions .btn {
    width: 100%;
    justify-content: center;
  }

  /* Features: 1-koloms — icoon naast de tekst i.p.v. erboven, scheelt veel hoogte.
     Het grid legt icoon links (over 2 rijen) en titel + tekst rechts. */
  .features__list {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .feature-block {
    display: grid;
    grid-template-columns: 44px 1fr;
    column-gap: 1rem;
    row-gap: 0.25rem;
    align-items: start;
    padding: 1.35rem 1.5rem;
  }

  .feature-block__icon {
    grid-row: 1 / span 2;
    width: 44px;
    height: 44px;
    margin-top: 2px;
  }

  .feature-block__icon img {
    width: 22px;
    height: 22px;
  }

  .feature-block__title {
    grid-column: 2;
    font-size: 1.125rem;
  }

  .feature-block__text {
    grid-column: 2;
    font-size: 0.875rem;
    line-height: 1.6;
  }

  /* Categorieën: 2-koloms */
  .categories__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  /* Seizoen: gestapeld */
  .seizoen__inner {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  /* Nieuws: 1-koloms — kaarten op volle breedte onder elkaar.
     Deze regel moet hier staan (niet in brand.css): de 3-koloms basisregel
     hierboven laadt later en zou een override in brand.css overschrijven. */
  .nieuws__grid {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  /* Buttons seizoen breed op mobiel */
  .seizoen__content .btn {
    width: 100%;
    justify-content: center;
  }
}


/* -----------------------------------------------------------------------------
   16. SINGLE-KOLOM GRID FIX VOOR HEEL KLEINE SCHERMEN (< 480px)
   ----------------------------------------------------------------------------- */
@media (max-width: 479px) {
  .categories__grid {
    grid-template-columns: 1fr;
  }
}


/* -----------------------------------------------------------------------------
   17. PRODUCTCATEGORIE- EN SUBCATEGORIEPAGINA'S
   Gedeelde bouwstenen voor categorie-*.html en subcategorie-*.html.
   Stond eerder als inline <style> in categorie-kamerplanten.html; verhuisd naar
   dit bestand zodra meerdere pagina's dezelfde blokken gebruiken, zodat de
   opmaak niet per pagina uit elkaar kan lopen.
   ----------------------------------------------------------------------------- */
/* PRODUCTCATEGORIE — pagina-specifieke bouwstenen (variant A) */
.pc-items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.pc-item { background: var(--color-bg-white); border-radius: var(--radius-card); box-shadow: var(--shadow-card); overflow: hidden; transition: var(--transition); }
.pc-item:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.pc-item__img { aspect-ratio: 4 / 3; overflow: hidden; }
.pc-item__img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition-img); }
.pc-item:hover .pc-item__img img { transform: scale(1.05); }
.pc-item__body { padding: 1.35rem 1.5rem 1.6rem; }
.pc-item__naam { font-family: var(--font-heading); font-size: 1.125rem; font-weight: 700; color: var(--color-text); margin-bottom: 0.3rem; }
.pc-item__latijn { display: block; font-size: 0.8rem; font-style: italic; color: var(--color-text-muted); margin-bottom: 0.6rem; }
.pc-item__tekst { font-size: 0.9rem; line-height: 1.6; color: var(--color-text-muted); max-width: none; }
.pc-item__tags { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.9rem; }
.pc-tag { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase; color: var(--color-primary-dark); background: var(--color-primary-light); border-radius: 50px; padding: 0.25rem 0.65rem; }

/* Plek-tegels (v2) */
.pc-plekken { display: grid; grid-template-columns: repeat(5, 1fr); gap: 1rem; }
.pc-plek { background: var(--color-bg-white); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: 1.5rem 1rem; text-align: center; transition: var(--transition); }
.pc-plek:hover { transform: translateY(-4px); box-shadow: var(--shadow-card-hover); }
.pc-plek__icon { width: 48px; height: 48px; margin: 0 auto 0.75rem; border-radius: 50%; background: var(--color-primary-light); display: flex; align-items: center; justify-content: center; }
.pc-plek__icon img { width: 24px; height: 24px; }
.pc-plek__naam { font-family: var(--font-heading); font-size: 1rem; font-weight: 700; color: var(--color-text); margin-bottom: 0.2rem; }
.pc-plek__tekst { font-size: 0.8rem; color: var(--color-text-muted); max-width: none; }

/* Keuzehulp (v3) */
.pc-keuze { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.pc-keuze__kaart { background: var(--color-bg-white); border-radius: var(--radius-card); box-shadow: var(--shadow-card); padding: 2rem 1.75rem; border-top: 4px solid var(--color-primary); }
.pc-keuze__vraag { font-family: var(--font-heading); font-size: 1.1875rem; font-weight: 700; color: var(--color-text); margin-bottom: 0.6rem; }
.pc-keuze__tekst { font-size: 0.9rem; line-height: 1.6; color: var(--color-text-muted); margin-bottom: 1rem; max-width: none; }
.pc-keuze__lijst { display: flex; flex-direction: column; gap: 0.45rem; }
.pc-keuze__lijst li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.9rem; color: var(--color-text); }
.pc-keuze__lijst li::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent-pink); flex-shrink: 0; }

/* FAQ (v3) */
.pc-faq { max-width: 820px; margin-inline: auto; display: flex; flex-direction: column; gap: 0.75rem; }
.pc-faq details { background: var(--color-bg-white); border-radius: var(--radius-card); box-shadow: var(--shadow-card); overflow: hidden; transition: box-shadow 0.3s ease; }
.pc-faq details[open] { box-shadow: var(--shadow-card-hover); }
.pc-faq summary { position: relative; cursor: pointer; list-style: none; padding: 1.15rem 3.5rem 1.15rem 1.5rem; font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; color: var(--color-text); transition: color 0.25s ease; }
.pc-faq summary::-webkit-details-marker { display: none; }
.pc-faq summary:hover { color: var(--color-primary); }

/* Plus die vloeiend naar een minteken morpht (twee balkjes, de verticale draait weg) */
.pc-faq summary::before,
.pc-faq summary::after {
  content: '';
  position: absolute;
  right: 1.5rem;
  top: 50%;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--color-primary);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.pc-faq summary::before { transform: translateY(-50%); }
.pc-faq summary::after { transform: translateY(-50%) rotate(90deg); }
.pc-faq details[open] summary::after { transform: translateY(-50%) rotate(0deg); }

/* Uitklap-animatie — hoogte wordt door JS gezet; zonder JS werkt <details> gewoon zonder animatie */
.pc-faq__body { overflow: hidden; transition: height 0.4s cubic-bezier(0.4, 0, 0.2, 1); }
.pc-faq--js .pc-faq__antwoord { opacity: 0; transform: translateY(-6px); transition: opacity 0.3s ease 0.08s, transform 0.3s ease 0.08s; }
.pc-faq--js details[open] .pc-faq__antwoord { opacity: 1; transform: none; }
.pc-faq__antwoord { padding: 0 1.5rem 1.35rem; font-size: 0.9375rem; line-height: 1.75; color: var(--color-text-muted); max-width: none; }

/* Advies-CTA */
.pc-cta { background: var(--color-primary); color: #fff; padding: clamp(2.5rem, 5vw, 3.5rem) 0; }
.pc-cta__inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; flex-wrap: wrap; }
.pc-cta__tekst h2 { font-family: var(--font-heading); font-size: clamp(1.5rem, 2.5vw, 2rem); color: #fff; margin-bottom: 0.4rem; }
.pc-cta__tekst p { color: rgba(255,255,255,0.9); font-size: 1rem; max-width: 52ch; }
.pc-cta .btn--wit { background: #fff; color: var(--color-primary-dark); border-color: #fff; }
.pc-cta .btn--wit:hover { background: var(--color-accent-pink); color: #fff; border-color: var(--color-accent-pink); transform: translateY(-2px); }

/* Sectie-tonen — voor afwisseling in het achtergrondritme (winnen van brand.css: later in de cascade) */
.pc-wit { background: var(--color-bg-white); }
.pc-tint { background: var(--color-bg-green-light); }
.pc-warm { background: var(--color-bg); }

/* SEO-tekstblok — ingeklapt met fade + "Lees meer" (tekst staat volledig in de HTML) */
.seo-blok { background: var(--color-bg); padding: clamp(2.5rem, 5vw, 3.5rem) 0 clamp(3rem, 6vw, 4rem); border-top: 1px solid rgba(122, 182, 72, 0.15); }
.seo-blok__inhoud { position: relative; max-width: 880px; margin-inline: auto; max-height: 11rem; overflow: hidden; transition: max-height 0.4s ease; }
.seo-blok__inhoud::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 6rem; background: linear-gradient(to bottom, rgba(249,249,247,0) 0%, var(--color-bg) 92%); pointer-events: none; transition: opacity 0.3s ease; }
.seo-blok.is-open .seo-blok__inhoud::after { opacity: 0; }
.seo-blok__inhoud h2 { font-family: var(--font-heading); font-size: clamp(1.35rem, 2.2vw, 1.75rem); font-weight: 700; color: var(--color-text); margin-bottom: 0.85rem; }
.seo-blok__inhoud h3 { font-family: var(--font-heading); font-size: 1.0625rem; font-weight: 700; color: var(--color-text); margin: 1.5rem 0 0.5rem; }
.seo-blok__inhoud p { font-size: 0.9375rem; line-height: 1.8; color: var(--color-text-muted); margin-bottom: 0.85rem; max-width: none; }
.seo-blok__inhoud a { color: var(--color-primary); font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }
.seo-blok__inhoud a:hover { color: var(--color-primary-dark); }
.seo-blok__toggle { display: inline-flex; align-items: center; gap: 0.45rem; margin: 1.25rem auto 0; padding: 0.6rem 1.4rem; background: none; border: 2px solid var(--color-primary); border-radius: var(--radius-btn); font-family: var(--font-body); font-size: 0.875rem; font-weight: 600; color: var(--color-primary); cursor: pointer; transition: var(--transition); }
.seo-blok__toggle:hover { background: var(--color-primary); color: #fff; }
.seo-blok__toggle::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-1px); transition: transform 0.25s ease; }
.seo-blok.is-open .seo-blok__toggle::after { transform: rotate(-135deg) translateY(-1px); }
.seo-blok__knopregel { display: flex; justify-content: center; }

@media (max-width: 1023px) {
  .pc-items, .pc-keuze { grid-template-columns: repeat(2, 1fr); }
  .pc-plekken { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 767px) {
  .pc-items, .pc-keuze { grid-template-columns: 1fr; }
  .pc-plekken { grid-template-columns: repeat(2, 1fr); }
  .pc-cta__inner { flex-direction: column; align-items: flex-start; }
}


/* -----------------------------------------------------------------------------
   18. PLANTPAGINA — detailniveau onder een subcategorie
   Alleen de productkop is nieuw; verzorging, problemen, verwante planten, FAQ
   en CTA hergebruiken de blokken uit sectie 17 (zie STYLEGUIDE §8.7).
   ----------------------------------------------------------------------------- */
.pd-kop { padding: var(--section-padding); }

/* Container-breedte komt van .assortiment-intro__inner; hier alleen het raster */
.pd-kop__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: start;
}

/* Beeldkolom: één groot beeld met twee kleinere eronder */
.pd-kop__media { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

.pd-kop__hoofdbeeld,
.pd-kop__thumb {
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
}

.pd-kop__hoofdbeeld { grid-column: 1 / -1; }

.pd-kop__hoofdbeeld img,
.pd-kop__thumb img { width: 100%; height: 100%; object-fit: cover; }

.pd-kop__latijn {
  font-family: var(--font-heading);
  font-style: italic;
  font-size: 1.25rem;
  color: var(--color-text-muted);
  margin-bottom: 1.1rem;
}

.pd-kop__tekst {
  font-size: 0.95rem;
  line-height: 1.8;
  color: var(--color-text-muted);
  margin-bottom: 1rem;
  max-width: none;
}

/* Kenmerkenlijst — icoon, label en waarde op één regel */
.pd-specs { margin: 1.75rem 0 1.5rem; border-top: 1px solid rgba(122, 182, 72, 0.2); }

.pd-spec {
  display: grid;
  grid-template-columns: 32px 8.5rem 1fr;
  align-items: start;
  gap: 0.9rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(122, 182, 72, 0.2);
}

.pd-spec__icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--color-primary-light);
  display: flex; align-items: center; justify-content: center;
}
.pd-spec__icon img { width: 17px; height: 17px; }

.pd-spec__label { font-family: var(--font-body); font-size: 0.9rem; font-weight: 600; color: var(--color-text); }
.pd-spec__waarde { font-family: var(--font-body); font-size: 0.9rem; line-height: 1.55; color: var(--color-text-muted); }

/* Productkaarten uit sectie 17 klikbaar maken */
.pc-item__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}

.pc-item__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 1rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--color-primary);
  transition: var(--transition);
}
.pc-item__cta::after { content: '\2192'; transition: var(--transition); }
.pc-item:hover .pc-item__cta::after { transform: translateX(4px); }

/* Beeldkolom scrollt mee zolang de kenmerkenlijst ernaast langer is, zodat de
   plant in beeld blijft terwijl je de kenmerken leest. Werkt alleen doordat
   .pd-kop__inner align-items: start heeft — met de standaard 'stretch' vult de
   kolom de volle hoogte en heeft sticky geen ruimte om te schuiven.
   De offset houdt de galerij vrij van de meescrollende header.
   Alleen op desktop: daaronder staan de kolommen onder elkaar. */
@media (min-width: 1024px) {
  .pd-kop__media {
    position: sticky;
    top: calc(var(--header-height) + 2rem);
  }
}

@media (max-width: 1023px) {
  .pd-kop__inner { grid-template-columns: 1fr; gap: 2.5rem; }
}

@media (max-width: 767px) {
  /* Kenmerken: icoon links over twee rijen, label en waarde eronder elkaar rechts */
  .pd-spec { grid-template-columns: 32px 1fr; row-gap: 0.15rem; }
  .pd-spec__icon { grid-row: 1 / span 2; }
  .pd-spec__label,
  .pd-spec__waarde { grid-column: 2; }
}

/* -----------------------------------------------------------------------------
   19. NIEUWSARTIKEL — leeslayout voor een enkel artikel
   ----------------------------------------------------------------------------- */
.artikel { padding: var(--section-padding); }

.artikel__inner {
  width: 100%;
  max-width: var(--container-width);
  margin-inline: auto;
  padding-inline: var(--container-pad-x);
}

.artikel__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
  font-family: var(--font-body);
  font-size: 0.85rem;
  color: var(--color-text-muted);
  margin-bottom: 1.25rem;
}

.artikel__tag {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-primary-dark);
  background: var(--color-primary-light);
  border-radius: 50px;
  padding: 0.25rem 0.7rem;
}

.artikel__beeld {
  margin: 0 0 2rem;
  border-radius: var(--radius-card);
  overflow: hidden;
  box-shadow: var(--shadow-card);
  aspect-ratio: 16 / 9;
}
.artikel__beeld img { width: 100%; height: 100%; object-fit: cover; display: block; }

.artikel__intro {
  font-size: 1.1875rem;
  line-height: 1.7;
  color: var(--color-text);
  margin-bottom: 1.75rem;
  max-width: none;
}

.artikel__body h2 {
  font-family: var(--font-heading);
  font-size: clamp(1.3rem, 2.2vw, 1.6rem);
  font-weight: 700;
  color: var(--color-text);
  margin: 2rem 0 0.6rem;
}

.artikel__body p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--color-text-muted);
  margin-bottom: 1.1rem;
  max-width: none;
}

.artikel__afsluiter {
  margin-top: 2.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(122, 182, 72, 0.2);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}

.artikel__terug {
  font-family: var(--font-body);
  font-weight: 600;
  color: var(--color-primary);
}


/* -----------------------------------------------------------------------------
   20. AANBIEDINGEN — overzicht (hergebruikt nieuws-kaart + kortingsbadge)
   ----------------------------------------------------------------------------- */
.aanbieding-kaart .nieuws-kaart__image-wrap,
.nieuws-kaart--aanbieding .nieuws-kaart__image-wrap { position: relative; }

.aanbieding-korting {
  position: absolute;
  top: 0.9rem;
  right: 0.9rem;
  z-index: 2;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background: var(--color-accent-pink);
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transform: rotate(-8deg);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
  border: 3px solid rgba(255, 255, 255, 0.9);
}
.aanbieding-korting strong { font-family: var(--font-heading); font-size: 1.15rem; font-weight: 700; }
.aanbieding-korting span { font-family: var(--font-body); font-size: 0.55rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; margin-top: 0.1rem; }

.aanbieding-geldig {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-body);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--color-primary-dark);
  margin-top: 0.5rem;
}

.aanbiedingen-voet {
  text-align: center;
  margin-top: 2.5rem;
  font-size: 0.9rem;
  color: var(--color-text-muted);
}

/* Nieuwsartikel-hero: het artikelbeeld als achtergrond met overlay (i.p.v. een
   los beeld dat de tekst omlaag duwt) */
.page-hero--artikel {
  position: relative;
  background-size: cover;
  background-position: center;
}
.page-hero--artikel::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.72) 0%, rgba(0, 0, 0, 0.35) 100%);
}
.page-hero--artikel .page-hero__inner {
  position: relative;
  z-index: 1;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: 3rem;
  padding-bottom: 2.5rem;
}
.page-hero--artikel .breadcrumb,
.page-hero--artikel .breadcrumb a,
.page-hero--artikel .breadcrumb__home,
.page-hero--artikel .breadcrumb__sep,
.page-hero--artikel .page-hero__title { color: #ffffff; }
.page-hero--artikel .artikel__meta { color: rgba(255, 255, 255, 0.9); margin-bottom: 1rem; }
.page-hero--artikel .artikel__tag { background: rgba(255, 255, 255, 0.22); color: #ffffff; }
