:root {
    --wires: #4f4f4f;
    --wires_anim_0: #99b0b0;
    --wires_anim_100: #4f4f4f;
}

/* 0) Envoltorio básico */
.zoom-wrap { position: relative; display: inline-block; }
.zoom-wrap img {
    margin: 0;
    display: block;
    transform-origin: center center;
    transition: transform .30s ease, margin .30s ease;;
    will-change: transform, margin;
    cursor: zoom-in !important;
    z-index: 0;
}


#ver_info .carousel,
#ver_info .carousel-inner,
#ver_info .carousel-item { overflow: visible; }

#ver_info .carousel-item .zoom-wrap,
#ver_info .carousel-item .zoom-wrap a,
#ver_info .carousel-item .zoom-wrap img {
    cursor: zoom-in !important;
}

@media (hover:hover){
    #ver_info .carousel-item.active .zoom-wrap:hover img {
        transform: scale(1.8);   /* sube/baja 1.6–2.0 a gusto */
        box-shadow: 0 0 20px rgba(0,0,0,.45);
        cursor: zoom-out !important;
        margin: 0 50% !important;
        z-index: 10000;
    }
    #ver_info .carousel-item.active .zoom-wrap:hover,
    #ver_info .carousel-item.active .zoom-wrap:hover a,
    #ver_info .carousel-item.active .zoom-wrap:hover img {
        cursor: zoom-out !important;
    }
}


/* BS5 + BS4: forzamos overflow:hidden SOLO mientras hay transición */
#ver_info .carousel-inner:has(.carousel-item-start),
#ver_info .carousel-inner:has(.carousel-item-end),
#ver_info .carousel-inner:has(.carousel-item-next),
#ver_info .carousel-inner:has(.carousel-item-prev),
#ver_info .carousel-inner:has(.active.carousel-item-left),
#ver_info .carousel-inner:has(.active.carousel-item-right) {
    overflow: hidden !important;
}

/* Anulamos el zoom durante la transición (evita “fantasmas”) */
#ver_info .carousel-inner:has(.carousel-item-start) .zoom-wrap img,
#ver_info .carousel-inner:has(.carousel-item-end)   .zoom-wrap img,
#ver_info .carousel-inner:has(.carousel-item-next)  .zoom-wrap img,
#ver_info .carousel-inner:has(.carousel-item-prev)  .zoom-wrap img,
#ver_info .carousel-inner:has(.active.carousel-item-left)  .zoom-wrap img,
#ver_info .carousel-inner:has(.active.carousel-item-right) .zoom-wrap img {
    transform: none !important;
    transition: none !important;
}

#ver_info .carousel .carousel-control-prev,
#ver_info .carousel .carousel-control-next { transition: opacity .2s ease; }

#ver_info .carousel:has(.carousel-item.active .zoom-wrap:hover) .carousel-control-prev,
#ver_info .carousel:has(.carousel-item.active .zoom-wrap:hover) .carousel-control-next {
    opacity: 0;           /* desaparecen */
    pointer-events: none; /* no capturan el ratón */
}

.carousel {
    min-height: 300px !important;
    margin: 0 auto !important;
}

/** Colors lenguage **/
.badge{
    line-height: inherit;
    font-size: 14px !important;
}
.bg-python{
    color: #ffe62c;
    background-color: #2844c1;
}

.bg-php{
    color: #212529;
    background-color: #8892BF;
}
.bg-nodejs{
    color: #212529;
    background-color: #5bc552;
}

.bg-html{
    color: #002c58;
    background-color: #fd7501;
}
/**Animation lab**/
#outer-container {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 900px !important;
    height: 100vh;
    position: relative;
    left: 0;
}
#container-lab {
    position: relative;
    width: 100%;  /* Ajusta el ancho según sea necesario */
    height: 550px;  /* Ajusta la altura según sea necesario */
    overflow: hidden; /* Evita que el contenido se salga */
    background-color: rgb(0, 0, 0); /* Fallback color */
    opacity: 0.8;
    /*background-color: rgba(255, 255, 255, 0.8);  /*White w/opacity/see-through */
    z-index: 2;
    padding: 20px;
}
/* Wires */
#wire1, #wire2, #wire3, #wire4, #wire5, #wire6, #wire7,#wire8, #wire9, #wire10, #wire11 {
    position: absolute;
    background: var(--wires);
    z-index: -1;
    height: 2px;
}
#wire1{
    top: 120px;
    left: 50px;
    width: 170px;
    transform: rotate(35deg);
    animation: wireAni 2s infinite;
}

#wire2{
    top: 188px;
    left: 200px;
    width: 170px;
    animation: wireAni 2s 2s infinite;
}

#wire3{
    top: 188px;
    left: 350px;
    width: 170px;
    animation: wireAni 3s 1s infinite;
}

#wire4{
    top: 188px;
    left: 520px;
    width: 150px;
    animation: wireAni 2s 0.3s infinite;
}

#wire5{
    top: 215px;
    left: 70px;
    width: 200px;
    transform: rotate(65deg);
    animation: wireAni 2s 0.3s infinite;
}

#wire6{
    top: 270px;
    left: 292px;
    width: 160px;
    transform: rotate(80deg);
    animation: wireAni 1s 0.1s infinite;
}

#wire7{
    top: 218px;
    left: 494px;
    width: 60px;
    transform: rotate(54deg);
    animation: wireAni 4s 0.5s infinite;
}

#wire8{
    top: 220px;
    left: 587px;
    width: 90px;
    transform: rotate(145deg);
    animation: wireAni 2s 0.5s infinite;
}

#wire9{
    top: 290px;
    left: 410px;
    width: 170px;
    transform: rotate(152deg);
    animation: wireAni 3s 0.4s infinite;
}

#wire10{
    top: 307px;
    left: 200px;
    width: 140px;
    transform: rotate(15deg);
    animation: wireAni 3s 0.4s infinite;
}

#wire11{
    top: 270px;
    left: 536px;
    width: 140px;
    transform: rotate(30deg);
    animation: wireAni 3s 0.4s infinite;
}

@keyframes wireAni{
    0%, 100%{
        background: var(--wires_anim_0);
    }
    50%{
        background: var(--wires_anim_100);
    }
}

/* DBs */
#db1{
    position: absolute;
    top: 20px;
    left: 30px;
    width: 100px;
    height: 130px;
}

.db1Layer{
    position: relative;
    top: 0px;
    left: 0px;
    width: 100px;
    height: 20px;
    background: #3f3f3f;
    margin-bottom: 1px;
    border-radius: 10px 10px;
}

.dbLight{
    position: absolute;
    top: 10px;
    left: 10px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
}

.redLight{
    background: #db2525;
    animation: lightBlink 0.5s infinite;
}

.firstLight{
    left: 10px;
    animation-delay: 0s;
}

.secondLight{
    left: 17px;
    animation-delay: 0.2s;
}

.thirdLight{
    left: 24px;
    animation-delay: 0.4s;
}

@keyframes lightBlink{
    0%{
        opacity: 0.2;
    }
    100%{
        opacoty: 1;
    }
}

/* Servers */
#server1{
    position: absolute;
    top: 100px;
    left: 200px;
    width: 60px;
    height: 100px;
    background: #3f3f3f;
}

#server2{
    position: absolute;
    top: 230px;
    left: 200px;
    width: 60px;
    height: 100px;
    background: #3f3f3f;
}

.serverSeparator{
    position: relative;
    top: 10px;
    left: 0px;
    color: #6d6d6d;
    overflow: hidden;
}

.serverLight{
    position: absolute;
    top: 10px;
    left: 10px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
}

.blueLight{
    background: #23b5ea;
    animation: lightBlink 0.2s infinite;
}

.firstLight2{
    left: 10px;
    animation-delay: 0s;
}

.secondLight2{
    left: 17px;
    animation-delay: 0.3s;
}

.thirdLight2{
    left: 24px;
    animation-delay: 0.5s;
}

/* Switch */
#switch1{
    position: absolute;
    top: 110px;
    left: 100px;
    width: 60px;
    height: 20px;
    background: #3f3f3f;
}

#switch2{
    position: absolute;
    top: 233px;
    left: 541px;
    width: 60px;
    height: 20px;
    background: #3f3f3f;
}

.vioLight{
    position: absolute;
    top: 10px;
    left: 10px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
}

.vioLight{
    background: #9f3cd1;
    animation: lightBlink 0.2s infinite;
}

.firstLight3{
    left: 10px;
    animation-delay: 0s;
}

.secondLight3{
    left: 17px;
    animation-delay: 0.3s;
}

.thirdLight3{
    left: 24px;
    animation-delay: 0.5s;
}

/* Screen */
#screen1{
    position: absolute;
    top: 110px;
    left: 300px;
    width: 120px;
    height: 65px;
    background: #333333;
}

#screen1:after{
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 26px;
    margin-left: -13px;
    height: 27px;
    background: #3a3a3a;
}

#screen1Inner{
    position: absolute;
    top: 5px;
    left: 5px;
    width: 110px;
    height: 55px;
    background: #58165b;
}

#logo{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin-top: -10px;
    margin-left: -10px;
    background: #6d1a65;
    animation: logoAni 6s infinite;
    font-size: 8px;
    padding-top: 5px;
    text-align: center;
}

@keyframes logoAni{
    0%, 100%{
        border-radius: 100px 790px;
        transform: rotate(0deg);
    }
    50%{
        border-radius: 790px 100px;
        transform: rotate(360deg);
    }
}

#screen2{
    position: absolute;
    top: 110px;
    left: 450px;
    width: 120px;
    height: 65px;
    background: #333333;
}

#screen2:after{
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 26px;
    margin-left: -13px;
    height: 27px;
    background: #3a3a3a;
}

#screen2Inner{
    position: absolute;
    top: 5px;
    left: 5px;
    width: 110px;
    height: 55px;
    background: #1a4c6d;
}

#logo2{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    margin-top: -10px;
    margin-left: -10px;
    background: #0e3956;
    animation: logoAni 3s infinite;
    font-size: 8px;
    padding-top: 5px;
    color: orange;
    text-align: center;
}

#screen3{
    position: absolute;
    top: 110px;
    left: 600px;
    width: 120px;
    height: 65px;
    background: #333333;
}

#screen3:after{
    content: "";
    position: absolute;
    top: 100%;
    left: 50%;
    width: 26px;
    margin-left: -13px;
    height: 27px;
    background: #3a3a3a;
}

#screen3Inner{
    position: absolute;
    top: 5px;
    left: 5px;
    width: 110px;
    height: 55px;
    background: #0c5147;
}

#logo3{
    position: absolute;
    top: 50%;
    left: 50%;
    width: 39px;
    height: 16px;
    margin-top: -10px;
    margin-left: -10px;
    background: #1d9382;
    animation: logoAni 9s infinite;
    font-size:8px;
    padding-top: 2px;
    text-align: center;
}

/* Injector */
#injector{
    position: absolute;
    top: 250px;
    left: 330px;
    width: 100px;
    height: 130px;
    background: #3f3f3f;
}

#injectorInner{
    position: absolute;
    top: 10px;
    left: 10px;
    width: 80px;
    height: 110px;
    background: #2d2d2d;
    overflow: hidden;
}

#fuser{
    position: absolute;
    top: 10px;
    left: 50%;
    width: 36px;
    height: 10px;
    background: #3f3f3f;
    margin-left: -18px;
    border-bottom-left-radius: 10px 10px;
    border-bottom-right-radius: 10px 10px;
}

#fuser:after{
    content: "";
    position: absolute;
    top: 9px;
    left: 50%;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid  #3f3f3f;
    margin-left: -10px;
}

#liquid{
    position: absolute;
    top: 70px;
    left: 0px;
    width: 140px;
    height: 50px;
    background: #4f5ba4;
    overflow: hidden;
    animation: liquidAni 6s infinite;
}

@keyframes liquidAni{
    0%, 100%{
        transform: rotate(2deg);
    }
    50%{
        transform: rotate(-3deg);
    }
}

.drop{
    position: relative;
    top: 0px;
    left: 50%;
    width: 4px;
    height: 4px;
    margin-left: -1px;
    border-radius: 50%;
    background: #4f5ba4;
    z-index: 0;
}

.firstDrop{
    animation: dropAni 1s infinite;
}

.secondDrop{
    animation: dropAni 0.8s 2s infinite;
}

@keyframes dropAni{
    0%{
        top: 0px;
    }
    100%{
        top: 100px;
    }
}

#hole{
    position: absolute;
    top: 110px;
    left: 50%;
    width: 20px;
    height: 20px;
    margin-left: -10px;
    background: #4f5ba4;
}

.dropOut{
    position: relative;
    top: 20px;
    left: 50%;
    width: 4px;
    height: 0px;
    margin-left: -2px;
    background: #4f5ba4;
    animation: dropAni2 1s 0.69s infinite linear;
    z-index: 0;
}

#lock{
    position: absolute;
    top: 16px;
    left: 0px;
    width: 20px;
    height: 4px;
    background: #3f3f3f;
    z-index: 5;
    animation: lockAni 1s 0.6s infinite;
}

@keyframes lockAni{
    0%, 100%{
        width: 0px;
    }
    50%{
        width: 20px;
    }
}

@keyframes dropAni2{
    0%{
        height: 0px;
    }
    80%{
        height: 00px;
    }
    100%{
        height: 100px;
    }
}

/* Diagram */
#diagram{
    position: absolute;
    top: 283px;
    left: 550px;
    width: 200px;
    height: 100px;
    background: #3f3f3f;
}

#diagramInner{
    position: absolute;
    top: 5px;
    left: 5px;
    width: 190px;
    height: 90px;
    background: #2d2d2d;
    overflow: hidden;
}

.strip{
    width: 50px;
    height: 3px;
    background: #0c5147;
    z-index: 2;
    animation: stripAni 8s infinite;
}

@keyframes stripAni{
    0%, 100%{
        background: #0c5147;
    }
    50%{
        background: #915422;
    }
}

.firstStrip{
    position: absolute;
    top: 24px;
    left: -4px;
    transform: rotate(30deg);
    border-top-left-radius: 50%;
    z-index: 5;
}

.firstStrip:after{
    content: "";
    position: absolute;
    top: -3px;
    left: 43px;
    width: 8px;
    height: 8px;
    background: #2dad71;
    border-radius: 50%;
}

.secondStrip{
    position: absolute;
    top: 54px;
    left: 28px;
    width: 40px !important;
    transform: rotate(70deg);
    z-index: 4;
}

.secondStrip:after{
    content: "";
    position: absolute;
    top: -4px;
    left: 32px;
    width: 8px;
    height: 8px;
    background: #2dad71;
    border-radius: 50%;
    z-index: 2;
}

.thirdStrip{
    position: absolute;
    top: 55px;
    left: 49px;
    width: 70px !important;
    transform: rotate(-30deg);
    z-index: 3;
}

.thirdStrip:after{
    content: "";
    position: absolute;
    top: -3px;
    left: 65px;
    width: 8px;
    height: 8px;
    background: #2dad71;
    border-radius: 50%;
    z-index: 2 !important;
}

.fourthStrip{
    position: absolute;
    top: 53px;
    left: 110px;
    width: 90px !important;
    transform: rotate(20deg);
    z-index: 0;
}

#treadmill{
    position: absolute;
    top: 480px;
    left: 20px;
    width: 800px;
    height: 55px;
    background: #2d2d2d;
}

#leftCap{
    position: absolute;
    top: 430px;
    left: 20px;
    height: 50px;
    width: 20px;
    background: #2d2d2d;
    z-index: 2;
}

#rightCap{
    position: absolute;
    top: 430px;
    left: 800px;
    height: 50px;
    width: 200px;
    background: #2d2d2d;
    z-index: 2;
}

#upperMill{
    position: absolute;
    top: 430px;
    left: 45px;
    width: 970px;
    height: 50px;
    overflow: hidden;
}

.glass{
    position: relative;
    float: left;
    top: 9px;
    left: 40px;
    margin-right: 32px;
    width: 20px;
    height: 40px;
    border-left: 2px solid #3f3f3f;
    border-right: 2px solid #3f3f3f;
    border-bottom: 2px solid #3f3f3f;
    animation: glassAni 3s infinite linear;
    overflow: hidden;
}

.fill{
    position: absolute;
    top: 20px;
    left: 0px;
    width: 18px;
    height: 30px;
    background: #4f5ba4;
}

@keyframes fillAni{
    0%, 100%{
        transform: rotate(7deg);
    }
    50%{
        transform: rotate(-3deg);
    }
}

@keyframes glassAni{
    0%{
        left: 0px;
    }
    60%{
        opacity: 1;
    }
    100%{
        left: -160px;
    }
}

.gear{
    position: relative;
    top: 0px;
    left: 0px;
    width: 49px;
    height: 49px;
    float: left;
    margin-left: 115px;
    border-radius: 50%;
    border: 3px solid #7e7d7d;
    overflow: hidden;
    animation: gearAni 5s infinite linear;
}

@keyframes gearAni{
    0%{
        transform: rotate(360deg);
    }
    100%{
        transform: rotate(0deg);
    }
}

.gear:after{
    content: "";
    position: absolute;
    top: 25px;
    left: 0px;
    width: 51px;
    height: 1px;
    background: #7e7d7d;
    transform: rotate(45deg);
}

/* carousel Simplelightbox */
.sl-wrapper .simple-lightbox,
.sl-overlay
{
    z-index: 2000 !important;
}
.sl-wrapper .sl-close {
    top: 100px !important;
    right: 50px !important;
    color: #dc1c0f !important;
    z-index: 3000 !important;
    font-size: 60px !important;
    text-shadow: 0 1px 10px black;
}
.sl-wrapper .sl-navigation button.sl-prev,
.sl-wrapper .sl-navigation button.sl-next
{
    color: #11ff00 !important;
    z-index: 3000 !important;
    font-size: 60px !important;
    text-shadow: 0 1px 10px black;
}


@media (min-width: 200px) {
    #outer-container {
        left: -60%;
    }
    .carousel {
        height: 100px !important;
        min-height: 200px !important;
    }
}
@media (min-width: 600px) {
    #outer-container {
        left: -40%;
    }
    .carousel {
        height: 250px !important;
        min-height: 300px !important;
    }
}

@media (min-width: 992px) {
    #outer-container {
        left: 0;
    }
}