html {
  font-size: 14px;
}

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

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&display=swap');

body {
    font-family: 'Montserrat', sans-serif;
    padding-top: 90px;
}

.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 {
  position: relative;
  min-height: 100%;
}

.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;
}

h2, .h2 {
    letter-spacing: 0.25rem;
}

p {
    line-height: 1.75;
}

:root {
    --bs-primary: #006188;
    --bs-primary-rgb: 0, 97, 136;
    --bs-secondary: #009ee2;
    --bs-secondary-rgb: 0, 158, 226;
    --bs-tertiary: #bcbec0;
    --bs-tertiary-rgb: 188, 190, 192;
    --bs-light: #e6e7e8;
    --bs-light-rgb: 230, 231, 232;
}

.bg-tertiary {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-tertiary-rgb), var(--bs-bg-opacity)) !important;
}

.btn-primary {
    --bs-btn-bg: #006188;
    --bs-btn-border-color: #006188;
    --bs-btn-hover-bg: #004865;
    --bs-btn-hover-border-color: #004865;
    --bs-btn-focus-shadow-rgb: 0, 158, 226;
    --bs-btn-active-bg: #004865;
    --bs-btn-active-border-color: #0a53be;
    --bs-btn-disabled-bg: #006188;
    --bs-btn-disabled-border-color: #006188;
}


.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 #009ee2;
}

.navbar-brand {
    color: var(--primary-color) !important;
}

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

footer a {
    font-size: 20px;
}

.nav-hover {
    font-size: 20px;
    font-weight: 400;
    position: relative;
    padding-bottom: 5px !important;
    transition: color 0.3s ease;
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

.nav-hover::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background-color: var(--bs-secondary);
    transition: width 0.3s ease;
}

.nav-hover:hover::after {
    width: 100%;
}

#mainNav {
    transition: padding 0.3s ease, background-color 0.3s ease;
    padding: 1rem 0;
}

#navLogo {
    transition: height 0.3s ease;
}

#mainNav.navbar-shrink {
    padding: 0.2rem 0;
}

    #mainNav.navbar-shrink #navLogo {
        height: 50px !important;
    }

.home-banner {
    background-image: url('../images/Home-Banner.webp');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 80vh;
    will-change: background-position;
}

.brand-logo {
    max-height: 55px;
    width: auto;
}

.grid-item {
    position: relative;
    height: 400px;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    transition: transform 0.5s ease;
}

a:hover .grid-item {
    transform: scale(1.025);
}

.gradient-overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 50%;
    background: linear-gradient(to top, rgba(0,0,0,0.8), transparent);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 20px;
    transition: opacity 0.3s ease;
}

.gradient-overlay.white {
    background: linear-gradient(to top, rgba(255,255,255,0.8), transparent);
}

.logo-overlay {
    max-width: 60%;
    max-height: 100px;
    height: auto;
}