/* Scoped to the woning templates; keep the site's existing identity. */
.woning-detail-pagina [id], .woning-overzicht [id] { scroll-margin-top: 24px; }
.dv-woning-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; }
.dv-woning-main, .dv-woning-aside { min-width: 0; }
.dv-woning-main > section { margin-bottom: 32px; }
.dv-woning-main h2 { font-size: 1.6rem; line-height: 1.25; margin: 24px 0 16px; }
.dv-woning-main h3 { font-size: 1.25rem; line-height: 1.3; }
.woning-detail-pagina .woning-header { margin-bottom: 24px; padding-bottom: 20px; }
.woning-detail-pagina .woning-header h1 { font-size: clamp(1.65rem,4vw,2.4rem); margin: 0 0 8px; }
.woning-detail-pagina .woning-prijs-header { font-size: clamp(1.2rem,3vw,1.7rem); line-height: 1.4; margin: 10px 0; }
.dv-woning-kern { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; padding: 0; margin: 14px 0; font-weight: 600; }
.dv-woning-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 14px 0; }
.dv-woning-actions .button { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; text-align: center; white-space: normal; }
.dv-woning-nav { display: flex; flex-wrap: wrap; gap: 2px 16px; border-top: 1px solid #dce5df; padding-top: 8px; margin-top: 16px; }
.dv-woning-nav a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 4px; }
.dv-woning-aside { display: none; }
.dv-woning-contactkaart { position: sticky; top: 28px; padding: 22px; border: 1px solid #dce5df; border-radius: 12px; background: #f4f7f4; }
.dv-woning-contactkaart h2 { font-size: 1.25rem; margin: 0 0 12px; }
.dv-woning-contactkaart .dv-woning-actions { align-items: stretch; flex-direction: column; }
.woning-detail-pagina .woning-hoofdafbeelding { margin-bottom: 12px; }
.woning-detail-pagina .woning-grote-foto { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.woning-detail-pagina .property-gallery-thumbnails { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.woning-detail-pagina .property-gallery-thumbnails img { width: 100%; height: auto; aspect-ratio: 3/2; object-fit: cover; }
.dv-gallery-ready .property-gallery-thumbnails .lightbox-trigger:nth-child(n+5) { display: none; }
.dv-gallery-all { margin: 12px 0; min-height: 44px; }
.dv-gallery-all[hidden] { display: none; }
.woning-detail-pagina .woning-intro-ai { padding: 18px; margin: 0 0 22px; }
.woning-detail-pagina .woning-contact-actie { margin-top: 20px; }
.woning-detail-pagina .woning-alle-kenmerken dl { overflow-wrap: anywhere; }
.woning-detail-pagina .mauticform_wrapper { max-width: 100%; }
.woning-detail-pagina .mauticform-button { white-space: normal; }
.dv-woning-mobilebar { display: none; }
.woning-detail-pagina a:focus-visible, .woning-detail-pagina button:focus-visible, .woning-overzicht a:focus-visible, .woning-overzicht summary:focus-visible { outline: 3px solid #b77816; outline-offset: 3px; }
.woning-overzicht .container { padding-inline: 20px; }
.woning-overzicht h1 { font-size: clamp(1.65rem,3vw,2.25rem); line-height: 1.2; }
.dv-aanbod-intro { max-width: 760px; margin-bottom: 16px; }
.dv-aanbod-quick { margin-bottom: 12px; }
.dv-aanbod-filters { border: 1px solid #dce5df; border-radius: 10px; background: #f8faf8; margin-bottom: 16px; }
.dv-aanbod-filters summary { padding: 16px; min-height: 48px; cursor: pointer; font-weight: 600; }
.dv-aanbod-filters .filters { margin: 0; border: 0; box-shadow: none; background: transparent; padding: 16px; display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: 16px; }
.dv-aanbod-filters .filters div { min-width: 0; }
.dv-aanbod-filters .filters select, .dv-aanbod-filters .filters input { width: 100%; min-height: 44px; }
.dv-aanbod-filters .filters button { box-sizing: border-box; min-height: 44px; width: 100%; }
.dv-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.dv-active-filters a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 12px; background: #eef4ef; border-radius: 6px; }
.dv-filter-error { padding: 16px; background: #fff3df; color: #682f00; margin: 12px 0; }
.dv-aanbod-count { font-weight: 600; margin: 16px 0; }
.woning-overzicht .woning-kaart-adres { font-size: 1.35rem; line-height: 1.3; margin: 0 0 8px; }
.woning-overzicht .woning-kaart-foto { aspect-ratio: 3/2; object-fit: cover; }
.woning-overzicht .pagination { display: flex; flex-wrap: wrap; gap: 8px; margin: 24px 0; }
.woning-overzicht .pagination a, .woning-overzicht .pagination span { min-height: 44px; min-width: 44px; display: inline-flex; align-items: center; justify-content: center; }
.dv-aanbod-help { margin: 28px 0; padding: 22px; border-radius: 10px; background: #eef4ef; }
.dv-aanbod-help h2 { font-size: 1.35rem; margin: 0 0 8px; }
.dv-aanbod-help a { display: inline-flex; align-items: center; min-height: 44px; margin-right: 20px; }
@media (min-width: 768px) {
    .dv-aanbod-filters:not([open]) > form { display: grid; }
    .dv-aanbod-filters summary { display: none; }

}
@media (max-width: 767px) {
    .woning-detail-pagina .container { padding: 16px; }
    .woning-detail-pagina .breadcrumb { font-size: .8rem; margin-bottom: 12px; }
    .woning-detail-pagina .woning-locatie { font-size: .95rem; margin-bottom: 10px; }
    .woning-detail-pagina .woning-header { margin-bottom: 18px; }
    .dv-woning-kern { font-size: .95rem; gap: 6px 14px; }
    .dv-woning-nav { font-size: .9rem; gap: 0 14px; }
    .dv-woning-mobilebar { display: flex; position: fixed; bottom: 0; left: 0; right: 0; gap: 12px; align-items: center; justify-content: center; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid #dce5df; background: #fff; box-shadow: 0 -3px 14px #0000000d; z-index: 90; }
    .dv-woning-mobilebar a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: .9rem; }
    body:has(.dv-woning-mobilebar) { padding-bottom: 80px; }
    .dv-gallery-open .dv-woning-mobilebar, .dv-form-visible .dv-woning-mobilebar { display: none; }
    .dv-aanbod-filters .filters { grid-template-columns: minmax(0,1fr); }
    .woning-overzicht .container { padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) { .woning-detail-pagina *, .woning-overzicht * { scroll-behavior: auto !important; } }
/* Account for Kadence's sticky header when jumping between sections. */
.woning-detail-pagina [id], .woning-overzicht [id] { scroll-margin-top: 180px; }
.dv-woning-contactkaart { top: 180px; }
.woning-detail-pagina .button.primary, .dv-woning-mobilebar .button.primary { background: #0f634b; color: #fff; border-color: #0f634b; }
.woning-detail-pagina .button.primary:hover { background: #19452f; }
.woning-detail-pagina .woning-contact-actie:not(.lokale-info) { background: #f4f7f4; border-color: #dce5df; }
.woning-detail-pagina .mauticform-row label { text-align: left; }

@media (min-width: 1024px) { .dv-woning-layout { grid-template-columns: minmax(0,1fr) 280px; } .dv-woning-aside { display: block; } }

/* Keep the property readable on laptops as well as wide screens. */
.woning-detail-pagina > .container { box-sizing: border-box; width: 100%; max-width: 1200px; margin-inline: auto; padding: 24px 32px; }
.woning-detail-pagina .woning-header .breadcrumb { margin-bottom: 16px; }
.woning-detail-pagina .woning-header .woning-locatie { margin: 8px 0 16px; }
.woning-detail-pagina .woning-header { border-bottom: 0; padding-bottom: 0; }
.dv-woning-contactkaart > p { margin: 0 0 16px; }
@media (min-width: 1024px) {
    .woning-detail-content { display: grid; grid-template-columns: minmax(0,1fr) 280px; column-gap: 32px; }
    .woning-detail-content > .woning-header { grid-column: 1; grid-row: 1; min-width: 0; margin-bottom: 20px; }
    .woning-header > .dv-woning-actions { display: none; }
    .dv-woning-layout { display: contents; }
    .dv-woning-main { grid-column: 1; grid-row: 2; }
    .dv-woning-aside { grid-column: 2; grid-row: 1 / span 2; padding-top: 44px; }
    .dv-woning-contactkaart { box-sizing: border-box; width: 100%; }
    .dv-woning-kern { margin: 10px 0; }
    .dv-woning-nav { margin-top: 12px; padding-top: 6px; }
}
@media (max-width: 767px) { .woning-detail-pagina > .container { padding: 16px; } }

.dv-header-visible .dv-woning-mobilebar { display: none; }

/* Leaflet panes must stay below the site's fixed navigation. */
.woning-detail-pagina #schaduwwijzer-wrapper { position: relative; isolation: isolate; z-index: 0; }
.woning-detail-pagina #cf_turnstile { display: flex !important; justify-content: center; margin: 12px 0; }
