/**
 * Copyright 2025 Adobe. All rights reserved.
 * This file is licensed to you under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy
 * of the License at http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
 * OF ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 */

.spectrum-Typography .spectrum-Heading {
    --spectrum-heading-margin-start: calc(var(--mod-heading-font-size, var(--spectrum-heading-font-size)) * var(--spectrum-heading-margin-top-multiplier));
    --spectrum-heading-margin-end: calc(var(--mod-heading-font-size, var(--spectrum-heading-font-size)) * var(--spectrum-heading-margin-bottom-multiplier));
}

@media (forced-colors: active) {
    .spectrum-Heading {
        --highcontrast-heading-font-color: Text;
    }
}

.spectrum-Heading,
.spectrum-Heading--sizeM {
    --spectrum-heading-font-size: var(--spectrum-heading-size-m);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-m);
}

.spectrum-Heading--sizeXXS {
    --spectrum-heading-font-size: var(--spectrum-heading-size-xxs);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-xxs);
}

.spectrum-Heading--sizeXS {
    --spectrum-heading-font-size: var(--spectrum-heading-size-xs);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-xs);
}

.spectrum-Heading--sizeS {
    --spectrum-heading-font-size: var(--spectrum-heading-size-s);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-s);
}

.spectrum-Heading--sizeL {
    --spectrum-heading-font-size: var(--spectrum-heading-size-l);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-l);
}

.spectrum-Heading--sizeXL {
    --spectrum-heading-font-size: var(--spectrum-heading-size-xl);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-xl);
}

.spectrum-Heading--sizeXXL {
    --spectrum-heading-font-size: var(--spectrum-heading-size-xxl);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-xxl);
}

.spectrum-Heading--sizeXXXL {
    --spectrum-heading-font-size: var(--spectrum-heading-size-xxxl);
    --spectrum-heading-cjk-font-size: var(--spectrum-heading-cjk-size-xxxl);
}

.spectrum-Heading {
    --spectrum-heading-sans-serif-font-family: var(--spectrum-sans-font-family-stack);
    --spectrum-heading-serif-font-family: var(--spectrum-serif-font-family-stack);
    --spectrum-heading-cjk-font-family: var(--spectrum-cjk-font-family-stack);
    --spectrum-heading-cjk-letter-spacing: var(--spectrum-cjk-letter-spacing);
    --spectrum-heading-font-color: var(--spectrum-heading-color);
    font-family: var(--mod-heading-sans-serif-font-family, var(--spectrum-heading-sans-serif-font-family));
    font-style: var(--mod-heading-sans-serif-font-style, var(--spectrum-heading-sans-serif-font-style));
    font-weight: var(--mod-heading-sans-serif-font-weight, var(--spectrum-heading-sans-serif-font-weight));
    font-size: var(--mod-heading-font-size, var(--spectrum-heading-font-size));
    color: var(--highcontrast-heading-font-color, var(--mod-heading-font-color, var(--spectrum-heading-font-color)));
    line-height: var(--mod-heading-line-height, var(--spectrum-heading-line-height));
    margin-block-start: var(--mod-heading-margin-start, var(--spectrum-heading-margin-start, 0));
    margin-block-end: var(--mod-heading-margin-end, var(--spectrum-heading-margin-end, 0));
}

.spectrum-Heading .spectrum-Heading-strong,
.spectrum-Heading strong {
    font-style: var(--mod-heading-sans-serif-strong-font-style, var(--spectrum-heading-sans-serif-strong-font-style));
    font-weight: var(--mod-heading-sans-serif-strong-font-weight, var(--spectrum-heading-sans-serif-strong-font-weight));
}

.spectrum-Heading .spectrum-Heading-emphasized,
.spectrum-Heading em {
    font-style: var(--mod-heading-sans-serif-emphasized-font-style, var(--spectrum-heading-sans-serif-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-emphasized-font-weight, var(--spectrum-heading-sans-serif-emphasized-font-weight));
}

.spectrum-Heading .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading em strong,
.spectrum-Heading strong em {
    font-style: var(--mod-heading-sans-serif-strong-emphasized-font-style, var(--spectrum-heading-sans-serif-strong-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-strong-emphasized-font-weight, var(--spectrum-heading-sans-serif-strong-emphasized-font-weight));
}

.spectrum-Heading:lang(ja),
.spectrum-Heading:lang(ko),
.spectrum-Heading:lang(zh) {
    font-family: var(--mod-heading-cjk-font-family, var(--spectrum-heading-cjk-font-family));
    font-style: var(--mod-heading-cjk-font-style, var(--spectrum-heading-cjk-font-style));
    font-weight: var(--mod-heading-cjk-font-weight, var(--spectrum-heading-cjk-font-weight));
    font-size: var(--mod-heading-cjk-font-size, var(--spectrum-heading-cjk-font-size));
    line-height: var(--mod-heading-cjk-line-height, var(--spectrum-heading-cjk-line-height));
    letter-spacing: var(--mod-heading-cjk-letter-spacing, var(--spectrum-heading-cjk-letter-spacing));
}

.spectrum-Heading:lang(ja) .spectrum-Heading-emphasized,
.spectrum-Heading:lang(ja) em,
.spectrum-Heading:lang(ko) .spectrum-Heading-emphasized,
.spectrum-Heading:lang(ko) em,
.spectrum-Heading:lang(zh) .spectrum-Heading-emphasized,
.spectrum-Heading:lang(zh) em {
    font-style: var(--mod-heading-cjk-emphasized-font-style, var(--spectrum-heading-cjk-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-emphasized-font-weight, var(--spectrum-heading-cjk-emphasized-font-weight));
}

.spectrum-Heading:lang(ja) .spectrum-Heading-strong,
.spectrum-Heading:lang(ja) strong,
.spectrum-Heading:lang(ko) .spectrum-Heading-strong,
.spectrum-Heading:lang(ko) strong,
.spectrum-Heading:lang(zh) .spectrum-Heading-strong,
.spectrum-Heading:lang(zh) strong {
    font-style: var(--mod-heading-cjk-strong-font-style, var(--spectrum-heading-cjk-strong-font-style));
    font-weight: var(--mod-heading-cjk-strong-font-weight, var(--spectrum-heading-cjk-strong-font-weight));
}

.spectrum-Heading:lang(ja) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading:lang(ja) em strong,
.spectrum-Heading:lang(ja) strong em,
.spectrum-Heading:lang(ko) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading:lang(ko) em strong,
.spectrum-Heading:lang(ko) strong em,
.spectrum-Heading:lang(zh) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading:lang(zh) em strong,
.spectrum-Heading:lang(zh) strong em {
    font-style: var(--mod-heading-cjk-strong-emphasized-font-style, var(--spectrum-heading-cjk-strong-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-strong-emphasized-font-weight, var(--spectrum-heading-cjk-strong-emphasized-font-weight));
}

.spectrum-Heading--heavy {
    font-style: var(--mod-heading-sans-serif-heavy-font-style, var(--spectrum-heading-sans-serif-heavy-font-style));
    font-weight: var(--mod-heading-sans-serif-heavy-font-weight, var(--spectrum-heading-sans-serif-heavy-font-weight));
}

.spectrum-Heading--heavy .spectrum-Heading-strong,
.spectrum-Heading--heavy strong {
    font-style: var(--mod-heading-sans-serif-heavy-strong-font-style, var(--spectrum-heading-sans-serif-heavy-strong-font-style));
    font-weight: var(--mod-heading-sans-serif-heavy-strong-font-weight, var(--spectrum-heading-sans-serif-heavy-strong-font-weight));
}

.spectrum-Heading--heavy .spectrum-Heading-emphasized,
.spectrum-Heading--heavy em {
    font-style: var(--mod-heading-sans-serif-heavy-emphasized-font-style, var(--spectrum-heading-sans-serif-heavy-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-heavy-emphasized-font-weight, var(--spectrum-heading-sans-serif-heavy-emphasized-font-weight));
}

.spectrum-Heading--heavy .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--heavy em strong,
.spectrum-Heading--heavy strong em {
    font-style: var(--mod-heading-sans-serif-heavy-strong-emphasized-font-style, var(--spectrum-heading-sans-serif-heavy-strong-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-heavy-strong-emphasized-font-weight, var(--spectrum-heading-sans-serif-heavy-strong-emphasized-font-weight));
}

.spectrum-Heading--heavy:lang(ja),
.spectrum-Heading--heavy:lang(ko),
.spectrum-Heading--heavy:lang(zh) {
    font-style: var(--mod-heading-cjk-heavy-font-style, var(--spectrum-heading-cjk-heavy-font-style));
    font-weight: var(--mod-heading-cjk-heavy-font-weight, var(--spectrum-heading-cjk-heavy-font-weight));
}

.spectrum-Heading--heavy:lang(ja) .spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(ja) em,
.spectrum-Heading--heavy:lang(ko) .spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(ko) em,
.spectrum-Heading--heavy:lang(zh) .spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(zh) em {
    font-style: var(--mod-heading-cjk-heavy-emphasized-font-style, var(--spectrum-heading-cjk-heavy-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-heavy-emphasized-font-weight, var(--spectrum-heading-cjk-heavy-emphasized-font-weight));
}

.spectrum-Heading--heavy:lang(ja) .spectrum-Heading-strong,
.spectrum-Heading--heavy:lang(ja) strong,
.spectrum-Heading--heavy:lang(ko) .spectrum-Heading-strong,
.spectrum-Heading--heavy:lang(ko) strong,
.spectrum-Heading--heavy:lang(zh) .spectrum-Heading-strong,
.spectrum-Heading--heavy:lang(zh) strong {
    font-style: var(--mod-heading-cjk-heavy-strong-font-style, var(--spectrum-heading-cjk-heavy-strong-font-style));
    font-weight: var(--mod-heading-cjk-heavy-strong-font-weight, var(--spectrum-heading-cjk-heavy-strong-font-weight));
}

.spectrum-Heading--heavy:lang(ja) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(ja) em strong,
.spectrum-Heading--heavy:lang(ja) strong em,
.spectrum-Heading--heavy:lang(ko) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(ko) em strong,
.spectrum-Heading--heavy:lang(ko) strong em,
.spectrum-Heading--heavy:lang(zh) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--heavy:lang(zh) em strong,
.spectrum-Heading--heavy:lang(zh) strong em {
    font-style: var(--mod-heading-cjk-heavy-strong-emphasized-font-style, var(--spectrum-heading-cjk-heavy-strong-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-heavy-strong-emphasized-font-weight, var(--spectrum-heading-cjk-heavy-strong-emphasized-font-weight));
}

.spectrum-Heading--light {
    font-style: var(--mod-heading-sans-serif-light-font-style, var(--spectrum-heading-sans-serif-light-font-style));
    font-weight: var(--mod-heading-sans-serif-light-font-weight, var(--spectrum-heading-sans-serif-light-font-weight));
}

.spectrum-Heading--light .spectrum-Heading-emphasized,
.spectrum-Heading--light em {
    font-style: var(--mod-heading-sans-serif-light-emphasized-font-style, var(--spectrum-heading-sans-serif-light-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-light-emphasized-font-weight, var(--spectrum-heading-sans-serif-light-emphasized-font-weight));
}

.spectrum-Heading--light .spectrum-Heading-strong,
.spectrum-Heading--light strong {
    font-style: var(--mod-heading-sans-serif-light-strong-font-style, var(--spectrum-heading-sans-serif-light-strong-font-style));
    font-weight: var(--mod-heading-sans-serif-light-strong-font-weight, var(--spectrum-heading-sans-serif-light-strong-font-weight));
}

.spectrum-Heading--light .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--light em strong,
.spectrum-Heading--light strong em {
    font-style: var(--mod-heading-sans-serif-light-strong-emphasized-font-style, var(--spectrum-heading-sans-serif-light-strong-emphasized-font-style));
    font-weight: var(--mod-heading-sans-serif-light-strong-emphasized-font-weight, var(--spectrum-heading-sans-serif-light-strong-emphasized-font-weight));
}

.spectrum-Heading--light:lang(ja),
.spectrum-Heading--light:lang(ko),
.spectrum-Heading--light:lang(zh) {
    font-style: var(--mod-heading-cjk-light-font-style, var(--spectrum-heading-cjk-light-font-style));
    font-weight: var(--mod-heading-cjk-light-font-weight, var(--spectrum-heading-cjk-light-font-weight));
}

.spectrum-Heading--light:lang(ja) .spectrum-Heading-strong,
.spectrum-Heading--light:lang(ja) strong,
.spectrum-Heading--light:lang(ko) .spectrum-Heading-strong,
.spectrum-Heading--light:lang(ko) strong,
.spectrum-Heading--light:lang(zh) .spectrum-Heading-strong,
.spectrum-Heading--light:lang(zh) strong {
    font-style: var(--mod-heading-cjk-light-strong-font-style, var(--spectrum-heading-cjk-light-strong-font-style));
    font-weight: var(--mod-heading-cjk-light-strong-font-weight, var(--spectrum-heading-cjk-light-strong-font-weight));
}

.spectrum-Heading--light:lang(ja) .spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(ja) em,
.spectrum-Heading--light:lang(ko) .spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(ko) em,
.spectrum-Heading--light:lang(zh) .spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(zh) em {
    font-style: var(--mod-heading-cjk-light-emphasized-font-style, var(--spectrum-heading-cjk-light-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-light-emphasized-font-weight, var(--spectrum-heading-cjk-light-emphasized-font-weight));
}

.spectrum-Heading--light:lang(ja) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(ja) em strong,
.spectrum-Heading--light:lang(ja) strong em,
.spectrum-Heading--light:lang(ko) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(ko) em strong,
.spectrum-Heading--light:lang(ko) strong em,
.spectrum-Heading--light:lang(zh) .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--light:lang(zh) em strong,
.spectrum-Heading--light:lang(zh) strong em {
    font-style: var(--mod-heading-cjk-light-strong-emphasized-font-style, var(--spectrum-heading-cjk-light-strong-emphasized-font-style));
    font-weight: var(--mod-heading-cjk-light-strong-emphasized-font-weight, var(--spectrum-heading-cjk-light-strong-emphasized-font-weight));
}

.spectrum-Heading--serif {
    font-family: var(--mod-heading-serif-font-family, var(--spectrum-heading-serif-font-family));
    font-style: var(--mod-heading-serif-font-style, var(--spectrum-heading-serif-font-style));
    font-weight: var(--mod-heading-serif-font-weight, var(--spectrum-heading-serif-font-weight));
}

.spectrum-Heading--serif .spectrum-Heading-emphasized,
.spectrum-Heading--serif em {
    font-style: var(--mod-heading-serif-emphasized-font-style, var(--spectrum-heading-serif-emphasized-font-style));
    font-weight: var(--mod-heading-serif-emphasized-font-weight, var(--spectrum-heading-serif-emphasized-font-weight));
}

.spectrum-Heading--serif .spectrum-Heading-strong,
.spectrum-Heading--serif strong {
    font-style: var(--mod-heading-serif-strong-font-style, var(--spectrum-heading-serif-strong-font-style));
    font-weight: var(--mod-heading-serif-strong-font-weight, var(--spectrum-heading-serif-strong-font-weight));
}

.spectrum-Heading--serif .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--serif em strong,
.spectrum-Heading--serif strong em {
    font-style: var(--mod-heading-serif-strong-emphasized-font-style, var(--spectrum-heading-serif-strong-emphasized-font-style));
    font-weight: var(--mod-heading-serif-strong-emphasized-font-weight, var(--spectrum-heading-serif-strong-emphasized-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--heavy {
    font-style: var(--mod-heading-serif-heavy-font-style, var(--spectrum-heading-serif-heavy-font-style));
    font-weight: var(--mod-heading-serif-heavy-font-weight, var(--spectrum-heading-serif-heavy-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--heavy .spectrum-Heading-strong,
.spectrum-Heading--serif.spectrum-Heading--heavy strong {
    font-style: var(--mod-heading-serif-heavy-strong-font-style, var(--spectrum-heading-serif-heavy-strong-font-style));
    font-weight: var(--mod-heading-serif-heavy-strong-font-weight, var(--spectrum-heading-serif-heavy-strong-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--heavy .spectrum-Heading-emphasized,
.spectrum-Heading--serif.spectrum-Heading--heavy em {
    font-style: var(--mod-heading-serif-heavy-emphasized-font-style, var(--spectrum-heading-serif-heavy-emphasized-font-style));
    font-weight: var(--mod-heading-serif-heavy-emphasized-font-weight, var(--spectrum-heading-serif-heavy-emphasized-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--heavy .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--serif.spectrum-Heading--heavy em strong,
.spectrum-Heading--serif.spectrum-Heading--heavy strong em {
    font-style: var(--mod-heading-serif-heavy-strong-emphasized-font-style, var(--spectrum-heading-serif-heavy-strong-emphasized-font-style));
    font-weight: var(--mod-heading-serif-heavy-strong-emphasized-font-weight, var(--spectrum-heading-serif-heavy-strong-emphasized-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--light {
    font-style: var(--mod-heading-serif-light-font-style, var(--spectrum-heading-serif-light-font-style));
    font-weight: var(--mod-heading-serif-light-font-weight, var(--spectrum-heading-serif-light-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--light .spectrum-Heading-emphasized,
.spectrum-Heading--serif.spectrum-Heading--light em {
    font-style: var(--mod-heading-serif-light-emphasized-font-style, var(--spectrum-heading-serif-light-emphasized-font-style));
    font-weight: var(--mod-heading-serif-light-emphasized-font-weight, var(--spectrum-heading-serif-light-emphasized-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--light .spectrum-Heading-strong,
.spectrum-Heading--serif.spectrum-Heading--light strong {
    font-style: var(--mod-heading-serif-light-strong-font-style, var(--spectrum-heading-serif-light-strong-font-style));
    font-weight: var(--mod-heading-serif-light-strong-font-weight, var(--spectrum-heading-serif-light-strong-font-weight));
}

.spectrum-Heading--serif.spectrum-Heading--light .spectrum-Heading-strong.spectrum-Heading-emphasized,
.spectrum-Heading--serif.spectrum-Heading--light em strong,
.spectrum-Heading--serif.spectrum-Heading--light strong em {
    font-style: var(--mod-heading-serif-light-strong-emphasized-font-style, var(--spectrum-heading-serif-light-strong-emphasized-font-style));
    font-weight: var(--mod-heading-serif-light-strong-emphasized-font-weight, var(--spectrum-heading-serif-light-strong-emphasized-font-weight));
}
