/* Public-site typography. Inter includes Latin and Cyrillic and is served locally. */
@font-face {
    font-family: 'Inter';
    src: url('/fonts/inter/InterVariable.woff2') format('woff2');
    font-weight: 100 900;
    font-style: normal;
    font-display: swap;
}

:root {
    --ad-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
}

body.ad-public-site {
    font-family: var(--ad-font);
    font-size: 16px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: normal;
}

/* Override legacy text families without replacing icon fonts or their pseudo-elements. */
body.ad-public-site :where(div, section, article, header, footer, nav, main, aside,
    h1, h2, h3, h4, h5, h6, p, a, label, button, input, select, textarea,
    ul, ol, li, table, th, td, summary, blockquote, strong, small, span):not(
    .fa, [class*="fa-"], [class*="icon-"], [class*="pe-7s-"], .revicon) {
    font-family: var(--ad-font) !important;
}

body.ad-public-site :where(h1, h2, h3, h4, h5, h6) {
    font-weight: 700 !important;
    font-style: normal;
    letter-spacing: normal !important;
    line-height: 1.25;
}

body.ad-public-site :where(.playfair, .merriweather, .lora, .droid) {
    font-family: var(--ad-font) !important;
    font-style: normal;
}

body.ad-public-site :where(p, li, blockquote) {
    letter-spacing: normal !important;
}

body.ad-public-site p {
    line-height: 1.65;
}

body.ad-public-site :where(button, input, select, textarea) {
    letter-spacing: normal;
}

body.ad-public-site :where(.ad-service-description, .ad-service-description p) {
    font-size: 15px;
    font-weight: 400;
    line-height: 1.65;
    color: #535b6d;
}

body.ad-public-site .ad-service-title-row h4 {
    font-size: 17px;
    line-height: 1.4;
}

/* Article copy: comfortable line length and a consistent heading hierarchy. */
body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) {
    font-size: 17px !important;
    line-height: 1.7;
    letter-spacing: normal;
    color: #3f4758;
}

body.ad-public-site #content.page-font-12 {
    padding-top: 48px;
    padding-bottom: 48px;
    scroll-margin-top: 145px;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo)
    :where(p, ul, ol, blockquote) {
    max-width: none;
    margin-top: 0;
    margin-bottom: 1.2em;
    font-size: inherit !important;
    line-height: 1.7;
    text-align: left;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) h2 {
    margin-top: 1.5em;
    margin-bottom: .65em;
    font-size: clamp(25px, 2.4vw, 32px) !important;
    line-height: 1.3;
    color: #2d3044;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) h3 {
    margin-top: 1.5em;
    margin-bottom: .65em;
    font-size: clamp(21px, 2vw, 25px) !important;
    line-height: 1.35;
    color: #2d3044;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) > :first-child {
    margin-top: 0;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) a {
    text-decoration: underline;
    text-underline-offset: .18em;
}

@media (max-width: 575.98px) {
    body.ad-public-site #content.page-font-12 {
        padding-top: 32px;
        padding-bottom: 32px;
    }

    body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card, .ad-service-seo) {
        font-size: 16px !important;
    }

    body.ad-public-site :where(input, select, textarea) {
        font-size: 16px;
    }
}

/* Keep navigation readable and within its row with the new font metrics. */
body.ad-public-site :where(.ad-header-links > a, .ad-header-menu-item > button,
    .ad-header-menu-trigger, .ad-header-call, .ad-header-cta,
    .ad-mobile-nav-list a, .ad-mobile-nav-list button) {
    font-weight: 600;
    letter-spacing: normal;
}

@media (min-width: 1081px) and (max-width: 1500px) {
    body.ad-public-site :where(.ad-header-links > a, .ad-header-menu-item > button,
        .ad-header-menu-item > .ad-header-menu-trigger) {
        padding-left: 8px;
        padding-right: 8px;
    }
}

/* Service explanations in editorial text need visible list structure. */
body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card) ul {
    list-style: disc;
    padding-left: 1.3em;
}

body.ad-public-site :where(#content.page-font-12, .ad-category-seo-card) ul > li {
    display: list-item;
    margin: .8em 0;
    padding-left: .15em;
    line-height: 1.7;
}
