/* ==========================================
   SERENTEC WEB
   Autor: Serentec
========================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;
    background:#f5f7fb;
    color:#333;
}

/*==========================
    CONTENEDOR
==========================*/

.container{

    width:90%;
    max-width:1400px;
    margin:auto;
}
/*==========================
        HEADER
==========================*/

header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    background:rgba(255,255,255,.98);

    backdrop-filter:blur(10px);

    box-shadow:0 2px 20px rgba(0,0,0,.08);

    z-index:9999;

}

header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:80px;

}

/*==========================
        LOGO
==========================*/

.logo{

    font-size:32px;

    font-weight:800;

    color:#0056D6;

    letter-spacing:2px;

}

/*==========================
        BODY
==========================*/

body{

    padding-top:80px;

}
/*==========================
        MENU
==========================*/

nav ul{

    display:flex;

    list-style:none;

    gap:35px;
}

nav ul li a{

    text-decoration:none;

    color:#222;

    font-weight:500;

    transition:.3s;
}

nav ul li a:hover{

    color:#0056D6;
}

/*==========================
      BOTON PRINCIPAL
==========================*/

.btn{

    background:#0056D6;

    color:white;

    padding:14px 28px;

    border-radius:50px;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
}

.btn:hover{

    background:#003fa5;
}

/*==========================
      BOTON SECUNDARIO
==========================*/

.btn-outline{

    border:2px solid white;

    color:white;

    padding:14px 28px;

    border-radius:50px;

    text-decoration:none;

    font-weight:600;

    transition:.3s;
}

.btn-outline:hover{

    background:white;

    color:#0056D6;
}

/*==========================
          HERO
==========================*/

.hero{

    min-height:550px;

    padding-top:120px;
    padding-bottom:80px;

    background:
    linear-gradient(
        rgba(0,0,0,.60),
        rgba(0,0,0,.60)
    ),
    url("../img/hero.jpg");

    background-size:cover;
    background-position:center;

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    color:white;
}

.hero-content{

    max-width:850px;

    margin:auto;
}

.hero h1{

    font-size:48px;

    font-weight:700;

    margin-bottom:20px;

    line-height:1.2;
}

.hero p{

    font-size:20px;

    line-height:1.8;

    margin-bottom:35px;

    color:rgba(255,255,255,.90);
}

.buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;
}

/*====================================
        CATEGORÍAS
====================================*/

.categories{

    padding:100px 0;

    background:#0B1F3A;

}

/* TITULO */

.categories .section-title{

    text-align:center;

    margin-bottom:60px;

}

.categories .section-title span{

    display:block;

    color:#0d6efd;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    margin-bottom:12px;

}

.categories .section-title h2{

    color:#FFFFFF;

    font-size:48px;

    font-weight:700;

    margin-bottom:20px;

}

.categories .section-title p{

    max-width:700px;

    margin:auto;

    color:rgba(255,255,255,.75);

    font-size:18px;

    line-height:1.8;

}

/* GRID */

.hero-categories{

    margin-top:60px;

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:20px;

}

/* TARJETAS */

.hero-categories a{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:12px;

    min-height:140px;

    text-decoration:none;

    color:white;

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.15);

    border-radius:15px;

    transition:.3s;

}

.hero-categories a:hover{

    background:#0056D6;

    transform:translateY(-8px);

}

/* ICONOS */

.hero-categories i{

    font-size:38px;

    color:#0d6efd;

}

/* TEXTO */

.hero-categories span{

    font-size:15px;

    font-weight:600;

    text-align:center;

}

/*====================================
        MARCAS
====================================*/

.brands{

    background:#081120;

    padding:90px 0;

    overflow:hidden;

}

.brands h2{

    color:white;

    text-align:center;

    font-size:42px;

    margin-bottom:60px;

}

/* Separación entre filas */

.brands-slider{

    overflow:hidden;

    margin:35px 0;

}

/* Carrusel */

.brands-track{

    display:flex;

    width:max-content;

    gap:30px;

    animation:scrollLeft 35s linear infinite;

}

/* Segunda fila */

.reverse .brands-track{

    animation:scrollRight 35s linear infinite;

}

/* Pausar al pasar el mouse */

.brands-slider:hover .brands-track{

    animation-play-state:paused;

}

/* Tarjetas */

.brands-track img{

    width:180px;

    height:100px;

    object-fit:contain;

    background:white;

    padding:18px;

    border-radius:15px;

    flex-shrink:0;

    transition:.35s;

}

/* Hover */

.brands-track img:hover{

    transform:translateY(-8px) scale(1.05);

    box-shadow:0 15px 40px rgba(0,0,0,.35);

}

/* Animaciones */

@keyframes scrollLeft{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(-50%);

    }

}

@keyframes scrollRight{

    from{

        transform:translateX(-50%);

    }

    to{

        transform:translateX(0);

    }

}

/*====================================
        PROMOCIONES
====================================*/

.promotions{

    padding:120px 0;

    background:#f5f7fb;

}


.promotions .section-title{

    text-align:center;

    max-width:800px;

    margin:0 auto 60px auto;

}

.promotions .section-title span{

    display:block;

    color:#0056D6;

    font-size:14px;

    font-weight:700;

    letter-spacing:3px;

    margin-bottom:10px;

}

.promotions .section-title h2{

    font-size:48px;

    color:#111;

    margin-bottom:15px;

}

.promotions .section-title p{

    max-width:650px;

    margin:auto;

    color:#666;

    font-size:18px;

}

.promo-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

/* TARJETAS */

.promo-card{

    position:relative;

    min-height:450px;

    border-radius:25px;

    overflow:hidden;

    color:white;

    background-size:cover;

    background-position:center;

    transition:.4s ease;

    animation:fadeUp .8s ease forwards;

}

.promo-card:hover{

    transform:translateY(-12px);

    box-shadow:0 25px 50px rgba(0,0,0,.25);

}

/* OVERLAY */

.promo-overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(
        to top,
        rgba(8,17,32,.92),
        rgba(0,86,214,.55)
    );

}

/* CONTENIDO */

.promo-content{

    position:absolute;

    inset:0;

    display:flex;

    flex-direction:column;

    justify-content:flex-end;

    padding:40px;

    z-index:2;

}

/* BADGE */

.promo-badge{

    display:inline-flex;

    align-items:center;

    gap:8px;

    width:max-content;

    background:#0d6efd;

    padding:10px 18px;

    border-radius:50px;

    font-size:12px;

    font-weight:700;

    letter-spacing:.5px;

    margin-bottom:20px;

}

.promo-badge i{

    font-size:12px;

}

/* TITULOS */

.promo-content h3{

    font-size:20px;

    font-weight:600;

    margin-bottom:10px;

    opacity:.95;

}

.promo-content h2{

    font-size:42px;

    line-height:1.1;

    font-weight:700;

    margin-bottom:15px;

}

.promo-content p{

    font-size:16px;

    line-height:1.7;

    margin-bottom:25px;

    max-width:350px;

    opacity:.9;

}

/* BOTON */

.promo-content .btn{

    width:max-content;

    padding:12px 24px;

    font-size:14px;

}

/* IMÁGENES */

.promo-1{

    background-image:url("../img/promos/camaras.png");

}

.promo-2{

    background-image:url("../img/promos/redes.jpg");

}

.promo-3{

    background-image:url("../img/promos/acceso.png");

}

/* BRILLO */

.promo-card::before{

    content:"";

    position:absolute;

    top:-100%;

    left:-100%;

    width:200%;

    height:200%;

    background:linear-gradient(
        45deg,
        transparent,
        rgba(255,255,255,.12),
        transparent
    );

    transition:.8s;

}

.promo-card:hover::before{

    top:100%;

    left:100%;

}

/* ANIMACIÓN */

.promo-card:nth-child(2){

    animation-delay:.15s;

}

.promo-card:nth-child(3){

    animation-delay:.30s;

}

@keyframes fadeUp{

    from{

        opacity:0;
        transform:translateY(40px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

/* RESPONSIVE */

@media(max-width:992px){

    .promo-grid{

        grid-template-columns:1fr;

    }

    .promo-card{

        min-height:380px;

    }

    .promo-content h2{

        font-size:32px;

    }

}



.category-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background: rgba(0, 0, 0, .75);
            display: none;
            justify-content: center;
            align-items: center;
            z-index: 999999;
            padding: 20px;
        }

        .category-modal-content {
            background: #ffffff;
            width: 100%;
            max-width: 700px;
            padding: 40px;
            border-radius: 20px;
            position: relative;
            box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
        }

        .category-modal-content h3 {
            font-size: 32px;
            color: #0f172a;
            margin-bottom: 15px;
        }

        .category-modal-content p {
            font-size: 16px;
            line-height: 1.8;
            color: #64748b;
        }

        .category-modal-close {
            position: absolute;
            top: 15px;
            right: 15px;
            width: 42px;
            height: 42px;
            border: none;
            border-radius: 50%;
            background: #f1f5f9;
            color: #0f172a;
            font-size: 28px;
            font-weight: 700;
            line-height: 1;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: .3s;
        }

        .category-modal-close:hover {
            background: #2563eb;
            color: #fff;
        }


        /* =========================
   NOSOTROS
========================= */

        .about {
            padding: 100px 0;
            background: #ffffff;
        }

        .about-content {
            display: grid;
            grid-template-columns: 1.2fr 1fr;
            gap: 60px;
            margin-top: 60px;
            align-items: start;
        }

        .about-text {
            text-align: left;
        }

        .about-text h3 {
            font-size: 42px;
            color: #0f172a;
            margin-bottom: 25px;
            line-height: 1.2;
        }

        .about-text p {
            font-size: 17px;
            line-height: 1.9;
            color: #64748b;
            margin-bottom: 20px;
        }

        .about-cards {
            display: flex;
            flex-direction: column;
            gap: 25px;
        }

        .about-card {
            background: #ffffff;
            border: 1px solid #e2e8f0;
            border-radius: 18px;
            padding: 30px;
            transition: .3s;
            box-shadow: 0 5px 20px rgba(15, 23, 42, .05);
        }

        .about-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 15px 40px rgba(15, 23, 42, .12);
        }

        .about-card i {
            width: 65px;
            height: 65px;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 15px;
            background: rgba(37, 99, 235, .1);
            color: #2563eb;
            font-size: 28px;
            margin-bottom: 20px;
        }

        .about-card h4 {
            font-size: 24px;
            color: #0f172a;
            margin-bottom: 12px;
        }

        .about-card p {
            color: #64748b;
            line-height: 1.8;
            margin: 0;
        }

        .about .section-title {
            text-align: center;
            margin-bottom: 20px;
        }

        .about .section-title span {
            display: inline-block;
            color: #2563eb;
            font-weight: 700;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 10px;
        }

        .about .section-title h2 {
            font-size: 48px;
            color: #0f172a;
            margin-bottom: 20px;
        }

        .about .section-title p {
            max-width: 850px;
            margin: 0 auto;
            color: #64748b;
            line-height: 1.8;
        }

        @media(max-width:991px) {

            .about {
                padding: 80px 0;
            }

            .about-content {
                grid-template-columns: 1fr;
                gap: 40px;
            }

            .about-text {
                text-align: center;
            }

            .about-text h3 {
                font-size: 34px;
            }

            .about .section-title h2 {
                font-size: 38px;
            }

        }

        @media(max-width:576px) {

            .about {
                padding: 60px 0;
            }

            .about-text h3 {
                font-size: 28px;
            }

            .about .section-title h2 {
                font-size: 30px;
            }

            .about-card {
                padding: 25px;
            }

        }


        .contact-modal {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, .75);
            display: none;
            justify-content: center;
            align-items: center;
            z-index: 999999;
            padding: 20px;
        }

        .contact-modal-content {
            background: #fff;
            max-width: 650px;
            width: 100%;
            border-radius: 20px;
            padding: 40px;
            position: relative;
        }

        .contact-modal-content h3 {
            font-size: 32px;
            color: #0f172a;
            margin-bottom: 30px;
        }

        .contact-modal-close {
            position: absolute;
            top: 15px;
            right: 15px;
            width: 40px;
            height: 40px;
            border: none;
            border-radius: 50%;
            cursor: pointer;
            font-size: 28px;
            background: #f1f5f9;
        }

        .contact-item {
            display: flex;
            align-items: flex-start;
            gap: 15px;
            margin-bottom: 25px;
        }

        .contact-item i {
            color: #2563eb;
            font-size: 22px;
            width: 30px;
        }

        .contact-item strong {
            display: block;
            color: #0f172a;
            margin-bottom: 5px;
        }

        .contact-item p {
            color: #64748b;
            margin: 0;
        }

        .social-links {
            display: flex;
            align-items: center;
            gap: 20px;
        }

        .footer {
            background: #0f172a;
            color: #ffffff;
            padding: 25px 20px;
            text-align: center;
        }

        .footer-content {
            max-width: 1200px;
            margin: auto;
        }

        .footer-links {
            margin-top: 10px;
        }

        .footer-links a {
            color: #60a5fa;
            text-decoration: none;
            margin: 0 12px;
            font-size: 14px;
        }

        .footer-links a:hover {
            text-decoration: underline;
        }

/* ==========================
   RESPONSIVE MOVIL
========================== */

@media (max-width: 768px) {

    .hero-categories{
        grid-template-columns: repeat(3, 1fr);
        gap: 12px;
    }

    .hero-categories a{
        min-height: 110px;
        padding: 10px;
    }

    .hero-categories i{
        font-size: 28px;
    }

    .hero-categories span{
        font-size: 13px;
    }

    .categories .section-title h2{
        font-size: 34px;
    }

}

@media (max-width: 480px) {

    .hero-categories{
        grid-template-columns: repeat(2, 1fr);
    }

    .categories{
        overflow-x: hidden;
    }

}
