/* ==========================================================
   AESONLABS MASTER SERVICE TYPOGRAPHY
   FINAL SOURCE OF TRUTH FOR SERVICE-PAGE TYPOGRAPHY

   Loaded LAST on service pages.
   Page-specific CSS may control layout, spacing, cards, images,
   borders, backgrounds, diagrams, etc. It must not control the
   normal H1/H2/H3/body typography anymore.
   ========================================================== */

body.aeson-service-page {
    --aeson-service-font: "Open Sans", Arial, Helvetica, sans-serif;

    --aeson-service-body-size: 18px;
    --aeson-service-body-line: 1.66667;
    --aeson-service-body-weight: 300;
    --aeson-service-body-color: #566174;

    --aeson-service-h1-size: 38px;
    --aeson-service-h1-line: 1.22;
    --aeson-service-h1-weight: 300;

    --aeson-service-h2-size: 29px;
    --aeson-service-h2-line: 1.32;
    --aeson-service-h2-weight: 400;

    --aeson-service-h3-size: 22px;
    --aeson-service-h3-line: 1.38;
    --aeson-service-h3-weight: 500;

    --aeson-service-heading-color: #2a323d;
}


/* ----------------------------------------------------------
   PAGE FONT FAMILY
   ---------------------------------------------------------- */

body.aeson-service-page .entry-content,
body.aeson-service-page .entry-content * {
    font-family: var(--aeson-service-font);
}


/* ----------------------------------------------------------
   PRIMARY HEADING TYPOGRAPHY
   ---------------------------------------------------------- */

body.aeson-service-page .entry-content h1 {
    font-family: var(--aeson-service-font) !important;
    font-size: var(--aeson-service-h1-size) !important;
    line-height: var(--aeson-service-h1-line) !important;
    font-weight: var(--aeson-service-h1-weight) !important;
    color: var(--aeson-service-heading-color) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

body.aeson-service-page .entry-content h2 {
    font-family: var(--aeson-service-font) !important;
    font-size: var(--aeson-service-h2-size) !important;
    line-height: var(--aeson-service-h2-line) !important;
    font-weight: var(--aeson-service-h2-weight) !important;
    color: var(--aeson-service-heading-color) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

body.aeson-service-page .entry-content h3 {
    font-family: var(--aeson-service-font) !important;
    font-size: var(--aeson-service-h3-size) !important;
    line-height: var(--aeson-service-h3-line) !important;
    font-weight: var(--aeson-service-h3-weight) !important;
    color: var(--aeson-service-heading-color) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}


/* ----------------------------------------------------------
   NORMAL READING COPY
   Applies to editorial paragraphs while leaving compact UI,
   forms, captions and buttons alone.
   ---------------------------------------------------------- */

body.aeson-service-page .entry-content p:not(
    figcaption p,
    form p,
    .aeson-kicker p,
    .aeson-eyebrow p
) {
    font-family: var(--aeson-service-font) !important;
    font-size: var(--aeson-service-body-size) !important;
    line-height: var(--aeson-service-body-line) !important;
    font-weight: var(--aeson-service-body-weight) !important;
    color: var(--aeson-service-body-color);
    letter-spacing: normal !important;
    text-transform: none !important;
}


/* ----------------------------------------------------------
   NORMAL READING LISTS
   ---------------------------------------------------------- */

body.aeson-service-page .entry-content ul:not([class*="menu"]) > li,
body.aeson-service-page .entry-content ol:not([class*="menu"]) > li {
    font-family: var(--aeson-service-font);
}


/* ----------------------------------------------------------
   INTENTIONAL SMALL UI ELEMENTS
   These keep their own component sizes.
   ---------------------------------------------------------- */

body.aeson-service-page .entry-content figcaption,
body.aeson-service-page .entry-content button,
body.aeson-service-page .entry-content input,
body.aeson-service-page .entry-content textarea,
body.aeson-service-page .entry-content select,
body.aeson-service-page .entry-content [class*="kicker"],
body.aeson-service-page .entry-content [class*="eyebrow"],
body.aeson-service-page .entry-content [class*="caption"],
body.aeson-service-page .entry-content [class*="label"],
body.aeson-service-page .entry-content [class*="button"] {
    font-family: var(--aeson-service-font);
}


/* ----------------------------------------------------------
   MOBILE
   ---------------------------------------------------------- */

@media only screen and (max-width: 767px) {

    body.aeson-service-page {
        --aeson-service-body-size: 16px;
        --aeson-service-body-line: 1.68;

        --aeson-service-h1-size: 34px;
        --aeson-service-h1-line: 1.20;

        --aeson-service-h2-size: 27px;
        --aeson-service-h2-line: 1.28;

        --aeson-service-h3-size: 21px;
        --aeson-service-h3-line: 1.34;
    }
}
