/* =====================================
   DROOMVALLEI UITGEVERIJ - BASIS CSS
   Child theme versie
   ===================================== */


/* Footer en kleine algemene correcties */
.ast-small-footer-wrap {
  display: none;
}

p.readmore button {
  margin-top: 35px;
}


/* =====================================
   Algemene Droomvallei-kleuren
   ===================================== */

.dv-auteurs,
.dv-home,
.dv-boekpagina,
.dv-manuscriptpagina,
.dv-rubriekspagina,
.dv-over-esther,
#droomvallei-informatie,
#droomvallei-home {
  --dv-accent: #516b91;
  --dv-accent-hover: #6f86aa;
  --dv-accent-donker: #3f5575;
  --dv-zacht: #eef3fb;
  --dv-zacht-2: #f6f8fd;
  --dv-rand: #d5def2;
  --dv-rand-donker: #b9c7e4;
  --dv-tekst: #34313f;
  --dv-muted: #6f6a7c;
  --dv-wit: #ffffff;
  color: var(--dv-tekst);
}


/* =====================================
   Algemene tekstlinks
   ===================================== */

.dv-tekstlink {
  color: var(--dv-accent-donker) !important;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dv-tekstlink:hover {
  color: var(--dv-tekst) !important;
}


/* =====================================
   Algemene knoppen
   ===================================== */

.dv-home a.dv-knop,
.dv-home a.dv-link,
.dv-rubriekspagina a.dv-knop,
.dv-rubriekspagina a.dv-knop-secundair,
.dv-auteur-card a,
.dv-manuscriptpagina .dv-knop,
#droomvallei-informatie a.dv-knop,
#droomvallei-informatie a.dv-knop-secundair {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  padding: 0 26px !important;
  border-radius: 999px !important;
  font-family: inherit !important;
  font-size: 0.96rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}

.dv-home a.dv-knop,
.dv-home a.dv-link,
.dv-rubriekspagina a.dv-knop,
.dv-auteur-card a,
.dv-manuscriptpagina .dv-knop,
#droomvallei-informatie a.dv-knop {
  background-color: var(--dv-accent) !important;
  border: 1px solid var(--dv-accent) !important;
  color: #ffffff !important;
  box-shadow: 0 6px 14px rgba(81, 107, 145, 0.18) !important;
}

.dv-home a.dv-knop *,
.dv-home a.dv-link *,
.dv-rubriekspagina a.dv-knop *,
.dv-rubriekspagina a.dv-knop-secundair *,
.dv-auteur-card a *,
.dv-manuscriptpagina .dv-knop *,
#droomvallei-informatie a.dv-knop *,
#droomvallei-informatie a.dv-knop-secundair * {
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.dv-home a.dv-knop:hover,
.dv-home a.dv-link:hover,
.dv-rubriekspagina a.dv-knop:hover,
.dv-auteur-card a:hover,
.dv-manuscriptpagina .dv-knop:hover,
#droomvallei-informatie a.dv-knop:hover {
  background-color: var(--dv-accent-hover) !important;
  border-color: var(--dv-accent-hover) !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

.dv-home a.dv-knop-secundair,
.dv-rubriekspagina a.dv-knop-secundair,
#droomvallei-informatie a.dv-knop-secundair {
  background-color: #ffffff !important;
  border: 1px solid var(--dv-accent) !important;
  color: var(--dv-accent-donker) !important;
  box-shadow: 0 5px 12px rgba(81, 107, 145, 0.10) !important;
}

.dv-home a.dv-knop-secundair:hover,
.dv-rubriekspagina a.dv-knop-secundair:hover,
#droomvallei-informatie a.dv-knop-secundair:hover {
  background-color: var(--dv-zacht) !important;
  border-color: var(--dv-accent-hover) !important;
  color: var(--dv-accent-donker) !important;
}


/* =====================================
   Pagina-basis
   ===================================== */

.dv-home,
.dv-rubriekspagina {
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px;
}

.dv-home *,
.dv-rubriekspagina *,
#droomvallei-informatie * {
  box-sizing: border-box;
}

.dv-home img,
.dv-rubriekspagina img,
#droomvallei-informatie img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 16px;
}

.dv-blok {
  margin-bottom: 58px;
}

.dv-knoppenrij {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  align-items: center;
  margin-top: 1.4rem;
}

.dv-sloganregel {
  color: var(--dv-accent-donker);
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.55;
}


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

.dv-hero {
  text-align: center;
  margin-bottom: 42px;
}

.dv-hero-afbeelding img {
  width: 100%;
  max-width: 900px;
  margin: 0 auto 30px;
  border-radius: 18px;
}

.dv-hero h1 {
  max-width: 840px;
  margin: 0 auto 18px;
  color: var(--dv-tekst);
  font-size: clamp(1.9rem, 3vw, 2.55rem);
  line-height: 1.16;
}

.dv-hero p {
  max-width: 720px;
  margin: 0 auto 18px;
  color: var(--dv-tekst);
  font-size: 1.04rem;
  line-height: 1.65;
}

.dv-home .dv-hero a.dv-knop {
  min-width: 260px !important;
  min-height: 46px !important;
  padding: 0 30px !important;
}


/* =====================================
   Droomvallei Mini's blok
   ===================================== */

.dv-minis-blok {
  text-align: center;
  margin-bottom: 58px;
}

.dv-minis-blok .dv-hero-afbeelding {
  display: block;
  max-width: 900px;
  margin: 0 auto 30px;
}

.dv-minis-blok .dv-hero-afbeelding img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0;
  border-radius: 18px;
}

.dv-minis-blok h2,
.dv-minis-blok p {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}


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

.dv-introblok,
.dv-keuzeblok,
.dv-auteursblok,
.dv-webshopblok {
  max-width: 820px;
  margin: 0 auto 54px;
  padding: 25px 30px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-zacht);
  box-shadow: 0 6px 18px rgba(95, 91, 138, 0.05);
}

.dv-keuzeblok,
.dv-auteursblok,
.dv-webshopblok {
  text-align: center;
}

.dv-blok h2,
.dv-keuzeblok h2,
.dv-webshopblok h2,
.dv-auteursblok h2,
.dv-verbindingsblok h2 {
  margin: 0 0 18px;
  color: var(--dv-tekst);
  font-size: clamp(1.55rem, 2.6vw, 2.15rem);
  line-height: 1.2;
  text-align: center;
}

.dv-introblok h2 {
  margin: 0 0 18px;
  color: var(--dv-tekst);
  font-size: clamp(1.45rem, 2.2vw, 1.9rem);
  line-height: 1.2;
  text-align: left;
}

.dv-introblok p,
.dv-keuzeblok p,
.dv-auteursblok p,
.dv-webshopblok p,
.dv-verbindingsblok p {
  margin: 0 0 14px;
  color: var(--dv-tekst);
  font-size: 1.02rem;
  line-height: 1.7;
}

.dv-keuzehulp {
  max-width: 760px;
  margin: 0 auto 28px;
  color: var(--dv-tekst);
  font-size: 1.03rem;
  line-height: 1.65;
  text-align: center;
}


/* =====================================
   Homepage: categoriekaarten
   Aangepast voor drie categorieen naast elkaar
   Inclusief WordPress auto-p fix
   ===================================== */

#droomvallei-home .dv-grid-categorieen,
.dv-home .dv-grid-categorieen,
.dv-categorieblok .dv-grid-categorieen {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  max-width: 1040px !important;
  margin: 30px auto 0 !important;
  align-items: stretch !important;
}

/* Voorkom dat WordPress lege p/br-tags of auto-p de grid breken */
#droomvallei-home .dv-grid-categorieen > br,
.dv-home .dv-grid-categorieen > br,
.dv-categorieblok .dv-grid-categorieen > br {
  display: none !important;
}

#droomvallei-home .dv-grid-categorieen > p:empty,
.dv-home .dv-grid-categorieen > p:empty,
.dv-categorieblok .dv-grid-categorieen > p:empty {
  display: none !important;
}

#droomvallei-home .dv-grid-categorieen > p,
.dv-home .dv-grid-categorieen > p,
.dv-categorieblok .dv-grid-categorieen > p {
  display: contents !important;
}

#droomvallei-home .dv-catkaart,
.dv-home .dv-catkaart,
.dv-categorieblok .dv-catkaart {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-height: 230px !important;
  padding: 28px 24px 56px 26px !important;
  border-radius: 24px !important;
  border: 1.5px solid var(--dv-rand) !important;
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(81, 107, 145, 0.07) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease !important;
}

#droomvallei-home .dv-catkaart:hover,
#droomvallei-home .dv-catkaart:focus,
.dv-home .dv-catkaart:hover,
.dv-home .dv-catkaart:focus,
.dv-categorieblok .dv-catkaart:hover,
.dv-categorieblok .dv-catkaart:focus {
  transform: translateY(-3px) !important;
  box-shadow: 0 14px 30px rgba(81, 107, 145, 0.13) !important;
  border-color: var(--dv-rand-donker) !important;
  text-decoration: none !important;
  outline: none !important;
}

/* Kleurvarianten */
#droomvallei-home .dv-cat-kind,
.dv-home .dv-cat-kind,
.dv-categorieblok .dv-cat-kind {
  background: #fbf7ed !important;
  border-color: #e9cf93 !important;
}

#droomvallei-home .dv-cat-fictie,
.dv-home .dv-cat-fictie,
.dv-categorieblok .dv-cat-fictie {
  background: #f4f0fb !important;
  border-color: #d8cce9 !important;
}

#droomvallei-home .dv-cat-wadden,
.dv-home .dv-cat-wadden,
.dv-categorieblok .dv-cat-wadden {
  background: #eef8f4 !important;
  border-color: #b8ddd0 !important;
}

#droomvallei-home .dv-cat-leven,
.dv-home .dv-cat-leven,
.dv-categorieblok .dv-cat-leven {
  background: var(--dv-zacht) !important;
  border-color: var(--dv-rand) !important;
}

/* Icoontje */
#droomvallei-home .dv-cat-icoon,
.dv-home .dv-cat-icoon,
.dv-categorieblok .dv-cat-icoon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 68px !important;
  height: 68px !important;
  margin: 0 0 20px !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  border: 2px solid currentColor !important;
  flex-shrink: 0 !important;
}

#droomvallei-home .dv-cat-icoon svg,
.dv-home .dv-cat-icoon svg,
.dv-categorieblok .dv-cat-icoon svg {
  display: block !important;
  width: 30px !important;
  height: 30px !important;
}

/* Icoontjeskleuren */
#droomvallei-home .dv-cat-kind .dv-cat-icoon,
.dv-home .dv-cat-kind .dv-cat-icoon,
.dv-categorieblok .dv-cat-kind .dv-cat-icoon {
  color: #c09540 !important;
}

#droomvallei-home .dv-cat-fictie .dv-cat-icoon,
.dv-home .dv-cat-fictie .dv-cat-icoon,
.dv-categorieblok .dv-cat-fictie .dv-cat-icoon {
  color: #8a6bbf !important;
}

#droomvallei-home .dv-cat-wadden .dv-cat-icoon,
.dv-home .dv-cat-wadden .dv-cat-icoon,
.dv-categorieblok .dv-cat-wadden .dv-cat-icoon {
  color: #4a8c78 !important;
}

#droomvallei-home .dv-cat-leven .dv-cat-icoon,
.dv-home .dv-cat-leven .dv-cat-icoon,
.dv-categorieblok .dv-cat-leven .dv-cat-icoon {
  color: var(--dv-accent) !important;
}

/* Tekst */
#droomvallei-home .dv-cat-inhoud,
.dv-home .dv-cat-inhoud,
.dv-categorieblok .dv-cat-inhoud {
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
  width: 100% !important;
  text-align: left !important;
}

#droomvallei-home .dv-cat-titel,
.dv-home .dv-cat-titel,
.dv-categorieblok .dv-cat-titel {
  display: block !important;
  margin: 0 !important;
  color: #2f3463 !important;
  font-size: 1.35rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

#droomvallei-home .dv-cat-tekst,
.dv-home .dv-cat-tekst,
.dv-categorieblok .dv-cat-tekst {
  display: block !important;
  margin: 0 !important;
  color: var(--dv-muted) !important;
  font-size: 0.98rem !important;
  line-height: 1.55 !important;
}

/* Pijl rechtsonder */
#droomvallei-home .dv-cat-pijl,
.dv-home .dv-cat-pijl,
.dv-categorieblok .dv-cat-pijl {
  position: absolute !important;
  right: 22px !important;
  bottom: 20px !important;
  color: var(--dv-accent) !important;
  font-size: 1.55rem !important;
  line-height: 1 !important;
}


/* =====================================
   Keuze- en websitekaarten
   ===================================== */

.dv-grid {
  display: grid !important;
  gap: 22px;
}

.dv-auteurskeuzes,
.dv-grid-websites {
  display: grid;
  gap: 1.25rem;
  margin-top: 1.5rem;
}

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

.dv-keuzeblok .dv-auteurskeuzes {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dv-grid-websites {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* Veilige auto-p fix voor kaartgrids */
.dv-auteurskeuzes > br,
.dv-grid-websites > br {
  display: none !important;
}

.dv-auteurskeuzes > p:empty,
.dv-grid-websites > p:empty {
  display: none !important;
}

.dv-auteurskeuzes > p,
.dv-grid-websites > p {
  display: contents !important;
}

.dv-keuzekaart,
.dv-websitekaart,
.dv-sitekaart {
  display: block;
  padding: 1.4rem;
  border-radius: 1rem;
  background: #ffffff;
  color: var(--dv-tekst);
  text-decoration: none !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dv-keuzekaart:hover,
.dv-websitekaart:hover,
.dv-sitekaart:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.dv-keuzekaart h3,
.dv-websitekaart h3,
.dv-sitekaart h3 {
  margin: 0 0 0.5rem;
  color: var(--dv-accent-donker);
  font-size: 1.08rem;
  line-height: 1.3;
}

.dv-keuzekaart p,
.dv-websitekaart p,
.dv-sitekaart p {
  margin: 0;
  color: var(--dv-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}

.dv-keuzekaart .dv-kaart-titel,
.dv-websitekaart .dv-kaart-titel,
.dv-sitekaart .dv-kaart-titel {
  display: block;
  margin: 0 0 0.5rem;
  color: var(--dv-accent-donker);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.3;
}

.dv-keuzekaart .dv-kaart-tekst,
.dv-websitekaart .dv-kaart-tekst,
.dv-sitekaart .dv-kaart-tekst {
  display: block;
  margin: 0;
  color: var(--dv-muted);
  font-size: 0.95rem;
  line-height: 1.55;
}


/* =====================================
   Verbindingsblok
   ===================================== */

.dv-verbindingsblok {
  margin-top: 3rem;
  margin-bottom: 72px;
  padding: 2rem;
  border-radius: 1.5rem;
  background: var(--dv-zacht);
  border: 1px solid var(--dv-rand);
}


/* =====================================
   Boekkaarten homepage
   ===================================== */

.dv-boeken-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 960px;
  margin: 0 auto;
}

.dv-boek {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  min-height: 430px !important;
  padding: 16px;
  border: 1px solid var(--dv-rand);
  border-radius: 20px;
  background: var(--dv-wit);
  box-shadow: 0 8px 20px rgba(95, 91, 138, 0.06);
}

.dv-boek > a:first-child {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 220px !important;
  margin-bottom: 14px !important;
}

.dv-boek img,
.dv-boek > a:first-child img {
  width: auto !important;
  max-width: 190px !important;
  height: auto !important;
  max-height: 220px !important;
  margin: 0 auto !important;
  object-fit: contain !important;
  border-radius: 10px;
  background: transparent;
}

.dv-boek a {
  color: inherit;
  text-decoration: none !important;
}

.dv-boek h3 {
  min-height: 44px !important;
  margin: 0 0 8px !important;
  color: var(--dv-tekst);
  font-size: 1.05rem;
  line-height: 1.3;
}

.dv-boek p {
  min-height: 44px !important;
  margin: 0 0 12px !important;
  color: var(--dv-muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

.dv-home .dv-boek a.dv-link {
  min-height: 38px !important;
  margin-top: auto !important;
  padding: 0 18px !important;
  font-size: 0.88rem !important;
}


/* =====================================
   Auteurspagina
   ===================================== */

body.page-id-9496 .entry-title {
  display: none !important;
}

.dv-auteurs-intro,
.dv-auteurs-extra {
  margin-bottom: 28px;
  padding: 26px 30px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-zacht);
  box-shadow: 0 6px 18px rgba(95, 91, 138, 0.05);
}

.dv-auteurs .dv-auteurs-intro {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 260px;
  gap: 32px;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto 32px;
  padding: 34px 38px;
  border: 1px solid var(--dv-rand);
  border-radius: 24px;
  background: linear-gradient(135deg, var(--dv-zacht) 0%, var(--dv-zacht-2) 100%);
  box-shadow: 0 10px 28px rgba(95, 91, 138, 0.08);
}

.dv-auteurs .dv-auteurs-introtekst h1 {
  margin: 0 0 18px;
  color: var(--dv-tekst);
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.15;
}

.dv-auteurs .dv-auteurs-introtekst p {
  max-width: 720px;
  margin: 0 0 12px;
  color: var(--dv-tekst);
  font-size: 1.02rem;
  line-height: 1.7;
}

.dv-auteurs .dv-auteurs-introkaart {
  padding: 24px;
  border: 1px solid var(--dv-rand-donker);
  border-radius: 22px;
  background: #ffffff;
  text-align: center;
  box-shadow: 0 8px 22px rgba(95, 91, 138, 0.07);
}

.dv-auteurs .dv-auteurs-introkaart strong {
  display: block;
  color: var(--dv-accent-donker);
  font-size: 1.45rem;
  line-height: 1.2;
}

.dv-auteurs .dv-auteurs-introkaart span {
  display: block;
  margin-top: 8px;
  color: var(--dv-muted);
  font-size: 0.95rem;
  line-height: 1.45;
}

.dv-auteurs .dv-auteurs-webshoplink {
  max-width: 1080px !important;
  margin: 0 auto 22px !important;
  color: var(--dv-tekst) !important;
  font-size: 1rem !important;
  line-height: 1.65 !important;
}

.dv-auteurs .dv-auteurs-webshoplink a,
.dv-auteurs .dv-auteurs-webshoplink a.dv-tekstlink {
  display: inline !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--dv-accent-donker) !important;
  font-weight: 700 !important;
  line-height: inherit !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

.dv-auteurs .dv-auteurs-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 18px;
  max-width: 1080px;
  margin: 0 auto 34px;
  align-items: stretch !important;
  grid-auto-rows: 1fr !important;
}

.dv-auteurs .dv-auteur-card {
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  height: 100% !important;
  min-height: 245px !important;
  padding: 20px 18px !important;
  border: 1px solid var(--dv-rand);
  border-radius: 18px;
  background: var(--dv-wit);
  box-shadow: 0 8px 20px rgba(95, 91, 138, 0.06);
  align-content: stretch !important;
}

.dv-auteurs .dv-auteur-card h2 {
  min-height: 52px !important;
  margin: 0 0 10px !important;
  color: var(--dv-tekst) !important;
  font-size: 1.02rem !important;
  line-height: 1.32 !important;
}

.dv-auteurs .dv-auteur-card p {
  min-height: 0 !important;
  margin: 0 0 18px !important;
  color: var(--dv-muted);
  font-size: 0.94rem;
  line-height: 1.55;
  align-self: start !important;
}

.dv-auteurs .dv-auteur-card > a {
  grid-row: 3 !important;
  align-self: end !important;
  justify-self: start !important;
  margin-top: 0 !important;
  min-height: 38px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 18px !important;
  font-size: 0.9rem !important;
}

.dv-auteurs .dv-auteur-card.dv-bundel {
  background: #f8f2ec;
  border-color: rgba(81, 107, 145, 0.22);
}

.dv-auteurs .dv-auteurs-extra {
  max-width: 860px;
  margin: 0 auto 32px;
  padding: 28px 32px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-zacht);
  box-shadow: 0 8px 22px rgba(95, 91, 138, 0.06);
}

.dv-auteurs .dv-auteurs-extra h2 {
  margin: 0 0 14px;
  color: var(--dv-accent-donker);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  line-height: 1.2;
}

.dv-auteurs .dv-auteurs-extra p {
  margin: 0;
  color: var(--dv-tekst);
  font-size: 1.02rem;
  line-height: 1.7;
}


/* =====================================
   Boekpagina
   ===================================== */

.dv-boekpagina {
  --dv-groen: #4a7c6f;
  --dv-groen-zacht: #edf4f2;
  max-width: 760px;
  margin: 0 auto;
  color: var(--dv-tekst);
  font-size: 1rem;
  line-height: 1.75;
}

.dv-boekpagina * {
  box-sizing: border-box;
}

.dv-boek-intro,
.dv-boek-blok,
.dv-maker-blok,
.dv-boekgegevens,
.dv-faq-blok,
.dv-recensie-blok {
  margin: 0 0 1.4rem;
  padding: 1.5rem;
  border: 1px solid var(--dv-rand);
  border-radius: 18px;
  background: var(--dv-zacht-2);
}

.dv-boek-intro {
  background: var(--dv-zacht);
}

.dv-boekpagina h1,
.dv-boekpagina h2,
.dv-boekpagina h3 {
  margin: 0 0 0.75rem;
  color: var(--dv-accent-donker);
  line-height: 1.3;
}

.dv-boekpagina h1 { font-size: 1.75rem; }
.dv-boekpagina h2 { font-size: 1.35rem; }
.dv-boekpagina h3 { font-size: 1.1rem; }

.dv-boekpagina p {
  margin: 0 0 1rem;
}

.dv-boekpagina p:last-child {
  margin-bottom: 0;
}

.dv-ondertitel {
  margin: 0 0 1rem;
  color: var(--dv-accent);
  font-size: 1.05rem;
  font-style: italic;
}

.dv-highlight {
  color: var(--dv-accent-donker);
  font-weight: 700;
}

.dv-badge-rij,
.dv-thema-rij {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.dv-badge-rij { margin: 1rem 0 0; }
.dv-thema-rij { margin: 0.75rem 0 0; }

.dv-badge {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0.3rem 0.85rem;
  border-radius: 20px;
  background: var(--dv-accent);
  color: #ffffff;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.2;
}

.dv-badge.licht {
  border: 1.5px solid var(--dv-accent);
  background: var(--dv-wit);
  color: var(--dv-accent-donker);
}

.dv-korte-info {
  margin: 1rem 0 0;
  padding: 1rem 1.1rem;
  border-left: 5px solid var(--dv-accent);
  border-radius: 14px;
  background: var(--dv-wit);
}

.dv-voor-wie {
  margin: 1rem 0 0;
  padding: 1rem 1.1rem;
  border: 1px solid #b5d5cc;
  border-radius: 14px;
  background: var(--dv-groen-zacht);
}

.dv-voor-wie h3 {
  margin-bottom: 0.5rem;
  color: var(--dv-groen);
  font-size: 1rem;
}

.dv-voor-wie ul {
  margin: 0;
  padding-left: 1.2rem;
}

.dv-voor-wie li {
  margin-bottom: 0.3rem;
  font-size: 0.95rem;
}

.dv-thema-tag {
  padding: 0.25rem 0.8rem;
  border: 1px solid var(--dv-rand);
  border-radius: 20px;
  background: var(--dv-zacht);
  color: var(--dv-accent-donker);
  font-size: 0.83rem;
}

.dv-boekgegevens ul {
  display: grid;
  gap: 0.45rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.dv-boekgegevens li {
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--dv-rand);
  font-size: 0.95rem;
}

.dv-boekgegevens li:last-child {
  border-bottom: none;
}

.dv-label {
  color: var(--dv-accent-donker);
  font-weight: 700;
}

.dv-citaat {
  margin: 0 0 0.8rem;
  padding: 0.9rem 1.1rem;
  border-left: 4px solid var(--dv-accent);
  border-radius: 10px;
  background: var(--dv-wit);
  font-size: 0.97rem;
  font-style: italic;
}

.dv-citaat-bron {
  display: block;
  margin-top: 0.4rem;
  color: var(--dv-accent);
  font-size: 0.83rem;
  font-style: normal;
}

.dv-kleine-tekst {
  color: var(--dv-accent);
  font-size: 0.9rem;
}

.dv-faq-blok details {
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--dv-rand);
}

.dv-faq-blok details:last-child {
  border-bottom: none;
}

.dv-faq-blok summary {
  padding: 0.2rem 0;
  color: var(--dv-accent-donker);
  cursor: pointer;
  font-size: 0.97rem;
  font-weight: 700;
  list-style: none;
}

.dv-faq-blok summary::-webkit-details-marker {
  display: none;
}

.dv-faq-blok summary::before { content: '+ '; color: var(--dv-accent); }
.dv-faq-blok details[open] summary::before { content: '- '; }

.dv-faq-blok details p {
  margin: 0.6rem 0 0.2rem 1.2rem;
  font-size: 0.93rem;
}


/* =====================================
   Manuscriptpagina
   ===================================== */

.dv-manuscriptpagina {
  max-width: 960px;
  margin: 0 auto;
  padding: 2rem 1rem 3rem;
}

.dv-pagina-intro,
.dv-contentblok {
  margin-bottom: 2rem;
  padding: 2rem;
  border-radius: 1.5rem;
  background: #ffffff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06);
}

.dv-pagina-intro {
  background: #f8f2ec;
  text-align: center;
}

.dv-pagina-intro h1,
.dv-contentblok h2 {
  margin-top: 0;
}

.dv-contentblok ul {
  margin-left: 1.25rem;
}

.dv-contentblok li {
  margin-bottom: 0.45rem;
}

.dv-mini-blok,
.dv-clubhuisblok { background: var(--dv-zacht); }
.dv-marketingblok { background: #f8f2ec; }
.dv-statusblok { border: 1px solid rgba(0, 0, 0, 0.08); }


/* =====================================
   Rubriekspagina's en blogoverzichten
   ===================================== */

.dv-rubriekspagina .dv-pagina-intro,
.dv-rubriekspagina .dv-verbindingsblok {
  max-width: 820px;
  margin: 0 auto 54px;
  padding: 28px 32px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-zacht);
  box-shadow: 0 6px 18px rgba(95, 91, 138, 0.05);
}

.dv-rubriekspagina .dv-pagina-intro h1,
.dv-rubriekspagina .dv-blok h2,
.dv-rubriekspagina .dv-verbindingsblok h2 {
  margin: 0 0 18px;
  color: var(--dv-tekst);
  line-height: 1.2;
}

.dv-rubriekspagina .dv-pagina-intro h1 {
  font-size: clamp(1.9rem, 3vw, 2.55rem);
}

.dv-rubriekspagina .dv-blok h2,
.dv-rubriekspagina .dv-verbindingsblok h2 {
  font-size: clamp(1.45rem, 2.4vw, 2rem);
}

.dv-rubriekspagina p {
  margin: 0 0 14px;
  line-height: 1.7;
}

.dv-rubriekspagina .dv-blok {
  margin-bottom: 54px;
}

.dv-rubriekspagina .dv-blok > h2,
.dv-rubriekspagina .dv-blok > .dv-keuzehulp {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}

.dv-rubriekspagina .dv-keuzehulp {
  color: var(--dv-muted);
  font-size: 1rem;
  line-height: 1.65;
}

/* Blogkaarten (oud) */
.dv-grid-blogs {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  max-width: 980px;
  margin: 24px auto 0;
}

.dv-blogkaart {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 240px;
  padding: 24px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-wit);
  box-shadow: 0 8px 22px rgba(95, 91, 138, 0.07);
  text-decoration: none !important;
  color: var(--dv-tekst) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dv-blogkaart:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px rgba(95, 91, 138, 0.12);
  border-color: var(--dv-rand-donker);
}

.dv-blogkaart h3 {
  margin: 0 0 12px;
  color: var(--dv-accent-donker);
  font-size: 1.15rem;
  line-height: 1.3;
}

.dv-blogkaart p {
  margin: 0;
  color: var(--dv-muted);
  font-size: 0.97rem;
  line-height: 1.65;
}

.dv-blogkaart::after {
  content: "Lees blog ->";
  display: inline-block;
  margin-top: 18px;
  color: var(--dv-accent);
  font-weight: 700;
  font-size: 0.92rem;
}

/* Blogkaarten (nieuw / ODO / interviews) */
.dv-odo-blogs {
  max-width: 1040px;
  margin: 0 auto 54px;
}

.dv-odo-blogs > h2,
.dv-odo-blogs > .dv-keuzehulp {
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.dv-odo-bloggrid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 22px !important;
  max-width: 1080px;
  margin: 28px auto 28px !important;
}

.dv-odo-bloggrid > br,
.dv-odo-bloggrid > p:empty {
  display: none !important;
}

.dv-odo-bloggrid > p {
  display: contents !important;
}

.dv-odo-blogkaart {
  display: flex !important;
  flex-direction: column !important;
  min-height: 280px;
  padding: 24px !important;
  border: 1px solid var(--dv-rand) !important;
  border-radius: 22px !important;
  background: #ffffff !important;
  color: var(--dv-tekst) !important;
  text-decoration: none !important;
  box-shadow: 0 8px 22px rgba(95, 91, 138, 0.07) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.dv-odo-blogkaart:hover {
  transform: translateY(-4px);
  border-color: var(--dv-rand-donker) !important;
  box-shadow: 0 14px 30px rgba(95, 91, 138, 0.12) !important;
}

.dv-odo-label {
  display: inline-flex;
  align-self: flex-start;
  margin-bottom: 16px;
  padding: 6px 12px;
  border-radius: 999px;
  background: var(--dv-zacht);
  color: var(--dv-accent-donker);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
}

.dv-odo-blogkaart h3,
.dv-odo-blogkaart .dv-odo-titel {
  display: block;
  margin: 0 0 12px !important;
  color: var(--dv-accent-donker) !important;
  font-size: 1.08rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
}

.dv-odo-blogkaart p,
.dv-odo-blogkaart .dv-odo-tekst {
  display: block;
  margin: 0 !important;
  color: var(--dv-muted) !important;
  font-size: 0.94rem !important;
  line-height: 1.6 !important;
}

.dv-odo-leesmeer {
  margin-top: auto;
  padding-top: 20px;
  color: var(--dv-accent-donker);
  font-weight: 700;
  font-size: 0.92rem;
}


/* =====================================
   Interviewblokken
   ===================================== */

.dv-home .dv-interviewblok,
.dv-rubriekspagina .dv-interviewblok {
  max-width: 820px;
  margin: 0 auto 2rem;
  padding: 25px 30px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-zacht-2);
  box-shadow: 0 6px 18px rgba(95, 91, 138, 0.05);
}

.dv-home .dv-interviewblok h3,
.dv-rubriekspagina .dv-interviewblok h3 {
  margin: 1.8rem 0 0.75rem;
  color: var(--dv-accent-donker);
  font-size: 1.15rem;
  line-height: 1.35;
}

.dv-home .dv-interviewblok h3:first-child,
.dv-rubriekspagina .dv-interviewblok h3:first-child {
  margin-top: 0;
}

.dv-home .dv-interviewblok p,
.dv-rubriekspagina .dv-interviewblok p {
  margin: 0 0 1rem;
  color: var(--dv-tekst);
  font-size: 1.02rem;
  line-height: 1.7;
}

.dv-home .dv-interviewblok a,
.dv-rubriekspagina .dv-interviewblok a {
  color: var(--dv-accent-donker);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.dv-home .dv-interviewblok a:hover,
.dv-rubriekspagina .dv-interviewblok a:hover {
  color: var(--dv-tekst);
}

.dv-interviewbeeld {
  margin: 1.6rem auto 0;
  text-align: center;
}

.dv-interviewbeeld a {
  display: inline-block;
}

.dv-interviewbeeld img {
  display: block;
  max-width: 460px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border-radius: 18px;
  box-shadow: 0 8px 20px rgba(95, 91, 138, 0.08);
}

.dv-home .dv-interviewblok p a.dv-tekstlink,
.dv-home .dv-verbindingsblok p a.dv-tekstlink,
.dv-home .dv-pagina-intro p a.dv-tekstlink,
.dv-rubriekspagina .dv-interviewblok p a.dv-tekstlink,
.dv-rubriekspagina .dv-verbindingsblok p a.dv-tekstlink,
.dv-rubriekspagina .dv-pagina-intro p a.dv-tekstlink {
  display: inline;
}


/* =====================================
   Over-pagina (#droomvallei-informatie)
   ===================================== */

#droomvallei-informatie {
  max-width: 1120px;
  margin: 0 auto;
  padding: 32px 24px 56px;
  color: var(--dv-tekst);
  font-size: 1.04rem;
  line-height: 1.75;
}

#droomvallei-informatie p {
  margin: 0 0 1rem;
}

#droomvallei-informatie a {
  color: var(--dv-accent-donker);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

#droomvallei-informatie a:hover {
  color: var(--dv-tekst);
}

#droomvallei-informatie .dv-over-intro {
  max-width: 1040px !important;
  margin: 0 auto 42px;
  padding: 44px 48px !important;
  border: 1px solid var(--dv-rand);
  border-radius: 28px;
  background: linear-gradient(135deg, var(--dv-zacht) 0%, var(--dv-zacht-2) 100%);
  box-shadow: 0 10px 28px rgba(95, 91, 138, 0.08);
}

#droomvallei-informatie .dv-over-introgrid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 300px !important;
  gap: 42px !important;
  align-items: center !important;
}

#droomvallei-informatie .dv-over-introtekst {
  max-width: none !important;
  width: 100% !important;
}

#droomvallei-informatie .dv-over-introtekst h1 {
  max-width: 720px !important;
  margin: 0 0 18px !important;
  color: var(--dv-tekst);
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.14;
  letter-spacing: -0.02em;
}

#droomvallei-informatie .dv-over-introtekst .dv-sloganregel {
  max-width: 680px !important;
  margin: 0 0 18px;
  color: var(--dv-accent-donker);
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.55;
}

#droomvallei-informatie .dv-over-introtekst p {
  max-width: 680px !important;
  color: var(--dv-tekst);
  font-size: 1.02rem !important;
  line-height: 1.72 !important;
}

#droomvallei-informatie .dv-over-portret {
  max-width: 300px !important;
  margin: 0 !important;
  text-align: center !important;
  justify-self: center !important;
}

#droomvallei-informatie .dv-over-portret img {
  display: block !important;
  width: 100% !important;
  max-width: 300px !important;
  height: auto !important;
  margin: 0 auto !important;
  border-radius: 28px !important;
  box-shadow: 0 18px 42px rgba(61, 80, 115, 0.18) !important;
}

#droomvallei-informatie .dv-over-portret figcaption {
  margin-top: 14px !important;
  color: #4f6287 !important;
  font-size: 0.95rem !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

#droomvallei-informatie .dv-over-portret figcaption span {
  display: block;
  margin-top: 2px;
  font-size: 0.9rem;
  opacity: 0.85;
}

#droomvallei-informatie .dv-over-blok {
  max-width: 860px;
  margin: 0 auto 28px;
  padding: 30px 34px;
  border: 1px solid var(--dv-rand);
  border-radius: 22px;
  background: var(--dv-wit);
  box-shadow: 0 8px 22px rgba(95, 91, 138, 0.06);
}

#droomvallei-informatie .dv-over-blok:nth-of-type(even) {
  background: var(--dv-zacht-2);
}

#droomvallei-informatie .dv-over-blok h2 {
  margin: 0 0 16px;
  color: var(--dv-accent-donker);
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  line-height: 1.22;
}

#droomvallei-informatie .dv-over-blok h2::after {
  content: "";
  display: block;
  width: 68px;
  height: 3px;
  margin-top: 12px;
  border-radius: 999px;
  background: var(--dv-accent);
  opacity: 0.55;
}

#droomvallei-informatie .dv-over-blok p:last-child {
  margin-bottom: 0;
}

#droomvallei-informatie .dv-over-impact {
  background: #f8f2ec;
  border-color: rgba(81, 107, 145, 0.16);
}

#droomvallei-informatie .dv-over-slot {
  max-width: 900px;
  margin: 42px auto 0;
  padding: 36px;
  border: 1px solid var(--dv-rand-donker);
  border-radius: 26px;
  background: var(--dv-zacht);
  box-shadow: 0 10px 28px rgba(95, 91, 138, 0.08);
}

#droomvallei-informatie .dv-over-slot h2 {
  margin: 0 0 16px;
  color: var(--dv-accent-donker);
  font-size: clamp(1.55rem, 2.5vw, 2.15rem);
  line-height: 1.22;
}

#droomvallei-informatie .dv-over-slot p:last-of-type {
  margin-bottom: 0;
}

#droomvallei-informatie .dv-over-knoppen {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}


/* =====================================
   Contactblok met foto
   ===================================== */

.dv-contact-esther {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.dv-contact-esther-rij {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 2rem;
  align-items: start;
  margin-top: 1.5rem;
}

.dv-contact-esther-foto {
  display: block;
  max-width: 220px;
}

.dv-contact-esther-foto img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}

.dv-contact-esther-tekst h3 {
  margin-top: 0;
}

.dv-over-foto {
  max-width: 320px;
  margin: 2rem auto 0;
}

.dv-over-foto img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}


/* =====================================
   Extra witruimte tussen homepage/rubriekblokken
   ===================================== */

/* Extra ruimte wanneer een verbindingsblok direct wordt gevolgd door een ander groot blok */
.dv-home .dv-verbindingsblok + .dv-auteursblok,
.dv-home .dv-verbindingsblok + .dv-introblok,
.dv-home .dv-verbindingsblok + .dv-verbindingsblok,
.dv-rubriekspagina .dv-verbindingsblok + .dv-introblok,
.dv-rubriekspagina .dv-verbindingsblok + .dv-verbindingsblok {
  margin-top: 72px !important;
}

/* Extra ruimte na brede kaartblokken binnen verbindingsblokken */
.dv-home .dv-verbindingsblok .dv-knoppenrij:last-child,
.dv-rubriekspagina .dv-verbindingsblok .dv-knoppenrij:last-child {
  margin-bottom: 0 !important;
}

/* Zorg dat het auteurblok niet tegen het vorige blok aan plakt */
.dv-home .dv-auteursblok {
  margin-top: 72px !important;
}


/* =====================================
   Knoptekst netjes centreren
   ===================================== */

.dv-knoppenrij .dv-knop,
.dv-knoppenrij .dv-knop-secundair,
.dv-home a.dv-knop,
.dv-home a.dv-knop-secundair,
.dv-rubriekspagina a.dv-knop,
.dv-rubriekspagina a.dv-knop-secundair {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
}

.dv-knoppenrij .dv-knop-tekst,
.dv-knop .dv-knop-tekst,
.dv-knop-secundair .dv-knop-tekst {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  line-height: 1.2 !important;
}


/* =====================================
   Lees-meer tekst in kaarten centreren
   ===================================== */

.dv-odo-blogkaart .dv-odo-leesmeer,
.dv-blogkaart .dv-blog-leesmeer,
.dv-keuzekaart .dv-odo-leesmeer,
.dv-sitekaart .dv-odo-leesmeer,
.dv-websitekaart .dv-odo-leesmeer {
  display: block !important;
  width: 100% !important;
  margin-top: auto !important;
  padding-top: 20px !important;
  text-align: center !important;
  align-self: stretch !important;
}


/* =====================================
   CTA-knoppen volledig centreren
   ===================================== */

.dv-knoppenrij a.dv-knop,
.dv-knoppenrij a.dv-knop-secundair,
.dv-home .dv-knoppenrij a.dv-knop,
.dv-home .dv-knoppenrij a.dv-knop-secundair,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair,
#droomvallei-home .dv-knoppenrij a.dv-knop,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-height: 46px !important;
  padding: 0 30px !important;
  line-height: 1.2 !important;
  white-space: normal !important;
  vertical-align: middle !important;
}

.dv-hero .dv-knoppenrij a.dv-knop,
.dv-hero .dv-knoppenrij a.dv-knop-secundair {
  min-width: 260px !important;
}

.dv-knoppenrij a.dv-knop .dv-knop-tekst,
.dv-knoppenrij a.dv-knop-secundair .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop-secundair .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair .dv-knop-tekst {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: inherit !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  text-align: center !important;
}


/* =====================================
   Definitieve CTA-knopfix: verticale padding i.p.v. alleen min-height
   ===================================== */

.dv-knoppenrij a.dv-knop,
.dv-knoppenrij a.dv-knop-secundair,
.dv-home .dv-knoppenrij a.dv-knop,
.dv-home .dv-knoppenrij a.dv-knop-secundair,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair,
#droomvallei-home .dv-knoppenrij a.dv-knop,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 14px 30px !important;
  line-height: 1.2 !important;
  text-align: center !important;
  white-space: normal !important;
  vertical-align: middle !important;
}

.dv-hero .dv-knoppenrij a.dv-knop,
.dv-hero .dv-knoppenrij a.dv-knop-secundair {
  min-width: 260px !important;
}

.dv-knoppenrij a.dv-knop .dv-knop-tekst,
.dv-knoppenrij a.dv-knop-secundair .dv-knop-tekst {
  display: inline-block !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  text-align: center !important;
}


/* =====================================
   Optische knoptekst-fix via span
   ===================================== */

/*
Gebruik in HTML bij voorkeur:
<a class="dv-knop" href="#"><span class="dv-knop-tekst">Knoptekst</span></a>
*/

.dv-knoppenrij a.dv-knop,
.dv-knoppenrij a.dv-knop-secundair,
.dv-home .dv-knoppenrij a.dv-knop,
.dv-home .dv-knoppenrij a.dv-knop-secundair,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair,
#droomvallei-home .dv-knoppenrij a.dv-knop,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  height: auto !important;
  padding: 0 30px !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: normal !important;
}

.dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
#droomvallei-home .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 46px !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
  position: relative !important;
  top: -1px !important;
}


/* =====================================
   Definitieve single-line CTA-knopfix
   ===================================== */

/*
Voor korte CTA-knoppen werkt line-height betrouwbaarder dan flex-correcties.
Gebruik bij voorkeur:
<a class="dv-knop" href="#"><span class="dv-knop-tekst">Knoptekst</span></a>
*/

.dv-knoppenrij a.dv-knop,
.dv-knoppenrij a.dv-knop-secundair,
.dv-home .dv-knoppenrij a.dv-knop,
.dv-home .dv-knoppenrij a.dv-knop-secundair,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair,
#droomvallei-home .dv-knoppenrij a.dv-knop,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair {
  display: inline-block !important;
  height: 46px !important;
  min-height: 46px !important;
  padding: 0 30px !important;
  line-height: 46px !important;
  text-align: center !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  white-space: nowrap !important;
}

.dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-home .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
.dv-rubriekspagina .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst,
#droomvallei-home .dv-knoppenrij a.dv-knop > .dv-knop-tekst,
#droomvallei-home .dv-knoppenrij a.dv-knop-secundair > .dv-knop-tekst {
  display: inline !important;
  width: auto !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 46px !important;
  text-align: center !important;
  position: static !important;
  top: auto !important;
}

.dv-hero .dv-knoppenrij a.dv-knop,
.dv-hero .dv-knoppenrij a.dv-knop-secundair {
  min-width: 260px !important;
}


/* =====================================
   Responsive
   ===================================== */

@media (max-width: 1050px) {
  .dv-odo-bloggrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 760px;
  }
}

@media (max-width: 980px) {
  #droomvallei-informatie .dv-over-intro {
    padding: 36px 32px !important;
  }

  #droomvallei-informatie .dv-over-introgrid {
    grid-template-columns: minmax(0, 1fr) 260px !important;
    gap: 32px !important;
  }

  #droomvallei-informatie .dv-over-portret,
  #droomvallei-informatie .dv-over-portret img {
    max-width: 260px !important;
  }

  #droomvallei-informatie .dv-over-introtekst .dv-sloganregel,
  #droomvallei-informatie .dv-over-introtekst p {
    max-width: none !important;
  }

  .dv-auteurs .dv-auteurs-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .dv-auteurs .dv-auteurs-intro {
    grid-template-columns: 1fr;
  }

  .dv-auteurs .dv-auteurs-introkaart {
    max-width: 360px;
  }
}

@media (max-width: 900px) {
  .dv-boeken-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 720px;
  }

  .dv-hero h1 {
    font-size: clamp(1.8rem, 5vw, 2.35rem);
  }

  .dv-keuzeblok .dv-auteurskeuzes,
  .dv-grid-websites {
    grid-template-columns: 1fr;
  }

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

  #droomvallei-home .dv-grid-categorieen,
  .dv-home .dv-grid-categorieen,
  .dv-categorieblok .dv-grid-categorieen {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    max-width: 1040px !important;
  }
}

@media (max-width: 800px) {
  .dv-auteurskeuzes {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  #droomvallei-informatie {
    padding: 24px 16px 44px;
    font-size: 1rem;
  }

  #droomvallei-informatie .dv-over-intro {
    padding: 28px 22px !important;
    border-radius: 22px;
  }

  #droomvallei-informatie .dv-over-introgrid {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
  }

  #droomvallei-informatie .dv-over-portret {
    order: -1 !important;
  }

  #droomvallei-informatie .dv-over-portret,
  #droomvallei-informatie .dv-over-portret img {
    max-width: 300px !important;
  }

  #droomvallei-informatie .dv-over-introtekst h1 {
    font-size: 1.85rem;
  }

  #droomvallei-informatie .dv-over-blok,
  #droomvallei-informatie .dv-over-slot {
    padding: 22px;
    border-radius: 20px;
  }

  #droomvallei-informatie .dv-over-knoppen {
    flex-direction: column;
  }

  #droomvallei-informatie a.dv-knop,
  #droomvallei-informatie a.dv-knop-secundair {
    width: 100% !important;
  }
}

@media (max-width: 700px) {
  .dv-boek-intro,
  .dv-boek-blok,
  .dv-maker-blok,
  .dv-boekgegevens,
  .dv-faq-blok,
  .dv-recensie-blok {
    padding: 1.1rem;
    border-radius: 14px;
  }

  .dv-boekpagina h1 { font-size: 1.45rem; }
  .dv-boekpagina h2 { font-size: 1.2rem; }

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

  .dv-auteurs .dv-auteurs-intro {
    padding: 26px 22px;
  }

  .dv-contact-esther-rij {
    grid-template-columns: 1fr;
  }

  .dv-contact-esther-foto {
    max-width: 220px;
    margin: 0 auto;
  }
}

@media (max-width: 640px) {
  .dv-rubriekspagina {
    padding: 16px;
  }

  .dv-rubriekspagina .dv-pagina-intro,
  .dv-rubriekspagina .dv-verbindingsblok {
    padding: 22px;
  }

  .dv-grid-blogs,
  .dv-odo-bloggrid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }

  .dv-blogkaart,
  .dv-odo-blogkaart {
    min-height: 0;
    padding: 20px !important;
  }

  .dv-rubriekspagina .dv-knoppenrij {
    flex-direction: column;
  }

  .dv-rubriekspagina a.dv-knop,
  .dv-rubriekspagina a.dv-knop-secundair {
    width: 100% !important;
  }
}

@media (max-width: 560px) {
  .dv-home {
    padding: 16px;
  }

  .dv-boeken-grid {
    grid-template-columns: 1fr;
  }

  .dv-introblok,
  .dv-keuzeblok,
  .dv-auteursblok,
  .dv-webshopblok,
  .dv-auteurs-intro,
  .dv-auteurs-extra {
    padding: 22px;
  }

  .dv-home a.dv-knop,
  .dv-home a.dv-link,
  .dv-auteur-card a,
  .dv-manuscriptpagina .dv-knop {
    width: 100% !important;
    min-width: 0 !important;
  }

  .dv-knoppenrij {
    flex-direction: column;
  }

  .dv-boek img {
    max-width: 240px !important;
  }

  .dv-home .dv-interviewblok,
  .dv-rubriekspagina .dv-interviewblok {
    padding: 22px;
  }

  .dv-interviewbeeld img {
    max-width: 340px;
  }

  #droomvallei-home .dv-grid-categorieen,
  .dv-home .dv-grid-categorieen,
  .dv-categorieblok .dv-grid-categorieen {
    grid-template-columns: 1fr !important;
    max-width: 420px !important;
    gap: 18px !important;
  }

  #droomvallei-home .dv-catkaart,
  .dv-home .dv-catkaart,
  .dv-categorieblok .dv-catkaart {
    padding: 24px 20px 52px 22px !important;
    min-height: auto !important;
  }
}

@media (max-width: 520px) {
  .dv-auteurs .dv-auteurs-grid {
    grid-template-columns: 1fr;
  }

  .dv-auteurs .dv-auteur-card {
    min-height: 0 !important;
  }

  .dv-auteurs .dv-auteur-card h2 {
    min-height: 0 !important;
  }

  .dv-auteurs .dv-auteur-card > a {
    width: 100% !important;
    justify-self: stretch !important;
  }

  .dv-auteurs .dv-auteurs-extra {
    padding: 24px 22px;
  }

  #droomvallei-home .dv-catkaart,
  .dv-home .dv-catkaart,
  .dv-categorieblok .dv-catkaart {
    min-height: 0 !important;
  }
}
