/*====================================
            HERO
====================================*/

.hero{
    position: relative;
    height: 100vh;

    display: flex;
    justify-content: center;
    align-items: center;

    background: url("../img/hero1.jpg") center center/cover no-repeat;
}

/*====================================
            OVERLAY
====================================*/

.overlay{

    position:absolute;
    inset:0;

    background:
    linear-gradient(
        rgba(0,0,0,.45),
        rgba(0,0,0,.35)
    );

}

/*====================================
        HERO CONTENT
====================================*/

.hero-content{
    position: relative;
    z-index: 2;

    text-align: center;
    color: #fff;

    margin-top: 120px; /* Solo baja el contenido */
}

/*====================================
        SUBTITULO
====================================*/

.subtitle{

    display:block;

    margin-bottom:25px;

    font-family:'Playfair Display',serif;

    font-size:28px;
    font-weight:400;

    letter-spacing:1px;

    opacity:.95;

}

/*====================================
            TITULO
====================================*/

.hero h1{

    color:#fff;

    font-family:'Playfair Display',serif;

    font-size:4.3rem;

    line-height:1.15;

    font-weight:500;

    max-width:900px;

    margin:0 auto 50px;

}

/*====================================
            BOTON
====================================*/

.hero-btn{

    display:inline-flex;

    align-items:center;
    justify-content:center;

    width:180px;
    height:65px;

    border:1px solid rgba(255,255,255,.7);

    border-radius:60px;

    color:#fff;

    font-family:'Inter',sans-serif;

    font-size:14px;
    font-weight:600;

    letter-spacing:3px;
    text-transform:uppercase;

    transition:.4s;

}

.hero-btn:hover{

    background:#fff;
    color:#111;

    transform:translateY(-4px);

}

/*====================================
        EFECTO DE FONDO
====================================*/

.hero::after{

    content:"";

    position:absolute;

    bottom:-120px;
    left:-120px;

    width:500px;
    height:500px;

    background:rgba(166,138,100,.35);

    filter:blur(140px);

    border-radius:50%;

}

/*====================================
        SCROLL INDICATOR
====================================*/

.scroll-indicator{

    position:absolute;

    bottom:45px;
    left:50%;

    transform:translateX(-50%);

    width:90px;
    height:90px;

    border:1px solid rgba(255,255,255,.5);

    border-radius:50px;

    display:flex;
    justify-content:center;
    align-items:center;

    color:#fff;

    font-size:26px;

    z-index:2;

    animation:float 2.5s infinite;

}

/*====================================
        ANIMACIONES
====================================*/

@keyframes float{

    0%{

        transform:translateX(-50%) translateY(0);

    }

    50%{

        transform:translateX(-50%) translateY(12px);

    }

    100%{

        transform:translateX(-50%) translateY(0);

    }

}

/*====================================
        BIENVENIDA
====================================*/

.bienvenida{

    background:#F8F4EE;

    padding:140px 0;

}

.bienvenida .container{

    max-width:1200px;

    margin:auto;

    display:grid;

    grid-template-columns:1fr 1fr;

    align-items:center;

    gap:80px;

}

.bienvenida-info span{

    display:inline-block;

    color:#B58B45;

    font-size:13px;

    font-weight:600;

    letter-spacing:4px;

    text-transform:uppercase;

    margin-bottom:20px;

}

.bienvenida-info h2{

    font-family:'Playfair Display',serif;

    font-size:58px;

    color:#1f1f1f;

    line-height:1.15;

    margin-bottom:30px;

}

.bienvenida-info p{

    color:#666;

    font-size:17px;

    line-height:1.9;

    margin-bottom:40px;

}

.bienvenida-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    width:180px;

    height:58px;

    background:#B58B45;

    color:#fff;

    text-decoration:none;

    letter-spacing:2px;

    font-size:13px;

    font-weight:600;

    border-radius:6px;

    transition:.35s;

}

.bienvenida-btn:hover{

    background:#967137;

}

.bienvenida-img{

    position:relative;

}

.bienvenida-img img{

    width:100%;

    height:600px;

    object-fit:cover;

    border-radius:220px 25px 220px 25px;

    box-shadow:0 20px 50px rgba(0,0,0,.15);

}

/*====================================
        HABITACIONES
=====================================*/

.habitaciones{

    padding:140px 8%;
    background:#f8f6f2;
    overflow:hidden;

}

/*====================================
        HEADER
=====================================*/

.habitaciones-header{

    display:flex;
    justify-content:space-between;
    align-items:end;
    margin-bottom:70px;

}

.habitaciones .titulo{

    margin:0;
    text-align:left;

}

.habitaciones .titulo span{

    display:inline-block;
    color:#b88b4a;
    font-size:13px;
    letter-spacing:4px;
    text-transform:uppercase;
    font-weight:600;
    margin-bottom:18px;

}

.habitaciones .titulo h2{

    font-family:"Playfair Display",serif;
    font-size:58px;
    color:#222;
    font-weight:500;
    line-height:1.2;

}

.ver-todas{

    display:flex;
    align-items:center;
    gap:12px;

    color:#222;

    font-size:15px;
    font-weight:600;
    letter-spacing:1px;

    transition:.35s;

}

.ver-todas:hover{

    color:#b88b4a;

}

.ver-todas i{

    transition:.35s;

}

.ver-todas:hover i{

    transform:translateX(6px);

}

/*====================================
        SWIPER
=====================================*/

.habitaciones-slider{

    overflow:visible;
    padding-bottom:70px;

}

.swiper-slide{

    height:auto;

}

/*====================================
        TARJETA
=====================================*/

.room-card{

    background:#fff;

    border-radius:28px;

    overflow:hidden;

    box-shadow:0 18px 45px rgba(0,0,0,.08);

    transition:.45s;

    height:100%;

    display:flex;
    flex-direction:column;

}

.room-card:hover{

    transform:translateY(-12px);

    box-shadow:0 35px 70px rgba(0,0,0,.15);

}

/*====================================
        IMAGEN
=====================================*/

.room-image{

    position:relative;

    overflow:hidden;

    height:320px;

}

.room-image img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.8s;

}

.room-card:hover img{

    transform:scale(1.08);

}

/*====================================
        GRADIENTE
=====================================*/

.room-image::after{

    content:"";

    position:absolute;
    inset:0;

    background:linear-gradient(

        transparent 45%,

        rgba(0,0,0,.55)

    );

}

/*====================================
        MÁS RESERVADA
=====================================*/

.badge{

    position:absolute;

    top:22px;
    left:22px;

    z-index:5;

    background:#b88b4a;

    color:#fff;

    padding:10px 18px;

    border-radius:50px;

    font-size:12px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    box-shadow:0 12px 25px rgba(184,139,74,.35);

}

/*====================================
        INFORMACIÓN
=====================================*/

.room-info{

    padding:32px;

    display:flex;
    flex-direction:column;
    flex:1;

}

/*====================================
        TÍTULO
=====================================*/

.room-info h3{

    font-family:"Playfair Display",serif;

    font-size:30px;

    color:#222;

    font-weight:500;

    margin-bottom:22px;

    transition:.35s;

}

.room-card:hover h3{

    color:#b88b4a;

}

/*====================================
        ICONOS
=====================================*/

.room-meta{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin-bottom:24px;

}

.room-meta span{

    display:flex;

    align-items:center;

    gap:8px;

    padding:10px 15px;

    background:#f7f3ed;

    border-radius:50px;

    color:#555;

    font-size:14px;

    font-weight:500;

    transition:.35s;

}

.room-meta span:hover{

    background:#b88b4a;

    color:#fff;

}

.room-meta i{

    color:#b88b4a;

    font-size:15px;

    transition:.35s;

}

.room-meta span:hover i{

    color:#fff;

}

/*====================================
        DESCRIPCIÓN
=====================================*/

.room-info p{

    color:#666;

    line-height:1.9;

    font-size:15px;

    margin-bottom:35px;

    flex:1;

}

/*====================================
        FOOTER
=====================================*/

.room-footer{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-top:auto;

}

/*====================================
        PRECIO
=====================================*/

.precio{

    display:flex;

    flex-direction:column;

}

.precio strong{

    font-size:34px;

    color:#b88b4a;

    font-family:"Playfair Display",serif;

    line-height:1;

}

.precio span{

    color:#888;

    font-size:13px;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-top:6px;

}

/*====================================
        BOTÓN
=====================================*/

.room-footer a{

    display:flex;

    align-items:center;

    justify-content:center;

    width:150px;

    height:52px;

    border-radius:50px;

    background:#222;

    color:#fff;

    font-size:14px;

    font-weight:600;

    letter-spacing:1px;

    transition:.4s;

}

.room-footer a:hover{

    background:#b88b4a;

    transform:translateY(-4px);

}

/*====================================
        EFECTO HOVER
=====================================*/

.room-card::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:28px;

    border:1px solid transparent;

    pointer-events:none;

    transition:.45s;

}

.room-card{

    position:relative;

}

.room-card:hover::before{

    border-color:rgba(184,139,74,.45);

}

/*====================================
        BRILLO
=====================================*/

.room-card::after{

    content:"";

    position:absolute;

    top:-100%;

    left:-50%;

    width:60%;

    height:300%;

    background:linear-gradient(

        transparent,

        rgba(255,255,255,.28),

        transparent

    );

    transform:rotate(25deg);

    transition:.8s;

}

.room-card:hover::after{

    left:150%;

}

/*====================================
        SOMBRA
=====================================*/

.room-card:hover{

    box-shadow:

    0 35px 80px rgba(0,0,0,.18),

    0 0 35px rgba(184,139,74,.18);

}

/*====================================
        FLECHAS SWIPER
=====================================*/

.swiper-button-next,
.swiper-button-prev{

    width:65px;
    height:65px;

    border-radius:50%;

    background:#ffffff;

    color:#222;

    box-shadow:0 15px 40px rgba(0,0,0,.12);

    transition:.35s;

}

.swiper-button-next:hover,
.swiper-button-prev:hover{

    background:#b88b4a;

    color:#fff;

    transform:translateY(-5px);

}

.swiper-button-next::after,
.swiper-button-prev::after{

    font-size:20px;
    font-weight:700;

}

/*====================================
        PAGINACIÓN
=====================================*/

.swiper-pagination{

    position:relative;
    margin-top:45px;

}

.swiper-pagination-bullet{

    width:12px;
    height:12px;

    background:#cfcfcf;

    opacity:1;

    transition:.35s;

}

.swiper-pagination-bullet-active{

    width:38px;

    border-radius:20px;

    background:#b88b4a;

}

/*====================================
        ANIMACIONES
=====================================*/

.room-card{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;
        transform:translateY(40px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

/*====================================
        EFECTO EN IMAGEN
=====================================*/

.room-image img{

    filter:brightness(.92);

}

.room-card:hover .room-image img{

    filter:brightness(1);

}

/*====================================
        RESPONSIVE
=====================================*/

@media(max-width:1200px){

    .habitaciones{

        padding:100px 6%;

    }

    .habitaciones .titulo h2{

        font-size:46px;

    }

}

@media(max-width:992px){

    .habitaciones-header{

        flex-direction:column;

        align-items:flex-start;

        gap:25px;

    }

    .swiper-button-next,
    .swiper-button-prev{

        display:none;

    }

}

@media(max-width:768px){

    .habitaciones{

        padding:80px 20px;

    }

    .habitaciones .titulo{

        text-align:center;
        width:100%;

    }

    .habitaciones .titulo h2{

        font-size:38px;

    }

    .ver-todas{

        margin:auto;

    }

    .room-image{

        height:260px;

    }

    .room-info{

        padding:24px;

    }

    .room-info h3{

        font-size:24px;

    }

    .room-meta{

        gap:10px;

    }

    .room-meta span{

        font-size:13px;

        padding:8px 12px;

    }

    .precio strong{

        font-size:28px;

    }

    .room-footer{

        flex-direction:column;

        align-items:flex-start;

        gap:20px;

    }

    .room-footer a{

        width:100%;

    }

}

@media(max-width:480px){

    .habitaciones{

        padding:70px 15px;

    }

    .habitaciones .titulo h2{

        font-size:32px;

    }

    .room-image{

        height:220px;

    }

    .badge{

        font-size:11px;

        padding:8px 14px;

    }

}

/*====================================
        SERVICIOS
=====================================*/

.servicios{

    position:relative;
    padding:120px 8%;
    background:url("../img/servicios.jpg") center/cover no-repeat;
    overflow:hidden;

}

.servicios::before{

    content:"";
    position:absolute;
    inset:0;
    background:rgba(10,10,10,.78);
    backdrop-filter:blur(6px);

}

.servicios .titulo{

    position:relative;
    z-index:2;
    text-align:center;
    margin-bottom:70px;

}

.servicios .titulo span{

    color:#c79b53;
    font-size:14px;
    letter-spacing:6px;
    text-transform:uppercase;
    font-weight:600;

}

.servicios .titulo h2{

    margin-top:18px;
    color:#fff;
    font-size:60px;
    font-family:"Playfair Display",serif;
    font-weight:500;

}

.servicios-grid{

    display:grid;

    grid-template-columns:repeat(6,minmax(0,1fr));

    gap:18px;

    width:100%;

    max-width:1400px;

    margin:70px auto 0;

}

.servicios-grid article{

    min-height:300px;

    padding:35px 18px;

    background:rgba(255,255,255,.06);

    border:1px solid rgba(199,155,83,.45);

    border-radius:28px;

    backdrop-filter:blur(15px);

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;

    text-align:center;

    transition:.4s;

}

.servicios-grid article:hover{

    transform:translateY(-12px);

    background:rgba(199,155,83,.12);

    border-color:#c79b53;

    box-shadow:0 25px 60px rgba(199,155,83,.25);

}

.servicios-grid article i{

    font-size:52px;
    color:#d8ad63;

    margin-bottom:30px;

}

.servicios-grid article:hover i{

    transform:scale(1.15);
    color:#fff;

}

.servicios-grid article h3{

    color:#fff;

    font-family:"Playfair Display",serif;

    font-size:18px;

    line-height:1.5;

    margin-bottom:18px;

}

.servicios-grid article::after{

    content:"";
    width:45px;
    height:2px;
    background:#c79b53;
    margin:0 auto 25px;

}

.servicios-grid article p{

    color:#d6d6d6;

    font-size:14px;

    line-height:1.8;

}

/*====================================
        RESPONSIVE SERVICIOS
=====================================*/

@media(max-width:1200px){

    .servicios-grid{

        grid-template-columns:repeat(3,1fr);

    }

}

@media(max-width:768px){

    .servicios-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:480px){

    .servicios-grid{

        grid-template-columns:1fr;

    }

}

/*====================================
            OPINIONES
=====================================*/

.opiniones{

    padding:130px 8%;
    background:#F8F4EE;
    overflow:hidden;

}

/*====================================
        HEADER OPINIONES
=====================================*/

.opiniones-header{

    display:flex;
    justify-content:space-between;
    align-items:flex-end;

    margin-bottom:70px;

}

.opiniones .titulo{

    margin:0;

}

.opiniones .titulo span{

    display:flex;
    align-items:center;
    gap:18px;

    color:#B58B45;

    font-size:13px;
    font-weight:700;

    letter-spacing:4px;

    text-transform:uppercase;

    margin-bottom:18px;

}

.opiniones .titulo span::after{

    content:"";

    width:90px;
    height:2px;

    background:#D4AF37;

}

.opiniones .titulo h2{

    font-family:"Playfair Display",serif;

    font-size:56px;

    font-weight:500;

    color:#1F1F1F;

    line-height:1.1;

    position:relative;

    display:inline-block;

}

.opiniones .titulo h2::after{

    content:"";

    position:absolute;

    top:50%;
    right:-90px;

    width:70px;
    height:2px;

    background:#D4AF37;

}

.ver-opiniones{

    display:flex;
    align-items:center;
    gap:12px;

    color:#B58B45;

    text-decoration:none;

    font-size:14px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

    transition:.35s;

}

.ver-opiniones:hover{

    color:#222;

    gap:18px;

}

.ver-opiniones i{

    transition:.35s;

}

.ver-opiniones:hover i{

    transform:translateX(6px);

}

/*====================================
        SWIPER
=====================================*/

.opiniones-slider{

    position:relative;
    padding:15px 5px 80px;

}

/*====================================
        TARJETA
=====================================*/

.opinion-card{

    background:#fff;

    border-radius:28px;

    padding:40px;

    box-shadow:0 18px 45px rgba(0,0,0,.08);

    transition:.45s;

    height:100%;

}

.opinion-card:hover{

    transform:translateY(-12px);

    box-shadow:0 35px 70px rgba(0,0,0,.15);

}

/*====================================
        COMILLAS
=====================================*/

.quote{

    width:70px;
    height:70px;

    border-radius:50%;

    background:#F8F4EE;

    display:flex;
    justify-content:center;
    align-items:center;

    margin-bottom:30px;

}

.quote i{

    font-size:28px;
    color:#B58B45;

}

/*====================================
        ESTRELLAS
=====================================*/

.estrellas{

    display:flex;
    gap:5px;

    margin-bottom:25px;

}

.estrellas i{

    color:#D6A84D;

    font-size:17px;

}

/*====================================
        TEXTO
=====================================*/

.opinion-card p{

    color:#666;

    font-size:16px;

    line-height:1.9;

    margin-bottom:40px;

    min-height:130px;

}

/*====================================
        CLIENTE
=====================================*/

.cliente{

    display:flex;

    align-items:center;

    gap:18px;

}

.cliente img{

    width:65px;
    height:65px;

    border-radius:50%;

    object-fit:cover;

}

.cliente h4{

    color:#222;

    font-size:20px;

    margin-bottom:6px;

    font-family:"Playfair Display",serif;

}

.cliente span{

    color:#888;

    font-size:14px;

}

/*====================================
        FLECHAS
=====================================*/

.swiper-button-next,
.swiper-button-prev{

    width:55px;
    height:55px;

    background:#fff;

    border-radius:50%;

    color:#222;

    box-shadow:0 12px 30px rgba(0,0,0,.10);

    transition:.35s;

}

.swiper-button-next:hover,
.swiper-button-prev:hover{

    background:#B58B45;

    color:#fff;

}

.swiper-button-next::after,
.swiper-button-prev::after{

    font-size:18px;
    font-weight:bold;

}

/*====================================
        PAGINACIÓN
=====================================*/

.swiper-pagination{

    bottom:0 !important;

}

.swiper-pagination-bullet{

    width:12px;
    height:12px;

    background:#ccc;

    opacity:1;

    transition:.35s;

}

.swiper-pagination-bullet-active{

    width:36px;

    border-radius:30px;

    background:#B58B45;

}

/*====================================
        RESPONSIVE
=====================================*/

@media(max-width:992px){

    .opiniones{

        padding:100px 6%;

    }

    .opiniones-header{

        flex-direction:column;

        align-items:flex-start;

        gap:30px;

        margin-bottom:50px;

    }

    .opiniones .titulo h2{

        font-size:48px;

    }

    .opiniones .titulo h2::after{

        display:none;

    }

    .swiper-button-next,
    .swiper-button-prev{

        display:none;

    }

}

@media(max-width:768px){

    .opiniones{

        padding:80px 5%;

    }

    .opiniones-header{

        gap:20px;

        margin-bottom:40px;

    }

    .opiniones .titulo span{

        font-size:12px;

        letter-spacing:3px;

    }

    .opiniones .titulo span::after{

        width:45px;

    }

    .opiniones .titulo h2{

        font-size:36px;

        line-height:1.2;

    }

    .ver-opiniones{

        font-size:13px;

        letter-spacing:1px;

    }

    .opinion-card{

        padding:30px 25px;

    }

    .quote{

        width:60px;

        height:60px;

    }

    .quote i{

        font-size:24px;

    }

    .opinion-card p{

        min-height:auto;

        font-size:15px;

        margin-bottom:30px;

    }

    .cliente img{

        width:55px;

        height:55px;

    }

    .cliente h4{

        font-size:18px;

    }

}

@media(max-width:480px){

    .opiniones{

        padding:70px 20px;

    }

    .opiniones .titulo h2{

        font-size:30px;

    }

    .opiniones .titulo span{

        letter-spacing:2px;

    }

    .opiniones .titulo span::after{

        display:none;

    }

    .ver-opiniones{

        font-size:12px;

    }

    .opinion-card{

        padding:25px 20px;

    }

}

/*====================================
        CONTACTO
====================================*/

.contacto-home{

    padding:130px 0;

    background:#ffffff;

}

.contacto-home .container{

    max-width:1200px;

    margin:auto;

}

.contacto-subtitulo{

    display:block;

    text-align:center;

    color:#B58B45;

    font-size:13px;

    font-weight:600;

    letter-spacing:4px;

    text-transform:uppercase;

    margin-bottom:18px;

}

.contacto-home h2{

    text-align:center;

    font-family:'Playfair Display',serif;

    font-size:56px;

    color:#222;

    margin-bottom:70px;

    font-weight:500;

}

.contacto-grid{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:45px;

    align-items:center;

}

/*====================================
            MAPA
====================================*/

.mapa{

    border-radius:22px;

    overflow:hidden;

    box-shadow:0 20px 45px rgba(0,0,0,.10);

}

.mapa iframe{

    width:100%;

    height:500px;

    border:0;

}

/*====================================
        INFORMACIÓN
====================================*/

.info-contacto{

    background:#F8F4EE;

    padding:45px;

    border-radius:22px;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

}

.info-contacto h3{

    font-family:'Playfair Display',serif;

    font-size:34px;

    margin-bottom:35px;

    color:#222;

}

.info-item{

    margin-bottom:30px;

}

.info-item:last-child{

    margin-bottom:0;

}

.info-item h4{

    color:#B58B45;

    font-size:15px;

    letter-spacing:2px;

    text-transform:uppercase;

    margin-bottom:10px;

    font-family:'Inter',sans-serif;

}

.info-item p{

    color:#666;

    line-height:1.8;

    font-size:16px;

}

/*====================================
        TABLET
====================================*/

@media (max-width:992px){

    /* HERO */

    .hero{

        height:85vh;

    }

    .hero-content{

        max-width:700px;

        padding:0 30px;

    }

    .hero h1{

        font-size:3.6rem;

        line-height:1.15;

    }

    .hero-btn{

        width:180px;

        height:55px;

    }



    /* NOSOTROS */

    .about-container{

        grid-template-columns:1fr;

        gap:60px;

    }

    /* MAPA */

    .contact-container{

        grid-template-columns:1fr;

    }

}

/*====================================
        CELULAR
====================================*/

@media (max-width:768px){

    /* HEADER */

    .top-bar{

        padding:20px;

    }

    .logo{

        font-size:2rem;

    }

    .year{

        display:none;

    }

    .stars{

        display:none;

    }

    .navbar{

        display:none;

    }



    /* HERO */

    .hero{

        height:75vh;

    }

    .hero-content{

        padding:0 25px;

    }

    .hero h1{

        font-size:2.6rem;

        line-height:1.2;

    }

    .hero-btn{

        width:170px;

        height:52px;

    }



    /* TÍTULOS */

    section h2{

        font-size:2.2rem;

    }



    /* NOSOTROS */

    .about{

        padding:80px 20px;

    }

    /* MAPA */

    .contact{

        padding:80px 20px;

    }

}
