/*====================================
        GENERAL
====================================*/

body{
    background:#F7F4EE;
    font-family:"Inter",sans-serif;
    color:#333;
    line-height:1.7;
}

.container{
    width:min(1200px,90%);
    margin:auto;
}

section{
    padding:100px 0;
}

img{
    width:100%;
    display:block;
}

a{
    text-decoration:none;
}

ul{
    list-style:none;
}

/*====================================
      TITULOS DE SECCION
====================================*/

.titulo-seccion{
    text-align:center;
    margin-bottom:60px;
}

.titulo-seccion span{

    display:inline-block;

    color:#11A79C;

    font-size:.95rem;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:10px;

}

.titulo-seccion h2{

    font-family:"Playfair Display",serif;

    font-size:2.8rem;

    color:#1E2D2F;

}

/*====================================
        BOTON PRINCIPAL
====================================*/

.btn-principal{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:15px 38px;

    border-radius:50px;

    background:#11A79C;

    color:#fff;

    font-weight:600;

    transition:.35s;

    box-shadow:0 10px 25px rgba(17,167,156,.25);

}

.btn-principal:hover{

    background:#0E8B83;

    transform:translateY(-4px);

}

/*====================================
            HERO
====================================*/

.hero{

    min-height:90vh;

    display:flex;

    align-items:center;

    justify-content:center;

    text-align:center;

    position:relative;

    overflow:hidden;

    background:
    linear-gradient(
        rgba(0,0,0,.45),
        rgba(0,0,0,.45)
    ),
    url("../../img/venecia.jpg");

    background-size:cover;

    background-position:center;

    background-repeat:no-repeat;

}

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(
        to bottom,
        rgba(17,167,156,.20),
        rgba(0,0,0,.45)
    );

}

.hero-content{

    position:relative;

    z-index:2;

    color:#fff;

}

.hero-content p{

    max-width:700px;

    margin:0 auto 40px;

    font-size:1.2rem;

    line-height:1.8;

    color:#F5F5F5;

}

.hero-content span{

    display:inline-block;

    margin-bottom:15px;

    padding:8px 18px;

    border-radius:30px;

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(10px);

    font-size:.95rem;

}

.hero-content h1{

    font-family:"Playfair Display",serif;

    font-size:5rem;

    margin-bottom:20px;

}

.hero-content p{

    font-size:1.15rem;

    margin-bottom:40px;

    color:#F3F3F3;

}

/*====================================
        DESCRIPCIÓN
====================================*/

.descripcion{

    text-align:center;

}

.descripcion p{

    max-width:900px;

    margin:0 auto;

    font-size:1.08rem;

    color:#666;

    line-height:1.9;

}


/*====================================
          UBICACIÓN
====================================*/

.ubicacion{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;

}

.info{

    background:#fff;

    padding:45px;

    border-radius:25px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.info span{

    display:inline-block;

    margin-bottom:10px;

    color:#11A79C;

    font-weight:600;

    text-transform:uppercase;

    letter-spacing:2px;

    font-size:.9rem;

}

.info h2{

    font-family:"Playfair Display",serif;

    font-size:2.3rem;

    color:#1E2D2F;

    margin-bottom:20px;

}

.info p{

    color:#666;

    line-height:1.8;

    margin-bottom:30px;

}

.info ul{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.info ul li{

    display:flex;

    align-items:center;

    gap:15px;

    color:#555;

    font-size:1rem;

}

.info ul li i{

    width:45px;

    height:45px;

    display:flex;

    align-items:center;

    justify-content:center;

    border-radius:50%;

    background:#E7F8F6;

    color:#11A79C;

    font-size:1.25rem;

}


/*====================================
             MAPA
====================================*/

.mapa{

    height:100%;

}

.mapa iframe{

    width:100%;

    height:450px;

    border:none;

    border-radius:25px;

    box-shadow:0 15px 40px rgba(0,0,0,.08);

}


/*====================================
      EFECTO HOVER
====================================*/

.info,
.mapa iframe{

    transition:.35s;

}

.info:hover{

    transform:translateY(-8px);

    box-shadow:0 20px 45px rgba(0,0,0,.12);

}

.mapa iframe:hover{

    transform:scale(1.02);

}


/*====================================
          RESPONSIVE
====================================*/

@media(max-width:991px){

    .ubicacion{

        grid-template-columns:1fr;

        gap:40px;

    }

    .info{

        padding:35px;

    }

    .mapa iframe{

        height:380px;

    }

}

@media(max-width:768px){

    .descripcion p{

        font-size:1rem;

    }

    .info{

        padding:28px;

    }

    .info h2{

        font-size:2rem;

    }

    .mapa iframe{

        height:320px;

    }

}

/*====================================
            PAQUETES
====================================*/

.paquetes .cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));

    gap:35px;

}

.paquetes .card{

    background:#fff;

    border-radius:25px;

    padding:40px 30px;

    text-align:center;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    transition:.35s;

    position:relative;

    overflow:hidden;

}

.paquetes .card::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:6px;

    background:#11A79C;

}

.paquetes .card:hover{

    transform:translateY(-12px);

    box-shadow:0 22px 45px rgba(0,0,0,.15);

}

.paquetes .card h3{

    font-family:"Playfair Display",serif;

    font-size:1.8rem;

    color:#1E2D2F;

    margin-bottom:15px;

}

.paquetes .card span{

    display:block;

    color:#777;

    margin-bottom:20px;

    font-size:.95rem;

}

.paquetes .card h4{

    font-size:2rem;

    color:#11A79C;

    margin-bottom:30px;

    font-weight:700;

}

.paquetes .card a{

    display:inline-block;

    padding:14px 35px;

    border-radius:40px;

    background:#11A79C;

    color:#fff;

    font-weight:600;

    transition:.3s;

}

.paquetes .card a:hover{

    background:#0E8B83;

    transform:translateY(-3px);

}


/*====================================
      ETIQUETA DESTACADA
====================================*/

.paquetes .card.destacado{

    border:2px solid #11A79C;

    transform:scale(1.03);

}

.paquetes .card.destacado::after{

    content:"Más vendido";

    position:absolute;

    top:18px;

    right:-35px;

    width:150px;

    text-align:center;

    padding:8px 0;

    background:#11A79C;

    color:#fff;

    font-size:.8rem;

    font-weight:600;

    transform:rotate(45deg);

}


/*====================================
            RESPONSIVE
====================================*/

@media(max-width:991px){

    .paquetes .cards{

        grid-template-columns:repeat(2,1fr);

    }

}

@media(max-width:768px){

    .galeria-grid{

        grid-template-columns:1fr 1fr;

    }

    .galeria-grid img{

        height:180px;

    }

    .paquetes .cards{

        grid-template-columns:1fr;

    }

    .paquetes .card{

        padding:35px 25px;

    }

    .paquetes .card h3{

        font-size:1.6rem;

    }

}

@media(max-width:480px){

    .galeria-grid{

        grid-template-columns:1fr;

    }

    .galeria-grid img{

        height:220px;

    }

}


/*====================================
            ANIMACIONES
====================================*/

.hero-content,
.descripcion,
.ubicacion,
.lugares,
.epoca,
.incluye,
.galeria,
.paquetes,
.cta{

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(50px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}


/*====================================
        TRANSICIONES
====================================*/

.card,
.info,
.incluye-grid div,
.galeria-grid img,
.btn-principal{

    transition:.35s ease;

}


/*====================================
            SCROLL
====================================*/

html{

    scroll-behavior:smooth;

}


/*====================================
        SEPARACIÓN
====================================*/

.descripcion,
.ubicacion,
.lugares,
.epoca,
.incluye,
.galeria,
.paquetes{

    margin-bottom:40px;

}


/*====================================
        RESPONSIVE TABLET
====================================*/

@media(max-width:991px){

    section{

        padding:80px 0;

    }

    .hero{

        min-height:80vh;

    }

    .hero-content h1{

        font-size:4rem;

    }

    .titulo-seccion h2{

        font-size:2.3rem;

    }

}


/*====================================
        RESPONSIVE MÓVIL
====================================*/

@media(max-width:768px){

    section{

        padding:70px 0;

    }

    .hero{

        min-height:70vh;

        padding:0 20px;

    }

    .hero-content h1{

        font-size:3rem;

    }

    .hero-content p{

        font-size:1rem;

    }

    .titulo-seccion h2{

        font-size:2rem;

    }

    .cta{

        padding:70px 25px;

        border-radius:25px;

    }

    .cta h2{

        font-size:2.2rem;

    }

}


/*====================================
        RESPONSIVE PEQUEÑO
====================================*/

@media(max-width:480px){

    .hero-content h1{

        font-size:2.4rem;

    }

    .hero-content span{

        font-size:.8rem;

    }

    .titulo-seccion h2{

        font-size:1.8rem;

    }

    .btn-principal{

        width:100%;

        justify-content:center;

    }

    .cta{

        margin:70px auto;

    }

}