.kp-find-page {
  --kp-countdown-height: 46px;
  background: var(--kp-white);
  color: var(--kp-black);
}
.kp-find-page .kp-countdown {
  height: var(--kp-countdown-height);
}
.kp-find-page .kp-header {
  top: var(--kp-countdown-height);
  height: 125px;
  padding-inline: var(--kp-media-inset);
  background: var(--kp-black);
  color: var(--kp-white);
  backdrop-filter: none;
}
.kp-find-page .kp-header.is-solid {
  height: 78px;
  background: var(--kp-black);
  backdrop-filter: blur(12px);
}
.kp-find-page .kp-header .kp-brand {
  width: 160px;
  height: 95px;
}
.kp-find-page .kp-header.is-solid .kp-brand {
  width: 160px;
  height: 54px;
}
.kp-find-page .kp-header .kp-brand img {
  max-width: none;
}
.kp-find-page .kp-header.is-solid .kp-brand img {
  max-width: 160px;
}
.kp-find-page .kp-nav {
  gap: 22px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.58;
  letter-spacing: 3.08px;
}
.kp-find-page .kp-nav a {
  min-height: 26px;
  padding: 2px 10px;
}
.kp-find-page .kp-nav a.kp-nav__cta {
  min-height: 58px;
  margin-left: 4px;
  padding: 20px 32px;
}
.kp-find-page .kp-nav a[aria-current="page"]::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
}
.kp-find-page .kp-nav a {
  position: relative;
}
.kp-find-main {
  padding-top: 0;
}
.kp-find-intro {
  position: relative;
  height: clamp(620px, 85svh, 820px);
  min-height: 620px;
  overflow: hidden;
  background: var(--kp-black);
  color: var(--kp-white);
}
@media (min-width: 1201px) {
  .kp-find-intro {
    height: 978px;
    min-height: 978px;
  }
}
.kp-find-intro__media {
  position: absolute;
  inset: -3%;
  background: url("../assets/images/new-hero.png") center 44% / cover no-repeat;
  transform: scale(1.04);
  will-change: transform;
}
.kp-find-intro::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,.05) 28%, rgba(0,0,0,.08) 48%, rgba(0,0,0,.58) 100%);
  pointer-events: none;
}
.kp-find-intro h1 {
  position: absolute;
  z-index: 1;
  left: var(--kp-content-inset);
  bottom: 128px;
  width: min(60vw, 900px);
  margin: 0;
  font: 400 clamp(5rem, 6.35vw, 6rem) / var(--kp-title-line-height) "Playfair Display", serif;
  letter-spacing: -.03em;
}
.kp-find-intro h1 span,
.kp-find-intro h1 em { display: block; }
.kp-find-intro h1 em {
  color: var(--kp-athena);
  font-weight: 400;
  padding-left: .48em;
}
.kp-find-intro > p:last-child {
  position: absolute;
  z-index: 1;
  left: calc(50% + 83px);
  bottom: 221px;
  width: min(521px, calc(50% - 118px));
  max-width: 520px;
  margin: 0;
  padding: 0;
  border: 0;
  font-size: var(--kp-intro-font-size);
  line-height: 1.57;
}
.kp-property-search {
  scroll-margin-top: calc(var(--kp-countdown-height) + 88px);
  padding: 0 var(--kp-media-inset);
  background: var(--kp-white);
}
.kp-property-filters {
  width: 100%;
  max-width: 1442px;
  margin: 0 auto 15px;
  padding-top: clamp(52px, 5vw, 76px);
}
.kp-property-filters__heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: 24px;
}
.kp-property-filters__heading h2 {
  margin: 0;
  font: 400 clamp(2.75rem, 4.45vw, 4rem) / var(--kp-title-line-height) "Playfair Display", serif;
  letter-spacing: -.03em;
}
.kp-property-filters__clear {
  border: 0;
  border-bottom: 1px solid currentColor;
  padding: 0 0 8px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: .7rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}
.kp-property-filters__form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.15vw, 19px);
}
.kp-property-filters__form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.kp-property-filters__form label > span {
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .27em;
  text-transform: uppercase;
}
.kp-property-filters__form select,
.kp-property-filters__form input {
  width: 100%;
  height: 60px;
  border: 1px solid var(--kp-line-strong);
  border-radius: 0;
  padding: 0 15px;
  background: transparent;
  color: var(--kp-black);
  font: inherit;
  font-size: .75rem;
}
.kp-property-view-toggle {
  display: none;
}
.kp-property-layout {
  position: relative;
  width: 100%;
  max-width: 1442px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(480px, 1fr) minmax(540px, 1fr);
  align-items: start;
  gap: clamp(16px, 1.55vw, 24px);
}
.kp-property-results-panel {
  min-width: 0;
}
.kp-property-results-toolbar {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-bottom: 16px;
}
.kp-property-results-toolbar button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid var(--kp-line-strong);
  padding: 9px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: .64rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color var(--kp-duration-micro) ease, color var(--kp-duration-micro) ease;
}
.kp-property-results-toolbar button img {
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
  transition: filter var(--kp-duration-micro) ease, opacity var(--kp-duration-micro) ease;
}
.kp-property-results-toolbar button[data-results-layout="list"] img {
  width: 23px;
  height: 14px;
}
.kp-property-results-toolbar button:hover img { opacity: .65; }
.kp-property-results-toolbar button.is-active {
  background: var(--kp-black);
  border-color: var(--kp-black);
  color: var(--kp-white);
}
.kp-property-results-toolbar button.is-active img {
  filter: invert(1);
  opacity: 1;
}

.kp-property-results {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.kp-property-results.is-list-layout {
  grid-template-columns: 1fr;
}
.kp-property-results.is-list-layout .kp-property-card {
  flex-direction: row;
}
/* In list layout the image is a fixed-width column whose height is dictated by
   the card body, so it cannot use the grid layout's fixed height. It may shrink
   below 270px on narrow viewports; the img fills it via the inset rule below. */
.kp-property-results.is-list-layout .kp-property-card__image {
  flex: 0 1 270px;
  min-width: 140px;
  height: auto;
  align-self: stretch;
}
.kp-property-results.is-list-layout .kp-property-card__body {
  padding: 18px 24px;
}
.kp-property-results.is-list-layout .kp-property-card h3 {
  margin-bottom: 10px;
}
.kp-property-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  background: var(--kp-white);
  border: 1px solid var(--line);
  cursor: pointer;
  transition: border-color var(--kp-duration-micro) ease, transform var(--kp-duration-micro) ease;
}
.kp-property-card:hover,
.kp-property-card:focus-within,
.kp-property-card.is-active {
  border-color: var(--kp-black);
  transform: translateY(-2px);
}
.kp-property-card__image {
  position: relative;
  height: clamp(180px, 16vw, 250px);
  overflow: hidden;
}
/* Absolute fill works whether the container has a fixed height (grid layout) or
   is stretched by the card body (list layout), where a percentage height would
   resolve against `auto` and collapse. */
.kp-property-card__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}
.kp-property-card:hover .kp-property-card__image img {
  transform: scale(1.035);
}
.kp-property-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 22px;
}
/* Text visible only to screen readers: the development name and the units the
   meta icons stand for. */
.kp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.kp-property-card__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 14px;
  margin-bottom: 16px;
}
/* Logo and name sit side by side. The logo is decorative here — alt="" — because
   the name it stands for is right next to it as real text. */
.kp-property-card__phase {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.kp-property-card__phase img {
  display: block;
  width: auto;
  height: 34px;
}
/* The dot carries the colour so the label itself can stay black — the old green
   text sat at 2.9:1 on The Icon's terracotta body, well under the 4.5:1 floor. */
.kp-property-card__status {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: .78rem;
  white-space: nowrap;
}
.kp-property-card__status::before {
  content: "";
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--kp-fusion);
}
/* The Icon's star ships in a pale pink that all but disappears on the terracotta
   body. brightness(0) drives any colour to black and, unlike a CSS mask, needs
   no vendor prefix and no shorthand Safari refuses to parse. The mark is square,
   so it is set slightly shorter than the shield to match its visual weight. */
.kp-property-card[data-development="The Icon"] .kp-property-card__phase img {
  height: 30px;
  filter: brightness(0);
}
.kp-property-card[data-development="The Icon"] .kp-property-card__body {
  background-color: var(--kp-rose);
  background-image: url("../assets/images/the-icon-quote-bq.jpg");
  background-position: center;
  background-size: cover;
}
.kp-property-card h3 {
  margin: 0 0 17px;
  font: 400 clamp(1.45rem, 2vw, 2rem) / 1.05 "Playfair Display", serif;
}
.kp-property-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 18px;
  margin: 0 0 15px;
  color: rgb(22 22 21 / 66%);
  font-size: .72rem;
}
.kp-property-card__meta span[data-meta] {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
/* The icons carry the meaning that "beds"/"baths" used to spell out, so the
   dropped words live on in the .kp-sr-only spans next to each number.
   Listed one by one rather than with :not([data-meta="type"]) — that would
   outweigh the background-image rules below and blank them out. */
.kp-property-card__meta span[data-meta="beds"]::before,
.kp-property-card__meta span[data-meta="baths"]::before,
.kp-property-card__meta span[data-meta="floor"]::before {
  content: "";
  flex: none;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .66;
}
.kp-property-card__meta span[data-meta="beds"]::before {
  width: 20px;
  height: 12px;
  background-image: url("./images/beds.svg");
}
.kp-property-card__meta span[data-meta="baths"]::before {
  width: 14px;
  height: 14px;
  background-image: url("./images/iconoir_bathroom.svg");
}
.kp-property-card__meta span[data-meta="floor"]::before {
  width: 13px;
  height: 13px;
  background-image: url("./images/floor.svg");
}
.kp-property-card__bottom {
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px dotted rgb(22 22 21 / 15%);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.kp-property-card__price {
  font: 400 1.35rem/1 "Playfair Display", serif;
}
/* Same outlined box as the optional header CTA (see .kp-nav__cta in
   springs-home.css): 1px border in the current text colour, 44px tall, 18px of
   horizontal padding. */
.kp-property-card__cta {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid currentColor;
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background-color var(--kp-duration-micro) ease, color var(--kp-duration-micro) ease;
}
.kp-property-card__cta:hover {
  background: var(--kp-black);
  color: var(--kp-white);
}
.kp-property-card[data-development="The Icon"] .kp-property-card__cta:hover {
  background: var(--icon-brick-deep);
  border-color: var(--icon-brick-deep);
}
.kp-property-card__cta:focus-visible {
  outline: 2px solid var(--kp-athena);
  outline-offset: 4px;
}
.kp-property-map-wrap {
  position: sticky;
  top: calc(var(--kp-countdown-height) + 92px);
  height: calc(100svh - var(--kp-countdown-height) - 112px);
  min-height: 600px;
  overflow: hidden;
  background: #d8d7d2;
}
.kp-property-map {
  position: absolute;
  inset: 0;
}
.kp-property-map__note {
  position: absolute;
  z-index: 2;
  right: 14px;
  bottom: 14px;
  max-width: 290px;
  margin: 0;
  padding: 10px 12px;
  background: rgb(236 234 230 / 92%);
  font-size: .62rem;
  line-height: 1.35;
}
.kp-property-empty {
  padding: 80px 30px;
  background: var(--kp-white);
  text-align: center;
}
.kp-property-empty h3 {
  margin: 0 0 12px;
  font: 400 2rem/1.1 "Playfair Display", serif;
}
.kp-property-marker {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 15px 7px 7px;
  border: 2px solid var(--kp-white);
  border-radius: 999px;
  background: var(--kp-athena);
  color: var(--kp-white);
  box-shadow: 0 4px 13px rgb(0 0 0 / 25%);
  font: 500 .7rem/1 "Roboto", sans-serif;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--kp-duration-micro) ease, transform var(--kp-duration-micro) ease, opacity var(--kp-duration-micro) ease;
}
.kp-property-marker[data-development="Fusion"] { background: #70a765; }
.kp-property-marker[data-development="The Icon"] { background: var(--icon-brick-deep); }
.kp-property-marker__count {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgb(255 255 255 / 22%);
  font-weight: 600;
  font-size: .74rem;
}
/* Genuinely no homes here under the current bedrooms/price/search filters. The
   development filter is excluded from that count, so choosing one development
   never dims the other two. */
.kp-property-marker.is-empty {
  opacity: .38;
}
.kp-property-marker.is-selected {
  box-shadow: 0 4px 13px rgb(0 0 0 / 25%), 0 0 0 3px var(--kp-black);
}
.kp-property-marker:hover,
.kp-property-marker.is-active {
  z-index: 5;
  background: var(--kp-black);
  opacity: 1;
  transform: scale(1.04);
}

.kp-find-neighbourhood {
  padding: var(--kp-section-intro-top) var(--kp-content-inset) var(--kp-section-intro-bottom);
  background: var(--kp-white);
}
.kp-find-neighbourhood__inner {
  width: min(100%, 1190px);
  margin: 0 auto;
}
.kp-find-neighbourhood h2 {
  max-width: 760px;
  margin: 0;
  font: 400 clamp(2.75rem, 4.45vw, 4rem) / var(--kp-title-line-height) "Playfair Display", serif;
  letter-spacing: -.03em;
}
.kp-find-neighbourhood h2 em {
  color: var(--kp-fusion);
  font-weight: 400;
}
.kp-find-neighbourhood p {
  max-width: 691px;
  margin: var(--kp-title-copy-gap) 0 0;
  font-size: var(--kp-intro-font-size);
  line-height: 1.71;
}
.kp-find-amenities-map {
  width: 100%;
  height: clamp(700px, 64.75vw, 979px);
  overflow: hidden;
  background: #e7e4df;
}
.kp-find-amenities-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
.kp-find-film {
  width: calc(100% - 40px);
  max-width: 1920px;
  margin: 36px auto 16px;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #d8d5cf;
}
.kp-find-film iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}
/* ==========================================================================
   Independent review panels — matches homepage-figma-v1 (Figma 673:2178)
   ========================================================================== */
.kp-reviews {
  --kp-reviews-star: #e3a53d;
  --kp-reviews-border: rgba(22, 22, 21, 0.16);
  padding: clamp(56px, 5.5vw, 90px) var(--gutter) clamp(70px, 7vw, 105px);
  background: var(--kp-white);
}
.kp-reviews__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(28px, 5vw, 78px);
  max-width: 1442px;
  margin: 0 auto;
}
.kp-reviews__intro {
  max-width: 630px;
}
.kp-reviews__heading {
  margin: 0 0 20px;
  font: 400 clamp(2.6rem, 4vw, 4rem)/1.05 "Playfair Display", serif;
  letter-spacing: -0.03em;
  color: var(--kp-black);
}
.kp-reviews__heading em {
  color: var(--kp-athena);
  font-style: italic;
  font-weight: 400;
}
.kp-reviews__lede {
  margin: 0;
  max-width: 540px;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--kp-black);
}
.kp-reviews__trustpilot {
  display: block;
  flex: 0 0 auto;
  width: min(700px, 50vw);
}
.kp-reviews__trustpilot img {
  display: block;
  width: 100%;
  height: auto;
}
.kp-reviews__panelhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  max-width: 1442px;
  margin: clamp(48px, 5vw, 72px) auto 0;
}
.kp-reviews__eyebrow {
  margin: 0;
  color: var(--kp-black);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.kp-reviews__controls {
  display: flex;
  gap: 8px;
}
.kp-reviews__controls button {
  display: grid;
  place-items: center;
  width: 47px;
  height: 47px;
  padding: 0;
  border: 1px solid var(--kp-black);
  border-radius: 0;
  background: transparent;
  color: var(--kp-black);
  cursor: pointer;
  transition: background-color var(--kp-duration-micro) ease, opacity var(--kp-duration-micro) ease;
}
.kp-reviews__controls button:not(:disabled):hover {
  background: var(--kp-black);
}
.kp-reviews__controls button img {
  display: block;
  width: 15px;
  height: 13px;
  max-width: none;
  pointer-events: none;
}
.kp-reviews__controls button:not(:disabled):hover img {
  filter: invert(1);
}
.kp-reviews__controls [data-reviews-next] img {
  transform: rotate(180deg);
}
.kp-reviews__controls button:disabled {
  opacity: 0.3;
  cursor: default;
}
.kp-reviews__slider-wrap {
  max-width: 1442px;
  margin: clamp(24px, 3vw, 36px) auto 0;
}
.kp-reviews__slider {
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.kp-reviews__slider::-webkit-scrollbar {
  display: none;
}
.kp-reviews__slider:focus-visible {
  outline: 2px solid var(--kp-athena);
  outline-offset: -2px;
}
.kp-reviews__track {
  display: flex;
  align-items: stretch;
  gap: clamp(16px, 1.4vw, 24px);
  width: max-content;
}
.kp-reviews-card {
  display: flex;
  flex: 0 0 clamp(300px, 27vw, 380px);
  flex-direction: column;
  gap: 18px;
  box-sizing: border-box;
  padding: 28px clamp(24px, 2.4vw, 34px);
  border: 1px solid var(--kp-reviews-border);
  background: var(--kp-white);
}
.kp-reviews-card--homeviews {
  padding: 0;
  overflow: hidden;
}
.kp-reviews-card--homeviews img {
  display: block;
  width: 100%;
  height: auto;
}
.kp-reviews-card__stars {
  display: flex;
  gap: 3px;
  font-size: 22px;
  line-height: 1;
}
.kp-reviews-card__stars span {
  color: transparent;
  -webkit-text-stroke: 1px var(--kp-reviews-star);
}
.kp-reviews-card__stars span.is-full {
  color: var(--kp-reviews-star);
  -webkit-text-stroke: 0;
}
.kp-reviews-card h3 {
  margin: 0;
  font: 500 1.15rem/1.3 "Roboto", sans-serif;
  color: var(--kp-black);
}
.kp-reviews-card p {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--kp-black);
}
.kp-reviews-card footer {
  margin-top: auto;
  padding-top: 4px;
}
.kp-reviews-card footer p {
  font-size: 13px;
  line-height: 1.5;
  color: rgba(22, 22, 21, 0.62);
}
.kp-reviews-card__name {
  font-weight: 600;
  color: var(--kp-black) !important;
}
@media (max-width: 860px) {
  .kp-reviews__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .kp-reviews__trustpilot {
    width: min(320px, 70vw);
  }
  .kp-reviews__panelhead {
    flex-wrap: wrap;
  }
  .kp-reviews-card {
    flex-basis: min(84vw, 340px);
  }
}

@media (max-width: 1100px) {
  .kp-property-layout {
    grid-template-columns: minmax(390px, .9fr) minmax(430px, 1.1fr);
  }
  .kp-property-results {
    grid-template-columns: 1fr;
  }
  .kp-property-filters__form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 801px) and (max-width: 1200px) {
  .kp-find-page {
    --kp-countdown-height: 42px;
    --kp-section-intro-top: 56px;
    --kp-section-intro-bottom: 72px;
    --kp-title-copy-gap: 28px;
  }
  .kp-find-page .kp-countdown {
    padding-inline: 28px;
    font-size: 11px;
    letter-spacing: 1.5px;
  }
  .kp-find-page .kp-header {
    height: 100px;
    padding-inline: 28px;
  }
  .kp-find-page .kp-header.is-solid {
    height: 78px;
  }
  .kp-find-page .kp-header .kp-brand {
    width: 138px;
    height: 80px;
  }
  .kp-find-page .kp-header.is-solid .kp-brand {
    width: 138px;
    height: 54px;
  }
  .kp-find-page .kp-nav {
    gap: 10px;
    font-size: 10px;
    letter-spacing: 1.55px;
  }
  .kp-find-page .kp-nav a {
    padding: 2px 4px;
  }
  .kp-find-page .kp-nav a.kp-nav__cta {
    min-height: 44px;
    padding: 0 14px;
  }
}
@media (max-width: 800px) {
  .kp-find-page {
    --kp-countdown-height: 34px;
    --kp-section-intro-top: 48px;
    --kp-section-intro-bottom: 64px;
    --kp-title-copy-gap: 24px;
  }
  .kp-find-page .kp-header,
  .kp-find-page .kp-header.is-solid {
    top: var(--kp-countdown-height);
    height: 76px;
    padding-inline: var(--gutter);
  }
  .kp-find-page .kp-header .kp-brand,
  .kp-find-page .kp-header.is-solid .kp-brand {
    width: auto;
    height: 58px;
  }
  .kp-find-page .kp-header .kp-brand img,
  .kp-find-page .kp-header.is-solid .kp-brand img {
    height: 58px;
    max-width: 145px;
  }
  .kp-find-page .kp-nav {
    gap: 18px;
    font-size: .72rem;
    letter-spacing: .14em;
  }
  .kp-find-page .kp-nav a,
  .kp-find-page .kp-nav a.kp-nav__cta {
    min-height: 44px;
    margin-left: 0;
    padding: 0;
  }
  .kp-find-page .kp-nav a.kp-nav__cta {
    padding: 0 18px;
  }
  .kp-find-intro {
    height: clamp(640px, 85svh, 740px);
    min-height: 640px;
  }
  .kp-find-intro h1 {
    right: var(--gutter);
    bottom: 210px;
    left: var(--gutter);
    width: auto;
  }
  .kp-find-intro > p:last-child {
    right: var(--gutter);
    bottom: 70px;
    left: var(--gutter);
    width: auto;
    max-width: 560px;
  }
  .kp-property-view-toggle {
    display: flex;
    margin-top: 22px;
    border: 1px solid var(--kp-black);
  }
  .kp-property-view-toggle button {
    flex: 1;
    height: 46px;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .kp-property-view-toggle button.is-active {
    background: var(--kp-black);
    color: var(--kp-white);
  }
  .kp-property-layout {
    display: block;
  }
  .kp-property-map-wrap {
    display: none;
    position: relative;
    top: auto;
    height: 72svh;
    min-height: 500px;
  }
  .kp-property-search.is-map-view .kp-property-results,
  .kp-property-search.is-map-view .kp-property-empty {
    display: none;
  }
  .kp-property-search.is-map-view .kp-property-map-wrap {
    display: block;
  }
  .kp-find-amenities-map {
    height: 76svh;
    min-height: 620px;
  }
  .kp-find-film {
    margin-top: var(--gutter);
  }
}
@media (max-width: 580px) {
  .kp-find-intro h1 {
    font-size: clamp(3.8rem, 18vw, 5.4rem);
  }
  .kp-find-intro h1 em { padding-left: .18em; }
  .kp-property-filters__heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .kp-property-filters__form {
    grid-template-columns: 1fr;
  }
  .kp-property-results {
    grid-template-columns: 1fr;
  }
  .kp-property-card__image {
    height: 64vw;
  }
  /* Figma 553:15257 — compact mobile list card. Grid stays as the stacked
     card above; only the explicitly selected list layout becomes horizontal. */
  .kp-property-results.is-list-layout .kp-property-card {
    min-height: 184px;
    flex-direction: row;
  }
  .kp-property-results.is-list-layout .kp-property-card__image {
    flex: 0 0 clamp(112px, 38vw, 161px);
    min-width: 0;
    height: auto;
    align-self: stretch;
  }
  .kp-property-results.is-list-layout .kp-property-card__body {
    min-width: 0;
    padding: 12px 12px 10px;
  }
  .kp-property-results.is-list-layout .kp-property-card__head {
    flex-wrap: nowrap;
    gap: 6px;
    margin-bottom: 9px;
  }
  .kp-property-results.is-list-layout .kp-property-card__phase {
    min-width: 0;
    gap: 6px;
    font-size: .66rem;
    letter-spacing: .11em;
  }
  .kp-property-results.is-list-layout .kp-property-card__phase img {
    height: 24px;
  }
  .kp-property-results.is-list-layout .kp-property-card[data-development="The Icon"] .kp-property-card__phase img {
    height: 21px;
  }
  .kp-property-results.is-list-layout .kp-property-card__status {
    gap: 5px;
    font-size: .58rem;
    letter-spacing: .06em;
    text-transform: uppercase;
  }
  .kp-property-results.is-list-layout .kp-property-card__status::before {
    width: 8px;
    height: 8px;
  }
  .kp-property-results.is-list-layout .kp-property-card h3 {
    margin-bottom: 15px;
    font-size: clamp(1.12rem, 5vw, 1.5rem);
    line-height: 1.02;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta {
    flex-wrap: nowrap;
    gap: 7px 10px;
    margin-bottom: 9px;
    font-size: .62rem;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta span[data-meta] {
    gap: 4px;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta span[data-meta="beds"]::before {
    width: 18px;
    height: 11px;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta span[data-meta="baths"]::before {
    width: 14px;
    height: 14px;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta span[data-meta="floor"]::before {
    width: 12px;
    height: 12px;
  }
  .kp-property-results.is-list-layout .kp-property-card__bottom {
    flex-wrap: nowrap;
    gap: 8px;
    padding-top: 9px;
  }
  .kp-property-results.is-list-layout .kp-property-card__price {
    font-size: 1.05rem;
  }
  .kp-property-results.is-list-layout .kp-property-card__cta {
    min-height: 32px;
    padding: 0 9px;
    font-size: .58rem;
    letter-spacing: .12em;
  }
  .kp-find-neighbourhood h2 br.kp-desktop-break { display: none; }
  .kp-find-film {
    width: calc(100% - 40px);
    margin-inline: auto;
    aspect-ratio: 16 / 9;
  }
}
@media (max-width: 360px) {
  .kp-property-results.is-list-layout .kp-property-card {
    min-height: 214px;
  }
  .kp-property-results.is-list-layout .kp-property-card__image {
    flex-basis: 36%;
  }
  .kp-property-results.is-list-layout .kp-property-card__body {
    padding: 10px;
  }
  .kp-property-results.is-list-layout .kp-property-card__meta {
    flex-wrap: wrap;
  }
  .kp-property-results.is-list-layout .kp-property-card__bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .kp-property-results.is-list-layout .kp-property-card__cta {
    justify-content: center;
    width: 100%;
  }
}
