/*==================================================
    MIGRACIONPRO
    STYLE.CSS
    Versión 2.0
==================================================*/


/*==================================================
    VARIABLES
==================================================*/

:root{

    /* Colores */

    --primary:#2563EB;
    --primary-dark:#1D4ED8;
    --secondary:#06B6D4;

    --dark:#0F172A;
    --dark-light:#1E293B;

    --surface:#F8FAFC;
    --white:#FFFFFF;

    --text:#334155;
    --text-light:#64748B;

    --success:#22C55E;
    --warning:#F59E0B;
    --danger:#EF4444;

    --border:#E2E8F0;

    /* Tipografía */

    --font-heading:"Poppins",sans-serif;
    --font-body:"Inter",sans-serif;

    /* Tamaños */

    --fs-xs:.875rem;
    --fs-sm:1rem;
    --fs-md:1.125rem;
    --fs-lg:1.5rem;
    --fs-xl:2.25rem;
    --fs-xxl:3.5rem;

    /* Espaciados */

    --space-1:.5rem;
    --space-2:1rem;
    --space-3:1.5rem;
    --space-4:2rem;
    --space-5:3rem;
    --space-6:4rem;
    --space-7:5rem;
    --space-8:7rem;

    /* Bordes */

    --radius-sm:8px;
    --radius-md:14px;
    --radius-lg:22px;
    --radius-xl:32px;

    /* Sombras */

    --shadow-sm:
        0 4px 12px rgba(15,23,42,.05);

    --shadow-md:
        0 10px 30px rgba(15,23,42,.08);

    --shadow-lg:
        0 20px 60px rgba(15,23,42,.12);

    /* Transiciones */

    --transition:
        .35s ease;

    /* Contenedor */

    --container:1280px;

}



/*==================================================
    RESET
==================================================*/

*,
*::before,
*::after{

    margin:0;
    padding:0;

    box-sizing:border-box;

}


html{

    scroll-behavior:smooth;

    scroll-padding-top:90px;

}


body{

    font-family:var(--font-body);

    font-size:16px;

    line-height:1.7;

    color:var(--text);

    background:var(--white);

    overflow-x:hidden;

    -webkit-font-smoothing:antialiased;

    text-rendering:optimizeLegibility;

}


img{

    display:block;

    max-width:100%;

    height:auto;

}


picture{

    display:block;

}


a{

    color:inherit;

    text-decoration:none;

}


ul{

    list-style:none;

}


button,
input,
textarea,
select{

    font:inherit;

    border:none;

    outline:none;

    background:none;

}


button{

    cursor:pointer;

}


textarea{

    resize:vertical;

}


section{

    position:relative;

    padding:var(--space-8) 0;

}



/*==================================================
    TIPOGRAFÍA
==================================================*/

h1,
h2,
h3,
h4{

    font-family:var(--font-heading);

    color:var(--dark);

    line-height:1.15;

    font-weight:700;

}


h1{

    font-size:clamp(2.7rem,5vw,4.5rem);

}


h2{

    font-size:clamp(2rem,4vw,3.2rem);

}


h3{

    font-size:1.35rem;

}


p{

    color:var(--text-light);

}



/*==================================================
    LAYOUT
==================================================*/

.container{

    width:min(100% - 2rem,var(--container));

    margin-inline:auto;

}


main{

    overflow:hidden;

}



/*==================================================
    UTILIDADES
==================================================*/

.section-heading{

    max-width:760px;

    margin:0 auto 5rem;

    text-align:center;

}


.section-heading h2{

    margin-top:1rem;

    margin-bottom:1.25rem;

}


.section-heading p{

    font-size:1.1rem;

}


.section-badge{

    display:inline-flex;

    align-items:center;

    gap:.6rem;

    padding:.6rem 1rem;

    border-radius:999px;

    background:#EFF6FF;

    color:var(--primary);

    font-size:.85rem;

    font-weight:600;

}


.card{

    background:var(--white);

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    box-shadow:var(--shadow-sm);

}
/*==================================================
    BOTONES
==================================================*/

.btn-primary,
.btn-secondary,
.btn-outline{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:.75rem;

    padding:1rem 1.75rem;

    border-radius:var(--radius-md);

    font-weight:600;

    font-size:.95rem;

    transition:all var(--transition);

    cursor:pointer;

    white-space:nowrap;

}


.btn-primary{

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:var(--white);

    box-shadow:0 12px 30px rgba(37,99,235,.25);

}


.btn-primary:hover{

    transform:translateY(-4px);

    box-shadow:0 20px 45px rgba(37,99,235,.35);

}


.btn-secondary{

    background:var(--white);

    color:var(--dark);

    border:1px solid var(--border);

}


.btn-secondary:hover{

    border-color:var(--primary);

    color:var(--primary);

    transform:translateY(-3px);

}


.btn-outline{

    background:transparent;

    border:2px solid var(--primary);

    color:var(--primary);

}


.btn-outline:hover{

    background:var(--primary);

    color:var(--white);

}


.btn-full{

    width:100%;

}



/*==================================================
    FOCUS ACCESIBLE
==================================================*/

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{

    outline:3px solid rgba(37,99,235,.25);

    outline-offset:4px;

}



/*==================================================
    LOADER
==================================================*/

.loader{

    position:fixed;

    inset:0;

    background:var(--white);

    display:flex;

    align-items:center;

    justify-content:center;

    z-index:9999;

    transition:opacity .5s ease,
               visibility .5s ease;

}


.loader.hidden{

    opacity:0;

    visibility:hidden;

}


.loader-circle{

    width:70px;

    height:70px;

    border-radius:50%;

    border:5px solid rgba(37,99,235,.15);

    border-top-color:var(--primary);

    animation:spin 1s linear infinite;

}



/*==================================================
    TARJETAS
==================================================*/

.card,
.service-card,
.tech-card,
.project-card,
.testimonial-card,
.stat-card,
.comparison-card,
.contact-card{

    background:var(--white);

    border:1px solid var(--border);

    border-radius:var(--radius-lg);

    box-shadow:var(--shadow-sm);

    transition:
        transform var(--transition),
        box-shadow var(--transition),
        border-color var(--transition);

}


.card:hover,
.service-card:hover,
.tech-card:hover,
.project-card:hover,
.testimonial-card:hover,
.stat-card:hover,
.comparison-card:hover{

    transform:translateY(-8px);

    box-shadow:var(--shadow-lg);

    border-color:rgba(37,99,235,.2);

}



/*==================================================
    ICONOS
==================================================*/

.service-icon,
.step-icon,
.benefit-icon,
.comparison-icon{

    width:64px;

    height:64px;

    display:grid;

    place-items:center;

    border-radius:18px;

    background:linear-gradient(
        135deg,
        rgba(37,99,235,.08),
        rgba(6,182,212,.12)
    );

    color:var(--primary);

    font-size:1.4rem;

}



/*==================================================
    LINKS
==================================================*/

a{

    transition:color var(--transition);

}


a:hover{

    color:var(--primary);

}



/*==================================================
    SEPARADORES
==================================================*/

.section-heading::after{

    content:"";

    display:block;

    width:80px;

    height:4px;

    margin:2rem auto 0;

    border-radius:999px;

    background:linear-gradient(
        90deg,
        var(--primary),
        var(--secondary)
    );

}



/*==================================================
    SCROLLBAR
==================================================*/

::-webkit-scrollbar{

    width:12px;

}


::-webkit-scrollbar-track{

    background:#EDF2F7;

}


::-webkit-scrollbar-thumb{

    background:linear-gradient(
        var(--primary),
        var(--secondary)
    );

    border-radius:999px;

}


::-webkit-scrollbar-thumb:hover{

    background:var(--primary-dark);

}
/*==================================================
    HEADER
==================================================*/

.site-header{

    position:fixed;

    top:0;
    left:0;

    width:100%;

    z-index:1000;

    transition:
        background var(--transition),
        box-shadow var(--transition),
        padding var(--transition);

    padding:1.25rem 0;

    background:transparent;

}

.site-header.scrolled{

    padding:.85rem 0;

    background:rgba(255,255,255,.88);

    backdrop-filter:blur(16px);

    -webkit-backdrop-filter:blur(16px);

    box-shadow:0 12px 35px rgba(15,23,42,.08);

    border-bottom:1px solid rgba(226,232,240,.8);

}


/*==================================================
    NAVBAR
==================================================*/

.navbar{

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:2rem;

}


/*==================================================
    LOGO
==================================================*/

.logo{

    display:flex;

    align-items:center;

    gap:.75rem;

    font-family:var(--font-heading);

    font-size:1.45rem;

    font-weight:700;

    color:var(--dark);

}

.logo i{

    display:grid;

    place-items:center;

    width:48px;

    height:48px;

    border-radius:14px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:1.2rem;

}

.logo span span{

    color:var(--primary);

}


/*==================================================
    MENÚ
==================================================*/

.menu{

    display:flex;

    align-items:center;

    gap:2rem;

}

.menu a{

    position:relative;

    font-weight:500;

    color:var(--dark-light);

}

.menu a::after{

    content:"";

    position:absolute;

    left:0;

    bottom:-8px;

    width:0;

    height:2px;

    border-radius:999px;

    background:var(--primary);

    transition:width var(--transition);

}

.menu a:hover::after,

.menu a.active::after{

    width:100%;

}

.menu a:hover{

    color:var(--primary);

}


/*==================================================
    ACCIONES
==================================================*/

.nav-actions{

    display:flex;

    align-items:center;

    gap:1rem;

}


/*==================================================
    MENÚ MÓVIL
==================================================*/

.mobile-toggle{

    display:none;

    width:48px;

    height:48px;

    border-radius:14px;

    background:var(--surface);

    color:var(--dark);

    transition:all var(--transition);

}

.mobile-toggle:hover{

    background:var(--primary);

    color:#fff;

}

.mobile-toggle i{

    font-size:1.25rem;

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:992px){

    .nav-actions{

        display:none;

    }

    .mobile-toggle{

        display:grid;

        place-items:center;

    }

    .menu{

        position:absolute;

        top:100%;

        left:0;

        right:0;

        display:flex;

        flex-direction:column;

        align-items:flex-start;

        gap:0;

        padding:1rem 0;

        background:#fff;

        border-radius:0 0 20px 20px;

        box-shadow:var(--shadow-lg);

        max-height:0;

        overflow:hidden;

        opacity:0;

        visibility:hidden;

        transition:
            max-height .4s ease,
            opacity .3s ease,
            visibility .3s ease;

    }

    .menu.active{

        max-height:600px;

        opacity:1;

        visibility:visible;

    }

    .menu li{

        width:100%;

    }

    .menu a{

        display:block;

        width:100%;

        padding:1rem 2rem;

    }

}
/*==================================================
    HERO
==================================================*/

.hero{

    position:relative;

    min-height:100vh;

    display:flex;

    align-items:center;

    overflow:hidden;

    padding-top:9rem;

    background:linear-gradient(
        180deg,
        #ffffff 0%,
        #f8fbff 100%
    );

}


/*==================================================
    FONDO
==================================================*/

.hero-background{

    position:absolute;

    inset:0;

    overflow:hidden;

    pointer-events:none;

}


.gradient{

    position:absolute;

    border-radius:50%;

    filter:blur(100px);

    opacity:.45;

}


.gradient-one{

    width:550px;

    height:550px;

    top:-180px;

    left:-120px;

    background:#3B82F6;

}


.gradient-two{

    width:500px;

    height:500px;

    bottom:-180px;

    right:-120px;

    background:#06B6D4;

}


.hero-grid-pattern{

    position:absolute;

    inset:0;

    background-image:

        linear-gradient(
            rgba(15,23,42,.04) 1px,
            transparent 1px
        ),

        linear-gradient(
            90deg,
            rgba(15,23,42,.04) 1px,
            transparent 1px
        );

    background-size:42px 42px;

    mask-image:
        radial-gradient(circle, black 35%, transparent 90%);

}


/*==================================================
    LAYOUT
==================================================*/

.hero-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:5rem;

    align-items:center;

}


/*==================================================
    CONTENIDO
==================================================*/

.hero-content{

    position:relative;

    z-index:2;

}


.hero-badge{

    display:inline-flex;

    align-items:center;

    gap:.75rem;

    padding:.75rem 1.25rem;

    border-radius:999px;

    background:#EFF6FF;

    color:var(--primary);

    font-weight:600;

    margin-bottom:2rem;

}


.hero h1{

    margin-bottom:1.75rem;

}


.hero h1 span{

    display:block;

    margin-top:.5rem;

    color:var(--primary);

}


.hero-description{

    max-width:620px;

    font-size:1.15rem;

    margin-bottom:2.5rem;

}


/*==================================================
    BOTONES
==================================================*/

.hero-actions{

    display:flex;

    gap:1rem;

    flex-wrap:wrap;

    margin-bottom:2.5rem;

}


/*==================================================
    BENEFICIOS
==================================================*/

.hero-highlights{

    display:grid;

    grid-template-columns:repeat(2,minmax(180px,1fr));

    gap:1rem;

}


.hero-highlights li{

    display:flex;

    align-items:center;

    gap:.75rem;

    font-weight:500;

}


.hero-highlights i{

    color:var(--success);

}


/*==================================================
    IMAGEN
==================================================*/

.hero-media{

    position:relative;

}


.hero-media img{

    width:100%;

    border-radius:32px;

    box-shadow:

        0 40px 80px rgba(15,23,42,.18);

}


/*==================================================
    FLOATING CARDS
==================================================*/

.floating-card{

    position:absolute;

    display:flex;

    align-items:center;

    gap:1rem;

    padding:1rem 1.25rem;

    background:rgba(255,255,255,.92);

    backdrop-filter:blur(16px);

    -webkit-backdrop-filter:blur(16px);

    border-radius:18px;

    box-shadow:var(--shadow-lg);

    border:1px solid rgba(255,255,255,.4);

}


.floating-card i{

    width:48px;

    height:48px;

    display:grid;

    place-items:center;

    border-radius:14px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

}


.floating-card strong{

    display:block;

    color:var(--dark);

    margin-bottom:.2rem;

}


.floating-card small{

    color:var(--text-light);

}


/* Posiciones */

.floating-card-top{

    top:5%;

    left:-50px;

}


.floating-card-right{

    top:42%;

    right:-70px;

}


.floating-card-bottom{

    bottom:5%;

    left:-30px;

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:992px){

    .hero{

        min-height:auto;

        padding-top:8rem;

        padding-bottom:5rem;

    }

    .hero-layout{

        grid-template-columns:1fr;

        gap:4rem;

    }

    .hero-content{

        text-align:center;

    }

    .hero-description{

        margin-inline:auto;

    }

    .hero-actions{

        justify-content:center;

    }

    .hero-highlights{

        grid-template-columns:1fr;

        max-width:320px;

        margin:auto;

    }

    .floating-card{

        display:none;

    }

}
/*==================================================
    TECNOLOGÍAS
==================================================*/

.tech-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:2rem;

}

.tech-card{

    padding:2rem;

    text-align:center;

}

.tech-card i{

    font-size:3rem;

    color:var(--primary);

    margin-bottom:1.5rem;

}

.tech-card h3{

    margin-bottom:.8rem;

}

.tech-card p{

    font-size:.95rem;

}


/*==================================================
    SERVICIOS
==================================================*/

.services-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:2rem;

}

.service-card{

    padding:2.5rem;

}

.service-icon{

    margin-bottom:2rem;

}

.service-card h3{

    margin-bottom:1rem;

}

.service-card p{

    margin-bottom:1.5rem;

}

.service-list{

    display:flex;

    flex-direction:column;

    gap:.8rem;

}

.service-list li{

    display:flex;

    align-items:center;

    gap:.75rem;

    color:var(--text);

    font-size:.95rem;

}


/*==================================================
    BENEFICIOS
==================================================*/

.benefits-layout{

    display:grid;

    grid-template-columns:1.2fr .8fr;

    gap:4rem;

    align-items:start;

}

.benefits-list{

    display:grid;

    gap:2rem;

    margin-top:3rem;

}

.benefit-item{

    display:flex;

    gap:1.5rem;

}

.benefit-icon{

    flex-shrink:0;

}

.benefit-item h3{

    margin-bottom:.5rem;

}


/*==================================================
    TARJETA LATERAL
==================================================*/

.benefits-card{

    position:sticky;

    top:120px;

    padding:2.5rem;

    background:linear-gradient(
        180deg,
        #ffffff,
        #f8fbff
    );

    border:1px solid var(--border);

    border-radius:var(--radius-xl);

    box-shadow:var(--shadow-lg);

}

.card-header{

    display:flex;

    align-items:center;

    gap:1rem;

    margin-bottom:2rem;

}

.card-header i{

    color:var(--success);

    font-size:1.6rem;

}

.benefits-card ul{

    display:flex;

    flex-direction:column;

    gap:1rem;

}

.benefits-card li{

    display:flex;

    align-items:center;

    gap:.8rem;

}

.benefits-card li i{

    color:var(--success);

}

.card-footer{

    margin-top:2rem;

    padding-top:2rem;

    border-top:1px solid var(--border);

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:1100px){

    .tech-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .services-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .benefits-layout{

        grid-template-columns:1fr;

    }

    .benefits-card{

        position:relative;

        top:auto;

    }

}

@media (max-width:768px){

    .tech-grid{

        grid-template-columns:1fr;

    }

    .services-grid{

        grid-template-columns:1fr;

    }

    .benefit-item{

        flex-direction:column;

    }

}
/*==================================================
    PROCESO
==================================================*/

.process{

    background:var(--surface);

}

.process-timeline{

    position:relative;

    display:grid;

    grid-template-columns:repeat(5,1fr);

    gap:2rem;

    margin-top:5rem;

}

.process-timeline::before{

    content:"";

    position:absolute;

    top:42px;

    left:8%;

    right:8%;

    height:2px;

    background:var(--border);

    z-index:0;

}

.process-step{

    position:relative;

    text-align:center;

    z-index:1;

}

.step-icon{

    width:84px;

    height:84px;

    margin:0 auto 1.5rem;

    border-radius:50%;

    display:grid;

    place-items:center;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:1.5rem;

    box-shadow:0 15px 35px rgba(37,99,235,.25);

}

.process-step h3{

    margin-bottom:.75rem;

}

.process-step p{

    font-size:.95rem;

}


/*==================================================
    ESTADÍSTICAS
==================================================*/

.stats{

    background:linear-gradient(
        180deg,
        #ffffff,
        #f8fbff
    );

}

.stats-grid{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:2rem;

}

.stat-card{

    padding:2.5rem 2rem;

    text-align:center;

}

.stat-number{

    display:block;

    font-family:var(--font-heading);

    font-size:3rem;

    font-weight:700;

    color:var(--primary);

    margin-bottom:.5rem;

}

.stat-label{

    font-weight:600;

    color:var(--dark);

}

.stat-description{

    margin-top:1rem;

    font-size:.95rem;

}

.trust-bar{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:1rem;

    margin-top:4rem;

}

.trust-item{

    padding:.9rem 1.4rem;

    border-radius:999px;

    background:#fff;

    border:1px solid var(--border);

    font-weight:600;

    box-shadow:var(--shadow-sm);

}


/*==================================================
    COMPARATIVA
==================================================*/

.comparison{

    background:var(--surface);

}

.comparison-grid{

    display:grid;

    grid-template-columns:1fr auto 1fr;

    gap:2rem;

    align-items:center;

}

.comparison-card{

    padding:2.5rem;

}

.comparison-card.bad{

    border-top:6px solid var(--danger);

}

.comparison-card.good{

    border-top:6px solid var(--success);

}

.comparison-card h3{

    margin-bottom:2rem;

}

.comparison-card ul{

    display:flex;

    flex-direction:column;

    gap:1rem;

}

.comparison-card li{

    display:flex;

    gap:.75rem;

    align-items:flex-start;

}

.comparison-card.bad i{

    color:var(--danger);

}

.comparison-card.good i{

    color:var(--success);

}

.vs-circle{

    width:90px;

    height:90px;

    display:grid;

    place-items:center;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-family:var(--font-heading);

    font-weight:700;

    font-size:1.25rem;

    box-shadow:0 20px 40px rgba(37,99,235,.30);

}

.comparison-summary{

    margin-top:4rem;

    padding:2.5rem;

    border-radius:var(--radius-xl);

    background:#fff;

    border:1px solid var(--border);

    text-align:center;

    box-shadow:var(--shadow-md);

}

.comparison-summary h3{

    margin-bottom:1rem;

}

.comparison-summary p{

    max-width:760px;

    margin:auto;

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:1100px){

    .process-timeline{

        grid-template-columns:repeat(2,1fr);

    }

    .process-timeline::before{

        display:none;

    }

    .stats-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .comparison-grid{

        grid-template-columns:1fr;

    }

    .vs-circle{

        margin:auto;

    }

}

@media (max-width:768px){

    .process-timeline{

        grid-template-columns:1fr;

    }

    .stats-grid{

        grid-template-columns:1fr;

    }

}
/*==================================================
    PORTFOLIO
==================================================*/

.projects-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:2rem;

}

.project-card{

    overflow:hidden;

}

.project-image{

    position:relative;

    overflow:hidden;

}

.project-image img{

    width:100%;

    aspect-ratio:16/10;

    object-fit:cover;

    transition:transform .6s ease;

}

.project-card:hover .project-image img{

    transform:scale(1.08);

}

.project-content{

    padding:2rem;

}

.project-category{

    display:inline-flex;

    padding:.45rem .9rem;

    margin-bottom:1rem;

    border-radius:999px;

    background:#EFF6FF;

    color:var(--primary);

    font-size:.8rem;

    font-weight:600;

}

.project-content h3{

    margin-bottom:1rem;

}

.project-tags{

    display:flex;

    flex-wrap:wrap;

    gap:.75rem;

    margin-top:1.75rem;

}

.project-tags span{

    padding:.45rem .85rem;

    background:var(--surface);

    border-radius:999px;

    font-size:.8rem;

    font-weight:500;

}


/*==================================================
    TESTIMONIOS
==================================================*/

.testimonials{

    background:var(--surface);

}

.rating-summary{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:1rem;

    margin-bottom:4rem;

}

.rating-number{

    font-size:3rem;

    font-family:var(--font-heading);

    font-weight:700;

    color:var(--primary);

}

.rating-stars{

    color:#FBBF24;

    font-size:1.1rem;

}

.testimonials-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:2rem;

}

.testimonial-card{

    padding:2.5rem;

}

.testimonial-text{

    margin-bottom:2rem;

    font-style:italic;

}

.testimonial-author{

    display:flex;

    align-items:center;

    gap:1rem;

}

.testimonial-author img{

    width:60px;

    height:60px;

    border-radius:50%;

    object-fit:cover;

}

.author-info h4{

    margin-bottom:.25rem;

    font-size:1rem;

}

.author-info span{

    color:var(--text-light);

    font-size:.9rem;

}

.trust-badges{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:1rem;

    margin-top:4rem;

}

.trust-badge{

    padding:1rem 1.5rem;

    background:#fff;

    border:1px solid var(--border);

    border-radius:999px;

    box-shadow:var(--shadow-sm);

}


/*==================================================
    CONTACTO
==================================================*/

.contact-layout{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:4rem;

    align-items:start;

}

.contact-info{

    display:grid;

    gap:1.5rem;

}

.contact-card{

    display:flex;

    align-items:flex-start;

    gap:1rem;

    padding:2rem;

}

.contact-card i{

    width:56px;

    height:56px;

    display:grid;

    place-items:center;

    border-radius:16px;

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--secondary)
    );

    color:#fff;

    font-size:1.2rem;

}

.contact-form{

    padding:2.5rem;

    border:1px solid var(--border);

    border-radius:var(--radius-xl);

    background:#fff;

    box-shadow:var(--shadow-lg);

}

.form-group{

    margin-bottom:1.5rem;

}

.form-group label{

    display:block;

    margin-bottom:.6rem;

    font-weight:600;

    color:var(--dark);

}

.form-group input,
.form-group textarea,
.form-group select{

    width:100%;

    padding:1rem 1.1rem;

    border:1px solid var(--border);

    border-radius:var(--radius-md);

    background:#fff;

    transition:border-color var(--transition),
               box-shadow var(--transition);

}

.form-group textarea{

    min-height:160px;

}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(37,99,235,.12);

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:1100px){

    .projects-grid{

        grid-template-columns:repeat(2,1fr);

    }

    .testimonials-grid{

        grid-template-columns:1fr;

    }

    .contact-layout{

        grid-template-columns:1fr;

    }

}

@media (max-width:768px){

    .projects-grid{

        grid-template-columns:1fr;

    }

    .rating-summary{

        flex-direction:column;

        text-align:center;

    }

}
/*==================================================
    FOOTER
==================================================*/

.site-footer{

    background:var(--dark);

    color:rgba(255,255,255,.75);

    padding:5rem 0 2rem;

}

.footer-grid{

    display:grid;

    grid-template-columns:2fr 1fr 1fr 1.3fr;

    gap:3rem;

    margin-bottom:4rem;

}

.footer-brand p{

    margin-top:1.5rem;

    color:rgba(255,255,255,.70);

}

.footer-title{

    color:#fff;

    margin-bottom:1.5rem;

    font-size:1.15rem;

}

.footer-links{

    display:flex;

    flex-direction:column;

    gap:.85rem;

}

.footer-links a{

    color:rgba(255,255,255,.72);

    transition:all var(--transition);

}

.footer-links a:hover{

    color:#fff;

    padding-left:8px;

}

.footer-contact{

    display:flex;

    flex-direction:column;

    gap:1rem;

}

.footer-contact li{

    display:flex;

    align-items:flex-start;

    gap:.8rem;

}

.footer-contact i{

    color:var(--secondary);

    margin-top:.25rem;

}

.social-links{

    display:flex;

    gap:1rem;

    margin-top:2rem;

}

.social-links a{

    width:44px;

    height:44px;

    display:grid;

    place-items:center;

    border-radius:50%;

    background:rgba(255,255,255,.08);

    color:#fff;

    transition:all var(--transition);

}

.social-links a:hover{

    background:var(--primary);

    transform:translateY(-4px);

}

.footer-bottom{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:2rem;

    padding-top:2rem;

    border-top:1px solid rgba(255,255,255,.12);

}

.footer-bottom-links{

    display:flex;

    gap:1.5rem;

}


/*==================================================
    WHATSAPP
==================================================*/

.whatsapp-float{

    position:fixed;

    right:24px;

    bottom:24px;

    width:62px;

    height:62px;

    display:grid;

    place-items:center;

    border-radius:50%;

    background:#25D366;

    color:#fff;

    font-size:1.6rem;

    box-shadow:0 18px 40px rgba(37,211,102,.35);

    z-index:999;

    transition:all var(--transition);

}

.whatsapp-float:hover{

    transform:translateY(-6px) scale(1.05);

}


/*==================================================
    BACK TO TOP
==================================================*/

.back-to-top{

    position:fixed;

    right:24px;

    bottom:100px;

    width:54px;

    height:54px;

    display:grid;

    place-items:center;

    border-radius:50%;

    background:var(--primary);

    color:#fff;

    opacity:0;

    visibility:hidden;

    transform:translateY(20px);

    transition:all var(--transition);

    z-index:998;

}

.back-to-top.show{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}

.back-to-top:hover{

    background:var(--primary-dark);

}


/*==================================================
    UTILIDADES
==================================================*/

.text-center{

    text-align:center;

}

.text-primary{

    color:var(--primary);

}

.bg-light{

    background:var(--surface);

}

.mt-1{margin-top:var(--space-1);}
.mt-2{margin-top:var(--space-2);}
.mt-3{margin-top:var(--space-3);}
.mt-4{margin-top:var(--space-4);}
.mt-5{margin-top:var(--space-5);}

.mb-1{margin-bottom:var(--space-1);}
.mb-2{margin-bottom:var(--space-2);}
.mb-3{margin-bottom:var(--space-3);}
.mb-4{margin-bottom:var(--space-4);}
.mb-5{margin-bottom:var(--space-5);}


/*==================================================
    ANIMACIONES SUAVES
==================================================*/

.reveal{

    opacity:0;

    transform:translateY(40px);

    transition:
        opacity .8s ease,
        transform .8s ease;

}

.reveal.active{

    opacity:1;

    transform:none;

}


/*==================================================
    RESPONSIVE
==================================================*/

@media (max-width:1200px){

    .footer-grid{

        grid-template-columns:repeat(2,1fr);

    }

}

@media (max-width:992px){

    section{

        padding:5rem 0;

    }

    .footer-bottom{

        flex-direction:column;

        text-align:center;

    }

}

@media (max-width:768px){

    .container{

        width:min(100% - 1.5rem,var(--container));

    }

    h1{

        font-size:clamp(2.2rem,8vw,3.2rem);

    }

    h2{

        font-size:clamp(1.8rem,6vw,2.5rem);

    }

    .footer-grid{

        grid-template-columns:1fr;

        gap:2.5rem;

    }

    .footer-bottom-links{

        flex-direction:column;

        gap:.75rem;

    }

    .whatsapp-float{

        width:58px;

        height:58px;

        right:18px;

        bottom:18px;

    }

    .back-to-top{

        right:18px;

        bottom:90px;

    }

}

@media (max-width:480px){

    .btn-primary,
    .btn-secondary,
    .btn-outline{

        width:100%;

    }

    .hero-actions{

        flex-direction:column;

    }

}
@media (prefers-color-scheme: dark) {

    :root{

        /* Variables para modo oscuro */

    }

}