.text-editor {
    padding-top: 40px;
    padding-bottom: 40px;
    font-size: 16px;
    line-height: 1.25;
    color: var(--brand-grey-light);

    @media (min-width:768px) {
        padding-top: 80px;
        padding-bottom: 80px;
    }
}

.text-editor__content {
    p {
        margin-bottom: 20px;
        font-weight: 300;
    }

    a {
        display: inline-block;
        font-weight: 700;
        color: var(--brand-green);
        text-decoration: underline;
        transition: color .2s ease-in-out;

        &:hover,
        &:focus {
            text-decoration: none;
            color: var(--brand-green);
        }
    }

    img {
        max-width: 100%;
        display: block;
        margin-bottom: 40px;

        &.alignleft {
            float: left;
            margin-right: 40px;
        }

        &.alignright {
            float: right;
            margin-left: 40px;
        }

        &.aligncenter {
            margin-left: auto;
            margin-right: auto;
        }
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        margin-top: 40px;
        margin-bottom: 10px;
        font-weight: 700;
        color: var(--text-color);
    }

    h1 {
        font-size: 30px;
    }

    h2 {
        font-size: 26px;
    }

    h3 {
        font-size: 22px;
    }

    h4 {
        font-size: 18px;
    }

    h5 {
        font-size: 16px;
    }

    h6 {
        font-size: 14px;
    }

    ul {
        margin-bottom: 20px;

        >li {
            padding-left: 33px;
            margin-top: 5px;
            position: relative;

            &:first-child {
                margin-top: 0;
            }

            &:before {
                content: '';
                display: block;
                width: 5px;
                height: 5px;
                background-color: var(--brand-primary);
                border-radius: 50%;
                position: absolute;
                left: 18px;
                top: 7px;
            }

            ul,
            ol {
                margin-top: 5px;
                margin-bottom: 5px;
            }
        }
    }

    ol {
        margin-bottom: 20px;
        padding-left: 28px;

        >li {
            margin-top: 5px;
            padding-left: 5px;
            position: relative;
            counter-increment: number-counter;

            &:first-child {
                margin-top: 0;
            }

            &:before {
                content: counter(number-counter)'.';
                font-weight: 700;
                color: var(--brand-primary);
                position: absolute;
                right: 100%;
            }

            ul,
            ol {
                margin-top: 5px;
                margin-bottom: 5px;
            }

            ol {
                counter-reset: number-counter;
            }
        }
    }

    blockquote {
        margin-bottom: 45px;
        padding: 0;
        border: 0;
        font-size: 22px;
        font-weight: 300;
        font-style: normal;

        p {
            margin-bottom: 15px;

            &:first-child {

                &:before {
                    content: '“';
                    margin-left: -.43em;
                }
            }

            &:last-of-type {
                &:after {
                    content: '”';
                }
            }
        }

        cite {
            display: block;
            font-size: 16px;
            font-style: normal;
            color: var(--text-color);

            strong {
                font-size: 18px;

                &:after {
                    content: '//';
                    display: inline-block;
                    margin-left: 16px;
                    margin-right: 10px;
                    font-weight: 300;
                    color: #c1c3c5;
                }
            }

            img {
                display: inline-block;
                max-width: 150px;
                margin: 0 10px 0 0;
                border-radius: 50%;
            }
        }
    }

    >*:first-child {
        margin-top: 0;
    }

    >*:last-child {
        margin-bottom: 0;
    }

    @media (max-width:767px) {
        blockquote {
            cite {
                text-align: center;

                strong {
                    display: block;

                    &:after {
                        display: none;
                    }
                }

                img {
                    display: block;
                    margin: 0 auto 10px auto;
                }
            }
        }
    }

    @media (min-width:992px) {
        blockquote {
            font-size: 24px;
        }
    }
}