/***
=============================================
Banner One
=============================================
***/

/*
  CAMBIO DE ARQUITECTURA:
  - Se añade .banner-one__hero-wrapper: contenedor estático (position:relative)
    centrado al ancho del container. La imagen hero va DENTRO de él.
  - .banner-one__location se posiciona absolute dentro de ese wrapper,
    permitiendo que los pines (style1–style7) se alineen visualmente sobre el mapa.
  - El padding superior del .banner-one ya NO se usa para empujar el contenido;
    el hero-wrapper ocupa su espacio propio y el content (.row) queda debajo.
*/

.banner-one {
    position: relative;
    display: block;
    background: rgb(18, 33, 38);
    background: linear-gradient(90deg, rgba(18, 33, 38, 1) 0%, rgba(18, 33, 38, 1) 35%, rgba(10, 44, 54, 1) 60%, rgba(10, 44, 54, 1) 100%);
    padding: 0 0 94px;
    z-index: 2;
}

.banner-one::before {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: -300px;
    opacity: 0.80;
    content: "";
    background: rgb(14, 18, 29);
    background: linear-gradient(-120deg, rgba(14, 18, 29, 0.90) 10%, rgb(20 168 255 / 40%) 30%, rgba(14, 18, 29, 0.9) 50%);
}

.banner-one__pattern {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background-attachment: scroll;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    opacity: 0.07;
    z-index: -1;
}

/* img1, img5 y shape1: se dejan como estaban, sin tocar */
.banner-one .shape1 {
    position: absolute;
    left: -240px;
    bottom: -25px;
    z-index: -1;
}

.banner-one__img1 {
    position: absolute;
    bottom: -60px;
    right: -55px;
    z-index: 1;
}

.banner-one__img5 {
    position: absolute;
    bottom: -65px;
    right: 0;
    z-index: 1;
}


/* ─────────────────────────────────────────
   HERO WRAPPER — contiene la imagen y los pines
   ───────────────────────────────────────── */

.banner-one__hero-wrapper {
    position: relative;          /* contexto para los pines absolute */
    display: block;
    max-width: 1200px;           /* mismo ancho que tu container Bootstrap */
    width: 100%;
    margin: 0 auto;              /* centrado */
    z-index: 5;
}

/* La imagen del hero: estática, ocupa el wrapper completo */
.banner-one__pattern2 {
    position: relative;
    display: block;
    text-align: center;
    z-index: 1;
    padding-top: 40px;           /* espacio superior original */
}

.banner-one__pattern2 img {
    display: block;
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
}


/* ─────────────────────────────────────────
   LOCATION (pines) — absolute sobre el hero-wrapper
   ───────────────────────────────────────── */

.banner-one__location {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;             /* abarca todo el hero-wrapper */
    z-index: 7;
    pointer-events: none;  /* el área vacía no bloquea clics */
}

/* Cada pin recupera pointer-events para ser hoverable */
.banner-one__location-single {
    pointer-events: all;
}


/* ─────────────────────────────────────────
   POSICIONES DE PINES — DESKTOP (≥1200px)
   Coordenadas en % relativas al hero-wrapper
   ───────────────────────────────────────── */

      .banner-one__location-single.style1 {
    position: absolute;
    top: 28%;
    left: 5%;
}

.banner-one__location-single.style2 {
    position: absolute;
    top: 44%;
    left: 20%;
}

.banner-one__location-single.style3 {
    position: absolute;
    top: 24%;
    left: 50%;
}

.banner-one__location-single.style4 {
    position: absolute;
    bottom: 28%;
    left: 38%;
}

.banner-one__location-single.style5 {
    position: absolute;
    bottom: 26%;
    right: 30%;
}

.banner-one__location-single.style6 {
    position: absolute;
    top: 32%;
    right: 21%;
}

.banner-one__location-single.style7 {
    position: absolute;
    bottom: 36%;
    right: 10%;
}




@media(min-width: 992px){
    .banner-one__location-single.style1 {
    position: absolute;
    top: 28%;
    left: 5%;
}

.banner-one__location-single.style2 {
    position: absolute;
    top: 44%;
    left: 20%;
}

.banner-one__location-single.style3 {
    position: absolute;
    top: 24%;
    left: 50%;
}

.banner-one__location-single.style4 {
    position: absolute;
    bottom: 28%;
    left: 38%;
}

.banner-one__location-single.style5 {
    position: absolute;
    bottom: 26%;
    right: 30%;
}

.banner-one__location-single.style6 {
    position: absolute;
    top: 32%;
    right: 21%;
}

.banner-one__location-single.style7 {
    position: absolute;
    bottom: 36%;
    right: 10%;
}



}

/* ─────────────────────────────────────────
   ESTILOS INTERNOS DEL PIN (sin cambios)
   ───────────────────────────────────────── */

.banner-one__location-single .round-box {
    position: relative;
    display: block;
    width: 20px;
    height: 20px;
    background: var(--logistiq-base);
    border-radius: 50%;
    cursor: pointer;
}

.banner-one__location-single .round-box::before,
.banner-one__location-single .round-box::after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 31px;
    height: 31px;
    border-radius: 50%;
    background: transparent;
    -webkit-animation-delay: .9s;
    animation-delay: .9s;
    content: "";
    box-shadow: 0 0 0 0 rgb(255 255 255 / 60%);
    -webkit-animation: ripple 3s infinite;
    animation: ripple 3s infinite;
    transition: all .4s ease;
}

.banner-one__location-single .round-box::after {
    -webkit-animation-delay: .6s;
    animation-delay: .6s;
}

.banner-one__location-single .round-box .bdr {
    position: absolute;
    top: -7px;
    left: -7px;
    bottom: -7px;
    right: -7px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--logistiq-base);
    border-radius: 50%;
    content: "";
}

.banner-one__location-single .content-box {
    position: absolute;
    top: 55px;
    left: 100%;
    background:#121c2f85;
    border-radius: 10px; 
    backdrop-filter: blur(3px);
    padding: 0px 10px 8px;
    border: 1px solid #121c2f;
    text-align: center;
    transition: all 0.2s ease;
    -webkit-transform: translateY(10%);
    -ms-transform: translateY(10%);
    transform: translateY(10%);
    opacity: 0;
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
    visibility: hidden;
    z-index: 100;
    margin-left: -40px;
}

.banner-one__location-single:hover .content-box {
    opacity: 1;
    -webkit-transform: translateY(0%);
    -ms-transform: translateY(0%);
    transform: translateY(0%);
    visibility: visible;
}


.banner-one__location-single .content-box .img-box {
    position: relative;
    display: block;
    width: 40px;
    height: 40px;
    border-radius: 50%;
   
    padding: 3px 3px 3px;
    margin: -18px auto 8px;
    z-index: 2;
}

.banner-one__location-single .content-box .img-box img {
    width: 100%;
}

.banner-one__location-single .content-box .text-box {
    position: relative;
    display: block;
}

.banner-one__location-single .content-box .text-box  i{
font-size: 10px;
opacity: .7;
}


.banner-one__location-single .content-box .text-box h4 {
    font-size: 17px;
    line-height: 26px;
    font-weight: 700;
    text-transform: normal;
}

.banner-one__location-single .content-box .text-box p {
    color: var(--logistiq-black);
    font-size: 15px;
    line-height: 24px;
}


/* ─────────────────────────────────────────
   CONTENIDO DEBAJO DEL HERO
   ───────────────────────────────────────── */

.banner-one__content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

.banner-one__content-left {
    position: relative;
    display: block;
    text-align: right;
}

.banner-one__content-left h2 {
    color: var(--logistiq-white);
    font-size: 74px;
    line-height: 1.1em;
    font-weight: 700;
    text-transform: normal;
    margin-bottom: 27px;
}

.banner-one__content-left h2 span {
    color: var(--logistiq-base);
}

.banner-one__content-left p {
    color: var(--logistiq-white);
    font-size: 16px;
    line-height: 22px;
    font-weight: 700;
    text-transform: normal;
}

.banner-one__content-right {
    position: relative;
    display: block;
    padding-left: 40px;
    margin-left: 40px;
}

.banner-one__content-right::before {
    position: absolute;
    top: 10px;
    left: 0;
    bottom: 0px;
    width: 2px;
    background: var(--logistiq-base);
    content: "";
}

.banner-one__content-right-text {
    position: relative;
    display: block;
    margin-bottom: 16px;
}

.banner-one__content-right-text p {
    color: #E4E4E4;
    font-size: 20px;
    line-height: 34px;
}

.banner-one__content-right-middle {
    position: relative;
    display: flex;
    align-items: center;
}

.banner-one__content-right-middle ul {
    position: relative;
    display: block;
}

.banner-one__content-right-middle ul li {
    position: relative;
    display: block;
    float: left;
}

.banner-one__content-right-middle ul li+li {
    margin-left: -20px;
}

.banner-one__content-right-middle ul li .img-box {
    position: relative;
    display: block;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid var(--logistiq-base);
}

.banner-one__content-right-middle ul li .img-box img {
    width: 100%;
}

.banner-one__content-right-middle .text-box {
    position: relative;
    display: block;
    margin-left: 10px;
    flex: 1;
}

.banner-one__content-right-middle .text-box h2 {
    color: var(--logistiq-white);
    font-size: 24px;
    line-height: 32px;
    font-weight: 700;
    text-transform: normal;
}

.banner-one__content-right-middle .text-box p {
    color: var(--logistiq-white);
    font-size: 16px;
    line-height: 26px;
    font-weight: 700;
}

.banner-one__content-right-btn {
    position: relative;
    display: block;
    margin-top: 30px;
    line-height: 0;
}

.banner-one__content-right-btn .hover-btn {
    background-color: var(--logistiq-white);
}

.banner-one__content-right-btn .thm-btn:hover {
    color: var(--logistiq-black);
}


/* ─────────────────────────────────────────
   RESPONSIVE — TABLET / iPAD (768px – 1199px)
   ───────────────────────────────────────── */

@media (max-width: 992px) and (min-width: 768px) {

    /* Pines: se ajustan al espacio reducido del tablet */
    .banner-one__location-single.style1 {
        position: absolute;
        top: 42%;
        left: 15%;
    }

    .banner-one__location-single.style2 {
        top: 40%;
        left: 80%;
    }

    .banner-one__location-single.style3 {
        top: 20%;
        left: 50%;
    }

    .banner-one__location-single.style4 {
        bottom: 60%;
        left: 50%;
    }

    .banner-one__location-single.style5 {
        bottom: 24%;
        right: 75%;
    }

    .banner-one__location-single.style6 {
        top: 80%;
        right: 50%;
    }

    .banner-one__location-single.style7 {
        bottom: 34%;
        right: 25%;
    }

    /* Tarjeta de pin: más pequeña en tablet */
    .banner-one__location-single .content-box {
        padding: 0px 10px 12px;
    }

    .banner-one__location-single .content-box .text-box h4 {
        font-size: 14px;
        line-height: 20px;
    }

    .banner-one__location-single .content-box .text-box p {
        font-size: 12px;
        line-height: 18px;
    }

    /* Contenido de texto debajo del hero */
    .banner-one__content-left h2 {
        font-size: 52px;
    }

    .banner-one__content-right-text p {
        font-size: 16px;
        line-height: 26px;
    }
}


/* ─────────────────────────────────────────
   RESPONSIVE — MÓVIL (< 768px)
   En móvil los pines se ocultan sobre el mapa
   (la imagen es muy pequeña para posicionarlos con precisión)
   y se muestran como una fila de puntos interactivos debajo.
   ───────────────────────────────────────── */

@media (max-width: 767px) {

    .banner-one {
        padding-bottom: 60px;
    }

    /* En móvil el wrapper ocupa todo el ancho */
    .banner-one__hero-wrapper {
        max-width: 100%;
    }

 
   
     /* Pines: se ajustan al espacio reducido del tablet */
    .banner-one__location-single.style1 {
        position: absolute;
        top: 42%;
        left: 15%;
    }

    .banner-one__location-single.style2 {
        top: 40%;
        left: 80%;
    }

    .banner-one__location-single.style3 {
        top: 20%;
        left: 50%;
    }

    .banner-one__location-single.style4 {
        bottom: 60%;
        left: 50%;
    }

    .banner-one__location-single.style5 {
        bottom: 24%;
        right: 75%;
    }

    .banner-one__location-single.style6 {
        top: 80%;
        right: 50%;
    }

    .banner-one__location-single.style7 {
        bottom: 34%;
        right: 25%;
    }



    /* El popup en móvil se abre hacia abajo y centrado */
    .banner-one__location-single .content-box {
        top: 40px;
        left: 50%;
        transform: translateX(-50%) translateY(10%);
        margin-left: 0;
    }

    .banner-one__location-single:hover .content-box {
        transform: translateX(-50%) translateY(0%);
    }

    /* Contenido */
    .banner-one__content-left {
        text-align: center;
        margin-bottom: 30px;
    }

    .banner-one__content-left h2 {
        font-size: 38px;
    }

    .banner-one__content-right {
        padding-left: 0;
        margin-left: 0;
    }

    .banner-one__content-right::before {
        display: none;
    }

    .banner-one__content-right-text p {
        font-size: 16px;
        line-height: 26px;
    }
}