/* =====================================================
   CIBERLAND 2026
   ===================================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;
    color:#333;
    background:#f5f7fa;
    line-height:1.7;

}

img{

    max-width:100%;
    display:block;

}

a{

    text-decoration:none;

}

ul{

    list-style:none;

}

/* ================= HEADER ================= */

header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    background:white;

    box-shadow:0 5px 15px rgba(0,0,0,.08);

    z-index:1000;

}

.topbar{

    max-width:1200px;

    margin:auto;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:15px 30px;

}

.logo img{

    height:70px;

}

nav ul{

    display:flex;

    gap:35px;

}

nav a{

    color:#333;

    font-weight:600;

    transition:.3s;

}

nav a:hover{

    color:#d62828;

}

/* ================= HERO ================= */

.hero{

    padding-top:90px;

    height:100vh;

    background-image:url("../img/foto.jpg");

    background-size:cover;

    background-position:center;

}

.hero-overlay{

    width:100%;
    height:100%;

    background:rgba(0,0,0,.55);

    display:flex;

    align-items:center;

}

.hero-content{

    max-width:1200px;

    margin:auto;

    color:white;

    padding:30px;

}

.hero h1{

    font-size:3.5rem;

    line-height:1.2;

    margin-bottom:25px;

}

.hero p{

    max-width:700px;

    font-size:1.2rem;

    margin-bottom:35px;

}

.botones{

    display:flex;

    gap:20px;

}

.boton{

    padding:16px 35px;

    border-radius:40px;

    font-weight:600;

    transition:.3s;

}

.rojo{

    background:#d62828;

    color:white;

}

.rojo:hover{

    background:#b91f1f;

}

.blanco{

    background:white;

    color:#222;

}

.blanco:hover{

    background:#ececec;

}

/* ================= SECCIONES ================= */

section{

    padding:90px 30px;

}

.contenedor{

    max-width:1200px;

    margin:auto;

}

.titulo{

    text-align:center;

    margin-bottom:60px;

}

.titulo h2{

    font-size:2.3rem;

    color:#1d3557;

    margin-bottom:15px;

}

/* ================= PRESENTACIÓN ================= */

.presentacion .contenedor,
.empresa .contenedor{

    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:center;

}

.presentacion h2,
.empresa h2{

    font-size:2.2rem;
    color:#1d3557;
    margin-bottom:25px;

}

.presentacion p,
.empresa p{

    margin-bottom:18px;
    color:#555;

}

.presentacion img,
.empresa img{

    border-radius:18px;
    box-shadow:0 15px 40px rgba(0,0,0,.15);

}

/* ================= SERVICIOS ================= */

.cards{

    max-width:1200px;
    margin:auto;

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:30px;

}

.card{

    background:white;

    padding:40px 30px;

    border-radius:18px;

    text-align:center;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.card:hover{

    transform:translateY(-10px);

    box-shadow:0 20px 45px rgba(0,0,0,.18);

}

.card i{

    font-size:48px;

    color:#d62828;

    margin-bottom:20px;

}

.card h3{

    margin-bottom:18px;

    color:#1d3557;

}

.card p{

    color:#666;

}

/* ================= CONTACTO ================= */

.contacto-grid{

    max-width:1200px;

    margin:auto;

    display:grid;

    grid-template-columns:420px 1fr;

    gap:40px;

}

.datos{

    background:white;

    padding:35px;

    border-radius:18px;

    box-shadow:0 8px 25px rgba(0,0,0,.08);

}

.datos h3{

    margin-bottom:15px;

    color:#1d3557;

}

.datos hr{

    margin:25px 0;

    border:none;

    border-top:1px solid #ddd;

}

.datos p{

    margin-bottom:12px;

}

.datos i{

    color:#d62828;

    margin-right:10px;

}

.mapa-placeholder{

    height:100%;

    min-height:420px;

    border-radius:18px;

    background:#dde6ef;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:1.5rem;

    font-weight:600;

    color:#1d3557;

}

/* ================= FOOTER ================= */

footer{

    background:#1d3557;

    color:white;

    text-align:center;

    padding:50px 20px;

}

footer img{

    width:150px;

    margin:auto;

    margin-bottom:20px;

}

/* ================= RESPONSIVE ================= */

@media (max-width:900px){

    header{
        position:relative;
    }

    .topbar{
        flex-direction:column;
        gap:15px;
        padding:15px;
    }

    .logo img{
        height:55px;
    }

    nav ul{
        flex-wrap:wrap;
        justify-content:center;
        gap:15px;
    }

    .hero{
        padding-top:0;
        height:auto;
        min-height:calc(100vh - 120px);
    }

    .hero h1{
        font-size:2.2rem;
    }

    .hero p{
        font-size:1rem;
    }

    .botones{
        flex-direction:column;
    }

    .presentacion .contenedor,
    .empresa .contenedor,
    .contacto-grid{

        grid-template-columns:1fr;

    }

}

/* ================= ANIMACIONES ================= */

.oculto{

    opacity:0;
    transform:translateY(40px);
    transition:all .8s ease;

}

.visible{

    opacity:1;
    transform:translateY(0);

}

.mapa iframe{

    width:100%;
    height:100%;
    min-height:430px;

    border:0;

    border-radius:20px;

    box-shadow:0 12px 30px rgba(0,0,0,.15);

}

/* ===== AVISO DE VACACIONES ===== */

.aviso-vacaciones{

    max-width:1200px;
    margin:50px auto 20px auto;

    padding:22px 30px;

    background:linear-gradient(135deg,#0b3d91,#1b5fd6);

    color:#ffffff;

    text-align:center;

    font-size:2rem;
    font-weight:700;

    border-radius:18px;

    box-shadow:0 10px 25px rgba(0,0,0,.18);

}

.aviso-vacaciones{

    max-width:900px;

    margin:0 auto 35px auto;

    padding:18px 25px;

    background:linear-gradient(135deg,#0b3d91,#1b5fd6);

    color:#ffffff;

    text-align:center;

    font-size:1.8rem;

    font-weight:700;

    border-radius:18px;

    box-shadow:0 10px 25px rgba(0,0,0,.18);

}

.presentacion h3{

    font-size:2rem;

    color:#ffffff;

    margin-bottom:25px;

}

/* Solo para la versión de vacaciones */

.aviso-vacaciones + .contenedor h1{

    font-size:2.2rem;

    line-height:1.2;

}