/* ==========================================================================
   Da’s Brabants — content pages
   --------------------------------------------------------------------------
   Loaded after /css/style.css on: /over-ons, /contact, /klantenservice,
   /woordenboek, /voorwaarden, /privacy and the 404 page.
   Only page-specific layout lives here; tokens and shared components come
   from style.css (see docs/frontend.md).

    1. Shared tweaks (prose + components inside prose)
    2. Over ons
    3. Contact
    4. Klantenservice
    5. Woordenboek
    6. Voorwaarden & privacy (legal)
    7. 404
    8. Motion & print
   ========================================================================== */


/* 1. Shared tweaks
   ========================================================================== */

/* Components that are lists should not get the .prose list indent/markers/spacing. */
.prose :is(.steps, .check-list, .ks-pay, .wb-entry__products, .contact-faq__list) {
  padding-inline-start: 0;
  list-style: none;
}

.prose :is(.steps, .check-list, .ks-pay) > li + li {
  margin-top: 0;
}

/* An eyebrow directly above a heading keeps them together. */
.prose .eyebrow + :is(h2, h3) {
  margin-top: var(--space-2);
}

/* .quote (chequered edge) wins over the generic .prose blockquote look. */
.prose .quote {
  padding-inline-start: calc(12px + var(--space-5));
  border-inline-start: 0;
  color: var(--inkt);
  font-style: normal;
}

.prose .quote p {
  text-wrap: balance;
}

/* Tables inside content pages may wrap their headers on small screens. */
:is(.ks-content, .legal__body) .table thead th {
  white-space: normal;
}

@media (max-width: 479px) {
  :is(.ks-content, .legal__body) .table :is(th, td) {
    padding-inline: 0.75rem;
  }
}


/* 2. Over ons
   ========================================================================== */

.about-story {
  align-items: center;
}

.about-story__text .quote {
  margin-top: 1.75em;
}

/* Decorative plate: big chequer square with a white disc and stamped dialect. */
.about-visual {
  display: grid;
  place-items: center;
  padding: var(--space-4);
}

.about-visual__plate {
  position: relative;
  display: grid;
  place-items: center;
  inline-size: min(100%, 420px);
  aspect-ratio: 1;
  border-radius: var(--radius-lg);
  background: var(--bont-gradient) 0 0 / 52px 52px;
  box-shadow: var(--shadow-lg);
  transform: rotate(2.5deg);
}

.about-visual__plate::before {
  content: "";
  position: absolute;
  inset: 13%;
  border-radius: 50%;
  background: var(--wit);
  box-shadow: 0 0 0 10px rgb(255 255 255 / 0.55), 0 18px 40px -12px rgb(134 7 14 / 0.45);
}

.about-visual__main {
  position: relative;
  z-index: 1;
  max-inline-size: 70%;
  font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.375rem);
  text-align: center;
  transform: rotate(-6deg);
}

.about-visual__stamp {
  position: absolute;
  z-index: 2;
  background: var(--wit);
  font-size: clamp(0.9375rem, 0.85rem + 0.4vw, 1.125rem);
  box-shadow: inset 0 0 0 2px var(--wit), inset 0 0 0 3.5px currentColor, 0 10px 20px -10px rgb(60 0 8 / 0.5);
}

.about-visual__stamp--1 { top: 5%; left: 3%; transform: rotate(-10deg); }
.about-visual__stamp--2 { right: 2%; bottom: 9%; transform: rotate(7deg); }
.about-visual__stamp--3 { left: 6%; bottom: 4%; transform: rotate(-3deg); color: var(--zwart); }

/* Our name: the logo big (with subtitle from 640px, see the <picture>) next to the explanation. */
.about-name {
  display: grid;
  gap: var(--space-5) clamp(1.5rem, 1rem + 3vw, 4rem);
  align-items: center;
}

@media (min-width: 960px) {
  .about-name { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
}

.about-name__logo {
  display: grid;
  place-items: center;
  padding: clamp(1.25rem, 0.75rem + 3vw, 3rem) clamp(1rem, 0.5rem + 3vw, 3rem);
  border-radius: var(--radius-md);
  background: var(--creme);
}

.about-name__logo picture {
  display: contents;
}

.about-name__logo img {
  inline-size: min(100%, 520px);
  block-size: auto;
}

/* Values */
.values {
  display: grid;
  gap: var(--space-4);
  list-style: none;
  padding: 0;
}

@media (min-width: 640px) {
  .values { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 960px) {
  .values { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
}

.value-card {
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding: var(--space-5);
  border: 1px solid var(--lijn);
  border-radius: var(--radius);
  background: var(--creme);
}

.value-card__icon {
  display: grid;
  place-items: center;
  inline-size: 52px;
  block-size: 52px;
  margin-bottom: var(--space-1);
  border-radius: 14px;
  background: var(--rood-actie);
  color: var(--wit);
  box-shadow: 0 0 0 4px var(--wit), 0 8px 16px -8px rgb(218 9 20 / 0.6);
  transform: rotate(-4deg);
}

.value-card:nth-child(even) .value-card__icon {
  transform: rotate(3deg);
}

.value-card__icon .icon {
  inline-size: 1.6rem;
  block-size: 1.6rem;
}

.value-card__title {
  font-size: var(--fs-h4);
  font-weight: 850;
}

.value-card p {
  color: var(--grijs);
  font-size: 0.9688rem;
}

/* The flag */
.flag-feature {
  align-items: center;
}

.flag-figure {
  display: grid;
  justify-items: center;
  gap: var(--space-4);
  margin: 0;
}

.flag-figure__frame {
  inline-size: min(100%, 460px);
  padding: clamp(12px, 2.5vw, 20px);
  border-radius: var(--radius-lg);
  background: var(--wit);
  box-shadow: var(--shadow-lg);
  transform: rotate(-2deg);
}

.flag {
  display: block;
  inline-size: 100%;
  block-size: auto;
  aspect-ratio: 3 / 2;
  border-radius: 4px;
  outline: 1px solid rgb(0 0 0 / 0.08);
  outline-offset: -1px;
}

.flag-figure__caption {
  max-inline-size: 38ch;
  color: var(--grijs);
  font-size: var(--fs-sm);
  text-align: center;
}

.flag-facts {
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--lijn);
  border-radius: var(--radius);
  background: var(--wit);
  font-size: 1rem;
}

.prose .flag-facts {
  margin-top: 1.5em;
}

/* Closing call to action on red. */
.about-cta {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding-bottom: calc(var(--section-space) + 12px);
}

.about-cta::after {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  block-size: 12px;
  background: var(--bont-gradient) 0 0 / 12px 12px;
}

.about-cta__inner {
  display: grid;
  gap: var(--space-5);
  align-items: center;
}

@media (min-width: 960px) {
  .about-cta__inner { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-7); }
}

.about-cta__title {
  font-size: var(--fs-h2);
}

/* 19px+ bold: white on --rood only passes contrast as large text. */
.about-cta__lead {
  max-inline-size: 44ch;
  margin-top: var(--space-2);
  font-size: clamp(1.1875rem, 1.05rem + 0.5vw, 1.375rem);
  font-weight: 700;
  line-height: 1.45;
}

.about-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}


/* 3. Contact
   ========================================================================== */

.contact-layout {
  align-items: start;
}

.contact-main {
  display: grid;
  gap: var(--space-4);
  min-inline-size: 0;
}

.contact-form-card__title {
  font-size: var(--fs-h3);
  font-weight: 900;
}

.contact-form-card__intro {
  margin-top: var(--space-1);
  margin-bottom: var(--space-5);
}

.contact-message-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.15rem var(--space-4);
}

.contact-message-meta .hint:first-child {
  flex: 1 1 18rem;
}

.contact-count {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.contact-count.is-near-limit {
  color: var(--rood-actie);
  font-weight: 700;
}

.error-summary__text {
  margin-top: var(--space-2);
}

/* Honeypot: off-screen for sighted users, aria-hidden for assistive tech. */
.hp-field {
  position: absolute !important;
  left: -10000px !important;
  inline-size: 1px !important;
  block-size: 1px !important;
  overflow: hidden !important;
}

/* Success state */
.contact-success {
  display: grid;
  justify-items: start;
  gap: var(--space-3);
  padding-block: var(--space-3);
}

.contact-success__art {
  display: grid;
  place-items: center;
  inline-size: 84px;
  block-size: 84px;
  margin-bottom: var(--space-2);
  border: 7px solid transparent;
  border-radius: 50%;
  background:
    linear-gradient(var(--succes-zacht), var(--succes-zacht)) padding-box,
    var(--bont-gradient) 0 0 / 14px 14px border-box;
  color: var(--succes);
  transform: rotate(-6deg);
}

.contact-success__art .icon {
  inline-size: 2.25rem;
  block-size: 2.25rem;
}

.contact-success__title {
  font-size: var(--fs-h2);
  font-weight: 900;
}

.contact-success__text {
  font-size: var(--fs-lg);
  font-weight: 650;
}

.contact-success__actions {
  margin-top: var(--space-3);
}

/* Contact details */
.contact-aside {
  display: grid;
  gap: var(--space-5);
  min-inline-size: 0;
}

@media (min-width: 960px) {
  .contact-aside {
    position: sticky;
    top: calc(var(--header-h) + var(--space-5));
  }
}

.contact-aside__title {
  font-size: var(--fs-h3);
  font-weight: 900;
}

.contact-list {
  display: grid;
  list-style: none;
  padding: 0;
  border-radius: var(--radius);
  background: var(--wit);
  box-shadow: var(--shadow-sm);
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
}

.contact-item + .contact-item {
  border-top: 1px solid var(--lijn);
}

.contact-item__icon {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 44px;
  block-size: 44px;
  border-radius: 50%;
  background: var(--rood-zacht);
  color: var(--rood-actie);
}

.contact-item__body {
  display: grid;
  gap: 0.1rem;
  min-inline-size: 0;
}

.contact-item__label {
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grijs);
}

.contact-item__value {
  display: inline-flex;
  align-items: center;
  min-block-size: var(--tap);
  font-size: 1.0625rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.contact-item__address {
  font-style: normal;
  font-weight: 650;
  line-height: 1.5;
}

.contact-item__note {
  font-size: var(--fs-sm);
  color: var(--grijs);
}

.contact-faq__title {
  margin-bottom: var(--space-2);
  font-size: var(--fs-h4);
  font-weight: 850;
}

.contact-faq__list {
  display: grid;
  list-style: none;
  padding: 0;
}


/* 4. Klantenservice
   ========================================================================== */

.ks-quicknav {
  padding-bottom: 0;
}

.ks-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
  list-style: none;
  padding: 0;
}

.ks-nav > li:last-child {
  grid-column: 1 / -1;
}

@media (min-width: 640px) {
  .ks-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ks-nav > li:last-child { grid-column: auto; }
}

@media (min-width: 960px) {
  .ks-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-4); }
}

/* Five narrow cards: put the icon above the text so "Veelgestelde vragen" fits. */
@media (min-width: 960px) and (max-width: 1199.98px) {
  .ks-nav .ks-nav__link {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
  }
}

.ks-nav__link {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  block-size: 100%;
  min-block-size: 68px;
  padding: var(--space-3);
  border-radius: var(--radius);
  background: var(--wit);
  box-shadow: var(--shadow-sm);
  color: var(--inkt);
  text-decoration: none;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), color var(--dur) var(--ease);
}

/* Narrow phones: icon above the text, so two columns still fit at 320px. */
@media (max-width: 479px) {
  .ks-nav__link {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2);
  }

  .ks-nav > li:last-child .ks-nav__link {
    flex-direction: row;
    align-items: center;
  }
}

@media (min-width: 640px) {
  .ks-nav__link { padding: var(--space-3) var(--space-4); }
}

.ks-nav__link:hover {
  color: var(--rood-actie);
  box-shadow: var(--shadow);
  transform: translateY(-2px);
}

.ks-nav__icon {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 44px;
  block-size: 44px;
  border-radius: 12px;
  background: var(--rood-zacht);
  color: var(--rood-actie);
}

.ks-nav__text {
  display: grid;
  min-inline-size: 0;
}

.ks-nav__title {
  font-weight: 800;
  line-height: 1.25;
}

.ks-nav__desc {
  font-size: var(--fs-xs);
  line-height: 1.35;
  color: var(--grijs);
}

.ks-content {
  --container: 880px;
  padding-bottom: var(--section-space);
}

.ks-section {
  padding-block: clamp(2.5rem, 2rem + 2vw, 3.75rem);
  border-bottom: 1px solid var(--lijn);
}

.ks-section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-4);
  margin-bottom: var(--space-5);
}

.ks-section__head--split .ks-faq-toggle {
  margin-inline-start: auto;
}

.ks-section__icon {
  display: grid;
  place-items: center;
  flex: none;
  inline-size: 52px;
  block-size: 52px;
  border-radius: 14px;
  background: var(--rood-actie);
  color: var(--wit);
  box-shadow: 0 0 0 4px var(--wit), 0 8px 16px -8px rgb(218 9 20 / 0.6);
  transform: rotate(-4deg);
}

.ks-section:nth-of-type(even) .ks-section__icon {
  transform: rotate(3deg);
}

.ks-section__icon .icon {
  inline-size: 1.6rem;
  block-size: 1.6rem;
}

.ks-section__title {
  font-size: var(--fs-h2);
}

.ks-prose {
  max-inline-size: none;
}

.ks-intro {
  font-size: var(--fs-lg);
  line-height: 1.6;
}

.ks-steps {
  margin-top: var(--space-4);
}

.ks-actions {
  margin-top: var(--space-5);
}

/* Payment methods */
.ks-pay {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 480px) {
  .ks-pay { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ks-pay__item {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--lijn);
  border-radius: var(--radius-md);
  background: var(--wit);
}

.ks-pay__body {
  display: grid;
  min-inline-size: 0;
}

.ks-pay__title {
  font-weight: 800;
  line-height: 1.3;
}

.ks-pay__desc {
  font-size: var(--fs-sm);
  line-height: 1.4;
  color: var(--grijs);
}

/* Size charts */
.ks-tables {
  display: grid;
  gap: var(--space-4);
  margin-top: var(--space-5);
}

@media (min-width: 640px) {
  .ks-tables { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ks-tables .table-wrap {
  margin: 0;
}

.measure {
  display: grid;
  gap: var(--space-5);
  align-items: center;
  margin-top: var(--space-5);
}

@media (min-width: 640px) {
  .measure { grid-template-columns: 200px minmax(0, 1fr); }
}

.measure__art {
  justify-self: center;
  inline-size: min(200px, 70%);
  block-size: auto;
}

.measure__shirt {
  fill: var(--rood-zacht);
  stroke: var(--rood-actie);
  stroke-width: 3;
  stroke-linejoin: round;
}

.measure__line {
  stroke: var(--inkt);
  stroke-width: 2.5;
  stroke-dasharray: 5 4;
}

.measure__tip,
.measure__badge {
  fill: var(--inkt);
}

.measure__label {
  fill: var(--wit);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 800;
  text-anchor: middle;
}

.measure__title {
  margin-bottom: var(--space-2);
  font-size: var(--fs-h4);
  font-weight: 850;
}

.measure__steps {
  display: grid;
  gap: 0.35rem;
  margin-bottom: var(--space-3);
  padding-inline-start: 1.3em;
}

.measure__steps li::marker {
  color: var(--rood-actie);
  font-weight: 800;
}

/* FAQ */
.ks-faq .accordion__item {
  scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

/* Help card */
.ks-help {
  display: grid;
  gap: var(--space-4);
  align-items: center;
  margin-top: var(--space-7);
}

@media (min-width: 640px) {
  .ks-help { grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-5); }
}

.ks-help__title {
  margin-bottom: var(--space-2);
  font-size: var(--fs-h3);
  font-weight: 900;
}


/* 5. Woordenboek
   ========================================================================== */

.wb-intro {
  padding-top: var(--space-6);
}

.wb-toolbar {
  position: relative;
  z-index: 20;
  padding-block: var(--space-5) var(--space-4);
  background: var(--creme);
}

/* Sticky only where there is room for it (one or two rows). */
@media (min-width: 960px) and (min-height: 700px) {
  .wb-toolbar {
    position: sticky;
    top: var(--header-h);
    box-shadow: 0 1px 0 var(--lijn), 0 12px 18px -16px rgb(134 7 14 / 0.35);
  }
}

.wb-toolbar__inner {
  display: grid;
  gap: var(--space-3);
}

@media (min-width: 960px) {
  .wb-toolbar__inner {
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    align-items: start;
    gap: var(--space-6);
  }
}

.wb-search {
  display: grid;
  gap: var(--space-1);
}

.wb-count {
  min-block-size: 1.45em;
  padding-inline-start: var(--space-1);
  font-size: var(--fs-sm);
  font-weight: 650;
  color: var(--grijs);
}

.wb-az__list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  list-style: none;
  padding: 0;
}

@media (min-width: 960px) {
  .wb-az__list { justify-content: flex-end; }
}

.wb-az__link {
  display: inline-grid;
  place-items: center;
  inline-size: 44px;
  block-size: 44px;
  border-radius: 12px;
  background: var(--wit);
  box-shadow: inset 0 0 0 1px var(--lijn);
  color: var(--rood-actie);
  font-weight: 850;
  text-decoration: none;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

.wb-az__link:hover {
  background: var(--rood-actie);
  color: var(--wit);
  box-shadow: none;
}

/* Letter without hits for the current search. */
.wb-az__link.is-empty {
  background: transparent;
  box-shadow: inset 0 0 0 1px var(--lijn);
  color: #A2958F;
  cursor: default;
  pointer-events: none;
}

.wb-groups {
  display: grid;
  gap: clamp(2.5rem, 2rem + 2vw, 3.5rem);
  padding-top: var(--space-6);
}

.wb-group {
  display: grid;
  gap: var(--space-4);
  scroll-margin-top: var(--wb-toolbar-h, 0px);
}

@media (min-width: 960px) {
  .wb-group {
    grid-template-columns: 96px minmax(0, 1fr);
    align-items: start;
  }
}

/* Letter tile: white on --rood-actie with a chequered corner. */
.wb-letter {
  position: relative;
  display: grid;
  place-items: center;
  inline-size: 64px;
  block-size: 64px;
  border-radius: 16px;
  background: var(--rood-actie);
  color: var(--wit);
  font-size: 2rem;
  font-weight: 900;
  letter-spacing: 0;
  box-shadow: 0 0 0 4px var(--wit), var(--shadow);
  transform: rotate(-4deg);
}

.wb-group:nth-child(even) .wb-letter {
  transform: rotate(3deg);
}

.wb-letter::after {
  content: "";
  position: absolute;
  top: -6px;
  right: -6px;
  inline-size: 20px;
  block-size: 20px;
  border-radius: 5px;
  background: var(--bont-gradient) 0 0 / 10px 10px;
  box-shadow: 0 0 0 2px var(--wit);
}

@media (min-width: 960px) {
  .wb-letter {
    position: sticky;
    top: calc(var(--header-h) + var(--wb-toolbar-h, 0px) + var(--space-5));
  }
}

.wb-list {
  display: grid;
  gap: var(--space-4);
}

@media (min-width: 640px) {
  .wb-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.wb-entry {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border-radius: var(--radius);
  background: var(--wit);
  box-shadow: var(--shadow-sm);
  scroll-margin-top: var(--wb-toolbar-h, 0px);
}

.wb-entry:target {
  box-shadow: 0 0 0 3px var(--rood-actie), var(--shadow);
}

.wb-entry__word {
  font-size: var(--fs-h3);
  font-weight: 900;
  color: var(--rood-actie);
}

.wb-entry__meaning {
  font-size: 1.0625rem;
  font-weight: 650;
  line-height: 1.5;
}

.wb-entry__example {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  border-inline-start: 4px solid var(--rood);
  border-radius: 4px var(--radius-md) var(--radius-md) 4px;
  background: var(--creme);
}

.wb-entry__label {
  display: block;
  margin-bottom: 0.1rem;
  font-size: var(--fs-xs);
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--grijs);
}

.wb-entry__quote {
  font-weight: 800;
  quotes: "\201C" "\201D" "\2018" "\2019";
}

.wb-entry__translation {
  color: var(--grijs);
}

.wb-entry__note {
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--grijs);
}

.wb-entry__shop {
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px dashed var(--lijn);
}

.wb-entry__products {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-1);
  list-style: none;
  padding: 0;
}

.wb-product {
  display: inline-flex;
  align-items: center;
  gap: 0.45em;
  min-block-size: var(--tap);
  padding: 0.4rem 0.95rem;
  border-radius: var(--radius-pill);
  background: var(--rood-zacht);
  color: var(--rood-actie);
  font-size: var(--fs-sm);
  font-weight: 750;
  line-height: 1.25;
  text-decoration: none;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
}

.wb-product::before {
  content: "";
  flex: none;
  inline-size: 1.1em;
  block-size: 1.1em;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 12.1a1 1 0 0 1-1 .9H7.2a1 1 0 0 1-1-.9z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1.2 12.1a1 1 0 0 1-1 .9H7.2a1 1 0 0 1-1-.9z'/%3E%3Cpath d='M9 10V7a3 3 0 0 1 6 0v3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.wb-product:hover {
  background: var(--rood-actie);
  color: var(--wit);
}

.wb-empty {
  margin-top: var(--space-6);
}

.wb-outro {
  display: grid;
  gap: var(--space-5);
}

@media (min-width: 960px) {
  .wb-outro { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
}

.wb-outro__card {
  display: grid;
  align-content: start;
  justify-items: start;
  gap: var(--space-3);
}

.wb-outro__card[hidden] {
  display: none;
}

.wb-outro__title {
  font-size: var(--fs-h3);
  font-weight: 900;
}


/* 6. Voorwaarden & privacy
   ========================================================================== */

.legal-meta {
  font-size: var(--fs-sm);
  font-weight: 650;
  color: var(--grijs);
}

.legal {
  display: grid;
  gap: var(--space-6);
}

@media (min-width: 960px) {
  .legal {
    grid-template-columns: 280px minmax(0, 1fr);
    align-items: start;
    gap: var(--space-7);
  }

  .legal__toc {
    position: sticky;
    top: calc(var(--header-h) + var(--space-5));
    max-block-size: calc(100vh - var(--header-h) - 2 * var(--space-5));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

.legal__toc ol {
  font-size: var(--fs-sm);
}

/* Tablets: the long table of contents in two columns. */
@media (min-width: 560px) and (max-width: 959px) {
  .legal__toc ol {
    display: block;
    columns: 2;
    column-gap: var(--space-6);
  }

  .legal__toc li {
    break-inside: avoid;
  }
}

.legal__toc a {
  display: inline-flex;
  align-items: center;
  color: var(--inkt);
  text-decoration: none;
}

/* Touch screens: every entry is a full 44px tap target (same as the footer links). */
@media (pointer: coarse) {
  .legal__toc a { min-block-size: var(--tap); }
}

.legal__toc a:hover {
  color: var(--rood-actie);
  text-decoration: underline;
}

.legal__toc li::marker {
  color: var(--rood-actie);
  font-weight: 800;
}

.legal__toc-extra {
  margin-top: var(--space-2);
  padding-top: var(--space-2);
  border-top: 1px solid var(--lijn);
  font-size: var(--fs-sm);
}

.legal__body {
  min-inline-size: 0;
}

.legal__body a {
  overflow-wrap: anywhere;
}

/* Legal headings a little calmer than marketing headings. */
.legal__body h2 {
  font-size: clamp(1.3125rem, 1.15rem + 0.8vw, 1.75rem);
}

.legal__body > h2:first-of-type {
  margin-top: 1.75em;
}

.legal-notice .notice__title {
  font-size: 1.0625rem;
}

.legal-terms {
  display: grid;
  gap: 0.15rem var(--space-5);
}

.legal-terms dt {
  font-weight: 750;
}

.legal-terms dd {
  margin: 0 0 var(--space-2);
  color: var(--inkt);
}

@media (min-width: 640px) {
  .legal-terms { grid-template-columns: minmax(9rem, 15rem) minmax(0, 1fr); }
  .legal-terms dd { margin-bottom: var(--space-1); }
}

.legal-facts {
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--lijn);
  border-radius: var(--radius);
  background: var(--wit);
  font-size: 1rem;
}

@media (max-width: 479px) {
  .legal-facts { grid-template-columns: minmax(0, 1fr); gap: 0 0; }
  .legal-facts dd { margin-bottom: var(--space-2); }
}

.privacy-summary .check-list {
  margin-top: var(--space-3);
}

.prose .privacy-summary__title {
  margin-top: 0;
  font-size: var(--fs-h4);
}

/* Model form for withdrawal: looks like a form to print or copy into an e-mail. */
.model-form {
  margin-top: 3em;
  padding: clamp(1.1rem, 0.9rem + 1vw, 1.75rem);
  border: 2px dashed var(--lijn-sterk);
  border-radius: var(--radius);
  background: var(--wit);
  scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

.prose .model-form h2 {
  margin-top: 0;
}

.model-form__intro {
  color: var(--grijs);
}

.model-form__fields {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-5);
}

.model-form__row {
  display: grid;
  gap: 0.2rem;
}

@media (min-width: 640px) {
  .model-form__row { grid-template-columns: 15rem minmax(0, 1fr); align-items: end; gap: var(--space-4); }
  .model-form__row--text { grid-template-columns: minmax(0, 1fr); }
}

.model-form__row dt {
  font-size: var(--fs-sm);
  font-weight: 750;
  line-height: 1.4;
}

.model-form__row dd {
  margin: 0;
}

.model-form__blank {
  min-block-size: 2rem;
  border-bottom: 1.5px solid var(--lijn-sterk);
}

.model-form__hint {
  font-weight: 500;
  color: var(--grijs);
}

.model-form__note {
  font-size: var(--fs-sm);
  color: var(--grijs);
}


/* 7. 404
   ========================================================================== */

.nf {
  display: grid;
  align-items: center;
  min-block-size: 60vh;
}

.nf__inner {
  display: grid;
  gap: var(--space-6);
  align-items: center;
}

@media (min-width: 960px) {
  .nf__inner { grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--space-8); }
}

.nf__art {
  position: relative;
  justify-self: center;
  padding: var(--space-4) var(--space-2) var(--space-6);
}

/* Big "404" with a chequered zero; decorative (aria-hidden), the text says it too. */
.nf__code {
  display: flex;
  align-items: center;
  gap: 0.04em;
  color: var(--rood);
  font-size: clamp(6rem, 3rem + 14vw, 11rem);
  font-weight: 900;
  line-height: 0.9;
  letter-spacing: -0.05em;
}

.nf__zero {
  display: block;
  flex: none;
  inline-size: 0.74em;
  aspect-ratio: 1;
  margin-inline: 0.02em;
  border-radius: 50%;
  background: var(--bont-gradient) 0 0 / 0.185em 0.185em;
  box-shadow: 0 0 0 0.06em var(--rood), 0 0.08em 0.2em rgb(134 7 14 / 0.25);
}

.nf__stamp {
  position: absolute;
  right: 0;
  bottom: 0;
  background: var(--wit);
  font-size: clamp(1rem, 0.85rem + 0.8vw, 1.375rem);
  transform: rotate(-7deg);
}

.nf__content {
  display: grid;
  justify-items: start;
  gap: var(--space-4);
}

.nf__title {
  max-inline-size: 18ch;
  font-size: var(--fs-h1);
  font-weight: 900;
}

.nf__lead {
  max-inline-size: 48ch;
  font-size: var(--fs-lg);
  color: var(--grijs);
}

.nf__search {
  inline-size: 100%;
  max-inline-size: 34rem;
}

.nf__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.nf__links {
  display: grid;
  gap: var(--space-3);
  margin-top: var(--space-3);
}

.nf__links-title {
  font-size: var(--fs-sm);
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--grijs);
}

.nf__links .chip .icon {
  color: var(--rood-actie);
}

.nf__links .chip:hover .icon {
  color: inherit;
}


/* 8. Motion & print
   ========================================================================== */

@keyframes content-pop {
  0% { opacity: 0; transform: rotate(-6deg) scale(0.6); }
  70% { opacity: 1; transform: rotate(-6deg) scale(1.08); }
  100% { transform: rotate(-6deg) scale(1); }
}

@keyframes content-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: no-preference) {
  .contact-success:not([hidden]) .contact-success__art {
    animation: content-pop 0.5s var(--ease-bounce) both;
  }

  .nf__zero {
    animation: content-spin 24s linear infinite;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ks-nav__link:hover {
    transform: none;
  }
}

@media print {
  .legal__toc,
  .wb-toolbar,
  .wb-entry__shop,
  .wb-outro,
  .ks-quicknav,
  .ks-help,
  .contact-form-card,
  .about-visual,
  .about-cta,
  .nf__art,
  .nf__search {
    display: none !important;
  }

  .legal {
    display: block;
  }

  .wb-letter,
  .wb-letter::after {
    box-shadow: none;
  }

  .model-form {
    break-inside: avoid;
  }
}
