.icon-stack {
    position: relative;
    width: 100%;
    padding: 80px 0 100px;
    background: #fff;
}

.icon-stack .title-wrap {
    width: 100%;
    max-width: 775px;
    margin: 0 auto 50px;
    text-align: center;
}

.icon-stack .title-wrap h2 {
    margin: 0 0 20px;
    color: #0C2340;
    font-family: 'UniversLTStd Cn' !important;
    font-weight: 700 !important;
    font-size: 50px !important;
    line-height: 60px !important;
}

.icon-stack .title-wrap p {
    /* <p> large token: 18/28 Roman, Cool gray 85%, across the full 775. */
    margin: 0 auto;
    max-width: none;
    color: #31445C;
    font-family: 'Univers LT Std Pro 55';
    font-weight: 400;
    font-size: 18px;
    line-height: 28px;
}

/* Provider Management (postid-28758): spec'd as regular Body <p> (16/24),
   not the <p> large token the shared class defaults to for other pages. */
body.postid-28758 .icon-stack .title-wrap p {
    font-family: 'Univers LT Pro';
    font-weight: 300;
    font-size: 16px;
    line-height: 24px;
}

.icon-stack .row-wrap {
    display: flex;
    flex-wrap: wrap;
    /* 40px between the two columns, per the design grid. */
    margin: 0 -20px;
}

.icon-stack .row-wrap .col-two {
    max-width: 50%;
    flex: 0 0 50%;
    width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
}

.icon-stack .row-wrap .col-two:nth-child(n + 3) {
    margin-top: 60px;
}

.icon-stack .row-wrap .col-two .icon-img {
    display: flex;
    align-items: center;
    justify-content: center;
    /* Icon token: 85px circle, 30px above the copy. */
    width: 85px;
    height: 85px;
    margin: 0 0 30px;
    background: #F1F3F5;
    border-radius: 50%;
}

/* The uploaded asset is the glyph alone — the circle behind it is drawn above. */
.icon-stack .row-wrap .col-two .icon-img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
}

.icon-stack .row-wrap .col-two .text-container h3,
.icon-stack .row-wrap .col-two .text-container h4 {
    /* H4 token: 28/36. */
    margin: 0 0 14px;
    color: #0C2340;
    font-family: 'UniversLTStd Cn' !important;
    font-weight: 700 !important;
    font-size: 28px !important;
    line-height: 36px !important;
}

.icon-stack .row-wrap .col-two .text-container p {
    /* <p> token: 16/24 Light, Cool gray 85%. */
    margin: 0;
    color: #31445C;
    font-family: 'Univers LT Std Pro 55';
    font-weight: 300;
    font-size: 16px;
    line-height: 24px;
}

@media (max-width: 991px) {
    .icon-stack {
        padding: 60px 0 70px;
    }

    .icon-stack .title-wrap {
        margin-bottom: 46px;
    }

    .icon-stack .title-wrap h2 {
        font-size: 32px !important;
        line-height: 30px !important;
    }

    .icon-stack .title-wrap p {
        font-size: 16px;
    }

    .icon-stack .row-wrap {
        margin: 0 -20px;
    }

    .icon-stack .row-wrap .col-two {
        padding: 0 20px;
    }

    .icon-stack .row-wrap .col-two:nth-child(n + 3) {
        margin-top: 45px;
    }

    .icon-stack .row-wrap .col-two .icon-img {
        width: 68px;
        height: 68px;
        margin-bottom: 24px;
    }

    .icon-stack .row-wrap .col-two .text-container h3,
    .icon-stack .row-wrap .col-two .text-container h4 {
        font-size: 21px !important;
    }

    .icon-stack .row-wrap .col-two .text-container p {
        font-size: 16px;
    }
}

@media (max-width: 767px) {
    .icon-stack {
        padding: 45px 0 55px;
    }

    .icon-stack .title-wrap h2 {
        font-size: 28px !important;
    }

    .icon-stack .row-wrap {
        margin: 0;
    }

    .icon-stack .row-wrap .col-two {
        max-width: 100%;
        flex: 0 0 100%;
        padding: 0;
        margin-bottom: 40px;
    }

    /* Single column, so every item needs the gap except the last. */
    .icon-stack .row-wrap .col-two:nth-child(n + 3) {
        margin-top: 0;
    }

    .icon-stack .row-wrap .col-two:last-child {
        margin-bottom: 0;
    }
}
