/* =============================================
   LUCKY KEY — CSS GLOBAL
   Archivo: dist/css/lucky-key.css
============================================= */

/* ── VARIABLES ── */
:root {
    --gold: #c5a059;
    --gold-light: #d4b47a;
    --gold-dark: #a07840;
    --navy: #1a2744;
    --navy-mid: rgba(26,39,68,0.65);
    --navy-faint: rgba(26,39,68,0.07);
    --white: #ffffff;
    --bg: #ddd8d0;
    --bg-alt: #ffffff;
    --border: rgba(197,160,89,0.35);
    --border-light: rgba(26,39,68,0.18);
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Montserrat', sans-serif;
    --nav-height: 80px;
    --transition: 0.35s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ── RESET ── */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    background: var(--bg);
    color: var(--navy);
    font-family: var(--font-body);
    font-weight: 300;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    max-width: 100%;
    display: block;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

/* ── NAVBAR ── */
#lk-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    height: var(--nav-height);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 3rem;
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 0.5px solid rgba(197,160,89,0.15);
    transition: background var(--transition), border-color var(--transition), box-shadow var(--transition);
}

    #lk-navbar.scrolled {
        background: rgba(255,255,255,0.98);
        border-bottom-color: rgba(197,160,89,0.3);
        box-shadow: 0 2px 20px rgba(26,39,68,0.07);
    }

/* Logo */
.lk-nav-logo {
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}

.lk-logo-key {
    width: 30px;
    height: 34px;
    flex-shrink: 0;
}

.lk-logo-divider {
    width: 0.5px;
    height: 34px;
    background: var(--gold);
    opacity: 0.5;
}

.lk-logo-text {
    display: flex;
    flex-direction: column;
}

.lk-logo-name {
    font-family: var(--font-display);
    font-size: 21px;
    font-weight: 400;
    letter-spacing: 2px;
    color: var(--gold);
    line-height: 1;
}

.lk-logo-tagline {
    font-family: var(--font-body);
    font-size: 7.5px;
    letter-spacing: 3px;
    color: var(--gold-dark);
    text-transform: uppercase;
    opacity: 0.65;
    margin-top: 4px;
}

/* Nav links */
.lk-nav-links {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.lk-nav-link {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    position: relative;
    padding-bottom: 2px;
    transition: color var(--transition);
}

    .lk-nav-link::after {
        content: '';
        position: absolute;
        bottom: -2px;
        left: 0;
        width: 0;
        height: 0.5px;
        background: var(--gold);
        transition: width var(--transition);
    }

    .lk-nav-link:hover {
        color: var(--navy);
    }

        .lk-nav-link:hover::after {
            width: 100%;
        }

/* Panel Admin link */
.lk-nav-admin {
    color: var(--gold) !important;
    border: 0.5px solid var(--border);
    padding: 6px 14px !important;
    transition: background var(--transition), color var(--transition) !important;
}

    .lk-nav-admin::after {
        display: none !important;
    }

    .lk-nav-admin:hover {
        background: var(--gold) !important;
        color: var(--white) !important;
    }

/* Selector idioma — dropdown hover */
.lk-nav-lang {
    position: relative;
    padding-left: 1.5rem;
    border-left: 0.5px solid var(--border);
    display: flex;
    align-items: center;
}

.lk-lang-trigger {
    display: flex;
    align-items: center;
    gap: 5px;
    cursor: default;
    padding: 4px 0;
}

.lk-lang-current-code {
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--gold);
    font-weight: 600;
}

.lk-lang-chevron {
    width: 10px;
    height: 10px;
    color: rgba(26,39,68,0.4);
    transition: transform 0.2s ease;
    flex-shrink: 0;
}

/* Puente invisible que cubre el hueco entre trigger y dropdown */
.lk-nav-lang::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 16px;
}

.lk-lang-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 16px);
    right: -12px;
    background: var(--white);
    border: 0.5px solid var(--border);
    min-width: 148px;
    z-index: 300;
    box-shadow: 0 8px 28px rgba(0,0,0,0.09);
}

.lk-nav-lang:hover .lk-lang-dropdown {
    display: flex;
    flex-direction: column;
}

.lk-nav-lang:hover .lk-lang-chevron {
    transform: rotate(180deg);
    color: var(--gold);
}

.lk-lang-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 16px;
    text-decoration: none !important;
    background: none;
    border: none;
    width: 100%;
    cursor: pointer;
    transition: background 0.14s;
    border-bottom: 0.5px solid rgba(26,39,68,0.06);
}

.lk-lang-item:last-child {
    border-bottom: none;
}

.lk-lang-item:hover {
    background: rgba(201,169,110,0.07);
}

.lk-lang-item-code {
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(26,39,68,0.35);
    font-weight: 500;
    min-width: 22px;
    transition: color 0.14s;
}

.lk-lang-item-name {
    font-family: var(--font-body);
    font-size: 11.5px;
    color: rgba(26,39,68,0.55);
    font-weight: 300;
    letter-spacing: 0.3px;
    transition: color 0.14s;
}

.lk-lang-item.lk-lang-active .lk-lang-item-code,
.lk-lang-item.lk-lang-active .lk-lang-item-name {
    color: var(--gold);
}

.lk-lang-item:hover .lk-lang-item-code,
.lk-lang-item:hover .lk-lang-item-name {
    color: var(--gold);
}

/* ── MAIN ── */
#lk-main {
    min-height: 100vh;
}

/* ── FOOTER ── */
#lk-footer {
    background: var(--navy);
    border-top: 0.5px solid var(--border);
    padding: 4rem 3rem 2rem;
}

.lk-footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
}

.lk-footer-brand p {
    font-size: 12px;
    color: rgba(255,255,255,0.3);
    line-height: 1.9;
    max-width: 240px;
}

.lk-footer-col h4 {
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1.25rem;
    font-weight: 500;
}

.lk-footer-col ul li {
    margin-bottom: 0.6rem;
}

    .lk-footer-col ul li a {
        font-size: 12px;
        color: rgba(255,255,255,0.3);
        transition: color var(--transition);
        letter-spacing: 0.5px;
    }

        .lk-footer-col ul li a:hover {
            color: var(--gold-light);
        }

.lk-footer-bottom {
    border-top: 0.5px solid rgba(255,255,255,0.05);
    padding-top: 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

    .lk-footer-bottom p {
        font-size: 11px;
        color: rgba(255,255,255,0.2);
        letter-spacing: 0.5px;
    }

.lk-gold {
    color: var(--gold);
}

/* ── UTILIDADES GLOBALES ── */

/* Eyebrow de sección */
.lk-eyebrow {
    font-size: 10px;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--gold);
    opacity: 0.85;
    margin-bottom: 0.75rem;
    font-family: var(--font-body);
    font-weight: 400;
    display: block;
}

/* Título de sección */
.lk-section-title {
    font-family: var(--font-display);
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1px;
    line-height: 1.2;
    margin-bottom: 2.5rem;
}

/* Línea dorada decorativa */
.lk-gold-line {
    width: 36px;
    height: 0.5px;
    background: var(--gold);
    margin-bottom: 1.5rem;
    opacity: 0.5;
}

/* Botones */
.lk-btn {
    display: inline-block;
    padding: 12px 32px;
    border: 0.5px solid var(--gold);
    color: var(--gold);
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: background var(--transition), color var(--transition);
    cursor: pointer;
    background: transparent;
}

    .lk-btn:hover {
        background: var(--gold);
        color: var(--white);
    }

.lk-btn-solid {
    display: inline-block;
    padding: 12px 32px;
    background: var(--gold);
    color: var(--white);
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    transition: background var(--transition);
    cursor: pointer;
    border: none;
}

    .lk-btn-solid:hover {
        background: var(--gold-dark);
    }

/* Cards de propiedad */
.lk-card {
    background: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 24px rgba(26,39,68,0.13);
    overflow: hidden;
    cursor: pointer;
    display: block;
    transition: border-color var(--transition), transform var(--transition), box-shadow var(--transition);
}

    .lk-card:hover {
        border-color: var(--border);
        transform: translateY(-6px);
        box-shadow: 0 16px 40px rgba(197,160,89,0.15), 0 4px 12px rgba(26,39,68,0.08);
    }

.lk-card-img-wrap {
    overflow: hidden;
    height: 220px;
    position: relative;
}

.lk-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.lk-card:hover .lk-card-img {
    transform: scale(1.04);
}

.lk-card-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 0.5px solid rgba(197,160,89,0.4);
    padding: 4px 8px;
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--navy);
    white-space: nowrap;
}

.lk-card-body {
    padding: 1.5rem;
}

.lk-card-zona {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 4px;
}

.lk-card-title {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 400;
    color: var(--navy);
    margin-bottom: 8px;
    line-height: 1.3;
}

.lk-card-price {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--gold);
    letter-spacing: 0.5px;
    line-height: 1;
    margin-bottom: 0;
}

/* Precio en oferta */
.lk-price-wrap {
    display: flex;
    flex-direction: row;
    align-items: baseline;
    gap: 14px;
}
.lk-price-oferta {
    display: block;
    line-height: 1;
    color: var(--navy);
}
.lk-prop-hero-price .lk-price-oferta {
    color: var(--gold);
}
.lk-price-original {
    display: inline-block;
    position: relative;
    font-size: 0.78em;
    line-height: 1;
    opacity: 0.38;
    color: inherit;
}
.lk-price-original::after {
    content: '';
    position: absolute;
    left: -4px;
    right: -4px;
    top: 50%;
    height: 1.5px;
    background: var(--gold);
    transform: rotate(-8deg) translateY(-50%);
    transform-origin: center;
}

.lk-card-meta {
    display: flex;
    gap: 1rem;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 0.5px solid var(--navy-faint);
}

    .lk-card-meta span {
        font-size: 10px;
        font-weight: 400;
        color: var(--navy-mid);
        letter-spacing: 0.5px;
    }

/* ══════════════════════════════════════════
   DEFAULT.ASPX — INICIO
══════════════════════════════════════════ */

/* ── HERO ── */
.lk-hero {
    position: relative;
    height: 100vh;
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.lk-hero-bg {
    position: absolute;
    top: -15%;
    left: 0;
    right: 0;
    width: 100%;
    height: 130%;
    background-color: var(--navy);
    background-image:
        linear-gradient(to bottom, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.20) 50%, rgba(0,0,0,0.45) 100%),
        url('../img/lucky-hero.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.lk-hero-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 0 1.5rem;
    animation: lk-fade-up 1s ease both;
}

@keyframes lk-fade-up {
    from {
        opacity: 0;
        transform: translateY(24px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.lk-hero-eyebrow {
    font-size: 10px;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 1.25rem;
    display: block;
    font-family: var(--font-body);
}

.lk-hero-title {
    font-family: var(--font-display);
    font-size: clamp(44px, 7vw, 88px);
    font-weight: 300;
    color: var(--white);
    letter-spacing: 2px;
    line-height: 1.05;
    margin-bottom: 1rem;
}

    .lk-hero-title em {
        font-style: italic;
        color: var(--gold);
    }

.lk-hero-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.7);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-bottom: 2.5rem;
}

/* Buscador hero */
.lk-hero-search {
    display: flex;
    background: rgba(255,255,255,0.95);
    border: 0.5px solid rgba(255,255,255,0.3);
    box-shadow: 0 8px 32px rgba(0,0,0,0.25);
    max-width: 680px;
    margin: 0 auto;
    overflow: hidden;
}

    .lk-hero-search select,
    .lk-hero-search input {
        border: none;
        outline: none;
        background: transparent;
        padding: 0.9rem 1.2rem;
        font-size: 12px;
        color: var(--navy);
        font-family: var(--font-body);
        flex: 1;
    }

    .lk-hero-search select {
        border-right: 0.5px solid var(--border-light);
        max-width: 170px;
        cursor: pointer;
    }

    .lk-hero-search input[type="submit"],
    .lk-hero-search button {
        background: var(--gold);
        color: var(--white);
        border: none;
        padding: 0 1.75rem;
        font-size: 11px;
        letter-spacing: 2px;
        text-transform: uppercase;
        cursor: pointer;
        font-family: var(--font-body);
        transition: background var(--transition);
        white-space: nowrap;
    }

        .lk-hero-search input[type="submit"]:hover,
        .lk-hero-search button:hover {
            background: var(--gold-dark);
        }

/* ── HAMBURGER ── */
.lk-hamburger {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
}

.lk-hamburger span {
    display: block;
    width: 24px;
    height: 1px;
    background: var(--navy);
    transition: opacity var(--transition), transform var(--transition);
}

.lk-hamburger.lk-open span:nth-child(1) {
    transform: rotate(45deg) translate(4px, 4px);
}

.lk-hamburger.lk-open span:nth-child(2) {
    opacity: 0;
}

.lk-hamburger.lk-open span:nth-child(3) {
    transform: rotate(-45deg) translate(4px, -4px);
}

@media (max-width: 767px) {
    .lk-hero {
        min-height: 100dvh;
    }

    .lk-hero-title {
        font-size: clamp(32px, 8vw, 54px);
    }

    .lk-hero-search {
        flex-direction: column;
    }

    .lk-hero-search input[type="submit"],
    .lk-hero-search button,
    .lk-hero-search input[type="text"] {
        width: 100%;
    }

    /* Area táctil móvil del botón "Buscar propiedades" del hero */
    .lk-hero-search input[type="submit"],
    .lk-hero-search button {
        min-height: 52px;
        padding: 1rem 1.75rem;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .lk-hero-search select {
        max-width: 100%;
        border-right: none;
        border-bottom: 0.5px solid var(--border-light);
    }

    /* Navbar mobile */
    .lk-nav-links {
        display: none;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
        position: fixed;
        top: var(--nav-height);
        left: 0;
        right: 0;
        background: rgba(255,255,255,0.98);
        padding: 2rem 1.5rem;
        z-index: 999;
        border-bottom: 0.5px solid var(--border);
        box-shadow: 0 8px 24px rgba(26,39,68,0.08);
    }

    .lk-nav-links.lk-open {
        display: flex;
    }

    .lk-hamburger {
        display: flex;
    }

    #lk-navbar {
        padding: 0 1.5rem;
    }

    /* Sections mobile */
    .lk-section {
        padding: 4rem 1.5rem;
    }

    .lk-zonas-section {
        padding: 4rem 1.5rem;
    }

    .lk-section-break {
        padding: 0 1.5rem;
    }

    /* Grids mobile */
    .lk-props-grid {
        grid-template-columns: 1fr;
    }

    .lk-zonas-grid {
        grid-template-columns: 1fr;
    }

    /* Footer mobile */
    #lk-footer {
        padding: 3rem 1.5rem 2rem;
    }

    .lk-footer-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .lk-footer-bottom {
        flex-direction: column;
        gap: 0.5rem;
        text-align: center;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    #lk-navbar {
        padding: 0 2rem;
    }

    .lk-section {
        padding: 5rem 2rem;
    }

    .lk-zonas-section {
        padding: 5rem 2rem;
    }

    .lk-section-break {
        padding: 0 2rem;
    }

    .lk-props-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lk-zonas-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    #lk-footer {
        padding: 3rem 2rem 2rem;
    }

    .lk-footer-grid {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }
}

/* ── SECCIÓN GENERAL ── */
.lk-section {
    background: var(--bg-alt);
    padding: 6rem 3rem;
}

.lk-section-header {
    margin-bottom: 3rem;
}

/* ── PROPIEDADES GRID ── */
.lk-props-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* Placeholder imagen card */
.lk-card-img-placeholder {
    width: 100%;
    height: 220px;
    background:
        radial-gradient(ellipse 70% 50% at 50% 60%, rgba(197,160,89,0.10) 0%, transparent 70%),
        linear-gradient(160deg, #f5f0e8 0%, #ede5d4 50%, #f8f5ee 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: 48px;
    font-weight: 300;
    letter-spacing: 6px;
    color: rgba(197,160,89,0.35);
    user-select: none;
}

/* Placeholder variantes — evita las 12 tarjetas idénticas */
.lk-props-grid .lk-card:nth-child(3n+2) .lk-card-img-placeholder {
    background:
        radial-gradient(ellipse 70% 50% at 50% 60%, rgba(26,39,68,0.05) 0%, transparent 70%),
        linear-gradient(160deg, #edf0f7 0%, #dde2ef 50%, #eef1f8 100%);
}

.lk-props-grid .lk-card:nth-child(3n) .lk-card-img-placeholder {
    background:
        radial-gradient(ellipse 70% 50% at 50% 60%, rgba(197,160,89,0.07) 0%, transparent 70%),
        linear-gradient(160deg, #f0ede7 0%, #e7e0d5 50%, #f3f0eb 100%);
}

/* Ver más */
.lk-ver-mas-wrap {
    text-align: center;
    margin-top: 3rem;
}

/* Mensaje sin resultados */
.lk-empty-msg {
    font-size: 13px;
    color: var(--navy-mid);
    letter-spacing: 1px;
}

/* ── ZONAS POR AREA ── */
.lk-zonas-section {
    background: var(--bg);
    padding: 7rem 3rem;
}

.lk-area-block {
    margin-bottom: 3.5rem;
}

.lk-area-block:last-child {
    margin-bottom: 0;
}

/* flex-start (no space-between) agrupa el titulo y el boton BUSCAR pegados al
   inicio, separados solo por el gap; wrap permite que el boton baje de linea
   en anchos estrechos en vez de comprimir el titulo. */
.lk-area-block-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.lk-area-block-header .lk-btn-solid {
    flex-shrink: 0;
}

.lk-area-block-titulo {
    font-family: var(--font-display);
    font-size: 26px;
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1px;
    margin: 0;
}

.lk-zonas-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.lk-zona-card {
    position: relative;
    height: 240px;
    overflow: hidden;
    cursor: pointer;
    display: block;
}

/* Placeholder premium CSS: zonas aun sin fotografia propia.
   Radial dorado tenue sobre diagonal navy + textura sutil en franjas doradas
   a 135deg, en clave oscura porque encima cae el overlay negro y la tipografia
   es blanca. Mismo espiritu que .lk-card-img-placeholder pero en negativo. */
.lk-zona-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 70% 55% at 30% 70%, rgba(197,160,89,0.18) 0%, transparent 65%),
        repeating-linear-gradient(135deg, rgba(197,160,89,0.05) 0px, rgba(197,160,89,0.05) 2px, transparent 2px, transparent 18px),
        linear-gradient(160deg, #1a2744 0%, #101a30 55%, #0d1626 100%);
    transition: transform 0.5s ease;
}

.lk-zona-bg[data-zona="moraira"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/moraira.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="altea"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/altea.jpg') center/cover no-repeat;
}

.lk-zona-bg[data-zona="javea"],
.lk-zona-bg[data-zona="xabia"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/javea.jpg') center/cover no-repeat;
}

.lk-zona-bg[data-zona="calpe"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/calpe.jpg') center/cover no-repeat;
}

.lk-zona-bg[data-zona="benissa"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/benissa.png') center/cover no-repeat;
}

.lk-zona-bg[data-zona="denia"],
.lk-zona-bg[data-zona="dénia"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/denia.jpeg') center/cover no-repeat;
}

.lk-zona-bg[data-zona="guardamar-del-segura"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/guardamar-del-segura.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="la-marina"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/la-marina.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="torrevieja"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/torrevieja.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="alfaz-del-pi"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/alfaz-del-pi.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="alicante"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/alicante.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="la-zenia"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/la-zenia.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="villajoyosa"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/villajoyosa.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="la-mata"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/la-mata.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="dehesa-de-campoamor"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/dehesa-de-campoamor.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="santa-pola"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/santa-pola.webp') center/cover no-repeat;
}

.lk-zona-bg[data-zona="gran-alacant"] {
    background:
        linear-gradient(to top, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.1) 100%),
        url('/dist/img/zonas/gran-alacant.webp') center/cover no-repeat;
}

.lk-zona-card:hover .lk-zona-bg {
    transform: scale(1.06);
}

.lk-zona-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, rgba(0,0,0,0.1) 60%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem;
}

.lk-zona-nombre {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--white);
    letter-spacing: 1px;
    margin-bottom: 0.2rem;
}

/* ── SECTION BREAK ── */
.lk-section-break {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 0 3rem;
}

.lk-section-break-line {
    flex: 1;
    height: 0.5px;
    background: var(--navy-faint);
}

.lk-section-break-gold {
    width: 36px;
    height: 1px;
    background: var(--gold);
    opacity: 0.4;
    flex-shrink: 0;
}

/* ── REVEAL ANIMATION ── */
.lk-reveal {
    opacity: 0;
    transform: translateY(16px);
    transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1), transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.lk-reveal.lk-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .lk-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ══ LOGIN ADMIN ══ */
.contenedor-admin {
    padding-top: 100px;
    min-height: 80vh;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--bg);
}

.lucky-card {
    background-color: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 8px 40px rgba(26,39,68,0.18);
    padding: 40px;
    width: 100%;
    max-width: 420px;
}

.lucky-label {
    display: block;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 6px;
    font-family: var(--font-body);
}

.lucky-input {
    width: 100%;
    padding: 10px 14px !important;
    border: 1px solid var(--border-light) !important;
    background: var(--white) !important;
    color: var(--navy) !important;
    font-family: var(--font-body) !important;
    font-size: 13px !important;
    outline: none !important;
    border-radius: 0 !important;
    transition: border-color var(--transition) !important;
}

.lucky-input:focus {
    border-color: var(--gold) !important;
    box-shadow: 0 0 0 2px rgba(197,160,89,0.08) !important;
}

/* ══ ADMIN PANEL ══ */
.admin-wrapper {
    padding-top: var(--nav-height);
    min-height: 100vh;
    background: var(--bg);
}

.admin-header {
    background: var(--white);
    border-bottom: 0.5px solid var(--border-light);
    padding: 1.25rem 2.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.admin-header-title {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--navy);
    letter-spacing: 1px;
}

.admin-back-link {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: color var(--transition);
}

.admin-back-link:hover {
    color: var(--gold);
}

.admin-header-actions {
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
}

.admin-logout-form {
    margin: 0;
}

.admin-logout-btn {
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
}

.admin-body {
    padding: 2.5rem;
}

.admin-welcome {
    text-align: center;
    margin-bottom: 2.5rem;
}

.admin-welcome-text {
    font-size: 12px;
    color: var(--navy-mid);
    letter-spacing: 1px;
}

.admin-dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    max-width: 680px;
    margin: 0 auto;
}

.admin-option-card {
    background: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 20px rgba(26,39,68,0.10);
    padding: 2.5rem 2rem;
    text-align: center;
    cursor: pointer;
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
    display: block;
    color: inherit;
}

.admin-option-card:hover {
    border-color: var(--border);
    box-shadow: 0 8px 32px rgba(197,160,89,0.12);
    transform: translateY(-3px);
    color: inherit;
}

.admin-option-icon {
    font-size: 38px;
    display: block;
    margin-bottom: 1rem;
}

.admin-option-title {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--navy);
    margin-bottom: 0.4rem;
    letter-spacing: 0.5px;
}

.admin-option-desc {
    font-size: 11px;
    color: var(--navy-mid);
    letter-spacing: 1px;
    margin-bottom: 1.5rem;
    line-height: 1.7;
}

.admin-option-cta {
    display: inline-block;
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold);
    border-bottom: 0.5px solid var(--gold);
    padding-bottom: 2px;
}

/* CRUD layout */
.admin-crud-grid {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 1.5rem;
    align-items: start;
}

.admin-panel {
    background: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 4px 24px rgba(26,39,68,0.12);
    padding: 1.75rem;
}

.admin-panel-title {
    font-family: var(--font-display);
    font-size: 18px;
    font-weight: 400;
    color: var(--navy);
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 0.5px solid var(--navy-faint);
    letter-spacing: 0.5px;
}

.admin-section-label {
    font-size: 9px;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gold);
    margin: 1.25rem 0 0.75rem;
    display: block;
}

.admin-form-group {
    margin-bottom: 1rem;
}

.admin-label {
    display: block;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 5px;
    font-family: var(--font-body);
}

.admin-input,
.admin-select,
.admin-textarea {
    width: 100%;
    padding: 8px 11px;
    border: 1px solid var(--border-light);
    background: var(--white);
    color: var(--navy);
    font-family: var(--font-body);
    font-size: 13px;
    transition: border-color var(--transition);
    outline: none;
    border-radius: 0;
}

.admin-input:focus,
.admin-select:focus,
.admin-textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 2px rgba(197,160,89,0.08);
}

.admin-textarea {
    resize: vertical;
    min-height: 80px;
    line-height: 1.5;
}

.admin-select {
    appearance: none;
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%231a2744' opacity='.4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}

.admin-checkbox-row {
    display: flex;
    align-items: center;
    gap: 8px;
}

.admin-checkbox-row input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: var(--gold);
    cursor: pointer;
}

/* ── Admin tabs ── */
.admin-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--border-light);
    margin-bottom: 1.75rem;
}
.admin-tab-btn {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    padding: 0.75rem 1.5rem;
    font-family: var(--font-body);
    font-size: 0.8rem;
    font-weight: 500;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-muted, #888);
    cursor: pointer;
    transition: color 0.2s, border-color 0.2s;
}
.admin-tab-btn--active {
    color: var(--navy);
    border-bottom-color: var(--gold);
}
.admin-tab-btn:hover:not(.admin-tab-btn--active) {
    color: var(--navy-mid);
}
.admin-panel-form {
    max-width: 720px;
}

.admin-btn-group {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.5rem;
}

/* ── Admin form helpers ── */
.admin-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 1rem;
}
.admin-hint {
    display: block;
    font-size: 0.75rem;
    color: var(--text-muted, #888);
    margin-top: 0.35rem;
}
.admin-checkboxlist table { width: 100%; }
.admin-checkboxlist td { padding: 0.25rem 0.5rem 0.25rem 0; font-size: 0.85rem; }
.admin-checkboxlist input[type=checkbox] { margin-right: 0.4rem; }

/* ── Upload row ── */
.admin-upload-row {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}
.admin-upload-row .admin-input { flex: 1; }
.admin-upload-row .admin-btn { flex: none; white-space: nowrap; }

/* ── Image grid ── */
.admin-img-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    gap: 0.75rem;
    margin-top: 1rem;
}
.admin-img-item {
    border: 1px solid var(--border-light, #ddd);
    border-radius: 6px;
    overflow: hidden;
    background: #fafafa;
}
.admin-img-thumb-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    background: #eee;
    overflow: hidden;
}
.admin-img-thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.admin-img-badge {
    position: absolute;
    top: 4px; left: 4px;
    background: var(--gold, #c9a96e);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.admin-img-actions {
    display: flex;
    gap: 0.25rem;
    padding: 0.4rem;
}
.admin-img-actions .btn-edit,
.admin-img-actions .btn-delete {
    flex: 1;
    font-size: 0.7rem;
    padding: 3px 6px;
}

.admin-btn {
    flex: 1;
    padding: 10px 14px;
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    cursor: pointer;
    border: none;
    transition: background var(--transition), color var(--transition);
}

.admin-btn-primary {
    background: var(--gold);
    color: var(--white);
}

.admin-btn-primary:hover {
    background: var(--gold-dark);
}

.admin-btn-secondary {
    background: transparent;
    color: var(--navy-mid);
    border: 0.5px solid var(--border-light);
}

.admin-btn-secondary:hover {
    background: var(--navy-faint);
    color: var(--navy);
}

.admin-msg {
    padding: 10px 14px;
    font-size: 12px;
    margin-bottom: 1.25rem;
    border-left: 3px solid;
    display: none;
}

.admin-msg-ok {
    background: rgba(39,174,96,0.07);
    border-color: #27ae60;
    color: #1a6b3c;
}

.admin-msg-error {
    background: rgba(231,76,60,0.07);
    border-color: #e74c3c;
    color: #922b21;
}

/* Tabla */
.admin-table-wrap {
    overflow-x: auto;
}

.admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.admin-table th {
    background: var(--navy);
    color: var(--white);
    padding: 10px 14px;
    text-align: left;
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    font-weight: 400;
    white-space: nowrap;
}

.admin-table td {
    padding: 10px 14px;
    border-bottom: 0.5px solid var(--navy-faint);
    color: var(--navy);
    vertical-align: middle;
    white-space: nowrap;
}

.admin-table tr:hover td {
    background: rgba(197,160,89,0.04);
}

.admin-table .btn-edit {
    background: none;
    border: 0.5px solid var(--border);
    color: var(--gold);
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 4px 10px;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
    font-family: var(--font-body);
}

.admin-table .btn-edit:hover {
    background: var(--gold);
    color: var(--white);
}

.admin-table .btn-delete {
    background: none;
    border: 0.5px solid rgba(231,76,60,0.3);
    color: #e74c3c;
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 4px 10px;
    cursor: pointer;
    transition: background var(--transition), color var(--transition);
    font-family: var(--font-body);
    margin-left: 4px;
}

.admin-table .btn-delete:hover {
    background: #e74c3c;
    color: var(--white);
}

@media (max-width: 900px) {
    .admin-crud-grid {
        grid-template-columns: 1fr;
    }
    .admin-dashboard {
        grid-template-columns: 1fr;
        max-width: 360px;
    }
    .admin-body {
        padding: 1.5rem;
    }
    .admin-header {
        padding: 1rem 1.5rem;
    }
}

/* ══════════════════════════════════════════
   CONTACT.ASPX
══════════════════════════════════════════ */

/* ── PAGE HEADER — mini-hero páginas interiores ── */
.lk-page-header {
    position: relative;
    padding-top: calc(var(--nav-height) + 90px);
    padding-bottom: 90px;
    overflow: hidden;
    text-align: center;
}

.lk-page-header-bg {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.55) 100%),
        linear-gradient(135deg, #0d1e3d 0%, #1a2744 60%, #0a1528 100%);
}

.lk-page-header-content {
    position: relative;
    z-index: 2;
    animation: lk-fade-up 0.9s ease both;
}

.lk-page-header-title {
    font-family: var(--font-display);
    font-size: clamp(42px, 6vw, 72px);
    font-weight: 300;
    color: var(--white);
    letter-spacing: 2px;
    line-height: 1.1;
    margin-bottom: 1rem;
    margin-top: 0.75rem;
}

.lk-page-header-sub {
    font-size: 12px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 2px;
    text-transform: uppercase;
    max-width: 480px;
    margin: 0 auto;
    line-height: 1.9;
}

/* ── SECCIÓN CONTACTO ── */
.lk-contact-section {
    background: var(--bg-alt);
    padding: 6rem 3rem;
}

.lk-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.4fr;
    gap: 5rem;
    max-width: 1140px;
    margin: 0 auto;
    align-items: start;
}

/* ── COLUMNA INFO ── */
.lk-contact-info-title {
    font-family: var(--font-display);
    font-size: clamp(26px, 3vw, 38px);
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1px;
    line-height: 1.2;
    margin-bottom: 1.5rem;
}

.lk-contact-info-title em {
    font-style: italic;
    color: var(--gold);
}

.lk-contact-info-desc {
    font-size: 13px;
    color: var(--navy-mid);
    line-height: 1.9;
    margin-bottom: 2.5rem;
    max-width: 320px;
}

.lk-contact-details {
    display: flex;
    flex-direction: column;
    gap: 1.75rem;
    margin-bottom: 2.5rem;
}

.lk-contact-detail {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.lk-contact-detail-icon {
    width: 36px;
    height: 36px;
    border: 0.5px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--gold);
}

.lk-contact-detail-icon svg {
    width: 16px;
    height: 16px;
}

.lk-contact-detail-label {
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 4px;
    font-family: var(--font-body);
    font-weight: 400;
}

.lk-contact-detail-value {
    font-size: 13px;
    color: var(--navy);
    line-height: 1.65;
}

.lk-contact-detail-value a {
    color: var(--navy);
    transition: color var(--transition);
}

.lk-contact-detail-value a:hover {
    color: var(--gold);
}

.lk-contact-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    letter-spacing: 1px;
    color: var(--gold);
    border: 0.5px solid var(--border);
    padding: 10px 16px;
    font-family: var(--font-body);
}

.lk-contact-note svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
    fill: var(--gold);
}

/* ── COLUMNA FORMULARIO ── */
.lk-contact-form {
    background: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 8px 40px rgba(26,39,68,0.10);
    padding: 2.75rem;
}

.lk-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    margin-bottom: 1.25rem;
}

.lk-form-group {
    display: flex;
    flex-direction: column;
}

.lk-form-label {
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 8px;
    font-family: var(--font-body);
    font-weight: 400;
}

.lk-form-optional {
    font-size: 9px;
    letter-spacing: 1px;
    color: rgba(26,39,68,0.3);
    text-transform: none;
}

.lk-form-input,
.lk-form-select,
.lk-form-textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1px solid rgba(26,39,68,0.22);
    background: #ffffff;
    color: var(--navy);
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 300;
    outline: none;
    border-radius: 0;
    box-sizing: border-box;
    transition: border-color var(--transition), box-shadow var(--transition);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.lk-form-input:focus,
.lk-form-select:focus,
.lk-form-textarea:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(197,160,89,0.08);
}

.lk-form-input::placeholder,
.lk-form-textarea::placeholder {
    color: rgba(26,39,68,0.3);
    font-weight: 300;
}

/* Wrapper del select para flecha CSS pura (sin data URI) */
.lk-select-wrap {
    position: relative;
}

.lk-select-wrap::after {
    content: '';
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 5px solid rgba(26,39,68,0.45);
    pointer-events: none;
}

.lk-form-select {
    padding-right: 36px;
    cursor: pointer;
    color: var(--navy);
}

.lk-form-select option[value=""] {
    color: rgba(26,39,68,0.4);
}

.lk-form-textarea {
    resize: vertical;
    min-height: 130px;
    margin-bottom: 1.25rem;
}

.lk-form-submit {
    width: 100%;
    padding: 14px 32px !important;
    font-size: 11px !important;
    letter-spacing: 2.5px !important;
    cursor: pointer;
    border: none !important;
}

.lk-form-feedback {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 1.25rem;
    padding: 12px 16px;
    font-size: 12px;
    letter-spacing: 0.5px;
    line-height: 1.5;
}

.lk-form-feedback svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

.lk-form-success {
    background: rgba(39,174,96,0.06);
    border: 0.5px solid rgba(39,174,96,0.3);
    color: #1a6b3c;
}

.lk-form-success svg {
    fill: #27ae60;
}

.lk-form-error {
    background: rgba(231,76,60,0.06);
    border: 0.5px solid rgba(231,76,60,0.3);
    color: #922b21;
}

.lk-form-error svg {
    stroke: #e74c3c;
}

.lk-field-error {
    display: block;
    color: #e74c3c;
    font-size: 11px;
    letter-spacing: 0.5px;
    margin-top: 4px;
}

/* ── SECCIÓN CIFRAS DE CONFIANZA ── */
.lk-trust-section {
    background: var(--bg);
    padding: 5rem 3rem;
}

.lk-trust-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    max-width: 860px;
    margin: 0 auto;
}

.lk-trust-item {
    flex: 1;
    text-align: center;
    padding: 1.5rem 2rem;
}

.lk-trust-num {
    font-family: var(--font-display);
    font-size: clamp(36px, 4vw, 52px);
    font-weight: 300;
    color: var(--gold);
    letter-spacing: 1px;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.lk-trust-label {
    font-size: 10px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    font-family: var(--font-body);
}

.lk-trust-sep {
    width: 0.5px;
    height: 48px;
    background: var(--border);
    flex-shrink: 0;
}

/* Asterisco campo requerido */
.lk-form-req {
    color: var(--gold);
    font-size: 10px;
}

/* Último form-group (textarea) — margen inferior antes del botón */
.lk-form-group-last {
    margin-bottom: 1.5rem;
}

/* ── ESTADO ÉXITO (reemplaza al formulario tras envío) ── */
.lk-contact-success {
    background: var(--white);
    border: 1px solid var(--border-light);
    box-shadow: 0 8px 40px rgba(26,39,68,0.10);
    padding: 3.5rem 2.75rem;
    text-align: center;
    min-height: 360px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
}

.lk-success-icon {
    width: 72px;
    height: 72px;
    margin-bottom: 0.5rem;
}

.lk-success-icon svg {
    width: 100%;
    height: 100%;
}

.lk-success-title {
    font-family: var(--font-display);
    font-size: clamp(24px, 3vw, 32px);
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1px;
}

.lk-success-desc {
    font-size: 13px;
    color: var(--navy-mid);
    line-height: 1.9;
    max-width: 340px;
}

/* ── RESPONSIVE CONTACT ── */
@media (max-width: 767px) {
    .lk-page-header {
        padding-top: calc(var(--nav-height) + 50px);
        padding-bottom: 50px;
    }

    .lk-contact-section {
        padding: 4rem 1.5rem;
    }

    .lk-contact-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .lk-contact-info-desc {
        max-width: 100%;
    }

    .lk-contact-form {
        padding: 1.75rem;
    }

    .lk-contact-success {
        padding: 2.5rem 1.75rem;
        min-height: 280px;
    }

    .lk-form-row {
        grid-template-columns: 1fr;
    }

    .lk-trust-section {
        padding: 3rem 1.5rem;
    }

    .lk-trust-grid {
        flex-wrap: wrap;
        gap: 1.5rem;
    }

    .lk-trust-sep {
        display: none;
    }

    .lk-trust-item {
        flex: 0 0 calc(50% - 0.75rem);
        padding: 1rem;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .lk-contact-section {
        padding: 5rem 2rem;
    }

    .lk-contact-grid {
        grid-template-columns: 1fr 1.2fr;
        gap: 3rem;
    }

    .lk-contact-form {
        padding: 2rem;
    }

    .lk-trust-section {
        padding: 4rem 2rem;
    }
}

/* ══════════════════════════════════════════
   CATALOGO.ASPX
══════════════════════════════════════════ */

/* ── BANNER ── */
.lk-cat-banner {
    background: var(--navy);
    padding: calc(var(--nav-height) + 5rem) 3rem 5rem;
    position: relative;
    overflow: hidden;
}

.lk-cat-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 80% at 90% 50%, rgba(197,160,89,0.06) 0%, transparent 60%),
        radial-gradient(ellipse 40% 60% at 10% 80%, rgba(197,160,89,0.04) 0%, transparent 60%);
    pointer-events: none;
}

.lk-cat-banner-inner {
    position: relative;
    z-index: 1;
    max-width: 700px;
}

.lk-cat-title {
    font-family: var(--font-display);
    font-size: clamp(36px, 5.5vw, 64px);
    font-weight: 300;
    color: var(--white);
    letter-spacing: 1.5px;
    line-height: 1.05;
    margin-top: 1.25rem;
    margin-bottom: 1rem;
}

.lk-cat-title em {
    font-style: italic;
    color: var(--gold);
}

.lk-cat-sub {
    font-size: 11px;
    color: rgba(255,255,255,0.4);
    letter-spacing: 3px;
    text-transform: uppercase;
    margin-top: 0.5rem;
}

/* ── FILTROS ── */
.lk-cat-filters {
    background: var(--white);
    border-top: 2px solid var(--gold);
    border-bottom: 0.5px solid var(--border-light);
    padding: 1.25rem 3rem 1.5rem;
    position: sticky;
    top: var(--nav-height);
    z-index: 200;
    box-shadow: 0 6px 24px rgba(26,39,68,0.09);
}

.lk-cat-filters-inner {
    display: flex;
    align-items: flex-end;
    gap: 1px;
    max-width: 1100px;
    margin: 0 auto;
}

/* Cada columna de filtro: label + select */
.lk-filter-group {
    display: flex;
    flex-direction: column;
    gap: 5px;
    flex: 1;
    min-width: 0;
    position: relative;
}

/* Separador vertical entre grupos */
.lk-filter-group + .lk-filter-group::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 32px;
    width: 0.5px;
    background: rgba(26,39,68,0.12);
    pointer-events: none;
}

/* Label encima de cada select */
.lk-filter-label {
    font-size: 9px;
    font-family: var(--font-body);
    font-weight: 500;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--gold);
    white-space: nowrap;
    padding-left: 0.875rem;
}

.lk-filter-select,
.lk-filter-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(26,39,68,0.15);
    border-radius: 0;
    padding: 0.6rem 2rem 0.6rem 0.875rem;
    font-size: 12px;
    font-family: var(--font-body);
    color: var(--navy);
    background-color: #ffffff;
    outline: none;
    transition: border-color var(--transition), box-shadow var(--transition);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    cursor: pointer;
}

.lk-filter-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23c5a059' stroke-width='1.2' fill='none'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
}

.lk-filter-input {
    cursor: text;
    padding-right: 0.875rem;
}
.lk-filter-input::-webkit-outer-spin-button,
.lk-filter-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.lk-filter-input[type=number] { -moz-appearance: textfield; }

.lk-filter-select:focus,
.lk-filter-input:focus {
    border-color: var(--gold);
    box-shadow: 0 0 0 3px rgba(197,160,89,0.10);
    outline: none;
    position: relative;
    z-index: 1;
}

.lk-filter-select:hover {
    border-color: rgba(197,160,89,0.55);
}

.lk-filter-btn {
    flex: 0 0 auto;
    align-self: flex-end;
    background: var(--gold);
    color: var(--white);
    border: 1px solid var(--gold);
    border-radius: 0;
    padding: 0 2rem;
    height: 36px;
    font-size: 10px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--font-body);
    font-weight: 500;
    transition: background var(--transition), border-color var(--transition);
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.75rem;
}

.lk-filter-btn:hover {
    background: var(--gold-dark);
    border-color: var(--gold-dark);
}

/* ── PRICE RANGE DROPDOWN ── */
.lk-price-group { position: relative; }

/* Trigger — idéntico visualmente al lk-filter-select */
.lk-price-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(26,39,68,0.15);
    border-radius: 0;
    padding: 0.6rem 0.75rem 0.6rem 0.875rem;
    font-size: 12px;
    font-family: var(--font-body);
    color: var(--navy);
    background: #fff;
    cursor: pointer;
    text-align: left;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--transition), box-shadow var(--transition);
}
.lk-price-trigger:hover        { border-color: rgba(197,160,89,0.55); }
.lk-price-trigger--open        { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(197,160,89,0.10); }
.lk-price-trigger svg          { flex-shrink: 0; transition: transform 0.22s ease; }
.lk-price-trigger--open svg    { transform: rotate(180deg); }

/* Panel — animación suave de entrada */
.lk-price-dropdown {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    width: 300px;
    background: #fff;
    border: 1px solid rgba(26,39,68,0.12);
    box-shadow: 0 20px 48px rgba(26,39,68,0.13), 0 4px 12px rgba(26,39,68,0.06);
    z-index: 200;
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    visibility: hidden;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0.22s;
}
.lk-price-dropdown.lk-price-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    visibility: visible;
    transition: opacity 0.22s ease, transform 0.22s ease, visibility 0s linear 0s;
}

/* Barra dorada superior */
.lk-price-accent-bar {
    height: 3px;
    background: linear-gradient(90deg, var(--gold-dark), var(--gold), var(--gold-light));
}

/* Rango actual — tipografía display centrada */
.lk-price-display {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.6rem;
    padding: 1.1rem 1.5rem 0.75rem;
}
.lk-price-display-val {
    font-family: var(--font-display);
    font-size: 17px;
    font-weight: 500;
    color: var(--navy);
    letter-spacing: 0.01em;
}
.lk-price-display-sep {
    color: var(--gold);
    font-size: 13px;
    font-family: var(--font-body);
    flex-shrink: 0;
}

/* Slider dual */
.lk-range-wrap {
    position: relative;
    height: 44px;
    margin: 0 1.5rem 0.25rem;
}
.lk-range-track {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 4px;
    background: rgba(26,39,68,0.10);
    transform: translateY(-50%);
    border-radius: 2px;
    pointer-events: none;
}
.lk-range-fill {
    position: absolute;
    top: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--gold-dark), var(--gold));
    border-radius: 2px;
}
.lk-range-input {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    -webkit-appearance: none;
    appearance: none;
    pointer-events: none;
    outline: none;
    z-index: 1;
}
.lk-range-input::-webkit-slider-runnable-track {
    height: 4px;
    background: transparent;
}
.lk-range-input::-moz-range-track {
    height: 4px;
    background: transparent;
    border: none;
}
.lk-range-input::-webkit-slider-thumb {
    -webkit-appearance: none;
    pointer-events: all;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--gold);
    cursor: grab;
    box-shadow: 0 2px 8px rgba(197,160,89,0.35), 0 1px 3px rgba(0,0,0,0.12);
    margin-top: -8px;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.lk-range-input:hover::-webkit-slider-thumb {
    border-color: var(--gold-dark);
    box-shadow: 0 2px 12px rgba(197,160,89,0.5), 0 1px 3px rgba(0,0,0,0.12);
}
.lk-range-input:active::-webkit-slider-thumb { cursor: grabbing; background: var(--gold-light); }
.lk-range-input::-moz-range-thumb {
    pointer-events: all;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--gold);
    border-radius: 50%;
    cursor: grab;
    box-shadow: 0 2px 8px rgba(197,160,89,0.35), 0 1px 3px rgba(0,0,0,0.12);
}
.lk-range-input:active::-moz-range-thumb { cursor: grabbing; }

/* Separador fino entre slider e inputs */
.lk-price-sep-line {
    height: 1px;
    background: rgba(26,39,68,0.07);
    margin: 0 1.5rem;
}

/* Inputs numéricos */
.lk-price-fields {
    display: flex;
    gap: 0;
    padding: 0.75rem 1.5rem 1.25rem;
}
.lk-price-field {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}
.lk-price-field + .lk-price-field { margin-left: 0.75rem; }
.lk-price-field-label {
    font-size: 9px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(26,39,68,0.4);
    font-family: var(--font-body);
}
.lk-price-field-wrap {
    display: flex;
    align-items: center;
    border-bottom: 1.5px solid rgba(26,39,68,0.18);
    padding: 0.3rem 0 0.3rem;
    gap: 0.25rem;
    transition: border-color 0.2s;
}
.lk-price-field-wrap:focus-within { border-color: var(--gold); }
.lk-price-field-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 13px;
    font-family: var(--font-body);
    color: var(--navy);
    background: transparent;
    width: 100%;
    min-width: 0;
    padding: 0;
}
.lk-price-field-input::-webkit-outer-spin-button,
.lk-price-field-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.lk-price-field-input[type=number]               { -moz-appearance: textfield; }
.lk-price-field-currency {
    font-size: 11px;
    color: var(--gold);
    font-family: var(--font-body);
    font-weight: 500;
    flex-shrink: 0;
}

/* ── RESULTADOS ── */
.lk-cat-results {
    background: var(--bg-alt);
    padding: 3rem 3rem 7rem;
}

.lk-cat-results-inner {
    max-width: 1400px;
    margin: 0 auto;
}

.lk-cat-results-header {
    display: flex;
    align-items: center;
    margin-bottom: 2.5rem;
    padding-bottom: 1rem;
    border-bottom: 0.5px solid var(--border-light);
}

.lk-cat-count {
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
    font-family: var(--font-body);
}

.lk-count-num {
    color: var(--gold);
    font-weight: 500;
}

/* ── EMPTY STATE ── */
.lk-cat-empty {
    text-align: center;
    padding: 5rem 0;
}

.lk-cat-empty .lk-empty-msg {
    margin-bottom: 0;
    font-size: 14px;
    color: var(--navy-mid);
}

/* ── RESPONSIVE CATALOGO ── */
@media (max-width: 767px) {
    .lk-cat-banner {
        padding: calc(var(--nav-height) + 3rem) 1.5rem 3.5rem;
    }

    .lk-cat-filters {
        padding: 1rem 1.5rem 1.25rem;
    }

    .lk-cat-filters-inner {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .lk-filter-group {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
    }

    .lk-filter-group + .lk-filter-group::before {
        display: none;
    }

    .lk-filter-select,
    .lk-filter-input {
        width: 100%;
    }

    .lk-price-group    { flex: 1 1 100%; }
    .lk-price-dropdown { width: 100%; }

    .lk-filter-btn {
        flex: 1 1 100%;
        margin-left: 0;
        margin-top: 0.25rem;
        height: 40px;
    }

    .lk-cat-results {
        padding: 2rem 1.5rem 5rem;
    }

    .lk-pagination {
        gap: 0.25rem;
        padding: 2rem 0 0.5rem;
    }

    .lk-pagination a {
        min-width: 32px;
        height: 32px;
        font-size: 10px;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    .lk-cat-banner {
        padding: calc(var(--nav-height) + 4rem) 2rem 4rem;
    }

    .lk-cat-filters {
        padding: 1rem 2rem;
    }

    .lk-cat-results {
        padding: 3rem 2rem 6rem;
    }
}

/* ── ESTADO BADGES + VENDIDA ── */
.lk-card-badge-estado {
    position: absolute;
    top: 12px;
    right: 12px;
    background: rgba(255,255,255,0.92);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 0.5px solid rgba(197,160,89,0.4);
    padding: 4px 8px;
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 400;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--gold);
    white-space: nowrap;
}

.lk-card-badge-estado.reservada {
    border-color: #e07b3c;
    color: #e07b3c;
}

.lk-card-badge-estado.vendida {
    border-color: rgba(26,39,68,0.4);
    color: rgba(26,39,68,0.4);
}

.lk-card.lk-vendida {
    opacity: 0.65;
}

/* ── PAGINACIÓN ── */
.lk-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 2.5rem 0 1rem;
    flex-wrap: wrap;
}

.lk-pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 0.5rem;
    border: 0.5px solid var(--border-light);
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1px;
    color: var(--navy);
    text-decoration: none;
    transition: border-color var(--transition), background var(--transition), color var(--transition);
    white-space: nowrap;
}

.lk-pagination a:hover {
    border-color: var(--gold);
    color: var(--gold);
}

.lk-pagination a.lk-pagination-active {
    background: var(--gold);
    color: var(--white);
    border-color: var(--gold);
    cursor: default;
}

.lk-pagination a.lk-pagination-disabled {
    opacity: 0.35;
    cursor: not-allowed;
    pointer-events: none;
}

.lk-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    padding: 0 0.375rem;
    font-size: 12px;
    color: var(--navy-mid);
}

/* ══════════════════════════════════════════
   FASE 5 — FICHA DE PROPIEDAD
   PropiedadInfo.aspx
   ══════════════════════════════════════════ */

/* ── PROP HERO SPLIT ── */
/* ── PROP HERO (foto con overlay) ── */
.lk-prop-hero {
    margin: calc(var(--nav-height) + 2rem) 6rem 0;
}
.lk-prop-hero-breadcrumb {
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1px;
    color: rgba(26,39,68,0.5);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
}
.lk-prop-hero-breadcrumb a {
    color: var(--navy);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    transition: opacity 0.2s;
}
.lk-prop-hero-breadcrumb a:hover { opacity: 0.55; }
.lk-prop-hero-breadcrumb-sep { opacity: 0.35; }
.lk-prop-hero-breadcrumb-current {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 340px;
}
.lk-prop-hero-media {
    position: relative;
    height: 520px;
    overflow: hidden;
    background: #0a0a0a;
}
.lk-prop-hero-media-inner {
    width: 100%;
    height: 100%;
    position: relative;
    display: block;
}
.lk-gallery-portada {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    cursor: zoom-in;
}
.lk-prop-hero-media-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        radial-gradient(ellipse 70% 50% at 50% 60%, rgba(197,160,89,0.10) 0%, transparent 70%),
        linear-gradient(160deg, #f5f0e8 0%, #ede5d4 50%, #f8f5ee 100%);
}
.lk-prop-hero-monogram {
    font-family: var(--font-display);
    font-size: 72px;
    font-weight: 300;
    letter-spacing: 6px;
    color: rgba(197,160,89,0.35);
    user-select: none;
}
.lk-prop-hero-info {
    padding: 1.75rem 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}
.lk-prop-hero-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--gold-dark);
    opacity: 0.85;
}
.lk-prop-hero-title {
    font-family: var(--font-display);
    font-size: clamp(28px, 4vw, 52px);
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1.5px;
    line-height: 1.1;
    margin: 0;
}
.lk-prop-hero-price {
    font-family: var(--font-body);
    font-size: clamp(14px, 1.4vw, 18px);
    font-weight: 500;
    color: var(--gold-dark);
    letter-spacing: 2px;
}
.lk-prop-hero-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: var(--white);
    position: relative;
    z-index: 2;
    margin: 1.5rem 2rem 0;
    box-shadow: 0 20px 50px rgba(10,16,30,0.12);
}
.lk-prop-hero-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding: 1.4rem 1rem;
    border-right: 0.5px solid var(--border);
    text-align: center;
}
.lk-prop-hero-stat:last-child { border-right: none; }
.lk-prop-hero-stat-icon {
    color: var(--gold);
    font-size: 16px;
    opacity: 0.75;
    margin-bottom: 0.15rem;
}
.lk-prop-hero-stat-value {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--navy);
    letter-spacing: 0.5px;
    line-height: 1;
}
.lk-prop-hero-stat-label {
    font-size: 9px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--navy-mid);
}

/* Thumbnails strip */
.lk-prop-hero-thumbs {
    display: flex;
    gap: 4px;
    padding: 1rem 0;
    margin: 0 6rem;
    background: var(--bg);
    overflow-x: auto;
}
.lk-gallery-thumb {
    width: 110px;
    height: 74px;
    object-fit: cover;
    cursor: pointer;
    flex-shrink: 0;
    opacity: 0.6;
    transition: opacity 0.2s;
}
.lk-gallery-thumb:hover,
.lk-gallery-thumb.active {
    opacity: 1;
    outline: 2px solid var(--gold);
    outline-offset: -2px;
}

/* pnlNoEncontrada compatibility — minimal banner for error view */
.lk-prop-banner {
    background: var(--navy);
    padding: calc(var(--nav-height) + 2.5rem) 3rem 2.5rem;
    text-align: center;
}
.lk-prop-banner-inner {
    max-width: 900px;
    margin: 0 auto;
}
.lk-prop-banner-title {
    font-family: var(--font-display);
    font-size: clamp(24px, 3.5vw, 40px);
    font-weight: 300;
    color: var(--white);
    letter-spacing: 1.5px;
    margin: 0;
}

/* Body layout */
.lk-prop-body {
    display: flex;
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 5rem 3rem;
    align-items: flex-start;
}
.lk-prop-main {
    flex: 1.6;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}
.lk-prop-sidebar {
    flex: 1;
    position: sticky;
    top: calc(var(--nav-height) + 24px);
    align-self: flex-start;
}

/* Section blocks */
.lk-prop-section {
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    padding: 2.5rem;
}
.lk-prop-section-title {
    font-family: var(--font-display);
    font-size: clamp(26px, 3vw, 40px);
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 1px;
    margin-bottom: 1rem;
}
.lk-prop-desc-text {
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 300;
    line-height: 1.9;
    color: var(--navy-mid);
    letter-spacing: 0.3px;
}

/* ── Amenidades — rediseño completo ── */
.lk-amenidades-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.5rem;
}
.lk-amenidades-title {
    margin-bottom: 0.75rem;
}
.lk-amenidades-line {
    margin-bottom: 2rem;
}
.lk-amenidades-grid {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -0.5rem;
}
.lk-amenidad-item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 33.333%;
    padding: 0.6rem 0.5rem;
    background: none;
    border: none;
}
.lk-amenidad-icon {
    font-size: 14px;
    color: var(--gold);
    flex-shrink: 0;
    opacity: 0.9;
}
.lk-amenidad-label {
    font-family: var(--font-body);
    font-size: 10.5px;
    font-weight: 400;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--navy-mid);
    line-height: 1.3;
}
@media (max-width: 768px) {
    .lk-amenidad-item { width: 50%; }
}
@media (max-width: 480px) {
    .lk-amenidad-item { width: 100%; }
}

/* Map placeholder */
.lk-prop-map {
    min-height: 200px;
    background: var(--navy-faint);
    border: 0.5px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
}
.lk-prop-map-label {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 3px;
    color: var(--navy-mid);
}

.lk-prop-map-canvas {
    display: none;
    height: 380px;
    border-radius: 3px;
    border: 0.5px solid rgba(197, 160, 89, 0.18);
    overflow: hidden;
}

/* Address block above the map */
.lk-prop-address {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding: 14px 18px;
    background: var(--navy-faint);
    border: 0.5px solid var(--border);
    border-radius: 3px;
}
.lk-prop-address-icon {
    color: var(--gold);
    font-size: 18px;
    flex-shrink: 0;
    margin-top: 1px;
}
.lk-prop-address-lines {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.lk-prop-address-main {
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 500;
    color: var(--text);
    letter-spacing: 0.01em;
}
.lk-prop-address-sub {
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--navy-mid);
}

/* Marcador dorado personalizado */
.lk-map-pin {
    width: 20px;
    height: 20px;
    background: var(--gold, #c5a059);
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.35);
    box-shadow: 0 0 0 5px rgba(197, 160, 89, 0.22), 0 2px 8px rgba(0,0,0,0.4);
}

/* Leaflet attribution — adaptada al tema dark */
.leaflet-control-attribution {
    background: rgba(10, 10, 10, 0.72) !important;
    color: rgba(255, 255, 255, 0.38) !important;
    font-size: 9px !important;
    padding: 2px 6px !important;
}
.leaflet-control-attribution a {
    color: rgba(255, 255, 255, 0.5) !important;
}

/* Agent card */
.lk-agent-card {
    background: var(--bg-alt);
    border: 1px solid var(--gold-light);
    box-shadow: 0 4px 24px rgba(26,39,68,0.08);
    padding: 2rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.lk-agent-photo-placeholder {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, var(--navy) 0%, #2a3a5c 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gold);
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 300;
    align-self: flex-start;
    border-radius: 50%;
}
/* Par real de .lk-agent-photo-placeholder: mismas dimensiones, para cuando el agente
   sí tiene foto (sidebar de PropiedadInfo). */
.lk-agent-photo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
    align-self: flex-start;
    display: block;
}
.lk-agent-name {
    font-family: var(--font-display);
    font-size: clamp(18px, 1.4vw, 22px);
    font-weight: 400;
    color: var(--gold);
    letter-spacing: 0.5px;
    margin: 0;
}
.lk-agent-role {
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: var(--gold-dark);
    opacity: 0.7;
}
.lk-agent-contact {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 1.5rem;
}
.lk-agent-contact-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--navy);
    min-height: 44px;
}
.lk-agent-contact-row a {
    color: var(--navy);
    text-decoration: none;
}
.lk-agent-contact-row a:hover { color: var(--gold); }
.lk-agent-cta {
    width: 100%;
    text-align: center;
    display: block;
    padding: 14px 32px;
    margin-top: 1.5rem;
}

/* ── GALLERY NAV ARROWS ── */
.lk-gallery-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.30);
    border: 1px solid rgba(255, 255, 255, 0.45);
    color: #fff;
    font-size: 18px;
    cursor: pointer;
    opacity: 0.35;
    transition: opacity 0.22s, background 0.22s;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.lk-prop-hero-media-inner:hover .lk-gallery-nav {
    opacity: 0.85;
}
.lk-gallery-nav:hover {
    opacity: 1 !important;
    background: rgba(0, 0, 0, 0.62);
}
.lk-gallery-prev { left: 1rem; }
.lk-gallery-next { right: 1rem; }
.lk-gallery-counter {
    position: absolute;
    top: 0.8rem;
    left: 0.9rem;
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 2px;
    color: rgba(255, 255, 255, 0.7);
    background: rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    padding: 3px 8px;
    z-index: 2;
    pointer-events: none;
    user-select: none;
}

/* ── LIGHTBOX ── */
.lk-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 9000;
    align-items: center;
    justify-content: center;
}
.lk-lightbox.lk-lightbox-open {
    display: flex;
}
.lk-lightbox-img {
    max-width: 90vw;
    max-height: 88vh;
    object-fit: contain;
    display: block;
    user-select: none;
    pointer-events: none;
}
.lk-lightbox-close {
    position: absolute;
    top: 1.25rem;
    right: 1.5rem;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 18px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 1;
}
.lk-lightbox-close:hover { background: rgba(255, 255, 255, 0.2); }
.lk-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 1;
}
.lk-lightbox-nav:hover { background: rgba(255, 255, 255, 0.22); }
.lk-lightbox-prev { left: 2rem; }
.lk-lightbox-next { right: 2rem; }
.lk-lightbox-counter {
    position: fixed;
    top: 1.25rem;
    left: 1.5rem;
}

/* Responsive overrides */
@media (max-width: 1024px) {
    .lk-prop-body { flex-direction: column; padding: 3rem 2rem; }
    .lk-prop-sidebar { position: static; width: 100%; }
    .lk-prop-hero { margin: calc(var(--nav-height) + 2rem) 4rem 0; }
    .lk-prop-hero-thumbs { margin: 0 4rem; }
    .lk-prop-hero-media { height: 440px; }
    .lk-prop-hero-stats { margin: 1.25rem 1.5rem 0; }
}
@media (max-width: 768px) {
    .lk-prop-hero { margin: calc(var(--nav-height) + 1rem) 1.5rem 0; }
    .lk-prop-hero-media { height: 300px; }
    .lk-prop-hero-title { font-size: 26px; }
    .lk-prop-hero-stats { grid-template-columns: repeat(2, 1fr); margin: 1rem 0 0; }
    .lk-prop-hero-thumbs { margin: 0 1.5rem; }
    .lk-gallery-thumb { width: 80px; height: 54px; }
    .lk-prop-body { padding: 2rem 1rem; }
    .lk-prop-banner { padding: calc(var(--nav-height) + 1.5rem) 1.5rem 1.5rem; }
    .lk-prop-map { min-height: 160px; }
}

/* ════════════════════════════════════════════════
   PROP WIZARD STEPPER — movido desde GestionPropiedades.aspx
   ════════════════════════════════════════════════ */
.prop-stepper {
    display: flex;
    align-items: flex-start;
    margin: 0 0 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 0.5px solid var(--navy-faint);
}
.prop-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 0.5rem;
    min-width: 72px;
    transition: opacity 0.2s;
}
.prop-step:disabled { cursor: default; opacity: 0.35; }
.prop-step-num {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--border-light, #dde1e9);
    color: var(--navy-mid, #6b7a99);
    font-size: 0.8125rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
}
.prop-step-label {
    font-size: 0.6875rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--navy-mid, #6b7a99);
    white-space: nowrap;
    transition: color 0.2s;
}
.prop-step--active .prop-step-num { background: var(--navy, #1a2744); color: var(--white, #fff); }
.prop-step--active .prop-step-label { color: var(--navy, #1a2744); font-weight: 600; }
.prop-step--done .prop-step-num { background: #16a34a; color: #fff; }
.prop-step--done .prop-step-label { color: #16a34a; }
.prop-step-line {
    flex: 1;
    height: 1px;
    background: var(--border-light, #dde1e9);
    margin-top: 1rem;
}
.prop-step-panel { display: none; }
.prop-step-panel--active { display: block; }
.prop-step-nav {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 0.5px solid var(--navy-faint);
}
.prop-step-nav .admin-btn { flex: none; min-width: 130px; }
.prop-step-err {
    display: none;
    background: rgba(231,76,60,0.07);
    border-left: 3px solid #e74c3c;
    padding: 10px 14px;
    font-size: 12px;
    color: #922b21;
    margin-bottom: 1rem;
}
.prop-step-err span { display: block; line-height: 1.6; }

/* Autocomplete de dirección */
.geo-search-wrap { position: relative; }
.geo-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0; right: 0;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
    z-index: 600;
    max-height: 240px;
    overflow-y: auto;
}
.geo-dropdown-item {
    padding: 10px 14px;
    cursor: pointer;
    border-bottom: 0.5px solid rgba(26,39,68,0.06);
    transition: background 0.12s;
}
.geo-dropdown-item:last-child { border-bottom: none; }
.geo-dropdown-item:hover { background: rgba(201,169,110,0.09); }
.geo-dropdown-item strong {
    display: block;
    font-size: 12.5px;
    color: var(--navy);
    font-weight: 600;
    margin-bottom: 2px;
}
.geo-dropdown-item span { font-size: 11px; color: var(--navy-mid); }
.geo-dropdown-loading { padding: 12px 14px; font-size: 12px; color: var(--navy-mid); }

/* Consultar — filter bar */
.admin-filter-bar {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    align-items: flex-end;
    background: rgba(26,39,68,0.03);
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border: 0.5px solid rgba(26,39,68,0.07);
}
.admin-filter-bar .admin-form-group { flex: 1; min-width: 140px; margin: 0; }
.admin-filter-bar .admin-btn { flex: none; }
.admin-count-label {
    display: block;
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--navy-mid);
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 0.5px solid var(--navy-faint);
}

/* Consultar — cards grid */
.admin-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 1.25rem;
}
.admin-prop-card { cursor: default; display: flex; flex-direction: column; }
.admin-prop-card:hover {
    transform: none;
    box-shadow: 0 8px 28px rgba(26,39,68,0.13), 0 2px 8px rgba(197,160,89,0.08);
    border-color: var(--border);
}
.apc-img-wrap {
    position: relative;
    height: 195px;
    overflow: hidden;
    background: linear-gradient(135deg, #0d1e3d 0%, #1a2744 55%, #0a1528 100%);
    flex-shrink: 0;
}
.apc-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.admin-prop-card:hover .apc-img { transform: scale(1.04); }
.apc-img-overlay {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 60px;
    background: linear-gradient(to top, rgba(10,21,40,0.6) 0%, transparent 100%);
    pointer-events: none;
}
.apc-no-img { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.625rem; }
.apc-no-img-label { font-size: 9px; letter-spacing: 2.5px; text-transform: uppercase; color: rgba(255,255,255,0.22); }
.apc-badge {
    position: absolute;
    top: 10px; right: 10px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 3px 9px;
}
.apc-badge-disponible { background: rgba(22,163,74,0.88); color: #fff; }
.apc-badge-reservada  { background: rgba(234,153,0,0.92);  color: #fff; }
.apc-badge-vendida    { background: rgba(220,38,38,0.88);  color: #fff; }
.apc-body { padding: 1.125rem 1.125rem 0.875rem; flex: 1; }
.apc-zona { font-size: 9px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--gold); margin-bottom: 4px; }
.apc-title {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 400;
    color: var(--navy);
    line-height: 1.35;
    margin-bottom: 8px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.7em;
}
.apc-price { font-family: var(--font-display); font-size: 20px; font-weight: 400; color: var(--gold); letter-spacing: 0.25px; line-height: 1; }
.apc-meta { display: flex; align-items: center; gap: 0; margin-top: 10px; padding-top: 10px; border-top: 0.5px solid var(--navy-faint); }
.apc-meta-item { font-size: 10.5px; color: var(--navy-mid); padding: 0 0.65rem 0 0; }
.apc-meta-item:not(:first-child) { padding-left: 0.65rem; border-left: 0.5px solid rgba(26,39,68,0.14); }
.apc-id { font-size: 9px; letter-spacing: 1px; color: rgba(26,39,68,0.2); margin-top: 8px; }
.apc-actions { display: grid; grid-template-columns: 1fr 1fr; border-top: 0.5px solid var(--navy-faint); }
.apc-btn-edit,
.apc-btn-delete {
    display: block;
    width: 100%;
    padding: 10px 8px;
    font-family: var(--font-body);
    font-size: 9px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    border: none;
    background: transparent;
    transition: background 0.15s, color 0.15s;
}
.apc-btn-edit { color: var(--navy); border-right: 0.5px solid var(--navy-faint); text-decoration: none; }
.apc-btn-edit:hover { background: var(--navy); color: var(--white); }
.apc-btn-delete { color: rgba(185,28,28,0.75); }
.apc-btn-delete:hover { background: rgba(220,38,38,0.05); color: #b91c1c; }
.admin-empty-state {
    padding: 3rem 2rem;
    text-align: center;
    color: var(--navy-mid);
    font-size: 0.8rem;
    border: 0.5px dashed rgba(26,39,68,0.14);
    letter-spacing: 0.5px;
}
#previewImagenesGrid { margin-top: 0.75rem; }
.prop-img-preview-name { font-size: 0.65rem; color: var(--navy-mid); padding: 4px 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ════════════════════════════════════════════════
   ADMIN LOGIN — movido desde loginAdmin.aspx
   ════════════════════════════════════════════════ */
.admin-login-title {
    color: #c5a059;
    text-align: center;
    margin-bottom: 30px;
    font-family: serif;
}
.admin-login-field { margin-bottom: 20px; }
.admin-login-field--last { margin-bottom: 30px; }
.admin-login-btn {
    background-color: #c5a059;
    color: #000;
    border: none;
    padding: 12px;
    width: 100%;
    font-weight: bold;
    border-radius: 5px;
    cursor: pointer;
    transition: background 0.3s;
}

/* ════════════════════════════════════════════════
   CLASES DE UTILIDAD — reemplazan inline styles
   ════════════════════════════════════════════════ */
.admin-label--inline { margin-bottom: 0; }
.admin-section-label--top { margin-top: 1.5rem; }
#geoHint { margin-bottom: 1.25rem; }
.fu-dummy { display: none; position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.lk-prop-body--block { display: block; }
.lk-btn--mt { margin-top: 1.5rem; display: inline-block; }
.lk-cat-empty .lk-gold-line { margin: 0 auto 1.5rem; }
.lk-cat-empty .lk-btn { margin-top: 1.5rem; }

/* ── Solicitar visita — formulario en sidebar ── */
.lk-visit-form {
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    padding: 2rem;
    margin-top: 1.5rem;
}
.lk-visit-form-eyebrow {
    display: block;
    font-family: var(--font-body);
    font-size: 9px;
    font-weight: 500;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--gold);
    margin-bottom: 0.5rem;
}
.lk-visit-form-title {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 0.5px;
    margin: 0 0 0.75rem;
}
.lk-visit-form-line {
    margin-bottom: 1.5rem;
}
.lk-visit-form-field {
    margin-bottom: 0.85rem;
}
.lk-visit-textarea {
    min-height: 80px !important;
    margin-bottom: 0 !important;
    resize: vertical;
}
.lk-visit-submit {
    width: 100%;
    text-align: center;
    display: block;
    padding: 14px 24px !important;
    margin-top: 0.5rem;
    cursor: pointer;
}
.lk-visit-success {
    background: var(--bg-alt);
    border: 1px solid var(--border-light);
    padding: 2.5rem 2rem;
    margin-top: 1.5rem;
    text-align: center;
}
.lk-visit-success-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1.25rem;
}
.lk-visit-success-icon svg {
    width: 100%;
    height: 100%;
}
.lk-visit-success-title {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 300;
    color: var(--navy);
    letter-spacing: 0.5px;
    margin: 0 0 0.75rem;
}
.lk-visit-success-desc {
    font-family: var(--font-body);
    font-size: 12px;
    font-weight: 300;
    color: var(--navy-mid);
    line-height: 1.8;
    letter-spacing: 0.3px;
    margin: 0;
}

/* ── PANEL DE TRADUCCIONES (Paso 2 — GestionPropiedades) ── */
.transl-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    align-items: start;
}
@media (max-width: 900px) {
    .transl-layout { grid-template-columns: 1fr; }
}

.transl-source {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.transl-targets {
    background: var(--navy-faint);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.lang-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--navy);
    color: var(--gold);
    font-family: var(--font-body);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1px;
    padding: 2px 7px;
    border-radius: 4px;
    vertical-align: middle;
    margin-left: 6px;
}
.lang-badge--es { background: var(--gold); color: var(--navy); }

.transl-lang-select {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.75rem;
}
.transl-lang-select-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--navy-mid);
    letter-spacing: 0.3px;
    margin-right: 0.25rem;
}
.transl-check-pill {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
}
.transl-check-pill input[type="checkbox"] {
    display: none;
}
.transl-check-pill span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 3px 10px;
    border-radius: 20px;
    border: 1.5px solid var(--border);
    background: var(--white);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    color: var(--navy-mid);
    transition: all 0.18s;
    user-select: none;
}
.transl-check-pill input[type="checkbox"]:checked + span {
    background: var(--navy);
    color: var(--gold);
    border-color: var(--navy);
}
.transl-check-pill:hover span {
    border-color: var(--navy);
}

.admin-btn-translate {
    margin-top: 0.5rem;
    width: 100%;
    background: var(--navy);
    color: var(--gold);
    border: 1px solid var(--navy);
    font-size: 13px;
    letter-spacing: 0.5px;
}
.admin-btn-translate:hover { background: var(--gold); color: var(--navy); border-color: var(--gold); }
.admin-btn-translate:disabled { opacity: 0.5; cursor: not-allowed; }

.transl-msg {
    margin-top: 0.5rem;
    font-size: 12px;
    color: #b91c1c;
    padding: 6px 10px;
    background: rgba(185,28,28,0.07);
    border-radius: 4px;
    border: 1px solid rgba(185,28,28,0.2);
}

.transl-lang-item {
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    background: var(--white);
}

.transl-lang-header {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.6rem 0.8rem;
    cursor: pointer;
    user-select: none;
    background: var(--white);
    transition: background 0.2s;
}
.transl-lang-header:hover { background: var(--navy-faint); }
.transl-lang-header span:nth-child(2) {
    flex: 1;
    font-size: 12px;
    font-weight: 500;
    color: var(--navy);
}

.transl-status {
    font-size: 11px;
    font-weight: 600;
    color: #888;
    margin-left: auto;
}
.transl-status--ok  { color: #16a34a; }
.transl-status--err { color: #b91c1c; }
.transl-status--pending { color: #d97706; }

.transl-lang-body {
    padding: 0.75rem;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.transl-confirm-btn {
    width: 100%;
    font-size: 12px;
    padding: 6px 12px;
    margin-top: 0.25rem;
}
.transl-confirm-btn:disabled { opacity: 0.5; cursor: not-allowed; }

/* ══════════════════════════════════════════
   ABOUT — Sobre Nosotros
══════════════════════════════════════════ */

/* ── SHARED WRAPPER ── */
.lk-about-section {
    padding-block: 5rem;
    padding-inline: 3rem;
    position: relative;
}
.lk-about-section-inner {
    max-width: 1100px;
    margin: 0 auto;
}
.lk-about-section-eyebrow {
    font-family: var(--font-body);
    font-size: 10px;
    letter-spacing: 5px;
    text-transform: uppercase;
    color: var(--gold);
    display: block;
    margin-bottom: 1rem;
}
.lk-about-section-title {
    font-family: var(--font-display);
    font-size: clamp(28px, 3.5vw, 44px);
    font-weight: 300;
    color: var(--navy);
    margin: 0 0 1.5rem 0;
    line-height: 1.15;
}
.lk-about-section-body {
    font-family: var(--font-body);
    font-size: 15px;
    line-height: 1.7;
    color: var(--navy);
    max-width: 640px;
    margin-bottom: 1.5rem;
}
.lk-about-section-body:last-of-type {
    margin-bottom: 0;
}

/* ── MISIÓN ── */
.lk-about-mission {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
.lk-about-mission-text {
    /* columna izquierda — hereda estilos del wrapper */
}
.lk-about-mission-visual {
    aspect-ratio: 4 / 5;
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}
.lk-about-mission-visual::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 60% 40% at 80% 20%, rgba(197, 160, 89, 0.12) 0%, transparent 70%),
        radial-gradient(ellipse 40% 60% at 20% 80%, rgba(197, 160, 89, 0.06) 0%, transparent 70%);
    pointer-events: none;
}
.lk-about-mission-monogram {
    font-family: var(--font-display);
    font-size: clamp(80px, 12vw, 160px);
    font-weight: 300;
    color: var(--gold);
    line-height: 1;
    letter-spacing: 4px;
    position: relative;
    z-index: 1;
    opacity: 0.85;
}

/* ── ESTADÍSTICAS ── */
.lk-about-stats {
    background: var(--navy);
    padding-block: 4rem;
    padding-inline: 3rem;
    position: relative;
}
.lk-about-stats::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--border);
    opacity: 0.5;
}
.lk-about-stats-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 2rem;
    align-items: center;
}
.lk-about-stat {
    text-align: center;
}
.lk-about-stat-number {
    font-family: var(--font-display);
    font-size: clamp(40px, 5vw, 72px);
    font-weight: 300;
    color: var(--gold);
    line-height: 1;
    margin: 0;
    letter-spacing: 1px;
}
.lk-about-stat-label {
    font-family: var(--font-body);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2.5px;
    color: rgba(255, 255, 255, 0.6);
    margin-top: 0.5rem;
    display: block;
}

/* ── VALORES ── */
.lk-about-values {
    background: var(--bg-alt);
    padding-block: 5rem;
    padding-inline: 3rem;
}
.lk-about-values-grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5rem;
}
.lk-about-value-item {
    text-align: left;
    padding: 2rem;
    border: 1px solid var(--border-light);
    background: var(--bg-alt);
    transition: var(--transition);
}
.lk-about-value-item:hover {
    border-color: var(--gold);
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(197, 160, 89, 0.15);
}
.lk-about-value-icon {
    font-size: 2.5rem;
    color: var(--gold);
    margin-bottom: 1rem;
    display: block;
}
.lk-about-value-title {
    font-family: var(--font-display);
    font-size: 22px;
    font-weight: 400;
    color: var(--navy);
    margin: 0 0 0.75rem 0;
}
.lk-about-value-desc {
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 1.6;
    color: var(--navy);
    opacity: 0.75;
    margin: 0;
}

/* ── EQUIPO ── */
.lk-about-team {
    padding-block: 5rem;
    padding-inline: 3rem;
}
.lk-about-team-grid {
    max-width: 800px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    justify-items: center;
}
.lk-about-agent-photo {
    width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 0;
    background: linear-gradient(135deg, var(--navy) 0%, var(--navy-mid) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    font-size: 5rem;
    color: var(--gold);
    font-family: var(--font-body);
}
/* Par real de .lk-about-agent-photo cuando el agente tiene foto: .lk-about-agent-photo
   trae display:flex pensado para el div placeholder, aquí necesitamos object-fit para
   que la <img> no se deforme dentro del mismo hueco 2/3. */
.lk-agent-photo.lk-about-agent-photo {
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 3;
    border-radius: 0;
    align-self: stretch;
    object-fit: cover;
}
.lk-about-agent-langs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 1rem;
}
.lk-about-lang-tag {
    display: inline-block;
    font-family: var(--font-body);
    font-size: 11px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 4px 10px;
    background: var(--navy-faint);
    border: 1px solid var(--border);
    color: var(--navy);
    border-radius: 0;
}

/* About-page agent card — compact text block */
.lk-about-team .lk-agent-card { gap: 0.35rem; }
.lk-about-team .lk-agent-contact { margin-top: 0.35rem; gap: 4px; }
.lk-about-team .lk-agent-contact-row { min-height: 0; }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
    .lk-about-stats-inner {
        grid-template-columns: repeat(2, 1fr);
        gap: 3rem;
    }
    .lk-about-values-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .lk-about-mission {
        gap: 3rem;
    }
}

@media (max-width: 767px) {
    .lk-about-section {
        padding-block: 3rem;
        padding-inline: 1.5rem;
    }
    .lk-about-stats {
        padding-block: 3rem;
        padding-inline: 1.5rem;
    }
    .lk-about-stats-inner {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }
    .lk-about-values {
        padding-block: 3rem;
        padding-inline: 1.5rem;
    }
    .lk-about-values-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    .lk-about-team {
        padding-block: 3rem;
        padding-inline: 1.5rem;
    }
    .lk-about-team-grid {
        grid-template-columns: 1fr;
        max-width: 480px;
    }
    .lk-about-mission {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .lk-about-mission-visual {
        aspect-ratio: 4 / 3;
    }
    .lk-about-mission-monogram {
        font-size: clamp(60px, 20vw, 100px);
    }
}

/* ══ ADMIN — VISTA PREVIA DE RECORTE DE FOTO DE AGENTE ══ */
.admin-foto-preview-wrap {
    margin-top: 12px;
}
.admin-foto-preview-row {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    margin-top: 8px;
}
.admin-foto-preview-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}
/* Réplica de .lk-agent-photo (ficha de propiedad). Redimensionado a 220px para el
   editor interactivo: Cropper.js construye su contenedor con el tamaño renderizado
   del <img>, a 80px la interacción de arrastre es inutilizable. */
.admin-foto-preview-circular {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
}
/* Réplica proporcional de .lk-agent-photo.lk-about-agent-photo (grid Sobre Nosotros); el ancho fijo sustituye al 100% fluido del grid público.
   Redimensionado a 180px (270px de alto vía aspect-ratio) por el mismo motivo que el circular. */
.admin-foto-preview-rect {
    width: 180px;
    height: auto;
    aspect-ratio: 2 / 3;
    border-radius: 0;
    object-fit: cover;
    display: block;
}
.admin-foto-preview-caption {
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--navy-mid);
    font-family: var(--font-body);
    text-align: center;
}
.admin-foto-preview-hint {
    font-size: 10px;
    letter-spacing: 0.5px;
    color: var(--navy-mid);
    font-family: var(--font-body);
    text-align: center;
    max-width: 220px;
}
/* Máscara circular del editor: Cropper.js inyecta su propio DOM (cropper-view-box,
   cropper-face) y no hereda las clases .admin-foto-preview-*, así que hay que forzar
   el border-radius en sus nodos internos para comunicar visualmente la forma final. */
.admin-foto-preview-item-circular .cropper-view-box,
.admin-foto-preview-item-circular .cropper-face {
    border-radius: 50%;
}

/* ══ WRAPPERS PÚBLICOS DE ENCUADRE DE FOTO DE AGENTE ══ */
/* Wrapper circular de la ficha de propiedad: mismas dimensiones/forma que
   .lk-agent-photo, pero recortando por overflow en vez de por object-fit, para
   poder posicionar la <img> con el estilo inline calculado por RecorteFotoHelper. */
.lk-agent-photo-crop {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    overflow: hidden;
    position: relative;
    display: block;
    align-self: flex-start;
    flex-shrink: 0;
}
/* Wrapper 2:3 de Sobre Nosotros: equivalente a .lk-agent-photo.lk-about-agent-photo,
   misma caja fluida del grid, recortando por overflow. */
.lk-about-agent-photo-crop {
    width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 0;
    overflow: hidden;
    position: relative;
    display: block;
    align-self: stretch;
}
