.elementor-kit-7{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --blauw:#16304d; --oranje:#f28c28; --licht:#f5f3ef; --tekst:#1f2a36; --font-kop:Barlow Condensed; --font-tekst:Barlow; --blauw-donker:#0e2034; --oranje-donker:#d9741a; --wit:#ffffff; --zand:#ebe5db; }
/* Start custom CSS *//* Springerbouw Jr. — links in lopende tekst */
.e-paragraph-base a, .e-heading-base a { color: inherit; text-decoration: underline; text-decoration-color: #f28c28; text-decoration-thickness: 2px; text-underline-offset: 3px; transition: color .15s ease; }
.e-paragraph-base a:hover, .e-heading-base a:hover { color: #d9741a; }
/* header: geen onderstreping in bovenbalk */
.elementor-location-header .e-paragraph-base a { text-decoration: none; }
.elementor-location-header .e-paragraph-base a:hover { color: #f28c28; }
summary::-webkit-details-marker { display: none; }
summary { list-style: none; }
html { scroll-behavior: smooth; }

/* === Sticky header: blauwe bovenbalk (47px) schuift weg, witte balk blijft staan === */
.elementor-location-header { position: sticky; top: -47px; z-index: 100; }
.admin-bar .elementor-location-header { top: -15px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: -1px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: -47px; } }

/* === Logo op mobiel: zo groot als naast het menu-icoon past (max 300px) === */
@media (max-width: 767px) { .elementor-location-header.elementor .sbj-logo, .elementor-location-header.elementor .sbj-logo img { width: min(300px, calc(100vw - 104px)) !important; max-width: none !important; height: auto !important; } }

/* === Mobiel menu: alleen plankenstapel-icoon (wordt kruis) + bouwtekening-paneel === */
.elementor-location-header.elementor .sbj-toggle { display: flex; align-items: center; justify-content: flex-end !important; gap: 0 !important; padding: 12px 2px 12px 12px; background: transparent; cursor: pointer; -webkit-tap-highlight-color: transparent; }
/* standaard accordeon-pijltje nooit tonen (de editor voegt het soms zelf weer toe) */
.elementor-location-header.elementor .sbj-toggle .e-accordion-item-icon-base { display: none !important; }
/* tekst 'Menu' alleen voor screenreaders */
.elementor-location-header.elementor .sbj-toggle .sbj-toggle-label { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap; margin: 0; }
.elementor-location-header.elementor .sbj-toggle::after { content: ""; display: block; flex: 0 0 auto; width: 32px; height: 22px; background: linear-gradient(#f28c28,#f28c28) right top / 100% 4px no-repeat, linear-gradient(#16304d,#16304d) right center / 68% 4px no-repeat, linear-gradient(#f28c28,#f28c28) right bottom / 40% 4px no-repeat; transition: background-size .25s ease, transform .3s ease; }
.elementor-location-header.elementor .sbj-toggle:hover::after { background-size: 100% 4px, 100% 4px, 100% 4px; }
.elementor-location-header.elementor details[open] .sbj-toggle::after { width: 24px; height: 24px; margin: 0 4px; background: linear-gradient(45deg, transparent 42%, #f28c28 42%, #f28c28 58%, transparent 58%), linear-gradient(-45deg, transparent 42%, #f28c28 42%, #f28c28 58%, transparent 58%); transform: rotate(180deg); }
.elementor-location-header.elementor .sbj-panel { position: absolute; left: 0; right: 0; top: 100%; z-index: 60; height: calc(100vh - 84px); height: calc(100dvh - 84px); overflow-y: auto; overscroll-behavior: contain; padding: 22px 20px 32px; display: flex; flex-direction: column; gap: 0; background-color: #0e2034; background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); background-size: 28px 28px; border-top: 4px solid #f28c28; box-shadow: 0 30px 60px rgba(14,32,52,.35); counter-reset: sbjmm; }
.elementor-location-header.elementor .sbj-panel .sbj-tag { font-family: var(--font-kop), sans-serif !important; font-weight: 600 !important; font-size: 12px !important; line-height: 1.4 !important; letter-spacing: .2em; text-transform: uppercase; color: #f28c28 !important; margin: 0 0 6px; }
.elementor-location-header.elementor .sbj-panel .sbj-link { display: flex !important; flex-shrink: 0; align-items: baseline; width: 100%; padding: 12px 0 !important; background: transparent !important; border: 0; border-bottom: 1px solid rgba(255,255,255,.12); border-radius: 0 !important; font-family: var(--font-kop), sans-serif !important; font-weight: 800 !important; font-size: clamp(24px, 8vw, 32px) !important; line-height: 1 !important; letter-spacing: .01em; text-transform: uppercase; color: #ffffff !important; text-align: left !important; counter-increment: sbjmm; transition: color .15s ease, padding .2s ease; }
.elementor-location-header.elementor .sbj-panel .sbj-link::before { content: counter(sbjmm, decimal-leading-zero); font-size: 13px; font-weight: 700; letter-spacing: .12em; color: #f28c28; margin-right: 14px; min-width: 22px; }
.elementor-location-header.elementor .sbj-panel .sbj-link::after { content: "\2192"; margin-left: auto; font-size: 24px; color: #f28c28; opacity: 0; transform: translateX(-10px); transition: opacity .2s ease, transform .2s ease; }
.elementor-location-header.elementor .sbj-panel .sbj-link:hover, .elementor-location-header.elementor .sbj-panel .sbj-link:focus-visible { color: #f28c28 !important; padding-left: 6px !important; }
.elementor-location-header.elementor .sbj-panel .sbj-link:hover::after, .elementor-location-header.elementor .sbj-panel .sbj-link:focus-visible::after { opacity: 1; transform: none; }
.elementor-location-header.elementor .sbj-panel .sbj-call { flex-shrink: 0; margin-top: 24px; width: 100%; text-align: center !important; font-size: 18px !important; padding: 16px !important; }
.elementor-location-header.elementor .sbj-panel .sbj-meta { flex-shrink: 0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px 16px; margin-top: 16px; padding: 0 !important; }
.elementor-location-header.elementor .sbj-panel .sbj-meta-link { background: transparent !important; padding: 0 !important; color: rgba(255,255,255,.8) !important; font-family: var(--font-tekst), sans-serif !important; font-size: 15px !important; text-decoration: underline; text-decoration-color: #f28c28; text-underline-offset: 4px; }
@keyframes sbjIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.elementor-location-header.elementor details[open] .sbj-panel > * { animation: sbjIn .45s cubic-bezier(.2,.7,.2,1) both; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(2) { animation-delay: .05s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(3) { animation-delay: .1s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(4) { animation-delay: .15s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(5) { animation-delay: .2s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(6) { animation-delay: .25s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(7) { animation-delay: .3s; }
.elementor-location-header.elementor details[open] .sbj-panel > *:nth-child(8) { animation-delay: .35s; }
@media (prefers-reduced-motion: reduce) { .elementor-location-header.elementor details[open] .sbj-panel > * { animation: none; } }

/* === Voor/na-slider (werkt samen met Custom Code 'Voor-na slider') === */
.elementor .sbj-ba { --pos: 50%; position: relative !important; display: block !important; width: 100%; aspect-ratio: 1250 / 800; overflow: hidden; padding: 0 !important; background: #0e2034; touch-action: pan-y; user-select: none; -webkit-user-select: none; cursor: ew-resize; box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.elementor .sbj-ba img { position: absolute !important; inset: 0; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; pointer-events: none; -webkit-user-drag: none; }
.elementor .sbj-ba .sbj-ba-voor { position: absolute !important; inset: 0; padding: 0 !important; z-index: 1; clip-path: inset(0 calc(100% - var(--pos)) 0 0); }
.elementor .sbj-ba .sbj-ba-handle { position: absolute !important; top: 0; bottom: 0; left: var(--pos); width: 4px; margin-left: -2px; padding: 0 !important; background: #f28c28; z-index: 3; cursor: ew-resize; outline: none; }
.elementor .sbj-ba .sbj-ba-handle::after { content: "\2039\00a0\203A"; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 54px; height: 54px; border-radius: 50%; background: #f28c28; color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--font-kop), sans-serif; font-weight: 800; font-size: 28px; line-height: 1; box-shadow: 0 6px 20px rgba(0,0,0,.35); transition: transform .15s ease; }
.elementor .sbj-ba:active .sbj-ba-handle::after { transform: translate(-50%, -50%) scale(1.08); }
.elementor .sbj-ba .sbj-ba-handle:focus-visible::after { outline: 3px solid #fff; outline-offset: 3px; }
.elementor .sbj-ba .sbj-ba-tag { position: absolute !important; top: 16px; z-index: 2; margin: 0; padding: 6px 12px !important; background: rgba(14,32,52,.85); color: #fff !important; font-family: var(--font-kop), sans-serif !important; font-weight: 700 !important; font-size: 13px !important; line-height: 1.2 !important; letter-spacing: .16em; text-transform: uppercase; pointer-events: none; }
.elementor .sbj-ba .sbj-ba-tag-voor { left: 16px; }
.elementor .sbj-ba .sbj-ba-tag-na { right: 16px; background: #f28c28; }

/* === Fotogalerijen projecten (foto's met lightbox-link) === */
.elementor .sbj-galerij > a { display: block !important; width: 100% !important; height: 100% !important; min-width: 0; overflow: hidden; }
.elementor .sbj-galerij > a > img, .elementor .sbj-galerij > img { display: block; width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1), filter .2s ease; }
.elementor .sbj-galerij > a:hover > img { transform: scale(1.05); }
/* aanbouw-raster: rij 1 = drie fases, rij 2 = breed + smal, rij 3 = smal + breed */
.elementor .sbj-galerij-a > :nth-child(4), .elementor .sbj-galerij-a > :nth-child(7) { grid-column: span 2; }
@media (max-width: 1024px) { .elementor .sbj-galerij-a > :nth-child(4) { grid-column: auto; } }
@media (max-width: 767px) { .elementor .sbj-galerij-a > :nth-child(7) { grid-column: auto; } }

/* === FAQ (accordeon met FAQ-schema) === */
.elementor .sbj-faq { display: flex !important; flex-direction: column; gap: 0 !important; padding: 0 !important; width: 100%; border-top: 3px solid #16304d; }
.elementor .sbj-faq .sbj-faq-item { border-bottom: 1px solid #d9d1c4; padding: 0 !important; }
.elementor .sbj-faq .sbj-faq-head { display: flex !important; align-items: center; justify-content: space-between !important; gap: 24px !important; padding: 22px 0 !important; background: transparent !important; cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent; }
.elementor .sbj-faq .e-accordion-item-icon-base { display: none !important; }
.elementor .sbj-faq .sbj-faq-head::after { content: ""; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%; background-color: #f28c28; background-image: linear-gradient(#fff, #fff), linear-gradient(#fff, #fff); background-size: 14px 2px, 2px 14px; background-position: center, center; background-repeat: no-repeat; transition: transform .3s ease, background-color .2s ease; }
.elementor .sbj-faq details[open] > .sbj-faq-head::after { transform: rotate(135deg); background-color: #16304d; }
.elementor .sbj-faq .sbj-faq-q { font-family: var(--font-kop), sans-serif !important; font-weight: 700 !important; font-size: clamp(20px, 2.2vw, 24px) !important; line-height: 1.2 !important; letter-spacing: 0 !important; text-transform: none !important; color: #16304d !important; margin: 0 !important; transition: color .15s ease; }
.elementor .sbj-faq .sbj-faq-head:hover .sbj-faq-q { color: #d9741a !important; }
.elementor .sbj-faq .sbj-faq-body { padding: 0 60px 26px 0 !important; }
@media (max-width: 767px) { .elementor .sbj-faq .sbj-faq-body { padding: 0 0 22px 0 !important; } }
.elementor .sbj-faq .sbj-faq-a { font-size: 17px !important; line-height: 1.7 !important; color: #1f2a36 !important; max-width: 640px; margin: 0 !important; }
.elementor .sbj-faq details[open] .sbj-faq-body { animation: sbjIn .35s ease both; }/* End custom CSS */