/* KLSV Asset Ownership
 * @source-id theme:css:page-home
 * @owner klsv-theme/inc/frontend/assets.php
 * @layer theme-css/page-owner
 * @runtime-handle klsv-page-home
 * @contracts home page layout and component rhythm only
 */

.klsv-page--home .klsv-home-flat {
  gap: var(--klsv-page-section-gap);
  overflow-x: clip;
}

.klsv-page--home .klsv-home-flat__topbar {
  display: none;
}

.klsv-page--home .klsv-directory-hero--home {
  padding-top: clamp(14px, 4vw, 28px);
}

.klsv-home-flat__hero-routes {
  display: grid;
  gap: 8px;
}

.klsv-home-flat__route-card {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--klsv-page-border);
  border-radius: var(--klsv-page-radius-sm);
  background: transparent;
}

.klsv-home-flat__route-card:hover {
  border-color: var(--klsv-page-border-strong);
  background: var(--klsv-page-surface);
}

.klsv-home-flat__route-badge {
  color: var(--klsv-page-accent);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.klsv-home-flat__route-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  color: var(--klsv-page-text-muted);
  font-size: var(--klsv-type-meta, .8rem);
}

.klsv-home-flat__route-cta {
  color: var(--klsv-page-text);
  font-size: .8rem;
  font-weight: 750;
}

.klsv-home-v2__discovery {
  display: grid;
  gap: var(--klsv-page-section-gap);
}

.klsv-home-v2__panel {
  padding: var(--klsv-page-pad);
  border: 1px solid var(--klsv-page-border);
  border-radius: var(--klsv-page-radius);
  background: transparent;
}

.klsv-home-v2__panel-head,
.klsv-home-v2__section-head {
  margin-bottom: 16px;
}

.klsv-home-v2__panel-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.klsv-home-v2__panel-link,
.klsv-home-v2__section-link,
.klsv-home-v2__recent-link {
  display: inline-flex;
  min-height: 36px;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid var(--klsv-page-border);
  color: var(--klsv-page-text);
  font-size: .82rem;
  font-weight: 700;
}

.klsv-home-v2__metric-pill {
  display: inline-flex;
  min-height: var(--klsv-pill-height-interactive, 34px);
  align-items: center;
  gap: 6px;
  padding-inline: 11px;
  font-size: .78rem;
}

.klsv-home-v2__metric-pill strong {
  color: var(--klsv-page-text);
}

.klsv-home-v2__area-grid {
  grid-template-columns: repeat(2, minmax(0,1fr));
}

.klsv-home-area-card-v2 {
  min-height: 0;
  height: auto;
  align-self: start;
}

.klsv-home-area-card-v2__media,
.klsv-directory-card__media {
  aspect-ratio: 4 / 5;
}

.klsv-home-area-card-v2__media {
  display: block;
  inline-size: 100%;
  width: 100%;
  height: var(--klsv-media-directory-card-height);
  max-height: var(--klsv-media-directory-card-height);
  overflow: hidden;
}

.klsv-home-area-card-v2__media > img,
.klsv-home-area-card-v2__img {
  display: block;
  inline-size: 100%;
  width: 100%;
  block-size: 100%;
  height: 100%;
  max-inline-size: none;
  object-fit: cover;
  object-position: center top;
}

.klsv-home-city-group-v2 {
  display: grid;
  gap: 10px;
  padding: 12px;
}

.klsv-home-city-group-v2__head {
  display: flex;
  gap: 12px;
  align-items: baseline;
  justify-content: space-between;
}

.klsv-home-city-group-v2__links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.klsv-home-city-group-v2__links a {
  width: fit-content;
  border-bottom: 0;
  color: var(--klsv-page-text-soft);
  font-size: .8rem;
}

.klsv-page--home .klsv-home-city-group-v2 h3 {
  color: var(--klsv-card-info-title, #d4af37);
  font-weight: 700;
  letter-spacing: 0;
}

.klsv-page--home .klsv-home-city-group-v2__count,
.klsv-page--home .klsv-home-city-group-v2__more {
  width: fit-content;
  border-color: rgba(195,170,120,.28);
  background: rgba(255,255,255,.035);
  color: var(--klsv-card-info-meta, rgba(255,255,255,.82));
}

.klsv-page--home .klsv-home-city-group-v2__links a {
  color: var(--klsv-page-text);
}

.klsv-home-city-group-v2__count,
.klsv-home-city-group-v2__more {
  font-size: .75rem;
}

.klsv-home-v2__recent-grid {
  grid-template-columns: repeat(2, minmax(0,1fr));
}

.klsv-home-v2__seo {
  border-top: 1px solid var(--klsv-page-border);
  padding-top: var(--klsv-page-pad);
}

@media (min-width: 760px) {
  .klsv-home-flat__hero-routes {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }

  .klsv-home-v2__area-grid,
  .klsv-home-v2__recent-grid {
    grid-template-columns: repeat(4, minmax(0,1fr));
  }

  .klsv-home-v2__city-groups {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}

@media (min-width: 1180px) {
  .klsv-home-v2__area-grid {
    grid-template-columns: repeat(5, minmax(0,1fr));
  }
}


/* Home readability foundation */
.klsv-home-flat__intro p {
  max-width: min(62ch, 100%);
}

.klsv-home-v2__panel-head > div,
.klsv-home-v2__section-head > div {
  max-width: var(--klsv-readable-measure, 68ch);
}

.klsv-home-v2__panel-head h2,
.klsv-home-v2__section-head h2 {
  max-width: min(16ch, 100%);
}

.klsv-home-v2__panel-actions {
  align-items: center;
}

.klsv-home-city-group-v2__head {
  gap: 8px;
}

.klsv-home-city-group-v2__links {
  align-items: center;
}

.klsv-home-city-group-v2 .klsv-directory-card__title {
  font-size: .82rem;
  line-height: 1;
  letter-spacing: 0;
}


/* Home entry surface polish */
.klsv-home-flat__route-card,
.klsv-home-city-group-v2,
.klsv-home-area-card-v2,
.klsv-home-v2__seo {
  background: var(--klsv-page-surface-card);
  box-shadow: var(--klsv-page-glow-soft);
}

.klsv-home-flat__route-card:hover,
.klsv-home-city-group-v2:hover,
.klsv-home-area-card-v2:hover {
  border-color: var(--klsv-page-border-strong);
  box-shadow: var(--klsv-page-glow-active);
}

.klsv-home-flat__route-badge,
.klsv-home-v2__metric-pill strong {
  text-shadow: 0 0 16px rgba(195,170,120,.24);
}


/* Home component card polish */
.klsv-home-flat__hero-routes {
  gap: var(--klsv-space-3, 12px);
}

.klsv-home-flat__route-card {
  position: relative;
  overflow: hidden;
  gap: 10px;
  min-height: 156px;
  padding: clamp(18px, 4vw, 26px);
  border-color: rgba(255,255,255,.075);
  background:
    radial-gradient(circle at 86% 10%, rgba(195,170,120,.16), transparent 42%),
    var(--klsv-page-surface-card);
}

.klsv-home-flat__route-card::after {
  content: "";
  position: absolute;
  inset: auto 18px 16px 18px;
  height: 1px;
  background: linear-gradient(90deg, rgba(195,170,120,.42), transparent);
  opacity: .55;
  pointer-events: none;
}

.klsv-home-flat__route-card:hover {
  transform: translateY(-2px);
  border-color: rgba(195,170,120,.34);
}

.klsv-home-flat__route-card:active {
  transform: translateY(0);
}

.klsv-home-flat__route-badge {
  color: var(--klsv-page-accent-strong, var(--klsv-page-accent));
  font-size: .76rem;
  letter-spacing: .16em;
}

.klsv-home-flat__route-card .klsv-directory-card__title {
  font-size: clamp(1.24rem, 5vw, 1.7rem);
  line-height: 1.06;
}

.klsv-home-flat__route-meta {
  font-size: .9rem;
}

.klsv-home-flat__route-cta {
  margin-top: auto;
  font-size: .92rem;
}

.klsv-home-v2__area-grid {
  align-items: start;
}

.klsv-home-area-card-v2 {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
  border-radius: var(--klsv-page-radius-sm);
}

.klsv-home-area-card-v2__body {
  display: grid;
  gap: 6px;
  align-content: start;
  min-height: 0;
  padding: 12px;
}

.klsv-home-area-card-v2 .klsv-directory-card__title {
  font-size: clamp(.98rem, 3.8vw, 1.12rem);
  line-height: 1.12;
  letter-spacing: .01em;
}

.klsv-home-area-card-v2 .klsv-directory-card__meta {
  font-size: .84rem;
}

.klsv-home-city-group-v2 {
  gap: 14px;
  padding: clamp(16px, 4vw, 22px);
  border-color: rgba(255,255,255,.07);
}

.klsv-home-city-group-v2__head h3 {
  font-size: clamp(1.25rem, 5vw, 1.65rem);
  line-height: 1.08;
}

.klsv-home-city-group-v2__head span {
  color: var(--klsv-page-text-soft);
  font-size: .9rem;
  font-weight: 750;
}

.klsv-home-city-group-v2__links {
  gap: 8px;
}

.klsv-home-city-group-v2__more {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  color: var(--klsv-page-text-muted);
  font-size: .82rem;
}

@media (max-width: 760px) {
  .klsv-home-v2__panel {
    padding: 14px;
  }

  .klsv-home-v2__panel-head,
  .klsv-home-v2__section-head {
    margin-bottom: 12px;
  }

  .klsv-home-area-card-v2__body {
    padding: 11px 12px 12px;
  }

  .klsv-home-v2__city-groups {
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1180px) {
  .klsv-home-flat__route-card {
    min-height: 174px;
  }
}


/* Home rhythm and tap targets */
.klsv-home-v2__panel {
  display: grid;
  gap: 0;
}

.klsv-home-v2__panel-link,
.klsv-home-v2__section-link,
.klsv-home-v2__recent-link,
.klsv-home-v2__metric-pill {
  min-height: var(--klsv-touch-target-compact, 40px);
}

.klsv-home-v2__panel-link,
.klsv-home-v2__section-link,
.klsv-home-v2__recent-link {
  padding-inline: 12px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  background: rgba(255,255,255,.024);
  text-decoration: none;
}

.klsv-home-v2__area-grid,
.klsv-home-v2__recent-grid,
.klsv-home-v2__city-groups {
  gap: var(--klsv-card-gap, 12px);
}

.klsv-home-area-card-v2,
.klsv-home-city-group-v2 {
  min-width: 0;
}

.klsv-home-area-card-v2__media,
.klsv-directory-card__media {
  min-height: 0;
}

.klsv-home-city-group-v2__links a,
.klsv-home-city-group-v2__more {
  min-height: var(--klsv-touch-target-chip, 36px);
  padding-inline: 10px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  background: rgba(255,255,255,.024);
  color: var(--klsv-page-text-soft);
  line-height: 1.1;
}

@media (max-width: 430px) {
  .klsv-home-v2__area-grid,
  .klsv-home-v2__recent-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .klsv-home-area-card-v2__body {
    padding: 10px;
  }

  .klsv-home-area-card-v2 .klsv-directory-card__title {
    font-size: .95rem;
  }

  .klsv-home-area-card-v2 .klsv-directory-card__meta {
    font-size: .8rem;
  }
}

@media (min-width: 760px) and (max-width: 1179px) {
  .klsv-home-v2__area-grid,
  .klsv-home-v2__recent-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
}
/* Home directory visual rhythm */
.klsv-home-v2__panel--kl {
  position: relative;
  overflow: hidden;
  border-color: rgba(255,255,255,.085);
  background:
    radial-gradient(circle at 8% 0%, rgba(195,170,120,.10), transparent 36%),
    linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.012));
}

.klsv-home-v2__panel--kl::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(195,170,120,.38), transparent);
  opacity: .78;
  pointer-events: none;
}

.klsv-home-v2__panel--kl .klsv-home-v2__panel-head {
  position: relative;
  z-index: 1;
  margin-bottom: clamp(14px, 4vw, 20px);
}

.klsv-home-v2__panel--kl .klsv-home-v2__eyebrow,
.klsv-home-v2__panel--kl .klsv-section-head__eyebrow {
  color: var(--klsv-page-accent-strong, var(--klsv-page-accent));
  letter-spacing: .16em;
}

.klsv-home-v2__panel--kl .klsv-section-head__title {
  max-width: 12ch;
}

.klsv-home-v2__panel--kl .klsv-section-head__copy {
  max-width: 58ch;
  color: var(--klsv-page-text-soft);
}

.klsv-home-v2__panel--kl .klsv-home-v2__panel-link {
  border-color: rgba(195,170,120,.20);
  background: rgba(195,170,120,.07);
  color: var(--klsv-page-text);
}

.klsv-home-v2__panel--kl .klsv-home-v2__area-grid {
  position: relative;
  z-index: 1;
  gap: clamp(12px, 3.6vw, 16px);
}

.klsv-home-area-card-v2__cta {
  display: inline-flex;
  width: fit-content;
  min-height: 34px;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
  padding-inline: 12px;
  border: 1px solid rgba(195,170,120,.22);
  border-radius: 999px;
  background: rgba(195,170,120,.08);
  color: var(--klsv-page-text);
  font-size: .78rem;
  font-weight: 780;
  letter-spacing: .02em;
  text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
  transition:
    border-color 180ms var(--klsv-motion-ease-luxe, ease),
    background 180ms var(--klsv-motion-ease-luxe, ease),
    box-shadow 180ms var(--klsv-motion-ease-luxe, ease),
    color 180ms var(--klsv-motion-ease-luxe, ease),
    transform 180ms var(--klsv-motion-ease-luxe, ease),
    filter 180ms var(--klsv-motion-ease-luxe, ease);
}

@media (max-width: 430px) {
  .klsv-home-v2__panel--kl .klsv-home-v2__area-grid {
    gap: 12px;
  }

  .klsv-home-area-card-v2__cta {
    min-height: 34px;
    padding-inline: 11px;
    font-size: .74rem;
  }
}


/* Linear premium visual accent for Home */
.klsv-page--home .klsv-directory-hero--home::before {
  opacity: .72;
}

.klsv-home-flat__route-card,
.klsv-home-v2__panel,
.klsv-home-city-group-v2 {
  position: relative;
  isolation: isolate;
}

@media (hover: hover) and (pointer: fine) {
  .klsv-home-flat__route-card:hover,
  .klsv-home-city-group-v2:hover {
    border-color: var(--klsv-premium-border-active, rgba(195,170,120,.38));
    box-shadow: 0 0 0 1px rgba(195,170,120,.12), 0 16px 42px rgba(0,0,0,.30), 0 0 28px rgba(195,170,120,.13);
  }

  .klsv-home-flat__route-card:hover .klsv-home-flat__route-cta,
  .klsv-home-v2__panel-link:hover {
    color: var(--klsv-page-text);
    text-shadow: 0 0 18px rgba(195,170,120,.20);
  }
}

.klsv-home-v2__panel--other {
  background:
    radial-gradient(circle at 90% 10%, rgba(118,140,159,.06), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,.010));
}

/* Public UX pass: stronger home entry cards and card CTAs */
.klsv-home-flat__route-card {
  gap: 9px;
  padding: clamp(14px, 2.4vw, 18px);
  border-color: rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 90% 0%, rgba(195,170,120,.10), transparent 16rem),
    var(--klsv-page-surface-card);
  box-shadow: var(--klsv-page-glow-soft);
  transition:
    border-color var(--klsv-page-transition),
    background var(--klsv-page-transition),
    box-shadow var(--klsv-page-transition),
    transform var(--klsv-page-transition);
}

.klsv-home-flat__route-card h3,
.klsv-home-flat__route-card strong:not(.klsv-home-flat__route-badge) {
  font-size: clamp(1.16rem, 2.4vw, 1.48rem);
  line-height: 1.08;
  letter-spacing: -.03em;
}

.klsv-home-flat__route-cta,
.klsv-home-area-card-v2__cta,
.klsv-home-v2__section-link,
.klsv-home-v2__panel-link {
  display: inline-flex;
  width: fit-content;
  min-height: var(--klsv-touch-target-compact, 40px);
  align-items: center;
  justify-content: center;
  padding-inline: 12px;
  border: 1px solid rgba(195,170,120,.18);
  border-radius: 999px;
  background: rgba(195,170,120,.075);
  color: var(--klsv-page-text);
  text-decoration: none;
}

.klsv-home-area-card-v2__body {
  gap: 8px;
}

.klsv-home-area-card-v2 .klsv-directory-card__title {
  font-size: clamp(1rem, 1.8vw, 1.16rem);
  line-height: 1.08;
}

.klsv-home-area-card-v2 .klsv-directory-card__meta {
  color: var(--klsv-page-text-soft);
  font-size: .82rem;
  line-height: 1.35;
}

@media (hover: hover) and (pointer: fine) {
  .klsv-home-flat__route-card:hover {
    border-color: rgba(195,170,120,.32);
    background:
      radial-gradient(circle at 90% 0%, rgba(195,170,120,.16), transparent 16rem),
      var(--klsv-page-surface-strong);
    box-shadow: var(--klsv-page-glow-active);
    transform: translateY(-2px);
  }

  .klsv-home-area-card-v2:hover .klsv-home-area-card-v2__cta,
  .klsv-home-v2__section-link:hover,
  .klsv-home-v2__panel-link:hover {
    border-color: rgba(195,170,120,.38);
    background: rgba(195,170,120,.14);
    box-shadow: 0 0 18px rgba(195,170,120,.14);
  }
}


/* copy/SEO intent pass: Home hero AIDA rhythm */
.klsv-page--home .klsv-directory-hero--home {
  padding: clamp(28px, 5vw, 56px) clamp(22px, 4vw, 48px);
}

.klsv-page--home .klsv-directory-hero--home .klsv-ui-hero__main {
  gap: clamp(26px, 5vw, 52px);
  align-items: center;
}

.klsv-home-flat__intro {
  display: grid;
  gap: clamp(14px, 2.4vw, 22px);
  align-content: center;
}

.klsv-home-flat__intro .klsv-home-flat__eyebrow,
.klsv-home-flat__eyebrow {
  margin-bottom: 0;
}

.klsv-home-flat__intro h1 {
  max-width: min(13ch, 100%);
}

.klsv-home-flat__intro p {
  max-width: min(66ch, 100%);
  color: rgba(247,248,250,.78);
  font-size: clamp(1rem, 1.55vw, 1.16rem);
  line-height: 1.58;
}

.klsv-page--home .klsv-home-flat__actions {
  align-self: stretch;
}

.klsv-page--home .klsv-home-flat__hero-routes {
  gap: clamp(12px, 2vw, 18px);
  align-items: stretch;
}

.klsv-page--home .klsv-home-flat__route-card {
  min-height: clamp(178px, 18vw, 232px);
  padding: clamp(18px, 2.6vw, 24px);
  align-content: start;
  gap: clamp(10px, 1.5vw, 14px);
}

.klsv-page--home .klsv-home-flat__route-card .klsv-directory-card__title {
  max-width: 10ch;
  font-size: clamp(1.3rem, 2.4vw, 2.05rem);
  line-height: .98;
  letter-spacing: -.04em;
}

.klsv-page--home .klsv-home-flat__route-meta {
  margin-top: 2px;
}

.klsv-page--home .klsv-home-flat__route-cta {
  width: fit-content;
  margin-top: auto;
  padding: 10px 14px;
  border: 1px solid rgba(195,170,120,.18);
  border-radius: 999px;
  background: rgba(195,170,120,.10);
  box-shadow: 0 10px 24px rgba(0,0,0,.22);
}

@media (max-width: 760px) {
  .klsv-page--home .klsv-directory-hero--home {
    padding: 22px 16px;
  }

  .klsv-page--home .klsv-home-flat__hero-routes {
    grid-template-columns: minmax(0, 1fr);
  }

  .klsv-page--home .klsv-home-flat__route-card {
    min-height: 0;
  }
}


/* visual rhythm pass: align Home hero, sections and Telegram updates CTA. */
.klsv-page--home .klsv-home-flat {
  gap: clamp(24px, 4vw, 42px);
}

.klsv-page--home .klsv-directory-hero--home {
  padding: clamp(36px, 5.4vw, 64px) clamp(24px, 4vw, 48px);
}

.klsv-page--home .klsv-directory-hero--home .klsv-ui-hero__main {
  gap: clamp(30px, 5vw, 56px);
}

.klsv-page--home .klsv-home-flat__intro {
  gap: clamp(16px, 2.4vw, 24px);
}

.klsv-page--home .klsv-home-flat__intro p {
  max-width: 64ch;
}

.klsv-page--home .klsv-home-v2__discovery {
  gap: clamp(24px, 4vw, 40px);
}

.klsv-page--home .klsv-home-v2__panel,
.klsv-page--home .klsv-home-v2__recent,
.klsv-page--home .klsv-home-v2__faq,
.klsv-page--home .klsv-home-v2__telegram-cta {
  padding: clamp(22px, 3.2vw, 32px);
}

.klsv-page--home .klsv-home-v2__panel-head,
.klsv-page--home .klsv-home-v2__section-head {
  margin-bottom: clamp(18px, 2.4vw, 26px);
}

.klsv-page--home .klsv-home-flat__route-card {
  background:
    linear-gradient(180deg, rgba(195,170,120,.09), rgba(255,255,255,.026)),
    rgba(255,255,255,.012);
}

.klsv-telegram-updates-cta {
  display: grid;
  gap: clamp(14px, 2.4vw, 22px);
  align-items: center;
  border-color: rgba(195,170,120,.20);
  background:
    radial-gradient(circle at 100% 0%, rgba(118,140,159,.10), transparent 24rem),
    linear-gradient(180deg, rgba(195,170,120,.055), rgba(255,255,255,.018));
}

.klsv-telegram-updates-cta__copy {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.klsv-telegram-updates-cta__eyebrow {
  color: var(--klsv-page-accent-strong);
  font-size: var(--klsv-type-eyebrow);
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.klsv-telegram-updates-cta h2 {
  max-width: 18ch;
  font-size: clamp(1.45rem, 3vw, 2.25rem);
  line-height: 1.02;
}

.klsv-telegram-updates-cta p {
  max-width: 58ch;
  color: var(--klsv-page-text-soft);
  line-height: 1.55;
}

.klsv-telegram-updates-cta__button {
  justify-self: start;
}

@media (min-width: 760px) {
  .klsv-telegram-updates-cta {
    grid-template-columns: minmax(0,1fr) auto;
  }

  .klsv-telegram-updates-cta__button {
    justify-self: end;
  }
}

@media (max-width: 760px) {
  .klsv-page--home .klsv-directory-hero--home {
    padding: 26px 18px;
  }

  .klsv-page--home .klsv-home-v2__panel,
  .klsv-page--home .klsv-home-v2__recent,
  .klsv-page--home .klsv-home-v2__faq,
  .klsv-page--home .klsv-home-v2__telegram-cta {
    padding: 16px;
  }
}

/* public hero rhythm unification: Home now follows shared hero contract. */
.klsv-page--home .klsv-directory-hero--home {
  padding: var(--klsv-hero-padding-block) var(--klsv-hero-padding-inline);
}

.klsv-page--home .klsv-directory-hero--home .klsv-ui-hero__main {
  gap: var(--klsv-hero-grid-gap);
  align-items: center;
}

.klsv-page--home .klsv-home-flat__intro {
  gap: var(--klsv-hero-copy-gap);
  max-width: min(var(--klsv-hero-copy-max), 100%);
}

.klsv-page--home .klsv-home-flat__intro p {
  max-width: min(var(--klsv-hero-intro-max), 100%);
  line-height: 1.58;
}

.klsv-page--home .klsv-home-flat__actions {
  width: min(var(--klsv-hero-action-max), 100%);
  align-self: center;
}

.klsv-page--home .klsv-home-flat__hero-routes {
  gap: clamp(12px, 2vw, 18px);
}

@media (max-width: 760px) {
  .klsv-page--home .klsv-directory-hero--home {
    padding: var(--klsv-hero-padding-block) var(--klsv-hero-padding-inline);
  }

  .klsv-page--home .klsv-home-flat__actions {
    width: 100%;
    justify-self: stretch;
  }
}

/* Batch 2: home entry rhythm and CTA scanability. */
.klsv-page--home .klsv-home-flat {
  gap: clamp(26px, 4.4vw, 48px);
}

.klsv-page--home .klsv-home-flat__hero-routes,
.klsv-page--home .klsv-home-v2__area-grid,
.klsv-page--home .klsv-home-v2__recent-grid,
.klsv-page--home .klsv-home-v2__city-groups {
  gap: var(--klsv-ui-grid-gap, clamp(14px, 2vw, 24px));
}

.klsv-page--home .klsv-home-flat__route-card {
  border-color: var(--klsv-ui-card-border, var(--klsv-page-border));
  border-radius: var(--klsv-ui-card-radius, var(--klsv-page-radius));
  box-shadow: var(--klsv-ui-card-shadow, var(--klsv-page-glow-soft));
}

.klsv-page--home .klsv-home-flat__route-card .klsv-directory-card__title,
.klsv-page--home .klsv-home-area-card-v2__title,
.klsv-page--home .klsv-home-city-group-v2__title {
  overflow-wrap: anywhere;
}

.klsv-page--home .klsv-home-flat__route-cta,
.klsv-page--home .klsv-home-area-card-v2__cta,
.klsv-page--home .klsv-home-v2__section-link,
.klsv-page--home .klsv-home-v2__panel-link,
.klsv-page--home .klsv-telegram-updates-cta__button {
  min-height: var(--klsv-ui-touch-target-min, 44px);
  border-color: var(--klsv-ui-control-border, var(--klsv-page-border));
  border-radius: var(--klsv-ui-control-radius, var(--klsv-page-radius-pill));
}

.klsv-page--home .klsv-home-v2__panel,
.klsv-page--home .klsv-home-v2__recent,
.klsv-page--home .klsv-home-v2__faq,
.klsv-page--home .klsv-home-v2__telegram-cta {
  border-radius: var(--klsv-ui-card-radius, var(--klsv-page-radius));
  box-shadow: var(--klsv-ui-card-shadow, var(--klsv-page-glow-soft));
}

.klsv-page--home .klsv-home-v2__faq .klsv-faq-section__list {
  padding-block: clamp(12px, 1.4vw, 16px) clamp(8px, 1vw, 12px);
}

.klsv-page--home .klsv-home-v2__faq .klsv-faq-section__item:last-child {
  padding-block-end: 8px;
}

.klsv-page--home .klsv-home-v2__faq .klsv-faq-section__guide {
  display: grid;
  gap: 8px;
  margin-top: clamp(12px, 1.6vw, 18px);
}

.klsv-page--home .klsv-home-v2__faq .klsv-faq-section__guide p {
  margin: 0;
}

.klsv-page--home .klsv-telegram-updates-cta {
  border-color: var(--klsv-ui-border-accent, var(--klsv-page-border-strong));
}

@media (min-width: 1180px) {
  .klsv-page--home .klsv-home-v2__area-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .klsv-page--home .klsv-home-v2__recent-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .klsv-page--home .klsv-home-flat {
    gap: 22px;
  }

  .klsv-page--home .klsv-home-v2__area-grid,
  .klsv-page--home .klsv-home-v2__recent-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .klsv-page--home .klsv-home-flat__route-cta,
  .klsv-page--home .klsv-home-area-card-v2__cta,
  .klsv-page--home .klsv-home-v2__section-link,
  .klsv-page--home .klsv-home-v2__panel-link,
  .klsv-page--home .klsv-telegram-updates-cta__button {
    width: 100%;
    white-space: normal;
  }
}

/* Homepage directory-entry hero.
 * The shared directory hero owns the component contract; this page owner only
 * adjusts homepage density, CTA order and no-image surface rhythm.
 */
.klsv-page--home .klsv-home-flat {
  overflow-x: clip;
}

.klsv-page--home .klsv-directory-hero--home {
  --klsv-home-hero-accent: var(--klsv-page-accent-strong, #c3aa78);
  --klsv-home-hero-text: var(--klsv-page-text, #f7f8fa);
  --klsv-home-hero-muted: var(--klsv-page-text-soft, rgba(247,248,250,.74));
  --klsv-home-hero-compact-title: clamp(3rem, 5.2vw, 5.75rem);
  width: min(100%, var(--klsv-page-shell-wide, 1440px));
  max-width: min(100%, var(--klsv-page-shell-wide, 1440px));
  min-height: auto;
  margin-inline: auto;
  padding: clamp(28px, 4.4vw, 54px) var(--klsv-hero-padding-inline);
  overflow: hidden;
  border: 1px solid rgba(167,124,255,.18);
  border-radius: var(--klsv-ui-card-radius, var(--klsv-page-radius, 18px));
  background:
    radial-gradient(circle at 86% 10%, rgba(167,124,255,.10), transparent 22rem),
    radial-gradient(circle at 12% 92%, rgba(100,181,246,.06), transparent 20rem),
    linear-gradient(135deg, rgba(10,12,20,.96), rgba(7,9,16,.98));
  box-shadow: var(--klsv-ui-card-shadow, var(--klsv-page-glow-soft));
}

.klsv-page--home .klsv-directory-hero--home::before,
.klsv-page--home .klsv-directory-hero--home::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.klsv-page--home .klsv-directory-hero--home::before {
  z-index: 0;
  background: linear-gradient(90deg, rgba(5,7,13,.78), rgba(5,7,13,.24) 72%, rgba(5,7,13,.46));
}

.klsv-page--home .klsv-directory-hero--home::after {
  z-index: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.026), transparent 34%);
  opacity: .86;
}

.klsv-page--home .klsv-directory-hero--home > * {
  position: relative;
  z-index: 1;
}

.klsv-page--home .klsv-directory-hero--home .klsv-ui-hero__main {
  display: grid;
  grid-template-columns: minmax(0, min(var(--klsv-hero-copy-max, 720px), 100%));
  align-content: center;
  align-items: start;
  min-height: auto;
  gap: var(--klsv-hero-grid-gap);
}

.klsv-page--home .klsv-home-flat__intro,
.klsv-page--home .klsv-home-flat__actions,
.klsv-home-hero__cta-row,
.klsv-home-hero__stats {
  width: min(var(--klsv-hero-copy-max, 720px), 100%);
  max-width: min(var(--klsv-hero-copy-max, 720px), 100%);
}

.klsv-page--home .klsv-home-flat__intro {
  gap: var(--klsv-hero-copy-gap);
}

.klsv-page--home .klsv-home-flat__eyebrow {
  color: var(--klsv-home-hero-accent);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.klsv-page--home .klsv-home-flat__intro h1 {
  max-width: min(10.5ch, var(--klsv-hero-title-measure));
  color: var(--klsv-home-hero-text);
  font-family: inherit;
  font-size: var(--klsv-home-hero-compact-title);
  font-weight: var(--klsv-hero-title-weight);
  line-height: var(--klsv-hero-title-line);
  letter-spacing: var(--klsv-hero-title-tracking);
  text-wrap: balance;
}

.klsv-page--home .klsv-home-flat__intro h1 span {
  color: var(--klsv-home-hero-accent);
  text-shadow: 0 0 22px rgba(167,124,255,.22);
}

.klsv-page--home .klsv-home-flat__intro p {
  max-width: min(58ch, var(--klsv-hero-intro-max, 62ch));
  color: var(--klsv-home-hero-muted);
  font-size: var(--klsv-type-body);
  line-height: var(--klsv-line-body);
}

.klsv-home-hero__controls {
  display: grid;
  gap: clamp(18px, 2.4vw, 28px);
}

.klsv-home-hero__cta-row,
.klsv-home-hero__route-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.klsv-home-hero__cta-row {
  align-items: center;
}

.klsv-home-hero__route-buttons {
  flex: 1 1 auto;
}

.klsv-home-hero__button {
  min-width: min(100%, var(--klsv-hero-button-min, 168px));
  font-size: .84rem;
  font-weight: 820;
}

.klsv-home-hero__button--primary {
  min-width: min(100%, var(--klsv-hero-primary-button-min, 188px));
}

.klsv-home-hero__button--telegram {
  min-width: min(100%, var(--klsv-hero-secondary-button-min, 156px));
  border-color: rgba(34,158,217,.42);
  background:
    linear-gradient(180deg, rgba(34,158,217,.22), rgba(34,158,217,.11)),
    rgba(255,255,255,.035);
  color: var(--klsv-home-hero-text);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 14px 28px rgba(34,158,217,.12);
}

.klsv-home-hero__button--telegram .klsv-platform-icon {
  background: rgba(255,255,255,.96);
}

.klsv-home-hero__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
}

.klsv-home-hero__stat {
  display: inline-grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 6px;
  min-height: 36px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 999px;
  background: rgba(255,255,255,.032);
}

.klsv-home-hero__stat::before {
  content: none;
}

.klsv-home-hero__stat dt,
.klsv-home-hero__stat dd,
.klsv-home-hero__stat span,
.klsv-home-hero__stat p {
  margin: 0;
  line-height: 1.1;
}

.klsv-home-hero__stat dt,
.klsv-home-hero__stat span {
  color: var(--klsv-home-hero-text);
  font-size: .8rem;
  font-weight: 820;
}

.klsv-home-hero__stat dd,
.klsv-home-hero__stat p {
  color: var(--klsv-home-hero-muted);
  font-size: .78rem;
  font-weight: 650;
}

@media (hover: hover) and (pointer: fine) {
  .klsv-home-hero__button:hover {
    transform: translateY(-2px);
  }

  .klsv-home-hero__button--telegram:hover {
    border-color: rgba(34,158,217,.68);
    background:
      linear-gradient(180deg, rgba(34,158,217,.30), rgba(34,158,217,.15)),
      rgba(255,255,255,.045);
    color: var(--klsv-home-hero-text);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 34px rgba(34,158,217,.18);
  }
}

@media (min-width: 980px) {
  .klsv-page--home .klsv-directory-hero--home .klsv-ui-hero__main {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .52fr);
    align-items: center;
    gap: clamp(28px, 4vw, 56px);
  }

  .klsv-page--home .klsv-home-flat__actions,
  .klsv-home-hero__cta-row,
  .klsv-home-hero__stats {
    width: 100%;
    max-width: none;
  }

  .klsv-home-hero__controls {
    padding: var(--klsv-hero-control-padding);
    border: 1px solid var(--klsv-hero-control-border);
    border-radius: var(--klsv-hero-control-radius);
    background: var(--klsv-hero-control-bg);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 18px 42px rgba(0,0,0,.20);
  }

  .klsv-home-hero__cta-row,
  .klsv-home-hero__route-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .klsv-home-hero__button {
    width: 100%;
  }

  .klsv-home-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .klsv-home-hero__stat {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    border-radius: 14px;
  }

  .klsv-page--home .klsv-home-flat__actions {
    justify-self: stretch;
  }

}

@media (max-width: 640px) {
  .klsv-page--home .klsv-directory-hero--home {
    padding: var(--klsv-hero-padding-block) var(--klsv-hero-padding-inline);
  }

  .klsv-page--home .klsv-home-flat__intro h1 {
    max-width: var(--klsv-hero-title-measure);
    font-size: var(--klsv-hero-title-size);
  }

  .klsv-home-hero__cta-row,
  .klsv-home-hero__route-buttons,
  .klsv-home-hero__button {
    width: 100%;
  }

  .klsv-home-hero__route-buttons {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .klsv-home-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .klsv-home-hero__stat {
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
    border-radius: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .klsv-home-hero__button {
    transition: none;
  }
}

/* Homepage action bento: entry points plus lightweight proof signals. */
.klsv-home-proof-strip {
  display: grid;
  width: min(100%, var(--klsv-page-shell-wide, 1440px));
  margin-inline: auto;
}

.klsv-home-proof-strip__metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.6vw, 14px);
}

.klsv-home-proof-tile {
  position: relative;
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 122px;
  padding: clamp(14px, 2vw, 18px);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--klsv-ui-card-radius-compact, 14px);
  background:
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.016)),
    rgba(9,11,18,.86);
  color: var(--klsv-public-title, #f7f2e8);
  text-decoration: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.035);
  transition: border-color .18s ease, transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.klsv-home-proof-strip--hero {
  display: none;
}

.klsv-home-proof-tile[role="link"],
a.klsv-home-proof-tile {
  cursor: pointer;
}

a.klsv-home-proof-tile {
  padding-inline-end: clamp(38px, 4vw, 46px);
}

a.klsv-home-proof-tile::after {
  content: "\2197";
  position: absolute;
  inset-block-start: 14px;
  inset-inline-end: 14px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid rgba(216,191,122,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.045);
  color: var(--klsv-public-price, #d8bf7a);
  font-size: .95rem;
  font-weight: 850;
  line-height: 1;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.klsv-home-proof-tile--primary {
  border-color: rgba(201,169,106,.24);
  background:
    radial-gradient(circle at 0% 0%, rgba(201,169,106,.16), transparent 68%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.018)),
    rgba(9,11,18,.88);
}

.klsv-home-proof-tile--telegram {
  border-color: rgba(34,158,217,.22);
  background:
    radial-gradient(circle at 100% 0%, rgba(34,158,217,.10), transparent 64%),
    linear-gradient(180deg, rgba(255,255,255,.048), rgba(255,255,255,.018)),
    rgba(9,11,18,.88);
}

.klsv-home-proof-tile span {
  color: var(--klsv-public-price, #d8bf7a);
  font-size: clamp(1.28rem, 2vw, 1.7rem);
  font-weight: 850;
  line-height: 1;
}

.klsv-home-proof-tile strong {
  color: var(--klsv-public-title, #f7f2e8);
  font-size: .9rem;
  font-weight: 820;
  line-height: 1.15;
}

.klsv-home-proof-tile em {
  color: var(--klsv-public-meta, #b8b2a6);
  font-size: .78rem;
  font-style: normal;
  font-weight: 650;
  line-height: 1.22;
}

.klsv-home-proof-tile__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  max-width: 100%;
  min-height: 26px;
  margin-top: 3px;
  padding: 5px 9px;
  border: 1px solid rgba(34,158,217,.32);
  border-radius: 999px;
  background: rgba(34,158,217,.10);
  color: var(--klsv-page-text, #f7f8fa);
  font-size: .61rem;
  font-weight: 850;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  white-space: normal;
}

.klsv-home-proof-tile--telegram span {
  font-size: clamp(1.18rem, 1.7vw, 1.5rem);
}

.klsv-home-proof-tile--telegram strong {
  font-size: .86rem;
}

.klsv-home-proof-tile--telegram em {
  font-size: .75rem;
  line-height: 1.18;
}

@media (hover: hover) and (pointer: fine) {
  a.klsv-home-proof-tile:hover {
    border-color: rgba(201,169,106,.46);
    background:
      radial-gradient(circle at 0% 0%, rgba(201,169,106,.14), transparent 70%),
      linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.022)),
      rgba(12,14,22,.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 16px 32px rgba(0,0,0,.24);
    transform: translateY(-2px);
  }

  a.klsv-home-proof-tile:hover::after {
    border-color: rgba(216,191,122,.46);
    background: rgba(216,191,122,.13);
    color: var(--klsv-page-text, #f7f8fa);
    transform: translateX(2px);
  }

  a.klsv-home-proof-tile--telegram:hover {
    border-color: rgba(34,158,217,.44);
    background:
      radial-gradient(circle at 100% 0%, rgba(34,158,217,.14), transparent 66%),
      linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.022)),
      rgba(12,14,22,.92);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 16px 34px rgba(0,0,0,.24);
  }

  a.klsv-home-proof-tile--telegram:hover::after {
    border-color: rgba(34,158,217,.56);
    background: rgba(34,158,217,.16);
  }

  a.klsv-home-proof-tile--telegram:hover .klsv-home-proof-tile__cta {
    border-color: rgba(34,158,217,.64);
    background: rgba(34,158,217,.20);
  }
}

a.klsv-home-proof-tile:focus-visible {
  outline: 2px solid var(--klsv-public-price, #d8bf7a);
  outline-offset: 3px;
}

a.klsv-home-proof-tile:focus-visible::after {
  border-color: var(--klsv-public-price, #d8bf7a);
  background: rgba(216,191,122,.14);
}

@media (min-width: 980px) {
  .klsv-home-proof-strip__metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .klsv-home-proof-strip--hero {
    display: grid;
    width: 100%;
  }

  .klsv-home-proof-strip--hero .klsv-home-proof-strip__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(136px, 1fr));
    gap: 12px;
  }

  .klsv-home-proof-strip--hero .klsv-home-proof-tile {
    min-height: 136px;
  }

  .klsv-home-proof-strip--below {
    display: none;
  }
}

@media (max-width: 640px) {
  .klsv-page--home .klsv-directory-hero--home {
    min-block-size: clamp(420px, 62svh, 540px);
    padding: 18px 16px 20px;
  }

  .klsv-page--home .klsv-home-flat__intro {
    gap: 14px;
  }

  .klsv-page--home .klsv-home-flat__eyebrow {
    font-size: .68rem;
    letter-spacing: .12em;
  }

  .klsv-page--home .klsv-home-flat__intro h1 {
    max-width: 100%;
    font-size: clamp(2.15rem, 9.4vw, 2.75rem);
    line-height: .98;
  }

  .klsv-page--home .klsv-home-flat__intro p {
    max-width: 100%;
    font-size: .94rem;
    line-height: 1.55;
  }

  .klsv-home-proof-strip {
    display: block;
  }

  .klsv-home-proof-strip--hero {
    display: none;
  }

  .klsv-home-proof-strip--below {
    display: grid;
  }

  .klsv-home-proof-strip__metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .klsv-home-proof-tile {
    min-height: 102px;
    padding: 12px 11px;
    border-radius: 12px;
  }

  a.klsv-home-proof-tile {
    padding-inline-end: 38px;
  }

  a.klsv-home-proof-tile::after {
    inset-block-start: 10px;
    inset-inline-end: 10px;
    width: 24px;
    height: 24px;
    font-size: .84rem;
  }

  .klsv-home-proof-tile span {
    font-size: clamp(1.18rem, 6vw, 1.46rem);
  }

  .klsv-home-proof-tile strong {
    font-size: .78rem;
  }

  .klsv-home-proof-tile em {
    font-size: .68rem;
  }

  .klsv-home-proof-tile__cta {
    min-height: 24px;
    padding: 5px 7px;
    font-size: .56rem;
  }

  .klsv-home-proof-tile--telegram span {
    font-size: clamp(1.08rem, 5.3vw, 1.34rem);
  }

  .klsv-home-proof-tile--telegram strong {
    font-size: .76rem;
  }
}

/* Homepage section action polish: make "available" and "View all" feel clickable. */
.klsv-page--home .klsv-home-v2__panel-head,
.klsv-page--home .klsv-home-v2__section-head {
  align-items: flex-start;
  gap: clamp(14px, 2vw, 22px);
}

.klsv-page--home .klsv-home-v2__panel-actions {
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.klsv-page--home .klsv-home-v2__metric-pill {
  min-height: 38px;
  gap: 7px;
  padding-inline: 13px;
  border: 1px solid rgba(195,170,120,.20);
  border-radius: 999px;
  background:
    radial-gradient(circle at 30% 0%, rgba(195,170,120,.18), transparent 70%),
    rgba(255,255,255,.055);
  color: rgba(247,248,250,.82);
  font-size: .78rem;
  font-weight: 780;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.055), 0 10px 24px rgba(0,0,0,.16);
}

.klsv-page--home .klsv-home-v2__metric-pill strong {
  color: #fff;
  font-weight: 850;
}

.klsv-page--home .klsv-home-v2__panel-link,
.klsv-page--home .klsv-home-v2__section-link {
  min-height: 40px;
  padding: 0 14px;
  border: 1px solid rgba(195,170,120,.20);
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.035)),
    rgba(195,170,120,.055);
  color: #fff;
  font-size: .82rem;
  font-weight: 820;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(0,0,0,.20);
}

@media (hover: hover) and (pointer: fine) {
  .klsv-page--home .klsv-home-v2__panel-link:hover,
  .klsv-page--home .klsv-home-v2__section-link:hover {
    border-color: rgba(195,170,120,.42);
    background:
      linear-gradient(180deg, rgba(195,170,120,.16), rgba(255,255,255,.055)),
      rgba(195,170,120,.10);
    box-shadow: 0 14px 32px rgba(0,0,0,.24), 0 0 24px rgba(195,170,120,.14);
    transform: translateY(-1px);
  }
}

@media (max-width: 640px) {
  .klsv-page--home .klsv-home-v2__panel-head,
  .klsv-page--home .klsv-home-v2__section-head {
    align-items: stretch;
  }

  .klsv-page--home .klsv-home-v2__panel-actions {
    justify-content: flex-start;
  }
}

/* Batch B canonical: homepage cards follow the same image-first directory rhythm. */
.klsv-page--home .klsv-home-v2__panel {
  display: grid;
  gap: clamp(16px, 2.4vw, 22px);
}

.klsv-page--home .klsv-home-v2__area-grid,
.klsv-page--home .klsv-home-v2__city-groups {
  gap: clamp(12px, 1.6vw, 16px);
}

.klsv-page--home .klsv-home-area-card-v2 {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: var(--klsv-ui-card-radius-compact, var(--klsv-page-radius-sm));
  background: linear-gradient(180deg, rgba(255,255,255,.032), rgba(255,255,255,.012));
  box-shadow: none;
}

.klsv-page--home .klsv-home-area-card-v2__media {
  inline-size: 100%;
  block-size: auto;
  height: auto;
  max-height: none;
  aspect-ratio: 4 / 3;
  border-radius: 0;
  overflow: hidden;
}

.klsv-page--home .klsv-home-area-card-v2__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.klsv-page--home .klsv-home-area-card-v2__body {
  display: grid;
  gap: 8px;
  padding: clamp(12px, 1.8vw, 16px);
}

.klsv-page--home .klsv-home-area-card-v2 .klsv-directory-card__title {
  font-size: clamp(1.02rem, 1.6vw, 1.18rem);
  line-height: 1.14;
}

.klsv-page--home .klsv-home-area-card-v2__cta {
  width: fit-content;
  min-height: 38px;
  margin-top: 2px;
  padding-inline: 14px;
  border-radius: 999px;
}

/* Public hierarchy contract: homepage uses the same title/meta/action roles as directory pages. */
.klsv-page--home {
  --klsv-home-premium-gold: #d4af37;
  --klsv-home-premium-gold-soft: #d8bf7a;
  --klsv-home-live-green: #2ecc71;
  --klsv-public-title: #f7f2e8;
  --klsv-public-label: #c9a96a;
  --klsv-public-meta: #b8b2a6;
  --klsv-public-price: #d8bf7a;
  --klsv-public-action-bg: rgba(201,169,106,.10);
  --klsv-public-action-border: rgba(201,169,106,.28);
}

/* Premium safe polish: local homepage material and live-state affordance only. */
.klsv-page--home .klsv-directory-hero--home {
  border-color: rgba(212,175,55,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.055),
    0 24px 70px rgba(0,0,0,.30);
}

.klsv-page--home .klsv-home-v2__metric-pill::before {
  content: "";
  flex: 0 0 auto;
  inline-size: 8px;
  block-size: 8px;
  border-radius: 999px;
  background: var(--klsv-home-live-green);
  box-shadow: 0 0 0 4px rgba(46,204,113,.12);
}

.klsv-page--home .klsv-home-proof-tile--primary,
.klsv-page--home .klsv-home-area-card-v2,
.klsv-page--home .klsv-home-city-group-v2,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card {
  border-color: rgba(212,175,55,.14);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.045),
    0 18px 42px rgba(0,0,0,.18);
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.klsv-page--home .klsv-home-area-card-v2__cta,
.klsv-page--home .klsv-home-v2__section-link,
.klsv-page--home .klsv-home-v2__panel-link,
.klsv-page--home .klsv-home-city-group-v2__links a,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card .klsv-link-pill {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.045);
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}

@media (hover: hover) and (pointer: fine) {
  .klsv-page--home .klsv-home-area-card-v2:hover,
  .klsv-page--home .klsv-home-city-group-v2:hover,
  .klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card:hover {
    border-color: rgba(212,175,55,.32);
    background:
      radial-gradient(circle at 18% 0%, rgba(212,175,55,.10), transparent 60%),
      linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.016));
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.06),
      0 20px 46px rgba(0,0,0,.24);
    transform: translateY(-2px);
  }

  .klsv-page--home .klsv-home-area-card-v2__cta:hover,
  .klsv-page--home .klsv-home-v2__section-link:hover,
  .klsv-page--home .klsv-home-v2__panel-link:hover,
  .klsv-page--home .klsv-home-city-group-v2__links a:hover,
  .klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card .klsv-link-pill:hover {
    border-color: rgba(212,175,55,.46);
    background: rgba(212,175,55,.13);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 22px rgba(0,0,0,.20);
    transform: translateY(-1px);
  }
}

@media (prefers-reduced-motion: no-preference) {
  .klsv-page--home .klsv-home-v2__metric-pill::before {
    animation: klsv-home-live-pulse 2.4s ease-out infinite;
  }
}

@keyframes klsv-home-live-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(46,204,113,.36);
  }
  70% {
    box-shadow: 0 0 0 7px rgba(46,204,113,0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(46,204,113,0);
  }
}

.klsv-page--home .klsv-home-v2__eyebrow,
.klsv-page--home .klsv-section-head__eyebrow {
  color: var(--klsv-public-label);
}

.klsv-page--home .klsv-home-area-card-v2 .klsv-directory-card__title,
.klsv-page--home .klsv-home-city-group-v2__head h3,
.klsv-page--home .klsv-home-city-group-v2 .klsv-directory-card__title,
.klsv-page--home .klsv-home-v2__panel-head h2,
.klsv-page--home .klsv-home-v2__section-head h2 {
  color: var(--klsv-public-title);
}

.klsv-page--home .klsv-home-area-card-v2 .klsv-directory-card__meta,
.klsv-page--home .klsv-home-city-group-v2__count,
.klsv-page--home .klsv-home-city-group-v2__more,
.klsv-page--home .klsv-home-v2__panel-head p,
.klsv-page--home .klsv-home-v2__section-head p {
  color: var(--klsv-public-meta);
}

.klsv-page--home .klsv-home-v2__metric-pill strong {
  color: var(--klsv-public-price);
}

.klsv-page--home .klsv-home-area-card-v2__cta,
.klsv-page--home .klsv-home-v2__section-link,
.klsv-page--home .klsv-home-v2__panel-link,
.klsv-page--home .klsv-home-city-group-v2__links a {
  border-color: var(--klsv-public-action-border);
  background: var(--klsv-public-action-bg);
  color: var(--klsv-public-title);
}

/* Design pass: homepage recent profile cards match directory listing roles. */
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__title,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__title a {
  color: var(--klsv-public-title);
  font-weight: 590;
}

.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__readout,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__readout-item,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__signal-row {
  color: var(--klsv-public-meta);
}

.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__readout-item--price,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__signal-meta:last-child {
  color: var(--klsv-public-price);
  font-weight: 760;
}

.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card .klsv-link-pill {
  border-color: var(--klsv-public-action-border);
  background: var(--klsv-public-action-bg);
  color: var(--klsv-public-title);
}

/* Design pass: homepage card material matches KL and Malaysia directory cards. */
.klsv-page--home .klsv-home-area-card-v2,
.klsv-page--home .klsv-home-city-group-v2,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card {
  border-color: rgba(255,255,255,.075);
  border-radius: var(--klsv-ui-card-radius-compact, 14px);
  background: linear-gradient(180deg, rgba(255,255,255,.032), rgba(255,255,255,.012));
  box-shadow: none;
}

.klsv-page--home .klsv-home-area-card-v2 .klsv-directory-card__title,
.klsv-page--home .klsv-home-city-group-v2__head h3,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__title,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__title a {
  font-weight: 760;
  line-height: 1.12;
}

.klsv-page--home .klsv-home-area-card-v2__media,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card__media {
  border-color: rgba(201,169,106,.16);
}

.klsv-page--home .klsv-home-area-card-v2__cta,
.klsv-page--home .klsv-home-v2__section-link,
.klsv-page--home .klsv-home-v2__panel-link,
.klsv-page--home .klsv-home-city-group-v2__links a,
.klsv-page--home .klsv-home-v2__profile-grid .klsv-profile-card .klsv-link-pill {
  min-height: 42px;
  border-radius: 999px;
  font-weight: 820;
}

/* Home area cards share the listing overlay language without changing the grid. */
.klsv-page--home .klsv-home-area-card-v2__media,
.klsv-home-area-card-v2__media {
  position: relative;
  display: block;
  overflow: hidden;
  aspect-ratio: 4 / 5;
}

.klsv-home-area-card-v2__media > img,
.klsv-home-area-card-v2__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

.klsv-home-area-card-v2__overlay {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 58px 12px 13px;
  text-align: center;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.54) 54%, rgba(0,0,0,.86) 100%);
}

.klsv-home-area-card-v2__title {
  max-width: 100%;
  color: var(--klsv-home-premium-gold, #d4af37);
  font-size: clamp(1.08rem, 1.45vw, 1.34rem);
  font-weight: 700;
  line-height: 1.06;
  overflow: hidden;
  text-shadow: 0 2px 12px rgba(0,0,0,.58);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.klsv-home-area-card-v2__meta {
  max-width: 100%;
  color: rgba(255,255,255,.94);
  font-size: clamp(.9rem, 1.08vw, 1rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.12;
  text-shadow: 0 2px 10px rgba(0,0,0,.62);
}

.klsv-home-area-card-v2__body {
  gap: 0;
  padding: 8px 10px 10px;
}

.klsv-home-area-card-v2__body .klsv-home-area-card-v2__cta {
  width: 100%;
  justify-content: center;
  min-height: 40px;
}

@media (max-width: 640px) {
  .klsv-home-area-card-v2__media {
    aspect-ratio: 4 / 5;
  }

  .klsv-home-area-card-v2__overlay {
    padding-top: 48px;
  }

  .klsv-home-area-card-v2__title {
    font-size: clamp(1rem, 4.35vw, 1.12rem);
  }

  .klsv-home-area-card-v2__body .klsv-home-area-card-v2__cta {
    min-height: 44px;
  }
}

.klsv-page--home .klsv-home-area-card-v2__body .klsv-home-area-card-v2__cta {
  min-height: 40px;
  font-weight: 700;
}

@media (max-width: 640px) {
  .klsv-page--home .klsv-home-area-card-v2__body .klsv-home-area-card-v2__cta {
    min-height: 44px;
  }
}

/* Batch 4: page-level layout retrofit for screenshot-safe funnel sections. */
@supports (content-visibility: auto) {
  .klsv-page--home :where(
    .klsv-home-v2__panel,
    .klsv-home-v2__recent,
    .klsv-home-v2__faq,
    .klsv-home-v2__telegram-cta,
    .klsv-section-contract,
    .klsv-ds-section
  ) {
    content-visibility: visible;
    contain-intrinsic-size: auto;
  }
}

.klsv-page--home .klsv-home-v2__discovery {
  gap: clamp(18px, 3vw, 32px);
}

.klsv-page--home .klsv-home-v2__telegram-cta {
  min-height: 0;
  align-content: start;
}

.klsv-page--home .klsv-telegram-updates-cta {
  max-width: 100%;
  min-height: 0;
}

.klsv-page--home .klsv-home-v2__panel-actions,
.klsv-page--home .klsv-home-v2__section-head {
  row-gap: 12px;
}

.klsv-page--home .klsv-home-marketplace-panel {
  display: grid;
  gap: 14px;
  min-width: 0;
  padding: clamp(16px, 2.8vw, 22px);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: var(--klsv-ui-card-radius-compact, 14px);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  color: var(--klsv-page-text, #f7f8fa);
}

.klsv-page--home .klsv-home-marketplace-panel__head {
  display: grid;
  gap: 4px;
}

.klsv-page--home .klsv-home-marketplace-panel__head span {
  color: var(--klsv-home-alert, #ff735c);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.klsv-page--home .klsv-home-marketplace-panel__head strong {
  color: var(--klsv-page-text, #fff);
  font-size: clamp(1.05rem, 2.6vw, 1.35rem);
  line-height: 1.1;
}

.klsv-page--home .klsv-home-marketplace-panel__routes {
  display: grid;
  gap: 12px;
}

.klsv-page--home .klsv-home-route-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 14px;
  min-width: 0;
  padding: clamp(14px, 2.4vw, 20px);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: var(--klsv-ui-card-radius-compact, 14px);
  background: linear-gradient(180deg, rgba(255,255,255,.034), rgba(255,255,255,.014));
  color: var(--klsv-page-text, #f7f8fa);
  text-decoration: none;
}

.klsv-page--home .klsv-home-route-card__index {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(42,211,191,.36);
  border-radius: 999px;
  background: rgba(42,211,191,.10);
  color: var(--klsv-public-action, #2ad3bf);
  font-size: .78rem;
  font-weight: 850;
}

.klsv-page--home .klsv-home-route-card__copy,
.klsv-page--home .klsv-home-route-card__stats,
.klsv-page--home .klsv-home-route-card__chips {
  display: grid;
  min-width: 0;
  gap: 6px;
}

.klsv-page--home .klsv-home-route-card__badge {
  color: var(--klsv-page-accent-strong, #d8bf7a);
  font-size: .72rem;
  font-weight: 850;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.klsv-page--home .klsv-home-route-card__title {
  color: var(--klsv-page-text, #fff);
  font-size: clamp(1.1rem, 2.6vw, 1.34rem);
  font-weight: 820;
  line-height: 1.1;
}

.klsv-page--home .klsv-home-route-card__text {
  color: var(--klsv-page-text-soft, rgba(247,248,250,.72));
  font-size: .92rem;
  line-height: 1.5;
}

.klsv-page--home .klsv-home-route-card__stats {
  grid-column: 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 2px;
}

.klsv-page--home .klsv-home-route-card__stats > span,
.klsv-page--home .klsv-home-route-card__chips > span {
  min-width: 0;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 10px;
  padding: 8px 10px;
  background: rgba(255,255,255,.035);
}

.klsv-page--home .klsv-home-route-card__stats strong {
  display: block;
  color: var(--klsv-public-action, #2ad3bf);
  font-size: .95rem;
  font-weight: 850;
  line-height: 1.1;
}

.klsv-page--home .klsv-home-route-card__stats em {
  display: block;
  margin-top: 3px;
  color: var(--klsv-page-text-muted, rgba(247,248,250,.58));
  font-size: .76rem;
  font-style: normal;
  line-height: 1.2;
}

.klsv-page--home .klsv-home-route-card__chips {
  grid-column: 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.klsv-page--home .klsv-home-route-card__chips > span {
  color: var(--klsv-page-text-soft, rgba(247,248,250,.76));
  font-size: .78rem;
  font-weight: 700;
}

.klsv-page--home .klsv-home-route-card__cta {
  grid-column: 2;
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  background: rgba(42,211,191,.92);
  color: #05110f;
  font-weight: 850;
}

@media (max-width: 760px) {
  .klsv-page--home .klsv-home-v2__panel-actions,
  .klsv-page--home .klsv-home-v2__section-head {
    align-items: stretch;
  }

  .klsv-page--home .klsv-home-v2__panel-link,
  .klsv-page--home .klsv-home-v2__section-link,
  .klsv-page--home .klsv-telegram-updates-cta__button {
    width: 100%;
    justify-content: center;
    white-space: normal;
  }

  .klsv-page--home .klsv-home-route-card {
    grid-template-columns: minmax(0, 1fr);
  }

  .klsv-page--home .klsv-home-route-card__index,
  .klsv-page--home .klsv-home-route-card__stats,
  .klsv-page--home .klsv-home-route-card__chips,
  .klsv-page--home .klsv-home-route-card__cta {
    grid-column: 1;
  }
}
