@charset "UTF-8";

/* =====================================================
   HERO / BANNERS
===================================================== */

.hero{

    background:
        linear-gradient(
            180deg,
            #f8fbff,
            #eef4ff
        );

    padding:28px 0;

    position:relative;

    overflow:hidden;
}

/* =====================================================
   EFECTO FONDO
===================================================== */

.hero::before{

    content:"";

    position:absolute;

    top:-120px;
    right:-120px;

    width:320px;
    height:320px;

    background:
        radial-gradient(
            rgba(96,165,250,.18),
            transparent 70%
        );

    pointer-events:none;
}

/* =====================================================
   GRID PRINCIPAL
===================================================== */

.hero-grid{

    display:grid;

    grid-template-columns:
        minmax(0,1fr)
        340px;

    gap:20px;

    align-items:stretch;
}

/* =====================================================
   BANNER PRINCIPAL
===================================================== */

.hero-main{

    position:relative;

    border-radius:24px;

    overflow:hidden;

    background:#fff;

    box-shadow:
        0 14px 40px rgba(15,23,42,.08);

    min-height:100%;
}

/* =====================================================
   IMAGEN PRINCIPAL
===================================================== */

.hero-main img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .45s ease;
}

/* =====================================================
   HOVER
===================================================== */

.hero-main:hover img{

    transform:scale(1.02);
}

/* =====================================================
   OVERLAY
===================================================== */

.hero-main::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            90deg,
            rgba(15,23,42,.45),
            rgba(15,23,42,.12),
            transparent
        );
}

/* =====================================================
   TEXTO HERO
===================================================== */

.hero-text{

    position:absolute;

    top:50%;

    left:42px;

    transform:translateY(-50%);

    z-index:3;

    max-width:500px;

    color:#fff;
}

/* TITULO */

.hero-text h1{

    font-size:44px;

    line-height:1.1;

    margin:0 0 16px;

    font-weight:800;

    letter-spacing:-1px;

    text-shadow:
        0 8px 25px rgba(0,0,0,.22);
}

/* TEXTO */

.hero-text p{

    font-size:16px;

    line-height:1.7;

    margin:0 0 22px;

    color:rgba(255,255,255,.92);
}

/* =====================================================
   BOTON
===================================================== */

.hero-btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:14px 24px;

    border-radius:15px;

    background:
        linear-gradient(
            135deg,
            #2563eb,
            #1d4ed8
        );

    color:#fff;

    font-size:14px;

    font-weight:700;

    text-decoration:none;

    transition:.3s ease;

    box-shadow:
        0 10px 24px rgba(37,99,235,.24);
}

.hero-btn:hover{

    transform:
        translateY(-3px)
        scale(1.02);

    box-shadow:
        0 16px 30px rgba(37,99,235,.28);
}

/* =====================================================
   COLUMNA DERECHA
===================================================== */

.hero-side{

    display:grid;

    grid-template-rows:1fr 1fr;

    gap:16px;
}

/* =====================================================
   BANNERS LATERALES
===================================================== */

.side-banner{

    position:relative;

    border-radius:20px;

    overflow:hidden;

    background:#fff;

    box-shadow:
        0 10px 24px rgba(15,23,42,.06);

    min-height:200px;
}

/* =====================================================
   IMAGENES LATERALES
===================================================== */

.side-banner img{

    width:100%;

    height:100%;

    object-fit:cover;

    display:block;

    transition:transform .4s ease;
}

/* =====================================================
   HOVER
===================================================== */

.side-banner:hover img{

    transform:scale(1.03);
}

/* =====================================================
   OVERLAY LATERAL
===================================================== */

.side-banner::after{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            180deg,
            rgba(15,23,42,.04),
            rgba(15,23,42,.42)
        );
}

/* =====================================================
   TEXTO LATERAL
===================================================== */

.side-content{

    position:absolute;

    left:18px;
    bottom:18px;

    z-index:3;

    color:#fff;
}

.side-content h3{

    margin:0 0 6px;

    font-size:20px;

    font-weight:800;

    line-height:1.2;

    text-shadow:
        0 6px 18px rgba(0,0,0,.24);
}

.side-content p{

    margin:0;

    font-size:13px;

    color:rgba(255,255,255,.88);
}

/* =====================================================
   MONITORES GRANDES
===================================================== */

@media (min-width:1600px){

    .hero{

        padding:50px 0;
    }

    .hero-grid{

        grid-template-columns:
            minmax(0,1fr)
            420px;

        gap:30px;
    }

    .hero-main{

        border-radius:30px;
    }

    .hero-text{

        left:70px;

        max-width:620px;
    }

    .hero-text h1{

        font-size:60px;
    }

    .hero-text p{

        font-size:22px;
    }

    .hero-btn{

        font-size:17px;

        padding:18px 34px;
    }

    .side-banner{

        border-radius:28px;

        min-height:280px;
    }

    .side-content h3{

        font-size:28px;
    }

    .side-content p{

        font-size:16px;
    }
}

/* =====================================================
   LAPTOPS
===================================================== */

@media (max-width:1200px){

    .hero-grid{

        grid-template-columns:
            minmax(0,1fr)
            280px;
    }

    .hero-text h1{

        font-size:38px;
    }

    .hero-text p{

        font-size:15px;
    }
}

/* =====================================================
   TABLET HORIZONTAL
===================================================== */

@media (max-width:992px){

    .hero{

        padding:24px 0;
    }

    .hero-grid{

        grid-template-columns:1fr;

        gap:18px;
    }

    .hero-main{

        min-height:300px;
    }

    .hero-text{

        left:28px;

        max-width:420px;
    }

    .hero-text h1{

        font-size:32px;
    }

    .hero-side{

        grid-template-columns:1fr 1fr;

        grid-template-rows:none;

        gap:16px;
    }

    .side-banner{

        min-height:180px;
    }
}

/* =====================================================
   TABLET VERTICAL
===================================================== */

@media (max-width:768px){

    .hero{

        padding:18px 0;
    }

    .hero-main{

        border-radius:18px;

        min-height:220px;
    }

    .hero-text{

        left:16px;
        right:16px;

        max-width:none;
    }

    .hero-text h1{

        font-size:22px;

        margin-bottom:10px;
    }

    .hero-text p{

        display:none;
    }

    .hero-btn{

        padding:10px 16px;

        font-size:12px;

        border-radius:12px;

        width:auto;
    }

    .hero-side{

        grid-template-columns:1fr;

        gap:14px;
    }

    .side-banner{

        border-radius:16px;

        min-height:150px;
    }

    .side-content{

        left:14px;
        bottom:14px;
    }

    .side-content h3{

        font-size:16px;
    }

    .side-content p{

        font-size:12px;
    }
}

/* =====================================================
   TELEFONOS GRANDES
===================================================== */

@media (max-width:580px){

    .hero{

        padding:14px 0;
    }

    .hero-main{

        border-radius:16px;

        min-height:180px;
    }

    .hero-text{

        left:14px;
        right:14px;
    }

    .hero-text h1{

        font-size:18px;

        margin-bottom:8px;
    }

    .hero-btn{

        padding:9px 14px;

        font-size:11px;

        border-radius:10px;
    }

    .side-banner{

        border-radius:14px;

        min-height:130px;
    }

    .side-content h3{

        font-size:14px;
    }

    .side-content p{

        font-size:11px;
    }
}

/* =====================================================
   TELEFONOS PEQUEÑOS
===================================================== */

@media (max-width:420px){

    .hero-main{

        min-height:160px;
    }

    .hero-text h1{

        font-size:16px;
    }

    .hero-btn{

        padding:8px 12px;

        font-size:10px;
    }

    .side-banner{

        min-height:120px;
    }

    .side-content h3{

        font-size:13px;
    }

    .side-content p{

        display:none;
    }
}