:root {
    --cg-font-body: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cg-font-display: "Archivo Black", "Arial Black", sans-serif;
    --cg-font-heading: "Archivo Black", "Arial Black", sans-serif;
    --cg-font-menu: "Montserrat", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cg-heading-color: #0c254f;
    --cg-type-h1: 32px;
    --cg-type-h2: 24px;
    --cg-type-h3: 20px;
    --cg-type-h4: 18px;
    --cg-type-h5: 16px;
    --cg-type-h6: 15px;
    --cg-type-body: 16px;
    --cg-type-h1-line: 0.98;
    --cg-type-h2-line: 1.05;
    --cg-type-h3-line: 1.14;
    --cg-type-h4-line: 1.18;
    --cg-type-h5-line: 1.26;
    --cg-type-h6-line: 1.32;
    --cg-type-body-line: 1.64;
}

@media (min-width: 430px) {
    :root {
        --cg-type-h1: clamp(32px, calc(26.8054px + 1.2081vw), 50px);
        --cg-type-h2: clamp(24px, calc(21.6913px + 0.5369vw), 32px);
        --cg-type-h3: clamp(20px, calc(18.2685px + 0.4027vw), 26px);
        --cg-type-h4: clamp(18px, calc(16.8456px + 0.2685vw), 22px);
        --cg-type-h5: clamp(16px, calc(15.4228px + 0.1342vw), 18px);
        --cg-type-h6: clamp(15px, calc(14.4228px + 0.1342vw), 17px);
        --cg-type-body: clamp(16px, calc(15.7114px + 0.0671vw), 17px);
    }
}

@media (min-width: 961px) {
    :root {
        --cg-type-h1-line: 0.96;
        --cg-type-h2-line: 1.03;
        --cg-type-h3-line: 1.12;
        --cg-type-h4-line: 1.16;
        --cg-type-h5-line: 1.22;
        --cg-type-h6-line: 1.28;
        --cg-type-body-line: 1.68;
    }
}

body,
button,
input,
select,
textarea {
    font-family: var(--cg-font-body);
}

p {
    font-family: var(--cg-font-body) !important;
    font-size: var(--cg-type-body) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-body-line) !important;
}

h1 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h1) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h1-line) !important;
    letter-spacing: -0.02em !important;
    text-wrap: balance;
}

h2 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h2) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h2-line) !important;
    letter-spacing: -0.015em !important;
    text-wrap: balance;
}

h3 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h3) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h3-line) !important;
    letter-spacing: -0.01em !important;
    text-wrap: balance;
}

h4 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h4) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h4-line) !important;
    letter-spacing: -0.005em !important;
}

h5 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h5) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h5-line) !important;
    letter-spacing: -0.005em !important;
}

h6 {
    font-family: var(--cg-font-heading) !important;
    font-size: var(--cg-type-h6) !important;
    font-weight: 400 !important;
    line-height: var(--cg-type-h6-line) !important;
    letter-spacing: 0 !important;
}

.actuality-tile h3 {
    font-family: var(--cg-font-heading) !important;
    font-size: 0.84rem !important;
    font-weight: 400 !important;
    line-height: 1.12 !important;
}

.actuality-tile--lead h3 {
    font-size: 0.96rem !important;
    line-height: 1.06 !important;
}

.actuality-tile:not(.actuality-tile--lead) h3 {
    font-size: 0.7rem !important;
    font-weight: 400 !important;
    line-height: 1.08 !important;
}

.event-strip-card h4 {
    font-family: var(--cg-font-heading) !important;
    font-size: 0.76rem !important;
    font-weight: 400 !important;
    line-height: 1.14 !important;
}

.home-actualities h2,
.home-events__intro h2,
.home-worth-knowing__intro h2,
.home-youtube__intro h2,
.home-attractions__intro h2,
.home-community__header h2,
.home-photo-gallery__intro h2,
.home-contact-cta__copy h2,
.home-about-story__copy h2,
.home-foundation__copy h2,
.section-heading h2,
.home-actualities .message-rail__title {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(1.42rem, calc(1.3rem + 0.34vw), 1.74rem) !important;
    font-weight: 400 !important;
    line-height: 1.08 !important;
    letter-spacing: -0.01em !important;
}

.city-duo-panel__head h3,
.home-community-topic h3 {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(1.18rem, calc(1.08rem + 0.32vw), 1.34rem) !important;
    font-weight: 400 !important;
    line-height: 1.1 !important;
    letter-spacing: -0.01em !important;
}

.contact-page h1,
.about-page h1 {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(2.35rem, calc(1.98rem + 1.18vw), 4.15rem) !important;
    font-weight: 400 !important;
    line-height: 0.96 !important;
    letter-spacing: -0.03em !important;
}

.contact-page h2,
.about-page h2 {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(1.5rem, calc(1.32rem + 0.54vw), 2.15rem) !important;
    font-weight: 400 !important;
    line-height: 1.04 !important;
    letter-spacing: -0.02em !important;
}

.contact-page h3,
.about-page h3,
.about-page h4 {
    font-family: var(--cg-font-heading) !important;
    font-size: clamp(1.08rem, calc(1rem + 0.26vw), 1.32rem) !important;
    font-weight: 400 !important;
    line-height: 1.12 !important;
    letter-spacing: -0.01em !important;
}

/* Author page final typography */
.author-page h1,
.author-page h2,
.author-page .author-post-card h3,
.author-page .author-post-card h3 a,
.author-page .author-profile__fact strong {
    color: var(--cg-blue) !important;
}
