/* =========================================================
   ASESORÍA PLUGMETAL
   CSS PRINCIPAL
========================================================= */


/* =========================================================
   RESET
========================================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}


html{
    scroll-behavior:smooth;
}


body{

    background:#090909;

    color:#fff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    line-height:1.6;

    overflow-x:hidden;

}


a{
    color:inherit;
}


/* =========================================================
   VARIABLES
========================================================= */

:root{

    --rojo:#990000;

    --rojo-claro:#d00000;

    --rojo-oscuro:#650000;

    --negro:#080808;

    --negro-2:#0f0f0f;

    --negro-3:#151515;

    --gris:#222;

    --gris-claro:#aaa;

    --blanco:#fff;

    --borde:#292929;

    --max-width:1250px;

}


/* =========================================================
   CONTAINER
========================================================= */

.container{

    width:calc(100% - 40px);

    max-width:var(--max-width);

    margin:auto;

}


/* =========================================================
   PRELOADER
========================================================= */

#preloader{

    position:fixed;

    inset:0;

    background:#080808;

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:999999;

    transition:
        opacity .5s ease,
        visibility .5s ease;

}


#preloader.oculto{

    opacity:0;

    visibility:hidden;

}


.loader{

    display:flex;

    gap:8px;

}


.loader span{

    width:10px;

    height:35px;

    background:var(--rojo);

    animation:
        loader .8s infinite ease-in-out;

}


.loader span:nth-child(2){

    animation-delay:.15s;

}


.loader span:nth-child(3){

    animation-delay:.30s;

}


@keyframes loader{

    0%,
    100%{

        transform:scaleY(.4);

        opacity:.5;

    }

    50%{

        transform:scaleY(1);

        opacity:1;

    }

}


/* =========================================================
   HEADER
========================================================= */

#header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    height:80px;

    z-index:9999;

    background:
        rgba(5,5,5,.72);

    border-bottom:
        1px solid rgba(255,255,255,.08);

    backdrop-filter:
        blur(12px);

    transition:.3s;

}


#header.scrolled{

    background:
        rgba(5,5,5,.96);

    height:70px;

    box-shadow:
        0 5px 25px rgba(0,0,0,.5);

}


.header-inner{

    width:calc(100% - 40px);

    max-width:1350px;

    height:100%;

    margin:auto;

    display:flex;

    align-items:center;

    justify-content:space-between;

}


/* =========================================================
   LOGO
========================================================= */

.logo{

    display:flex;

    align-items:center;

    gap:9px;

    text-decoration:none;

    font-weight:900;

    letter-spacing:1px;

}


.logo-metal{

    font-size:24px;

    color:#fff;

}


.logo-asesoria{

    font-size:13px;

    color:var(--rojo-claro);

    border-left:
        1px solid #555;

    padding-left:9px;

    letter-spacing:2px;

}


/* IMAGEN DEL LOGO */

.logo img{

    max-width:180px;

    max-height:55px;

    width:auto;

    height:auto;

    object-fit:contain;

}


/* =========================================================
   MENU
========================================================= */

#menu{

    display:flex;

    align-items:center;

    gap:3px;

}


#menu a{

    position:relative;

    padding:10px 11px;

    color:#ddd;

    text-decoration:none;

    font-size:13px;

    font-weight:bold;

    text-transform:uppercase;

    transition:.3s;

}


#menu a::after{

    content:"";

    position:absolute;

    left:10px;

    right:10px;

    bottom:4px;

    height:2px;

    background:var(--rojo);

    transform:scaleX(0);

    transform-origin:center;

    transition:.3s;

}


#menu a:hover{

    color:#fff;

}


#menu a:hover::after{

    transform:scaleX(1);

}


#menu .menu-cast{

    margin-left:7px;

    background:var(--rojo);

    border-radius:5px;

    padding-left:14px;

    padding-right:14px;

}


#menu .menu-cast::after{

    display:none;

}


#menu .menu-cast:hover{

    background:var(--rojo-claro);

    transform:translateY(-2px);

}


/* =========================================================
   MENU MOBILE
========================================================= */

#menu-toggle{

    display:none;

    width:44px;

    height:44px;

    border:1px solid #444;

    background:#111;

    color:#fff;

    border-radius:5px;

    font-size:20px;

    cursor:pointer;

}


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

.hero{

    min-height:100vh;

    position:relative;

    display:flex;

    align-items:center;

    background:

        radial-gradient(
            circle at 75% 40%,
            rgba(153,0,0,.25),
            transparent 35%
        ),

        linear-gradient(
            135deg,
            #111,
            #050505
        );

    background-size:cover;

    background-position:center;

}


.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:

        linear-gradient(
            90deg,
            rgba(0,0,0,.95),
            rgba(0,0,0,.55),
            rgba(0,0,0,.75)
        );

}


.hero::after{

    content:"";

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    height:180px;

    background:
        linear-gradient(
            transparent,
            #090909
        );

}


.hero-overlay{

    position:relative;

    z-index:2;

    width:100%;

    padding-top:80px;

}


.hero-content{

    width:calc(100% - 40px);

    max-width:1250px;

    margin:auto;

}


.hero-label{

    display:inline-flex;

    align-items:center;

    gap:10px;

    margin-bottom:18px;

    color:#bbb;

    font-size:13px;

    font-weight:bold;

    letter-spacing:4px;

}


.hero-label::before{

    content:"";

    width:35px;

    height:2px;

    background:var(--rojo);

}


.hero h1{

    max-width:900px;

    font-size:
        clamp(45px,7vw,90px);

    line-height:1;

    text-transform:uppercase;

    font-weight:900;

    letter-spacing:-2px;

    margin-bottom:20px;

}


.hero h2{

    max-width:800px;

    font-size:
        clamp(20px,3vw,32px);

    color:#ddd;

    font-weight:400;

    margin-bottom:20px;

}


.hero p{

    max-width:720px;

    color:#bbb;

    font-size:18px;

    line-height:1.8;

    margin-bottom:30px;

}


.hero-buttons{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

}


/* =========================================================
   BOTONES
========================================================= */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:9px;

    padding:14px 22px;

    border-radius:5px;

    text-decoration:none;

    font-weight:bold;

    font-size:14px;

    transition:.3s;

}


.btn-primary{

    background:var(--rojo);

    color:#fff;

}


.btn-primary:hover{

    background:var(--rojo-claro);

    transform:translateY(-3px);

    box-shadow:
        0 8px 20px rgba(153,0,0,.3);

}


.btn-outline{

    border:1px solid #666;

    color:#fff;

    background:rgba(0,0,0,.25);

}


.btn-outline:hover{

    border-color:var(--rojo);

    background:var(--rojo);

    transform:translateY(-3px);

}


/* =========================================================
   SECCIONES
========================================================= */

.section{

    position:relative;

    padding:110px 0;

    overflow:hidden;

}


.section-dark{

    background:#101010;

}


.section-black{

    background:#080808;

}


.section::before{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            #333,
            transparent
        );

}


/* =========================================================
   TÍTULOS
========================================================= */

.section-heading{

    margin-bottom:55px;

}


.section-heading > span{

    display:block;

    color:var(--rojo-claro);

    font-size:13px;

    font-weight:bold;

    letter-spacing:3px;

    margin-bottom:8px;

}


.section-heading h2{

    position:relative;

    display:inline-block;

    font-size:
        clamp(35px,5vw,55px);

    line-height:1.1;

    text-transform:uppercase;

    font-weight:900;

    margin-bottom:15px;

}


.section-heading h2::after{

    content:"";

    display:block;

    width:60px;

    height:4px;

    background:var(--rojo);

    margin-top:15px;

}


.section-heading p{

    max-width:700px;

    color:#999;

    font-size:17px;

}


/* =========================================================
   QUIÉNES SOMOS
========================================================= */

.about-content{

    display:grid;

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

    gap:70px;

    align-items:center;

}


.about-text{

    color:#bbb;

    font-size:18px;

    line-height:2;

}


.about-decoration{

    min-height:300px;

    border:1px solid #292929;

    background:
        radial-gradient(
            circle,
            rgba(153,0,0,.25),
            transparent 60%
        ),

        #0b0b0b;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    position:relative;

}


.about-decoration::before,
.about-decoration::after{

    content:"";

    position:absolute;

    width:80px;

    height:80px;

    border:1px solid var(--rojo);

}


.about-decoration::before{

    top:20px;

    left:20px;

    border-right:0;

    border-bottom:0;

}


.about-decoration::after{

    right:20px;

    bottom:20px;

    border-left:0;

    border-top:0;

}


.about-decoration i{

    color:var(--rojo);

    font-size:55px;

    margin-bottom:20px;

}


.about-decoration span{

    font-size:25px;

    font-weight:900;

    letter-spacing:5px;

}


/* =========================================================
   SERVICIOS
========================================================= */

.services-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:22px;

}


.service-card{

    position:relative;

    padding:32px;

    min-height:270px;

    background:#111;

    border:1px solid #292929;

    transition:.35s;

    overflow:hidden;

}


.service-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:4px;

    height:100%;

    background:var(--rojo);

    transform:scaleY(0);

    transform-origin:bottom;

    transition:.35s;

}


.service-card:hover{

    transform:translateY(-7px);

    border-color:#555;

    box-shadow:
        0 15px 35px rgba(0,0,0,.4);

}


.service-card:hover::before{

    transform:scaleY(1);

}


.service-number{

    position:absolute;

    right:20px;

    top:15px;

    color:#292929;

    font-size:45px;

    font-weight:900;

}


.service-icon{

    width:55px;

    height:55px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:var(--rojo);

    border-radius:5px;

    font-size:22px;

    margin-bottom:25px;

}


.service-card h3{

    font-size:23px;

    margin-bottom:12px;

}


.service-card p{

    color:#999;

    line-height:1.7;

}


/* =========================================================
   SHOWCASE / VIDEOS
========================================================= */

.videos-grid{

    display:grid;

    grid-template-columns:
        repeat(2,1fr);

    gap:30px;

}


.video-card{

    background:#111;

    border:1px solid #292929;

    overflow:hidden;

    transition:.3s;

}


.video-card:hover{

    transform:translateY(-5px);

    border-color:#555;

}


.video-wrapper{

    position:relative;

    width:100%;

    aspect-ratio:16/9;

    background:#000;

}


.video-wrapper iframe{

    position:absolute;

    inset:0;

    width:100%;

    height:100%;

    border:0;

}


.video-card h3{

    padding:18px 20px;

    font-size:18px;

}


/* =========================================================
   GALERÍA
========================================================= */

.gallery-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:8px;

}


.gallery-item{

    position:relative;

    aspect-ratio:16/10;

    overflow:hidden;

    background:#111;

}


.gallery-link{

    display:block;

    width:100%;

    height:100%;

    position:relative;

}


.gallery-item img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:
        transform .5s ease;

}


.gallery-overlay{

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            transparent,
            rgba(0,0,0,.9)
        );

    opacity:0;

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:10px;

    transition:.3s;

}


.gallery-overlay i{

    font-size:30px;

    color:#fff;

}


.gallery-overlay span{

    font-size:14px;

    color:#ddd;

}


.gallery-item:hover img{

    transform:scale(1.08);

}


.gallery-item:hover .gallery-overlay{

    opacity:1;

}


.gallery-empty{

    padding:70px 20px;

    text-align:center;

    background:#111;

    border:1px dashed #333;

}


.gallery-empty i{

    font-size:55px;

    color:#555;

    margin-bottom:20px;

}


.gallery-empty h3{

    margin-bottom:10px;

}


.gallery-empty p{

    color:#888;

}


/* =========================================================
   PLANES
========================================================= */

.plans-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:25px;

    align-items:stretch;

}


.plan-card{

    position:relative;

    background:#111;

    border:1px solid #292929;

    padding:35px;

    display:flex;

    flex-direction:column;

    transition:.3s;

}


.plan-card:hover{

    transform:translateY(-6px);

    border-color:#555;

}


.plan-destacado{

    border-color:var(--rojo);

    transform:scale(1.03);

}


.plan-destacado:hover{

    transform:
        scale(1.03)
        translateY(-6px);

}


.plan-badge{

    position:absolute;

    top:0;

    left:50%;

    transform:translate(-50%,-50%);

    padding:6px 15px;

    background:var(--rojo);

    font-size:11px;

    font-weight:bold;

    white-space:nowrap;

}


.plan-card h3{

    font-size:25px;

    margin-bottom:20px;

    text-transform:uppercase;

}


.plan-price{

    font-size:38px;

    font-weight:900;

    margin-bottom:20px;

    color:#fff;

}


.plan-card > p{

    color:#999;

    margin-bottom:25px;

}


.plan-card ul{

    list-style:none;

    margin-bottom:30px;

    flex:1;

}


.plan-card li{

    color:#bbb;

    padding:8px 0;

    border-bottom:1px solid #222;

}


.plan-card li i{

    color:var(--rojo-claro);

    margin-right:8px;

}


.plan-card .btn{

    width:100%;

}


/* =========================================================
   TESTIMONIOS
========================================================= */

.testimonials-grid{

    display:grid;

    grid-template-columns:
        repeat(3,1fr);

    gap:22px;

}


.testimonial-card{

    position:relative;

    padding:35px;

    background:#111;

    border:1px solid #292929;

}


.testimonial-icon{

    color:var(--rojo);

    font-size:30px;

    margin-bottom:20px;

}


.testimonial-card p{

    color:#bbb;

    font-size:16px;

    line-height:1.8;

    margin-bottom:25px;

}


.testimonial-author{

    display:flex;

    flex-direction:column;

    border-top:1px solid #292929;

    padding-top:18px;

}


.testimonial-author strong{

    color:#fff;

}


.testimonial-author span{

    color:#777;

    font-size:13px;

}


/* =========================================================
   FAQ
========================================================= */

.faq-list{

    max-width:950px;

    margin:auto;

}


.faq-item{

    border-bottom:1px solid #292929;

}


.faq-question{

    width:100%;

    padding:22px 5px;

    background:none;

    border:0;

    color:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    text-align:left;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

}


.faq-question i{

    color:var(--rojo);

    transition:.3s;

}


.faq-item.active .faq-question i{

    transform:rotate(45deg);

}


.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:
        max-height .4s ease;

}


.faq-answer p{

    padding:
        0 40px 22px 5px;

    color:#999;

    line-height:1.8;

}


/* =========================================================
   CONTACTO
========================================================= */

.contact-grid{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:15px;

}


.contact-card{

    min-height:140px;

    padding:25px;

    background:#111;

    border:1px solid #292929;

    display:flex;

    align-items:center;

    gap:18px;

    text-decoration:none;

    transition:.3s;

}


.contact-card:hover{

    border-color:var(--rojo);

    transform:translateY(-4px);

}


.contact-card > i{

    font-size:28px;

    color:var(--rojo);

}


.contact-card div{

    display:flex;

    flex-direction:column;

    min-width:0;

}


.contact-card span{

    color:#777;

    font-size:12px;

    text-transform:uppercase;

    letter-spacing:1px;

}


.contact-card strong{

    color:#ddd;

    font-size:14px;

    word-break:break-word;

}


.contact-whatsapp:hover{

    border-color:#25d366;

}


.contact-whatsapp:hover > i{

    color:#25d366;

}


.contact-hours{

    margin-top:25px;

    text-align:center;

    color:#888;

}


.contact-hours i{

    color:var(--rojo);

    margin-right:8px;

}


/* =========================================================
   EMPTY CONTENT
========================================================= */

.empty-content{

    padding:45px;

    text-align:center;

    color:#777;

    background:#111;

    border:1px dashed #333;

}


/* =========================================================
   FOOTER
========================================================= */

footer{

    background:#050505;

    border-top:1px solid #222;

    padding-top:70px;

}


.footer-grid{

    display:grid;

    grid-template-columns:
        2fr 1fr 1fr;

    gap:60px;

    padding-bottom:55px;

}


.footer-logo{

    font-size:30px;

    font-weight:900;

    letter-spacing:2px;

    margin-bottom:15px;

}


.footer-brand p{

    max-width:400px;

    color:#777;

}


footer h3{

    font-size:14px;

    text-transform:uppercase;

    letter-spacing:2px;

    margin-bottom:20px;

}


.footer-links{

    display:flex;

    flex-direction:column;

    gap:8px;

}


.footer-links a{

    color:#888;

    text-decoration:none;

    transition:.3s;

}


.footer-links a:hover{

    color:#fff;

    padding-left:5px;

}


.social-icons{

    display:flex;

    gap:8px;

}


.social-icons a{

    width:42px;

    height:42px;

    display:flex;

    align-items:center;

    justify-content:center;

    background:#151515;

    border:1px solid #292929;

    color:#aaa;

    text-decoration:none;

    transition:.3s;

}


.social-icons a:hover{

    background:var(--rojo);

    border-color:var(--rojo);

    color:#fff;

    transform:translateY(-3px);

}


.footer-bottom{

    border-top:1px solid #1c1c1c;

    padding:22px 0;

    display:flex;

    justify-content:space-between;

    gap:20px;

    color:#555;

    font-size:13px;

}


.footer-bottom a{

    color:#777;

    text-decoration:none;

}


.footer-bottom a:hover{

    color:#fff;

}


/* =========================================================
   BOTÓN VOLVER ARRIBA
========================================================= */

#btn-top{

    position:fixed;

    right:25px;

    bottom:25px;

    width:48px;

    height:48px;

    display:flex;

    align-items:center;

    justify-content:center;

    border:1px solid #444;

    border-radius:50%;

    background:var(--rojo);

    color:#fff;

    font-size:20px;

    cursor:pointer;

    opacity:0;

    visibility:hidden;

    transform:
        translateY(15px);

    transition:.3s;

    z-index:9998;

}


#btn-top.visible{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}


#btn-top:hover{

    background:var(--rojo-claro);

    transform:
        translateY(-4px);

}


/* =========================================================
   LIGHTBOX
========================================================= */

#lightbox{

    position:fixed;

    inset:0;

    background:
        rgba(0,0,0,.94);

    z-index:999999;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:40px;

    opacity:0;

    visibility:hidden;

    transition:.3s;

}


#lightbox.active{

    opacity:1;

    visibility:visible;

}


#lightbox-image{

    max-width:95vw;

    max-height:90vh;

    object-fit:contain;

    box-shadow:
        0 10px 50px rgba(0,0,0,.8);

}


#lightbox-close{

    position:absolute;

    top:20px;

    right:25px;

    width:45px;

    height:45px;

    border:1px solid #555;

    border-radius:50%;

    background:#111;

    color:#fff;

    font-size:20px;

    cursor:pointer;

}


#lightbox-close:hover{

    background:var(--rojo);

    border-color:var(--rojo);

}


/* =========================================================
   ANIMACIÓN DE ENTRADA
========================================================= */

.section-heading,
.service-card,
.video-card,
.gallery-item,
.plan-card,
.testimonial-card,
.contact-card{

    animation:
        aparecer .8s ease both;

}


@keyframes aparecer{

    from{

        opacity:0;

        transform:translateY(25px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}


/* =========================================================
   RESPONSIVE 1100
========================================================= */

@media(max-width:1100px){

    #menu{

        gap:0;

    }


    #menu a{

        padding:
            9px 7px;

        font-size:11px;

    }


    .services-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .plans-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .plan-destacado{

        transform:none;

    }


    .plan-destacado:hover{

        transform:translateY(-6px);

    }


    .testimonials-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .contact-grid{

        grid-template-columns:
            repeat(2,1fr);

    }

}


/* =========================================================
   RESPONSIVE 850
========================================================= */

@media(max-width:850px){

    #header{

        height:70px;

    }


    #menu-toggle{

        display:flex;

        align-items:center;

        justify-content:center;

    }


    #menu{

        position:absolute;

        top:70px;

        left:0;

        width:100%;

        padding:15px 20px 25px;

        background:
            rgba(8,8,8,.98);

        border-bottom:
            1px solid #292929;

        display:flex;

        flex-direction:column;

        align-items:stretch;

        gap:2px;

        opacity:0;

        visibility:hidden;

        transform:
            translateY(-10px);

        transition:.3s;

    }


    #menu.abierto{

        opacity:1;

        visibility:visible;

        transform:translateY(0);

    }


    #menu a{

        padding:14px;

        font-size:13px;

        border-bottom:1px solid #1d1d1d;

    }


    #menu a::after{

        display:none;

    }


    #menu .menu-cast{

        margin:
            8px 0 0;

        text-align:center;

    }


    .about-content{

        grid-template-columns:1fr;

        gap:40px;

    }


    .videos-grid{

        grid-template-columns:1fr;

    }


    .gallery-grid{

        grid-template-columns:
            repeat(2,1fr);

    }


    .footer-grid{

        grid-template-columns:1fr 1fr;

        gap:40px;

    }

}


/* =========================================================
   RESPONSIVE 650
========================================================= */

@media(max-width:650px){

    .container{

        width:calc(100% - 30px);

    }


    .section{

        padding:75px 0;

    }


    .hero-content{

        width:calc(100% - 30px);

    }


    .hero{

        min-height:750px;

    }


    .hero h1{

        font-size:
            clamp(38px,12vw,60px);

        letter-spacing:-1px;

    }


    .hero h2{

        font-size:21px;

    }


    .hero p{

        font-size:16px;

    }


    .hero-buttons{

        flex-direction:column;

        align-items:stretch;

        max-width:350px;

    }


    .btn{

        width:100%;

    }


    .services-grid{

        grid-template-columns:1fr;

    }


    .gallery-grid{

        grid-template-columns:1fr 1fr;

        gap:5px;

    }


    .plans-grid{

        grid-template-columns:1fr;

    }


    .testimonials-grid{

        grid-template-columns:1fr;

    }


    .contact-grid{

        grid-template-columns:1fr;

    }


    .footer-grid{

        grid-template-columns:1fr;

    }


    .footer-bottom{

        flex-direction:column;

        align-items:center;

        text-align:center;

    }


    .logo-metal{

        font-size:20px;

    }


    .logo-asesoria{

        font-size:10px;

    }

}


/* =========================================================
   RESPONSIVE 450
========================================================= */

@media(max-width:450px){

    .gallery-grid{

        grid-template-columns:1fr;

    }


    .gallery-item{

        aspect-ratio:16/10;

    }


    .section-heading h2{

        font-size:34px;

    }


    .service-card{

        padding:25px;

    }


    .plan-card{

        padding:27px;

    }


    #btn-top{

        right:15px;

        bottom:15px;

    }

}
/* =====================================================
   VIDEOS - EFECTO ROJO PLUGMETAL
===================================================== */

.video-card {
    position: relative;
    z-index: 1;
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.video-card::before {
    content: "";
    position: absolute;
    left: 8%;
    right: 8%;
    bottom: -18px;
    height: 70%;
    background: rgba(150, 0, 0, .55);
    filter: blur(35px);
    opacity: .55;
    z-index: -1;
    transition:
        opacity .4s ease,
        transform .4s ease;
}

.video-card:hover {
    transform: translateY(-8px);
}

.video-card:hover::before {
    opacity: .95;
    transform: scale(1.08);
}

.video-wrapper {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(180, 0, 0, .45);
    box-shadow:
        0 0 15px rgba(120, 0, 0, .25),
        0 0 35px rgba(120, 0, 0, .15);
    transition:
        border-color .4s ease,
        box-shadow .4s ease;
}

.video-card:hover .video-wrapper {
    border-color: rgba(220, 0, 0, .85);

    box-shadow:
        0 0 20px rgba(180, 0, 0, .55),
        0 0 50px rgba(120, 0, 0, .35);
}


/* =====================================================
   GALERÍA
===================================================== */

.gallery-item {
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.gallery-item::before {
    content: "";
    position: absolute;
    inset: 12%;
    background: rgba(150, 0, 0, .55);
    filter: blur(30px);
    opacity: .25;
    z-index: -1;
    transition:
        opacity .4s ease,
        transform .4s ease;
}

.gallery-item:hover::before {
    opacity: .8;
    transform: scale(1.1);
}

.gallery-link {
    position: relative;
    display: block;
    overflow: hidden;
    cursor: zoom-in;
}

.gallery-link img {
    display: block;
    width: 100%;
    transition:
        transform .6s ease,
        filter .5s ease;
}

.gallery-item:hover img {
    transform: scale(1.06);
    filter: brightness(.72);
}

.gallery-overlay {
    position: absolute;
    inset: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 10px;

    background:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.05),
            rgba(120,0,0,.35)
        );

    color: #fff;

    opacity: 0;

    transition: opacity .35s ease;
}

.gallery-link:hover .gallery-overlay {
    opacity: 1;
}

.gallery-overlay i {
    font-size: 2rem;
    text-shadow:
        0 0 15px rgba(255,0,0,.8);
}

.gallery-overlay span {
    font-size: .9rem;
    text-transform: uppercase;
    letter-spacing: 2px;
}


/* =====================================================
   LIGHTBOX / POPUP
===================================================== */

#lightbox {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 50px;

    background:
        rgba(0,0,0,.96);

    backdrop-filter: blur(10px);

    z-index: 99999;

    opacity: 0;
    visibility: hidden;

    transition:
        opacity .3s ease,
        visibility .3s ease;
}

#lightbox.active {
    opacity: 1;
    visibility: visible;
}


/* brilho vermelho atrás da foto */

#lightbox::before {
    content: "";

    position: absolute;

    width: 55vw;
    height: 55vh;

    background:
        radial-gradient(
            ellipse,
            rgba(170,0,0,.32),
            rgba(80,0,0,.12),
            transparent 70%
        );

    filter: blur(30px);

    pointer-events: none;
}


/* imagem */

#lightbox-image {
    position: relative;
    z-index: 2;

    max-width: 88vw;
    max-height: 86vh;

    object-fit: contain;

    border: 1px solid rgba(220,0,0,.55);

    box-shadow:
        0 0 25px rgba(180,0,0,.45),
        0 0 70px rgba(100,0,0,.35);

    transform: scale(.92);

    transition:
        transform .35s ease;
}

#lightbox.active #lightbox-image {
    transform: scale(1);
}


/* =====================================================
   BOTÃO FECHAR
===================================================== */

#lightbox-close {
    position: absolute;

    top: 20px;
    right: 25px;

    width: 48px;
    height: 48px;

    border: 1px solid rgba(220,0,0,.5);

    background: rgba(0,0,0,.7);

    color: #fff;

    font-size: 1.4rem;

    cursor: pointer;

    z-index: 10;

    transition:
        background .3s ease,
        border-color .3s ease,
        transform .3s ease;
}

#lightbox-close:hover {
    background: #9b0000;
    border-color: #f00;
    transform: rotate(90deg);
}


/* =====================================================
   SETAS
===================================================== */

#lightbox-prev,
#lightbox-next {
    position: absolute;

    top: 50%;

    transform: translateY(-50%);

    width: 58px;
    height: 70px;

    border: 1px solid rgba(200,0,0,.5);

    background: rgba(0,0,0,.65);

    color: #fff;

    font-size: 2rem;

    cursor: pointer;

    z-index: 10;

    transition:
        background .3s ease,
        border-color .3s ease,
        box-shadow .3s ease,
        transform .3s ease;
}

#lightbox-prev {
    left: 25px;
}

#lightbox-next {
    right: 25px;
}

#lightbox-prev:hover,
#lightbox-next:hover {
    background: #8d0000;

    border-color: #ff0000;

    box-shadow:
        0 0 20px rgba(220,0,0,.6);
}

#lightbox-prev:hover {
    transform:
        translateY(-50%)
        translateX(-4px);
}

#lightbox-next:hover {
    transform:
        translateY(-50%)
        translateX(4px);
}


/* =====================================================
   CONTADOR
===================================================== */

#lightbox-counter {
    position: absolute;

    bottom: 20px;
    left: 50%;

    transform: translateX(-50%);

    color: #fff;

    font-size: .85rem;

    letter-spacing: 3px;

    text-transform: uppercase;

    z-index: 10;

    opacity: .8;
}


/* =====================================================
   MOBILE
===================================================== */

@media (max-width: 768px) {

    #lightbox {
        padding: 25px;
    }

    #lightbox-image {
        max-width: 94vw;
        max-height: 78vh;
    }

    #lightbox-prev,
    #lightbox-next {
        width: 45px;
        height: 55px;

        font-size: 1.4rem;
    }

    #lightbox-prev {
        left: 8px;
    }

    #lightbox-next {
        right: 8px;
    }

    #lightbox-close {
        top: 10px;
        right: 10px;

        width: 42px;
        height: 42px;
    }

}
/* =====================================================
   QUIÉNES SOMOS - CONTENIDO
===================================================== */

#quienes-somos .about-content {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    display: block;
}

#quienes-somos .about-text {
    width: 100%;
    max-width: 100%;
    font-size: 18px;
    line-height: 1.8;
    text-align: justify;
}

#quienes-somos .about-text p {
    margin: 0 0 22px;
}

#quienes-somos .about-text h1,
#quienes-somos .about-text h2,
#quienes-somos .about-text h3 {
    margin-top: 30px;
    margin-bottom: 18px;
    line-height: 1.3;
}

#quienes-somos .about-text ul {
    margin: 20px 0 25px;
    padding-left: 30px;
}

#quienes-somos .about-text li {
    margin-bottom: 12px;
    line-height: 1.7;
}

#quienes-somos .about-decoration {
    margin-top: 40px;
}
/* =====================================================
   SERVICIOS - ANCHO COMPLETO
===================================================== */

#servicios .container {
    width: 100%;
    max-width: 1500px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 40px;
    padding-right: 40px;
    box-sizing: border-box;
}

/* El grid deja de crear columnas estrechas */

#servicios .services-grid {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
}

/* Tarjeta ocupa todo el ancho */

#servicios .service-card {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

/* Contenido */

#servicios .service-description {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;

    font-size: 18px;
    line-height: 1.8;

    text-align: justify;
}

/* Párrafos */

#servicios .service-description p {
    width: 100%;
    margin-top: 0;
    margin-bottom: 22px;
}

/* Títulos */

#servicios .service-description h1,
#servicios .service-description h2,
#servicios .service-description h3 {
    width: 100%;
    max-width: none;
    text-align: left;
}

#servicios .service-description h1 {
    font-size: 34px;
    margin: 35px 0 20px;
}

#servicios .service-description h2 {
    font-size: 30px;
    margin: 30px 0 18px;
}

#servicios .service-description h3 {
    font-size: 24px;
    margin: 28px 0 15px;
}

/* Listas */

#servicios .service-description ul,
#servicios .service-description ol {
    width: auto;
    margin: 20px 0 30px;
    padding-left: 35px;
}

#servicios .service-description li {
    margin-bottom: 12px;
    line-height: 1.7;
}

/* Separadores */

#servicios .service-description hr {
    width: 100%;
    margin: 45px 0;
}

/* =====================================================
   MÓVIL
===================================================== */

@media (max-width: 768px) {

    #servicios .container {
        padding-left: 20px;
        padding-right: 20px;
    }

    #servicios .service-description {
        font-size: 17px;
        line-height: 1.7;
        text-align: left;
    }

    #servicios .service-description h1 {
        font-size: 28px;
    }

    #servicios .service-description h2 {
        font-size: 25px;
    }

    #servicios .service-description h3 {
        font-size: 21px;
    }

}
/* =====================================================
   CAJAS DE LECTURA CON SCROLL
   QUIÉNES SOMOS + SERVICIOS
===================================================== */


/* =====================================================
   QUIÉNES SOMOS
===================================================== */

#quienes-somos .about-text {
    position: relative;

    max-height: 500px;

    overflow-y: auto;

    padding-right: 25px;

    box-sizing: border-box;

    scrollbar-width: thin;
}


/* =====================================================
   SERVICIOS
===================================================== */

#servicios .service-description {
    position: relative;

    max-height: 650px;

    overflow-y: auto;

    padding-right: 25px;

    box-sizing: border-box;

    scrollbar-width: thin;
}


/* =====================================================
   BARRA DE SCROLL - CHROME / EDGE / SAFARI
===================================================== */

#quienes-somos .about-text::-webkit-scrollbar,
#servicios .service-description::-webkit-scrollbar {
    width: 8px;
}


#quienes-somos .about-text::-webkit-scrollbar-track,
#servicios .service-description::-webkit-scrollbar-track {
    background: rgba(255,255,255,.05);

    border-radius: 10px;
}


#quienes-somos .about-text::-webkit-scrollbar-thumb,
#servicios .service-description::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,.35);

    border-radius: 10px;
}


#quienes-somos .about-text::-webkit-scrollbar-thumb:hover,
#servicios .service-description::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,.65);
}


/* =====================================================
   EFECTO DE PROFUNDIDAD EN EL BORDE INFERIOR
===================================================== */

#quienes-somos .about-text,
#servicios .service-description {
    mask-image: linear-gradient(
        to bottom,
        black 0%,
        black 92%,
        transparent 100%
    );

    -webkit-mask-image: linear-gradient(
        to bottom,
        black 0%,
        black 92%,
        transparent 100%
    );
}


/* =====================================================
   MÓVILES
===================================================== */

@media (max-width: 768px) {

    #quienes-somos .about-text {
        max-height: 450px;
        padding-right: 18px;
    }

    #servicios .service-description {
        max-height: 500px;
        padding-right: 18px;
    }

}


/* =====================================================
   TELÉFONOS PEQUEÑOS
===================================================== */

@media (max-width: 480px) {

    #quienes-somos .about-text {
        max-height: 400px;
    }

    #servicios .service-description {
        max-height: 450px;
    }

}

/* =====================================================
   FAQ - DOS COLUMNAS
===================================================== */

.faq-list{

    display:grid;

    grid-template-columns:
        repeat(2,minmax(0,1fr));

    gap:0 35px;

    max-width:1100px;

    margin:0 auto;

}


.faq-item{

    border-bottom:1px solid #292929;

}


/* =====================================================
   FAQ - PREGUNTA
===================================================== */

.faq-question{

    width:100%;

    padding:22px 5px;

    background:none;

    border:0;

    color:#fff;

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:20px;

    text-align:left;

    font-size:18px;

    font-weight:bold;

    cursor:pointer;

}


.faq-question i{

    color:var(--rojo);

    transition:.3s;

    flex-shrink:0;

}


.faq-item.active .faq-question i{

    transform:rotate(45deg);

}


/* =====================================================
   FAQ - RESPUESTA
===================================================== */

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:
        max-height .4s ease;

}


.faq-answer p{

    padding:
        0 20px 22px 5px;

    color:#999;

    line-height:1.8;

    margin:0 0 18px;

}


.faq-answer p:last-child{

    margin-bottom:0;

}


/* =====================================================
   FAQ - MÓVIL
===================================================== */

@media(max-width:700px){

    .faq-list{

        grid-template-columns:1fr;

        gap:0;

    }


    .faq-question{

        font-size:17px;

        padding:20px 5px;

    }


    .faq-answer p{

        padding-right:5px;

    }

}