:root {
    --gray-1: #F4F4F4;
    --gray-2: #f1f1f1;
    --gray-dark: #272727;
    --gray-dark-b: #515151;
    --secondary: #3FA1AC;
    --black: #000000;
    --white: #ffffff;
  }

/* /////////////////////////////////////////////////////////
    # RESET AND GLOBALS
///////////////////////////////////////////////////////////*/

* {margin: 0; padding: 0; box-sizing: border-box;}
html {scroll-behavior: smooth;}
body {font-family: 'Mulish', sans-serif;overflow-x: hidden;}
p {font-family: 'Mulish', sans-serif; font-weight: 300;}
h2 {font-size: 2.5rem;}

section {overflow-x: clip;}

.btn {text-decoration: none;transition: all 300ms ease;}
/* .btn-small {} */
.btn-large {padding: 8px 30px;font-size: 23px;}
.btn-rounded {border-radius: 11px;}

.btn-black {background-color: var(--black);color: var(--white);}
.btn-black:hover,
.btn-black:active,
.btn-black:focus {background-color: var(--white);color: var(--black);border: 1px solid var(--black);}

.btn-secondary-outlined {background-color: transparent;color: var(--secondary);border: 1px solid var(--secondary);}
.btn-secondary-outlined:hover,
.btn-secondary-outlined:active,
.btn-secondary-outlined:focus {background-color: var(--secondary);color: var(--white);}

.container {max-width: 2100px; margin: 0 auto; padding: 0 40px; width: 99%;}


/* ===== SLIDERS ===== */
.slick-prev, .slick-next {z-index: 10; width: 50px; height: 50px;}
.slick-prev {left: 30px;}
.slick-next {right: 30px;}
.slick-prev:before, .slick-next:before {font-size: 40px; opacity: 0.7;}
.slick-prev:hover:before, .slick-next:hover:before {opacity: 1;}


/* .slick-dots {bottom: 100px; z-index: 10;} */
/* .slick-dots li {margin: 0 5px;} */
/* .slick-dots li button:before {font-size: 12px; color: white; opacity: 0.5;} */
/* .slick-dots li.slick-active button:before {opacity: 1; color: white;} */

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
    .slick-prev {left: 10px;}
    .slick-next {right: 10px;}
    /* .slick-dots {bottom: 80px;} */
}
.scroll-indicator {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 35px;
  height: 35px;
  background: white;
  border: 2px solid white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  animation: bounce 2s infinite;
  pointer-events: all;
  text-decoration: none;
  transition: all 300ms ease;
}

.scroll-indicator::after {
    content: '';
    position: absolute;
    top: -12px;
    left: -12px;
    width: calc(100% + 22px);
    height: calc(100% + 22px);
    border: 1px solid rgba(255, 255, 255, 0.9);
    border-radius: 50%;
}

.scroll-indicator i {
  color: black;
  font-size: 22px;
  transition: color 0.3s ease;
}

.scroll-indicator:hover {
  background: var(--gray-dark-b);
}

.scroll-indicator:hover i {
  color: white;
}

/* Animación de rebote */
@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translate(-50%, 0);
  }
  40% {
    transform: translate(-50%, -10px);
  }
  60% {
    transform: translate(-50%, -5px);
  }
}


/* /////////////////////////////////////////////////////////
    # Helpers
///////////////////////////////////////////////////////////*/

.text-light {font-weight: 300;}
.text-uppercase {text-transform: uppercase;}

.display-block {display: block;}


/* /////////////////////////////////////////////////////////
    # Components
///////////////////////////////////////////////////////////*/

/* ===== NAVBAR ===== */
.navbar {position: fixed; top: 0; left: 0; width: 100%; z-index: 100; padding: 20px 0; transition: background-color 0.3s ease, padding 0.3s ease; pointer-events: all;}
.navbar.scrolled {background-color: rgba(0, 0, 0, 0.95); padding: 15px 0;}
.navbar .container {display: flex; align-items: center; justify-content: space-between;}
.navbar .navbar-logo {width: 100px; display: flex; align-items: center; justify-content: center; font-size: 12px; color: #333; font-weight: bold; transition: all 0.3s ease;}
.navbar.scrolled .navbar-logo {width: 50px;}

@media (max-width: 768px) {
    .navbar .container, .container {padding: 0 20px;}
    .navbar {padding: 15px 0;}
    .navbar.scrolled {padding: 10px 0;}
    .navbar .navbar-logo {width: 80px;}
    .navbar.scrolled .navbar-logo {width: 40px;}
}




/* /////////////////////////////////////////////////////////
    # Section Types / Layouts
///////////////////////////////////////////////////////////*/

/* ===== SECCIONES DE TEXTO Y SLIDER ===== */
section.left-text-right-slider,
section.left-slider-right-text {padding: 0; background: #fff;overflow-x: clip;}

section.left-text-right-slider .content-row,
section.left-slider-right-text .content-row {
    display: flex;
    align-items: stretch;
    min-height: 400px; /* Altura mínima para evitar colapso */
}

/* Columnas - 45% texto / 55% slider */
section.left-text-right-slider .text-column,
section.left-slider-right-text .text-column {
    flex: 0 0 45%;
    display: flex;
    align-items: center;
    background: #f8f8f8;
}

section.left-text-right-slider .slider-column,
section.left-slider-right-text .slider-column {
    flex: 0 0 55%;
    position: relative;
    overflow: hidden;
}

/* Wrapper del texto - dentro del contenedor */
section.left-text-right-slider .text-wrapper,
section.left-slider-right-text .text-wrapper {
    padding: 80px 60px;
    width: 100%;
}

/* Alineación según posición - TEXTO A LA IZQUIERDA */
section.left-text-right-slider .text-wrapper {
    margin-left: auto;
    margin-right: 60px;
    max-width: 900px;
}

/* Alineación según posición - TEXTO A LA DERECHA */
section.left-slider-right-text .text-wrapper {
    margin-right: auto;
    width: 900px;
    max-width: 40vw;
}

/* Eyebrow (pequeño título arriba) */
section.left-text-right-slider .eyebrow,
section.left-slider-right-text .eyebrow {
    font-size: 0.9rem;
    font-weight: 400;
    letter-spacing: 2px;
    color: #666;
    margin-bottom: 5px;
}

/* Títulos en secciones de texto/slider */
section.left-text-right-slider h2,
section.left-slider-right-text h2 {
    /* font-size: 2.5rem; */
    font-weight: 800;
    color: #333;
    margin-bottom: 30px;
    line-height: 1.2;
}

section.left-text-right-slider p,
section.left-slider-right-text p {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #666;
}

section.left-text-right-slider p:last-child,
section.left-slider-right-text p:last-child {
    margin-bottom: 0;
}

/* Listas */
section.left-text-right-slider ul,
section.left-slider-right-text ul {
    list-style: none;
    padding: 0;
}

section.left-text-right-slider li,
section.left-slider-right-text li {
    font-size: 1.1rem;
    line-height: 1.5;
    color: #666;
    padding-left: 25px;
    position: relative;
}

section.left-text-right-slider li::before,
section.left-slider-right-text li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: #333;
    font-weight: bold;
}

/* Slider lateral */
section.left-text-right-slider .side-slider,
section.left-slider-right-text .side-slider {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}

section.left-text-right-slider .side-slider .slide-item,
section.left-slider-right-text .side-slider .slide-item {
    width: 100%;
    height: 100%;
}

section.left-text-right-slider .side-slider .slide-item img,
section.left-slider-right-text .side-slider .slide-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* Forzar que slick-list y slick-track ocupen 100% altura */
section.left-text-right-slider .side-slider .slick-list,
section.left-text-right-slider .side-slider .slick-track,
section.left-slider-right-text .side-slider .slick-list,
section.left-slider-right-text .side-slider .slick-track {
    height: 100% !important;
}

/* ===== RESPONSIVE PARA SECCIONES TEXTO/SLIDER ===== */
/* Tablets y pantallas medianas */
@media (min-width: 769px) and (max-width: 1200px) {
    section.left-text-right-slider .content-row,
    section.left-slider-right-text .content-row {
        min-height: 400px;
    }
    
    section.left-text-right-slider .text-wrapper,
    section.left-slider-right-text .text-wrapper {
        padding: 60px 40px;
        margin-left: 40px;
        margin-right: 40px;
        max-width: 100%;
        width: 100%;
    }
    
    /* section.left-text-right-slider h2,
    section.left-slider-right-text h2 {
        font-size: 2rem;
    } */
    
    section.left-text-right-slider p,
    section.left-slider-right-text p,
    section.left-text-right-slider li,
    section.left-slider-right-text li {
        font-size: 1rem;
        line-height: 1.6;
    }
}

/* Mobile */
@media (max-width: 768px) {
    /* Cambiar a layout vertical */
    section.left-text-right-slider .content-row,
    section.left-slider-right-text .content-row {
        flex-direction: column !important;
        min-height: auto;
    }

    section.left-slider-right-text .content-row {
        flex-direction: column-reverse !important;
    }
    
    /* Ambas columnas ocupan 100% */
    section.left-text-right-slider .text-column,
    section.left-text-right-slider .slider-column,
    section.left-slider-right-text .text-column,
    section.left-slider-right-text .slider-column {
        flex: 0 0 100%;
        width: 100%;
    }
    
    /* Slider debe volver a posición relativa en mobile */
    section.left-text-right-slider .slider-column,
    section.left-slider-right-text .slider-column {
        position: relative;
        height: 350px;
        min-height: 350px;
    }
    
    section.left-text-right-slider .side-slider,
    section.left-slider-right-text .side-slider {
        position: relative;
        height: 350px;
    }
    
    /* Ajustar wrapper de texto */
    section.left-text-right-slider .text-wrapper,
    section.left-slider-right-text .text-wrapper {
        margin: 0;
        padding: 60px 30px;
        max-width: 100%;
        width: 100%;
    }
    
    /* Altura fija para sliders en mobile */
    section.left-text-right-slider .side-slider .slide-item,
    section.left-slider-right-text .side-slider .slide-item {
        height: 350px;
    }
    
    /* Reducir tamaños de fuente */
    section.left-text-right-slider h2,
    section.left-slider-right-text h2 {
        font-size: 1.8rem;
        margin-bottom: 20px;
    }
    
    section.left-text-right-slider p,
    section.left-slider-right-text p,
    section.left-text-right-slider li,
    section.left-slider-right-text li {
        font-size: 0.95rem;
        line-height: 1.6;
        margin-bottom: 15px;
    }
    
    section.left-text-right-slider li,
    section.left-slider-right-text li {
        padding-left: 20px;
        margin-bottom: 0;
    }
}






/* ===== CENTER CONTENT SECTION ===== */
section.center-content-section {
    padding: 100px 20px;
    background: #fff;
    text-align: center;
}

section.center-content-section .container {
    max-width: 1000px;
}

section.center-content-section h2 {
    font-size: 3rem;
    font-weight: 800;
    color: #333;
    margin-bottom: 30px;
    line-height: 1.2;
}

section.center-content-section p {
    font-size: 1.2rem;
    line-height: 1.8;
    color: #666;
    margin: 0 auto;
    max-width: 700px;
}

/* Responsive */
@media (max-width: 768px) {
    section.center-content-section {
        padding: 80px 20px;
    }
    
    section.center-content-section h2 {
        font-size: 1.8rem;
        margin-bottom: 20px;
    }
    
    section.center-content-section p {
        font-size: 1rem;
        line-height: 1.6;
    }
}




/* /////////////////////////////////////////////////////////
    # Sections
///////////////////////////////////////////////////////////*/

/* ===== HERO SECTION ===== */
section#hero {position: relative; height: 100vh; overflow: hidden;}

section#hero .background-slider {position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1;}
section#hero .background-slider .slide-item {position: relative; height: 100vh; overflow: hidden;}
section#hero .background-slider .slide-item img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
section#hero .background-slider .slide-item::before {content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); z-index: 1;}

section#hero .fixed-content {position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 5; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: white; pointer-events: none;}
section#hero .fixed-content .content-wrapper {max-width: 900px; margin: 0 auto;}
section#hero .fixed-content h1 {font-size: 48px; font-family: 'Mulish', sans-serif; font-weight: 800;margin-bottom: 23px; /*text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5);*/ line-height: 1.2;}
section#hero .fixed-content .description {font-size: 24px; line-height: 1.2; margin-bottom: 50px; /*text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5)*/; max-width: 800px;margin: auto;}

section#hero .scroll-indicator {position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); width: 35px; height: 35px; border: 2px solid white; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; animation: bounce 2s infinite; pointer-events: all;}
section#hero .scroll-indicator::before {content: ''; font-size: 24px; color: white;}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {transform: translateX(-50%) translateY(0);}
    40% {transform: translateX(-50%) translateY(-10px);}
    60% {transform: translateX(-50%) translateY(-5px);}
}

@media (max-width: 768px) {   
    section#hero .fixed-content h1 {font-size: 2rem;}
    section#hero .fixed-content .description {font-size: 1rem;}
}



/* ===== PRIVATE RESIDENCES SECTION ===== */
section#private-residences {position: relative; height: 100vh; overflow: hidden;}
section#private-residences .background-slider {position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1;}
section#private-residences .background-slider .slide-item {position: relative; height: 100vh; overflow: hidden;}
section#private-residences .background-slider .slide-item img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
section#private-residences .background-slider .slide-item::before {content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.4); z-index: 1;}
section#private-residences .fixed-content {position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 5; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: white; pointer-events: none;}
section#private-residences .fixed-content .content-wrapper {max-width: 900px; margin: 0 auto;}
section#private-residences .fixed-content h2 {font-size: 48px; font-family: 'Mulish', sans-serif; font-weight: 800; margin-bottom: 30px; line-height: 1.2;}
section#private-residences .fixed-content .description {font-size: 24px; line-height: 1.2; margin-bottom: 50px; max-width: 800px;margin: auto;}

@media (max-width: 768px) {   
    section#private-residences .fixed-content h2 {font-size: 2rem;}
    section#private-residences .fixed-content .description {font-size: 1rem;}
}


/* ===== TE GUSTARÍA INVERTIR ===== */
section#te-gustaria-invertir {background-color: var(--gray-1);}
section#te-gustaria-invertir p {font-size: 19px;line-height: 1.7;max-width: 100%;}
section#te-gustaria-invertir .btn-wrapper {margin-top: 40px;}
section#te-gustaria-invertir .btn-wrapper .btn {padding: 10px 30px;width: 430px;display: block;margin: auto;font-weight: 600;max-width: 100%;border: 1px solid var(--black);}
@media (max-width: 768px) {   
    section#te-gustaria-invertir {padding: 60px 20px;}

    section#te-gustaria-invertir .btn-wrapper {margin-top: 40px;}
    section#te-gustaria-invertir .btn-wrapper .btn {font-size: 16px;}
}


/* ===== GALERÍA SLIDER ===== */
section#galeria {
    position: relative;
    background: var(--gray-dark);
    padding: 0;
    text-align: center;
}

section#galeria .image-slider img {
    width: 100%;
    height: 80vh;
    object-fit: cover;
}


section#galeria .slider-nav {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 1.5rem;
    padding: 2.5rem 0;
}

section#galeria .slider-nav button {
    background: transparent;
    color: #fff;
    border: 1px solid #fff;
    padding: 0.6rem 1.5rem;
    font-family: 'Mulish', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    border-radius: 30px;
    transition: all 0.3s ease;
    font-size: 16px;
}

section#galeria .slider-nav button:hover {
    background: #fff;
    color: #000;
}

@media (max-width: 768px) {
    section#galeria .image-slider img {height: 300px;}
    section#galeria .slider-nav {padding: 1.5rem 0;}
    section#galeria .slider-nav button {font-size: 14px;padding: 0.4rem 1.5rem;}
}


/* ===== VIDEO SECTION ===== */
section#video-section {padding: 100px 20px; background: var(--black); color: var(--white); text-align: left;}
section#video-section .blocks-wrapper {display: flex;flex-direction: row;}
section#video-section .blocks-wrapper .first-block {width: 30%;display: flex;flex-direction: column;justify-content: center;padding-right: 22px;}
section#video-section .blocks-wrapper .first-block h2 {margin-bottom: 40px;}
section#video-section .blocks-wrapper .first-block p {font-size: 17px; line-height: 1.7;}
section#video-section .blocks-wrapper .second-block {width: 70%;position: relative;}
section#video-section .blocks-wrapper .second-block .video-wrapper {width: 100%;height: 370px;pointer-events: none;position: relative;overflow: hidden;z-index: 1;}
section#video-section .blocks-wrapper .second-block .video-wrapper::after {content: '';position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.38);z-index: 2;pointer-events: none;}

@media (max-width: 768px) {
    section#video-section {padding-bottom: 50px;}
    section#video-section .blocks-wrapper {flex-direction: column;row-gap: 40px;}
    section#video-section .blocks-wrapper .first-block,
    section#video-section .blocks-wrapper .second-block {width: 100%;}
    section#video-section .blocks-wrapper .second-block .video-wrapper {height: 221px;}

    section#video-section .blocks-wrapper .first-block {padding-right: 0;}
}

/* ===== LOCATION SECTION ===== */
section#location-section {padding: 80px 0; text-align: left;}
section#location-section .blocks-wrapper {display: flex;flex-direction: row;}
section#location-section .blocks-wrapper .first-block {width: 35%;display: flex;flex-direction: column;justify-content: center;height: 600px;}
section#location-section .blocks-wrapper .second-block {width: 65%;position: relative;padding: 0 80px;row-gap: 20px;display: flex;flex-direction: column;text-align: center;text-wrap: balance;justify-content: center;}
section#location-section .blocks-wrapper .second-block h2 {color: var(--gray-dark-b);}
section#location-section .blocks-wrapper .second-block h2 * {display: inline;}
section#location-section .blocks-wrapper .second-block p {line-height: 1.6;color: var(--gray-dark-b);}
section#location-section .blocks-wrapper .second-block .btn-wrapper {margin-top: 20px;display: flex;justify-content: center;}
section#location-section .blocks-wrapper .second-block .btn-wrapper .btn {font-size: 16px;}

@media (max-width: 768px) {
    section#location-section {padding: 60px 0;}
    section#location-section .blocks-wrapper {flex-direction: column-reverse;row-gap: 40px;}
    section#location-section .blocks-wrapper .first-block,
    section#location-section .blocks-wrapper .first-block {height: 300px;width: 100%;}
    section#location-section .blocks-wrapper .second-block {width: 100%;padding: 0;}

    section#location-section .blocks-wrapper .second-block h2 {font-size: 2rem;}
    section#location-section .blocks-wrapper .second-block p {font-size: 1rem;}
}

/* ===== CONTACT ===== */
section#contact {padding: 100px 20px; background: #f5f5f5; text-align: center;}
section#contact h2 {max-width: 50ch;text-wrap: balance;margin: auto;}
section#contact h6 {font-size: 25px;font-weight: 200;color: var(--gray-dark-b);}
section#contact .heading-wrapper {display: flex;flex-direction: column;row-gap: 10px;}
section#contact .blocks-wrapper {display: flex;flex-direction: row;margin-top: 30px;}

section#contact .blocks-wrapper .first-block {width: 50%;padding: 30px;}
section#contact .blocks-wrapper .first-block form {display: flex;flex-direction: column;text-align: left;}
section#contact .blocks-wrapper .first-block form fieldset {border: none;padding: 0;margin: 0;}
section#contact .blocks-wrapper .first-block form label {display: block;font-size: 16px;color: var(--gray-dark-b);margin-bottom: 8px;}
section#contact .blocks-wrapper .first-block form input,
section#contact .blocks-wrapper .first-block form textarea {width: 100%;border: none;border-bottom: 1px solid #333;background: transparent;font-family: 'Mulish', sans-serif;font-size: 16px;color: #333;padding: 5px 0;transition: border-color 0.3s ease;resize: none!important;}
section#contact .blocks-wrapper .first-block form input:focus,
section#contact .blocks-wrapper .first-block form textarea:focus {outline: none;border-bottom: 1px solid var(--black);}
section#contact .blocks-wrapper .first-block form textarea {resize: vertical;min-height: 160px;}
section#contact .blocks-wrapper .first-block form textarea:last-of-type {padding: 10px;}
section#contact .blocks-wrapper .first-block form .actions {text-align: center;}
section#contact .blocks-wrapper .first-block form .hs-button {background: var(--black);border: 1px solid var(--black)!important;color: var(--white);border: none;padding: 10px 40px;border-radius: 6px;font-size: 16px;cursor: pointer;align-self: center;width: fit-content;transition: all 0.3s ease;margin-top: 10px;}
section#contact .blocks-wrapper .first-block form .hs-button:hover {background: var(--white);color: var(--black);border: 1px solid var(--black);}
section#contact .blocks-wrapper .first-block .hs-form-field {margin-bottom: 25px;}
section#contact .blocks-wrapper .first-block .hs-form-field label span {display: none;}
section#contact .blocks-wrapper .first-block .hs_error_rollup {display: none;}

section#contact .blocks-wrapper .second-block {width: 50%; padding: 30px; display: flex; align-items: center;}
section#contact .blocks-wrapper .second-block .img-wrapper {width: 100%;aspect-ratio: 4/3;}
section#contact .blocks-wrapper .second-block .img-wrapper img {width: 100%;height: 100%;object-fit: cover;}

@media (max-width: 768px) {
    section#contact {padding: 60px 0;}
    section#contact .heading-wrapper h2 {font-size: 2rem;}
    section#contact .heading-wrapper h6 {font-size: 1.5rem;}

    section#contact .blocks-wrapper {flex-direction: column-reverse;overflow: hidden;}
    section#contact .blocks-wrapper .first-block,
    section#contact .blocks-wrapper .second-block {width: 100%;padding: 20px;}
    
    section#contact .blocks-wrapper .first-block {height: auto;}

    section#contact .blocks-wrapper .first-block form {
        max-width: 100%;
        box-sizing: border-box;
    }
}

/* ===== LEGAL ===== */
section#legal {padding: 40px 0 30px 0; background: var(--gray); text-align: center;}
section#legal p {max-width: 110ch;margin: auto;line-height: 1.3;color: var(--gray-dark);font-size: 14px;text-wrap: balance;}

@media (max-width: 768px) {
    section#legal {padding: 60px 20px }
}

/* ===== FOOTER ===== */
section#footer {padding: 40px 20px; background: #fff;text-align: center;}
section#footer h4 {text-transform: uppercase;color: var(--gray-dark-b);margin-bottom: 20px;font-weight: 300;}
/* section#footer .img-wrapper {} */
section#footer .img-wrapper img {width: 280px;max-width: 100%;}


