html {
    font-size: 14px;
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    min-height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background: linear-gradient(to bottom,#fdfdfd 0%, var(--trac-green) 180%);
}

    body > .container {
        flex: 1;
        display: flex;
        flex-direction: column;
    }

        body > .container > main {
            flex: 1;
        }

/* TRAC Customizations*/

/* Global color variables for site-wide use */
:root {
    --trac-green: #3D5825;
    --trac-light-grey: #C3C3C3;
    --trac-dark-grey: #5E5E5E;
}

/* Convenience utility classes */
.text-trac-green {
    color: var(--trac-green) !important;
}

.text-trac-light-grey {
    color: var(--trac-light-grey) !important;
}

.text-trac-dark-grey {
    color: var(--trac-dark-grey) !important;
}

.bg-trac-light-grey {
    background-color: var(--trac-light-grey) !important;
}

.bg-trac-dark-grey {
    background-color: var(--trac-dark-grey) !important;
}

.bg-trac-green {
    background-color: var(--trac-green) !important;
}

.border-trac-light-grey {
    border-color: var(--trac-light-grey) !important;
}

.border-trac-dark-grey {
    border-color: var(--trac-dark-grey) !important;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

.header-banner {
    display: flex;
    align-items: center;
    padding: 20px;
    background-color: #f5f5f5;
    gap: 20px;
}

/* Left third */
.banner-image {
    flex: 1;
    max-width: 33%;
}

    .banner-image img {
        width: auto;
        height: auto;
        border-radius: 6px;
    }

/* Right two-thirds */
.banner-text {
    flex: 2;
}

    .banner-text h1 {
        margin: 0;
        font-size: 2rem;
    }

    .banner-text p {
        margin: 5px 0 0;
        font-size: 1.2rem;
        color: #555;
    }

/* Mobile layout: stack vertically */
@media (max-width: 700px) {
    .header-banner {
        flex-direction: column;
        text-align: center;
    }

    .banner-image,
    .banner-text {
        max-width: 100%;
        flex: none;
    }
}

/* GRID LAYOUT */
.image-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* This centers each row */
    gap: 20px;
    padding: 20px;
}

    /* Each item: max 3 per row on large screens */
    .image-grid a {
        flex: 0 1 calc(33.333% - 20px);
        display: block;
    }

    .image-grid img {
        width: 100%;
        height: auto;
        border-radius: 8px;
        transition: transform 0.2s ease;
        cursor: pointer;
    }

        .image-grid img:hover {
            transform: scale(1.05);
        }

/* Medium screens: 2 per row */
@media (max-width: 900px) {
    .image-grid a {
        flex: 0 1 calc(50% - 20px);
    }
}

/* Small screens: 1 per row */
@media (max-width: 600px) {
    .image-grid a {
        flex: 0 1 100%;
    }
}



/* END GRID LAYOUT*/

.site-footer {
    background-color: white;
    padding: 10px 0;
    margin-top: 70px;
    border-top: 1px solid #ddd;
}

.footer-links {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 25px;
}

    .footer-links a {
        text-decoration: none;
        color: var(--trac-green) !important;
        font-size: 1rem;
        transition: color 0.2s ease;
    }

        .footer-links a:hover {
            color: var(--trac-light-grey) !important; /* or your brand color */
        }
.navbar-nav .dropdown-toggle {
    color: var(--trac-light-grey) !important;
}

.dropdown-menu a {
    color: var(--trac-green) !important;
}
    .dropdown-menu a:hover {
        color: var(--trac-light-grey) !important;
    }

.contact-link a {
    color: var(--trac-green) !important;
}
    .contact-link a:hover {
        color: var(--trac-light-grey) !important;
    }

/* General Page Layout*/

/* Shared section spacing */
.page-section {
    padding: 40px 20px;
}

/* ----------------------------- */
/* 60/40 TOP SPLIT LAYOUT        */
/* ----------------------------- */

.top-split {
    display: flex;
    gap: 100px;
    align-items: center;
}

/* Left side (60%) */
.split-text {
    flex: 3;
}

/* Right side (40%) */
.split-image {
    flex: 2;
}

    .split-image img {
        width: 90%;
        height: auto;
        border-radius: 8px;
    }

/* Mobile: stack vertically */
@media (max-width: 900px) {
    .top-split {
        flex-direction: column;
        text-align: center;
    }

    .split-text,
    .split-image {
        flex: none;
        width: 60%;
    }
}

/* ----------------------------- */
/* TWO-COLUMN CONTENT SECTION    */
/* ----------------------------- */

.two-column {
    display: flex;
    gap: 40px;
}

    .two-column .column {
        flex: 1;
    }

/* Mobile: stack columns */
@media (max-width: 900px) {
    .two-column {
        flex-direction: column;
    }
}
