:root {
    --oag-blue: #2c4a7c;
    --oag-blue-dark: #1e3558;
    --oag-blue-light: #3a5f9a;
}

html {
    font-size: 14px;
}

body {
    margin-bottom: 60px;
}

/* Ohio AG brand bar */
.oag-brand-bar {
    background-color: #fff;
    border-bottom: 1px solid #dee2e6;
}

.oag-seal {
    height: 50px;
    width: auto;
}

.oag-title {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--oag-blue);
    line-height: 1.2;
}

.oag-subtitle {
    font-size: 0.9rem;
    color: #495057;
}

/* Navigation bar */
.oag-navbar {
    background-color: var(--oag-blue);
}

.oag-navbar .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.oag-navbar .nav-link {
    color: rgba(255, 255, 255, 0.85);
    padding: 0.65rem 1rem;
    font-size: 0.9rem;
    font-weight: 500;
    border-bottom: 3px solid transparent;
    transition: color 0.15s, border-color 0.15s;
}

.oag-navbar .nav-link:hover,
.oag-navbar .nav-link.active {
    color: #fff;
    border-bottom-color: #fff;
}

/* Section headers (card headers) */
.card-header,
.card-header.bg-primary {
    background-color: var(--oag-blue) !important;
    color: #fff;
    font-weight: 600;
    border-radius: 0.375rem 0.375rem 0 0 !important;
}

.card-header h4 {
    font-size: 1.1rem;
    color: #fff;
    margin-bottom: 0;
}

/* Language switcher in navbar */
.lang-switcher {
    background-color: rgba(255, 255, 255, 0.15);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 4px;
    padding: 0.25rem 2rem 0.25rem 0.5rem;
    cursor: pointer;
    width: auto;
    font-size: 0.85rem;
}

.lang-switcher option {
    background-color: #fff;
    color: #333;
}

/* Entity section */
.entity-section {
    background-color: #fff;
}

/* Override Bootstrap text-primary to use OAG blue for contrast */
.text-primary {
    color: var(--oag-blue) !important; /* #2c4a7c — 8.5:1 vs white */
}

/* Footer */
.footer {
    position: relative;
    bottom: 0;
    width: 100%;
    white-space: nowrap;
    line-height: 60px;
}

/* Buttons */
.btn-primary {
    background-color: var(--oag-blue);
    border-color: var(--oag-blue);
}

.btn-primary:hover {
    background-color: var(--oag-blue-dark);
    border-color: var(--oag-blue-dark);
}

.btn-outline-primary {
    color: var(--oag-blue);
    border-color: var(--oag-blue);
}

.btn-outline-primary:hover {
    background-color: var(--oag-blue);
    border-color: var(--oag-blue);
    color: #fff;
}

/* Accessibility: ensure WCAG AA contrast ratio (4.5:1 min) */
.text-muted,
.form-text {
    color: #495057 !important; /* 8.6:1 vs white — passes AA and AAA */
}

.badge.bg-secondary {
    background-color: #495057 !important;
}

::placeholder {
    color: #495057 !important;
    opacity: 1 !important;
}

.form-select option[value=""] {
    color: #495057;
}

.oag-subtitle {
    color: #495057;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}
