/* =====================================
   RESET
===================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Gothic A1', sans-serif;
    background:#050505;
    color:#fff;
    line-height:1.6;
    overflow-x:hidden;
}

img{
    width:100%;
    display:block;
}

a{
    text-decoration:none;
}

section{
    padding:100px 8%;
}


/* =====================================
   NAVBAR
===================================== */

.navbar{

    position:fixed;
    top:0;
    left:0;

    width:100%;

    padding:20px 8%;

    display:flex;
    justify-content:space-between;
    align-items:center;

    background:rgba(0,0,0,.35);

    backdrop-filter:blur(10px);

    z-index:1000;
}

.logo-nav{
    width:180px;
}

.menu-btn{

    background:none;
    border:none;

    color:#fff;

    font-size:1.1rem;
    cursor:pointer;
}


/* =====================================
   HERO
===================================== */

.hero{

    position: relative;

    width:100%;
    min-height:100vh;

    background-image:
        linear-gradient(
            rgba(0,0,0,.3),
            rgba(0,0,0,.5)
        ),
        url("../img/santiago-neon.webp");

    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;

    display:flex;
    justify-content:center;
    align-items:center;

    text-align:center;

    padding:120px 5%;
}

.hero-contenido{

    position:relative;
    z-index:10;
     margin-top: -50px;

    max-width:1200px;
}

.hero-logo{

    width:100%;
    max-width:900px;

    margin:auto;
}

.descripcion{

    font-size:1.4rem;

    margin-top:30px;
    margin-bottom:50px;

    color:white;
}

.hero-botones{

    display:flex;
    justify-content:center;
    gap:30px;

    flex-wrap:wrap;
}

.scroll-indicator{

    position:absolute;

    bottom:40px;
    left:50%;

    transform:translateX(-50%);

    font-size:2rem;

    animation:flotar 2s infinite;
}

@keyframes flotar{

    0%,100%{
        transform:translate(-50%,0);
    }

    50%{
        transform:translate(-50%,10px);
    }
}

/* =====================================
   BOTONES
===================================== */

.btn-neon{

    padding:18px 38px;

    border:2px solid #ff00ff;
    border-radius:12px;

    color:#ffffff;

    box-shadow:
        0 0 10px rgba(255,0,255,.7),
        0 0 25px rgba(255,0,255,.4);

    transition:.3s;
}

.btn-neon:hover{

    transform:translateY(-5px);

    box-shadow:
        0 0 15px rgba(255,0,255,1),
        0 0 40px rgba(255,0,255,.8);

    background:rgba(255,0,255,.12);
}

.btn-secundario{

    padding:18px 38px;

    border:2px solid #00d9ff;
    border-radius:12px;

    color:#fff;

    transition:.3s;
}

.btn-secundario:hover{

    transform:translateY(-5px);

    box-shadow:
        0 0 15px rgba(0,217,255,.8);

    background:rgba(0,217,255,.1);
}

.grande{
    font-size:1.2rem;
}


/* =====================================
   TITULOS
===================================== */

h2{

    font-size:3rem;
    margin-bottom:60px;

    position:relative;
}

h2::after{

    content:"";

    width:80px;
    height:4px;

    background:linear-gradient(to right,#ff00ff,#00d9ff);

    display:block;

    margin-top:15px;
}


/* =====================================
   SERVICIOS
===================================== */

.cards{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));

    gap:30px;
}

.card{

    background:#0d0d0d;

    border:1px solid rgba(255,255,255,.08);

    border-radius:20px;

    padding:40px;

    transition:.4s;
}

.card:hover{

    transform:translateY(-10px);

    box-shadow:
        0 0 30px rgba(255,0,255,.18);
}

.icono{

    font-size:3rem;
    margin-bottom:20px;
}

.card h3{

    margin-bottom:20px;
}


/* =====================================
   GALERIA
===================================== */

.galeria{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(280px,1fr));

    gap:20px;

    margin-bottom:50px;
}

.galeria img{

    height:320px;

    object-fit:cover;

    border-radius:15px;

    transition:.4s;
}

.galeria img:hover{

    transform:scale(1.03);

    box-shadow:
        0 0 25px rgba(0,217,255,.35);
}


/* =====================================
   PROCESO
===================================== */

.pasos{

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(240px,1fr));

    gap:30px;
}

.paso{

    background:#0d0d0d;

    border-radius:20px;

    padding:40px;
    text-align:center;
}

.paso span{

    width:70px;
    height:70px;

    border-radius:50%;

    display:flex;
    justify-content:center;
    align-items:center;

    margin:auto auto 25px;

    background:linear-gradient(
        45deg,
        #ff00ff,
        #00d9ff
    );

    font-size:2rem;
    font-weight:700;
}


/* =====================================
   NOSOTROS
===================================== */

.nosotros{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:60px;

    align-items:center;
}

.texto p{

    margin-bottom:25px;
}

.frase{

    color:#ff00ff;
    font-size:1.5rem;

    margin:40px 0;
}

.imagen img{

    border-radius:20px;
}


/* =====================================
   CTA FINAL
===================================== */

.cta-final{

    text-align:center;

    background:
    linear-gradient(
        rgba(0,0,0,.8),
        rgba(0,0,0,.8)
    ),
    url("../img/santiago-neon.webp");

    background-size:cover;
    background-position:center;
}

.cta-final h2{

    font-size:4rem;
}

.cta-final p{

    font-size:2rem;
    margin-bottom:40px;
}


/* =====================================
   FOOTER
===================================== */

footer{

    padding:80px 8%;

    background:#000;

    border-top:1px solid rgba(255,255,255,.08);

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(250px,1fr));

    gap:50px;
}

footer ul{
    list-style:none;
}

footer li{
    margin-bottom:15px;
}

footer a{
    color:#ccc;
}

footer a:hover{
    color:#00d9ff;
}

footer p{
    color:#b8b8b8;
}

.footer-logo img{

    width:300px;
    margin-bottom:20px;
}


/* =====================================
   RESPONSIVE
===================================== */

@media(max-width:900px){

    .hero-logo{
        max-width:100%;
    }

    h2{
        font-size:2.2rem;
    }

    .cta-final h2{
        font-size:2.8rem;
    }

    .nosotros{
        grid-template-columns:1fr;
    }

    .navbar{
        padding:15px 5%;
    }

    section{
        padding:80px 5%;
    }

}

@media(max-width:600px){

    .descripcion{
        font-size:1rem;
    }

    .hero-botones{

        flex-direction:column;
        align-items:center;
    }

    .btn-neon,

    .btn-secundario{

        width:100%;
        max-width:320px;

        text-align:center;
    }

    .cta-final p{
        font-size:1.4rem;
    }

    .hero-logo{

    max-width:90%;

    margin:0 auto;

    display:block;

    transform:translateX (30px);
}

@media(max-width:600px){

    .hero-contenido{

        display:flex;
        flex-direction:column;
        align-items:center;
    }

}


.hero-logo{
    transform: translateX(20px) !important;
}

.hero-logo{
        transform: translateX(10px);
    }

    .descripcion{
        margin-top:25px;
        margin-bottom:35px;
    }

    .logo-nav{
        width:110px;
    }

    .btn-neon:active,
    .btn-secundario:active{
        transform:scale(.97);
    }

    @media(max-width:600px){

    .btn-neon,
    .btn-secundario{

        width:fit-content;

        margin:0 auto;
        display:block;
        
         padding:8px 15px;
        font-size:1rem;
    }
    
    

}

@media(max-width:600px){

    footer{

        grid-template-columns:1fr;

        gap:50px;

        text-align:center;
    }

    .footer-logo{

        padding-right:0;
    }

    footer > div{

        display:flex;
        flex-direction:column;
        align-items:center;
    }

}

}


.hero-logo{
    width: 100%;
    max-width: 900px;

    position: relative;
    left: -35px;
}


.navbar{
    background:transparent;
}


.btn-neon,
.btn-secundario{

    padding:20px 45px;
    font-size:1.1rem;
}

.icono-neon{

    width:80px;
    height:80px;

    object-fit:contain;

    margin-bottom:30px;

    filter:
        drop-shadow(0 0 10px rgba(255,0,255,.4));

}

.icono-neon{

    transition:.4s;
}

.card:hover .icono-neon{

    transform:scale(1.1);

    filter:
        drop-shadow(0 0 20px rgba(255,0,255,.8));
}

footer{

    background:
    linear-gradient(
        135deg,
        #000000 0%,
        #090018 45%,
        #001220 100%
    );

    border-top:1px solid rgba(255,255,255,.05);
}



.social a:hover{

    color:#00d9ff;

    transform:translateY(-3px);

    text-shadow:
        0 0 10px #00d9ff;
}


footer {

    padding: 80px 8%;
    background: #000;

    border-top: none;

    position: relative;
}

footer::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 2px;

    background: linear-gradient(
        to right,
        transparent,
        #ff00ff,
        #00d9ff,
        transparent
    );
}

footer {

    box-shadow:
        inset 0 10px 30px rgba(255,0,255,.08);
}

.footer-logo{

    display:flex;
    flex-direction:column;
    align-items:center;
}

.footer-logo img{

    width:320px;
    margin-bottom:1px;
    margin-left:-20px;
}

.footer-logo p{

    text-align:center;
    font-size:.95rem;
    color:#b8b8b8;
}


footer{

    display:grid;

    grid-template-columns:
        2fr 1fr 1fr;

    gap:100px;
}


@media(max-width:600px){

    footer{

        grid-template-columns:1fr;

        gap:50px;

        text-align:center;
    }

    footer div{

        display:flex;
        flex-direction:column;
        align-items:center;
    }

    .footer-logo img{

        width:260px;

        margin-left:0;
    }

    footer ul{

        padding:0;
        margin:0;
    }

    footer li{

        list-style:none;
        margin-bottom:15px;
    }

}

.btn-proyectos{

    display:block;

    width:fit-content;

    margin:50px auto 0;
}

.copyright {

    text-align: center;

    padding: 25px 20px;

    font-size: .9rem;

    color: #8a8a8a;

    background: #000;

    border-top: 1px solid rgba(255,255,255,.05);

    letter-spacing: 1px;
}

/* =========================================
COTIZACIÓN
========================================= */

.cotizacion {

    padding: 180px 8% 100px;

    min-height: 100vh;

    background:
        radial-gradient(circle at top, rgba(0,217,255,.08), transparent 45%),
        radial-gradient(circle at bottom, rgba(255,0,255,.08), transparent 45%),
        #000;
}

.contenedor-cotizacion {

    max-width: 900px;

    margin: 0 auto;

    padding: 60px;

    border-radius: 25px;

    background: rgba(10,10,15,.85);

    backdrop-filter: blur(10px);

    border: 1px solid rgba(255,255,255,.08);

    box-shadow:
        0 0 30px rgba(255,0,255,.05),
        0 0 50px rgba(0,217,255,.05);
}

.contenedor-cotizacion h1 {

    font-size: 3rem;

    margin-bottom: 15px;

    text-align: center;
}

.intro-cotizacion {

    text-align: center;

    color: #bdbdbd;

    margin-bottom: 60px;

    font-size: 1.1rem;

    line-height: 1.7;
}

.contenedor-cotizacion h2 {

    margin-top: 50px;

    margin-bottom: 30px;

    font-size: 1.6rem;

    position: relative;
}

.contenedor-cotizacion h2::after {

    content: "";

    display: block;

    width: 80px;
    height: 3px;

    margin-top: 12px;

    background: linear-gradient(
        to right,
        #ff00ff,
        #00d9ff
    );
}

.grupo-formulario {

    display: flex;

    flex-direction: column;

    margin-bottom: 30px;
}

.grupo-formulario label {

    margin-bottom: 10px;

    font-weight: 500;

    color: #fff;
}

.grupo-formulario input,
.grupo-formulario select,
.grupo-formulario textarea {

    width: 100%;

    padding: 16px 20px;

    background: rgba(255,255,255,.03);

    border: 1px solid rgba(255,255,255,.1);

    border-radius: 12px;

    color: #fff;

    font-size: 1rem;

    font-family: 'Gothic A1', sans-serif;

    transition: .3s;
}

.grupo-formulario input:focus,
.grupo-formulario select:focus,
.grupo-formulario textarea:focus {

    outline: none;

    border-color: #00d9ff;

    box-shadow:
        0 0 15px rgba(0,217,255,.25);
}

.grupo-formulario textarea {

    resize: vertical;

    min-height: 180px;
}

.medidas {

    display: grid;

    grid-template-columns: repeat(2,1fr);

    gap: 30px;
}


/* CHECKBOXES */

.colores-neon {

    display: grid;

    grid-template-columns: repeat(auto-fit,minmax(220px,1fr));

    gap: 18px;

    margin-bottom: 40px;
}

.colores-neon label {

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 15px 20px;

    background: rgba(255,255,255,.03);

    border: 1px solid rgba(255,255,255,.08);

    border-radius: 12px;

    cursor: pointer;

    transition: .3s;
}

.colores-neon label:hover {

    border-color: #ff00ff;

    box-shadow:
        0 0 12px rgba(255,0,255,.2);
}

.colores-neon input {

    width: auto;
}


/* FILE */

input[type="file"] {

    padding: 20px;

    cursor: pointer;
}


/* BOTÓN */

.cotizacion .btn-neon {

    display: block;

    margin: 60px auto 0;

    min-width: 280px;

    text-align: center;
}


/* PLACEHOLDERS */

::placeholder {

    color: #777;
}


/* SELECT OPTIONS */

option {

    background: #ffffff;

    color: #000000;
}


/* =========================================
RESPONSIVO
========================================= */

@media (max-width: 768px) {

    .cotizacion {

        padding: 140px 5% 80px;
    }

    .contenedor-cotizacion {

        padding: 35px 25px;
    }

    .contenedor-cotizacion h1 {

        font-size: 2.2rem;
    }

    .medidas {

        grid-template-columns: 1fr;
    }

    .colores-neon {

        grid-template-columns: 1fr;
    }

}

.btn-cotizar {

    min-width: 320px;

    font-size: 1.1rem;

    letter-spacing: 1px;

    text-transform: uppercase;

    font-weight: 700;

    background: rgba(0,0,0,.75);

    color: #fff;

    border: 2px solid #ff00ff;
}

.email-contacto {
    margin-top: 30px;
    text-align: center;
}

.email-contacto span {
    color: #ffffff;
}

.email-contacto a {
    display: inline-block;
    margin-top: 8px;
    color: #ffffff;
    font-size: 1.25rem;
    text-decoration: none;
    transition: text-shadow 0.3s ease;
}

.email-contacto a:hover {
    text-shadow:
        0 0 5px #ffffff,
        0 0 10px #ff00ff,
        0 0 20px #00ffff;
}

/* =========================================
LIGHTBOX
========================================== */

.lightbox {
    position: fixed;
    inset: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: rgba(0, 0, 0, 0.92);

    opacity: 0;
    visibility: hidden;

    transition:
        opacity 0.3s ease,
        visibility 0.3s ease;

    z-index: 9999;
}


/* LIGHTBOX ABIERTO */

.lightbox.activo {
    opacity: 1;
    visibility: visible;
}


/* CONTENEDOR DE IMAGEN */

.lightbox-contenido {
    position: relative;

    max-width: 85vw;
    max-height: 85vh;

    display: flex;
    align-items: center;
    justify-content: center;
}


/* IMAGEN GRANDE */

.lightbox-contenido img {
    display: block;

    max-width: 85vw;
    max-height: 80vh;

    width: auto;
    height: auto;

    object-fit: contain;

    border-radius: 10px;

    box-shadow:
        0 0 30px rgba(255, 255, 255, 0.08),
        0 0 60px rgba(255, 0, 255, 0.08);
}


/* BOTONES */

.lightbox button {
    position: absolute;

    border: none;
    background: rgba(255, 255, 255, 0.08);

    color: white;

    width: 50px;
    height: 50px;

    border-radius: 50%;

    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 40px;
    line-height: 1;

    transition:
        background 0.3s ease,
        box-shadow 0.3s ease,
        transform 0.3s ease;

    z-index: 2;
}


/* HOVER BOTONES */

.lightbox button:hover {
    background: rgba(255, 255, 255, 0.15);

    box-shadow:
        0 0 10px rgba(255, 0, 255, 0.4),
        0 0 20px rgba(0, 220, 255, 0.3);

    transform: scale(1.05);
}


/* CERRAR */

.lightbox-cerrar {
    top: 25px;
    right: 30px;

    font-size: 38px !important;
}


/* ANTERIOR */

.lightbox-anterior {
    left: 30px;
    top: 50%;

    transform: translateY(-50%);
}

.lightbox-anterior:hover {
    transform: translateY(-50%) scale(1.05) !important;
}


/* SIGUIENTE */

.lightbox-siguiente {
    right: 30px;
    top: 50%;

    transform: translateY(-50%);
}

.lightbox-siguiente:hover {
    transform: translateY(-50%) scale(1.05) !important;
}


/* CONTADOR */

.lightbox-contador {
    position: absolute;

    bottom: -35px;

    left: 50%;

    transform: translateX(-50%);

    color: white;

    font-size: 14px;

    letter-spacing: 1px;

    opacity: 0.8;
}


/* =========================================
IMÁGENES DE LA GALERÍA
========================================== */

.galeria img {
    cursor: pointer;

    transition:
        transform 0.3s ease,
        filter 0.3s ease;
}


.galeria img:hover {
    transform: scale(1.02);

    filter: brightness(1.08);
}


/* =========================================
MÓVIL
========================================== */

@media (max-width: 768px) {

    .lightbox-contenido {
        max-width: 90vw;
        max-height: 80vh;
    }

    .lightbox-contenido img {
        max-width: 90vw;
        max-height: 75vh;
    }

    .lightbox button {
        width: 42px;
        height: 42px;

        font-size: 32px;
    }

    .lightbox-cerrar {
        top: 15px;
        right: 15px;
    }

    .lightbox-anterior {
        left: 10px;
    }

    .lightbox-siguiente {
        right: 10px;
    }

}


/* =========================================NUEVO FOOTER ========================================== */
footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;

    padding: 70px 8%;

    align-items: start;
}

.footer-logo {
    text-align: left;
}

.footer-contacto {
    text-align: left;
}

.footer-contacto h4 {
    margin-bottom: 20px;
}

.footer-contacto p {
    margin-bottom: 12px;
}

.footer-contacto a {
    color: #ffffff;
    text-decoration: none;

    transition: text-shadow 0.3s ease;
}

.footer-contacto a:hover {
    text-shadow:
        0 0 5px #ffffff,
        0 0 10px #ff00ff,
        0 0 20px #00ffff;
}

@media (max-width: 768px) {

    footer {
        grid-template-columns: 1fr;
        gap: 40px;
    }

}