/* Kompas aanbod — follows the site's Elementor globals (colours and Geograph). */
.ka {
	--ka-navy: #031435;
	--ka-gold: #ebc273;
	--ka-gold-dark: #c99a3c;
	--ka-text: #454240;
	--ka-muted: #8a837c;
	--ka-sand: #d6d1cb;
	--ka-light: #eae8e5;
	--ka-white: #fff;
	--ka-sold: #031435;
	--ka-radius: 3px;
	--ka-font: "Geograph Test", "Geograph", system-ui, sans-serif;
	--ka-gap: clamp(16px, 2.5vw, 32px);

	box-sizing: border-box;
	/* One page width for the whole site: 1400px content, as Elementor's sections and the header; 20px at the sides on smaller screens. */
	max-width: 1440px;
	margin: 0 auto;
	padding: clamp(24px, 4vw, 56px) 20px clamp(48px, 6vw, 96px);
	color: var(--ka-text);
	font-family: var(--ka-font);
	font-size: 15px;
	line-height: 1.6;
}
.ka *, .ka *::before, .ka *::after { box-sizing: inherit; }
.ka img { display: block; max-width: 100%; height: auto; }
.ka h1, .ka h2, .ka h3 { font-family: var(--ka-font); color: var(--ka-navy); margin: 0; line-height: 1.2; }

/* Shortcode grids sit inside other layouts: no outer spacing of their own. */
.ka.ka-grid { padding: 0; max-width: none; }

/* Buttons and small things */
.ka .ka-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 24px; border: 2px solid var(--ka-navy); border-radius: var(--ka-radius);
	background: var(--ka-navy); color: var(--ka-white); font: 600 14px/1 var(--ka-font);
	text-transform: uppercase; letter-spacing: .04em; text-decoration: none; cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.ka .ka-button:hover, .ka .ka-button:focus-visible { background: var(--ka-gold); border-color: var(--ka-gold); color: var(--ka-navy); }
.ka .ka-button--ghost { background: transparent; color: var(--ka-navy); }
.ka a:focus-visible, .ka button:focus-visible, .ka select:focus-visible, .ka input:focus-visible, .ka summary:focus-visible {
	outline: 2px solid var(--ka-gold-dark); outline-offset: 2px;
}
.ka-link { color: var(--ka-navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

.ka-badge {
	display: inline-block; padding: 8px 14px; border-radius: var(--ka-radius);
	background: var(--ka-gold); color: var(--ka-navy); font: 600 11px/1.2 var(--ka-font);
	text-transform: uppercase; letter-spacing: .06em; white-space: nowrap;
}
.ka-badge--verkocht, .ka-badge--verkocht-bij-inschrijving, .ka-badge--verhuurd, .ka-badge--aangekocht { background: var(--ka-navy); color: var(--ka-white); }
.ka-badge--verkocht-onder-voorbehoud, .ka-badge--onder-bod, .ka-badge--onder-optie, .ka-badge--verhuurd-onder-voorbehoud { background: var(--ka-white); color: var(--ka-navy); }


/* Page head of the archives: a sand band over the full width, with tabs between the lists. */
.ka.ka-top { display: block; max-width: none; padding: 0; background: var(--ka-light); }
.ka-top__inner { width: 100%; max-width: 1440px; margin: 0 auto; padding: clamp(40px, 5vw, 72px) 20px clamp(32px, 4vw, 48px); }
.ka-top--search .ka-top__inner { padding-bottom: clamp(88px, 8vw, 112px); }
.ka-top__eyebrow { margin: 0 0 12px; color: var(--ka-gold-dark); font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.ka .ka-top__title { font-size: clamp(34px, 4.4vw, 60px); font-weight: 700; line-height: 1.05; text-transform: uppercase; }
.ka-top__intro { max-width: 720px; margin: 18px 0 0; font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; }
.ka-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
.ka-tabs__tab {
	display: inline-flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 18px; border-radius: 23px;
	background: var(--ka-white); color: var(--ka-navy); font-size: 15px; font-weight: 700; text-decoration: none; transition: background-color .15s, color .15s;
}
.ka-tabs__tab:hover, .ka-tabs__tab:focus-visible { background: var(--ka-gold); }
.ka-tabs__tab[aria-current] { background: var(--ka-navy); color: var(--ka-white); }
.ka-tabs__count { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 22px; padding: 0 7px; border-radius: 11px; background: var(--ka-light); color: var(--ka-navy); font-size: 12px; }
.ka-tabs__tab[aria-current] .ka-tabs__count { background: var(--ka-gold); }

/* Search bar: one white panel over the edge of the page head. */
.ka-archive--search { display: flow-root; padding-top: 0; } /* flow-root: the search bar's negative margin pulls it over the head */
.ka-filters {
	position: relative; display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)) auto; gap: 16px; align-items: end;
	margin-top: calc(-1 * clamp(56px, 5vw, 72px)); padding: 24px; background: var(--ka-white); border-radius: var(--ka-radius);
	box-shadow: 0 24px 48px -28px rgba(3, 20, 53, .45), 0 2px 6px rgba(3, 20, 53, .06);
}
.ka-field { display: grid; gap: 8px; min-width: 0; }
.ka-field__label { font-size: 12px; font-weight: 700; color: var(--ka-navy); text-transform: uppercase; letter-spacing: .08em; }
.ka-filters input, .ka-filters select, .ka-sort select {
	width: 100%; height: 52px; padding: 0 16px; border: 1px solid var(--ka-sand); border-radius: var(--ka-radius);
	background-color: var(--ka-white); color: var(--ka-navy); font: 400 16px var(--ka-font);
	transition: border-color .15s, box-shadow .15s;
}
.ka-filters input:focus, .ka-filters select:focus, .ka-sort select:focus { border-color: var(--ka-navy); box-shadow: 0 0 0 1px var(--ka-navy); outline: 0; }
.ka-filters input::placeholder { color: var(--ka-muted); }
.ka .ka-field__search {
	padding-left: 46px;
	background: var(--ka-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23031435' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E") 16px center / 18px no-repeat;
}
/* Own arrow on the select boxes, the same on every browser. */
.ka-filters select, .ka-sort select {
	-webkit-appearance: none; appearance: none; padding-right: 42px; cursor: pointer;
	background: var(--ka-white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23031435' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 14px center / 16px no-repeat;
}
.ka .ka-filters__submit { height: 52px; min-width: 150px; padding: 0 28px; }

.ka-toolbar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin: 32px 0 24px; }
.ka-toolbar__count { margin: 0; color: var(--ka-navy); font-size: 17px; }
.ka-toolbar__count a { margin-left: 4px; color: inherit; font-size: 15px; }
.ka-toolbar__actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; min-width: 0; max-width: 100%; }
.ka-sort { display: inline-flex; align-items: center; gap: 10px; min-width: 0; max-width: 100%; }
.ka-sort__label { color: var(--ka-muted); font-size: 14px; white-space: nowrap; }
.ka .ka-sort select { width: auto; height: 46px; min-width: 210px; }
.ka-switch { display: inline-flex; padding: 3px; border: 1px solid var(--ka-sand); border-radius: 26px; background: var(--ka-white); }
.ka-switch a { display: inline-flex; align-items: center; min-height: 38px; padding: 0 18px; border-radius: 20px; color: var(--ka-navy); text-decoration: none; font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.ka-switch a[aria-current] { background: var(--ka-navy); color: var(--ka-white); }

@media (max-width: 1000px) {
	.ka-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.ka-field--wide { grid-column: 1 / -1; }
	.ka-filters .ka-filters__submit { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
	.ka-top__inner { padding-top: 32px; }
	.ka-tabs { flex-wrap: nowrap; overflow-x: auto; margin-right: -20px; padding-right: 20px; scrollbar-width: none; }
	.ka-tabs::-webkit-scrollbar { display: none; }
	.ka-tabs__tab { flex: 0 0 auto; }
	.ka-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 18px; }
	.ka-field--plaats { grid-column: 1 / -1; }
	.ka-toolbar__actions { width: 100%; justify-content: space-between; }
	.ka-sort { flex: 1 1 auto; }
	.ka-sort__label { display: none; }
	.ka .ka-sort select { min-width: 0; width: 100%; }
}

/* Grid and cards */
.ka-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 32px); }
/* Shortcode grids follow how many cards there are: one card never stretches across the page. */
.ka-grid--1 { grid-template-columns: minmax(0, 400px); }
.ka-grid--2 { grid-template-columns: repeat(2, minmax(0, 400px)); }
@media (max-width: 1000px) { .ka-grid, .ka-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ka-grid, .ka-grid--1, .ka-grid--2 { grid-template-columns: minmax(0, 1fr); } }

.ka-card { min-width: 0; }
.ka-card__link {
	position: relative; display: flex; flex-direction: column; height: 100%;
	color: inherit; text-decoration: none; background: var(--ka-white); border-radius: var(--ka-radius); overflow: hidden;
	box-shadow: 0 1px 2px rgba(3, 20, 53, .06), 0 8px 24px -12px rgba(3, 20, 53, .18);
	transition: transform .25s ease, box-shadow .25s ease;
}
/* The gold rule under every heading on the site, here growing along the card's foot. */
.ka-card__link::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--ka-gold);
	transform: scaleX(.18); transform-origin: left; transition: transform .35s ease;
}
.ka-card__link:hover, .ka-card__link:focus-visible { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(3, 20, 53, .06), 0 18px 36px -14px rgba(3, 20, 53, .28); }
.ka-card__link:hover::after, .ka-card__link:focus-visible::after { transform: scaleX(1); }
.ka-card__link:focus-visible { outline: 2px solid var(--ka-navy); outline-offset: 3px; }

.ka-card__photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ka-light); }
.ka-card__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ka-card__link:hover .ka-card__photo img { transform: scale(1.04); }
.ka-card__flags { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.ka-card__flags .ka-badge { box-shadow: 0 2px 8px rgba(3, 20, 53, .18); }
.ka-card__count {
	position: absolute; right: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 5px;
	padding: 4px 8px; border-radius: 2px; background: rgba(3, 20, 53, .72); color: var(--ka-white);
	font-size: 12px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums;
}
.ka-card__count svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; }

.ka-card__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.ka-card__title { font-size: 16px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; line-height: 1.3; }
.ka-card__place { margin: 4px 0 0; color: var(--ka-muted); font-size: 14px; }
.ka-card__facts { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; padding: 0; list-style: none; font-size: 14px; color: var(--ka-text); }
.ka-card__facts li { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.ka-card__facts svg { width: 17px; height: 17px; fill: none; stroke: var(--ka-gold-dark); stroke-width: 1.6; stroke-linejoin: round; }
.ka-card__foot {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ka-light);
}
.ka-card__facts + .ka-card__foot, .ka-card__place + .ka-card__foot { margin-top: 18px; }
.ka-card__body > .ka-card__foot:last-child { margin-top: auto; }
.ka-card__price { color: var(--ka-navy); font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ka-card--verkocht .ka-card__photo img, .ka-card--verkocht-bij-inschrijving .ka-card__photo img { filter: saturate(.7); }
.ka-card--verkocht .ka-card__price { color: var(--ka-muted); font-weight: 600; font-size: 16px; }

/* Energy label: one style for every class, in the house colours (gold arrow, navy letter). */
.ka-energy {
	--e: var(--ka-gold, #ebc273); --e-text: var(--ka-navy, #031435);
	position: relative; display: inline-flex; align-items: center; height: 26px; padding: 0 6px 0 9px; margin-right: 11px;
	background: var(--e); color: var(--e-text); font-size: 13px; font-weight: 700; line-height: 1; letter-spacing: .02em;
	border-radius: 2px 0 0 2px;
}
.ka-energy::after { content: ""; position: absolute; left: 100%; top: 0; border: 13px solid transparent; border-left: 11px solid var(--e); border-right: 0; }

.ka-badge--openhuis { background: var(--ka-navy); color: var(--ka-gold); }

.ka-empty { padding: 40px 0; font-size: 17px; }

/* Pagination */
.ka-pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 40px; }
.ka-pagination .page-numbers {
	display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--ka-sand); border-radius: var(--ka-radius); color: var(--ka-navy); text-decoration: none; font-weight: 600;
}
.ka-pagination .current { background: var(--ka-navy); border-color: var(--ka-navy); color: var(--ka-white); }
.ka-pagination a.page-numbers:hover { border-color: var(--ka-navy); }

/* Map */
.ka-map { position: relative; display: grid; place-items: center; gap: 12px; min-height: 420px; background: var(--ka-light); border-radius: var(--ka-radius); overflow: hidden; }
.ka-map--archive { min-height: min(75vh, 720px); }
.ka-map--single { display: flex; flex-wrap: wrap; justify-content: center; align-content: center; padding: 24px; }
.ka-map--single .ka-map__note { flex-basis: 100%; margin: 0; font-size: 13px; color: var(--ka-muted); text-align: center; }
.ka-map__canvas { position: absolute; inset: 0; }
.ka-map__placeholder { color: var(--ka-muted); }
.ka-pop { display: grid; grid-template-columns: 120px 1fr; gap: 12px; width: 300px; font-family: var(--ka-font); color: var(--ka-text); }
.ka-pop img { width: 120px; height: 80px; object-fit: cover; }
.ka-pop strong { display: block; color: var(--ka-navy); text-transform: uppercase; font-size: 13px; }
.ka-pop a { color: inherit; text-decoration: none; }

/* Single: gallery */
.ka-gallery { display: grid; gap: 8px; grid-template-columns: 2fr 1fr; grid-template-rows: repeat(3, 1fr); aspect-ratio: 16 / 8; margin-bottom: 28px; }
.ka-gallery--1 { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.ka-gallery--2 { grid-template-rows: 1fr; }
.ka-gallery--3 { grid-template-rows: repeat(2, 1fr); }
.ka .ka-gallery__item { position: relative; padding: 0; border: 0; background: var(--ka-light); cursor: zoom-in; overflow: hidden; }
.ka .ka-gallery__item:first-child { grid-row: 1 / -1; }
.ka .ka-gallery__item img { width: 100%; height: 100%; object-fit: cover; }
.ka-gallery__more {
	position: absolute; inset: 0; display: grid; place-items: center;
	background: rgba(3, 20, 53, .55); color: var(--ka-white); font: 600 16px var(--ka-font); text-transform: uppercase; letter-spacing: .05em;
}
@media (max-width: 700px) {
	.ka-gallery { grid-template-columns: 1fr 1fr 1fr; grid-template-rows: auto auto; aspect-ratio: auto; }
	.ka .ka-gallery__item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 3 / 2; }
	.ka .ka-gallery__item:not(:first-child) { aspect-ratio: 1; }
}

/* Single: summary */
.ka-summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px; padding: 0 0 28px; margin-bottom: 32px; border-bottom: 1px solid var(--ka-light); }
.ka-summary__title { font-size: clamp(24px, 3vw, 34px); font-weight: 700; text-transform: uppercase; }
.ka-summary__place { margin: 6px 0 0; color: var(--ka-muted); }
.ka-summary__side { display: grid; justify-items: end; align-content: start; gap: 10px; text-align: right; }
.ka-summary__price { margin: 0; font-size: clamp(20px, 2.4vw, 26px); font-weight: 700; color: var(--ka-navy); }
.ka-openhouse { margin: 0; padding: 6px 12px; background: var(--ka-light); color: var(--ka-navy); font-weight: 600; font-size: 14px; }
.ka-facts { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 18px 0 0; padding: 0; list-style: none; }
.ka-facts strong { color: var(--ka-navy); }
@media (max-width: 700px) { .ka-summary__side { justify-items: start; text-align: left; } }

/* Single: columns */
.ka-columns { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 4vw, 64px); align-items: start; }
@media (max-width: 960px) { .ka-columns { grid-template-columns: minmax(0, 1fr); } }
.ka-section { margin-bottom: clamp(32px, 4vw, 48px); }
.ka-section__title { font-size: 22px; font-weight: 700; text-transform: uppercase; margin-bottom: 16px; }

.ka-readmore__content { max-height: 13em; overflow: hidden; position: relative; }
.ka-readmore__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4em; background: linear-gradient(transparent, var(--ka-white)); }
.ka-readmore.is-open .ka-readmore__content { max-height: none; }
.ka-readmore.is-open .ka-readmore__content::after { display: none; }
.ka .ka-readmore__toggle { margin-top: 10px; padding: 0; border: 0; background: none; color: var(--ka-navy); font: 600 14px var(--ka-font); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ka-readmore.is-short .ka-readmore__content { max-height: none; }
.ka-readmore.is-short .ka-readmore__content::after, .ka-readmore.is-short .ka-readmore__toggle { display: none; }

.ka-features { border-top: 1px solid var(--ka-light); }
.ka-features:last-of-type { border-bottom: 1px solid var(--ka-light); }
.ka-features summary { padding: 14px 0; color: var(--ka-navy); font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; }
.ka-features summary::-webkit-details-marker { display: none; }
.ka-features summary::after { content: "+"; font-weight: 400; font-size: 20px; line-height: 1; }
.ka-features[open] summary::after { content: "–"; }
.ka-features dl { display: grid; grid-template-columns: minmax(140px, 1fr) 2fr; gap: 8px 20px; margin: 0 0 18px; }
.ka-features dt { color: var(--ka-muted); }
.ka-features dd { margin: 0; color: var(--ka-navy); }

.ka-tabs { display: flex; gap: 4px; margin-bottom: 12px; }
.ka .ka-tabs button { padding: 12px 18px; border: 0; border-radius: var(--ka-radius) var(--ka-radius) 0 0; background: var(--ka-light); color: var(--ka-navy); font: 600 13px var(--ka-font); text-transform: uppercase; cursor: pointer; }
.ka .ka-tabs button[aria-selected="true"] { background: var(--ka-navy); color: var(--ka-white); }
.ka-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.ka-thumbs--plans { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.ka .ka-thumbs button { padding: 0; border: 0; background: var(--ka-light); cursor: zoom-in; aspect-ratio: 3 / 2; overflow: hidden; }
.ka-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.ka-thumbs--plans img { object-fit: contain; background: var(--ka-white); }

.ka-contact { position: sticky; top: 130px; display: grid; gap: 12px; padding: 24px; background: var(--ka-light); border-radius: var(--ka-radius); }
.ka-contact__title { font-size: 18px; font-weight: 700; text-transform: uppercase; }
.ka-contact p { margin: 0; }

.ka-more { margin-top: 24px; }

/* Lightbox */
.ka-lightbox { position: fixed; inset: 0; z-index: 100000; display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; background: rgba(3, 20, 53, .96); color: var(--ka-white); }
.ka-lightbox[hidden] { display: none; }
.ka-lightbox figure { margin: 0; display: grid; place-items: center; height: 100vh; padding: 56px 0; }
.ka-lightbox img { max-width: 100%; max-height: 100%; object-fit: contain; }
body .ka-lightbox button { width: 48px; height: 48px; margin: auto; border: 0; border-radius: 50%; background: rgba(255,255,255,.12); color: inherit; font-size: 24px; cursor: pointer; }
body .ka-lightbox button:hover, body .ka-lightbox button:focus-visible { background: var(--ka-gold); color: var(--ka-navy); outline: none; }
.ka-lightbox__close { position: absolute; top: 12px; right: 12px; }
.ka-lightbox__count { position: absolute; top: 22px; left: 0; right: 0; text-align: center; font: 600 14px var(--ka-font, sans-serif); }
@media (max-width: 700px) { .ka-lightbox { grid-template-columns: 0 1fr 0; } .ka-lightbox__prev, .ka-lightbox__next { position: absolute; bottom: 16px; } .ka-lightbox__prev { left: 16px; } .ka-lightbox__next { right: 16px; } }

@media (prefers-reduced-motion: reduce) { .ka * { transition: none !important; } }
.ka-contact--inline { position: static; max-width: 560px; }

/* Bouwnummers */
.ka-table-wrap { overflow-x: auto; }
.ka-table { width: 100%; border-collapse: collapse; min-width: 560px; }
.ka-table th, .ka-table td { padding: 12px 10px; border-bottom: 1px solid var(--ka-light); text-align: left; }
.ka-table th { color: var(--ka-navy); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }

/* [kompas_aanbod titel="…"] block on other pages */
.ka.ka-block { padding: 0; max-width: none; }
.ka-block__title { margin-bottom: 20px; font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; text-transform: uppercase; }
.ka-block__title::after { content: ""; display: block; width: 56px; height: 3px; margin-top: 12px; background: var(--ka-gold); }
.ka-block__more { margin: 28px 0 0; text-align: center; }

/* Bezichtiging aanvragen */
.ka-viewing { display: grid; gap: 12px; }
.ka-viewing input[type="text"], .ka-viewing input[type="email"], .ka-viewing input[type="tel"], .ka-viewing textarea {
	width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--ka-sand); border-radius: var(--ka-radius);
	background: var(--ka-white); color: var(--ka-navy); font: 400 15px var(--ka-font);
}
.ka-viewing textarea { min-height: 80px; resize: vertical; }
.ka-field__optional { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--ka-muted); }
.ka-check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.45; }
.ka-check input { margin-top: 3px; flex-shrink: 0; }
.ka-viewing__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ka-viewing__status { margin: 0; font-weight: 600; color: var(--ka-navy); }
.ka-viewing__status.is-error { color: #b32d2e; }
.ka-viewing.is-sent .ka-field, .ka-viewing.is-sent .ka-check, .ka-viewing.is-sent .ka-button { display: none; }
.ka-contact__or { font-size: 14px; }

/* ---- Detail page ---------------------------------------------------------- */
.ka-icon { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: var(--ka-gold-dark); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }

.ka-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; padding: 0; list-style: none; font-size: 13px; color: var(--ka-muted); }
.ka-crumbs li + li::before { content: "›"; margin-right: 6px; color: var(--ka-sand); }
.ka-crumbs a { color: var(--ka-navy); text-decoration: none; }
.ka-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }

.ka-gallery { position: relative; }
.ka-gallery__actions { position: absolute; right: 16px; bottom: 16px; z-index: 2; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.ka .ka-chip {
	display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 0; border-radius: 2px;
	background: rgba(255, 255, 255, .94); color: var(--ka-navy); box-shadow: 0 4px 14px rgba(3, 20, 53, .2);
	font: 700 13px/1 var(--ka-font); letter-spacing: .03em; text-decoration: none; cursor: pointer;
}
.ka .ka-chip:hover, .ka .ka-chip:focus-visible { background: var(--ka-gold); }
.ka-chip .ka-icon { width: 17px; height: 17px; stroke: currentColor; }
.ka-gallery .ka-gallery__more { display: none; }

.ka-head {
	display: grid; grid-template-columns: 1fr auto; gap: 18px 32px; align-items: start;
	padding: 28px 0 30px; margin-bottom: 36px; border-bottom: 1px solid var(--ka-light);
}
.ka-head__title { font-size: clamp(26px, 3.2vw, 40px); font-weight: 700; text-transform: uppercase; letter-spacing: .01em; }
.ka-head__place { margin: 6px 0 0; color: var(--ka-muted); font-size: 16px; }
.ka-head__side { display: grid; justify-items: end; gap: 10px; }
.ka-head__price { margin: 0; color: var(--ka-navy); font-size: clamp(24px, 2.6vw, 32px); font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ka-head__facts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; margin: 4px 0 0; padding: 0; list-style: none; }
.ka-head__facts li { display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 12px; background: var(--ka-light); color: var(--ka-text); font-size: 15px; }
.ka-head__facts strong { color: var(--ka-navy); }
.ka-head .ka-openhouse { grid-column: 1 / -1; justify-self: start; }
@media (max-width: 700px) {
	.ka-head { grid-template-columns: 1fr; }
	.ka-head__side { justify-items: start; grid-row: 2; }
	.ka-head__facts li { flex: 1 1 calc(50% - 6px); }
}

.ka-features dl { grid-template-columns: 1fr 1fr; column-gap: 32px; row-gap: 0; }
.ka-features dl > div { display: grid; grid-template-columns: minmax(120px, 1fr) 1.2fr; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--ka-light); }
@media (max-width: 700px) { .ka-features dl { grid-template-columns: 1fr; } }

.ka-thumbs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 700px) { .ka-thumbs { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; } .ka-thumbs__more { font-size: 15px; } }
.ka .ka-thumbs button { position: relative; }
.ka-thumbs__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(3, 20, 53, .62); color: #fff; font: 700 20px var(--ka-font); }

.ka-map--single { min-height: 0; display: grid; gap: 14px; justify-items: start; justify-content: start; align-content: start; place-items: start; padding: 26px 28px; background: var(--ka-light); }
.ka-map__address { display: flex; align-items: center; gap: 10px; margin: 0; color: var(--ka-navy); font-weight: 700; }
.ka-map__buttons { display: flex; flex-wrap: wrap; gap: 10px; }
.ka-map--single .ka-map__note { margin: 0; text-align: left; }
.ka-map--single:has(.ka-map__canvas) { min-height: 420px; padding: 0; }

.ka-contact { padding: 0; background: var(--ka-white); box-shadow: 0 1px 2px rgba(3, 20, 53, .06), 0 14px 32px -18px rgba(3, 20, 53, .35); }
.ka-contact__title { margin: 0; padding: 20px 24px; background: var(--ka-navy); color: var(--ka-white) !important; font-size: 17px; }
.ka-contact__body { display: grid; gap: 12px; padding: 22px 24px 26px; }
.ka-contact__body > p { margin: 0; }

/* Phones: price and the viewing request always at hand. */
.ka-stickybar { display: none; }
@media (max-width: 960px) {
	.ka-stickybar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 9990; display: flex; align-items: center; justify-content: space-between; gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--ka-white); box-shadow: 0 -6px 20px rgba(3, 20, 53, .14);
	}
	.ka-stickybar__price { color: var(--ka-navy); font-size: 17px; font-weight: 700; white-space: nowrap; }
	.ka .ka-stickybar .ka-button { min-height: 44px; padding: 0 14px; font-size: 12px; white-space: nowrap; }
	.ka-single { padding-bottom: 96px; }
}

/*
 * The Elementor text below an archive: headings in a left column, their text and buttons on the right, on the
 * same 1400px as the cards above, so the lines stay readable. Only the layout; the content stays in Elementor.
 */
.ka-below { border-top: 1px solid #eae8e5; }
@media (min-width: 900px) {
	.ka-below > .elementor > .e-con > .e-con-inner, .ka-below > .elementor > .e-con.e-con-full {
		display: grid !important; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); column-gap: clamp(40px, 6vw, 110px); row-gap: 0; align-items: start;
	}
	.ka-below .elementor-widget { width: auto !important; max-width: none !important; }
	.ka-below .elementor-widget-heading { grid-column: 1; }
	.ka-below .elementor-widget:not(.elementor-widget-heading) { grid-column: 2; }
	.ka-below .elementor-widget-heading:not(:first-child), .ka-below .elementor-widget-heading:not(:first-child) + .elementor-widget { margin-top: clamp(32px, 3vw, 48px) !important; }
	.ka-below .elementor-widget-heading .elementor-heading-title { font-size: clamp(22px, 2vw, 28px) !important; line-height: 1.2 !important; }
	.ka-below .elementor-widget-text-editor { font-size: 17px; line-height: 1.7; }
	.ka-below .elementor-widget-button { margin-top: 28px; }
}
.ka-below > .elementor > .e-con { padding-top: clamp(40px, 5vw, 72px) !important; padding-bottom: clamp(48px, 5vw, 80px) !important; }
@media (max-width: 899px) {
	.ka-below .elementor-widget-text-editor, .ka-below .elementor-widget-text-editor p { font-size: 16px !important; line-height: 1.65 !important; }
}
.ka-card__summary { margin: 4px 0 0; color: var(--ka-text); font-size: 14px; line-height: 1.5; }

/* Sold: the asking price struck through, in a quieter colour. */
.ka s { color: var(--ka-muted); text-decoration-thickness: 2px; text-decoration-color: var(--ka-gold-dark); }
