.oak-text {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: var(--oak-spacing-m);
    padding: var(--oak-spacing-2xl) var(--oak-spacing-3xl);
    margin: 0 var(--oak-spacing-2xl);
    background-color: var(--oak-white);
    color: var(--oak-black);
    border-radius: var(--oak-radius-l);
    background-size: cover;
    background-position: center;
}

.oak-text.oak-center {
    justify-content: center;
}

.oak-text.oak-top {
    justify-content: flex-start;
}

.oak-text.oak-bottom {
    justify-content: flex-end;
}

.oak-row[style^="background-image:"] .oak-text {
    background: none;
}

.oak-row-2-col-50-50 .oak-text {
    max-width: 50%;
    margin: 0;
    padding: var(--oak-spacing-2xl);
    border-radius: 0;
}

.oak-row:not(.oak-row-2-col-50-50) .oak-text.oak-half-width {
    margin: 0;
    padding: var(--oak-spacing-2xl) calc((100% - 640px) / 2);
}

.oak-text-header {
    margin-bottom: var(--oak-spacing-s);
    gap: var(--oak-spacing-m);
    display: flex;
    flex-direction: column;
}

.oak-text blockquote {
    position: relative;
    margin-top: 100px;
}

.oak-text blockquote::before {
    content: open-quote;
    font-family: var(--oak-font-family-secondary);
    font-size: 300px;
    position: absolute;
    top: 0;
    left: 0;
}

.oak-text blockquote::after {
    content: close-quote;
}

.oak-text-generated p:empty {
    display: none;
}

.oak-text-ctas {
    display: flex;
    flex-wrap: wrap;
    gap: var(--oak-spacing-m);
}

@media (max-width: 1920px) {
    .oak-text {
        margin: 0 var(--oak-spacing-xl);
    }
}

@media (max-width: 1440px) {
    .oak-text {
        margin: 0 var(--oak-spacing-m);
    }

    .oak-row-2-col-50-50 .oak-text {
        padding: var(--oak-spacing-xl);
    }
}

@media (max-width: 1024px) {
    .oak-text {
        margin: 0;
        order: 1;
    }

    .oak-text,
    .oak-row-2-col-50-50 .oak-text,
    .oak-row:not(.oak-row-2-col-50-50) .oak-text.oak-half-width {
        max-width: 100%;
        padding: var(--oak-spacing-xl);
    }
}

@media (max-width: 768px) {
    .oak-text,
    .oak-row-2-col-50-50 .oak-text,
    .oak-row:not(.oak-row-2-col-50-50) .oak-text.oak-half-width {
        padding: var(--oak-spacing-xl) var(--oak-spacing-m);
    }

    .oak-text blockquote {
        margin-top: 65px;
    }

    .oak-text blockquote::before {
        font-size: 180px;
    }
}

@media (max-width: 512px) {
    .oak-text,
    .oak-row-2-col-50-50 .oak-text,
    .oak-row:not(.oak-row-2-col-50-50) .oak-text.oak-half-width {
        padding: var(--oak-spacing-l) var(--oak-spacing-s);
    }
}
