@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--cyan:#00b8df;--cyan2:#16d5ef;--ink:#071820;--deep:#061117;--slate:#344851;--paper:#f4f7f8;--white:#fff;--line:#dce6e9;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:#fff}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.site-header{position:fixed;z-index:30;top:0;left:0;width:100%;height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - var(--max))/2));transition:.3s;background:linear-gradient(180deg,rgba(2,12,17,.88),transparent)}.site-header.scrolled{height:70px;background:rgba(4,18,24,.95);
backdrop-filter:blur(16px);box-shadow:0 8px 30px #0002}.brand{width:90px;height:68px;overflow:visible;display:flex;align-items:center;justify-content:center;}.brand img{width:72px;height:auto;max-height:62px;object-fit:contain;transform:none;}.nav{display:flex;align-items:center;gap:34px;color:#e9f7fa;font-size:13px;font-weight:600}.nav a{opacity:.85}.nav a:hover{opacity:1;color:var(--cyan2)}.nav-cta{border:1px solid #ffffff66;padding:11px 18px;border-radius:2px}.menu-toggle{display:none;background:none;border:0}.hero{height:min(900px,100vh);min-height:700px;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden}.hero-bg{position:absolute;inset:0;background:url('../img/hero-equipo.jpeg') center 42%/cover no-repeat;transform:scale(1.02)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,13,18,.9) 0%,rgba(2,13,18,.65) 43%,rgba(2,13,18,.1) 78%),linear-gradient(0deg,rgba(2,13,18,.55),transparent 55%)}.hero-content{position:relative;z-index:2;width:min(var(--max),calc(100% - 56px));margin:auto;padding-top:50px}.eyebrow,.kicker{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800}.eyebrow{color:var(--cyan2);margin-bottom:22px}.hero h1{font-size:clamp(52px,6.4vw,92px);line-height:.98;letter-spacing:-.055em;margin:0;max-width:920px}.hero h1 em{font-style:normal;color:var(--cyan2)}.hero p{max-width:630px;font-size:18px;line-height:1.7;color:#d9e5e8;margin:30px 0}.hero-actions{display:flex;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 24px;font-size:13px;font-weight:800;letter-spacing:.02em;border:1px solid transparent;transition:.25s}.btn.primary{background:var(--cyan);color:#04161d}.btn.primary:hover{background:var(--cyan2);transform:translateY(-2px)}.btn.ghost{border-color:#ffffff55;color:#fff}.btn.ghost:hover{border-color:#fff;background:#ffffff12}.hero-proof{position:absolute;z-index:3;right:max(28px,calc((100vw - var(--max))/2));bottom:40px;display:flex;align-items:center;gap:14px;color:#fff}.hero-proof strong{font-size:27px;color:var(--cyan2)}.hero-proof span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#d6e3e6;line-height:1.45}.hero-proof i{height:36px;width:1px;background:#ffffff44;margin:0 8px}.section{padding:110px max(28px,calc((100vw - var(--max))/2))}.section-tag{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#7b919a;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:58px}.section-tag.light{border-color:#ffffff22;color:#78919b}.intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:start}.kicker{color:#607a84;margin-bottom:18px}.kicker.cyan{color:var(--cyan2)}h2{font-size:clamp(36px,4.3vw,60px);line-height:1.06;letter-spacing:-.045em;margin:0}h2 span{color:#09aeca}.intro-grid p,.section-heading p,.experience-copy>p,.contact-grid p{color:#5f737b;font-size:16px;line-height:1.8;margin:0 0 20px}.photo-feature{height:560px;position:relative;margin-top:80px;overflow:hidden;background:#ddd}.photo-feature img{width:100%;height:100%;object-fit:cover}.photo-caption{position:absolute;left:0;bottom:0;background:rgba(5,24,31,.92);color:#fff;padding:30px 38px;min-width:360px}.photo-caption span{display:block;color:var(--cyan2);font-size:10px;text-transform:uppercase;letter-spacing:.15em;margin-bottom:8px}.photo-caption strong{font-size:22px;line-height:1.3}.dark{background:var(--deep);color:#fff}.section-heading{display:grid;grid-template-columns:1.15fr .55fr;gap:100px;align-items:end;margin-bottom:56px}.section-heading p{color:#8da2aa}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.service-card{height:520px;position:relative;overflow:hidden}.service-card img{width:100%;height:100%;object-fit:cover;transition:.6s}.service-card:hover img{transform:scale(1.04)}.shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,13,18,.94),rgba(2,13,18,.05) 68%)}.service-copy{position:absolute;left:28px;right:28px;bottom:28px}.service-copy small{color:var(--cyan2);font-weight:800}.service-copy h3{font-size:26px;margin:9px 0}.service-copy p{font-size:13px;line-height:1.6;color:#c7d6da;margin:0}.experience-grid{display:grid;grid-template-columns:1fr .82fr;gap:90px;align-items:center}.mosaic{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;height:650px}.mosaic img{width:100%;height:100%;object-fit:cover}.m1{margin-top:55px;height:calc(100% - 55px)!important}.m2{height:80%!important}.experience-copy h2{font-size:48px;margin-bottom:26px}.points{margin-top:40px;border-top:1px solid var(--line)}.points>div{display:grid;grid-template-columns:44px 1fr;gap:15px;padding:20px 0;border-bottom:1px solid var(--line)}.points b{font-size:11px;color:#09aeca}.points span{font-size:13px;color:#667b83}.points strong{display:block;color:var(--ink);font-size:15px;margin-bottom:3px}.repse{padding:80px max(28px,calc((100vw - var(--max))/2));background:#0a2029;color:#fff}.repse-inner{display:grid;grid-template-columns:180px 1fr auto;gap:50px;align-items:center}.repse-mark{width:150px;height:150px;border:1px solid #21c9e75c;border-radius:50%;display:grid;place-items:center;color:var(--cyan2);font-size:22px;font-weight:800;letter-spacing:.1em}.repse h2{font-size:42px;max-width:700px}.repse p{color:#9db1b8;line-height:1.7;max-width:680px}.contact{background:var(--paper)}.contact-grid{display:grid;grid-template-columns:1fr .75fr;gap:110px}.contact-grid h2{margin-bottom:25px}.contact-card{background:#fff;padding:36px 40px;box-shadow:0 20px 60px #18323d10}.contact-card>div{padding:18px 0;border-bottom:1px solid var(--line)}.contact-card>div:last-child{border:0}.contact-card small{display:block;text-transform:uppercase;letter-spacing:.13em;color:#82959c;font-size:9px;margin-bottom:7px}.contact-card strong,.contact-card a{display:block;font-size:14px;line-height:1.6}.contact-card a:hover{color:#009fbe}footer{background:#020b0f;color:#fff;padding:52px max(28px,calc((100vw - var(--max))/2));display:grid;grid-template-columns:160px 1fr auto;align-items:center;gap:30px}footer img{width:110px}footer p{color:#81959c;font-size:13px}footer>div{display:flex;gap:28px;font-size:11px;color:#8fa1a7}.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:850px){.site-header{height:70px}.brand{width:90px}.nav{position:absolute;top:70px;left:0;right:0;display:none;flex-direction:column;align-items:flex-start;padding:30px;background:#06151b}.nav.open{display:flex}.menu-toggle{display:grid;gap:5px}.menu-toggle span{display:block;width:24px;height:2px;background:#fff}.hero{min-height:720px}.hero-content{width:calc(100% - 40px)}.hero h1{font-size:49px}.hero p{font-size:15px}.hero-proof{left:20px;right:auto;bottom:25px}.section{padding:78px 20px}.intro-grid,.section-heading,.experience-grid,.contact-grid{grid-template-columns:1fr;gap:35px}.photo-feature{height:480px;margin-top:50px}.photo-caption{min-width:0;right:0}.service-grid{grid-template-columns:1fr}.service-card{height:430px}.mosaic{height:520px}.repse-inner{grid-template-columns:1fr;gap:28px}.repse-mark{width:110px;height:110px}.repse{padding:65px 20px}.repse h2{font-size:34px}footer{grid-template-columns:1fr}footer>div{flex-direction:column;gap:8px}}@media(max-width:520px){.hero-actions{flex-direction:column;align-items:stretch}.hero-proof{display:none}.hero-bg{background-position:60% center}.hero h1{font-size:43px}.intro-grid h2,.experience-copy h2{font-size:38px}.photo-feature{height:420px}.mosaic{grid-template-columns:1fr;height:auto}.mosaic img,.m1,.m2{height:390px!important;margin:0}.section-heading{margin-bottom:35px}}

/* Clientes */
.clients{background:#fff}.clients-heading{display:grid;grid-template-columns:1.1fr .65fr;gap:90px;align-items:end;margin-bottom:52px}.clients-heading p{color:#344851;font-size:16px;line-height:1.8;margin:0}.client-grid{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.client-logo{height:150px;padding:26px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;transition:.25s}.client-logo:hover{background:#f6fbfc;transform:translateY(-2px);box-shadow:0 14px 35px #0a33400d}.client-logo img{max-width:100%;max-height:82px;width:auto;height:auto;object-fit:contain}

/* Beneficio de servicio */
.service-promo{display:grid;grid-template-columns:.9fr 1.1fr;min-height:440px;margin-top:114px;background:#f2f5f6;color:var(--ink);border-radius:0 18px 18px 0;overflow:hidden}.service-promo-photo{min-height:390px}.service-promo-photo img{width:100%;height:100%;object-fit:cover}.service-promo-copy{padding:52px 58px;display:flex;flex-direction:column;justify-content:center;border-top:10px solid #cfd5d8}.service-promo-copy h3{font-size:clamp(24px,2.4vw,34px);line-height:1.35;letter-spacing:-.025em;margin:4px 0 28px;color:#07134d}.service-promo-copy p{font-size:16px;line-height:1.65;color:#07134d;margin:0;max-width:620px}

/* WhatsApp flotante */
.whatsapp-float{position:fixed;right:28px;bottom:28px;width:62px;height:62px;display:flex;align-items:center;justify-content:center;background:#25D366;color:#fff;border-radius:50%;box-shadow:0 8px 25px rgba(0,0,0,.25);z-index:9999;transition:transform .25s ease,box-shadow .25s ease}.whatsapp-float svg{width:34px;height:34px}.whatsapp-float:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 12px 32px rgba(0,0,0,.32)}
@media(max-width:850px){.clients-heading{grid-template-columns:1fr;gap:25px}.client-grid{grid-template-columns:repeat(2,1fr)}.service-promo{grid-template-columns:1fr;border-radius:0}.service-promo-photo{min-height:330px}.service-promo-copy{padding:38px 28px}.whatsapp-float{right:18px;bottom:18px;width:56px;height:56px}.whatsapp-float svg{width:31px;height:31px}}
@media(max-width:520px){.client-logo{height:120px;padding:18px}.client-logo img{max-height:68px}.service-promo-copy h3{font-size:23px}}/* =========================
 
MODAL COTIZACIÓN
========================= */

.quote-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;

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

    padding: 24px;

    opacity: 0;
    visibility: hidden;
    transition: opacity .3s ease, visibility .3s ease;
}

.quote-modal.active {
    opacity: 1;
    visibility: visible;
}

.quote-modal-overlay {
    position: absolute;
    inset: 0;

    background: rgba(2, 11, 15, .82);
    backdrop-filter: blur(7px);
}

.quote-modal-content {
    position: relative;
    z-index: 2;

    width: min(520px, 100%);
    max-height: 90vh;
    overflow-y: auto;

    padding: 48px;

    background: #ffffff;
    color: var(--ink);

    box-shadow: 0 30px 90px rgba(0,0,0,.35);

    transform: translateY(20px);
    transition: transform .3s ease;
}

.quote-modal.active .quote-modal-content {
    transform: translateY(0);
}

.quote-modal-close {
    position: absolute;
    top: 18px;
    right: 22px;

    border: 0;
    background: transparent;

    color: var(--ink);
    font-size: 32px;
    line-height: 1;

    cursor: pointer;
}

.quote-modal-content h2 {
    margin: 8px 0 14px;
    font-size: 38px;
}

.quote-intro {
    margin: 0 0 30px;

    color: var(--slate);
    font-size: 14px;
    line-height: 1.7;
}

.form-group {
    margin-bottom: 20px;
}

.form-group label {
    display: block;

    margin-bottom: 8px;

    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.form-group input,
.form-group textarea {
    width: 100%;

    padding: 14px 16px;

    border: 1px solid var(--line);
    outline: none;

    background: #f7f9fa;
    color: var(--ink);

    font-family: inherit;
    font-size: 14px;

    transition: border-color .2s ease,
                box-shadow .2s ease;
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
}

.form-group input:focus,
.form-group textarea:focus {
    border-color: var(--cyan);

    box-shadow: 0 0 0 3px rgba(0,184,223,.10);

    background: #ffffff;
}

.quote-submit {
    width: 100%;
    margin-top: 8px;

    border: 0;
    cursor: pointer;
}

body.modal-open {
    overflow: hidden;
}

@media(max-width:520px) {

    .quote-modal {
        padding: 15px;
    }

    .quote-modal-content {
        padding: 40px 24px 28px;
    }

    .quote-modal-content h2 {
        font-size: 30px;
    }

}
/* ==================================================
   SECCIÓN REPSE
================================================== */

.repse {
    background: #071f27;
    padding: 75px 0;
}

.repse-container {
    width: min(1120px, 90%);
    margin: 0 auto;

    display: grid;
    grid-template-columns: 260px 1fr;
    align-items: center;
    gap: 70px;

    /* mueve el conjunto ligeramente hacia la derecha */
    padding-left: 35px;
}


/* LOGO */

.repse-logo {
    display: flex;
    align-items: center;
    justify-content: center;
}

.repse-logo img {
    width: 230px;
    max-width: 100%;
    height: auto;
    display: block;
}


/* TEXTO */

.repse-content {
    max-width: 720px;
}

.repse-eyebrow {
    display: block;
    margin-bottom: 18px;

    color: #19cbe5;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2px;
}

.repse-content h2 {
    margin: 0 0 18px;

    color: #ffffff;
    font-size: clamp(32px, 3vw, 46px);
    line-height: 1.05;
    font-weight: 700;
}

.repse-content p {
    margin: 0;
    max-width: 680px;

    color: #a9c0c8;
    font-size: 17px;
    line-height: 1.7;
}


/* TABLET */

@media (max-width: 900px) {

    .repse-container {
        grid-template-columns: 200px 1fr;
        gap: 40px;
        padding-left: 0;
    }

    .repse-logo img {
        width: 190px;
    }
}


/* CELULAR */

@media (max-width: 650px) {

    .repse {
        padding: 60px 0;
    }

    .repse-container {
        display: flex;
        flex-direction: column;
        text-align: center;
        gap: 35px;
        padding-left: 0;
    }

    .repse-logo img {
        width: 200px;
    }

    .repse-content {
        max-width: 100%;
    }

    .repse-content p {
        margin-left: auto;
        margin-right: auto;
    }
}
/* ==================================================
   CARRUSEL EXPERIENCIA
================================================== */

.experience-gallery {
    padding: 80px 0 90px;
    background: #ffffff;
    overflow: hidden;
}

.experience-gallery-header {
    width: min(1180px, 90%);
    margin: 0 auto 38px;
}

.experience-gallery-header .kicker {
    display: block;
    margin-bottom: 12px;

    color: var(--cyan);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
}

.experience-gallery-header h2 {
    margin: 0;
    max-width: 700px;

    color: var(--ink);
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1.08;
}


/* CARRUSEL */

.experience-carousel {
    width: 100%;
    overflow: hidden;
    cursor: grab;
}

.experience-carousel:active {
    cursor: grabbing;
}

.experience-track {
    display: flex;
    gap: 20px;

    width: max-content;

    will-change: transform;
}


/* FOTOGRAFÍAS */

.experience-slide {
    flex: 0 0 380px;
    height: 280px;

    overflow: hidden;
    background: #eef2f3;
}

.experience-slide img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform .45s ease;
}

.experience-slide:hover img {
    transform: scale(1.04);
}


/* TABLET */

@media (max-width: 900px) {

    .experience-gallery {
        padding: 65px 0 75px;
    }

    .experience-slide {
        flex-basis: 320px;
        height: 240px;
    }

}


/* CELULAR */

@media (max-width: 600px) {

    .experience-gallery {
        padding: 55px 0 65px;
    }

    .experience-gallery-header {
        margin-bottom: 28px;
    }

    .experience-slide {
        flex-basis: 270px;
        height: 210px;
    }

    .experience-track {
        gap: 14px;
    }

}

/* ==================================================
   REDES SOCIALES - CONTACTO
================================================== */

.contact-social {
    margin-top: 38px;
}

.social-title {
    display: block;
    margin-bottom: 15px;

    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.social-links {
    display: flex;
    align-items: center;
    gap: 14px;
}

.social-links a {
    width: 42px;
    height: 42px;

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

    border: 1px solid var(--line);
    background: #ffffff;

    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease;
}

.social-links img {
    width: 21px;
    height: 21px;

    object-fit: contain;
    display: block;
}


/* HOVER */

.social-links a:hover {
    transform: translateY(-3px);

    border-color: var(--cyan);

    box-shadow: 0 8px 20px rgba(0, 0, 0, .08);
}


/* CELULAR */

@media (max-width: 600px) {

    .contact-social {
        margin-top: 30px;
    }

    .social-links a {
        width: 40px;
        height: 40px;
    }

    .social-links img {
        width: 20px;
        height: 20px;
    }

}

/* Redes dentro del bloque de introducción */

.contact-intro {
    display: block;
}

.contact-social {
    margin-top: 28px;
    width: 100%;
}

.social-title {
    display: block;
    margin-bottom: 14px;
}

.social-links {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 14px;
}
/* ==================================================
   CONTACTO - AJUSTE FINAL
================================================== */

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(380px, 0.85fr);
    gap: 70px;
    align-items: start;
}


/* COLUMNA IZQUIERDA */

.contact-intro {
    display: block;
    min-width: 0;
}

.contact-intro h2 {
    max-width: 700px;
}

.contact-intro > p {
    max-width: 700px;
}


/* REDES SOCIALES */

.contact-social {
    margin-top: 32px;
}

.social-title {
    display: block;
    margin-bottom: 14px;

    color: var(--ink);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.social-links {
    display: flex;
    align-items: center;
    gap: 14px;
}

.social-links a {
    width: 42px;
    height: 42px;

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

    background: #ffffff;
    border: 1px solid var(--line);
}

.social-links img {
    width: 21px;
    height: 21px;
    object-fit: contain;
    display: block;
}


/* COLUMNA DERECHA */

.contact-info {
    width: 100%;
    min-width: 0;
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .contact-grid {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .contact-info {
        width: 100%;
    }

}
/* ==================================================
   CONTACTO - TARJETA DE INFORMACIÓN
================================================== */

.contact-info {
    background: #ffffff;
    padding: 42px 40px;
    width: 100%;
    box-sizing: border-box;
}


/* CADA FILA DE INFORMACIÓN */

.contact-info > div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

    padding: 22px 0;

    border-bottom: 1px solid #d7e0e3;
}


/* Quitamos espacio excesivo arriba */

.contact-info > div:first-child {
    padding-top: 0;
}


/* Sin línea en el último elemento */

.contact-info > div:last-child {
    border-bottom: none;
    padding-bottom: 0;
}


/* ETIQUETAS:
   MATRIZ / TELÉFONOS / SUCURSAL TULTITLÁN
*/

.contact-info small {
    display: block;

    margin-bottom: 8px;

    color: #8ba2aa;

    font-size: 10px;
    font-weight: 500;

    letter-spacing: 1.2px;
    text-transform: uppercase;
}


/* DIRECCIONES */

.contact-info strong {
    display: block;

    color: #061b23;

    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
}


/* TELÉFONOS */

.contact-info a {
    display: block;

    color: #061b23;
    text-decoration: none;

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

    transition: color .2s ease;
}

.contact-info a:hover {
    color: var(--cyan);
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .contact-info {
        padding: 35px 30px;
    }

}
/* =========================================
   FOOTER - AVISO DE PRIVACIDAD
========================================= */

.footer-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 28px;
}

.footer-links a {
    color: inherit;
    text-decoration: none;
    transition: color .2s ease;
}

.footer-links a:hover {
    color: var(--cyan);
}

@media (max-width: 700px) {

    .footer-links {
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 15px 22px;
    }

}
/* Título pequeño "SERVICIOS" */
.services .kicker {
    font-size: 15px;
    letter-spacing: 2px;
    font-weight: 700;
}
.photo-feature > img {
    object-position: center 10%;
}
.form-message {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.5;
    min-height: 21px;
}

.form-message.success {
    color: #168447;
}

.form-message.error {
    color: #c0392b;
}

.quote-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}