/* Preserve the site's established Bootstrap 4 geometry on Bootstrap 5. */
:root {
    --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --bs-body-color: #212529;
    --bs-link-color: #007bff;
    --bs-link-color-rgb: 0, 123, 255;
    --bs-link-hover-color: #0056b3;
    --bs-link-hover-color-rgb: 0, 86, 179;
    --bs-primary: #007bff;
    --bs-primary-rgb: 0, 123, 255;
    --bs-border-color: #dee2e6;
    --bs-border-radius: .25rem;
}

body { text-align: left; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }
small { font-size: 80%; }
hr { margin: 1rem 0; border: 0; border-top: 1px solid rgba(0, 0, 0, .1); opacity: 1; }
h1, .h1 { font-size: 2.5rem; }
h2, .h2 { font-size: 2rem; }
h3, .h3 { font-size: 1.75rem; }
h4, .h4 { font-size: 1.5rem; }
h5, .h5 { font-size: 1.25rem; }
h6, .h6 { font-size: 1rem; }

.container, .container-fluid, .row { --bs-gutter-x: 30px; }
.row-eq-height > [class*="col-"] { padding-right: 15px; padding-left: 15px; min-width: 0; }
.media { display: flex; align-items: flex-start; }
.media-body { flex: 1; min-width: 0; }
.img-responsive { max-width: 100%; height: auto; }

.dropdown-menu { --bs-dropdown-item-padding-x: 1.5rem; border-radius: .25rem; }
.dropdown-submenu { list-style: none; padding-left: 1rem; margin: 0; }
.main-menu .dropdown-item { white-space: normal; }
.main-menu .nav-link:focus-visible { outline: 2px solid #ffec68; outline-offset: -3px; }
.input-group-sm > .form-control, .input-group-sm > .btn { font-size: .875rem; line-height: 1.5; }
.btn-secondary { --bs-btn-bg: #6c757d; --bs-btn-border-color: #6c757d; }
.page-link { padding: .5rem .75rem; }
.pagination { flex-wrap: wrap; --bs-pagination-active-bg: #007bff; --bs-pagination-active-border-color: #007bff; }
.carousel-control-prev-icon, .carousel-control-next-icon { width: 20px; height: 20px; }

@media (min-width: 992px) {
    .main-menu .dropdown-menu { min-width: 16rem; max-width: 22rem; }
}

@media (max-width: 991px) {
    .main-menu .navbar-collapse { max-height: 75vh; overflow-y: auto; }
    .main-menu .dropdown-menu { border: 0; margin: 0; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; }
    .featured-news-slide, .carousel-item { transition: none !important; }
}
