/* KO-07 Zitat */

.quote {
    color: var(--sav-color-blau);
    /* Spelled out rather than `quotes: auto`, which resolves `de-CH` to the German
       „…“ — the Swiss marks the design asks for arrive only by naming them. */
    quotes: '«' '»';
    text-align: center;

    /* Beside the running text the quote whispers instead of shouting: body copy in the
       Light cut, in the darker blue, ranged left under a short rule. The class belongs
       to the column, not to the block — which style is quoted stays the editorial
       team's choice, where it sits is the page type's. The column is a box around the
       quote on the page and the block itself in the canvas, which cannot be wrapped. */
    .quote-aside &,
    &.quote-aside {
        color: var(--sav-color-dunkelblau);
        text-align: start;

        &::before {
            background-color: currentcolor;
            block-size: 1.5px;
            content: '';
            display: block;
            inline-size: 60px;
            margin-block-end: 1.5rem;
        }
    }
}

.quote__text {
    font-weight: var(--sav-font-weight-regular);
    font-size: var(--sav-text-headline-m-size);
    line-height: var(--sav-text-headline-m-line);
    letter-spacing: var(--sav-text-headline-m-tracking);
    /* The quote renders as a `blockquote`, which the base stylesheet's paragraph
       defaults do not reach — without these the three variants would break their
       lines differently from one another. */
    overflow-wrap: break-word;
    text-wrap: pretty;

    /* A quoted statement, whether attributed or lifted out of the text itself, wears
       the marks; the conclusion carries its label instead. They come from here, so the
       editorial team never types them into the text. */
    :is(.quote--quote, .quote--key-message) & {
        /* Empty alternative text, because a mark of its own lands in the accessibility
           tree as a text node beside the sentence — read out as its own fragment. What
           it stands for the text already carries. */
        &::before {
            content: open-quote / '';
        }

        &::after {
            content: close-quote / '';
        }
    }

    .quote-aside & {
        font-weight: var(--sav-font-weight-light);
        font-size: var(--sav-text-m-size);
        line-height: var(--sav-text-m-line);
        /* Reset the tracking the Light cut inherits from the base body copy. */
        letter-spacing: normal;
    }
}

.quote__label,
.quote__source {
    font-weight: var(--sav-font-weight-regular);
    font-size: var(--sav-text-m-size);
    line-height: var(--sav-text-m-line);
    letter-spacing: var(--sav-text-m-tracking);
}

.quote__label {
    margin-block-end: 0.5rem;
}

.quote__source {
    margin-block-start: 2rem;
}
