@import "dxHelpers/reset";
@import "dxHelpers/text";

:host {
    --dx-g-text-heading-color: white;
    --padding-top: var(--dx-g-spacing-4xl);
    --margin-top: 80px;
    --dx-c-section-banner-content-align: flex-end;
    --dx-c-section-banner-image-transform: none;
}

.container {
    position: relative;
    display: flex;
    justify-content: space-between;
    overflow-x: hidden;
    padding-top: var(--padding-top);
    padding-left: var(--dx-g-page-padding-horizontal);
}

.top-margin {
    margin-top: var(--margin-top);
}

.content {
    align-self: var(--dx-c-section-banner-content-align);
    margin: 0 var(--dx-g-spacing-3xl) var(--dx-g-spacing-5xl) 0;
}

.content-title {
    white-space: pre-line;
}

.content-body {
    color: white;
    font-family: var(--dx-g-font-sans);
    font-size: var(--dx-g-text-base);
    margin-top: var(--dx-g-spacing-smd);
}

.content-body-container {
    display: flex;
    align-items: flex-start;
    gap: var(--dx-g-spacing-md);
}

.quote-content {
    margin-top: var(--dx-g-spacing-md);
}

.quote-attribution {
    margin-top: var(--dx-g-spacing-md);
    position: relative;
}

.quote-attribution-character {
    display: inline-block;
}

.quote-attribution-text {
    left: 24px;
    position: absolute;
}

.quote-attribution-subtext {
    left: 24px;
    position: relative;
}

.image {
    width: 600px;
    flex-shrink: 0;
    height: fit-content;
    align-self: flex-end;
}

.graphic {
    width: 238px;
    position: absolute;
    left: var(--dx-g-page-padding-horizontal);
    top: calc(-1 * var(--margin-top));
}

@media (min-width: 1600px) {
    .container {
        padding: var(--padding-top) var(--dx-g-page-padding-horizontal) 0;
    }
}

@media screen and (max-width: 1024px) {
    .container {
        flex-direction: column;
        margin-top: calc(var(--margin-top) + var(--dx-g-spacing-lg));
    }

    .content {
        margin: 0
            calc(var(--dx-g-spacing-6xl) - var(--dx-g-page-padding-horizontal))
            var(--dx-g-spacing-3xl) 0;
    }

    .image {
        width: 100%;
        max-width: 790px;
    }
}

@media screen and (max-width: 768px) {
    .content-title {
        font-size: var(--dx-g-text-2xl);
    }

    .content {
        margin: 0 var(--dx-g-page-padding-horizontal) var(--dx-g-spacing-3xl) 0;
    }
}

@media screen and (max-width: 480px) {
    .content-body-container {
        display: block;
    }

    .quote-content p {
        font-size: var(--dx-g-text-lg);
        line-height: 28px;
    }

    .quote-content p.quote-attribution {
        font-size: var(--dx-g-text-md);
        letter-spacing: unset;
        line-height: 24px;
    }

    .quote-attribution-text {
        left: 20px;
        position: absolute;
    }

    .quote-attribution-subtext {
        font-size: 12px;
        left: 20px;
        line-height: 20px;
        position: relative;
    }
}
