blockquote {
    margin    : 2em 0;
    padding   : 0.25em 2.5em;
    color     : lighten(@text-color, 10%);
    font-size : @font-size-large;
    position  : relative;

    &::before, &::after {
        color       : @gray-light;
        position    : absolute;
        line-height : 1em;
        .font-size(@font-size-large * 2);
        & when (@flexkit-icons) {
            font-family : @font-family-icons;
        }
    }

    &::after {
        right  : 0;
        bottom : -0.25em;
        & when not(@flexkit-icons) {
            content : "\201c";
        }
        & when (@flexkit-icons) {
            content : "\e064";
        }
    }

    &::before {
        left : 0;
        top  : -0.25em;
        & when not(@flexkit-icons) {
            content : "\201e";
        }
        & when (@flexkit-icons) {
            content : "\e065";
        }
    }

    p {
        margin-bottom : 0;

        & + p {
            margin-top : 15px;
        }

    }

    .v2 when (@flexkit-icons) {

        &::after {
            content : "\e064";
        }

        &::before {
            content : "\e065";
        }
    }

    &.noquotes when (@blockquote-noquotes) and (@blockquote-types) {
        border-left : 2px solid @gray-light;
        padding     : .5em 1em;

        &::before, &::after {
            content : '';
        }
    }

    &.onequote when (@blockquote-onequote) and (@blockquote-types) {
        padding-left  : 2em;
        padding-right : 2em;

        &::before {
            top : -0.45em;
            .font-size(@font-size-large * 5);
            .opacity(0.2);
        }
        &::after {
            content : '';
        }
    }

    &.cloud when (@blockquote-cloud) and (@blockquote-types) {
        padding          : 1em;
        background-color : @gray-lighter;
        .border-radius(5px);
        .arrow-border(bottom-right; center; @gray-lighter);

        &::before {
            content : '';
        }

        @indent: 100px;
        @border-width: 1px;

        &.border when (@blockquote-cloud-border) and (@blockquote-types) {
            @border-width: 1px;
            background-color : @body-bg;
            padding          : 1em;
            border           : @border-width solid @gray-lighter;
            .border-radius(@border-radius-small);

            &::before {
                z-index      : 1;
                position     : absolute;
                top          : 100%;
                left         : 0;
                right        : 0;
                border-width : 9px;
                border-style : solid;
                border-color : @body-bg @body-bg transparent transparent;
                margin       : auto;
                width        : 0;
                height       : 0;
            }
        }

        &.right when (@blockquote-cloud-right) and (@blockquote-types) {
            zoom : 1;

            &::after {
                left  : auto;
                right : @indent;
            }

            &.border when (@blockquote-cloud-border) and (@blockquote-types) {
                &::before {
                    left  : auto;
                    right : @indent + @border-width;
                }
            }
        }

        &.left when (@blockquote-cloud-left) and (@blockquote-types) {
            zoom : 1;

            &::after {
                left               : @indent;
                right              : auto;
                border-right-color : transparent !important;
                border-left-color  : @gray-lighter !important;
            }
            &.border when (@blockquote-cloud-border) and (@blockquote-types) {
                &::before {
                    left               : @indent + @border-width;
                    right              : auto;
                    border-right-color : transparent;
                    border-left-color  : @body-bg;
                }
            }
        }
    }
}