*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

body{

    font-family:Inter,sans-serif;

    color:var(--text);

    background:#fff;

}

.container{

    width:100%;

    max-width:var(--max-width);

    margin:auto;

    padding:0 20px;

}

header{

    position:fixed;

    width:100%;

    top:0;

    left:0;

    z-index:999;

    padding:5px 0;

    background: #fff;

    box-shadow:var(--shadow);

}

header .container{

    display:flex;

    justify-content:space-between;

    align-items:center;

    height:90px;

}

header .logo{
    width: 20%;
}

.logo img{
    width: 50%;
}

nav{

    display:flex;

    gap:35px;

}

nav a{

    color:#000000;

    text-decoration:none;

}

.btn{

    background:var(--secondary);

    color:#fff;

    padding:15px 28px;

    border-radius:10px;

    text-decoration:none;

    transition:.3s;

}

.btn:hover{

    transform:translateY(-3px);

}

/*=============================
MENU TOGGLE
=============================*/

.menu-toggle{

    display:none;

    width:46px;
    height:46px;

    border:none;

    background:none;

    cursor:pointer;

    flex-direction:column;

    justify-content:center;

    gap:6px;

}

.menu-toggle span{

    width:28px;
    height:3px;

    border-radius:20px;

    background:var(--primary);

    transition:.35s;

}

/*=============================
MOBILE MENU
=============================*/

.mobile-menu{

    position:fixed;

    top:100px;

    left:0;

    width:100%;

    background:#fff;

    box-shadow:0 20px 40px rgba(0,0,0,.08);

    padding:30px;

    display:flex;

    flex-direction:column;

    gap:20px;

    opacity:0;

    visibility:hidden;

    transform:translateY(-20px);

    transition:.35s;

    z-index:998;

}

.mobile-menu.active{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.mobile-menu a{

    text-decoration:none;

    color:var(--primary);

    font-weight:600;

    font-size:18px;

}

.mobile-menu .btn{

    margin-top:10px;

    text-align:center;

}

.menu-toggle.active span:nth-child(1){

    transform:rotate(45deg) translateY(13px);

}

.menu-toggle.active span:nth-child(2){

    opacity:0;

}

.menu-toggle.active span:nth-child(3){

    transform:rotate(-45deg) translateY(-13px);

}

.hero{

    position:relative;

    min-height:100vh;

    padding:140px 0 170px;

    overflow:visible;

    background:
    linear-gradient(
        90deg,
        rgba(0,51,116,.88) 0%,
        rgba(0,51,116,.82) 30%,
        rgba(0,51,116,.55) 55%,
        rgba(0,51,116,.15) 78%,
        rgba(0,51,116,0) 100%
    ),
    url("../img/hero.webp");

    background-size:cover;

    background-position:center center;

}

.hero-grid{

    display:grid;

    grid-template-columns:1.1fr .9fr;

    gap:80px;

    align-items:center;

}

.hero-content{

    color:white;
    max-width: 720px;

}

.hero-content h1{

    font-size:62px;

    line-height:1.1;

    margin:20px 0;

    max-width: 700px;

}

.hero-content p{

    font-size:22px;

    opacity:.95;

    margin-bottom:30px;
    
    line-height: 1.6;

}

.hero-content ul{

    margin-bottom:40px;

}

.hero-content li{

    margin-bottom:10px;

}

.hero-form{

    background:white;

    border-radius:18px;

    padding:40px;

    box-shadow:var(--shadow);

    backdrop-filter:blur(15px);

    border:1px solid rgba(0,0,0,.08);

}

.hero-form h3{

    text-align:center;

    margin-bottom:10px;

}

.hero-form p{

    text-align:center;

    margin-bottom:25px;

}

.hero-form form{

    display:flex;

    flex-direction:column;

    gap:15px;

}

.hero-form input,
.hero-form select,
.hero-form textarea{

    width:100%;

    padding:15px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:15px;

    transition: .3s;

}

.hero-form button{

    border:none;

    cursor:pointer;

    padding:16px;

    border-radius:10px;

    background:var(--secondary);

    color:white;

    font-size:16px;

    width:100%;

}

.hero-form input:focus,
.hero-form select:focus,
.hero-form textarea:focus{

    outline:none;

    border-color:#f7941d;

    box-shadow:0 0 0 4px rgba(247,148,29,.15);

}

/*========================================
CTA HERO
========================================*/

.hero-cta{

    position:absolute;

    left:50%;

    bottom:-120px;

    transform:translateX(-50%);

    width:100%;

    max-width:var(--max-width);

    padding:0 20px;

    z-index:50;

}

.hero-cta-box{

    background:#fff;

    border-radius:22px;

     box-shadow:
        0 30px 80px rgba(9,30,66,.15),
        0 10px 30px rgba(9,30,66,.08);

    display:grid;

    grid-template-columns:100px 1fr auto;

    align-items:center;

    padding:35px 45px;

    gap:35px;

}

.hero-cta-icon{

    width:80px;

    height:80px;

    border-radius:18px;

    background:#edf6ff;

    display:flex;

    justify-content:center;

    align-items:center;

}

.hero-cta-icon img{

    width:70px;

}

.hero-cta-content h2{

    color:var(--primary);

    font-size:32px;

    margin-bottom:10px;

}

.hero-cta-content p{

    color:#666;

    line-height:1.8;

    font-size:18px;

}

/*====================================
SERVICIOS
====================================*/

.services{

    background:#f7f9fc;

    padding:240px 0 120px;
}

.section-header{

    max-width:820px;
    margin:0 auto 70px;
    text-align:center;

}

.section-badge{

    display:inline-flex;
    align-items:center;
    gap:10px;

    padding:10px 18px;

    border-radius:50px;

    background:#eaf3ff;

    color:#0D5DB8;

    font-size:13px;

    font-weight:700;

    letter-spacing:2px;

    text-transform:uppercase;

}

.badge-dot{

    width:8px;
    height:8px;
    border-radius:50%;
    background:#ff8b1a;

}

.section-header h2{

    margin:25px 0 20px;

    font-size:52px;

    font-weight:800;

    color:#0d2348;

    line-height:1.1;

}

.section-header h2 span{

    display:block;

    color:#0D5DB8;

}

.section-header p{

    font-size:19px;

    color:#667085;

    line-height:1.5;

}

.services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:30px;

}

.service-card{

    background:#fff;

    border-radius:22px;

    padding:30px;

    border:1px solid #E8EEF6;

    position:relative;

    transition:.35s;

    overflow:hidden;

    box-shadow:0 12px 35px rgba(12,31,63,.05);

}

.service-card::before{

    content:"";

    position:absolute;

    left:0;
    top:0;

    width:100%;
    height:4px;

    background:linear-gradient(90deg,#0D5DB8,#3B82F6);

}

.service-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 60px rgba(0,0,0,.12);

}

.service-icon{

    width:90px;
    height:90px;

    border-radius:50%;

    background:linear-gradient(180deg,#eef6ff,#dfeeff);

    display:flex;

    justify-content:center;

    align-items:center;

    margin-bottom:28px;

    transition:.35s;

}

.service-card:hover .service-icon{

    transform:scale(1.08);

    background:linear-gradient(180deg,#d8ebff,#bddcff);

}

.service-icon img{

    width:75px;
    height:75px;

}

.service-card h3{

    color:#0d2348;

    font-size:24px;

    margin-bottom:18px;

    font-weight:700;

}

.service-card p{

    color:#667085;

    line-height:1.5;

    font-size:17px;

}

/*====================================
POR QUÉ ELEGIRNOS
====================================*/

.why-us{

    position:relative;

    padding:110px 0;

    background:url('../img/background-industria.webp') center center/cover no-repeat;

    overflow:hidden;

}

.why-us .overlay{

    position:absolute;

    inset:0;

    background:rgba(6,22,44,.92);

}

.why-us .container{

    position:relative;

    z-index:2;

}

.why-us .section-header{

    margin-bottom:70px;

}

.why-us .section-header h2{

    color:#fff;

}

.why-us .section-header p{

    color:rgba(255,255,255,.7);

}

.light .section-badge{

    background:rgba(255,255,255,.08);

    color:#38bdf8;

}

.why-grid{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    gap:35px;

    align-items:start;

}

.why-item{

    text-align:center;

    transition:.35s;

}

.why-item img{

    width:100px;


    transition:.35s;

}

.why-item h3{

    color:#fff;

    font-size:18px;

    line-height:1.5;

    font-weight:600;

}

.why-item:hover{

    transform:translateY(-8px);

}

.why-item:hover img{

    transform:scale(1.12);

}

/*======================================
=            PROCESO
======================================*/

.process{

    padding:120px 0;

    background:#f7f9fc;

}

.process-grid{

    margin-top:70px;

    display:grid;

    grid-template-columns:
    1fr
    50px
    1fr
    50px
    1fr
    50px
    1fr
    50px
    1fr;

    align-items:start;

    gap:10px;

}

.process-item{

    position:relative;

    text-align:center;

}

.process-number{

    width:34px;

    height:34px;

    background:var(--primary);

    color:#fff;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    font-weight:700;

    font-size:15px;

    margin:0 auto 18px;

    box-shadow:0 10px 25px rgba(0,51,116,.18);

}

.process-card{

    width:170px;

    height:170px;

    margin:auto;

    border:1px solid #E7EDF5;

    border-radius:22px;

    background:#fff;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:.35s;

    box-shadow:0 8px 30px rgba(0,0,0,.05);

}

.process-card:hover{

    transform:translateY(-8px);

    box-shadow:0 18px 45px rgba(0,0,0,.10);

}

.process-card img{

    width:82px;

}

.process-item h3{

    margin-top:22px;

    margin-bottom:12px;

    font-size:22px;

    color:var(--primary);

}

.process-item p{

    font-size:15px;

    color:#667085;

    line-height:1.5;

    max-width:220px;

    margin:auto;

}

.process-arrow{

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:34px;

    color:#C8D5E3;

    height:205px;

}

/*======================================
=      NORMATIVA Y CUMPLIMIENTO
======================================*/

.compliance{

    padding:120px 0;

     background:#fff;

}

.compliance-grid{

    display:grid;

    grid-template-columns:

    420px

    1fr

    330px;

    gap:60px;

    align-items:center;

}

.compliance-image{

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 25px 60px rgba(0,0,0,.08);

}

.compliance-image img{

    width:100%;

    display:block;

}

.compliance-content h2{

    margin:20px 0;
    font-size:34px;
    font-weight:800;

}

.compliance-content h2 span{

    display:block;

    color:var(--primary);

}

.compliance-content p{

    margin-bottom:22px;

    color:#667085;

    line-height:1.5;

    font-size:17px;

}

.compliance-card{

    background:#F7FAFD;

    border:1px solid #E8EEF5;

    border-radius:22px;

    padding:35px;

    box-shadow:0 20px 45px rgba(0,0,0,.05);

}

.compliance-card ul{

    list-style:none;

    margin:0;

    padding:0;

}

.compliance-card li{

    display:flex;

    align-items:flex-start;

    gap:18px;

    padding:18px 0;

}

.compliance-card li:not(:last-child){

    border-bottom:1px solid #E5EDF4;

}

.compliance-card img{

    width:24px;

    margin-top:2px;

}

.compliance-card span{

    color:var(--primary);

    font-weight:600;

    line-height:1.6;

}

/*======================================
=              FAQ
======================================*/

.faq{

    padding:120px 0;

    background:#F8FAFC;

}

.faq-grid{

    margin-top:70px;

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:35px;

}

.faq-column{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.faq-item{

    background:#fff;

    border:1px solid #E7EDF5;

    border-radius:14px;

    overflow:hidden;

    transition:.35s;

    box-shadow:0 8px 25px rgba(0,0,0,.03);

}

.faq-item:hover{

    border-color:var(--primary);

}

.faq-question{

    width:100%;

    background:none;

    border:none;

    padding:24px 28px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    cursor:pointer;

    font-size:18px;

    font-weight:600;

    color:var(--primary);

    text-align:left;

}

.faq-question span{

    font-size:26px;

    color:var(--primary);

    transition:.3s;

}

.faq-answer{

    max-height:0;

    overflow:hidden;

    transition:max-height .35s ease;

}

.faq-answer p{

    padding:0 28px 25px;

    color:#667085;

    line-height:1.5;

}

.faq-item.active .faq-answer{

    max-height:250px;

}

.faq-item.active .faq-question span{

    transform:rotate(45deg);

}

/*==================================================
FOOTER
==================================================*/

.footer{
    background:#081B34;
    color:#fff;
    overflow:hidden;
}

/*==================================================
CTA
==================================================*/

.footer-cta{
    position:relative;
    height:360px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    overflow:hidden;
}

.footer-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position: 80% 20%;
}

.footer-overlay{
    position:absolute;
    inset:0;
    background:#02142a59;
}

.footer-cta-content{
    position:relative;
    z-index:2;
}

.footer-cta h2{
    color:#fff;
    font-size:3rem;
    font-weight:800;
    margin-bottom:20px;
    line-height:1.2;
}

.footer-cta p{
    color:#d4dce8;
    font-size:1.15rem;
    line-height:1.8;
    margin-bottom:35px;
}

/*==================================================
MAIN
==================================================*/

.footer-main{
    padding:80px 0 60px;
}

.footer-grid{
    display:grid;
    grid-template-columns:2fr 1fr 1fr 1fr;
    gap:70px;
}

.footer-logo{
    width:180px;
    margin-bottom:25px;
}

.footer-about p{
    color:#b7c5d7;
    line-height:1.9;
    max-width:380px;
}

/*==================================================
COLUMNAS
==================================================*/

.footer-column h3{
    color:#fff;
    font-size:22px;
    font-weight:700;
    margin-bottom:28px;
}

.footer-column ul{
    margin:0;
    padding:0;
    list-style:none;
}

/*==================================================
CONTACTO
==================================================*/

.footer-contact li{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:18px;
    color:#c7d2e1;
}

.footer-contact img{
    width:20px;
    margin-top:3px;
    flex-shrink:0;
}

/*==================================================
LINKS
==================================================*/

.footer-links li{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:16px;
    color:#c7d2e1;
    transition:.3s;
}

.footer-links img{
    width:15px;
    height:15px;
    flex-shrink:0;
}

.footer-links li:hover,
.footer-contact li:hover{
    color:#fff;
    transform:translateX(5px);
}

/*==================================================
BOTTOM
==================================================*/

.footer-bottom{
    border-top:1px solid rgba(255,255,255,.08);
    padding:25px 0;
}

.footer-bottom p{
    margin:0;
    text-align:center;
    color:#9db2ca;
    font-size:.95rem;
}

.btn-loading{

    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;

}

.btn-spinner{

    width:18px;
    height:18px;

    border:2px solid rgba(255,255,255,.35);

    border-top-color:#fff;

    border-radius:50%;

    animation:spin .7s linear infinite;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}