/* Keller luxury page: one editorial voice, readable navigation, and real agent links. */
.kny-lux-page .kny-lux-hero {
  height: 90vh;
  min-height: 760px;
  max-height: 1120px;
}

/* One thumbnail row, with its final slot reserved for the existing controls. */
.kny-lux-page .kny-lux-carousel__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.kny-lux-page .kny-lux-carousel__grid {
  grid-column: span 2;
  min-width: 0;
  display: grid;
  grid-template-columns: none;
  grid-template-rows: 1fr;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 16px) / 2);
  gap: 16px;
  overflow-x: auto;
  overflow-y: hidden;
  padding-block: 4px 8px;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
}
.kny-lux-page .kny-lux-carousel__item {
  min-width: 0;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}
.kny-lux-page .kny-lux-carousel__nav {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.kny-lux-page .kny-lux-carousel__arrow { flex-shrink: 0; }

@media (min-width: 640px) {
  .kny-lux-page .kny-lux-carousel__row { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .kny-lux-page .kny-lux-carousel__grid {
    grid-column: span 4;
    grid-auto-columns: calc((100% - 48px) / 4);
  }
}
@media (min-width: 1024px) {
  .kny-lux-page .kny-lux-carousel__row { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .kny-lux-page .kny-lux-carousel__grid {
    grid-column: span 7;
    grid-auto-columns: calc((100% - 96px) / 7);
  }
  .kny-lux-page .kny-lux-carousel__nav { flex-direction: row; }
}

.kny-lux-page .kny-header.is-fixed .kny-wordmark,
.kny-lux-page .kny-header.is-fixed .kny-nav__link,
.kny-lux-page .kny-header.is-fixed .kny-menu-toggle { color: #18181b; }
.kny-lux-page .kny-header.is-fixed { background: #fff; box-shadow: 0 5px 24px rgba(20,20,20,.08); }
.kny-lux-page .kny-header.is-fixed .kny-wordmark__brand,
.kny-lux-page .kny-header.is-fixed .kny-wordmark__sub { color: #18181b; }

.kny-lux-roster { background: var(--vr-color-surface-subtle, #f7f7f5); padding: clamp(4rem,7vw,7rem) 0; }
.kny-lux-roster__head { border: 0; padding-bottom: 1.35rem; }
.kny-lux-roster__title-row { margin: 0; }
.kny-lux-roster__title { max-width: 23ch; font-size: clamp(2rem,4.5vw,4.25rem); font-weight: 400; letter-spacing: -.025em; line-height: 1.03; text-wrap: balance; }
.kny-lux-roster__arrow { color: var(--vr-color-accent, #245b57); border-color: currentColor; background: transparent; }
.kny-lux-roster__arrow:hover,
.kny-lux-roster__arrow:focus-visible { color: var(--vr-color-on-accent, #fff); border-color: var(--vr-color-accent, #245b57); background: var(--vr-color-accent, #245b57); }
.kny-lux-roster__scroller { gap: clamp(1rem,2vw,2rem); padding-top: .85rem; padding-bottom: 1rem; }
.kny-lux-tile { flex-basis: clamp(240px,22vw,310px); min-width: 0; }
.kny-lux-tile__photo-wrap { aspect-ratio: 4/5; background: #e7e2d9; }
.kny-lux-tile__portrait-link { position: absolute; inset: 0; display: block; overflow: hidden; }
.kny-lux-tile__photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; background: #e7e2d9; }
.kny-lux-tile:hover .kny-lux-tile__photo,
.kny-lux-tile:focus-within .kny-lux-tile__photo { transform: scale(1.035); }
.kny-lux-tile__meta { padding-top: 1.2rem; }
.kny-lux-tile__name { font-size: clamp(1.35rem,2vw,1.8rem); font-weight: 400; line-height: 1.15; white-space: normal; overflow: visible; text-overflow: clip; }
.kny-lux-tile__name a { color: #18181b; text-decoration: none; }
.kny-lux-tile__name a:hover,
.kny-lux-tile__name a:focus-visible { color: var(--vr-color-accent, #245b57); text-decoration: underline; text-underline-offset: .18em; }
.kny-lux-tile__profile { display: inline-flex; align-items: center; gap: .55rem; margin-top: .5rem; color: var(--vr-color-accent, #245b57); font-family: var(--vr-font-body, Montserrat, sans-serif); font-size: var(--vr-type-body, 1rem); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .25rem; }
.kny-lux-tile__profile:hover,
.kny-lux-tile__profile:focus-visible { color: var(--vr-color-accent, #245b57); border-color: currentColor; }
.kny-lux-tile__contacts { z-index: 2; }
.kny-lux-tile:focus-within .kny-lux-tile__contacts { opacity: 1; transform: translateY(0); }
.kny-lux-tile__rule { height: 1px; background: var(--vr-color-accent, #245b57); }
.kny-lux-tile:focus-within .kny-lux-tile__rule { width: 100%; }

.kny-lux-feature-block__photo { filter: none; }
.kny-lux-feature-block__title { text-wrap: balance; }
.kny-lux-hero__title { text-wrap: balance; }
.kny-lux-page a:focus-visible,
.kny-lux-page button:focus-visible { outline: 2px solid var(--vr-color-accent, #245b57); outline-offset: 3px; }

.kny-lux-page .kny-lux-hero__title {
  max-width: 12ch;
  font-family: var(--vr-font-display, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(2.8rem, 6vw, 6rem);
  font-weight: 400;
  letter-spacing: -.025em;
  line-height: 1.02;
}
.kny-lux-page .kny-lux-hero__photo { background-position: center 58%; }
.kny-lux-page .kny-lux-carousel__grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
.kny-lux-page .kny-lux-carousel__grid { cursor: grab; touch-action: auto; }
.kny-lux-page .kny-lux-carousel__grid.is-dragging { cursor: grabbing; user-select: none; scroll-snap-type: none; }
.kny-lux-page .kny-lux-carousel__grid:focus-visible { outline: 2px solid var(--vr-color-accent, #245b57); outline-offset: 3px; }
.kny-lux-page .kny-lux-carousel__item:focus-visible { outline-offset: -2px; }
.kny-lux-page .kny-lux-carousel__label { flex: 1; min-height: 2.6em; font-size: .875rem; line-height: 1.3; }
.kny-lux-page .kny-lux-carousel__arrow { border-radius: 0; color: var(--vr-color-accent, #245b57); border-color: currentColor; }
.kny-lux-page .kny-lux-carousel__arrow:hover,
.kny-lux-page .kny-lux-carousel__arrow:focus-visible { color: var(--vr-color-on-accent, #fff); border-color: var(--vr-color-accent, #245b57); background: var(--vr-color-accent, #245b57); }
.kny-lux-page .kny-lux-carousel__arrow[aria-disabled="true"] { opacity: .55; }
.kny-lux-page .kny-lux-carousel__arrow[aria-disabled="true"]:focus-visible { opacity: 1; }
.kny-lux-page .kny-lux-carousel__hint { margin: .75rem 0 0; color: var(--vr-color-muted, #52525b); font: .875rem/1.5 var(--vr-font-body, Montserrat, sans-serif); }

/* Shared page rhythm, applied only to this page's existing components. */
.kny-lux-page .kny-lux-carousel__inner,
.kny-lux-page .kny-lux-roster__inner,
.kny-lux-page .kny-lux-features__inner,
.kny-lux-page .kny-lux-sell__inner,
.kny-lux-page .kny-lux-neighborhoods__inner {
  width: 100%; max-width: 1500px; margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 3.75rem);
}
.kny-lux-page .kny-lux-features,
.kny-lux-page .kny-lux-neighborhoods { padding-block: clamp(3rem, 6vw, 6rem); }
.kny-lux-page .kny-lux-feature-block__body,
.kny-lux-page .kny-lux-feature-block__list-item,
.kny-lux-page .kny-lux-sell__body { font-size: var(--vr-type-body, 1rem); line-height: var(--vr-line-body, 1.65); }
.kny-lux-page .kny-lux-feature-block__body,
.kny-lux-page .kny-lux-sell__body { max-width: 60ch; color: var(--vr-color-muted, #52525b); }
.kny-lux-page .kny-lux-feature-block__title,
.kny-lux-page .kny-lux-neighborhoods__title,
.kny-lux-page .kny-lux-sell__title,
.kny-lux-page .kny-lux-cta__title { font-weight: 400; letter-spacing: -.025em; }
.kny-lux-page .kny-lux-feature-block__list-item::before { width: 6px; height: 6px; border-radius: 50%; background: var(--vr-color-accent, #245b57); margin-top: .6em; }
.kny-lux-page .kny-lux-neighborhoods__link:hover,
.kny-lux-page .kny-lux-neighborhoods__link:focus-visible { color: var(--vr-color-accent, #245b57); border-color: currentColor; }
.kny-lux-page .kny-lux-feature-block__cta,
.kny-lux-page .kny-lux-sell__cta { color: var(--vr-color-on-accent, #fff); border: 1px solid var(--vr-color-accent, #245b57); background: var(--vr-color-accent, #245b57); font-size: .875rem; letter-spacing: .08em; }
.kny-lux-page .kny-lux-feature-block__cta:hover,
.kny-lux-page .kny-lux-sell__cta:hover { color: var(--vr-color-on-accent, #fff); border-color: var(--vr-color-accent, #245b57); background: var(--vr-color-accent, #245b57); text-decoration: underline; text-underline-offset: .25em; }
.kny-lux-page .kny-lux-sell { padding: clamp(3rem, 6vw, 5rem) 0; background: var(--vr-color-surface-subtle, #f7f7f5); }
.kny-lux-page .kny-lux-cta { background: var(--vr-color-inverse, #18181b); }
.kny-lux-page .kny-lux-cta__eyebrow,
.kny-lux-page .kny-lux-cta__lead { color: var(--vr-color-muted-on-inverse, #d4d4d8); }
.kny-lux-page .kny-lux-cta__btn--primary { color: var(--vr-color-on-accent, #fff); background: var(--vr-color-accent, #245b57); border-color: var(--vr-color-on-accent, #fff); }
.kny-lux-page .kny-lux-cta__btn--primary:hover { color: var(--vr-color-on-accent, #fff); background: var(--vr-color-accent, #245b57); border-color: var(--vr-color-on-accent, #fff); text-decoration: underline; text-underline-offset: .25em; }
.kny-lux-page .kny-lux-cta a:focus-visible { outline-color: var(--vr-color-on-inverse, #fff); }
.kny-lux-page .kny-lux-roster__head { padding-inline: 0; }
.kny-lux-page .kny-lux-roster__scroller { padding-inline: 0; scroll-padding-inline: 0; }

@media (max-width: 767px) {
  .kny-lux-roster { padding: 3.75rem 0 4rem; }
  .kny-lux-roster__head { padding-inline: 1.25rem; }
  .kny-lux-roster__title { max-width: 11ch; }
  .kny-lux-roster__arrow { width: 2.5rem; height: 2.5rem; }
  .kny-lux-roster__scroller { padding-left: 1.25rem; padding-right: 1.25rem; scroll-padding-left: 1.25rem; }
  .kny-lux-tile { flex-basis: min(76vw,320px); }
  .kny-lux-tile__name { font-size: 1.55rem; }
}
