/*
 * ZIPPING DIVI-ONDERHOUDSCONTRACT
 * =================================
 * Doel: de gewone site en de Divi Visual Builder visueel gelijk houden.
 *
 * 1. Gebruik NOOIT door Divi gegenereerde numerieke module-, rij- of
 *    headerselectoren als ontwerphaak; die verschillen per rendercontext.
 * 2. Gebruik voor nieuwe maatwerkblokken een betekenisvolle vaste klasse
 *    met het voorvoegsel z-, ingesteld via Divi > Advanced > Attributes.
 * 3. Voeg bij kritieke onderdelen zo nodig een inhoudsgerichte fallback toe
 *    met :has() / :is(), zodat de stijl ook in een verse bewerksessie werkt.
 * 4. Wijzig teksten in de Divi-module; wijzig gedeelde vormgeving hier.
 * 5. Controleer elke structurele wijziging aan de voorkant én in een verse
 *    Divi Visual Builder-sessie, minimaal op 390, 768 en desktopbreedte.
 *
 * Zie: Overdracht_Zipping_staging_Codex_20260713_definitief.md
 */

/*
 * Zipping site layer for Divi 5
 * Apply these classes in Divi: Advanced > CSS ID & Classes > CSS Class.
 * Keep typography, colors and most spacing in Divi Design Variables/Presets.
 * This file only supplies patterns that are awkward to maintain in the builder.
 */

:root {
  --z-teal: #008c8c;
  --z-teal-dark: #006b70;
  --z-teal-deep: #17464a;
  --z-orange: #ff8000;
  --z-orange-dark: #d96700;
  --z-ink: #203438;
  --z-muted: #5d6c6f;
  --z-mist: #eff7f5;
  --z-sand: #f6f1e9;
  --z-paper: #ffffff;
  --z-line: #d8e4e1;
  --z-radius-sm: 14px;
  --z-radius-md: 22px;
  --z-radius-lg: 32px;
  --z-shadow-soft: 0 8px 24px rgba(23,70,74,.055);
  --z-shadow-card: 0 18px 50px rgba(23,70,74,.10);
  --z-content-width: 1180px;
}

/* Accessibility */
.z-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
}
.z-skip-link:focus {
  left: 12px;
  top: 12px;
  padding: 12px 18px;
  background: #fff;
  color: var(--z-teal-deep);
  border: 2px solid var(--z-orange);
  border-radius: 8px;
}

/* Reusable text accents */
.z-kicker {
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: .80rem;
  font-weight: 700;
  color: var(--z-orange-dark);
}
.z-lead {
  font-size: clamp(1.125rem, 1.45vw, 1.35rem);
  line-height: 1.55;
  color: #405356;
}
.z-prose {
  max-width: 74ch;
}
.z-prose p:last-child,
.z-card p:last-child {
  margin-bottom: 0;
}

/* Surface patterns */
.z-card {
  height: 100%;
  background: var(--z-paper);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-md);
  padding: clamp(22px, 2.3vw, 30px);
  box-shadow: var(--z-shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.z-card:hover,
.z-card:focus-within {
  transform: translateY(-3px);
  box-shadow: var(--z-shadow-card);
}
.z-card--teal { border-top: 5px solid var(--z-teal); }
.z-card--orange { border-top: 5px solid var(--z-orange); }

.z-visual-frame {
  background: #fff;
  border: 1px solid var(--z-line);
  border-radius: 30px;
  padding: clamp(12px, 1.6vw, 20px);
  box-shadow: var(--z-shadow-card);
}
.z-visual-frame img,
.z-visual-frame svg {
  display: block;
  width: 100%;
  height: auto;
}

.z-photo-brief {
  border: 2px dashed #9eb8b4;
  border-radius: 20px;
  padding: clamp(20px, 2.2vw, 28px);
  background: rgba(255,255,255,.78);
  color: #43585a;
}
.z-photo-brief strong {
  display: block;
  color: var(--z-teal-dark);
  margin-bottom: 6px;
}
.z-photo-brief__label {
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: .75rem;
  font-weight: 800;
  color: var(--z-orange-dark);
}

.z-note {
  border: 1px solid #f3bf86;
  background: #fff8ee;
  border-radius: 18px;
  padding: 22px;
}
.z-note strong { color: #934b00; }

.z-inline-note {
  padding: 18px 20px;
  border-left: 4px solid var(--z-teal);
  background: var(--z-mist);
  border-radius: 0 14px 14px 0;
}

.z-quote {
  margin: 1.5em 0;
  padding: 12px 0 12px 24px;
  border-left: 5px solid var(--z-orange);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.4;
  color: var(--z-teal-deep);
}

.z-chip-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 0;
  margin: 20px 0;
  list-style: none;
}
.z-chip-list li {
  padding: 7px 12px;
  background: var(--z-mist);
  border: 1px solid #d5e9e5;
  border-radius: 999px;
  font-size: .88rem;
}

.z-check-list {
  list-style: none;
  padding: 0;
}
.z-check-list li {
  position: relative;
  padding-left: 30px;
  margin: 12px 0;
}
.z-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .50em;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--z-orange);
  box-shadow: 0 0 0 5px rgba(255,128,0,.12);
}

/* CTA */
.z-cta {
  overflow: hidden;
  border-radius: var(--z-radius-lg);
  padding: clamp(30px, 4vw, 48px);
  color: #fff;
  background:
    radial-gradient(circle at 85% 10%, rgba(255,128,0,.26), transparent 28%),
    var(--z-teal-deep);
}
.z-cta p { color: #dbe9e8; }

/* Hero background */
.z-hero {
  background:
    radial-gradient(circle at 95% 8%, rgba(255,128,0,.10), transparent 30%),
    radial-gradient(circle at 5% 90%, rgba(0,140,140,.10), transparent 35%),
    linear-gradient(180deg,#fff,#fbfdfc);
}

/* Page section backgrounds */
.z-bg-mist { background: var(--z-mist); }
.z-bg-sand { background: var(--z-sand); }
.z-bg-deep { background: var(--z-teal-deep); color: #fff; }

/* Process cards */
.z-process-step {
  position: relative;
  height: 100%;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--z-line);
  border-radius: 18px;
}
.z-process-step__number {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: var(--z-teal-dark);
  color: #fff;
  font-weight: 800;
}

/* Card equal heights inside Divi rows */
.z-equal-cards,
.z-equal-cards .et_pb_column {
  display: flex;
}
.z-equal-cards .et_pb_column > .et_pb_module {
  width: 100%;
}

/* Make anchors land below sticky header */
[id] { scroll-margin-top: 110px; }

/* Focus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid var(--z-orange);
  outline-offset: 3px;
}

/* Motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Responsive corrections */
@media (max-width: 980px) {
  .z-equal-cards,
  .z-equal-cards .et_pb_column {
    display: block;
  }
}
@media (max-width: 767px) {
  .z-card { padding: 22px; }
  .z-cta { border-radius: 24px; }
  .z-photo-brief { padding: 20px; }
}


/* Reusable CTA content and button group */
.z-cta h2 {
  color: var(--z-paper) !important;
}
.z-cta .et_pb_group {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 16px !important;
}
.z-cta .et_pb_button_module_wrapper {
  width: auto !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button {
  padding: 16px 28px !important;
  border: 0 solid transparent !important;
  border-radius: var(--z-radius-sm) !important;
  background: var(--z-teal) !important;
  color: var(--z-paper) !important;
  font-family: var(--z-font-sans, "Maven Pro", system-ui, sans-serif) !important;
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button:hover {
  background: var(--z-teal-dark) !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper:last-child:not(:first-child) .et_pb_button {
  border: 2px solid var(--z-paper) !important;
  background: transparent !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper:last-child:not(:first-child) .et_pb_button:hover {
  background: rgba(255,255,255,.12) !important;
}

@media (max-width: 767px) {
  .z-cta .et_pb_group {
    align-items: stretch !important;
  }
  .z-cta .et_pb_button_module_wrapper,
  .z-cta .et_pb_button {
    width: 100% !important;
  }
  .z-cta .et_pb_button {
    text-align: center !important;
  }
}

/* Secondary CTA follows the primary button. */
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button {
  border: 2px solid var(--z-paper) !important;
  background: transparent !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button:hover {
  background: rgba(255,255,255,.12) !important;
}

/* Reliable inner spacing in Divi rows. */
.z-cta {
  box-sizing: border-box;
  padding: clamp(30px, 4vw, 48px) !important;
}
.z-cta > .et_pb_column {
  width: 100% !important;
}

/* Reusable card grids: readable columns at every breakpoint. */
@media (max-width: 980px) {
  .et_pb_row_nested:has(> .et_pb_column > .z-card) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px !important;
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  .z-card {
    width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .et_pb_row_nested:has(> .et_pb_column > .z-card) {
    grid-template-columns: minmax(0, 1fr);
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column:last-child:nth-child(odd) {
    grid-column: auto;
  }
  .z-cta {
    padding: 24px !important;
    border-radius: 24px;
  }
  .z-cta .et_pb_group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
  }
  .z-cta .et_pb_button_module_wrapper,
  .z-cta .et_pb_button {
    width: 100% !important;
    max-width: none !important;
  }
  body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    box-sizing: border-box;
    padding: 14px 18px !important;
    font-size: 1rem !important;
    text-align: center !important;
  }
}


/* Mobile hero actions: compact, readable and touch-friendly. */
@media (max-width: 767px) {
  .et_pb_fullwidth_header .et_pb_header_button_wrapper {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
    width: 100% !important;
  }
  body #page-container .et_pb_section .et_pb_fullwidth_header .et_pb_button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: none !important;
    min-height: 54px;
    box-sizing: border-box;
    padding: 14px 12px !important;
    font-size: .95rem !important;
    line-height: 1.2 !important;
    white-space: nowrap;
    text-align: center !important;
  }
  body #page-container .et_pb_section .et_pb_fullwidth_header .et_pb_button::after {
    display: none !important;
    content: none !important;
  }
}


/* Four-card service rows: comfortable reading width, native Divi structure retained. */
.z-card h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px !important;
}
.et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}
@media (max-width: 767px) {
  .et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Four dimensions of collaboration. */
.z-dimension-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.z-dimension-grid .z-card {
  padding: 20px;
}
@media (max-width: 767px) {
  .z-dimension-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Stack the definition above its dimension grid on tablets. */
@media (max-width: 980px) {
  .et_pb_row:has(.z-dimension-grid) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px !important;
  }
  .et_pb_row:has(.z-dimension-grid) > .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
  }
}


/* Three-card content grids. */
.z-three-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.z-three-grid .z-card {
  box-sizing: border-box;
}
@media (max-width: 980px) {
  .z-three-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* CTA contrast and stacked hero button spacing. */
.z-cta a.et_pb_button {
  color: #ffffff !important;
  background: var(--z-orange) !important;
  border-color: var(--z-orange) !important;
}
.z-cta a.et_pb_button:hover,
.z-cta a.et_pb_button:focus-visible {
  color: #ffffff !important;
  background: var(--z-orange-dark) !important;
  border-color: var(--z-orange-dark) !important;
}
@media (max-width: 980px) {
  .et_pb_fullwidth_header .et_pb_button_two {
    margin-top: 12px !important;
  }
}


/* Keep long Dutch hero titles readable on narrow phones. */
@media (max-width: 480px) {
  .et_pb_fullwidth_header h1 {
    max-width: 100% !important;
    overflow-wrap: anywhere;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
    line-height: 1.08 !important;
  }
}


/* Privacyverklaring: rustige, scanbare juridische pagina in Zipping-huisstijl. */
.z-legal {
  max-width: 1080px;
  margin: 0 auto;
  color: var(--z-ink);
}
.z-legal__hero {
  padding: clamp(34px, 6vw, 72px);
  background: linear-gradient(135deg, var(--z-mist) 0%, var(--z-paper) 70%);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-large);
  box-shadow: 0 18px 46px rgba(23, 70, 74, .08);
}
.z-legal__hero h1 {
  max-width: 18ch;
  margin: .25em 0 .45em;
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1.08;
}
.z-legal__hero > p:not(.z-kicker) {
  max-width: 74ch;
}
.z-legal__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 24px;
  color: var(--z-muted);
  font-size: .95rem;
}
.z-legal__meta span {
  display: inline-flex;
  gap: 7px;
}
.z-legal__toc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 28px 0 0;
  padding: 20px 24px;
  background: var(--z-sand);
  border-radius: var(--z-radius-card);
}
.z-legal__toc strong {
  color: var(--z-teal-deep);
}
.z-legal__toc a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 13px;
  color: var(--z-teal-dark);
  background: var(--z-paper);
  border: 1px solid var(--z-line);
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
}
.z-legal__toc a:hover,
.z-legal__toc a:focus-visible {
  color: var(--z-paper);
  background: var(--z-teal-dark);
  border-color: var(--z-teal-dark);
}
.z-legal__content {
  max-width: 82ch;
  margin: 0 auto;
  padding: clamp(34px, 6vw, 72px) 0 24px;
}
.z-legal__content h2 {
  scroll-margin-top: 120px;
  margin: 56px 0 20px;
  padding: 0 0 14px;
  color: var(--z-teal-deep);
  border-bottom: 2px solid var(--z-line);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  line-height: 1.2;
}
.z-legal__content h2:first-child {
  margin-top: 0;
}
.z-legal__content h3 {
  margin: 32px 0 12px;
  color: var(--z-teal-dark);
}
.z-legal__content p,
.z-legal__content li {
  line-height: 1.72;
}
.z-legal__content a {
  color: var(--z-teal-dark);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}
.z-legal__content .z-check-list {
  margin: 18px 0 24px;
  padding: 0;
}
.z-legal__content .z-check-list li {
  padding-left: 32px;
}
.z-table-wrap {
  width: 100%;
  margin: 22px 0 30px;
  overflow-x: auto;
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  -webkit-overflow-scrolling: touch;
}
.z-legal table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  margin: 0;
}
.z-legal th,
.z-legal td {
  padding: 15px 18px;
  border-bottom: 1px solid var(--z-line);
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}
.z-legal th {
  color: var(--z-paper);
  background: var(--z-teal-deep);
  font-weight: 700;
}
.z-legal tbody tr:nth-child(even) {
  background: var(--z-mist);
}
.z-legal tbody tr:last-child td {
  border-bottom: 0;
}
@media (max-width: 767px) {
  .z-legal__hero {
    padding: 30px 24px;
    border-radius: var(--z-radius-card);
  }
  .z-legal__toc {
    align-items: stretch;
    padding: 18px;
  }
  .z-legal__toc strong {
    flex-basis: 100%;
  }
  .z-legal__toc a {
    width: 100%;
    border-radius: var(--z-radius-small);
  }
  .z-legal__content {
    padding-top: 38px;
  }
  .z-legal__content h2 {
    margin-top: 44px;
  }
}
@media print {
  .z-legal__toc { display: none; }
  .z-legal__hero { box-shadow: none; }
  .z-table-wrap { overflow: visible; }
}


/* Preserve whole words in the long privacy-page title on narrow phones. */
@media (max-width: 480px) {
  .z-legal__hero h1 {
    font-size: clamp(1.9rem, 9vw, 2.4rem);
    overflow-wrap: normal;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }
}


/* Reusable long-form content pages */
.z-page {
  color: var(--z-ink);
}
.z-page *,
.z-page *::before,
.z-page *::after {
  box-sizing: border-box;
}
.z-page h1,
.z-page h2,
.z-page h3 {
  color: var(--z-teal-deep);
  text-wrap: balance;
}
.z-page h1 {
  margin: 0 0 24px;
  font-size: clamp(2.5rem, 5.4vw, 5.1rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.z-page h2 {
  margin: 0 0 20px;
  font-size: clamp(2rem, 3.6vw, 3.45rem);
  line-height: 1.08;
  letter-spacing: -.035em;
}
.z-page h3 {
  margin: 0 0 12px;
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  line-height: 1.25;
}
.z-page p {
  font-size: 1.05rem;
  line-height: 1.75;
}
.z-page-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr);
  gap: clamp(36px, 6vw, 84px);
  align-items: center;
  overflow: hidden;
  padding: clamp(54px, 8vw, 104px);
  border-radius: var(--z-radius-card);
  background:
    radial-gradient(circle at 88% 12%, rgba(255,128,0,.20), transparent 28%),
    linear-gradient(135deg, var(--z-mist), var(--z-paper) 62%);
  box-shadow: var(--z-shadow-soft);
}
.z-page-hero::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -150px;
  width: 360px;
  height: 360px;
  border: 46px solid rgba(0,140,140,.10);
  border-radius: 50%;
  pointer-events: none;
}
.z-page-hero__content,
.z-page-hero__visual {
  position: relative;
  z-index: 1;
}
.z-page-hero .z-lead {
  max-width: 64ch;
}
.z-page-hero__visual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.z-page-hero__visual span {
  display: grid;
  place-items: center;
  min-height: 120px;
  padding: 18px;
  border: 1px solid rgba(0,107,112,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.78);
  color: var(--z-teal-dark);
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 12px 32px rgba(23,70,74,.08);
}
.z-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}
.z-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 22px;
  border: 2px solid transparent;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.z-button:hover,
.z-button:focus-visible {
  transform: translateY(-2px);
}
.z-button:focus-visible {
  outline: 3px solid var(--z-orange);
  outline-offset: 3px;
}
.z-button--primary {
  background: var(--z-orange);
  color: #1e2c2f !important;
  box-shadow: 0 10px 24px rgba(217,103,0,.18);
}
.z-button--primary:hover {
  background: #ff922b;
  color: #172629 !important;
}
.z-button--secondary {
  border-color: var(--z-teal-dark);
  background: rgba(255,255,255,.78);
  color: var(--z-teal-dark) !important;
}
.z-button--secondary:hover {
  background: var(--z-teal-dark);
  color: var(--z-paper) !important;
}
.z-page-section,
.z-page-cta {
  padding: clamp(58px, 8vw, 100px) clamp(24px, 6vw, 82px);
}
.z-page-section--light {
  margin-top: clamp(28px, 5vw, 54px);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  box-shadow: var(--z-shadow-soft);
}
.z-page-section--mist {
  border-radius: var(--z-radius-card);
  background: var(--z-mist);
}
.z-page-section--dark {
  border-radius: var(--z-radius-card);
  background: var(--z-teal-deep);
}
.z-page-section--dark h2,
.z-page-section--dark p {
  color: var(--z-paper);
}
.z-page-section--dark .z-kicker {
  color: #ffad5c;
}
.z-section-heading {
  max-width: 820px;
  margin-bottom: clamp(30px, 5vw, 54px);
}
.z-page-grid {
  display: grid;
  gap: clamp(22px, 4vw, 42px);
}
.z-page-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.z-page-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.z-page-grid--center {
  align-items: center;
}
.z-signal-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.z-signal-list li {
  position: relative;
  padding: 16px 18px 16px 50px;
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-small);
  background: var(--z-mist);
  line-height: 1.55;
}
.z-signal-list li::before {
  content: "✓";
  position: absolute;
  left: 18px;
  top: 14px;
  color: var(--z-orange-dark);
  font-weight: 900;
}
.z-content-card,
.z-step-card {
  height: 100%;
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  box-shadow: var(--z-shadow-soft);
}
.z-content-card--accent {
  border-top: 6px solid var(--z-orange);
}
.z-step-card {
  position: relative;
  padding-top: 76px;
}
.z-step-card__number {
  position: absolute;
  top: 24px;
  left: 30px;
  color: var(--z-orange-dark);
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: .08em;
}
.z-behaviour-map {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.z-behaviour-map div {
  display: flex;
  min-height: 150px;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
  border-radius: var(--z-radius-card);
  background: var(--z-mist);
}
.z-behaviour-map strong {
  color: var(--z-teal-dark);
  font-size: 1.2rem;
}
.z-behaviour-map span {
  margin-top: 6px;
  color: var(--z-muted);
  line-height: 1.45;
}
.z-page-cta {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
  margin-top: clamp(28px, 5vw, 54px);
  border-radius: var(--z-radius-card);
  background: linear-gradient(120deg, var(--z-sand), var(--z-mist));
}
.z-page-cta > div {
  max-width: 760px;
}
.z-page-cta .z-button {
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .z-page-hero {
    grid-template-columns: 1fr;
  }
  .z-page-hero__visual {
    max-width: 520px;
  }
  .z-page-grid--3 {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .z-page h1 {
    font-size: clamp(2.35rem, 12vw, 3.65rem);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .z-page-hero {
    padding: 38px 24px;
    border-radius: var(--z-radius-card);
  }
  .z-page-hero__visual {
    gap: 10px;
  }
  .z-page-hero__visual span {
    min-height: 92px;
    font-size: .72rem;
  }
  .z-page-grid--2 {
    grid-template-columns: 1fr;
  }
  .z-page-section,
  .z-page-cta {
    padding: 46px 24px;
  }
  .z-page-cta {
    align-items: stretch;
    flex-direction: column;
  }
  .z-page-cta .z-button {
    width: 100%;
  }
  .z-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .z-actions .z-button {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .z-behaviour-map {
    grid-template-columns: 1fr;
  }
}


/* Legacy Divi CTA buttons: preserve accessible touch targets on mobile. */
@media (max-width: 767px) {
  a.et_pb_button.z-button--primary,
  a.et_pb_button.z-button--secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    line-height: 1.2 !important;
  }
}


/* Feedbackronde 13 juli 2026: persoonlijke bewijs- en contentcomponenten */
.z-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.z-review {
  height: 100%;
  padding: 26px 28px;
  background: var(--z-paper);
  border: 0;
  border-left: 6px solid var(--z-teal);
  border-radius: var(--z-radius-md);
  box-shadow: var(--z-shadow-soft);
}

.z-review--orange { border-left-color: var(--z-orange); }

.z-review blockquote {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  font-size: clamp(1.08rem, 1.3vw, 1.24rem);
  font-style: italic;
  line-height: 1.62;
  color: var(--z-ink);
}

.z-review__meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: var(--z-muted);
  font-size: .94rem;
  line-height: 1.4;
}

.z-review-source {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 5px;
  background: #0a66c2;
  color: #fff;
  font: 800 14px/1 Arial, sans-serif;
  letter-spacing: -.04em;
}

.z-highlight-quote {
  max-width: 920px;
  margin: 0 auto;
  padding: 22px 0;
  color: var(--z-teal-deep);
  font-size: clamp(1.55rem, 3vw, 2.55rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
}

.z-highlight-quote cite {
  display: block;
  margin-top: 18px;
  color: var(--z-muted);
  font-size: .98rem;
  font-style: normal;
  font-weight: 700;
}

.z-person-card {
  display: grid;
  grid-template-columns: minmax(220px, .78fr) minmax(0, 1.35fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}

.z-person-card__photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 38%;
  border-radius: var(--z-radius-lg);
  box-shadow: var(--z-shadow-card);
}

.z-network-note {
  padding: 24px 28px;
  background: var(--z-sand);
  border-radius: var(--z-radius-md);
  color: var(--z-ink);
}

.z-network-note h3 { margin-top: 0; }

.z-case-list { display: grid; gap: 32px; }

.z-case {
  padding: clamp(26px, 4vw, 42px);
  background: var(--z-paper);
  border-radius: var(--z-radius-lg);
  box-shadow: var(--z-shadow-card);
}

.z-case h3 { margin-top: 0; }
.z-case h4 { margin: 1.35em 0 .45em; color: var(--z-teal-dark); }
.z-case ul { margin-bottom: 0; }

.z-case-teasers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.z-case-teaser {
  display: block;
  height: 100%;
  padding: 22px;
  background: var(--z-paper);
  border-radius: var(--z-radius-md);
  color: var(--z-ink);
  text-decoration: none;
  box-shadow: var(--z-shadow-soft);
}

.z-case-teaser:hover,
.z-case-teaser:focus-visible {
  color: var(--z-teal-dark);
  box-shadow: var(--z-shadow-card);
  transform: translateY(-2px);
}

.z-samenwerkings-accent {
  display: inline-block;
  margin-bottom: 14px;
  padding: 9px 16px;
  border-radius: 999px;
  background: var(--z-teal);
  color: var(--z-paper);
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  font-weight: 900;
  letter-spacing: .01em;
}

@media (max-width: 860px) {
  .z-review-grid,
  .z-case-teasers,
  .z-person-card { grid-template-columns: 1fr; }
  .z-person-card__photo { max-width: 520px; aspect-ratio: 5 / 4; }
}

@media (max-width: 560px) {
  .z-review,
  .z-case { padding: 22px 20px; }
}


/* Headermerk en ritme van de nieuwe homepageblokken */
.z-header-brand { display: inline-flex; align-items: center; gap: 10px; }
.z-header-mark { display: block; width: 42px; height: 42px; object-fit: contain; }
.z-header-brand__words { display: block; min-width: 0; }
.z-home-personal { display: grid; gap: clamp(28px, 5vw, 56px); padding: clamp(34px, 6vw, 72px) 0; }
.z-home-cases { padding: clamp(28px, 5vw, 64px) 0; }
.z-highlight-quote cite .z-review-source { margin-right: 8px; vertical-align: middle; }
@media (max-width: 480px) { .z-header-mark { width: 38px; height: 38px; } }


/* Volledig Zipping-logo, intact uit de aangeleverde SVG */
.z-header-logo-link { display: inline-flex; flex-direction: column; align-items: flex-start; text-decoration: none; }
.z-header-logo { display: block; width: 148px; height: auto; max-width: 100%; }
.z-header-tagline { display: block; margin-top: 3px; color: var(--z-teal); font-size: .78rem; font-weight: 700; line-height: 1.15; }
@media (max-width: 480px) { .z-header-logo { width: 104px; height: auto; } .z-header-tagline { display: none !important; } }


/* Volledig beeldmerk ook zichtbaar in de mobiele header */
@media (max-width: 767px) {
  header .et_pb_text:has(.z-header-logo-link) .et_pb_text_inner > p { display: block !important; margin: 0 !important; }
  header .et_pb_column:has(.z-header-logo-link) { display: flex !important; flex: 1 1 auto !important; width: auto !important; }
  header .et_pb_text:has(.z-header-logo-link) { display: flex !important; width: auto !important; }
  header .z-header-logo { width: 86px; height: auto; }
}

/* Home: responsive typography for the welcome block */
.z-home-personal .z-person-card__content .z-kicker {
  font-size: .95rem;
  line-height: 1.35;
  letter-spacing: .12em;
  margin: 0 0 .75rem;
}

.z-home-personal .z-person-card__content h2 {
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.12;
  font-weight: 600;
  margin: 0 0 1.125rem;
}

.z-home-personal .z-person-card__intro {
  max-width: 60ch;
  font-size: clamp(1.125rem, 1.25vw, 1.25rem);
  line-height: 1.65;
  font-weight: 500;
  margin: 0 0 1.75rem;
}

.z-home-personal .z-person-card__action {
  margin: 0;
}

.z-home-personal .z-person-card__action .z-button {
  font-size: 1rem;
  line-height: 1.25;
}

/* Home: approved proposition-style block system — 2026-07-13 */
body.home .z-dimension-grid {
  gap: 18px;
}

body.home .z-dimension-grid .z-card {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: clamp(22px, 2.4vw, 30px);
  background: #edf6f5;
  border: 1px solid rgba(47, 119, 120, .22);
  border-top: 1px solid rgba(47, 119, 120, .22);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(21, 70, 72, .08);
}

body.home .z-dimension-grid .z-card:nth-child(even) {
  background: #faf6f0;
}

body.home .z-dimension-grid .z-card h3 {
  position: relative;
  margin: 0 0 10px;
  padding-top: 16px;
  color: var(--z-teal-dark);
  font-size: 1.15rem;
  line-height: 1.25;
}

body.home .z-dimension-grid .z-card h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

body.home .z-dimension-grid .z-card p {
  line-height: 1.6;
}

.z-home-propositions .et_pb_row_nested {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin-top: clamp(34px, 5vw, 62px) !important;
  padding: clamp(38px, 5vw, 58px) !important;
  overflow: hidden;
  background: linear-gradient(125deg, #0d4a4d 0%, #125659 54%, #0c4649 100%);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 24px;
  box-shadow: 0 22px 46px rgba(12, 62, 64, .16);
}

.z-home-propositions .et_pb_row_nested > .et_pb_column {
  position: relative;
  z-index: 1;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 clamp(22px, 3vw, 40px);
}

.z-home-propositions .et_pb_row_nested > .et_pb_column:first-child {
  padding-left: 0;
}

.z-home-propositions .et_pb_row_nested > .et_pb_column:last-child {
  padding-right: 0;
}

.z-home-propositions .et_pb_row_nested > .et_pb_column + .et_pb_column {
  border-left: 1px solid rgba(255, 255, 255, .28);
}

.z-home-propositions .et_pb_row_nested .z-card,
.z-home-propositions .et_pb_row_nested .z-card:hover,
.z-home-propositions .et_pb_row_nested .z-card:focus-within {
  min-height: 0;
  padding: 0 !important;
  color: #fff;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  transform: none !important;
}

.z-home-propositions .et_pb_row_nested .z-card h3 {
  position: relative;
  margin: 0 0 16px;
  padding-top: 22px;
  color: #fff !important;
  font-size: clamp(1.25rem, 1.5vw, 1.45rem);
  line-height: 1.22;
}

.z-home-propositions .et_pb_row_nested .z-card h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 38px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

.z-home-propositions .et_pb_row_nested .z-card p {
  margin: 0;
  color: rgba(255, 255, 255, .9) !important;
  font-size: 1rem;
  line-height: 1.65;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 24px !important;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card {
  position: relative;
  min-height: 0;
  padding: clamp(25px, 2.7vw, 32px) clamp(48px, 5vw, 68px) clamp(25px, 2.7vw, 32px) clamp(25px, 2.7vw, 32px);
  background: #fff;
  border: 1px solid rgba(47, 119, 120, .2);
  border-top: 1px solid rgba(47, 119, 120, .2);
  border-left: 5px solid var(--z-teal);
  border-radius: 18px;
  box-shadow: 0 13px 30px rgba(21, 70, 72, .08);
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: clamp(20px, 2.5vw, 30px);
  color: var(--z-orange);
  font-size: 2.25rem;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-54%);
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card h3 {
  margin-bottom: 9px;
  color: var(--z-teal-dark);
  font-size: 1.18rem;
  line-height: 1.3;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card p {
  line-height: 1.6;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(34px, 5vw, 64px) !important;
  padding: clamp(32px, 5vw, 58px) !important;
  background: linear-gradient(135deg, #fffaf5 0%, #f7f2ea 100%);
  border: 1px solid rgba(129, 111, 88, .12);
  border-radius: 24px;
  box-shadow: 0 18px 40px rgba(64, 55, 42, .07);
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-prose {
  max-width: none;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-prose > .et_pb_text_inner > h2 {
  margin-bottom: 16px;
  color: var(--z-teal-dark);
  font-size: clamp(1.9rem, 3vw, 2.45rem);
  line-height: 1.18;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-network-note {
  margin-top: 24px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, .76);
  border-left: 4px solid var(--z-teal);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(64, 55, 42, .06);
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-photo-brief {
  align-self: center;
  padding: clamp(24px, 3vw, 34px);
  background: rgba(255, 255, 255, .88);
  border: 2px dashed rgba(47, 119, 120, .58);
  border-radius: 22px;
  box-shadow: none;
}

body.home .z-home-cases {
  padding: clamp(30px, 5vw, 54px);
  background: linear-gradient(125deg, #edf7f6 0%, #f6fbfa 100%);
  border: 1px solid rgba(47, 119, 120, .14);
  border-radius: 24px;
}

body.home .z-home-cases .z-section-heading h2 {
  color: var(--z-teal-dark);
  font-size: clamp(1.75rem, 2.8vw, 2.25rem);
  line-height: 1.2;
}

body.home .z-home-cases .z-case-teasers {
  gap: 0;
  margin-top: 26px;
}

body.home .z-home-cases .z-case-teaser,
body.home .z-home-cases .z-case-teaser:hover,
body.home .z-home-cases .z-case-teaser:focus-visible {
  position: relative;
  min-height: 0;
  padding: 18px clamp(22px, 3vw, 34px) 0;
  color: var(--z-ink);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}

body.home .z-home-cases .z-case-teaser::before {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(22px, 3vw, 34px);
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

body.home .z-home-cases .z-case-teaser + .z-case-teaser {
  border-left: 1px solid rgba(47, 119, 120, .24);
}

@media (max-width: 860px) {
  .z-home-propositions .et_pb_row_nested {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 34px !important;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column,
  .z-home-propositions .et_pb_row_nested > .et_pb_column:first-child,
  .z-home-propositions .et_pb_row_nested > .et_pb_column:last-child {
    padding: 0;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column + .et_pb_column {
    margin-top: 28px !important;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, .28);
    border-left: 0;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column:last-child:nth-child(odd) {
    grid-column: auto !important;
  }

  body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.home .z-home-cases .z-case-teasers {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  body.home .z-home-cases .z-case-teaser,
  body.home .z-home-cases .z-case-teaser:hover,
  body.home .z-home-cases .z-case-teaser:focus-visible {
    padding: 18px 0 0;
  }

  body.home .z-home-cases .z-case-teaser::before {
    left: 0;
  }

  body.home .z-home-cases .z-case-teaser + .z-case-teaser {
    padding-top: 24px;
    border-top: 1px solid rgba(47, 119, 120, .2);
    border-left: 0;
  }

  body.home .z-home-cases .z-case-teaser + .z-case-teaser::before {
    top: 8px;
  }
}

@media (max-width: 560px) {
  body.home .z-dimension-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.home .z-dimension-grid .z-card {
    min-height: 0;
  }

  .z-home-propositions .et_pb_row_nested {
    padding: 30px 24px !important;
    border-radius: 20px;
  }

  body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card {
    padding: 24px 48px 24px 22px;
  }

  body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
    padding: 28px 22px !important;
    border-radius: 20px;
  }

  body.home .z-home-cases {
    padding: 28px 22px;
    border-radius: 20px;
  }
}


/* Home hero: subtle tonal depth — 2026-07-13 */
body.home :is(.z-home-hero, .et_pb_fullwidth_header) {
  background-color: #008c8c !important;
  background-image: linear-gradient(125deg, #008c8c 0%, #078184 56%, #0b7276 100%) !important;
}

/* Proeflezersronde 14 juli 2026: typografie, kaarten, lijsten en mobiel menu */

/* Eén letterfamilie, met een rustiger en consistenter koppenritme. */
.z-page h1 {
  font-size: clamp(2.5rem, 4.7vw, 4.55rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}
.z-page h2 {
  font-size: clamp(1.9rem, 3.1vw, 3rem);
  line-height: 1.12;
  letter-spacing: -.03em;
}

/* Divi mag geen tweede, standaardbullet naast het eigen Zipping-teken tonen. */
#main-content ul.z-check-list,
#main-content ul.z-signal-list {
  padding-left: 0 !important;
  list-style: none !important;
}
#main-content ul.z-check-list > li,
#main-content ul.z-signal-list > li {
  list-style: none !important;
}
#main-content ul.z-check-list > li::marker,
#main-content ul.z-signal-list > li::marker {
  content: "";
}

/* Niet-klikbare informatiekaarten blijven rustig staan. */
.z-card:hover,
.z-card:focus-within {
  transform: none;
  box-shadow: var(--z-shadow-soft);
}

/* Kaartreeksen krijgen consequent teal–oranje–teal. */
.z-page-grid > .z-content-card {
  border-top: 6px solid var(--z-teal);
}
.z-page-grid > .z-content-card:nth-child(even) {
  border-top-color: var(--z-orange);
}

/* Het Divi-mobielmenu krijgt een eigen bruikbare breedte en blijft scrollbaar. */
@media (max-width: 980px) {
  header .et_pb_menu .et_mobile_menu {
    right: calc(-10vw + 16px) !important;
    left: auto !important;
    width: min(360px, calc(100vw - 48px)) !important;
    max-height: calc(100vh - 124px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 10px 0 !important;
    border-top: 3px solid var(--z-orange) !important;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 18px 46px rgba(23, 70, 74, .18);
  }
  header .et_pb_menu .et_mobile_menu a {
    padding: 12px 18px !important;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.35;
  }
  header .et_pb_menu .et_mobile_menu .sub-menu a {
    padding-left: 34px !important;
  }
}

@media (max-width: 767px) {
  .z-page h1 {
    font-size: clamp(2.05rem, 9.5vw, 2.75rem);
    line-height: 1.05;
    letter-spacing: -.035em;
    text-wrap: wrap;
    overflow-wrap: normal;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }
  .z-page h2 {
    font-size: clamp(1.85rem, 8vw, 2.2rem);
    line-height: 1.14;
  }
  .z-page h3 {
    font-size: 1.3rem;
    line-height: 1.3;
  }
  .z-actions .z-button,
  .z-page-cta .z-button {
    min-height: 52px;
    padding-right: 18px;
    padding-left: 18px;
    white-space: nowrap;
  }
}

/* Vervangt de eerdere noodafbreking midden in Nederlandse woorden. */
@media (max-width: 520px) {
  .et_pb_fullwidth_header {
    width: calc(100% - 32px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .et_pb_fullwidth_header .et_pb_fullwidth_header_container {
    width: calc(100% - 32px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .et_pb_fullwidth_header .header-content {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .et_pb_fullwidth_header h1 {
    font-size: clamp(1.15rem, 5.6vw, 1.5rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* Homepage hero: laat Divi-radius en schaduw mobiel netjes doorwerken. */
@media (max-width: 520px) {
  body.home .et_pb_row:has(.et_pb_fullwidth_header) {
    overflow: hidden;
  }
  body.home .et_pb_row:has(.et_pb_fullwidth_header) > .et_pb_column > .et_pb_fullwidth_header {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/* v2 visuele correctie 2026-07-15: negeer lege WordPress-autoalinea's in maatwerkgrids */
.z-page .z-person-card > p:empty,
.z-page .z-page-grid > p:empty,
.z-page .z-behaviour-map > p:empty {
  display: none !important;
}
/*
 * ZIPPING DIVI-ONDERHOUDSCONTRACT
 * =================================
 * Doel: de gewone site en de Divi Visual Builder visueel gelijk houden.
 *
 * 1. Gebruik NOOIT door Divi gegenereerde numerieke module-, rij- of
 *    headerselectoren als ontwerphaak; die verschillen per rendercontext.
 * 2. Gebruik voor nieuwe maatwerkblokken een betekenisvolle vaste klasse
 *    met het voorvoegsel z-, ingesteld via Divi > Advanced > Attributes.
 * 3. Voeg bij kritieke onderdelen zo nodig een inhoudsgerichte fallback toe
 *    met :has() / :is(), zodat de stijl ook in een verse bewerksessie werkt.
 * 4. Wijzig teksten in de Divi-module; wijzig gedeelde vormgeving hier.
 * 5. Controleer elke structurele wijziging aan de voorkant én in een verse
 *    Divi Visual Builder-sessie, minimaal op 390, 768 en desktopbreedte.
 *
 * Zie: Overdracht_Zipping_staging_Codex_20260713_definitief.md
 */

/*
 * Zipping site layer for Divi 5
 * Apply these classes in Divi: Advanced > CSS ID & Classes > CSS Class.
 * Keep typography, colors and most spacing in Divi Design Variables/Presets.
 * This file only supplies patterns that are awkward to maintain in the builder.
 */

:root {
  --z-teal: #008c8c;
  --z-teal-dark: #006b70;
  --z-teal-deep: #17464a;
  --z-orange: #ff8000;
  --z-orange-dark: #d96700;
  --z-ink: #203438;
  --z-muted: #5d6c6f;
  --z-mist: #eff7f5;
  --z-sand: #f6f1e9;
  --z-paper: #ffffff;
  --z-line: #d8e4e1;
  --z-radius-sm: 14px;
  --z-radius-md: 22px;
  --z-radius-lg: 32px;
  --z-shadow-soft: 0 8px 24px rgba(23,70,74,.055);
  --z-shadow-card: 0 18px 50px rgba(23,70,74,.10);
  --z-content-width: 1180px;
}

/* Accessibility */
.z-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100000;
}
.z-skip-link:focus {
  left: 12px;
  top: 12px;
  padding: 12px 18px;
  background: #fff;
  color: var(--z-teal-deep);
  border: 2px solid var(--z-orange);
  border-radius: 8px;
}

/* Reusable text accents */
.z-kicker {
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: .80rem;
  font-weight: 700;
  color: var(--z-orange-dark);
}
.z-lead {
  font-size: clamp(1.125rem, 1.45vw, 1.35rem);
  line-height: 1.55;
  color: #405356;
}
.z-prose {
  max-width: 74ch;
}
.z-prose p:last-child,
.z-card p:last-child {
  margin-bottom: 0;
}

/* Surface patterns */
.z-card {
  height: 100%;
  background: var(--z-paper);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-md);
  padding: clamp(22px, 2.3vw, 30px);
  box-shadow: var(--z-shadow-soft);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.z-card:hover,
.z-card:focus-within {
  transform: translateY(-3px);
  box-shadow: var(--z-shadow-card);
}
.z-card--teal { border-top: 5px solid var(--z-teal); }
.z-card--orange { border-top: 5px solid var(--z-orange); }

.z-visual-frame {
  background: #fff;
  border: 1px solid var(--z-line);
  border-radius: 30px;
  padding: clamp(12px, 1.6vw, 20px);
  box-shadow: var(--z-shadow-card);
}
.z-visual-frame img,
.z-visual-frame svg {
  display: block;
  width: 100%;
  height: auto;
}

.z-photo-brief {
  border: 2px dashed #9eb8b4;
  border-radius: 20px;
  padding: clamp(20px, 2.2vw, 28px);
  background: rgba(255,255,255,.78);
  color: #43585a;
}
.z-photo-brief strong {
  display: block;
  color: var(--z-teal-dark);
  margin-bottom: 6px;
}
.z-photo-brief__label {
  display: block;
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: .75rem;
  font-weight: 800;
  color: var(--z-orange-dark);
}

.z-note {
  border: 1px solid #f3bf86;
  background: #fff8ee;
  border-radius: 18px;
  padding: 22px;
}
.z-note strong { color: #934b00; }

.z-inline-note {
  padding: 18px 20px;
  border-left: 4px solid var(--z-teal);
  background: var(--z-mist);
  border-radius: 0 14px 14px 0;
}

.z-quote {
  margin: 1.5em 0;
  padding: 12px 0 12px 24px;
  border-left: 5px solid var(--z-orange);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  line-height: 1.4;
  color: var(--z-teal-deep);
}

.z-chip-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 0;
  margin: 20px 0;
  list-style: none;
}
.z-chip-list li {
  padding: 7px 12px;
  background: var(--z-mist);
  border: 1px solid #d5e9e5;
  border-radius: 999px;
  font-size: .88rem;
}

.z-check-list {
  list-style: none;
  padding: 0;
}
.z-check-list li {
  position: relative;
  padding-left: 30px;
  margin: 12px 0;
}
.z-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .50em;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--z-orange);
  box-shadow: 0 0 0 5px rgba(255,128,0,.12);
}

/* CTA */
.z-cta {
  overflow: hidden;
  border-radius: var(--z-radius-lg);
  padding: clamp(30px, 4vw, 48px);
  color: #fff;
  background:
    radial-gradient(circle at 85% 10%, rgba(255,128,0,.26), transparent 28%),
    var(--z-teal-deep);
}
.z-cta p { color: #dbe9e8; }

/* Hero background */
.z-hero {
  background:
    radial-gradient(circle at 95% 8%, rgba(255,128,0,.10), transparent 30%),
    radial-gradient(circle at 5% 90%, rgba(0,140,140,.10), transparent 35%),
    linear-gradient(180deg,#fff,#fbfdfc);
}

/* Page section backgrounds */
.z-bg-mist { background: var(--z-mist); }
.z-bg-sand { background: var(--z-sand); }
.z-bg-deep { background: var(--z-teal-deep); color: #fff; }

/* Process cards */
.z-process-step {
  position: relative;
  height: 100%;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--z-line);
  border-radius: 18px;
}
.z-process-step__number {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 14px;
  border-radius: 50%;
  background: var(--z-teal-dark);
  color: #fff;
  font-weight: 800;
}

/* Card equal heights inside Divi rows */
.z-equal-cards,
.z-equal-cards .et_pb_column {
  display: flex;
}
.z-equal-cards .et_pb_column > .et_pb_module {
  width: 100%;
}

/* Make anchors land below sticky header */
[id] { scroll-margin-top: 110px; }

/* Focus */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid var(--z-orange);
  outline-offset: 3px;
}

/* Motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Responsive corrections */
@media (max-width: 980px) {
  .z-equal-cards,
  .z-equal-cards .et_pb_column {
    display: block;
  }
}
@media (max-width: 767px) {
  .z-card { padding: 22px; }
  .z-cta { border-radius: 24px; }
  .z-photo-brief { padding: 20px; }
}


/* Reusable CTA content and button group */
.z-cta h2 {
  color: var(--z-paper) !important;
}
.z-cta .et_pb_group {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 16px !important;
}
.z-cta .et_pb_button_module_wrapper {
  width: auto !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button {
  padding: 16px 28px !important;
  border: 0 solid transparent !important;
  border-radius: var(--z-radius-sm) !important;
  background: var(--z-teal) !important;
  color: var(--z-paper) !important;
  font-family: var(--z-font-sans, "Maven Pro", system-ui, sans-serif) !important;
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button:hover {
  background: var(--z-teal-dark) !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper:last-child:not(:first-child) .et_pb_button {
  border: 2px solid var(--z-paper) !important;
  background: transparent !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper:last-child:not(:first-child) .et_pb_button:hover {
  background: rgba(255,255,255,.12) !important;
}

@media (max-width: 767px) {
  .z-cta .et_pb_group {
    align-items: stretch !important;
  }
  .z-cta .et_pb_button_module_wrapper,
  .z-cta .et_pb_button {
    width: 100% !important;
  }
  .z-cta .et_pb_button {
    text-align: center !important;
  }
}

/* Secondary CTA follows the primary button. */
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button {
  border: 2px solid var(--z-paper) !important;
  background: transparent !important;
}
body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper + .et_pb_button_module_wrapper .et_pb_button:hover {
  background: rgba(255,255,255,.12) !important;
}

/* Reliable inner spacing in Divi rows. */
.z-cta {
  box-sizing: border-box;
  padding: clamp(30px, 4vw, 48px) !important;
}
.z-cta > .et_pb_column {
  width: 100% !important;
}

/* Reusable card grids: readable columns at every breakpoint. */
@media (max-width: 980px) {
  .et_pb_row_nested:has(> .et_pb_column > .z-card) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px !important;
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
  .z-card {
    width: 100% !important;
    min-width: 0;
    box-sizing: border-box;
  }
}

@media (max-width: 767px) {
  .et_pb_row_nested:has(> .et_pb_column > .z-card) {
    grid-template-columns: minmax(0, 1fr);
  }
  .et_pb_row_nested:has(> .et_pb_column > .z-card) > .et_pb_column:last-child:nth-child(odd) {
    grid-column: auto;
  }
  .z-cta {
    padding: 24px !important;
    border-radius: 24px;
  }
  .z-cta .et_pb_group {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
  }
  .z-cta .et_pb_button_module_wrapper,
  .z-cta .et_pb_button {
    width: 100% !important;
    max-width: none !important;
  }
  body #page-container .et_pb_section .z-cta .et_pb_button_module_wrapper .et_pb_button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    box-sizing: border-box;
    padding: 14px 18px !important;
    font-size: 1rem !important;
    text-align: center !important;
  }
}


/* Mobile hero actions: compact, readable and touch-friendly. */
@media (max-width: 767px) {
  .et_pb_fullwidth_header .et_pb_header_button_wrapper {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px !important;
    width: 100% !important;
  }
  body #page-container .et_pb_section .et_pb_fullwidth_header .et_pb_button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    max-width: none !important;
    min-height: 54px;
    box-sizing: border-box;
    padding: 14px 12px !important;
    font-size: .95rem !important;
    line-height: 1.2 !important;
    white-space: nowrap;
    text-align: center !important;
  }
  body #page-container .et_pb_section .et_pb_fullwidth_header .et_pb_button::after {
    display: none !important;
    content: none !important;
  }
}


/* Four-card service rows: comfortable reading width, native Divi structure retained. */
.z-card h3 {
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
}
.et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px !important;
}
.et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}
@media (max-width: 767px) {
  .et_pb_row:has(> .et_pb_column:nth-child(4) > .z-card) {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Four dimensions of collaboration. */
.z-dimension-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.z-dimension-grid .z-card {
  padding: 20px;
}
@media (max-width: 767px) {
  .z-dimension-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* Stack the definition above its dimension grid on tablets. */
@media (max-width: 980px) {
  .et_pb_row:has(.z-dimension-grid) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 32px !important;
  }
  .et_pb_row:has(.z-dimension-grid) > .et_pb_column {
    width: 100% !important;
    margin: 0 !important;
  }
}


/* Three-card content grids. */
.z-three-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.z-three-grid .z-card {
  box-sizing: border-box;
}
@media (max-width: 980px) {
  .z-three-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* CTA contrast and stacked hero button spacing. */
.z-cta a.et_pb_button {
  color: #ffffff !important;
  background: var(--z-orange) !important;
  border-color: var(--z-orange) !important;
}
.z-cta a.et_pb_button:hover,
.z-cta a.et_pb_button:focus-visible {
  color: #ffffff !important;
  background: var(--z-orange-dark) !important;
  border-color: var(--z-orange-dark) !important;
}
@media (max-width: 980px) {
  .et_pb_fullwidth_header .et_pb_button_two {
    margin-top: 12px !important;
  }
}


/* Keep long Dutch hero titles readable on narrow phones. */
@media (max-width: 480px) {
  .et_pb_fullwidth_header h1 {
    max-width: 100% !important;
    overflow-wrap: anywhere;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
    line-height: 1.08 !important;
  }
}


/* Privacyverklaring: rustige, scanbare juridische pagina in Zipping-huisstijl. */
.z-legal {
  max-width: 1080px;
  margin: 0 auto;
  color: var(--z-ink);
}
.z-legal__hero {
  padding: clamp(34px, 6vw, 72px);
  background: linear-gradient(135deg, var(--z-mist) 0%, var(--z-paper) 70%);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-large);
  box-shadow: 0 18px 46px rgba(23, 70, 74, .08);
}
.z-legal__hero h1 {
  max-width: 18ch;
  margin: .25em 0 .45em;
  font-size: clamp(2.25rem, 5vw, 4rem);
  line-height: 1.08;
}
.z-legal__hero > p:not(.z-kicker) {
  max-width: 74ch;
}
.z-legal__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin-top: 24px;
  color: var(--z-muted);
  font-size: .95rem;
}
.z-legal__meta span {
  display: inline-flex;
  gap: 7px;
}
.z-legal__toc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  margin: 28px 0 0;
  padding: 20px 24px;
  background: var(--z-sand);
  border-radius: var(--z-radius-card);
}
.z-legal__toc strong {
  color: var(--z-teal-deep);
}
.z-legal__toc a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  padding: 8px 13px;
  color: var(--z-teal-dark);
  background: var(--z-paper);
  border: 1px solid var(--z-line);
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
}
.z-legal__toc a:hover,
.z-legal__toc a:focus-visible {
  color: var(--z-paper);
  background: var(--z-teal-dark);
  border-color: var(--z-teal-dark);
}
.z-legal__content {
  max-width: 82ch;
  margin: 0 auto;
  padding: clamp(34px, 6vw, 72px) 0 24px;
}
.z-legal__content h2 {
  scroll-margin-top: 120px;
  margin: 56px 0 20px;
  padding: 0 0 14px;
  color: var(--z-teal-deep);
  border-bottom: 2px solid var(--z-line);
  font-size: clamp(1.55rem, 3vw, 2.15rem);
  line-height: 1.2;
}
.z-legal__content h2:first-child {
  margin-top: 0;
}
.z-legal__content h3 {
  margin: 32px 0 12px;
  color: var(--z-teal-dark);
}
.z-legal__content p,
.z-legal__content li {
  line-height: 1.72;
}
.z-legal__content a {
  color: var(--z-teal-dark);
  text-decoration-thickness: .08em;
  text-underline-offset: .16em;
}
.z-legal__content .z-check-list {
  margin: 18px 0 24px;
  padding: 0;
}
.z-legal__content .z-check-list li {
  padding-left: 32px;
}
.z-table-wrap {
  width: 100%;
  margin: 22px 0 30px;
  overflow-x: auto;
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  -webkit-overflow-scrolling: touch;
}
.z-legal table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  margin: 0;
}
.z-legal th,
.z-legal td {
  padding: 15px 18px;
  border-bottom: 1px solid var(--z-line);
  text-align: left;
  vertical-align: top;
  line-height: 1.55;
}
.z-legal th {
  color: var(--z-paper);
  background: var(--z-teal-deep);
  font-weight: 700;
}
.z-legal tbody tr:nth-child(even) {
  background: var(--z-mist);
}
.z-legal tbody tr:last-child td {
  border-bottom: 0;
}
@media (max-width: 767px) {
  .z-legal__hero {
    padding: 30px 24px;
    border-radius: var(--z-radius-card);
  }
  .z-legal__toc {
    align-items: stretch;
    padding: 18px;
  }
  .z-legal__toc strong {
    flex-basis: 100%;
  }
  .z-legal__toc a {
    width: 100%;
    border-radius: var(--z-radius-small);
  }
  .z-legal__content {
    padding-top: 38px;
  }
  .z-legal__content h2 {
    margin-top: 44px;
  }
}
@media print {
  .z-legal__toc { display: none; }
  .z-legal__hero { box-shadow: none; }
  .z-table-wrap { overflow: visible; }
}


/* Preserve whole words in the long privacy-page title on narrow phones. */
@media (max-width: 480px) {
  .z-legal__hero h1 {
    font-size: clamp(1.9rem, 9vw, 2.4rem);
    overflow-wrap: normal;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }
}


/* Reusable long-form content pages */
.z-page {
  color: var(--z-ink);
}
.z-page *,
.z-page *::before,
.z-page *::after {
  box-sizing: border-box;
}
.z-page h1,
.z-page h2,
.z-page h3 {
  color: var(--z-teal-deep);
  text-wrap: balance;
}
.z-page h1 {
  margin: 0 0 24px;
  font-size: clamp(2.5rem, 5.4vw, 5.1rem);
  line-height: .98;
  letter-spacing: -.045em;
}
.z-page h2 {
  margin: 0 0 20px;
  font-size: clamp(2rem, 3.6vw, 3.45rem);
  line-height: 1.08;
  letter-spacing: -.035em;
}
.z-page h3 {
  margin: 0 0 12px;
  font-size: clamp(1.25rem, 1.8vw, 1.55rem);
  line-height: 1.25;
}
.z-page p {
  font-size: 1.05rem;
  line-height: 1.75;
}
.z-page-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(260px, .75fr);
  gap: clamp(36px, 6vw, 84px);
  align-items: center;
  overflow: hidden;
  padding: clamp(54px, 8vw, 104px);
  border-radius: var(--z-radius-card);
  background:
    radial-gradient(circle at 88% 12%, rgba(255,128,0,.20), transparent 28%),
    linear-gradient(135deg, var(--z-mist), var(--z-paper) 62%);
  box-shadow: var(--z-shadow-soft);
}
.z-page-hero::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -150px;
  width: 360px;
  height: 360px;
  border: 46px solid rgba(0,140,140,.10);
  border-radius: 50%;
  pointer-events: none;
}
.z-page-hero__content,
.z-page-hero__visual {
  position: relative;
  z-index: 1;
}
.z-page-hero .z-lead {
  max-width: 64ch;
}
.z-page-hero__visual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.z-page-hero__visual span {
  display: grid;
  place-items: center;
  min-height: 120px;
  padding: 18px;
  border: 1px solid rgba(0,107,112,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.78);
  color: var(--z-teal-dark);
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 12px 32px rgba(23,70,74,.08);
}
.z-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 32px;
}
.z-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 13px 22px;
  border: 2px solid transparent;
  border-radius: 999px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.z-button:hover,
.z-button:focus-visible {
  transform: translateY(-2px);
}
.z-button:focus-visible {
  outline: 3px solid var(--z-orange);
  outline-offset: 3px;
}
.z-button--primary {
  background: var(--z-orange);
  color: #1e2c2f !important;
  box-shadow: 0 10px 24px rgba(217,103,0,.18);
}
.z-button--primary:hover {
  background: #ff922b;
  color: #172629 !important;
}
.z-button--secondary {
  border-color: var(--z-teal-dark);
  background: rgba(255,255,255,.78);
  color: var(--z-teal-dark) !important;
}
.z-button--secondary:hover {
  background: var(--z-teal-dark);
  color: var(--z-paper) !important;
}
.z-page-section,
.z-page-cta {
  padding: clamp(58px, 8vw, 100px) clamp(24px, 6vw, 82px);
}
.z-page-section--light {
  margin-top: clamp(28px, 5vw, 54px);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  box-shadow: var(--z-shadow-soft);
}
.z-page-section--mist {
  border-radius: var(--z-radius-card);
  background: var(--z-mist);
}
.z-page-section--dark {
  border-radius: var(--z-radius-card);
  background: var(--z-teal-deep);
}
.z-page-section--dark h2,
.z-page-section--dark p {
  color: var(--z-paper);
}
.z-page-section--dark .z-kicker {
  color: #ffad5c;
}
.z-section-heading {
  max-width: 820px;
  margin-bottom: clamp(30px, 5vw, 54px);
}
.z-page-grid {
  display: grid;
  gap: clamp(22px, 4vw, 42px);
}
.z-page-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.z-page-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.z-page-grid--center {
  align-items: center;
}
.z-signal-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.z-signal-list li {
  position: relative;
  padding: 16px 18px 16px 50px;
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-small);
  background: var(--z-mist);
  line-height: 1.55;
}
.z-signal-list li::before {
  content: "✓";
  position: absolute;
  left: 18px;
  top: 14px;
  color: var(--z-orange-dark);
  font-weight: 900;
}
.z-content-card,
.z-step-card {
  height: 100%;
  padding: clamp(26px, 4vw, 38px);
  border: 1px solid var(--z-line);
  border-radius: var(--z-radius-card);
  background: var(--z-paper);
  box-shadow: var(--z-shadow-soft);
}
.z-content-card--accent {
  border-top: 6px solid var(--z-orange);
}
.z-step-card {
  position: relative;
  padding-top: 76px;
}
.z-step-card__number {
  position: absolute;
  top: 24px;
  left: 30px;
  color: var(--z-orange-dark);
  font-size: 1rem;
  font-weight: 900;
  letter-spacing: .08em;
}
.z-behaviour-map {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.z-behaviour-map div {
  display: flex;
  min-height: 150px;
  flex-direction: column;
  justify-content: center;
  padding: 24px;
  border-radius: var(--z-radius-card);
  background: var(--z-mist);
}
.z-behaviour-map strong {
  color: var(--z-teal-dark);
  font-size: 1.2rem;
}
.z-behaviour-map span {
  margin-top: 6px;
  color: var(--z-muted);
  line-height: 1.45;
}
.z-page-cta {
  display: flex;
  gap: 32px;
  align-items: center;
  justify-content: space-between;
  margin-top: clamp(28px, 5vw, 54px);
  border-radius: var(--z-radius-card);
  background: linear-gradient(120deg, var(--z-sand), var(--z-mist));
}
.z-page-cta > div {
  max-width: 760px;
}
.z-page-cta .z-button {
  flex: 0 0 auto;
}
@media (max-width: 980px) {
  .z-page-hero {
    grid-template-columns: 1fr;
  }
  .z-page-hero__visual {
    max-width: 520px;
  }
  .z-page-grid--3 {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 767px) {
  .z-page h1 {
    font-size: clamp(2.35rem, 12vw, 3.65rem);
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .z-page-hero {
    padding: 38px 24px;
    border-radius: var(--z-radius-card);
  }
  .z-page-hero__visual {
    gap: 10px;
  }
  .z-page-hero__visual span {
    min-height: 92px;
    font-size: .72rem;
  }
  .z-page-grid--2 {
    grid-template-columns: 1fr;
  }
  .z-page-section,
  .z-page-cta {
    padding: 46px 24px;
  }
  .z-page-cta {
    align-items: stretch;
    flex-direction: column;
  }
  .z-page-cta .z-button {
    width: 100%;
  }
  .z-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .z-actions .z-button {
    width: 100%;
  }
}
@media (max-width: 420px) {
  .z-behaviour-map {
    grid-template-columns: 1fr;
  }
}


/* Legacy Divi CTA buttons: preserve accessible touch targets on mobile. */
@media (max-width: 767px) {
  a.et_pb_button.z-button--primary,
  a.et_pb_button.z-button--secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
    line-height: 1.2 !important;
  }
}


/* Feedbackronde 13 juli 2026: persoonlijke bewijs- en contentcomponenten */
.z-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.z-review {
  height: 100%;
  padding: 26px 28px;
  background: var(--z-paper);
  border: 0;
  border-left: 6px solid var(--z-teal);
  border-radius: var(--z-radius-md);
  box-shadow: var(--z-shadow-soft);
}

.z-review--orange { border-left-color: var(--z-orange); }

.z-review blockquote {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  font-size: clamp(1.08rem, 1.3vw, 1.24rem);
  font-style: italic;
  line-height: 1.62;
  color: var(--z-ink);
}

.z-review__meta {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: var(--z-muted);
  font-size: .94rem;
  line-height: 1.4;
}

.z-review-source {
  display: inline-grid;
  place-items: center;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 5px;
  background: #0a66c2;
  color: #fff;
  font: 800 14px/1 Arial, sans-serif;
  letter-spacing: -.04em;
}

.z-highlight-quote {
  max-width: 920px;
  margin: 0 auto;
  padding: 22px 0;
  color: var(--z-teal-deep);
  font-size: clamp(1.55rem, 3vw, 2.55rem);
  font-style: italic;
  font-weight: 500;
  line-height: 1.3;
  text-align: center;
}

.z-highlight-quote cite {
  display: block;
  margin-top: 18px;
  color: var(--z-muted);
  font-size: .98rem;
  font-style: normal;
  font-weight: 700;
}

.z-person-card {
  display: grid;
  grid-template-columns: minmax(220px, .78fr) minmax(0, 1.35fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}

.z-person-card__photo {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 38%;
  border-radius: var(--z-radius-lg);
  box-shadow: var(--z-shadow-card);
}

.z-network-note {
  padding: 24px 28px;
  background: var(--z-sand);
  border-radius: var(--z-radius-md);
  color: var(--z-ink);
}

.z-network-note h3 { margin-top: 0; }

.z-case-list { display: grid; gap: 32px; }

.z-case {
  padding: clamp(26px, 4vw, 42px);
  background: var(--z-paper);
  border-radius: var(--z-radius-lg);
  box-shadow: var(--z-shadow-card);
}

.z-case h3 { margin-top: 0; }
.z-case h4 { margin: 1.35em 0 .45em; color: var(--z-teal-dark); }
.z-case ul { margin-bottom: 0; }

.z-case-teasers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.z-case-teaser {
  display: block;
  height: 100%;
  padding: 22px;
  background: var(--z-paper);
  border-radius: var(--z-radius-md);
  color: var(--z-ink);
  text-decoration: none;
  box-shadow: var(--z-shadow-soft);
}

.z-case-teaser:hover,
.z-case-teaser:focus-visible {
  color: var(--z-teal-dark);
  box-shadow: var(--z-shadow-card);
  transform: translateY(-2px);
}

.z-samenwerkings-accent {
  display: inline-block;
  margin-bottom: 14px;
  padding: 9px 16px;
  border-radius: 999px;
  background: var(--z-teal);
  color: var(--z-paper);
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  font-weight: 900;
  letter-spacing: .01em;
}

@media (max-width: 860px) {
  .z-review-grid,
  .z-case-teasers,
  .z-person-card { grid-template-columns: 1fr; }
  .z-person-card__photo { max-width: 520px; aspect-ratio: 5 / 4; }
}

@media (max-width: 560px) {
  .z-review,
  .z-case { padding: 22px 20px; }
}


/* Headermerk en ritme van de nieuwe homepageblokken */
.z-header-brand { display: inline-flex; align-items: center; gap: 10px; }
.z-header-mark { display: block; width: 42px; height: 42px; object-fit: contain; }
.z-header-brand__words { display: block; min-width: 0; }
.z-home-personal { display: grid; gap: clamp(28px, 5vw, 56px); padding: clamp(34px, 6vw, 72px) 0; }
.z-home-cases { padding: clamp(28px, 5vw, 64px) 0; }
.z-highlight-quote cite .z-review-source { margin-right: 8px; vertical-align: middle; }
@media (max-width: 480px) { .z-header-mark { width: 38px; height: 38px; } }


/* Volledig Zipping-logo, intact uit de aangeleverde SVG */
.z-header-logo-link { display: inline-flex; flex-direction: column; align-items: flex-start; text-decoration: none; }
.z-header-logo { display: block; width: 148px; height: auto; max-width: 100%; }
.z-header-tagline { display: block; margin-top: 3px; color: var(--z-teal); font-size: .78rem; font-weight: 700; line-height: 1.15; }
@media (max-width: 480px) { .z-header-logo { width: 104px; height: auto; } .z-header-tagline { display: none !important; } }


/* Volledig beeldmerk ook zichtbaar in de mobiele header */
@media (max-width: 767px) {
  header .et_pb_text:has(.z-header-logo-link) .et_pb_text_inner > p { display: block !important; margin: 0 !important; }
  header .et_pb_column:has(.z-header-logo-link) { display: flex !important; flex: 1 1 auto !important; width: auto !important; }
  header .et_pb_text:has(.z-header-logo-link) { display: flex !important; width: auto !important; }
  header .z-header-logo { width: 86px; height: auto; }
}

/* Home: responsive typography for the welcome block */
.z-home-personal .z-person-card__content .z-kicker {
  font-size: .95rem;
  line-height: 1.35;
  letter-spacing: .12em;
  margin: 0 0 .75rem;
}

.z-home-personal .z-person-card__content h2 {
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: 1.12;
  font-weight: 600;
  margin: 0 0 1.125rem;
}

.z-home-personal .z-person-card__intro {
  max-width: 60ch;
  font-size: clamp(1.125rem, 1.25vw, 1.25rem);
  line-height: 1.65;
  font-weight: 500;
  margin: 0 0 1.75rem;
}

.z-home-personal .z-person-card__action {
  margin: 0;
}

.z-home-personal .z-person-card__action .z-button {
  font-size: 1rem;
  line-height: 1.25;
}

/* Home: approved proposition-style block system — 2026-07-13 */
body.home .z-dimension-grid {
  gap: 18px;
}

body.home .z-dimension-grid .z-card {
  position: relative;
  overflow: hidden;
  min-height: 150px;
  padding: clamp(22px, 2.4vw, 30px);
  background: #edf6f5;
  border: 1px solid rgba(47, 119, 120, .22);
  border-top: 1px solid rgba(47, 119, 120, .22);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(21, 70, 72, .08);
}

body.home .z-dimension-grid .z-card:nth-child(even) {
  background: #faf6f0;
}

body.home .z-dimension-grid .z-card h3 {
  position: relative;
  margin: 0 0 10px;
  padding-top: 16px;
  color: var(--z-teal-dark);
  font-size: 1.15rem;
  line-height: 1.25;
}

body.home .z-dimension-grid .z-card h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

body.home .z-dimension-grid .z-card p {
  line-height: 1.6;
}

.z-home-propositions .et_pb_row_nested {
  position: relative;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) minmax(0, 1fr);
  gap: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin-top: clamp(34px, 5vw, 62px) !important;
  padding: clamp(38px, 5vw, 58px) !important;
  overflow: hidden;
  background: linear-gradient(125deg, #0d4a4d 0%, #125659 54%, #0c4649 100%);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 24px;
  box-shadow: 0 22px 46px rgba(12, 62, 64, .16);
}

.z-home-propositions .et_pb_row_nested > .et_pb_column {
  position: relative;
  z-index: 1;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 clamp(22px, 3vw, 40px);
}

.z-home-propositions .et_pb_row_nested > .et_pb_column:first-child {
  padding-left: 0;
}

.z-home-propositions .et_pb_row_nested > .et_pb_column:last-child {
  padding-right: 0;
}

.z-home-propositions .et_pb_row_nested > .et_pb_column + .et_pb_column {
  border-left: 1px solid rgba(255, 255, 255, .28);
}

.z-home-propositions .et_pb_row_nested .z-card,
.z-home-propositions .et_pb_row_nested .z-card:hover,
.z-home-propositions .et_pb_row_nested .z-card:focus-within {
  min-height: 0;
  padding: 0 !important;
  color: #fff;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0;
  box-shadow: none !important;
  transform: none !important;
}

.z-home-propositions .et_pb_row_nested .z-card h3 {
  position: relative;
  margin: 0 0 16px;
  padding-top: 22px;
  color: #fff !important;
  font-size: clamp(1.25rem, 1.5vw, 1.45rem);
  line-height: 1.22;
}

.z-home-propositions .et_pb_row_nested .z-card h3::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 38px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

.z-home-propositions .et_pb_row_nested .z-card p {
  margin: 0;
  color: rgba(255, 255, 255, .9) !important;
  font-size: 1rem;
  line-height: 1.65;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px 24px !important;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card {
  position: relative;
  min-height: 0;
  padding: clamp(25px, 2.7vw, 32px) clamp(48px, 5vw, 68px) clamp(25px, 2.7vw, 32px) clamp(25px, 2.7vw, 32px);
  background: #fff;
  border: 1px solid rgba(47, 119, 120, .2);
  border-top: 1px solid rgba(47, 119, 120, .2);
  border-left: 5px solid var(--z-teal);
  border-radius: 18px;
  box-shadow: 0 13px 30px rgba(21, 70, 72, .08);
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card::after {
  content: "›";
  position: absolute;
  top: 50%;
  right: clamp(20px, 2.5vw, 30px);
  color: var(--z-orange);
  font-size: 2.25rem;
  font-weight: 300;
  line-height: 1;
  transform: translateY(-54%);
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card h3 {
  margin-bottom: 9px;
  color: var(--z-teal-dark);
  font-size: 1.18rem;
  line-height: 1.3;
}

body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card p {
  line-height: 1.6;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(34px, 5vw, 64px) !important;
  padding: clamp(32px, 5vw, 58px) !important;
  background: linear-gradient(135deg, #fffaf5 0%, #f7f2ea 100%);
  border: 1px solid rgba(129, 111, 88, .12);
  border-radius: 24px;
  box-shadow: 0 18px 40px rgba(64, 55, 42, .07);
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) > .et_pb_column {
  width: 100% !important;
  margin: 0 !important;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-prose {
  max-width: none;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-prose > .et_pb_text_inner > h2 {
  margin-bottom: 16px;
  color: var(--z-teal-dark);
  font-size: clamp(1.9rem, 3vw, 2.45rem);
  line-height: 1.18;
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-network-note {
  margin-top: 24px;
  padding: 22px 24px;
  background: rgba(255, 255, 255, .76);
  border-left: 4px solid var(--z-teal);
  border-radius: 14px;
  box-shadow: 0 10px 24px rgba(64, 55, 42, .06);
}

body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) .z-photo-brief {
  align-self: center;
  padding: clamp(24px, 3vw, 34px);
  background: rgba(255, 255, 255, .88);
  border: 2px dashed rgba(47, 119, 120, .58);
  border-radius: 22px;
  box-shadow: none;
}

body.home .z-home-cases {
  padding: clamp(30px, 5vw, 54px);
  background: linear-gradient(125deg, #edf7f6 0%, #f6fbfa 100%);
  border: 1px solid rgba(47, 119, 120, .14);
  border-radius: 24px;
}

body.home .z-home-cases .z-section-heading h2 {
  color: var(--z-teal-dark);
  font-size: clamp(1.75rem, 2.8vw, 2.25rem);
  line-height: 1.2;
}

body.home .z-home-cases .z-case-teasers {
  gap: 0;
  margin-top: 26px;
}

body.home .z-home-cases .z-case-teaser,
body.home .z-home-cases .z-case-teaser:hover,
body.home .z-home-cases .z-case-teaser:focus-visible {
  position: relative;
  min-height: 0;
  padding: 18px clamp(22px, 3vw, 34px) 0;
  color: var(--z-ink);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}

body.home .z-home-cases .z-case-teaser::before {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(22px, 3vw, 34px);
  width: 34px;
  height: 3px;
  border-radius: 999px;
  background: var(--z-orange);
}

body.home .z-home-cases .z-case-teaser + .z-case-teaser {
  border-left: 1px solid rgba(47, 119, 120, .24);
}

@media (max-width: 860px) {
  .z-home-propositions .et_pb_row_nested {
    grid-template-columns: minmax(0, 1fr) !important;
    padding: 34px !important;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column,
  .z-home-propositions .et_pb_row_nested > .et_pb_column:first-child,
  .z-home-propositions .et_pb_row_nested > .et_pb_column:last-child {
    padding: 0;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column + .et_pb_column {
    margin-top: 28px !important;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, .28);
    border-left: 0;
  }

  .z-home-propositions .et_pb_row_nested > .et_pb_column:last-child:nth-child(odd) {
    grid-column: auto !important;
  }

  body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
    grid-template-columns: minmax(0, 1fr);
  }

  body.home .z-home-cases .z-case-teasers {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  body.home .z-home-cases .z-case-teaser,
  body.home .z-home-cases .z-case-teaser:hover,
  body.home .z-home-cases .z-case-teaser:focus-visible {
    padding: 18px 0 0;
  }

  body.home .z-home-cases .z-case-teaser::before {
    left: 0;
  }

  body.home .z-home-cases .z-case-teaser + .z-case-teaser {
    padding-top: 24px;
    border-top: 1px solid rgba(47, 119, 120, .2);
    border-left: 0;
  }

  body.home .z-home-cases .z-case-teaser + .z-case-teaser::before {
    top: 8px;
  }
}

@media (max-width: 560px) {
  body.home .z-dimension-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  body.home .z-dimension-grid .z-card {
    min-height: 0;
  }

  .z-home-propositions .et_pb_row_nested {
    padding: 30px 24px !important;
    border-radius: 20px;
  }

  body.home :is(.z-home-services, .et_pb_row:not(:has(.z-dimension-grid)):has(> .et_pb_column:nth-child(4) > .z-card)) .z-card {
    padding: 24px 48px 24px 22px;
  }

  body.home :is(.z-home-workstyle, .et_pb_row:has(.z-prose):has(.z-photo-brief)) {
    padding: 28px 22px !important;
    border-radius: 20px;
  }

  body.home .z-home-cases {
    padding: 28px 22px;
    border-radius: 20px;
  }
}


/* Home hero: subtle tonal depth — 2026-07-13 */
body.home :is(.z-home-hero, .et_pb_fullwidth_header) {
  background-color: #008c8c !important;
  background-image: linear-gradient(125deg, #008c8c 0%, #078184 56%, #0b7276 100%) !important;
}

/* Proeflezersronde 14 juli 2026: typografie, kaarten, lijsten en mobiel menu */

/* Eén letterfamilie, met een rustiger en consistenter koppenritme. */
.z-page h1 {
  font-size: clamp(2.5rem, 4.7vw, 4.55rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}
.z-page h2 {
  font-size: clamp(1.9rem, 3.1vw, 3rem);
  line-height: 1.12;
  letter-spacing: -.03em;
}

/* Divi mag geen tweede, standaardbullet naast het eigen Zipping-teken tonen. */
#main-content ul.z-check-list,
#main-content ul.z-signal-list {
  padding-left: 0 !important;
  list-style: none !important;
}
#main-content ul.z-check-list > li,
#main-content ul.z-signal-list > li {
  list-style: none !important;
}
#main-content ul.z-check-list > li::marker,
#main-content ul.z-signal-list > li::marker {
  content: "";
}

/* Niet-klikbare informatiekaarten blijven rustig staan. */
.z-card:hover,
.z-card:focus-within {
  transform: none;
  box-shadow: var(--z-shadow-soft);
}

/* Kaartreeksen krijgen consequent teal–oranje–teal. */
.z-page-grid > .z-content-card {
  border-top: 6px solid var(--z-teal);
}
.z-page-grid > .z-content-card:nth-child(even) {
  border-top-color: var(--z-orange);
}

/* Het Divi-mobielmenu krijgt een eigen bruikbare breedte en blijft scrollbaar. */
@media (max-width: 980px) {
  header .et_pb_menu .et_mobile_menu {
    right: calc(-10vw + 16px) !important;
    left: auto !important;
    width: min(360px, calc(100vw - 48px)) !important;
    max-height: calc(100vh - 124px);
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 10px 0 !important;
    border-top: 3px solid var(--z-orange) !important;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 18px 46px rgba(23, 70, 74, .18);
  }
  header .et_pb_menu .et_mobile_menu a {
    padding: 12px 18px !important;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    line-height: 1.35;
  }
  header .et_pb_menu .et_mobile_menu .sub-menu a {
    padding-left: 34px !important;
  }
}

@media (max-width: 767px) {
  .z-page h1 {
    font-size: clamp(2.05rem, 9.5vw, 2.75rem);
    line-height: 1.05;
    letter-spacing: -.035em;
    text-wrap: wrap;
    overflow-wrap: normal;
    word-break: normal;
    -webkit-hyphens: none;
    hyphens: none;
  }
  .z-page h2 {
    font-size: clamp(1.85rem, 8vw, 2.2rem);
    line-height: 1.14;
  }
  .z-page h3 {
    font-size: 1.3rem;
    line-height: 1.3;
  }
  .z-actions .z-button,
  .z-page-cta .z-button {
    min-height: 52px;
    padding-right: 18px;
    padding-left: 18px;
    white-space: nowrap;
  }
}

/* Vervangt de eerdere noodafbreking midden in Nederlandse woorden. */
@media (max-width: 520px) {
  .et_pb_fullwidth_header {
    width: calc(100% - 32px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .et_pb_fullwidth_header .et_pb_fullwidth_header_container {
    width: calc(100% - 32px) !important;
    margin-right: auto !important;
    margin-left: auto !important;
  }
  .et_pb_fullwidth_header .header-content {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
  .et_pb_fullwidth_header h1 {
    font-size: clamp(1.15rem, 5.6vw, 1.5rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.035em !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }
}

/* Homepage hero: laat Divi-radius en schaduw mobiel netjes doorwerken. */
@media (max-width: 520px) {
  body.home .et_pb_row:has(.et_pb_fullwidth_header) {
    overflow: hidden;
  }
  body.home .et_pb_row:has(.et_pb_fullwidth_header) > .et_pb_column > .et_pb_fullwidth_header {
    width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }
}

/* v2 visuele correctie 2026-07-15b: verwijder door wpautop verpakte lege kaartlinks */
.z-page .z-page-grid > p:has(> a.z-content-card:empty),
.z-page .z-content-card > p:empty {
  display: none !important;
}


/* v2 visuele correctie 2026-07-15c: verwijder ook vaste-spatie-alinea’s die wpautop in maatwerkgrids plaatst */
.z-page .z-page-grid > p,
.z-page .z-behaviour-map > p,
.z-page .z-person-card > p {
  display: none !important;
}


/* v2 visuele correctie 2026-07-15d: voorkom intrinsieke grid-overloop op smalle schermen */
@media (max-width: 767px) {
  .z-page .z-page-grid,
  .z-page .z-behaviour-map,
  .z-page .z-person-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .z-page .z-page-grid > *,
  .z-page .z-behaviour-map > *,
  .z-page .z-person-card > * {
    min-width: 0;
  }
}


/* v2 visuele correctie 2026-07-15e: dezelfde mobiele begrenzing voor pagina’s zonder z-page-wrapper */
@media (max-width: 767px) {
  body .z-page-grid,
  body .z-behaviour-map,
  body .z-person-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body .z-page-grid > *,
  body .z-behaviour-map > *,
  body .z-person-card > * {
    min-width: 0;
  }
}


/* v2 visuele correctie 2026-07-15f: begrens praktijkkaart-grid op smalle schermen */
@media (max-width: 767px) {
  body .z-case-list {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body .z-case-list > * {
    min-width: 0;
  }
}


/* Live reviewcorrecties 2026-07-16 */
/* Homepage: gelijke knopbreedte en rustige tussenruimte in de afsluitende CTA. */
body.home .z-page-cta .z-button--primary,
body.home .z-page-cta .z-button--secondary {
  min-width: 216px;
  justify-content: center;
}
body.home .z-page-cta .z-button--secondary {
  margin-top: 12px;
}

/* Coaching: geef de vijf stappen en opeenvolgende blokken meer ademruimte. */
body.page-id-54 .z-card-grid {
  display: grid;
  gap: 16px;
}
body.page-id-54 .z-lead + .z-card {
  margin-bottom: 32px;
}
body.page-id-54 .z-network-note {
  margin-top: 18px;
}
body.page-id-54 .z-section-heading {
  margin-top: 32px;
}

/* Ervaring: gewone caselijsten lezen even groot als de omliggende tekst. */
body.page-id-143 #main-content .et_pb_text_inner ul:not([class]) > li {
  font-size: 1.05rem;
  line-height: 1.75;
}
body.page-id-143 #main-content .et_pb_text_inner ul:not([class]) > li::marker {
  color: var(--z-orange);
}

/* Samenwerkingsvermogen: beide 2x2-kaartgrids gebruiken hetzelfde schaakbordritme. */
body.page-id-52 .z-dimension-grid > .z-card:nth-child(3) {
  border-top-color: var(--z-orange);
}
body.page-id-52 .z-dimension-grid > .z-card:nth-child(4) {
  border-top-color: var(--z-teal);
}
