*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Montserrat',sans-serif;
    color:#222;
    background:#fff;
    line-height:1.6;
}

.contenedor{
    width:90%;
    max-width:1200px;
    margin:auto;
}

header{
    background:#0c1a29;
    position:sticky;
    top:0;
    z-index:1000;
    box-shadow:0 2px 10px rgba(0,0,0,.2);
}

header .contenedor{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:15px 0;
}

.logo img{
    height:60px;
}

nav a{
    color:white;
    text-decoration:none;
    margin-left:25px;
    font-weight:600;
    transition:.3s;
}

nav a:hover{
    color:#f9b60b;
}

.hero{
    position:relative;
    background:url("../img/hero.jpg") center center/cover no-repeat;
    min-height:90vh;

    display:flex;
    align-items:center;
    justify-content:center;
}

.hero-overlay{
    background: rgba(12,26,41,.70);
    position: absolute;
    inset: 0;

    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;

    color:white;
    padding:20px;
}

.hero h1{
    font-size:55px;
    max-width:900px;
    margin-bottom:20px;
}

.hero p{
    max-width:750px;
    font-size:20px;
    margin-bottom:35px;
}

.boton{
    background:#f9b60b;
    color:#0c1a29;
    text-decoration:none;
    padding:16px 35px;
    border-radius:8px;
    font-weight:bold;
    transition:.3s;
}

.boton:hover{
    background:#ffcb39;
    transform:translateY(-2px);
}

section{
    padding:100px 0;
}

section h2{
    text-align:center;
    font-size:38px;
    margin-bottom:50px;
    color:#0c1a29;
}

.grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
    gap:30px;
}

/* Grid específico para Trabajos */

#trabajos .grid{
    grid-template-columns:repeat(4,1fr);
    gap:25px;
}

@media(max-width:1200px){

    #trabajos .grid{
        grid-template-columns:repeat(3,1fr);
    }

}

@media(max-width:900px){

    #trabajos .grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media(max-width:768px){

    #trabajos .grid{
        grid-template-columns:1fr;
    }

}

.card{
    background:white;
    padding:30px;
    border-radius:15px;
    box-shadow:0 8px 25px rgba(0,0,0,.08);
    transition:.3s;
    border-top:4px solid #f9b60b;
    text-align:center;
    overflow:hidden;
}

.icono-servicio{
    width:72px;
    height:72px;
    margin:0 auto 22px;
    border:3px solid #f9b60b;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    color:#f9b60b;
    font-size:30px;
    transition:all .3s ease;
}

.card:hover .icono-servicio{
    background:#f9b60b;
    color:#0c1a29;
    transform:scale(1.08);
}

.card:hover{
    transform:translateY(-8px);
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.card:hover .icono-servicio{
    transform:scale(1.1);
}

.card h3{
    color:#0c1a29;
    margin-bottom:15px;
    font-size:24px;
}

.card h3 i{
    color:#f9b60b;
    margin-right:10px;
    font-size:26px;
}

#servicios{
    background:#fafbfc;
}

#nosotros{
    background:#f5f7fa;
}

#nosotros ul{
    max-width:700px;
    margin:auto;
    list-style:none;
}

#nosotros li{
    background:white;
    margin-bottom:15px;
    padding:18px 25px;
    border-left:5px solid #f9b60b;
    border-radius:6px;
}

#contacto{
    background:#0c1a29;
    color:white;
    text-align:center;
}

#contacto h2{
    color:white;
}

#contacto p{
    margin:15px 0;
    font-size:20px;
}

footer{
    background:#0c1a29;
    color:white;
    text-align:center;
    padding:40px 25px;
    margin-top:60px;
}

footer p{
    margin:8px 0;
}

footer strong{
    font-size:22px;
    letter-spacing:1px;
}

footer a{
    color:white;
    text-decoration:none;
    transition:.3s;
}

footer a:hover{
    color:#f9b60b;
}

@media(max-width:768px){

header .contenedor{
    flex-direction:column;
}

nav{
    margin-top:15px;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:15px;
}

nav a{
    margin:0;
}

.hero h1{
    font-size:34px;
}

.hero p{
    font-size:18px;
}

}

/* ===========================
   TRABAJOS REALIZADOS
=========================== */

#trabajos{
    background:#f5f7fa;
}

.subtitulo{
    text-align:center;
    max-width:700px;
    margin:0 auto 50px;
    color:#666;
}

/* ===========================
   TARJETAS DE TRABAJOS
=========================== */

.trabajo{
    padding:0;
    overflow:hidden;
    text-decoration:none;
    color:inherit;
    display:block;
    transition:.3s;
    cursor:pointer;
}

.trabajo img{
    width:100%;
    height:150px;
    object-fit:cover;
    display:block;
    transition:transform .4s;
}

.trabajo h3{
    padding:16px 18px;
    font-size:16px;
    font-weight:600;
    line-height:1.4;
    text-align:center;
    color:#0c1a29;
}

.trabajo:hover{
    transform:translateY(-6px);
    box-shadow:0 15px 35px rgba(0,0,0,.15);
}

.trabajo:hover img{
    transform:scale(1.08);
}

.trabajo:hover h3{
    color:#f9b60b;
}

/* ---------- Página contacto ---------- */

.pagina{

padding:120px 0 80px;

background:#f5f7fa;

}

.pagina h1{

font-size:42px;

text-align:center;

color:#0c1a29;

margin-bottom:15px;

}

.intro{

text-align:center;

max-width:700px;

margin:0 auto 50px;

font-size:18px;

color:#555;

}

.formulario{

max-width:900px;

margin:auto;

background:white;

padding:45px;

border-radius:12px;

box-shadow:0 15px 40px rgba(0,0,0,.08);

}

.fila{

display:grid;

grid-template-columns:1fr 1fr;

gap:25px;

}

.campo{

display:flex;

flex-direction:column;

margin-bottom:25px;

}

.campo label{

font-weight:600;

margin-bottom:8px;

color:#0c1a29;

}

.campo input,
.campo select,
.campo textarea{

padding:15px;

border:1px solid #ddd;

border-radius:8px;

font-size:16px;

font-family:inherit;

transition:.3s;

}

.campo input:focus,
.campo select:focus,
.campo textarea:focus{

outline:none;

border-color:#f9b60b;

box-shadow:0 0 0 3px rgba(249,182,11,.15);

}

textarea{

resize:vertical;

}

.formulario .boton{

border:none;

cursor:pointer;

font-size:18px;

}

@media(max-width:768px){

.fila{

grid-template-columns:1fr;

}

.formulario{

padding:30px;

}

}

.mensaje-ok{

background:#dff6df;

border:1px solid #7cc67c;

color:#226622;

padding:18px;

border-radius:8px;

margin:25px auto 35px;

max-width:900px;

text-align:center;

font-weight:600;

}

.mensaje-error{

background:#fde8e8;
border:1px solid #f5a3a3;
color:#9b1c1c;
padding:18px;
border-radius:8px;
margin:25px auto;
max-width:900px;
text-align:center;

}

.pagina{
    padding:80px 0;
}

.pagina h1{
    text-align:center;
    color:#0c1a29;
    font-size:42px;
    margin-bottom:15px;
}

.intro{
    text-align:center;
    max-width:700px;
    margin:0 auto 40px;
    color:#666;
}

form{
    max-width:700px;
    margin:auto;
}

form input,
form select,
form textarea{
    width:100%;
    padding:18px 20px;
    border:2px solid #d9d9d9;
    border-radius:10px;
    font-size:18px;
    font-family:inherit;
    margin-bottom:22px;
    transition:all .25s;
    background:#fff;
}

form input:focus,
form select:focus,
form textarea:focus{
    border-color:#f9b60b;
    outline:none;
    box-shadow:0 0 0 4px rgba(249,182,11,.15);
}

form textarea{
    resize:vertical;
}

form button{
    width:100%;
    padding:18px;
    font-size:18px;
    cursor:pointer;
}

.mensaje-ok{
    max-width:700px;
    margin:0 auto 30px;
    background:#eaf8ea;
    color:#1b6d2a;
    padding:18px;
    border-radius:8px;
    border-left:5px solid #28a745;
}

.mensaje-error{
    max-width:700px;
    margin:0 auto 30px;
    background:#ffeaea;
    color:#b00020;
    padding:18px;
    border-radius:8px;
    border-left:5px solid #dc3545;
}

footer a{
    color:white;
    text-decoration:none;
    transition:.3s;
}

footer a:hover{
    color:#f9b60b;
}

#contacto a{
    color:white;
    text-decoration:none;
    transition:.3s;
}

#contacto a:hover{
    color:#f9b60b;
}

.titulo-contacto{
    color:white;
    text-decoration:none;
}

.titulo-contacto:hover{
    color:#f9b60b;
}

.whatsapp-float{

position:fixed;
right:25px;
bottom:25px;

width:65px;
height:65px;

background:#25D366;

border-radius:50%;

display:flex;
justify-content:center;
align-items:center;

box-shadow:0 8px 20px rgba(0,0,0,.25);

transition:.3s;

z-index:9999;

}

.whatsapp-float:hover{

transform:scale(1.08);

background:#1ebe5d;

}

@media(max-width:768px){

.whatsapp-float{

width:58px;
height:58px;

right:18px;
bottom:18px;

}

.whatsapp-float svg{

width:30px;
height:30px;

}

}

/* Tamaño de las imágenes de GLightbox */

.gslide-image img{

max-width: 70vw !important;
max-height: 70vh !important;

    margin: auto;

}

.hero-botones{
    display:flex;
    gap:15px;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:30px;
}

.boton-secundario{
    background:#ffffff;
    color:#0C1A29;
    border:2px solid #ffffff;
    transition:.3s;
}

.boton-secundario:hover{
    background:#F9B60B;
    color:#0C1A29;
    border-color:#F9B60B;
}

.cta-final{

    background:#0C1A29;
    color:#fff;
    text-align:center;
    padding:80px 20px;

}

.cta-final h2{

    color:#fff;
    font-size:2.2rem;
    margin-bottom:20px;

}

.cta-final p{

    max-width:800px;
    margin:0 auto 35px;
    opacity:.95;
    line-height:1.8;

}

#zonas .card{
    padding:14px 10px;
}

#zonas .card h3{
    font-size:0.95rem;
    margin:0;
}

.footer-frase{
    max-width:900px;
    margin:0 auto 25px;
    text-align:center;
    opacity:.9;
    line-height:1.7;
    font-size:.95rem;
}

/* ===== ZONAS ===== */

#zonas .grid{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:20px;
}

@media (max-width:900px){

    #zonas .grid{
        grid-template-columns:repeat(2,1fr);
    }

}

@media (max-width:600px){

    #zonas .grid{
        grid-template-columns:repeat(2,1fr);
    }

}

.footer-amperix {
    background:#0c1a29;
    color:#fff;
    font-family:"Montserrat",Arial,sans-serif;
}

.footer-amperix__inner {
    max-width:1280px;
    margin:0 auto;
    padding:20px 20px 14px;
    text-align:center;
}

.footer-amperix p {
    margin:0;
}

.footer-amperix a {
    color:#fff;
    text-decoration:none;
}

.footer-amperix a:hover,
.footer-amperix a:focus-visible {
    color:#f9b60b;
}

.footer-amperix__brand {
    font-size:1.3rem;
    font-weight:700;
    letter-spacing:.025em;
}

.footer-amperix__services {
    margin-top:8px !important;
    font-size:1rem;
    line-height:1.35;
}

.footer-amperix__contact {
    margin-top:9px !important;
    font-size:.95rem;
    line-height:1.35;
}

.footer-amperix__phone-icon {
    color:#f44336;
}

.footer-amperix__contact-separator {
    margin:0 14px;
    opacity:.8;
}

.footer-amperix__legal {
    margin-top:7px !important;
    font-size:.9rem;
    line-height:1.4;
}

.footer-amperix__frase {
    margin-top:11px !important;
    font-size:.9rem;
    line-height:1.35;
}

.footer-amperix__trust {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    width:max-content;
    max-width:100%;
    min-height:48px;
    margin:8px auto 0;
}

.footer-amperix__trust-item {
    display:flex;
    align-items:center;
    gap:8px;
    min-width:0;
    text-align:left;
}

.footer-amperix__trust-icon {
    width:46px;
    height:46px;
    flex:0 0 46px;
    object-fit:contain;
}

.footer-amperix__trust-copy,
.footer-amperix__trust-copy strong,
.footer-amperix__trust-copy span {
    display:block;
}

.footer-amperix__trust-copy strong {
    color:#fff;
    font-size:.75rem;
    line-height:1.15;
    letter-spacing:.025em;
    text-transform:uppercase;
    white-space:nowrap;
}

.footer-amperix__trust-copy span {
    margin-top:2px;
    color:rgba(255,255,255,.88);
    font-size:.75rem;
    line-height:1.15;
    white-space:nowrap;
}

.footer-amperix__trust-separator {
    width:1px;
    height:34px;
    flex:0 0 1px;
    background:rgba(255,255,255,.72);
}

.footer-amperix__copyright {
    margin-top:10px !important;
    font-size:.82rem;
    line-height:1.35;
    opacity:.82;
}

@media (max-width:850px) {
    .footer-amperix__trust {
        display:grid;
        grid-template-columns:1fr;
        width:min(100%,600px);
        gap:8px;
        margin-top:13px;
    }

    .footer-amperix__trust-item {
        justify-content:flex-start;
    }

    .footer-amperix__trust-separator {
        display:none;
    }

    .footer-amperix__trust-copy strong,
    .footer-amperix__trust-copy span {
        white-space:normal;
    }
}

@media (max-width:760px) {
    .footer-amperix__inner {
        padding:22px 18px 18px;
    }

    .footer-amperix__services,
    .footer-amperix__contact,
    .footer-amperix__legal,
    .footer-amperix__frase {
        font-size:.88rem;
    }

    .footer-amperix__contact-separator {
        margin:0 7px;
    }

    .footer-amperix__trust {
        grid-template-columns:1fr;
        width:min(100%,350px);
        gap:8px;
    }

    .footer-amperix__trust-item {
        justify-content:flex-start;
    }

    .footer-amperix__trust-icon {
        width:42px;
        height:42px;
        flex-basis:42px;
    }
}

footer nav.footer-services {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    column-gap:10px !important;
    row-gap:3px !important;
    margin:0 0 12px !important;
    padding:0 !important;
    font-size:16px !important;
    line-height:1.5 !important;
}

footer nav.footer-services a {
    display:inline !important;
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    font-size:16px !important;
    font-weight:400 !important;
    line-height:1.5 !important;
    text-decoration:none !important;
}

footer nav.footer-services > span {
    display:inline-block !important;
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    font-size:16px !important;
    font-weight:400 !important;
}

footer nav.footer-services a:hover,
footer nav.footer-services a:focus-visible {
    color:#F9B60B !important;
    text-decoration:underline !important;
    text-underline-offset:3px;
}


/* Teléfono, email y redes */

footer .footer-contact-social {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:wrap !important;
    gap:12px !important;
    margin:0 0 12px !important;
    padding:0 !important;
    color:#fff !important;
    font-size:16px !important;
    line-height:1.4 !important;
}

footer .footer-contact {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex-wrap:nowrap !important;
    gap:6px !important;
    margin:0 !important;
    padding:0 !important;
}

footer .footer-contact a {
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    font-size:16px !important;
    font-weight:400 !important;
    line-height:1.4 !important;
    text-decoration:none !important;
}

/* Barra entre teléfono y email */

footer .footer-contact-separator {
    display:inline-block !important;
    width:1px !important;
    min-width:1px !important;
    height:19px !important;
    margin:0 8px !important;
    padding:0 !important;
    background:rgba(255,255,255,.85) !important;
}

/* Barra entre email y redes */

footer .footer-social-separator {
    display:inline-block !important;
    width:1px !important;
    min-width:1px !important;
    height:23px !important;
    margin:0 3px !important;
    padding:0 !important;
    background:rgba(255,255,255,.85) !important;
}


/* Iconos sociales pequeños y blancos */

footer .footer-social-icons {
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:11px !important;
    width:auto !important;
    height:22px !important;
    margin:0 !important;
    padding:0 !important;
}

footer .footer-social-icon {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 19px !important;
    width:19px !important;
    min-width:19px !important;
    max-width:19px !important;
    height:19px !important;
    min-height:19px !important;
    max-height:19px !important;
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    line-height:0 !important;
    overflow:hidden !important;
}

footer .footer-social-icon svg {
    display:block !important;
    flex:none !important;
    width:19px !important;
    min-width:19px !important;
    max-width:19px !important;
    height:19px !important;
    min-height:19px !important;
    max-height:19px !important;
    margin:0 !important;
    padding:0 !important;
    fill:#fff !important;
    color:#fff !important;
}


/* Conserva visibles los tres distintivos */

footer .footer-trust-row {
    position:relative !important;
    z-index:1 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
    width:fit-content !important;
    max-width:100% !important;
    min-height:46px !important;
    margin:12px auto 0 !important;
    color:#fff !important;
    text-align:left !important;
}

footer .footer-trust-item {
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    min-width:0 !important;
}

footer .footer-trust-separator {
    display:block !important;
    width:1px !important;
    min-width:1px !important;
    height:32px !important;
    background:rgba(255,255,255,.72) !important;
}


/* Adaptación móvil */

@media (max-width:1050px) {

    footer .footer-trust-row {
        width:min(100%,330px) !important;
        display:grid !important;
        gap:7px !important;
        margin-top:14px !important;
    }

    footer .footer-trust-item {
        width:100% !important;
    }

    footer .footer-trust-separator {
        display:none !important;
    }
}

@media (max-width:600px) {

    footer nav.footer-services {
        column-gap:7px !important;
        padding:0 8px !important;
    }

    footer nav.footer-services a,
    footer nav.footer-services > span {
        font-size:14px !important;
    }

    footer .footer-contact-social {
        gap:9px !important;
        font-size:14px !important;
    }

    footer .footer-contact a {
        font-size:14px !important;
    }

    footer .footer-contact-separator {
        height:17px !important;
        margin:0 4px !important;
    }

    footer .footer-social-separator {
        height:20px !important;
    }

    footer .footer-social-icon,
    footer .footer-social-icon svg {
        width:17px !important;
        min-width:17px !important;
        max-width:17px !important;
        height:17px !important;
        min-height:17px !important;
        max-height:17px !important;
        flex-basis:17px !important;
    }
}