html {
    font-size: 16px;
}

@media (min-width: 768px) {
    html {
        font-size: 17px;
    }
}

:root {
    --brand-navy: #c62828;
    --brand-navy-soft: #e53935;
    --brand-header: #2b2b2e;
    --brand-header-soft: #3e3e42;
    --brand-footer: #1c1c1e;
    --brand-gold: #f2a541;
    --brand-cream: #eceeef;
    --brand-text: #1f2430;
    --brand-muted: #667085;
    --bs-body-font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif;
}

body {
    color: var(--brand-text);
    background-color: #cfcfcf;
    font-family: Cambria, Cochin, Georgia, Times, "Times New Roman", serif;
}

.site-header,
.admin-header {
    background: linear-gradient(135deg, var(--brand-header) 0%, var(--brand-header-soft) 100%);
}

.hero-section,
.page-banner {
    background: linear-gradient(135deg, var(--brand-navy) 0%, var(--brand-navy-soft) 100%);
}

    /* Scope header/admin nav-link coloring to header areas only so in-page navs remain readable */
    .site-header .navbar-brand,
    .site-header .nav-link,
    .admin-header .navbar-brand,
    .admin-header .nav-link,
    .hero-section h1,
    .page-banner h1,
    .page-banner .eyebrow,
    .hero-section .eyebrow {
        color: #fff;
    }

    /* Override Bootstrap's .text-muted (too low-contrast on the dark banner gradient) */
    .hero-section .text-muted,
    .page-banner .text-muted {
        color: rgba(255, 255, 255, 0.85) !important;
    }

        /* Hover/focus accent for header navs and brand/text utility */
        .site-header .nav-link:hover,
        .site-header .nav-link:focus,
        .admin-header .nav-link:hover,
        .admin-header .nav-link:focus,
        .link-brand,
        .text-brand {
            color: var(--brand-gold) !important;
        }

.btn-brand {
    background-color: var(--brand-gold);
    border-color: var(--brand-gold);
    color: #101828;
    font-weight: 600;
}

    .btn-brand:hover,
    .btn-brand:focus {
        background-color: #b99045;
        border-color: #b99045;
        color: #101828;
    }

.bg-brand-subtle {
    background-color: rgba(202, 164, 91, 0.16);
}

.hero-section,
.page-banner {
    position: relative;
    overflow: hidden;
}

.hero-section {
    padding-top: 1.25rem !important;
    padding-bottom: 1.25rem !important;
}

@media (min-width: 992px) {
    .hero-section {
        padding-top: 2.75rem !important;
        padding-bottom: 2.75rem !important;
    }
}

    .hero-section::after,
    .page-banner::after {
        content: "";
        position: absolute;
        inset: auto -10% -20% auto;
        width: 20rem;
        height: 20rem;
        background: radial-gradient(circle, rgba(202, 164, 91, 0.2), transparent 70%);
    }

.py-lg-6 {
    padding-top: 6rem !important;
    padding-bottom: 6rem !important;
}

.eyebrow {
    display: inline-block;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--brand-gold);
}

.section-heading,
.cta-panel,
.feature-card,
.premium-card,
.home-card {
    background-color: #fff;
    border-radius: 1.25rem;
}

.feature-card,
.premium-card,
.cta-panel,
.home-card {
    padding: 2rem;
    box-shadow: 0 1rem 3rem rgba(15, 23, 42, 0.08);
}

.premium-card {
    background-color: var(--brand-cream);
}

.home-card {
    background-color: #e3e5e8;
}

.text-muted {
    color: var(--brand-muted) !important;
}

.text-footer {
    color: rgba(255, 255, 255, 0.85) !important;
}

.site-footer {
    background-color: var(--brand-footer);
}

.footer-heading {
    color: #fff;
    font-size: 1rem;
    margin-bottom: 0.75rem;
    font-weight: 700;
}

.social-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.15);
    color: rgba(255, 255, 255, 0.9);
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

.social-icon-link svg {
    width: 1.25rem;
    height: 1.25rem;
    fill: currentColor;
}

.social-icon-link:hover,
.social-icon-link:focus {
    background-color: var(--brand-cream, #d4af37);
    color: var(--brand-footer);
}

.step-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background-color: var(--brand-navy);
    color: #fff;
    font-weight: 700;
}

.cta-panel {
    border: 1px solid rgba(13, 27, 63, 0.08);
}

.blog-content {
    line-height: 1.45;
    white-space: normal; /* let Markdown HTML control layout */
}

.blog-content p {
    margin-top: 0;
    margin-bottom: 0.5rem;
}

    .blog-content p:last-child {
        margin-bottom: 0;
    }

.blog-content ul,
.blog-content ol {
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    padding-left: 1.25rem;
}

.blog-content h1,
.blog-content h2,
.blog-content h3,
.blog-content h4,
.blog-content h5,
.blog-content h6 {
    margin-top: 0.75rem;
    margin-bottom: 0.4rem;
    line-height: 1.2;
}

.form-control,
.form-check-input,
.accordion-button {
    border-radius: 0.85rem;
}

    .form-control:focus,
    .form-check-input:focus,
    .accordion-button:focus,
    .btn:focus {
        border-color: var(--brand-gold);
        box-shadow: 0 0 0 0.2rem rgba(202, 164, 91, 0.2);
    }

    .accordion-button:not(.collapsed) {
        background-color: rgba(202, 164, 91, 0.12);
        color: var(--brand-navy);
    }

.admin-body {
    background-color: #f5f7fb;
}

.admin-body .form-label {
    font-weight: 500;
    text-transform: none;
}

.admin-body h1.h2,
.admin-body h1.h3 {
    font-size: 1.5rem;
}

.admin-body .display-6 {
    font-size: 1.75rem;
}

.table > :not(caption) > * > * {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.blog-sort-label {
    min-width: 5.5rem;
    text-align: right;
    white-space: nowrap;
    margin-right: 0.5rem;
}

.a11y-controls {
    flex-shrink: 0;
}

.a11y-btn {
    line-height: 1;
    padding: 0.25rem 0.5rem;
}

    .a11y-btn.active,
    .a11y-btn[aria-pressed="true"] {
        background-color: var(--brand-gold);
        border-color: var(--brand-gold);
        color: var(--brand-navy);
    }

body.high-contrast {
    background-color: #000000 !important;
    color: #ffffff !important;
}

    body.high-contrast,
    body.high-contrast * {
        background-color: #000000 !important;
        background-image: none !important;
        text-shadow: none !important;
        box-shadow: none !important;
        color: #ffffff !important;
    }

    body.high-contrast a,
    body.high-contrast .nav-link,
    body.high-contrast .navbar-brand {
        color: #ffff00 !important;
    }

    body.high-contrast .site-header,
    body.high-contrast .admin-header,
    body.high-contrast .hero-section,
    body.high-contrast .page-banner,
    body.high-contrast .site-footer,
    body.high-contrast .card,
    body.high-contrast .table {
        background: #000000 !important;
        color: #ffffff !important;
        border-color: #ffffff !important;
    }

    body.high-contrast .btn-primary,
    body.high-contrast .btn-outline-light {
        background-color: #000000 !important;
        border-color: #ffff00 !important;
        color: #ffff00 !important;
    }

    body.high-contrast .form-control,
    body.high-contrast .form-select {
        background-color: #000000 !important;
        color: #ffffff !important;
        border-color: #ffffff !important;
    }
