/* ==========================================================
   DS-BV huisstijl voor Divi
   Vertaalt de vormgeving van de DS-BV site (style.css) naar de
   markup van Divi-secties, -rijen en -modules.
   ========================================================== */

/* ---------- basis: typografie gelijk aan de site ---------- */
body.dsbv,
.dsbv #page-container,
.dsbv .et_pb_module,
.dsbv input, .dsbv textarea, .dsbv select, .dsbv button {
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
body.dsbv { font-size: 16px; line-height: 1.65; color: var(--text); font-weight: 400; }
.dsbv .et_pb_module h1, .dsbv .et_pb_module h2, .dsbv .et_pb_module h3,
.dsbv .et_pb_module h4, .dsbv .et_pb_module h5 {
	padding-bottom: 0; line-height: 1.2; margin: 0 0 .6em; font-weight: 500; letter-spacing: -.01em;
}
.dsbv .et_pb_module h1 { font-size: clamp(2.1rem, 5vw, 3.5rem); font-weight: 300; }
.dsbv .et_pb_module h2 { font-size: clamp(1.7rem, 3.4vw, 2.5rem); }
.dsbv .et_pb_module h3 { font-size: 1.25rem; }
.dsbv .et_pb_module h4 { font-size: 1rem; color: var(--brand); }
.dsbv .et_pb_module p { padding-bottom: 0; margin: 0 0 1em; }
.dsbv .et_pb_text_inner > :last-child { margin-bottom: 0; }
.dsbv .et_pb_text a:not(.btn):not(.chip), .dsbv .et_pb_toggle a, .dsbv .et_pb_blurb_description a { color: var(--brand); }
.dsbv .et_pb_text a.chip { color: var(--ink); }
.dsbv .et_pb_text a.btn-primary { color: #fff; }
.dsbv .et_pb_text a.btn-outline { color: var(--brand); }
.dsbv .page-hero .et_pb_text .crumbs a { color: rgba(255,255,255,.75); }
.dsbv .et_pb_section.site-footer .et_pb_text a:not(.btn) { color: rgba(255,255,255,.8); }
.dsbv .et_pb_section.site-footer .et_pb_text a:not(.btn):hover { color: #fff; }
.dsbv .et_pb_section.site-footer .et_pb_text a.btn-primary { color: #fff; }
.dsbv .et-l ul.checklist, .dsbv .et-l .chips, .dsbv .et-l .site-footer ul,
.dsbv .et-l--footer ul, .dsbv .et-l .help-box ul { list-style: none; padding: 0; line-height: inherit; }
.dsbv .et-l ul.checklist { margin: 0; }
.dsbv .et-l .legal ul, .dsbv .et-l .prose ul:not(.checklist) { list-style: disc; padding: 0 0 1em 1.2em; }
.dsbv #main-content { background: transparent; }
.dsbv #main-content .container:before { display: none; }

/* ---------- secties en rijen ---------- */
.dsbv .et_pb_section.dsbv-sec { padding: clamp(56px, 8vw, 96px) 0; background-color: #fff; }
.dsbv .et_pb_section.dsbv-sec.alt { background-color: var(--bg-alt); }
.dsbv .et_pb_section.dsbv-sec .et_pb_row.dsbv-row {
	width: 100%; max-width: var(--max); padding: 0 20px; margin: 0 auto;
	display: flex; gap: 22px; align-items: stretch; flex-wrap: nowrap;
}
.dsbv .et_pb_section.dsbv-sec .et_pb_row.dsbv-row + .et_pb_row.dsbv-row { margin-top: 22px; }
.dsbv .dsbv-row > .et_pb_column {
	margin: 0 !important; width: auto !important; flex: 1 1 0; min-width: 0;
}
.dsbv .dsbv-row > .et_pb_column:empty { visibility: hidden; }
.dsbv .dsbv-sec .et_pb_module { margin-bottom: 0; }
.dsbv .dsbv-sec .et_pb_column > .et_pb_module + .et_pb_module:not(.et_pb_button_module_wrapper) { margin-top: 16px; }
.dsbv .dsbv-row.dsbv-center, .dsbv .dsbv-row.dsbv-center .et_pb_text { text-align: center; }
.dsbv .et_pb_section.dsbv-narrowsec .et_pb_row.dsbv-row { max-width: 820px; }
.dsbv .calc input[type=range] { width: 100%; -webkit-appearance: auto; appearance: auto; accent-color: var(--brand); background: none; border: 0; padding: 0; height: auto; }
.dsbv .dsbv-narrow .legal, .dsbv .dsbv-narrow .prose { margin: 0 auto; }
.dsbv .et_pb_text.legal, .dsbv .et_pb_text.prose { max-width: 780px; margin: 0 auto; }

/* split: tekst links, kader rechts */
.dsbv .dsbv-split { gap: 56px !important; align-items: flex-start !important; }
.dsbv .dsbv-split > .et_pb_column:first-child { flex-grow: 1.35; }
.dsbv .dsbv-split > .et_pb_column:last-child { position: sticky; top: calc(var(--header-h) + 20px); }
.dsbv .et_pb_text.aside-box { position: static; }
.dsbv .dsbv-contact { gap: 40px !important; }
.dsbv .dsbv-contact > .et_pb_column:last-child { flex-grow: 1.2; }

/* dienstenrijen */
.dsbv .dsbv-svc { gap: 48px !important; align-items: center !important; padding: 44px 20px !important; border-bottom: 1px solid var(--line); }
.dsbv .et_pb_row.dsbv-svc + .et_pb_row.dsbv-svc { margin-top: 0 !important; }
.dsbv .svc-visual h3 { color: var(--brand); font-size: 1rem; }
.dsbv .dsbv-svc:nth-of-type(even) > .et_pb_column:first-child { order: 2; }

/* ---------- knoppen ---------- */
.dsbv .et_pb_button_module_wrapper:has(> .btn) { display: inline-block; margin: 6px 10px 0 0; vertical-align: top; }
.dsbv .dsbv-center .et_pb_button_module_wrapper:has(> .btn) { margin: 6px 5px 0; }
.dsbv .dsbv-btnrow .et_pb_column { display: block; }
.dsbv .dsbv-sec .et_pb_text:has(+ .et_pb_button_module_wrapper) { margin-bottom: 16px; }
body.dsbv .et_pb_button.btn,
body.dsbv .et_pb_button.btn:hover {
	display: inline-flex; align-items: center; gap: .5em; padding: .8em 1.5em !important; border-radius: 999px;
	font-size: .98rem; font-weight: 500; line-height: 1.2; letter-spacing: 0; border-width: 1.5px; border-style: solid;
	text-transform: none; font-family: inherit;
}
body.dsbv .et_pb_button.btn::after, body.dsbv .et_pb_button.btn::before { display: none !important; }
body.dsbv .et_pb_button.btn-primary { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 6px 18px rgba(203,3,5,.28); }
body.dsbv .et_pb_button.btn-primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; transform: translateY(-2px); }
body.dsbv .et_pb_button.btn-outline { background: #fff; border-color: var(--brand); color: var(--brand); }
body.dsbv .et_pb_button.btn-outline:hover { background: var(--brand); color: #fff; }
body.dsbv .et_pb_button.btn-ghost { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.55); color: #fff; }
body.dsbv .et_pb_button.btn-ghost:hover { background: #fff; color: var(--ink); }
body.dsbv .page-hero .et_pb_button.btn-outline,
body.dsbv .cta .et_pb_button.btn-outline { background: transparent; border-color: rgba(255,255,255,.6); color: #fff; }
body.dsbv .page-hero .et_pb_button.btn-outline:hover,
body.dsbv .cta .et_pb_button.btn-outline:hover { background: #fff; color: var(--ink); }

/* ---------- hero (home) ---------- */
.dsbv .et_pb_section.hero { padding: clamp(90px, 14vw, 170px) 0 clamp(80px, 11vw, 140px); background-color: var(--dark); background-size: cover; background-position: center; }
.dsbv .et_pb_section.hero .dsbv-row { max-width: 860px; }
.dsbv .hero .et_pb_text, .dsbv .hero .et_pb_text h1, .dsbv .hero .et_pb_text p { color: #fff; }
.dsbv .hero .et_pb_text h1 { margin-bottom: .4em; }
.dsbv .hero .et_pb_text p { color: rgba(255,255,255,.88); font-size: 1.12rem; max-width: 620px; margin: 0 auto; }
.dsbv .hero .pill { margin-bottom: 22px; }
.dsbv .hero .et_pb_text:has(+ .et_pb_button_module_wrapper) { margin-bottom: 24px; }

/* ---------- paginakop ---------- */
.dsbv .et_pb_section.page-hero {
	padding: clamp(56px, 8vw, 96px) 0;
	background: linear-gradient(135deg, #1a1a1a 0%, #2a1111 60%, #4a0607 100%);
}
.dsbv .et_pb_section.page-hero::after {
	content: ""; position: absolute; width: 420px; height: 420px; border-radius: 50%;
	background: radial-gradient(circle, rgba(203,3,5,.55), transparent 70%);
	right: -120px; top: -160px; z-index: -1; filter: blur(10px); animation: float 12s ease-in-out infinite alternate;
}
.dsbv .page-hero .et_pb_text, .dsbv .page-hero h1 { color: #fff; }
.dsbv .page-hero h1 { max-width: 820px; }
.dsbv .page-hero p.lead { color: rgba(255,255,255,.8); font-size: 1.15rem; max-width: 680px; }
.dsbv .page-hero .dsbv-crumbs + .et_pb_module { margin-top: 0 !important; }
.dsbv .page-hero .crumbs { margin-bottom: 20px; }
.dsbv .page-hero .crumbs ol { list-style: none; padding: 0; }
.dsbv .page-hero .et_pb_text:has(+ .et_pb_button_module_wrapper) { margin-bottom: 20px; }

/* ---------- CTA ---------- */
.dsbv .et_pb_section.cta { background-color: var(--dark); }
.dsbv .cta .et_pb_text, .dsbv .cta h2 { color: #fff; }
.dsbv .cta .et_pb_text p { color: rgba(255,255,255,.8); font-size: 1.1rem; }

/* ---------- sectiekop ---------- */
.dsbv .et_pb_text.section-head { max-width: 720px; margin: 0 auto 22px !important; text-align: center; }
.dsbv .et_pb_text.section-head p { color: var(--muted); font-size: 1.08rem; }

/* ---------- blurbs: kaarten en USP's ---------- */
.dsbv .et_pb_blurb .et_pb_main_blurb_image { margin-bottom: 16px; }
.dsbv .et_pb_blurb.card .et_pb_main_blurb_image,
.dsbv .et_pb_blurb.usp .et_pb_main_blurb_image {
	width: 48px; height: 48px; border-radius: 12px; background: var(--brand-soft);
	display: grid; place-items: center; text-align: center; max-width: none; overflow: visible;
}
.dsbv .et_pb_blurb.card .et_pb_image_wrap, .dsbv .et_pb_blurb.usp .et_pb_image_wrap { display: block; width: 24px; line-height: 0; }
.dsbv .et_pb_blurb.card .et_pb_main_blurb_image img,
.dsbv .et_pb_blurb.usp .et_pb_main_blurb_image img { width: 24px !important; height: 24px; max-width: 24px; }
.dsbv .et_pb_blurb.usp .et_pb_main_blurb_image { width: 46px; height: 46px; margin: 0 auto 12px; }
.dsbv .et_pb_blurb.usp .et_pb_image_wrap, .dsbv .et_pb_blurb.usp img { width: 22px !important; max-width: 22px; height: 22px; }
.dsbv .et_pb_blurb.card .et_pb_blurb_content { max-width: none; text-align: left; }
.dsbv .et_pb_blurb.card .et_pb_main_blurb_image { margin: 0 0 16px; }
.dsbv .et_pb_blurb.usp .et_pb_blurb_content, .dsbv .et_pb_blurb.usp .et_pb_blurb_content * { max-width: none; text-align: center; }
.dsbv .et_pb_blurb.card { height: 100%; }
.dsbv .dsbv-grid > .et_pb_column { display: flex; flex-direction: column; }
.dsbv .dsbv-grid > .et_pb_column > .et_pb_blurb.card { flex: 1; }
.dsbv .et_pb_blurb.card .et_pb_module_header { font-size: 1.25rem; margin-bottom: .4em; padding: 0; }
.dsbv .et_pb_blurb.card .et_pb_module_header a { color: var(--ink); }
.dsbv .et_pb_blurb.card .et_pb_blurb_description p:last-child { margin: 0; }
.dsbv .et_pb_blurb.card p.card-link { color: var(--ink); display: inline-flex; gap: 6px; margin-top: 10px; font-weight: 500; font-size: .92rem; }
.dsbv .dsbv-clickable .et_pb_module_header a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.dsbv .dsbv-usps { gap: 28px !important; }
.dsbv .et_pb_section.usps { padding: 40px 0; border-bottom: 1px solid var(--line); }
.dsbv .et_pb_blurb.usp .et_pb_module_header { margin-bottom: 4px; font-size: 1rem; color: var(--brand); padding: 0; }
.dsbv .et_pb_blurb.usp p { font-size: .9rem; color: var(--muted); margin: 0; }

/* ---------- prijzen ---------- */
.dsbv .et_pb_section .et_pb_row.dsbv-prices { max-width: 662px; }
.dsbv .et_pb_text.price, .dsbv .et_pb_text.price * { text-align: center; }
.dsbv .et_pb_text.price .amount { line-height: 1.15; }
.dsbv .et_pb_text.price .label, .dsbv .et_pb_text.price .per { line-height: 1.5; }

/* ---------- veelgestelde vragen (toggles) ---------- */
.dsbv .dsbv-faqrow { max-width: 860px !important; }
.dsbv .dsbv-faqrow .et_pb_column { display: block; }
.dsbv .et_pb_toggle.dsbv-faq {
	border: 0; border-bottom: 1px solid var(--line); background: transparent; padding: 0; margin: 0 !important;
}
.dsbv .et_pb_toggle.dsbv-faq .et_pb_toggle_title {
	font-size: 1.08rem; font-weight: 500; color: var(--ink); padding: 20px 44px 20px 0; line-height: 1.4;
}
.dsbv .et_pb_toggle.dsbv-faq .et_pb_toggle_title::before {
	content: ""; right: 6px; width: 22px; height: 22px; margin-top: -11px; border-radius: 50%;
	background: var(--bg-alt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23cb0305' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center/12px no-repeat;
	transition: transform .3s var(--ease);
}
.dsbv .et_pb_toggle.dsbv-faq.et_pb_toggle_open .et_pb_toggle_title::before { transform: rotate(45deg); }
.dsbv .et_pb_toggle.dsbv-faq .et_pb_toggle_content { color: var(--muted); padding: 0 0 20px; }
.dsbv .et_pb_toggle.dsbv-faq:hover .et_pb_toggle_title { color: var(--brand); }

/* ---------- contactformulier (Divi) ---------- */
.dsbv .dsbv-form .input,
.dsbv .dsbv-form input[type=text], .dsbv .dsbv-form input[type=email], .dsbv .dsbv-form textarea {
	background: #fff !important; border: 1.5px solid var(--line) !important; border-radius: 10px;
	padding: 12px 14px !important; font-size: 1rem !important; color: var(--text) !important;
}
.dsbv .dsbv-form .input:focus { border-color: var(--brand) !important; box-shadow: 0 0 0 3px var(--brand-soft); }
.dsbv .dsbv-form .et_pb_contact_submit {
	background: var(--brand) !important; color: #fff !important; border: 1.5px solid var(--brand) !important;
	border-radius: 999px; padding: .8em 1.6em !important; font-size: .98rem !important; font-weight: 500;
}
.dsbv .dsbv-form .et_pb_contact_submit::after { display: none; }
.dsbv .dsbv-form .et_pb_contact_captcha { background: #fff !important; border: 1.5px solid var(--line) !important; border-radius: 8px; }
.dsbv .dsbv-form .et-pb-contact-message { color: var(--brand); }

/* ---------- header (Theme Builder) ---------- */
.dsbv .et-l--header { position: sticky; top: 0; z-index: 1000; }
.admin-bar.dsbv .et-l--header { top: 32px; }
.dsbv .et_pb_section.site-header-sec {
	padding: 0; background: rgba(255,255,255,.92); backdrop-filter: saturate(1.6) blur(12px);
	border-bottom: 1px solid var(--line);
}
.dsbv .site-header-sec .dsbv-headrow { padding: 0 20px !important; }
.dsbv .dsbv-menu.et_pb_menu { background: transparent; }
.dsbv .dsbv-menu .et_pb_menu_inner_container { min-height: var(--header-h); align-items: center; }
.dsbv .dsbv-menu .et_pb_menu__logo-wrap { margin-right: 24px; }
.dsbv .dsbv-menu .et_pb_menu__logo img { height: 46px; width: auto; max-height: 46px; }
.dsbv .dsbv-menu .et-menu { align-items: center; }
.dsbv .dsbv-menu .et-menu > li { padding-left: 2px; padding-right: 2px; }
.dsbv .dsbv-menu .et-menu > li > a {
	padding: 8px 10px; color: var(--ink); font-size: .92rem; font-weight: 400; border-radius: 6px;
}
.dsbv .dsbv-menu .et-menu > li > a:hover,
.dsbv .dsbv-menu .et-menu > li.current-menu-item > a,
.dsbv .dsbv-menu .et-menu > li.current-menu-ancestor > a { color: var(--brand); opacity: 1; }
.dsbv .dsbv-menu .et-menu > li.menu-item-has-children > a { padding-right: 24px; }
.dsbv .dsbv-menu .et-menu > li.menu-item-has-children > a::after { right: 6px; top: 9px; font-size: 14px; }
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-phone { margin-left: auto; }
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-phone > a { font-weight: 500; }
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-btn > a {
	padding: .55em 1.1em; border-radius: 999px; border: 1.5px solid var(--brand); font-size: .88rem; font-weight: 500; margin-left: 6px;
}
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-outline > a { color: var(--brand); background: #fff; }
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-primary > a { color: #fff; background: var(--brand); box-shadow: 0 6px 18px rgba(203,3,5,.28); }
.dsbv .dsbv-menu .et-menu > li.dsbv-menu-btn > a:hover { color: #fff; background: var(--brand-dark); border-color: var(--brand-dark); }
.dsbv .dsbv-menu .et-menu .sub-menu {
	border-top: 0; border-radius: 12px; box-shadow: var(--shadow-lg); padding: 8px; width: 260px; background: #fff;
}
.dsbv .dsbv-menu .et-menu .sub-menu li { padding: 0; width: 100%; }
.dsbv .dsbv-menu .et-menu .sub-menu a { width: 100%; padding: 9px 12px; border-radius: 8px; color: var(--ink); font-size: .92rem; }
.dsbv .dsbv-menu .et-menu .sub-menu a:hover { background: var(--bg-alt); color: var(--brand); opacity: 1; }
.dsbv .dsbv-menu .et_pb_menu__search-button, .dsbv .dsbv-menu .mobile_menu_bar::before { color: var(--ink); }
.dsbv .dsbv-menu .et_mobile_menu { border-top: 3px solid var(--brand); }

/* ---------- footer (Theme Builder) ---------- */
.dsbv .et_pb_section.site-footer { padding: 0; background: var(--dark); color: rgba(255,255,255,.7); font-size: .93rem; }
.dsbv .site-footer .et_pb_text { color: rgba(255,255,255,.7); }
.dsbv .site-footer .dsbv-footgrid { gap: 36px !important; padding: 64px 20px 40px !important; }
.dsbv .site-footer .dsbv-footgrid > .et_pb_column:first-child { flex-grow: 1.3; }
.dsbv .site-footer h5 { color: #fff; font-size: 1rem; font-weight: 500; margin: 0 0 14px; padding: 0; }
.dsbv .site-footer a { color: rgba(255,255,255,.8); }
.dsbv .site-footer a:hover { color: #fff; }
.dsbv .site-footer li { padding: 3px 0; }
.dsbv .site-footer .dsbv-footbottom { margin-top: 0 !important; }
.dsbv .site-footer .foot-bottom { border-top: 1px solid rgba(255,255,255,.1); padding: 22px 0 28px; }
.dsbv .site-footer .et_pb_button.btn-primary { color: #fff; }
.dsbv .site-footer .btn-primary { color: #fff; }

/* ---------- responsief ---------- */
@media (max-width: 980px) {
	.admin-bar.dsbv .et-l--header { top: 46px; }
	.dsbv .dsbv-menu .et_pb_menu__logo img { height: 38px; }
}
@media (max-width: 900px) {
	.dsbv .et_pb_section.dsbv-sec .et_pb_row.dsbv-row { flex-wrap: wrap; }
	.dsbv .dsbv-grid > .et_pb_column, .dsbv .dsbv-footgrid > .et_pb_column { flex: 1 1 calc(50% - 22px); }
	.dsbv .dsbv-split > .et_pb_column, .dsbv .dsbv-contact > .et_pb_column, .dsbv .dsbv-svc > .et_pb_column { flex: 1 1 100%; position: static; }
	.dsbv .dsbv-svc:nth-of-type(even) > .et_pb_column:first-child { order: 0; }
	.dsbv .dsbv-usps > .et_pb_column { flex: 1 1 calc(50% - 28px); }
}
@media (max-width: 620px) {
	.dsbv .dsbv-grid > .et_pb_column, .dsbv .dsbv-footgrid > .et_pb_column, .dsbv .dsbv-prices > .et_pb_column { flex: 1 1 100%; }
	.dsbv .dsbv-row > .et_pb_column:empty { display: none; }
}

/* formulier in een kaart, zoals op de site */
.dsbv .et_pb_contact_form_container.dsbv-form, .dsbv .dsbv-form.et_pb_module { background: #fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); padding: 28px; }

/* sticky header: Divi maakt #page-container een scroll-container; 'clip' houdt hetzelfde effect zonder sticky te breken */
body.dsbv { overflow-x: clip !important; overflow-y: visible !important; }
.dsbv #page-container { overflow: clip !important; }

/* menu over de volle breedte: telefoon en knoppen rechts, zoals op de site */
@media (min-width: 981px) {
	.dsbv .dsbv-menu .et_pb_menu__wrap { flex: 1; justify-content: flex-start; }
	.dsbv .dsbv-menu .et_pb_menu__menu, .dsbv .dsbv-menu .et-menu-nav, .dsbv .dsbv-menu .et-menu { flex: 1; width: 100%; }
}
