.container-a {
    margin-top: 10px;
}

.infraestructura-grid {
    display: grid;

    grid-template-columns: 58% 42%;

    grid-template-rows:
        minmax(90px, auto) minmax(30px, auto) minmax(120px, auto);

    grid-template-areas:
        "icono imagen"
        "titulo imagen"
        "texto  imagen";

    width: 100%;
    max-width: 1340px;
    margin: 0 auto;

    align-items: stretch;
}

.infraestructura-icono {
    grid-area: icono;

    display: flex;
    justify-content: center;
    align-items: flex-end;

    padding: 10px 20px 5px;
}

.infraestructura-icono img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 150px;
    object-fit: contain;
}

.infraestructura-titulo {
    grid-area: titulo;
    height: 40px;
    width: 800px;
    margin-left: -20px;
    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 20px;
    padding: 5px 5px;

    background: linear-gradient(90deg,
            #111111 0%,
            #444444 65%,
            #777777 100%);

    clip-path: polygon(0 0,
            100% 0,
            100% 100%,
            10% 100%);
}

.infraestructura-titulo h3 {
    margin: 0;
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

/* DIV 3: TEXTO */

.infraestructura-texto {
    grid-area: texto;

    display: flex;
    justify-content: center;
    align-items: flex-start;

    padding: 14px 25px 20px;
}

.infraestructura-texto p {
    max-width: 420px;
    margin: 0;

    color: #222222;
    font-size: 1.2rem;
    line-height: 1.6;
    text-align: center;
    font-weight: 700;
}

.infraestructura-imagen {
    height: 5vw;
    grid-area: imagen;

    position: relative;
    overflow: hidden;

    min-height: 500px;
}

.infraestructura-imagen img {
    display: block;
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}

.infraestructura-grid-right {
    display: grid;

    grid-template-columns: 42% 58%;

    grid-template-rows:
        minmax(90px, auto) minmax(30px, auto) minmax(120px, auto);

    grid-template-areas:
        "imagen icono"
        "imagen titulo"
        "imagen texto";

    width: 100%;
    max-width: 1300px;
    margin: 0 auto;

    align-items: stretch;
}

.infraestructura-icono-right {
    grid-area: icono;

    display: flex;
    justify-content: center;
    align-items: flex-end;

    padding: 10px 20px 5px;
}

.infraestructura-icono-right img {
    display: block;
    width: auto;
    max-width: 100%;
    height: 150px;
    object-fit: contain;
}

.infraestructura-titulo-right {
    grid-area: titulo;

    height: 40px;
    width: 800px;

    margin-left: auto;
    margin-right: -20px;

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 20px;
    padding: 5px;

    background: linear-gradient(90deg,
            #777777 0%,
            #444444 35%,
            #111111 100%);

    clip-path: polygon(0 0,
            100% 0,
            90% 100%,
            0 100%);
}

.infraestructura-titulo-right h3 {
    margin: 0;
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.infraestructura-titulo-right-b {
    grid-area: titulo;

    height: 40px;
    width: 800px;

    margin-left: auto;
    margin-right: -20px;

    display: flex;
    align-items: center;
    justify-content: center;

    min-height: 20px;
    padding: 5px;

    background: linear-gradient(90deg,
            #777777 0%,
            #444444 35%,
            #111111 100%);

    clip-path: polygon(0 0,
            100% 0,
            100% 100%,
            0 100%);
}

.infraestructura-titulo-right-b h3 {
    margin: 0;
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.infraestructura-texto-right {
    grid-area: texto;

    display: flex;
    justify-content: center;
    align-items: flex-start;

    padding: 14px 25px 20px;
}

.infraestructura-texto-right p {
    max-width: 420px;
    margin: 0;

    color: #222222;
    font-size: 1.2rem;
    line-height: 1.6;
    text-align: center;
    font-weight: 700;
}

.infraestructura-imagen-right {
    grid-area: imagen;

    position: relative;
    overflow: hidden;

    height: 400px;
    min-height: 280px;
}

.infraestructura-imagen-right img {
    display: block;
    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;
}

.sideside-a {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    width: 100%;
    max-width: 1300px;
    margin: 0 auto;

    gap: 0;
    align-items: stretch;
    overflow: visible;
}

.sideside-column {
    display: grid;

    grid-template-rows:
        150px 40px minmax(120px, auto);

    min-width: 0;
    overflow: visible;
}

.sideside-icon {
    display: flex;
    justify-content: center;
    align-items: flex-end;

    padding: 10px 20px 5px;
}

.sideside-icon img {
    display: block;

    width: auto;
    max-width: 100%;
    height: 100px;

    object-fit: contain;
}

.sideside-title {
    position: relative;
    z-index: 5;

    display: flex;
    align-items: center;
    justify-content: center;

    height: 40px;
    min-height: 40px;

    padding: 5px;

    box-sizing: border-box;
    overflow: visible;
}

.sideside-title-left {
    width: calc(100% + 20px);
    margin-left: -20px;

    background: linear-gradient(90deg,
            #111111 0%,
            #444444 65%,
            #777777 100%);

    clip-path: polygon(0 0,
            100% 0,
            100% 100%,
            10% 100%);
}

.sideside-title-right {
    width: calc(100% + 20px);
    margin-left: -5px;
    margin-right: -20px;

    background: linear-gradient(90deg,
            #777777 0%,
            #444444 35%,
            #111111 100%);

    clip-path: polygon(0 0,
            90% 0,
            100% 100%,
            0% 100%);
}

.sideside-title h3 {
    margin: 0;

    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.sideside-title h3 {
    margin: 0;

    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.sideside-title h3 {
    position: relative;
    z-index: 3;

    margin: 0;

    color: #ffffff;
    font-size: 1.1rem;
    font-weight: 600;
    text-align: center;
}

.sideside-text {
    display: flex;
    justify-content: center;
    align-items: flex-start;

    padding: 14px 35px 20px;
}

.sideside-text p {
    width: 100%;
    max-width: 430px;
    margin: 0;

    color: #222222;
    font-size: 1rem;
    line-height: 1.55;
    font-weight: 700;
    text-align: center;
}

/* =========================================================
   BOX 2
   Distribución: contenido a la izquierda e imagen a la derecha
========================================================= */

.box-2 {
    display: grid;
    grid-template-columns: 55.5% 44.5%;
    width: 70%;
    min-height: 755px;
    overflow: hidden;
    background: #ffffff;
    margin-left: 15vw;
    margin-top: 20px;
}

/* =========================================================
   COLUMNA DE CONTENIDO
========================================================= */

.box-2-content {
    display: grid;
    grid-template-rows:
        140px 58px 180px 175px 58px 1fr;
    min-width: 0;
    background: #ffffff;
}

/* =========================================================
   ICONOS
========================================================= */

.box-2-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    box-sizing: border-box;
}

.box-2-icon img {
    display: block;
    width: auto;
    max-width: 215px;
    height: auto;
    max-height: 150px;
    object-fit: contain;
}

.box-2-icon-top img {
    max-width: 225px;
    max-height: 150px;
}

.box-2-icon-bottom img {
    max-width: 225px;
    max-height: 150px;
}

/* =========================================================
   BARRAS DE TÍTULO
========================================================= */

.box-2-title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 5px 20px;
    box-sizing: border-box;

    background: linear-gradient(90deg,
            #171717 0%,
            #444444 60%,
            #777777 100%);
}

.box-2-title h3 {
    margin: 0;
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.08;
    text-align: center;
}

/* =========================================================
   TEXTOS
========================================================= */

.box-2-description {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 25px 30px;
    box-sizing: border-box;
}

.box-2-description p {
    margin: 0;
    color: #000000;
    font-size: 1.2rem;
    font-weight: 600;
    line-height: 1.75;
    text-align: center;
}

.box-2-description-top {
    padding-top: 25px;
}

.box-2-description-bottom {
    padding-top: 25px;
}

/* =========================================================
   IMAGEN DERECHA
========================================================= */

.box-2-image {
    position: relative;
    min-width: 0;
    min-height: 755px;
    overflow: hidden;
}

.box-2-image img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 755px;
    object-fit: cover;
    object-position: center;
}

.center-t {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    width: 100%;
    height: 100%;
}

.center-t * {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
}







@media (max-width: 991px) {

    .infraestructura-imagen {
        width: 90hw;
        grid-area: imagen;
        position: relative;
        overflow: hidden;
        min-height: 500px;
    }

    .box-2-image {
        padding: 0;
        margin: 0;
        position: relative;
        min-width: 0;
        min-height: 755px;
        overflow: hidden;
    }

    .box-2-image img {
        display: block;
        width: 100%;
        height: 100%;
        min-height: 755px;
        object-fit: cover;
        object-position: center;
    }

    .box-2-title {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        padding: 0px 0px;
        box-sizing: border-box;

        background: linear-gradient(90deg,
                #171717 0%,
                #444444 60%,
                #777777 100%);
    }

    .box-2 {
        width: 100%;
        margin: 0;
    }

    .box-2-title h3 {
        margin: 0;
        color: #ffffff;
        font-size: .5rem;
        font-weight: 700;
        line-height: 1.08;
        text-align: center;
    }

    .box-2-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 5px 5px;
        box-sizing: border-box;
    }

    .box-2-icon img {
        display: block;
        width: auto;
        max-width: 215px;
        height: auto;
        max-height: 100px;
        object-fit: contain;
    }

    .box-2-icon-top img {
        max-width: 225px;
        max-height: 100px;
    }

    .box-2-icon-bottom img {
        max-width: 225px;
        max-height: 100px;
    }

    .container-a {
        margin-top: 10px;
        width: 90vw;
        margin-left: 5vw;
    }

    .infraestructura-grid {
        display: grid;

        grid-template-columns: 58% 42%;

        grid-template-rows:
            minmax(90px, auto) minmax(30px, auto) minmax(120px, auto);

        grid-template-areas:
            "icono imagen"
            "titulo imagen"
            "texto  imagen";

        width: 100%;
        max-width: 1300px;
        margin: 0 auto;

        align-items: stretch;
    }

    .infraestructura-icono {
        grid-area: icono;

        display: flex;
        justify-content: center;
        align-items: flex-end;

        padding: 10px 20px 5px;
    }

    .infraestructura-icono img {
        display: block;
        width: auto;
        max-width: 100%;
        height: 130px;
        object-fit: contain;
    }

    .infraestructura-titulo {
        grid-area: titulo;
        max-height: 30px;
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 0;
        min-height: 20px;
        padding: 5px 5px;

        background: linear-gradient(90deg,
                #111111 0%,
                #444444 65%,
                #777777 100%);

        clip-path: polygon(0 0,
                100% 0,
                100% 100%,
                10% 100%);
    }

    .infraestructura-titulo h3 {
        margin: 0;
        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .infraestructura-texto {
        grid-area: texto;

        display: flex;
        justify-content: center;
        align-items: flex-start;

        padding: 14px 25px 20px;
    }

    .infraestructura-texto p {
        max-width: 420px;
        margin: 0;

        color: #222222;
        font-size: .5rem;
        line-height: 1.6;
        text-align: center;
        font-weight: 700;
    }

    .infraestructura-imagen {
        height: 5vw;
        grid-area: imagen;

        position: relative;
        overflow: hidden;

        min-height: 250px;
    }

    .infraestructura-imagen img {
        display: block;
        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: center;
    }

    .infraestructura-grid-right {
        display: grid;

        grid-template-columns: 42% 58%;

        grid-template-rows:
            minmax(90px, auto) minmax(30px, auto) minmax(120px, auto);

        grid-template-areas:
            "imagen icono"
            "imagen titulo"
            "imagen texto";

        width: 100%;
        max-width: 100vw;
        margin: 0 auto;

        align-items: stretch;
    }

    .infraestructura-icono-right {
        grid-area: icono;

        display: flex;
        justify-content: center;
        align-items: flex-end;

        padding: 10px 20px 5px;
    }

    .infraestructura-icono-right img {
        display: block;
        width: auto;
        max-width: 100%;
        height: 150px;
        object-fit: contain;
    }

    .infraestructura-titulo-right {
        grid-area: titulo;

        height: 40px;
        width: 100%;

        margin-left: auto;
        margin-right: -20px;

        display: flex;
        align-items: center;
        justify-content: center;

        min-height: 20px;
        padding: 5px;

        background: linear-gradient(90deg,
                #777777 0%,
                #444444 35%,
                #111111 100%);

        clip-path: polygon(0 0,
                100% 0,
                90% 100%,
                0 100%);
    }

    .infraestructura-titulo-right h3 {
        margin: 0;
        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .infraestructura-titulo-right-b {
        grid-area: titulo;

        height: 40px;
        width: 100%;

        margin-left: auto;

        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 0;
        min-height: 20px;
        padding: 5px;

        background: linear-gradient(90deg,
                #777777 0%,
                #444444 35%,
                #111111 100%);

        clip-path: polygon(0 0,
                100% 0,
                100% 100%,
                0 100%);
    }

    .infraestructura-titulo-right-b h3 {
        margin: 0;
        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .infraestructura-texto-right {
        grid-area: texto;

        display: flex;
        justify-content: center;
        align-items: flex-start;

        padding: 14px 25px 20px;
    }

    .infraestructura-texto-right p {
        max-width: 420px;
        margin: 0;

        color: #222222;
        font-size: .5rem;
        line-height: 1.5;
        text-align: center;
        font-weight: 700;
    }

    .infraestructura-imagen-right {
        grid-area: imagen;

        position: relative;
        overflow: hidden;

        height: 5vw;
        min-height: 250px;
        margin-top: 7vw;
    }

    .infraestructura-imagen-right img {
        display: block;
        width: 100%;
        height: 100%;

        object-fit: cover;
        object-position: center;
    }

    .sideside {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));

        width: 100%;
        max-width: 1300px;
        margin: 0 auto;

        gap: 0;
        align-items: stretch;
        overflow: visible;
    }

    .sideside-column {
        display: grid;

        grid-template-rows:
            150px 40px minmax(120px, auto);

        min-width: 0;
        overflow: visible;
    }

    .sideside-icon {
        display: flex;
        justify-content: center;
        align-items: flex-end;

        padding: 10px 20px 5px;
    }

    .sideside-icon img {
        display: block;

        width: auto;
        max-width: 100%;
        height: 150px;

        object-fit: contain;
    }

    .sideside-title {
        position: relative;
        z-index: 5;

        display: flex;
        align-items: center;
        justify-content: center;

        height: 40px;
        min-height: 40px;

        padding: 5px;

        box-sizing: border-box;
        overflow: visible;
    }

    .sideside-title-left {
        width: calc(100% + 20px);
        margin-left: -20px;

        background: linear-gradient(90deg,
                #111111 0%,
                #444444 65%,
                #777777 100%);

        clip-path: polygon(0 0,
                100% 0,
                100% 100%,
                10% 100%);
    }

    .sideside-title-right {
        width: calc(100% + 20px);
        margin-left: -5px;
        margin-right: -20px;

        background: linear-gradient(90deg,
                #777777 0%,
                #444444 35%,
                #111111 100%);

        clip-path: polygon(0 0,
                90% 0,
                100% 100%,
                0% 100%);
    }

    .sideside-title h3 {
        margin: 0;

        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .sideside-title h3 {
        margin: 0;

        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .sideside-title h3 {
        position: relative;
        z-index: 3;

        margin: 0;

        color: #ffffff;
        font-size: .5rem;
        font-weight: 600;
        text-align: center;
    }

    .sideside-text {
        display: flex;
        justify-content: center;
        align-items: flex-start;

        padding: 14px 35px 20px;
    }

    .sideside-text p {
        width: 100%;
        max-width: 430px;
        margin: 0;

        color: #222222;
        font-size: .5rem;
        line-height: 1.55;
        font-weight: 700;
        text-align: center;
    }


}

/* =========================================================
   MÓVIL
========================================================= */

@media (max-width: 768px) {

    .box-2 {
        display: flex;
        flex-direction: column;
        min-height: auto;
    }

    .box-2-content {
        display: grid;
        grid-template-rows:
            120px auto auto 140px auto auto;
    }

    .box-2-title {
        min-height: 55px;
        padding: 8px 15px;
    }

    .box-2-title h3 {
        font-size: .5rem;
    }

    .box-2-description {
        padding: 25px 18px 35px;
    }

    .box-2-description p {
        font-size: .5rem;
        line-height: 1.7;
    }

    .box-2-description p br {
        display: none;
    }

    .box-2-image {
        min-height: 420px;
    }

    .box-2-image img {
        min-height: 420px;
        object-position: center;
    }
}