
/*==================================================
FEDE MECÁNICA
Landing Premium
Autor: Agus Pascal para LandingPro 
==================================================*/

/*============================
GOOGLE FONTS
=============================*/

:root{

    --rojo:#d90429;
    --rojo-hover:#ef233c;

    --negro:#0d0d0d;
    --gris-1:#161616;
    --gris-2:#222;
    --gris-3:#555;

    --blanco:#ffffff;
    --gris-claro:#f2f2f2;

    --sombra:0 15px 40px rgba(0,0,0,.35);

    --radio:18px;

    --transition:.35s;

}

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

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    background:var(--negro);

    color:white;

    overflow-x:hidden;

    line-height:1.7;

}

img{

    max-width:100%;

    display:block;

}

a{

    text-decoration:none;

    color:inherit;

}

ul{

    list-style:none;

}

.container{

    width:min(1180px,92%);

    margin:auto;

}

/*============================
SCROLL
=============================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#111;

}

::-webkit-scrollbar-thumb{

    background:var(--rojo);

    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--rojo-hover);

}

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

#preloader{

    position:fixed;

    inset:0;

    background:#000;

    z-index:99999;

    display:flex;

    justify-content:center;

    align-items:center;

}

#preloader img{

    width:180px;

    animation:pulse 1.8s infinite;

}

@keyframes pulse{

0%{

transform:scale(1);

}

50%{

transform:scale(1.08);

}

100%{

transform:scale(1);

}

}

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

#header{

    position:fixed;

    top:0;

    left:0;

    width:100%;

    z-index:999;

    transition:.4s;

}

#header.scrolled{

    background:rgba(10,10,10,.95);

    backdrop-filter:blur(14px);

    box-shadow:0 8px 30px rgba(0,0,0,.45);

}

.nav-container{

    height:90px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo img{

    width:130px;

}

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

#navbar ul{

    display:flex;

    gap:45px;

}

#navbar a{

    font-size:15px;

    font-weight:500;

    transition:.3s;

    position:relative;

}

#navbar a::after{

content:"";

position:absolute;

left:0;

bottom:-8px;

width:0;

height:2px;

background:var(--rojo);

transition:.3s;

}

#navbar a:hover{

color:var(--rojo);

}

#navbar a:hover::after{

width:100%;

}

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

.btn-nav{

padding:14px 26px;

background:var(--rojo);

border-radius:40px;

font-weight:600;

transition:.35s;

}

.btn-nav:hover{

background:var(--rojo-hover);

transform:translateY(-4px);

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

}

/*============================
HAMBURGUESA
=============================*/

#menu-btn{

display:none;

width:38px;

cursor:pointer;

}

#menu-btn span{

display:block;

height:4px;

background:white;

margin:7px 0;

border-radius:20px;

transition:.4s;

}

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

#mobile-menu{

position:fixed;

top:0;

right:-100%;

width:100%;

height:100vh;

background:#090909;

display:flex;

justify-content:center;

align-items:center;

transition:.5s;

z-index:998;

}

#mobile-menu.active{

right:0;

}

#mobile-menu ul{

text-align:center;

}

#mobile-menu li{

margin:30px 0;

}

#mobile-menu a{

font-size:28px;

font-family:'Bebas Neue',sans-serif;

letter-spacing:2px;

}

.mobile-btn{

background:var(--rojo);

padding:15px 35px;

border-radius:40px;

}

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

#inicio{

position:relative;

height:100vh;

display:flex;

align-items:center;

background:linear-gradient(135deg,#000 0%,#1a1a1a 100%);

overflow:hidden;

}

#inicio::before{

content:"";

position:absolute;

inset:0;

background:
repeating-linear-gradient(
    90deg,
    transparent 0px,
    rgba(255,255,255,.015) 1px,
    transparent 2px,
    transparent 5px
),
repeating-linear-gradient(
    0deg,
    transparent 0px,
    rgba(255,255,255,.008) 1px,
    transparent 3px,
    transparent 9px
),
radial-gradient(
    ellipse at 30% 50%,
    rgba(255,255,255,.03) 0%,
    transparent 70%
);

opacity:.35;

mix-blend-mode:overlay;

pointer-events:none;

z-index:1;

}

#inicio::after{

content:"";

position:absolute;

width:700px;

height:700px;

right:-250px;

bottom:-250px;

background:radial-gradient(circle,
    rgba(217,4,41,.22) 0%,
    rgba(217,4,41,.08) 35%,
    transparent 70%);

filter:blur(70px);

pointer-events:none;

z-index:1;

}

.hero-overlay{

position:absolute;

inset:0;

background:
linear-gradient(
90deg,
rgba(0,0,0,.88),
rgba(0,0,0,.65),
rgba(0,0,0,.45)
);

}

.hero-content{

position:relative;

z-index:5;

width:100%;

padding:0 40px;

}

.hero-flex{

display:flex;

align-items:center;

justify-content:space-between;

gap:20px;

max-width:1074px;

margin:0 auto;

}

.hero-text{

flex:1;

max-width:700px;

}

.hero-logo{

flex-shrink:0;

max-width:380px;

}

.hero-logo img{

width:100%;

height:auto;

filter:drop-shadow(0 0 40px rgba(217,4,41,.25));

animation:heroLogoFloat 4s ease-in-out infinite;

}

@keyframes heroLogoFloat{

0%,100%{transform:translateY(0);}

50%{transform:translateY(-12px);}

}

.hero-content h1{

font-family:'Bebas Neue',sans-serif;

font-size:7rem;

letter-spacing:3px;

line-height:.9;

margin-bottom:25px;

}

.hero-content p{

font-size:22px;

max-width:650px;

color:#ddd;

margin-bottom:40px;

}

.hero-buttons{

display:flex;

gap:20px;

flex-wrap:wrap;

}

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

.btn-primary,
.btn-secondary{

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

    padding:16px 34px;

    border-radius:50px;

    font-weight:600;

    transition:all .35s ease;

}

.btn-primary{

    background:linear-gradient(135deg,var(--rojo),#ff355d);

    color:#fff;

    box-shadow:0 12px 35px rgba(217,4,41,.35);

}

.btn-primary:hover{

    transform:translateY(-5px);

    box-shadow:0 18px 40px rgba(217,4,41,.45);

}

.btn-secondary{

    border:2px solid rgba(255,255,255,.25);

    color:#fff;

    backdrop-filter:blur(8px);

}

.btn-secondary:hover{

    background:#fff;

    color:#111;

}

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

.hero-scroll{

    position:absolute;

    bottom:30px;

    left:50%;

    transform:translateX(-50%);

    z-index:20;

}

.hero-scroll a{

    display:flex;

    width:55px;

    height:55px;

    border-radius:50%;

    justify-content:center;

    align-items:center;

    border:2px solid rgba(255,255,255,.3);

    animation:bounce 2s infinite;

}

.hero-scroll i{

    font-size:20px;

}

@keyframes bounce{

0%,20%,50%,80%,100%{

transform:translateY(0);

}

40%{

transform:translateY(-10px);

}

60%{

transform:translateY(-5px);

}

}

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

section{

    padding:110px 0;

}

.section-title{

    text-align:center;

    margin-bottom:70px;

}

.section-title span{

    color:var(--rojo);

    font-weight:700;

    letter-spacing:2px;

    font-size:14px;

}

.section-title h2{

    font-family:'Bebas Neue',sans-serif;

    font-size:60px;

    margin:15px 0;

    letter-spacing:2px;

}

.section-title p{

    color:#bbb;

    max-width:720px;

    margin:auto;

}

/*==================================================
SOBRE
==================================================*/

#sobre{

    background:#121212;

    position:relative;

}

.about-grid{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    align-items:center;

}

.about-image{

    overflow:hidden;

    border-radius:25px;

}

.about-image img{

    transition:.6s;

}

.about-image:hover img{

    transform:scale(1.08);

}

.about-content h3{

    font-size:38px;

    margin-bottom:25px;

    font-family:'Bebas Neue',sans-serif;

    letter-spacing:1px;

}

.about-content p{

    color:#d0d0d0;

    margin-bottom:20px;

}

.about-features{

    margin-top:40px;

    display:grid;

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

    gap:18px;

}

.feature{

    background:#1d1d1d;

    padding:18px;

    border-radius:14px;

    display:flex;

    align-items:center;

    gap:15px;

    transition:.35s;

    border:1px solid transparent;

}

.feature:hover{

    border-color:var(--rojo);

    transform:translateY(-6px);

}

.feature i{

    color:var(--rojo);

    font-size:22px;

}

/*==================================================
ESTADÍSTICAS
==================================================*/

.stats{

    margin-top:90px;

    display:grid;

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

    gap:30px;

}

.stat-card{

    background:linear-gradient(180deg,#1c1c1c,#141414);

    border-radius:20px;

    padding:45px 30px;

    text-align:center;

    transition:.4s;

    border:1px solid rgba(255,255,255,.05);

}

.stat-card:hover{

    transform:translateY(-10px);

    border-color:var(--rojo);

    box-shadow:0 20px 45px rgba(217,4,41,.18);

}

.stat-card i{

    font-size:42px;

    color:var(--rojo);

    margin-bottom:20px;

}

.stat-card h3{

    font-family:'Bebas Neue',sans-serif;

    font-size:54px;

    letter-spacing:2px;

}

.stat-card p{

    color:#bdbdbd;

}

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

#servicios{

    background:#0f0f0f;

}

.services-grid{

    display:grid;

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

    gap:30px;

}

.service-card{

    background:#171717;

    border-radius:22px;

    padding:45px 35px;

    text-align:center;

    transition:.35s;

    border:1px solid rgba(255,255,255,.06);

    position:relative;

    overflow:hidden;

}

.service-card::before{

    content:"";

    position:absolute;

    top:0;

    left:-100%;

    width:100%;

    height:4px;

    background:var(--rojo);

    transition:.4s;

}

.service-card:hover::before{

    left:0;

}

.service-card:hover{

    transform:translateY(-10px);

    border-color:var(--rojo);

    box-shadow:0 18px 40px rgba(217,4,41,.18);

}

.service-card i{

    font-size:52px;

    color:var(--rojo);

    margin-bottom:25px;

}

.service-card h3{

    font-size:24px;

    margin-bottom:15px;

    font-family:'Bebas Neue',sans-serif;

    letter-spacing:1px;

}

.service-card p{

    color:#c9c9c9;

    font-size:15px;

}

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

#trabajos{
    background:#141414;
}

.gallery{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:25px;
}

.gallery-item{
    position:relative;
    overflow:hidden;
    border-radius:18px;
    cursor:pointer;
}

.gallery-item img{
    width:100%;
    height:300px;
    object-fit:cover;
    transition:.5s;
}

.gallery-overlay{
    position:absolute;
    inset:0;
    background:rgba(217,4,41,.82);
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    transition:.4s;
}

.gallery-overlay i{
    font-size:42px;
    color:#fff;
    transform:scale(.5);
    transition:.4s;
}

.gallery-item:hover img{
    transform:scale(1.12);
}

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

.gallery-item:hover .gallery-overlay i{
    transform:scale(1);
}

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

#faq{
    background:#101010;
}

.accordion{
    max-width:900px;
    margin:auto;
}

.accordion-item{
    background:#1a1a1a;
    margin-bottom:18px;
    border-radius:14px;
    overflow:hidden;
}

.accordion-header{
    width:100%;
    border:none;
    background:none;
    color:#fff;
    padding:24px 30px;
    cursor:pointer;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:18px;
    font-weight:600;
}

.accordion-header i{
    color:var(--rojo);
    transition:.3s;
}

.accordion-body{
    max-height:0;
    overflow:hidden;
    transition:.35s;
}

.accordion-body p{
    padding:0 30px 25px;
    color:#c8c8c8;
}

.accordion-item.active .accordion-body{
    max-height:250px;
}

.accordion-item.active i{
    transform:rotate(45deg);
}

/*==================================================
CTA
==================================================*/

#cta{
    text-align:center;
    background:
    linear-gradient(rgba(0,0,0,.72),rgba(0,0,0,.72)),
    url("../img/cta.jpg") center/cover;
}

#cta h2{
    font-family:'Bebas Neue',sans-serif;
    font-size:64px;
    margin-bottom:15px;
}

#cta p{
    color:#ddd;
    margin-bottom:35px;
    font-size:20px;
}

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

footer{
    background:#090909;
    padding:70px 0 25px;
}

.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:40px;
}

.footer-logo{
    width:180px;
    margin-bottom:20px;
}

footer h3{
    margin-bottom:20px;
    font-family:'Bebas Neue',sans-serif;
    letter-spacing:1px;
}

footer p{
    color:#bfbfbf;
    margin-bottom:10px;
}

.social{
    display:flex;
    gap:15px;
}

.social a{
    width:46px;
    height:46px;
    border-radius:50%;
    background:#1b1b1b;
    display:flex;
    justify-content:center;
    align-items:center;
    transition:.3s;
}

.social a:hover{
    background:var(--rojo);
    transform:translateY(-5px);
}

.copyright{
    margin-top:45px;
    text-align:center;
    color:#888;
    border-top:1px solid #222;
    padding-top:20px;
}

/*==================================================
WHATSAPP
==================================================*/

.whatsapp{
    position:fixed;
    right:28px;
    bottom:28px;
    width:68px;
    height:68px;
    border-radius:50%;
    background:#25D366;
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:34px;
    z-index:999;
    box-shadow:0 15px 35px rgba(37,211,102,.45);
    animation:whatsapp 2.5s infinite;
    transition:.3s;
}

.whatsapp:hover{
    transform:scale(1.1);
}

@keyframes whatsapp{

0%{
transform:scale(1);
}

50%{
transform:scale(1.12);
}

100%{
transform:scale(1);
}

}

/*==================================================
FORMULARIO MODAL
==================================================*/

#formModal{

display:none;

position:fixed;

z-index:99999;

inset:0;

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

justify-content:center;

align-items:center;

padding:20px;

}

#formModal.show{

display:flex;

}

.form-modal-content{

background:#1a1a1a;

padding:50px 40px;

border-radius:20px;

max-width:500px;

width:100%;

position:relative;

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

}

.form-modal-close{

position:absolute;

top:15px;

right:20px;

font-size:34px;

color:#fff;

cursor:pointer;

transition:.3s;

line-height:1;

}

.form-modal-close:hover{

color:var(--rojo);

}

.form-modal-content h2{

font-family:'Bebas Neue',sans-serif;

font-size:40px;

margin-bottom:8px;

}

.form-modal-content p{

color:#bbb;

margin-bottom:25px;

}

#contactForm input,

#contactForm textarea{

width:100%;

padding:15px;

margin-bottom:15px;

border:1px solid #333;

background:#111;

color:#fff;

border-radius:10px;

font-family:'Poppins',sans-serif;

font-size:15px;

outline:none;

transition:.3s;

}

#contactForm input:focus,

#contactForm textarea:focus{

border-color:var(--rojo);

}

#contactForm button{

width:100%;

border:none;

cursor:pointer;

font-size:16px;

padding:16px;

}

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

#lightbox{

display:none;

position:fixed;

z-index:99999;

inset:0;

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

justify-content:center;

align-items:center;

padding:40px;

}

#lightbox.show{

display:flex;

}

#lightbox img{

max-width:100%;

max-height:100%;

object-fit:contain;

border-radius:8px;

}

#lightbox-close{

position:absolute;

top:25px;

right:35px;

font-size:48px;

color:#fff;

cursor:pointer;

transition:.3s;

line-height:1;

}

#lightbox-close:hover{

color:var(--rojo);

}

/*==================================================
MAPA
==================================================*/

#mapa{

background:#0a0a0a;

padding-bottom:0;

}

#mapa .section-title{

margin-bottom:50px;

}

.map-container{

width:100%;

overflow:hidden;

}

.map-container iframe{

display:block;

filter:grayscale(1) invert(.92) hue-rotate(180deg);

}

/*==================================================
VOLVER ARRIBA
==================================================*/

#toTop{
    position:fixed;
    left:25px;
    bottom:28px;
    width:55px;
    height:55px;
    border:none;
    border-radius:50%;
    background:var(--rojo);
    color:#fff;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transition:.35s;
    font-size:20px;
    box-shadow:0 10px 25px rgba(217,4,41,.35);
}

#toTop.show{
    opacity:1;
    visibility:visible;
}

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

@media(max-width:1199px){

    .hero-logo{
        max-width:250px;
    }

}

@media(max-width:991px){

    .about-grid{
        grid-template-columns:1fr;
    }

    .services-grid{
        grid-template-columns:repeat(2,1fr);
    }

    .gallery{
        grid-template-columns:repeat(2,1fr);
    }

    .stats{
        grid-template-columns:1fr;
    }

    .footer-grid{
        grid-template-columns:1fr;
        text-align:center;
    }

    .social{
        justify-content:center;
    }

    .hero-flex{
        flex-direction:column;
        text-align:center;
        gap:40px;
    }

    .hero-text{
        max-width:100%;
    }

    .hero-buttons{
        justify-content:center;
    }

    .hero-logo{
        max-width:200px;
    }

}

@media(max-width:768px){

    #navbar,
    .btn-nav{
        display:none;
    }

    #menu-btn{
        display:block;
        z-index:9999;
    }

    .hero-content h1{
        font-size:4.5rem;
    }

    .hero-content p{
        font-size:18px;
    }

    .hero-buttons{
        flex-direction:column;
        align-items:center;
    }

    .section-title h2{
        font-size:44px;
    }

    .about-features{
        grid-template-columns:1fr;
    }

    .services-grid{
        grid-template-columns:1fr;
    }

    .gallery{
        grid-template-columns:1fr;
    }

    #cta h2{
        font-size:46px;
    }

}

@media(max-width:480px){

    .hero-content h1{
        font-size:3.5rem;
    }

    .btn-primary,
    .btn-secondary{
        width:100%;
        justify-content:center;
    }

    .whatsapp{
        width:60px;
        height:60px;
        font-size:28px;
    }

}