/* =============================================================
   GRIFT FONT FACE DECLARATIONS
   Full family: Thin (100) → ExtraLight (200) → Light (300)
               Regular (400) → Medium (500) → SemiBold (600)
               Bold (700) → ExtraBold (800) → Black (900)
   ============================================================= */

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Thin.otf') format('opentype');
    font-weight: 100;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-ThinItalic.otf') format('opentype');
    font-weight: 100;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-ExtraLight.otf') format('opentype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-ExtraLightItalic.otf') format('opentype');
    font-weight: 200;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-LightItalic.otf') format('opentype');
    font-weight: 300;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Italic.otf') format('opentype');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-MediumItalic.otf') format('opentype');
    font-weight: 500;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-SemiBold.otf') format('opentype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-SemiBoldItalic.otf') format('opentype');
    font-weight: 600;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-BoldItalic.otf') format('opentype');
    font-weight: 700;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-ExtraBold.otf') format('opentype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-ExtraBoldItalic.otf') format('opentype');
    font-weight: 800;
    font-style: italic;
    font-display: swap;
}

@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-Black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Grift';
    src: url('../font/Grift-BlackItalic.otf') format('opentype');
    font-weight: 900;
    font-style: italic;
    font-display: swap;
}

/* =============================================================
   FONTAWESOME ICON PROTECTION — must come BEFORE Grift rules
   These elements MUST keep their icon font — never override.
   ============================================================= */
.fa, .fas, .far, .fab, .fal, .fat, .fad, .fa-solid, .fa-regular,
.fa-brands, .fa-light, .fa-thin, .fa-duotone,
[class^="fa-"], [class*=" fa-"],
i.fas, i.far, i.fab, i.fal, i.fat, i.fad,
i.fa-solid, i.fa-regular, i.fa-brands,
i[class^="fa-"], i[class*=" fa-"] {
    font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands", "Font Awesome 5 Free", "Font Awesome 5 Brands" !important;
}

/* =============================================================
   GLOBAL FONT APPLICATION — Grift on text elements ONLY
   ============================================================= */

/* Apply Grift to all text-carrying elements — NOT icons */
html,
body,
p, span, a, li, ul, ol, dt, dd,
h1, h2, h3, h4, h5, h6,
button, input, textarea, select, option, label,
th, td, caption,
blockquote, cite, q, abbr, acronym,
pre, code, kbd, samp, var,
small, strong, em, b, u, s, del, ins,
form, fieldset, legend,
nav, header, footer, main, section, article, aside,
div, figure, figcaption,
.font-heading, .font-sans, .font-body {
    font-family: 'Grift', system-ui, -apple-system, sans-serif !important;
}

/* ---- BODY / PARAGRAPH TEXT --------------------------------- */
/* Readable prose at Regular weight */
body,
p,
li,
td,
th,
label,
input,
textarea,
select,
blockquote {
    font-family: 'Grift', system-ui, sans-serif !important;
    font-weight: 400;
}

/* Slightly lighter for supporting / descriptive text */
.text-slate-500,
.text-slate-400,
.font-light,
.leading-relaxed.font-light,
footer p,
.iacu-footer-desc {
    font-weight: 300;
}

/* ---- HEADINGS ---------------------------------------------- */
/* H1: Black weight — maximum impact for hero / page titles */
h1,
.font-heading.text-5xl,
.font-heading.text-4xl,
.hero-bg h2 {
    font-family: 'Grift', system-ui, sans-serif !important;
    font-weight: 900;
    letter-spacing: -0.02em;
}

/* H2: ExtraBold — section headings */
h2,
.font-heading.text-3xl,
.font-heading.text-4xl:not(.hero-bg *),
.font-extrabold {
    font-family: 'Grift', system-ui, sans-serif !important;
    font-weight: 800;
    letter-spacing: -0.015em;
}

/* H3: Bold — sub-section headings, card titles */
h3,
.font-heading.text-2xl,
.font-heading.text-xl,
.font-bold {
    font-family: 'Grift', system-ui, sans-serif !important;
    font-weight: 700;
}

/* H4, H5, H6: SemiBold */
h4, h5, h6,
.font-heading.text-lg,
.font-heading.text-base,
.font-semibold {
    font-family: 'Grift', system-ui, sans-serif !important;
    font-weight: 600;
}

/* ---- NAVIGATION ------------------------------------------- */
/* Nav menu links: SemiBold for clarity */
header nav a,
header nav ul li a,
#mobileMenuDrawer nav a,
#mobileMenuDrawer ul li a {
    font-weight: 600 !important;
    letter-spacing: 0.08em;
}

/* Subnav / dropdown items: Medium */
header nav .sub-menu a,
#mobileMenuDrawer .sub-menu a {
    font-weight: 500 !important;
    letter-spacing: 0.04em;
}

/* ---- BUTTONS ---------------------------------------------- */
/* CTAs and primary actions: Bold */
.btn-primary,
button[type="submit"],
a.btn-primary,
.iacu-cta-btn {
    font-weight: 700 !important;
    letter-spacing: 0.1em;
}

/* ---- LABELS & BADGES -------------------------------------- */
/* Uppercase tracking labels: SemiBold */
.uppercase.tracking-widest,
.uppercase.tracking-wider,
.uppercase.tracking-wide,
.text-xs.font-bold.uppercase,
span.uppercase,
label {
    font-weight: 600 !important;
}

/* ---- FORM INPUTS ------------------------------------------ */
input,
textarea,
select {
    font-weight: 400 !important;
    letter-spacing: 0.01em;
}

input::placeholder,
textarea::placeholder {
    font-weight: 300 !important;
}

/* ---- FOOTER ----------------------------------------------- */
footer h4 {
    font-weight: 700 !important;
}
footer a {
    font-weight: 500 !important;
}
footer .text-sm {
    font-weight: 300 !important;
}

/* ---- TOP BAR ---------------------------------------------- */
.bg-brand-navy.text-slate-300 a {
    font-weight: 500 !important;
}

/* ---- BREADCRUMBS ------------------------------------------ */
.text-xs.text-slate-300 a,
.text-xs.text-slate-300 span {
    font-weight: 500 !important;
}

/* ---- CARD META / TAGS ------------------------------------- */
.text-\\[10px\\],
.text-2xs,
.text-3xs {
    font-weight: 600 !important;
    letter-spacing: 0.12em;
}

/* ---- COUNTER VALUES --------------------------------------- */
.counter-value {
    font-weight: 900 !important;
    letter-spacing: -0.03em;
}

/* ---- STATISTICS / BIG NUMBERS ----------------------------- */
.font-heading.text-3xl.font-extrabold,
.font-heading.text-4xl.font-extrabold {
    font-weight: 900 !important;
}

/* ---- BLOCKQUOTES / PULL QUOTES ---------------------------- */
blockquote,
.message-box,
.italic {
    font-weight: 300 !important;
    font-style: italic;
}

/* ---- TAILWIND OVERRIDE: ensure font-family sticks ---------- */
/* Tailwind's `font-sans` and `font-heading` -> Grift */
.font-heading,
.font-sans {
    font-family: 'Grift', system-ui, sans-serif !important;
}
