body {
    font-family: var(--font-body);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--color-primary-dark);
}

/* Navbar */
.navbar-brand img {
    display: block;
}

.navbar .nav-link {
    color: var(--color-neutral-900);
    font-weight: 500;
}

.navbar .nav-link:hover,
.navbar .nav-link.active {
    color: var(--color-primary);
}

/* Hero */
.hero {
    background: linear-gradient(135deg, var(--color-primary-dark) 0%, var(--color-primary) 100%);
    color: #fff;
    padding: 6rem 0;
}

.hero h1 {
    color: #fff;
    font-size: 2.75rem;
}

.hero .lead {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1.15rem;
}

/* Page hero (interior pages) */
.page-hero {
    background: var(--color-primary-light);
    padding: var(--page-hero-padding-y, 3.5rem) 0;
}

.page-hero h1 {
    margin-bottom: 0.5rem;
}

/* Sections */
.section {
    padding: var(--section-padding-y, 4.5rem) 0;
}

.section-alt {
    background-color: var(--color-neutral-100);
}

/* Cards */
.feature-card {
    border: none;
    border-radius: var(--radius-card, 0.75rem);
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.06);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    height: 100%;
}

.feature-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.1);
}

.feature-card .icon-badge {
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary-light);
    color: var(--color-primary);
    font-size: 1.25rem;
}

/* Placeholder image blocks (until real photography is dropped in) */
.placeholder-img {
    background: repeating-linear-gradient(
        45deg,
        var(--color-primary-light),
        var(--color-primary-light) 12px,
        #ffffff 12px,
        #ffffff 24px
    );
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary-dark);
    font-weight: 500;
    text-align: center;
    min-height: 220px;
}

/* Footer */
.site-footer {
    background-color: var(--color-primary-dark);
}

.footer-link {
    color: rgba(255, 255, 255, 0.85);
    text-decoration: none;
}

.footer-link:hover {
    color: #fff;
    text-decoration: underline;
}

/* CTA band */
.cta-band {
    background-color: var(--color-secondary-light);
}

/* Section background images (hero / page-hero with an admin-chosen photo
   instead of a flat color/gradient). --section-overlay is set inline per
   section (0-1) to keep light text readable over a photo. */
.section-bg-image {
    position: relative;
    background-size: cover;
    background-position: center;
    color: #fff;
}

.section-bg-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, var(--section-overlay, 0.45));
}

.section-bg-image > .container {
    position: relative;
}

.section-bg-image h1,
.section-bg-image h2 {
    color: #fff;
}

.section-bg-image .text-muted {
    color: rgba(255, 255, 255, 0.85) !important;
}
