/**
 * Typography & Hierarchy
 */

/* Base Resets */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: var(--wp--preset--color--off-white);
    color: var(--wp--preset--color--charcoal);
}

/* Headings Base */
h1,
h2,
h3,
.has-section-heading-font-size,
.is-narrative-title {
    letter-spacing: -0.05em;
    line-height: 0.95;
    text-transform: uppercase;
}

/* Vertical Spacing for Articles/Content */
body.single .entry-content h1:not(:first-child),
body.single .entry-content h2:not(:first-child),
body.single .entry-content h3:not(:first-child),
body.single .entry-content h4:not(:first-child) {
    margin-top: 1.5em !important;
}

/* Fluid Clamps */


.has-giant-font-size,
.font-size-hero-clamp {
    font-size: clamp(4rem, 15vw, 12rem) !important;
}

.font-size-display-clamp {
    font-size: clamp(2.5rem, 8vw, 6rem) !important;
    line-height: 1 !important;
}

.font-size-h3-clamp {
    font-size: clamp(1.5rem, 3vw, 2.5rem) !important;
    line-height: 1.1 !important;
}

.has-section-heading-font-size {
    font-size: clamp(2.5rem, 4vw, 3.5rem) !important;
    line-height: 1 !important;
}

.font-size-intro-clamp {
    font-size: clamp(1.25rem, 2vw, 1.75rem) !important;
    line-height: 1.1 !important;
}

.font-size-subhead-clamp {
    font-size: clamp(1.2rem, 2vw, 2rem) !important;
    line-height: 1.1 !important;
}

.font-size-carousel-title {
    font-size: clamp(2.5rem, 6vw, 5rem) !important;
    line-height: 0.95 !important;
    text-transform: uppercase !important;
}

/* Text Utilities */
.is-mono {
    font-family: var(--wp--preset--font-family--roboto-mono);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.text-lead {
    font-size: 1.15rem !important;
    line-height: 1.7 !important;
}

.text-lead-relaxed {
    font-size: 1.15rem !important;
    line-height: 1.8 !important;
}

.text-desc {
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
}

.text-sm {
    font-size: 0.85rem !important;
}

.text-xs {
    font-size: 0.75rem !important;
}

.text-09 {
    font-size: 0.9rem !important;
}

.text-12 {
    font-size: 1.2rem !important;
}

.has-x-large-font-size {
    font-size: 2rem !important;
}

.has-large-font-size {
    font-size: 1.25rem !important;
}

.text-tech-small {
    font-size: 0.75rem !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
}

.text-tech-xs {
    font-size: 0.7rem !important;
    letter-spacing: 0.1em !important;
}

.is-system-label {
    text-transform: uppercase;
    font-size: 0.65rem;
    font-family: var(--wp--preset--font-family--roboto-mono);
    letter-spacing: 0.1em;
}

/* Leading & Tracking */
.leading-tight {
    line-height: 1.1 !important;
}

.leading-ultra-tight {
    line-height: 0.75 !important;
}

.leading-relaxed {
    line-height: 1.6 !important;
}

.tracking-wide {
    letter-spacing: 0.2em !important;
}

.tracking-wider {
    letter-spacing: 0.3em !important;
}

.tracking-normal {
    letter-spacing: 0 !important;
}

.tracking-tight {
    letter-spacing: -0.025em !important;
}

.tracking-widest {
    letter-spacing: 0.1em !important;
}

.text-uppercase,
.uppercase {
    text-transform: uppercase !important;
}

.font-light {
    font-weight: 300 !important;
}

.font-medium {
    font-weight: 500 !important;
}

.font-weight-700,
.font-bold {
    font-weight: 700 !important;
}

.leading-none {
    line-height: 1 !important;
}

.has-vertical-text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
    white-space: nowrap;
}

/* Colors */
.has-tech-gray-color {
    opacity: 0.8;
}

.text-error {
    color: #e02424 !important;
}

.text-success {
    color: var(--wp--preset--color--cosmic-blue-light) !important;
}