/**
 * @file
 * Typography styles for OPTiMO Drupal theme
 * Custom Neo Sans W01 font implementation
 */

/* Font Face Declaration - Neo Sans W01 */
/* Font files downloaded from WordPress theme */
@import url("https://fast.fonts.net/t/1.css?apiType=css&projectid=5f8cca67-243e-4cbc-af30-d3cb69b07ddf");

/* Neo Sans W01 Light */
@font-face {
    font-family: "Neo Sans W01 Light";
    src: url("../fonts/681fbcbc-1907-441a-893a-fc00ecea0267.eot");
    src: url("../fonts/681fbcbc-1907-441a-893a-fc00ecea0267.eot?#iefix") format("embedded-opentype"),
        url("../fonts/a53085dd-4493-4430-8349-fd63d6f3e5bc.woff2") format("woff2"),
        url("../fonts/b2130735-d692-47ef-89ad-4fbfd89a8618.woff") format("woff"),
        url("../fonts/feee8e94-28a0-416a-88d3-db3912effbc4.ttf") format("truetype"),
        url("../fonts/1287ca7a-3ce7-40b7-9612-061d4c793f04.svg#1287ca7a-3ce7-40b7-9612-061d4c793f04") format("svg");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* Neo Sans W01 Regular */
@font-face {
    font-family: "Neo Sans W01";
    src: url("../fonts/2959d89a-a257-4ce7-9cda-63e00f275369.eot");
    src: url("../fonts/2959d89a-a257-4ce7-9cda-63e00f275369.eot?#iefix") format("embedded-opentype"),
        url("../fonts/a126fe65-f7a1-4e21-8b9e-70d9d554d01e.woff2") format("woff2"),
        url("../fonts/b0eddbbb-9e8e-4e08-bde1-965bb945f73a.woff") format("woff"),
        url("../fonts/9879348e-2e6b-4baa-8a24-2d79103e93bc.ttf") format("truetype"),
        url("../fonts/470c1738-10af-498f-89d0-4c0adafd7b63.svg#470c1738-10af-498f-89d0-4c0adafd7b63") format("svg");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Neo Sans W01 Medium */
@font-face {
    font-family: "Neo Sans W01 Medium";
    src: url("../fonts/85c8556d-8a76-4037-a2e2-0f5fd9dabc03.eot");
    src: url("../fonts/85c8556d-8a76-4037-a2e2-0f5fd9dabc03.eot?#iefix") format("eot"),
        url("../fonts/f056e9e7-3bb5-4f21-b861-ed2a47a0700b.woff2") format("woff2"),
        url("../fonts/b0eddbbb-9e8e-4e08-bde1-965bb945f73a.woff") format("woff"),
        url("../fonts/b2931674-c992-42a0-aa22-e9cb15d3383d.ttf") format("truetype"),
        url("../fonts/af9d27b2-3ca0-47ca-8d5d-4c4665df6305.svg#af9d27b2-3ca0-47ca-8d5d-4c4665df6305") format("svg");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Neo Sans W01 Light Italic";
    src: url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.eot");
    src: url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.eot?#iefix") format("embedded-opentype"),
        url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.woff2") format("woff2"),
        url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.woff") format("woff"),
        url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.ttf") format("truetype"),
        url("https://db.onlinewebfonts.com/t/f25b8ceca746a21e1a2d42f30cff80d2.svg#Neo Sans W01 Light Italic")
            format("svg");
}

@font-face {
    font-family: "Neo Sans W01 Light734947";
    src: url("../fonts/681fbcbc-1907-441a-893a-fc00ecea0267.eot");
    src: url("../fonts/681fbcbc-1907-441a-893a-fc00ecea0267.eot?#iefix") format("eot"),
        url("../fonts/e0bd859d-12b1-41c1-9b67-003688d01609.woff2") format("woff2"),
        url("../fonts/a21a792c-051c-4059-8719-ecc8749c99a6.woff") format("woff"),
        url("../fonts/feee8e94-28a0-416a-88d3-db3912effbc4.ttf") format("truetype"),
        url("../fonts/be444bf4-2ebe-416a-baa3-b19910fb06ba.svg#be444bf4-2ebe-416a-baa3-b19910fb06ba") format("svg");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

/* Fallback if custom fonts aren't loaded */
body {
    font-family: var(--font-primary);
}

/* Heading Styles */
h1,
.heading-1 {
    font-family: "Neo Sans W01 Light734947", sans-serif, var(--font-primary);
    font-size: 46px;
    font-weight: 300;
    line-height: 1.1;
    font-style: normal;
    margin-bottom: var(--spacing-lg);
}

h2,
.heading-2 {
    font-family: "Neo Sans W01 Medium", "Neo Sans W01", var(--font-primary);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 500;
    line-height: 1.2;
}

h3,
.heading-3 {
    font-family: "Neo Sans W01 Medium", var(--font-primary);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: normal;
    line-height: 1.3;
}

h4,
.heading-4 {
    font-family: "Neo Sans W01 Medium", var(--font-primary);
    font-size: clamp(1.25rem, 2.5vw, 1.5rem);
    line-height: 1.4;
}

h5,
.heading-5 {
    font-family: "Neo Sans W01 Medium", var(--font-primary);
    font-size: 1.25rem;
    line-height: 1.4;
}

h6,
.heading-6 {
    font-family: "Neo Sans W01 Medium", var(--font-primary);
    font-size: 1rem;
    line-height: 1.5;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Body Text */
.text-large {
    font-size: 1.25rem;
    line-height: 1.7;
}

.text-small {
    font-size: 0.875rem;
    line-height: 1.5;
}

.text-light {
    font-family: "Neo Sans W01 Light", var(--font-primary);
    font-weight: 300;
}

/* Text Utilities */
.text-bold {
    font-weight: bold;
}

.text-uppercase {
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.text-italic {
    font-style: italic;
}

/* Links */
.text-link {
    color: var(--color-primary-blue);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: var(--transition-base);
}

.text-link:hover {
    border-bottom-color: var(--color-primary-blue);
}

/* Quote Styles */
blockquote {
    font-family: "Neo Sans W01 Light", var(--font-primary);
    font-size: 1.5rem;
    line-height: 1.6;
    color: var(--color-secondary-blue);
    margin: var(--spacing-xl) 0;
    padding-left: var(--spacing-xl);
    border-left: 4px solid var(--color-primary-blue);
    font-style: italic;
}

blockquote cite {
    display: block;
    font-size: 1rem;
    margin-top: var(--spacing-sm);
    font-style: normal;
    color: var(--color-text-dark);
}

/* Code and Pre */
code {
    font-family: "Courier New", Courier, monospace;
    background-color: var(--color-light-gray);
    padding: 0.2em 0.4em;
    border-radius: 3px;
    font-size: 0.9em;
}

pre {
    background-color: var(--color-light-gray);
    padding: var(--spacing-md);
    border-radius: var(--border-radius-sm);
    overflow-x: auto;
    line-height: 1.5;
}

pre code {
    background-color: transparent;
    padding: 0;
}

/* Lead Paragraph */
.lead {
    font-size: 1.25rem;
    line-height: 1.7;
    color: #555;
    margin-bottom: var(--spacing-lg);
}

/* Dropcap */
.dropcap::first-letter {
    float: left;
    font-size: 4rem;
    line-height: 0.8;
    margin: 0.1em 0.1em 0 0;
    color: var(--color-primary-blue);
    font-weight: bold;
}
