/* ==========================================================================
   Base Styles — Tufford Group
   Google Fonts are enqueued from functions.php (tufford_enqueue_styles)
   to avoid render-blocking @import.
   ========================================================================== */

/* ── Reset ── */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    -webkit-text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-body);
    font-size: var(--body-mid-size);
    font-weight: var(--weight-regular);
    line-height: var(--body-mid-line-height);
    color: var(--color-grey-dark);
    background-color: var(--color-white);
}

img,
picture,
video,
svg {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

ul,
ol {
    list-style: none;
}

button,
input,
textarea,
select {
    font: inherit;
    color: inherit;
}

/* ── Headings ── */
h1, .h1 {
    font-family: var(--font-heading);
    font-size: var(--h1-size);
    font-weight: var(--h1-weight);
    line-height: var(--h1-line-height);
    letter-spacing: 0;
}

h2, .h2 {
    font-family: var(--font-heading);
    font-size: var(--h2-size);
    font-weight: var(--h2-weight);
    line-height: var(--h2-line-height);
    letter-spacing: 0;
}

h3, .h3 {
    font-family: var(--font-heading);
    font-size: var(--h3-size);
    font-weight: var(--h3-weight);
    line-height: var(--h3-line-height);
    letter-spacing: 0;
}

h4, .h4 {
    font-family: var(--font-body);
    font-size: var(--h4-size);
    font-weight: var(--h4-weight);
    line-height: var(--h4-line-height);
    letter-spacing: 0;
}

h5, .h5 {
    font-family: var(--font-body);
    font-size: var(--h5-size);
    font-weight: var(--h5-weight);
    line-height: var(--h5-line-height);
    letter-spacing: 0;
}

h6, .h6 {
    font-family: var(--font-body);
    font-size: var(--h6-size);
    font-weight: var(--h6-weight);
    line-height: var(--h6-line-height);
    letter-spacing: 0;
}

/* ── Body Text Utilities ── */
.body-large {
    font-size: var(--body-large-size);
    line-height: var(--body-large-line-height);
    font-weight: var(--weight-regular);
}

.body-large-semibold {
    font-size: var(--body-large-size);
    line-height: var(--body-large-line-height);
    font-weight: var(--weight-semibold);
}

.body-mid {
    font-size: var(--body-mid-size);
    line-height: var(--body-mid-line-height);
    font-weight: var(--weight-regular);
}

.body-mid-semibold {
    font-size: var(--body-mid-size);
    line-height: var(--body-mid-line-height);
    font-weight: var(--weight-semibold);
}

.body-small {
    font-size: var(--body-small-size);
    line-height: var(--body-small-line-height);
    font-weight: var(--weight-regular);
}

.body-small-semibold {
    font-size: var(--body-small-size);
    line-height: var(--body-small-line-height);
    font-weight: var(--weight-semibold);
}

/* ── Link Utilities ── */
.link-large {
    font-family: var(--font-body);
    font-size: var(--link-large-size);
    font-weight: var(--weight-medium);
    line-height: var(--link-large-line-height);
}

.link-small {
    font-family: var(--font-body);
    font-size: var(--link-small-size);
    font-weight: var(--weight-medium);
    line-height: var(--link-small-line-height);
}
