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

body{
    font-family:'Inter', 'Open Sans', 'Poppins', sans-serif;
    color:#24364a;
    line-height:1.85;
    font-size:18px;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
}

h1, h2, h3, h4{
    font-family:'Montserrat', 'Inter', sans-serif;
    font-weight:700;
    line-height:1.15;
    letter-spacing:0.3px;
}

h1{ font-size:clamp(2.8rem, 4.8vw, 4.2rem); }
h2{ font-size:clamp(2.1rem, 3.1vw, 2.8rem); }
h3{ font-size:clamp(1.4rem, 1.9vw, 1.75rem); }
p{ font-size:1.03rem; line-height:1.95; color:#55616f; text-align:justify; }
a{ color:inherit; text-decoration:none; }
button{ font-family:'Inter', 'Montserrat', sans-serif; }
section{ padding:95px 8%; }

@media (max-width: 950px){
    body{ font-size:16px; }
    section{ padding:80px 5%; }
    .logo_nombre{ font-size:1rem; }
    nav a{ font-size:0.95rem; }
    .contenido_inicio h1{ font-size:clamp(2.2rem, 7vw, 3rem); }
    .hero_title{ font-size:1.05rem; }
    .titulo h2{ font-size:clamp(1.75rem, 5vw, 2.2rem); }
    .texto_nosotros h3{ font-size:1.4rem; }
}

@media (max-width: 650px){
    body{ font-size:15px; }
    section{ padding:70px 4%; }
    .contenido_inicio h1{ font-size:clamp(1.9rem, 8vw, 2.5rem); }
    .hero_title{ font-size:0.98rem; line-height:1.7; }
    .logo_lema{ font-size:0.72rem; }
}

/* Tema específico para la página principal (index) */
body.index-theme header{ background:rgba(239,237,232,.96); box-shadow:0 8px 24px rgba(31,42,55,.08); }
body.index-theme .header_scroll{ background:#efede8; box-shadow:0 10px 28px rgba(31,42,55,.12); }
body.index-theme nav a{ color:#2f2b26; }
body.index-theme nav a:hover{ color:#8a1f2b; background:rgba(138,31,43,.08); }
body.index-theme .hamburguesa{ color:#2f2b26; background:rgba(31,42,55,.06); }
body.index-theme button, body.index-theme .empresa_info button{ background:linear-gradient(135deg, #1F4E79, #2E75B6); box-shadow:0 12px 30px rgba(15,59,94,.22); }
body.index-theme button:hover, body.index-theme .empresa_info button:hover{ background:linear-gradient(135deg, #163A5C, #24608F); box-shadow:0 16px 36px rgba(15,59,94,.28); }
body.index-theme .titulo h2, body.index-theme .texto_nosotros h3, body.index-theme .empresa_info h3{ color:#1F4E79; }
body.index-theme .capacidad i, body.index-theme .compromiso_icon i{ color:#E67E22; }
body.index-theme .informacion{ background:linear-gradient(135deg, #1F4E79 0%, #1f2a37 100%); color:#fff; }
body.index-theme .informacion p, body.index-theme .informacion a{ color:#fff; }
body.index-theme .informacion i{ color:#F0A868; }
body.index-theme footer{
    background:linear-gradient(135deg, #f3efe6 0%, #e8dfcf 100%);
    color:#2f2b26;
}
body.index-theme .footer_brand img{ height:115px; }
body.index-theme .footer_brand_name{ color:#7a0d18; }
body.index-theme .footer_empresa p{ color:#4d463f; }
body.index-theme .footer_columna h3{ color:#7a0d18; }
body.index-theme .footer_columna a,
body.index-theme .footer_columna p{ color:#3f3a34; }
body.index-theme .footer_columna a:hover{ color:#8a1f2b; }
body.index-theme .social_links a{
    background:rgba(122,13,24,.10);
    color:#7a0d18;
}
body.index-theme .social_links a:hover{
    background:#7a0d18;
    color:#ffffff;
}
body.index-theme .creditos{
    border-top-color:rgba(122,13,24,.18);
    color:#5b5148;
}
body.index-theme .linea{ background:linear-gradient(90deg,#1F4E79,#E67E22); }
body.index-theme #arriba{ background:#E67E22; }

/* Estilos específicos para la página Comercio de Explosivos */
body.empresa-explosivos header{ background:#efede8; box-shadow:0 6px 22px rgba(31,42,55,.08); }
body.empresa-explosivos .logo img{ height:110px; }
body.empresa-explosivos .logo_nombre{ color:#2f2b26; font-size:1.02rem; font-weight:800; letter-spacing:1.2px; margin-left:0; }
body.empresa-explosivos .titulo h2, body.empresa-explosivos .texto_nosotros h3, body.empresa-explosivos .empresa_info h3{ color:#7a0d18; }
body.empresa-explosivos .informacion{ background:#111318; color:#fff; padding:40px; border-radius:10px; }
body.empresa-explosivos .informacion h3{ color:#ffd27a; }
body.empresa-explosivos .informacion p, body.empresa-explosivos .informacion a{ color:#eee; }
body.empresa-explosivos .informacion a{ color:#ffd27a; text-decoration:none; }
body.empresa-explosivos form input, body.empresa-explosivos form textarea{ color:#222; background:#fff; }
body.empresa-explosivos footer{ background:#0f1113; }
body.empresa-explosivos .footer_logo p{ color:#ddd; }
body.empresa-explosivos .creditos{ color:#bbb; }
body.empresa-explosivos .linea{ background:linear-gradient(90deg,#7a0d18,#d98c2b); }
body.empresa-explosivos button{ background:linear-gradient(135deg,#7a0d18,#d98c2b); box-shadow:0 18px 40px rgba(122,13,24,.22); }
body.empresa-explosivos button:hover{ background:linear-gradient(135deg,#5c0a12,#b8721e); box-shadow:0 28px 60px rgba(122,13,24,.3); }
body.empresa-explosivos #arriba{ background:#d98c2b; }
body.empresa-explosivos nav a:hover{ color:#7a0d18; background:rgba(122,13,24,.08); }
body.empresa-explosivos footer .footer_links h3,
body.empresa-explosivos footer .footer_contacto h3{ color:#7a0d18; }
body.empresa-explosivos footer .social_links a{ background:rgba(122,13,24,.10); color:#7a0d18; }
body.empresa-explosivos footer .social_links a:hover{ background:#7a0d18; color:#fff; }

/* Estilos específicos para la página CMJJ */
body.empresa-cmjj header{ background:#efede8; box-shadow:0 6px 22px rgba(31,42,55,.08); }
body.empresa-cmjj .logo img{ height:180px; }
body.empresa-cmjj .logo_nombre{ color:#2f2b26; font-size:1.04rem; font-weight:800; letter-spacing:1.2px; margin-left:0; }
body.empresa-cmjj .titulo h2, body.empresa-cmjj .texto_nosotros h3, body.empresa-cmjj .empresa_info h3{ color:#0b6e8f; }
body.empresa-cmjj .informacion{ background:#08323a; color:#fff; padding:40px; border-radius:10px; }
body.empresa-cmjj .informacion h3{ color:#00bfa6; }
body.empresa-cmjj .informacion p, body.empresa-cmjj .informacion a{ color:#e6f7f5; }
body.empresa-cmjj .informacion a{ color:#00bfa6; text-decoration:none; }
body.empresa-cmjj form input, body.empresa-cmjj form textarea{ color:#222; background:#fff; }
body.empresa-cmjj footer{ background:#061b1f; }
body.empresa-cmjj .footer_logo p{ color:#ddd; }
body.empresa-cmjj .creditos{ color:#bbb; }
body.empresa-cmjj .linea{ background:linear-gradient(90deg,#0b6e8f,#00bfa6); }
body.empresa-cmjj button{ background:linear-gradient(135deg,#0b6e8f,#00bfa6); box-shadow:0 18px 40px rgba(11,110,143,.22); }
body.empresa-cmjj button:hover{ background:linear-gradient(135deg,#08526b,#009d87); box-shadow:0 28px 60px rgba(11,110,143,.3); }
body.empresa-cmjj #arriba{ background:#00bfa6; }
body.empresa-cmjj nav a:hover{ color:#0b6e8f; background:rgba(11,110,143,.08); }
body.empresa-cmjj footer .footer_links h3,
body.empresa-cmjj footer .footer_contacto h3{ color:#0b6e8f; }
body.empresa-cmjj footer .social_links a{ background:rgba(11,110,143,.12); color:#00bfa6; }
body.empresa-cmjj footer .social_links a:hover{ background:#0b6e8f; color:#fff; }

/* Estilos específicos para la página OBP */
body.empresa-obp header{ background:#efede8; box-shadow:0 6px 22px rgba(31,42,55,.08); }
body.empresa-obp .logo img{ height:100px; }
body.empresa-obp .logo_nombre{ color:#000000 !important; font-size:1.02rem; font-weight:800; letter-spacing:1.2px; margin-left:0; }
body.empresa-obp .titulo h2, body.empresa-obp .texto_nosotros h3, body.empresa-obp .empresa_info h3{ color:#1f2a37; }
body.empresa-obp .informacion{ background:linear-gradient(135deg, #2f3d4f 0%, #1f2a37 100%); color:#fff; padding:50px; border-radius:18px; }
body.empresa-obp .informacion i{ color:#b85f2a; }
body.empresa-obp .linea{ background:linear-gradient(90deg,#1f2a37,#b85f2a); }
body.empresa-obp button{ background:linear-gradient(135deg,#1f2a37,#b85f2a); box-shadow:0 18px 40px rgba(31,42,55,.22); }
body.empresa-obp button:hover{ background:linear-gradient(135deg,#141c26,#9c4e22); box-shadow:0 28px 60px rgba(31,42,55,.3); }
body.empresa-obp #arriba{ background:#b85f2a; }
body.empresa-obp nav a:hover{ color:#1f2a37; background:rgba(31,42,55,.08); }
/* footer overrides handled in css/empresa.css */

header{

    position:fixed;
    top:0;
    left:0;

    width:100%;
    height:95px;

    padding:0 4.5%;

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

    background:#efede8;

    backdrop-filter:blur(10px);

    z-index:1000;

    transition:.5s;

    box-shadow:0 6px 22px rgba(31,42,55,.08);

}

.header_scroll{

    background:#efede8;
    box-shadow:0 10px 28px rgba(31,42,55,.12);

}

.logo{

    display:flex;

    align-items:center;

    gap:8px;

    margin-left:-62px;

}

.logo_texto{
    display:flex;
    flex-direction:column;
    gap:3px;
}

.logo img{

    height:110px;

    display:block;

}

.logo_nombre{

    color:#2f2b26;

    font-size:1.02rem;

    font-weight:800;

    letter-spacing:1.2px;

    text-transform:uppercase;

    line-height:1;

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

}

.logo_lema{
    color:#7a0d18;
    font-size:0.78rem;
    font-weight:700;
    letter-spacing:1px;
    text-transform:uppercase;
}

nav{

    display:flex;
    gap:28px;
    align-items:center;

}

nav a{

    color:#2f2b26;

    text-decoration:none;

    font-size:1rem;

    font-weight:600;

    letter-spacing:0.35px;

    padding:8px 10px;

    border-radius:999px;

    transition:all .3s ease;

}

nav a:hover{

    color:#8a1f2b;
    background:rgba(138,31,43,.08);
    transform:translateY(-1px);

}

.hamburguesa{

    color:#2f2b26;

    font-size:32px;

    cursor:pointer;

    display:none;

}

.menu_movil{

    position:fixed;

    top:0;
    right:0;

    width:min(320px, 100vw);

    height:100dvh;

    background:#1f2a37;

    display:flex;

    flex-direction:column;

    padding-top:100px;

    transform:translateX(100%);

    transition:transform .4s ease;

    z-index:2000;

    box-shadow:-12px 0 30px rgba(0,0,0,.2);

}

.menu_movil a{

    color:white;

    text-decoration:none;

    padding:20px 40px;

    font-size:18px;

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

}

.menu_movil_activo{

    transform:translateX(0);

}

.cerrar{

    position:absolute;

    top:30px;

    right:30px;

    color:white;

    font-size:35px;

    cursor:pointer;

}



.contenido_inicio{

    width:75%;

    max-width:1040px;

    padding:0 30px;

    color:white;

    text-align:center;

    animation:entrada 1.5s;

}

.contenido_inicio h1{

    font-size:clamp(3rem, 5.2vw, 4.5rem);

    margin-bottom:24px;

    line-height:1.05;

    letter-spacing:1.3px;

    max-width:920px;

    margin-left:auto;

    margin-right:auto;

}

.hero_title{
    font-size:clamp(1.4rem, 2.3vw, 1.9rem);
    line-height:1.6;
    margin-bottom:22px;
    max-width:900px;
    color:#ffffff;
    font-weight:600;
    letter-spacing:1px;
    font-family:'Poppins', sans-serif;
}

.hero_subtitle{

    margin:0 auto 28px;

    max-width:760px;

    font-size:20px;

    font-weight:600;

    color:#f5e2c3;

    text-transform:uppercase;

    letter-spacing:1.5px;

    text-align:center;

}

.contenido_inicio p{

    font-size:23px;

    line-height:38px;

    margin-bottom:40px;

    text-align:center;

}

button{

    padding:16px 38px;

    border:none;

    background:linear-gradient(135deg, #1F4E79, #2E75B6);

    color:white;

    font-size:1rem;

    font-weight:700;

    cursor:pointer;

    border-radius:12px;

    box-shadow:0 18px 40px rgba(15,59,94,.18);

    transition:.5s cubic-bezier(0.23, 1, 0.320, 1);

    letter-spacing:0.7px;

    text-transform:uppercase;

    position:relative;

    overflow:hidden;

}

button::before{

    content:'';

    position:absolute;

    top:0;

    left:-100%;

    width:100%;

    height:100%;

    background:linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent);

    transition:.8s ease;

}

button:hover{

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

    background:linear-gradient(135deg, #163A5C, #24608F);

    box-shadow:0 28px 60px rgba(15,59,94,.3);

}

button:hover::before{

    left:100%;

}

}

@keyframes entrada{

    from{

        opacity:0;

        transform:translateY(80px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

@keyframes pulse-glow{
  0%, 100%{ box-shadow:0 0 0 0 rgba(15,59,94,.3); }
  50%{ box-shadow:0 0 0 10px rgba(15,59,94,0); }
}

@keyframes slide-in-left{
  from{ opacity:0; transform:translateX(-60px); }
  to{ opacity:1; transform:translateX(0); }
}

@keyframes slide-in-right{
  from{ opacity:0; transform:translateX(60px); }
  to{ opacity:1; transform:translateX(0); }
}

section{
    min-height:auto;
    padding:80px 8%;
    animation:fadeSection .75s ease both;
}

@keyframes fadeSection{
    from{ opacity:0; transform:translateY(20px); }
    to{ opacity:1; transform:translateY(0); }
}

@media(max-width:950px){

    nav{

        display:none;

    }

    .btn_header_cta{

        display:none;

    }

    header{
        padding:0 4%;
        height:80px;
        overflow:visible;
    }

    .hamburguesa{

        display:flex;
        align-items:center;
        justify-content:center;
        width:48px;
        height:48px;
        border-radius:50%;
        background:rgba(31,42,55,.06);
        color:#2f2b26;
        font-size:22px;
        cursor:pointer;
        margin-left:auto;
        flex-shrink:0;
        position:relative;
        z-index:10;
    }

    .logo{
        flex:1;
        min-width:0;
        gap:8px;
        margin-left:-38px;
    }

    .logo img{

        height:78px;

    }

    .logo_texto{
        min-width:0;
    }

    .logo_nombre{
        font-size:14px;
        line-height:1.1;
        color:#2f2b26;
    }

    .logo_lema{
        font-size:9px;
        color:#7a0d18;
    }

    .contenido_inicio{

        width:90%;

    }

    .contenido_inicio h1{

        font-size:40px;

        line-height:55px;

    }

    .contenido_inicio p{

        font-size:17px;

        line-height:30px;

    }

}
#nosotros{

padding:90px 6%;

}

.btn_header_cta{
    display:inline-flex;
    align-items:center;
    padding:13px 26px;
    margin-left:18px;
    border-radius:10px;
    background:linear-gradient(135deg, #E67E22, #d5711a);
    color:#fff !important;
    font-weight:700;
    font-size:0.92rem;
    letter-spacing:0.4px;
    text-transform:uppercase;
    box-shadow:0 12px 26px rgba(230,126,34,.28);
    transition:.35s ease;
    white-space:nowrap;
}
.btn_header_cta:hover{
    background:linear-gradient(135deg, #d5711a, #b85f13);
    transform:translateY(-2px);
    box-shadow:0 16px 32px rgba(230,126,34,.36);
}

.btn_menu_movil_cta{
    display:inline-block;
    margin-top:18px;
    padding:14px 30px !important;
    border-radius:10px;
    background:linear-gradient(135deg, #E67E22, #d5711a);
    color:#fff !important;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.4px;
    font-size:0.95rem;
}

.hero_botones{
    display:flex;
    flex-wrap:wrap;
    gap:18px;
    justify-content:center;
    margin-top:8px;
}
.hero_botones .btn_primario{
    background:linear-gradient(135deg, #E67E22, #d5711a);
    box-shadow:0 18px 40px rgba(230,126,34,.32);
}
.hero_botones .btn_primario:hover{
    background:linear-gradient(135deg, #d5711a, #b85f13);
}
.hero_botones .btn_secundario{
    background:transparent;
    border:2px solid #fff;
    box-shadow:none;
}
.hero_botones .btn_secundario:hover{
    background:rgba(255,255,255,.15);
}

.barra_confianza{
    position:relative;
    z-index:5;
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:14px 40px;
    padding:26px 6%;
    background:#F5F5F5;
    border-bottom:1px solid rgba(31,78,121,.12);
}
.confianza_item{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:0.92rem;
    font-weight:600;
    color:#1F4E79;
    letter-spacing:0.2px;
}
.confianza_item i{
    color:#E67E22;
    font-size:1.05rem;
}
@media (max-width:650px){
    .barra_confianza{ gap:12px 22px; padding:20px 5%; }
    .confianza_item{ font-size:0.8rem; }
}

.titulo{

text-align:center;

margin-bottom:40px;

}

.titulo h2{

font-size:clamp(2.15rem, 2.9vw, 2.75rem);

color:#1F4E79;

margin-bottom:16px;

letter-spacing:1.3px;

text-transform:uppercase;
font-weight:700;

font-family:'Montserrat','Inter',sans-serif;

}

.linea{
width:110px;

height:4px;

background:linear-gradient(90deg, #1F4E79, #E67E22);

margin:auto;

margin-bottom:18px;

}

.titulo p{

max-width:900px;

margin:auto;

line-height:1.95;

font-size:1.05rem;

color:#666;

text-align:center;

}

.mision_vision_contenedor{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
    margin-top:60px;
}
.mv_card{
    background:#F5F5F5;
    border-radius:16px;
    padding:38px 34px;
    border-left:4px solid #1F4E79;
    transition:.4s;
}
.mv_card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 36px rgba(31,78,121,.12);
}
.mv_icon{
    width:56px;
    height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:linear-gradient(135deg, #1F4E79, #2E75B6);
    color:#fff;
    font-size:1.3rem;
    margin-bottom:18px;
}
.mv_card h3{
    color:#1F4E79;
    margin-bottom:12px;
}
.mv_card p{
    color:#55616f;
    font-size:0.98rem;
}
.pilares_contenedor{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:20px;
    margin-top:46px;
}
.pilar{
    display:flex;
    align-items:center;
    gap:10px;
    padding:16px 30px;
    border-radius:50px;
    background:#fff;
    border:1.5px solid rgba(31,78,121,.18);
    font-weight:700;
    color:#1F4E79;
    letter-spacing:0.3px;
}
.pilar i{
    color:#E67E22;
    font-size:1.1rem;
}
@media (max-width:750px){
    .mision_vision_contenedor{ grid-template-columns:1fr; }
}

.nosotros_contenedor{

display:grid;

grid-template-columns:1fr 1fr;

gap:40px;

align-items:center;

}

.imagen_nosotros img{

width:100%;

border-radius:10px;

}

.texto_nosotros h3{

font-size:clamp(1.6rem, 2.2vw, 2.1rem);

color:#1F4E79;

margin-bottom:22px;

}

.texto_nosotros p{

line-height:1.95;

margin-bottom:22px;

color:#666;

font-size:1.02rem;

}

@media(max-width:950px){

.nosotros_contenedor{

grid-template-columns:1fr;

}

.texto_nosotros h3{

font-size:30px;

}

}
#inicio{

    position:relative;
    left:0;
    top:0;
    width:100vw;
    height:100vh;
    padding:0;
    margin:0;
    overflow:hidden;

}

.slider{

    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    overflow:hidden;

}

.slide{

    position:absolute;

    top:0;
    left:0;
    width:100%;
    height:100%;

    background-size:cover;
    background-position:center center;
    background-repeat:no-repeat;

    opacity:0;

    transition:opacity 1.5s;

    animation:zoom 10s linear infinite;

}

.slide:nth-child(1){

    background-image:url("../img/banner1.jpg");

}

.slide:nth-child(2){

    background-image:url("../img/banner2.jpg");

}

.slide:nth-child(3){

    background-image:url("../img/banner3.jpg");

}

.slide:nth-child(4){

    background-image:url("../img/banner4.jpg");

}

.activo{

    opacity:1;

}

.oscuro{

    position:absolute;

    width:100%;
    height:100%;

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

    z-index:2;

}

.contenido_inicio{

    position:relative;

    z-index:3;

    width:75%;

    max-width:1040px;

    padding:0 30px;

    height:100%;

    margin:auto;

    display:flex;

    flex-direction:column;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

}

.contenido_inicio h1{

    font-size:70px;

    margin-bottom:30px;

    line-height:90px;

}

.contenido_inicio p{

    font-size:23px;

    line-height:38px;

    margin-bottom:40px;

    text-align:center;

}

@keyframes zoom{
    from{ transform:scale(1); }
    to{ transform:scale(1.15); }
}
#compromiso{

padding:90px 6%;

background:#f4f6f8;

}

.compromiso_contenedor{

    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
    margin-top:40px;

}

.compromiso_card{

    background:linear-gradient(135deg, #ffffff 0%, #f9fbfd 100%);
    border:1px solid rgba(15,59,94,.08);
    border-radius:18px;
    padding:35px 28px;
    box-shadow:0 16px 40px rgba(15,59,94,.08);
    transition:transform .5s cubic-bezier(0.23, 1, 0.320, 1), box-shadow .5s ease;
    position:relative;
    overflow:hidden;

}

.compromiso_card::before{
    content:'';
    position:absolute;
    top:-2px;
    left:0;
    right:0;
    height:4px;
    background:linear-gradient(90deg, #1F4E79, #E67E22, #2E75B6);
    background-size:200% 100%;
    transform:scaleX(0);
    transform-origin:left;
    transition:.6s ease;
}

.compromiso_card:hover{

    transform:translateY(-10px) scale(1.02);
    box-shadow:0 28px 65px rgba(15,59,94,.14);

}

.compromiso_card:hover::before{
    transform:scaleX(1);
}

.compromiso_icon{

    width:60px;
    height:60px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:rgba(217,123,47,.12);
    margin-bottom:20px;

}

.compromiso_icon i{

    font-size:24px;
    color:#E67E22;

}

.compromiso_card h3{

    color:#1F4E79;
    font-size:1.35rem;
    margin-bottom:14px;

}

.compromiso_card p{

    color:#5f6874;
    line-height:1.85;
    font-size:1.01rem;

}

#servicios{

padding:90px 6%;

background:#f7f7f7;

}

.servicios_contenedor{

display:grid;

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

gap:35px;

}

.servicio_card{
    background:#fff;
    border-radius:16px;
    padding:42px 34px;
    box-shadow:0 10px 30px rgba(31,78,121,.08);
    border:1px solid rgba(31,78,121,.08);
    transition:.4s cubic-bezier(0.23,1,0.320,1);
    display:flex;
    flex-direction:column;
}
.servicio_card:hover{
    transform:translateY(-8px);
    box-shadow:0 22px 44px rgba(31,78,121,.16);
    border-color:rgba(230,126,34,.35);
}
.servicio_card_icon{
    width:60px;
    height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:14px;
    background:linear-gradient(135deg, #1F4E79, #2E75B6);
    color:#fff;
    font-size:1.5rem;
    margin-bottom:22px;
}
.servicio_card h3{
    color:#1F4E79;
    margin-bottom:16px;
    font-size:1.3rem;
}
.servicio_card ul{
    list-style:none;
    padding:0;
    margin:0 0 26px;
    flex-grow:1;
}
.servicio_card ul li{
    position:relative;
    padding-left:26px;
    margin-bottom:12px;
    font-size:0.96rem;
    line-height:1.6;
    color:#55616f;
    text-align:left;
}
.servicio_card ul li::before{
    content:"\\f00c";
    font-family:"Font Awesome 6 Free";
    font-weight:900;
    position:absolute;
    left:0;
    top:2px;
    color:#E67E22;
    font-size:0.85rem;
}
.btn_ver_mas{
    align-self:flex-start;
    padding:12px 28px;
    font-size:0.85rem;
}

@media (max-width:950px){
    .servicios_contenedor--3col{ grid-template-columns:1fr; }
}

/* Empresas: tarjetas con logos alineados */
.empresas_contenedor{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    align-items:stretch;
    margin-top:80px;
}

.empresas_contenedor .empresa{
    display:flex;
    flex-direction:column;
    height:100%;
    background:linear-gradient(135deg, #ffffff 0%, #f8fbfd 100%);
    border:1px solid rgba(15,59,94,.08);
    border-radius:20px;
    box-shadow:0 18px 45px rgba(15,59,94,.09);
    overflow:hidden;
    transition:.6s cubic-bezier(0.23, 1, 0.320, 1);
    position:relative;
}

.empresas_contenedor .empresa::before{
    content:'';
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:6px;
    background:linear-gradient(90deg, #1F4E79, #E67E22);
    transform:scaleX(0);
    transform-origin:left;
    transition:.6s ease;
}

.empresas_contenedor .empresa:hover{
    transform:translateY(-12px) scale(1.02);
    box-shadow:0 32px 70px rgba(15,59,94,.18);
}

.empresas_contenedor .empresa:hover::before{
    transform:scaleX(1);
}

.empresas_contenedor .empresa .logo-container{
    height:180px;
    display:flex;
    justify-content:center;
    align-items:center;
    padding:24px 24px 0;
}

.empresas_contenedor .empresa .logo-container img{
    display:block;
    object-fit:contain;
    width:260px;
    height:130px;
}

.empresas_contenedor .empresa .logo-container img[src$="CMJJ.png"]{
    width:440px;
    height:220px;
}

@media(max-width:900px){
    .empresas_contenedor{
        grid-template-columns:1fr;
    }
}

.servicio{

position:relative;

overflow:hidden;

border-radius:18px;

border:1px solid rgba(15,59,94,.08);

box-shadow:0 18px 45px rgba(15,59,94,.08);

cursor:pointer;

background:linear-gradient(135deg, #ffffff 0%, #fafbfc 100%);

transition:.5s cubic-bezier(0.23, 1, 0.320, 1);

transition:.5s ease;

}

.servicio:hover{

    transform:translateY(-12px) scale(1.01);

    box-shadow:0 32px 70px rgba(15,59,94,.16);

    border-color:rgba(15,59,94,.15);

}

.servicio::after{

    content:'';

    position:absolute;

    inset:0;

    background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(24,24,24,.28) 100%);

    opacity:0;

    transition:.5s ease;

}

.servicio:hover::after{

    opacity:1;

}

.servicio img{

width:100%;

height:320px;

object-fit:cover;

transition:.8s ease;

}

.servicio:hover img{

transform:scale(1.18) rotate(1deg);

}



.texto_servicio{

position:absolute;

bottom:0;

width:100%;

padding:35px;

background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.92) 100%);

color:white;

}

.texto_servicio h3{

margin-bottom:12px;

font-size:1.4rem;

}

.texto_servicio p{

line-height:1.85;

font-size:1.01rem;

}

@media(max-width:950px){

.servicios_contenedor{

grid-template-columns:1fr;

}

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

}
#capacidades{

padding:60px 6%;

background:white;

}

.capacidad_contenedor{

display:grid;

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

gap:35px;

margin-top:80px;

}

.capacidad{

background:white;

padding:40px;

border-radius:10px;

text-align:center;

box-shadow:0 0 20px rgba(0,0,0,.1);

transition:.5s;

}

.capacidad:hover{

transform:translateY(-10px);

}

.capacidad i{

font-size:50px;

color:#c9a35a;

margin-bottom:25px;

}

.capacidad h3{

color:#1f365c;

margin-bottom:20px;

font-size:28px;

}

.capacidad p{

line-height:30px;

color:#666;

}

.estadisticas{

margin-top:100px;

background:#1f365c;

border-radius:10px;

padding:70px;

display:grid;

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

text-align:center;

gap:30px;

}

.estadisticas h2{

font-size:55px;

color:#c9a35a;

margin-bottom:15px;

}

.estadisticas p{

color:white;

font-size:18px;

}

@media(max-width:950px){

.capacidad_contenedor{

grid-template-columns:1fr;

}

.estadisticas{

grid-template-columns:1fr;

padding:50px;

}

}
.empresas_contenedor{

    display:grid;

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

    gap:35px;

    margin-top:80px;

}

.empresa{
    box-shadow:0 16px 40px rgba(15,59,94,.08);
    border:1px solid rgba(15,59,94,.06);
    border-radius:20px;
    overflow:hidden;
    background:#fff;
    transition:.5s;
}

.empresa:hover{

    transform:translateY(-10px);
    box-shadow:0 24px 50px rgba(15,59,94,.12);

}

.empresa img{

    width:100%;

    height:300px;

    object-fit:cover;
    display:block;

}

.empresa_info{

    padding:35px;
    display:flex;
    flex-direction:column;
    flex:1;

}

/* Responsive header fix: keeps the hamburger visible on real mobile widths. */
@media(max-width:950px){
    html,
    body{
        max-width:100%;
        overflow-x:hidden;
    }

    header,
    #header{
        width:100%;
        height:76px;
        padding:0 14px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:10px;
        overflow:visible;
    }

    nav{
        display:none !important;
    }

    .logo{
        flex:1 1 auto;
        min-width:0;
        max-width:calc(100% - 58px);
        margin-left:0 !important;
        gap:8px;
        overflow:hidden;
    }

    .logo img,
    body.index-theme .logo img,
    body.empresa-explosivos .logo img,
    body.empresa-cmjj .logo img,
    body.empresa-obp .logo img{
        width:auto;
        height:58px !important;
        max-width:140px;
        object-fit:contain;
        flex-shrink:0;
    }

    body.empresa-cmjj .logo img{
        max-width:155px;
    }

    .logo_texto{
        min-width:0;
        overflow:hidden;
    }

    .logo_nombre,
    body.empresa-explosivos .logo_nombre,
    body.empresa-cmjj .logo_nombre,
    body.empresa-obp .logo_nombre{
        min-width:0;
        max-width:100%;
        font-size:0.82rem;
        line-height:1.1;
        letter-spacing:0.6px;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .logo_lema{
        max-width:100%;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }

    .hamburguesa{
        display:flex !important;
        align-items:center;
        justify-content:center;
        width:46px;
        height:46px;
        flex:0 0 46px;
        margin-left:auto;
        position:relative;
        z-index:2100;
    }

    .menu_movil{
        width:min(320px, 88vw);
        max-width:100%;
    }
}

@media(max-width:420px){
    header,
    #header{
        height:72px;
        padding:0 10px;
    }

    .logo{
        max-width:calc(100% - 52px);
        gap:6px;
    }

    .logo img,
    body.index-theme .logo img,
    body.empresa-explosivos .logo img,
    body.empresa-cmjj .logo img,
    body.empresa-obp .logo img{
        height:52px !important;
        max-width:118px;
    }

    body.empresa-cmjj .logo img{
        max-width:132px;
    }

    .logo_nombre,
    body.empresa-explosivos .logo_nombre,
    body.empresa-cmjj .logo_nombre,
    body.empresa-obp .logo_nombre{
        font-size:0.72rem;
        letter-spacing:0.35px;
    }

    .logo_lema{
        font-size:0.58rem;
        letter-spacing:0.35px;
    }

    .hamburguesa{
        width:42px;
        height:42px;
        flex-basis:42px;
        font-size:20px;
    }
}

.empresa_info h3{

    color:#1F4E79;

    margin-bottom:20px;

    font-size:28px;

}

.empresa_info p{

    color:#666;

    line-height:30px;

    margin-bottom:25px;

}

.empresa_logro{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:8px 16px;
    margin-bottom:22px;
    border-radius:50px;
    background:rgba(230,126,34,.12);
    color:#c96518;
    font-size:0.82rem;
    font-weight:700;
    letter-spacing:0.2px;
}
.empresa_logro i{
    color:#E67E22;
}

.empresas_contenedor .empresa_info a{
    margin-top:auto;
    align-self:flex-start;
}

@media(max-width:950px){

    .empresas_contenedor{

        grid-template-columns:1fr;

    }

}
#proyectos{

    padding:60px 6%;

    background:white;

}

.proyectos_contenedor{

    display:grid;

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

    gap:30px;

    margin-top:80px;

}

#proyectos{

    padding:60px 6%;

    background:white;

}

.proyecto{
    cursor:pointer;
    box-shadow:0 16px 40px rgba(15,59,94,.08);
    position:relative;
    overflow:hidden;
    border-radius:16px;
    transition:.5s ease;
}
.proyecto:hover{
    transform:translateY(-8px);
    box-shadow:0 24px 52px rgba(15,59,94,.12);
}

.proyecto img{

    width:100%;

    height:320px;

    object-fit:cover;

    transition:.8s;

}

.proyecto:hover img{

    transform:scale(1.1);

}

.proyecto_info{

    position:absolute;

    width:100%;

    bottom:0;

    padding:30px;

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

}

.proyecto_info h3{

    color:white;

    font-size:28px;

}

@media(max-width:950px){

    .proyectos_contenedor{

        grid-template-columns:1fr;

    }

}
#contacto{

    padding:90px 6%;

    background:#f7f7f7;

}

.contacto_contenedor{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:70px;

    margin-top:80px;

}

.mapa_contenedor{
    grid-column:1 / -1;
    width:100%;
    height:380px;
    margin-top:50px;
    border-radius:16px;
    overflow:hidden;
    box-shadow:0 14px 34px rgba(31,78,121,.12);
}

.mensaje-formulario{

    grid-column:1 / -1;

    padding:16px 20px;

    border-radius:8px;

    font-weight:600;

    margin-bottom:10px;

}

.mensaje-formulario.exito{

    background:#e3f8e9;

    color:#1a7a3d;

    border:1px solid #1a7a3d;

}

.mensaje-formulario.error{

    background:#fdeaea;

    color:#b02a2a;

    border:1px solid #b02a2a;

}

.informacion{

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

    color:white;

    padding:50px;

    border-radius:18px;
    box-shadow:0 20px 45px rgba(15,59,94,.16);

}

.informacion h3{

    margin-bottom:30px;

    font-size:1.7rem;

}

.informacion p{

    margin-bottom:24px;

    line-height:1.85;

}

.informacion i{

    color:#c9a35a;

    margin-right:15px;

}

form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

input,textarea{

    padding:18px;

    border:1px solid #d8e1e8;

    border-radius:10px;

    outline:none;

    font-size:16px;
    background:#fff;
    box-shadow:inset 0 1px 2px rgba(15,59,94,.03);

}

input:focus,textarea:focus{
    border-color:#E67E22;
    box-shadow:0 0 0 3px rgba(217,123,47,.12);
}

@media(max-width:950px){

.contacto_contenedor{

grid-template-columns:1fr;

}

}
footer{

background:#1F4E79;

padding:95px 8% 20px;

color:white;

}

.footer_contenedor{

display:grid;
	grid-template-columns:1.4fr 0.8fr 0.9fr 1fr;
	gap:40px;

}

.footer_brand{
	display:flex;
	align-items:center;
	gap:12px;
	margin-bottom:20px;
}

.footer_brand img{
	height:70px;
	display:block;
}

.footer_brand_name{
	color:#ffffff;
	font-size:22px;
	font-weight:800;
	letter-spacing:1.2px;
	text-transform:uppercase;
}

.footer_empresa p{

line-height:32px;

color:#dfe7ef;

}

.footer_columna{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.footer_columna h3{
    margin-bottom:10px;
    color:#F0A868;
    font-size:1.2rem;
}

.footer_columna a,
.footer_columna p{
    color:#dfe7ef;
    text-decoration:none;
    line-height:1.8;
    font-size:0.98rem;
}

.footer_columna a:hover{
    color:#ffffff;
}

.social_links{
    display:flex;
    gap:12px;
    margin-top:20px;
}

.social_links a{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    transition:transform .3s ease, background-color .3s ease;
}

.social_links a:hover{
    transform:translateY(-3px);
    background:#E67E22;
}

.creditos{

margin-top:50px;

padding-top:25px;

border-top:1px solid rgba(255,255,255,.2);

text-align:center;

font-size:13px;

color:#bbb;

}

.whatsapp{

position:fixed;

bottom:25px;

right:25px;

width:65px;

height:65px;

background:#25D366;

border-radius:50%;

display:flex;

justify-content:center;

align-items:center;

font-size:35px;

color:white;

text-decoration:none;

z-index:999;

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

}

#arriba{

position:fixed;

bottom:105px;

right:30px;

width:55px;

height:55px;

border:none;

border-radius:50%;

background:#c9a35a;

color:white;

font-size:20px;

cursor:pointer;

display:none;

}

@media(max-width:950px){

.footer_contenedor{

grid-template-columns:1fr 1fr;

}

}

@media(max-width:650px){

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

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

}

@media(max-width:650px){

    #header{

        padding:0 4%;
        height:78px;
        overflow:visible;

    }

    .logo img{

        height:44px;

    }

    .logo_nombre{
        font-size:13px;
    }

    .logo_lema{
        font-size:8px;
    }

    .contenido_inicio{

        width:95%;
        padding:0 10px;

    }

    .contenido_inicio h1{

        font-size:34px;
        line-height:42px;

    }

    .contenido_inicio p{

        font-size:16px;
        line-height:28px;
        margin-bottom:30px;

    }

    button{

        padding:14px 28px;
        font-size:16px;

    }

    footer{

        padding:60px 4% 20px;

    }

    .footer_contenedor{

        grid-template-columns:1fr;
        gap:30px;

    }

    .footer_brand{

        flex-direction:column;
        align-items:flex-start;

    }

    .footer_brand img{

        height:55px;

    }

    .footer_links,
    .footer_contacto{

        width:100%;

    }

    .footer_links a,
    .footer_contacto p{

        word-break:break-word;

    }

    .footer_links,
    .footer_contacto{

        margin-top:20px;

    }

    .footer_links a{

        margin-bottom:12px;

    }

    .footer_logo p{

        line-height:26px;

    }

    .creditos{

        font-size:12px;

    }

}

@media(max-width:500px){

    #inicio{

        min-height:100vh;

    }

    .contenido_inicio h1{

        font-size:28px;
        line-height:36px;

    }

    .contenido_inicio p{

        font-size:15px;
        line-height:26px;

    }

    section{

        padding:60px 4%;

    }

    .footer_brand{

        gap:10px;

    }

    .footer_links,
    .footer_contacto{

        width:100%;

    }

}

@media(max-width:650px){
    body.index-theme .footer_brand img{
        height:88px;
    }
}

@media(max-width:500px){
    body.index-theme .footer_brand img{
        height:78px;
    }
}

#capacidades{

padding:60px 6%;

background:white;

}

.capacidad_contenedor{

display:grid;

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

gap:35px;

margin-top:80px;

}

.capacidad{

background:white;

padding:40px;

border-radius:10px;

text-align:center;

box-shadow:0 0 20px rgba(0,0,0,.1);

transition:.5s;

}

.capacidad:hover{

transform:translateY(-10px);

}

.capacidad i{

font-size:50px;

color:#c9a35a;

margin-bottom:25px;

}

.capacidad h3{

color:#1f365c;

margin-bottom:20px;

font-size:28px;

}

.capacidad p{

line-height:30px;

color:#666;

}

.estadisticas{

margin-top:100px;

background:#1f365c;

border-radius:10px;

padding:70px;

display:grid;

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

text-align:center;

gap:30px;

}

.estadisticas h2{

font-size:55px;

color:#c9a35a;

margin-bottom:15px;

}

.estadisticas p{

color:white;

font-size:18px;

}

@media(max-width:950px){

.capacidad_contenedor{

grid-template-columns:1fr;

}

.estadisticas{

grid-template-columns:1fr;

padding:50px;

}

}
