/********** Template CSS **********/

:root {

    /*--primary: #ff4539;*/

	--primary: #000000;

    --light: #F1F8FF;

    --dark: #0F172B;

}



.fw-medium {

    font-weight: 500 !important;

}



.fw-semi-bold {

    font-weight: 600 !important;

}



.back-to-top {

    position: fixed;

    display: none;

    right: 45px;

    bottom: 45px;

    z-index: 99;

}



.wa-link {

    position: fixed;

    display: none;

    right: 45px;

    bottom: 115px;

    z-index: 99;

}





/*** Spinner ***/

#spinner {

    opacity: 0;

    visibility: hidden;

    transition: opacity .5s ease-out, visibility 0s linear .5s;

    z-index: 99999;

}



#spinner.show {

    transition: opacity .5s ease-out, visibility 0s linear 0s;

    visibility: visible;

    opacity: 1;

}





/*** Button ***/

.btn {

    font-weight: 500;

    text-transform: uppercase;

    transition: .5s;

}



.btn.btn-primary,

.btn.btn-secondary {

    color: #FFFFFF;

}



.btn.btn-primary:hover {

    color: #000000;

    border-color: #ff4539;

    background-color: #ffffff;

}



.btn-square {

    width: 38px;

    height: 38px;

}



.btn-sm-square {

    width: 32px;

    height: 32px;

}



.btn-lg-square {

    width: 48px;

    height: 48px;

}



.btn-square,

.btn-sm-square,

.btn-lg-square {

    padding: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    font-weight: normal;

    border-radius: 2px;

}





/*** Navbar ***/

/*.navbar-dark .navbar-nav .nav-link {

    margin-right: 30px;

    padding: 25px 0;

    color: #FFFFFF;

	color: #000000;

    font-size: 15px;

    text-transform: uppercase;

    outline: none;

}*/



/*.navbar-dark .navbar-nav .nav-link:hover,

.navbar-dark .navbar-nav .nav-link.active {

    color: var(--primary);

}

*/



/* ============================

   LOGO

============================ */

.navbar-brand img {

    width: auto;

    max-width: 100%;

    max-height: 70px;

}



/* ============================

   LINKS PRINCIPALES DEL NAVBAR

============================ */

.navbar-nav .nav-link {

    color: var(--dark); /* texto principal */

    font-weight: 500;

    margin-right: 30px; /* solo desktop */

    padding: 1rem 0.75rem;

    font-size: 15px;

    text-transform: uppercase;

    outline: none;

    transition: color 0.3s ease;

}



.navbar-nav .nav-link:hover,

.navbar-nav .nav-link.active {

    color: var(--primary); /* hover */

}



/* ============================

   DROPDOWN TOGGLE (FLECHA)

============================ */

.navbar .dropdown-toggle::after {

    border: none;

    content: "\f107";

    font-family: "Font Awesome 5 Free";

    font-weight: 900;

    vertical-align: middle;

    margin-left: 5px;

    transition: 0.3s;

}



.navbar .dropdown-toggle[aria-expanded=true]::after {

    transform: rotate(-180deg);

}



/* ============================

   DROPDOWN MENU CENTRADO

============================ */

.navbar-light .navbar-nav .dropdown-menu {

    left: 50% !important;

    transform: translateX(-50%) !important;

    margin-top: 10px;

    border: none;

    border-radius: 0;

    background: white;

    box-shadow: 0 10px 25px rgba(0,0,0,0.1);

    min-width: 230px;

    text-align: center;

    transition: opacity 0.3s ease, transform 0.3s ease;

}



.navbar-light .navbar-nav .dropdown:hover .dropdown-menu,

.navbar-light .navbar-nav .dropdown.show .dropdown-menu {

    display: block;

    opacity: 1;

    transform: translateX(-50%) translateY(0);

}



.dropdown-menu:not(.show) {

    opacity: 0;

    transform: translateX(-50%) translateY(-10px);

}



/* Dropdown items */

.navbar-light .navbar-nav .dropdown-item {

    padding: 10px 20px;

    color: var(--dark);

    font-weight: 500;

    text-transform: none;

}



.navbar-light .navbar-nav .dropdown-item:hover {

    color: var(--primary);

    background-color: transparent;

}



/* ============================

   OVERLAY MENU (HAMBURGUESA)

============================ */

.overlay {

    position: fixed;

    top: 0;

    right: 0;

    height: 100vh;

    width: 400px;

    max-width: 90%;

    background: rgba(255, 255, 255, 0.97);

    z-index: 1050;

    transform: translateX(100%);

    opacity: 0;

    transition: transform 0.3s ease, opacity 0.3s ease;

    display: flex;

    flex-direction: column;

}



.overlay.show {

    transform: translateX(0);

    opacity: 1;

}



.overlay ul.nav li a {

    color: var(--dark);

    font-weight: 500;

    transition: color 0.3s ease;

}



.overlay ul.nav li a:hover {

    color: var(--primary);

}



/* ============================

   RESPONSIVE / MEDIA QUERIES

============================ */

@media (max-width: 1399.98px) {

    .navbar-nav .nav-link {

        margin-right: 0;

        padding: 10px 0;

    }



    .navbar-light .navbar-nav {

        border-top: 1px solid #EEEEEE;

    }



    .navbar-toggler {

        background-color: #ff4539;

    }

}



/* ============================

   OTROS ESTILOS

============================ */

.navbar-light .navbar-brand,

.navbar-light a.btn {

    height: 75px;

}



.navbar-light .navbar-nav .nav-link {

    color: var(--dark);

    font-weight: 500;

}





































/* .navbar-light.sticky-top {

    top: -100px;

    transition: .5s;

} */





/* @media (min-width: 992px) {

    .navbar .nav-item .dropdown-menu {

        display: block;

        margin-top: 0;

        opacity: 0;

        visibility: hidden;

        transition: .5s;

    }



    .navbar .dropdown-menu.fade-down {

        top: 100%;

        transform: rotateX(-75deg);

        transform-origin: 0% 0%;

    }



    .navbar .dropdown-menu.fade-up {

        top: 200%;

    }



    .navbar .nav-item:hover .dropdown-menu {

        top: 100%;

        transform: rotateX(0deg);

        visibility: visible;

        transition: .5s;

        opacity: 1;

    }

} */





/*** Header ***/

.bg-dark {

	background-color: #ffffff;

}



.carousel-item-img {

    animation: slideShow 7s linear infinite 0s;

    -o-animation: slideShow 7s linear infinite 0s;

    -moz-animation: slideShow 7s linear infinite 0s;

    -webkit-animation: slideShow 7s linear infinite 0s;

}



@keyframes slideShow {  

    0% {

        opacity: 0;

        transform:scale(1);

        -ms-transform:scale(1);

        background-color: red;

    }

    5% {

        opacity: 1;

        background-color: red;

    }

    50% {

         opacity: 1;

    }

    90% {

        opacity: 1;

        transform:scale(1.1);

        -ms-transform:scale(1.1);

    }

    100% {

        opacity: 0;

        transform:scale(1);

        -ms-transformm:scale(1);

    }

}



@-o-keyframes slideShow {

    0% {

        opacity: 0;

        -o-transform:scale(1);

    }

    5% {

        opacity: 1

    }

    50% {

        opacity: 1;

    }

    90% {

        opacity: 1;

        -o-transform:scale(1.1);

    }

    100% {

        opacity: 1;

        -o-transformm:scale(1);

    }

}



@-moz-keyframes slideShow {  

    0% {

        opacity: 0;

        -moz-transform:scale(1);

    }

    5% {

        opacity: 1

    }

    50% {

        opacity: 1;

    }

    90% {

        opacity: 1;

        -moz-transform:scale(1.1);

    }

    100% {

        opacity: 1;

        -moz-transformm:scale(1);

    }

}



@-webkit-keyframes slideShow {  

    0% {

        opacity: 0;

        -webkit-transform:scale(1);

    }

    5% {

        opacity: 1

    }

    50% {

        opacity: 1;

    }

    90% {

        opacity: 1;

        -webkit-transform:scale(1.1);

    }

    100% {

        opacity: 1;

        -webkit-transformm:scale(1);

    }

}



.carousel-caption {

    top: 0;

    left: 0;

    right: 0;

    bottom: 0;

    background: rgba(15, 23, 43, .7);

    z-index: 1;

}



.carousel-control-prev,

.carousel-control-next {

    width: 10%;

}



.carousel-control-prev-icon,

.carousel-control-next-icon {

    width: 3rem;

    height: 3rem;

}



@media (max-width: 768px) {

    #header-carousel .carousel-item {

        position: relative;

        min-height: 450px;

    }

    

    #header-carousel .carousel-item img {

        position: absolute;

        width: 100%;

        height: 100%;

        object-fit: cover;

    }

	

	.w-md-100 { width: 100%!important; }

	

	.section-title::after {

        display: none; /* Alternativa: puedes cambiar a `right: 0;` para adaptarlo */

    }

	

}



.page-header {

    background-position: center center;

    background-repeat: no-repeat;

    background-size: cover;

}



.page-header-inner {

    background: rgba(15, 23, 43, .7);

}



.breadcrumb-item + .breadcrumb-item::before {

    color: var(--dark);

}



.booking {

    position: relative;

    margin-top: -100px !important;

    z-index: 1;

}





/*** Section Title ***/

.section-title {

    position: relative;

    display: inline-block;

}



.section-title::before {

    position: absolute;

    content: "";

    width: 45px;

    height: 2px;

    top: 50%;

    left: -55px;

    margin-top: -1px;

    background: var(--primary);

}



.section-title::after {

    position: absolute;

    content: "";

    width: 45px;

    height: 2px;

    top: 50%;

    right: -55px;

    margin-top: -1px;

    background: var(--primary);

}



.section-title.text-start::before,

.section-title.text-end::after {

    display: none;

}

.move-img {

    -webkit-animation: mover 1s infinite  alternate;

    animation: mover 1s infinite  alternate;

}



@-webkit-keyframes mover {

    0% { transform: translateY(0); }

    100% { transform: translateY(-10px); }

}



@keyframes mover {

    0% { 

        transform: translateY(0); 

    }

    100% { 

        transform: translateY(-10px); 

    }

}



/*** Feature ***/

.feature {

    flex:0 0 auto;

    /*width: 20%;*/



}

.feature-title {

    position: absolute;

    content: "";

    width: 100%;

    height: 100%;

    top: 0;

    left: 0;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    background: rgba(15, 23, 43, .3);

    transition: .5s;

}



.feature-item:hover .feature-title {

    top: 100%;

}



.feature-item .feature-text {

    position: absolute;

    content: "";

    top: -100%;

    left: 0;

    width: 100%;

    height: 100%;

    padding: 30px;

    background: rgba(15, 23, 43, .7);

    display: flex;

    align-items: center;

    transition: .5s;

}



.feature-link {

    position: inherit;

    width: 100%;

    height: 100%;

    cursor: pointer;

}



.feature-item:hover .feature-text {

    top: 0;

}



.feature-item .feature-text p {

    opacity: 0;

    transition: .5s;

}



.feature-item:hover .feature-text p {

    opacity: 1;

    transition-delay: .5s;

}





@media (max-width: 768px) {

    .feature {

        flex:0 0 auto;

        width:100%;

    }

}



/*** Service ***/

.service-item {

    height: 320px;

    padding: 30px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    text-align: center;

    background: #FFFFFF;

    box-shadow: 0 0 45px rgba(0, 0, 0, .08);

    transition: .5s;

}



.service-item:hover {

    background: var(--primary);

}



.service-item .service-icon {

    margin: 0 auto 30px auto;

    width: 65px;

    height: 65px;

    transition: .5s;

}



.service-item i,

.service-item h5,

.service-item p {

    transition: .5s;

}



.service-item:hover i,

.service-item:hover h5,

.service-item:hover p {

    color: #FFFFFF !important;

}





/*** Feature Content ***/

.feature-content {

    position: relative;

    height: 100%;

    min-height: 500px;

    background-position: center center;

    background-repeat: no-repeat;

    background-size: cover;

}



.feature-content-img-about {

    background: linear-gradient(rgba(15, 23, 43, .1), rgba(15, 23, 43, .1)), url("../img/promocon-estructuras.jpg");

}



.feature-content-img-homes {

    background: linear-gradient(rgba(15, 23, 43, .1), rgba(15, 23, 43, .1)), url("../img/invertir.jpg");

}



.feature-content .btn-play {

    position: absolute;

    z-index: 3;

    top: 50%;

    left: 50%;

    transform: translateX(-50%) translateY(-50%);

    box-sizing: content-box;

    display: block;

    width: 88px;

    height: 44px;

    border-radius: 50%;

    border: none;

    outline: none;

    padding: 18px 0px 18px px;

}



.feature-content .btn-play:before {

    content: "";

    position: absolute;

    z-index: 0;

    left: 50%;

    top: 50%;

    transform: translateX(-50%) translateY(-50%);

    display: block;

    width: 100px;

    height: 100px;

    background: var(--primary);

    border-radius: 50%;

    animation: pulse-border 1500ms ease-out infinite;

}



.feature-content .btn-play:after {

    content: "";

    position: absolute;

    z-index: 1;

    left: 50%;

    top: 50%;

    transform: translateX(-50%) translateY(-50%);

    display: block;

    width: 100px;

    height: 100px;

    background: var(--primary);

    border-radius: 50%;

    transition: all 200ms;

}



.feature-content .btn-play img {

    position: relative;

    z-index: 3;

    max-width: 100%;

    width: auto;

    height: auto;

}



.feature-content .btn-play span {

    display: block;

    position: relative;

    z-index: 3;

    width: auto;

    height: auto;

    text-align: center;

}





/*** Youtube Video ***/

.video {

    position: relative;

    height: 100%;

    min-height: 500px;

    background: linear-gradient(rgba(15, 23, 43, .1), rgba(15, 23, 43, .1)), url("../img/casas.jpg");

    background-position: center center;

    background-repeat: no-repeat;

    background-size: cover;

}



.video > .video2 {

    background: linear-gradient(rgba(15, 23, 43, .1), rgba(15, 23, 43, .1)), url("../img/inverir.jpg");

}



.video .btn-play {

    position: absolute;

    z-index: 3;

    top: 50%;

    left: 50%;

    transform: translateX(-50%) translateY(-50%);

    box-sizing: content-box;

    display: block;

    width: 32px;

    height: 44px;

    border-radius: 50%;

    border: none;

    outline: none;

    padding: 18px 20px 18px 28px;

}



.video .btn-play:before {

    content: "";

    position: absolute;

    z-index: 0;

    left: 50%;

    top: 50%;

    transform: translateX(-50%) translateY(-50%);

    display: block;

    width: 100px;

    height: 100px;

    background: var(--primary);

    border-radius: 50%;

    animation: pulse-border 1500ms ease-out infinite;

}



.video .btn-play:after {

    content: "";

    position: absolute;

    z-index: 1;

    left: 50%;

    top: 50%;

    transform: translateX(-50%) translateY(-50%);

    display: block;

    width: 100px;

    height: 100px;

    background: var(--primary);

    border-radius: 50%;

    transition: all 200ms;

}



.video .btn-play img {

    position: relative;

    z-index: 3;

    max-width: 100%;

    width: auto;

    height: auto;

}



.video .btn-play span {

    display: block;

    position: relative;

    z-index: 3;

    width: 0;

    height: 0;

    border-left: 32px solid var(--dark);

    border-top: 22px solid transparent;

    border-bottom: 22px solid transparent;

}



@keyframes pulse-border {

    0% {

        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1);

        opacity: 1;

    }



    100% {

        transform: translateX(-50%) translateY(-50%) translateZ(0) scale(1.5);

        opacity: 0;

    }

}



#videoModal {

    z-index: 99999;

}



#videoModal .modal-dialog {

    position: relative;

    max-width: 800px;

    margin: 60px auto 0 auto;

}



#videoModal .modal-body {

    position: relative;

    padding: 0px;

}



#videoModal .close {

    position: absolute;

    width: 30px;

    height: 30px;

    right: 0px;

    top: -30px;

    z-index: 999;

    font-size: 30px;

    font-weight: normal;

    color: #FFFFFF;

    background: #000000;

    opacity: 1;

}



/*** Testimonial ***/

.testimonial {

    background: linear-gradient(rgba(15, 23, 43, .7), rgba(15, 23, 43, .7)), url(../img/carousel-2.jpg);

    background-position: center center;

    background-repeat: no-repeat;

    background-size: cover;

}



.testimonial-carousel,
.testimonial-carousel-mx {

    /*padding-left: 65px;

    padding-right: 65px;*/

	padding-left: 0px;

    padding-right: 0px;

}



.testimonial-carousel .testimonial-item,
.testimonial-carousel-mx .testimonial-item {

    padding: 30px;

}



/* .testimonial-carousel .owl-nav {

    position: absolute;

    width: 100%;

    height: 40px;

    top: calc(50% - 20px);

    left: 0;

    display: flex;

    justify-content: space-between;

    z-index: 1;

}

 */



.testimonial-carousel .owl-nav,
.testimonial-carousel-mx .owl-nav {

	position: relative;

	margin-top: 40px;

	display: flex;

	justify-content: center;

	gap: 20px; /* Espacio entre las flechas */

}



.testimonial-carousel .owl-nav .owl-prev,
.testimonial-carousel .owl-nav .owl-next,
.testimonial-carousel-mx .owl-nav .owl-prev,
.testimonial-carousel-mx .owl-nav .owl-next {

    position: relative;

    width: 40px;

    height: 40px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #FFFFFF;

    background: var(--primary);

    border-radius: 2px;

    font-size: 18px;

    transition: .5s;

}



.testimonial-carousel .owl-nav .owl-prev:hover,
.testimonial-carousel .owl-nav .owl-next:hover,
.testimonial-carousel-mx .owl-nav .owl-prev:hover,
.testimonial-carousel-mx .owl-nav .owl-next:hover {

    color: var(--primary);

    background: #FFFFFF;

}



.testimonial-carousel .owl-nav button,
.testimonial-carousel-mx .owl-nav button {

	font-size: 24px; /* Tamaño del ícono */

	padding: 8px 16px; /* Espaciado interno */

	border: none;

	background: transparent;

	color: #333; /* O el color que prefieras */

}



.testimonial-carousel .owl-nav button:hover,
.testimonial-carousel-mx .owl-nav button:hover {

	color: #007bff; /* Color al pasar el mouse (azul Bootstrap) */

}

.testimonial-carousel-mx .item {
  max-width: 480px;
  margin: 0 auto;
}

.testimonial-carousel-mx .owl-stage {
  display: flex;
  justify-content: center;
  gap: 0px;
}


/*** Team ***/

.team-item,

.team-item .bg-primary,

.team-item .bg-primary i {

    transition: .5s;

}



.team-item:hover {

    border-color: var(--secondary) !important;

}



.team-item:hover .bg-primary {

    background: var(--secondary) !important;

}



.team-item:hover .bg-primary i {

    color: var(--secondary) !important;

}





/*** Gallery ***/

#portfolio-flters .btn {

    position: relative;

    display: inline-block;

    text-transform: capitalize;

    font-weight: 400;

    margin: 3px;

    transition: .5s;

}



#portfolio-flters .btn:hover,

#portfolio-flters .btn.active {

    color: #FFFFFF !important;

}



.portfolio-item img {

    transition: .5s;

}



.portfolio-item:hover img {

    transform: scale(1.1);

}



.portfolio-btn {

    position: absolute;

    width: 100%;

    height: 100%;

    top: 0;

    left: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    background: rgba(15, 23, 43, .7);

    transition: .5s;

    opacity: 0;

}



.portfolio-item:hover .portfolio-btn {

    opacity: 1;

}



.portfolio-btn a {

    margin-top: 50px;

    font-size: 22px;

}



.portfolio-item:hover .portfolio-btn a {

    margin-top: 0;

}





/*** Gallery Start ***/

.gallery .gallery-item {

    position: relative;

    overflow: hidden;

    border-radius: 10px;

}



.gallery .gallery-item img {

    min-height: 300px;

    object-fit: cover;

}



.gallery .gallery-item .gallery-content {

    position: absolute;

    width: 100%;

    height: 100%;

    bottom: 0;

    left: 0;

    padding: 15px;

    background: rgba(0, 0, 0, 0.3);

    border-radius: 10px;

    display: flex;

    flex-direction: column;

    justify-content: end;

    transition: 0.5s;

}



.gallery .gallery-item .gallery-content .gallery-info {

    position: relative;

    margin-bottom: -100%;

    opacity: 0;

    transition: 0.5s;

}



.gallery .gallery-item .gallery-plus-icon {

    position: absolute;

    top: 50%;

    left: 50%;

    transform: translate(-50%, -50%);

    transition: 0.5s;

    opacity: 0;

}



.gallery .gallery-item:hover .gallery-content .gallery-info,

.gallery .gallery-item:hover .gallery-plus-icon {

   opacity: 1;

   margin: 0;

}



.gallery .gallery-item img {

    transition: 0.5s;

}



.gallery .gallery-item:hover img {

    transform: scale(1.2);

}



.gallery .gallery-item:hover .gallery-content {

    background: rgba(19, 53, 123, 0.8);

}



.gallery .tab-class .nav-item {

    padding: 0 0 20px 0;

}

.gallery .tab-class .nav-item a.active {

    background: var(--bs-primary) !important;

}



.gallery .tab-class .nav-item a.active span {

    color: var(--bs-white) !important;

}



/*** Gallery End ***/





/*** Custom Accordion ***/

.accordion-custom .accordion-item {

    margin-bottom: 15px;

    border-color: rgba(0, 0, 0, .02);

}



.accordion-custom .accordion-item:not(:first-of-type) {

    border-top: 1px solid rgba(0, 0, 0, .02);

}



.accordion-custom .accordion-button {

    font-weight: 500 !important;

    background: #FFFFFF;

    transition: .5s;

}



.accordion-custom .accordion-button:not(.collapsed) {

    color: #FFFFFF;

    background: var(--primary);

    box-shadow: none;

}



.accordion-custom .accordion-button:not(.collapsed)::after {

    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");

}



.accordion-custom .accordion-body {

    padding: 20px;

    background: #FFFFFF;

}





/*** Footer ***/

.newsletter {

    position: relative;

    z-index: 1;

}



.footer {

    position: relative;

    margin-top: -110px;

    padding-top: 180px;

}



.footer .btn.btn-social {

    margin-right: 5px;

    width: 35px;

    height: 35px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: var(--light);

    border: 1px solid #FFFFFF;

    border-radius: 35px;

    transition: .3s;

}



.footer .btn.btn-social:hover {

    color: var(--primary);

}



.footer .btn.btn-link {

    display: block;

    margin-bottom: 5px;

    padding: 0;

    text-align: left;

    color: #FFFFFF;

    font-size: 15px;

    font-weight: normal;

    text-transform: capitalize;

    transition: .3s;

}



.footer .btn.btn-link::before {

    position: relative;

    content: "\f105";

    font-family: "Font Awesome 5 Free";

    font-weight: 900;

    margin-right: 10px;

}



.footer .btn.btn-link:hover {

    letter-spacing: 1px;

    box-shadow: none;

}



.footer .copyright {

    padding: 25px 0;

    font-size: 15px;

    border-top: 1px solid rgba(256, 256, 256, .1);

}



.footer .copyright a {

    color: var(--light);

}



.footer .footer-menu a {

    margin-right: 15px;

    padding-right: 15px;

    border-right: 1px solid rgba(255, 255, 255, .3);

}



.footer .footer-menu a:last-child {

    margin-right: 0;

    padding-right: 0;

    border-right: none;

}