{"id":7649,"date":"2026-02-24T14:36:21","date_gmt":"2026-02-24T13:36:21","guid":{"rendered":"https:\/\/dairytop.eu\/calf-housing\/"},"modified":"2026-10-16T17:05:26","modified_gmt":"2026-10-16T15:05:26","slug":"calf-housing","status":"publish","type":"page","link":"https:\/\/dairytop.eu\/en\/calf-housing\/","title":{"rendered":"Calf housing"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7649\" class=\"elementor elementor-7649 elementor-7555\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-65d75c8 elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"65d75c8\" 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-baa8f94\" data-id=\"baa8f94\" 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-98c406e elementor-widget elementor-widget-html\" data-id=\"98c406e\" 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\/calf-housing\/ (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); }\nhtml body .dtk-bags { width: 100%; min-width: 560px; border-collapse: collapse; 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-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); }\nhtml body .dtk-cats a { display: grid; grid-template-rows: auto auto 1fr auto; height: 100%; 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); }\nhtml body .dtk-cats-img { display: grid; place-items: center; aspect-ratio: 4 \/ 3; margin-bottom: 12px; }\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 { font-size: 1rem; hyphens: auto; overflow-wrap: break-word; } }\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 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\/oksng-rij.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp 2200w\" sizes=\"100vw\" width=\"2200\" height=\"1467\" alt=\"A long row of Optima Klima calf barns with calves at the feed barrier, under a blue sky\" 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><span aria-current=\"page\">Calf housing<\/span><\/li><\/ol><\/nav>\n    <div class=\"dtk-hero-copy\">\n      \n      <h1>Calf housing<\/h1>\n      <p class=\"dtk-lead\">DairyTop offers a wide range of calf housing, for newborn calves and for calves that are ready to be kept in groups. Everything you need to rear your calves healthily and with their welfare in mind.<\/p>\n      <div class=\"dtk-actions\"><a class=\"dtk-btn\" href=\"#systemen\">See the systems<\/a><a class=\"dtk-btn dtk-btn--ghost\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"advies\">Tailored advice<\/a><\/div>\n    <\/div>\n  <\/div>\n<\/header>\n\n<section class=\"dtk-section\" aria-labelledby=\"alle-h\">\n  <div class=\"dtk-wrap\">\n    <div class=\"dtk-head\">\n      <h2 id=\"alle-h\">All calf housing<\/h2>\n      <p>Browse all categories, or jump straight to the system you are looking for.<\/p>\n    <\/div>\n    <div class=\"dtk-carousel\" data-carousel>\n  <div class=\"dtk-carousel-nav\">\n    <button type=\"button\" class=\"dtk-carousel-btn\" data-dir=\"-1\" aria-controls=\"alle-cat\" aria-label=\"Previous categories\"><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-dir=\"1\" aria-controls=\"alle-cat\" aria-label=\"Next categories\"><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  <ul class=\"dtk-carousel-track\" id=\"alle-cat\" aria-label=\"Calf housing categories\">\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-front.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-front-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-front.webp 1200w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1200\" height=\"792\" alt=\"Calf pen on wheels with front gate, milk bucket and two blue feed bowls\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Individual housing<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><\/span>\n      <span class=\"dtk-card-d\">For the first weeks of life, when calves are kept on their own.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/group-housing\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen.webp 1000w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1000\" height=\"662\" alt=\"Indoor group pens with feed barriers and troughs along a feed alley\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Group housing<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><\/span>\n      <span class=\"dtk-card-d\">Small groups of similar age, from around the second week of life.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp 1800w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1800\" height=\"1200\" alt=\"Calves at the feed barrier of an Optima Klima calf barn\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Optima Klima Calf Barn<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><\/span>\n      <span class=\"dtk-card-d\">Permanent outdoor barn with pens for 6 to 8 calves, in three sizes.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp 1800w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1800\" height=\"1201\" alt=\"Quattro Calf Box XL with hinged floor, lifted by a loader\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Quattro Calf Box XL<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><\/span>\n      <span class=\"dtk-card-d\">Liftable unit with four lying spaces, also available with a hinged floor.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/calfotel\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/co-hybrid.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/co-hybrid-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/co-hybrid.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1600\" height=\"1067\" alt=\"Two CalfOTel Hybrid calf hutches with an open front, outdoors in a yard\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">CalfOTel<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><\/span>\n      <span class=\"dtk-card-d\">Calf hutches for one calf or a group, known for their good climate and low workload.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/product-category\/hay-racks\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/hooiruif-combifeeder.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/hooiruif-combifeeder-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/hooiruif-combifeeder.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1600\" height=\"1199\" alt=\"A farmer opens the combi feeder on the side of a CalfOTel XL calf hutch with calves inside\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Hay racks<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><\/span>\n      <span class=\"dtk-card-d\">Hay racks and combi feeders for individual pens and groups.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"https:\/\/dairytop.eu\/en\/product-category\/feeding-troughs\/\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-kalf-trog.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-kalf-trog-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-kalf-trog.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1600\" height=\"1067\" alt=\"Calf eating from a brown feed trough at the feed barrier\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Feed troughs<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><\/span>\n      <span class=\"dtk-card-d\">Including the 800, 1600 and 2000 feed troughs.<\/span>\n    <\/a><\/li>\n    <li class=\"dtk-card\"><a href=\"#maatwerk\">\n      <span class=\"dtk-card-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 80vw\" width=\"1600\" height=\"1067\" alt=\"Newly built calf barn with numbered pens\" loading=\"lazy\" decoding=\"async\"><\/span>\n      <span class=\"dtk-card-t\">Made to measure<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><\/span>\n      <span class=\"dtk-card-d\">A calf barn that fits your space and your farm.<\/span>\n    <\/a><\/li>\n  <\/ul>\n<\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section dtk-section--tint\" aria-labelledby=\"fase-h\">\n  <div class=\"dtk-wrap\">\n    <div class=\"dtk-head\">\n      <p class=\"dtk-kicker\">From the first week to group housing<\/p>\n      <h2 id=\"fase-h\">Which housing suits the age of your calf?<\/h2>\n      <p>A calf needs something different at every stage. Choose by age below, or go straight to a system.<\/p>\n    <\/div>\n    <ol class=\"dtk-stages\">\n      <li class=\"dtk-stage\">\n        <div class=\"dtk-stage-media\"><img loading=\"lazy\" class=\"dtk-calf dtk-calf--zittend\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/kalf-borstligging.webp\" width=\"900\" height=\"540\" alt=\"Young black and white calf lying on its chest with its head up\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-stage-body\">\n        <p class=\"dtk-stage-when\">The first weeks of life<\/p>\n        <h3>On its own, and well protected<\/h3>\n        <p>In the first weeks of life a calf\u2019s immune system is not yet strong, so calves are kept on their own.<\/p>\n        <div class=\"dtk-stage-links\">\n          <a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\"><span>Individual housing<\/span><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>\n          <a href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\"><span>Quattro Calf Box XL <small>as four individual pens<\/small><\/span><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>\n        <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"dtk-stage\">\n        <div class=\"dtk-stage-media\"><img loading=\"lazy\" class=\"dtk-calf dtk-calf--groepje\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/kalf-groepje.webp\" width=\"900\" height=\"520\" alt=\"Three young black and white calves standing side by side\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-stage-body\">\n        <p class=\"dtk-stage-when\">From around the second week<\/p>\n        <h3>Together in a small group<\/h3>\n        <p>From around the second week of life, calves can be kept in small groups of similar age. This is good for their welfare and social behaviour.<\/p>\n        <div class=\"dtk-stage-links\">\n          <a href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\"><span>Quattro Calf Box XL <small>as pair pens or a group of four<\/small><\/span><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>\n          <a href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/\"><span>Optima Klima Calf Barn <small>three sizes<\/small><\/span><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>\n          <a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/group-housing\/\"><span>Group housing<\/span><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>\n        <\/div>\n        <\/div>\n      <\/li>\n      <li class=\"dtk-stage\">\n        <div class=\"dtk-stage-media\"><img loading=\"lazy\" class=\"dtk-calf dtk-calf--groep\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/kalf-groep.webp\" width=\"900\" height=\"563\" alt=\"A group of black and white calves a few months old\" loading=\"lazy\" decoding=\"async\"><\/div>\n        <div class=\"dtk-stage-body\">\n        <p class=\"dtk-stage-when\">Up to 4 months<\/p>\n        <h3>Outdoors, in a pen of their own<\/h3>\n        <p>A permanent barn with pens, fresh air and a front gate that opens for mucking out.<\/p>\n        <div class=\"dtk-stage-links\">\n          <a href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#m-optima-klima-stal-xl\"><span>Optima Klima Stal XL<\/span><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>\n        <\/div>\n        <\/div>\n      <\/li>\n    <\/ol>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section\" id=\"keuzehulp\" aria-labelledby=\"kh-h\">\n  <div class=\"dtk-wrap dtk-finder\" data-finder data-of=\"Question {n} of {m}\">\n    <div class=\"dtk-head\">\n      <p class=\"dtk-kicker\">Product finder<\/p>\n      <h2 id=\"kh-h\">Which housing suits your farm?<\/h2>\n      <p>Answer five short questions and see which systems suit you best.<\/p>\n    <\/div>\n    <div class=\"dtk-find-quiz\" data-finder-quiz>\n      <div class=\"dtk-find-top\">\n        <p class=\"dtk-find-step\" data-finder-step aria-live=\"polite\">Question 1 of 5<\/p>\n        <button type=\"button\" class=\"dtk-find-back\" data-finder-back hidden>Previous question<\/button>\n      <\/div>\n      <div class=\"dtk-find-bar\" aria-hidden=\"true\"><span data-finder-bar style=\"width: 20.00%\"><\/span><\/div>\n      <fieldset class=\"dtk-find-q\" data-finder-q=\"fase\">\n        <legend><span class=\"dtk-find-qt\" tabindex=\"-1\">How old are the calves?<\/span><\/legend>\n        <div class=\"dtk-find-answers\"><button type=\"button\" data-answer=\"eerst\" aria-pressed=\"false\">First weeks of life<\/button><button type=\"button\" data-answer=\"tweede\" aria-pressed=\"false\">From about two weeks<\/button><button type=\"button\" data-answer=\"ouder\" aria-pressed=\"false\">Up to four months<\/button><button type=\"button\" data-answer=\"alle\" aria-pressed=\"false\">From birth to group<\/button><\/div>\n      <\/fieldset>\n      <fieldset class=\"dtk-find-q\" data-finder-q=\"aantal\" hidden>\n        <legend><span class=\"dtk-find-qt\" tabindex=\"-1\">How many calves do you want to house at once?<\/span><\/legend>\n        <div class=\"dtk-find-answers\"><button type=\"button\" data-answer=\"klein\" aria-pressed=\"false\">1 to 4<\/button><button type=\"button\" data-answer=\"middel\" aria-pressed=\"false\">5 to 12<\/button><button type=\"button\" data-answer=\"groot\" aria-pressed=\"false\">More than 12<\/button><\/div>\n      <\/fieldset>\n      <fieldset class=\"dtk-find-q\" data-finder-q=\"plek\" hidden>\n        <legend><span class=\"dtk-find-qt\" tabindex=\"-1\">Where will the housing go?<\/span><\/legend>\n        <div class=\"dtk-find-answers\"><button type=\"button\" data-answer=\"buiten\" aria-pressed=\"false\">Outdoors<\/button><button type=\"button\" data-answer=\"binnen\" aria-pressed=\"false\">Inside a barn<\/button><button type=\"button\" data-answer=\"weetniet\" aria-pressed=\"false\">Not sure yet<\/button><\/div>\n      <\/fieldset>\n      <fieldset class=\"dtk-find-q\" data-finder-q=\"mest\" hidden>\n        <legend><span class=\"dtk-find-qt\" tabindex=\"-1\">How do you prefer to muck out?<\/span><\/legend>\n        <div class=\"dtk-find-answers\"><button type=\"button\" data-answer=\"shovel\" aria-pressed=\"false\">With a loader<\/button><button type=\"button\" data-answer=\"hand\" aria-pressed=\"false\">By hand<\/button><button type=\"button\" data-answer=\"egaal\" aria-pressed=\"false\">No preference<\/button><\/div>\n      <\/fieldset>\n      <fieldset class=\"dtk-find-q\" data-finder-q=\"plaats\" hidden>\n        <legend><span class=\"dtk-find-qt\" tabindex=\"-1\">Should the housing be movable?<\/span><\/legend>\n        <div class=\"dtk-find-answers\"><button type=\"button\" data-answer=\"ja\" aria-pressed=\"false\">Yes, movable<\/button><button type=\"button\" data-answer=\"nee\" aria-pressed=\"false\">No, a fixed spot<\/button><button type=\"button\" data-answer=\"egaal\" aria-pressed=\"false\">No preference<\/button><\/div>\n      <\/fieldset>\n    <\/div>\n    <div class=\"dtk-find-result\" data-finder-result hidden>\n      <div class=\"dtk-find-result-head\">\n        <h3 tabindex=\"-1\" data-finder-result-h>These suit your answers<\/h3>\n        <button type=\"button\" class=\"dtk-find-back\" data-finder-restart>Start again<\/button>\n      <\/div>\n      <ol class=\"dtk-find-list\" data-finder-list>\n        <li class=\"dtk-find-card\" data-product=\"quattro\" data-score='{\"fase:eerst\":3,\"fase:tweede\":2,\"fase:alle\":3,\"aantal:klein\":3,\"aantal:middel\":1,\"plek:binnen\":2,\"mest:hand\":1,\"plaats:ja\":3}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qxl-front.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qxl-front-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qxl-front.webp 2200w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"2200\" height=\"1467\" alt=\"Quattro Calf Box XL in a barn\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\">Quattro Calf Box XL<\/a><\/h4>\n            <p>Liftable unit with four lying spaces: four individual pens, two pair pens or one group of four. You move it with a loader.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:eerst\" hidden>First weeks of life<\/li><li data-reason=\"fase:tweede\" hidden>From about two weeks<\/li><li data-reason=\"fase:alle\" hidden>From birth to group<\/li><li data-reason=\"aantal:klein\" hidden>1 to 4<\/li><li data-reason=\"plek:binnen\" hidden>Inside a barn<\/li><li data-reason=\"plaats:ja\" hidden>Yes, movable<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"quattro\" data-model=\"Zonder klapbodem\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"quattro-klap\" data-score='{\"fase:eerst\":3,\"fase:tweede\":2,\"fase:alle\":3,\"aantal:klein\":3,\"aantal:middel\":1,\"plek:binnen\":2,\"mest:shovel\":3,\"plaats:ja\":3}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/#klapbodem\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp 1800w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"1800\" height=\"1201\" alt=\"Quattro Calf Box XL with hinged floor on a loader\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/#klapbodem\">Quattro Calf Box XL with hinged floor<\/a><\/h4>\n            <p>The same unit with four lying spaces. You muck out by lifting it with a loader and opening the floor.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:eerst\" hidden>First weeks of life<\/li><li data-reason=\"fase:tweede\" hidden>From about two weeks<\/li><li data-reason=\"fase:alle\" hidden>From birth to group<\/li><li data-reason=\"aantal:klein\" hidden>1 to 4<\/li><li data-reason=\"plek:binnen\" hidden>Inside a barn<\/li><li data-reason=\"mest:shovel\" hidden>With a loader<\/li><li data-reason=\"plaats:ja\" hidden>Yes, movable<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/#klapbodem\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"quattro\" data-model=\"Met klapbodem\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"oks\" data-group=\"oks\" data-score='{\"fase:tweede\":3,\"fase:ouder\":2,\"fase:alle\":2,\"aantal:middel\":3,\"aantal:groot\":3,\"plek:buiten\":3,\"plek:binnen\":-10,\"mest:shovel\":2,\"plaats:nee\":3,\"plaats:ja\":-10}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#maten\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp 1800w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"1800\" height=\"1200\" alt=\"Calves at the feed barrier of an Optima Klima calf barn\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#maten\">Optima Klima Calf Barn<\/a><\/h4>\n            <p>Permanent outdoor barn on concrete with pens for 6 to 8 calves, in three sizes. The front gate opens so you can muck out with a loader.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:tweede\" hidden>From about two weeks<\/li><li data-reason=\"fase:ouder\" hidden>Up to four months<\/li><li data-reason=\"fase:alle\" hidden>From birth to group<\/li><li data-reason=\"aantal:middel\" hidden>5 to 12<\/li><li data-reason=\"aantal:groot\" hidden>More than 12<\/li><li data-reason=\"plek:buiten\" hidden>Outdoors<\/li><li data-reason=\"mest:shovel\" hidden>With a loader<\/li><li data-reason=\"plaats:nee\" hidden>No, a fixed spot<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#maten\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"oks\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"oks-xl\" data-group=\"oks\" data-score='{\"fase:ouder\":4,\"aantal:middel\":3,\"aantal:groot\":3,\"plek:buiten\":3,\"plek:binnen\":-10,\"mest:shovel\":2,\"plaats:nee\":3,\"plaats:ja\":-10}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#m-optima-klima-stal-xl\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-buiten.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-buiten-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-buiten.webp 2200w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"2200\" height=\"1467\" alt=\"Optima Klima Stal XL\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#m-optima-klima-stal-xl\">Optima Klima Stal XL<\/a><\/h4>\n            <p>The most spacious pen in the Optima Klima Calf Barn range, 18.3\u00a0m\u00b2, for groups of calves up to four months.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:ouder\" hidden>Up to four months<\/li><li data-reason=\"aantal:middel\" hidden>5 to 12<\/li><li data-reason=\"aantal:groot\" hidden>More than 12<\/li><li data-reason=\"plek:buiten\" hidden>Outdoors<\/li><li data-reason=\"mest:shovel\" hidden>With a loader<\/li><li data-reason=\"plaats:nee\" hidden>No, a fixed spot<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/#m-optima-klima-stal-xl\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"oks\" data-model=\"Optima Klima Stal XL\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"eenling\" data-score='{\"fase:eerst\":3,\"aantal:klein\":2,\"plek:binnen\":3,\"plek:buiten\":-10,\"mest:hand\":2,\"plaats:ja\":3}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"1600\" height=\"1067\" alt=\"Calf pen on wheels with buckets on the front gate\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\">Calf pens on wheels<\/a><\/h4>\n            <p>Individual pens with solid plastic walls on a galvanised frame. The large wheels make the pen easy to move, and the floor plate is removable.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:eerst\" hidden>First weeks of life<\/li><li data-reason=\"aantal:klein\" hidden>1 to 4<\/li><li data-reason=\"plek:binnen\" hidden>Inside a barn<\/li><li data-reason=\"mest:hand\" hidden>By hand<\/li><li data-reason=\"plaats:ja\" hidden>Yes, movable<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"advies\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"groep\" data-score='{\"fase:tweede\":3,\"fase:ouder\":2,\"aantal:middel\":2,\"aantal:groot\":2,\"plek:binnen\":3,\"plek:buiten\":-10,\"mest:hand\":1,\"plaats:nee\":2}' hidden>\n          <a class=\"dtk-find-media\" href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/group-housing\/\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/groep-binnen.webp 1000w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"1000\" height=\"662\" alt=\"Indoor group pens with feed barriers and troughs\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/group-housing\/\">Group housing<\/a><\/h4>\n            <p>Group pens for inside the barn, for small groups of calves from around the second week of life.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:tweede\" hidden>From about two weeks<\/li><li data-reason=\"fase:ouder\" hidden>Up to four months<\/li><li data-reason=\"aantal:middel\" hidden>5 to 12<\/li><li data-reason=\"aantal:groot\" hidden>More than 12<\/li><li data-reason=\"plek:binnen\" hidden>Inside a barn<\/li><li data-reason=\"plaats:nee\" hidden>No, a fixed spot<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/group-housing\/\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"advies\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n        <li class=\"dtk-find-card\" data-product=\"maatwerk\" data-score='{\"fase:alle\":2,\"aantal:groot\":3,\"plek:binnen\":1,\"plaats:nee\":2}' hidden>\n          <a class=\"dtk-find-media\" href=\"#maatwerk\" tabindex=\"-1\" aria-hidden=\"true\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-nummers.webp 1600w\" sizes=\"auto, (min-width: 1000px) 30vw, 90vw\" width=\"1600\" height=\"1067\" alt=\"Newly built calf barn with numbered pens\" loading=\"lazy\" decoding=\"async\"><\/a>\n          <div class=\"dtk-find-body\">\n            <p class=\"dtk-find-best\" hidden>Best match<\/p>\n            <h4><a href=\"#maatwerk\">Made to measure<\/a><\/h4>\n            <p>A calf barn built to fit your space, indoors or outdoors. Our project specialists are happy to visit you.<\/p>\n            <div class=\"dtk-find-why\"><span>Fits<\/span><ul><li data-reason=\"fase:alle\" hidden>From birth to group<\/li><li data-reason=\"aantal:groot\" hidden>More than 12<\/li><li data-reason=\"plaats:nee\" hidden>No, a fixed spot<\/li><\/ul><\/div>\n            <div class=\"dtk-find-actions\"><a class=\"dtk-link\" href=\"#maatwerk\">View <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-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"maatwerk\">Request a quote<\/a><\/div>\n          <\/div>\n        <\/li>\n      <\/ol>\n      <p class=\"dtk-find-note\">This is a first pointer. A DairyTop adviser is happy to look at your situation with you. <a href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"advies\">Ask for advice<\/a><\/p>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section dtk-section--tint\" id=\"systemen\" aria-labelledby=\"sys-h\">\n  <div class=\"dtk-wrap\"><div class=\"dtk-head\">\n    <p class=\"dtk-kicker\">Optima Klima, Quattro and calf pens on wheels<\/p>\n    <h2 id=\"sys-h\">Three systems in more detail<\/h2>\n  <\/div><\/div>\n\n  <article class=\"dtk-feature\" aria-labelledby=\"f-oks\">\n    <div class=\"dtk-feature-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij-2.webp 1800w\" sizes=\"auto, (min-width: 900px) 55vw, 100vw\" width=\"1800\" height=\"1200\" alt=\"Calves eating at the feed barrier of an Optima Klima calf barn\" loading=\"lazy\" decoding=\"async\"><\/div>\n    <div class=\"dtk-feature-body\">\n      <p class=\"dtk-feature-tag\">Outdoor group housing<\/p>\n      <h3 id=\"f-oks\">Optima Klima Calf Barn<\/h3>\n      <p>The Optima Klima Stal gives your calves an excellent environment to grow well, with very good air quality and easy access to feed and water.<\/p>\n      <ul class=\"dtk-checks\">\n        <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><strong>Sturdy plastic panels<\/strong>, UV and acid resistant, 50 mm thick<\/span><\/li>\n        <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><strong>Insulated roof<\/strong> of sandwich panels, for a good climate all year round<\/span><\/li>\n        <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><strong>6 to 8 calves<\/strong> per pen, in three sizes<\/span><\/li>\n      <\/ul>\n      <a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/optima-klima-barn\/\">See the Optima Klima Calf Barn <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>\n    <\/div>\n  <\/article>\n\n  <article class=\"dtk-feature dtk-feature--flip\" aria-labelledby=\"f-q\">\n    <div class=\"dtk-feature-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/qk-hoog.webp 1800w\" sizes=\"auto, (min-width: 900px) 55vw, 100vw\" width=\"1800\" height=\"1201\" alt=\"The Quattro Calf Box XL lifted by a loader, with the hinged floor hanging open\" loading=\"lazy\" decoding=\"async\"><\/div>\n    <div class=\"dtk-feature-body\">\n      <p class=\"dtk-feature-tag\">Individual, pair or group<\/p>\n      <h3 id=\"f-q\">Quattro Calf Box XL<\/h3>\n      <p>A liftable calf unit with four lying spaces. Calves are housed individually or in a small group, and the unit grows with them: you simply take out the partitions.<\/p>\n      <ul class=\"dtk-checks\">\n        <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><strong>One unit, three layouts<\/strong>: four individual pens, two pair pens or one group of four<\/span><\/li>\n        <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><strong>Optional hinged floor<\/strong>: lift the unit, open the floor, and the pen is mucked out<\/span><\/li>\n        <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><strong>Insulated roof<\/strong> of sandwich panels<\/span><\/li>\n      <\/ul>\n      <a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/quattro-calf-hutch-xl\/\">See the Quattro Calf Box XL <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>\n    <\/div>\n  <\/article>\n\n  <article class=\"dtk-feature\" aria-labelledby=\"f-een\">\n    <div class=\"dtk-feature-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/eenling-wielen.webp 1600w\" sizes=\"auto, (min-width: 900px) 55vw, 100vw\" width=\"1600\" height=\"1067\" alt=\"A farm worker moves a calf pen on wheels, with buckets and feed bowls on the front gate\" loading=\"lazy\" decoding=\"async\"><\/div>\n    <div class=\"dtk-feature-body\">\n      <p class=\"dtk-feature-tag\">Individual housing<\/p>\n      <h3 id=\"f-een\">Calf pens on wheels<\/h3>\n      <p>Individual calf pens with solid plastic side walls on a fully galvanised frame. The large wheels make the pen easy to move, and the step-in height is only 20 cm.<\/p>\n      <ul class=\"dtk-checks\">\n        <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><strong>Solid plastic walls<\/strong> without trim strips, so easy to clean<\/span><\/li>\n        <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><strong>Sturdy swivel castors with brakes<\/strong> and a removable plastic floor plate<\/span><\/li>\n        <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><strong>Bucket holder, feed bowl and teat bucket holder included<\/strong> on the galvanised front gate<\/span><\/li>\n      <\/ul>\n      <a class=\"dtk-link\" href=\"https:\/\/dairytop.eu\/en\/product-category\/calf-housing\/individual-housing\/\">See individual housing <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>\n    <\/div>\n  <\/article>\n<\/section>\n\n<section class=\"dtk-section\" id=\"maatwerk\" aria-labelledby=\"maat-h\">\n  <div class=\"dtk-wrap dtk-split dtk-split--flip\">\n    <div class=\"dtk-split-media\"><img loading=\"lazy\" src=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-front.webp\" srcset=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-front-640.webp 640w, https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksxl-front.webp 1800w\" sizes=\"auto, (min-width: 900px) 50vw, 100vw\" width=\"1800\" height=\"1201\" alt=\"Newly built calf barn with pens, front gates and feed troughs\" loading=\"lazy\" decoding=\"async\"><\/div>\n    <div>\n      <p class=\"dtk-kicker\">Made to measure<\/p>\n      <h2 id=\"maat-h\">No two barns are the same<\/h2>\n      <p class=\"dtk-mt\">DairyTop specialises in made-to-measure projects, indoors and outdoors. We can fit out almost any space with plastic panels to create the calf barn you have in mind.<\/p>\n      <p>We work with you from the first design right through to handover. Our project specialists are happy to visit you to talk through your plans.<\/p>\n      <div class=\"dtk-actions dtk-mt-l\"><a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"maatwerk\" data-intent=\"Bezoek\">Arrange a visit<\/a><a class=\"dtk-btn dtk-btn--outline\" href=\"https:\/\/dairytop.eu\/en\/contact\/\">Get in touch<\/a><\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"dtk-section dtk-section--tint 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 calf housing<\/h2>\n      <p>Can\u2019t find your question? Our advisers will be glad to help.<\/p>\n    <\/div>\n    <div class=\"dtk-faq-list\">\n      <details><summary><span>When can calves go into a group?<\/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>From around the second week of life, calves can be kept in small groups of similar age. This is good for their welfare and for their social behaviour as herd animals. In the first weeks of life their immune system is not yet strong, so they are kept on their own.<\/p><\/div><\/details>\n      <details><summary><span>What is the difference between the Optima Klima Calf Barn and the Quattro Calf Box XL?<\/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 Optima Klima Calf Barn is a permanent barn on a concrete base, made up of pens for 6 to 8 calves, and you can extend it as far as you like. The Quattro Calf Box XL is a liftable unit with four lying spaces that you use as individual pens, pair pens or one group pen for four calves.<\/p><\/div><\/details>\n      <details><summary><span>Can DairyTop build a calf barn to measure?<\/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. DairyTop specialises in made-to-measure projects, indoors and outdoors. We can fit out almost any space with plastic panels to create the calf barn you have in mind. Our project specialists are happy to visit you to talk it through.<\/p><\/div><\/details>\n      <details><summary><span>Which housing suits my farm?<\/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>That depends on the number of calves, the age at which you group them and the space you have in your yard or barn. Our advisers are happy to help you decide: call <a href=\"tel:+31593241712\">+31 (0)593 24 17 12<\/a> or <a href=\"https:\/\/dairytop.eu\/en\/contact\/\">get in touch<\/a>.<\/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\">Advice on calf housing<\/h2>\n    <p>Questions about the right calf housing for your farm, individual or group? Just get in touch. We are happy to give you independent advice on every system.<\/p>\n    <div class=\"dtk-actions\">\n      <a class=\"dtk-btn dtk-btn--dark\" href=\"https:\/\/dairytop.eu\/en\/contact\/\" data-quote=\"advies\">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\":\"When can calves go into a group?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"From around the second week of life, calves can be kept in small groups of similar age. This is good for their welfare and for their social behaviour as herd animals. In the first weeks of life their immune system is not yet strong, so they are kept on their own.\"}},{\"@type\":\"Question\",\"name\":\"What is the difference between the Optima Klima Calf Barn and the Quattro Calf Box XL?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The Optima Klima Calf Barn is a permanent barn on a concrete base, made up of pens for 6 to 8 calves, and you can extend it as far as you like. The Quattro Calf Box XL is a liftable unit with four lying spaces that you use as individual pens, pair pens or one group pen for four calves.\"}},{\"@type\":\"Question\",\"name\":\"Can DairyTop build a calf barn to measure?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. DairyTop specialises in made-to-measure projects, indoors and outdoors. We can fit out almost any space with plastic panels to create the calf barn you have in mind. Our project specialists are happy to visit you to talk it through.\"}},{\"@type\":\"Question\",\"name\":\"Which housing suits my farm?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"That depends on the number of calves, the age at which you group them and the space you have in your yard or barn. Our advisers are happy to help you decide: call +31 (0)593 24 17 12 or get in touch.\"}}]}]}<\/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 Calf housing Calf housing DairyTop offers a wide range of calf housing, for newborn calves and for calves that are ready to be kept in groups. Everything you need to rear your calves healthily and with their welfare in mind. See the systemsTailored advice All calf housing Browse all categories, or jump straight to [&hellip;]<\/p>\n","protected":false},"author":3,"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":"default","site-sidebar-style":"default","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":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","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-7649","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>Calf housing - Dairytop<\/title>\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\/de\/kaelberhaltung\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Calf housing - Dairytop\" \/>\n<meta property=\"og:description\" content=\"Home Calf housing Calf housing DairyTop offers a wide range of calf housing, for newborn calves and for calves that are ready to be kept in groups. Everything you need to rear your calves healthily and with their welfare in mind. See the systemsTailored advice All calf housing Browse all categories, or jump straight to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dairytop.eu\/de\/kaelberhaltung\/\" \/>\n<meta property=\"og:site_name\" content=\"Dairytop\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-16T15:05:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.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=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/\",\"name\":\"Calf housing - Dairytop\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/oksng-rij.webp\",\"datePublished\":\"2026-02-24T13:36:21+00:00\",\"dateModified\":\"2026-10-16T15:05:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/#primaryimage\",\"url\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/oksng-rij.webp\",\"contentUrl\":\"https:\\\/\\\/dairytop.eu\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/oksng-rij.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/kaelberhaltung\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/dairytop.eu\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Calf housing\"}]},{\"@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":"Calf housing - 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\/de\/kaelberhaltung\/","og_locale":"en_US","og_type":"article","og_title":"Calf housing - Dairytop","og_description":"Home Calf housing Calf housing DairyTop offers a wide range of calf housing, for newborn calves and for calves that are ready to be kept in groups. Everything you need to rear your calves healthily and with their welfare in mind. See the systemsTailored advice All calf housing Browse all categories, or jump straight to [&hellip;]","og_url":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/","og_site_name":"Dairytop","article_modified_time":"2026-10-16T15:05:26+00:00","og_image":[{"url":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/","url":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/","name":"Calf housing - Dairytop","isPartOf":{"@id":"https:\/\/dairytop.eu\/#website"},"primaryImageOfPage":{"@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/#primaryimage"},"image":{"@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/#primaryimage"},"thumbnailUrl":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp","datePublished":"2026-02-24T13:36:21+00:00","dateModified":"2026-10-16T15:05:26+00:00","breadcrumb":{"@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dairytop.eu\/de\/kaelberhaltung\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/#primaryimage","url":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp","contentUrl":"https:\/\/dairytop.eu\/wp-content\/uploads\/2026\/10\/oksng-rij.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/dairytop.eu\/de\/kaelberhaltung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dairytop.eu\/de\/"},{"@type":"ListItem","position":2,"name":"Calf housing"}]},{"@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\/7649","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\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/comments?post=7649"}],"version-history":[{"count":39,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages\/7649\/revisions"}],"predecessor-version":[{"id":12830,"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/pages\/7649\/revisions\/12830"}],"wp:attachment":[{"href":"https:\/\/dairytop.eu\/en\/wp-json\/wp\/v2\/media?parent=7649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}