/* Shared contract for Home, Locations and city pages. Load after page layouts.
   Labels share one treatment; headings share typography, with optional accents.
   Layout margins and card/form subheadings remain owned by their components. */
[data-site-typography] {
    --site-hero-heading-size: clamp(3.5rem, 5.2vw, 4.75rem);
    --site-section-heading-size: 2.3rem;
    --site-section-label-size: .82rem;
}

[data-site-typography] :is(.homepage-content, .locations-hub, .location-city-page) .site-section-label {
    display: inline-block;
    max-width: 100%;
    padding: 0;
    border: 0;
    border-radius: 0;
    margin: 0 0 12px;
    color: var(--primary-color);
    background: var(--homepage-primary-gradient, var(--gradient));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: var(--site-section-label-size);
    font-weight: 750;
    line-height: 1.35;
    letter-spacing: .12em;
    text-transform: uppercase;
    box-shadow: none;
}

[data-site-typography] :is(.homepage-content, .locations-hub, .location-city-page) .site-section-label::after {
    content: none;
}

[data-site-typography] :is(.homepage-content, .locations-hub, .location-city-page) .site-hero-heading {
    margin: 0;
    max-width: 100%;
    color: var(--site-heading-color, var(--dark-color));
    background: none;
    -webkit-text-fill-color: currentColor;
    font-size: var(--site-hero-heading-size);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -.045em;
    text-transform: none;
    text-shadow: none;
    text-wrap: initial;
}

[data-site-typography] :is(.homepage-content, .locations-hub, .location-city-page) .site-section-heading {
    color: var(--site-heading-color, var(--dark-color));
    background: none;
    -webkit-text-fill-color: currentColor;
    font-size: var(--site-section-heading-size);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: normal;
    text-transform: capitalize;
    text-shadow: none;
}

[data-site-typography] .site-heading--on-dark {
    --site-heading-color: #fff;
}

[data-site-typography] :is(.homepage-content, .locations-hub, .location-city-page) :is(.site-hero-heading, .site-section-heading) .site-heading-accent {
    color: var(--primary-color);
    background: var(--homepage-primary-gradient, var(--gradient));
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

@media (max-width: 991.98px) {
    [data-site-typography] { --site-hero-heading-size: clamp(2.55rem, 6.2vw, 4.6rem); }
}
@media (max-height: 800px) and (min-width: 768px) and (max-width: 991.98px) {
    [data-site-typography] { --site-hero-heading-size: clamp(2.5rem, 4vw, 4.4rem); }
}
@media (max-width: 767.98px) {
    [data-site-typography] { --site-hero-heading-size: clamp(2.4rem, 8vw, 3.8rem); }
}
