.op3-element[data-op3-element-type="row"] {
    display: flex;
    flex-direction: column;
    width: 1140px;
    max-width: 100%;
    margin: 0 auto;
    padding: 15px 0;
    border-width: 0;

    > [data-op3-element-container] > [data-op3-children] {
        display: flex;
        flex-wrap: wrap;
        margin-left: -$op-gutter;
        margin-right: -$op-gutter;

        > .op3-element {
            flex-grow: 0;
            flex-shrink: 1;
            flex-basis: auto;
        }

        @media (min-width: ($breakpoint-tablet + 1)) {
            &[data-op3-wrap-columns-desktop="0"] > .op3-element {
                flex-grow: 0;
                flex-shrink: 1;
                flex-basis: auto !important;
            }
            &[data-op3-wrap-columns-desktop="1"] > .op3-element {
                flex-grow: 1;
                flex-shrink: 1;
            }

            &[data-op3-stack-columns-desktop="1"] {
                margin-left: 0 !important;
                margin-right: 0 !important;

                &[data-op3-stack-columns-desktop-reverse="1"] {
                    flex-wrap: wrap-reverse;
                }

                > .op3-element {
                    flex-basis: 100% !important;

                    > .op3-column-content {
                        margin-left: 0 !important;
                        margin-right: 0 !important;
                    }
                }
            }
        }

        @media (max-width: $breakpoint-tablet) and (min-width: ($breakpoint-mobile + 1)) {
            &[data-op3-wrap-columns-tablet="0"] > .op3-element {
                flex-grow: 0;
                flex-shrink: 1;
                flex-basis: auto !important;
            }
            &[data-op3-wrap-columns-tablet="1"] > .op3-element {
                flex-grow: 1;
                flex-shrink: 1;
            }

            &[data-op3-stack-columns-tablet="1"] {
                margin-left: 0 !important;
                margin-right: 0 !important;

                &[data-op3-stack-columns-tablet-reverse="1"] {
                    flex-wrap: wrap-reverse;
                }

                > .op3-element {
                    flex-basis: 100% !important;

                    > .op3-column-content {
                        margin-left: 0 !important;
                        margin-right: 0 !important;
                    }
                }
            }
        }

        @media (max-width: $breakpoint-mobile) {
            &[data-op3-wrap-columns-mobile="0"] > .op3-element {
                flex-grow: 0;
                flex-shrink: 1;
                flex-basis: auto !important;
            }
            &[data-op3-wrap-columns-mobile="1"] > .op3-element {
                flex-grow: 1;
                flex-shrink: 1;
            }

            &[data-op3-stack-columns-mobile="1"] {
                margin-left: 0 !important;
                margin-right: 0 !important;

                &[data-op3-stack-columns-mobile-reverse="1"] {
                    flex-wrap: wrap-reverse;
                }

                > .op3-element {
                    flex-basis: 100% !important;

                    > .op3-column-content {
                        margin-left: 0 !important;
                        margin-right: 0 !important;
                    }
                }
            }
        }
    }

    // 1140px is default row width,
    // so this ie related to it
    @media (max-width: $breakpoint-tablet) {
        padding: 15px 30px;

        .op3-element[data-op3-element-type="row"],
        .op3-element[data-op3-element-type="featureblock"],
        .op3-element[data-op3-element-type="testimonial"],
        .op3-element[data-op3-element-type="numberblock"] {
            padding-left: 0;
            padding-right: 0;
        }
    }

    @media (max-width: $breakpoint-mobile) {
        padding: 15px 30px;

        .op3-element[data-op3-element-type="row"],
        .op3-element[data-op3-element-type="featureblock"],
        .op3-element[data-op3-element-type="testimonial"],
        .op3-element[data-op3-element-type="numberblock"] {
            padding-left: 0;
            padding-right: 0;
        }
    }
}
