.klsv-listing-card,
.klsv-overlay-card {
    display: grid;
    min-height: 100%;
    text-decoration: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.klsv-listing-card {
    grid-template-rows: auto 1fr;
}

.klsv-listing-card:hover,
.klsv-overlay-card:hover {
    transform: translateY(-2px);
}

.klsv-listing-card__media {
    position: relative;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
}

.klsv-listing-card__body {
    display: grid;
    gap: 10px;
    padding: 14px;
}

.klsv-listing-card__header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
}

.klsv-listing-card__identity {
    min-width: 0;
}

.klsv-listing-card__location-row,
.klsv-listing-card__location {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.klsv-listing-card__meta,
.klsv-overlay-card__location {
    color: rgba(241, 231, 205, 0.74);
    font-size: 13px;
    line-height: 1.5;
}

.klsv-listing-card__flag {
    font-size: 14px;
}

.klsv-listing-card__price {
    display: grid;
    gap: 4px;
    justify-items: end;
    text-align: right;
}

.klsv-listing-card__state-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.klsv-listing-card__state-pill {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(212, 175, 55, 0.14);
    background: rgba(18, 22, 32, 0.92);
    color: #f4df9f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.klsv-listing-card__state-pill.is-secondary {
    color: rgba(241, 231, 205, 0.82);
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(22, 26, 36, 0.88);
}

.klsv-listing-card__cta,
.klsv-overlay-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    color: #f0d78a;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.klsv-listing-card__cta::after,
.klsv-overlay-card__cta::after {
    content: "→";
    font-size: 12px;
}

.klsv-overlay-card .k-info-layer {
    display: grid;
    gap: 8px;
}

.klsv-overlay-card__topline {
    display: grid;
    gap: 4px;
}

.klsv-overlay-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.klsv-overlay-card__location {
    margin-top: 4px;
}

.klsv-card-media img,
.klsv-listing-card__media img,
.klsv-overlay-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 767px) {
    .klsv-listing-card__body {
        gap: 8px;
        padding: 12px;
    }

    .klsv-listing-card__header {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .klsv-listing-card__price {
        justify-items: start;
        text-align: left;
    }

    .klsv-listing-card__state-strip {
        gap: 6px;
        margin-top: 8px;
    }
}


/* R7: migrated legacy card typography and CTA polish from frontend-suite.css */
.klsv-listing-card .k-name {
    font-size: clamp(20px, 1.9vw, 28px);
    line-height: 1.06;
    letter-spacing: -0.02em;
}

.klsv-listing-card__secondary-meta {
    margin: 0;
    color: rgba(240, 234, 220, 0.66);
    font-size: 13px;
    line-height: 1.55;
    max-width: 28ch;
}

.klsv-listing-card__cta::after,
.klsv-overlay-card__cta::after {
    content: '→';
    transform: translateX(0);
    transition: transform 0.18s ease;
}

.k-card--listing:hover .klsv-listing-card__cta::after,
.k-card--listing:focus-visible .klsv-listing-card__cta::after,
.klsv-overlay-card:hover .klsv-overlay-card__cta::after,
.klsv-overlay-card:focus-visible .klsv-overlay-card__cta::after {
    transform: translateX(2px);
}

.klsv-listing-card__price .k-price-label {
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 11px;
}

.klsv-listing-card__price .k-price-tag {
    font-size: clamp(20px, 1.7vw, 24px);
    line-height: 1.1;
}

@media (max-width: 1024px) {
    .klsv-listing-card .k-name {
        font-size: 24px;
    }

    .klsv-listing-card__secondary-meta {
        max-width: none;
    }
}

@media (max-width: 767px) {
    .klsv-listing-card .k-name {
        font-size: 20px;
        line-height: 1.04;
    }

    .klsv-listing-card__secondary-meta {
        font-size: 11px;
        line-height: 1.4;
        max-width: none;
    }

    .klsv-listing-card__price .k-price-label {
        font-size: 10px;
    }

    .klsv-listing-card__price .k-price-tag {
        font-size: 18px;
    }
}


/* R7: migrated legacy supporting card layout blocks from frontend-suite.css */
.klsv-listing-card__title-row {
    display: grid;
    gap: 8px;
}

.klsv-listing-card__country {
    margin-top: 4px;
    color: rgba(247, 242, 232, 0.68);
    font-size: 13px;
    line-height: 1.4;
}

.klsv-listing-card__meta-primary,
.klsv-listing-card__details {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.klsv-card-meta-secondary,
.k-card-detail {
    color: rgba(247, 242, 232, 0.72);
    font-size: 13px;
    line-height: 1.55;
}

.k-card-detail strong {
    color: #fff3cc;
}

.klsv-listing-card__cta-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--klsv-ui-accent-strong, #f0d78a);
    font-weight: 800;
}

.klsv-listing-card__cta-arrow,
.klsv-listing-card__cta-icon {
    font-size: 16px;
    transition: transform 0.18s ease;
}

.k-card--listing:hover .klsv-listing-card__cta-arrow,
.k-card--listing:focus-visible .klsv-listing-card__cta-arrow,
.k-card--listing:hover .klsv-listing-card__cta-icon,
.k-card--listing:focus-visible .klsv-listing-card__cta-icon {
    transform: translateX(3px);
}


/* R11: migrated remaining listing-card legacy rules from frontend-suite.css */
.klsv-listing-card__cta-icon {
    transition: transform var(--klsv-ui-transition);
}

.k-state-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.k-state-chip {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
}

/* 2026-03-27 listing + profile readability pass */

.klsv-listing-card__header {
    display: grid;
    gap: 10px;
}

.klsv-listing-card__identity {
    display: grid;
    gap: 6px;
    min-width: 0;
}

.klsv-listing-card__country {
    color: rgba(240, 234, 220, 0.72);
    font-size: 14px;
    line-height: 1.4;
}

.klsv-listing-card__price {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.klsv-listing-card__price .k-price-label {
    color: rgba(240, 234, 220, 0.74);
    font-size: 13px;
}

.klsv-listing-card__price .k-price-tag {
    font-size: 17px;
    color: #fff3cc;
}

.klsv-listing-card__details {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.klsv-card-meta-secondary {
    margin: 0;
    color: rgba(240, 234, 220, 0.74);
    font-size: 13px;
    line-height: 1.5;
}

.klsv-listing-card__cta-row {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--klsv-ui-accent-strong);
    font-weight: 800;
    letter-spacing: 0.02em;
}

.klsv-listing-card__cta-arrow {
    font-size: 16px;
    transition: transform 0.18s ease;
}

.k-card--listing:hover .klsv-listing-card__cta-arrow,
.k-card--listing:focus-visible .klsv-listing-card__cta-arrow {
    transform: translateX(3px);
}

@media (max-width: 767px) {
    

    .klsv-listing-card__details {
        align-items: flex-start;
    }

    

    
}

/* v20260327-r5 listing card cleanup */

.klsv-listing-card__header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:start}
.klsv-listing-card__identity{display:grid;gap:6px;min-width:0}
.klsv-listing-card .k-name{font-size:28px;line-height:1.05}

.klsv-listing-card__price{display:grid;justify-items:end;gap:4px;text-align:right}

.klsv-listing-card .k-state-badge--secondary{min-height:30px}
@media (max-width: 767px){
  
  .klsv-listing-card .k-name{font-size:22px}
  .klsv-listing-card__header{grid-template-columns:1fr}
  .klsv-listing-card__price{justify-items:start;text-align:left}
}

/* v20260327-r6 listing card prelaunch polish */

.klsv-listing-card__header{gap:12px}
.klsv-listing-card__identity{gap:8px}
.klsv-listing-card .k-name{font-size:clamp(22px,1.9vw,28px);line-height:1.06;letter-spacing:-.02em}
.klsv-listing-card__location-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.klsv-listing-card__flag{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);font-size:14px}

.klsv-listing-card__price{display:flex;align-items:baseline;gap:8px;justify-content:flex-start;text-align:left}

.k-card--listing:hover .klsv-listing-card__cta::after,
.k-card--listing:focus-visible 
@media (max-width: 767px){
  
  .klsv-listing-card .k-name{font-size:24px}
  }

/* v20260327-r7 listing card mobile density polish */
.klsv-listing-card__header{align-content:start}
@media (max-width: 767px){
  
  .klsv-listing-card .k-name{font-size:20px;line-height:1.04}
  .klsv-listing-card__location-row{gap:6px}
  .klsv-listing-card__flag{width:24px;height:24px;font-size:12px}
  
  .klsv-listing-card__price{gap:6px}
  
  .klsv-listing-card .k-state-badge--secondary{min-height:26px;padding-inline:8px}
  }

/* v20260328 front optimization release */

@media (max-width: 767px) {
    
}


/* R14: unified card media sizing across search grid and related profiles */
.klsv-listing-card,
.klsv-overlay-card{
    align-content:start;
}
.klsv-listing-card__media,
.klsv-overlay-card .k-img-wrap.k-img-ratio,
.k-related-grid .k-img-wrap.k-img-ratio,
.klsv-search-results-grid .k-img-wrap.k-img-ratio{
    aspect-ratio: 3 / 4;
    background: rgba(255,255,255,.03);
}
.klsv-listing-card__media .k-img,
.klsv-overlay-card .k-img-wrap.k-img-ratio .k-img,
.k-related-grid .k-img-wrap.k-img-ratio .k-img,
.klsv-search-results-grid .k-img-wrap.k-img-ratio .k-img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}
.klsv-search-results-grid .k-card--listing,
.k-related-grid .k-card--listing{
    min-width:0;
}
.klsv-search-results-grid .klsv-listing-card__body{
    padding:12px;
    gap:8px;
}
.klsv-search-results-grid .k-name{
    font-size:16px;
    line-height:1.08;
}
.klsv-search-results-grid .klsv-listing-card__price .k-price-tag{
    font-size:18px;
}


/* ── Phase 1 listing-card refinement ─────────────────────────── */
.klsv-listing-card {
    border: 1px solid var(--klsv-ui-border-soft);
    border-radius: var(--klsv-layout-card-radius);
    overflow: hidden;
    background: var(--klsv-ui-surface-1);
    box-shadow: var(--klsv-ui-shadow-soft);
}

.klsv-listing-card:hover {
    border-color: var(--klsv-ui-border-accent);
    box-shadow: var(--klsv-ui-shadow-2);
}

.klsv-listing-card__media::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 45%;
    background: linear-gradient(180deg, rgba(8, 10, 14, 0) 0%, rgba(8, 10, 14, 0.62) 100%);
    pointer-events: none;
}

.klsv-listing-card__body {
    gap: 12px;
    padding: 16px 16px 18px;
    background:
        radial-gradient(circle at top right, rgba(216, 180, 108, 0.1), transparent 32%),
        linear-gradient(180deg, rgba(17, 22, 31, 0.98), rgba(13, 18, 26, 0.98));
}

.klsv-listing-card__micro {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.klsv-listing-card .k-name {
    color: var(--klsv-ui-text-strong);
    font-size: 1.1rem;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.klsv-listing-card__market-pill {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid var(--klsv-ui-chip-border);
    background: var(--klsv-ui-chip-bg);
    color: var(--klsv-ui-chip-text);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.klsv-listing-card__market-pill.is-outstation,
.klsv-listing-card__market-pill.is-other-cities,
.klsv-listing-card__market-pill.family-otherCities {
    border-color: rgba(216, 180, 108, 0.22);
    background: rgba(216, 180, 108, 0.11);
    color: #f5ddb0;
}

.klsv-listing-card__market-pill.is-kl-base {
    border-color: rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.04);
}

.klsv-listing-card__location-row {
    gap: 8px;
}

.klsv-listing-card__location,
.klsv-listing-card__secondary-meta {
    color: var(--klsv-ui-text-faint);
    font-size: 12px;
    line-height: 1.55;
}

.klsv-listing-card__secondary-meta {
    margin: -2px 0 0;
}

.klsv-listing-card__price {
    justify-items: end;
    gap: 2px;
}

.klsv-listing-card .k-price-label {
    color: var(--klsv-ui-text-faint);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.klsv-listing-card .k-price-tag {
    color: #ffe5a7;
    font-size: 1rem;
}

.klsv-listing-card__cta {
    margin-top: 2px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    color: #f3d48e;
}

@media (max-width: 767px) {
    .klsv-listing-card__body {
        padding: 14px 14px 16px;
    }

    .klsv-listing-card .k-name {
        font-size: 1rem;
    }
}


/* Phase 3 Round 2 — tighter browse card */
.klsv-listing-card{
    border-radius:22px;
    overflow:hidden;
}
.klsv-listing-card__media{
    aspect-ratio:4 / 5;
    background:#101319;
}
.klsv-listing-card__media .k-state-stack{
    position:absolute;
    left:12px;
    top:12px;
    right:12px;
}
.klsv-listing-card__body{
    gap:12px;
    padding:16px 16px 18px;
}
.klsv-listing-card__micro{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
    margin-bottom:6px;
}
.klsv-listing-card__market-pill{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:0 10px;
    border-radius:999px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.04);
    color:#f7efd7;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.klsv-listing-card__market-pill.is-outstation{
    border-color:rgba(174,198,113,.22);
    background:rgba(174,198,113,.12);
    color:#e7f0bf;
}
.klsv-listing-card .k-name{
    font-size:20px;
    line-height:1.1;
}
.klsv-listing-card__location{
    font-size:13px;
}
.klsv-listing-card__price .k-price-label{
    color:rgba(241,231,205,.62);
    font-size:11px;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.klsv-listing-card .k-price-tag{
    font-size:18px;
    line-height:1.1;
}
.klsv-listing-card__secondary-meta{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    color:rgba(241,231,205,.74);
    font-size:13px;
    line-height:1.55;
}
.klsv-listing-card__cta{
    gap:8px;
    color:#fff0be;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}
.klsv-listing-card__cta span:last-child{
    transition:transform .18s ease;
}
.klsv-listing-card:hover .klsv-listing-card__cta span:last-child{
    transform:translateX(2px);
}


/* Phase 3 Round 3 — tighter image-led listing card */
.klsv-listing-card__body{
    gap:8px;
    padding:12px 12px 14px;
}
.klsv-listing-card__micro{
    display:flex;
    align-items:center;
    gap:6px;
    min-height:24px;
}
.klsv-listing-card .k-name{
    font-size:clamp(18px,1.5vw,22px);
    line-height:1.04;
}
.klsv-listing-card__location{
    font-size:11px;
    line-height:1.4;
}
.klsv-listing-card__secondary-meta{
    display:-webkit-box;
    -webkit-line-clamp:1;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-clamp:1;
    margin:0;
    font-size:11px;
    line-height:1.4;
}
.klsv-listing-card__price{
    gap:1px;
}
.klsv-listing-card .k-price-label{
    font-size:10px;
}
.klsv-listing-card .k-price-tag{
    font-size:.96rem;
}
.klsv-listing-card__cta{
    margin-top:0;
    padding-top:8px;
    font-size:12px;
    color:rgba(243,212,142,.86);
}
.klsv-listing-card__cta::after{
    font-size:10px;
}
.klsv-listing-card__state-strip{
    gap:6px;
    margin-top:6px;
}
.klsv-listing-card__state-pill{
    min-height:24px;
    padding:0 8px;
    font-size:10px;
}
@media (max-width: 767px){
    .klsv-listing-card__body{
        padding:12px;
    }
    .klsv-listing-card .k-name{
        font-size:17px;
    }
}
