.intro {
    margin-bottom: map-get($spacers, 5) * 2;

    &-title {
        color: $secondary;
    }

    &-content {
        color: $primary;
        position: relative;
        padding-bottom: map-get($spacers, 5) * 2;

        &::before {
            top: 0;
            right: 0;
            z-index: -1;
            height: 100%;
            content: ' ';
            display: block;
            width: 500rem;
            position: absolute;
            border-radius: 0 100rem 100rem 0;
            background-color: rgba($secondary, .2);
        }
    }

    &-image img {
        width: 100%;
        display: block;
    }

    &-footer {
        display: flex;
        align-items: center;
        margin-top: map-get($spacers, 4);
    }

    &-large {
        padding-top: map-get($spacers, 5) * 3;
    }

    &-short {
        padding-top: map-get($spacers, 5) * 2;
    }

    &-short &-content {
        text-align: center;
    }

    &-short &-title {
        margin: 0;
        font-weight: $font-weight-normal;

        strong {
            display: block;
        }
    }
}

@include media-breakpoint-up(lg) {
    .intro {
        &-large .container {
            display: flex;
            align-items: center;
        }

        &-large &-content {
            flex: 0 0 60%;
        }

        &-large &-image {
            flex: 0 0 40%;
        }

        &-large &-content {
            padding: {
                top: map-get($spacers, 5) * 2;
                right: map-get($spacers, 5) * 2;
            }
        }

        &-large &-image {
            position: relative;

            &::before {
                top: 0;
                z-index: -1;
                width: 140%;
                right: -5rem;
                content: ' ';
                display: block;
                padding-top: 140%;
                position: absolute;
                border-radius: 50%;
                transform: translateY(-60%);
                background-color: rgba($primary, .2);
            }
        }

        &-short &-content {
            &::before {
                right: 90%;
            }

            &::after {
                top: 0;
                right: 0;
                width: 25rem;
                height: 25rem;
                content: ' ';
                display: block;
                position: absolute;
                border-radius: 50%;
                transform: translateY(-90%);
                background-color: rgba($primary, .2);
            }
        }
    }
}

@include media-breakpoint-up(xl) {
    .intro {
        &-large &-content,
        &-large &-image {
            flex: 0 0 50%;
        }
    }
}

@include media-breakpoint-down(md) {
    .intro {
        overflow: hidden;

        &-large &-content,
        &-large &-image {
            flex: 0 0 100%;
        }

        &-content {
            &::before {
                top: 50px;
                height: 70%;
                right: 50%;
            }

            &::after {
                top: 50px;
                z-index: -1;
                width: 70%;
                right: -5rem;
                content: ' ';
                display: block;
                padding-top: 70%;
                position: absolute;
                border-radius: 50%;
                transform: translateY(-60%);
                background-color: rgba($primary, .2);
            }
        }
    }
}
