{"id":12472,"date":"2026-10-15T11:26:44","date_gmt":"2026-10-15T09:26:44","guid":{"rendered":"https:\/\/dairytop.eu\/?page_id=12472"},"modified":"2026-10-15T20:19:53","modified_gmt":"2026-10-15T18:19:53","slug":"pasteurisers","status":"publish","type":"page","link":"https:\/\/dairytop.eu\/en\/pasteurisers\/","title":{"rendered":"Pasteurisers"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"12472\" class=\"elementor elementor-12472 elementor-12389\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f9a24cf elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"f9a24cf\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-\" data-id=\"\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element- elementor-widget elementor-widget-html\" data-id=\"\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- DairyTop kalverhuisvesting: https:\/\/dairytop.eu\/en\/pasteurisers\/ (EN). Plakken in een Elementor HTML-widget. -->\n<style>\nbody:has(.dtk) .site-content { margin-left: 0 !important; margin-right: 0 !important; }\n@media (max-width: 767px) { body:has(.dtk) .site-content, body:has(.dtk) .site-content .ast-container, body:has(.dtk) .site-content .elementor-container { padding-left: 0 !important; padding-right: 0 !important; } }\n\/* Ankers (#opstelling e.d.) onder de vaste Astra-header laten landen. Hoogte gemeten op dairytop.eu 07-10-2026:\n   241 px boven 921 px breed, 129 px tot 544 px, daaronder 112 px; plus de WP-adminbalk voor ingelogde gebruikers.\n   Een sectie heeft zelf al var(--section) witruimte boven de kop, die gaat eraf. *\/\n.dtk { --dtk-sticky: 241px; --dtk-admin: 0px; }\n@media (max-width: 921px) { .dtk { --dtk-sticky: 129px; } }\n@media (max-width: 544px) { .dtk { --dtk-sticky: 112px; } }\n.admin-bar .dtk { --dtk-admin: 32px; }\n@media (max-width: 782px) { .admin-bar .dtk { --dtk-admin: 46px; } }\n@media (max-width: 600px) { .admin-bar .dtk { --dtk-admin: 0px; } }\n.dtk [id] { scroll-margin-top: calc(var(--dtk-sticky) + var(--dtk-admin) + 24px); }\n.dtk .dtk-section[id] { scroll-margin-top: calc(var(--dtk-sticky) + var(--dtk-admin) + 24px - var(--section)); }\nbody .dtk button { background: none; border: 0; border-radius: 0; padding: 0; margin: 0; box-shadow: none; text-shadow: none; text-transform: none; letter-spacing: inherit; font: inherit; line-height: inherit; color: inherit; min-height: 0; text-decoration: none; }\nbody .dtk :is(ul, ol) { margin: 0; padding: 0; list-style: none; }\nbody .dtk li { margin: 0; }\nbody .dtk :is(input, select, textarea) { box-shadow: none; }\n\/* Dairytop kalverhuisvesting. Alles gescoped onder .dtk zodat het in een Elementor HTML-widget past. *\/\nhtml body .dtk {\n  --navy: #1f3741;\n  --navy-2: #2b4a57;\n  --blue: #40bcf3;\n  --blue-soft: #d9f1fc;\n  --ink: #48515b;\n  --concrete: #eef2f3;\n  --line: #dce3e5;\n  --muted: #5f6b73;\n  --white: #fff;\n  --r-s: 4px;\n  --r-m: 10px;\n  --gutter: clamp(16px, 4vw, 40px);\n  --section: clamp(56px, 8vw, 112px);\n  --display: 'Outfit', system-ui, sans-serif;\n  --text: 'DM Sans', system-ui, sans-serif;\n  font-family: var(--text);\n  font-size: 17px;\n  line-height: 1.6;\n  color: var(--ink);\n  overflow-x: clip;\n  -webkit-font-smoothing: antialiased;\n}\n\/* Witte achtergrond alleen voor de pagina-blokken: de footer van de plugin heeft ook de class dtk (dtk-ft) en is navy. *\/\nhtml body .dtk:not(.dtk-ft) { background: var(--white); }\nhtml body .dtk *, html body .dtk *::before, html body .dtk *::after { box-sizing: border-box; }\nhtml body .dtk img { max-width: 100%; height: auto; display: block; }\nhtml body :where(.dtk) :where(h1, h2, h3, h4) {\n  font-family: var(--display);\n  color: var(--navy);\n  margin: 0;\n  font-weight: 600;\n  letter-spacing: -0.015em;\n  line-height: 1.1;\n  text-wrap: balance;\n}\nhtml body :where(.dtk) h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.6rem); }\nhtml body :where(.dtk) h3 { font-size: 1.3rem; line-height: 1.25; }\nhtml body :where(.dtk) p { margin: 0 0 1em; text-wrap: pretty; }\nhtml body :where(.dtk) p:last-child { margin-bottom: 0; }\nhtml body :where(.dtk) a { color: var(--navy); }\nhtml body :where(.dtk) :where(ul, ol) { margin: 0; padding: 0; list-style: none; }\nhtml body .dtk :focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; border-radius: 2px; }\nhtml body .dtk .dtk-on-dark :focus-visible, html body .dtk-hero :focus-visible { outline-color: var(--blue); }\nhtml body .dtk-ic { width: 1.1em; height: 1.1em; flex: none; }\nhtml body .dtk-num { font-variant-numeric: tabular-nums; }\n\nhtml body .dtk-wrap { max-width: 1240px; margin-inline: auto; padding-inline: var(--gutter); }\nhtml body .dtk-section { padding-block: var(--section) calc(var(--section) * 1.08); }\nhtml body .dtk-section--tint { background: var(--concrete); }\nhtml body .dtk-head { max-width: 46rem; margin-bottom: clamp(28px, 4vw, 48px); }\nhtml body .dtk-head p { font-size: 1.08rem; margin-top: 14px; }\nhtml body .dtk-kicker {\n  display: inline-flex; align-items: center; gap: 10px;\n  font-family: var(--display); font-weight: 500; font-size: .95rem;\n  color: var(--navy); margin-bottom: 12px;\n}\nhtml body .dtk-kicker::before { content: ''; width: 18px; height: 3px; background: var(--blue); border-radius: 2px; }\n\n\/* Buttons and links *\/\nhtml body .dtk-actions { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }\nhtml body .dtk-btn {\n  display: inline-flex; align-items: center; gap: 10px;\n  min-height: 48px; padding: 12px 22px;\n  background: var(--blue); color: var(--navy) !important;\n  font-family: var(--display); font-weight: 600; font-size: 1.02rem;\n  text-decoration: none; border-radius: var(--r-s); border: 0;\n  transition: background-color .2s ease, transform .15s ease;\n}\nhtml body .dtk-btn:hover { background: #6fcdf6; }\nhtml body .dtk-btn:active { transform: translateY(1px); }\nhtml body .dtk-btn--ghost { background: transparent; color: var(--white) !important; box-shadow: inset 0 0 0 2px rgba(255,255,255,.75); }\nhtml body .dtk-btn--ghost:hover { background: rgba(255,255,255,.12); }\nhtml body .dtk-btn--dark { background: var(--navy); color: var(--white) !important; }\nhtml body .dtk-btn--dark:hover { background: var(--navy-2); }\nhtml body .dtk-link {\n  display: inline-flex; align-items: center; gap: 8px;\n  font-family: var(--display); font-weight: 600; color: var(--navy);\n  text-decoration: none; padding-block: 8px;\n  background: linear-gradient(var(--blue), var(--blue)) 0 100% \/ 100% 2px no-repeat;\n  transition: background-size .25s ease;\n}\nhtml body .dtk-link:hover { background-size: 0 2px; background-position: 100% 100%; }\nhtml body .dtk-link .dtk-ic { transition: transform .2s ease; }\nhtml body .dtk-link:hover .dtk-ic { transform: translateX(3px); }\nhtml body .dtk-links { display: flex; flex-wrap: wrap; column-gap: 28px; row-gap: 4px; }\nhtml body .dtk-link-light { color: var(--white) !important; }\n\n\/* Breadcrumbs *\/\nhtml body .dtk-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: .88rem; }\nhtml body .dtk-crumbs li { display: flex; align-items: center; }\nhtml body .dtk-crumbs li + li::before { content: '\/'; margin-inline: 8px; opacity: .6; }\nhtml body .dtk-crumbs a { text-decoration: none; }\nhtml body .dtk-crumbs a:hover { text-decoration: underline; }\n\n\/* Hero *\/\nhtml body .dtk-hero { position: relative; min-height: clamp(460px, 68vh, 660px); display: flex; color: var(--white); isolation: isolate; }\nhtml body .dtk-hero-img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; z-index: -2; }\nhtml body .dtk-hero::after {\n  content: ''; position: absolute; inset: 0; z-index: -1;\n  background:\n    linear-gradient(90deg, rgba(20,38,46,.86) 0%, rgba(20,38,46,.62) 38%, rgba(20,38,46,.08) 72%),\n    linear-gradient(0deg, rgba(20,38,46,.55) 0%, rgba(20,38,46,0) 45%);\n}\nhtml body .dtk-hero-inner { width: 100%; display: flex; flex-direction: column; justify-content: space-between; padding-block: 24px clamp(88px, 11vw, 132px); }\nhtml body .dtk-hero .dtk-crumbs a, html body .dtk-hero .dtk-crumbs span { color: rgba(255,255,255,.88); }\nhtml body .dtk-hero-copy { max-width: 38rem; margin-top: 48px; }\nhtml body .dtk-hero h1 { color: var(--white); font-size: clamp(2.4rem, 1.4rem + 4.2vw, 4.4rem); font-weight: 600; letter-spacing: -0.025em; line-height: 1.02; }\nhtml body .dtk-hero-kicker { font-family: var(--display); font-weight: 500; color: var(--blue); margin-bottom: 14px !important; }\nhtml body .dtk-lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.22rem); line-height: 1.55; margin: 20px 0 28px !important; max-width: 34rem; }\nhtml body .dtk-hero .dtk-lead { color: rgba(255,255,255,.92); }\n\n\/* Facts strip, overlaps the hero *\/\nhtml body .dtk-facts {\n  position: relative; z-index: 2;\n  margin: calc(clamp(56px, 7vw, 76px) * -1) 0 0;\n  display: grid; grid-template-columns: repeat(4, 1fr);\n  background: var(--white); border-top: 4px solid var(--blue);\n  border-radius: 0;\n  box-shadow: 0 18px 40px -24px rgba(31,55,65,.45);\n}\nhtml body .dtk-facts > div { padding: 22px clamp(16px, 2vw, 28px); border-left: 1px solid var(--line); }\nhtml body .dtk-facts > div:first-child { border-left: 0; }\nhtml body .dtk-facts dt { font-size: .9rem; color: var(--muted); order: 2; }\nhtml body .dtk-facts dd { margin: 0 0 4px; font-family: var(--display); font-weight: 600; font-size: clamp(1.35rem, 1rem + 1vw, 1.9rem); color: var(--navy); font-variant-numeric: tabular-nums; line-height: 1.15; }\n\/* Waarde (vet) boven, uitleg (dun) eronder. *\/\nhtml body .dtk-facts > div { display: flex; flex-direction: column; justify-content: flex-start; }\n\n\/* Feature (image to the edge + text) *\/\nhtml body .dtk-feature { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: stretch; min-height: 560px; }\nhtml body .dtk-feature + .dtk-feature { margin-top: clamp(40px, 6vw, 88px); }\nhtml body .dtk-feature-media { position: relative; min-height: 360px; }\nhtml body .dtk-feature-media img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }\nhtml body .dtk-feature-body { --edge: max(var(--gutter), calc((100vw - 1240px) \/ 2 + var(--gutter))); padding: clamp(28px, 5vw, 72px) var(--edge) clamp(28px, 5vw, 72px) clamp(28px, 5vw, 72px); align-self: center; }\nhtml body .dtk-feature-body > * { max-width: 520px; }\nhtml body .dtk-feature--flip { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }\nhtml body .dtk-feature--flip .dtk-feature-media { order: 2; }\nhtml body .dtk-feature--flip .dtk-feature-body { padding-left: var(--edge); padding-right: clamp(28px, 5vw, 72px); }\nhtml body .dtk-feature-body h3 { font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); margin-bottom: 16px; }\nhtml body .dtk-feature-tag { font-family: var(--display); font-weight: 500; color: var(--muted); margin-bottom: 10px !important; }\nhtml body .dtk-checks { display: grid; gap: 10px; margin: 20px 0 28px; }\nhtml body .dtk-checks li { display: flex; gap: 12px; align-items: flex-start; }\nhtml body .dtk-checks .dtk-ic { color: var(--navy); background: var(--blue-soft); border-radius: 50%; padding: 3px; width: 24px; height: 24px; margin-top: 1px; }\nhtml body .dtk-checks strong { color: var(--navy); font-weight: 600; }\n\n\/* Index list of all categories *\/\nhtml body .dtk-index { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 5vw, 72px); border-top: 2px solid var(--navy); }\nhtml body .dtk-index a { align-content: center; display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); text-decoration: none; }\nhtml body .dtk-index-t { font-family: var(--display); font-weight: 600; font-size: 1.25rem; color: var(--navy); }\nhtml body .dtk-index-d { grid-column: 1; color: var(--ink); font-size: .96rem; }\nhtml body .dtk-index .dtk-ic { grid-row: 1 \/ span 2; grid-column: 2; color: var(--navy); width: 22px; height: 22px; transition: transform .2s ease; }\nhtml body .dtk-index a:hover .dtk-ic { transform: translateX(4px); }\nhtml body .dtk-index a:hover .dtk-index-t { text-decoration: underline; text-decoration-color: var(--blue); text-decoration-thickness: 2px; text-underline-offset: 4px; }\n\n\/* Split: text next to an image that runs to the viewport edge *\/\nhtml body .dtk-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 80px); align-items: center; }\nhtml body .dtk-split-media { margin-right: calc((min(100vw, 1920px) - min(100vw, 1240px)) \/ -2 - var(--gutter)); }\nhtml body .dtk-split-media img { width: 100%; aspect-ratio: 4 \/ 3; object-fit: cover; border-radius: var(--r-m) 0 0 var(--r-m); }\nhtml body .dtk-split--flip .dtk-split-media { order: -1; margin-right: 0; margin-left: calc((min(100vw, 1920px) - min(100vw, 1240px)) \/ -2 - var(--gutter)); }\nhtml body .dtk-split--flip .dtk-split-media img { border-radius: 0 var(--r-m) var(--r-m) 0; }\n\n\/* Model comparison (OKS) *\/\nhtml body .dtk-models { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }\nhtml body .dtk-model { display: flex; flex-direction: column; }\nhtml body .dtk-model-img { aspect-ratio: 3 \/ 2; object-fit: cover; width: 100%; border-radius: var(--r-s); }\nhtml body .dtk-model h3 { margin: 20px 0 6px; font-size: 1.45rem; }\nhtml body .dtk-model-sub { color: var(--muted); font-size: .95rem; margin-bottom: 16px !important; }\nhtml body .dtk-model-plan { background: var(--concrete); border-radius: var(--r-s); padding: 18px 10px 8px; display: flex; justify-content: center; }\nhtml body .dtk-model dl { margin: 18px 0 20px; display: grid; gap: 0; }\nhtml body .dtk-model dl div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: .95rem; }\nhtml body .dtk-model dt { color: var(--muted); }\nhtml body .dtk-model dd { margin: 0; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; text-align: right; }\nhtml body .dtk-model .dtk-link { margin-top: auto; align-self: flex-start; }\nhtml body .dtk-note { font-size: .9rem; color: var(--muted); margin-top: 24px !important; }\n\n\/* Plans (SVG) *\/\nhtml body .dtk-plan { width: 100%; max-width: 250px; height: auto; font-family: var(--display); overflow: visible; }\nhtml body .dtk-plan-floor { fill: var(--blue-soft); }\nhtml body .dtk-plan-wall { fill: none; stroke: var(--navy); stroke-linejoin: miter; }\nhtml body .dtk-plan-solid { fill: var(--navy); }\nhtml body .dtk-plan-divider { fill: var(--navy); transition: opacity .3s ease, transform .3s ease; transform-box: fill-box; transform-origin: top; }\nhtml body .dtk-plan-front { stroke: var(--navy); stroke-width: 2; stroke-dasharray: 5 4; fill: none; }\nhtml body .dtk-plan-door { stroke: var(--navy); stroke-width: 1; fill: none; stroke-dasharray: 2 3; }\nhtml body .dtk-plan-area { font-size: 15px; font-weight: 600; fill: var(--navy); text-anchor: middle; font-variant-numeric: tabular-nums; }\nhtml body .dtk-plan-n { font-size: 12px; font-weight: 600; fill: var(--navy); text-anchor: middle; }\nhtml body .dtk-plan-note { font-size: 10px; fill: var(--muted); }\nhtml body .dtk-plan-m2 { font-size: 10.5px; fill: var(--navy); text-anchor: middle; font-variant-numeric: tabular-nums; }\nhtml body .dtk-dim path { stroke: var(--muted); stroke-width: 1; fill: none; }\nhtml body .dtk-dim text { font-size: 10.5px; fill: var(--muted); text-anchor: middle; font-variant-numeric: tabular-nums; }\nhtml body .dtk-plan-q { max-width: 560px; }\n\n\/* Quattro configurator *\/\nhtml body .dtk-config { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(28px, 5vw, 72px); align-items: center; }\nhtml body .dtk-seg { display: inline-flex; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-s); padding: 4px; gap: 4px; margin: 20px 0 22px; flex-wrap: wrap; }\nhtml body .dtk-seg button { font: inherit; font-family: var(--display); font-weight: 600; font-size: .98rem; color: var(--navy); background: transparent; border: 0; border-radius: 3px; padding: 10px 16px; min-height: 44px; cursor: pointer; transition: background-color .2s ease; }\nhtml body .dtk-seg button:hover { background: var(--concrete); }\nhtml body .dtk-seg button[aria-pressed=\"true\"] { background: var(--navy); color: var(--white); }\nhtml body .dtk-config-out { min-height: 5.2em; }\nhtml body .dtk-config-out strong { display: block; font-family: var(--display); color: var(--navy); font-size: 1.2rem; margin-bottom: 6px; }\nhtml body .dtk-config-stage { background: var(--white); border-radius: var(--r-m); padding: clamp(18px, 3vw, 36px); display: flex; justify-content: center; }\nhtml body .dtk-config .dtk-q-labels { opacity: 0; transition: opacity .25s ease; }\nhtml body .dtk-config[data-mode=\"eenling\"] .dtk-q-labels[data-mode=\"eenling\"], html body .dtk-config[data-mode=\"duo\"] .dtk-q-labels[data-mode=\"duo\"], html body .dtk-config[data-mode=\"groep\"] .dtk-q-labels[data-mode=\"groep\"] { opacity: 1; }\nhtml body .dtk-config[data-mode=\"duo\"] [data-div=\"1\"], html body .dtk-config[data-mode=\"duo\"] [data-div=\"3\"], html body .dtk-config[data-mode=\"groep\"] .dtk-plan-divider { opacity: .12; transform: scaleY(.3); } \/* krimpt naar de achterwand, weg van de tekst *\/\nhtml body .dtk-plan-static .dtk-q-labels[data-mode=\"eenling\"] { opacity: 1; }\nhtml body .dtk-plan-static .dtk-q-labels:not([data-mode=\"eenling\"]) { display: none; }\n\n\/* Steps with photos (klapbodem, build-up) *\/\nhtml body .dtk-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); counter-reset: step; }\nhtml body .dtk-steps--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }\nhtml body .dtk-step { counter-increment: step; }\nhtml body .dtk-step img { aspect-ratio: 4 \/ 5; object-fit: cover; width: 100%; border-radius: var(--r-s); }\nhtml body .dtk-steps--3 .dtk-step img { aspect-ratio: 4 \/ 3; }\nhtml body .dtk-step h3 { display: flex; gap: 10px; align-items: baseline; margin: 18px 0 8px; font-size: 1.2rem; }\nhtml body .dtk-step h3::before { content: counter(step); font-variant-numeric: tabular-nums; flex: none; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: var(--navy); font-size: .9rem; transform: translateY(-2px); }\nhtml body .dtk-step p { font-size: .97rem; }\n\n\/* Daily work mosaic *\/\nhtml body .dtk-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(16px, 2.4vw, 32px); }\nhtml body .dtk-mosaic figure { margin: 0; }\nhtml body .dtk-mosaic img { width: 100%; object-fit: cover; border-radius: var(--r-s); }\nhtml body .dtk-mosaic figcaption { margin-top: 14px; }\nhtml body .dtk-mosaic figcaption h3 { font-size: 1.2rem; margin-bottom: 6px; }\nhtml body .dtk-mosaic figcaption p { font-size: .97rem; max-width: 42ch; }\nhtml body .dtk-m-a { grid-column: 1 \/ span 7; } html body .dtk-m-a img { aspect-ratio: 16 \/ 10; }\nhtml body .dtk-m-b { grid-column: 8 \/ span 5; align-self: end; } html body .dtk-m-b img { aspect-ratio: 4 \/ 5; }\nhtml body .dtk-m-c { grid-column: 1 \/ span 5; } html body .dtk-m-c img { aspect-ratio: 4 \/ 5; }\nhtml body .dtk-m-d { grid-column: 6 \/ span 7; align-self: start; } html body .dtk-m-d img { aspect-ratio: 16 \/ 10; }\n\n\/* Photo strip *\/\nhtml body .dtk-strip { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px var(--gutter) 18px; scrollbar-width: thin; }\nhtml body .dtk-strip img { height: clamp(220px, 32vw, 380px); width: auto; flex: none; scroll-snap-align: start; border-radius: var(--r-s); }\n\n\/* Comparison table *\/\nhtml body .dtk-compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }\nhtml body .dtk-compare { width: 100%; border-collapse: collapse; min-width: 640px; font-size: .97rem; }\nhtml body .dtk-compare th, html body .dtk-compare td { text-align: left; vertical-align: top; padding: 14px 16px 14px 0; border-bottom: 1px solid var(--line); }\nhtml body .dtk-compare thead th { font-family: var(--display); font-weight: 600; color: var(--navy); font-size: 1.15rem; border-bottom: 2px solid var(--navy); padding-bottom: 16px; }\nhtml body .dtk-compare thead th a { color: inherit; }\nhtml body .dtk-compare tbody th { font-weight: 500; color: var(--muted); width: 24%; }\nhtml body .dtk-compare td { color: var(--navy); font-variant-numeric: tabular-nums; }\nhtml body .dtk-todo { background: #fff3c4; color: #5c4700; padding: 1px 6px; border-radius: 3px; font-size: .88em; }\n\n\/* Options list *\/\nhtml body .dtk-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(20px, 3vw, 40px); border-top: 2px solid var(--navy); }\nhtml body .dtk-options li { padding: 22px 0; border-bottom: 1px solid var(--line); }\nhtml body .dtk-options h3 { font-size: 1.15rem; margin-bottom: 6px; }\nhtml body .dtk-options p { font-size: .96rem; }\n\n\/* FAQ *\/\nhtml body .dtk-faq-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(28px, 5vw, 80px); align-items: start; }\nhtml body .dtk-faq-head { position: sticky; top: 24px; }\nhtml body .dtk-faq-head p { margin-top: 14px; }\nhtml body .dtk-faq-list { border-top: 2px solid var(--navy); }\nhtml body .dtk-faq details { border-bottom: 1px solid var(--line); }\nhtml body .dtk-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 20px 0; font-family: var(--display); font-weight: 600; font-size: 1.12rem; color: var(--navy); }\nhtml body .dtk-faq summary::-webkit-details-marker { display: none; }\nhtml body .dtk-faq summary .dtk-ic-plus { width: 22px; height: 22px; transition: transform .25s ease; }\nhtml body .dtk-faq details[open] .dtk-ic-plus { transform: rotate(45deg); }\nhtml body .dtk-faq summary:hover span { text-decoration: underline; text-decoration-color: var(--blue); text-decoration-thickness: 2px; text-underline-offset: 4px; }\nhtml body .dtk-faq-a { padding: 0 40px 22px 0; max-width: 62ch; }\n\n\/* Contact band *\/\nhtml body .dtk-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); background: var(--blue-soft); color: var(--ink); } \/* lichtblauw: los van de navy footer (Noah, 07-10) *\/\nhtml body .dtk-contact-media { position: relative; min-height: 380px; }\nhtml body .dtk-contact-media img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 70% 30%; }\nhtml body .dtk-contact-body { padding: clamp(40px, 6vw, 96px) var(--gutter) clamp(44px, 6.5vw, 104px) clamp(28px, 5vw, 80px); max-width: 640px; align-self: center; }\n\/* Kleur met .dtk ervoor: de oude dtk-CSS in de Elementor-site-instellingen (post-4) zet html body .dtk-contact h2 wit. *\/\nhtml body .dtk .dtk-contact h2 { color: var(--navy); }\nhtml body .dtk-contact h2 { margin-bottom: 16px; }\nhtml body .dtk-contact p { margin-bottom: 28px !important; }\n\n\/* Lightbox: arrows beside the photo, caption and counter below *\/\nhtml body .dtk-lightbox { border: 0; padding: 0; background: rgb(14,26,31); max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; margin: 0; }\nhtml body .dtk-lightbox::backdrop { background: rgba(14,26,31,.97); }\nhtml body .dtk-lightbox-inner { position: relative; width: 100%; height: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(8px, 2vw, 28px); padding: 64px clamp(8px, 3vw, 40px) 24px; }\nhtml body .dtk-lightbox figure { margin: 0; display: grid; justify-items: center; align-content: center; gap: 6px; min-height: 0; height: 100%; }\nhtml body .dtk-lightbox img { max-width: 100%; max-height: calc(100vh - 170px); width: auto; height: auto; object-fit: contain; border-radius: 3px; }\nhtml body .dtk-lightbox figcaption { color: rgba(255,255,255,.9); text-align: center; padding-top: 10px; font-size: .98rem; max-width: 60ch; }\nhtml body .dtk-lb-count { color: rgba(255,255,255,.65); font-size: .88rem; font-variant-numeric: tabular-nums; margin: 0 !important; }\nhtml body .dtk-lightbox button { font: inherit; font-family: var(--display); font-weight: 600; color: var(--white); background: rgba(255,255,255,.12); border: 0; min-width: 48px; min-height: 48px; padding: 0 16px; border-radius: var(--r-s); cursor: pointer; transition: background-color .2s ease; }\nhtml body .dtk-lightbox button:hover { background: rgba(255,255,255,.24); }\nhtml body .dtk-lightbox .dtk-lb-nav { width: 56px; height: 56px; padding: 0; border-radius: 50%; font-size: 1.3rem; }\nhtml body .dtk-lightbox .dtk-lb-close { position: absolute; top: 12px; right: 12px; }\n@media (max-width: 700px) {\n  html body .dtk-lightbox-inner { grid-template-columns: minmax(0, 1fr); padding-inline: 12px; }\n  html body .dtk-lightbox .dtk-lb-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; background: rgba(14,26,31,.6); width: 48px; height: 48px; }\n  html body .dtk-lightbox .dtk-lb-prev { left: 8px; }\n  html body .dtk-lightbox .dtk-lb-next { right: 8px; }\n  html body .dtk-lightbox figure { grid-row: 1; grid-column: 1; }\n}\n\n\/* Responsive *\/\n@media (max-width: 1080px) {\n  html body .dtk-facts { grid-template-columns: repeat(2, 1fr); }\n  html body .dtk-facts > div:nth-child(3) { border-left: 0; }\n  html body .dtk-facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }\n  html body .dtk-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 36px; }\n  html body .dtk-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n@media (max-width: 900px) {\n  html body .dtk-feature, html body .dtk-feature--flip { grid-template-columns: 1fr; min-height: 0; }\n  html body .dtk-feature--flip .dtk-feature-media { order: 0; }\n  \/* Foto in de flow: in WebKit werd een vlak met alleen aspect-ratio en een absolute foto 0 px hoog. *\/\n  html body .dtk-feature-media { min-height: 0; }\n  html body .dtk-feature-media img { position: relative; inset: auto; height: auto !important; aspect-ratio: 4 \/ 3; }\n  html body .dtk-feature-body, html body .dtk-feature--flip .dtk-feature-body { padding: 28px var(--gutter) 0; max-width: none; justify-self: stretch; }\n  html body .dtk-index { grid-template-columns: 1fr; }\n  html body .dtk-split, html body .dtk-split--flip { grid-template-columns: 1fr; }\n  html body .dtk-split-media, html body .dtk-split--flip .dtk-split-media { order: -1; margin: 0 calc(var(--gutter) * -1); }\n  html body .dtk-split-media img, html body .dtk-split--flip .dtk-split-media img { border-radius: 0; }\n  html body .dtk-models { grid-template-columns: 1fr; gap: 48px; }\n  html body .dtk-config { grid-template-columns: 1fr; }\n  html body .dtk-mosaic { grid-template-columns: 1fr; }\n  html body .dtk-m-a, html body .dtk-m-b, html body .dtk-m-c, html body .dtk-m-d { grid-column: 1; }\n  html body .dtk-mosaic img { aspect-ratio: 16 \/ 10 !important; }\n  html body .dtk-faq-grid { grid-template-columns: 1fr; }\n  html body .dtk-faq-head { position: static; }\n  html body .dtk-contact { grid-template-columns: 1fr; }\n  html body .dtk-contact-media { min-height: 0; aspect-ratio: 16 \/ 10; }\n  html body .dtk-contact-body { padding-left: var(--gutter); }\n  html body .dtk-steps--3 { grid-template-columns: 1fr; }\n}\n@media (max-width: 600px) {\n  html body .dtk { font-size: 16px; }\n  html body .dtk-facts { grid-template-columns: 1fr 1fr; }\n  html body .dtk-facts > div { padding: 16px 14px; }\n  html body .dtk-steps { grid-template-columns: 1fr; }\n  html body .dtk-step img { aspect-ratio: 4 \/ 3; }\n  html body .dtk-options { grid-template-columns: 1fr; }\n  html body .dtk-faq-a { padding-right: 0; }\n  html body .dtk-hero-copy { margin-top: 32px; }\n  html body .dtk-seg { display: flex; }\n  html body .dtk-seg button { flex: 1 1 auto; padding: 10px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  html body .dtk *, html body .dtk *::before, html body .dtk *::after { transition: none !important; scroll-behavior: auto !important; }\n}\nhtml body .dtk .dtk-mt { margin-top: 16px; }\nhtml body .dtk .dtk-mt-l { margin-top: 28px; }\nhtml body .dtk-gallery-band { padding-bottom: clamp(24px, 4vw, 48px); }\nhtml body .dtk-strip:focus-visible { outline-offset: -3px; }\nhtml body .dtk .dtk-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\nhtml body .dtk-crumbs a { display: inline-block; padding-block: 4px; }\nhtml body .dtk-compare thead th a { display: inline-block; padding-block: 3px; }\nhtml body .dtk-hero h1 { overflow-wrap: anywhere; hyphens: manual; }\n@media (max-width: 360px) { html body .dtk-hero h1 { font-size: 2.15rem; } }\n\/* E\u00e9n lang woord dat breder is dan de tekstkolom: vanaf tablet op \u00e9\u00e9n regel, over de foto heen. *\/\n@media (min-width: 768px) { html body .dtk-nowrap-md { white-space: nowrap; } }\n@media (max-width: 700px) {\n  html body .dtk-hero::after { background: linear-gradient(0deg, rgba(20,38,46,.9) 0%, rgba(20,38,46,.72) 55%, rgba(20,38,46,.45) 100%); }\n}\n\n\/* Carousel *\/\nhtml body .dtk-carousel { position: relative; }\nhtml body .dtk-carousel-nav { position: absolute; right: 0; top: -72px; display: flex; gap: 8px; }\nhtml body .dtk-carousel-nav[hidden] { display: none; }\nhtml body .dtk-carousel-btn { width: 48px; height: 48px; border-radius: 50%; border: 2px solid var(--navy); background: var(--white); color: var(--navy); display: grid; place-items: center; cursor: pointer; transition: background-color .2s ease, color .2s ease, opacity .2s ease; }\nhtml body .dtk-carousel-btn svg { width: 20px; height: 20px; }\nhtml body .dtk-carousel-btn:hover:not(:disabled) { background: var(--navy); color: var(--white); }\nhtml body .dtk-carousel-btn:disabled { opacity: .3; cursor: default; }\nhtml body .dtk-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * clamp(16px, 2vw, 28px)) \/ 3.25); gap: clamp(16px, 2vw, 28px); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; padding-bottom: 8px; margin-right: calc((min(100vw, 1920px) - min(100vw, 1240px)) \/ -2 - var(--gutter)); padding-right: var(--gutter); }\nhtml body .dtk-carousel-track::-webkit-scrollbar { display: none; }\nhtml body .dtk-card { scroll-snap-align: start; }\nhtml body .dtk-card a { display: grid; gap: 6px; text-decoration: none; }\nhtml body .dtk-card-media { display: block; aspect-ratio: 4 \/ 3; overflow: hidden; border-radius: var(--r-s); background: var(--concrete); margin-bottom: 10px; }\nhtml body .dtk-card-media img { width: 100%; height: 100% !important; object-fit: cover; transition: transform .5s ease; }\nhtml body .dtk-card-media--fit img { object-fit: contain; padding: 8%; mix-blend-mode: multiply; }\nhtml body .dtk-card a:hover .dtk-card-media img { transform: scale(1.04); }\nhtml body .dtk-card-t { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--display); font-weight: 600; font-size: 1.25rem; color: var(--navy); }\nhtml body .dtk-card-t .dtk-ic { width: 22px; height: 22px; transition: transform .2s ease; }\nhtml body .dtk-card a:hover .dtk-card-t .dtk-ic { transform: translateX(4px); }\nhtml body .dtk-card-d { color: var(--ink); font-size: .96rem; }\n\n\/* Strip items open the lightbox *\/\nhtml body .dtk-strip-item { font: inherit; padding: 0; border: 0; background: none; cursor: zoom-in; flex: none; scroll-snap-align: start; border-radius: var(--r-s); overflow: hidden; }\nhtml body .dtk-strip-item img { transition: opacity .2s ease; }\nhtml body .dtk-strip-item:hover img { opacity: .85; }\n\n\/* Model notes (OKS) *\/\nhtml body .dtk-model-note { font-size: .92rem; background: var(--blue-soft); color: var(--navy); padding: 12px 14px; border-radius: var(--r-s); margin: 0 0 20px !important; }\n\n@media (max-width: 1080px) {\n  html body .dtk-carousel-track { grid-auto-columns: calc((100% - clamp(16px, 2vw, 28px)) \/ 2.2); }\n  html body .dtk-carousel-nav { position: static; justify-content: flex-end; margin-bottom: 14px; }\n}\n@media (max-width: 600px) {\n  html body .dtk-carousel-track { grid-auto-columns: 78%; }\n}\n@media (max-width: 900px) {\n}\nhtml body .dtk-btn--outline { background: transparent; color: var(--navy) !important; box-shadow: inset 0 0 0 2px var(--navy); }\nhtml body .dtk-btn--outline:hover { background: var(--navy); color: var(--white) !important; }\n\n\/* Photo slider *\/\nhtml body .dtk-slider-band { padding-block: clamp(48px, 7vw, 96px); }\nhtml body .dtk-slider-viewport { margin-right: calc((min(100vw, 1920px) - min(100vw, 1240px)) \/ -2 - var(--gutter)); }\nhtml body .dtk-slider-track { display: flex; gap: clamp(12px, 1.6vw, 20px); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding-right: var(--gutter); }\nhtml body .dtk-slider-track::-webkit-scrollbar { display: none; }\nhtml body .dtk-slide { flex: 0 0 min(62%, 760px); scroll-snap-align: start; }\nhtml body .dtk-slide-btn { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--concrete); border-radius: var(--r-s); overflow: hidden; cursor: zoom-in; }\nhtml body .dtk .dtk-slide-btn img { width: 100%; aspect-ratio: 3 \/ 2; height: auto; object-fit: cover; transition: transform .5s ease, opacity .3s ease; }\nhtml body .dtk-slide:not(.is-current) .dtk-slide-btn img { opacity: .55; }\nhtml body .dtk-slide-btn:hover img { transform: scale(1.02); }\nhtml body .dtk-slide-zoom { position: absolute; right: 12px; bottom: 12px; width: 40px; height: 40px; border-radius: 50%; background: rgba(31,55,65,.85); color: var(--white); display: grid; place-items: center; opacity: 0; transition: opacity .2s ease; }\nhtml body .dtk-slide-zoom svg { width: 18px; height: 18px; }\nhtml body .dtk-slide-btn:hover .dtk-slide-zoom, html body .dtk-slide-btn:focus-visible .dtk-slide-zoom, html body .dtk-slide.is-current .dtk-slide-zoom { opacity: 1; }\nhtml body .dtk-slider-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 18px; flex-wrap: wrap; }\nhtml body .dtk-slider-cap { margin: 0 !important; display: flex; gap: 14px; align-items: baseline; color: var(--ink); font-size: .96rem; min-width: 0; flex: 1 1 280px; }\nhtml body .dtk-slider-count { font-family: var(--display); font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }\nhtml body .dtk-slider-count b { font-weight: 600; }\nhtml body .dtk-slider-ctrl { display: flex; gap: 8px; align-items: center; }\nhtml body .dtk-slider-zoom { display: inline-flex; align-items: center; gap: 8px; height: 48px; padding: 0 18px; border-radius: 999px; border: 2px solid var(--navy); background: var(--white); color: var(--navy); font: inherit; font-family: var(--display); font-weight: 600; cursor: pointer; transition: background-color .2s ease, color .2s ease; }\nhtml body .dtk-slider-zoom svg { width: 18px; height: 18px; }\nhtml body .dtk-slider-zoom:hover { background: var(--navy); color: var(--white); }\n@media (max-width: 600px) {\n  html body .dtk-slide { flex-basis: 86%; }\n  html body .dtk-slider-zoom-t { display: none; }\n  html body .dtk-slider-zoom { width: 48px; padding: 0; justify-content: center; }\n}\nhtml body .dtk img.dtk-brand-logo { width: 190px; height: auto; margin-bottom: 22px; }\n\n\/* Life stages: vertical timeline, calf left, text right, the calf grows per stage *\/\nhtml body .dtk-stages { position: relative; display: grid; gap: clamp(40px, 6vw, 72px); --rail: clamp(34%, 40%, 460px); }\nhtml body .dtk-stages::before { content: ''; position: absolute; top: 8px; bottom: 8px; left: var(--rail); width: 2px; background: var(--line); }\nhtml body .dtk-stage { display: grid; grid-template-columns: var(--rail) minmax(0, 1fr); align-items: start; position: relative; }\nhtml body .dtk-stage::before { content: ''; position: absolute; left: var(--rail); top: 4px; width: 18px; height: 18px; margin-left: -8px; border-radius: 50%; background: var(--white); border: 3px solid var(--navy); box-sizing: border-box; }\nhtml body .dtk-stage-media { display: flex; justify-content: flex-end; align-items: flex-end; padding-right: clamp(24px, 4vw, 56px); border-bottom: 2px solid var(--navy); margin-right: -1px; }\nhtml body .dtk .dtk-stage-media img.dtk-calf { width: auto; max-width: 100%; height: auto; display: block; margin-bottom: -4px; }\nhtml body .dtk .dtk-stage-media img.dtk-calf--zittend { width: 58%; }\nhtml body .dtk .dtk-stage-media img.dtk-calf--groepje { width: 86%; }\nhtml body .dtk .dtk-stage-media img.dtk-calf--groep { width: 92%; }\nhtml body .dtk-stage-body { padding-left: clamp(28px, 4vw, 56px); align-self: start; }\nhtml body .dtk-stage-when { display: inline-block; font-family: var(--display); font-weight: 600; color: var(--navy); font-size: .9rem; background: var(--blue-soft); padding: 4px 10px; border-radius: 999px; margin-bottom: 12px !important; }\nhtml body .dtk-stage h3 { font-size: clamp(1.4rem, 1.1rem + .9vw, 1.9rem); margin-bottom: 10px; }\nhtml body .dtk-stage p { max-width: 48ch; }\nhtml body .dtk-stage-links { margin-top: 18px; display: grid; max-width: 460px; }\nhtml body .dtk-stage-links a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 0; border-top: 1px solid var(--line); text-decoration: none; font-weight: 500; color: var(--navy); }\nhtml body .dtk-stage-links a:last-child { border-bottom: 1px solid var(--line); }\nhtml body .dtk-stage-links a:hover { color: #0f7fb3; }\nhtml body .dtk-stage-links small { color: var(--muted); font-weight: 400; font-size: .85rem; display: block; }\n@media (max-width: 760px) {\n  html body .dtk-stages { --rail: 10px; gap: 48px; }\n  html body .dtk-stages::before { left: 9px; }\n  html body .dtk-stage { grid-template-columns: 1fr; padding-left: 36px; }\n  html body .dtk-stage::before { left: 10px; top: 0; bottom: auto; }\n  html body .dtk-stage-media { justify-content: flex-start; padding-right: 0; margin: 0 0 18px; }\n  html body .dtk .dtk-stage-media img.dtk-calf--zittend { width: 56%; }\n  html body .dtk .dtk-stage-media img.dtk-calf--groepje { width: 84%; }\n  html body .dtk .dtk-stage-media img.dtk-calf--groep { width: 90%; }\n  html body .dtk-stage-body { padding-left: 0; }\n}\n\n\/* Keuzehulp: \u00e9\u00e9n vraag tegelijk op een vlak, daarna maximaal drie uitkomsten naast elkaar. *\/\nhtml body .dtk-find-quiz { border: 1px solid var(--line); border-radius: var(--r-m); padding: clamp(20px, 3.5vw, 40px); max-width: 60rem; }\nhtml body .dtk-find-top, html body .dtk-find-result-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }\nhtml body .dtk-find-step { margin: 0 !important; font-size: .9rem; color: var(--muted); font-variant-numeric: tabular-nums; }\nhtml body .dtk-find-back { background: none; border: 0; padding: 6px 0; font: inherit; font-size: .92rem; color: var(--navy); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }\nhtml body .dtk-find-back:hover { color: #0f7fb3; }\nhtml body .dtk-find-bar { height: 4px; background: var(--line); border-radius: 2px; margin: 12px 0 clamp(20px, 3vw, 32px); overflow: hidden; }\nhtml body .dtk-find-bar span { display: block; height: 100%; background: var(--blue); transition: width .3s ease; }\nhtml body .dtk-find-q { border: 0; margin: 0; padding: 0; min-width: 0; }\nhtml body .dtk-find-q legend { padding: 0; margin-bottom: 18px; }\nhtml body .dtk-find-qt { font-family: var(--display); font-weight: 600; color: var(--navy); font-size: clamp(1.3rem, 1.05rem + .9vw, 1.75rem); line-height: 1.2; outline: none; }\nhtml body .dtk-find-answers { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }\nhtml body .dtk-find-answers button { font: inherit; font-weight: 600; color: var(--navy); text-align: left; background: var(--white); border: 1.5px solid #b9c5c9; border-radius: var(--r-s); padding: 16px 18px; cursor: pointer; transition: border-color .15s ease, background-color .15s ease; }\nhtml body .dtk-find-answers button:hover { border-color: var(--navy); }\nhtml body .dtk-find-answers button[aria-pressed=\"true\"] { border-color: var(--navy); background: var(--blue-soft); }\nhtml body .dtk-find-answers button:focus-visible, html body .dtk-find-back:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }\nhtml body .dtk-find-result-head { margin-bottom: clamp(20px, 3vw, 32px); }\nhtml body .dtk-find-result-head h3 { font-size: clamp(1.4rem, 1.1rem + .9vw, 1.9rem); outline: none; }\nhtml body .dtk-find-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: clamp(24px, 3vw, 40px); }\nhtml body .dtk-find-card { display: grid; align-content: start; gap: 14px; }\nhtml body .dtk-find-media { display: block; aspect-ratio: 4 \/ 3; overflow: hidden; border-radius: var(--r-s); background: var(--concrete); }\nhtml body .dtk-find-media img { width: 100%; height: 100% !important; object-fit: cover; }\nhtml body .dtk-find-best { display: inline-block; margin: 0 0 8px !important; font-family: var(--display); font-weight: 600; font-size: .85rem; color: var(--navy); background: var(--blue-soft); padding: 3px 10px; border-radius: 999px; }\nhtml body .dtk-find-body h4 { font-family: var(--display); font-size: 1.3rem; color: var(--navy); margin: 0 0 8px; line-height: 1.2; }\nhtml body .dtk-find-body h4 a { color: inherit; text-decoration: none; }\nhtml body .dtk-find-body h4 a:hover { color: #0f7fb3; }\nhtml body .dtk-find-body > p { font-size: .96rem; }\nhtml body .dtk-find-why { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 8px; margin: 12px 0 16px; font-size: .88rem; }\nhtml body .dtk-find-why span { color: var(--muted); }\nhtml body .dtk-find-why ul { display: contents; list-style: none; }\nhtml body .dtk-find-why li { color: var(--navy); border: 1px solid var(--line); border-radius: 999px; padding: 2px 10px; }\nhtml body .dtk-find-why li[hidden] { display: none; }\nhtml body .dtk-find-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }\nhtml body .dtk-find-note { margin-top: clamp(24px, 3vw, 36px) !important; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); }\nhtml body .dtk-find-note a { color: var(--navy); font-weight: 600; }\nhtml body .dtk-finder [hidden] { display: none !important; }\n\n\/* Offerte-popup *\/\nhtml body .dtk-quote { border: 0; padding: 0; margin: auto; width: min(1040px, calc(100vw - 32px)); max-height: min(760px, calc(100dvh - 32px)); border-radius: var(--r-m); background: var(--white); color: var(--ink); box-shadow: 0 30px 80px -20px rgba(14,26,31,.55); overflow: hidden; font-family: var(--text); font-size: 16px; line-height: 1.55; }\nhtml body .dtk-quote::backdrop { background: rgba(14,26,31,.72); }\nhtml body .dtk-q-shell { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); height: min(760px, calc(100dvh - 32px)); }\nhtml body .dtk-q-panel { position: relative; background: var(--navy); color: var(--white); overflow: hidden; }\nhtml body .dtk-q-panel-img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; opacity: .9; transition: opacity .3s ease; }\nhtml body .dtk-q-panel::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20,38,46,.95) 0%, rgba(20,38,46,.55) 45%, rgba(20,38,46,.1) 75%); }\nhtml body .dtk-q-panel-copy { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 28px clamp(20px, 3vw, 36px); }\nhtml body .dtk-q-panel-k { font-family: var(--display); color: var(--blue); font-weight: 500; margin: 0 0 4px !important; }\nhtml body .dtk-q-panel-t { font-family: var(--display); font-weight: 600; font-size: 1.7rem; line-height: 1.1; margin: 0 0 18px !important; color: var(--white); }\nhtml body .dtk-q-panel-steps { counter-reset: q; display: grid; gap: 10px; font-size: .92rem; color: rgba(255,255,255,.88); }\nhtml body .dtk-q-panel-steps li { counter-increment: q; display: flex; gap: 10px; align-items: baseline; }\nhtml body .dtk-q-panel-steps li::before { content: counter(q); flex: none; width: 22px; height: 22px; border-radius: 50%; background: rgba(255,255,255,.14); display: inline-grid; place-items: center; font-size: .78rem; font-weight: 600; font-family: var(--display); }\nhtml body .dtk-q-form { display: flex; flex-direction: column; min-height: 0; padding: 22px clamp(20px, 3.4vw, 40px) 20px; }\nhtml body .dtk-q-top { display: flex; justify-content: space-between; align-items: center; }\nhtml body .dtk-q-progress-t { margin: 0 !important; font-family: var(--display); font-weight: 600; color: var(--navy); font-size: .9rem; font-variant-numeric: tabular-nums; }\nhtml body .dtk-q-close { width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--concrete); color: var(--navy); display: grid; place-items: center; cursor: pointer; }\nhtml body .dtk-q-close svg { width: 18px; height: 18px; }\nhtml body .dtk-q-close:hover { background: var(--line); }\nhtml body .dtk-q-progress { height: 4px; background: var(--concrete); border-radius: 2px; margin: 12px 0 22px; overflow: hidden; }\nhtml body .dtk-q-progress span { display: block; height: 100%; width: 25%; background: var(--blue); transition: width .35s ease; }\nhtml body .dtk-q-step { border: 0; margin: 0; padding: 0 4px 8px 0; min-width: 0; flex: 1 1 auto; overflow-y: auto; }\nhtml body .dtk-q-step legend { padding: 0; margin-bottom: 14px; }\nhtml body .dtk-q-h { display: block; font-family: var(--display); font-weight: 600; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.8rem); color: var(--navy); letter-spacing: -.015em; line-height: 1.15; outline: none; }\nhtml body .dtk-q-label { font-family: var(--display); font-weight: 600; color: var(--navy); margin: 18px 0 10px !important; }\nhtml body .dtk-q-hint { color: var(--muted); margin: -4px 0 14px !important; font-size: .95rem; }\nhtml body .dtk-q-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }\nhtml body .dtk-q-choices > :last-child:nth-child(odd) { grid-column: 1 \/ -1; }\nhtml body .dtk-q-choice { position: relative; cursor: pointer; }\nhtml body .dtk-q-choice input, html body .dtk-q-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }\nhtml body .dtk-q-choice-box { display: grid; gap: 2px; height: 100%; padding: 12px 14px 12px 40px; border: 1.5px solid #b9c5c9; border-radius: var(--r-s); transition: border-color .15s ease, background-color .15s ease; position: relative; }\nhtml body .dtk-q-choice-box::before { content: ''; position: absolute; left: 14px; top: 15px; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid #8a979c; background: var(--white); }\nhtml body .dtk-q-choice-t { font-weight: 600; color: var(--navy); }\nhtml body .dtk-q-choice-s { font-size: .85rem; color: var(--muted); }\nhtml body .dtk-q-choice:hover .dtk-q-choice-box { border-color: var(--navy); }\nhtml body .dtk-q-choice input:checked + .dtk-q-choice-box { border-color: var(--navy); background: var(--blue-soft); }\nhtml body .dtk-q-choice input:checked + .dtk-q-choice-box::before { border: 5px solid var(--navy); }\nhtml body .dtk-q-choice input:focus-visible + .dtk-q-choice-box, html body .dtk-q-chip input:focus-visible + span { outline: 3px solid var(--navy); outline-offset: 2px; }\nhtml body .dtk-q-sub { margin-top: 4px; }\nhtml body .dtk-q-chips { display: flex; flex-wrap: wrap; gap: 8px; }\nhtml body .dtk-q-chip { position: relative; cursor: pointer; }\nhtml body .dtk-q-chip span { display: inline-flex; align-items: center; min-height: 40px; padding: 8px 14px; border-radius: 999px; border: 1.5px solid #b9c5c9; font-size: .92rem; color: var(--navy); transition: all .15s ease; }\nhtml body .dtk-q-chip:hover span { border-color: var(--navy); }\nhtml body .dtk-q-chip input:checked + span { background: var(--navy); border-color: var(--navy); color: var(--white); }\nhtml body .dtk-q-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }\nhtml body .dtk-q-field { display: grid; gap: 6px; margin-top: 14px; font-size: .92rem; color: var(--navy); font-weight: 500; }\nhtml body .dtk-q-grid .dtk-q-field { margin-top: 0; }\nhtml body .dtk-q-field abbr { text-decoration: none; color: #b3261e; }\nhtml body .dtk-quote input[type=text], html body .dtk-quote input[type=email], html body .dtk-quote input[type=tel], html body .dtk-quote input[type=number], html body .dtk-quote select, html body .dtk-quote textarea { font: inherit; font-weight: 400; color: var(--navy); width: 100%; min-height: 46px; padding: 10px 12px; border: 1.5px solid #8a979c; border-radius: var(--r-s); background: var(--white); }\nhtml body .dtk-quote textarea { resize: vertical; min-height: 96px; }\nhtml body .dtk-quote input:focus-visible, html body .dtk-quote select:focus-visible, html body .dtk-quote textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 0; border-color: var(--navy); }\nhtml body .dtk-quote [aria-invalid=\"true\"] { border-color: #b3261e; }\nhtml body .dtk-q-err { color: #b3261e; font-style: normal; font-size: .85rem; font-weight: 500; }\nhtml body .dtk-q-dims { display: flex; align-items: center; gap: 8px; }\nhtml body .dtk-q-dims span { color: var(--muted); }\nhtml body .dtk-q-drop { display: grid; justify-items: center; gap: 6px; padding: 28px 16px; border: 2px dashed #8a979c; border-radius: var(--r-m); background: var(--concrete); text-align: center; cursor: pointer; position: relative; transition: border-color .15s ease, background-color .15s ease; }\nhtml body .dtk-q-drop input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }\nhtml body .dtk-q-drop:focus-within { outline: 3px solid var(--navy); outline-offset: 2px; }\nhtml body .dtk-q-drop.is-over, html body .dtk-q-drop:hover { border-color: var(--navy); background: var(--blue-soft); }\nhtml body .dtk-q-drop svg { width: 34px; height: 34px; color: var(--navy); }\nhtml body .dtk-q-drop-t { font-weight: 600; color: var(--navy); }\nhtml body .dtk-q-drop-s { font-size: .85rem; color: var(--muted); }\nhtml body .dtk-q-error { color: #b3261e; font-size: .9rem; margin: 10px 0 0 !important; }\nhtml body .dtk-q-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); gap: 10px; margin-top: 14px !important; }\nhtml body .dtk-q-thumbs li { position: relative; }\nhtml body .dtk-q-thumbs img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-s); display: block; }\nhtml body .dtk-q-thumb-rm { position: absolute; top: 4px; right: 4px; width: 28px; height: 28px; border-radius: 50%; border: 0; background: rgba(14,26,31,.8); color: var(--white); font-size: 1.1rem; line-height: 1; cursor: pointer; }\nhtml body .dtk-q-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }\nhtml body .dtk-q-privacy { font-size: .84rem; color: var(--muted); margin-top: 16px !important; }\nhtml body .dtk-q-nav { display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding-top: 16px; border-top: 1px solid var(--line); margin-top: 8px; }\nhtml body .dtk-q-back { margin-right: auto; font: inherit; font-family: var(--display); font-weight: 600; color: var(--navy); background: none; border: 0; min-height: 44px; padding: 0 6px; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }\nhtml body .dtk-q-done { flex: 1; display: grid; align-content: center; justify-items: start; gap: 12px; outline: none; }\nhtml body .dtk-q-done svg { width: 56px; height: 56px; }\nhtml body .dtk-q-done p { margin: 0 !important; max-width: 44ch; }\nhtml body .dtk-q-demo { font-size: .85rem; color: var(--muted); }\n@media (max-width: 760px) {\n  html body .dtk-quote { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; border-radius: 0; }\n  html body .dtk-q-shell { grid-template-columns: 1fr; grid-template-rows: 120px minmax(0, 1fr); height: 100dvh; }\n  html body .dtk-q-panel-steps, html body .dtk-q-panel-k { display: none; }\n  html body .dtk-q-panel-copy { padding: 14px 20px; }\n  html body .dtk-q-panel-t { font-size: 1.3rem; margin: 0 !important; }\n  html body .dtk-q-choices, html body .dtk-q-grid { grid-template-columns: 1fr; }\n}\n@media (prefers-reduced-motion: reduce) { html body .dtk-q-progress span { transition: none; } }\nhtml body .dtk-quote [hidden] { display: none !important; }\nhtml body .dtk .dtk-q-h:focus, html body .dtk .dtk-q-h:focus-visible, html body .dtk .dtk-q-done:focus { outline: none; }\nhtml body .dtk-quote select { appearance: none; -webkit-appearance: none; min-height: 46px; padding-right: 36px; background: var(--white) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%231f3741' stroke-width='2'\/%3E%3C\/svg%3E\") no-repeat right 10px center \/ 18px; }\nhtml body .dtk-q-choice-box { padding-block: 10px; }\nhtml body .dtk-q-label { margin: 14px 0 8px !important; }\nhtml body .dtk-q-chip span { min-height: 38px; padding: 6px 13px; }\nhtml body .dtk-q-form { min-height: 0; overflow: hidden; }\n@media (max-width: 760px) {\n  html body .dtk-q-shell { grid-template-rows: 96px minmax(0, 1fr); }\n  html body .dtk-q-form { padding: 14px 16px 12px; }\n  html body .dtk-q-progress { margin: 10px 0 16px; }\n  html body .dtk-q-nav { padding-top: 12px; }\n}\n@media (max-height: 520px) {\n  html body .dtk-quote { width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; border-radius: 0; }\n  html body .dtk-q-shell { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr); height: 100dvh; }\n  html body .dtk-q-panel { display: none; }\n}\nhtml body .dtk-q-step { min-height: 0; flex: 1 1 0; }\nhtml body .dtk-q-nav { flex: none; }\n\n\/* Modellen onder elkaar: foto links, tekeningen en maten rechts *\/\nhtml body .dtk-mrows { display: grid; gap: clamp(40px, 5vw, 64px); }\nhtml body .dtk-mrow { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(24px, 4vw, 56px); align-items: start; padding-top: clamp(32px, 4vw, 48px); border-top: 2px solid var(--navy); }\nhtml body .dtk-mrow:first-child { border-top: 0; padding-top: 0; }\nhtml body .dtk .dtk-mrow-media img { width: 100%; aspect-ratio: 4 \/ 3; object-fit: cover; border-radius: var(--r-s); }\nhtml body .dtk-mrow-body h3 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); margin-bottom: 4px; }\nhtml body .dtk-mrow-draw { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 12px; margin: 18px 0 8px; }\nhtml body .dtk-mrow-draw--q { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }\nhtml body .dtk-draw { margin: 0; background: var(--concrete); border-radius: var(--r-s); padding: 16px 12px 10px; display: grid; align-content: space-between; justify-items: center; gap: 8px; }\nhtml body .dtk-draw figcaption { font-family: var(--display); font-weight: 600; font-size: .82rem; color: var(--muted); justify-self: start; }\nhtml body .dtk-draw .dtk-plan { max-width: 170px; }\nhtml body .dtk-mrow-draw--q .dtk-plan { max-width: 100%; }\nhtml body .dtk-side { width: 100%; height: auto; font-family: var(--display); overflow: visible; }\nhtml body .dtk-side-wall { fill: var(--blue-soft); stroke: var(--navy); stroke-width: 2.5; stroke-linejoin: round; }\nhtml body .dtk-side-roof { stroke: var(--navy); stroke-width: 5; stroke-linecap: round; fill: none; }\nhtml body .dtk-side-plinth { fill: var(--white, #fff); }\nhtml body .dtk-side-plinth-edge { fill: none; stroke: var(--navy); stroke-width: 1.5; }\nhtml body .dtk-side-label--s { font-size: 9.5px; }\nhtml body .dtk-side-plinth-hatch { stroke: var(--muted); stroke-width: .8; }\nhtml body .dtk-side-ground { stroke: var(--muted); stroke-width: 1; stroke-dasharray: 2 3; }\nhtml body .dtk-side-label { font-size: 10.5px; fill: var(--navy); font-weight: 600; text-anchor: middle; }\nhtml body .dtk-mrow-spec { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; margin: 14px 0 18px; }\nhtml body .dtk-mrow-spec div { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: .94rem; }\nhtml body .dtk-mrow-spec dt { color: var(--muted); }\nhtml body .dtk-mrow-spec dd { margin: 0; font-weight: 600; color: var(--navy); text-align: right; font-variant-numeric: tabular-nums; }\nhtml body .dtk-mrow .dtk-model-note { margin-bottom: 18px !important; }\n@media (max-width: 1080px) { html body .dtk-mrow-spec { grid-template-columns: 1fr; } }\n@media (max-width: 900px) { html body .dtk-mrow { grid-template-columns: 1fr; } }\n@media (max-width: 520px) { html body .dtk-mrow-draw, html body .dtk-mrow-draw--q { grid-template-columns: 1fr; } html body .dtk-draw .dtk-plan { max-width: 150px; } }\nhtml body .dtk-draw { grid-template-rows: minmax(0, 1fr) auto; }\nhtml body .dtk-draw > svg, html body .dtk-draw > .dtk-plan-static { align-self: center; }\nhtml body .dtk-section--tint .dtk-draw { background: var(--white); }\nhtml body .dtk-mrow-spec--1 { grid-template-columns: 1fr; }\nhtml body .dtk-mrow-spec--1 dd { max-width: 60%; }\nhtml body .dtk-front-hek { fill: none; stroke: var(--navy); stroke-width: 1.4; }\nhtml body .dtk-front-bar { stroke: var(--navy); stroke-width: .8; }\n\/* Modelrij v2: foto en tekeningen links, maten en knop rechts *\/\nhtml body .dtk-mrow { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); }\nhtml body .dtk-mrow-left { display: grid; gap: 12px; min-width: 0; }\nhtml body .dtk-mrow-left .dtk-mrow-draw { margin: 0; }\nhtml body .dtk-mrow-draw--q { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }\nhtml body .dtk-draw-note { font-size: .82rem; color: var(--muted); margin: 0 !important; line-height: 1.5; }\nhtml body .dtk-mrow-body .dtk-actions { margin-top: 22px; }\nhtml body .dtk-mrow-body h3 { margin-top: 4px; }\nhtml body .dtk-mrow-left .dtk-mrow-draw:not(.dtk-mrow-draw--q) { grid-template-columns: minmax(0, .55fr) minmax(0, 1.45fr); }\nhtml body .dtk-mrow-left .dtk-draw .dtk-plan { max-width: 120px; }\nhtml body .dtk-model-note, html body .dtk-mrow-spec dd { overflow-wrap: anywhere; }\n@media (max-width: 600px) {\n  html body .dtk-mrow-spec--1 div { flex-direction: column; gap: 2px; }\n  html body .dtk-mrow-spec--1 dd { max-width: none; text-align: left; }\n}\n\n\/* Modelrij: foto en tekeningen openen samen in de lightbox (modelMedia in lib.mjs). *\/\nhtml body .dtk-mrow-media { position: relative; display: block; width: 100%; padding: 0; border: 0; background: none; border-radius: var(--r-s); overflow: hidden; cursor: zoom-in; }\nhtml body .dtk-mrow-media img { transition: transform .5s ease; }\nhtml body .dtk-mrow-media:hover img { transform: scale(1.02); }\nhtml body .dtk-draw { position: relative; }\nhtml body .dtk-draw-zoom { position: absolute; inset: 0; padding: 0; border: 0; background: none; border-radius: var(--r-s); cursor: zoom-in; }\nhtml body .dtk-mrow-media .dtk-slide-zoom, html body .dtk-draw-zoom .dtk-slide-zoom { opacity: 1; }\nhtml body .dtk-draw-zoom .dtk-slide-zoom { right: 8px; bottom: 8px; width: 34px; height: 34px; }\nhtml body .dtk-draw-zoom .dtk-slide-zoom svg { width: 15px; height: 15px; }\nhtml body .dtk-draw-zoom:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }\nhtml body .dtk-lb-draw { width: min(1100px, 100%); background: var(--concrete); border-radius: var(--r-s); padding: clamp(16px, 4vw, 48px); display: grid; place-items: center; min-height: 0; }\nhtml body .dtk-lb-draw svg { width: 100%; height: auto; max-height: calc(100vh - 230px); }\nhtml body .dtk-lb-draw .dtk-plan { max-width: none; width: auto; height: calc(100vh - 260px); max-width: 100%; }\nhtml body .dtk-lb-draw[hidden], html body .dtk-lightbox img[hidden] { display: none; }\n\/* Mobiel: tekeningen onder elkaar, de plattegrond niet breder dan nodig. *\/\n@media (max-width: 900px) {\n  \/* Staat na de desktopregel voor .dtk-mrow, anders blijft de rij op mobiel in twee kolommen. *\/\n  html body .dtk-mrow { grid-template-columns: minmax(0, 1fr); }\n}\n@media (max-width: 600px) {\n  html body .dtk-mrow-left .dtk-mrow-draw:not(.dtk-mrow-draw--q), html body .dtk-mrow-left .dtk-mrow-draw--q { grid-template-columns: minmax(0, 1fr); }\n  html body .dtk-mrow-left .dtk-draw .dtk-plan { max-width: 140px; }\n  html body .dtk-mrow-left .dtk-draw .dtk-side { max-width: 420px; }\n}\n\nhtml body .dtk-swipe-count { display: none; }\n\n\/* Mobiel: modelhok (foto + tekeningen) en klapbodemstappen als veegcarrousel.\n   Items zijn smaller dan het scherm, zodat de volgende zichtbaar in beeld piept. *\/\n@media (max-width: 600px) {\n  html body .dtk-mrow-left, html body .dtk-steps--swipe {\n    display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain;\n    scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter);\n    margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter);\n    scrollbar-width: none;\n  }\n  html body .dtk-mrow-left::-webkit-scrollbar, html body .dtk-steps--swipe::-webkit-scrollbar { display: none; }\n  html body .dtk-mrow-left .dtk-mrow-draw { display: contents; }\n  html body .dtk-mrow-left > .dtk-mrow-media, html body .dtk-mrow-left .dtk-draw { flex: 0 0 84%; scroll-snap-align: start; }\n  html body .dtk-mrow-left .dtk-draw { aspect-ratio: 4 \/ 3; grid-template-rows: minmax(0, 1fr) auto; padding: 14px 12px 10px; }\n  html body .dtk-mrow-left .dtk-draw > svg { width: 100%; height: 100%; min-height: 0; max-width: none; }\n  html body .dtk-mrow-left .dtk-draw .dtk-plan, html body .dtk-mrow-left .dtk-draw .dtk-side { max-width: none; }\n  \/* Plattegrond links in zijn vlak, zodat de doorkijk vanaf de foto al een stuk tekening laat zien. *\/\n  html body .dtk-mrow-left .dtk-draw > .dtk-plan { width: auto; justify-self: start; }\n  html body .dtk-steps--swipe { gap: 16px; }\n  html body .dtk-steps--swipe > .dtk-step { flex: 0 0 80%; scroll-snap-align: start; }\n  html body .dtk-steps--swipe:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }\n  html body .dtk-swipe-count { display: block; margin: 10px 0 0 !important; font-family: var(--display); font-weight: 600; font-size: .96rem; color: var(--navy); font-variant-numeric: tabular-nums; }\n  html body .dtk-swipe-count b { font-weight: 600; }\n  \/* In de modelrij is de teller een grid-item; de rij-afstand is hier 24px, dus terug naar 10px onder de foto. *\/\n  html body .dtk-mrow > .dtk-swipe-count { margin-top: -14px !important; }\n}\n\n\/* ---------------------------------------------------------------- Biestmanagement *\/\n\/* Waar koop je het: op offerte (navy lijn) of in de webshop (blauw vlak). *\/\nhtml body .dtk-tag { display: inline-flex; align-items: center; gap: 6px; font-family: var(--display); font-size: .78rem; font-weight: 600; letter-spacing: .01em; line-height: 1; padding: 6px 9px; border-radius: 999px; white-space: nowrap; }\nhtml body .dtk-tag--shop { background: var(--blue-soft); color: var(--navy); }\nhtml body .dtk-tag--quote { box-shadow: inset 0 0 0 1.5px var(--navy); color: var(--navy); }\nhtml body .dtk-tag::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }\nhtml body .dtk-tag--shop::before { background: var(--blue); }\n\n\/* Vier stappen, \u00e9\u00e9n zak: een doorlopende lijn met een punt per stap. *\/\nhtml body .dtk-flow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 36px); counter-reset: flow; }\nhtml body .dtk-flow-step { position: relative; padding-top: 44px; counter-increment: flow; }\nhtml body .dtk-flow-step::before { content: counter(flow); position: absolute; top: 0; left: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--navy); color: var(--white); font-family: var(--display); font-weight: 600; font-size: .95rem; display: grid; place-items: center; font-variant-numeric: tabular-nums; z-index: 1; }\nhtml body .dtk-flow-step::after { content: ''; position: absolute; top: 14px; left: 30px; right: calc(clamp(20px, 2.4vw, 36px) * -1); height: 2px; background: var(--line); }\nhtml body .dtk-flow-step:last-child::after { display: none; }\nhtml body .dtk-flow-step h3 { margin-bottom: 8px; }\nhtml body .dtk-flow-step > p { font-size: .95rem; margin-bottom: 18px !important; }\nhtml body .dtk-flow-step--quote::before { background: var(--white); color: var(--navy); box-shadow: inset 0 0 0 2px var(--navy); }\n\/* Kop, tekst en productlijst op dezelfde hoogte in alle kolommen (subgrid); mobiel, in \u00e9\u00e9n kolom, gewoon onder elkaar. *\/\n@media (min-width: 601px) {\n  html body .dtk-flow { grid-auto-rows: auto; }\n  html body .dtk-flow-step { display: grid; grid-template-rows: subgrid; grid-row: span 4; row-gap: 0; align-content: start; }\n  html body .dtk-flow-step > * { align-self: start; }\n}\n\n\/* Productregel: miniatuur op wit, naam, label. De shopfoto's zijn klein; ze blijven klein. *\/\nhtml body .dtk-prods { display: grid; gap: 2px; }\nhtml body .dtk-prod { display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; column-gap: 12px; row-gap: 4px; padding: 8px 0; border-top: 1px solid var(--line); text-decoration: none; color: var(--navy); }\nhtml body .dtk-prod:last-child { border-bottom: 1px solid var(--line); }\nhtml body .dtk-prod-img { grid-row: span 2; width: 56px; height: 56px; background: var(--white); border-radius: var(--r-s); box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }\nhtml body .dtk-prod-img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }\nhtml body .dtk-prod-n { font-weight: 600; font-size: .92rem; line-height: 1.3; }\nhtml body .dtk-prod .dtk-tag { justify-self: start; }\nhtml body a.dtk-prod:hover .dtk-prod-n { text-decoration: underline; text-underline-offset: 3px; }\nhtml body .dtk-section--tint .dtk-prod-img { box-shadow: none; }\n\n\/* Zakken bestellen: inhoud x verpakking, elke cel \u00e9\u00e9n link naar de shop. *\/\nhtml body .dtk-bags-scroll { overflow-x: auto; margin-inline: calc(var(--gutter) * -1); padding-inline: var(--gutter); }\n\/* Astra zet randen op elke table, th en td (main.min.css); hier eerst alles op nul, dan alleen de horizontale lijnen. *\/\nhtml body .dtk-bags { width: 100%; min-width: 560px; border-collapse: collapse; border: 0; font-variant-numeric: tabular-nums; }\nhtml body .dtk-bags th, html body .dtk-bags td { padding: 14px 12px; text-align: left; vertical-align: middle; border: 0; border-bottom: 1px solid var(--line); }\nhtml body .dtk-bags thead th { border-bottom: 2px solid var(--navy); font-family: var(--display); color: var(--navy); font-weight: 600; font-size: 1.05rem; }\nhtml body .dtk-bags thead th:first-child { width: 28%; }\nhtml body .dtk-bags-size { display: flex; align-items: center; gap: 12px; }\nhtml body .dtk-bags-size img { width: 52px; height: 52px; object-fit: contain; background: var(--white); border-radius: var(--r-s); padding: 3px; }\nhtml body .dtk-bags tbody th { font-weight: 600; color: var(--navy); }\nhtml body .dtk-bags tbody th small { display: block; font-weight: 400; color: var(--muted); font-size: .86rem; }\nhtml body .dtk-bags a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; text-decoration: none; padding: 8px 12px 8px 0; }\nhtml body .dtk-bags a .dtk-ic { color: var(--navy); transition: transform .2s ease; }\nhtml body .dtk-bags a:hover { text-decoration: underline; text-underline-offset: 3px; }\nhtml body .dtk-bags a:hover .dtk-ic { transform: translateX(3px); }\nhtml body .dtk-bags-n { display: block; font-weight: 400; color: var(--muted); font-size: .86rem; }\n\n\/* Uitgelichte accessoires: raster met lijnen, geen kaarten. *\/\nhtml body .dtk-shopgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 clamp(16px, 2vw, 28px); }\nhtml body .dtk-shopgrid li { border-top: 2px solid var(--navy); padding: 18px 0 26px; }\nhtml body .dtk-shopgrid a { display: grid; gap: 10px; justify-items: start; text-decoration: none; color: var(--navy); }\nhtml body .dtk-shopgrid .dtk-shop-img { justify-self: stretch; }\nhtml body .dtk-shopgrid .dtk-shop-img { aspect-ratio: 1; background: var(--white); border-radius: var(--r-s); display: grid; place-items: center; overflow: hidden; }\nhtml body .dtk-shopgrid .dtk-shop-img img { width: 72%; height: 72%; object-fit: contain; }\nhtml body .dtk-shopgrid h3 { font-size: 1.02rem; }\nhtml body .dtk-shopgrid p { font-size: .9rem; color: var(--ink); margin: 0 !important; }\nhtml body .dtk-shopgrid a:hover h3 { text-decoration: underline; text-underline-offset: 3px; }\n\n\/* Modelrij met productbeeld (pasteurs): wit vlak, contain. *\/\nhtml body .dtk-pmedia { background: var(--white); border-radius: var(--r-m); aspect-ratio: 4 \/ 3; display: grid; place-items: center; box-shadow: inset 0 0 0 1px var(--line); }\nhtml body .dtk-pmedia img { width: 78%; height: 86%; object-fit: contain; }\nhtml body .dtk-section--tint .dtk-pmedia { box-shadow: none; }\n\nhtml body .dtk-split--top { align-items: start; }\n\n@media (max-width: 1080px) {\n  html body .dtk-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }\n  html body .dtk-flow-step:nth-child(2)::after { display: none; }\n  html body .dtk-shopgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); }\n}\n@media (max-width: 760px) {\n  html body .dtk-shopgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n}\n@media (max-width: 600px) {\n  \/* Op mobiel staan de stappen onder elkaar; de lijn loopt verticaal langs de nummers. *\/\n  html body .dtk-flow { grid-template-columns: 1fr; row-gap: 0; }\n  html body .dtk-flow-step { padding: 0 0 32px 48px; }\n  html body .dtk-flow-step::after, html body .dtk-flow-step:nth-child(2)::after { display: block; top: 30px; left: 14px; right: auto; bottom: 0; width: 2px; height: auto; }\n  html body .dtk-flow-step:last-child::after { display: none; }\n  html body .dtk-flow-step h3 { padding-top: 3px; }\n}\n\n\/* ---------------------------------------------------------------- Homepage *\/\nhtml body .dtk-hero--home { min-height: clamp(440px, 62vh, 620px); }\nhtml body .dtk-hero--home .dtk-hero-inner { justify-content: center; }\nhtml body .dtk-hero--home .dtk-hero-copy { margin-top: 0; }\n\/* Rij OKS-afdelingen: uitsnede naar rechts, waar de rij met kalveren de diepte in loopt (zichtbaar op smalle schermen). *\/\nhtml body .dtk-hero--home .dtk-hero-img { object-position: 50% 70%; } \/* oks-windmolens: lucht en windmolens links (tekst), stal rechtsonder *\/\n@media (max-width: 767px) { html body .dtk-hero--home .dtk-hero-img { object-position: 22% 70%; } } \/* mobiel: de stal met kalveren *\/\n\n\/* Kalfassistent: navy vlak, zoeken links, antwoorden rechts. *\/\nhtml body .dtk-assist { background: var(--blue-soft); color: var(--ink); padding-block: clamp(48px, 7vw, 96px); }\nhtml body .dtk-assist-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .62fr); gap: clamp(20px, 3vw, 48px); align-items: end; }\nhtml body .dtk-assist-intro > p { margin: 12px 0 22px; max-width: 40rem; }\nhtml body .dtk-assist-form label { display: block; font-family: var(--display); font-weight: 600; color: var(--navy); margin-bottom: 8px; }\nhtml body .dtk-assist-field { display: flex; gap: 8px; }\nhtml body .dtk-assist-field input { flex: 1; min-width: 0; font: inherit; font-size: 1rem; color: var(--navy); background: var(--white); border: 1.5px solid #8a979e; border-radius: var(--r-s); padding: 13px 16px; }\nhtml body .dtk-assist-field input::placeholder { color: #5f6b73; }\nhtml body .dtk-assist-field input:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }\nhtml body .dtk-assist-field input::-webkit-search-cancel-button { cursor: pointer; }\nhtml body .dtk-assist-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }\nhtml body .dtk-assist-chips button { font: inherit; font-size: .9rem; color: var(--navy); background: var(--white); border: 1px solid #8a979e; border-radius: 999px; padding: 7px 14px; cursor: pointer; }\nhtml body .dtk-assist-chips button:hover { border-color: var(--navy); }\nhtml body .dtk-assist-out { background: var(--white); color: var(--ink); border-radius: var(--r-m); padding: clamp(18px, 2.4vw, 28px); margin-top: 22px; box-shadow: 0 10px 30px rgba(31, 55, 65, .08); }\nhtml body .dtk-assist-status { font-family: var(--display); font-weight: 600; color: var(--navy); margin-bottom: 4px !important; }\nhtml body .dtk-assist-list details { border-bottom: 1px solid var(--line); }\nhtml body .dtk-assist-list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 15px 0; font-weight: 600; color: var(--navy); }\nhtml body .dtk-assist-list summary::-webkit-details-marker { display: none; }\nhtml body .dtk-assist-list summary .dtk-ic-plus { width: 20px; height: 20px; transition: transform .25s ease; }\nhtml body .dtk-assist-list details[open] .dtk-ic-plus { transform: rotate(45deg); }\nhtml body .dtk-assist-list summary:hover span { text-decoration: underline; text-decoration-color: var(--blue); text-decoration-thickness: 2px; text-underline-offset: 4px; }\nhtml body .dtk-assist-a { padding: 0 0 18px; }\nhtml body .dtk-assist-a p { margin-bottom: 10px !important; }\nhtml body .dtk-assist-a mark { background: var(--blue-soft); color: inherit; border-radius: 2px; }\nhtml body .dtk-assist-none { padding: 14px 0; border-bottom: 1px solid var(--line); }\nhtml body .dtk-assist-help { margin: 18px 0 0 !important; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-size: .95rem; }\nhtml body .dtk-assist-help a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }\n\n\/* Van biest tot groep: vier fases naast elkaar, foto boven. *\/\nhtml body .dtk-journey { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 32px); }\nhtml body .dtk-journey-card { display: grid; gap: 4px; text-decoration: none; color: var(--navy); }\nhtml body .dtk-journey-img { display: block; overflow: hidden; border-radius: var(--r-m); margin-bottom: 12px; }\nhtml body .dtk-journey img { width: 100%; aspect-ratio: 4 \/ 3; object-fit: cover; transition: transform .5s ease; }\nhtml body .dtk-journey-card:hover img { transform: scale(1.03); }\nhtml body .dtk-journey-h { font-family: var(--display); font-weight: 600; font-size: 1.25rem; line-height: 1.2; }\nhtml body .dtk-journey-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; font-weight: 600; font-size: .95rem; color: var(--navy); }\nhtml body .dtk-journey-card:hover .dtk-journey-link { text-decoration: underline; text-underline-offset: 3px; }\nhtml body .dtk-journey-when { font-family: var(--display); font-weight: 500; font-size: .9rem; color: var(--muted); }\n\n\/* Kalverhuisvesting: raster van drie, OKS groot. *\/\nhtml body .dtk-bento { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: clamp(16px, 2vw, 24px); }\nhtml body .dtk-bento-a { grid-row: span 2; }\nhtml body .dtk-bento-a, html body .dtk-bento-b { display: flex; flex-direction: column; background: var(--white); border-radius: var(--r-m); overflow: hidden; text-decoration: none; color: var(--ink); }\nhtml body .dtk-bento-img { display: block; overflow: hidden; }\nhtml body .dtk-bento-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }\nhtml body .dtk-bento-a .dtk-bento-img { flex: 1; min-height: 320px; }\nhtml body .dtk-bento-b .dtk-bento-img { aspect-ratio: 16 \/ 9; }\nhtml body .dtk-bento-a:hover img, html body .dtk-bento-b:hover img { transform: scale(1.02); }\nhtml body .dtk-bento-body { display: grid; gap: 6px; padding: 18px 22px 22px; font-size: .95rem; }\nhtml body .dtk-bento-t { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-family: var(--display); font-weight: 600; font-size: 1.2rem; color: var(--navy); }\nhtml body .dtk-bento-c { background: var(--blue-soft); color: var(--ink); border-radius: var(--r-m); padding: clamp(22px, 3vw, 32px); display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }\nhtml body .dtk-bento-c h3 { font-size: 1.4rem; }\nhtml body .dtk-bento-c p { margin: 0 !important; }\n\n\/* Beursagenda: datum groot, naam en plaats, landcode. *\/\nhtml body .dtk-fairs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(24px, 4vw, 64px); }\nhtml body .dtk-fairs li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 16px 0; border-top: 1px solid var(--line); }\nhtml body .dtk-fairs li { border-bottom: 1px solid var(--line); border-top: 0; }\nhtml body .dtk-fair-date { display: grid; line-height: 1.15; }\nhtml body .dtk-fair-date b { font-family: var(--display); font-weight: 600; font-size: 1.35rem; color: var(--navy); font-variant-numeric: tabular-nums; }\nhtml body .dtk-fair-date span { font-size: .88rem; color: var(--muted); }\nhtml body .dtk-fair-name { display: grid; }\nhtml body .dtk-fair-name strong { font-family: var(--display); font-weight: 600; color: var(--navy); font-size: 1.1rem; }\nhtml body .dtk-fair-name span { font-size: .92rem; }\nhtml body .dtk-fair-land { display: block; width: 36px; line-height: 0; }\nhtml body .dtk-fair-land svg { display: block; width: 36px; height: 24px; border-radius: 3px; box-shadow: 0 0 0 1px var(--line); }\n\n@media (max-width: 1080px) {\n  html body .dtk-journey { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }\n}\n@media (max-width: 900px) {\n  html body .dtk-assist-grid { grid-template-columns: 1fr; }\n  html body .dtk-bento { grid-template-columns: 1fr; }\n  html body .dtk-bento-a { grid-row: auto; }\n  html body .dtk-bento-a .dtk-bento-img { min-height: 0; aspect-ratio: 16 \/ 10; flex: none; }\n}\n@media (max-width: 600px) {\n  html body .dtk-journey { grid-template-columns: 1fr; }\n  html body .dtk-assist-field { flex-direction: column; }\n  html body .dtk-fairs li { grid-template-columns: 6.2rem minmax(0, 1fr) auto; gap: 12px; }\n  html body .dtk-fair-date b { font-size: 1.15rem; }\n}\nhtml body .dtk-fairs li[hidden], html body .dtk-assist [hidden], html body .dtk-section[hidden] { display: none !important; }\n\n\/* Homepage ronde 2: videoknop in de hero, videovenster, persoonlijk advies. *\/\nhtml body .dtk-hero--home .dtk-hero-inner { position: relative; }\nhtml body .dtk-video-btn { position: absolute; right: var(--gutter); bottom: clamp(24px, 4vw, 48px); display: inline-flex; align-items: center; gap: 12px; font: inherit; font-family: var(--display); font-weight: 600; color: var(--white); background: rgba(20, 38, 46, .72); border: 1px solid rgba(255,255,255,.28); border-radius: 999px; padding: 8px 20px 8px 8px; cursor: pointer; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }\nhtml body .dtk-video-btn:hover { background: rgba(20, 38, 46, .88); }\nhtml body .dtk-video-play { width: 40px; height: 40px; border-radius: 50%; background: var(--blue); color: var(--navy); display: grid; place-items: center; }\nhtml body .dtk-video-play svg { width: 18px; height: 18px; margin-left: 2px; }\nhtml body .dtk-video-btn:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }\nhtml body .dtk-video { width: min(1100px, 94vw); max-height: 94vh; padding: 0; border: 0; border-radius: var(--r-m); background: #0d1b21; color: rgba(255,255,255,.8); }\nhtml body .dtk-video::backdrop { background: rgba(10, 20, 25, .82); }\nhtml body .dtk-video-inner { position: relative; padding: 52px 16px 14px; }\nhtml body .dtk-video .dtk-lb-close { position: absolute; top: 10px; right: 12px; }\nhtml body .dtk-video-frame { position: relative; aspect-ratio: 16 \/ 9; background: #000; border-radius: var(--r-s); overflow: hidden; }\nhtml body .dtk-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }\nhtml body .dtk-video-note { font-size: .85rem; margin: 10px 2px 0 !important; }\n\nhtml body .dtk-people { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(28px, 5vw, 72px); align-items: center; }\nhtml body .dtk-people-grid { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr 1fr; gap: clamp(10px, 1.4vw, 18px); }\nhtml body .dtk-people-grid figure { margin: 0; overflow: hidden; border-radius: var(--r-m); }\nhtml body .dtk-people-grid img { width: 100%; height: 100%; object-fit: cover; }\nhtml body .dtk-people-a { grid-row: span 2; aspect-ratio: 4 \/ 5; }\nhtml body .dtk-people-b, html body .dtk-people-c { aspect-ratio: 4 \/ 3; }\n\n@media (max-width: 900px) {\n  html body .dtk-people { grid-template-columns: 1fr; }\n  html body .dtk-fairs { grid-template-columns: 1fr; }\n}\n@media (max-width: 700px) {\n  html body .dtk-video-btn { position: static; margin-top: 24px; align-self: flex-start; }\n  html body .dtk-hero--home .dtk-hero-inner { justify-content: flex-end; }\n}\n\n\/* Homepage ronde 3: verkopen eerst. *\/\nhtml body .dtk-hero--home { min-height: clamp(480px, 70vh, 680px); }\nhtml body .dtk-hero--home .dtk-hero-inner { padding-bottom: clamp(96px, 10vw, 140px); }\nhtml body .dtk-usps { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); margin: clamp(-64px, -5vw, -48px) 0 0; }\nhtml body .dtk-usps li { display: flex; gap: 14px; align-items: flex-start; background: var(--white); border-radius: var(--r-m); padding: 20px 22px; box-shadow: 0 12px 32px rgba(31, 55, 65, .12); }\nhtml body .dtk-usps .dtk-ic { width: 22px; height: 22px; color: var(--navy); background: var(--blue-soft); border-radius: 50%; padding: 4px; box-sizing: content-box; flex: none; }\nhtml body .dtk-usps span { display: grid; gap: 2px; font-size: .92rem; }\nhtml body .dtk-usps strong { font-family: var(--display); font-weight: 600; color: var(--navy); font-size: 1.02rem; }\nhtml body .dtk-usps a { font-weight: 600; }\nhtml body .dtk-section--top { padding-top: clamp(48px, 6vw, 80px); }\nhtml body .dtk-row-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: clamp(22px, 3vw, 36px); }\nhtml body .dtk-row-head p { margin: 0 !important; width: 100%; }\n\n\/* Productgroepen als kaarten: beeld op wit, titel, regel, bekijken. *\/\nhtml body .dtk-cats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 20px); }\n\/* Kaart vult het hele rijvak via flex op de li, niet met height: 100% (dat hield de kaart op de rijhoogte vast terwijl\n   de inhoud met grotere tekst hoger werd: Bekijken viel dan op de rand). *\/\nhtml body .dtk-cats > li { display: flex; }\nhtml body .dtk-cats a { flex: 1 1 auto; min-width: 0; display: grid; grid-template-rows: auto auto 1fr auto; background: var(--white); border: 1px solid var(--line); border-radius: var(--r-m); padding: 16px 18px 18px; text-decoration: none; color: var(--ink); transition: box-shadow .25s ease, transform .25s ease; }\nhtml body .dtk-cats a:hover { box-shadow: 0 14px 34px rgba(31, 55, 65, .12); transform: translateY(-2px); }\n\/* Rij van 100%: anders rekent height: 100% op de foto als auto en wordt een vierkante foto hoger dan het 4:3-vak. *\/\nhtml body .dtk-cats-img { display: grid; grid-template-rows: 100%; place-items: center; aspect-ratio: 4 \/ 3; margin-bottom: 12px; overflow: hidden; }\nhtml body .dtk-cats-img img { width: 78%; height: 100%; object-fit: contain; }\nhtml body .dtk-cats-t { font-family: var(--display); font-weight: 600; font-size: 1.12rem; color: var(--navy); }\nhtml body .dtk-cats-s { font-size: .9rem; margin-top: 2px; }\nhtml body .dtk-cats-more { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-weight: 600; font-size: .92rem; color: var(--navy); }\nhtml body .dtk-cats-all a { background: var(--blue-soft); border-color: transparent; align-content: end; grid-template-rows: 1fr auto auto; }\nhtml body .dtk-cats-all .dtk-cats-t { font-size: 1.35rem; }\n\n\/* Kalfassistent met een gezicht: chat links, adviseur rechts op de onderrand. *\/\nhtml body .dtk-assist { padding-bottom: 0; overflow: hidden; }\nhtml body .dtk-assist-chat { padding-bottom: clamp(48px, 7vw, 96px); }\nhtml body .dtk-assist-person { position: relative; align-self: end; }\nhtml body .dtk-assist-person img { width: 100%; max-width: 420px; margin-left: auto; display: block; }\nhtml body .dtk-assist-bubble { position: absolute; top: 8%; left: -6%; z-index: 1; margin: 0 !important; background: var(--white); color: var(--navy); font-family: var(--display); font-weight: 600; padding: 12px 18px; border-radius: 18px 18px 18px 4px; box-shadow: 0 10px 26px rgba(31, 55, 65, .14); white-space: nowrap; }\n\n\/* Landschap met kalveren als overgang naar het CTA-blok. *\/\nhtml body .dtk-landscape { position: relative; height: clamp(120px, 14vw, 220px); margin-top: -1px; }\nhtml body .dtk-landscape svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }\nhtml body .dtk .dtk-landscape-calves { position: absolute; left: 58%; bottom: 34%; width: clamp(160px, 22vw, 330px); height: auto; }\nhtml body .dtk-landscape + .dtk-contact { margin-top: -2px; }\n\n@media (max-width: 1080px) { html body .dtk-cats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }\n@media (max-width: 900px) {\n  html body .dtk-usps { grid-template-columns: 1fr; margin-top: -40px; }\n  html body .dtk-assist-grid { grid-template-columns: 1fr; }\n  html body .dtk-assist-person { justify-self: center; width: min(260px, 70%); margin-top: -24px; }\n  html body .dtk-assist-person { text-align: center; }\n  html body .dtk-assist-bubble { position: relative; left: auto; top: auto; display: inline-block; margin-bottom: 10px !important; }\n  html body .dtk-assist-chat { padding-bottom: 32px; }\n  html body .dtk-assist { padding-bottom: 0; }\n}\n@media (max-width: 600px) { html body .dtk-cats { grid-template-columns: repeat(2, minmax(0, 1fr)); } html body .dtk-cats a { padding: 12px; } }\nhtml body .dtk-landscape { background: var(--concrete); }\n\nhtml body .dtk-hero--home .dtk-video-btn { bottom: clamp(96px, 9vw, 128px); }\nhtml body .dtk-cats-all .dtk-cats-img { place-items: end start; }\nhtml body .dtk-cats-all .dtk-cats-img img { width: 70%; height: auto; }\n\n@media (max-width: 600px) { html body .dtk-cats-t, html body .dtk-cats-s { hyphens: auto; overflow-wrap: break-word; } html body .dtk-cats-t { font-size: 1rem; } }\n\n\/* Kalfassistent als chat (ronde 4). *\/\nhtml body .dtk-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }\nhtml body .dtk-chat { background: var(--white); border-radius: var(--r-m); box-shadow: 0 10px 30px rgba(31, 55, 65, .08); padding: clamp(14px, 2vw, 22px); display: grid; gap: 14px; }\nhtml body .dtk-chat-log { position: relative; display: flex; flex-direction: column; gap: 12px; max-height: 460px; overflow-y: auto; padding: 4px 2px; scroll-behavior: smooth; }\nhtml body .dtk-msg { max-width: 86%; padding: 12px 16px; border-radius: 16px; font-size: .97rem; }\nhtml body .dtk-msg p { margin: 0 0 8px !important; }\nhtml body .dtk-msg p:last-child { margin-bottom: 0 !important; }\nhtml body .dtk-msg-who { display: block; font-family: var(--display); font-weight: 600; font-size: .78rem; margin-bottom: 4px; }\nhtml body .dtk-msg--bot { align-self: flex-start; background: var(--blue-soft); color: var(--ink); border-bottom-left-radius: 4px; }\nhtml body .dtk-msg--bot .dtk-msg-who { color: var(--navy); }\nhtml body .dtk-msg--you { align-self: flex-end; background: var(--navy); color: var(--white); border-bottom-right-radius: 4px; }\nhtml body .dtk-msg--you .dtk-msg-who { color: rgba(255,255,255,.75); }\nhtml body .dtk-msg-lead { font-size: .88rem; color: var(--muted); }\nhtml body .dtk-msg-q { font-family: var(--display); font-weight: 600; color: var(--navy); }\nhtml body .dtk-msg .dtk-link { font-size: .93rem; }\nhtml body .dtk-msg-more { display: grid; gap: 4px; }\nhtml body .dtk-msg-links { display: flex; flex-wrap: wrap; gap: 6px 16px; }\nhtml body .dtk-msg-links a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }\nhtml body .dtk-chat-chips { display: flex; flex-wrap: wrap; gap: 8px; }\nhtml body .dtk-chat-chips button { font: inherit; font-size: .88rem; color: var(--navy); background: var(--white); border: 1px solid #8a979e; border-radius: 999px; padding: 7px 14px; cursor: pointer; text-align: left; }\nhtml body .dtk-chat-chips button:hover { border-color: var(--navy); background: var(--blue-soft); }\nhtml body .dtk-chat-form { display: flex; gap: 8px; }\nhtml body .dtk-chat-form input { flex: 1; min-width: 0; font: inherit; font-size: 1rem; color: var(--navy); background: var(--white); border: 1.5px solid #8a979e; border-radius: 999px; padding: 12px 18px; }\nhtml body .dtk-chat-form input::placeholder { color: #5f6b73; }\nhtml body .dtk-chat-form input:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }\nhtml body .dtk-chat-form .dtk-btn { border-radius: 999px; }\nhtml body .dtk-assist .dtk-assist-help { margin-top: 16px !important; }\n\/* Ballon met de punt rechtsonder, naar Karen toe. *\/\nhtml body .dtk-assist-bubble { left: -12%; top: 6%; border-radius: 18px 18px 4px 18px; }\nhtml body .dtk-assist-bubble::after { content: ''; position: absolute; right: 14px; bottom: -9px; border: 10px solid transparent; border-top-color: var(--white); border-bottom: 0; transform: skewX(-25deg); }\n@media (max-width: 900px) { html body .dtk-msg { max-width: 94%; } html body .dtk-assist-bubble { left: auto; } }\n\n\/* Pagina Veelgestelde vragen: onderwerpen links, vragen rechts. *\/\nhtml body .dtk-faqpage { display: grid; grid-template-columns: minmax(0, .32fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }\nhtml body .dtk-faqpage-nav { position: sticky; top: calc(var(--dtk-sticky, 0px) + var(--dtk-admin, 0px) + 24px); } \/* onder de vaste menubalk: Next 60 px, WordPress zet --dtk-sticky zelf *\/\nhtml body .dtk-faqpage-nav h2 { font-size: 1.15rem; margin-bottom: 12px; }\nhtml body .dtk-faqpage-nav ul { display: grid; gap: 2px; }\nhtml body .dtk-faqpage-nav a { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-weight: 500; }\nhtml body .dtk-faqpage-nav a span { color: var(--muted); font-variant-numeric: tabular-nums; }\nhtml body .dtk-faqpage-groups { display: grid; gap: clamp(36px, 5vw, 64px); }\nhtml body .dtk-faqpage-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 20px; margin-bottom: 6px; }\nhtml body .dtk-faqpage-head h2 { font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); }\nhtml body .dtk-faqpage-group details, html body .dtk-faqpage-group { scroll-margin-top: calc(var(--dtk-sticky, 0px) + var(--dtk-admin, 0px) + 24px); }\n@media (max-width: 900px) { html body .dtk-faqpage { grid-template-columns: 1fr; } html body .dtk-faqpage-nav { position: static; } }\n\n\/* Van dag \u00e9\u00e9n tot groep als horizontale tijdlijn (ronde 5): lijn met een punt per fase. *\/\nhtml body .dtk-tl-track { padding-top: 26px; }\nhtml body .dtk-tl-item { position: relative; display: grid; align-content: start; gap: 10px; }\nhtml body .dtk-tl-item::before { content: ''; position: absolute; top: -19px; left: 0; right: calc(clamp(16px, 2vw, 28px) * -1); height: 2px; background: var(--line); }\nhtml body .dtk-tl-item::after { content: ''; position: absolute; top: -25px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 4px var(--white); }\nhtml body .dtk-tl-item:last-child::before { right: 0; }\nhtml body .dtk-tl-item .dtk-stage-when { justify-self: start; margin: 0 !important; }\nhtml body .dtk-tl-img { display: block; overflow: hidden; border-radius: var(--r-m); }\nhtml body .dtk-tl-img img { width: 100%; aspect-ratio: 4 \/ 3; object-fit: cover; }\nhtml body .dtk-tl-item h3 { margin-top: 4px; }\nhtml body .dtk-tl-item > p:not(.dtk-stage-when) { font-size: .95rem; margin: 0 !important; }\nhtml body .dtk-tl-item .dtk-stage-links { margin-top: 4px; }\nhtml body .dtk-timeline .dtk-carousel-nav { top: -64px; }\n@media (max-width: 700px) { html body .dtk-timeline .dtk-carousel-nav { top: auto; } }\n\n\/* Ballon rechts naast Karen, op schouderhoogte, met de punt naar haar toe (Noah, 07-10). *\/\nhtml body .dtk-assist-bubble { left: auto; right: -14%; top: 52%; border-radius: 18px 18px 18px 18px; }\nhtml body .dtk-assist-bubble::after { right: auto; left: 18px; bottom: auto; top: -9px; border: 10px solid transparent; border-bottom-color: var(--white); border-top: 0; transform: skewX(25deg); }\n@media (max-width: 1240px) { html body .dtk-assist-bubble { right: -4%; } }\n@media (max-width: 900px) { html body .dtk-assist-bubble { right: auto; top: auto; } html body .dtk-assist-bubble::after { display: none; } }\n\n\/* Kalvervoeding: voerplan in drie fases, melkpoederlijn als datasheet, shopartikelen per moment. *\/\n@media (min-width: 901px) { html body .dtk-flow--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } html body .dtk-flow--3 .dtk-flow-step:nth-child(2)::after { display: block; } }\nhtml body .dtk-flow-step .dtk-link { display: inline-flex; }\n\nhtml body .dtk-powders-head { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 64px); align-items: end; }\nhtml body .dtk-powders-bags { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; background: var(--blue-soft); border-radius: var(--r-m); padding: clamp(16px, 2vw, 28px); }\nhtml body .dtk-powders-bags img { width: 100%; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; }\nhtml body .dtk-powder-table { min-width: 820px; }\nhtml body .dtk-powder-table thead th:first-child { width: 20%; }\nhtml body .dtk-powder-table .dtk-num { text-align: right; white-space: nowrap; }\nhtml body .dtk-powder-table tbody th a { white-space: nowrap; }\nhtml body .dtk-powder-note { font-size: .9rem; min-width: 220px; }\nhtml body .dtk-meter { display: flex; align-items: center; gap: 12px; min-width: 190px; }\nhtml body .dtk-meter-bar { position: relative; flex: 1; height: 10px; border-radius: 999px; background: var(--concrete); overflow: hidden; }\nhtml body .dtk-meter-bar::after { content: ''; position: absolute; inset: 0; background: var(--blue); transform: scaleX(var(--v)); transform-origin: left; }\nhtml body .dtk-meter-v { min-width: 4.5ch; text-align: right; font-weight: 600; color: var(--navy); font-variant-numeric: tabular-nums; }\nhtml body .dtk-meter-none { font-size: .9rem; color: var(--muted); }\n\nhtml body .dtk-pmedia--photo { overflow: hidden; box-shadow: none; }\nhtml body .dtk-pmedia--photo img { width: 100%; height: 100%; object-fit: cover; }\n\nhtml body .dtk-need { display: grid; grid-template-columns: minmax(0, .34fr) minmax(0, 1fr); gap: clamp(16px, 3vw, 48px); border-top: 2px solid var(--navy); padding: 22px 0 40px; }\nhtml body .dtk-need-head h3 { font-size: 1.2rem; margin-bottom: 6px; }\nhtml body .dtk-need-head p { font-size: .92rem; color: var(--muted); margin: 0 !important; }\n@media (max-width: 900px) {\n  html body .dtk-powders-head { grid-template-columns: minmax(0, 1fr); }\n  html body .dtk-powders-bags { max-width: 420px; }\n  html body .dtk-need { grid-template-columns: minmax(0, 1fr); }\n}\n\/* Melkpoeders direct na het voerplan: twee witte secties op elkaar gaven dubbele witruimte. *\/\nhtml body .dtk-section:has(+ .dtk-powders) { padding-bottom: clamp(40px, 5vw, 64px); }\nhtml body .dtk-section + .dtk-powders { padding-top: 0; }\nhtml body .dtk-section + .dtk-powders .dtk-powders-head { border-top: 1px solid var(--line); padding-top: clamp(32px, 4vw, 56px); }\n\/* Aanvullende diervoeders als shopkaarten: beeld, naam, regel, live prijs (script.js) en winkelwagenknop. *\/\nhtml body .dtk-pcards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }\nhtml body .dtk-pcard { display: flex; flex-direction: column; gap: 14px; }\nhtml body .dtk-pcard-link { display: grid; gap: 8px; text-decoration: none; color: inherit; flex: 1; align-content: start; }\nhtml body .dtk-pcard-img { aspect-ratio: 1; background: var(--white); border-radius: var(--r-m); box-shadow: inset 0 0 0 1px var(--line); display: grid; place-items: center; overflow: hidden; margin-bottom: 6px; }\nhtml body .dtk-pcard-img img { width: 76%; height: 76%; object-fit: contain; transition: transform .4s ease; }\nhtml body .dtk-pcard-link:hover .dtk-pcard-img img { transform: scale(1.04); }\nhtml body .dtk-pcard-n { font-family: var(--display); font-weight: 600; color: var(--navy); line-height: 1.25; }\nhtml body .dtk-pcard-link:hover .dtk-pcard-n { text-decoration: underline; text-decoration-color: var(--blue); text-decoration-thickness: 2px; text-underline-offset: 3px; }\nhtml body .dtk-pcard-d { font-size: .88rem; line-height: 1.45; }\nhtml body .dtk-pcard-buy { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); }\nhtml body .dtk-pcard-buy .dtk-price { min-height: 2.6em; }\nhtml body .dtk-pcard-buy .dtk-btn { justify-content: center; }\nhtml body .dtk-price { font-family: var(--display); font-weight: 600; font-size: 1.1rem; color: var(--navy); font-variant-numeric: tabular-nums; }\nhtml body .dtk-price small { display: block; font-family: var(--text); font-weight: 400; font-size: .76rem; color: var(--muted); }\nhtml body .dtk .dtk-btn--sm { min-height: 44px; padding: 10px 16px; font-size: .94rem; }\n@media (max-width: 1080px) { html body .dtk-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\n\n\/* Melkpoedertabel op een telefoon: elke rij een blok (naam, balk, eiwit en vet, kenmerk) in plaats van zijwaarts scrollen. *\/\n@media (max-width: 760px) {\n  html body .dtk-bags-scroll:has(.dtk-powder-table) { overflow: visible; margin-inline: 0; padding-inline: 0; }\n  html body .dtk-powder-table { min-width: 0; }\n  html body .dtk-powder-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }\n  html body .dtk-powder-table tbody tr { display: grid; grid-template-columns: auto auto 1fr; column-gap: 20px; row-gap: 6px; padding: 16px 0; border-bottom: 1px solid var(--line); }\n  html body .dtk-powder-table tbody tr:last-child { border-bottom: 0; }\n  html body .dtk-powder-table tbody th, html body .dtk-powder-table tbody td { padding: 0; border: 0; }\n  html body .dtk-powder-table tbody th, html body .dtk-powder-table tbody td:nth-child(2), html body .dtk-powder-table .dtk-powder-note { grid-column: 1 \/ -1; }\n  html body .dtk-powder-table .dtk-num { text-align: left; font-size: .92rem; color: var(--navy); font-weight: 600; }\n  html body .dtk-powder-table .dtk-num::before { content: attr(data-l) ' '; font-weight: 400; color: var(--muted); }\n  html body .dtk-powder-table .dtk-powder-note { min-width: 0; }\n  html body .dtk-meter { min-width: 0; max-width: 340px; }\n}\nhtml body .dtk-prod-n, html body .dtk-pcard-n { overflow-wrap: anywhere; }\n\n<\/style>\n<div class=\"dtk\" lang=\"en\">\n\n<header class=\"dtk-hero\">\n  <img fetchpriority=\"high\" class=\"dtk-hero-img\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp 2200w\" sizes=\"100vw\" width=\"2200\" height=\"1466\" alt=\"A farm worker fills the Matilda colostrum pasteuriser next to a row of calf pens\" fetchpriority=\"high\" decoding=\"async\">\n  <div class=\"dtk-hero-inner dtk-wrap\">\n    <nav class=\"dtk-crumbs\" aria-label=\"Breadcrumb\"><ol><li><a href=\"https:\/\/dairytop.eu\/en\/\">Home<\/a><\/li><li><a href=\"https:\/\/dairytop.eu\/en\/colostrum-management\/\">Colostrum management<\/a><\/li><li><span aria-current=\"page\">Pasteurisers<\/span><\/li><\/ol><\/nav>\n    <div class=\"dtk-hero-copy\">\n      <p class=\"dtk-hero-kicker\">Pasteurising colostrum<\/p>\n      <h1>Pasteurisers<\/h1>\n      <p class=\"dtk-lead\">From the compact Matilda to the Adda 60G with its 220 litre tank. They heat the colostrum to the right temperature, hold it there for the right time and stir it meanwhile.<\/p>\n      <div class=\"dtk-actions\"><a class=\"dtk-btn\" href=\"#modellen\">Compare the models<\/a><a class=\"dtk-btn dtk-btn--ghost\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\">Request a quote<\/a><\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section class=\"dtk-section\" id=\"modellen\" aria-labelledby=\"mod-h\">\n  <div class=\"dtk-wrap\">\n    <div class=\"dtk-head\">\n      <p class=\"dtk-kicker\">Four models <span class=\"dtk-tag dtk-tag--quote\">On quotation<\/span><\/p>\n      <h2 id=\"mod-h\">Which pasteuriser suits your farm?<\/h2>\n      <p>The main differences at a glance. Each model is described in full below the table.<\/p>\n    <\/div>\n    <div class=\"dtk-bags-scroll\" tabindex=\"0\" role=\"region\" aria-labelledby=\"mod-h\">\n      <table class=\"dtk-bags\">\n        <thead><tr><th scope=\"col\">Model<\/th><th scope=\"col\">Capacity<\/th><th scope=\"col\">What it does<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><th scope=\"row\"><a href=\"#matilda\">Matilda <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/th><td>Up to 8 litres of colostrum in bags at once<\/td><td>Pasteurising and warming<\/td><\/tr>\n          <tr><th scope=\"row\"><a href=\"#adda-10g\">Adda 10G <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/th><td>10 US gallons, 37 litre tank<\/td><td>Pasteurising or warming colostrum or milk, also in bags<\/td><\/tr>\n          <tr><th scope=\"row\"><a href=\"#adda-30g\">Adda 30G <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/th><td>30 US gallons, up to eight 4 litre bags<\/td><td>Pasteurising, warming and cooling<\/td><\/tr>\n          <tr><th scope=\"row\"><a href=\"#adda-60g\">Adda 60G <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/th><td>60 US gallons, 220 litre tank<\/td><td>Pasteurising or warming colostrum or milk, also in bags<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n    <div class=\"dtk-mrows dtk-mt-l\">\n      <article class=\"dtk-mrow\" id=\"matilda\" aria-labelledby=\"matilda-h\">\n        <div class=\"dtk-pmedia\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-matilda.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-matilda-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-matilda.webp 1200w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1200\" height=\"1200\" alt=\"Matilda pasteuriser\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-mrow-body\">\n          <h3 id=\"matilda-h\">Matilda<\/h3>\n          <p class=\"dtk-model-sub\">Compact, for colostrum in the bag<\/p>\n          <dl class=\"dtk-mrow-spec dtk-mrow-spec--1\">\n            <div><dt>Capacity<\/dt><dd>Up to 8 litres of colostrum in bags at once<\/dd><\/div>\n            <div><dt>Function<\/dt><dd>Pasteurising and warming<\/dd><\/div>\n            <div><dt>Dimensions<\/dt><dd>79 \u00d7 56 \u00d7 64 cm<\/dd><\/div><div><dt>Controls<\/dt><dd>Touchscreen in several languages, also via Bluetooth<\/dd><\/div><div><dt>Connections<\/dt><dd>Power and water<\/dd><\/div><div><dt>Monitoring<\/dt><dd>Self-diagnosis of motor and heating, monitored remotely by Dairy Tech<\/dd><\/div>\n            <div><dt>Item no.<\/dt><dd>10430<\/dd><\/div>\n          <\/dl>\n          <div class=\"dtk-actions\"><a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\" data-model=\"Matilda\">Request a quote<\/a><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product\/matilda-colostrum-pasteurizer-2\/\">Product details <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/div>\n        <\/div>\n      <\/article>\n      <article class=\"dtk-mrow\" id=\"adda-10g\" aria-labelledby=\"adda-10g-h\">\n        <div class=\"dtk-pmedia\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-10.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-10-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-10.webp 1200w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1200\" height=\"1200\" alt=\"Adda 10G pasteuriser\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-mrow-body\">\n          <h3 id=\"adda-10g-h\">Adda 10G<\/h3>\n          <p class=\"dtk-model-sub\">37 litre stainless steel tank<\/p>\n          <dl class=\"dtk-mrow-spec dtk-mrow-spec--1\">\n            <div><dt>Capacity<\/dt><dd>10 US gallons, 37 litre tank<\/dd><\/div>\n            <div><dt>Function<\/dt><dd>Pasteurising or warming colostrum or milk, also in bags<\/dd><\/div>\n            <div><dt>Programmes<\/dt><dd>6 automatic treatment profiles, adjustable<\/dd><\/div><div><dt>Energy use<\/dt><dd>3 kW per batch<\/dd><\/div><div><dt>Connections<\/dt><dd>Fully assembled; drain and cold water<\/dd><\/div><div><dt>Data<\/dt><dd>Chart on the display, data can be downloaded<\/dd><\/div><div><dt>Dimensions<\/dt><dd>61 \u00d7 61 \u00d7 143 cm<\/dd><\/div><div><dt>Empty weight<\/dt><dd>68&nbsp;kg<\/dd><\/div>\n            <div><dt>Item no.<\/dt><dd>10571<\/dd><\/div>\n          <\/dl>\n          <div class=\"dtk-actions\"><a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\" data-model=\"Adda 10G\">Request a quote<\/a><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product\/perfect-udder-pasteurizer-10g\/\">Product details <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/div>\n        <\/div>\n      <\/article>\n      <article class=\"dtk-mrow\" id=\"adda-30g\" aria-labelledby=\"adda-30g-h\">\n        <div class=\"dtk-pmedia\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-30.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-30-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-30.webp 1200w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1200\" height=\"1200\" alt=\"Adda 30G pasteuriser\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-mrow-body\">\n          <h3 id=\"adda-30g-h\">Adda 30G<\/h3>\n          <p class=\"dtk-model-sub\">Fully automatic, also cools<\/p>\n          <dl class=\"dtk-mrow-spec dtk-mrow-spec--1\">\n            <div><dt>Capacity<\/dt><dd>30 US gallons, up to eight 4 litre bags<\/dd><\/div>\n            <div><dt>Function<\/dt><dd>Pasteurising, warming and cooling<\/dd><\/div>\n            <div><dt>How it works<\/dt><dd>Stirs and heats at the same time, holds temperature and time automatically<\/dd><\/div><div><dt>Dimensions<\/dt><dd>85 \u00d7 84 \u00d7 143 cm<\/dd><\/div><div><dt>Empty weight<\/dt><dd>110&nbsp;kg<\/dd><\/div>\n            <div><dt>Item no.<\/dt><dd>10575<\/dd><\/div>\n          <\/dl>\n          <div class=\"dtk-actions\"><a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\" data-model=\"Adda 30G\">Request a quote<\/a><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product\/perfect-udder-pasteurizer-30g\/\">Product details <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/div>\n        <\/div>\n      <\/article>\n      <article class=\"dtk-mrow\" id=\"adda-60g\" aria-labelledby=\"adda-60g-h\">\n        <div class=\"dtk-pmedia\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-60.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-60-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-adda-60.webp 1200w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1200\" height=\"1200\" alt=\"Adda 60G pasteuriser\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-mrow-body\">\n          <h3 id=\"adda-60g-h\">Adda 60G<\/h3>\n          <p class=\"dtk-model-sub\">220 litre stainless steel tank<\/p>\n          <dl class=\"dtk-mrow-spec dtk-mrow-spec--1\">\n            <div><dt>Capacity<\/dt><dd>60 US gallons, 220 litre tank<\/dd><\/div>\n            <div><dt>Function<\/dt><dd>Pasteurising or warming colostrum or milk, also in bags<\/dd><\/div>\n            <div><dt>Draining<\/dt><dd>Stainless steel drain tap, removable for cleaning<\/dd><\/div><div><dt>Dimensions<\/dt><dd>89 \u00d7 89 \u00d7 163 cm<\/dd><\/div><div><dt>Empty weight<\/dt><dd>167&nbsp;kg<\/dd><\/div>\n            <div><dt>Item no.<\/dt><dd>10576<\/dd><\/div>\n          <\/dl>\n          <div class=\"dtk-actions\"><a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\" data-model=\"Adda 60G\">Request a quote<\/a><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product\/perfect-udder-pasteurizer-60g\/\">Product details <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/div>\n        <\/div>\n      <\/article>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-slider-band\" aria-label=\"Photos of the Matilda in use\">\n  <div class=\"dtk-wrap dtk-slider\" data-gallery data-slider>\n    <div class=\"dtk-slider-viewport\">\n      <ul class=\"dtk-slider-track\">\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"0\" aria-label=\"View photo 1 of 6 full size: Matilda: a bag goes into the pasteuriser, with calves in the pens behind\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-kalveren.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-kalveren-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-kalveren.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: a bag goes into the pasteuriser, with calves in the pens behind\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"1\" aria-label=\"View photo 2 of 6 full size: Matilda: lid open, a bag goes in\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-vullen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-vullen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-vullen.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: lid open, a bag goes in\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"2\" aria-label=\"View photo 3 of 6 full size: Matilda: on a stand next to the calf pens\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: on a stand next to the calf pens\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"3\" aria-label=\"View photo 4 of 6 full size: Matilda: a Perfect Udder bag in the pasteuriser\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-in-matilda.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-in-matilda-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-in-matilda.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: a Perfect Udder bag in the pasteuriser\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"4\" aria-label=\"View photo 5 of 6 full size: Matilda: the control panel\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-paneel.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-paneel-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-paneel.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: the control panel\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n        <li class=\"dtk-slide\"><button type=\"button\" class=\"dtk-slide-btn\" data-index=\"5\" aria-label=\"View photo 6 of 6 full size: Matilda: a new bag out of the pack\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-openen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-openen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-openen.webp 2200w\" sizes=\"auto, (min-width: 1000px) 60vw, 90vw\" width=\"2200\" height=\"1466\" alt=\"Matilda: a new bag out of the pack\" loading=\"lazy\" decoding=\"async\"><span class=\"dtk-slide-zoom\" aria-hidden=\"true\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12 3h5v5M8 17H3v-5M17 3l-5.5 5.5M3 17l5.5-5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/span><\/button><\/li>\n      <\/ul>\n    <\/div>\n    <div class=\"dtk-slider-bar\">\n      <p class=\"dtk-slider-cap\" aria-live=\"polite\"><span class=\"dtk-slider-count\"><b data-cur>1<\/b> \/ 6<\/span><span data-cap>Matilda: a bag goes into the pasteuriser, with calves in the pens behind<\/span><\/p>\n      <div class=\"dtk-slider-ctrl\">\n        <button type=\"button\" class=\"dtk-carousel-btn\" data-step=\"-1\" aria-label=\"Previous photo\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M12.5 4.5L7 10l5.5 5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/button>\n        <button type=\"button\" class=\"dtk-carousel-btn\" data-step=\"1\" aria-label=\"Next photo\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M7.5 4.5L13 10l-5.5 5.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/button>\n      <\/div>\n    <\/div>\n    <template data-all>[[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-kalveren.webp\",\"Matilda: a bag goes into the pasteuriser, with calves in the pens behind\"],[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-vullen.webp\",\"Matilda: lid open, a bag goes in\"],[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda.webp\",\"Matilda: on a stand next to the calf pens\"],[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-in-matilda.webp\",\"Matilda: a Perfect Udder bag in the pasteuriser\"],[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-paneel.webp\",\"Matilda: the control panel\"],[\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-zak-openen.webp\",\"Matilda: a new bag out of the pack\"]]<\/template>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section dtk-section--tint\" aria-labelledby=\"why-h\">\n  <div class=\"dtk-wrap dtk-split dtk-split--top\">\n    <div>\n      <p class=\"dtk-kicker\">Why pasteurise<\/p>\n      <h2 id=\"why-h\">Pathogens out, antibodies kept<\/h2>\n      <p class=\"dtk-mt\">According to the manufacturer, Perfect Udder colostrum pasteurisers kill the following pathogens while the antibodies in the colostrum (IgG) are kept intact:<\/p>\n      <ul class=\"dtk-checks\"><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Mycobacterium avium subsp. paratuberculosis<\/i> (Johne\u2019s disease)<\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Salmonella spp.<\/i><\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Listeria monocytogenes<\/i><\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Escherichia coli<\/i><\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Campylobacter spp.<\/i><\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Staphylococcus aureus<\/i><\/span><\/li><li><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10.5l4 4 8-9\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span><i>Mycoplasma<\/i><\/span><\/li><\/ul>\n    <\/div>\n    <div>\n      <p class=\"dtk-kicker\">Works with the bag<\/p>\n      <h2>Pasteurising in the Perfect Udder bag<\/h2>\n      <p class=\"dtk-mt\">In the bag you pasteurise, cool, freeze and warm the colostrum without pouring it over. You order the bags and accessories from the shop.<\/p>\n      <div class=\"dtk-links\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/colostrum-management\/#zakken\">Order bags <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/colostrum-management\/#werkwijze\">Colostrum in four steps <svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><\/a><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section dtk-faq\" aria-labelledby=\"faq-h\">\n  <div class=\"dtk-wrap dtk-faq-grid\">\n    <div class=\"dtk-faq-head\">\n      <h2 id=\"faq-h\">Frequently asked questions about pasteurisers<\/h2>\n      <p>Torn between two models? Call us and we will work out together what suits you.<\/p>\n    <\/div>\n    <div class=\"dtk-faq-list\">\n      <details><summary><span>What do 10G, 30G and 60G mean?<\/span><svg class=\"dtk-ic dtk-ic-plus\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg><\/summary><div class=\"dtk-faq-a\"><p>The number is the capacity in US gallons: 10, 30 or 60 gallons. The Adda 10G has a 37 litre tank and the Adda 60G a 220 litre tank.<\/p><\/div><\/details>\n      <details><summary><span>Can I pasteurise colostrum in the Perfect Udder bag?<\/span><svg class=\"dtk-ic dtk-ic-plus\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg><\/summary><div class=\"dtk-faq-a\"><p>Yes, with all four. The Matilda handles up to 8 litres of colostrum in bags at once, the Adda 30G up to eight 4 litre bags. The Adda 10G and 60G pasteurise or warm bags, and also loose colostrum or milk in the tank.<\/p><\/div><\/details>\n      <details><summary><span>What do I need to connect a pasteuriser?<\/span><svg class=\"dtk-ic dtk-ic-plus\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg><\/summary><div class=\"dtk-faq-a\"><p>The Matilda connects to power and water. The Adda 10G comes fully assembled and connects to a drain and cold water. For the other models, the adviser will go through the connections with you.<\/p><\/div><\/details>\n      <details><summary><span>Why is there no price?<\/span><svg class=\"dtk-ic dtk-ic-plus\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M10 4v12M4 10h12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\/><\/svg><\/summary><div class=\"dtk-faq-a\"><p>Which pasteuriser suits you depends on the number of calves and the way you work, so a DairyTop adviser puts together a tailored quote.<\/p><\/div><\/details>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-contact\" id=\"contact\" aria-labelledby=\"contact-h\">\n  <div class=\"dtk-contact-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-adviseur.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-adviseur-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-adviseur.webp 1400w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1400\" height=\"934\" alt=\"DairyTop adviser in a barn, next to a cow at the feed barrier\" loading=\"lazy\" decoding=\"async\"><\/div>\n  <div class=\"dtk-contact-body\">\n    <h2 id=\"contact-h\">A pasteuriser for your farm?<\/h2>\n    <p>Tell us how many calves you have a year and how you handle colostrum now. We will advise you on the model and put together a tailored quote.<\/p>\n    <div class=\"dtk-actions\">\n      <a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"biest\">Request a quote<\/a>\n      <a class=\"dtk-link\" href=\"tel:+31593241712\"><svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M6.2 2.8l2 3.6-1.6 1.5a10 10 0 005.5 5.5l1.5-1.6 3.6 2-.8 2.9c-.2.6-.8 1-1.4.9C8.6 16.9 3.1 11.4 2.4 5c0-.6.3-1.2.9-1.4z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\/><\/svg><span>+31 (0)593 24 17 12<\/span><\/a>\n    <\/div>\n  <\/div>\n<\/section>\n\n<dialog class=\"dtk-quote\" aria-labelledby=\"q-title\" data-quote-dialog data-endpoint=\"\/wp-json\/dairytop\/v1\/offerte\">\n  <div class=\"dtk-q-shell\">\n    <aside class=\"dtk-q-panel\" aria-hidden=\"true\">\n      <img decoding=\"async\" class=\"dtk-q-panel-img\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp\" alt=\"\" width=\"640\" height=\"427\">\n      <div class=\"dtk-q-panel-copy\">\n        <p class=\"dtk-q-panel-k\">Quote or advice<\/p>\n        <p class=\"dtk-q-panel-t\" data-q-panel-title>Calf housing<\/p>\n        <ol class=\"dtk-q-panel-steps\">\n          <li>Tell us what you need, in as much or as little detail as you like<\/li>\n          <li>A DairyTop adviser gets in touch with you<\/li>\n          <li>You receive a quote, or we come and see you on the farm<\/li>\n        <\/ol>\n      <\/div>\n    <\/aside>\n    <form class=\"dtk-q-form\" novalidate data-q-form>\n      <div class=\"dtk-q-top\">\n        <p class=\"dtk-q-progress-t\" data-q-stepnum>Step 1 of 4<\/p>\n        <button type=\"button\" class=\"dtk-q-close\" data-q-close aria-label=\"Close form\"><svg viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M5 5l10 10M15 5L5 15\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"\/><\/svg><\/button>\n      <\/div>\n      <div class=\"dtk-q-progress\" aria-hidden=\"true\"><span data-q-bar><\/span><\/div>\n\n      <fieldset class=\"dtk-q-step\" data-q-step=\"1\">\n        <legend><span class=\"dtk-q-h\" id=\"q-title\" tabindex=\"-1\">How can we help?<\/span><\/legend>\n        <p class=\"dtk-q-label\">What would you like a quote or advice on?<\/p>\n        <div class=\"dtk-q-choices\">\n          <label class=\"dtk-q-choice\"><input type=\"radio\" name=\"systeem\" value=\"oks\"><span class=\"dtk-q-choice-box\"><span class=\"dtk-q-choice-t\">Optima Klima Calf Barn<\/span><span class=\"dtk-q-choice-s\">Outdoor barn, 6 to 8 calves per pen<\/span><\/span><\/label>\n          <label class=\"dtk-q-choice\"><input type=\"radio\" name=\"systeem\" value=\"quattro\"><span class=\"dtk-q-choice-box\"><span class=\"dtk-q-choice-t\">Quattro Calf Box XL<\/span><span class=\"dtk-q-choice-s\">Liftable unit with four lying spaces<\/span><\/span><\/label>\n          <label class=\"dtk-q-choice\"><input type=\"radio\" name=\"systeem\" value=\"biest\"><span class=\"dtk-q-choice-box\"><span class=\"dtk-q-choice-t\">Pasteurising colostrum<\/span><span class=\"dtk-q-choice-s\">Matilda or an Adda pasteuriser<\/span><\/span><\/label>\n          <label class=\"dtk-q-choice\"><input type=\"radio\" name=\"systeem\" value=\"voeding\"><span class=\"dtk-q-choice-box\"><span class=\"dtk-q-choice-t\">Calf nutrition<\/span><span class=\"dtk-q-choice-s\">Milk replacer, Dairy Pansen Pro or Dairy Calf TMR<\/span><\/span><\/label>\n          <label class=\"dtk-q-choice\"><input type=\"radio\" name=\"systeem\" value=\"maatwerk\"><span class=\"dtk-q-choice-box\"><span class=\"dtk-q-choice-t\">Made to measure, or something else<\/span><span class=\"dtk-q-choice-s\">A barn or fit-out built to measure<\/span><\/span><\/label>\n        <\/div>\n        <div class=\"dtk-q-sub\" data-q-sub=\"oks\" hidden>\n          <p class=\"dtk-q-label\">Which size?<\/p>\n          <div class=\"dtk-q-chips\"><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_oks\" value=\"Optima Klima Stal (OKS)\"><span>Optima Klima Stal (OKS), 14.0 m\u00b2<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_oks\" value=\"Optima Klima Stal Next Gen\"><span>Optima Klima Stal Next Gen, 15.3 m\u00b2<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_oks\" value=\"Optima Klima Stal XL\"><span>Optima Klima Stal XL, 18.3 m\u00b2<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_oks\" value=\"Weet ik nog niet\" checked><span>Not sure yet<\/span><\/label><\/div>\n        <\/div>\n        <div class=\"dtk-q-sub\" data-q-sub=\"quattro\" hidden>\n          <p class=\"dtk-q-label\">Which version?<\/p>\n          <div class=\"dtk-q-chips\"><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_quattro\" value=\"Zonder klapbodem\"><span>Without hinged floor<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_quattro\" value=\"Met klapbodem\"><span>With hinged floor<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_quattro\" value=\"Weet ik nog niet\" checked><span>Not sure yet<\/span><\/label><\/div>\n        <\/div>\n        <div class=\"dtk-q-sub\" data-q-sub=\"biest\" hidden>\n          <p class=\"dtk-q-label\">Which model?<\/p>\n          <div class=\"dtk-q-chips\"><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_biest\" value=\"Matilda\"><span>Matilda<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_biest\" value=\"Adda 10G\"><span>Adda 10G<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_biest\" value=\"Adda 30G\"><span>Adda 30G<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_biest\" value=\"Adda 60G\"><span>Adda 60G<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_biest\" value=\"Weet ik nog niet\" checked><span>Not sure yet<\/span><\/label><\/div>\n        <\/div>\n        <div class=\"dtk-q-sub\" data-q-sub=\"voeding\" hidden>\n          <p class=\"dtk-q-label\">About what?<\/p>\n          <div class=\"dtk-q-chips\"><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_voeding\" value=\"Melkpoeder\"><span>Milk replacer<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_voeding\" value=\"Dairy Pansen Pro\"><span>Dairy Pansen Pro<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_voeding\" value=\"Dairy Kalver TMR\"><span>Dairy Calf TMR<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"uitvoering_voeding\" value=\"Weet ik nog niet\" checked><span>Not sure yet<\/span><\/label><\/div>\n        <\/div>\n        <p class=\"dtk-q-label\">What would you prefer?<\/p>\n        <div class=\"dtk-q-chips\"><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"voorkeur\" value=\"Offerte\" checked><span>Send me a quote<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"voorkeur\" value=\"Bezoek\"><span>Have an adviser visit<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"voorkeur\" value=\"Terugbellen\"><span>Call me back<\/span><\/label><\/div>\n      <\/fieldset>\n\n      <fieldset class=\"dtk-q-step\" data-q-step=\"2\" hidden>\n        <legend><span class=\"dtk-q-h\" tabindex=\"-1\">Tell us about your situation<\/span><\/legend>\n        <p class=\"dtk-q-hint\">Everything on this step is optional. The more we know, the more specific our advice.<\/p>\n        <div class=\"dtk-q-grid\">\n          <label class=\"dtk-q-field\"><span>Number of calves<\/span><input type=\"number\" name=\"aantal\" min=\"1\" max=\"2000\" inputmode=\"numeric\" placeholder=\"For example 12\"><\/label>\n          <div class=\"dtk-q-field\" data-q-housing><span id=\"q-ruimte\">Available space in metres<\/span>\n            <div class=\"dtk-q-dims\" role=\"group\" aria-labelledby=\"q-ruimte\"><input type=\"text\" name=\"lengte\" inputmode=\"decimal\" pattern=\"[0-9]+([,.][0-9]+)?\" maxlength=\"8\" placeholder=\"Length\" aria-label=\"Length in metres\"><span aria-hidden=\"true\">\u00d7<\/span><input type=\"text\" name=\"breedte\" inputmode=\"decimal\" pattern=\"[0-9]+([,.][0-9]+)?\" maxlength=\"8\" placeholder=\"Width\" aria-label=\"Width in metres\"><\/div>\n          <\/div>\n        <\/div>\n        <p class=\"dtk-q-label\" data-q-housing>Where will the housing go?<\/p>\n        <div class=\"dtk-q-chips\" data-q-housing><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"plek\" value=\"Buiten\"><span>Outdoors<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"plek\" value=\"Binnen in een stal\"><span>Inside a barn<\/span><\/label><label class=\"dtk-q-chip\"><input type=\"radio\" name=\"plek\" value=\"Weet ik nog niet\" checked><span>Not sure yet<\/span><\/label><\/div>\n        <label class=\"dtk-q-field\"><span>When would you like to start using it?<\/span>\n          <select name=\"planning\"><option value=\"\">Please choose<\/option><option value=\"Zo snel mogelijk\">As soon as possible<\/option><option value=\"Binnen drie maanden\">Within three months<\/option><option value=\"Later dit jaar\">Later this year<\/option><option value=\"Ik ori\u00ebnteer me nog\">Just looking for now<\/option><\/select><\/label>\n        <label class=\"dtk-q-field\"><span>Your plans or other details<\/span><textarea name=\"toelichting\" rows=\"4\" maxlength=\"2000\" placeholder=\"For example: we want to replace our individual pens and keep calves outdoors in groups of six.\"><\/textarea><\/label>\n      <\/fieldset>\n\n      <fieldset class=\"dtk-q-step\" data-q-step=\"3\" hidden>\n        <legend><span class=\"dtk-q-h\" tabindex=\"-1\">Photos of your yard or barn<\/span><\/legend>\n        <p class=\"dtk-q-hint\">Optional. A few photos of the site help our adviser work out what suits you. Up to 6 photos, max. 10 MB each.<\/p>\n        <label class=\"dtk-q-drop\" data-q-drop>\n          <input type=\"file\" name=\"fotos\" accept=\"image\/jpeg,image\/png,image\/heic,image\/webp\" multiple data-q-files title=\"Choose photos\">\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 16l4.5-5 3.5 4 2.5-3L20 16M4 5h16v14H4z\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linejoin=\"round\"\/><\/svg>\n          <span class=\"dtk-q-drop-t\">Drag photos here or <u>choose files<\/u><\/span>\n          <span class=\"dtk-q-drop-s\">JPG, PNG, HEIC or WebP<\/span>\n        <\/label>\n        <p class=\"dtk-q-error\" data-q-file-error role=\"alert\" hidden><\/p>\n        <ul class=\"dtk-q-thumbs\" data-q-thumbs aria-label=\"Selected photos\"><\/ul>\n      <\/fieldset>\n\n      <fieldset class=\"dtk-q-step\" data-q-step=\"4\" hidden>\n        <legend><span class=\"dtk-q-h\" tabindex=\"-1\">How can we reach you?<\/span><\/legend>\n        <div class=\"dtk-q-grid\">\n          <label class=\"dtk-q-field\"><span>Name <abbr title=\"required\">*<\/abbr><\/span><input type=\"text\" name=\"naam\" autocomplete=\"name\" required maxlength=\"80\"><em class=\"dtk-q-err\" hidden>Please enter your name.<\/em><\/label>\n          <label class=\"dtk-q-field\"><span>Farm or company name<\/span><input type=\"text\" name=\"bedrijf\" autocomplete=\"organization\" maxlength=\"120\"><\/label>\n          <label class=\"dtk-q-field\"><span>Email address <abbr title=\"required\">*<\/abbr><\/span><input type=\"email\" name=\"email\" autocomplete=\"email\" required maxlength=\"120\"><em class=\"dtk-q-err\" hidden>Please enter a valid email address.<\/em><\/label>\n          <label class=\"dtk-q-field\"><span>Phone number <abbr title=\"required\">*<\/abbr><\/span><input type=\"tel\" name=\"telefoon\" autocomplete=\"tel\" required maxlength=\"30\"><em class=\"dtk-q-err\" hidden>Please enter your phone number.<\/em><\/label>\n          <label class=\"dtk-q-field\"><span>Postcode<\/span><input type=\"text\" name=\"postcode\" autocomplete=\"postal-code\" maxlength=\"12\"><\/label>\n          <label class=\"dtk-q-field\"><span>Town<\/span><input type=\"text\" name=\"plaats\" autocomplete=\"address-level2\" maxlength=\"80\"><\/label>\n        <\/div>\n        <label class=\"dtk-q-hp\" aria-hidden=\"true\">Leave this field empty<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n        <p class=\"dtk-q-privacy\">DairyTop B.V. uses your details and photos only to answer your request and keeps them no longer than necessary. You can read more in our <a href=\"https:\/\/dairytop.eu\/en\/important-information\/\">privacy statement<\/a>.<\/p>\n      <\/fieldset>\n\n      <div class=\"dtk-q-done\" data-q-done hidden tabindex=\"-1\">\n        <svg viewBox=\"0 0 48 48\" aria-hidden=\"true\"><circle cx=\"24\" cy=\"24\" r=\"22\" fill=\"#d9f1fc\"\/><path d=\"M14 25l7 7 13-15\" fill=\"none\" stroke=\"#1f3741\" stroke-width=\"3.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>\n        <p class=\"dtk-q-h\">Thank you, we have received your request<\/p>\n        <p>A DairyTop adviser will contact you as soon as possible. In a hurry? Call us on <a href=\"tel:+31593241712\">+31 (0)593 24 17 12<\/a>.<\/p>\n        <button type=\"button\" class=\"dtk-btn dtk-btn--dark\" data-q-close>Close<\/button>\n      <\/div>\n\n      <p class=\"dtk-q-error\" data-q-send-error role=\"alert\" hidden><\/p>\n      <div class=\"dtk-q-nav\" data-q-nav>\n        <button type=\"button\" class=\"dtk-q-back\" data-q-back hidden>Back<\/button>\n        <button type=\"button\" class=\"dtk-btn dtk-btn--dark\" data-q-next>Next<\/button>\n        <button type=\"submit\" class=\"dtk-btn\" data-q-submit hidden>Send request<\/button>\n      <\/div>\n    <\/form>\n  <\/div>\n  <template data-q-panels>{\"oks\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-front-2.webp\",\"title\":\"Optima Klima Calf Barn\"},\"quattro\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp\",\"title\":\"Quattro Calf Box XL\"},\"maatwerk\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-front.webp\",\"title\":\"Made to measure\"},\"advies\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp\",\"title\":\"Calf housing\"},\"biest\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pu-matilda.webp\",\"title\":\"Pasteurising colostrum\"},\"voeding\":{\"src\":\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/pro-elite-zak.webp\",\"title\":\"Calf nutrition\"}}<\/template>\n<\/dialog>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What do 10G, 30G and 60G mean?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The number is the capacity in US gallons: 10, 30 or 60 gallons. The Adda 10G has a 37 litre tank and the Adda 60G a 220 litre tank.\"}},{\"@type\":\"Question\",\"name\":\"Can I pasteurise colostrum in the Perfect Udder bag?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, with all four. The Matilda handles up to 8 litres of colostrum in bags at once, the Adda 30G up to eight 4 litre bags. The Adda 10G and 60G pasteurise or warm bags, and also loose colostrum or milk in the tank.\"}},{\"@type\":\"Question\",\"name\":\"What do I need to connect a pasteuriser?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The Matilda connects to power and water. The Adda 10G comes fully assembled and connects to a drain and cold water. For the other models, the adviser will go through the connections with you.\"}},{\"@type\":\"Question\",\"name\":\"Why is there no price?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Which pasteuriser suits you depends on the number of calves and the way you work, so a DairyTop adviser puts together a tailored quote.\"}}]}]}<\/script>\n<\/div>\n<script>\n(function () {\n  \/\/ Teksten in de taal van de pagina (lang op .dtk): nl, en of de.\n  var LANG = ((document.querySelector('.dtk[lang]') || document.documentElement).getAttribute('lang') || 'nl').slice(0, 2);\n  var TX = {\n    nl: { photoDrawings: 'Foto en tekeningen', photos: 'Foto\u2019s', close: 'Sluiten', prev: 'Vorige foto', next: 'Volgende foto', step: 'Stap {n} van {m}', remove: 'Verwijder {f}', notPhoto: '{f} is geen foto', tooBig: '{f} is groter dan 10 MB', max: \"maximaal {n} foto's\", notAdded: 'Niet toegevoegd: ', sent: 'Verstuurd', uploading: \"Foto's uploaden...\", sending: 'Versturen...', submit: 'Aanvraag versturen', failed: 'Versturen lukte niet. Probeer het opnieuw of bel ons.', tooMany: 'Te veel aanvragen in korte tijd. Bel ons gerust: +31 (0)593 24 17 12.', check: 'Controleer uw naam, e-mailadres en telefoonnummer.', photoCount: \"Maximaal 6 foto's per aanvraag.\", photoSize: 'Een foto is te groot. Kies een kleinere foto of laat hem weg.', photoType: 'Een bestand is geen foto (JPG, PNG, WebP of HEIC).', photoFailed: 'Een foto kon niet worden ge\u00fcpload. Probeer het opnieuw zonder die foto.' },\n    en: { photoDrawings: 'Photo and drawings', photos: 'Photos', close: 'Close', prev: 'Previous photo', next: 'Next photo', step: 'Step {n} of {m}', remove: 'Remove {f}', notPhoto: '{f} is not a photo', tooBig: '{f} is larger than 10 MB', max: 'no more than {n} photos', notAdded: 'Not added: ', sent: 'Sent', uploading: 'Uploading photos...', sending: 'Sending...', submit: 'Send request', failed: 'Your request could not be sent. Please try again or give us a call.', tooMany: 'Too many requests in a short time. Feel free to call us: +31 (0)593 24 17 12.', check: 'Please check your name, email address and phone number.', photoCount: 'No more than 6 photos per request.', photoSize: 'A photo is too large. Choose a smaller photo or leave it out.', photoType: 'A file is not a photo (JPG, PNG, WebP or HEIC).', photoFailed: 'A photo could not be uploaded. Please try again without that photo.' },\n    de: { photoDrawings: 'Foto und Zeichnungen', photos: 'Fotos', close: 'Schlie\u00dfen', prev: 'Vorheriges Foto', next: 'N\u00e4chstes Foto', step: 'Schritt {n} von {m}', remove: '{f} entfernen', notPhoto: '{f} ist kein Foto', tooBig: '{f} ist gr\u00f6\u00dfer als 10 MB', max: 'h\u00f6chstens {n} Fotos', notAdded: 'Nicht hinzugef\u00fcgt: ', sent: 'Gesendet', uploading: 'Fotos werden hochgeladen...', sending: 'Wird gesendet...', submit: 'Anfrage senden', failed: 'Die Anfrage konnte nicht gesendet werden. Bitte versuchen Sie es erneut oder rufen Sie uns an.', tooMany: 'Zu viele Anfragen in kurzer Zeit. Rufen Sie uns gerne an: +31 (0)593 24 17 12.', check: 'Bitte pr\u00fcfen Sie Ihren Namen, Ihre E-Mail-Adresse und Telefonnummer.', photoCount: 'H\u00f6chstens 6 Fotos pro Anfrage.', photoSize: 'Ein Foto ist zu gro\u00df. W\u00e4hlen Sie ein kleineres Foto oder lassen Sie es weg.', photoType: 'Eine Datei ist kein Foto (JPG, PNG, WebP oder HEIC).', photoFailed: 'Ein Foto konnte nicht hochgeladen werden. Bitte versuchen Sie es ohne dieses Foto erneut.' },\n  };\n  function tx(key, vars) {\n    var s = (TX[LANG] || TX.nl)[key];\n    for (var k in vars) s = s.replace('{' + k + '}', vars[k]);\n    return s;\n  }\n\n  \/\/ Mobile menu (only present in the version with header).\n  var burger = document.querySelector('.dtc-burger');\n  var nav = document.getElementById('dtc-nav');\n  if (burger && nav) {\n    burger.addEventListener('click', function () {\n      var open = nav.classList.toggle('is-open');\n      burger.setAttribute('aria-expanded', String(open));\n    });\n    document.addEventListener('keydown', function (e) {\n      if (e.key === 'Escape' && nav.classList.contains('is-open')) {\n        nav.classList.remove('is-open');\n        burger.setAttribute('aria-expanded', 'false');\n        burger.focus();\n      }\n    });\n    window.matchMedia('(min-width: 901px)').addEventListener('change', function (m) {\n      if (m.matches) { nav.classList.remove('is-open'); burger.setAttribute('aria-expanded', 'false'); }\n    });\n  }\n\n  \/\/ Quattro configurator: one unit, three layouts.\n  document.querySelectorAll('[data-config]').forEach(function (box) {\n    var buttons = box.querySelectorAll('[data-set]');\n    var outs = box.querySelectorAll('[data-out]');\n    buttons.forEach(function (b) {\n      b.addEventListener('click', function () {\n        var mode = b.getAttribute('data-set');\n        box.setAttribute('data-mode', mode);\n        buttons.forEach(function (x) { x.setAttribute('aria-pressed', String(x === b)); });\n        outs.forEach(function (o) { o.hidden = o.getAttribute('data-out') !== mode; });\n      });\n    });\n  });\n\n  \/\/ Carousel: prev\/next scroll by one card, disabled at the ends.\n  document.querySelectorAll('[data-carousel]').forEach(function (c) {\n    var track = c.querySelector('.dtk-carousel-track');\n    var btns = c.querySelectorAll('[data-dir]');\n    function update() {\n      var max = track.scrollWidth - track.clientWidth - 2;\n      btns[0].disabled = track.scrollLeft <= 2;\n      btns[1].disabled = track.scrollLeft >= max;\n      c.querySelector('.dtk-carousel-nav').hidden = max <= 0;\n    }\n    btns.forEach(function (b) {\n      b.addEventListener('click', function () {\n        var card = track.querySelector('.dtk-card');\n        var step = card ? card.getBoundingClientRect().width + parseFloat(getComputedStyle(track).columnGap || 0) : track.clientWidth;\n        track.scrollBy({ left: step * +b.getAttribute('data-dir'), behavior: 'smooth' });\n      });\n    });\n    track.addEventListener('scroll', update, { passive: true });\n    window.addEventListener('resize', update);\n    update();\n  });\n\n  \/\/ Photo slider: one photo in focus, arrows and counter, enlarge opens the lightbox.\n  document.querySelectorAll('[data-slider]').forEach(function (sl) {\n    var track = sl.querySelector('.dtk-slider-track');\n    var slides = sl.querySelectorAll('.dtk-slide');\n    var list = JSON.parse(sl.querySelector('template[data-all]').innerHTML);\n    var cur = sl.querySelector('[data-cur]'), cap = sl.querySelector('[data-cap]');\n    var i = 0, lock = null;\n    function go(n) {\n      i = (n + slides.length) % slides.length;\n      clearTimeout(lock); lock = setTimeout(function () { lock = null; }, 900);\n      track.scrollTo({ left: slides[i].offsetLeft - slides[0].offsetLeft, behavior: 'smooth' });\n      set(i);\n    }\n    function set(n) {\n      i = n; cur.textContent = n + 1; cap.textContent = list[n][1];\n      slides.forEach(function (s, k) { s.classList.toggle('is-current', k === n); });\n    }\n    sl.querySelectorAll('[data-step]').forEach(function (b) {\n      b.addEventListener('click', function () { go(i + (+b.getAttribute('data-step'))); });\n    });\n    \/\/ A clicked (or focused) photo becomes the current one.\n    sl.querySelectorAll('.dtk-slide-btn').forEach(function (b, k) {\n      b.addEventListener('click', function () { if (k !== i) go(k); });\n    });\n    \/\/ Current photo follows the scroll position (swipe, trackpad, restored scroll on reload).\n    function sync() {\n      var x = track.scrollLeft, best = 0, d = Infinity;\n      slides.forEach(function (s, k) { var dd = Math.abs(s.offsetLeft - slides[0].offsetLeft - x); if (dd < d) { d = dd; best = k; } });\n      \/\/ At the end of the track the last slides cannot scroll to the start; keep the chosen one.\n      var atEnd = x >= track.scrollWidth - track.clientWidth - 2;\n      if (atEnd && i > best) return;\n      set(best);\n    }\n    var t;\n    track.addEventListener('scroll', function () {\n      if (lock) return;\n      clearTimeout(t);\n      t = setTimeout(sync, 80);\n    }, { passive: true });\n    set(0);\n    requestAnimationFrame(sync);\n    window.addEventListener('load', sync);\n  });\n\n  \/\/ Veegcarrousels op mobiel (modelhok, klapbodemstappen, opbouw): teller onder de rij.\n  \/\/ Op desktop staat de rij als grid en is de teller verborgen (CSS).\n  document.querySelectorAll('.dtk-mrow-left, .dtk-steps--swipe').forEach(function (row) {\n    var items = row.matches('.dtk-mrow-left') ? row.querySelectorAll('.dtk-mrow-media, .dtk-draw') : row.children;\n    items = Array.prototype.slice.call(items);\n    if (items.length < 2) return;\n    var count = document.createElement('p');\n    count.className = 'dtk-swipe-count';\n    count.setAttribute('aria-hidden', 'true');\n    count.innerHTML = '<b>1<\/b> \/ ' + items.length;\n    row.insertAdjacentElement('afterend', count);\n    var cur = count.querySelector('b');\n    function sync() {\n      var pad = parseFloat(getComputedStyle(row).paddingLeft) || 0;\n      var left = row.getBoundingClientRect().left + pad, best = 0, d = Infinity;\n      items.forEach(function (el, k) { var dd = Math.abs(el.getBoundingClientRect().left - left); if (dd < d) { d = dd; best = k; } });\n      \/\/ Aan het eind komen de laatste items niet meer tegen de rand; dan telt het laatste.\n      if (row.scrollLeft > 0 && row.scrollLeft >= row.scrollWidth - row.clientWidth - 2) best = items.length - 1;\n      cur.textContent = best + 1;\n    }\n    var t;\n    row.addEventListener('scroll', function () { clearTimeout(t); t = setTimeout(sync, 60); }, { passive: true });\n    window.addEventListener('resize', sync);\n  });\n\n  \/\/ Galleries (photo sliders) share one native <dialog> lightbox.\n  \/\/ Keuzehulp: \u00e9\u00e9n vraag tegelijk, daarna punten optellen en de top drie tonen (weging in _finder.mjs).\n  document.querySelectorAll('[data-finder]').forEach(function (f) {\n    var qs = Array.prototype.slice.call(f.querySelectorAll('[data-finder-q]'));\n    var quiz = f.querySelector('[data-finder-quiz]'), result = f.querySelector('[data-finder-result]');\n    var stepEl = f.querySelector('[data-finder-step]'), bar = f.querySelector('[data-finder-bar]'), back = f.querySelector('[data-finder-back]');\n    var list = f.querySelector('[data-finder-list]'), cards = Array.prototype.slice.call(list.children);\n    var of = f.getAttribute('data-of'), answers = {}, cur = 0;\n    function show(i, focus) {\n      cur = i;\n      qs.forEach(function (q, k) { q.hidden = k !== i; });\n      stepEl.textContent = of.replace('{n}', i + 1).replace('{m}', qs.length);\n      bar.style.width = ((i + 1) \/ qs.length * 100) + '%';\n      back.hidden = i === 0;\n      if (focus) qs[i].querySelector('.dtk-find-qt').focus();\n    }\n    function finish() {\n      var scored = cards.map(function (c, order) {\n        var s = JSON.parse(c.getAttribute('data-score')), pts = 0;\n        Object.keys(answers).forEach(function (q) { pts += s[q + ':' + answers[q]] || 0; });\n        return { c: c, pts: pts, order: order, group: c.getAttribute('data-group') };\n      }).sort(function (a, b) { return b.pts - a.pts || a.order - b.order; });\n      var top = [], seen = {};\n      scored.forEach(function (x) {\n        if (top.length >= 3 || x.pts <= 0 || (top.length && x.pts < top[0].pts \/ 2)) return;\n        if (x.group) { if (seen[x.group]) return; seen[x.group] = true; }\n        top.push(x);\n      });\n      if (!top.length) top.push(scored[0]);\n      cards.forEach(function (c) { c.hidden = true; });\n      top.forEach(function (x, k) {\n        list.appendChild(x.c);\n        x.c.hidden = false;\n        x.c.querySelector('.dtk-find-best').hidden = k !== 0;\n        var any = false;\n        x.c.querySelectorAll('[data-reason]').forEach(function (li) {\n          var p = li.getAttribute('data-reason').split(':');\n          li.hidden = answers[p[0]] !== p[1];\n          if (!li.hidden) any = true;\n        });\n        x.c.querySelector('.dtk-find-why').hidden = !any;\n      });\n      quiz.hidden = true; result.hidden = false;\n      result.querySelector('[data-finder-result-h]').focus();\n    }\n    qs.forEach(function (q, i) {\n      q.querySelectorAll('[data-answer]').forEach(function (b) {\n        b.addEventListener('click', function () {\n          q.querySelectorAll('[data-answer]').forEach(function (o) { o.setAttribute('aria-pressed', String(o === b)); });\n          answers[q.getAttribute('data-finder-q')] = b.getAttribute('data-answer');\n          if (i < qs.length - 1) show(i + 1, true); else finish();\n        });\n      });\n    });\n    back.addEventListener('click', function () { if (cur > 0) show(cur - 1, true); });\n    f.querySelector('[data-finder-restart]').addEventListener('click', function () {\n      answers = {};\n      f.querySelectorAll('[data-answer]').forEach(function (o) { o.setAttribute('aria-pressed', 'false'); });\n      result.hidden = true; quiz.hidden = false;\n      show(0, true);\n    });\n  });\n\n  document.querySelectorAll('[data-gallery]').forEach(function (g) {\n    var list = JSON.parse(g.querySelector('template[data-all]').innerHTML);\n    var dlg = document.createElement('dialog');\n    dlg.className = 'dtk-lightbox';\n    dlg.setAttribute('aria-label', list.some(function (x) { return x[0].charAt(0) === '#'; }) ? tx('photoDrawings') : tx('photos'));\n    dlg.innerHTML = '<div class=\"dtk-lightbox-inner\"><button type=\"button\" class=\"dtk-lb-close\" aria-label=\"' + tx('close') + '\">' + tx('close') + '<\/button>' +\n      '<button type=\"button\" class=\"dtk-lb-nav dtk-lb-prev\" data-step=\"-1\" aria-label=\"' + tx('prev') + '\">\\u2190<\/button>' +\n      '<figure><figcaption><\/figcaption><p class=\"dtk-lb-count\" aria-live=\"polite\"><\/p><\/figure>' +\n      '<button type=\"button\" class=\"dtk-lb-nav dtk-lb-next\" data-step=\"1\" aria-label=\"' + tx('next') + '\">\\u2192<\/button><\/div>';\n    (g.closest('.dtk') || document.body).appendChild(dlg);\n    var im = null, pic = null, cap = dlg.querySelector('figcaption'), count = dlg.querySelector('.dtk-lb-count');\n    var i = 0, opener = null;\n    if (list.length < 2) dlg.querySelectorAll('.dtk-lb-nav').forEach(function (b) { b.hidden = true; });\n    function show(n) {\n      i = (n + list.length) % list.length;\n      var src = list[i][0];\n      if (src.charAt(0) === '#') {\n        \/\/ Tekening: kopie van de SVG op de pagina, zonder id's (die staan al in het document).\n        var svg = document.querySelector(src + ' svg');\n        if (!pic) { pic = document.createElement('div'); pic.className = 'dtk-lb-draw'; cap.parentNode.insertBefore(pic, cap); }\n        var copy = svg.cloneNode(true);\n        copy.querySelectorAll('[id]').forEach(function (el) { el.removeAttribute('id'); });\n        copy.removeAttribute('aria-labelledby');\n        copy.setAttribute('aria-label', list[i][1]);\n        pic.replaceChildren(copy);\n        pic.hidden = false;\n        if (im) im.hidden = true;\n      } else {\n        if (!im) { im = document.createElement('img'); cap.parentNode.insertBefore(im, cap); }\n        im.src = src; im.alt = list[i][1]; im.hidden = false;\n        if (pic) pic.hidden = true;\n      }\n      cap.textContent = list[i][1];\n      count.textContent = (i + 1) + ' \/ ' + list.length;\n    }\n    g.querySelectorAll('[data-index]').forEach(function (btn) {\n      btn.addEventListener('click', function () {\n        opener = btn; show(+btn.getAttribute('data-index')); dlg.showModal();\n      });\n    });\n    dlg.querySelectorAll('[data-step]').forEach(function (b) {\n      b.addEventListener('click', function () { show(i + (+b.getAttribute('data-step'))); });\n    });\n    dlg.querySelector('.dtk-lb-close').addEventListener('click', function () { dlg.close(); });\n    dlg.addEventListener('click', function (e) { if (e.target === dlg || e.target.classList.contains('dtk-lightbox-inner')) dlg.close(); });\n    dlg.addEventListener('keydown', function (e) {\n      if (e.key === 'ArrowRight') show(i + 1);\n      if (e.key === 'ArrowLeft') show(i - 1);\n    });\n    dlg.addEventListener('close', function () { if (opener) opener.focus({ preventScroll: true }); });\n  });\n\n  \/\/ Kalfassistent (homepage), in chatvorm: de vraag komt als bericht in het gesprek, het antwoord is het best\n  \/\/ passende antwoord uit de veelgestelde vragen met een link naar het hele antwoord. Geen server, geen taalmodel:\n  \/\/ tekst normaliseren, synoniemen in drie talen, punten optellen.\n  document.querySelectorAll('[data-assist]').forEach(function (box) {\n    var input = box.querySelector('[data-assist-input]'), log = box.querySelector('[data-chat-log]');\n    var tpl = box.querySelector('template[data-assist-index]');\n    var arrow = '<svg class=\"dtk-ic\" viewBox=\"0 0 20 20\" aria-hidden=\"true\"><path d=\"M4 10h11m-4.5-5L15 10l-4.5 5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg>';\n    function norm(s) { return s.toLowerCase().normalize('NFD').replace(\/[\u0300-\u036f]\/g, '').replace(\/[^a-z0-9]+\/g, ' ').trim(); }\n    var items = Array.prototype.map.call(tpl.content.querySelectorAll('article'), function (a) {\n      var l = a.querySelector('a');\n      var it = { q: a.querySelector('h3').textContent, a: a.querySelector('p').textContent, href: l.getAttribute('href'), label: '' };\n      it.wq = norm(it.q).split(' '); it.wa = norm(it.a).split(' '); it.wt = norm((a.getAttribute('data-terms') || '') + ' ' + it.label).split(' ');\n      return it;\n    });\n    var STOP = ('de het een en of van in op te is ik mijn wat hoe hoeveel welke wanneer waar waarom kan kunnen moet ook met voor bij aan er dat die u uw hij zijn heb nodig ' +\n      'the a an and or of in on to is i my what how many much which when where why can do does with for at it that you your need ' +\n      'der das ein eine und oder von auf zu ist mein meine was wie viel viele wieviel welche welcher wann wo warum kann konnen mit fur bei es dass sie ihr ihre brauche').split(' ');\n    var SYN = [['biest', 'biestmelk', 'colostrum', 'kolostrum', 'biestmilch'], ['kalf', 'kalveren', 'calf', 'calves', 'kalb', 'kalber'],\n      ['groep', 'groepen', 'groepshuisvesting', 'group', 'groups', 'gruppe', 'gruppen'], ['eenling', 'eenlingbox', 'eenlingboxen', 'individual', 'einzel', 'einzelbox', 'einzelboxen'],\n      ['pasteur', 'pasteuriseren', 'pasteuriseerder', 'pasteuriser', 'pasteurise', 'pasteurisierer', 'pasteurisieren'], ['zak', 'zakken', 'bag', 'bags', 'beutel'],\n      ['stal', 'barn', 'stall'], ['uitmesten', 'mest', 'mesten', 'muck', 'mucking', 'ausmisten', 'misten', 'ausmisten'], ['shovel', 'loader', 'hoflader'], ['duobox', 'duoboxen', 'duohok', 'pair', 'doppelbox'],\n      ['klapbodem', 'hinged', 'klappboden'], ['kwaliteit', 'quality', 'qualitat', 'brix', 'refractometer', 'refraktometer'], ['afdeling', 'afdelingen', 'pen', 'pens', 'bucht', 'buchten'],\n      ['melkpoeder', 'kunstmelk', 'replacer', 'milchaustauscher', 'milchpulver'], ['diarree', 'scours', 'diarrhoea', 'durchfall'], ['krachtvoer', 'kalverbrok', 'brok', 'concentrate', 'concentrates', 'pellet', 'kraftfutter']];\n    \/\/ Een woord past bij een zoekterm als het begin overeenkomt (kalveren ~ kalver, beurzen ~ beurs).\n    function hit(words, term) {\n      var stem = term.length > 5 ? term.slice(0, term.length - 2) : term;\n      for (var i = 0; i < words.length; i++) { var w = words[i]; if (w === term || (term.length >= 4 && (w.indexOf(stem) === 0 || term.indexOf(w) === 0 && w.length >= Math.max(4, term.length - 2)))) return true; }\n      return false;\n    }\n    function variants(term) {\n      var out = [term];\n      SYN.forEach(function (g) { if (g.some(function (x) { return hit([x], term) || hit([term], x); })) out = out.concat(g); });\n      return out;\n    }\n    function search(query) {\n      var terms = norm(query).split(' ').filter(function (w) { return w.length > 1 && STOP.indexOf(w) < 0; });\n      if (!terms.length) return null;\n      return items.map(function (it) {\n        var score = 0;\n        terms.forEach(function (term) {\n          var v = variants(term), best = 0;\n          v.forEach(function (x) { if (hit(it.wq, x)) best = Math.max(best, 3); else if (hit(it.wt, x)) best = Math.max(best, 2); else if (hit(it.wa, x)) best = Math.max(best, 1); });\n          score += best;\n        });\n        return { it: it, score: score };\n      }).filter(function (r) { return r.score > 0; }).sort(function (a, b) { return b.score - a.score || a.it.q.length - b.it.q.length; }) \/\/ gelijk: de gerichtste (kortste) vraag eerst\n        .filter(function (r, i, all) { return r.score * 2 >= all[0].score; }).slice(0, 6); \/\/ zwakke treffers weg\n    }\n    function el(tag, cls, text) { var e = document.createElement(tag); if (cls) e.className = cls; if (text != null) e.textContent = text; return e; }\n    function msg(kind) {\n      var li = el('div', 'dtk-msg dtk-msg--' + kind);\n      li.appendChild(el('span', 'dtk-msg-who', log.getAttribute(kind === 'you' ? 'data-you' : 'data-bot')));\n      log.appendChild(li);\n      return li;\n    }\n    function link(href, text) { var a = el('a', 'dtk-link', text + ' '); a.href = href; a.insertAdjacentHTML('beforeend', arrow); return a; }\n    function ask(q) {\n      q = q.trim(); if (!q) return;\n      var you = msg('you'); you.appendChild(el('p', null, q));\n      var r = search(q) || [], bot = msg('bot');\n      if (!r.length) {\n        bot.appendChild(el('p', null, log.getAttribute('data-none')));\n        var help = box.querySelector('.dtk-assist-help');\n        if (help) { var row = el('p', 'dtk-msg-links'); Array.prototype.forEach.call(help.querySelectorAll('a'), function (a, k) { if (k < 2) row.appendChild(a.cloneNode(true)); }); bot.appendChild(row); }\n      } else {\n        bot.appendChild(el('p', 'dtk-msg-lead', log.getAttribute('data-found')));\n        bot.appendChild(el('p', 'dtk-msg-q', r[0].it.q));\n        bot.appendChild(el('p', null, r[0].it.a));\n        bot.appendChild(link(r[0].it.href, log.getAttribute('data-read')));\n        if (r.length > 1) {\n          bot.appendChild(el('p', 'dtk-msg-lead', log.getAttribute('data-related')));\n          var ul = el('ul', 'dtk-msg-more');\n          r.slice(1, 3).forEach(function (x) { var li = el('li'); li.appendChild(link(x.it.href, x.it.q)); ul.appendChild(li); });\n          bot.appendChild(ul);\n        }\n      }\n      \/\/ Alleen het gesprek scrollt (niet de pagina): de vraag bovenaan in beeld, het antwoord eronder.\n      log.scrollTop += you.getBoundingClientRect().top - log.getBoundingClientRect().top - 8;\n    }\n    box.querySelector('[data-assist-form]').addEventListener('submit', function (e) { e.preventDefault(); ask(input.value); input.value = ''; input.focus({ preventScroll: true }); });\n    box.querySelectorAll('[data-assist-chip]').forEach(function (b) {\n      b.addEventListener('click', function () { ask(b.getAttribute('data-assist-chip')); });\n    });\n  });\n\n  \/\/ Veelgestelde vragen: een link naar #v-... opent die vraag en scrolt ernaartoe.\n  function openFaq() {\n    var id = decodeURIComponent(location.hash.slice(1)); if (!\/^v-\/.test(id)) return;\n    var d = document.getElementById(id); if (d && d.tagName === 'DETAILS') { d.open = true; d.scrollIntoView({ block: 'start' }); }\n  }\n  openFaq(); window.addEventListener('hashchange', openFaq);\n\n  \/\/ Bedrijfsvideo: de YouTube-speler komt pas na een klik in de pagina (youtube-nocookie) en gaat weg bij sluiten.\n  var vd = document.querySelector('[data-video-dialog]');\n  if (vd) {\n    var vframe = vd.querySelector('[data-video-frame]'), vOpener = null;\n    document.querySelectorAll('[data-video]').forEach(function (b) {\n      b.addEventListener('click', function () {\n        var f = document.createElement('iframe');\n        f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + encodeURIComponent(b.getAttribute('data-video')) + '?autoplay=1&rel=0';\n        f.title = vd.getAttribute('aria-label');\n        f.allow = 'autoplay; encrypted-media; picture-in-picture; fullscreen';\n        f.setAttribute('allowfullscreen', '');\n        vframe.replaceChildren(f);\n        vOpener = b;\n        vd.showModal();\n      });\n    });\n    vd.querySelector('[data-video-close]').addEventListener('click', function () { vd.close(); });\n    vd.addEventListener('click', function (e) { if (e.target === vd) vd.close(); });\n    vd.addEventListener('close', function () { vframe.replaceChildren(); if (vOpener) vOpener.focus({ preventScroll: true }); });\n  }\n\n  \/\/ Beursagenda: voorbije beurzen weg; is er niets meer over, dan het hele blok.\n  document.querySelectorAll('[data-fair-end]').forEach(function (li) {\n    var today = new Date().toISOString().slice(0, 10);\n    if (li.getAttribute('data-fair-end') < today) li.hidden = true;\n  });\n  document.querySelectorAll('.dtk-fairs').forEach(function (ol) {\n    if (!ol.querySelector('li:not([hidden])')) ol.closest('section').hidden = true;\n  });\n\n  \/\/ Offerte-popup in stappen. Elk element met data-quote opent hem, met de keuze al ingevuld.\n  var qd = document.querySelector('[data-quote-dialog]');\n  if (qd) {\n    var form = qd.querySelector('[data-q-form]');\n    var steps = qd.querySelectorAll('[data-q-step]');\n    var panels = JSON.parse(qd.querySelector('template[data-q-panels]').innerHTML);\n    var pImg = qd.querySelector('.dtk-q-panel-img'), pTitle = qd.querySelector('[data-q-panel-title]');\n    var bar = qd.querySelector('[data-q-bar]'), num = qd.querySelector('[data-q-stepnum]');\n    var back = qd.querySelector('[data-q-back]'), next = qd.querySelector('[data-q-next]'), submit = qd.querySelector('[data-q-submit]');\n    var done = qd.querySelector('[data-q-done]'), qNav = qd.querySelector('[data-q-nav]');\n    var fileInput = qd.querySelector('[data-q-files]'), thumbs = qd.querySelector('[data-q-thumbs]'), fileErr = qd.querySelector('[data-q-file-error]');\n    var files = [], step = 1, qOpener = null, openedAt = 0, sending = false;\n    \/\/ Verzendadres (WordPress-plugin DairyTop Offerte). Zonder data-endpoint is dit de preview: er gaat niets weg.\n    var endpoint = qd.getAttribute('data-endpoint');\n    var sendErr = qd.querySelector('[data-q-send-error]');\n    var MAX_FILES = 6, MAX_BYTES = 10 * 1024 * 1024;\n\n    function panel(key) {\n      var p = panels[key] || panels.advies;\n      pImg.src = p.src; pTitle.textContent = p.title;\n    }\n    function show(n, focus) {\n      step = n;\n      steps.forEach(function (f) { f.hidden = +f.getAttribute('data-q-step') !== n; });\n      num.textContent = tx('step', { n: n, m: steps.length });\n      bar.style.width = (n \/ steps.length * 100) + '%';\n      back.hidden = n === 1;\n      next.hidden = n === steps.length;\n      submit.hidden = n !== steps.length;\n      if (focus !== false) { var h = qd.querySelector('[data-q-step=\"' + n + '\"] .dtk-q-h'); if (h) h.focus(); }\n    }\n    function syncSystem() {\n      var v = (form.querySelector('input[name=\"systeem\"]:checked') || {}).value;\n      qd.querySelectorAll('[data-q-sub]').forEach(function (s) { s.hidden = s.getAttribute('data-q-sub') !== v; });\n      \/\/ Ruimte en buiten\/binnen gaan over huisvesting; bij biest en voeding vragen we ze niet.\n      qd.querySelectorAll('[data-q-housing]').forEach(function (el) { el.hidden = v === 'biest' || v === 'voeding'; });\n      panel(v || 'advies');\n    }\n    function reset() {\n      form.reset(); files = []; renderFiles(); fileErr.hidden = true;\n      qd.querySelectorAll('.dtk-q-err').forEach(function (e) { e.hidden = true; });\n      qd.querySelectorAll('[aria-invalid]').forEach(function (e) { e.removeAttribute('aria-invalid'); });\n      done.hidden = true; qNav.hidden = false; form.classList.remove('is-done');\n      if (sendErr) sendErr.hidden = true;\n    }\n    function open(trigger) {\n      reset();\n      var sys = trigger.getAttribute('data-quote');\n      var model = trigger.getAttribute('data-model');\n      var intent = trigger.getAttribute('data-intent');\n      if (sys && sys !== 'advies') { var r = form.querySelector('input[name=\"systeem\"][value=\"' + sys + '\"]'); if (r) r.checked = true; }\n      if (model) { var m = form.querySelector('input[name^=\"uitvoering_\"][value=\"' + model + '\"]'); if (m) m.checked = true; }\n      if (intent) { var it = form.querySelector('input[name=\"voorkeur\"][value=\"' + intent + '\"]'); if (it) it.checked = true; }\n      syncSystem();\n      qOpener = trigger;\n      openedAt = Date.now();\n      qd.showModal();\n      show(1);\n    }\n    document.addEventListener('click', function (e) {\n      var t = e.target.closest('[data-quote]');\n      if (!t) return;\n      e.preventDefault();\n      open(t);\n    });\n    form.addEventListener('change', function (e) { if (e.target.name === 'systeem') syncSystem(); });\n    next.addEventListener('click', function () { show(Math.min(step + 1, steps.length)); });\n    back.addEventListener('click', function () { show(Math.max(step - 1, 1)); });\n    qd.querySelectorAll('[data-q-close]').forEach(function (b) { b.addEventListener('click', function () { qd.close(); }); });\n    qd.addEventListener('close', function () { if (qOpener) qOpener.focus({ preventScroll: true }); });\n    qd.addEventListener('click', function (e) { if (e.target === qd) qd.close(); });\n    \/\/ Enter in een veld gaat naar de volgende stap in plaats van direct te versturen.\n    form.addEventListener('keydown', function (e) {\n      if (e.key === 'Enter' && e.target.tagName === 'INPUT' && step < steps.length) { e.preventDefault(); show(step + 1); }\n    });\n\n    \/\/ Foto's: type en grootte in de browser; de server controleert opnieuw.\n    function renderFiles() {\n      thumbs.innerHTML = '';\n      files.forEach(function (f, k) {\n        var li = document.createElement('li');\n        var im = document.createElement('img'); im.alt = f.name; im.src = URL.createObjectURL(f);\n        im.onload = function () { URL.revokeObjectURL(im.src); };\n        var rm = document.createElement('button'); rm.type = 'button'; rm.className = 'dtk-q-thumb-rm';\n        rm.setAttribute('aria-label', tx('remove', { f: f.name })); rm.textContent = '\u00d7';\n        rm.addEventListener('click', function () { files.splice(k, 1); renderFiles(); });\n        li.appendChild(im); li.appendChild(rm); thumbs.appendChild(li);\n      });\n    }\n    function addFiles(list) {\n      var msg = [];\n      Array.prototype.forEach.call(list, function (f) {\n        if (!\/^image\\\/(jpeg|png|webp|heic|heif)$\/.test(f.type) && !\/\\.(heic|heif)$\/i.test(f.name)) { msg.push(tx('notPhoto', { f: f.name })); return; }\n        if (f.size > MAX_BYTES) { msg.push(tx('tooBig', { f: f.name })); return; }\n        if (files.length >= MAX_FILES) { msg.push(tx('max', { n: MAX_FILES })); return; }\n        files.push(f);\n      });\n      fileErr.hidden = !msg.length; fileErr.textContent = msg.length ? tx('notAdded') + msg.filter(function (m, k, a) { return a.indexOf(m) === k; }).join(', ') + '.' : '';\n      renderFiles(); fileInput.value = '';\n    }\n    fileInput.addEventListener('change', function () { addFiles(fileInput.files); });\n    var drop = qd.querySelector('[data-q-drop]');\n    ['dragenter', 'dragover'].forEach(function (ev) { drop.addEventListener(ev, function (e) { e.preventDefault(); drop.classList.add('is-over'); }); });\n    ['dragleave', 'drop'].forEach(function (ev) { drop.addEventListener(ev, function (e) { e.preventDefault(); drop.classList.remove('is-over'); }); });\n    drop.addEventListener('drop', function (e) { if (e.dataTransfer) addFiles(e.dataTransfer.files); });\n\n    form.addEventListener('submit', function (e) {\n      e.preventDefault();\n      var first = null;\n      [['naam', function (v) { return v.trim().length > 1; }], ['email', function (v) { return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v.trim()); }], ['telefoon', function (v) { return v.replace(\/\\D\/g, '').length >= 8; }]].forEach(function (c) {\n        var el = form.elements[c[0]], ok = c[1](el.value), err = el.parentNode.querySelector('.dtk-q-err');\n        err.hidden = ok; if (ok) el.removeAttribute('aria-invalid'); else { el.setAttribute('aria-invalid', 'true'); first = first || el; }\n      });\n      if (first) { first.focus(); return; }\n      if (!endpoint) { finish(); return; } \/\/ preview: niets versturen\n      if (sending) return;\n      sending = true; submit.disabled = true; submit.textContent = files.length ? tx('uploading') : tx('sending');\n      if (sendErr) sendErr.hidden = true;\n      Promise.all(files.map(shrink)).then(function (photos) {\n        var fd = new FormData(form);\n        fd.delete('fotos');\n        photos.forEach(function (f) { fd.append('fotos[]', f, f.name); });\n        fd.append('taal', LANG);\n        fd.append('bron', location.href.split('#')[0]);\n        fd.append('invultijd', String(Date.now() - openedAt));\n        submit.textContent = tx('sending');\n        return fetch(endpoint, { method: 'POST', body: fd, credentials: 'same-origin' });\n      }).then(function (res) {\n        return res.json().catch(function () { return {}; }).then(function (j) {\n          if (!res.ok || !j.ok) throw new Error(res.status === 413 ? tx('photoSize') : (j.code && (TX[LANG] || TX.nl)[j.code]) || tx('failed'));\n        });\n      }).then(finish, function (err) {\n        if (sendErr) { sendErr.textContent = (err && err.message) || tx('failed'); sendErr.hidden = false; sendErr.scrollIntoView({ block: 'nearest' }); }\n      }).then(function () { sending = false; submit.disabled = false; submit.textContent = tx('submit'); });\n    });\n    function finish() {\n      steps.forEach(function (f) { f.hidden = true; });\n      qNav.hidden = true; form.classList.add('is-done'); done.hidden = false; done.focus();\n      bar.style.width = '100%'; num.textContent = tx('sent');\n    }\n    \/\/ Foto's altijd opnieuw coderen in de browser (lange zijde max 2400 px, JPEG 0,82): kleinere upload binnen de\n    \/\/ PHP-limieten, HEIC leesbaar als de browser hem kan openen, en EXIF (GPS-locatie, tijdstip, toestel) eraf,\n    \/\/ want een canvas neemt geen metadata mee. Kan de browser het beeld niet openen, dan bij JPEG de\n    \/\/ metadatablokken eruit (stripJpeg); alleen een ander type dat niet te openen is gaat ongewijzigd.\n    function shrink(f) {\n      var MAX = 2400;\n      if (!\/^image\\\/(jpeg|png|webp|heic|heif)$\/.test(f.type)) return Promise.resolve(f);\n      return decode(f).then(function (img) {\n        var w = img.width || img.naturalWidth, h = img.height || img.naturalHeight;\n        var k = Math.min(1, MAX \/ Math.max(w, h));\n        var c = document.createElement('canvas');\n        c.width = Math.round(w * k); c.height = Math.round(h * k);\n        var g = c.getContext('2d'); g.fillStyle = '#fff'; g.fillRect(0, 0, c.width, c.height); g.drawImage(img, 0, 0, c.width, c.height);\n        if (img.close) img.close();\n        return new Promise(function (r, x) { c.toBlob(function (b) { b ? r(new File([b], f.name.replace(\/\\.[^.]+$\/, '') + '.jpg', { type: 'image\/jpeg' })) : x(); }, 'image\/jpeg', 0.82); });\n      }).catch(function () { return f.type === 'image\/jpeg' ? stripJpeg(f) : f; });\n    }\n    function decode(f) {\n      var viaImg = function () {\n        return new Promise(function (r, x) {\n          var u = URL.createObjectURL(f), im = new Image();\n          im.onload = function () { URL.revokeObjectURL(u); im.naturalWidth ? r(im) : x(); };\n          im.onerror = function () { URL.revokeObjectURL(u); x(); };\n          im.src = u;\n        });\n      };\n      return window.createImageBitmap ? createImageBitmap(f).catch(viaImg) : viaImg();\n    }\n    \/\/ JPEG zonder persoonlijke metadata: APP1 (EXIF met GPS, XMP), APP13 (IPTC) en commentaar weg. Kleurprofiel\n    \/\/ (APP2) en Adobe-blok (APP14) blijven, die bepalen de kleuren; de beelddata blijft ongewijzigd.\n    function stripJpeg(f) {\n      return f.arrayBuffer().then(function (buf) {\n        var d = new Uint8Array(buf), parts = [d.subarray(0, 2)], i = 2;\n        if (d[0] !== 0xFF || d[1] !== 0xD8) return f;\n        while (i + 4 <= d.length && d[i] === 0xFF) {\n          var m = d[i + 1];\n          if (m === 0xDA) break; \/\/ begin beelddata\n          var end = i + 2 + ((d[i + 2] << 8) | d[i + 3]);\n          if (m !== 0xE1 && m !== 0xED && m !== 0xFE) parts.push(d.subarray(i, end));\n          i = end;\n        }\n        parts.push(d.subarray(i));\n        return new File(parts, f.name, { type: 'image\/jpeg' });\n      }).catch(function () { return f; });\n    }\n  }\n})();\n(function () {\n  \/\/ Live prijzen bij de shopkaarten (Kalvervoeding) uit de WooCommerce Store API. De prijs staat bewust niet in de HTML:\n  \/\/ die wijzigt in WooCommerce. Geen antwoord = het vak blijft leeg, de kaart werkt gewoon.\n  var grid = document.querySelector('[data-prices]');\n  if (!grid || !window.fetch) return;\n  var ids = [];\n  grid.querySelectorAll('[data-price]').forEach(function (s) { ids.push(s.getAttribute('data-price')); });\n  if (!ids.length) return;\n  var lang = grid.getAttribute('data-lang') || 'nl';\n  var tag = { nl: 'nl-NL', en: 'en-GB', de: 'de-DE' }[lang] || 'nl-NL';\n  var src = grid.getAttribute('data-prices') + '?per_page=' + ids.length + '&include=' + ids.join(',') + (lang !== 'nl' ? '&lang=' + lang : '');\n  fetch(src, { credentials: 'omit' }).then(function (r) { return r.ok ? r.json() : []; }).then(function (list) {\n    (Array.isArray(list) ? list : []).forEach(function (p) {\n      var pr = p && p.prices, el = pr && grid.querySelector('[data-price=\"' + Number(p.id) + '\"]');\n      if (!el) return;\n      var amount = Number(pr.price_range ? pr.price_range.min_amount : pr.price) \/ Math.pow(10, pr.currency_minor_unit || 2);\n      if (!(amount > 0)) return;\n      el.textContent = (pr.price_range ? grid.getAttribute('data-from') + ' ' : '') + new Intl.NumberFormat(tag, { style: 'currency', currency: pr.currency_code || 'EUR' }).format(amount);\n      var small = document.createElement('small');\n      small.textContent = grid.getAttribute('data-excl');\n      el.appendChild(small);\n    });\n  }).catch(function () {});\n})();\n\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Home Colostrum management Pasteurisers Pasteurising colostrum Pasteurisers From the compact Matilda to the Adda 60G with its 220 litre tank. They heat the colostrum to the right temperature, hold it there for the right time and stir it meanwhile. Compare the modelsRequest a quote Four models On quotation Which pasteuriser suits your farm? The main [&hellip;]<\/p>\n","protected":false},"author":584,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"unboxed","site-sidebar-style":"unboxed","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-12472","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pasteurisers | DairyTop<\/title>\n<meta name=\"description\" content=\"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dairytop.eu\/en\/pasteurisers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pasteurisers | DairyTop\" \/>\n<meta property=\"og:description\" content=\"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dairytop.eu\/en\/pasteurisers\/\" \/>\n<meta property=\"og:site_name\" content=\"Dairytop\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-15T18:19:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/\",\"name\":\"Pasteurisers | DairyTop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/bm-matilda-stal.webp\",\"datePublished\":\"2026-10-15T09:26:44+00:00\",\"dateModified\":\"2026-10-15T18:19:53+00:00\",\"description\":\"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/bm-matilda-stal.webp\",\"contentUrl\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/bm-matilda-stal.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/en\\\/pasteurisers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pasteurisers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#website\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/\",\"name\":\"DairyTop\",\"description\":\"Uw specialist in Kalveropfok\",\"publisher\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/dairytop.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#organization\",\"name\":\"DairyTop\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/cropped-DairyTop-logo-large-1-1-1.png\",\"contentUrl\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2025\\\/10\\\/cropped-DairyTop-logo-large-1-1-1.png\",\"width\":143,\"height\":119,\"caption\":\"DairyTop\"},\"image\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pasteurisers | DairyTop","description":"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/dairytop.eu\/en\/pasteurisers\/","og_locale":"en_US","og_type":"article","og_title":"Pasteurisers | DairyTop","og_description":"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.","og_url":"https:\/\/dairytop.eu\/en\/pasteurisers\/","og_site_name":"Dairytop","article_modified_time":"2026-10-15T18:19:53+00:00","og_image":[{"url":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/","url":"https:\/\/dairytop.eu\/en\/pasteurisers\/","name":"Pasteurisers | DairyTop","isPartOf":{"@id":"https:\/\/dairytop.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/#primaryimage"},"image":{"@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/#primaryimage"},"thumbnailUrl":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp","datePublished":"2026-10-15T09:26:44+00:00","dateModified":"2026-10-15T18:19:53+00:00","description":"Pasteurising colostrum with Perfect Udder: Matilda and Adda 10G, 30G and 60G compared. On quotation, with advice from DairyTop.","breadcrumb":{"@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dairytop.eu\/en\/pasteurisers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/#primaryimage","url":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp","contentUrl":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/bm-matilda-stal.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/dairytop.eu\/en\/pasteurisers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dairytop.eu\/de\/"},{"@type":"ListItem","position":2,"name":"Pasteurisers"}]},{"@type":"WebSite","@id":"https:\/\/dairytop.eu\/#website","url":"https:\/\/dairytop.eu\/","name":"DairyTop","description":"Uw specialist in Kalveropfok","publisher":{"@id":"https:\/\/dairytop.eu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dairytop.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/dairytop.eu\/#organization","name":"DairyTop","url":"https:\/\/dairytop.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dairytop.eu\/#\/schema\/logo\/image\/","url":"https:\/\/dairytop.eu\/wp-content\/uploads\/2025\/10\/cropped-DairyTop-logo-large-1-1-1.png","contentUrl":"https:\/\/dairytop.eu\/wp-content\/uploads\/2025\/10\/cropped-DairyTop-logo-large-1-1-1.png","width":143,"height":119,"caption":"DairyTop"},"image":{"@id":"https:\/\/dairytop.eu\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages\/12472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/users\/584"}],"replies":[{"embeddable":true,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/comments?post=12472"}],"version-history":[{"count":13,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages\/12472\/revisions"}],"predecessor-version":[{"id":12779,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages\/12472\/revisions\/12779"}],"wp:attachment":[{"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/media?parent=12472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}