:root {
    --black: #0a0a0a;
    --white: #f4f2ee;
    --gray-dark: #2b2b2b;
    --gray-mid: #5a5a5a;
    --gray-light: #c8c4be;
    --gray-bg: #ebebeb;
    --blue: #1a4b8c;
    --blue-dark: #0f2f5a;
    --blue-light: #2e6bc9;
    --accent: #3a7bd5;
    --yellow: #f0c040;
    --yellow-dark: #c99a10;
}

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

html { scroll-behavior: smooth; }

body {
    font-family: 'Source Serif 4', Georgia, serif;
    background: var(--white);
    color: var(--black);
    overflow-x: hidden;
}

/* ─── TEXTURE OVERLAY ─── */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4'%3E%3Crect width='4' height='4' fill='none'/%3E%3Crect x='0' y='0' width='1' height='1' fill='%23000' opacity='0.04'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 999;
}

/* ─── NAV ─── */
nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    background: var(--black);
    border-bottom: 3px solid var(--blue);
    box-shadow: 0 3px 0 0 var(--yellow);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 48px;
    height: 68px;
}

nav a {
    text-decoration: none;
}

.nav-logo {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white);
    line-height: 1.2;
}

.nav-logo span {
    display: block;
    font-size: 0.6rem;
    font-weight: 400;
    letter-spacing: 0.3em;
    color: var(--accent);
    margin-top: 2px;
}

.nav-links {
    display: flex;
    gap: 36px;
    list-style: none;
}

.nav-links a {
    font-family: 'Oswald', sans-serif;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--gray-light);
    text-decoration: none;
    transition: color 0.2s;
}

.nav-links a:hover { color: var(--accent); }
.nav-links a.active { color: var(--yellow); }

.nav-cta {
    background: var(--blue);
    color: var(--white) !important;
    padding: 8px 20px !important;
    border: 2px solid var(--blue) !important;
    transition: background 0.2s, color 0.2s !important;
}

.nav-cta:hover {
    background: transparent !important;
    color: var(--accent) !important;
    border-color: var(--accent) !important;
}

.btn {
    font-family: 'Oswald', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 14px 32px;
    border: 2px solid transparent;
    cursor: pointer;
    display: inline-block;
    transition: all 0.2s;
}

.btn-primary {
    background: var(--blue);
    color: var(--white);
    border-color: var(--blue);
}

.btn-primary:hover {
    background: var(--blue-light);
    border-color: var(--blue-light);
}

.btn-outline {
    background: transparent;
    color: var(--white);
    border-color: var(--gray-mid);
}

.btn-outline:hover {
    border-color: var(--white);
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to { opacity: 1; transform: translateY(0); }
}

/* ─── SECTION COMMON ─── */
section { padding: 100px 48px; }

.section-label {
    font-family: 'Oswald', sans-serif;
    font-size: 0.68rem;
    letter-spacing: 0.35em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.section-label::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: var(--accent);
}

.section-label--yellow { color: var(--yellow); }
.section-label--yellow::before { background: var(--yellow); }

/* ─── DIVIDER ─── */
.divider {
    height: 6px;
    background: repeating-linear-gradient(
        90deg,
        var(--blue-dark) 0, var(--blue-dark) 30px,
        var(--blue) 30px, var(--blue) 60px,
        var(--yellow) 60px, var(--yellow) 66px,
        var(--black) 66px, var(--black) 68px
    );
}

/* ─── CTA BANNER ─── */
.cta-banner {
    background: var(--blue-dark);
    padding: 70px 48px;
    text-align: center;
    border-top: 5px solid var(--accent);
    border-bottom: 5px solid var(--accent);
}

.cta-banner h2 {
    font-family: 'Oswald', sans-serif;
    font-size: clamp(1.8rem, 3.5vw, 3rem);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--white);
    letter-spacing: 0.03em;
    margin-bottom: 12px;
}

.cta-banner p {
    color: var(--gray-light);
    font-size: 1rem;
    font-weight: 300;
    margin-bottom: 36px;
}

/* ─── FOOTER ─── */
footer {
    background: var(--black);
    border-top: 3px solid var(--blue-dark);
    padding: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: wrap;
}

.footer-logo {
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--white);
}

.footer-logo span {
    display: block;
    font-size: 0.58rem;
    font-weight: 400;
    letter-spacing: 0.3em;
    color: var(--accent);
    margin-top: 2px;
}

.footer-copy {
    font-family: 'Oswald', sans-serif;
    font-size: 0.65rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gray-mid);
}

.footer-links {
    display: flex;
    gap: 28px;
    list-style: none;
}

.footer-links a {
    font-family: 'Oswald', sans-serif;
    font-size: 0.7rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--gray-mid);
    text-decoration: none;
    transition: color 0.2s;
}

.footer-links a:hover { color: var(--accent); }