
/* ==========================================================
   REDISEÑO LUIS BASE24 - NAVBAR INTELIGENTE
   CLASE PRINCIPAL: custom-navbar
========================================================== */

     /* ================= ROOT ================= */

   :root {
       --tg-font-heading: "Sora", "Inter", sans-serif;
       --tg-font-body: "Sora", "Inter", sans-serif;
       --tg-nav-surface:
           radial-gradient(circle at 14% 18%, rgba(98, 196, 255, 0.22), transparent 34%),
           linear-gradient(135deg, rgba(2, 9, 22, 0.94) 0%, rgba(8, 38, 77, 0.92) 48%, rgba(1, 4, 12, 0.98) 100%);
       --tg-nav-surface-strong:
           radial-gradient(circle at 12% 20%, rgba(108, 205, 255, 0.18), transparent 32%),
           linear-gradient(135deg, rgba(2, 10, 24, 0.97) 0%, rgba(6, 31, 66, 0.96) 50%, rgba(1, 4, 11, 1) 100%);
       --tg-nav-border: rgba(124, 213, 255, 0.14);
       --tg-nav-shadow: 0 16px 40px rgba(0, 8, 24, 0.34);
       --tg-nav-text: rgba(244, 249, 255, 0.94);
   }
   /* ================= GLOBAL ================= */
 
   html,
   body {
       margin: 0;
       padding: 0;

   }
   body{
       font-family: var(--tg-font-body);
       line-height: 1.6;
       overflow-x:hidden;
       padding-top: 0;
       text-rendering: optimizeLegibility;
       -webkit-font-smoothing: antialiased;
   }

body.classGenBackgrundSoste {
    position: relative;
    min-height: 100vh;
    isolation: isolate;
    background:
        radial-gradient(34% 42% at 3% 20%, rgba(34, 197, 94, 0.28), transparent 72%),
        radial-gradient(34% 42% at 97% 18%, rgba(16, 185, 129, 0.26), transparent 72%),
        radial-gradient(22% 34% at 10% 78%, rgba(0, 0, 0, 0.42), transparent 76%),
        radial-gradient(22% 34% at 90% 76%, rgba(0, 0, 0, 0.42), transparent 76%),
        linear-gradient(180deg, #020403 0%, #06110a 24%, #0b1f14 48%, #07150e 74%, #020403 100%);
    background-attachment: fixed;
    overflow-x: hidden;
}

/* glow verde */
body.classGenBackgrundSoste::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(22% 54% at 0% 42%, rgba(34, 197, 94, 0.32), transparent 74%),
        radial-gradient(22% 54% at 100% 38%, rgba(16, 185, 129, 0.30), transparent 74%),
        radial-gradient(16% 26% at 78% 14%, rgba(255, 255, 255, 0.06), transparent 82%),
        linear-gradient(90deg, rgba(0, 0, 0, 0.32) 0%, rgba(0, 0, 0, 0.06) 20%, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.06) 80%, rgba(0, 0, 0, 0.32) 100%);
    filter: blur(22px);
    opacity: 0.92;
    mix-blend-mode: screen;
}

/* textura */
body.classGenBackgrundSoste::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(rgba(255, 255, 255, 0.18) 0.55px, transparent 0.82px),
        radial-gradient(rgba(34, 197, 94, 0.14) 0.45px, transparent 0.74px);
    background-size:
        3px 3px,
        5px 5px;
    background-position:
        0 0,
        1px 2px;
    opacity: 0.10;
    mix-blend-mode: soft-light;
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.96) 18%, rgba(0, 0, 0, 0.22) 34%, transparent 42%, transparent 58%, rgba(0, 0, 0, 0.22) 66%, rgba(0, 0, 0, 0.96) 82%, rgba(0, 0, 0, 1) 100%);
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.96) 18%, rgba(0, 0, 0, 0.22) 34%, transparent 42%, transparent 58%, rgba(0, 0, 0, 0.22) 66%, rgba(0, 0, 0, 0.96) 82%, rgba(0, 0, 0, 1) 100%);
}

/* profundidad */
.classGenBackgrundSoste .container,
.classGenBackgrundSoste .container-fluid {
    position: relative;
    z-index: 1;
}

/* responsive */
@media (max-width: 991.98px) {
    body.classGenBackgrundSoste {
        background:
            radial-gradient(38% 42% at 2% 18%, rgba(34, 197, 94, 0.24), transparent 72%),
            radial-gradient(38% 42% at 98% 16%, rgba(16, 185, 129, 0.22), transparent 72%),
            radial-gradient(26% 32% at 12% 82%, rgba(0, 0, 0, 0.34), transparent 76%),
            radial-gradient(26% 32% at 88% 80%, rgba(0, 0, 0, 0.34), transparent 76%),
            linear-gradient(180deg, #020403 0%, #07130c 26%, #0c2116 50%, #07140d 76%, #020403 100%);
        background-attachment: scroll;
    }

    body.classGenBackgrundSoste::before {
        filter: blur(18px);
        opacity: 0.85;
    }
}

@media (max-width: 575.98px) {
    body.classGenBackgrundSoste::after {
        opacity: 0.08;
    }
}

body.classGenBackgrund {
    position: relative;
    min-height: 100vh;
    isolation: isolate;
    background:
        radial-gradient(34% 42% at 3% 20%, rgba(49, 138, 188, 0.34), transparent 72%),
        radial-gradient(34% 42% at 97% 18%, rgba(49, 138, 188, 0.32), transparent 72%),
        radial-gradient(22% 34% at 10% 78%, rgba(0, 0, 0, 0.46), transparent 76%),
        radial-gradient(22% 34% at 90% 76%, rgba(0, 0, 0, 0.46), transparent 76%),
        linear-gradient(180deg, #010203 0%, #04070d 24%, #091726 48%, #050c15 74%, #010203 100%);
    background-attachment: fixed;
    overflow-x: hidden;
}

/* glow general */
body.classGenBackgrund::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(22% 54% at 0% 42%, rgba(49, 138, 188, 0.36), transparent 74%),
        radial-gradient(22% 54% at 100% 38%, rgba(49, 138, 188, 0.34), transparent 74%),
        radial-gradient(16% 26% at 78% 14%, rgba(255, 255, 255, 0.08), transparent 82%),
        linear-gradient(90deg, rgba(0, 0, 0, 0.34) 0%, rgba(0, 0, 0, 0.08) 20%, rgba(0, 0, 0, 0) 38%, rgba(0, 0, 0, 0) 62%, rgba(0, 0, 0, 0.08) 80%, rgba(0, 0, 0, 0.34) 100%);
    filter: blur(22px);
    opacity: 0.94;
    mix-blend-mode: screen;
}

/* textura/grano sutil */
/* ===== GRAIN SUAVE GLOBAL ===== */

body.classGenBackgrund::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(rgba(255, 255, 255, 0.22) 0.55px, transparent 0.82px),
        radial-gradient(rgba(49, 138, 188, 0.18) 0.45px, transparent 0.74px);
    background-size:
        3px 3px,
        5px 5px;
    background-position:
        0 0,
        1px 2px;
    opacity: 0.12;
    mix-blend-mode: soft-light;
    -webkit-mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.96) 18%, rgba(0, 0, 0, 0.22) 34%, transparent 42%, transparent 58%, rgba(0, 0, 0, 0.22) 66%, rgba(0, 0, 0, 0.96) 82%, rgba(0, 0, 0, 1) 100%);
    mask-image: linear-gradient(90deg, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0.96) 18%, rgba(0, 0, 0, 0.22) 34%, transparent 42%, transparent 58%, rgba(0, 0, 0, 0.22) 66%, rgba(0, 0, 0, 0.96) 82%, rgba(0, 0, 0, 1) 100%);
}
/* opcional: si quieres dar un poco más de profundidad a secciones */
.classGenBackgrund .container,
.classGenBackgrund .container-fluid {
    position: relative;
    z-index: 1;
}

/* responsive */
@media (max-width: 991.98px) {
    body.classGenBackgrund {
        background:
            radial-gradient(38% 42% at 2% 18%, rgba(49, 138, 188, 0.28), transparent 72%),
            radial-gradient(38% 42% at 98% 16%, rgba(49, 138, 188, 0.27), transparent 72%),
            radial-gradient(26% 32% at 12% 82%, rgba(0, 0, 0, 0.38), transparent 76%),
            radial-gradient(26% 32% at 88% 80%, rgba(0, 0, 0, 0.38), transparent 76%),
            linear-gradient(180deg, #010203 0%, #05080e 26%, #0a1725 50%, #050b14 76%, #010203 100%);
        background-attachment: scroll;
    }

    body.classGenBackgrund::before {
        filter: blur(18px);
        opacity: 0.88;
    }
}

@media (max-width: 575.98px) {
    body.classGenBackgrund::after {
        opacity: 0.09;
    }
}
.custom-navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1030;
    padding: 1rem 0;
    background: transparent;
    border-bottom: 1px solid transparent;
    transition:
        transform 0.38s ease,
        background 0.35s ease,
        backdrop-filter 0.35s ease,
        border-color 0.35s ease,
        box-shadow 0.35s ease,
        padding 0.35s ease;
    transform: translateY(0);
}

.custom-navbar.show-navbar {
    transform: translateY(0);
}

.custom-navbar.hide-navbar {
    transform: translateY(-115%);
}

.custom-navbar.scrolled,
.custom-navbar.menu-open {
    padding: 0.7rem 0;
    background: var(--tg-nav-surface);
    backdrop-filter: blur(18px) saturate(1.1);
    -webkit-backdrop-filter: blur(18px) saturate(1.1);
    border-bottom: 1px solid var(--tg-nav-border);
    box-shadow: var(--tg-nav-shadow);
}

.custom-navbar .navbar-brand img {
    height: 60px;
    width: auto;
    display: block;
    transition: transform 0.3s ease, filter 0.3s ease;
}

.custom-navbar.scrolled .navbar-brand img {
    filter: saturate(1.02) contrast(1.02);
}

.custom-navbar .navbar-nav {
    margin-left: auto;
}

.custom-navbar .nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.96rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.85rem 0 !important;
    transition: color 0.25s ease, opacity 0.25s ease;
}

.custom-navbar .nav-link i {
    font-size: 0.9rem;
}

.custom-navbar .nav-link:hover,
.custom-navbar .nav-link.active {
    color: #6ed8f5;
}

.custom-navbar.scrolled .nav-link,
.custom-navbar.menu-open .nav-link {
    color: var(--tg-nav-text);
}

.custom-navbar.scrolled .nav-link:hover,
.custom-navbar.scrolled .nav-link.active,
.custom-navbar.menu-open .nav-link:hover,
.custom-navbar.menu-open .nav-link.active {
    color: #7adfff;
}



.custom-navbar .navbar-toggler {
    border: 1px solid rgba(255, 255, 255, 0.18);
    padding: 0.55rem 0.7rem;
    box-shadow: none;
}

.custom-navbar.scrolled .navbar-toggler,
.custom-navbar.menu-open .navbar-toggler {
    border-color: rgba(126, 218, 255, 0.18);
}

.custom-navbar .navbar-toggler:focus {
    box-shadow: none;
}

.custom-navbar .navbar-toggler-icon {
    filter: brightness(10);
}

.custom-navbar.scrolled .navbar-toggler-icon,
.custom-navbar.menu-open .navbar-toggler-icon {
    filter: brightness(10);
}

body.nav-mobile-open {
    overflow: hidden;
}

/* dropdown */
.dropdown-hover .dropdown-menu {
    margin-top: 0;
}

.mega-menu {
    width: min(1080px, calc(100vw - 2rem));
    max-width: calc(100vw - 2rem);
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    border: 0;
    border-radius: 1.25rem;
    padding: 0.75rem;
    margin-top: 0.75rem;
    background: rgba(7, 17, 33, 0.92);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
    border: 1px solid rgba(255, 255, 255, 0.06);
    max-height: calc(100vh - 5.75rem);
    overflow-x: hidden;
    overflow-y: auto;
}

.mega-menu .container {
    max-width: none;
    padding: 0;
}

.mega-menu .row {
    --bs-gutter-x: 0.65rem;
    --bs-gutter-y: 0.65rem;
    align-items: stretch;
}

.custom-navbar.scrolled .mega-menu,
.custom-navbar.menu-open .mega-menu {
    background: var(--tg-nav-surface-strong);
    border: 1px solid rgba(124, 213, 255, 0.12);
    box-shadow: 0 24px 58px rgba(0, 6, 18, 0.36);
}

.mega-item {
    display: flex;
    gap: 0.65rem;
    height: 100%;
    padding: 0.7rem;
    border-radius: 0.8rem;
    text-decoration: none;
    background: rgba(255, 255, 255, 0.02);
    transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
    border: 1px solid transparent;
}

.mega-item:hover {
    transform: translateY(-3px);
    background: rgba(110, 216, 245, 0.08);
    border-color: rgba(110, 216, 245, 0.16);
}

.custom-navbar.scrolled .mega-item,
.custom-navbar.menu-open .mega-item {
    background: rgba(255, 255, 255, 0.03);
}

.custom-navbar.scrolled .mega-item:hover,
.custom-navbar.menu-open .mega-item:hover {
    background: rgba(110, 216, 245, 0.10);
    border-color: rgba(110, 216, 245, 0.18);
}

.mega-item.active {
    border-color: rgba(110, 216, 245, 0.2);
    background: rgba(110, 216, 245, 0.08);
}

.custom-navbar.scrolled .mega-item.active,
.custom-navbar.menu-open .mega-item.active {
    border-color: rgba(110, 216, 245, 0.2);
    background: rgba(110, 216, 245, 0.09);
}

.mega-icon {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    border-radius: 0.7rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(110, 216, 245, 0.08);
    color: #7ce6ff;
    font-size: 0.82rem;
}

.custom-navbar.scrolled .mega-icon,
.custom-navbar.menu-open .mega-icon {
    background: rgba(110, 216, 245, 0.10);
    color: #8cecff;
}

.mega-item h6 {
    margin: 0 0 0.18rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: #f3f8fd;
    line-height: 1.15;
}

.mega-item p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.4;
    color: rgba(232, 239, 247, 0.72);
}

.custom-navbar.scrolled .mega-item h6,
.custom-navbar.menu-open .mega-item h6 {
    color: #f3f8fd;
}

.custom-navbar.scrolled .mega-item p,
.custom-navbar.menu-open .mega-item p {
    color: rgba(232, 239, 247, 0.74);
}

.mega-item-updating {
    opacity: 0.92;
    cursor: default;
}

.mega-item-status {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.4rem;
    font-size: 0.68rem;
    font-weight: 700;
    color: #8fe6ff;
}

.custom-navbar.scrolled .mega-item-status,
.custom-navbar.menu-open .mega-item-status {
    color: #8fe6ff;
}

/* desktop hover dropdown */
@media (min-width: 992px) {
    .custom-navbar .navbar-nav {
        padding-left: 1rem;
    }

    .custom-navbar .nav-item.ms-lg-3 {
        margin-left: 1.35rem !important;
    }

    .dropdown-hover:hover > .dropdown-menu {
        display: block;
    }

    .dropdown-hover .dropdown-toggle::after {
        margin-left: 0.45rem;
        vertical-align: 0.15em;
    }

    .mega-menu .row {
        display: grid;
        gap: 0.65rem;
    }

    .mega-menu .row > [class*="col-"] {
        width: auto;
        max-width: none;
        flex: none;
        padding-right: 0;
        padding-left: 0;
    }
}

@media (min-width: 992px) {
    .mega-menu .row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* mobile */
@media (max-width: 991.98px) {
    .custom-navbar .navbar-brand img {
        height: 56px;
    }

    .custom-navbar {
        padding: 0.8rem 0;
    }

    .custom-navbar.scrolled,
    .custom-navbar.menu-open {
        background: var(--tg-nav-surface);
        backdrop-filter: blur(16px) saturate(1.08);
        -webkit-backdrop-filter: blur(16px) saturate(1.08);
        border-bottom: 1px solid var(--tg-nav-border);
        box-shadow: var(--tg-nav-shadow);
    }

    .custom-navbar:not(.scrolled):not(.menu-open) {
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        border-bottom: 1px solid transparent;
        box-shadow: none;
    }

    .custom-navbar .navbar-collapse {
        margin-top: 1rem;
        padding: 1rem 0 0.25rem;
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        max-height: calc(100vh - 6.25rem);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        padding-right: 0.35rem;
    }

    .custom-navbar .navbar-collapse.show {
        padding-bottom: 1rem;
    }

    .custom-navbar .nav-link {
        width: 100%;
        padding: 0.9rem 0 !important;
        color: #f4f8fc;
    }

    .mega-menu {
        position: static !important;
        transform: none !important;
        width: 100%;
        max-width: 100%;
        margin-top: 0.5rem;
        border-radius: 1rem;
        padding: 0.75rem;
        box-shadow: none;
        max-height: none;
        overflow: visible;
    }

    .mega-item {
        padding: 0.7rem;
    }

  
}
/* ==========================================================
   REDISEÑO LUIS BASE24 - HERO PRINCIPAL BASE24
   CLASE PRINCIPAL: pag_ciberse_hero
========================================================== */

.pag_ciberse_hero {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    background: #030812;
    display: flex;
    align-items: center;
}

.pag_ciberse_hero_media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.pag_ciberse_hero_media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
}

.pag_ciberse_hero_media_overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(3, 8, 18, 0.94) 0%, rgba(3, 8, 18, 0.76) 42%, rgba(3, 8, 18, 0.10) 100%),
        radial-gradient(circle at 20% 30%, rgba(69, 132, 255, 0.16), transparent 28%),
        linear-gradient(180deg, rgba(4, 10, 22, 0.32) 0%, rgba(4, 10, 22, 0.58) 100%);
}

.pag_ciberse_hero_grid {
    position: absolute;
    inset: 0;
    opacity: 0.12;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.08) 1px, transparent 1px);
    background-size: 36px 36px;
    mix-blend-mode: screen;
}

.pag_ciberse_hero_glow {
    position: absolute;
    top: -10%;
    left: -8%;
    width: 48rem;
    height: 48rem;
    background: radial-gradient(circle, rgba(83, 194, 255, 0.16) 0%, rgba(83, 194, 255, 0.08) 30%, transparent 68%);
    filter: blur(50px);
    pointer-events: none;
}

.pag_ciberse_hero_container {
    position: relative;
    z-index: 2;
}

.pag_ciberse_intro {
    position: relative;
    max-width: 900px;
    padding: 7.5rem 0 5rem;
}

.home-banner-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.95rem 1.35rem;
    margin-bottom: 1.75rem;
    border: 1px solid rgba(89, 176, 255, 0.18);
    background: rgba(5, 18, 36, 0.58);
    backdrop-filter: blur(10px);
    border-radius: 0.25rem;
    color: #9fe7ff;
    font-size: 0.95rem;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    box-shadow: 0 0 24px rgba(76, 160, 255, 0.08);
}

.home-banner-kicker i {
    font-size: 0.9rem;
}

h1 {
    margin: 0;
    font-size: 60px;
    line-height: 0.95;
    font-weight: 800;
    letter-spacing: -0.05em;
    color: #f7fbff;
    text-wrap: balance;
}

h1 span {
    display: inline-block;
    color: #98dc3f;
    text-shadow: 0 0 18px rgba(152, 220, 63, 0.10);
}

.pag_ciberse_desc {
    max-width: 760px;
    margin: 2rem 0 0;
    font-size: clamp(1.05rem, 1.35vw, 1.55rem);
    line-height: 1.72;
    font-weight: 500;
    color: rgba(233, 239, 247, 0.78);
}

.pag_ciberse_actions {
    margin-top: 2.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.pag_ciberse_btn.btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 0.95rem 1.8rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #1db7e8 0%, #39d0f2 100%);
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    box-shadow:
        0 18px 38px rgba(33, 191, 238, 0.22),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease;
}

.pag_ciberse_btn.btn-tech:hover {
    color: #fff;
    transform: translateY(-3px);
    filter: brightness(1.04);
    box-shadow:
        0 24px 46px rgba(33, 191, 238, 0.26),
        0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

.pag_ciberse_btn.btn-tech:focus-visible {
    outline: 3px solid rgba(98, 218, 255, 0.5);
    outline-offset: 3px;
}

/* detalle visual sutil a la derecha */
.pag_ciberse_hero::after {
    content: "";
    position: absolute;
    top: 0;
    right: -6%;
    width: 46%;
    height: 100%;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.03), transparent 24%),
        linear-gradient(120deg, rgba(255, 255, 255, 0.02), transparent 40%);
    clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%, 10% 60%, 0 25%);
    opacity: 0.7;
    pointer-events: none;
    z-index: 1;
}

/* responsivo */
@media (max-width: 1199.98px) {
    .pag_ciberse_intro {
        max-width: 820px;
        padding: 7rem 0 4.5rem;
    }

    .pag_ciberse_desc {
        max-width: 700px;
    }
}

@media (max-width: 991.98px) {
    .pag_ciberse_hero {
        min-height: auto;
    }

    .pag_ciberse_intro {
        padding: 6.5rem 0 4rem;
    }

    .pag_ciberse_title {
        max-width: 100%;
    }

    .pag_ciberse_desc {
        max-width: 100%;
    }

    .pag_ciberse_hero::after {
        width: 55%;
        opacity: 0.45;
    }
}

@media (max-width: 767.98px) {
    .pag_ciberse_intro {
        padding: 5.5rem 0 3.5rem;
    }

    .home-banner-kicker {
        padding: 0.85rem 1rem;
        font-size: 0.76rem;
        line-height: 1.35;
        gap: 0.55rem;
    }

    .pag_ciberse_title {
        font-size: clamp(2.5rem, 12vw, 4rem);
        line-height: 0.98;
    }

    .pag_ciberse_desc {
        margin-top: 1.5rem;
        font-size: 1rem;
        line-height: 1.65;
    }

    .pag_ciberse_btn.btn-tech {
        width: 100%;
        min-height: 58px;
        font-size: 1.05rem;
    }

    .pag_ciberse_hero::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pag_ciberse_btn.btn-tech {
        transition: none;
    }

    .pag_ciberse_hero_media video {
        transform: none;
    }
}



/*base24Luis*/


/* ==========================================================
   REDISEÑO LUIS BASE24 - SISTEMA TIPOGRÁFICO HOMOLOGADO
   CLASES GLOBALES: h2_estandar, h3_estandar, p_estandar
========================================================== */

.h2_estandar {
    margin: 0;
    font-size: 45px;
    line-height: 0.98;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #f8fbff;
}

.h3_estandar {
    margin: 0;
    font-size: 25px;
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #f5f8fc;
    padding-bottom: 20px;
}

.h4_estandar {
    margin: 0;
    font-size: 20px;
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: #f5f8fc;
}


.p_estandar {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    font-weight: 500;
    color: rgba(232, 239, 247, 0.82);
}

/* Variantes opcionales controladas */

.badge_estandar {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0.85rem;
    background: #aee562;
    color: #08110c;
    font-size: 0.9rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    box-shadow: 0 0 24px rgba(123, 255, 78, 0.28);
}

.service-tags {
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.service-tags span {
    border: 1px solid #6CD4F0;
    color: #6CD4F0;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    transition: 0.3s;
}

.service-tags span:hover {
    background: #5cff7c;
    color: #000;
}



.service-tags a {
    border: 1px solid #6CD4F0;
    color: #6CD4F0;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    transition: 0.3s;
}

.service-tags a:hover {
    background: #5cff7c;
    color: #000;
    border: 1px solid #5cff7c;
}

.hero-base24 {
    position: relative;
    color: #e6edf3;
    overflow: hidden;
}

/* Badge */
.badge-custom {
    display: inline-block;
    background: #5cff7c;
    color: #000;
    font-weight: 600;
    font-size: 0.8rem;
    padding: 6px 14px;
    border-radius: 6px;
    letter-spacing: 0.5px;
}

/* Title */
.hero-title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    line-height: 1.2;
}

/* Description */
.hero-description {
    color: #9aa4ad;
    font-size: 1rem;
    line-height: 1.6;
}

/* Cards */
.service-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid #6CD4F0;
    border-radius: 12px;
    padding: 24px;
    height: 100%;
    transition: all 0.3s ease;
}

.service-card:hover {
    transform: translateY(-5px);
    border-color: #5cff7c;
    box-shadow: 0 10px 30px rgba(92, 255, 124, 0.15);
}

/* Card title */

/* Card text */
.service-text {
    font-size: 0.95rem;
    color: #9aa4ad;
}

/* Tags */
.service-tags {
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}



/* Background big text */
.hero-bg-text {
    position: absolute;
    bottom: 0;
    left: 5%;
    font-size: 12rem;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.03);
    pointer-events: none;
}

/* Responsive */
@media (max-width: 768px) {
    .hero-bg-text {
        font-size: 6rem;
    }
}








/* =====================================================
   REDISEÑO LUIS BASE24 - SECCIÓN ARQUITECTURA
   CLASE PRINCIPAL: base24-arquitectura
===================================================== */

.base24-arquitectura {
    position: relative;
    color: #e6edf3;
    overflow: hidden;
}

/* Overlay para legibilidad */
.base24-arquitectura::before {
    content: "";
    position: absolute;
    inset: 0;
}

/* Contenido por encima del overlay */
.base24-arquitectura .container {
    position: relative;
    z-index: 2;
}

/* TITULOS */
.section-title {
    font-size: 2rem;
    font-weight: 700;
}

.section-subtitle {
    color: #9aa4ad;
    font-size: 0.95rem;
}

/* IMAGE */
/* =====================================================
   REDISEÑO LUIS BASE24 - SECCIÓN ARQUITECTURA
   CLASE PRINCIPAL: base24-arquitectura
===================================================== */

.arquitectura-video {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 320px;
    border-radius: 12px;
    overflow: hidden;
}

/* VIDEO FULL COVER */
.video-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* OVERLAY OSCURO PARA LEGIBILIDAD */
.video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(2, 7, 13, 0.2),
        rgba(2, 7, 13, 0.7)
    );
}
/* ACCORDION */
.custom-accordion {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.accordion-item {
    border-bottom: 1px solid rgba(255,255,255,0.1);
    padding-bottom: 10px;
}

/* HEADER */
.accordion-header {
    width: 100%;
    background: none;
    border: none;
    color: #fff;
    text-align: left;
    font-weight: 600;
    font-size: 1.1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px 0;
    cursor: pointer;
    transition: 0.3s;
}

.accordion-header i {
    transition: transform 0.3s ease;
}

/* BODY */
.accordion-body {
    max-height: 0;
    overflow: hidden;
    color: #9aa4ad;
    font-size: 0.95rem;
    transition: all 0.4s ease;
}

/* ACTIVE */
.accordion-item.active .accordion-body {
    max-height: 200px;
    margin-top: 10px;
}

.accordion-item.active .accordion-header i {
    transform: rotate(45deg);
}

/* HOVER */
.accordion-header:hover {
    color: #5cff7c;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .section-title {
        font-size: 1.6rem;
    }
}




/* ==========================================================
   REDISEÑO LUIS BASE24 - OPERACIÓN TRANSACCIONAL CRÍTICA
   CLASE PRINCIPAL: base24_operacion
========================================================== */

/* ==========================================================
   REDISEÑO LUIS BASE24 - OPERACIÓN TRANSACCIONAL CRÍTICA
   CLASE PRINCIPAL: b24-carousel-section
========================================================== */

.b24-carousel-section {
    position: relative;
    overflow: hidden;
   /* background:
        radial-gradient(circle at 15% 20%, rgba(35, 95, 148, 0.22), transparent 30%),
        radial-gradient(circle at 85% 15%, rgba(27, 112, 168, 0.14), transparent 24%),
        linear-gradient(180deg, #03070d 0%, #02060b 100%);*/
    color: #f5f8fc;
}

.b24-carousel-bg {
    position: absolute;
    inset: 0;
    opacity: 0.14;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.05) 1px, transparent 1px);
    background-size: 34px 34px;
}

.b24-wrapper {
    position: relative;
    z-index: 2;
}

.b24-chip {
    display: inline-flex;
    align-items: center;
    padding: 0.8rem 1.25rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.b24-chip-accent {
    background: #7BFF4E;
    color: #08110c;
    box-shadow: 0 0 22px rgba(123, 255, 78, 0.28);
}



.b24-intro {
    max-width: 840px;
    margin: 1.35rem 0 0;
    font-size: clamp(1rem, 1.25vw, 1.3rem);
    line-height: 1.65;
    color: rgba(232, 239, 247, 0.76);
}

.b24-topbar {
    display: flex;
    justify-content: flex-lg-end;
    justify-content: flex-start;
}

.b24-arrows {
    display: flex;
    gap: 1rem;
}

.b24-arrow {
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    border: 1px solid #6CD4F0;
    background: rgba(123, 255, 78, 0.05);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: all 0.35s ease;
}

.b24-arrow:hover {
    transform: translateY(-2px);
    background: rgba(123, 255, 78, 0.12);
    border-color: rgba(123, 255, 78, 0.62);
    box-shadow: 0 12px 28px rgba(123, 255, 78, 0.12);
}

.b24-carousel-viewport {
    width: 100%;
    padding: 0 clamp(1rem, 3vw, 4rem) 1rem;
}

.b24-carousel {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 8px;
}

.b24-carousel::-webkit-scrollbar {
    display: none;
}

.b24-card {
    flex: 0 0 310px;
    height: 490px;
    scroll-snap-align: start;
    perspective: 1600px;
    cursor: pointer;
}

.b24-card-inner {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.85s cubic-bezier(.2, .8, .2, 1);
    transform-style: preserve-3d;
}

.b24-card:hover .b24-card-inner,
.b24-card.is-flipped .b24-card-inner {
    transform: rotateY(180deg);
}

.b24-card-face {
    position: absolute;
    inset: 0;
    border-radius: 1.7rem;
    overflow: hidden;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.34),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.b24-card-front {
    background: #07111d;
    z-index: 2;
    pointer-events: auto;
}

.b24-card-back {
    background: linear-gradient(180deg, rgba(10, 24, 38, 0.98) 0%, rgba(5, 12, 21, 0.98) 100%);
    transform: rotateY(180deg);
    border: 1px solid rgba(123, 255, 78, 0.16);
    z-index: 1;
    pointer-events: none;
}

.b24-card-media,
.b24-card-media img {
    width: 100%;
    height: 100%;
}

.b24-card-media img {
    object-fit: cover;
    display: block;
    transition: transform 0.8s ease;
}

.b24-card:hover .b24-card-media img {
    transform: scale(1.04);
}

.b24-card-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.02) 0%,
        rgba(3, 7, 13, 0.18) 38%,
        rgba(3, 7, 13, 0.9) 100%
    );
    pointer-events: none;
}

.b24-card-content {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 2;
    padding: 1.5rem;
    pointer-events: none;
}



.b24-card-link {
    width: 3.1rem;
    height: 3.1rem;
    margin-top: 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 1rem;
    background: rgba(8, 19, 32, 0.48);
    color: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.b24-card-link:hover {
    transform: translateY(-2px);
    background: rgba(123, 255, 78, 0.12);
    border-color: rgba(123, 255, 78, 0.24);
}

.b24-card-back-content {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding: 1.7rem;
    background: radial-gradient(circle at top right, rgba(123, 255, 78, 0.08), transparent 28%);
    position: relative;
    z-index: 2;
}

.b24-card:hover .b24-card-front,
.b24-card.is-flipped .b24-card-front {
    pointer-events: none;
}

.b24-card:hover .b24-card-back,
.b24-card.is-flipped .b24-card-back {
    pointer-events: auto;
    z-index: 3;
}

.b24-card-mini {
    display: inline-block;
    margin-bottom: 0.9rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #98dc3f;
}

@media (max-width: 1399.98px) {
    .b24-card {
        flex: 0 0 295px;
        max-width: 295px;
        height: 470px;
    }
}

@media (max-width: 991.98px) {
    .b24-carousel,
    .b24-card {
        touch-action: pan-x;
    }

    .b24-card {
        flex: 0 0 280px;
        max-width: 280px;
        height: 450px;
    }
}

@media (max-width: 767.98px) {
    .b24-carousel-viewport {
        padding: 0 1rem 1rem;
    }

    .b24-card {
        flex: 0 0 250px;
        max-width: 250px;
        height: 410px;
    }

    .b24-card-content,
    .b24-card-back-content {
        padding: 1.2rem;
    }

    .b24-card:hover .b24-card-inner {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .b24-card-inner,
    .b24-card-media img,
    .b24-arrow,
    .b24-card-link {
        transition: none;
    }

    .b24-carousel {
        scroll-behavior: auto;
    }
}


/* ==========================================================
   REDISEÑO LUIS BASE24 - CÓMO CONECTAMOS ESTRATEGIA, PLATAFORMA Y OPERACIÓN
   CLASE PRINCIPAL: base24_conexion
========================================================== */

/* =========================
   TIPOGRAFÍA ESTÁNDAR
========================= */

/* =========================
   SECCIÓN
========================= */
.base24_conexion {
    position: relative;
    width: 100%;
    min-height: 100vh;
    overflow: hidden;
    background: #02060b;
}

.base24_conexion__video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
}

.base24_conexion__overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
   
}

.base24_conexion__container {
    position: relative;
    z-index: 2;
    padding-left: clamp(1rem, 3vw, 4rem);
    padding-right: clamp(1rem, 3vw, 4rem);
}

/* =========================
   COLUMNA IZQUIERDA
========================= */
.base24_conexion__intro {
    max-width: 640px;
}

.base24_conexion__badge {
    display: inline-flex;
    align-items: center;
    padding: 0.85rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 0.85rem;
    background: #7BFF4E;
    color: #08110c;
    font-size: 0.95rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    box-shadow: 0 0 24px rgba(123, 255, 78, 0.28);
}

.base24_conexion__title {
    max-width: 620px;
}

.base24_conexion__description {
    max-width: 620px;
    margin-top: 1.5rem;
}

/* =========================
   GRID DE CARDS
========================= */
.base24_conexion__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(260px, 1fr));
    gap: 1.5rem;
}

.base24_conexion__card {
    position: relative;
    min-height: 240px;
    padding: 1.5rem 1.5rem 1.75rem;
    border-radius: 1.6rem;
    background: linear-gradient(180deg, rgba(5, 18, 36, 0.82) 0%, rgba(3, 10, 24, 0.9) 100%);
    border: 1px solid rgba(79, 141, 214, 0.18);
    box-shadow:
        0 18px 50px rgba(0, 0, 0, 0.24),
        inset 0 0 0 1px rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(8px);
    transition: transform 0.35s ease, border-color 0.35s ease, box-shadow 0.35s ease;
}

.base24_conexion__card:hover {
    transform: translateY(-6px);
    border-color: rgba(123, 255, 78, 0.28);
    box-shadow:
        0 22px 56px rgba(0, 0, 0, 0.28),
        0 0 30px rgba(55, 124, 255, 0.08);
}

.base24_conexion__card-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3.4rem;
    height: 2rem;
    padding: 0 0.9rem;
    margin-bottom: 1.5rem;
    border-radius: 999px;
    border: 1px solid rgba(88, 160, 255, 0.28);
    background: rgba(15, 37, 68, 0.7);
    color: rgba(240, 246, 252, 0.9);
    font-size: 1rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.base24_conexion__card-title {
    margin-bottom: 0.75rem;
}

.base24_conexion__card-text {
    max-width: 92%;
}

.base24_conexion__card-line {
    position: absolute;
    left: 1.5rem;
    right: 1.5rem;
    bottom: 1.25rem;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, #72ff54 0%, #59b0ff 55%, #3a72ff 100%);
    box-shadow: 0 0 16px rgba(89, 176, 255, 0.28);
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 1199.98px) {
    .base24_conexion__grid {
        grid-template-columns: repeat(2, minmax(240px, 1fr));
    }

    .base24_conexion__card {
        min-height: 220px;
    }
}

@media (max-width: 991.98px) {
    .base24_conexion {
        min-height: auto;
    }

    .base24_conexion__container .row {
        min-height: auto !important;
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .base24_conexion__intro {
        max-width: 100%;
    }

    .base24_conexion__title,
    .base24_conexion__description {
        max-width: 100%;
    }

    .base24_conexion__grid {
        grid-template-columns: 1fr;
    }

    .base24_conexion__card {
        min-height: 210px;
    }

    .base24_conexion__card-text {
        max-width: 100%;
    }
}

@media (max-width: 767.98px) {
    .base24_conexion__container {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .base24_conexion__badge {
        padding: 0.75rem 1.1rem;
        font-size: 0.82rem;
    }

    .base24_conexion__card {
        padding: 1.2rem 1.2rem 1.6rem;
        border-radius: 1.3rem;
    }

    .base24_conexion__card-line {
        left: 1.2rem;
        right: 1.2rem;
        bottom: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .base24_conexion__card {
        transition: none;
    }
}


/* ==========================================================
   REDISEÑO LUIS BASE24 - FORMULARIO DE CONTACTO
   CLASE PRINCIPAL: contact_base24
========================================================== */

.contact_base24 {
    position: relative;
    overflow: hidden;
  /*  background:
        radial-gradient(circle at 15% 20%, rgba(35, 95, 148, 0.18), transparent 28%),
        radial-gradient(circle at 85% 15%, rgba(27, 112, 168, 0.12), transparent 24%),
        linear-gradient(180deg, #03070d 0%, #02060b 100%);*/
    color: #f5f8fc;
    padding: clamp(4rem, 8vw, 7rem) 0;
}

.contact_base24::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.12;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.05) 1px, transparent 1px);
    background-size: 36px 36px;
}

.contact_base24__container {
    position: relative;
    z-index: 2;
}

/* =========================
   BLOQUE IZQUIERDO
========================= */

.contact_base24__intro {
    max-width: 640px;
}

.contact_base24__title {
    max-width: 760px;
}

.contact_base24__description {
    max-width: 620px;
    margin-top: 1.35rem;
}

.contact_base24__features {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
}

.contact_base24__direct-action {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.25rem;
}

.contact_base24__feature {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1.1rem 1.15rem;
    border-radius: 1rem;
    background: rgba(7, 17, 29, 0.58);
    border: 1px solid rgba(89, 176, 255, 0.12);
    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.16),
        inset 0 0 0 1px rgba(255, 255, 255, 0.02);
    backdrop-filter: blur(8px);
}

.contact_base24__feature-icon {
    flex: 0 0 3rem;
    width: 3rem;
    height: 3rem;
    border-radius: 0.9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(23, 56, 96, 0.7);
    border: 1px solid rgba(89, 176, 255, 0.18);
    color: #8bdcff;
    font-size: 1rem;
    box-shadow: 0 0 18px rgba(89, 176, 255, 0.08);
}

.contact_base24__feature-body {
    min-width: 0;
}

.contact_base24__feature-title {
    margin-bottom: 0.35rem;
}

.contact_base24__feature-text {
    color: rgba(232, 239, 247, 0.72);
}

/* =========================
   TARJETA FORMULARIO
========================= */

.contact_base24__form-wrap {
    position: relative;
}

.contact_base24__form-card {
    position: relative;
    padding: clamp(1.4rem, 2vw, 2rem);
    border-radius: 1.6rem;
    background:
        linear-gradient(180deg, rgba(8, 19, 32, 0.88) 0%, rgba(5, 12, 21, 0.94) 100%);
    border: 1px solid rgba(89, 176, 255, 0.14);
    box-shadow:
        0 20px 55px rgba(0, 0, 0, 0.32),
        0 0 0 1px rgba(255, 255, 255, 0.03) inset;
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.contact_base24__form-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at top right, rgba(123, 255, 78, 0.08), transparent 24%),
        radial-gradient(circle at bottom left, rgba(89, 176, 255, 0.08), transparent 26%);
}

.contact_base24__form-header {
    position: relative;
    z-index: 2;
    margin-bottom: 1.5rem;
}

.contact_base24__form-title {
    margin-bottom: 0.55rem;
}

.contact_base24__form-text {
    color: rgba(232, 239, 247, 0.74);
}

/* =========================
   FORMULARIO
========================= */

.contact_base24__form {
    position: relative;
    z-index: 2;
}

.contact_base24__field-group {
    margin-bottom: 1rem;
}

.contact_base24__label {
    display: inline-block;
    margin-bottom: 0.55rem;
    color: #f4f8fc;
    font-size: 0.92rem;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.contact_base24__input-wrap {
    position: relative;
}

.contact_base24__input-icon {
    position: absolute;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
    z-index: 3;
    color: rgba(139, 220, 255, 0.82);
    font-size: 0.95rem;
    pointer-events: none;
}

.contact_base24__input-icon--textarea {
    top: 1.1rem;
    transform: none;
}

.contact_base24 .form-control,
.contact_base24 .form-select {
    min-height: 58px;
    border-radius: 1rem;
    border: 1px solid rgba(89, 176, 255, 0.14);
    background: rgba(6, 15, 26, 0.86);
    color: #f4f8fc;
    padding: 0.95rem 1rem 0.95rem 2.9rem;
    font-size: 1rem;
    line-height: 1.4;
    box-shadow: none;
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        background-color 0.3s ease,
        transform 0.3s ease;
}

.contact_base24 textarea.form-control {
    min-height: 160px;
    resize: vertical;
    padding-top: 1rem;
}

.contact_base24 .form-control::placeholder,
.contact_base24 .form-select {
    color: rgba(232, 239, 247, 0.48);
}

.contact_base24 .form-control:focus,
.contact_base24 .form-select:focus {
    border-color: rgba(123, 255, 78, 0.34);
    background: rgba(8, 19, 32, 0.95);
    color: #ffffff;
    box-shadow:
        0 0 0 0.2rem rgba(123, 255, 78, 0.08),
        0 0 18px rgba(89, 176, 255, 0.06);
}

.contact_base24 .form-control:focus + .contact_base24__input-focus,
.contact_base24 .form-select:focus + .contact_base24__input-focus {
    opacity: 1;
}

.contact_base24__input-focus {
    position: absolute;
    inset: 0;
    border-radius: 1rem;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s ease;
    box-shadow: inset 0 0 0 1px rgba(123, 255, 78, 0.18);
}

.contact_base24__row-tight {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 0;
}

.contact_base24__hint {
    margin-top: 0.4rem;
    color: rgba(232, 239, 247, 0.52);
    font-size: 0.84rem;
    line-height: 1.45;
}

.contact_base24__check {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.contact_base24__check .form-check-input {
    margin-top: 0.2rem;
    width: 1.05rem;
    height: 1.05rem;
    border-radius: 0.3rem;
    border: 1px solid rgba(89, 176, 255, 0.24);
    background-color: rgba(6, 15, 26, 0.86);
    box-shadow: none;
}

.contact_base24__check .form-check-input:checked {
    background-color: #7BFF4E;
    border-color: #7BFF4E;
}

.contact_base24__check .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(123, 255, 78, 0.12);
}

.contact_base24__check .form-check-label {
    color: rgba(232, 239, 247, 0.72);
    font-size: 0.94rem;
    line-height: 1.55;
    font-weight: 500;
}

/* =========================
   BOTÓN
========================= */

.contact_base24__actions {
    margin-top: 1.35rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}


.contact_base24__submit-note {
    align-self: center;
    color: rgba(232, 239, 247, 0.56);
}

/* =========================
   DATOS DE CONTACTO
========================= */

.contact_base24__contact-list {
    display: grid;
    gap: 1rem;
    margin-top: 2rem;
}

.contact_base24__contact-item {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
}

.contact_base24__contact-icon {
    flex: 0 0 2.8rem;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 17, 29, 0.64);
    border: 1px solid rgba(89, 176, 255, 0.14);
    color: #8bdcff;
    font-size: 0.95rem;
}

.contact_base24__contact-body a,
.contact_base24__contact-body span {
    color: rgba(232, 239, 247, 0.74);
    text-decoration: none;
    transition: color 0.3s ease;
}

.contact_base24__contact-body a:hover {
    color: #ffffff;
}

/* =========================
   ESTADOS DE VALIDACIÓN
========================= */

.contact_base24 .is-invalid.form-control,
.contact_base24 .is-invalid.form-select {
    border-color: rgba(255, 99, 132, 0.52);
    background-color: rgba(37, 11, 19, 0.72);
}

.contact_base24 .invalid-feedback {
    display: block;
    margin-top: 0.45rem;
    color: #ff9db0;
    font-size: 0.84rem;
    line-height: 1.45;
}

.contact_base24 .is-valid.form-control,
.contact_base24 .is-valid.form-select {
    border-color: rgba(123, 255, 78, 0.38);
}

.contact_base24 .valid-feedback {
    display: block;
    margin-top: 0.45rem;
    color: #a6f18c;
    font-size: 0.84rem;
    line-height: 1.45;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1199.98px) {
    .contact_base24__intro {
        max-width: 100%;
    }

    .contact_base24__description {
        max-width: 100%;
    }
}

@media (max-width: 991.98px) {
    .contact_base24 {
        padding: 4.5rem 0;
    }

    .contact_base24__intro {
        margin-bottom: 1rem;
    }

    .contact_base24__features {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .contact_base24 {
        padding: 4rem 0;
    }

    .contact_base24__form-card {
        padding: 1.2rem;
        border-radius: 1.25rem;
    }

    .contact_base24__feature {
        padding: 1rem;
        border-radius: 0.95rem;
    }

    .contact_base24__feature-icon {
        width: 2.7rem;
        height: 2.7rem;
        flex-basis: 2.7rem;
        border-radius: 0.8rem;
    }

    .contact_base24 .form-control,
    .contact_base24 .form-select {
        min-height: 54px;
        padding-left: 2.75rem;
        border-radius: 0.9rem;
    }

    .contact_base24 textarea.form-control {
        min-height: 145px;
    }



    .contact_base24__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .contact_base24__submit-note {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    .contact_base24__form-card,
    .contact_base24__feature,
    .contact_base24 .form-control,
    .contact_base24 .form-select,
    .contact_base24__contact-body a {
        transition: none;
    }
}


}

.contact_base24_modal__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;

    width: 100%;
    min-height: 52px;
    padding: 0.85rem 1.35rem;

    border: none;
    border-radius: 0.75rem;
    text-decoration: none;

    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;

    color: #ffffff;
    background: linear-gradient(135deg, #3b82f6 0%, #4f8cff 100%);

    box-shadow:
        0 10px 25px rgba(59, 130, 246, 0.25),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease,
        background 0.3s ease,
        filter 0.3s ease;
}

.contact_base24_modal__submit:hover,
.contact_base24_modal__submit:focus {
    color: #ffffff;
    transform: translateY(-2px);
    background: linear-gradient(135deg, #4f8cff 0%, #6aa2ff 100%);
    box-shadow:
        0 14px 32px rgba(59, 130, 246, 0.35);
}

.contact_base24_modal__submit:active {
    transform: translateY(0);
    box-shadow:
        0 6px 14px rgba(59, 130, 246, 0.25);
}

.contact_base24_modal__submit:focus-visible {
    outline: 3px solid rgba(79, 140, 255, 0.35);
    outline-offset: 2px;
}

.contact_base24_modal__submit i {
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.contact_base24_modal__submit span {
    display: inline-block;
    line-height: 1;
}

.contact_base24_modal__submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
    transform: none;
    box-shadow:
        0 6px 14px rgba(59, 130, 246, 0.18);
}


/* ==========================================================
   REDISEÑO LUIS BASE24 - FOOTER PREMIUM
   CLASE PRINCIPAL: footer_base24
========================================================== */

.footer_base24 {
    position: relative;
    background: transparent;
    padding: 0 0 2rem;
    color: #f5f8fc;
}

.footer_base24__container {
    position: relative;
}

/* =========================
   HERO SUPERIOR
========================= */

.footer_base24__hero {
    position: relative;
    z-index: 2;
    margin-bottom: -3.75rem;
    padding: clamp(1.5rem, 2vw, 2rem);
    border-radius: 1.8rem;
    background:
        radial-gradient(circle at top right, rgba(123, 255, 78, 0.08), transparent 24%),
        linear-gradient(135deg, rgba(8, 19, 32, 0.96) 0%, rgba(4, 10, 18, 0.98) 100%);
    border: 1px solid rgba(89, 176, 255, 0.12);
    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.32),
        0 0 0 1px rgba(255, 255, 255, 0.03) inset;
    overflow: hidden;
}

.footer_base24__hero::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.12;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.06) 1px, transparent 1px);
    background-size: 34px 34px;
}

.footer_base24__hero-content {
    position: relative;
    z-index: 2;
    max-width: 760px;
}

.footer_base24__hero-title {
    max-width: 720px;
}

.footer_base24__hero-title span {
    color: #98dc3f;
}

.footer_base24__hero-text {
    max-width: 680px;
    margin-top: 1.35rem;
}

.footer_base24__hero-actions {
    margin-top: 2rem;
}

.footer_base24__cta.btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0.9rem 1.6rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #1db7e8 0%, #39d0f2 100%);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    border: 0;
    box-shadow: 0 16px 34px rgba(33, 191, 238, 0.20);
    transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease;
}

.footer_base24__cta.btn-tech:hover {
    color: #fff;
    transform: translateY(-3px);
    filter: brightness(1.04);
    box-shadow: 0 22px 42px rgba(33, 191, 238, 0.24);
}

.footer_base24__hero-visual {
    position: relative;
    min-height: 260px;
    height: 100%;
}

.footer_base24__orb {
    position: absolute;
    top: 50%;
    right: 0;
    width: min(24rem, 80%);
    aspect-ratio: 1;
    border-radius: 50%;
    transform: translateY(-50%);
    background:
        radial-gradient(circle at 40% 40%, rgba(255, 255, 255, 0.14) 0%, transparent 22%),
        radial-gradient(circle, rgba(89, 176, 255, 0.12) 0%, transparent 54%);
    border: 1px solid rgba(123, 255, 78, 0.24);
    box-shadow:
        inset 0 0 80px rgba(255, 255, 255, 0.03),
        0 0 60px rgba(89, 176, 255, 0.06);
}

.footer_base24__grid-glow {
    position: absolute;
    inset: 10% 8% 10% auto;
    width: min(20rem, 65%);
    background:
        radial-gradient(circle, rgba(123, 255, 78, 0.10) 0%, transparent 52%);
    filter: blur(26px);
}

/* =========================
   PANEL PRINCIPAL
========================= */

.footer_base24__panel {
    position: relative;
    padding: 7rem clamp(1.2rem, 2vw, 2rem) 1.5rem;
    border-radius: 2rem;
    background: linear-gradient(180deg, rgba(5, 8, 12, 0.98) 0%, rgba(2, 5, 9, 1) 100%);
    box-shadow:
        0 26px 70px rgba(0, 0, 0, 0.34),
        inset 0 0 0 1px rgba(255, 255, 255, 0.02);
    overflow: hidden;
}

.footer_base24__panel::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.06;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.05) 1px, transparent 1px);
    background-size: 38px 38px;
}

/* =========================
   MARCA
========================= */

.footer_base24__brand {
    position: relative;
    z-index: 2;
}

.footer_base24__logo {
    display: inline-flex;
    margin-bottom: 1.25rem;
}

.footer_base24__logo img {
    max-width: 190px;
    height: auto;
    display: block;
}

.footer_base24__brand-text {
    max-width: 480px;
}

.footer_base24__contact-list {
    display: grid;
    gap: 0.85rem;
    margin-top: 1.5rem;
}

.footer_base24__contact-item {
    display: flex;
    align-items: center;
    gap: 0.8rem;
}

.footer_base24__contact-icon {
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(7, 17, 29, 0.7);
    border: 1px solid rgba(89, 176, 255, 0.12);
    color: #8bdcff;
    font-size: 0.9rem;
}

.footer_base24__contact-item a {
    color: rgba(232, 239, 247, 0.78);
    text-decoration: none;
    transition: color 0.3s ease;
}

.footer_base24__contact-item a:hover {
    color: #fff;
}

/* =========================
   GRUPOS
========================= */

.footer_base24__group {
    position: relative;
    z-index: 2;
}

.footer_base24__group-title {
    margin-bottom: 1rem;
}

.footer_base24__links,
.footer_base24__services {
    display: grid;
    gap: 0.7rem;
}

.footer_base24__services {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem 1.25rem;
}

.footer_base24__links a,
.footer_base24__services a,
.footer_base24__bottom-links a {
    color: rgba(232, 239, 247, 0.72);
    text-decoration: none;
    line-height: 1.5;
    transition: color 0.3s ease, transform 0.3s ease;
}

.footer_base24__links a:hover,
.footer_base24__services a:hover,
.footer_base24__bottom-links a:hover {
    color: #ffffff;
    transform: translateX(2px);
}

.footer_base24__services a.is-disabled {
    opacity: 0.42;
    pointer-events: none;
}

/* =========================
   BOTTOM
========================= */

.footer_base24__bottom {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 2.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.footer_base24__copyright {
    color: rgba(232, 239, 247, 0.5);
}

.footer_base24__bottom-links {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.25rem;
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1199.98px) {
    .footer_base24__hero {
        margin-bottom: -3rem;
    }

    .footer_base24__panel {
        padding-top: 6.25rem;
    }
}

@media (max-width: 991.98px) {
    .footer_base24__hero {
        margin-bottom: -2.4rem;
    }

    .footer_base24__panel {
        padding-top: 5.5rem;
    }

    .footer_base24__hero-visual {
        min-height: 180px;
    }

    .footer_base24__services {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767.98px) {
    .footer_base24 {
        padding-bottom: 1.25rem;
    }

    .footer_base24__hero {
        margin-bottom: -1.75rem;
        padding: 1.2rem;
        border-radius: 1.35rem;
    }

    .footer_base24__panel {
        padding: 4.5rem 1rem 1.25rem;
        border-radius: 1.5rem;
    }

    .footer_base24__services {
        grid-template-columns: 1fr;
    }

    .footer_base24__bottom {
        flex-direction: column;
        align-items: flex-start;
    }

    .footer_base24__hero-visual {
        min-height: 140px;
    }

    .footer_base24__orb {
        width: min(14rem, 72%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .footer_base24__cta.btn-tech,
    .footer_base24__links a,
    .footer_base24__services a,
    .footer_base24__bottom-links a {
        transition: none;
    }
}




/* ==========================================================
   REDISEÑO LUIS BASE24 - MODAL FORMULARIO
   CLASE PRINCIPAL: contact_base24_modal
========================================================== */

.contact_base24_modal .modal-dialog {
    max-width: 1140px;
}

.contact_base24_modal .modal-content {
    background: transparent;
    border: 0;
    box-shadow: none;
}

.contact_base24_modal__content {
    background:
        radial-gradient(circle at top right, rgba(123, 255, 78, 0.06), transparent 22%),
        linear-gradient(180deg, rgba(6, 15, 26, 0.98) 0%, rgba(3, 8, 18, 1) 100%);
    border: 1px solid rgba(89, 176, 255, 0.14);
    border-radius: 1.6rem;
    overflow: hidden;
    box-shadow:
        0 28px 70px rgba(0, 0, 0, 0.45),
        inset 0 0 0 1px rgba(255,255,255,0.02);
    backdrop-filter: blur(10px);
}

.contact_base24_modal__header {
    position: relative;
    padding: 1.5rem 1.6rem 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    align-items: flex-start;
}

.contact_base24_modal__header-copy {
    max-width: 760px;
    padding-right: 3.5rem;
}

.contact_base24_modal__title {
    margin-top: 0.7rem;
}

.contact_base24_modal__subtitle {
    margin-top: 0.45rem;
    color: rgba(232,239,247,0.7);
}

.contact_base24_modal__close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    opacity: 0.8;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.contact_base24_modal__close:hover {
    opacity: 1;
    transform: rotate(90deg);
}

.contact_base24_modal__body {
    padding: 1.6rem;
}

/* CAMPOS */

.contact_base24_modal__field {
    position: relative;
}

.contact_base24_modal__field-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    color: rgba(139, 220, 255, 0.85);
    font-size: 0.95rem;
    pointer-events: none;
}

.contact_base24_modal__field-icon--top {
    top: 1.05rem;
    transform: none;
}

.contact_base24_modal__control.form-control,
.contact_base24_modal__control.form-select {
    min-height: 58px;
    border-radius: 1rem;
    border: 1px solid rgba(89, 176, 255, 0.14);
    background: rgba(7, 17, 29, 0.92);
    color: #f4f8fc;
    padding: 0.95rem 1rem 0.95rem 2.85rem;
    box-shadow: none;
    transition:
        border-color 0.3s ease,
        box-shadow 0.3s ease,
        background-color 0.3s ease,
        transform 0.3s ease;
}

.contact_base24_modal__control.form-control::placeholder,
.contact_base24_modal__control.form-select {
    color: rgba(232, 239, 247, 0.46);
}

.contact_base24_modal__control.form-control:focus,
.contact_base24_modal__control.form-select:focus {
    border-color: rgba(123,255,78,0.34);
    background: rgba(8, 19, 32, 0.98);
    color: #ffffff;
    box-shadow:
        0 0 0 0.2rem rgba(123,255,78,0.08),
        0 0 18px rgba(89, 176, 255, 0.06);
}

.contact_base24_modal__control--textarea.form-control {
    min-height: 145px;
    resize: vertical;
    padding-top: 0.95rem;
}

/* SWITCH */

.contact_base24_modal__switch {
    padding: 1rem 1.15rem;
    border-radius: 1rem;
    background: rgba(7, 17, 29, 0.62);
    border: 1px solid rgba(89, 176, 255, 0.10);
}

.contact_base24_modal__switch .form-check-input {
    width: 2.8rem;
    height: 1.45rem;
    margin-top: 0.15rem;
    border: 1px solid rgba(89, 176, 255, 0.24);
    background-color: rgba(6, 15, 26, 0.86);
    box-shadow: none;
}

.contact_base24_modal__switch .form-check-input:checked {
    background-color: #7BFF4E;
    border-color: #7BFF4E;
}

.contact_base24_modal__switch .form-check-input:focus {
    box-shadow: 0 0 0 0.2rem rgba(123, 255, 78, 0.12);
}

.contact_base24_modal__switch .form-check-label {
    margin-left: 0.35rem;
    color: rgba(232,239,247,0.78);
    font-size: 0.95rem;
    line-height: 1.55;
    font-weight: 500;
}

.contact_base24_modal__switch .form-check-label a {
    color: #8bdcff;
    text-decoration: none;
}

.contact_base24_modal__switch .form-check-label a:hover {
    color: #ffffff;
}

/* BOTÓN */


.contact_base24_modal__submit {
    margin-top: 0.5rem;
}
/* VALIDACIONES LARAVEL / BOOTSTRAP */

.contact_base24_modal .is-invalid.form-control,
.contact_base24_modal .is-invalid.form-select {
    border-color: rgba(255, 99, 132, 0.56);
    background-color: rgba(37, 11, 19, 0.76);
}

.contact_base24_modal .invalid-feedback {
    display: block;
    margin-top: 0.45rem;
    color: #ff9db0;
    font-size: 0.84rem;
    line-height: 1.45;
}

.contact_base24_modal .is-valid.form-control,
.contact_base24_modal .is-valid.form-select {
    border-color: rgba(123, 255, 78, 0.38);
}

.contact_base24_modal .valid-feedback {
    display: block;
    margin-top: 0.45rem;
    color: #a6f18c;
    font-size: 0.84rem;
    line-height: 1.45;
}

/* ==========================================================
   ALERTAS
========================================================== */

.contact_base24_alert {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
}

.contact_base24_alert.active {
    display: flex;
}

.contact_base24_alert__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 8, 18, 0.78);
    backdrop-filter: blur(6px);
}

.contact_base24_alert__card {
    position: relative;
    z-index: 2;
    max-width: 430px;
    width: min(92%, 430px);
    padding: 2rem 1.5rem;
    border-radius: 1.4rem;
    text-align: center;
    background: linear-gradient(180deg, rgba(8, 19, 32, 0.98) 0%, rgba(3, 8, 18, 1) 100%);
    border: 1px solid rgba(89,176,255,0.12);
    box-shadow:
        0 25px 60px rgba(0,0,0,0.45),
        inset 0 0 0 1px rgba(255,255,255,0.03);
}

.contact_base24_alert__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 1.2rem;
    border-radius: 1.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(20, 60, 40, 0.6);
    border: 1px solid rgba(123,255,78,0.35);
    color: #7BFF4E;
    font-size: 1.4rem;
    box-shadow: 0 0 25px rgba(123,255,78,0.15);
}

.contact_base24_alert__icon--error {
    background: rgba(60, 20, 20, 0.6);
    border-color: rgba(255, 90, 90, 0.4);
    color: #ff6b6b;
    box-shadow: 0 0 25px rgba(255, 90, 90, 0.15);
}

.contact_base24_alert__title {
    margin-bottom: 0.6rem;
}

.contact_base24_alert__text {
    margin-bottom: 1.4rem;
    color: rgba(232,239,247,0.75);
}

.contact_base24_alert__btn.btn-tech {
    min-height: 52px;
    padding: 0.8rem 1.4rem;
    border-radius: 999px;
    background: linear-gradient(135deg, #1db7e8 0%, #39d0f2 100%);
    border: none;
    color: #fff;
    font-weight: 700;
    transition: all 0.3s ease;
}

.contact_base24_alert__btn.btn-tech:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(33,191,238,0.3);
}

.contact_base24_alert--error .contact_base24_alert__btn.btn-tech {
    background: linear-gradient(135deg, #ff5c5c 0%, #ff7a7a 100%);
}

/* RESPONSIVE */

@media (max-width: 991.98px) {
    .contact_base24_modal__header-copy {
        padding-right: 2.8rem;
    }
}

@media (max-width: 767.98px) {
    .contact_base24_modal .modal-dialog {
        margin: 0.75rem;
    }

    .contact_base24_modal__header {
        padding: 1.2rem 1.2rem 1rem;
    }

    .contact_base24_modal__body {
        padding: 1.2rem;
    }

    .contact_base24_modal__control.form-control,
    .contact_base24_modal__control.form-select {
        min-height: 54px;
        padding-left: 2.65rem;
    }

    .contact_base24_modal__control--textarea.form-control {
        min-height: 130px;
    }

    .contact_base24_alert__card {
        padding: 1.7rem 1.2rem;
    }

    .contact_base24_alert__icon {
        width: 56px;
        height: 56px;
        font-size: 1.2rem;
    }
}

/* ==========================================================
   BOTÓN ESTÁNDAR BASE24
========================================================== */

.btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;

    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.01em;

    border-radius: 0.75rem;
    text-decoration: none;
    border: none;

    transition: all 0.3s ease;
    cursor: pointer;
}

/* VARIANTE PRINCIPAL (como imagen) */
.btn-tech--primary {
    padding: 0.7rem 1.18rem;
    min-height: 42px;
    font-size: 0.95rem;

    background: linear-gradient(135deg, #3b82f6 0%, #4f8cff 100%);
    color: #ffffff;

    box-shadow:
        0 10px 25px rgba(59, 130, 246, 0.25),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

/* HOVER */
.btn-tech--primary:hover {
    color: #ffffff;
    transform: translateY(-2px);

    background: linear-gradient(135deg, #4f8cff 0%, #6aa2ff 100%);

    box-shadow:
        0 14px 32px rgba(59, 130, 246, 0.35);
}

/* ACTIVE */
.btn-tech--primary:active {
    transform: translateY(0);
    box-shadow:
        0 6px 14px rgba(59, 130, 246, 0.25);
}

/* ICONO */
.btn-tech i {
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
}

/* RESPONSIVE */
@media (max-width: 768px) {
    .btn-tech--primary {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================
   BOTON SETANDAR REUTILIZABLE
========================================================== */

.setandar.btn-tech {
    gap: 0.4rem;
    padding: 0.75rem 1.3rem;
    min-height: 44px;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 0.75rem;
    background: linear-gradient(135deg, #3b82f6 0%, #4f8cff 100%);
    color: #ffffff;
    box-shadow:
        0 10px 25px rgba(59, 130, 246, 0.25),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

.setandar.btn-tech:hover {
    color: #ffffff;
    transform: translateY(-2px);
    background: linear-gradient(135deg, #4f8cff 0%, #6aa2ff 100%);
    box-shadow: 0 14px 32px rgba(59, 130, 246, 0.35);
}

.setandarSos.btn-techSos {
    gap: 0.4rem;
    padding: 0.75rem 1.3rem;
    min-height: 44px;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 0.75rem;
    background: #aff44e;
    color: #000;
    box-shadow:
        0 10px 25px rgba(59, 130, 246, 0.25),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

.setandarSos.btn-techSos:hover {
    color: #000;
    transform: translateY(-2px);
    background: #aff44e;
    box-shadow: 0 14px 32px rgba(59, 130, 246, 0.35);
}


.setandar.btn-tech:active {
    transform: translateY(0);
    box-shadow: 0 6px 14px rgba(59, 130, 246, 0.25);
}

.setandar.btn-tech:focus-visible {
    outline: 3px solid rgba(79, 140, 255, 0.28);
    outline-offset: 3px;
}

.tg-banner-primary-btn.btn-tech {
    gap: 0.4rem;
    padding: 0.75rem 1.3rem;
    min-height: 44px;
    font-size: 0.95rem;
    font-weight: 700;
    border-radius: 0.75rem;
    border: none;
    background: linear-gradient(135deg, #3b82f6 0%, #4f8cff 100%);
    color: #ffffff;
    box-shadow:
        0 10px 25px rgba(59, 130, 246, 0.25),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

.tg-banner-primary-btn.btn-tech:hover {
    color: #ffffff;
    transform: translateY(-2px);
    background: linear-gradient(135deg, #4f8cff 0%, #6aa2ff 100%);
    box-shadow: 0 14px 32px rgba(59, 130, 246, 0.35);
}

.tg-banner-primary-btn.btn-tech:active {
    transform: translateY(0);
    box-shadow: 0 6px 14px rgba(59, 130, 246, 0.25);
}

.tg-banner-primary-btn.btn-tech:focus-visible {
    outline: 3px solid rgba(79, 140, 255, 0.28);
    outline-offset: 3px;
}

.hero-buttons,
.hero_actions,
.base24-hero-actions,
.sustain-hero-actions,
.sustain-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: center;
}

.btn-whatsapp-pro,
.tg-direct-contact-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 44px;
    padding: 0.75rem 1.3rem;
    border-radius: 0.75rem;
    border: 1px solid rgba(72, 214, 115, 0.34);
    background: linear-gradient(135deg, #18b957 0%, #25d366 100%);
    color: #ffffff;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    box-shadow:
        0 10px 25px rgba(37, 211, 102, 0.24),
        inset 0 0 0 1px rgba(255,255,255,0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease, filter 0.3s ease;
}

.btn-whatsapp-pro:hover,
.tg-direct-contact-btn:hover {
    color: #ffffff;
    transform: translateY(-2px);
    filter: brightness(1.03);
    box-shadow:
        0 14px 32px rgba(37, 211, 102, 0.28),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

.btn-whatsapp-pro:focus-visible,
.tg-direct-contact-btn:focus-visible {
    outline: 3px solid rgba(37, 211, 102, 0.24);
    outline-offset: 3px;
}

.btn-whatsapp-pro i,
.tg-direct-contact-btn i {
    font-size: 1rem;
    display: inline-flex;
    align-items: center;
}

.pag_ciberse_actions .btn-whatsapp-pro,
.pag_ciberse_actions .tg-direct-contact-btn {
    min-height: 44px;
    padding: 0.75rem 1.3rem;
    border-radius: 0.75rem;
    font-size: 0.95rem;
}

@media (max-width: 768px) {
    .setandar.btn-tech,
    .tg-banner-primary-btn.btn-tech {
        width: 100%;
        justify-content: center;
    }

    .btn-whatsapp-pro,
    .tg-direct-contact-btn {
        width: 100%;
        justify-content: center;
    }
}



/*CIBERSEGURIDAD*/
/* =========================
   STORY SECTION - ENHANCED
========================= */

:root{
    --qs-green: #6CD4F0;         /* AJUSTA aquí al verde exacto de tu marca */
    --qs-green-soft: rgba(0, 229, 143, 0.18);
    --qs-green-strong: rgba(0, 229, 143, 0.35);
    --qs-dark-1: #050816;
    --qs-dark-2: #081126;
    --qs-dark-3: #0d1836;
    --qs-text: #e8eeff;
    --qs-muted: #98a2c3;
    --qs-line: rgba(255,255,255,.12);
    --qs-white-soft: rgba(255,255,255,.08);
}

/* WRAPPER */

.sect_qs_story{
    height: 300vh; /* 3 slides */
    position: relative;
    background:
        radial-gradient(circle at 15% 25%, rgba(0, 229, 143, 0.08), transparent 22%),
        radial-gradient(circle at 85% 30%, rgba(0, 229, 143, 0.06), transparent 18%),
        linear-gradient(180deg, #040612 0%, #07101f 45%, #040612 100%);
    overflow: clip;
}

/* STICKY */

.story_sticky{
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 12% 42%, #0b1232 0%, #081127 28%, #050816 75%),
        linear-gradient(135deg, rgba(0, 229, 143, 0.04), transparent 35%),
        linear-gradient(180deg, #050816 0%, #081126 100%);
}

.story_sticky::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: radial-gradient(circle at center, black 45%, transparent 100%);
    opacity:.35;
    pointer-events:none;
    z-index:0;
}

.story_sticky::after{
    content:"";
    position:absolute;
    width: 42vw;
    height: 42vw;
    max-width: 700px;
    max-height: 700px;
    left: -10%;
    top: 50%;
    transform: translateY(-50%);
    background: radial-gradient(circle, rgba(0, 229, 143, 0.14) 0%, rgba(0, 229, 143, 0.05) 35%, transparent 70%);
    filter: blur(30px);
    pointer-events:none;
    z-index:0;
}

/* TRACK */

.banner_track{
    display:flex;
    height:100%;
    transition:transform .7s cubic-bezier(.22,.61,.36,1);
    position:relative;
    z-index:2;
}

/* SLIDE */

.story_slide{
    min-width:100vw;
    height:100vh;
    position:relative;
    padding-left:8%;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.story_slide::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(5,8,22,.92) 0%, rgba(5,8,22,.78) 32%, rgba(5,8,22,.25) 58%, rgba(5,8,22,.10) 100%);
    z-index:1;
    pointer-events:none;
}

/* GEN */

.story_gen{
    position:absolute;
    left:4%;
    top:50%;
    transform:translateY(-50%);
    font-size:20vw;
    font-weight:900;
    letter-spacing:-10px;
    opacity:.045;
    color: var(--qs-green);
    text-shadow: 0 0 40px rgba(0, 229, 143, 0.15);
    pointer-events:none;
    user-select:none;
    z-index:1;
}

/* CONTENT */

.story_content{
    position:absolute;
    left:8%;
    width:min(520px, 88vw);
    z-index:20;
    padding: 34px 34px 30px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:28px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.06) 0%, rgba(255,255,255,.025) 100%);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow:
        0 20px 60px rgba(0,0,0,.28),
        inset 0 1px 0 rgba(255,255,255,.05);
    overflow:hidden;
}

.story_content::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:3px;
    background: linear-gradient(90deg, var(--qs-green) 0%, rgba(0,229,143,.1) 100%);
    opacity:.9;
}

.story_content::after{
    content:"";
    position:absolute;
    top:-80px;
    right:-80px;
    width:180px;
    height:180px;
    background: radial-gradient(circle, rgba(0,229,143,.16) 0%, transparent 70%);
    pointer-events:none;
}

/* TITULO */

/* TEXTO */

.story_text_bottom{
    position:relative;
    top:auto;
    max-width:100%;
}






/* IMAGE */

.story_image{
    position:absolute;
    right:-3%;
    top:50%;
    width:64vw;
    height:86vh;
    border-radius:36px 0 0 36px;
    background-size:cover;
    background-position:center;
    opacity:0;
    transform:translateY(-50%) scale(.88) rotate(-2deg);
    filter:blur(20px) saturate(.9);
    border:1px solid rgba(255,255,255,.06);
    box-shadow:
        0 20px 80px rgba(0,0,0,.42),
        0 0 0 1px rgba(255,255,255,.03) inset;
    overflow:hidden;
    transition:
        transform 1.05s cubic-bezier(.22,.61,.36,1),
        opacity .85s ease,
        filter .85s ease;
}

.story_image::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(90deg, rgba(5,8,22,.70) 0%, rgba(5,8,22,.15) 35%, rgba(5,8,22,.08) 100%),
        linear-gradient(180deg, rgba(0,229,143,.10), transparent 35%);
}

.story_image::after{
    content:"";
    position:absolute;
    inset:auto 0 0 0;
    height:40%;
    background: linear-gradient(180deg, transparent 0%, rgba(5,8,22,.45) 100%);
}

.story_slide.active .story_image{
    opacity:.62;
    transform:translateY(-50%) scale(1) rotate(0deg);
    filter:blur(0) saturate(1.05);
    box-shadow:
        0 25px 100px rgba(0,0,0,.52),
        0 0 80px rgba(0,229,143,.10);
}

.story_slide.active .story_image{
    transition-delay:.18s;
}

/* TIMELINE */

.timeline_line{
    position:absolute;
    top:50%;
    left:0;
    width:100%;
    height:2px;
    z-index:10;
    background:
        linear-gradient(90deg,
            rgba(255,255,255,.06) 0%,
            rgba(255,255,255,.22) 22%,
            rgba(0,229,143,.85) 50%,
            rgba(255,255,255,.22) 78%,
            rgba(255,255,255,.06) 100%);
    box-shadow:
        0 0 18px rgba(0,229,143,.22),
        0 0 40px rgba(0,229,143,.12);
    opacity:.85;
    z-index: -1;
}

/* PLANE */

.timeline_plane{
    position:absolute;
    top:50%;
    left:10%;
    transform:translate(-50%,-50%);
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    font-size:22px;
    border-radius:50%;
    color:#02150d;
    background: linear-gradient(135deg, var(--qs-green) 0%, #00c97e 100%);
    box-shadow:
        0 8px 24px rgba(0,229,143,.35),
        0 0 0 8px rgba(0,229,143,.08);
    z-index:11;
    transition:left .35s ease, transform .35s ease;
        z-index: -1;

}

/* CIRCLE */

.story_circle{
    position:absolute;
    right:18%;
    top:50%;
    transform:translateY(-50%);
    width:24vw;
    height:24vw;
    max-width:340px;
    max-height:340px;
    opacity:.95;
    animation:rotateCircle 30s linear infinite;
    z-index:4;
    filter: drop-shadow(0 0 18px rgba(0,229,143,.18));
}

.story_circle::before{
    content:"";
    position:absolute;
    inset:0;
    border:1px solid #6CD4F0;
    border-radius:50%;
    box-shadow:
        0 0 20px rgba(0,229,143,.12),
        inset 0 0 20px rgba(0,229,143,.06);
}

.story_circle::after{
    content:"";
    position:absolute;
    inset:14%;
    border:1px dashed rgba(255,255,255,.18);
    border-radius:50%;
}

.story_circle svg text{
    fill:#ffffff;
    letter-spacing:2.6px;
    font-size:10px;
    text-transform:uppercase;
}

/* SIDE MENU */

.timeline_side{
    position:absolute;
    right:32px;
    top:50%;
    transform:translateY(-50%);
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    font-size:13px;
    z-index:12;
}

.timeline_top{
    position:absolute;
    bottom:40px;
    display:flex;
    flex-direction:column;
    gap:14px;
}

.timeline_side span{
    position:relative;
    padding-right:18px;
    color:rgba(255,255,255,.55);
    letter-spacing:.12em;
    font-weight:700;
    text-transform:uppercase;
    transition: color .3s ease, transform .3s ease, opacity .3s ease;
}

.timeline_side span::after{
    content:"";
    position:absolute;
    right:0;
    top:50%;
    transform:translateY(-50%);
    width:8px;
    height:8px;
    border-radius:50%;
    background:rgba(255,255,255,.25);
    box-shadow:0 0 0 0 rgba(0,229,143,0);
    transition:all .3s ease;
}

.timeline_side .active{
    opacity:1;
    color:#ffffff;
    transform:translateX(-6px);
}

.timeline_side .active::after{
    background:var(--qs-green);
    box-shadow:0 0 0 6px rgba(0,229,143,.12);
}

/* ANIMACIONES DE ENTRADA */

.story_content,
.story_gen{
    transition: opacity .65s ease, transform .75s ease;
    z-index: 9999;
}

.story_slide .story_content{
    opacity:.4;
    transform:translateY(26px);
}

.story_slide.active .story_content{
    opacity:1;
    transform:translateY(0);
}

/* MOBILE */

@media (max-width: 992px){
    .story_content{
        width:min(92vw, 560px);
        padding:28px 24px;
    }

    .story_image{
        width:58vw;
    }

    .timeline_side{
        right:20px;
    }
}

@media(max-width:768px){

    .sect_qs_story{
        height: 300vh;
    }

    .story_slide{
        padding:32px 20px;
        justify-content:flex-end;
    }

    .story_slide::before{
        background:
            linear-gradient(180deg, rgba(5,8,22,.40) 0%, rgba(5,8,22,.72) 52%, rgba(5,8,22,.94) 100%);
    }

    .story_slide.active .story_image{
        transform:translateY(0) scale(1);
        opacity:.25;
    }

    .timeline_line,
    .timeline_plane,
    .timeline_side{
        display:none;
    }

    .story_image{
        top:0;
        right:0;
        width:100%;
        height:100%;
        border-radius:0;
        transform:none;
        opacity:.18;
        filter: blur(0) saturate(1);
    }

    .story_content{
        position:relative;
        left:0;
        width:100%;
        max-width:100%;
        border-radius:24px;
        margin-bottom:28px;
    }

    .story_content h2{
        font-size: clamp(28px, 8vw, 40px);
        margin-bottom:18px;
    }

    .story_text_bottom{
        position:relative;
        top:0;
    }

    .story_content p{
        font-size:16px;
        line-height:1.7;
        margin-bottom:24px;
    }

    .story_circle{
        display:none;
    }

    .story_gen{
        left:0;
        top:15%;
        transform:none;
        font-size:28vw;
        opacity:.05;
    }
}


/**************************/

/* ==========================================
   CIBER PILLARS SHOWCASE
   Diseño premium / ciberseguridad / responsive
========================================== */

:root{
    --ciber-green: #7BFF4E;
    --ciber-green-dark: #5fe02f;
    --ciber-green-soft: rgba(123, 255, 78, 0.12);
    --ciber-green-mid: rgba(123, 255, 78, 0.22);
    --ciber-green-strong: rgba(123, 255, 78, 0.34);

    --ciber-bg-1: #050816;
    --ciber-bg-2: #081120;
    --ciber-bg-3: #0c1730;

    --ciber-text: #f8fbff;
    --ciber-text-soft: rgba(232, 239, 247, 0.82);
    --ciber-text-muted: rgba(232, 239, 247, 0.68);

    --ciber-line: rgba(108, 212, 240, 0.8);
    --ciber-line-strong: rgba(255,255,255,0.14);

    --ciber-shadow-lg: 0 24px 80px rgba(0,0,0,.34);
    --ciber-shadow-md: 0 14px 38px rgba(0,0,0,.24);
    --ciber-radius-xl: 32px;
    --ciber-radius-lg: 24px;
    --ciber-radius-md: 18px;
}

/* SECTION */

.ciber-pillars-showcase{
    position: relative;
    overflow: hidden;
    padding: 6rem 0;
   
}

.ciber-pillars-showcase::before{
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 42px 42px;
    opacity: .16;
    pointer-events: none;
}

.ciber-pillars-showcase::after{
    content: "";
    position: absolute;
    width: 520px;
    height: 520px;
    top: -120px;
    right: -120px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(123,255,78,.12) 0%, rgba(123,255,78,.04) 42%, transparent 72%);
    filter: blur(18px);
    pointer-events: none;
}

.ciber-pillars-showcase .container{
    position: relative;
    z-index: 2;
}

/* HEAD */

.ciber-pillars-showcase-head{
    max-width: 860px;
    margin-bottom: 2.75rem;
}

.ciber-pillars-showcase-kicker{
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .85rem 1.35rem;
    margin-bottom: 1.35rem;
    border-radius: 999px;
    border: 1px solid rgba(123,255,78,.24);
    background: rgba(123,255,78,.10);
    color: var(--ciber-green);
    font-size: .86rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    box-shadow:
        0 0 0 1px rgba(255,255,255,.02) inset,
        0 0 24px rgba(123,255,78,.08);
}

.ciber-pillars-showcase-kicker::before{
    content:"";
    width:10px;
    height:10px;
    border-radius:50%;
    background: var(--ciber-green);
    box-shadow: 0 0 0 6px rgba(123,255,78,.10);
    flex-shrink: 0;
}

.ciber-pillars-showcase-title{
    margin: 0;
    font-size: clamp(2.2rem, 4.2vw, 4.7rem);
    line-height: .98;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: var(--ciber-text);
    max-width: 980px;
    text-wrap: balance;
}

/* SHELL */

.ciber-pillars-showcase-shell{
    position: relative;
    border: 1px solid var(--ciber-line);
    border-radius: var(--ciber-radius-xl);
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.018) 100%);
    box-shadow:
        var(--ciber-shadow-lg),
        inset 0 1px 0 rgba(255,255,255,.03);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}

.ciber-pillars-showcase-shell::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:1px;
    background: linear-gradient(90deg, rgba(123,255,78,.55) 0%, rgba(255,255,255,.06) 45%, rgba(123,255,78,.15) 100%);
    z-index:2;
}

/* VISUAL COLUMN */

.ciber-pillars-visual-column{
    position: relative;
    height: 100%;
    min-height: 100%;
    padding: 1.25rem;
    background:
        radial-gradient(circle at 20% 20%, rgba(123,255,78,.08), transparent 32%),
        linear-gradient(180deg, rgba(8,17,32,.88) 0%, rgba(6,11,24,.96) 100%);
    border-right: 1px solid rgba(255,255,255,.06);
}

.ciber-pillars-visual-card{
    position: relative;
    height: 100%;
    min-height: 100%;
    border-radius: 26px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.08);
    background: #09111f;
    box-shadow:
        0 18px 48px rgba(0,0,0,.26),
        0 0 0 1px rgba(255,255,255,.02) inset;
}

.ciber-pillars-visual-card::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(6,10,20,.08) 0%, rgba(6,10,20,.24) 40%, rgba(6,10,20,.74) 100%),
        linear-gradient(135deg, rgba(123,255,78,.12) 0%, transparent 38%, rgba(123,255,78,.04) 100%);
    z-index:2;
    pointer-events:none;
}

.ciber-pillars-visual-card::after{
    content:"";
    position:absolute;
    width:220px;
    height:220px;
    right:-40px;
    bottom:-40px;
    border-radius:50%;
    background: radial-gradient(circle, rgba(123,255,78,.18) 0%, rgba(123,255,78,.05) 44%, transparent 72%);
    filter: blur(10px);
    z-index:2;
    pointer-events:none;
}

.ciber-pillars-visual-image,
.ciber-pillars-visual-image-single{
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.02);
    filter: saturate(1.02) contrast(1.03) brightness(.80);
}

/* LIST */

.ciber-pillars-list{
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 1.25rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,.015) 0%, rgba(255,255,255,.03) 100%);
}

/* ITEM */

.ciber-pillars-item{
    position: relative;
    padding: 1.45rem 1.5rem;
    border-radius: 22px;
    border: 1px solid transparent;
    background: transparent;
    transition:
        background .28s ease,
        border-color .28s ease,
        transform .28s ease,
        box-shadow .28s ease;
}

.ciber-pillars-item + .ciber-pillars-item{
    margin-top: .9rem;
}

.ciber-pillars-item::before{
    content:"";
    position:absolute;
    left:0;
    top:1.35rem;
    bottom:1.35rem;
    width:3px;
    border-radius:999px;
    background: linear-gradient(180deg, rgba(123,255,78,0) 0%, rgba(123,255,78,.55) 50%, rgba(123,255,78,0) 100%);
    opacity:0;
    transform: scaleY(.7);
    transition: opacity .28s ease, transform .28s ease;
}

.ciber-pillars-item:hover{
    transform: translateY(-2px);
    border-color: rgba(123,255,78,.16);
    background:
        linear-gradient(180deg, rgba(123,255,78,.05) 0%, rgba(255,255,255,.02) 100%);
    box-shadow:
        0 14px 32px rgba(0,0,0,.16),
        0 0 0 1px rgba(255,255,255,.02) inset;
}

.ciber-pillars-item:hover::before{
    opacity:1;
    transform: scaleY(1);
}

.ciber-pillars-item h3{
    margin: 0 0 .8rem;
    font-size: clamp(1.32rem, 1.6vw, 2rem);
    line-height: 1.08;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--ciber-text);
}




/* RESPONSIVE */

@media (max-width: 1199.98px){
    .ciber-pillars-showcase-title{
        max-width: 900px;
    }

    .ciber-pillars-item p{
        max-width: 100%;
    }
}

@media (max-width: 991.98px){
    .ciber-pillars-showcase{
        padding: 5rem 0;
    }

    .ciber-pillars-visual-column{
        min-height: 340px;
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.06);
    }

    .ciber-pillars-visual-card{
        min-height: 320px;
    }

    .ciber-pillars-list{
        padding: 1rem;
    }

    .ciber-pillars-item{
        padding: 1.25rem 1.2rem;
    }
}

@media (max-width: 767.98px){
    .ciber-pillars-showcase{
        padding: 4rem 0;
    }

    .ciber-pillars-showcase-head{
        margin-bottom: 2rem;
    }

    .ciber-pillars-showcase-kicker{
        padding: .78rem 1rem;
        font-size: .78rem;
        margin-bottom: 1rem;
    }

    .ciber-pillars-showcase-title{
        font-size: clamp(2rem, 8vw, 3rem);
        line-height: 1.02;
    }

    .ciber-pillars-showcase-shell{
        border-radius: 24px;
    }

    .ciber-pillars-visual-column{
        padding: .9rem;
        min-height: 260px;
    }

    .ciber-pillars-visual-card{
        border-radius: 20px;
        min-height: 240px;
    }

    .ciber-pillars-list{
        padding: .9rem;
    }

    .ciber-pillars-item{
        padding: 1rem;
        border-radius: 18px;
    }

 
}

@media (max-width: 575.98px){
    .ciber-pillars-showcase-shell{
        border-radius: 20px;
    }

    .ciber-pillars-visual-column,
    .ciber-pillars-list{
        padding: .8rem;
    }

    .ciber-pillars-item{
        padding: .95rem;
    }
}


/* ==============================
   SESSION FIRST SECTION
============================== */

.session-first-section{
    position: relative;
    overflow: hidden;
    padding: 2rem 0 0;
   
}

.session-first-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
    background-size: 42px 42px;
    opacity:.14;
    pointer-events:none;
}

.session-first-shell{
    position: relative;
    overflow: hidden;
    border-top: 1px solid rgba(255,255,255,.03);
    border-bottom: 1px solid rgba(255,255,255,.03);
}

.session-first-shell > .row{
    min-height: 860px;
}

/* ==============================
   LEFT COLUMN / VIDEO
============================== */

.session-first-media-column{
    position: relative;
    height: 100%;
    padding: 2rem;
}

.session-first-media-sticky{
    position: sticky;
    top: 90px;
    height: calc(100vh - 120px);
    display: flex;
    align-items: flex-start;
}

.session-first-video-stage{
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 680px;
    border-radius: 34px;
    overflow: hidden;
    
}

.session-first-video-stage::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:1px;
    z-index:3;
}

.session-first-video-box{
    position: absolute;
    top: 0;
    left: 0;
    width: 34%;
    height: 34%;
    min-width: 220px;
    min-height: 220px;
    border-radius: 28px;
    overflow: hidden;
    transform-origin: top left;
    will-change: width, height, border-radius, transform;
    box-shadow:
        0 18px 46px rgba(0,0,0,.28),
        0 0 0 1px rgba(255,255,255,.03) inset;
    transition: box-shadow .25s ease;
}

.session-first-video-box.is-expanded{
    box-shadow:
        0 26px 70px rgba(0,0,0,.36),
        0 0 0 1px rgba(255,255,255,.04) inset;
}

.session-first-video{
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.session-first-video-overlay{
    position:absolute;
    inset:0;
   
    z-index:1;
}

.session-first-video-grid{
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size: 26px 26px;
    opacity: .26;
    z-index: 1;
    mask-image: linear-gradient(180deg, rgba(0,0,0,.95), rgba(0,0,0,.25));
}

.session-first-video-glow{
    position:absolute;
    width: 220px;
    height: 220px;
    left: -40px;
    top: -40px;
    border-radius:50%;
    background: radial-gradient(circle, rgba(123,255,78,.18) 0%, rgba(123,255,78,.06) 45%, transparent 72%);
    filter: blur(14px);
    z-index:1;
    pointer-events:none;
}

/* ==============================
   RIGHT COLUMN
============================== */

.session-first-content-column{
    display:flex;
    align-items:center;
    height:100%;
    padding: 2.5rem 2rem;
}

.session-first-content-inner{
    width:100%;
    max-width: 760px;
    margin: 0 auto;
    padding: 1rem 0 1rem 1rem;
}

.session-first-content-inner .h2_estandar{
    max-width: 760px;
}

.session-first-content-inner > .p_estandar{
    max-width: 680px;
    color: rgba(232, 239, 247, 0.82);
}

.session-first-points{
    display:grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.session-first-point{
    position: relative;
    padding: 1.25rem 1.25rem 1.2rem 1.35rem;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,.07);
    background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.018) 100%);
    box-shadow:
        0 10px 24px rgba(0,0,0,.16),
        inset 0 1px 0 rgba(255,255,255,.02);
    transition:
        transform .28s ease,
        border-color .28s ease,
        box-shadow .28s ease,
        background .28s ease;
    overflow: hidden;
}

.session-first-point::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:4px;
    background: linear-gradient(180deg, #7BFF4E 0%, rgba(123,255,78,.18) 100%);
    opacity:.95;
}

.session-first-point:hover{
    transform: translateY(-2px);
    border-color: rgba(123,255,78,.18);
    background: linear-gradient(180deg, rgba(123,255,78,.05) 0%, rgba(255,255,255,.02) 100%);
    box-shadow:
        0 18px 38px rgba(0,0,0,.20),
        0 0 0 1px rgba(123,255,78,.05) inset;
}

.session-first-point .h3_estandar{
    margin-bottom: .65rem;
}

.session-first-point .p_estandar{
    max-width: 95%;
    color: rgba(232,239,247,.82);
}



/* ==============================
   RESPONSIVE
============================== */

@media (max-width: 1199.98px){
    .session-first-shell > .row{
        min-height: 780px;
    }

    .session-first-video-stage{
        min-height: 620px;
    }
}

@media (max-width: 991.98px){
    .session-first-shell > .row{
        min-height: auto;
    }

    .session-first-media-column{
        padding: 1.25rem 1.25rem 0;
        border-right:0;
    }

    .session-first-media-sticky{
        position: relative;
        top: auto;
        height: auto;
    }

    .session-first-video-stage{
        min-height: 440px;
    }

    .session-first-video-box{
        width: 100% !important;
        height: 100% !important;
        min-width: 0;
        min-height: 0;
        border-radius: 24px !important;
    }

    .session-first-content-column{
        padding: 2rem 1.25rem 2.5rem;
    }

    .session-first-content-inner{
        max-width:100%;
        padding:0;
    }
}

@media (max-width: 767.98px){
    .session-first-media-column{
        padding: 1rem 1rem 0;
    }

    .session-first-video-stage{
        min-height: 340px;
        border-radius: 24px;
    }

    .session-first-content-column{
        padding: 1.5rem 1rem 2rem;
    }

    .session-first-point{
        padding: 1rem 1rem 1rem 1.1rem;
        border-radius: 18px;
    }
}



.faq-clean-section{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 15% 18%, rgba(123,255,78,.06), transparent 24%),
        linear-gradient(180deg, #040814 0%, #081120 100%);
}

.faq-clean-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
    background-size:42px 42px;
    opacity:.14;
    pointer-events:none;
    z-index:0;
}

/* VIDEO REVEAL */
.faq-clean-video-reveal{
    position:absolute;
    inset:0;
    height:0%;
    overflow:hidden;
    z-index:1;
    pointer-events:none;
    will-change:height;
}

.faq-clean-video-bg{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}

.faq-clean-video-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(4,8,20,.28) 0%, rgba(4,8,20,.52) 45%, rgba(4,8,20,.78) 100%),
        radial-gradient(circle at center, rgba(123,255,78,.08), transparent 42%);
}

.faq-clean-video-grid{
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size:32px 32px;
    opacity:.24;
}

/* SHELL */
.faq-clean-shell{
    position:relative;
    z-index:2;
    border:1px solid rgba(255,255,255,.07);
    border-radius:32px;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(8,14,28,.58) 0%, rgba(6,10,22,.72) 100%);
    box-shadow:
        0 28px 90px rgba(0,0,0,.32),
        inset 0 1px 0 rgba(255,255,255,.03);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.faq-clean-shell::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:1px;
    background:linear-gradient(90deg, rgba(123,255,78,.45) 0%, rgba(255,255,255,.05) 50%, rgba(123,255,78,.12) 100%);
    z-index:2;
}

/* TOP BLOCK */
.faq-clean-top{
    position:relative;
    padding:3rem 2.5rem 1.25rem;
    border-bottom:1px solid rgba(255,255,255,.06);
    background:
        radial-gradient(circle at 18% 12%, rgba(123,255,78,.10), transparent 24%),
        linear-gradient(180deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,.01) 100%);
}




.service-tags{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
}

/* FAQ LIST */
.faq-clean-list{
    display:flex;
    flex-direction:column;
    gap:.9rem;
    padding:2rem 2.5rem 0;
}

.faq-clean-item{
    position:relative;
    border:1px solid rgba(255,255,255,.07);
    border-radius:20px;
    overflow:hidden;
    background:linear-gradient(180deg, rgba(255,255,255,.03) 0%, rgba(255,255,255,.015) 100%);
    box-shadow:
        0 12px 28px rgba(0,0,0,.14),
        inset 0 1px 0 rgba(255,255,255,.02);
    transition:
        transform .25s ease,
        border-color .25s ease,
        box-shadow .25s ease,
        background .25s ease;
}

.faq-clean-item::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:linear-gradient(180deg, #7BFF4E 0%, rgba(123,255,78,.12) 100%);
    opacity:0;
    transition:opacity .25s ease;
}

.faq-clean-item:hover,
.faq-clean-item.active{
    border-color:rgba(123,255,78,.18);
    background:linear-gradient(180deg, rgba(123,255,78,.05) 0%, rgba(255,255,255,.015) 100%);
    box-shadow:
        0 16px 36px rgba(0,0,0,.18),
        0 0 0 1px rgba(123,255,78,.04) inset;
}

.faq-clean-item:hover::before,
.faq-clean-item.active::before{
    opacity:1;
}

.faq-clean-question{
    width:100%;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:1rem;
    border:0;
    background:none;
    padding:1.2rem 1.2rem 1.2rem 1rem;
    text-align:left;
    cursor:pointer;
}

.faq-clean-number{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border-radius:50%;
    border:1px solid rgba(123,255,78,.16);
    background:rgba(123,255,78,.08);
    color:#7BFF4E;
    font-size:.78rem;
    font-weight:700;
    letter-spacing:.08em;
    box-shadow:0 0 0 1px rgba(255,255,255,.02) inset;
}

.faq-clean-question h4{
    margin:0;
    color:#f5f8fc;
    font-size:clamp(1rem, 1.08vw, 1.14rem);
    line-height:1.32;
    font-weight:650;
    letter-spacing:-.02em;
}

.faq-clean-icon{
    width:40px;
    height:40px;
    border-radius:50%;
    display:grid;
    place-items:center;
    border:1px solid rgba(123,255,78,.16);
    background:rgba(123,255,78,.08);
    color:#7BFF4E;
    transition:all .25s ease;
}

.faq-clean-icon i{
    font-size:.9rem;
    transition:transform .25s ease;
}

.faq-clean-item.active .faq-clean-icon{
    background:rgba(123,255,78,.16);
    border-color:rgba(123,255,78,.28);
    color:#ecffe4;
    box-shadow:0 0 0 6px rgba(123,255,78,.06);
}

.faq-clean-item.active .faq-clean-icon i{
    transform:rotate(45deg);
}

.faq-clean-answer{
    max-height:0;
    overflow:hidden;
    opacity:0;
    padding:0 1.2rem 0 4.7rem;
    transition:max-height .35s ease, opacity .25s ease, padding .25s ease;
}

.faq-clean-item.active .faq-clean-answer{
    max-height:220px;
    opacity:1;
    padding:0 1.2rem 1.2rem 4.7rem;
}

.faq-clean-answer .p_estandar{
    position:relative;
    color:rgba(232,239,247,.78);
    max-width:95%;
}

.faq-clean-answer .p_estandar::before{
    content:"";
    position:absolute;
    left:-16px;
    top:.45rem;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#7BFF4E;
    box-shadow:0 0 0 5px rgba(123,255,78,.06);
}

.faq-clean-footer{
    padding:1.4rem 2.5rem 3rem;
}




/* RESPONSIVE */
@media (max-width: 991.98px){
    .faq-clean-top{
        padding:2rem 1.5rem 1rem;
    }

    .faq-clean-list{
        padding:1.5rem 1.5rem 0;
    }

    .faq-clean-footer{
        padding:1.25rem 1.5rem 2rem;
    }
}

@media (max-width: 767.98px){
    .faq-clean-shell{
        border-radius:24px;
    }

    .faq-clean-top{
        padding:1.5rem 1rem 1rem;
    }

    .faq-clean-list{
        padding:1.25rem 1rem 0;
    }

    .faq-clean-item{
        border-radius:18px;
    }

    .faq-clean-question{
        gap:.8rem;
        padding:1rem;
    }

    .faq-clean-number{
        width:38px;
        height:38px;
        font-size:.72rem;
    }

    .faq-clean-question h4{
        font-size:1rem;
    }

    .faq-clean-icon{
        width:36px;
        height:36px;
    }

    .faq-clean-answer{
        padding:0 1rem 0 1rem;
    }

    .faq-clean-item.active .faq-clean-answer{
        padding:0 1rem 1rem 1rem;
    }

    .faq-clean-answer .p_estandar::before{
        display:none;
    }

    .faq-clean-footer{
        padding:1.1rem 1rem 1.6rem;
    }
}








/*DATA INTE********************************************************/

/* ============================
   STACK CARDS SECTION
============================ */

.stack-cards-section{
    position:relative;
    background:#040814;
}

.stack-cards-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
    background-size:42px 42px;
    opacity:.12;
    pointer-events:none;
    z-index:0;
}

.stack-card{
    position:sticky;
    top:0;
    min-height:100svh;
    height:100svh;
    z-index:1;
}

.stack-card-1{ z-index:1; }
.stack-card-2{ z-index:2; }
.stack-card-3{ z-index:3; }

.stack-card-inner{
    position:relative;
    min-height:100svh;
    height:100svh;
    overflow:hidden;
    background:linear-gradient(180deg, #040814 0%, #081120 100%);
    border-top:1px solid rgba(255,255,255,.04);
    border-bottom:1px solid rgba(255,255,255,.04);
}

.stack-card-inner::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 18% 20%, rgba(123,255,78,.08), transparent 25%),
        linear-gradient(135deg, rgba(123,255,78,.03) 0%, transparent 35%, rgba(123,255,78,.02) 100%);
    pointer-events:none;
    z-index:0;
}

.stack-card-2 .stack-card-inner::before{
    background:
        radial-gradient(circle at 78% 18%, rgba(123,255,78,.08), transparent 25%),
        linear-gradient(135deg, rgba(123,255,78,.03) 0%, transparent 35%, rgba(123,255,78,.02) 100%);
}

.stack-card-3 .stack-card-inner::before{
    background:
        radial-gradient(circle at 24% 80%, rgba(123,255,78,.08), transparent 25%),
        linear-gradient(135deg, rgba(123,255,78,.03) 0%, transparent 35%, rgba(123,255,78,.02) 100%);
}

.stack-card .row,
.stack-card .col-lg-6{
    position:relative;
    z-index:2;
}

/* COPY COLUMN */

.stack-card-copy-col{
    height:100%;
    display:flex;
    align-items:center;
    padding:4.5rem 4.5rem 4rem;
}

.stack-card-content{
    max-width:720px;
}

.stack-card-content .h2_estandar{
    max-width:760px;
}

.stack-card-content > .p_estandar{
    max-width:620px;
}

/* MEDIA COLUMN */

.stack-card-media{
    position:relative;
    width:100%;
    height:100%;
    min-height:100%;
    overflow:hidden;
}

.stack-card-media-cover{
    border:0;
    border-radius:0;
    box-shadow:none;
    background:#081120;
}

.stack-card-media video,
.stack-card-media img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.stack-card-media-overlay{
    position:absolute;
    inset:0;
    background:
        linear-gradient(180deg, rgba(4,8,20,.18) 0%, rgba(4,8,20,.42) 50%, rgba(4,8,20,.74) 100%),
        linear-gradient(135deg, rgba(123,255,78,.10) 0%, transparent 34%, rgba(123,255,78,.04) 100%);
    z-index:1;
}

.stack-card-media-grid{
    position:absolute;
    inset:0;
    background:
        linear-gradient(rgba(255,255,255,.015) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size:30px 30px;
    opacity:.18;
    z-index:1;
}

/* TAGS */

.service-tags{
    display:flex;
    flex-wrap:wrap;
    gap:.75rem;
}



/* CTA */


/* RESPONSIVE */

@media (max-width: 991.98px){
    .stack-card,
    .stack-card-inner{
        position:relative;
        min-height:auto;
        height:auto;
    }

    .stack-card-inner{
        padding:0;
    }

    .stack-card-copy-col{
        padding:3rem 1.5rem;
    }

    .stack-card-media{
        min-height:420px;
        height:420px;
    }
}

@media (max-width: 767.98px){
    .stack-card-copy-col{
        padding:2.5rem 1rem;
    }

    .stack-card-media{
        min-height:300px;
        height:300px;
    }

    .service-tags{
        gap:.6rem;
    }

    .service-tags span{
        width:100%;
        justify-content:flex-start;
        padding:.82rem .95rem;
    }
    .service-tags a{
        width:100%;
        justify-content:flex-start;
        padding:.82rem .95rem;
    }
}






/*SECCION REUTILIZABLE ICONOS DATA BUSS*/
.gs-showcase-section {
    padding: 100px 0;
    position: relative;
}

.gs-container {
    width: min(1200px, calc(100% - 24px));
    margin: 0 auto;
}

.gs-showcase-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 60px;
    align-items: center;
}

/* TEXTO */
.gs-title {
    color: #fff;
    font-size: clamp(2rem, 4vw, 2.8rem);
    line-height: 1.05;
}

.gs-description {
    color: rgba(255, 255, 255, 0.72);
}

/* PILARES */
.gs-pillars {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 28px;
    flex-wrap: nowrap;
    min-width: 0;
}

.gs-pillar {
    width: 90px;
    flex: 0 0 90px;
    min-width: 0;
}

/* ROTACIÓN */
.gs-pillar-track {
    height: 320px;
    border-radius: 999px;
    padding: 10px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    position: relative;
    overflow: hidden;

    transform: rotate(12deg);
    transform-origin: bottom center;

    box-shadow:
        0 16px 40px rgba(0, 0, 0, 0.24),
        inset 0 0 0 1px rgba(255, 255, 255, 0.14);
        cursor: pointer;
}



/* COLORES basados en marca */
.gs-pillar:nth-child(1) .gs-pillar-track {
    background: linear-gradient(180deg, #6CD4F0 0%, #6CD4F0 10%);
}

.gs-pillar:nth-child(1) .gs-pillar-track:hover {
    background: #aee562;
}

.gs-pillar:nth-child(2) .gs-pillar-track {
    background: linear-gradient(180deg, #67bed3 0%, #67bed3 100%);
}

.gs-pillar:nth-child(2) .gs-pillar-track:hover {
    background: #aee562;
}
.gs-pillar:nth-child(3) .gs-pillar-track {
    background: linear-gradient(180deg, #5aa2b5 0%, #5aa2b5 100%);
}
.gs-pillar:nth-child(3) .gs-pillar-track:hover {
    background: #aee562;
}
.gs-pillar:nth-child(4) .gs-pillar-track {
    background: linear-gradient(180deg, #428191 0%, #428191 100%);
}
.gs-pillar:nth-child(4) .gs-pillar-track:hover {
    background: #aee562;
}
/* STACK */
.gs-service-stack {
    position: absolute;
    inset: 10px;
    bottom: 70px;
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    gap: 10px;
    z-index: 2;
}

/* CÍRCULOS */
.gs-service-bubble {
    width: 55px;
    height: 55px;
    border-radius: 50%;
    background: #101D23;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;

    opacity: 0;
    transform: translateY(10px) scale(0.96);
    transition: opacity 0.3s ease, transform 0.3s ease, background 0.3s ease;
    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.26),
        inset 0 0 0 1px rgba(255, 255, 255, 0.08);
}

.gs-service-bubble.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.gs-service-bubble i {
    font-size: 1rem;
}

/* FLECHA */
.gs-pillar-arrow {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: #101D23;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.10);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
    z-index: 3;
    position: relative;
}

.gs-pillar-arrow:hover {
    transform: translateY(-2px) scale(1.03);
    background: #162932;
    border-color: rgba(255, 255, 255, 0.18);
}

.gs-pillar-arrow i {
    font-size: 1.15rem;
}

/* TEXTO ABAJO */
.gs-pillar-footer {
    text-align: center;
    color: #fff;
    margin-top: 12px;
    font-size: 0.95rem;
    line-height: 1.2;
}

.gs-pillar-footer span {
    display: inline-block;
    max-width: 100%;
}

/* LOGOS */
.gs-logos {
    margin-top: 90px;
    overflow: hidden;
    position: relative;
}

.gs-logos::before,
.gs-logos::after {
    content: "";
    position: absolute;
    top: 0;
    width: 96px;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}

.gs-logos::before {
    left: 0;
    background: linear-gradient(to right, rgba(16, 29, 35, 0.95), rgba(16, 29, 35, 0));
}

.gs-logos::after {
    right: 0;
    background: linear-gradient(to left, rgba(16, 29, 35, 0.95), rgba(16, 29, 35, 0));
}

.gs-logos-title {
    text-align: center;
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: 25px;
    font-size: 0.95rem;
}

.gs-logos-track {
    display: flex;
    width: max-content;
    animation: scrollLogos 14s linear infinite;
}

.gs-logos-slide {
    display: flex;
    align-items: center;
    gap: 72px;
    padding-right: 72px;
}

.gs-logos-slide img {
    height: 52px;
    width: auto;
    transition: opacity 0.3s ease, filter 0.3s ease, transform 0.3s ease;
    flex-shrink: 0;
}

.gs-logos-slide img:hover {
    opacity: 1;
    filter: grayscale(0%);
    transform: scale(1.08);
}

@keyframes scrollLogos {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(-50%);
    }
}

.gs-logos:hover .gs-logos-track {
    animation-play-state: paused;
}

/* =========================
   XL / LARGE TABLET
   ========================= */
@media (max-width: 1199.98px) {
    .gs-showcase-section {
        padding: 90px 0;
    }

    .gs-showcase-grid {
        gap: 40px;
    }

    .gs-pillars {
        gap: 22px;
    }

    .gs-pillar {
        width: 82px;
        flex: 0 0 82px;
    }

    .gs-pillar-track {
        height: 290px;
    }

    .gs-service-bubble {
        width: 50px;
        height: 50px;
    }

    .gs-pillar-arrow {
        width: 54px;
        height: 54px;
    }

    .gs-logos-slide {
        gap: 56px;
        padding-right: 56px;
    }

    .gs-logos-slide img {
        height: 46px;
    }
}

/* =========================
   TABLET
   ========================= */
@media (max-width: 991.98px) {
    .gs-showcase-section {
        padding: 80px 0;
    }

    .gs-container {
        width: min(100% - 24px, 1200px);
    }

    .gs-showcase-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .gs-showcase-grid > * {
        min-width: 0;
    }

    .gs-pillars {
        justify-content: center;
        gap: 20px;
        padding-top: 10px;
    }

    .gs-pillar {
        width: 78px;
        flex: 0 0 78px;
    }

    .gs-pillar-track {
        height: 260px;
        padding: 8px;
        transform: rotate(8deg);
    }

    .gs-service-stack {
        inset: 8px;
        bottom: 60px;
        gap: 8px;
    }

    .gs-service-bubble {
        width: 46px;
        height: 46px;
    }

    .gs-service-bubble i {
        font-size: 0.92rem;
    }

    .gs-pillar-arrow {
        width: 50px;
        height: 50px;
    }

    .gs-pillar-arrow i {
        font-size: 1rem;
    }

    .gs-pillar-footer {
        font-size: 0.88rem;
        margin-top: 10px;
    }

    .gs-logos {
        margin-top: 70px;
    }

    .gs-logos::before,
    .gs-logos::after {
        width: 72px;
    }

    .gs-logos-slide {
        gap: 44px;
        padding-right: 44px;
    }

    .gs-logos-slide img {
        height: 40px;
    }
}

/* =========================
   MOBILE
   ========================= */
@media (max-width: 767.98px) {
    .gs-showcase-section {
        padding: 70px 0;
    }

    .gs-container {
        width: min(100% - 20px, 1200px);
    }

    .gs-showcase-grid {
        gap: 34px;
    }

    .gs-pillars {
        gap: 14px;
        flex-wrap: nowrap;
        overflow-x: auto;
        justify-content: flex-start;
        padding-bottom: 8px;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .gs-pillars::-webkit-scrollbar {
        height: 6px;
    }

    .gs-pillars::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.12);
        border-radius: 999px;
    }

    .gs-pillar {
        width: 72px;
        flex: 0 0 72px;
        scroll-snap-align: start;
    }

    .gs-pillar-track {
        height: 220px;
        padding: 7px;
        transform: rotate(6deg);
    }

    .gs-service-stack {
        inset: 7px;
        bottom: 52px;
        gap: 7px;
    }

    .gs-service-bubble {
        width: 40px;
        height: 40px;
    }

    .gs-service-bubble i {
        font-size: 0.84rem;
    }

    .gs-pillar-arrow {
        width: 44px;
        height: 44px;
    }

    .gs-pillar-arrow i {
        font-size: 0.92rem;
    }

    .gs-pillar-footer {
        font-size: 0.82rem;
        margin-top: 8px;
    }

    .gs-logos {
        margin-top: 56px;
    }

    .gs-logos::before,
    .gs-logos::after {
        width: 48px;
    }

    .gs-logos-track {
        animation-duration: 12s;
    }

    .gs-logos-slide {
        gap: 32px;
        padding-right: 32px;
    }

    .gs-logos-slide img {
        height: 32px;
    }
}

/* =========================
   SMALL MOBILE
   ========================= */
@media (max-width: 575.98px) {
    .gs-showcase-section {
        padding: 60px 0;
    }

    .gs-pillars {
        gap: 12px;
    }

    .gs-pillar {
        width: 66px;
        flex: 0 0 66px;
    }

    .gs-pillar-track {
        height: 200px;
        transform: rotate(5deg);
    }

    .gs-service-stack {
        bottom: 48px;
    }

    .gs-service-bubble {
        width: 36px;
        height: 36px;
    }

    .gs-service-bubble i {
        font-size: 0.78rem;
    }

    .gs-pillar-arrow {
        width: 40px;
        height: 40px;
    }

    .gs-pillar-footer {
        font-size: 0.76rem;
    }

    .gs-logos-slide {
        gap: 24px;
        padding-right: 24px;
    }

    .gs-logos-slide img {
        height: 28px;
    }
}














/* GLOBAL */


.gs-stack-section {
    position: relative;
    overflow: clip;
}

.gs-stack-wrap {
    position: relative;
    height: 400vh;
}

.gs-stack-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.gs-stack-cards {
    position: relative;
    width: 100%;
    height: 100%;
}

/* TARJETAS */
.gs-stack-card {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14%) translateX(6%);
    transition:
        opacity 0.65s ease,
        transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0.65s ease;
    z-index: 1;
    pointer-events: none;
}

.gs-stack-card.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) translateX(0);
    z-index: 3;
    pointer-events: auto;
}

.gs-stack-card.is-prev {
    opacity: 0;
    visibility: visible;
    transform: translateY(-10%) translateX(-6%);
    z-index: 2;
    pointer-events: none;
}

/* COLUMNA DE TEXTO */
.gs-stack-content-col {
    display: flex;
    align-items: center;
    min-height: 100vh;
    position: relative;
    z-index: 2;
}

.gs-stack-content {
    max-width: 640px;
    padding: 3rem 3rem 3rem 0;
}

.gs-stack-kicker {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 16px;
    margin-bottom: 22px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.03);
    color: rgba(255, 255, 255, 0.88);
    font-size: 0.92rem;
    letter-spacing: 0.2px;
}

.gs-stack-title {
    margin: 0 0 18px;
    color: #ffffff;
    font-size: clamp(2.2rem, 4vw, 4.4rem);
    line-height: 1.02;
    font-weight: 700;
    letter-spacing: -0.03em;
}

.gs-stack-text {
    margin: 0;
    color: rgba(255, 255, 255, 0.72);
    font-size: 1.08rem;
    line-height: 1.8;
    max-width: 560px;
}

.gs-stack-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.gs-stack-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.10);
    color: rgba(255, 255, 255, 0.82);
    font-size: 0.92rem;
}

/* COLUMNA DE VIDEO FULL */
.gs-stack-media-col {
    position: relative;
    height: 100vh;
    min-height: 100vh;
    padding: 0 !important;
    overflow: hidden;
}

.gs-stack-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Overlay para mejorar lectura del texto */
.gs-stack-media-col::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to left,
        rgba(5, 5, 5, 0),
        rgba(5, 5, 5, 0.34)
    );
    pointer-events: none;
    z-index: 1;
}

/* OPCIONAL: animación suave del video */
.gs-stack-video {
    animation: gsStackVideoZoom 12s ease-in-out infinite alternate;
}

.gs-stack-media,
.gs-stack-media-image {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 320px;
    overflow: hidden;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
}

.gs-stack-media video,
.gs-stack-img {
    width: 100%;
    height: 100%;
    min-height: 320px;
    object-fit: cover;
    display: block;
}

/* opcional: si quieres que mantenga presencia visual en desktop */
@media (min-width: 992px) {
    .gs-stack-media,
    .gs-stack-media-image,
    .gs-stack-media video,
    .gs-stack-img {
        min-height: 520px;
    }
}

/* tablet */
@media (max-width: 991.98px) {
    .gs-stack-media,
    .gs-stack-media-image,
    .gs-stack-media video,
    .gs-stack-img {
        min-height: 380px;
    }
}

/* mobile */
@media (max-width: 767.98px) {
    .gs-stack-media,
    .gs-stack-media-image,
    .gs-stack-media video,
    .gs-stack-img {
        min-height: 260px;
    }
}
@keyframes gsStackVideoZoom {
    from {
        transform: scale(1);
    }
    to {
        transform: scale(1.06);
    }
}

/* AJUSTES DE FILA */
.gs-stack-card .row {
    min-height: 100vh;
}

/* RESPONSIVE */
@media (max-width: 1199.98px) {
    .gs-stack-content {
        padding: 3rem 2rem 3rem 0;
    }

    .gs-stack-title {
        font-size: clamp(2rem, 4vw, 3.6rem);
    }
}

@media (max-width: 991.98px) {
    .gs-stack-wrap {
        height: auto;
    }

    .gs-stack-sticky {
        position: relative;
        height: auto;
        overflow: visible;
    }

    .gs-stack-cards {
        display: grid;
        gap: 0;
    }

    .gs-stack-card,
    .gs-stack-card.is-active,
    .gs-stack-card.is-prev {
        position: relative;
        inset: auto;
        opacity: 1;
        visibility: visible;
        transform: none;
        z-index: auto;
        pointer-events: auto;
    }

    .gs-stack-card + .gs-stack-card {
        margin-top: 0;
    }

    .gs-stack-content-col {
        min-height: auto;
        order: 2;
    }

    .gs-stack-content {
        max-width: 100%;
        padding: 2.5rem 1rem 2rem;
        text-align: center;
    }

    .gs-stack-text {
        max-width: 100%;
    }

    .gs-stack-tags {
        justify-content: center;
    }

    .gs-stack-media-col {
        order: 1;
        height: 60vh;
        min-height: 60vh;
    }

    .gs-stack-video {
        position: absolute;
        inset: 0;
        height: 100%;
    }

    .gs-stack-media-col::after {
        background: linear-gradient(
            to top,
            rgba(5, 5, 5, 0.18),
            rgba(5, 5, 5, 0.05)
        );
    }
}

@media (max-width: 767.98px) {
    .gs-stack-content {
        padding: 2rem 1rem 1.75rem;
    }

    .gs-stack-kicker {
        font-size: 0.85rem;
        padding: 8px 14px;
        margin-bottom: 18px;
    }

    .gs-stack-title {
        font-size: clamp(1.9rem, 8vw, 2.8rem);
        line-height: 1.05;
    }

    .gs-stack-text {
        font-size: 1rem;
        line-height: 1.7;
    }

    .gs-stack-tags {
        gap: 10px;
        margin-top: 22px;
    }

    .gs-stack-tags span {
        min-height: 38px;
        padding: 8px 14px;
        font-size: 0.85rem;
    }

    .gs-stack-media-col {
        height: 52vh;
        min-height: 52vh;
    }
}

@media (max-width: 575.98px) {
    .gs-stack-title {
        font-size: clamp(1.75rem, 9vw, 2.4rem);
    }

    .gs-stack-text {
        font-size: 0.96rem;
    }

    .gs-stack-media-col {
        height: 46vh;
        min-height: 46vh;
    }

    .gs-stack-video {
        animation: none;
    }
}



.gs-usecase-card {
    height: 100%;
    padding: 28px;
    border-radius: 16px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.08);
    transition: 0.3s;
}

.gs-usecase-card:hover {
    transform: translateY(-4px);
    border-color: rgba(255,255,255,0.18);
}




/* DESARROLLO WEB */


body.webdev-page {
    position: relative;
    min-height: 100vh;
    isolation: isolate;
    background:
        radial-gradient(34% 42% at 3% 20%, rgba(91, 140, 255, 0.30), transparent 72%),
        radial-gradient(34% 42% at 97% 18%, rgba(255, 78, 205, 0.24), transparent 72%),
        radial-gradient(24% 36% at 14% 78%, rgba(0, 0, 0, 0.46), transparent 76%),
        radial-gradient(24% 36% at 88% 76%, rgba(0, 0, 0, 0.46), transparent 76%),
        linear-gradient(180deg, #010203 0%, #050710 24%, #0b1222 48%, #0b0915 74%, #010203 100%);
    background-attachment: fixed;
    overflow-x: hidden;
}

/* glow general */
body.webdev-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(22% 54% at 0% 42%, rgba(91, 140, 255, 0.30), transparent 74%),
        radial-gradient(22% 54% at 100% 38%, rgba(255, 78, 205, 0.26), transparent 74%),
        radial-gradient(16% 26% at 78% 14%, rgba(255, 255, 255, 0.07), transparent 82%),
        linear-gradient(
            90deg,
            rgba(0, 0, 0, 0.34) 0%,
            rgba(0, 0, 0, 0.08) 20%,
            rgba(0, 0, 0, 0) 38%,
            rgba(0, 0, 0, 0) 62%,
            rgba(0, 0, 0, 0.08) 80%,
            rgba(0, 0, 0, 0.34) 100%
        );
    filter: blur(22px);
    opacity: 0.92;
    mix-blend-mode: screen;
}

/* grain suave global */
body.webdev-page::after {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background-image:
        radial-gradient(rgba(255, 255, 255, 0.18) 0.55px, transparent 0.82px),
        radial-gradient(rgba(91, 140, 255, 0.14) 0.45px, transparent 0.74px),
        radial-gradient(rgba(255, 78, 205, 0.10) 0.45px, transparent 0.74px);
    background-size:
        3px 3px,
        5px 5px,
        6px 6px;
    background-position:
        0 0,
        1px 2px,
        2px 1px;
    opacity: 0.10;
    mix-blend-mode: soft-light;
    -webkit-mask-image: linear-gradient(
        90deg,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 0.96) 18%,
        rgba(0, 0, 0, 0.22) 34%,
        transparent 42%,
        transparent 58%,
        rgba(0, 0, 0, 0.22) 66%,
        rgba(0, 0, 0, 0.96) 82%,
        rgba(0, 0, 0, 1) 100%
    );
    mask-image: linear-gradient(
        90deg,
        rgba(0, 0, 0, 1) 0%,
        rgba(0, 0, 0, 0.96) 18%,
        rgba(0, 0, 0, 0.22) 34%,
        transparent 42%,
        transparent 58%,
        rgba(0, 0, 0, 0.22) 66%,
        rgba(0, 0, 0, 0.96) 82%,
        rgba(0, 0, 0, 1) 100%
    );
}

/* profundidad de contenido */
.webdev-page .container,
.webdev-page .container-fluid {
    position: relative;
    z-index: 1;
}

/* responsive */
@media (max-width: 991.98px) {
    body.webdev-page {
        background:
            radial-gradient(38% 42% at 2% 18%, rgba(91, 140, 255, 0.26), transparent 72%),
            radial-gradient(38% 42% at 98% 16%, rgba(255, 78, 205, 0.22), transparent 72%),
            radial-gradient(26% 32% at 12% 82%, rgba(0, 0, 0, 0.38), transparent 76%),
            radial-gradient(26% 32% at 88% 80%, rgba(0, 0, 0, 0.38), transparent 76%),
            linear-gradient(180deg, #010203 0%, #05080f 26%, #0b1322 50%, #0b0914 76%, #010203 100%);
        background-attachment: scroll;
    }

    body.webdev-page::before {
        filter: blur(18px);
        opacity: 0.86;
    }
}

@media (max-width: 575.98px) {
    body.webdev-page::after {
        opacity: 0.08;
    }
}




.gs-video-expand-section {
    position: relative;
}

.gs-video-expand-intro {
    max-width: 760px;
    padding-bottom: 40px;
}

.gs-video-expand-wrap {
    position: relative;
    height: 260vh;
}

.gs-video-expand-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.gs-video-expand-stage {
    position: relative;
    width: 100%;
    height: 100%;
}

.gs-video-expand-box {
    position: absolute;
    top: 40px;
    left: 40px;
    width: min(420px, 42vw);
    aspect-ratio: 16 / 10;
    border-radius: 24px;
    overflow: hidden;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.35),
        0 0 0 1px rgba(255, 255, 255, 0.08);
    transform-origin: top left;
    will-change: transform, width, height, border-radius, top, left;
}

.gs-video-expand-media {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 991.98px) {
    .gs-video-expand-wrap {
        height: 220vh;
    }

    .gs-video-expand-box {
        top: 20px;
        left: 20px;
        width: min(320px, 70vw);
        border-radius: 18px;
    }
}

@media (max-width: 575.98px) {
    .gs-video-expand-wrap {
        height: 200vh;
    }

    .gs-video-expand-box {
        top: 16px;
        left: 16px;
        width: min(260px, 78vw);
        border-radius: 16px;
    }
}


.web-build-section {
    position: relative;
    padding: 0;
   
    overflow: hidden;
}

.web-build-container {
    width: min(100%, 1440px);
    margin: 0 auto;
    border-left: 1px solid rgba(255,255,255,0.08);
    border-right: 1px solid rgba(255,255,255,0.08);
}

/* TOP */
.web-build-top {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid rgba(255,255,255,0.08);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.web-build-mini-card {
    display: flex;
    gap: 1.25rem;
    padding: 2rem 2rem;
    border-right: 1px solid rgba(255,255,255,0.08);
    min-height: 160px;
    background: rgba(255,255,255,0.01);
}

.web-build-mini-card:last-child {
    border-right: none;
}

.web-build-mini-icon {
    width: 54px;
    min-width: 54px;
    height: 54px;
    display: grid;
    place-items: center;
    border: 1px solid #6CD4F0;
    background: rgba(255,255,255,0.02);
    color: #6CD4F0;
    font-size: 1rem;
}

/* MAIN */
.web-build-showcase {
    display: grid;
    grid-template-columns: 0.95fr 1.55fr;
    min-height: 760px;
}

.web-build-left {
    padding: 5rem 2.2rem 4rem 2.2rem;
    border-right: 1px solid rgba(255,255,255,0.08);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.web-build-left .h2_estandar {
    max-width: 620px;
    margin-bottom: 1.75rem;
}

.web-build-lead {
    margin-bottom: 1.25rem;
    max-width: 590px;
}

.web-build-left .p_estandar:last-of-type {
    max-width: 560px;
}

.web-build-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 2rem;
}

.web-build-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.7rem 1rem;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.03);
    color: #f3f7fb;
    font-size: 13px;
    font-weight: 600;
    border-radius: 999px;
}

.web-build-actions {
    margin-top: 2rem;
}

/* RIGHT */
.web-build-right {
    position: relative;
    display: flex;
    padding: 2rem;
}

.web-build-video-frame {
    position: relative;
    width: 100%;
    max-width: 920px;
    min-height: 560px;
    background: #05080b;
    border: 1px solid rgba(255,255,255,0.1);
    box-shadow:
        0 20px 80px rgba(0,0,0,0.45),
        0 0 0 1px rgba(255,255,255,0.03) inset;
    overflow: hidden;
}

.web-build-window-bar {
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.015);
}

.web-build-dots {
    display: flex;
    gap: 0.45rem;
}

.web-build-dots span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.16);
    display: block;
}

.web-build-window-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(232, 239, 247, 0.5);
}

.web-build-video-wrap {
    position: relative;
    height: calc(100% - 54px);
    min-height: 505px;
    overflow: hidden;
}

.web-build-video-wrap video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.web-build-video-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.18) 100%);
    pointer-events: none;
}

.web-build-video-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 36px 36px;
    opacity: 0.12;
    pointer-events: none;
}

.web-build-side-panel {
    position: absolute;
    top: 88px;
    right: 18px;
    width: 220px;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,0.1);
    background: rgba(4, 8, 12, 0.74);
    backdrop-filter: blur(10px);
    z-index: 2;
}

.web-build-side-item + .web-build-side-item {
    margin-top: 0.95rem;
    padding-top: 0.95rem;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.web-build-side-label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: rgba(232, 239, 247, 0.45);
    margin-bottom: 0.4rem;
}

.web-build-side-value {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #f5f8fc;
}

/* RESPONSIVE */
@media (max-width: 1200px) {
    .web-build-showcase {
        grid-template-columns: 1fr;
    }

    .web-build-left {
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .web-build-right {
        padding: 1.5rem;
    }
}

@media (max-width: 992px) {
    .web-build-top {
        grid-template-columns: 1fr;
    }

    .web-build-mini-card {
        border-right: none;
        border-bottom: 1px solid rgba(255,255,255,0.08);
    }

    .web-build-mini-card:last-child {
        border-bottom: none;
    }

    .web-build-left {
        padding: 3rem 1.2rem;
    }

    .web-build-right {
        padding: 1rem;
    }

    .web-build-side-panel {
        position: static;
        width: 100%;
        border-left: none;
        border-right: none;
        border-bottom: none;
        background: rgba(255,255,255,0.02);
        backdrop-filter: none;
    }

    .web-build-video-frame {
        min-height: auto;
    }

    .web-build-video-wrap {
        min-height: 360px;
    }
}

@media (max-width: 768px) {
    .web-build-mini-copy .h3_estandar {
        font-size: 18px;
    }

    .web-build-left .h2_estandar {
        font-size: 36px;
    }

    .web-build-video-wrap {
        min-height: 280px;
    }

    .web-build-tags span {
        font-size: 12px;
    }
}



.app-ops-section {
    position: relative;
    background:
        radial-gradient(circle at top center, rgba(123, 255, 78, 0.08), transparent 28%),
        linear-gradient(180deg, #020406 0%, #010203 100%);
    overflow: hidden;
}

/* TOP */
.app-ops-top-grid {
    border: 1px solid rgba(123, 255, 78, 0.16);
}

.app-ops-top-card {
    height: 100%;
    min-height: 230px;
    padding: 2rem;
    background: rgba(255, 255, 255, 0.01);
    border-right: 1px solid rgba(123, 255, 78, 0.12);
    transition: background 0.3s ease, transform 0.3s ease;
}

.app-ops-top-card:hover {
    background: rgba(123, 255, 78, 0.03);
    transform: translateY(-4px);
}

.app-ops-top-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 1.5rem;
    border: 1px solid rgba(123, 255, 78, 0.25);
    background: rgba(123, 255, 78, 0.03);
    color: #7BFF4E;
    font-size: 1rem;
}

.app-ops-top-card .h3_estandar {
    font-size: 30px;
    margin-bottom: 1rem;
}

.app-ops-top-card .p_estandar {
    max-width: 320px;
}

/* VISUAL */
.app-ops-visual-frame {
    background: #06090c;
    border: 1px solid rgba(123, 255, 78, 0.16);
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.45);
}

.app-ops-window-bar {
    height: 58px;
    padding: 0 1rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.02);
}

.app-ops-window-dots {
    gap: 0.45rem;
}

.app-ops-window-dots span {
    width: 10px;
    height: 10px;
    display: block;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
}

.app-ops-window-title {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(232, 239, 247, 0.45);
}

.app-ops-visual-body {
    position: relative;
    min-height: 620px;
    overflow: hidden;
}

.app-ops-visual-body video {
    width: 100%;
    height: 100%;
    min-height: 620px;
    object-fit: cover;
    display: block;
}

.app-ops-video-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.28) 100%);
    pointer-events: none;
}

.app-ops-video-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(123, 255, 78, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(123, 255, 78, 0.06) 1px, transparent 1px);
    background-size: 34px 34px;
    opacity: 0.18;
    pointer-events: none;
}

.app-ops-floating-card {
    position: absolute;
    z-index: 2;
    min-width: 220px;
    padding: 0.9rem 1rem;
    border: 1px solid rgba(123, 255, 78, 0.22);
    background: rgba(3, 8, 5, 0.76);
    backdrop-filter: blur(8px);
}

.app-ops-floating-card--top {
    top: 24px;
    right: 24px;
}

.app-ops-floating-card--bottom {
    left: 24px;
    bottom: 24px;
}

.app-ops-floating-label {
    display: block;
    margin-bottom: 0.4rem;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(232, 239, 247, 0.54);
}

.app-ops-floating-value {
    display: block;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 700;
    color: #f8fbff;
}

/* COPY */
.app-ops-copy-col .h2_estandar {
    max-width: 540px;
}

.app-ops-copy-col > .p_estandar {
    max-width: 520px;
}

.app-ops-feature-list {
    border-top: 1px solid rgba(123, 255, 78, 0.14);
}

.app-ops-feature-item {
    display: grid;
    grid-template-columns: 52px 1fr;
    gap: 1rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(123, 255, 78, 0.14);
}

.app-ops-feature-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(123, 255, 78, 0.22);
    background: rgba(123, 255, 78, 0.03);
    color: #7BFF4E;
    font-size: 1rem;
}

.app-ops-feature-copy .h3_estandar {
    font-size: 22px;
    margin-bottom: 0.65rem;
}

/* RESPONSIVE */
@media (max-width: 991.98px) {
    .app-ops-top-card {
        border-right: none;
        border-bottom: 1px solid rgba(123, 255, 78, 0.12);
    }

    .app-ops-top-card-last {
        border-bottom: none;
    }

    .app-ops-visual-body,
    .app-ops-visual-body video {
        min-height: 420px;
    }

    .app-ops-copy-col .h2_estandar {
        max-width: 100%;
    }

    .app-ops-copy-col > .p_estandar {
        max-width: 100%;
    }
}

@media (max-width: 767.98px) {
    .app-ops-top-card {
        padding: 1.5rem;
        min-height: auto;
    }

    .app-ops-top-card .h3_estandar {
        font-size: 24px;
    }

    .app-ops-visual-body,
    .app-ops-visual-body video {
        min-height: 280px;
    }

    .app-ops-feature-item {
        grid-template-columns: 1fr;
    }

    .app-ops-feature-icon {
        margin-bottom: 0.5rem;
    }
}





/*ADMIN SOPORTE DE APP*/

.web-build-video-wrap {
    position: relative;
    overflow: hidden;
}

.operations-video {
    transform: scale(1.02);
    transition: transform 0.6s ease;
}

.web-build-video-frame:hover .operations-video {
    transform: scale(1.06);
}

.app-flow-section {
    position: relative;

}

.app-flow-card {
    position: relative;
    padding: 2rem 1.5rem;
    border: 1px solid #6CD4F0;
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.app-flow-card:hover {
    transform: translateY(-4px);
    border-color: rgba(123, 255, 78, 0.26);
    background: rgba(123, 255, 78, 0.03);
}

.app-flow-number {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: rgba(232, 239, 247, 0.38);
    margin-bottom: 1rem;
}

.app-flow-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin-bottom: 1.25rem;
    border: 1px solid #6CD4F0;
    background: rgba(123, 255, 78, 0.04);
    color: #6CD4F0;
    font-size: 1rem;
}

.app-flow-card .h3_estandar {
    font-size: 24px;
    margin-bottom: .85rem;
}

.app-flow-card .p_estandar {
    color: rgba(232, 239, 247, 0.78);
}



.ops-stack-card {
    padding: 3rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.ops-stack-media img {
    width: 100%;
    border-radius: 14px;
    object-fit: cover;
}



.ops-proof-card {
    padding: 2rem;
    border: 1px solid #6CD4F0;
    background: rgba(255,255,255,0.02);
    transition: all .25s ease;
}

.ops-proof-card:hover {
    transform: translateY(-4px);
    border-color: rgba(123,255,78,0.3);
    background: rgba(123,255,78,0.04);
}

.ops-proof-icon {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    margin-bottom: 1rem;
    border: 1px solid #6CD4F0;
    background: rgba(123,255,78,0.06);
    color: #6CD4F0;
}




/*bases de datos*/

.db-problem-card {
    padding: 2rem;
    border: 1px solid #6CD4F0;
    background: rgba(255, 255, 255, 0.02);
    transition: all .25s ease;
    height: 100%;
}

.db-problem-card:hover {
    transform: translateY(-4px);
    border-color: rgba(123, 255, 78, 0.22);
    background: rgba(123, 255, 78, 0.03);
}

.db-problem-icon {
    width: 52px;
    height: 52px;
    display: grid;
    place-items: center;
    margin-bottom: 1rem;
    border: 1px solid rgba(255, 80, 80, 0.25);
    background: rgba(255, 80, 80, 0.06);
    color: #ff5a5a;
}
.db-ops-timeline-section {
    position: relative;
   
    overflow: hidden;
}

.db-ops-timeline-section .h2_estandar span {
    color: var(--tg-accent, #7BFF4E);
}

/* LEFT TIMELINE */
.db-ops-timeline {
    position: relative;
    padding-left: 5.5rem;
}

.db-ops-progress-line {
    position: absolute;
    top: 0;
    left: 2rem;
    width: 2px;
    height: 100%;
    background: rgba(255,255,255,0.10);
    overflow: hidden;
}

.db-ops-progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 0%;
    background: linear-gradient(180deg, #7BFF4E 0%, #4FC3F7 100%);
    box-shadow: 0 0 20px rgba(123, 255, 78, 0.35);
    transition: height 0.25s ease;
}

.db-ops-step {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 1.25rem;
    min-height: 260px;
    padding: 1rem 0 3rem;
    opacity: 0.4;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.db-ops-step.is-active {
    opacity: 1;
}

.db-ops-step::before {
    content: "";
    position: absolute;
    left: -3.55rem;
    top: 1.1rem;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #0D1620;
    border: 2px solid rgba(255,255,255,0.25);
    box-shadow: 0 0 0 0 rgba(123,255,78,0);
    transition: all 0.3s ease;
}

.db-ops-step.is-active::before {
    background: #7BFF4E;
    border-color: #7BFF4E;
    box-shadow: 0 0 18px rgba(123,255,78,0.45);
}

.db-ops-step-index {
    font-size: 1.9rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: #f5f8fc;
    padding-top: 0.15rem;
}

.db-ops-step-content .h3_estandar {
    font-size: 2rem;
    margin-bottom: 0.35rem;
}

.db-ops-step-subtitle {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.3;
    font-weight: 500;
    color: rgba(232, 239, 247, 0.62);
}

/* RIGHT VISUAL */
.db-ops-visual-sticky {
    position: sticky;
    top: 90px;
}

.db-ops-visual-frame {
    position: relative;
    border-radius: 28px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,0.08);
    background: #081018;
    height: 620px;
    min-height: 620px;
    box-shadow: 0 24px 80px rgba(0,0,0,0.35);
}

.db-ops-main-image {
    width: 100%;
    height: calc(100% + 140px); /* más alto para permitir desplazamiento vertical */
    object-fit: cover;
    object-position: center center;
    display: block;
    transform: translateY(0) scale(1.08);
    transition:
        transform 0.55s cubic-bezier(.22,.61,.36,1),
        opacity 0.28s ease;
    will-change: transform;
}

.db-ops-visual-frame.is-changing .db-ops-main-image {
    opacity: 0.92;
}

.db-ops-visual-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.28) 100%);
    pointer-events: none;
}

.db-ops-floating-badge {
    position: absolute;
    z-index: 2;
    min-width: 200px;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(123,255,78,0.18);
    background: rgba(3, 8, 5, 0.68);
    backdrop-filter: blur(8px);
}

.db-ops-floating-badge--top {
    top: 20px;
    right: 20px;
}

.db-ops-floating-badge--bottom {
    left: 20px;
    bottom: 20px;
}

.db-ops-floating-badge span {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: rgba(232,239,247,0.55);
}

.db-ops-floating-badge strong {
    font-size: 14px;
    font-weight: 700;
    color: #f5f8fc;
}

/* MOBILE */
.db-ops-mobile-card {
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 20px;
    overflow: hidden;
    background: rgba(255,255,255,0.02);
}

.db-ops-mobile-image {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
}

.db-ops-mobile-content {
    padding: 1.25rem;
}

.db-ops-mobile-label {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #7BFF4E;
}

/* RESPONSIVE */
@media (max-width: 1399.98px) {
    .db-ops-step {
        min-height: 230px;
    }

    .db-ops-visual-frame {
        height: 560px;
        min-height: 560px;
    }

    .db-ops-main-image {
        height: calc(100% + 120px);
    }
}

@media (max-width: 1199.98px) {
    .db-ops-step-content .h3_estandar {
        font-size: 1.7rem;
    }

    .db-ops-step {
        min-height: 210px;
    }

    .db-ops-visual-frame {
        height: 500px;
        min-height: 500px;
    }

    .db-ops-main-image {
        height: calc(100% + 110px);
    }
}

@media (max-width: 991.98px) {
    .db-ops-mobile-image {
        height: 220px;
    }
}

@media (max-width: 575.98px) {
    .db-ops-mobile-image {
        height: 200px;
    }
}

.db-service-includes-section {
    position: relative;
   
    overflow: hidden;
}

.db-service-includes-section .h2_estandar span {
    color: var(--tg-accent, #7BFF4E);
}

.db-service-card {
    position: relative;
    padding: 2rem;
    border: 1px solid rgba(79, 195, 247, 0.12);
    background: rgba(255, 255, 255, 0.02);
    border-radius: 20px;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.db-service-card:hover {
    transform: translateY(-4px);
    border-color: rgba(123, 255, 78, 0.22);
    background: rgba(123, 255, 78, 0.03);
}

.db-service-icon {
    width: 56px;
    height: 56px;
    display: grid;
    place-items: center;
    margin-bottom: 1.25rem;
    border-radius: 14px;
    border: 1px solid rgba(123, 255, 78, 0.18);
    background: rgba(123, 255, 78, 0.05);
    color: #7BFF4E;
    font-size: 1rem;
}

.db-service-card .h3_estandar {
    margin-bottom: .85rem;
}

.db-service-card .p_estandar {
    color: rgba(232, 239, 247, 0.78);
}

@media (max-width: 1199.98px) {
    .db-service-card .h3_estandar {
    }
}

@media (max-width: 767.98px) {
    .db-service-card {
        padding: 1.5rem;
        border-radius: 18px;
    }

    .db-service-icon {
        width: 52px;
        height: 52px;
    }
}


.db-process-section {
    position: relative;
   
}

/* FLOW */
.db-process-flow {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    position: relative;
}

/* STEP */
.db-process-step {
    flex: 1;
    text-align: center;
    padding: 2rem 1.5rem;
    position: relative;
}




.db-process-step .p_estandar {
    font-size: 14px;
}

/* LINE BETWEEN STEPS */
.db-process-line {
    width: 60px;
    position: relative;
}

.db-process-line::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, rgba(108, 212, 240, .9), rgba(108, 212, 240, .09));
    transform: translateY(-50%);
}

/* RESPONSIVE */
@media (max-width: 991.98px) {

    .db-process-flow {
        flex-direction: column;
        gap: 2rem;
    }

    .db-process-line {
        width: 2px;
        height: 40px;
        margin: 0 auto;
    }

    .db-process-line::before {
        width: 2px;
        height: 100%;
        left: 50%;
        top: 0;
        transform: translateX(-50%);
    }

    .db-process-step {
        padding: 1.5rem 1rem;
    }
}

.db-process-tools-section {
    position: relative;
   
    overflow: hidden;
}

.db-process-tools-section .h2_estandar span {
    color: var(--tg-accent, #7BFF4E);
}

/* FLOW */
.db-process-flow-wrap {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 28px;
    background: rgba(255, 255, 255, 0.02);
    padding: 2rem;
    overflow: hidden;
}

.db-process-flow {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
}

.db-process-step {
    flex: 1;
    text-align: center;
    padding: 1.5rem 1.25rem;
    transition: transform .25s ease, opacity .25s ease;
}

.db-process-step:hover {
    transform: translateY(-4px);
}

.db-process-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    margin: 0 auto 1.2rem;
    border: 1px solid #6CD4F0;
    background: rgba(255,255,255,0.02);
    color: #6CD4F0;
    box-shadow: 0 0 24px rgba(123, 255, 78, 0.10);
    font-size: 1.1rem;
}


.db-process-step .p_estandar {
    color: rgba(232, 239, 247, 0.76);
}

.db-process-connector {
    width: 70px;
    position: relative;
    flex: 0 0 70px;
}

.db-process-connector::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 2px;
    transform: translateY(-50%);
    background: linear-gradient(90deg, rgba(108, 212, 240, .9), rgba(108, 212, 240, .09));
}

/* TOOLS */
.db-tools-label {
    display: inline-block;
    margin-bottom: 1rem;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    color: #7BFF4E;
}

.db-tools-slider {
    position: relative;
    overflow: hidden;
    mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}

.db-tools-track {
    display: flex;
    align-items: center;
    gap: 1rem;
    width: max-content;
    animation: dbToolsSlide 18s linear infinite;
}

.db-tools-slider:hover .db-tools-track {
    animation-play-state: paused;
}

.db-tool-card {
    width: 180px;
    min-width: 180px;
    height: 130px;
    padding: 1rem;
    border-radius: 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .8rem;
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.db-tool-card:hover {
    transform: translateY(-4px);
    border-color: rgba(123, 255, 78, 0.22);
    background: rgba(123, 255, 78, 0.04);
}

.db-tool-card img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    display: block;
}

.db-tool-card span {
    font-size: 14px;
    font-weight: 700;
    color: #f5f8fc;
    line-height: 1;
}

@keyframes dbToolsSlide {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* RESPONSIVE */
@media (max-width: 991.98px) {
    .db-process-flow {
        flex-direction: column;
        gap: 1rem;
    }

    .db-process-connector {
        width: 2px;
        height: 40px;
        margin: 0 auto;
        flex: 0 0 auto;
    }

    .db-process-connector::before {
        width: 2px;
        height: 100%;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        background: linear-gradient(
            180deg,
            rgba(79, 195, 247, 0.15),
            rgba(123, 255, 78, 0.6),
            rgba(79, 195, 247, 0.15)
        );
    }

    .db-process-flow-wrap {
        padding: 1.5rem;
    }
}

@media (max-width: 767.98px) {
    .db-process-icon {
        width: 58px;
        height: 58px;
    }

    
    .db-tool-card {
        width: 150px;
        min-width: 150px;
        height: 115px;
    }

    .db-tool-card img {
        width: 44px;
        height: 44px;
    }

    .db-tools-track {
        animation-duration: 14s;
    }
}



/* ESTRATEGIA */

.metric-service-card {
    position: relative;
    overflow: hidden;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.metric-service-card:hover {
    transform: translateY(-4px);
}

.metric-service-card__value {
    margin-bottom: 14px;
    line-height: 1;
}

.metric-counter {
    display: inline-block;
    font-size: clamp(2.4rem, 4vw, 3.8rem);
    font-weight: 800;
    letter-spacing: -0.04em;
}

@media (max-width: 991.98px) {
    .metric-service-card__value {
        margin-bottom: 12px;
    }

    .metric-counter {
        font-size: clamp(2rem, 7vw, 3rem);
    }

  }

/*HOME*/.hero_servicios,
.hero_servicios_carousel,
.hero_servicios_carousel .carousel-inner,
.hero_servicios_carousel .carousel-item,
.hero_slide {
    position: relative;
    width: 100%;
    min-height: 100vh;
    height: 100vh;
    overflow: hidden;
}

.hero_slide_media {
    position: absolute;
    inset: 0;
    z-index: 1;
    overflow: hidden;
}

.hero_slide_video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    transition: transform 0.9s ease, filter 0.9s ease;
    will-change: transform;
}

.hero_slide:hover .hero_slide_video {
    transform: scale(1.08);
    filter: brightness(1.05);
}

.hero_slide_overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(
        90deg,
        rgba(4, 10, 22, 0.92) 0%,
        rgba(4, 10, 22, 0.75) 42%,
        rgba(4, 10, 22, 0.60) 100%
    );
    transition: background 0.6s ease;
}

.hero_slide:hover .hero_slide_overlay {
    background: linear-gradient(
        90deg,
        rgba(4, 10, 22, 0.88) 0%,
        rgba(4, 10, 22, 0.68) 42%,
        rgba(4, 10, 22, 0.52) 100%
    );
}

.hero_slide_grid {
    position: absolute;
    inset: 0;
    z-index: 3;
    background-image:
        linear-gradient(rgba(0, 183, 255, 0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 183, 255, 0.06) 1px, transparent 1px);
    background-size: 42px 42px;
    pointer-events: none;
}

.hero_slide_glow {
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    background:
        radial-gradient(circle at 15% 50%, rgba(0, 170, 255, 0.18), transparent 30%),
        radial-gradient(circle at 80% 20%, rgba(0, 255, 204, 0.10), transparent 25%);
}

.hero_slide_container {
    position: relative;
    z-index: 5;
}

.hero_slide_content {
    color: #fff;
    padding: 4rem 0;
}

.hero_slide_content_main {
    max-width: 850px;
}

.hero_kicker {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .6rem 1rem;
    border-radius: 999px;
    margin-bottom: 1.3rem;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    color: #d9f7ff;
    font-size: .92rem;
    backdrop-filter: blur(10px);
}

.hero_title {
    font-size: clamp(2.3rem, 5vw, 5rem);
    line-height: 1.03;
    font-weight: 800;
    margin-bottom: 1.25rem;
    color: #fff;
}

.hero_title span {
    color: #74ddff;
}

.hero_title_services {
    max-width: 900px;
}

.hero_desc {
    max-width: 760px;
    font-size: 1.05rem;
    line-height: 1.8;
    color: rgba(255,255,255,.88);
    margin-bottom: 1.8rem;
}

.hero_desc_services {
    max-width: 860px;
    margin-bottom: 2rem;
}

.hero_actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.hero_btn_principal {
    min-height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hero_btn_secundario {
    min-height: 52px;
    padding: .85rem 1.4rem;
    border-radius: .75rem;
    border: 1px solid rgba(255,255,255,.22);
    color: #fff;
    background: rgba(255,255,255,.04);
    text-decoration: none;
    transition: all .25s ease;
}

.hero_btn_secundario:hover {
    color: #fff;
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.35);
}

.hero_services_grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.2rem;
    margin-top: 1.2rem;
}

.hero_service_card {
    height: 100%;
    padding: 1.4rem 1.2rem;
    border-radius: 1rem;
    background: rgba(255,255,255,.07);
    border: 1px solid #6CD4F0;
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
    cursor: pointer;
}

.service-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid #6CD4F0;
    border-radius: 12px;
    padding: 24px;
    height: 100%;
    transition: all 0.3s ease;
}

.hero_service_card:hover {
    transform: translateY(-5px);
    border-color: #5cff7c;
    box-shadow: 0 10px 30px rgba(92, 255, 124, 0.15);
}

.hero_service_header {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .8rem;
}

.hero_service_header h3 {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.2;
}

.hero_service_icon {
    width: 42px;
    height: 42px;
    border-radius: .7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(116, 221, 255, 0.12);
    color: #74ddff;
    font-size: 1rem;
    flex-shrink: 0;
}

.hero_service_card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    margin-bottom: .65rem;
}

.hero_service_card p {
    font-size: .95rem;
    line-height: 1.65;
    color: rgba(255,255,255,.82);
    margin-bottom: 0;
}

.hero_servicios_indicators {
    z-index: 8;
    margin-bottom: 1.8rem;
}

.hero_control {
    z-index: 8;
    width: 8%;
}

/* Evita hover problemático en pantallas táctiles */
@media (hover: hover) and (pointer: fine) {
    .hero_slide:hover .hero_slide_video {
        transform: scale(1.08);
        filter: brightness(1.05);
    }

    .hero_slide:hover .hero_slide_overlay {
        background: linear-gradient(
            90deg,
            rgba(4, 10, 22, 0.88) 0%,
            rgba(4, 10, 22, 0.68) 42%,
            rgba(4, 10, 22, 0.52) 100%
        );
    }
}

@media (max-width: 1199.98px) {
    .hero_services_grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .hero_servicios,
    .hero_servicios_carousel,
    .hero_servicios_carousel .carousel-inner,
    .hero_servicios_carousel .carousel-item,
    .hero_slide {
        min-height: 100svh;
        height: auto;
    }

    .hero_slide_content {
        padding: 7rem 0 6rem;
    }

    .hero_title {
        font-size: clamp(2rem, 8vw, 3.4rem);
    }

    .hero_desc {
        font-size: 1rem;
        line-height: 1.7;
    }

    .hero_control {
        width: 12%;
    }
}

@media (max-width: 767.98px) {
    .hero_services_grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .hero_kicker {
        font-size: .84rem;
        line-height: 1.4;
    }

    .hero_slide_content {
        padding: 6.5rem 0 5.5rem;
    }

    .hero_actions {
        flex-direction: column;
        align-items: stretch;
    }

    .hero_btn_secundario,
    .hero_btn_principal {
        width: 100%;
    }

    .hero_service_card {
        padding: 1.15rem 1rem;
    }

    .hero_service_card h3 {
        font-size: 1rem;
    }

    .hero_service_card p {
        font-size: .92rem;
    }
}

.servicios_sticky {
    position: relative;
    overflow: clip;
}

/* halo general suave en toda la sección */
.servicios_sticky::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 12% 18%, rgba(90, 170, 255, 0.08), transparent 22%),
        radial-gradient(circle at 88% 70%, rgba(58, 132, 255, 0.06), transparent 26%);
    z-index: 0;
}

.servicios_sticky .container {
    position: relative;
    z-index: 1;
}

.servicios_sticky .badge_estandar {
    position: relative;
    z-index: 2;
}

.servicios_sticky_wrap {
    position: relative;
    padding-bottom: 12vh;
}
.servicio_sticky_card {
    position: sticky;
    top: 70px;
    min-height: auto;
    display: flex;
    align-items: center;
    margin-bottom: 4rem;
    z-index: 1;
    transition: transform .35s ease, filter .35s ease;
}


/* z-index */
.servicio_sticky_card--1 { z-index: 1; }
.servicio_sticky_card--2 { z-index: 2; }
.servicio_sticky_card--3 { z-index: 3; }
.servicio_sticky_card--4 { z-index: 4; }
.servicio_sticky_card--5 { z-index: 5; }

/* tonos por card */
.servicio_sticky_card--1 {
    --tone-a: rgba(58, 138, 255, 0.90);
    --tone-b: rgba(108, 212, 240, 0.94);
    --tone-glow: rgba(94, 190, 255, 0.34);
    --tone-border: rgba(110, 196, 255, 0.28);
    --tone-accent: #8cd8ff;
    --tone-accent-soft: rgba(140, 216, 255, 0.18);
}

.servicio_sticky_card--2 {
    --tone-a: rgba(32, 109, 255, 0.92);
    --tone-b: rgba(94, 154, 255, 0.94);
    --tone-glow: rgba(87, 151, 255, 0.32);
    --tone-border: rgba(96, 158, 255, 0.28);
    --tone-accent: #8aaeff;
    --tone-accent-soft: rgba(138, 174, 255, 0.18);
}

.servicio_sticky_card--3 {
    --tone-a: rgba(0, 133, 214, 0.92);
    --tone-b: rgba(92, 206, 255, 0.94);
    --tone-glow: rgba(95, 211, 255, 0.30);
    --tone-border: rgba(107, 215, 255, 0.26);
    --tone-accent: #7fe3ff;
    --tone-accent-soft: rgba(127, 227, 255, 0.18);
}

.servicio_sticky_card--4 {
    --tone-a: rgba(73, 106, 255, 0.92);
    --tone-b: rgba(126, 161, 255, 0.94);
    --tone-glow: rgba(120, 154, 255, 0.30);
    --tone-border: rgba(132, 166, 255, 0.26);
    --tone-accent: #a8b9ff;
    --tone-accent-soft: rgba(168, 185, 255, 0.18);
}

.servicio_sticky_card--5 {
    --tone-a: rgba(0, 157, 255, 0.92);
    --tone-b: rgba(90, 194, 255, 0.94);
    --tone-glow: rgba(90, 194, 255, 0.30);
    --tone-border: rgba(116, 208, 255, 0.28);
    --tone-accent: #88e1ff;
    --tone-accent-soft: rgba(136, 225, 255, 0.18);
}

.servicio_sticky_inner {
    width: 100%;
    min-height: 78vh;
    border-radius: 28px;
    overflow: hidden;
    background: #070707;
    border: 1px solid rgba(140, 190, 255, 0.10);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.35);
    position: relative;
    transition: border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}

.servicio_sticky_inner::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity .35s ease;
}

.servicio_sticky_content {
    height: 100%;
    padding: 3rem 2rem 3rem 2rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background:
        linear-gradient(180deg, rgba(10, 14, 24, 0.98), rgba(5, 5, 5, 1));
            min-height: 560px;

}

/* PANEL VISUAL */
.servicio_sticky_visual {
    min-height: 78vh;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 20% 18%, rgba(255,255,255,0.18), transparent 24%),
        radial-gradient(circle at 82% 76%, rgba(255,255,255,0.10), transparent 22%),
        linear-gradient(135deg, var(--tone-a), var(--tone-b));
    transition: box-shadow .35s ease, transform .35s ease, filter .35s ease;
}

/* barrido diagonal */
.servicio_sticky_visual::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            145deg,
            transparent 0 40%,
            rgba(255,255,255,0.12) 46% 54%,
            transparent 60% 100%
        );
    pointer-events: none;
    z-index: 1;
    animation: techSheen 8s linear infinite;
}

/* grid + glow */
.servicio_sticky_visual::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 20% 30%, rgba(255,255,255,0.16), transparent 18%),
        radial-gradient(circle at 80% 70%, rgba(255,255,255,0.10), transparent 20%),
        linear-gradient(rgba(255,255,255,0.09) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.09) 1px, transparent 1px);
    background-size:
        auto,
        auto,
        34px 34px,
        34px 34px;
    background-position:
        0 0,
        0 0,
        0 0,
        0 0;
    animation: techGridMove 16s linear infinite;
}

/* glow animado */
.servicio_sticky_visual .tech_glow {
    position: absolute;
    width: 280px;
    height: 280px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,0.22), transparent 65%);
    filter: blur(24px);
    opacity: .52;
    top: 10%;
    right: 8%;
    z-index: 0;
    animation: floatGlow 7s ease-in-out infinite;
}

/* scan line */
.servicio_sticky_visual .scan_line {
    position: absolute;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), transparent);
    box-shadow: 0 0 18px rgba(255,255,255,.45);
    z-index: 1;
    animation: scanMove 4.5s linear infinite;
    opacity: .55;
}

/* mockup */
.servicio_mockup {
    position: relative;
    z-index: 2;
    width: min(420px, 100%);
    border-radius: 22px;
    background: rgba(14, 18, 28, 0.92);
    border: 1px solid rgba(255,255,255,0.10);
    overflow: hidden;
    box-shadow:
        0 20px 50px rgba(0,0,0,.28),
        0 0 0 1px rgba(255,255,255,0.03);
    animation: floatMockup 5.5s ease-in-out infinite;
    transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.servicio_mockup_top {
    display: flex;
    gap: .45rem;
    align-items: center;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.02);
}

.servicio_mockup_top span {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tone-accent);
    opacity: .8;
}

.servicio_mockup_body {
    padding: 1.4rem 1.2rem;
}

.mockup_stat {
    display: grid;
    grid-template-columns: 14px 1fr auto;
    align-items: center;
    gap: .75rem;
    padding: .9rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.mockup_stat:last-child {
    border-bottom: 0;
}

.mockup_dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--tone-accent);
    display: inline-block;
    box-shadow: 0 0 12px var(--tone-accent-soft);
}

.mockup_label {
    color: rgba(255,255,255,.78);
    font-size: .98rem;
    line-height: 1.45;
}

.mockup_stat strong {
    color: var(--tone-accent);
    font-size: 1rem;
    font-weight: 600;
}

/* tags */
.servicio_tags {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.servicio_tags span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .55rem .85rem;
    border-radius: 999px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.08);
    color: rgba(255,255,255,.84);
    font-size: .9rem;
    line-height: 1.3;
    transition: border-color .3s ease, background .3s ease, color .3s ease, transform .3s ease;
}

.servicios_sticky .h2_estandar,
.servicios_sticky .p_estandar,
.servicios_sticky .h3_estandar {
    color: #f5f5f5;
}

/* HOVER tech más notorio */
.servicio_sticky_card:hover {
    transform: translateY(-2px);
}

.servicio_sticky_card:hover .servicio_sticky_inner {
    border-color: var(--tone-border);
    box-shadow:
        0 22px 60px rgba(0, 0, 0, 0.36),
        0 0 0 1px var(--tone-border),
        0 0 46px rgba(84, 162, 255, 0.12);
}

.servicio_sticky_card:hover .servicio_sticky_inner::after {
    opacity: 1;
}

.servicio_sticky_card:hover .servicio_sticky_visual {
    box-shadow:
        inset 0 0 0 1px rgba(255,255,255,0.12),
        inset 0 0 70px rgba(255,255,255,0.05),
        0 0 60px rgba(75, 154, 255, 0.14);
    filter: saturate(1.08);
}

.servicio_sticky_card:hover .servicio_mockup {
    transform: translateY(-5px) scale(1.01);
    border-color: var(--tone-border);
    box-shadow:
        0 24px 55px rgba(0,0,0,.30),
        0 0 0 1px rgba(255,255,255,0.03),
        0 0 32px rgba(90, 170, 255, 0.16);
}


.hero-base24--compact {
    padding-top: 3.5rem !important;
    padding-bottom: 3.5rem !important;
}

.hero-base24--compact .hero-content {
    max-width: 520px;
    margin-inline: auto;
}

.hero-base24--compact .hero-title-compact {
    line-height: 0.95;
    letter-spacing: -0.03em;
    max-width: 12ch;
}

.hero-base24--compact .hero-description-compact {
    max-width: 540px;
    opacity: .92;
}

.hero-base24--compact .service-card--compact {
    padding: 1rem 1rem .9rem;
    border-radius: 18px;
    min-height: 132px;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.hero-base24--compact .service-card--compact:hover {
    transform: translateY(-4px);
}

.hero-base24--compact .service-card--compact .h4_estandar {
    font-size: 1.05rem;
    line-height: 1.05;
    margin-bottom: .7rem !important;
}



.hero-base24--compact .hero-bg-text {
    font-size: clamp(4rem, 14vw, 11rem);
    opacity: .08;
    line-height: .8;
}

@media (min-width: 992px) {
    .hero-base24--compact .hero-content {
        margin-inline: 0;
    }
}

@media (max-width: 991.98px) {
    .hero-base24--compact .hero-title-compact {
        max-width: 100%;
    }

    .hero-base24--compact .hero-content {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .hero-base24--compact {
        padding-top: 3rem !important;
        padding-bottom: 3rem !important;
    }

    .hero-base24--compact .service-card--compact {
        min-height: auto;
        padding: .95rem .95rem .85rem;
    }

    .hero-base24--compact .service-card--compact .h4_estandar {
        font-size: 1rem;
    }
}

.service-card--compact {
    max-width: 260px;
    width: 100%;
}.hero-base24--compact .service-card--compact {
    max-width: 260px;
    width: 100%;
    min-height: 132px;
    padding: 1rem 1rem .9rem;
    border-radius: 18px;
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.hero-base24--compact .service-card--compact .h4_estandar {
    font-size: 1.05rem;
    line-height: 1.05;
    margin-bottom: .9rem !important;
    min-height: 2.2em; /* reserva espacio para 2 líneas */
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.hero-base24--compact .service-tags {
    margin-top: auto;
    display: flex;
    justify-content: center;
    width: 100%;
}

.hero-base24--compact .service-tags a,
.hero-base24--compact .service-tags span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    text-align: center;
}


.home_capacidades {
    color: #ffffff;
    position: relative;
    overflow: hidden;
}



.home_capacidades_grid {
    margin-bottom: 6rem;
}

.home_cap_card {
    padding: 0;
    background: transparent;
    border: 0;
}

.home_cap_card_icon {
    width: 100%;
    aspect-ratio: 25 / 9;

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    border: 1px solid rgba(255, 255, 255, 0.18);

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 4rem;
    color: #6CD4F0;

    transition: all .3s ease;
    cursor: pointer;
}

/* HOVER */
.home_cap_card_icon:hover {
    color: #75F34C;

    /* glow principal */
    box-shadow:
        0 0 0 1px rgba(117, 243, 76, 0.25),
        0 10px 30px rgba(117, 243, 76, 0.25),
        0 0 40px rgba(117, 243, 76, 0.15);

    border-color: rgba(117, 243, 76, 0.4);
}
.home_cap_card_icon:hover {
    color: #75F34C;

    background: rgba(117, 243, 76, 0.08);

    box-shadow:
        0 0 0 1px rgba(117, 243, 76, 0.25),
        0 10px 30px rgba(117, 243, 76, 0.25),
        0 0 40px rgba(117, 243, 76, 0.15);

    border-color: rgba(117, 243, 76, 0.4);
}

.home_cap_card:hover .home_cap_card_icon {
    transform: translateY(-4px);
    box-shadow: 0 18px 35px rgba(0,0,0,.08);
}

.home_cap_card .h4_estandar {
    margin-bottom: 0;
}



.home_fundamentos_section {
    padding-top: 1rem;
}

.home_section_mini {
    display: inline-block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .16em;
    color: #6d7769;
}

.home_fundamentos_intro .h2_estandar {
    color: #111;
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1.02;
    max-width: 9ch;
}

.home_fundamentos_intro .p_estandar {
    color: #677364;
    max-width: 34ch;
}

.home_feature_item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.home_feature_icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #6CD4F0;
    font-size: 1.15rem;
}



@media (max-width: 991.98px) {
    .home_capacidades_grid {
        margin-bottom: 4rem;
    }

    .home_capacidades_header .h2_estandar,
    .home_fundamentos_intro .h2_estandar {
        max-width: 100%;
    }

    .home_cap_card .p_estandar,
    .home_fundamentos_intro .p_estandar {
        max-width: 100%;
    }
}

@media (max-width: 575.98px) {
    .home_cap_card_icon {
        font-size: 3rem;
    }

    .home_cap_card .h4_estandar {
        font-size: 1.25rem;
    }

    .home_feature_item {
        gap: .85rem;
    }
}


.video-grow-section {
    position: relative;
    background: #05070b;
    overflow: clip;
}

.video-grow-track {
    position: relative;
    height: 260vh;
}

.video-grow-sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

/* =========================
   CAPA DE VIDEO ESCALABLE
   ========================= */
.video-grow-media-wrap {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(78vw, 1120px);
    aspect-ratio: 16 / 9;
    transform: translate(-50%, -50%) scale(0.68);
    transform-origin: center center;
    border-radius: 28px;
    overflow: hidden;
    background: #000;
    box-shadow:
        0 30px 80px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(255,255,255,0.05);
    will-change: transform, border-radius;
    z-index: 1;
}

.video-grow-media-wrap.is-full {
    border-radius: 0;
}

.video-grow-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.video-grow-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(3, 6, 12, 0.28) 0%, rgba(3, 6, 12, 0.58) 100%),
        radial-gradient(circle at center, rgba(10, 40, 80, 0.10), rgba(0, 0, 0, 0.25));
    z-index: 2;
}

/* =========================
   CAPA DE CONTENIDO FIJA
   ========================= */
.video-grow-content-layer {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
}

.video-grow-content-layer .container,
.video-grow-content-layer .row {
    height: 100%;
}

.video-grow-copy {
    max-width: 980px;
    margin: 0 auto;
    pointer-events: auto;
}

.video-grow-copy .h2_estandar,
.video-grow-copy .p_estandar {
    color: #fff;
    text-shadow: 0 4px 20px rgba(0,0,0,.35);
}

/* grid */
.video-grow-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-top: 2rem;
}

.video-grow-point {
    padding: 1.1rem 1rem;
    border-radius: 18px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow:
        0 10px 30px rgba(0,0,0,.16),
        inset 0 0 0 1px rgba(255,255,255,0.02);
}

.video-grow-point strong {
    display: block;
    margin-bottom: .45rem;
    font-size: 1rem;
    line-height: 1.35;
    color: #fff;
}

.video-grow-point span {
    display: block;
    font-size: .94rem;
    line-height: 1.6;
    color: rgba(255,255,255,.82);
}

/* opcional */
.video-grow-section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 15% 20%, rgba(80, 160, 255, 0.10), transparent 20%),
        radial-gradient(circle at 80% 70%, rgba(90, 190, 255, 0.08), transparent 24%);
    z-index: 0;
}

/* responsive */
@media (max-width: 991.98px) {
    .video-grow-track {
        height: 220vh;
    }

    .video-grow-media-wrap {
        width: 90vw;
        transform: translate(-50%, -50%) scale(0.84);
        border-radius: 22px;
    }

    .video-grow-points {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767.98px) {
    .video-grow-track {
        height: 180vh;
    }

    .video-grow-media-wrap {
        width: 94vw;
        aspect-ratio: 9 / 16;
        transform: translate(-50%, -50%) scale(0.92);
        border-radius: 18px;
    }

    .video-grow-content-layer .row {
        align-items: end !important;
    }

    .video-grow-copy {
        padding-bottom: 2rem;
    }

    .video-grow-copy .h2_estandar {
        font-size: 1.8rem;
        line-height: 1.08;
    }

    .video-grow-copy .p_estandar {
        font-size: .96rem;
    }

    .video-grow-point {
        padding: 1rem;
        border-radius: 16px;
    }

    .video-grow-point strong {
        font-size: .95rem;
    }

    .video-grow-point span {
        font-size: .88rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .video-grow-track {
        height: auto;
    }

    .video-grow-sticky {
        position: relative;
        height: auto;
    }

    .video-grow-media-wrap {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        aspect-ratio: 16 / 9;
        transform: none;
        border-radius: 20px;
    }

    .video-grow-content-layer {
        position: absolute;
        inset: 0;
    }
}



@media (max-width: 991.98px) {
    .video-grow-sticky {
        position: sticky;
        top: 0;
        height: 1033px;
        overflow: hidden;
    }

}

.techglobal_brand_section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 0%, rgba(70, 130, 255, 0.10), transparent 28%),
        linear-gradient(180deg, #05070b 0%, #080c14 100%);
}

.techglobal_brand_section::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 15% 20%, rgba(80, 160, 255, 0.08), transparent 18%),
        radial-gradient(circle at 82% 72%, rgba(90, 190, 255, 0.07), transparent 22%);
    z-index: 0;
}

.techglobal_brand_section .container {
    position: relative;
    z-index: 1;
}

.techglobal_brand_title {
    color: #ffffff;
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1.02;
    margin-bottom: 0;
    max-width: 1050px;
    margin-left: auto;
    margin-right: auto;
}

.techglobal_brand_subtitle {
    color: rgba(255,255,255,.82);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* métricas */
.techglobal_brand_panel {
    margin-top: 2rem;
}

.techglobal_stat_card {
    height: 100%;
    min-height: 220px;
    padding: 1.5rem 1.25rem;
    border-radius: 24px;
   
    box-shadow:
        0 14px 34px rgba(0,0,0,.18),
        inset 0 0 0 1px rgba(255,255,255,0.02);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.techglobal_stat_card:hover {
    transform: translateY(-3px);
    border-color: rgba(104, 196, 255, 0.28);
    box-shadow:
        0 18px 40px rgba(0,0,0,.22),
        inset 0 0 0 1px rgba(255,255,255,0.02);
}

.techglobal_stat_card strong {
    display: block;
    margin-bottom: 1rem;
    font-size: clamp(2.2rem, 3vw, 3.4rem);
    line-height: 1;
    font-weight: 800;
    color: #ffffff;
}

.techglobal_stat_card span {
    display: block;
    font-size: .98rem;
    line-height: 1.65;
    color: rgba(255,255,255,.78);
}

/* bloque servicios */
.techglobal_services_block {
    margin-top: 1rem;
    padding: 2rem;
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.02));
    border: 1px solid rgba(255,255,255,0.08);
    box-shadow:
        0 18px 40px rgba(0,0,0,.18),
        inset 0 0 0 1px rgba(255,255,255,0.02);
}

.techglobal_mini_badge {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: .45rem .9rem;
    border-radius: 999px;
    margin-bottom: 1rem;
    font-size: .85rem;
    font-weight: 700;
    color: #dff4ff;
    background: rgba(87, 181, 255, 0.12);
    border: 1px solid rgba(87, 181, 255, 0.28);
}

.techglobal_services_title {
    margin: 0 0 1rem;
    font-size: clamp(1.7rem, 2.4vw, 2.7rem);
    line-height: 1.08;
    font-weight: 800;
    color: #ffffff;
}

.techglobal_services_text {
    margin: 0;
    font-size: 1rem;
    line-height: 1.75;
    color: rgba(255,255,255,.78);
}

.techglobal_services_grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.techglobal_service_chip {
    display: flex;
    align-items: center;
    min-height: 72px;
    padding: 1rem 1.1rem;
    border-radius: 18px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.08);
    color: #ffffff;
    font-size: .98rem;
    font-weight: 600;
    line-height: 1.45;
    transition: transform .22s ease, border-color .22s ease, background .22s ease;
}

.techglobal_service_chip:hover {
    transform: translateY(-2px);
    border-color: rgba(104, 196, 255, 0.26);
    background: rgba(255,255,255,0.05);
}

/* cierre */
.techglobal_closing_box {
    padding: 1.4rem 1.6rem;
    border-radius: 22px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
}

.techglobal_closing_text {
    color: rgba(255,255,255,.82);
    font-size: 1rem;
    line-height: 1.8;
}

@media (max-width: 991.98px) {
    .techglobal_stat_card {
        min-height: 190px;
    }

    .techglobal_services_block {
        padding: 1.5rem;
    }

    .techglobal_services_grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 767.98px) {
    .techglobal_brand_section {
        padding-top: 4rem !important;
        padding-bottom: 4rem !important;
    }

    .techglobal_brand_title {
        font-size: 2rem;
    }

    .techglobal_brand_subtitle {
        font-size: .96rem;
    }

    .techglobal_stat_card {
        min-height: auto;
        padding: 1.2rem 1rem;
        border-radius: 20px;
    }

    .techglobal_stat_card strong {
        font-size: 2rem;
    }

    .techglobal_stat_card span,
    .techglobal_services_text,
    .techglobal_service_chip,
    .techglobal_closing_text {
        font-size: .9rem;
    }

    .techglobal_services_block {
        padding: 1.25rem;
        border-radius: 22px;
    }

    .techglobal_services_title {
        font-size: 1.5rem;
    }

    .techglobal_services_grid {
        grid-template-columns: 1fr;
    }

    .techglobal_service_chip {
        min-height: 60px;
        padding: .95rem 1rem;
        border-radius: 16px;
    }
}



.sostenibilidad_section {
    position: relative;
    overflow: clip;
    background: #dceff0;
    transition: background-color .45s ease;
}

.sostenibilidad_track {
    position: relative;
    height: 240vh;
}

.sostenibilidad_sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

/* =========================================
   VISUAL
   ========================================= */

.sostenibilidad_visual_wrap {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.sostenibilidad_visual_static,
.sostenibilidad_visual_video {
    position: absolute;
    inset: 0;
}

.sostenibilidad_visual_static img,
.sostenibilidad_visual_video video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sostenibilidad_visual_static {
    opacity: 1;
    transition: opacity .45s ease;
}

.sostenibilidad_visual_video {
    opacity: 0;
    transition: opacity .45s ease;
}

.sostenibilidad_visual_overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
        linear-gradient(90deg, rgba(220,239,240,0.76) 0%, rgba(220,239,240,0.40) 42%, rgba(220,239,240,0.18) 100%);
    transition: background .45s ease;
}

/* =========================================
   CONTENT LAYER
   ========================================= */

.sostenibilidad_content_layer {
    position: absolute;
    inset: 0;
    z-index: 3;
}

.sostenibilidad_content_layer .container,
.sostenibilidad_content_layer .row {
    height: 100%;
}

/* =========================================
   INTRO STATES
   ========================================= */

.sostenibilidad_intro_wrap {
    position: relative;
    min-height: 400px;
}

.sostenibilidad_intro {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: translateY(18px);
    pointer-events: none;
    transition: opacity .35s ease, transform .35s ease;
}

.sostenibilidad_intro.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.sostenibilidad_title {
    color: #000000;
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1.02;
    margin-bottom: 0;
    transition: color .45s ease;
}

.sostenibilidad_subtitle {
    color: #000000;;
    max-width: 540px;
    transition: color .45s ease;
}

/* =========================================
   PANEL STATES
   ========================================= */

.sostenibilidad_panel_wrap {
    position: relative;
    min-height: 470px;
}

.sostenibilidad_panel {
    position: absolute;
    inset: 0;
    border-radius: 28px;
    background: rgba(255,255,255,0.16);
    border: 1px solid rgba(13, 110, 120, 0.10);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(0,0,0,.08);
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition:
        opacity .35s ease,
        transform .35s ease,
        background .45s ease,
        border-color .45s ease,
        box-shadow .45s ease;
}

.sostenibilidad_panel.is-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.sostenibilidad_item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.4rem 1.5rem;
    text-decoration: none;
    border-bottom: 1px solid rgba(13, 110, 120, 0.12);
    transition: background .25s ease, border-color .25s ease;
}

.sostenibilidad_item:last-child {
    border-bottom: 0;
}

.sostenibilidad_item:hover {
    background: rgba(255,255,255,0.10);
}

.sostenibilidad_item.is-active {
    background: rgba(255,255,255,0.20);
}

.sostenibilidad_item_content h3 {
    margin: 0 0 .45rem;
    font-size: clamp(1.2rem, 2vw, 2rem);
    line-height: 1.12;
    color: #000000;
    transition: color .35s ease;
}

.sostenibilidad_item_content p {
    margin: 0;
    font-size: .98rem;
    line-height: 1.65;
    color: #000000;
    transition: color .35s ease;
}

.sostenibilidad_item_arrow {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(11, 111, 120, 0.08);
    color: #0b6f78;
    transition: background .35s ease, color .35s ease, transform .25s ease;
}

.sostenibilidad_item:hover .sostenibilidad_item_arrow {
    transform: translateX(2px);
}

/* =========================================
   STATE 2 ACTIVE
   ========================================= */

.sostenibilidad_section.is-state-2 {
    background: #071317;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_visual_static {
    opacity: 0;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_visual_video {
    opacity: 1;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_visual_overlay {
    background:
        linear-gradient(90deg, rgba(7,19,23,0.78) 0%, rgba(7,19,23,0.48) 42%, rgba(7,19,23,0.22) 100%);
}

.sostenibilidad_section.is-state-2 .sostenibilidad_title {
    color: #ecffff;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_subtitle {
    color: rgba(236,255,255,.82);
}

.sostenibilidad_section.is-state-2 .sostenibilidad_panel {
    background: rgba(8, 18, 24, 0.34);
    border-color: rgba(255,255,255,0.08);
    box-shadow: 0 18px 48px rgba(0,0,0,.20);
    display: none;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_item {
    border-bottom-color: rgba(255,255,255,0.08);
}

.sostenibilidad_section.is-state-2 .sostenibilidad_item:hover,
.sostenibilidad_section.is-state-2 .sostenibilidad_item.is-active {
    background: rgba(255,255,255,0.05);
}

.sostenibilidad_section.is-state-2 .sostenibilidad_item_content h3 {
    color: #e9feff;
}

.sostenibilidad_section.is-state-2 .sostenibilidad_item_content p {
    color: rgba(233,254,255,.74);
}

.sostenibilidad_section.is-state-2 .sostenibilidad_item_arrow {
    background: rgba(255,255,255,0.08);
    color: #ecffff;
}

/* =========================================
   RESPONSIVE
   ========================================= */

@media (max-width: 991.98px) {
    .sostenibilidad_track {
        height: auto;
    }

    .sostenibilidad_sticky {
        position: relative;
        height: auto;
    }

    .sostenibilidad_visual_wrap {
        position: relative;
        min-height: 420px;
    }

    .sostenibilidad_content_layer {
        position: relative;
        inset: auto;
        padding: 2rem 0 0;
    }

    .sostenibilidad_content_layer .container,
    .sostenibilidad_content_layer .row {
        height: auto;
    }

    .sostenibilidad_intro_wrap,
    .sostenibilidad_panel_wrap {
        min-height: auto;
    }

    .sostenibilidad_intro,
    .sostenibilidad_panel {
        position: relative;
        inset: auto;
        opacity: 1;
        transform: none;
        pointer-events: auto;
    }

    .sostenibilidad_intro--state2,
    .sostenibilidad_panel--state2 {
        display: none;
    }

    .sostenibilidad_panel {
        border-radius: 22px;
        margin-top: 1rem;
    }
}

@media (max-width: 767.98px) {
    .sostenibilidad_visual_wrap {
        min-height: 360px;
    }

    .sostenibilidad_title {
        font-size: 2rem;
    }

    .sostenibilidad_subtitle,
    .sostenibilidad_item_content p {
        font-size: .92rem;
    }

    .sostenibilidad_item {
        padding: 1.1rem 1rem;
    }

    .sostenibilidad_item_content h3 {
        font-size: 1.2rem;
    }

    .sostenibilidad_panel {
        border-radius: 18px;
    }
}

/* desktop visible por defecto */
.sostenibilidad_content_layer--desktop {
    display: block;
}

.sostenibilidad_mobile_stack {
    display: none;
}

/* mobile/tablet sin efecto */
@media (max-width: 991.98px) {
    .sostenibilidad_content_layer--desktop {
        display: none;
    }

    .sostenibilidad_mobile_stack {
        display: block;
        position: relative;
        z-index: 4;
        padding: 2rem 0 0;
    }

    .sostenibilidad_mobile_block {
        margin-bottom: 2rem;
    }

    .sostenibilidad_mobile_block:last-child {
        margin-bottom: 0;
    }

    .sostenibilidad_intro_mobile {
        margin-bottom: 1rem;
    }

    .sostenibilidad_panel_mobile {
        position: relative;
        inset: auto;
        opacity: 1;
        transform: none;
        pointer-events: auto;
        border-radius: 22px;
        background: rgba(255,255,255,0.12);
        border: 1px solid rgba(13, 110, 120, 0.10);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        overflow: hidden;
        box-shadow: 0 18px 40px rgba(0,0,0,.08);
    }
}



@media (max-width: 991.98px) {
    .sostenibilidad_section {
        background: #dceff0;
    }

    .sostenibilidad_visual_video {
        display: none;
    }

    .sostenibilidad_visual_static {
        opacity: 1 !important;
    }

    .sostenibilidad_visual_overlay {
        background: linear-gradient(
            180deg,
            rgba(220,239,240,0.15) 0%,
            rgba(220,239,240,0.55) 100%
        );
    }
}
@media (max-width: 991.98px) {

    .sostenibilidad_visual_wrap {
        display: none;
    }

    .sostenibilidad_section {
        background: url('/img/3.png') center / cover no-repeat;
        position: relative;
    }

    .sostenibilidad_section::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(220,239,240,0.75); /* overlay */
        z-index: 1;
    }

    .sostenibilidad_mobile_stack {
        position: relative;
        z-index: 2;
    }
}


.sostenibilidad_carousel {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    margin: 1.25rem 0 1.25rem;
    min-height: 340px;
    box-shadow: 0 18px 40px rgba(0,0,0,.10);
}

.sostenibilidad_carousel_track {
    position: relative;
    width: 100%;
    min-height: 340px;
}

.sostenibilidad_carousel_slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transform: scale(1.02);
    transition: opacity .45s ease, transform .45s ease;
    pointer-events: none;
}

.sostenibilidad_carousel_slide.is-active {
    opacity: 1;
    transform: scale(1);
    pointer-events: auto;
}

.sostenibilidad_carousel_slide img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.sostenibilidad_carousel_overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(0, 0, 0, 0.18) 0%,
        rgba(0, 0, 0, 0.30) 45%,
        rgba(0, 0, 0, 0.42) 100%
    );
    z-index: 1;
}

.sostenibilidad_carousel_content {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    padding: 1.5rem 1.25rem 1.35rem;
    color: #fff;
}

.sostenibilidad_carousel_content h3 {
    margin: 0 0 .55rem;
    font-size: clamp(1.25rem, 2.5vw, 1.8rem);
    line-height: 1.1;
    color: #fff;
}

.sostenibilidad_carousel_content p {
    margin: 0;
    font-size: .98rem;
    line-height: 1.55;
    color: rgba(255,255,255,.92);
    max-width: 90%;
}

.sostenibilidad_carousel_arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.22);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background .25s ease, transform .25s ease;
}

.sostenibilidad_carousel_arrow:hover {
    background: rgba(255,255,255,.32);
}

.sostenibilidad_carousel_arrow--prev {
    left: 12px;
}

.sostenibilidad_carousel_arrow--next {
    right: 12px;
}

.sostenibilidad_carousel_dots {
    position: absolute;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    z-index: 3;
    display: flex;
    gap: .45rem;
}

.sostenibilidad_carousel_dots button {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    border: 0;
    background: rgba(255,255,255,.45);
    padding: 0;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}

.sostenibilidad_carousel_dots button.is-active {
    background: #fff;
    transform: scale(1.15);
}

/* Desktop: opcional ocultarlo si lo quieres solo en mobile/tablet */
.sostenibilidad_carousel {
    display: none;
}

@media (max-width: 991.98px) {
    .sostenibilidad_carousel {
        display: block;
    }
}

@media (max-width: 767.98px) {
    .sostenibilidad_carousel,
    .sostenibilidad_carousel_track {
        min-height: 300px;
    }

    .sostenibilidad_carousel_content {
        padding: 1.1rem 1rem 1.1rem;
    }

    .sostenibilidad_carousel_content h3 {
        font-size: 1.2rem;
    }

    .sostenibilidad_carousel_content p {
        font-size: .92rem;
        max-width: 100%;
    }

    .sostenibilidad_carousel_arrow {
        width: 38px;
        height: 38px;
    }
}


.sostenibilidad_section.is-state-2 .sostenibilidad_carousel {
    display: block;
}
@media (max-width: 991.98px) {
    .sostenibilidad_carousel {
        display: block;
    }
}

/* ==========================================================
   CODIGO SOSTENIBLIDAD
   HERO PRINCIPAL SOSTENIBILIDAD
========================================================== */

.pag_sostenibilidad_hero {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    background: #030812;
    display: flex;
    align-items: center;
}

.pag_sostenibilidad_hero_media {
    position: absolute;
    inset: 0;
    z-index: 0;
    overflow: hidden;
}

.pag_sostenibilidad_hero_media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.04);
}

.pag_sostenibilidad_hero_media_overlay {
    position: absolute;
    inset: 0;
    background:
  linear-gradient(90deg, rgba(5, 15, 10, 0.75) 0%, rgba(5, 15, 10, 0.55) 42%, rgba(5, 15, 10, 0.08) 100%),
  radial-gradient(circle at 20% 30%, rgba(34, 197, 94, 0.35), transparent 35%),
  radial-gradient(circle at 80% 70%, rgba(16, 185, 129, 0.25), transparent 40%),
  linear-gradient(180deg, rgba(3, 10, 7, 0.25) 0%, rgba(3, 10, 7, 0.45) 100%);
}

.pag_sostenibilidad_hero_grid {
    position: absolute;
    inset: 0;
    opacity: 0.12;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.08) 1px, transparent 1px);
    background-size: 36px 36px;
    mix-blend-mode: screen;
}

.pag_sostenibilidad_hero_glow {
    position: absolute;
    top: -10%;
    left: -8%;
    width: 48rem;
    height: 48rem;
    background: radial-gradient(circle, rgba(83, 194, 255, 0.16) 0%, rgba(83, 194, 255, 0.08) 30%, transparent 68%);
    filter: blur(50px);
    pointer-events: none;
}

.pag_sostenibilidad_hero_container {
    position: relative;
    z-index: 2;
}

.pag_sostenibilidad_intro {
    position: relative;
    max-width: 900px;
    padding: 7.5rem 0 5rem;
    margin: 0 auto;
    text-align: center;
}

.pag_sostenibilidad_kicker {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 0.95rem 1.35rem;
    margin-bottom: 1.75rem;
    border: 1px solid rgba(174, 229, 98, 0.18);
    background: rgba(174, 229, 98, 0.58);
    backdrop-filter: blur(10px);
    border-radius: 0.25rem;
    color: #ffffff;
    font-size: 0.95rem;
    line-height: 1;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    box-shadow: 0 0 24px rgba(76, 160, 255, 0.08);
}

.pag_sostenibilidad_kicker i {
    font-size: 0.9rem;
}

.pag_sostenibilidad_title {
    margin: 0;
    font-size: 60px;
    line-height: 0.95;
    font-weight: 800;
    letter-spacing: -0.05em;
    color: #f7fbff;
    text-wrap: balance;
}

.pag_sostenibilidad_title span {
    display: inline-block;
    color: #98dc3f;
    text-shadow: 0 0 18px rgba(152, 220, 63, 0.10);
}

.pag_sostenibilidad_desc {
    max-width: 760px;
    margin: 2rem auto 0;
    font-size: clamp(1.05rem, 1.35vw, 1.55rem);
    line-height: 1.72;
    font-weight: 500;
    color: rgba(233, 239, 247, 0.78);
}

.pag_sostenibilidad_actions {
    margin-top: 2.4rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    justify-content: center;
}

.pag_sostenibilidad_btn.btn-tech {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 0.95rem 1.8rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, #1db7e8 0%, #39d0f2 100%);
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    text-decoration: none;
    box-shadow:
        0 18px 38px rgba(33, 191, 238, 0.22),
        0 0 0 1px rgba(255, 255, 255, 0.04) inset;
    transition: transform 0.35s ease, box-shadow 0.35s ease, filter 0.35s ease;
}

.pag_sostenibilidad_btn.btn-tech:hover {
    color: #fff;
    transform: translateY(-3px);
    filter: brightness(1.04);
    box-shadow:
        0 24px 46px rgba(33, 191, 238, 0.26),
        0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

.pag_sostenibilidad_btn.btn-tech:focus-visible {
    outline: 3px solid rgba(98, 218, 255, 0.5);
    outline-offset: 3px;
}

.pag_sostenibilidad_hero::after {
    content: "";
    position: absolute;
    top: 0;
    right: -6%;
    width: 46%;
    height: 100%;
    background:
        radial-gradient(circle at 50% 30%, rgba(255, 255, 255, 0.03), transparent 24%),
        linear-gradient(120deg, rgba(255, 255, 255, 0.02), transparent 40%);
    clip-path: polygon(18% 0, 100% 0, 100% 100%, 0 100%, 10% 60%, 0 25%);
    opacity: 0.7;
    pointer-events: none;
    z-index: 1;
}

@media (max-width: 1199.98px) {
    .pag_sostenibilidad_intro {
        max-width: 820px;
        padding: 7rem 0 4.5rem;
    }

    .pag_sostenibilidad_desc {
        max-width: 700px;
    }
}

@media (max-width: 991.98px) {
    .pag_sostenibilidad_hero {
        min-height: auto;
    }

    .pag_sostenibilidad_intro {
        padding: 6.5rem 0 4rem;
    }

    .pag_sostenibilidad_title {
        max-width: 100%;
    }

    .pag_sostenibilidad_desc {
        max-width: 100%;
    }

    .pag_sostenibilidad_hero::after {
        width: 55%;
        opacity: 0.45;
    }
}

@media (max-width: 767.98px) {
    .pag_sostenibilidad_intro {
        padding: 5.5rem 0 3.5rem;
    }

    .pag_sostenibilidad_kicker {
        padding: 0.85rem 1rem;
        font-size: 0.76rem;
        line-height: 1.35;
        gap: 0.55rem;
    }

    .pag_sostenibilidad_title {
        font-size: clamp(2.5rem, 12vw, 4rem);
        line-height: 0.98;
    }

    .pag_sostenibilidad_desc {
        margin-top: 1.5rem;
        font-size: 1rem;
        line-height: 1.65;
    }

    .pag_sostenibilidad_btn.btn-tech {
        width: 100%;
        min-height: 58px;
        font-size: 1.05rem;
    }

    .pag_sostenibilidad_hero::after {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pag_sostenibilidad_btn.btn-tech {
        transition: none;
    }

    .pag_sostenibilidad_hero_media video {
        transform: none;
    }
}

/* ==========================================================
   CODIGO SOSTENIBLIDAD
   RESUMEN PRINCIPAL SOSTENIBILIDAD
========================================================== */

.pag_sostenibilidad_resumen {
    position: relative;
    color: #e6edf3;
    overflow: hidden;
}

.pag_sostenibilidad_resumen .badge_estandar {
    background: #9be15a;
    color: #07110a;
    box-shadow: 0 0 24px rgba(155, 225, 90, 0.24);
}

.pag_sostenibilidad_resumen__content {
    position: relative;
    z-index: 1;
}

.pag_sostenibilidad_resumen__accent {
    color: #8edc58;
    text-shadow: 0 0 18px rgba(142, 220, 88, 0.14);
}

.pag_sostenibilidad_resumen__description {
    color: rgba(214, 228, 219, 0.78);
    font-size: 1rem;
    line-height: 1.6;
}

.pag_sostenibilidad_resumen__cards {
    position: relative;
    z-index: 1;
}

.pag_sostenibilidad_resumen__card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(132, 209, 115, 0.72);
    border-radius: 12px;
    padding: 24px;
    height: 100%;
    transition: all 0.3s ease;
}

.pag_sostenibilidad_resumen__card:hover {
    transform: translateY(-5px);
    border-color: #9be15a;
    box-shadow: 0 10px 30px rgba(155, 225, 90, 0.16);
}

.pag_sostenibilidad_resumen__card .h3_estandar {
    color: #f5f8fc;
}

.pag_sostenibilidad_resumen__card .p_estandar {
    color: rgba(223, 233, 227, 0.82);
}

.pag_sostenibilidad_resumen__tags {
    margin-top: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.pag_sostenibilidad_resumen__tags span,
.pag_sostenibilidad_resumen__tags a {
    border: 1px solid rgba(132, 209, 115, 0.82);
    color: #9be15a;
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 0.8rem;
    transition: 0.3s;
}

.pag_sostenibilidad_resumen__tags span:hover,
.pag_sostenibilidad_resumen__tags a:hover {
    background: #9be15a;
    color: #07110a;
    border-color: #9be15a;
}

.pag_sostenibilidad_resumen__bg-text {
    position: absolute;
    right: 0;
    bottom: -10px;
    font-size: clamp(4rem, 14vw, 12rem);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -0.06em;
    color: rgba(147, 219, 103, 0.08);
    pointer-events: none;
    user-select: none;
    text-transform: uppercase;
}

@media (max-width: 767.98px) {
    .pag_sostenibilidad_resumen__card {
        padding: 20px;
    }

    .pag_sostenibilidad_resumen__bg-text {
        font-size: clamp(3.2rem, 18vw, 7rem);
        bottom: -2px;
    }
}

/* ==========================================================
   MEJORA VISUAL MODAL CONTACTO
========================================================== */

.contact_base24_modal .modal-dialog {
    max-width: 1020px;
    margin: 1.25rem auto;
}

.contact_base24_modal .modal-content {
    position: relative;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.contact_base24_modal__content {
    position: relative;
    background:
        radial-gradient(circle at top right, rgba(123, 255, 78, 0.09), transparent 20%),
        radial-gradient(circle at 0% 0%, rgba(86, 194, 255, 0.12), transparent 28%),
        linear-gradient(180deg, rgba(9, 20, 34, 0.985) 0%, rgba(4, 9, 18, 1) 100%);
    border: 1px solid rgba(118, 201, 255, 0.18);
    border-radius: 1.9rem;
    overflow: hidden;
    box-shadow:
        0 36px 90px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(255,255,255,0.03) inset,
        0 0 44px rgba(63, 162, 255, 0.08);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.contact_base24_modal__content::before {
    content: "";
    position: absolute;
    inset: 0;
    opacity: 0.08;
    pointer-events: none;
    background-image:
        linear-gradient(rgba(120, 180, 255, 0.08) 1px, transparent 1px),
        linear-gradient(90deg, rgba(120, 180, 255, 0.08) 1px, transparent 1px);
    background-size: 34px 34px;
}

.contact_base24_modal__content::after {
    content: "";
    position: absolute;
    inset: auto -8% -18% auto;
    width: 28rem;
    height: 28rem;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(123, 255, 78, 0.1) 0%, rgba(123, 255, 78, 0.02) 42%, transparent 70%);
    filter: blur(18px);
    pointer-events: none;
}

.contact_base24_modal__header {
    position: relative;
    padding: 1.7rem 1.8rem 1.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.035) 0%, rgba(255,255,255,0.01) 100%);
}

.contact_base24_modal__header-copy {
    position: relative;
    z-index: 1;
    max-width: 780px;
    padding-right: 4rem;
}

.contact_base24_modal__title {
    margin-top: 0.7rem;
    font-size: clamp(1.55rem, 2.4vw, 2rem);
    line-height: 1.05;
    letter-spacing: -0.03em;
}

.contact_base24_modal__subtitle {
    margin-top: 0.6rem;
    max-width: 62ch;
    color: rgba(232,239,247,0.76);
    line-height: 1.65;
}

.contact_base24_modal__close {
    position: absolute;
    top: 1.15rem;
    right: 1.15rem;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 0.95rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(118, 201, 255, 0.16);
    opacity: 1;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
    transition: transform 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.contact_base24_modal__close:hover {
    transform: translateY(-1px) rotate(90deg);
    background: rgba(118, 201, 255, 0.08);
    border-color: rgba(118, 201, 255, 0.26);
}

.contact_base24_modal__body {
    position: relative;
    z-index: 1;
    padding: 1.35rem;
    background: linear-gradient(180deg, rgba(255,255,255,0.015) 0%, rgba(255,255,255,0) 100%);
}

.contact_base24_modal__field {
    position: relative;
}

.contact_base24_modal__field-icon {
    left: 1.05rem;
    width: 2rem;
    height: 2rem;
    border-radius: 0.65rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(118, 201, 255, 0.08);
    border: 1px solid rgba(118, 201, 255, 0.14);
    color: rgba(153, 228, 255, 0.95);
    font-size: 0.86rem;
}

.contact_base24_modal__field-icon--top {
    top: 0.9rem;
}

.contact_base24_modal__control.form-control,
.contact_base24_modal__control.form-select {
    min-height: 54px;
    border-radius: 0.95rem;
    border: 1px solid rgba(118, 201, 255, 0.12);
    background: linear-gradient(180deg, rgba(9, 20, 34, 0.9) 0%, rgba(6, 14, 26, 0.98) 100%);
    color: #f4f8fc;
    padding: 0.88rem 0.95rem 0.88rem 3.15rem;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.03),
        0 8px 22px rgba(0, 0, 0, 0.18);
    transition:
        border-color 0.28s ease,
        box-shadow 0.28s ease,
        background-color 0.28s ease,
        transform 0.28s ease;
}

.contact_base24_modal__control.form-control::placeholder,
.contact_base24_modal__control.form-select {
    color: rgba(232, 239, 247, 0.48);
}

.contact_base24_modal__control.form-control:hover,
.contact_base24_modal__control.form-select:hover {
    border-color: rgba(118, 201, 255, 0.2);
}

.contact_base24_modal__control.form-control:focus,
.contact_base24_modal__control.form-select:focus {
    border-color: rgba(123,255,78,0.34);
    background: linear-gradient(180deg, rgba(10, 24, 40, 0.98) 0%, rgba(8, 18, 32, 1) 100%);
    color: #ffffff;
    transform: translateY(-1px);
    box-shadow:
        0 0 0 0.22rem rgba(123,255,78,0.08),
        0 16px 30px rgba(0, 0, 0, 0.22),
        0 0 22px rgba(118, 201, 255, 0.08);
}

.contact_base24_modal__control--textarea.form-control {
    min-height: 124px;
    padding-top: 0.9rem;
}

.contact_base24_modal__switch {
    padding: 0.9rem 1rem;
    border-radius: 0.95rem;
    background:
        linear-gradient(180deg, rgba(10, 22, 37, 0.92) 0%, rgba(7, 17, 29, 0.82) 100%);
    border: 1px solid rgba(118, 201, 255, 0.12);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.02);
}

.contact_base24_modal__switch .form-check-label {
    color: rgba(236,242,248,0.82);
}

.contact_base24_modal__switch .form-check-label a {
    color: #9be9ff;
}

.contact_base24_modal__submit {
    min-height: 52px;
    margin-top: 0.35rem;
    border-radius: 1rem;
    font-size: 1rem;
    letter-spacing: 0.015em;
    background: linear-gradient(135deg, #1ea9ff 0%, #4f8cff 52%, #7bff4e 120%);
    box-shadow:
        0 16px 34px rgba(59, 130, 246, 0.28),
        inset 0 0 0 1px rgba(255,255,255,0.08);
}

.contact_base24_modal__submit:hover,
.contact_base24_modal__submit:focus {
    background: linear-gradient(135deg, #31b3ff 0%, #67a0ff 50%, #8fff66 120%);
    box-shadow:
        0 22px 40px rgba(59, 130, 246, 0.32),
        0 0 28px rgba(123,255,78,0.08);
}

.contact_base24_modal .invalid-feedback,
.contact_base24_modal .valid-feedback {
    margin-top: 0.5rem;
    padding-left: 0.2rem;
}

.contact_base24_modal__body .row.g-3 {
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
}

@media (min-width: 1200px) {
    .contact_base24_modal .modal-dialog {
        max-width: 980px;
    }

    .contact_base24_modal__body .row.g-3 {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.85rem;
    }

    .contact_base24_modal__body .row.g-3 > [class*="col-"] {
        width: auto;
        max-width: none;
        padding-right: 0;
        padding-left: 0;
    }

    .contact_base24_modal__body .row.g-3 > .col-12 {
        grid-column: 1 / -1;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .contact_base24_modal .modal-dialog {
        max-width: 900px;
    }

    .contact_base24_modal__body .row.g-3 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.85rem;
    }

    .contact_base24_modal__body .row.g-3 > [class*="col-"] {
        width: auto;
        max-width: none;
        padding-right: 0;
        padding-left: 0;
    }

    .contact_base24_modal__body .row.g-3 > .col-12 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 991.98px) {
    .contact_base24_modal .modal-dialog {
        max-width: calc(100vw - 1rem);
        margin: 0.5rem auto;
    }

    .contact_base24_modal__header {
        padding: 1.35rem 1.2rem 1rem;
    }

    .contact_base24_modal__body {
        padding: 1.2rem;
    }
}

@media (max-width: 767.98px) {
    .contact_base24_modal__content {
        border-radius: 1.35rem;
    }

    .contact_base24_modal__header-copy {
        padding-right: 3.2rem;
    }

    .contact_base24_modal__title {
        font-size: 1.45rem;
    }

    .contact_base24_modal__control.form-control,
    .contact_base24_modal__control.form-select {
        min-height: 56px;
        padding-left: 3.25rem;
    }

    .contact_base24_modal__body .row.g-3 {
        display: block;
    }
}

/* ==========================================================
   AJUSTE FORMAL MODAL CONTACTO
========================================================== */

.contact_base24_modal .modal-dialog {
    max-width: 980px;
}

.contact_base24_modal__content {
    background: linear-gradient(180deg, #0b1030 0%, #090d26 100%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 1.1rem;
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.42);
}

.contact_base24_modal__content::before,
.contact_base24_modal__content::after {
    display: none;
}

.contact_base24_modal__header {
    padding: 0.9rem 1.4rem;
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.contact_base24_modal__header-copy {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    max-width: calc(100% - 3.5rem);
    padding-right: 0;
}

.contact_base24_modal__header-copy .badge_estandar {
    order: 2;
    margin-bottom: 0;
    padding: 0.35rem 0.8rem;
    border-radius: 0.45rem;
    background: linear-gradient(135deg, #76d35c 0%, #22b8d6 100%);
    color: #ffffff;
    box-shadow: none;
    font-size: 0.82rem;
    font-weight: 800;
}

.contact_base24_modal__title {
    order: 1;
    margin: 0;
    font-size: 1rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

.contact_base24_modal__title::after {
    content: " |";
    margin-left: 0.2rem;
    color: rgba(255, 255, 255, 0.72);
    font-weight: 600;
}

.contact_base24_modal__subtitle {
    order: 3;
    flex: 0 0 100%;
    margin-top: 0.15rem;
    font-size: 0.84rem;
    line-height: 1.45;
    color: rgba(232, 239, 247, 0.64);
}

.contact_base24_modal__close {
    top: 0.8rem;
    right: 0.95rem;
    width: 2.35rem;
    height: 2.35rem;
    border: 0;
    border-radius: 0.6rem;
    background: transparent;
    box-shadow: none;
}

.contact_base24_modal__close:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: transparent;
}

.contact_base24_modal__body {
    padding: 1.35rem 1.4rem 1.2rem;
}

.contact_base24__label {
    margin-bottom: 0.45rem;
    font-size: 0.9rem;
    font-weight: 700;
    color: rgba(245, 248, 252, 0.96);
}

.contact_base24_modal__body .row.g-3 {
    --bs-gutter-x: 0.95rem;
    --bs-gutter-y: 0.95rem;
}

.contact_base24_modal__field-icon {
    left: 0.95rem;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 0;
    background: transparent;
    border: 0;
    color: #22b8d6;
    font-size: 0.92rem;
}

.contact_base24_modal__field::after {
    content: "";
    position: absolute;
    top: 1px;
    bottom: 1px;
    left: 2.45rem;
    width: 1px;
    background: rgba(255, 255, 255, 0.14);
    pointer-events: none;
}

.contact_base24_modal__field--textarea::after {
    top: 1px;
    bottom: 1px;
}

.contact_base24_modal__control.form-control,
.contact_base24_modal__control.form-select {
    min-height: 34px;
    padding: 0.48rem 0.85rem 0.48rem 3rem;
    border-radius: 0.42rem;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.06);
    box-shadow: none;
    font-size: 0.96rem;
}

.contact_base24_modal__control.form-control:hover,
.contact_base24_modal__control.form-select:hover {
    border-color: rgba(255, 255, 255, 0.18);
}

.contact_base24_modal__control.form-control:focus,
.contact_base24_modal__control.form-select:focus {
    transform: none;
    border-color: rgba(73, 188, 255, 0.42);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: 0 0 0 0.18rem rgba(73, 188, 255, 0.08);
}

.contact_base24_modal__control--textarea.form-control {
    min-height: 104px;
    padding-top: 0.58rem;
}

.contact_base24_modal__switch {
    padding: 0.75rem 0.9rem;
    border-radius: 0.55rem;
    background: rgba(255, 255, 255, 0.04);
}

.contact_base24_modal__submit {
    min-height: 48px;
    border-radius: 0.5rem;
    font-size: 0.95rem;
    font-weight: 800;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: linear-gradient(135deg, #2098ff 0%, #4f8cff 100%);
    box-shadow:
        0 14px 28px rgba(59, 130, 246, 0.28),
        0 0 0 1px rgba(255,255,255,0.04) inset;
}

.contact_base24_modal__submit:hover,
.contact_base24_modal__submit:focus {
    box-shadow:
        0 18px 34px rgba(59, 130, 246, 0.32),
        0 0 20px rgba(79, 140, 255, 0.14);
}

.contact_base24_modal__body .row.g-3 > .col-12:last-child {
    position: sticky;
    bottom: -1px;
    z-index: 3;
    padding-top: 0.55rem;
    background: linear-gradient(180deg, rgba(9, 13, 38, 0) 0%, rgba(9, 13, 38, 0.92) 34%, rgba(9, 13, 38, 1) 100%);
}

@media (min-width: 768px) {
    .contact_base24_modal .modal-dialog {
        max-width: 960px;
    }

    .contact_base24_modal__body .row.g-3 > [class*="col-"]:not(.col-12) .contact_base24__field-group {
        max-width: 430px;
        margin-left: auto;
        margin-right: auto;
    }

    .contact_base24_modal__body .row.g-3 {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.95rem;
    }

    .contact_base24_modal__body .row.g-3 > [class*="col-"] {
        width: auto;
        max-width: none;
        padding-right: 0;
        padding-left: 0;
    }

    .contact_base24_modal__body .row.g-3 > .col-12 {
        grid-column: 1 / -1;
    }
}

@media (max-width: 767.98px) {
    .contact_base24_modal .modal-dialog {
        max-width: calc(100vw - 0.85rem);
    }

    .contact_base24_modal__header {
        padding: 0.9rem 1rem;
    }

    .contact_base24_modal__header-copy {
        max-width: calc(100% - 2.8rem);
        gap: 0.4rem;
    }

    .contact_base24_modal__header-copy .badge_estandar {
        font-size: 0.74rem;
    }

    .contact_base24_modal__title {
        font-size: 0.95rem;
    }

    .contact_base24_modal__subtitle {
        font-size: 0.8rem;
    }

    .contact_base24_modal__body {
        padding: 1rem;
    }

    .contact_base24_modal__body .row.g-3 {
        display: block;
    }
}


.soluciones-scroll {
    position: relative;
    height: 400vh;
    background: #020503;
}

.soluciones-scroll__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

/* cada panel ocupa toda la pantalla */
.solucion-panel {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100vh;
    overflow: hidden;
    will-change: transform;
    background:
        radial-gradient(circle at 15% 20%, rgba(34, 197, 94, 0.12), transparent 30%),
        linear-gradient(180deg, #031009 0%, #04150c 45%, #020503 100%);
    border: 0;
}

/* orden de apilado */
.solucion-panel--1 { z-index: 1; transform: translateX(0%); }
.solucion-panel--2 { z-index: 2; transform: translateX(100%); }
.solucion-panel--3 { z-index: 3; transform: translateX(100%); }
.solucion-panel--4 { z-index: 4; transform: translateX(100%); }

/* evitar espacios heredados */
.soluciones-scroll .container-fluid,
.soluciones-scroll .row,
.soluciones-scroll [class*="col-"] {
    height: 100%;
}

.soluciones-scroll .container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100%;
}

.soluciones-scroll .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.soluciones-scroll [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

/* columna de texto */
.solucion-panel__content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 5vw, 5rem);
    background:
        linear-gradient(90deg, rgba(2, 8, 5, 0.96) 0%, rgba(2, 8, 5, 0.90) 60%, rgba(2, 8, 5, 0.78) 100%);
}

.solucion-panel__content .badge_estandar,
.solucion-panel__content .h2_estandar,
.solucion-panel__content .p_estandar {
    position: relative;
    z-index: 2;
}

.solucion-panel__content .h2_estandar,
.solucion-panel__content .p_estandar {
    color: #fff;
}

.solucion-panel__content .p_estandar {
    max-width: 620px;
}

.solucion-panel__content .badge_estandar {
    width: fit-content;
}

/* columna de video */
.solucion-panel__media {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 100vh;
    overflow: hidden;
    padding: 0;
    margin: 0;
    background: #000;
}

.solucion-panel__media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* overlay del video para que no compita visualmente */
.solucion-panel__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(2, 8, 5, 0.18) 0%, rgba(2, 8, 5, 0.04) 25%, rgba(2, 8, 5, 0.00) 100%),
        radial-gradient(circle at 70% 25%, rgba(255, 255, 255, 0.10), transparent 22%),
        linear-gradient(180deg, rgba(0, 0, 0, 0.05) 0%, rgba(0, 0, 0, 0.22) 100%);
    pointer-events: none;
}

/* móvil: quitar efecto sticky y mostrar normal */
@media (max-width: 991.98px) {
    .soluciones-scroll {
        height: auto;
    }

    .soluciones-scroll__sticky {
        position: relative;
        height: auto;
        overflow: visible;
    }

    .solucion-panel {
        position: relative;
        transform: none !important;
        height: auto;
        min-height: 100vh;
    }

    .solucion-panel .row {
        min-height: 100vh;
    }

    .solucion-panel__content {
        min-height: 50vh;
        padding: 2rem 1.25rem;
        background:
            linear-gradient(180deg, rgba(2, 8, 5, 0.96) 0%, rgba(2, 8, 5, 0.88) 100%);
    }

    .solucion-panel__media {
        min-height: 50vh;
    }
}























.contact-modal-dialog {
    max-width: min(1140px, calc(100vw - 24px));
    margin: 0.75rem auto;
}

.contact-modal {
    border: 0;
    border-radius: 22px;
    overflow: hidden;
    background: #07110b;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
    position: relative;
    max-height: calc(100vh - 24px);
}

.contact-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 30;
    background-color: rgba(255, 255, 255, 0.92);
    border-radius: 50%;
    opacity: 1;
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}

.contact-modal__visual {
    position: relative;
    height: 100%;
    min-height: 640px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 28px;
    background:
        radial-gradient(circle at 20% 25%, rgba(34, 197, 94, 0.22), transparent 28%),
        radial-gradient(circle at 80% 20%, rgba(14, 165, 233, 0.20), transparent 30%),
        linear-gradient(145deg, #031b2e 0%, #043d3a 42%, #0b3b2e 72%, #0f766e 100%);
}

.contact-modal__copy--centered {
    position: relative;
    z-index: 2;
    height: 100%;
    width: 100%;
    max-width: 480px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
}

.contact-modal__eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.18);
    margin-bottom: 18px;
    backdrop-filter: blur(10px);
}

.contact-modal__title {
    font-size: clamp(1.7rem, 2vw, 2.3rem);
    line-height: 1.12;
    font-weight: 700;
    margin-bottom: 14px;
    max-width: 420px;
}

.contact-modal__text {
    font-size: 0.98rem;
    line-height: 1.6;
    color: rgba(255,255,255,0.90);
    max-width: 420px;
    margin-bottom: 24px;
}

.contact-modal__visual-image-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.contact-modal__visual-image {
    max-width: min(320px, 78%);
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 16px 34px rgba(0, 0, 0, 0.28));
}

@media (max-width: 1199.98px) {
    .contact-modal__visual {
        min-height: 580px;
        padding: 26px 22px;
    }

    .contact-modal__title {
        font-size: 1.9rem;
    }
}
.contact-modal__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contact-modal__overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(4, 10, 8, 0.24) 0%, rgba(4, 10, 8, 0.68) 100%),
        linear-gradient(90deg, rgba(5, 15, 10, 0.72) 0%, rgba(5, 15, 10, 0.18) 100%),
        radial-gradient(circle at 20% 25%, rgba(34, 197, 94, 0.18), transparent 28%);
}

.contact-modal__copy {
    position: relative;
    z-index: 2;
    height: 100%;
    flex-direction: column;
    color: #fff;
    bottom: 10px;
}

.contact-modal__eyebrow {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 7px 12px;
    border-radius: 999px;
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.18);
    margin-bottom: 14px;
    backdrop-filter: blur(8px);
}

.contact-modal__title {
    font-size: clamp(1.55rem, 1.8vw, 2.2rem);
    line-height: 1.08;
    font-weight: 700;
    margin-bottom: 12px;
}

.contact-modal__text {
    font-size: 0.95rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.88);
    max-width: 460px;
    margin-bottom: 0;
}

.contact-modal__form-wrap {
    background: linear-gradient(180deg, #E0DEDE 0%, #f7faf8 100%);
    padding: 26px 28px 22px;
    height: 100%;
    overflow-y: auto;
    max-height: calc(100vh - 24px);
}

.contact-modal__header {
    margin-bottom: 14px;
}

.contact-modal__badge {
    display: inline-block;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #1f7a4c;
    background: rgba(34, 197, 94, 0.10);
    border: 1px solid rgba(34, 197, 94, 0.15);
    padding: 7px 11px;
    border-radius: 999px;
    margin-bottom: 12px;
}

.contact-modal__heading {
    font-size: clamp(1.9rem, 2vw, 2.6rem);
    line-height: 1.05;
    font-weight: 700;
    color: #0c1b13;
    margin-bottom: 8px;
}

.contact-modal__subheading {
    color: #5d6d64;
    font-size: 0.95rem;
    line-height: 1.45;
    margin-bottom: 0;
}

.contact-form__control {
    border-radius: 14px;
    border: 1px solid #d8e3dc;
    background-color: #fff;
    min-height: 50px;
    box-shadow: none;
    transition: border-color 0.22s ease, box-shadow 0.22s ease, transform 0.22s ease;
}

.contact-form__control:focus {
    border-color: #22c55e;
    box-shadow: 0 0 0 0.18rem rgba(34, 197, 94, 0.12);
    transform: translateY(-1px);
}

.contact-form__group .form-control,
.contact-form__group .form-select {
    padding-left: 0.95rem;
    padding-right: 0.95rem;
}

.contact-form__group label {
    color: #617267;
}

.contact-form__textarea {
    min-height: 86px !important;
    resize: none;
}

.contact-form__check {
    background: #f5f8f6;
    border: 1px solid #e2ebe5;
    border-radius: 14px;
    padding: 20px 84px;
}

.contact-form__check .form-check-label {
    color: #31443a;
    line-height: 1.45;
    font-size: 0.95rem;
}

.contact-form__check a {
    color: #157347;
    font-weight: 600;
    text-decoration: none;
}

.contact-form__check a:hover {
    text-decoration: underline;
}

.contact-form__check .invalid-feedback {
    display: none;
    font-size: 0.8rem;
    margin-top: 6px;
}

.contact-form.was-validated .contact-form__check .form-check-input:invalid ~ .invalid-feedback {
    display: block;
}

.contact-form__submit {
    min-height: 50px;
    border: 0;
    border-radius: 14px;
    font-weight: 700;
    font-size: 0.98rem;
    color: #fff;
    background: linear-gradient(90deg, #157347 0%, #1f9d5b 100%);
    box-shadow: 0 12px 22px rgba(25, 135, 84, 0.18);
    transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
}

.contact-form__submit:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 28px rgba(25, 135, 84, 0.24);
    filter: brightness(1.02);
    color: #fff;
}

.contact-form .invalid-feedback {
    font-size: 0.78rem;
}

@media (max-width: 1199.98px) {
    .contact-modal__form-wrap {
        padding: 22px 22px 18px;
    }

    .contact-modal__visual {
        min-height: 600px;
    }
}

@media (max-width: 991.98px) {
    .contact-modal-dialog {
        max-width: calc(100vw - 16px);
        margin: 0.5rem auto;
        height: calc(100dvh - 16px);
    }

    .contact-modal {
        border-radius: 16px;
        height: 100%;
        max-height: none;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .contact-modal__form-wrap {
        padding: 20px 16px 16px;
    }

    .contact-modal__heading {
        font-size: 1.8rem;
    }
}

@media (max-width: 575.98px) {
    .contact-modal-dialog {
        max-width: calc(100vw - 12px);
        margin: 0.35rem auto;
        height: calc(100dvh - 12px);
    }

    .contact-modal {
        border-radius: 14px;
    }

    .contact-modal__form-wrap {
        padding: 18px 14px 14px;
    }

    .contact-modal__badge {
        font-siform-floating ze: 0.68rem;
        padding: 6px 10px;
    }

    .contact-modal__heading {
        font-size: 1.55rem;
    }

    .contact-modal__subheading {
        font-size: 0.9rem;
    }

    .contact-form__control {
        min-height: 48px;
        border-radius: 12px;
    }

    .contact-form__textarea {
        min-height: 78px !important;
    }

    .contact-form__check {
        padding: 10px 12px;
    }

    .contact-form__submit {
        min-height: 48px;
    }
}

.badge {
    --bs-badge-color: #000000;
}


.form-floating>.form-control, .form-floating>.form-control-plaintext, .form-floating>.form-select {
    height: calc(3rem + calc(var(--bs-border-width) * 2)); 
    min-height: calc(3.5rem + calc(var(--bs-border-width) * 2));
    line-height: 1.25;
}
