/* ============================================================
   LOGO — main.css v3 (Boutique Real Estate)
   Style: Sotheby's / Knight Frank inspired — refined, structured.
   No script fonts, sharper corners, more breathing room.
   Mobile-first, no horizontal overflow anywhere.
   ============================================================ */

:root {
	/* palette */
	--kp-bg: #f5f2ec;
	--kp-bg-alt: #ebe6db;
	--kp-bg-soft: #faf8f3;
	--kp-bg-card: #ffffff;
	--kp-bg-dark: #0a1424;
	--kp-bg-deep: #060d1a;
	--kp-ink: #0a1424;
	--kp-ink-soft: #2a3850;
	--kp-muted: #6b7387;
	--kp-muted-soft: #99a0b2;
	--kp-line: #d8d1c0;
	--kp-line-soft: #e9e3d4;
	--kp-gold: #b48942;
	--kp-gold-light: #d4ae6a;
	--kp-gold-deep: #8a682f;
	--kp-warn: #b86e23;
	--kp-success: #2a7050;
	--kp-error: #a13a3a;

	/* type */
	--kp-serif: 'Fraunces', 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--kp-sans:  'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

	/* shape — sharper, corporate */
	--kp-radius-xs: 4px;
	--kp-radius-sm: 6px;
	--kp-radius:    10px;
	--kp-radius-lg: 14px;
	--kp-radius-xl: 18px;

	/* shadow */
	--kp-shadow-xs: 0 1px 2px rgba(10, 20, 36, 0.06);
	--kp-shadow-sm: 0 2px 8px rgba(10, 20, 36, 0.06), 0 1px 3px rgba(10, 20, 36, 0.04);
	--kp-shadow:    0 12px 32px -8px rgba(10, 20, 36, 0.16), 0 4px 12px -2px rgba(10, 20, 36, 0.06);
	--kp-shadow-lg: 0 28px 64px -16px rgba(10, 20, 36, 0.22), 0 8px 24px -4px rgba(10, 20, 36, 0.10);

	/* layout */
	--kp-container: 1320px;
	--kp-container-narrow: 1080px;
	--kp-gutter: clamp(18px, 4vw, 56px);

	/* motion */
	--kp-ease: cubic-bezier(.22, 1, .36, 1);
	--kp-ease-out: cubic-bezier(.16, 1, .3, 1);

	/* sizing */
	--kp-header-h: 88px;
	--kp-header-h-sm: 64px;
	--kp-touch: 44px;
}

/* ===== RESET ===== */
*, *::before, *::after { box-sizing: border-box; }
html {
	-webkit-text-size-adjust: 100%;
	-moz-text-size-adjust: 100%;
	scroll-padding-top: 100px;
	overflow-x: hidden;
	overflow-x: clip;
}
body {
	margin: 0;
	overflow-x: hidden;
	overflow-x: clip;
	font-family: var(--kp-sans);
	font-size: 16px;
	line-height: 1.65;
	color: var(--kp-ink);
	background: var(--kp-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: 'ss01', 'cv11';
}
body.kp-noscroll { overflow: hidden; touch-action: none; }
body.kp-loading * { transition: none !important; animation: none !important; }

img, picture, video, svg {
	max-width: 100%;
	height: auto;
	display: block;
}
img { background: var(--kp-bg-alt); }
a { color: inherit; text-decoration: none; transition: color .25s var(--kp-ease); -webkit-tap-highlight-color: transparent; }
a:hover { color: var(--kp-gold-deep); }
button { font: inherit; cursor: pointer; background: none; border: 0; color: inherit; -webkit-tap-highlight-color: transparent; padding: 0; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--kp-gold);
	outline-offset: 3px;
	border-radius: 3px;
}
input, select, textarea { font: inherit; color: inherit; max-width: 100%; }
input::placeholder, textarea::placeholder { color: var(--kp-muted-soft); }

h1, h2, h3, h4, h5 {
	font-family: var(--kp-serif);
	font-weight: 450;
	line-height: 1.1;
	margin: 0 0 .4em;
	letter-spacing: -.025em;
	color: var(--kp-ink);
	font-optical-sizing: auto;
	font-feature-settings: 'ss01';
}
h1, h2 { font-variation-settings: 'opsz' 144, 'SOFT' 50; }
h3, h4 { font-variation-settings: 'opsz' 72; }
h1 em, h2 em, h3 em {
	font-style: italic;
	color: var(--kp-gold-deep);
	font-weight: 400;
	font-variation-settings: 'opsz' 144, 'SOFT' 100;
}
p { margin: 0 0 1em; }

.kp-h1 { font-size: clamp(2.2rem, 6.4vw, 4.6rem); }
.kp-h2 { font-size: clamp(1.85rem, 4.4vw, 3.2rem); }
.kp-h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }

.kp-skip {
	position: absolute; left: -9999px; top: 0;
	padding: 12px 20px; background: var(--kp-ink); color: #fff; z-index: 9999;
	font-size: 14px;
}
.kp-skip:focus { left: 0; top: 0; }

.kp-icon { display: inline-flex; width: 1.1em; height: 1.1em; flex-shrink: 0; }
.kp-icon svg { width: 100%; height: 100%; }

.kp-container {
	width: 100%;
	max-width: var(--kp-container);
	margin: 0 auto;
	padding: 0 var(--kp-gutter);
}

/* ===== HEADER ===== */
.kp-header {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 80;
	height: var(--kp-header-h-sm);
	display: flex;
	align-items: center;
	transition: background .4s var(--kp-ease), backdrop-filter .4s var(--kp-ease), border-color .4s var(--kp-ease), height .4s var(--kp-ease);
	border-bottom: 1px solid transparent;
}
@media (min-width: 900px) { .kp-header { height: var(--kp-header-h); } }

/* light header — non-home pages */
body:not(.home) .kp-header {
	background: rgba(245, 242, 236, 0.94);
	backdrop-filter: saturate(180%) blur(20px);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	border-color: rgba(216, 209, 192, 0.6);
}

/* scrolled state — home becomes light too */
.kp-header.is-scrolled {
	background: rgba(245, 242, 236, 0.94);
	backdrop-filter: saturate(180%) blur(20px);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	border-color: rgba(216, 209, 192, 0.6);
	height: 60px;
}
@media (min-width: 900px) { .kp-header.is-scrolled { height: 68px; } }

.kp-header__inner {
	width: 100%;
	max-width: var(--kp-container); margin: 0 auto;
	padding: 0 var(--kp-gutter);
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}

/* Brand / Logo */
.kp-brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.kp-brand__logo {
	height: 28px;
	width: auto;
	background: transparent;
	transition: filter .35s var(--kp-ease), opacity .35s var(--kp-ease);
}
@media (min-width: 900px) { .kp-brand__logo { height: 36px; } }

/* Logo color logic:
   - PNG source is white. On dark bg = stays white. On light bg = needs invert. */
.kp-brand__logo { filter: brightness(0); /* default: dark logo for light headers */ }
body.home .kp-header:not(.is-scrolled) .kp-brand__logo { filter: none; /* white logo on dark hero */ }
.kp-mobile .kp-brand__logo { filter: none; /* white logo on dark mobile bg */ }

/* Nav */
.kp-nav { display: none; }
@media (min-width: 1100px) {
	.kp-nav { display: block; }
	.kp-nav ul { list-style: none; display: flex; gap: 32px; padding: 0; margin: 0; }
	.kp-nav a {
		position: relative;
		font-size: 13.5px; font-weight: 500;
		color: var(--kp-ink-soft);
		padding: 8px 0;
		letter-spacing: .02em;
	}
	body.home .kp-header:not(.is-scrolled) .kp-nav a { color: rgba(255,255,255,0.85); }
	body.home .kp-header:not(.is-scrolled) .kp-nav a:hover { color: #fff; }
	.kp-nav a::after {
		content: '';
		position: absolute; left: 0; right: 100%; bottom: 2px;
		height: 1px;
		background: var(--kp-gold);
		transition: right .35s var(--kp-ease);
	}
	.kp-nav a:hover { color: var(--kp-ink); }
	.kp-nav a:hover::after { right: 0; }
}

.kp-header__cta { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
@media (min-width: 700px) { .kp-header__cta { gap: 16px; } }

/* phone link — visible only on wide screens */
.kp-link {
	display: none;
	align-items: center; gap: 8px;
	font-size: 13.5px; font-weight: 500;
	color: var(--kp-ink-soft);
	white-space: nowrap;
}
@media (min-width: 1280px) { .kp-link { display: inline-flex; } }
.kp-link:hover { color: var(--kp-gold-deep); }
.kp-link .kp-icon { color: var(--kp-gold-deep); width: 16px; height: 16px; }
body.home .kp-header:not(.is-scrolled) .kp-link { color: rgba(255,255,255,0.85); }
body.home .kp-header:not(.is-scrolled) .kp-link .kp-icon { color: var(--kp-gold-light); }

/* Buttons */
.kp-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 8px;
	min-height: var(--kp-touch);
	padding: 12px 22px;
	font-size: 13.5px; font-weight: 500;
	letter-spacing: .02em;
	border-radius: var(--kp-radius-sm);
	transition: background .3s var(--kp-ease), color .3s var(--kp-ease), border-color .3s var(--kp-ease), transform .2s var(--kp-ease);
	white-space: nowrap;
	border: 1.5px solid transparent;
}
.kp-btn .kp-icon { width: 14px; height: 14px; transition: transform .35s var(--kp-ease); }
.kp-btn:hover .kp-icon { transform: translateX(3px); }
.kp-btn:active { transform: scale(.97); }

.kp-btn--solid {
	background: var(--kp-ink); color: #fff;
	border-color: var(--kp-ink);
}
.kp-btn--solid:hover {
	background: var(--kp-gold-deep);
	border-color: var(--kp-gold-deep);
	color: #fff;
}
.kp-btn--ghost {
	background: transparent;
	color: var(--kp-ink);
	border-color: var(--kp-ink);
}
.kp-btn--ghost:hover { background: var(--kp-ink); color: #fff; }
.kp-btn--white { background: #fff; color: var(--kp-ink); border-color: #fff; }
.kp-btn--white:hover { background: var(--kp-gold); color: var(--kp-ink); border-color: var(--kp-gold); }

body.home .kp-header:not(.is-scrolled) .kp-btn--solid {
	background: rgba(255,255,255,0.95);
	color: var(--kp-ink);
	border-color: rgba(255,255,255,0.95);
}
body.home .kp-header:not(.is-scrolled) .kp-btn--solid:hover {
	background: var(--kp-gold);
	border-color: var(--kp-gold);
}

/* Burger button */
.kp-burger {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 44px;
	padding: 0 14px 0 12px;
	border-radius: var(--kp-radius-sm);
	border: 1.5px solid var(--kp-ink);
	background: transparent;
	color: var(--kp-ink);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	transition: background .25s var(--kp-ease), color .25s var(--kp-ease), border-color .25s var(--kp-ease);
	flex-shrink: 0;
}
@media (min-width: 1100px) { .kp-burger { display: none; } }
.kp-burger__lines { display: inline-flex; flex-direction: column; gap: 4px; }
.kp-burger__lines span {
	display: block; width: 16px; height: 1.5px;
	background: currentColor;
	transition: transform .3s var(--kp-ease);
}
.kp-burger__label { display: none; }
@media (min-width: 480px) { .kp-burger__label { display: inline; } }
.kp-burger:hover { background: var(--kp-ink); color: #fff; }

body.home .kp-header:not(.is-scrolled) .kp-burger {
	border-color: rgba(255,255,255,0.5);
	color: #fff;
}
body.home .kp-header:not(.is-scrolled) .kp-burger:hover {
	background: rgba(255,255,255,0.95);
	color: var(--kp-ink);
	border-color: rgba(255,255,255,0.95);
}

/* hide nav cta button on small screens (only logo + phone-icon + burger) */
@media (max-width: 600px) {
	.kp-header__cta .kp-btn:not(.kp-burger) { display: none; }
}

/* ===== MOBILE MENU ===== */
.kp-mobile {
	position: fixed; inset: 0;
	z-index: 90;
	background: var(--kp-bg-deep);
	color: #fff;
	visibility: hidden;
	opacity: 0;
	transition: opacity .45s var(--kp-ease), visibility .45s;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior: contain;
}
.kp-mobile.is-open { visibility: visible; opacity: 1; }
.kp-mobile__bg {
	position: absolute; inset: 0;
	pointer-events: none;
	background:
		radial-gradient(circle at 15% 10%, rgba(180, 137, 66, 0.18), transparent 50%),
		radial-gradient(circle at 85% 90%, rgba(80, 110, 160, 0.14), transparent 50%);
}

.kp-mobile__top {
	position: sticky; top: 0;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px var(--kp-gutter);
	background: rgba(6, 13, 26, 0.85);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border-bottom: 1px solid rgba(255,255,255,0.08);
}
.kp-mobile__top .kp-brand__logo { height: 28px; }
.kp-mobile__close {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 14px;
	min-height: 40px;
	border-radius: var(--kp-radius-sm);
	border: 1px solid rgba(255,255,255,0.18);
	background: rgba(255,255,255,0.05);
	color: rgba(255,255,255,0.9);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	transition: background .25s, color .25s, border-color .25s;
}
.kp-mobile__close:hover, .kp-mobile__close:focus-visible {
	background: rgba(255,255,255,0.12);
	color: #fff;
	border-color: rgba(255,255,255,0.32);
}
.kp-mobile__close .kp-icon { width: 16px; height: 16px; }
@media (max-width: 380px) { .kp-mobile__close span:last-child { display: none; } }

.kp-mobile__inner {
	position: relative;
	z-index: 1;
	padding: 30px var(--kp-gutter) 50px;
	max-width: 720px;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
	min-height: calc(100vh - 70px);
	min-height: calc(100dvh - 70px);
}

.kp-mobile nav {
	display: flex;
	flex-direction: column;
	gap: 0;
	flex: 1;
	margin-bottom: 30px;
}
.kp-mobile nav a {
	display: flex;
	align-items: baseline;
	gap: 16px;
	color: #fff;
	padding: 18px 0;
	border-bottom: 1px solid rgba(255,255,255,0.08);
	opacity: 0;
	transform: translateX(20px);
	transition: opacity .5s var(--kp-ease), transform .5s var(--kp-ease), color .25s, border-color .25s;
	font-family: var(--kp-serif);
	min-height: var(--kp-touch);
}
.kp-mobile nav a:hover, .kp-mobile nav a:focus-visible {
	color: var(--kp-gold-light);
	border-bottom-color: rgba(180, 137, 66, 0.35);
}
.kp-mobile.is-open nav a { opacity: 1; transform: translateX(0); }
.kp-mobile.is-open nav a { transition-delay: calc(0.1s + var(--kp-i, 0) * 0.06s); }

.kp-mobile__num {
	font-size: 12px;
	font-family: var(--kp-sans);
	font-weight: 500;
	color: var(--kp-gold);
	letter-spacing: .12em;
	width: 24px;
	flex-shrink: 0;
}
.kp-mobile__label {
	font-size: clamp(28px, 7vw, 42px);
	font-weight: 400;
	letter-spacing: -.01em;
	line-height: 1.1;
}

.kp-mobile__contact {
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,0.08);
	display: grid;
	gap: 12px;
	font-size: 14px;
	opacity: 0;
	transform: translateY(15px);
	transition: opacity .5s var(--kp-ease) .55s, transform .5s var(--kp-ease) .55s;
}
.kp-mobile.is-open .kp-mobile__contact { opacity: 1; transform: translateY(0); }
.kp-mobile__contact a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	color: rgba(255,255,255,0.85);
	min-height: 36px;
}
.kp-mobile__contact a:hover { color: var(--kp-gold-light); }
.kp-mobile__contact .kp-icon { color: var(--kp-gold); width: 18px; height: 18px; }
.kp-mobile__contact span { word-break: break-word; }

.kp-mobile__social {
	display: flex; gap: 8px;
	margin-top: 24px;
	opacity: 0;
	transform: translateY(15px);
	transition: opacity .5s var(--kp-ease) .65s, transform .5s var(--kp-ease) .65s;
}
.kp-mobile.is-open .kp-mobile__social { opacity: 1; transform: translateY(0); }
.kp-mobile__social a {
	width: 40px; height: 40px;
	display: grid; place-items: center;
	background: rgba(255,255,255,0.05);
	color: rgba(255,255,255,0.75);
	border-radius: var(--kp-radius-sm);
	border: 1px solid rgba(255,255,255,0.1);
	transition: background .25s, color .25s, transform .25s, border-color .25s;
}
.kp-mobile__social a:hover {
	background: var(--kp-gold);
	color: var(--kp-ink);
	border-color: var(--kp-gold);
	transform: translateY(-1px);
}
.kp-mobile__social .kp-icon { width: 18px; height: 18px; }

/* ===== HERO ===== */
.kp-hero {
	position: relative;
	min-height: 100vh; min-height: 100svh;
	display: flex; align-items: center;
	padding: calc(var(--kp-header-h-sm) + 50px) 0 80px;
	color: #fff;
	overflow: hidden;
	isolation: isolate;
	background: var(--kp-bg-deep);
}
@media (min-width: 900px) { .kp-hero { padding: calc(var(--kp-header-h) + 80px) 0 110px; } }
.kp-hero__bg {
	position: absolute; inset: -8% -2%;
	background-image: url('https://images.unsplash.com/photo-1600585154340-be6161a56a0c?auto=format&fit=crop&w=2400&q=85');
	background-size: cover; background-position: center;
	will-change: transform; z-index: -2;
}
.kp-hero__overlay {
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(180deg, rgba(6,13,26,0.6) 0%, rgba(6,13,26,0.85) 75%, rgba(6,13,26,0.95) 100%),
		linear-gradient(120deg, rgba(180,137,66,0.16) 0%, transparent 55%);
}
.kp-hero__orbs { position: absolute; inset: 0; pointer-events: none; z-index: -1; overflow: hidden; }
.kp-orb { position: absolute; border-radius: 50%; filter: blur(90px); }
.kp-orb--1 { background: var(--kp-gold); width: 380px; height: 380px; top: 8%; left: -12%; opacity: .3; }
.kp-orb--2 { background: #4a6f9c; width: 340px; height: 340px; bottom: -15%; right: 5%; opacity: .22; }
.kp-orb--3 { background: var(--kp-gold-light); width: 480px; height: 480px; top: 35%; right: -18%; opacity: .14; }

.kp-hero__inner {
	position: relative; z-index: 1;
	max-width: var(--kp-container-narrow);
	margin: 0 auto;
	text-align: center;
	padding: 0 var(--kp-gutter);
	width: 100%;
}
.kp-hero__eyebrow { margin-bottom: 22px; }
.kp-pill {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 18px;
	border-radius: 100px;
	font-size: 11px;
	letter-spacing: .26em;
	text-transform: uppercase;
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.14);
	backdrop-filter: blur(10px);
	color: rgba(255,255,255,0.95);
	font-weight: 500;
	max-width: 100%;
}
.kp-pill::before {
	content: '';
	width: 6px; height: 6px;
	background: var(--kp-gold);
	border-radius: 50%;
	box-shadow: 0 0 12px var(--kp-gold);
	flex-shrink: 0;
}
@media (max-width: 480px) {
	.kp-pill {
		font-size: 10px;
		letter-spacing: .18em;
		padding: 7px 14px;
	}
}

.kp-hero__title {
	font-family: var(--kp-serif);
	font-weight: 400;
	font-size: clamp(2.4rem, 7vw, 5.6rem);
	line-height: 1.04;
	margin: 0 0 24px;
	letter-spacing: -.025em;
	color: #fff;
}
.kp-hero__title span { display: block; }
.kp-hero__title em { font-style: italic; color: var(--kp-gold-light); font-weight: 400; }
.kp-hero__title strong { font-weight: 500; }

.kp-hero__lead {
	max-width: 620px; margin: 0 auto 36px;
	font-size: clamp(15px, 1.8vw, 17px);
	color: rgba(255,255,255,0.78);
	line-height: 1.7;
}

.kp-search {
	display: grid;
	grid-template-columns: 1fr;
	background: rgba(255,255,255,0.97);
	color: var(--kp-ink);
	border-radius: var(--kp-radius);
	padding: 8px;
	box-shadow: 0 32px 80px -20px rgba(0,0,0,0.5);
	max-width: 980px; margin: 0 auto;
	text-align: left;
	gap: 4px;
}
@media (min-width: 720px) {
	.kp-search {
		grid-template-columns: repeat(4, 1fr) auto;
		border-radius: 100px;
		padding: 6px 6px 6px 12px;
		gap: 0;
	}
}
.kp-search__field {
	padding: 10px 16px;
	border-bottom: 1px solid var(--kp-line-soft);
	min-height: 56px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
@media (min-width: 720px) {
	.kp-search__field {
		border-bottom: 0;
		border-right: 1px solid var(--kp-line-soft);
		padding: 8px 18px;
		min-height: 52px;
	}
	.kp-search__field:nth-last-child(2) { border-right: 0; }
}
.kp-search__field label {
	display: block;
	font-size: 10px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--kp-muted);
	margin-bottom: 2px;
	font-weight: 600;
}
.kp-search__field select {
	width: 100%; border: 0; padding: 0; background: transparent;
	font-size: 14.5px; font-weight: 500; cursor: pointer; outline: 0;
	appearance: none;
	color: var(--kp-ink);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230a1424' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right center;
	background-size: 12px;
	padding-right: 18px;
}
.kp-search__submit {
	display: flex; align-items: center; justify-content: center; gap: 10px;
	padding: 16px 24px;
	min-height: var(--kp-touch);
	background: var(--kp-ink); color: #fff;
	border-radius: var(--kp-radius-sm);
	font-size: 14px; font-weight: 500; letter-spacing: .04em;
	text-transform: uppercase;
	transition: background .3s var(--kp-ease);
}
@media (min-width: 720px) { .kp-search__submit { border-radius: 100px; padding: 0 32px; } }
.kp-search__submit:hover { background: var(--kp-gold-deep); }

.kp-hero__meta {
	margin: 40px auto 0;
	max-width: 560px;
	padding-top: 28px;
	border-top: 1px solid rgba(255,255,255,0.12);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
}
.kp-hero__metric {
	text-align: center;
	padding: 0 8px;
	border-right: 1px solid rgba(255,255,255,0.12);
	min-width: 0;
}
.kp-hero__metric:last-child { border-right: 0; }
.kp-hero__metric strong {
	display: block;
	font-family: var(--kp-sans);
	font-size: clamp(20px, 4.2vw, 28px);
	font-weight: 600;
	color: #fff;
	line-height: 1;
	letter-spacing: -.015em;
	font-feature-settings: 'tnum';
}
.kp-hero__metric span {
	display: block;
	font-size: clamp(10px, 1.3vw, 11.5px);
	color: rgba(255,255,255,0.55);
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-top: 8px;
	line-height: 1.45;
	font-weight: 500;
}
@media (min-width: 720px) {
	.kp-hero__meta { margin-top: 56px; max-width: 600px; padding-top: 32px; }
	.kp-hero__metric { padding: 0 14px; }
}
@media (max-width: 380px) {
	.kp-hero__meta { padding-top: 22px; margin-top: 32px; }
	.kp-hero__metric { padding: 0 6px; }
	.kp-hero__metric span { font-size: 9.5px; letter-spacing: .04em; margin-top: 6px; }
}

.kp-hero__scroll {
	position: absolute; bottom: 24px; left: 50%;
	transform: translateX(-50%);
	width: 22px; height: 38px;
	border: 1px solid rgba(255,255,255,0.4);
	border-radius: 100px;
	display: none;
	place-items: center;
}
@media (min-width: 1024px) { .kp-hero__scroll { display: grid; } }
.kp-hero__scroll span {
	display: block; width: 2px; height: 8px;
	background: #fff; border-radius: 2px;
	animation: kp-scroll-tick 1.8s infinite ease-out;
}
@keyframes kp-scroll-tick {
	0% { transform: translateY(-8px); opacity: 0; }
	35% { opacity: 1; }
	100% { transform: translateY(8px); opacity: 0; }
}

/* ===== SECTIONS ===== */
.kp-section {
	padding: clamp(60px, 9vh, 120px) 0;
	position: relative;
}
.kp-section__head {
	max-width: 760px; margin: 0 auto 44px;
}
@media (min-width: 900px) { .kp-section__head { margin-bottom: 64px; } }
.kp-section__head--center { text-align: center; }
.kp-section__lead {
	font-size: clamp(15px, 1.8vw, 17px);
	color: var(--kp-muted);
	max-width: 56ch;
	line-height: 1.7;
}
.kp-section__head--center .kp-section__lead { margin: 0 auto; }
.kp-section__foot { margin-top: 60px; text-align: center; }
@media (min-width: 900px) { .kp-section__foot { margin-top: 80px; } }

.kp-eyebrow {
	display: inline-block;
	font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
	color: var(--kp-gold-deep);
	font-weight: 600;
	padding-bottom: 12px;
	position: relative;
	margin-bottom: 18px;
}
.kp-eyebrow::after {
	content: ''; position: absolute; bottom: 0; left: 0;
	width: 32px; height: 1px; background: var(--kp-gold);
}
.kp-section__head--center .kp-eyebrow::after { left: 50%; transform: translateX(-50%); width: 40px; }

.kp-grid { display: grid; gap: 22px; }
@media (min-width: 640px) { .kp-grid { gap: 26px; } }
.kp-grid--3 { grid-template-columns: 1fr; }
@media (min-width: 600px) { .kp-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .kp-grid--3 { grid-template-columns: repeat(3, 1fr); } }

/* ===== PROPERTY CARD ===== */
.kp-card {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	overflow: hidden;
	box-shadow: var(--kp-shadow-sm);
	transition: transform .5s var(--kp-ease), box-shadow .5s var(--kp-ease);
	display: flex; flex-direction: column;
	min-width: 0;
}
@media (hover: hover) {
	.kp-card:hover { transform: translateY(-6px); box-shadow: var(--kp-shadow); }
}
.kp-card__media {
	position: relative; display: block;
	aspect-ratio: 4/3;
	overflow: hidden;
	background: var(--kp-bg-dark);
}
.kp-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1s var(--kp-ease);
}
@media (hover: hover) { .kp-card:hover .kp-card__media img { transform: scale(1.06); } }

.kp-card__media::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(10, 20, 36, 0.45) 100%);
	opacity: 0; transition: opacity .5s var(--kp-ease);
	pointer-events: none;
}
@media (hover: hover) { .kp-card:hover .kp-card__media::after { opacity: 1; } }

.kp-card__tags {
	position: absolute; top: 12px; left: 12px;
	display: flex; gap: 5px; flex-wrap: wrap;
	z-index: 2; max-width: calc(100% - 60px);
}
.kp-tag {
	font-size: 10px; letter-spacing: .15em; text-transform: uppercase;
	padding: 5px 11px; border-radius: 4px;
	background: rgba(255,255,255,0.96);
	color: var(--kp-ink);
	font-weight: 600;
	box-shadow: 0 1px 3px rgba(0,0,0,0.08);
	backdrop-filter: blur(8px);
}
.kp-tag--deal { background: var(--kp-ink); color: #fff; }
.kp-tag--warn { background: var(--kp-warn); color: #fff; }
.kp-tag--muted { background: var(--kp-muted); color: #fff; }

.kp-card__fav {
	position: absolute; top: 10px; right: 10px;
	width: 38px; height: 38px;
	border-radius: 50%;
	background: rgba(255,255,255,0.96);
	display: grid; place-items: center;
	color: var(--kp-ink-soft);
	z-index: 2;
	transition: background .25s, color .25s, transform .25s;
	backdrop-filter: blur(8px);
}
.kp-card__fav:hover { background: var(--kp-ink); color: var(--kp-gold-light); transform: scale(1.05); }
.kp-card__fav.is-active { color: var(--kp-error); }
.kp-card__fav.is-active .kp-icon svg { fill: currentColor; }

.kp-card__body {
	padding: 22px 22px 24px;
	display: flex; flex-direction: column; gap: 10px;
	flex: 1;
	min-width: 0;
}
@media (min-width: 600px) { .kp-card__body { padding: 24px 24px 26px; } }
.kp-card__loc {
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 12.5px; color: var(--kp-muted);
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.kp-card__loc .kp-icon { color: var(--kp-gold-deep); width: 14px; height: 14px; }
.kp-card__title {
	font-size: clamp(18px, 1.6vw, 21px);
	line-height: 1.3;
	margin: 0;
	font-weight: 500;
}
.kp-card__title a:hover { color: var(--kp-gold-deep); }
.kp-card__subtitle { font-size: 13.5px; color: var(--kp-muted); margin: -2px 0 0; line-height: 1.5; }
.kp-card__specs {
	list-style: none; padding: 12px 0 0; margin: 4px 0 0;
	border-top: 1px solid var(--kp-line-soft);
	display: flex; gap: 16px; flex-wrap: wrap;
	font-size: 13px; color: var(--kp-ink-soft);
	font-weight: 500;
}
.kp-card__specs li { display: inline-flex; align-items: center; gap: 6px; }
.kp-card__specs .kp-icon { color: var(--kp-gold-deep); width: 14px; height: 14px; }
.kp-card__foot {
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid var(--kp-line-soft);
	display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
}
.kp-card__price strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(20px, 1.9vw, 24px);
	font-weight: 500;
	color: var(--kp-ink);
	line-height: 1.1;
	letter-spacing: -.005em;
}
.kp-card__price span {
	display: block; font-size: 11.5px;
	color: var(--kp-muted); margin-top: 2px;
	letter-spacing: .02em;
}
.kp-card__cta {
	width: 40px; height: 40px;
	display: grid; place-items: center;
	background: var(--kp-bg-alt); color: var(--kp-ink);
	border-radius: var(--kp-radius-sm);
	transition: background .3s var(--kp-ease), color .3s var(--kp-ease);
	flex-shrink: 0;
}
.kp-card__cta:hover { background: var(--kp-ink); color: var(--kp-gold-light); }

/* ===== FEATURED ===== */
.kp-featured { padding-top: clamp(60px, 9vh, 120px); }

.kp-featured__head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 40px;
	max-width: none;
}
@media (min-width: 900px) {
	.kp-featured__head {
		grid-template-columns: 1fr auto;
		align-items: end;
		gap: 30px;
		margin-bottom: 56px;
	}
}

.kp-featured__nav {
	display: flex;
	gap: 10px;
	align-self: center;
}
@media (min-width: 900px) { .kp-featured__nav { align-self: end; padding-bottom: 4px; } }

.kp-featured__btn {
	width: 48px; height: 48px;
	border-radius: 50%;
	background: var(--kp-bg-card);
	color: var(--kp-ink);
	border: 1.5px solid var(--kp-line);
	display: grid; place-items: center;
	transition: background .25s var(--kp-ease), color .25s var(--kp-ease), border-color .25s var(--kp-ease), opacity .25s, transform .25s;
}
.kp-featured__btn:hover {
	background: var(--kp-ink);
	color: var(--kp-gold-light);
	border-color: var(--kp-ink);
}
.kp-featured__btn:active { transform: scale(.95); }
.kp-featured__btn .kp-icon { width: 18px; height: 18px; }
.kp-featured__btn.swiper-button-disabled {
	opacity: .3;
	pointer-events: none;
}
.kp-featured__prev .kp-icon svg { transform: rotate(180deg); }

.kp-featured__stage { position: relative; }
.kp-featured__swiper {
	padding: 4px 4px 8px;
	overflow: hidden;
}
.kp-featured__swiper .swiper-slide {
	height: auto;
	display: flex;
}
.kp-featured__swiper .swiper-slide > * {
	width: 100%;
}

/* ===== FEATURED CARD — IG editorial style ===== */
.kp-featured-card {
	position: relative;
	display: block;
	aspect-ratio: 4/5;
	border-radius: var(--kp-radius);
	overflow: hidden;
	background: var(--kp-bg-dark);
	color: #fff;
	isolation: isolate;
	box-shadow: var(--kp-shadow-sm);
	transition: transform .55s var(--kp-ease), box-shadow .55s var(--kp-ease);
	width: 100%;
	min-width: 0;
}
@media (hover: hover) {
	.kp-featured-card:hover { transform: translateY(-4px); box-shadow: var(--kp-shadow-lg); }
}

.kp-featured-card__media {
	position: absolute; inset: 0;
	z-index: 0;
	background: var(--kp-bg-dark);
}
.kp-featured-card__img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 1.4s var(--kp-ease), filter .6s var(--kp-ease);
}
@media (hover: hover) {
	.kp-featured-card:hover .kp-featured-card__img {
		transform: scale(1.06);
	}
}

/* gradient + scrim */
.kp-featured-card::before {
	content: '';
	position: absolute; inset: 0;
	z-index: 1;
	background:
		linear-gradient(180deg, transparent 35%, rgba(6, 13, 26, 0.5) 65%, rgba(6, 13, 26, 0.92) 100%);
	pointer-events: none;
	transition: background .4s var(--kp-ease);
}
@media (hover: hover) {
	.kp-featured-card:hover::before {
		background: linear-gradient(180deg, rgba(6,13,26,0.15) 0%, rgba(6,13,26,0.55) 60%, rgba(6,13,26,0.95) 100%);
	}
}

/* Tags top-left */
.kp-featured-card__tags {
	position: absolute; top: 16px; left: 16px;
	display: flex; gap: 6px; flex-wrap: wrap;
	z-index: 3;
	max-width: calc(100% - 32px);
}
.kp-featured-card__chip {
	font-size: 10px;
	letter-spacing: .18em;
	text-transform: uppercase;
	padding: 6px 11px;
	border-radius: 100px;
	background: rgba(255,255,255,0.95);
	color: var(--kp-ink);
	font-weight: 600;
	backdrop-filter: blur(12px);
	box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.kp-featured-card__chip--deal {
	background: var(--kp-gold);
	color: var(--kp-ink);
}
.kp-featured-card__chip--warn { background: var(--kp-warn); color: #fff; }
.kp-featured-card__chip--muted { background: rgba(255,255,255,0.85); color: var(--kp-muted); }

/* Body */
.kp-featured-card__body {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 22px 22px 22px;
	z-index: 2;
	color: #fff;
}
@media (min-width: 700px) { .kp-featured-card__body { padding: 26px 26px 26px; } }

.kp-featured-card__loc {
	display: inline-flex;
	align-items: center; gap: 6px;
	font-size: 10.5px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 600;
	margin-bottom: 10px;
}
.kp-featured-card__loc .kp-icon { color: var(--kp-gold-light); width: 13px; height: 13px; }

.kp-featured-card__title {
	font-family: var(--kp-serif);
	font-size: clamp(20px, 2.6vw, 28px);
	font-weight: 450;
	line-height: 1.18;
	color: #fff;
	margin: 0 0 14px;
	letter-spacing: -.02em;
	font-variation-settings: 'opsz' 144, 'SOFT' 60;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.kp-featured-card__specs {
	list-style: none; padding: 0; margin: 0 0 14px;
	display: flex; gap: 14px; flex-wrap: wrap;
	font-size: 12px;
	color: rgba(255,255,255,0.78);
	font-weight: 500;
	letter-spacing: .02em;
}
.kp-featured-card__specs li {
	display: inline-flex; align-items: center; gap: 5px;
}
.kp-featured-card__specs .kp-icon {
	width: 13px; height: 13px;
	color: var(--kp-gold-light);
}

.kp-featured-card__foot {
	display: flex; justify-content: space-between; align-items: flex-end;
	gap: 14px;
	padding-top: 14px;
	border-top: 1px solid rgba(255,255,255,0.18);
}
.kp-featured-card__price strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(20px, 2.4vw, 26px);
	font-weight: 500;
	color: var(--kp-gold-light);
	line-height: 1;
	letter-spacing: -.01em;
	font-variation-settings: 'opsz' 96;
}
.kp-featured-card__price span {
	display: block;
	font-size: 11.5px;
	color: rgba(255,255,255,0.55);
	margin-top: 5px;
	letter-spacing: .02em;
}
.kp-featured-card__cta {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: rgba(255,255,255,0.14);
	border: 1px solid rgba(255,255,255,0.22);
	display: grid; place-items: center;
	color: #fff;
	flex-shrink: 0;
	transition: background .3s var(--kp-ease), border-color .3s var(--kp-ease), transform .3s var(--kp-ease), color .3s var(--kp-ease);
	backdrop-filter: blur(10px);
}
.kp-featured-card__cta .kp-icon { width: 16px; height: 16px; transition: transform .3s var(--kp-ease); }
@media (hover: hover) {
	.kp-featured-card:hover .kp-featured-card__cta {
		background: var(--kp-gold);
		border-color: var(--kp-gold);
		color: var(--kp-ink);
		transform: scale(1.08);
	}
	.kp-featured-card:hover .kp-featured-card__cta .kp-icon { transform: translateX(2px); }
}

.kp-featured__pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 6px;
	margin-top: 28px;
	min-height: 12px;
}
.kp-featured__pagination .swiper-pagination-bullet {
	background: var(--kp-ink);
	opacity: .2;
	width: 7px; height: 7px;
	margin: 0 !important;
	transition: opacity .3s, width .3s, background .3s;
}
.kp-featured__pagination .swiper-pagination-bullet-active {
	background: var(--kp-gold-deep);
	opacity: 1;
	width: 26px;
	border-radius: 100px;
}

/* ===== SERVICES ===== */
.kp-services { background: var(--kp-bg-alt); }
.kp-services__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}
@media (min-width: 700px) { .kp-services__grid { grid-template-columns: repeat(2, 1fr); gap: 22px; } }
@media (min-width: 1100px) { .kp-services__grid { gap: 26px; } }

.kp-service {
	position: relative;
	background: var(--kp-bg-card);
	padding: 32px 26px 30px;
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow-sm);
	transition: transform .5s var(--kp-ease), box-shadow .5s var(--kp-ease);
	overflow: hidden;
	border: 1px solid var(--kp-line-soft);
}
@media (min-width: 900px) { .kp-service { padding: 40px 34px 36px; } }
@media (hover: hover) { .kp-service:hover { transform: translateY(-4px); box-shadow: var(--kp-shadow); border-color: transparent; } }

.kp-service__icon {
	width: 50px; height: 50px;
	display: grid; place-items: center;
	background: var(--kp-ink);
	color: var(--kp-gold-light);
	border-radius: var(--kp-radius-sm);
	margin-bottom: 22px;
	transition: background .3s, color .3s;
}
.kp-service:hover .kp-service__icon { background: var(--kp-gold-deep); color: #fff; }
.kp-service__icon .kp-icon { width: 22px; height: 22px; }
.kp-service__title { margin: 0 0 12px; font-size: clamp(20px, 2vw, 23px); }
.kp-service__text { color: var(--kp-muted); font-size: 14.5px; line-height: 1.65; }
.kp-service__list {
	list-style: none; padding: 14px 0 0; margin: 0;
	display: flex; flex-direction: column; gap: 8px;
}
.kp-service__list li {
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 13.5px;
}
.kp-service__list .kp-icon {
	color: var(--kp-success);
	margin-top: 4px; flex-shrink: 0;
	width: 14px; height: 14px;
}
.kp-service__num {
	position: absolute; top: 22px; right: 28px;
	font-family: var(--kp-serif);
	font-size: 14px; color: var(--kp-gold-deep);
	line-height: 1;
	font-weight: 500;
	user-select: none;
	letter-spacing: .12em;
}

/* ===== STATS ===== */
.kp-stats {
	background: var(--kp-bg-dark);
	background-image:
		radial-gradient(circle at 15% 30%, rgba(180, 137, 66, 0.10), transparent 40%),
		radial-gradient(circle at 85% 70%, rgba(80, 110, 160, 0.10), transparent 40%);
	color: #fff;
	padding: clamp(54px, 8vh, 90px) 0;
}
.kp-stats__grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 32px;
	text-align: center;
}
@media (min-width: 720px) { .kp-stats__grid { grid-template-columns: repeat(4, 1fr); gap: 28px; } }
.kp-stat strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(2.2rem, 5vw, 4rem);
	font-weight: 400;
	color: var(--kp-gold-light);
	line-height: 1;
	margin-bottom: 12px;
	letter-spacing: -.025em;
}
.kp-stat span {
	font-size: 12.5px;
	color: rgba(255,255,255,0.65);
	letter-spacing: .04em;
	line-height: 1.5;
}

/* ===== ABOUT ===== */
.kp-about__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: center;
}
@media (min-width: 900px) { .kp-about__grid { grid-template-columns: 1fr 1fr; gap: 70px; } }
.kp-about__media {
	position: relative;
	aspect-ratio: 1 / 1.05;
	max-width: 540px;
	margin: 0 auto;
	width: 100%;
}
.kp-about__img {
	overflow: hidden;
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow-lg);
}
.kp-about__img img { width: 100%; height: 100%; object-fit: cover; }
.kp-about__img--main { position: absolute; inset: 0 22% 22% 0; }
.kp-about__img--small {
	position: absolute; inset: 38% 0 0 38%;
	border: 6px solid var(--kp-bg);
}
/* Premium "Established" seal — boutique tag, not a circle */
.kp-about__seal {
	position: absolute;
	bottom: 6%; right: 3%;
	background: var(--kp-ink);
	color: #fff;
	padding: 16px 22px 18px;
	border-radius: 3px;
	text-align: center;
	box-shadow: 0 14px 36px -8px rgba(10, 20, 36, 0.4), 0 0 0 1px rgba(180, 137, 66, 0.18) inset;
	z-index: 3;
	min-width: 130px;
}
.kp-about__seal::before,
.kp-about__seal::after {
	content: '';
	position: absolute;
	left: 50%;
	width: 24px;
	height: 1px;
	background: var(--kp-gold-light);
	transform: translateX(-50%);
}
.kp-about__seal::before { top: 10px; }
.kp-about__seal::after { bottom: 10px; }
.kp-about__seal-label {
	display: block;
	font-family: var(--kp-sans);
	font-size: 9.5px;
	letter-spacing: .32em;
	text-transform: uppercase;
	color: var(--kp-gold-light);
	font-weight: 600;
	margin: 4px 0 6px;
}
.kp-about__seal-year {
	display: block;
	font-family: var(--kp-serif);
	font-size: 36px;
	font-weight: 500;
	color: #fff;
	line-height: 1;
	letter-spacing: -.02em;
	font-style: italic;
}
.kp-about__seal-meta {
	display: block;
	font-family: var(--kp-sans);
	font-size: 9.5px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.6);
	font-weight: 500;
	margin-top: 6px;
}
@media (max-width: 480px) {
	.kp-about__seal { padding: 14px 18px 16px; min-width: 110px; }
	.kp-about__seal-year { font-size: 30px; }
}

.kp-about__list {
	list-style: none; padding: 0; margin: 22px 0 30px;
	display: grid; grid-template-columns: 1fr;
	gap: 10px;
}
@media (min-width: 540px) { .kp-about__list { grid-template-columns: 1fr 1fr; gap: 10px 18px; } }
.kp-about__list li {
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 14px;
}
.kp-about__list .kp-icon {
	color: var(--kp-success);
	margin-top: 5px; flex-shrink: 0;
	width: 16px; height: 16px;
}
.kp-about__cta { display: flex; gap: 12px; flex-wrap: wrap; }
.kp-script {
	display: none; /* removed — too restaurant-y */
}

/* ===== PROCESS ===== */
.kp-process { background: var(--kp-bg-alt); }
.kp-process__track {
	display: grid;
	grid-template-columns: 1fr;
	gap: 30px;
	position: relative;
}
@media (min-width: 700px) { .kp-process__track { grid-template-columns: 1fr 1fr; gap: 44px 26px; } }
@media (min-width: 1024px) {
	.kp-process__track {
		grid-template-columns: repeat(4, 1fr);
		gap: 0;
	}
	.kp-process__track::before {
		content: '';
		position: absolute;
		top: 36px; left: 12.5%; right: 12.5%;
		height: 1px;
		border-top: 1px dashed rgba(180, 137, 66, 0.5);
	}
}
.kp-process__step {
	position: relative;
	padding: 0 14px;
	text-align: center;
}
.kp-process__num {
	display: grid; place-items: center;
	width: 72px; height: 72px;
	margin: 0 auto 22px;
	border-radius: 50%;
	background: var(--kp-bg-card);
	color: var(--kp-gold-deep);
	font-family: var(--kp-serif);
	font-size: 24px;
	font-weight: 500;
	box-shadow: var(--kp-shadow-sm);
	border: 1px solid var(--kp-line);
	position: relative; z-index: 1;
	transition: background .3s, color .3s;
}
.kp-process__step:hover .kp-process__num {
	background: var(--kp-ink); color: var(--kp-gold-light);
}
.kp-process__title { font-size: clamp(19px, 1.9vw, 22px); margin-bottom: 8px; }
.kp-process__text {
	color: var(--kp-muted); font-size: 14px;
	max-width: 240px; margin: 0 auto; line-height: 1.6;
}

/* ===== TEAM ===== */
.kp-team__swiper {
	margin: 0;
	padding: 30px var(--kp-gutter) 10px;
	overflow: hidden;
	position: relative;
	max-width: 100%;
	box-sizing: border-box;
}
.kp-agent {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	overflow: hidden;
	box-shadow: var(--kp-shadow-sm);
	display: flex; flex-direction: column;
	transition: transform .4s var(--kp-ease), box-shadow .4s var(--kp-ease);
	height: auto;
	min-width: 0;
}
@media (hover: hover) { .kp-agent:hover { transform: translateY(-4px); box-shadow: var(--kp-shadow); } }
.kp-agent__photo { aspect-ratio: 4/5; overflow: hidden; background: var(--kp-bg-dark); }
.kp-agent__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--kp-ease); }
@media (hover: hover) { .kp-agent:hover .kp-agent__photo img { transform: scale(1.05); } }

.kp-agent__body { padding: 20px 20px 22px; }
.kp-agent__name { font-size: clamp(18px, 1.6vw, 20px); margin: 0 0 4px; font-weight: 500; }
.kp-agent__role {
	display: block; font-size: 11px;
	letter-spacing: .14em; text-transform: uppercase;
	color: var(--kp-gold-deep); margin-bottom: 14px;
	font-weight: 600;
}
.kp-agent__quote {
	font-style: italic; color: var(--kp-muted);
	font-size: 13.5px; margin: 0 0 16px;
	line-height: 1.6;
}
.kp-agent__contact {
	display: flex; flex-direction: column; gap: 6px;
	padding-top: 14px;
	border-top: 1px solid var(--kp-line-soft);
	font-size: 13px;
}
.kp-agent__contact a {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--kp-ink-soft);
	min-height: 32px;
	word-break: break-word;
}
.kp-agent__contact .kp-icon { color: var(--kp-gold-deep); flex-shrink: 0; }

.kp-team__nav {
	display: flex; gap: 10px; justify-content: center;
	margin-top: 26px;
}
.kp-team__nav button {
	width: 46px; height: 46px;
	border-radius: var(--kp-radius-sm);
	background: var(--kp-ink); color: #fff;
	display: grid; place-items: center;
	transition: background .3s var(--kp-ease);
}
.kp-team__nav button:hover { background: var(--kp-gold-deep); }
.kp-team__prev .kp-icon svg { transform: rotate(180deg); }

/* ===== CALCULATOR ===== */
.kp-calc {
	background: var(--kp-bg-dark);
	background-image:
		radial-gradient(circle at 10% 20%, rgba(180, 137, 66, 0.10), transparent 40%),
		radial-gradient(circle at 90% 80%, rgba(80, 110, 160, 0.08), transparent 40%);
	color: #fff;
}
.kp-calc h1, .kp-calc h2, .kp-calc h3, .kp-calc h4 { color: #fff; }
.kp-calc .kp-btn--solid {
	background: #fff;
	color: var(--kp-ink);
	border-color: #fff;
}
.kp-calc .kp-btn--solid:hover {
	background: var(--kp-gold-light);
	color: var(--kp-ink);
	border-color: var(--kp-gold-light);
}
.kp-calc .kp-btn--ghost {
	color: #fff;
	border-color: rgba(255,255,255,0.4);
}
.kp-calc .kp-btn--ghost:hover {
	background: #fff;
	color: var(--kp-ink);
	border-color: #fff;
}
.kp-calc__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: center;
}
@media (min-width: 900px) { .kp-calc__grid { grid-template-columns: 1fr 1.05fr; gap: 60px; } }
.kp-calc__intro h2 em { color: var(--kp-gold-light); }
.kp-calc__intro p { color: rgba(255,255,255,0.75); }
.kp-calc__intro .kp-eyebrow { color: var(--kp-gold-light); }
.kp-calc__intro .kp-eyebrow::after { background: var(--kp-gold); }
.kp-calc__bullets {
	list-style: none; padding: 0; margin: 22px 0 28px;
	display: flex; flex-direction: column; gap: 10px;
}
.kp-calc__bullets li {
	display: flex; align-items: center; gap: 10px;
	color: rgba(255,255,255,0.85);
	font-size: 14.5px;
}
.kp-calc__bullets .kp-icon { color: var(--kp-gold-light); width: 16px; height: 16px; }

.kp-calc__form {
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.08);
	border-radius: var(--kp-radius-lg);
	padding: 24px;
	backdrop-filter: blur(20px);
}
@media (min-width: 700px) { .kp-calc__form { padding: 32px; } }

.kp-calc__field {
	margin-bottom: 22px;
}
.kp-calc__field:last-of-type { margin-bottom: 0; }

.kp-calc__label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin-bottom: 12px;
	gap: 12px;
}
.kp-calc__label label {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.65);
	font-weight: 600;
	margin: 0;
}
.kp-calc__label output {
	font-family: var(--kp-serif);
	font-size: clamp(16px, 2vw, 19px);
	color: var(--kp-gold-light);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.005em;
	font-variation-settings: 'opsz' 96;
	text-align: right;
}
.kp-calc__field-label {
	display: block;
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.65);
	font-weight: 600;
	margin-bottom: 12px;
}

/* Range slider */
input[type="range"][data-range] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 6px;
	background: linear-gradient(to right, var(--kp-gold) 0%, var(--kp-gold) var(--range-fill, 50%), rgba(255,255,255,0.1) var(--range-fill, 50%), rgba(255,255,255,0.1) 100%);
	border-radius: 100px;
	outline: 0;
	cursor: pointer;
	transition: background .15s linear;
}
input[type="range"][data-range]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px; height: 22px;
	border-radius: 50%;
	background: #fff;
	cursor: grab;
	border: 0;
	box-shadow: 0 0 0 2px var(--kp-gold), 0 4px 14px rgba(180, 137, 66, 0.45);
	transition: transform .2s var(--kp-ease), box-shadow .2s var(--kp-ease);
}
input[type="range"][data-range]::-webkit-slider-thumb:hover {
	transform: scale(1.15);
	box-shadow: 0 0 0 2px var(--kp-gold), 0 6px 18px rgba(180, 137, 66, 0.6);
}
input[type="range"][data-range]:active::-webkit-slider-thumb {
	cursor: grabbing;
	transform: scale(1.2);
}
input[type="range"][data-range]::-moz-range-thumb {
	width: 22px; height: 22px;
	border-radius: 50%;
	background: #fff;
	cursor: grab;
	border: 0;
	box-shadow: 0 0 0 2px var(--kp-gold), 0 4px 14px rgba(180, 137, 66, 0.45);
}
input[type="range"][data-range]::-moz-range-track {
	background: transparent;
	height: 6px;
}
input[type="range"][data-range]:focus-visible {
	outline: 2px solid var(--kp-gold);
	outline-offset: 8px;
}

.kp-calc__range-marks {
	display: flex; justify-content: space-between;
	margin-top: 8px;
	font-size: 10.5px;
	color: rgba(255,255,255,0.4);
	letter-spacing: .04em;
	font-weight: 500;
}

.kp-calc__hint {
	display: block;
	font-size: 11px;
	color: rgba(255,255,255,0.42);
	margin-top: 8px;
	line-height: 1.5;
}

/* Year chips */
.kp-calc__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.kp-calc__chips button {
	padding: 9px 14px;
	min-height: 38px;
	border-radius: 100px;
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.12);
	color: rgba(255,255,255,0.75);
	font-size: 12.5px;
	font-weight: 500;
	letter-spacing: .02em;
	transition: background .25s, color .25s, border-color .25s, transform .15s;
}
.kp-calc__chips button:hover {
	border-color: rgba(255,255,255,0.28);
	color: #fff;
}
.kp-calc__chips button:active { transform: scale(.97); }
.kp-calc__chips button.is-active {
	background: var(--kp-gold);
	color: var(--kp-ink);
	border-color: var(--kp-gold);
	font-weight: 600;
}

/* Type toggle */
.kp-toggle {
	display: inline-flex;
	gap: 0;
	padding: 4px;
	border-radius: var(--kp-radius-sm);
	background: rgba(255,255,255,0.05);
	border: 1px solid rgba(255,255,255,0.1);
}
.kp-toggle button {
	padding: 10px 22px;
	min-height: 38px;
	border-radius: 4px;
	font-size: 12.5px;
	font-weight: 500;
	color: rgba(255,255,255,0.65);
	transition: background .25s, color .25s;
	letter-spacing: .02em;
}
.kp-toggle button.is-active {
	background: var(--kp-gold);
	color: var(--kp-ink);
	font-weight: 600;
}

/* Premium results card */
.kp-calc__results {
	margin-top: 26px;
	padding: 24px 22px;
	background: rgba(255,255,255,0.04);
	border: 1px solid rgba(255,255,255,0.1);
	border-radius: var(--kp-radius);
	display: grid;
	gap: 22px;
}
@media (min-width: 700px) { .kp-calc__results { padding: 28px 26px; } }

.kp-calc__result-main {
	text-align: center;
	padding: 4px 0;
}
.kp-calc__result-label {
	display: block;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	font-weight: 600;
	margin-bottom: 10px;
}
.kp-calc__result-main strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(34px, 6vw, 50px);
	font-weight: 500;
	color: #fff;
	line-height: 1;
	letter-spacing: -.03em;
	font-variation-settings: 'opsz' 144;
	font-variant-numeric: tabular-nums;
}
.kp-calc__result-main small {
	display: block;
	font-size: 11.5px;
	color: rgba(255,255,255,0.45);
	margin-top: 8px;
	letter-spacing: .02em;
}

/* Breakdown */
.kp-calc__breakdown {
	padding: 18px 0;
	border-top: 1px solid rgba(255,255,255,0.08);
	border-bottom: 1px solid rgba(255,255,255,0.08);
}
.kp-calc__breakdown-bar {
	display: flex;
	height: 6px;
	border-radius: 100px;
	overflow: hidden;
	background: rgba(255,255,255,0.06);
	margin-bottom: 16px;
}
.kp-calc__bar { transition: width .65s var(--kp-ease); }
.kp-calc__bar--principal { background: var(--kp-gold-light); }
.kp-calc__bar--interest { background: rgba(180, 137, 66, 0.45); }

.kp-calc__breakdown-legend {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
}
.kp-calc__legend-item {
	display: grid;
	grid-template-columns: auto 1fr;
	row-gap: 4px;
	column-gap: 10px;
	align-items: center;
	min-width: 0;
}
.kp-calc__dot {
	width: 8px; height: 8px;
	border-radius: 50%;
	grid-row: 1 / 3;
}
.kp-calc__dot--principal { background: var(--kp-gold-light); }
.kp-calc__dot--interest { background: rgba(180, 137, 66, 0.45); }
.kp-calc__legend-label {
	grid-column: 2;
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.55);
	font-weight: 600;
}
.kp-calc__legend-item strong {
	grid-column: 2;
	font-family: var(--kp-serif);
	font-size: clamp(15px, 1.7vw, 17px);
	color: #fff;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.005em;
	overflow-wrap: anywhere;
}

.kp-calc__result-total {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 4px 0 2px;
	flex-wrap: wrap;
}
.kp-calc__result-total span {
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.7);
	font-weight: 600;
}
.kp-calc__result-total strong {
	font-family: var(--kp-serif);
	font-size: clamp(20px, 2.4vw, 26px);
	color: var(--kp-gold-light);
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.01em;
	font-variation-settings: 'opsz' 96;
}

.kp-calc__disclaimer {
	display: block;
	margin-top: 18px;
	font-size: 11px;
	color: rgba(255,255,255,0.4);
	line-height: 1.5;
}

/* ===== TESTIMONIALS ===== */
.kp-testimonials { background: var(--kp-bg-alt); }
.kp-testimonials__swiper {
	padding: 16px 4px 50px;
	overflow: hidden;
}
@media (min-width: 700px) { .kp-testimonials__swiper { padding: 20px 8px 60px; } }
.kp-quote {
	background: var(--kp-bg-card);
	padding: 28px 24px;
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow-sm);
	height: auto;
	display: flex !important; flex-direction: column;
	transition: transform .4s var(--kp-ease), box-shadow .4s var(--kp-ease);
	min-width: 0;
}
@media (min-width: 700px) { .kp-quote { padding: 34px 30px; } }
@media (hover: hover) { .kp-quote:hover { transform: translateY(-3px); box-shadow: var(--kp-shadow); } }
.kp-quote__stars { display: inline-flex; gap: 3px; color: var(--kp-gold); margin-bottom: 16px; }
.kp-quote__stars .kp-icon { width: 14px; height: 14px; }
.kp-quote__text {
	font-size: 15.5px; line-height: 1.75;
	color: var(--kp-ink-soft);
	margin-bottom: 22px;
	flex: 1;
}
.kp-quote__who strong {
	display: block;
	font-family: var(--kp-serif); font-size: 17px;
	font-weight: 500;
}
.kp-quote__who span { font-size: 12.5px; color: var(--kp-muted); }

.swiper-pagination { position: relative; margin-top: 24px; }
.swiper-pagination-bullet { background: var(--kp-ink); opacity: .25; width: 7px; height: 7px; transition: opacity .3s, transform .3s, background .3s; }
.swiper-pagination-bullet-active { background: var(--kp-gold-deep); opacity: 1; transform: scale(1.2); }

/* ===== FORMS ===== */
.kp-forms__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 40px;
	align-items: start;
}
@media (min-width: 900px) { .kp-forms__grid { grid-template-columns: 1fr 1.15fr; gap: 60px; } }
.kp-forms__features {
	display: grid; grid-template-columns: repeat(3, 1fr);
	gap: 10px; margin-top: 26px;
}
.kp-forms__features > div {
	padding: 16px 12px;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius-sm);
	text-align: center;
}
.kp-forms__features strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(18px, 1.9vw, 24px);
	color: var(--kp-gold-deep);
	font-weight: 500;
	line-height: 1.2;
}
.kp-forms__features span {
	font-size: 10.5px; color: var(--kp-muted);
	letter-spacing: .04em; line-height: 1.4;
	margin-top: 4px; display: block;
}

.kp-forms__panel {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius-lg);
	padding: 24px;
	box-shadow: var(--kp-shadow);
	border: 1px solid var(--kp-line-soft);
	min-width: 0;
}
@media (min-width: 700px) { .kp-forms__panel { padding: 36px; } }

.kp-tabs {
	display: inline-flex; padding: 4px;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius-sm);
	margin-bottom: 24px;
	max-width: 100%;
	overflow-x: auto;
	scrollbar-width: none;
}
.kp-tabs::-webkit-scrollbar { display: none; }
.kp-tabs__btn {
	padding: 10px 16px;
	min-height: 38px;
	border-radius: 4px;
	font-size: 13px; font-weight: 500;
	color: var(--kp-muted);
	transition: background .25s, color .25s;
	white-space: nowrap;
}
.kp-tabs__btn.is-active { background: var(--kp-ink); color: #fff; }

.kp-form { display: none; flex-direction: column; gap: 12px; }
.kp-form.is-active { display: flex; }
.kp-form__row { display: grid; grid-template-columns: 1fr; gap: 12px; }
@media (min-width: 540px) { .kp-form__row { grid-template-columns: 1fr 1fr; } }

.kp-form input, .kp-form select, .kp-form textarea {
	padding: 13px 14px;
	min-height: var(--kp-touch);
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-radius-sm);
	background: var(--kp-bg-card);
	font-size: 14.5px;
	transition: border-color .2s, box-shadow .2s, background .2s;
	width: 100%;
	font-family: inherit;
}
.kp-form input:hover, .kp-form select:hover, .kp-form textarea:hover { border-color: var(--kp-muted-soft); }
.kp-form input:focus, .kp-form select:focus, .kp-form textarea:focus {
	outline: 0;
	border-color: var(--kp-gold);
	box-shadow: 0 0 0 3px rgba(180, 137, 66, 0.18);
	background: var(--kp-bg-card);
}
.kp-form textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
.kp-form__rodo {
	display: flex; align-items: flex-start; gap: 10px;
	font-size: 12.5px; color: var(--kp-muted);
	cursor: pointer; padding: 6px 0; line-height: 1.5;
}
.kp-form__rodo input { width: 18px; height: 18px; flex-shrink: 0; margin-top: 1px; min-height: 18px; padding: 0; }
.kp-form__submit { align-self: flex-start; margin-top: 4px; }
.kp-form__status {
	font-size: 13.5px; min-height: 1.4em;
	padding: 4px 0;
}
.kp-form__status.is-ok { color: var(--kp-success); }
.kp-form__status.is-error { color: var(--kp-error); }

/* ===== CONTACT ===== */
.kp-contact__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 36px;
}
@media (min-width: 900px) { .kp-contact__grid { grid-template-columns: 1fr 1.15fr; gap: 50px; align-items: stretch; } }
.kp-contact__list {
	list-style: none; padding: 0; margin: 22px 0 28px;
	display: flex; flex-direction: column; gap: 16px;
}
.kp-contact__list li {
	display: flex; gap: 14px; align-items: flex-start;
	min-width: 0;
}
.kp-contact__list .kp-icon {
	width: 38px; height: 38px;
	padding: 9px;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius-sm);
	color: var(--kp-gold-deep);
	flex-shrink: 0;
}
.kp-contact__list strong {
	display: block;
	font-size: 11px; letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--kp-muted);
	margin-bottom: 4px;
	font-weight: 600;
}
.kp-contact__list span, .kp-contact__list a {
	font-size: 15.5px; color: var(--kp-ink);
	font-weight: 500;
	word-break: break-word;
}
.kp-contact__list a:hover { color: var(--kp-gold-deep); }
.kp-contact__cta { display: flex; gap: 10px; flex-wrap: wrap; }
.kp-contact__map {
	min-height: 320px;
	border-radius: var(--kp-radius-lg);
	overflow: hidden;
	box-shadow: var(--kp-shadow);
	background: var(--kp-bg-alt);
}
@media (min-width: 900px) { .kp-contact__map { min-height: 460px; } }
.kp-contact__map .leaflet-container { width: 100%; height: 100%; min-height: inherit; }

/* ===== FOOTER ===== */
.kp-footer {
	background: var(--kp-bg-deep);
	color: rgba(255,255,255,0.7);
	background-image:
		radial-gradient(circle at 100% 0%, rgba(180, 137, 66, 0.06), transparent 50%);
}
.kp-footer__top { padding: 60px 0 44px; }
@media (min-width: 900px) { .kp-footer__top { padding: 84px 0 56px; } }
.kp-footer__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 36px;
}
@media (min-width: 600px) { .kp-footer__grid { grid-template-columns: 1fr 1fr; gap: 36px 24px; } }
@media (min-width: 1024px) { .kp-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; } }

.kp-footer__brand .kp-brand__logo {
	height: 30px;
	filter: none; /* white on dark footer */
}
.kp-footer__about {
	font-size: 14px; line-height: 1.7;
	margin: 18px 0 22px;
	max-width: 380px;
}
.kp-footer__social { display: flex; gap: 8px; }
.kp-footer__social a {
	width: 40px; height: 40px;
	border-radius: var(--kp-radius-sm);
	display: grid; place-items: center;
	background: rgba(255,255,255,0.04);
	color: rgba(255,255,255,0.7);
	border: 1px solid rgba(255,255,255,0.08);
	transition: background .25s, color .25s, transform .25s, border-color .25s;
}
.kp-footer__social a:hover {
	background: var(--kp-gold);
	color: var(--kp-ink);
	border-color: var(--kp-gold);
}
.kp-footer__col h4 {
	color: #fff;
	font-family: var(--kp-sans);
	font-size: 12px; letter-spacing: .2em; text-transform: uppercase;
	font-weight: 600;
	margin-bottom: 18px;
}
.kp-footer__col ul {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 10px;
	font-size: 14px;
}
.kp-footer__col a:hover { color: var(--kp-gold-light); }
.kp-footer__contact {
	list-style: none; padding: 0; margin: 0;
	display: flex; flex-direction: column; gap: 12px;
	font-size: 14px;
}
.kp-footer__contact li {
	display: flex; align-items: center; gap: 10px;
	min-height: 32px;
	min-width: 0;
}
.kp-footer__contact .kp-icon { color: var(--kp-gold-light); flex-shrink: 0; }
.kp-footer__contact span, .kp-footer__contact a { word-break: break-word; }
.kp-footer__bottom {
	border-top: 1px solid rgba(255,255,255,0.08);
	padding: 22px 0;
}
.kp-footer__bar {
	display: flex; justify-content: space-between;
	flex-wrap: wrap; gap: 12px;
	font-size: 12.5px;
	color: rgba(255,255,255,0.5);
}
.kp-footer__bar a:hover { color: var(--kp-gold-light); }

/* ===== ARCHIVE (Listing) ===== */
.kp-archive {
	padding-top: calc(var(--kp-header-h-sm) + 24px);
	padding-bottom: 70px;
}
@media (min-width: 900px) { .kp-archive { padding-top: calc(var(--kp-header-h) + 36px); padding-bottom: 90px; } }

.kp-archive__hero {
	padding: 24px 0 36px;
}
@media (min-width: 900px) { .kp-archive__hero { padding: 32px 0 50px; text-align: center; } }
.kp-archive__hero p {
	color: var(--kp-muted);
	max-width: 580px;
	font-size: clamp(15px, 1.7vw, 16.5px);
}
@media (min-width: 900px) { .kp-archive__hero p { margin: 0 auto; } }

.kp-archive__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 22px;
	align-items: start;
}
@media (min-width: 1024px) {
	.kp-archive__layout { grid-template-columns: 280px 1fr; gap: 32px; }
}
@media (min-width: 1300px) {
	.kp-archive__layout { grid-template-columns: 300px 1fr; gap: 44px; }
}

.kp-filters {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	padding: 22px 20px;
	box-shadow: var(--kp-shadow-sm);
	border: 1px solid var(--kp-line-soft);
	min-width: 0;
}
@media (min-width: 1024px) {
	.kp-filters {
		position: sticky;
		top: calc(var(--kp-header-h) + 16px);
		max-height: calc(100vh - var(--kp-header-h) - 32px);
		overflow-y: auto;
	}
}
.kp-filters__form { display: flex; flex-direction: column; gap: 16px; }
.kp-filters__group label {
	display: block;
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
	color: var(--kp-muted);
	margin-bottom: 8px;
	font-weight: 600;
}
.kp-filters__group select,
.kp-filters__group input {
	width: 100%;
	padding: 11px 14px;
	min-height: var(--kp-touch);
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-radius-sm);
	font-size: 14px;
	background: var(--kp-bg-card);
	transition: border-color .2s, box-shadow .2s;
}
.kp-filters__group select:focus,
.kp-filters__group input:focus {
	outline: 0;
	border-color: var(--kp-gold);
	box-shadow: 0 0 0 3px rgba(180, 137, 66, 0.15);
}
.kp-filters__row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.kp-filters__actions { padding-top: 4px; }

/* mobile filters drawer */
.kp-filters-toggle {
	display: none;
	width: 100%;
	padding: 14px 18px;
	min-height: var(--kp-touch);
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius-sm);
	border: 1.5px solid var(--kp-line);
	font-size: 14px; font-weight: 500;
	align-items: center; justify-content: center;
	gap: 10px;
	margin-bottom: 12px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
@media (max-width: 1023px) {
	.kp-filters-toggle { display: flex; }
	.kp-filters { display: none; }
	.kp-filters.is-open {
		display: block;
		animation: kp-slide-down .35s var(--kp-ease);
	}
}
@keyframes kp-slide-down {
	from { opacity: 0; transform: translateY(-12px); }
	to { opacity: 1; transform: translateY(0); }
}

.kp-archive__bar {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 22px; gap: 12px; flex-wrap: wrap;
}
.kp-archive__count {
	font-size: 13.5px; color: var(--kp-muted); font-weight: 500;
}
.kp-archive__count strong { color: var(--kp-ink); font-weight: 600; }
.kp-archive__tools {
	display: flex; gap: 10px; align-items: center; flex-wrap: wrap;
}
.kp-archive__tools select {
	padding: 9px 14px;
	min-height: 40px;
	border: 1.5px solid var(--kp-line);
	border-radius: var(--kp-radius-sm);
	background: var(--kp-bg-card);
	font-size: 13px; font-weight: 500;
	cursor: pointer;
}

.kp-view-toggle {
	display: inline-flex;
	padding: 3px;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius-sm);
}
.kp-view-toggle button {
	padding: 8px 16px;
	min-height: 34px;
	border-radius: 4px;
	font-size: 12.5px; font-weight: 500;
	color: var(--kp-muted);
	transition: background .2s, color .2s;
}
.kp-view-toggle button.is-active { background: var(--kp-ink); color: #fff; }

.kp-archive__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 20px;
}
@media (min-width: 600px) { .kp-archive__grid { grid-template-columns: 1fr 1fr; gap: 22px; } }
@media (min-width: 1400px) { .kp-archive__grid { grid-template-columns: 1fr 1fr 1fr; } }
.kp-archive__grid.is-loading { opacity: .5; pointer-events: none; }

.kp-archive__map {
	width: 100%;
	height: 540px;
	border-radius: var(--kp-radius);
	overflow: hidden;
}
@media (min-width: 900px) { .kp-archive__map { height: 700px; } }

.kp-empty {
	grid-column: 1 / -1;
	padding: 50px 24px;
	text-align: center;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius);
	color: var(--kp-muted);
}

.kp-pagination {
	margin-top: 36px;
	display: flex; gap: 6px; justify-content: center; flex-wrap: wrap;
}
.kp-pagination .page-numbers {
	min-width: 42px; height: 42px;
	padding: 0 12px;
	display: grid; place-items: center;
	border-radius: var(--kp-radius-sm); font-size: 14px; font-weight: 500;
	background: var(--kp-bg-card); border: 1.5px solid var(--kp-line);
	transition: background .2s, color .2s, border-color .2s;
}
.kp-pagination .page-numbers.current {
	background: var(--kp-ink); color: #fff;
	border-color: var(--kp-ink);
}
.kp-pagination a:hover {
	background: var(--kp-gold); color: var(--kp-ink);
	border-color: var(--kp-gold);
}

/* ===== SINGLE PROPERTY ===== */
.kp-single { padding-top: calc(var(--kp-header-h-sm) + 24px); padding-bottom: 60px; }
@media (min-width: 900px) { .kp-single { padding-top: calc(var(--kp-header-h) + 32px); padding-bottom: 80px; } }

.kp-single__hero { padding-bottom: 28px; }
.kp-crumb {
	font-size: 12.5px; color: var(--kp-muted);
	margin-bottom: 24px;
	display: flex; gap: 6px; flex-wrap: wrap;
	align-items: center;
}
.kp-crumb a:hover { color: var(--kp-gold-deep); }
.kp-crumb strong { color: var(--kp-ink); font-weight: 500; }

.kp-single__head {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}
@media (min-width: 900px) {
	.kp-single__head {
		grid-template-columns: 1fr auto;
		gap: 36px;
		align-items: end;
	}
}
.kp-single__head-main { min-width: 0; }
.kp-single__tags { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.kp-single__sub {
	margin: 8px 0 0;
	font-size: clamp(15px, 1.8vw, 17px);
	color: var(--kp-muted);
	line-height: 1.6;
	max-width: 60ch;
}
.kp-single__loc {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--kp-ink-soft);
	margin-top: 14px;
	font-size: 14px;
	font-weight: 500;
}
.kp-single__loc .kp-icon { color: var(--kp-gold-deep); width: 16px; height: 16px; }

.kp-single__price-wrap {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 22px 24px;
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	border: 1px solid var(--kp-line-soft);
	box-shadow: var(--kp-shadow-sm);
}
@media (min-width: 900px) {
	.kp-single__price-wrap {
		min-width: 280px;
		padding: 26px 28px;
	}
}
.kp-single__price { text-align: left; }
.kp-single__price-label {
	display: block;
	font-size: 11px;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--kp-muted);
	font-weight: 600;
	margin-bottom: 4px;
}
.kp-single__price strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(1.9rem, 3.6vw, 2.6rem);
	font-weight: 500;
	color: var(--kp-ink);
	line-height: 1;
	letter-spacing: -.01em;
}
.kp-single__price-per {
	display: inline-block;
	font-size: 13px;
	color: var(--kp-muted);
	margin-top: 8px;
}
.kp-single__actions {
	display: flex; gap: 10px;
	align-items: stretch;
}
.kp-single__actions .kp-btn { flex: 1; }
.kp-icon-btn {
	width: 44px; height: 44px;
	display: grid; place-items: center;
	border: 1.5px solid var(--kp-ink);
	border-radius: var(--kp-radius-sm);
	background: var(--kp-bg-card);
	color: var(--kp-ink);
	transition: background .25s, color .25s;
	flex-shrink: 0;
}
.kp-icon-btn:hover { background: var(--kp-ink); color: #fff; }
.kp-icon-btn.is-copied { background: var(--kp-success); color: #fff; border-color: var(--kp-success); }
.kp-icon-btn.is-copied::after {
	content: 'Skopiowano!';
	position: absolute;
	top: -32px;
	right: 0;
	white-space: nowrap;
	background: var(--kp-ink);
	color: #fff;
	padding: 4px 10px;
	font-size: 11px;
	font-weight: 500;
	border-radius: 4px;
	letter-spacing: .04em;
}
.kp-icon-btn { position: relative; }
.kp-icon-btn .kp-icon { width: 18px; height: 18px; }

.kp-single__gallery { padding: 20px 0 40px; }

.kp-gallery {
	position: relative;
}

/* Mobile carousel */
.kp-gallery__mobile {
	border-radius: var(--kp-radius);
	overflow: hidden;
	position: relative;
}
.kp-gallery__mobile .swiper-slide {
	aspect-ratio: 4/3;
	background: var(--kp-bg-dark);
}
.kp-gallery__mobile .swiper-slide img {
	width: 100%; height: 100%;
	object-fit: cover;
	cursor: zoom-in;
}
.kp-gallery__counter {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 7px 12px;
	background: rgba(10, 20, 36, 0.72);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	border-radius: 100px;
	backdrop-filter: blur(8px);
	font-variant-numeric: tabular-nums;
}
.kp-gallery__counter-sep { opacity: .4; }
.kp-gallery__dots {
	position: absolute !important;
	bottom: 12px !important;
	left: 0; right: 0;
	z-index: 5;
}
.kp-gallery__dots .swiper-pagination-bullet {
	background: #fff;
	opacity: .5;
}
.kp-gallery__dots .swiper-pagination-bullet-active {
	background: var(--kp-gold-light);
	opacity: 1;
}

/* Desktop split grid */
.kp-gallery__desktop { display: none; }
@media (min-width: 700px) {
	.kp-gallery__mobile { display: none; }
	.kp-gallery__desktop {
		display: grid;
		grid-template-columns: 2fr 1fr;
		grid-template-rows: 1fr 1fr;
		gap: 12px;
		height: clamp(420px, 58vh, 600px);
		position: relative;
	}
}
.kp-gallery__main {
	border-radius: var(--kp-radius);
	overflow: hidden;
	cursor: zoom-in;
	grid-row: 1 / 3;
	background: var(--kp-bg-dark);
}
.kp-gallery__main img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--kp-ease); }
@media (hover: hover) { .kp-gallery__main:hover img { transform: scale(1.04); } }

.kp-gallery__side {
	display: grid;
	grid-template-rows: repeat(2, 1fr);
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	grid-row: 1 / 3;
}
.kp-gallery__thumb {
	border-radius: var(--kp-radius-sm);
	overflow: hidden;
	position: relative;
	cursor: zoom-in;
	background: var(--kp-bg-dark);
}
.kp-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--kp-ease); }
@media (hover: hover) { .kp-gallery__thumb:hover img { transform: scale(1.07); } }
.kp-gallery__thumb[data-extra]::after {
	content: '+' attr(data-extra);
	position: absolute; inset: 0;
	display: grid; place-items: center;
	background: rgba(10, 20, 36, 0.62);
	color: #fff;
	font-family: var(--kp-serif);
	font-size: 28px;
	font-weight: 500;
	backdrop-filter: blur(2px);
}
.kp-gallery__open {
	position: absolute;
	bottom: 16px;
	right: 16px;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 18px;
	min-height: 42px;
	background: rgba(255,255,255,0.96);
	color: var(--kp-ink);
	border-radius: var(--kp-radius-sm);
	font-size: 13px; font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	box-shadow: var(--kp-shadow-sm);
	backdrop-filter: blur(8px);
	transition: background .25s, color .25s;
}
.kp-gallery__open:hover { background: var(--kp-ink); color: #fff; }
.kp-gallery__open .kp-icon { width: 14px; height: 14px; }

/* Lightbox */
.kp-lightbox {
	position: fixed; inset: 0;
	background: rgba(6, 13, 26, 0.97);
	z-index: 200;
	display: none;
	align-items: center; justify-content: center;
	padding: 24px;
	animation: kp-fade .3s var(--kp-ease);
}
@keyframes kp-fade { from { opacity: 0; } }
.kp-lightbox.is-open { display: flex; }
.kp-lightbox img { max-width: 100%; max-height: 88vh; border-radius: var(--kp-radius-sm); }
.kp-lightbox__close, .kp-lightbox__nav {
	position: absolute;
	background: rgba(255,255,255,0.08);
	color: #fff;
	display: grid; place-items: center;
	border-radius: var(--kp-radius-sm);
	transition: background .25s;
}
.kp-lightbox__close { top: 20px; right: 20px; width: 46px; height: 46px; }
.kp-lightbox__nav { top: 50%; transform: translateY(-50%); width: 50px; height: 50px; }
.kp-lightbox__close:hover, .kp-lightbox__nav:hover { background: rgba(255,255,255,0.18); }
.kp-lightbox__prev { left: 20px; }
.kp-lightbox__next { right: 20px; }
.kp-lightbox__prev .kp-icon svg { transform: rotate(180deg); }
@media (max-width: 600px) {
	.kp-lightbox { padding: 14px; }
	.kp-lightbox__close { top: 12px; right: 12px; }
	.kp-lightbox__prev { left: 10px; }
	.kp-lightbox__next { right: 10px; }
	.kp-lightbox__nav { width: 44px; height: 44px; }
}

/* Single layout */
.kp-single__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: start;
}
@media (min-width: 1024px) {
	.kp-single__layout { grid-template-columns: 1fr 360px; gap: 40px; }
}
.kp-single__content {
	padding-bottom: 30px;
	min-width: 0;
}

/* Key facts grid — pod galerią */
.kp-single__facts {
	list-style: none;
	padding: 0;
	margin: 0 0 36px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--kp-line-soft);
	border-radius: var(--kp-radius);
	overflow: hidden;
	border: 1px solid var(--kp-line-soft);
}
@media (min-width: 600px) { .kp-single__facts { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 900px) { .kp-single__facts { grid-template-columns: repeat(5, 1fr); } }
.kp-single__facts li {
	display: flex; align-items: center; gap: 12px;
	padding: 18px 16px;
	background: var(--kp-bg-card);
	min-width: 0;
}
@media (min-width: 600px) { .kp-single__facts li { padding: 20px 18px; } }
.kp-single__facts .kp-icon {
	width: 18px; height: 18px;
	color: var(--kp-gold-deep);
	flex-shrink: 0;
}
.kp-single__facts strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: clamp(16px, 1.9vw, 20px);
	font-weight: 500;
	line-height: 1.1;
	white-space: nowrap;
}
.kp-single__facts span {
	font-size: 11px;
	color: var(--kp-muted);
	letter-spacing: .04em;
	margin-top: 4px;
	display: inline-block;
	text-transform: uppercase;
	font-weight: 500;
}

/* Premium content sections (replacing tabs) */
.kp-single__section {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	padding: 28px 24px;
	box-shadow: var(--kp-shadow-sm);
	border: 1px solid var(--kp-line-soft);
	margin-bottom: 22px;
	min-width: 0;
}
@media (min-width: 700px) { .kp-single__section { padding: 36px 38px; margin-bottom: 26px; } }
.kp-single__section-head { margin-bottom: 22px; }
.kp-single__section-head .kp-h2 { font-size: clamp(1.6rem, 3vw, 2.2rem); margin: 0; }
.kp-single__section-head .kp-eyebrow { margin-bottom: 12px; }
.kp-single__section-head .kp-section__lead { margin-top: 12px; font-size: 14.5px; }

.kp-prose {
	font-size: 15.5px;
	line-height: 1.85;
	color: var(--kp-ink-soft);
}
.kp-prose p:last-child { margin-bottom: 0; }
.kp-prose h2, .kp-prose h3 { color: var(--kp-ink); margin-top: 1.4em; }
.kp-prose h2:first-child, .kp-prose h3:first-child { margin-top: 0; }

.kp-features {
	list-style: none; padding: 0; margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}
@media (min-width: 540px) { .kp-features { grid-template-columns: 1fr 1fr; gap: 10px; } }
.kp-features li {
	display: flex; align-items: center; gap: 10px;
	padding: 11px 14px;
	background: var(--kp-bg-alt);
	border-radius: var(--kp-radius-sm);
	font-size: 13.5px;
}
.kp-features .kp-icon { color: var(--kp-success); flex-shrink: 0; }

.kp-single__map {
	width: 100%;
	height: 320px;
	border-radius: var(--kp-radius);
	overflow: hidden;
}
@media (min-width: 700px) { .kp-single__map { height: 440px; } }
.kp-single__map .leaflet-container { width: 100%; height: 100%; }

.kp-single__sidebar {
	display: flex; flex-direction: column; gap: 16px;
	min-width: 0;
}
@media (min-width: 1024px) {
	.kp-single__sidebar {
		position: sticky;
		top: calc(var(--kp-header-h) + 16px);
	}
}

.kp-agent-card {
	background: var(--kp-bg-card);
	border-radius: var(--kp-radius);
	padding: 22px;
	box-shadow: var(--kp-shadow-sm);
	border: 1px solid var(--kp-line-soft);
}
.kp-agent-card__eyebrow {
	display: block;
	font-size: 11px;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--kp-gold-deep);
	font-weight: 600;
	margin-bottom: 16px;
}
.kp-agent-card__head {
	display: flex; gap: 14px; align-items: center;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--kp-line-soft);
}
.kp-agent-card__head img {
	width: 60px; height: 60px;
	border-radius: 50%;
	object-fit: cover;
	border: 2px solid var(--kp-gold);
	flex-shrink: 0;
}
.kp-agent-card__head strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: 17px;
	line-height: 1.2;
	font-weight: 500;
}
.kp-agent-card__head span {
	font-size: 11px; color: var(--kp-muted);
	letter-spacing: .1em; text-transform: uppercase;
	font-weight: 600;
	display: block; margin-top: 4px;
}
.kp-agent-card__contact {
	display: flex; flex-direction: column;
	gap: 8px;
	padding-top: 14px;
}
.kp-agent-card__contact a {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 14px;
	color: var(--kp-ink-soft);
	min-height: 36px;
	word-break: break-word;
}
.kp-agent-card__contact .kp-icon { color: var(--kp-gold-deep); flex-shrink: 0; }

.kp-form--inquiry {
	padding: 24px;
	background: var(--kp-ink);
	color: #fff;
	border-radius: var(--kp-radius);
	box-shadow: var(--kp-shadow);
	border: 0;
	transition: box-shadow .4s var(--kp-ease), transform .4s var(--kp-ease);
}
.kp-form--inquiry.is-highlight {
	animation: kp-inquiry-pulse 1.4s var(--kp-ease);
}
@keyframes kp-inquiry-pulse {
	0%   { box-shadow: var(--kp-shadow); }
	30%  { box-shadow: var(--kp-shadow-lg), 0 0 0 4px rgba(180, 137, 66, 0.45); }
	100% { box-shadow: var(--kp-shadow); }
}
.kp-form--inquiry .kp-eyebrow { color: var(--kp-gold-light); margin-bottom: 10px; }
.kp-form--inquiry .kp-eyebrow::after { background: var(--kp-gold); }
.kp-form--inquiry h3 {
	font-size: 21px;
	margin: 0 0 8px;
	font-weight: 500;
	color: #fff;
	line-height: 1.25;
}
.kp-form--inquiry__lead {
	font-size: 13.5px;
	color: rgba(255,255,255,0.7);
	margin: 0 0 16px;
	line-height: 1.5;
}
.kp-form--inquiry input,
.kp-form--inquiry textarea {
	background: rgba(255,255,255,0.05);
	border-color: rgba(255,255,255,0.12);
	color: #fff;
}
.kp-form--inquiry input::placeholder,
.kp-form--inquiry textarea::placeholder {
	color: rgba(255,255,255,0.45);
}
.kp-form--inquiry input:hover,
.kp-form--inquiry textarea:hover {
	border-color: rgba(255,255,255,0.25);
}
.kp-form--inquiry input:focus,
.kp-form--inquiry textarea:focus {
	background: rgba(255,255,255,0.08);
	border-color: var(--kp-gold-light);
	box-shadow: 0 0 0 3px rgba(180, 137, 66, 0.25);
}
.kp-form--inquiry .kp-form__rodo {
	color: rgba(255,255,255,0.65);
	font-size: 12.5px;
}
.kp-form--inquiry .kp-form__rodo input { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); }
.kp-form--inquiry .kp-btn--solid {
	background: var(--kp-gold);
	color: var(--kp-ink);
	border-color: var(--kp-gold);
}
.kp-form--inquiry .kp-btn--solid:hover {
	background: var(--kp-gold-light);
	color: var(--kp-ink);
	border-color: var(--kp-gold-light);
}

/* Sticky bottom CTA on mobile single property */
.kp-single__sticky {
	position: fixed;
	bottom: 0; left: 0; right: 0;
	background: var(--kp-bg-card);
	border-top: 1px solid var(--kp-line);
	padding: 12px var(--kp-gutter);
	display: none;
	gap: 10px;
	align-items: center;
	z-index: 70;
	box-shadow: 0 -8px 24px -8px rgba(10, 20, 36, 0.12);
	transform: translateY(100%);
	transition: transform .35s var(--kp-ease);
	padding-bottom: calc(12px + env(safe-area-inset-bottom, 0));
}
.kp-single__sticky.is-visible { transform: translateY(0); }
@media (max-width: 1023px) {
	.kp-single__sticky { display: flex; }
	body.single-property { padding-bottom: 80px; }
}
.kp-single__sticky-price {
	flex: 1;
	min-width: 0;
}
.kp-single__sticky-price strong {
	display: block;
	font-family: var(--kp-serif);
	font-size: 18px;
	font-weight: 500;
	color: var(--kp-gold-deep);
	line-height: 1.1;
}
.kp-single__sticky-price span {
	display: block;
	font-size: 11px;
	color: var(--kp-muted);
	margin-top: 2px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.kp-single__sticky .kp-btn { padding: 12px 18px; flex-shrink: 0; }

.kp-similar { background: var(--kp-bg-alt); }

/* ===== FALLBACK + 404 ===== */
.kp-fallback { padding: 200px 0 120px; text-align: center; }
.kp-fallback__title { font-size: clamp(2.6rem, 6vw, 4.6rem); margin-bottom: 12px; }
.kp-404 {
	padding: calc(var(--kp-header-h) + 70px) 0 90px;
	min-height: 70vh;
	display: flex; align-items: center;
}
.kp-404__inner { text-align: center; max-width: 540px; margin: 0 auto; }
.kp-404__num {
	font-family: var(--kp-serif);
	font-size: clamp(5.5rem, 16vw, 11rem);
	color: var(--kp-gold);
	line-height: 1;
	font-weight: 400;
	letter-spacing: -.04em;
}
.kp-404__title { margin: 12px 0 14px; }
.kp-404__cta {
	display: flex; gap: 12px; justify-content: center;
	flex-wrap: wrap;
	margin-top: 26px;
}

/* ===== LEAFLET POPUPS ===== */
.leaflet-popup-content-wrapper {
	border-radius: var(--kp-radius-sm) !important;
	box-shadow: var(--kp-shadow) !important;
	padding: 0 !important;
}
.leaflet-popup-content { margin: 12px 14px !important; font-family: var(--kp-sans) !important; }
.kp-popup { display: flex; gap: 10px; min-width: 220px; max-width: 280px; }
.kp-popup img { width: 76px; height: 76px; object-fit: cover; border-radius: var(--kp-radius-sm); flex-shrink: 0; }
.kp-popup strong {
	display: block; font-family: var(--kp-serif);
	font-size: 14.5px; line-height: 1.3;
	margin-bottom: 4px; font-weight: 500;
}
.kp-popup .kp-popup__price { color: var(--kp-gold-deep); font-weight: 600; font-size: 13.5px; }
.kp-popup .kp-popup__meta { font-size: 11.5px; color: var(--kp-muted); margin-top: 4px; }
.kp-popup a { display: inline-block; margin-top: 6px; font-size: 11.5px; color: var(--kp-ink); text-decoration: underline; font-weight: 500; }

/* ===== BACK TO TOP ===== */
.kp-totop {
	position: fixed;
	bottom: 20px;
	right: 20px;
	z-index: 60;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--kp-ink);
	color: #fff;
	display: grid;
	place-items: center;
	box-shadow: 0 12px 32px -8px rgba(10, 20, 36, 0.45), 0 4px 12px -2px rgba(10, 20, 36, 0.2);
	border: 1.5px solid transparent;
	opacity: 0;
	transform: translateY(16px) scale(.9);
	pointer-events: none;
	transition: opacity .4s var(--kp-ease), transform .4s var(--kp-ease), background .25s var(--kp-ease), color .25s var(--kp-ease), border-color .25s var(--kp-ease);
}
.kp-totop.is-visible {
	opacity: 1;
	transform: translateY(0) scale(1);
	pointer-events: auto;
}
.kp-totop:hover {
	background: var(--kp-gold);
	color: var(--kp-ink);
	border-color: var(--kp-gold);
	transform: translateY(-4px) scale(1.05);
}
.kp-totop:active { transform: translateY(0) scale(.95); }
.kp-totop .kp-icon { width: 20px; height: 20px; }
@media (min-width: 900px) {
	.kp-totop { bottom: 28px; right: 28px; width: 52px; height: 52px; }
}
/* Don't cover the mobile sticky CTA on single property */
@media (max-width: 1023px) {
	body.single-property .kp-totop { bottom: calc(80px + 16px); }
}

/* ===== UTILITIES ===== */
[hidden] { display: none !important; }

/* ===== SWIPER MOBILE SAFETY NET =====
   Zapobiega rozjeżdżaniu się responsywności gdy karuzele bleed-ują przez viewport. */
.swiper { max-width: 100%; box-sizing: border-box; }
.swiper-wrapper { box-sizing: border-box; }
.swiper-slide { box-sizing: border-box; min-width: 0; height: auto; }
.swiper-slide > * { max-width: 100%; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}
