:root {
    --brand-navy: #0f2942;
    --brand-navy-dark: #0a1c2e;
    --brand-navy-light: #1c3f60;
    --brand-gold: #c99a2e;
    --brand-gold-dark: #a97f1f;
    --brand-bg: #f4f6f9;
    --brand-text: #1f2937;
}


/* body {
    background-color: var(--brand-bg);
    color: var(--brand-text);
}

main {
    min-height: 70vh;
} */
html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: var(--brand-bg);
    color: var(--brand-text);
}

main {
    flex: 1 0 auto;
}

a {
    color: var(--brand-navy);
}
a:hover {
    color: var(--brand-gold-dark);
}

/* Brand backgrounds/utilities */
.bg-brand {
    background-color: var(--brand-navy) !important;
}
.text-brand {
    color: var(--brand-navy) !important;
}

/* Primary navy buttons (login, form submits, secondary actions) */
.btn-brand {
    background-color: var(--brand-navy);
    border-color: var(--brand-navy);
    color: #fff;
}
.btn-brand:hover,
.btn-brand:focus {
    background-color: var(--brand-navy-dark);
    border-color: var(--brand-navy-dark);
    color: #fff;
}

/* Gold accent buttons (primary calls-to-action: Register, Apply, Submit) */
.btn-accent {
    background-color: var(--brand-gold);
    border-color: var(--brand-gold);
    color: #fff;
}
.btn-accent:hover,
.btn-accent:focus {
    background-color: var(--brand-gold-dark);
    border-color: var(--brand-gold-dark);
    color: #fff;
}

/* Consistent card headers across the app */
.card-header {
    background-color: var(--brand-navy);
    color: #fff;
    border-bottom: 3px solid var(--brand-gold);
}
.card-header a {
    color: #fff;
}

.navbar.bg-brand {
    border-bottom: 3px solid var(--brand-gold);
}

.hero-section {
    background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-light) 100%);
    color: #fff;
}

.section-title {
    color: var(--brand-navy);
    border-bottom: 2px solid var(--brand-gold);
    padding-bottom: 0.35rem;
    font-weight: 600;
}

.badge.bg-open {
    background-color: #1e7e34 !important;
}

.text-truncate-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.navbar-brand i {
    margin-right: 4px;
}

footer.bg-dark {
    flex-shrink: 0;
    background-color: var(--brand-navy-dark) !important;
}

.card {
    border: 1px solid #e3e7ed;
}

.form-label {
    font-weight: 500;
    color: var(--brand-text);
}
