/* RESET */

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: Arial, Helvetica, sans-serif;
}

body {
    overflow-x: hidden;
    background: #fff;
}


/* HEADER */

.header {

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

    padding: 15px 50px;

    position: fixed;
    top: 0;
    width: 100%;

    background: rgba(255, 255, 255, 0.986);
    backdrop-filter: blur(10px);

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);

    z-index: 1000;

}

/* LOGO */

.logo img {
    height: 50px;
}


/* MENU */

.menu {

    display: flex;
    gap: 35px;

    list-style: none;

    align-items: center;

}

.menu li {

    position: relative;

}

.menu a {

    text-decoration: none;

    font-weight: 600;

    color: #222;

    padding: 10px 0;

    position: relative;

    transition: 0.3s;

}

/* LINEA ANIMADA */

.menu a::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: -5px;

    width: 0%;

    height: 2px;

    background: #0099ff;

    transition: 0.3s;

}

/* HOVER */

.menu a:hover {

    color: #0099ff;

}

.menu a:hover::after {

    width: 100%;

}

/* LINK ACTIVO */

.menu a.active {

    color: #0099ff;

}

.menu a.active::after {

    width: 100%;

}


/* SUBMENU */

.submenu {

    position: absolute;

    top: 45px;
    left: 0;

    background: white;

    min-width: 230px;

    border-radius: 6px;

    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);

    padding: 10px 0;

    opacity: 0;
    visibility: hidden;

    transform: translateY(15px);

    transition: 0.3s;

    z-index: 999;

}

.submenu li {

    list-style: none;

}

.submenu a {

    padding: 12px 18px;

    display: block;

    font-size: 14px;

    color: #333;

}

/* HOVER SUBMENU */

.submenu a:hover {

    background: #f5f7fa;

    color: #0099ff;

}

/* MOSTRAR SUBMENU */

.dropdown:hover .submenu {

    opacity: 1;
    visibility: visible;

    transform: translateY(0);

}


/* MENU MOVIL */

.menu-toggle {

    display: none;
    font-size: 28px;
    cursor: pointer;

}


/* HERO */

.hero {

    min-height: 100vh;

    background: url("../IMG/HEAD-01.jpg") center/cover no-repeat;

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

    padding: 80px;

    position: relative;

    overflow: hidden;

}


/* OVERLAY */

.hero-overlay {

    position: absolute;

    width: 100%;
    height: 100%;

    background: linear-gradient(90deg,
            rgba(0, 20, 60, 0.9) 0%,
            rgba(0, 20, 60, 0.7) 40%,
            rgba(0, 20, 60, 0.4) 70%,
            rgba(0, 20, 60, 0.2) 100%);

    top: 0;
    left: 0;

}


/* HERO TEXTO */

.hero-content {
    text-shadow: 2px 2px 0 #000000, 2px 2px 0 #010036;
    max-width: 520px;

    color: white;

    z-index: 2;

    position: relative;

}

.hero-content h1 {

    font-size: 60px;

    color: #1bb4ff;

    font-weight: 800;

    margin-bottom: 10px;

}

.hero-content h2 {

    color: #ffd500;

    font-style: italic;

    margin-bottom: 20px;

}

.hero-content p {

    line-height: 1.7;

    opacity: 0.9;

}


/* EQUIPOS HERO */

.hero-equipment {

    position: absolute;

    left: 5%;
    top: 30%;

    transform: translateY(-50%);

    width: 500px;

    z-index: 2;

}

.hero-equipment img {

    width: 100%;
    position: absolute;

    opacity: 0;
    transform: scale(0.85) translateY(20px);

    transition:
        opacity 1s ease,
        transform 1.2s ease;

    filter: drop-shadow(0 15px 30px rgba(0, 0, 0, 0.35));

}


/* IMAGEN ACTIVA */

.hero-equipment img.active {

    opacity: 1;
    transform: scale(1) translateY(0);

    animation: float3D 6s ease-in-out infinite;

}


/* ANIMACION FLOTAR */

@keyframes float3D {

    0% {

        transform: translateY(-8px) rotateY(-4deg);

    }

    50% {

        transform: translateY(10px) rotateY(4deg);

    }

    100% {

        transform: translateY(-8px) rotateY(-4deg);

    }

}

.hero::after {

    content: "";

    position: absolute;

    width: 600px;
    height: 600px;

    background: radial-gradient(circle,
            rgba(0, 153, 255, 0.25) 0%,
            transparent 70%);

    left: 0;
    top: 20%;

    filter: blur(80px);

    animation: techGlow 8s infinite alternate;

}

@keyframes techGlow {

    0% {

        transform: scale(1);

    }

    100% {

        transform: scale(1.2);

    }

}


/* FOOTER */

.footer {

    background: #111;

    color: #ddd;

    padding: 60px 20px 20px;

}

.footer-container {

    max-width: 1200px;

    margin: auto;

    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));

    gap: 40px;

}

.footer-col h3 {

    color: #0099ff;

    margin-bottom: 15px;

    position: relative;

}

.footer-col h3::after {

    content: "";

    display: block;

    width: 40px;

    height: 2px;

    background: #0099ff;

    margin-top: 6px;

}

.footer-col p {

    line-height: 1.6;

    font-size: 14px;

    margin-bottom: 15px;

}


/* LISTAS */

.footer-col ul {

    list-style: none;

}

.footer-col ul li {

    margin-bottom: 10px;

    font-size: 14px;

}

.footer-col ul li a {

    text-decoration: none;

    color: #ccc;

    transition: 0.3s;

}

.footer-col ul li a:hover {

    color: #0099ff;

}


/* CONTACTO */

.contact li {

    display: flex;

    align-items: flex-start;

    gap: 10px;

}

.contact i {

    color: #0099ff;

    margin-top: 3px;

}


/* REDES */

.social {

    display: flex;

    gap: 10px;

    flex-wrap: wrap;

    margin-top: 10px;

}

.social a {

    display: flex;

    align-items: center;

    gap: 6px;

    background: #222;

    padding: 8px 12px;

    border-radius: 6px;

    font-size: 14px;

    text-decoration: none;

    color: #ddd;

    transition: 0.3s;

}

.social a:hover {

    background: #0099ff;

    color: #000;

}


/* FOOTER BOTTOM */

.footer-bottom {

    border-top: 1px solid #333;

    margin-top: 40px;

    padding-top: 15px;

    text-align: center;

    font-size: 13px;

    color: #aaa;

}


/* WHATSAPP */

.whatsapp-container {

    position: fixed;

    bottom: 25px;
    right: 25px;

    display: flex;
    align-items: center;

    z-index: 999;

}

.whatsapp-message {

    background: white;

    color: #333;

    padding: 10px 15px;

    border-radius: 20px;

    margin-right: 10px;

    font-size: 14px;

    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);

}

.whatsapp-button {

    width: 65px;
    height: 65px;

    background: #25D366;

    border-radius: 50%;

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

    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);

    animation: whatsappPulse 2s infinite;

}

.whatsapp-button img {

    width: 35px;

}

@keyframes whatsappPulse {

    0% {

        transform: scale(1);

        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);

    }

    70% {

        transform: scale(1.1);

        box-shadow: 0 0 0 15px rgba(37, 211, 102, 0);

    }

    100% {

        transform: scale(1);

    }

}


/* RESPONSIVE */

@media(max-width:1100px) {

    .hero-equipment {

        width: 420px;

    }

    .hero-content h1 {

        font-size: 45px;

    }

}

@media(max-width:768px) {

    .menu {

        position: absolute;

        top: 70px;
        right: -100%;

        background: white;

        flex-direction: column;

        width: 220px;

        padding: 20px;

        gap: 20px;

        transition: 0.3s;

    }

    .menu.active {

        right: 0;

    }

    .menu-toggle {

        display: block;

    }

    .hero {
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        text-align: center;
        padding: 110px 20px 50px;
        gap: 18px;
    }

    .hero-equipment {
        position: relative;
        left: auto;
        top: 0;
        transform: none;
        width: 85%;
        max-width: 280px;
        margin: 0 auto 22px;
    }

    .hero-equipment img {
        position: absolute;
        width: 100%;
        left: 0;
        top: 0;
        opacity: 0;
    }

    .hero-equipment img.active {
        position: relative;
        opacity: 1;
    }

    .hero-content {
        max-width: 100%;
        margin-top: 0;
        position: relative;
        z-index: 3;
    }

    .hero-content h1 {
        font-size: 35px;
    }

}

/*CATALOGO DE CARRITO*/


.catalogo-equipos {
    background: white;
}

.catalogo-alquiler {
    background: #eef3f9;
}

.titulo-seccion {
    text-align: center;
    font-size: 34px;
    margin-bottom: 50px;
    color: #0a2c5a;
}

.catalogo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
}

.producto {
    background: white;
    border-radius: 10px;
    padding: 20px;
    text-align: center;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    transition: 0.3s;
}

.producto:hover {
    transform: translateY(-5px);
}

.producto img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 8px;
    margin-bottom: 15px;
}

.producto h3 {
    font-size: 18px;
    margin-bottom: 10px;
}

.precio {
    font-size: 20px;
    color: #0099ff;
    font-weight: bold;
    margin-bottom: 15px;
}

.producto button {
    background: #0099ff;
    color: white;
    border: none;
    padding: 10px 18px;
    border-radius: 6px;
    cursor: pointer;
    transition: 0.3s;
}

.producto button:hover {
    background: #0077cc;
}

/*ESTILOS CARRITO FLOTANTE*/
.carrito {
    position: fixed;
    right: 20px;
    top: 120px;
    width: 260px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    padding: 20px;
    z-index: 1000;
}

.carrito h3 {
    margin-bottom: 15px;
}

#lista-carrito {
    list-style: none;
    max-height: 200px;
    overflow-y: auto;
    margin-bottom: 10px;
}

#lista-carrito li {
    font-size: 14px;
    margin-bottom: 6px;
}

#total {
    font-weight: bold;
    margin-bottom: 10px;
}

.comprar {
    width: 100%;
    background: #25D366;
    color: white;
    border: none;
    padding: 10px;
    border-radius: 6px;
    cursor: pointer;
}

.catalogo {
    padding: 120px 8% 80px;
}

/*ESTILOS DE CARRITO FLOTANTE*/
/* ICONO CARRITO */

.carrito-icono {
    position: fixed;
    right: 25px;
    bottom: 110px;
    background: #0099ff;
    color: white;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 24px;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
    z-index: 1000;
}

.carrito-icono span {
    position: absolute;
    top: -5px;
    right: -5px;
    background: red;
    color: white;
    font-size: 12px;
    padding: 4px 7px;
    border-radius: 50%;
}

/* PANEL CARRITO */

.carrito-panel {
    position: fixed;
    right: -350px;
    top: 0;
    width: 320px;
    height: 100%;
    background: white;
    box-shadow: -10px 0 30px rgba(0, 0, 0, 0.2);
    padding: 25px;
    transition: 0.4s;
    z-index: 1001;
}

.carrito-panel.active {
    right: 0;
}

#lista-carrito {
    list-style: none;
    margin: 20px 0;
    max-height: 300px;
    overflow-y: auto;
}

#lista-carrito li {
    margin-bottom: 8px;
    font-size: 14px;
}

.comprar {
    width: 100%;
    padding: 10px;
    background: #25D366;
    color: white;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

/*PARA CERRAR Y ELIMINAR PRODUCTOS*/
/* HEADER DEL CARRITO */

.carrito-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
}

.cerrar-carrito {
    background: none;
    border: none;
    font-size: 20px;
    cursor: pointer;
}

/* PRODUCTOS DEL CARRITO */

.item-carrito {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    font-size: 14px;
}

.eliminar {
    background: red;
    color: white;
    border: none;
    padding: 3px 8px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
}

/*HERO MODERNO PARA TODO MENU*/
/* ////////////////////////////*/
/* HERO CLIENTES MODERNO */

.hero-moderno{

    padding: 40px 20px;

    margin-top: 70px;

    background: url("../IMG/HEAD-01.jpg") center/cover no-repeat;

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

    position: relative;

    text-align: center;

    color: white;

}

/* overlay oscuro */

.hero-moderno-overlay {

    position: absolute;

    width: 100%;
    height: 100%;

    background: rgba(0, 20, 60, 0.75);

    top: 0;
    left: 0;

}

/* contenido */

.hero-moderno-content {

    position: relative;
    margin-top: -10px;
    margin-bottom: -20px;
    z-index: 2;

}

/* titulo */

.hero-moderno-content h1 {

    font-size: 38px;

    color: #1bb4ff;

    letter-spacing: 2px;

    margin-bottom: 12px;

}

/* linea */

.hero-line {

    width: 60px;
    height: 3px;

    background: #ffd500;

    margin-top: -10px;

}



/* ===== MEJORAS GENERALES APEEX ===== */
html { scroll-behavior: smooth; }
body.menu-open { overflow: hidden; }
.logo img { max-width: 100%; object-fit: contain; }
img, iframe { max-width: 100%; }
.lang-switch { display: flex; align-items: center; gap: 6px; margin-left: 18px; }
.lang-switch button {
    border: 1px solid #d6dfea; background: #ffffff; color: #0a2c5a; border-radius: 999px;
    padding: 8px 12px; font-size: 12px; font-weight: 700; cursor: pointer; transition: 0.25s ease;
}
.lang-switch button:hover, .lang-switch button.active { background: #0a2c5a; color: #ffffff; border-color: #0a2c5a; }
.site-toast {
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(24px);
    background: #0a2c5a; color: #ffffff; padding: 14px 18px; border-radius: 12px;
    box-shadow: 0 15px 35px rgba(0,0,0,.22); z-index: 2000; opacity: 0; pointer-events: none;
    transition: 0.3s ease; max-width: min(92vw, 420px); text-align: center; line-height: 1.5; font-size: 14px;
}
.site-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.site-toast.error { background: #9f1f1f; }
.contact a, .footer a { word-break: break-word; }
.category-links { padding: 70px 8%; background: #f5f7fa; }
.category-intro { max-width: 760px; margin: 0 auto 36px; text-align: center; }
.category-intro p { color: #555; line-height: 1.7; }
.category-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; }
.category-card {
    background: #ffffff; border-radius: 18px; padding: 34px 28px; text-decoration: none; color: #1e1e1e;
    box-shadow: 0 12px 28px rgba(0,0,0,.08); transition: 0.3s ease; display: flex; flex-direction: column; gap: 14px;
}
.category-card i { font-size: 34px; color: #0099ff; }
.category-card h2 { font-size: 28px; color: #0a2c5a; }
.category-card p { color: #555; line-height: 1.7; }
.category-card span { color: #0099ff; font-weight: 700; margin-top: auto; }
.category-card:hover { transform: translateY(-8px); box-shadow: 0 18px 38px rgba(0,0,0,.14); }
.contacto-form button:disabled, .btn-primary:disabled { opacity: .75; cursor: wait; }
.carrito-panel { overflow-y: auto; }

@media (max-width: 1024px) {
    .header { padding: 14px 22px; gap: 12px; }
    .menu { gap: 22px; }
    .hero { padding: 110px 40px 60px; }
    .hero-content h1 { font-size: 48px; }
    .hero-equipment { width: 420px; left: 2%; }
}
@media (max-width: 768px) {
    .header { padding: 12px 16px; }
    .logo img { height: 42px; }
    .lang-switch { margin-left: auto; margin-right: 10px; }
    .menu {
        top: 68px; right: -100%; width: min(320px, 100%); height: calc(100vh - 68px);
        overflow-y: auto; box-shadow: -12px 0 28px rgba(0,0,0,.14); align-items: stretch; padding-bottom: 28px;
    }
    .menu li { width: 100%; }
    .menu a { display: flex; justify-content: space-between; align-items: center; width: 100%; }
    .submenu {
        display: none; position: static; min-width: 100%; box-shadow: none; border-radius: 0; padding: 8px 0 0 12px;
        opacity: 1; visibility: visible; transform: none; background: transparent;
    }
    .dropdown.open .submenu { display: block; }
    .submenu a { padding: 10px 6px; }
    .hero { min-height: auto; }
    .hero-content h1 { font-size: 32px; }
    .hero-content h2 { font-size: 20px; }
    .hero-content p { font-size: 15px; }
    .hero-moderno { padding: 54px 16px; }
    .hero-moderno-content h1 { font-size: 30px; letter-spacing: 1px; }
    .catalogo, .catalogo-equipos, .catalogo-alquiler, .clientes, .contacto-section, .mapa-section,
    .entrenamiento, .metodos-entrenamiento, .servicio-soldadura, .metodos-inspeccion, .ventajas,
    .sectores, .nosotros-info, .mision-vision, .category-links, .catalogo-showcase { padding-left: 6%; padding-right: 6%; }
    .titulo-seccion, .titulo-clientes, section h2 { font-size: 28px; }
    .producto img, .equipo-card img { height: 190px; }
    .whatsapp-container { right: 16px; bottom: 16px; }
    .whatsapp-message { display: none; }
    .whatsapp-button { width: 56px; height: 56px; }
    .whatsapp-button img { width: 30px; }
    .carrito-icono { right: 16px; bottom: 84px; width: 54px; height: 54px; font-size: 22px; }
    .carrito-panel { width: 100%; max-width: 100%; right: -100%; padding: 22px 18px; }
    .category-card h2 { font-size: 24px; }
    .showcase-title { font-size: 26px; }
    .catalogo-showcase { padding-top: 90px; padding-bottom: 74px; }
}
@media (max-width: 480px) {
    .lang-switch { gap: 4px; margin-right: 6px; }
    .lang-switch button { padding: 7px 10px; font-size: 11px; }
    .hero { padding: 96px 16px 36px; }
    .hero-equipment { width: 92%; max-width: 260px; }
    .hero-content h1 { font-size: 28px; }
    .hero-content h2 { font-size: 18px; }
    .catalogo-grid, .cards-grid, .ventajas-grid, .sectores-grid, .metodos-grid, .lista-grid, .equipos-container, .clientes-grid { gap: 18px; }
    .producto, .card, .metodo-card, .category-card { padding: 22px 18px; }
    .titulo-seccion, .titulo-clientes, section h2, .claim-info h2, .claim-form-section h2, .legal-content h2, .terms-content h2 { font-size: 24px; }
    .showcase-btn { width: 100%; }
    .showcase-description { margin-top: -10px; }
    .showcase-title { font-size: 22px; }
}


/* ===== CARRUSELES DINÁMICOS INICIO ===== */
.home-carousels {
    padding: 120px 8% 90px;
    background: linear-gradient(180deg, #ffffff 0%, #eef4fb 100%);
}
.home-carousels-grid {
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    gap: 34px;
}
.home-carousel-card {
    background: rgba(255,255,255,0.9);
    border: 1px solid rgba(214,226,239,0.9);
    border-radius: 24px;
    padding: 30px;
    box-shadow: 0 18px 40px rgba(10,44,90,0.08);
    backdrop-filter: blur(6px);
}
.home-carousel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 18px;
    flex-wrap: wrap;
    margin-bottom: 22px;
}
.home-carousel-link {
    text-decoration: none;
    color: #0a2c5a;
    font-weight: 700;
    background: #edf4fb;
    border-radius: 999px;
    padding: 10px 16px;
    transition: 0.3s ease;
}
.home-carousel-link:hover {
    background: #0a2c5a;
    color: #ffffff;
    transform: translateY(-2px);
}
.home-carousel-shell {
    position: relative;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 16px;
    align-items: center;
}
.home-carousel-viewport {
    overflow: hidden;
}
.home-carousel-track {
    display: flex;
    gap: 22px;
    transition: transform 0.6s cubic-bezier(.22,.61,.36,1);
    will-change: transform;
}
.home-carousel-item {
    flex: 0 0 calc((100% - 44px) / 3);
    min-width: 0;
}
.home-carousel-item .producto {
    min-height: 100%;
    margin: 0;
}
.home-carousel-item .producto img {
    height: 220px;
}
.home-carousel-item .precio {
    margin-bottom: 15px;
}
.home-carousel-item .producto button {
    width: 100%;
}
.home-carousel-arrow {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    border: 1px solid #d5e0ec;
    background: #ffffff;
    color: #0a2c5a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 10px 24px rgba(10,44,90,0.08);
    transition: 0.3s ease;
}
.home-carousel-arrow:hover {
    background: #0a2c5a;
    color: #ffffff;
    transform: translateY(-2px);
}
.home-carousel-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
    flex-wrap: wrap;
}
.home-carousel-dots button {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: none;
    background: #c4d4e7;
    cursor: pointer;
    transition: 0.3s ease;
}
.home-carousel-dots button.active {
    width: 34px;
    border-radius: 999px;
    background: #0a2c5a;
}
.home-carousel-item .producto {
    animation: showcaseCardIn 0.55s ease both;
}
@keyframes showcaseCardIn {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 1024px) {
    .home-carousel-item { flex-basis: calc((100% - 22px) / 2); }
}

@media (max-width: 768px) {
    .home-carousels { padding-top: 90px; padding-bottom: 74px; }
    .home-carousel-card { padding: 24px 18px; }
    .home-carousel-shell { gap: 10px; }
    .showcase-title { font-size: 26px; }
    .home-carousel-item .producto img { height: 200px; }
}

@media (max-width: 600px) {
    .showcase-title { font-size: 22px; }
    .showcase-description { margin-top: -10px; }
    .home-carousel-shell {
        grid-template-columns: 1fr;
    }
    .home-carousel-arrow {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 2;
    }
    .home-carousel-arrow.prev { left: 8px; }
    .home-carousel-arrow.next { right: 8px; }
    .home-carousel-item { flex-basis: 100%; }
}

@media (max-width: 480px) {
    .home-carousel-link { width: 100%; text-align: center; }
    .home-carousel-item .producto img { height: 188px; }
}


/* ===== EFECTOS DINÁMICOS APEEX ===== */
:root {
    --apeex-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.reveal-up,
.reveal-left,
.reveal-right,
.reveal-scale {
    opacity: 0;
    transition:
        opacity 0.8s var(--apeex-ease),
        transform 0.9s var(--apeex-ease),
        filter 0.8s var(--apeex-ease);
    will-change: transform, opacity;
}

.reveal-up { transform: translate3d(0, 38px, 0); }
.reveal-left { transform: translate3d(-42px, 0, 0); }
.reveal-right { transform: translate3d(42px, 0, 0); }
.reveal-scale { transform: scale(0.92); filter: blur(2px); }

.is-visible.reveal-up,
.is-visible.reveal-left,
.is-visible.reveal-right,
.is-visible.reveal-scale {
    opacity: 1;
    transform: none;
    filter: none;
}

.hero-line,
.linea,
.linea-centro,
.claim-line,
.legal-line,
.terms-line {
    transform: scaleX(0.25);
    transform-origin: center;
    transition: transform 0.85s var(--apeex-ease), opacity 0.6s ease;
    opacity: 0.7;
}

.is-visible .hero-line,
.is-visible .linea,
.is-visible .linea-centro,
.is-visible .claim-line,
.is-visible .legal-line,
.is-visible .terms-line,
.hero-moderno-content.is-visible .hero-line,
.claim-hero-content.is-visible .claim-line,
.legal-hero-content.is-visible .legal-line,
.terms-hero-content.is-visible .terms-line {
    transform: scaleX(1);
    opacity: 1;
}

.producto,
.equipo-card,
.card,
.metodo-card,
.category-card,
.cliente-card,
.card-servicio,
.resumen-tecnico,
.lista-grid li,
.ventajas-grid div,
.sectores-grid div,
.metodo,
.claim-card,
.provider-box,
.legal-box,
.terms-box,
.info-destacada {
    transition:
        transform 0.32s ease,
        box-shadow 0.32s ease,
        border-color 0.32s ease,
        background-color 0.32s ease;
}

.producto:hover,
.equipo-card:hover,
.card:hover,
.metodo-card:hover,
.category-card:hover,
.cliente-card:hover,
.card-servicio:hover,
.ventajas-grid div:hover,
.sectores-grid div:hover,
.metodo:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 45px rgba(8, 31, 67, 0.14);
}

.producto img,
.equipo-card img,
.card img,
.cliente-card img,
.home-carousel-item img {
    transition: transform 0.45s ease, filter 0.35s ease;
}

.producto:hover img,
.equipo-card:hover img,
.cliente-card:hover img,
.home-carousel-item .producto:hover img {
    transform: scale(1.04);
    filter: saturate(1.05);
}

.producto button,
.equipo-card button,
.home-carousel-item .producto button,
.btn-principal,
.btn-secundario,
.comprar,
.contacto-form button,
.btn-primary,
.btn-secondary {
    transition: transform 0.28s ease, box-shadow 0.28s ease, background-color 0.28s ease, color 0.28s ease;
}

.producto button:hover,
.equipo-card button:hover,
.home-carousel-item .producto button:hover,
.btn-principal:hover,
.btn-secundario:hover,
.comprar:hover,
.contacto-form button:hover,
.btn-primary:hover,
.btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.14);
}

.home-stats {
    padding: 72px 8%;
    background: linear-gradient(180deg, #f7fbff 0%, #eef4fa 100%);
}

.home-stats-container {
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 28px;
    align-items: center;
}

.stats-intro {
    background: #ffffff;
    border-radius: 22px;
    padding: 34px 30px;
    box-shadow: 0 14px 32px rgba(10, 44, 90, 0.08);
}

.stats-kicker {
    display: inline-flex;
    margin-bottom: 12px;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(0, 153, 255, 0.1);
    color: #0a2c5a;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.stats-intro h2 {
    font-size: 34px;
    color: #0a2c5a;
    margin-bottom: 14px;
}

.stats-intro p {
    color: #516173;
    line-height: 1.8;
    text-align: justify;
    text-wrap: pretty;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.stat-card {
    background: linear-gradient(135deg, #0b2c5c, #15498d);
    color: #ffffff;
    border-radius: 22px;
    padding: 28px 24px;
    box-shadow: 0 18px 36px rgba(11, 44, 92, 0.18);
}

.stat-value {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-bottom: 10px;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1;
    color: #ffffff;
}

.stat-suffix {
    font-size: 0.55em;
    color: #ffd24d;
}

.stat-card p {
    margin: 0;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.9);
}

.clientes-marquee {
    position: relative;
    overflow: hidden;
    margin-top: 26px;
    padding: 8px 0;
}

.clientes-marquee::before,
.clientes-marquee::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 90px;
    z-index: 2;
    pointer-events: none;
}

.clientes-marquee::before {
    left: 0;
    background: linear-gradient(90deg, #f5f7fa 0%, rgba(245, 247, 250, 0) 100%);
}

.clientes-marquee::after {
    right: 0;
    background: linear-gradient(270deg, #f5f7fa 0%, rgba(245, 247, 250, 0) 100%);
}

.clientes-track {
    display: flex;
    align-items: center;
    gap: 24px;
    width: max-content;
    animation: clientesMarquee 22s linear infinite;
}

.clientes-marquee:hover .clientes-track { animation-play-state: paused; }

@keyframes clientesMarquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.clientes-nota {
    margin-top: 24px;
    text-align: center;
    color: #6a7582;
    font-size: 14px;
}

@media (max-width: 1024px) {
    .home-stats-container { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
    .home-stats { padding: 60px 6%; }
    .stats-intro { padding: 28px 22px; }
    .stats-intro h2 { font-size: 28px; }
    .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .clientes-marquee::before,
    .clientes-marquee::after { width: 40px; }
}

@media (max-width: 560px) {
    .stats-grid { grid-template-columns: 1fr; }
    .stat-card { padding: 24px 20px; }
    .stat-value { font-size: 2.3rem; }
}

@media (prefers-reduced-motion: reduce) {
    .reveal-up,
    .reveal-left,
    .reveal-right,
    .reveal-scale,
    .hero-equipment img,
    .whatsapp-button,
    .clientes-track {
        animation: none !important;
        transition: none !important;
        transform: none !important;
        opacity: 1 !important;
        filter: none !important;
    }
}

/* ===== JUSTIFICADO LIMPIO GLOBAL ===== */
.hero-content p,
.showcase-description,
.footer-col p,
.clientes-descripcion,
.contacto-info p,
.mensaje-exito,
.entrenamiento-texto p,
.servicio-texto p,
.ventajas-grid p,
.nosotros-texto p,
.card p,
.detalle-texto p,
.card-servicio p,
.cta-servicio p,
.legal-content p,
.terms-content p,
.claim-hero p,
.claim-card p,
.claim-note,
.claim-warning,
.form-intro,
.provider-box p,
.legal-box,
.terms-box,
.lista-grid li,
.alcance-servicio li,
.resumen-tecnico li,
.legal-content ul li,
.terms-content ul li {
    text-align: justify;
    text-justify: inter-word;
    hyphens: none;
    -webkit-hyphens: none;
    -ms-hyphens: none;
    word-break: normal;
    overflow-wrap: normal;
}
