*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:Arial, Helvetica, sans-serif;
}

.visually-hidden{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    white-space:nowrap;
    border:0;
}

:root{
    --color-primary:#004754;
    --color-secondary:#dbb51b;
    --color-tertiary:#ffde59;
    --color-bg:#f7fafb;
    --color-text:#14343c;
    --color-white:#ffffff;
    --hero-offset:0px;
    --hero-glass:rgba(6, 38, 45, 0.58);
    --hero-glass-border:rgba(255, 255, 255, 0.2);
    --hero-shadow:0 28px 64px rgba(0, 18, 24, 0.38);
}

html{
    scroll-behavior:smooth;
}

body{
    background:var(--color-bg);
    color:var(--color-text);
}

/* HEADER */

header{
    width:100%;
    padding:12px 6%;
    background:var(--color-primary);
    display:flex;
    justify-content:space-between;
    align-items:center;
    position:fixed;
    top:0;
    z-index:1000;
}

.logo{
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    width:min(360px, 48vw);
    flex-shrink:0;
}

.logo img{
    width:100%;
    height:70px;
    display:block;
    object-fit:contain;
}

nav ul{
    display:flex;
    gap:25px;
    list-style:none;
}

nav a{
    text-decoration:none;
    color:var(--color-white);
    font-weight:600;
    transition:0.3s;
}

nav a:hover{
    color:var(--color-tertiary);
}

/* HERO */

.hero{
    position:relative;
    overflow:hidden;
    min-height:clamp(520px, 72vh, 760px);
    display:flex;
    justify-content:center;
    align-items:center;
    text-align:center;
    padding:120px 24px 48px;
    isolation:isolate;
}

.hero::before{
    content:"";
    position:absolute;
    inset:-8%;
    background:
        url("https://images.unsplash.com/photo-1600047509807-ba8f99d2cdde?q=80&w=1920&auto=format&fit=crop") center center / cover no-repeat,
        url("images/hero-premium.jpg") center center / cover no-repeat,
        url("images/casa-excelente-punto-tres-dormitorios.png") center center / cover no-repeat;
    transform:translate3d(0, calc(var(--hero-offset) * 0.28), 0) scale(1.06);
    filter:blur(2px) saturate(1.08) brightness(1.03);
    will-change:transform;
}

.hero::after{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(115deg, rgba(0, 35, 42, 0.82) 0%, rgba(0, 71, 84, 0.55) 42%, rgba(88, 52, 12, 0.35) 100%),
        linear-gradient(180deg, rgba(0, 20, 26, 0.25) 0%, rgba(0, 35, 42, 0.72) 100%);
}

.hero-content{
    position:relative;
    z-index:1;
    max-width:1120px;
    width:min(1120px, 100%);
    color:var(--color-white);
}

.hero-copy{
    max-width:780px;
    margin:0 auto 28px;
}

.hero-eyebrow{
    display:inline-block;
    margin-bottom:14px;
    padding:7px 14px;
    border-radius:999px;
    background:rgba(255, 255, 255, 0.12);
    border:1px solid rgba(255, 255, 255, 0.22);
    color:var(--color-tertiary);
    font-size:13px;
    font-weight:700;
    letter-spacing:0.6px;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
}

.hero h1{
    font-size:clamp(32px, 4.8vw, 52px);
    margin-bottom:14px;
    line-height:1.12;
    font-weight:700;
    letter-spacing:-0.02em;
    text-shadow:0 8px 28px rgba(0, 0, 0, 0.35);
}

.hero-lead{
    margin:0 auto;
    max-width:640px;
    font-size:clamp(16px, 2.1vw, 19px);
    line-height:1.65;
    color:rgba(255, 255, 255, 0.9);
}

.hero-search-panel{
    background:var(--hero-glass);
    border:1px solid var(--hero-glass-border);
    border-radius:22px;
    padding:22px;
    box-shadow:var(--hero-shadow);
    backdrop-filter:blur(18px) saturate(1.15);
    -webkit-backdrop-filter:blur(18px) saturate(1.15);
}

.search-bar{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:14px;
    align-items:end;
    text-align:left;
}

.search-field{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.search-field label{
    font-size:13px;
    color:rgba(255, 255, 255, 0.88);
    font-weight:600;
    letter-spacing:0.02em;
}

.search-field select{
    width:100%;
    border:1px solid rgba(255, 255, 255, 0.42);
    background-color:rgba(255, 255, 255, 0.97);
    color:#163d45;
    border-radius:12px;
    height:46px;
    padding:8px 36px 8px 14px;
    font-size:15px;
    cursor:pointer;
    transition:border-color 0.25s ease, box-shadow 0.25s ease;
    appearance:none;
    background-image:
        linear-gradient(45deg, transparent 50%, #355a63 50%),
        linear-gradient(135deg, #355a63 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(50% - 3px),
        calc(100% - 12px) calc(50% - 3px);
    background-size:6px 6px, 6px 6px;
    background-repeat:no-repeat;
}

.search-field select:hover{
    border-color:rgba(219, 181, 27, 0.75);
}

.search-field select:focus-visible{
    outline:none;
    border-color:var(--color-secondary);
    box-shadow:0 0 0 3px rgba(219, 181, 27, 0.35);
}

.search-field-range span{
    margin-top:6px;
    color:rgba(255, 255, 255, 0.92);
    font-size:14px;
    font-weight:600;
}

.range-double{
    position:relative;
    height:10px;
    display:flex;
    align-items:center;
    border-radius:999px;
    background:rgba(255, 255, 255, 0.28);
    margin-top:18px;
    box-shadow:inset 0 1px 3px rgba(0, 35, 42, 0.2);
}

.range-double input[type="range"]{
    position:absolute;
    left:0;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:100%;
    background:transparent;
    pointer-events:none;
    border:none;
    padding:0;
    margin:0;
    height:10px;
    -webkit-appearance:none;
    appearance:none;
    outline:none;
    box-shadow:none;
    border-radius:0;
}

#priceRangeMin{
    z-index:2;
}

#priceRangeMax{
    z-index:3;
}

.range-double input[type="range"]::-webkit-slider-runnable-track{
    height:10px;
    background:transparent;
}

.range-double input[type="range"]::-moz-range-track{
    height:10px;
    background:transparent;
    border:none;
}

.range-double input[type="range"]::-webkit-slider-thumb{
    -webkit-appearance:none;
    appearance:none;
    pointer-events:all;
    width:20px;
    height:20px;
    border-radius:50%;
    border:2px solid #fff;
    background:linear-gradient(145deg, var(--color-secondary), #c9a318);
    margin-top:-5px;
    cursor:pointer;
    box-shadow:0 4px 12px rgba(0, 0, 0, 0.25);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
}

.range-double input[type="range"]::-moz-range-thumb{
    pointer-events:all;
    width:20px;
    height:20px;
    border-radius:50%;
    border:2px solid #fff;
    background:linear-gradient(145deg, var(--color-secondary), #c9a318);
    cursor:pointer;
    box-shadow:0 4px 12px rgba(0, 0, 0, 0.25);
    transition:transform 0.2s ease, box-shadow 0.2s ease;
}

.range-double input[type="range"]:hover::-webkit-slider-thumb,
.range-double input[type="range"]:hover::-moz-range-thumb{
    transform:scale(1.06);
}

.range-double input[type="range"]:focus-visible::-webkit-slider-thumb,
.range-double input[type="range"]:focus-visible::-moz-range-thumb{
    box-shadow:0 0 0 4px rgba(219, 181, 27, 0.4);
}

.search-btn{
    height:46px;
    border:none;
    border-radius:12px;
    background:linear-gradient(135deg, var(--color-secondary) 0%, #e8c422 100%);
    color:var(--color-primary);
    font-size:16px;
    font-weight:700;
    letter-spacing:0.02em;
    cursor:pointer;
    box-shadow:0 10px 24px rgba(0, 0, 0, 0.22);
    transition:transform 0.25s ease, box-shadow 0.25s ease, filter 0.25s ease;
}

.search-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 28px rgba(0, 0, 0, 0.28);
    filter:brightness(1.04);
}

.search-btn:active{
    transform:translateY(0);
}

.search-btn:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(255, 255, 255, 0.85), 0 10px 24px rgba(0, 0, 0, 0.22);
}

@media (prefers-reduced-motion: reduce){
    .hero::before{
        transform:none;
        filter:blur(2px) saturate(1.05);
    }

    .search-btn:hover{
        transform:none;
    }

    .street-view-btn:hover{
        transform:none;
    }

    .street-view-btn:hover .street-view-btn__chevron{
        transform:none;
    }
}

/* PROPIEDADES */

.propiedades{
    padding:100px 8%;
}

.propiedades h2{
    text-align:center;
    margin-bottom:50px;
    font-size:40px;
}

.cards{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:30px;
}

.card{
    background:var(--color-white);
    border-radius:15px;
    overflow:hidden;
    box-shadow:0 5px 15px rgba(0,0,0,0.1);
    transition:0.3s;
    display:flex;
    flex-direction:column;
}

.card:hover{
    transform:translateY(-10px);
}

.card-carousel{
    position:relative;
    width:100%;
    height:220px;
    background:#edf4f6;
}

.card-slide{
    width:100%;
    height:100%;
    object-fit:cover;
    display:none;
}

.card-slide.is-active{
    display:block;
}

.carousel-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    border:none;
    width:34px;
    height:34px;
    border-radius:50%;
    background:rgba(20, 52, 60, 0.72);
    color:var(--color-white);
    font-size:24px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}

.carousel-btn:hover{
    background:rgba(20, 52, 60, 0.9);
}

.carousel-btn-prev{
    left:10px;
}

.carousel-btn-next{
    right:10px;
}

.carousel-indicator{
    position:absolute;
    right:10px;
    bottom:10px;
    background:rgba(20, 52, 60, 0.72);
    color:var(--color-white);
    font-size:12px;
    border-radius:999px;
    padding:4px 8px;
}

.card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.card-content{
    padding:20px;
    display:flex;
    flex-direction:column;
    flex:1;
}

.card-content h3{
    margin-bottom:10px;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    line-height:1.3;
    min-height:calc(1.3em * 2);
}

.card-content p{
    margin-bottom:10px;
    color:#33606a;
}

.card-content span,
.card-content .card-description{
    display:-webkit-box;
    -webkit-line-clamp:5;
    -webkit-box-orient:vertical;
    overflow:hidden;
    color:#2b4f58;
    font-size:15px;
    line-height:1.6;
    margin-bottom:18px;
    min-height:calc(1.6em * 5);
}

.card-btn{
    display:inline-block;
    text-align:center;
    text-decoration:none;
    width:100%;
    padding:12px 16px;
    border:none;
    background:var(--color-primary);
    color:var(--color-white);
    border-radius:8px;
    cursor:pointer;
    font-size:15px;
    transition:0.3s;
    margin-top:auto;
}

.card-btn:hover{
    background:var(--color-secondary);
    color:var(--color-primary);
}

/* DETALLE */
.property-detail-page{
    padding:130px clamp(16px, 5vw, 8%) 80px;
    min-height:calc(100vh - 90px);
}

.property-detail{
    display:grid;
    grid-template-columns:minmax(0, 1.1fr) minmax(0, 1fr);
    align-items:start;
    gap:35px;
    max-width:1400px;
    margin:0 auto;
    background:var(--color-white);
    border-radius:16px;
    box-shadow:0 8px 24px rgba(15, 23, 42, 0.12);
}

.property-detail-image{
    width:100%;
    min-width:0;
}

.property-detail-carousel{
    position:relative;
    width:100%;
    aspect-ratio:4 / 3;
    max-height:480px;
    overflow:hidden;
    border-radius:16px 0 0 16px;
    background:#edf4f6;
}

.property-detail-slide{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:none;
}

.property-detail-slide.is-active{
    display:block;
}

@media (min-width:993px){
    .property-detail-image{
        position:sticky;
        top:120px;
    }
}

.property-detail-carousel-btn{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    border:none;
    width:42px;
    height:42px;
    border-radius:50%;
    background:rgba(20, 52, 60, 0.72);
    color:var(--color-white);
    font-size:28px;
    line-height:1;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
}

.property-detail-carousel-btn:hover{
    background:rgba(20, 52, 60, 0.9);
}

.property-detail-carousel-btn-prev{
    left:14px;
}

.property-detail-carousel-btn-next{
    right:14px;
}

.property-detail-carousel-indicator{
    position:absolute;
    right:14px;
    bottom:14px;
    background:rgba(20, 52, 60, 0.72);
    color:var(--color-white);
    font-size:13px;
    border-radius:999px;
    padding:5px 10px;
}

.property-detail-content{
    padding:35px;
}

.property-badge{
    display:inline-block;
    background:#eaf2f4;
    color:var(--color-primary);
    font-size:14px;
    border-radius:999px;
    padding:8px 14px;
    margin-bottom:16px;
}

.property-detail-content h1{
    font-size:34px;
    line-height:1.2;
    margin-bottom:18px;
}

.property-detail-description{
    color:#355a63;
    line-height:1.7;
    margin-bottom:14px;
    text-wrap:pretty;
}

.property-features{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:12px;
}

.feature-item{
    background:#f7fbfc;
    border:1px solid #d5e6ea;
    border-radius:10px;
    padding:12px;
    color:#2e515a;
}

.property-detail-map{
    margin-top:22px;
}

.property-detail-map-title{
    font-size:18px;
    color:var(--color-primary);
    margin-bottom:12px;
}

.property-detail-map-container{
    width:100%;
    height:240px;
    border-radius:12px;
    overflow:hidden;
    border:1px solid #d5e6ea;
    background:#edf4f6;
}

.property-detail-map-container .leaflet-control-attribution{
    font-size:10px;
}

.street-view-btn{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    margin-top:14px;
    padding:14px 18px;
    background:#f7fbfc;
    border:1px solid #d5e6ea;
    border-radius:12px;
    color:var(--color-primary);
    text-decoration:none;
    font-size:15px;
    font-weight:700;
    transition:transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}

.street-view-btn:hover{
    transform:translateY(-2px);
    border-color:#b8d4dc;
    background:#eef6f8;
    box-shadow:0 8px 20px rgba(0, 71, 84, 0.12);
}

.street-view-btn:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(219, 181, 27, 0.55), 0 8px 20px rgba(0, 71, 84, 0.12);
}

.street-view-btn__icon{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    width:22px;
    height:22px;
}

.street-view-btn__icon svg{
    width:22px;
    height:22px;
}

.street-view-btn__label{
    flex:1;
    text-align:left;
}

.street-view-btn__chevron{
    flex-shrink:0;
    font-size:18px;
    line-height:1;
    opacity:0.75;
    transition:transform 0.25s ease, opacity 0.25s ease;
}

.street-view-btn:hover .street-view-btn__chevron{
    transform:translateX(3px);
    opacity:1;
}

.property-detail-actions{
    margin-top:26px;
}

.back-link{
    display:inline-block;
    margin-top:16px;
    color:var(--color-primary);
    text-decoration:none;
    font-weight:bold;
}

.back-link:hover{
    color:var(--color-secondary);
}

.property-not-found{
    max-width:620px;
    margin:0 auto;
    background:var(--color-white);
    padding:40px;
    border-radius:16px;
    text-align:center;
    box-shadow:0 8px 24px rgba(15, 23, 42, 0.12);
}

.property-not-found h1{
    margin-bottom:12px;
}

.property-not-found p{
    color:#355a63;
    margin-bottom:18px;
}

/* ABOUT US */
.about-page{
    padding:130px 8% 90px;
    max-width:1200px;
    margin:0 auto;
}

.about-hero{
    background:linear-gradient(135deg, rgba(0, 71, 84, 0.98), rgba(4, 90, 106, 0.95));
    color:var(--color-white);
    border-radius:20px;
    padding:48px;
    box-shadow:0 14px 34px rgba(0, 35, 42, 0.25);
}

.about-kicker{
    color:var(--color-tertiary);
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
    margin-bottom:12px;
}

.about-hero h1,
.about-hero-title{
    font-size:42px;
    line-height:1.15;
    margin-bottom:18px;
}

.about-hero-title{
    position:relative;
    padding-bottom:16px;
}

.about-hero-title::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:80px;
    height:3px;
    background:var(--color-tertiary);
    border-radius:2px;
}

.about-hero p,
.about-hero-body p{
    max-width:900px;
    line-height:1.8;
    font-size:18px;
}

.about-hero-body p + p{
    margin-top:16px;
}

.about-profile{
    margin-top:36px;
    background:var(--color-white);
    border-radius:20px;
    box-shadow:0 10px 28px rgba(15, 23, 42, 0.12);
    display:grid;
    grid-template-columns:minmax(280px, 420px) 1fr;
    gap:32px;
    padding:28px;
    align-items:center;
}

.about-profile-image img{
    width:100%;
    height:100%;
    max-height:520px;
    object-fit:cover;
    border-radius:14px;
}

.about-profile-label{
    display:inline-block;
    background:#eaf2f4;
    color:var(--color-primary);
    border-radius:999px;
    padding:8px 14px;
    font-size:14px;
    font-weight:700;
    margin-bottom:14px;
}

.about-profile-content h2{
    color:var(--color-primary);
    font-size:34px;
    line-height:1.2;
    margin-bottom:14px;
}

.about-profile-content p{
    color:#2f5560;
    font-size:17px;
    line-height:1.8;
}

.about-cta{
    margin-top:24px;
    width:auto;
    max-width:320px;
}

/* PROPIETARIOS */
.owners-page{
    padding:130px 8% 90px;
    max-width:1200px;
    margin:0 auto;
}

.owners-hero{
    background:linear-gradient(135deg, rgba(0, 71, 84, 0.98), rgba(4, 90, 106, 0.95));
    color:var(--color-white);
    border-radius:20px;
    padding:48px;
    box-shadow:0 14px 34px rgba(0, 35, 42, 0.25);
    text-align:center;
}

.owners-kicker{
    color:var(--color-tertiary);
    text-transform:uppercase;
    letter-spacing:1px;
    font-weight:700;
    margin-bottom:12px;
    font-size:14px;
}

.owners-hero h1{
    font-size:42px;
    line-height:1.15;
    margin-bottom:16px;
    position:relative;
    display:inline-block;
    padding-bottom:14px;
}

.owners-hero h1::after{
    content:"";
    position:absolute;
    left:50%;
    bottom:0;
    transform:translateX(-50%);
    width:80px;
    height:3px;
    background:var(--color-tertiary);
    border-radius:2px;
}

.owners-hero-lead{
    max-width:720px;
    margin:0 auto;
    font-size:18px;
    line-height:1.75;
    color:rgba(255, 255, 255, 0.92);
}

.owners-cards{
    margin-top:36px;
    display:grid;
    gap:24px;
}

.owners-card{
    background:var(--color-white);
    border-radius:18px;
    padding:32px;
    box-shadow:0 10px 28px rgba(15, 23, 42, 0.1);
    border:1px solid #e3eef1;
    transition:transform 0.35s ease, box-shadow 0.35s ease;
}

.owners-card:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 36px rgba(15, 23, 42, 0.14);
}

.owners-card-icon{
    width:52px;
    height:52px;
    border-radius:14px;
    background:#eaf2f4;
    color:var(--color-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:18px;
}

.owners-card-icon svg{
    width:28px;
    height:28px;
    fill:currentColor;
}

.owners-card h2{
    color:var(--color-primary);
    font-size:26px;
    line-height:1.25;
    margin-bottom:14px;
}

.owners-card p{
    color:#2f5560;
    font-size:17px;
    line-height:1.8;
    margin-bottom:12px;
}

.owners-card p:last-of-type{
    margin-bottom:20px;
}

.owners-card-link{
    display:inline-block;
    color:var(--color-primary);
    font-weight:700;
    text-decoration:none;
    border-bottom:2px solid var(--color-secondary);
    padding-bottom:2px;
    transition:color 0.25s ease, border-color 0.25s ease;
}

.owners-card-link:hover{
    color:var(--color-secondary);
    border-color:var(--color-primary);
}

.owners-cta{
    margin-top:40px;
    background:var(--color-white);
    border-radius:20px;
    padding:40px;
    text-align:center;
    box-shadow:0 10px 28px rgba(15, 23, 42, 0.1);
    border:1px solid #e3eef1;
}

.owners-cta h2{
    color:var(--color-primary);
    font-size:30px;
    margin-bottom:12px;
}

.owners-cta p{
    color:#355a63;
    font-size:17px;
    line-height:1.7;
    max-width:640px;
    margin:0 auto 24px;
}

.owners-cta-actions{
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    justify-content:center;
    align-items:center;
}

.owners-cta-whatsapp{
    width:auto;
    max-width:320px;
}

.owners-cta-contact{
    color:var(--color-primary);
    font-weight:700;
    text-decoration:none;
}

.owners-cta-contact:hover{
    color:var(--color-secondary);
}

@media (prefers-reduced-motion: no-preference){
    .owners-card{
        animation:ownersFadeUp 0.65s ease both;
    }

    .owners-card:nth-child(2){
        animation-delay:0.12s;
    }

    .owners-card:nth-child(3){
        animation-delay:0.24s;
    }

    .owners-cta{
        animation:ownersFadeUp 0.65s ease 0.32s both;
    }
}

@keyframes ownersFadeUp{
    from{
        opacity:0;
        transform:translateY(20px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* NOSOTROS */

.nosotros{
    background:var(--color-primary);
    color:var(--color-white);
    padding:100px 8%;
    text-align:center;
}

.nosotros h2{
    margin-bottom:30px;
    font-size:40px;
}

.nosotros p{
    max-width:800px;
    margin:auto;
    line-height:1.8;
}

/* CONTACTO */

.contacto{
    padding:100px 8%;
    background:linear-gradient(180deg, #f7fafb 0%, #eef4f6 100%);
}

.contacto-header{
    text-align:center;
    max-width:820px;
    margin:0 auto 42px;
}

.contacto-kicker{
    color:var(--color-primary);
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
    margin-bottom:10px;
}

.contacto h2{
    margin-bottom:14px;
    font-size:40px;
}

.contacto-header p{
    color:#355a63;
    line-height:1.7;
}

.contacto-grid{
    display:grid;
    grid-template-columns:minmax(320px, 420px) 1fr;
    gap:28px;
    align-items:start;
}

.contacto-info{
    background:var(--color-primary);
    color:var(--color-white);
    border-radius:16px;
    padding:24px;
    box-shadow:0 12px 26px rgba(0, 35, 42, 0.25);
}

.contacto-card{
    display:flex;
    align-items:center;
    gap:12px;
    border-radius:12px;
    padding:12px 14px;
    text-decoration:none;
    color:var(--color-white);
    margin-bottom:12px;
    transition:0.3s;
}

.contacto-card:hover{
    transform:translateY(-2px);
}

.contacto-phone{
    background:rgba(255, 255, 255, 0.12);
}

.contacto-whatsapp{
    background:#1f9c58;
}

.contacto-icon{
    width:40px;
    height:40px;
    border-radius:50%;
    background:rgba(0, 0, 0, 0.18);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.contacto-icon svg{
    width:21px;
    height:21px;
    fill:currentColor;
}

.contacto-card strong{
    display:block;
    font-size:15px;
}

.contacto-card small{
    display:block;
    margin-top:3px;
    font-size:14px;
    opacity:0.95;
}

.contacto-details{
    margin-top:14px;
    border-top:1px solid rgba(255, 255, 255, 0.22);
    padding-top:14px;
}

.contacto-details p{
    margin-bottom:10px;
    line-height:1.7;
    color:#e8f1f4;
}

.contacto-details a{
    color:var(--color-tertiary);
    text-decoration:none;
}

.contacto-details a:hover{
    text-decoration:underline;
}

#contactForm.contacto-form{
    background:var(--color-white);
    border-radius:16px;
    padding:24px;
    box-shadow:0 8px 24px rgba(15, 23, 42, 0.1);
    display:flex;
    flex-direction:column;
    gap:14px;
}

#contactForm input,
#contactForm textarea{
    padding:15px;
    border:1px solid #b7d0d6;
    border-radius:8px;
    font-size:16px;
}

#contactForm textarea{
    min-height:150px;
    resize:none;
}

#contactForm button{
    padding:15px;
    border:none;
    background:var(--color-secondary);
    color:var(--color-primary);
    font-weight:700;
    font-size:16px;
    border-radius:8px;
    cursor:pointer;
    transition:0.3s;
}

#contactForm button:hover{
    background:var(--color-tertiary);
}

/* FOOTER */

footer{
    background:var(--color-primary);
    color:var(--color-white);
    text-align:center;
    padding:25px;
}

/* RESPONSIVE */

@media(max-width:992px){
    .property-detail{
        grid-template-columns:1fr;
    }

    .property-detail-carousel{
        border-radius:16px 16px 0 0;
    }
}

@media(max-width:768px){

    header{
        flex-direction:column;
        gap:10px;
    }

    .logo{
        width:min(320px, 88vw);
    }

    .logo img{
        height:62px;
    }

    .hero{
        min-height:auto;
        padding:108px 16px 36px;
    }

    .hero-copy{
        margin-bottom:20px;
    }

    .hero-eyebrow{
        font-size:11px;
        padding:6px 12px;
    }

    .hero h1{
        font-size:clamp(28px, 8vw, 34px);
        line-height:1.15;
    }

    .hero-lead{
        font-size:16px;
    }

    .hero-search-panel{
        padding:18px 16px;
        border-radius:18px;
    }

    .search-bar{
        grid-template-columns:1fr;
        gap:12px;
    }

    .search-btn{
        width:100%;
    }

    nav ul{
        gap:15px;
    }

    .property-detail-image{
        position:static;
    }

    .property-detail-carousel{
        max-height:320px;
    }

    .property-detail-content{
        padding:24px;
    }

    .property-detail-content h1{
        font-size:28px;
    }

    .property-features{
        grid-template-columns:1fr;
    }

    .property-detail-map-container{
        height:200px;
    }

    .contacto{
        padding:80px 6%;
    }

    .contacto h2{
        font-size:31px;
    }

    .contacto-grid{
        grid-template-columns:1fr;
    }

    .contacto-info{
        padding:20px;
    }

    #contactForm.contacto-form{
        padding:20px;
    }

    .about-page{
        padding:150px 6% 70px;
    }

    .about-hero{
        padding:34px 22px;
    }

    .about-hero h1,
    .about-hero-title{
        font-size:32px;
    }

    .about-hero p,
    .about-hero-body p{
        font-size:16px;
    }

    .about-hero-body p + p{
        margin-top:14px;
    }

    .about-profile{
        grid-template-columns:1fr;
        padding:20px;
        gap:18px;
    }

    .about-profile-content h2{
        font-size:28px;
    }

    .about-cta{
        width:100%;
        max-width:none;
    }

    nav ul{
        gap:12px;
        flex-wrap:wrap;
        justify-content:flex-end;
    }

    nav a{
        font-size:14px;
    }

    .owners-page{
        padding:150px 6% 70px;
    }

    .owners-hero{
        padding:34px 22px;
    }

    .owners-hero h1{
        font-size:30px;
    }

    .owners-hero-lead{
        font-size:16px;
    }

    .owners-card{
        padding:24px 20px;
    }

    .owners-card h2{
        font-size:22px;
    }

    .owners-card p{
        font-size:16px;
    }

    .owners-cta{
        padding:28px 20px;
    }

    .owners-cta h2{
        font-size:24px;
    }

    .owners-cta-whatsapp{
        width:100%;
        max-width:none;
    }

}