/* VIAJES BUMERAN - SERVICIOS PARALLAX V1 */
.vb-anchor-alias{
    position:absolute;
    top:-100px;
}

.vb-services-parallax{
    position:relative;
    height:285vh;
    min-height:1900px;
    background:#eef5ff;
    color:#0a356f;
    isolation:isolate;
}

.vb-services-sticky{
    position:sticky;
    top:0;
    height:100vh;
    min-height:720px;
    overflow:hidden;
    background:
        linear-gradient(180deg,#f8fbff 0%,#edf5ff 48%,#e6f1ff 100%);
}

.vb-services-bg,
.vb-services-world{
    position:absolute;
    inset:0;
}

.vb-services-bg{
    overflow:hidden;
    pointer-events:none;
}

.vb-services-map{
    position:absolute;
    inset:-10%;
    opacity:.44;
    background-image:
        linear-gradient(rgba(0,98,227,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(0,98,227,.045) 1px,transparent 1px);
    background-size:72px 72px;
    transform:perspective(900px) rotateX(56deg) translateY(24%);
    transform-origin:center bottom;
}

.vb-services-glow{
    position:absolute;
    width:48vw;
    height:48vw;
    border-radius:50%;
    filter:blur(25px);
    opacity:.55;
}

.vb-services-glow-a{
    left:-15vw;
    top:-20vw;
    background:radial-gradient(circle,rgba(0,98,227,.26),transparent 66%);
}

.vb-services-glow-b{
    right:-18vw;
    bottom:-24vw;
    background:radial-gradient(circle,rgba(37,180,128,.20),transparent 66%);
}

.vb-services-route{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    opacity:.34;
}

.vb-services-route path{
    fill:none;
    stroke:#0062e3;
    stroke-width:3;
    stroke-linecap:round;
    stroke-dasharray:12 18;
    animation:vbRouteFlow 12s linear infinite;
}

@keyframes vbRouteFlow{
    to{stroke-dashoffset:-360}
}

.vb-services-copy{
    position:absolute;
    z-index:30;
    top:clamp(92px,11vh,130px);
    left:max(5vw,calc((100vw - 1320px)/2));
    width:min(560px,42vw);
}

.vb-services-copy .eyebrow{
    display:block;
    margin-bottom:12px;
    color:#0062e3;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
}

.vb-services-copy h2{
    margin:0;
    max-width:590px;
    color:#0a356f;
    font-family:Manrope,Arial,sans-serif;
    font-size:clamp(54px,6.8vw,108px);
    line-height:.88;
    letter-spacing:-.065em;
}

.vb-services-copy p{
    max-width:470px;
    margin:20px 0 0;
    color:#536d91;
    font-size:clamp(16px,1.25vw,20px);
    line-height:1.6;
}

.vb-services-progress{
    width:min(360px,80%);
    height:4px;
    margin-top:28px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(0,98,227,.12);
}

.vb-services-progress span{
    display:block;
    width:100%;
    height:100%;
    border-radius:inherit;
    background:#0062e3;
    transform:scaleX(var(--services-progress,0));
    transform-origin:left center;
}

.vb-services-core{
    position:absolute;
    z-index:12;
    left:50%;
    top:52%;
    width:min(31vw,430px);
    aspect-ratio:1;
    transform:translate(-50%,-50%);
    pointer-events:none;
}

.vb-services-core-ring{
    position:absolute;
    inset:0;
    border:1px solid rgba(0,98,227,.18);
    border-radius:50%;
}

.vb-services-core-ring-a{
    animation:vbCoreSpin 22s linear infinite;
}

.vb-services-core-ring-b{
    inset:12%;
    border-style:dashed;
    animation:vbCoreSpin 16s linear infinite reverse;
}

@keyframes vbCoreSpin{
    to{transform:rotate(360deg)}
}

.vb-services-core-card{
    position:absolute;
    inset:25%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:24px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:32px;
    background:linear-gradient(145deg,#0062e3,#0047b3);
    color:#fff;
    text-align:center;
    box-shadow:0 32px 70px rgba(0,71,179,.28);
}

.vb-services-core-card > span{
    display:grid;
    width:58px;
    height:58px;
    place-items:center;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    font-weight:900;
}

.vb-services-core-card strong{
    font-size:clamp(17px,1.5vw,24px);
    line-height:1.05;
}

.vb-services-core-card small{
    max-width:180px;
    color:rgba(255,255,255,.74);
    line-height:1.35;
}

.vb-service-card{
    position:absolute;
    z-index:20;
    left:50%;
    top:50%;
    width:clamp(190px,16vw,270px);
    min-height:150px;
    padding:20px;
    border:1px solid rgba(255,255,255,.75);
    border-radius:24px;
    background:rgba(255,255,255,.82);
    box-shadow:0 24px 55px rgba(17,58,114,.15);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    transform:
        translate(-50%,-50%)
        translate3d(var(--service-x,0px),var(--service-y,0px),0)
        rotate(var(--service-r,0deg))
        scale(var(--service-scale,.86));
    opacity:var(--service-opacity,0);
    will-change:transform,opacity;
}

.vb-service-card::after{
    content:"";
    position:absolute;
    inset:auto 18px 0;
    height:4px;
    border-radius:999px 999px 0 0;
    background:linear-gradient(90deg,#0062e3,#35b886);
    opacity:.85;
}

.vb-service-icon{
    display:grid;
    width:46px;
    height:46px;
    margin-bottom:16px;
    place-items:center;
    border-radius:14px;
    background:#e8f2ff;
    color:#0062e3;
    font-size:23px;
    font-weight:900;
}

.vb-service-card small{
    display:block;
    margin-bottom:5px;
    color:#0062e3;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.vb-service-card strong{
    display:block;
    color:#0a356f;
    font-size:clamp(16px,1.25vw,21px);
    line-height:1.08;
}

.vb-service-card p{
    margin:10px 0 0;
    color:#667b98;
    font-size:12px;
    line-height:1.45;
}

.vb-service-card-compact{
    width:clamp(130px,11vw,175px);
    min-height:94px;
    padding:16px;
}

.vb-service-card-compact .vb-service-icon{
    width:36px;
    height:36px;
    margin-bottom:10px;
    font-size:17px;
}

.vb-services-bottom{
    position:absolute;
    z-index:34;
    left:max(5vw,calc((100vw - 1320px)/2));
    right:max(5vw,calc((100vw - 1320px)/2));
    bottom:clamp(28px,5vh,62px);
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:28px;
}

.vb-services-bottom > div{
    max-width:520px;
}

.vb-services-bottom span{
    display:block;
    margin-bottom:8px;
    color:#0062e3;
    font-size:11px;
    font-weight:900;
    letter-spacing:.13em;
    text-transform:uppercase;
}

.vb-services-bottom strong{
    color:#0a356f;
    font-size:clamp(17px,1.35vw,23px);
    line-height:1.25;
}

.vb-services-bottom .btn{
    flex:none;
    min-height:54px;
    border-radius:16px;
}

@media(max-width:1050px){
    .vb-services-copy{
        width:min(540px,52vw);
    }

    .vb-services-core{
        left:67%;
        width:min(38vw,390px);
    }

    .vb-service-card{
        width:210px;
    }
}

@media(max-width:760px){
    .vb-services-parallax{
        height:auto;
        min-height:0;
        padding:70px 0 72px;
    }

    .vb-services-sticky{
        position:relative;
        top:auto;
        height:auto;
        min-height:0;
        overflow:visible;
        background:linear-gradient(180deg,#f8fbff,#eaf3ff);
    }

    .vb-services-bg{
        inset:-70px 0 -72px;
    }

    .vb-services-copy{
        position:relative;
        top:auto;
        left:auto;
        width:auto;
        padding:0 20px;
    }

    .vb-services-copy h2{
        font-size:clamp(48px,15vw,72px);
    }

    .vb-services-core{
        position:relative;
        left:auto;
        top:auto;
        width:min(76vw,330px);
        margin:42px auto 28px;
        transform:none;
    }

    .vb-services-world{
        position:relative;
        inset:auto;
        display:grid;
        grid-auto-flow:column;
        grid-auto-columns:82vw;
        gap:14px;
        overflow-x:auto;
        padding:14px 20px 24px;
        scroll-snap-type:x mandatory;
        scrollbar-width:none;
    }

    .vb-services-world::-webkit-scrollbar{
        display:none;
    }

    .vb-service-card,
    .vb-service-card-compact{
        position:relative;
        left:auto;
        top:auto;
        width:auto;
        min-height:170px;
        opacity:1!important;
        transform:none!important;
        scroll-snap-align:center;
    }

    .vb-services-bottom{
        position:relative;
        left:auto;
        right:auto;
        bottom:auto;
        display:grid;
        align-items:start;
        padding:8px 20px 0;
    }

    .vb-services-bottom .btn{
        width:100%;
    }

    .vb-services-progress{
        display:none;
    }
}

@media(prefers-reduced-motion:reduce){
    .vb-services-route path,
    .vb-services-core-ring{
        animation:none!important;
    }

    .vb-service-card{
        transition:none!important;
    }
}
