/* Teal blue background for all pages */
body {
  background-color: #1a68a4 !important;
}

/* Main menu styling - white, all caps, with shadow - EXPANDED */
.container-nav .nav-link,
.navbar-nav .nav-link,
header nav a,
.mod-menu a,
nav a,
.navbar a,
ul.mod-menu a,
ul.nav a,
#menu a,
[class*="menu"] a:not(.footer-section a):not(.footer-inner a) {
  color: #ffffff !important;
  text-transform: uppercase !important;
  font-weight: 600 !important;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8) !important;
  letter-spacing: 0.5px !important;
}

/* Menu hover effect - EXPANDED */
.container-nav .nav-link:hover,
.navbar-nav .nav-link:hover,
header nav a:hover,
.mod-menu a:hover,
nav a:hover,
.navbar a:hover,
ul.mod-menu a:hover,
ul.nav a:hover,
#menu a:hover,
[class*="menu"] a:not(.footer-section a):not(.footer-inner a):hover {
  color: #ffffff !important;
  text-shadow: 1px 1px 5px rgba(0, 0, 0, 1) !important;
}

/* Active menu item - EXPANDED */
.container-nav .nav-link.active,
.navbar-nav .nav-link.active,
header nav a.active,
.mod-menu a.active,
nav a.active,
.navbar a.active,
ul.mod-menu a.active,
ul.nav a.active,
#menu a.active,
[class*="menu"] a.active:not(.footer-section a):not(.footer-inner a),
.current a,
.active a {
  color: #ffffff !important;
  font-weight: 700 !important;
}

/* Remove container constraints from footer position */
.container-footer {
  max-width: 120% !important;
  width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Make footer element full width */
footer {
  width: 100% !important;
  max-width: 100% !important;
}

/* Override grid-child constraints for footer */
.grid-child.container-footer {
  max-width: none !important;
}

/* Footer styling - WITHOUT viewport breaking tricks */
.footer-section,
div.footer-section,
.moduletable.footer-section,
.custom.footer-section {
  width: 100% !important;
  max-width: 100% !important;
  background-color: #0e2a55 !important;
  background-image: none !important;
  background: #0e2a55 !important;
  border-top: 3px solid #39b54a !important;
  padding: 40px 20px 30px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  position: relative !important;
  left: 0 !important;
  right: 0 !important;
}

/* Ensure no negative margins */
.container-footer .footer-section,
.container-footer .moduletable {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.footer-inner {
  max-width: 1400px !important;
  margin: 0 auto !important;
  text-align: center !important;
  color: #ffffff !important;
  padding: 0 15px !important;
  box-sizing: border-box !important;
}

/* White text with subtle dark shadow (like menu) - FORCE */
.footer-inner h3,
.footer-inner .footer-contact,
.footer-inner .footer-contact p,
.footer-inner .footer-contact strong,
.footer-inner .footer-copy,
.footer-section h3,
.footer-section p,
.footer-section strong,
.footer-section span,
.footer-section div {
  color: #ffffff !important;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8) !important;
}

.footer-inner h3,
.footer-section h3 {
  font-size: 1.8rem !important;
  font-weight: 700 !important;
  margin-bottom: 25px !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
}

.footer-contact {
  font-size: 1.05rem !important;
  line-height: 1.9 !important;
  margin-bottom: 20px !important;
}

.footer-contact p {
  margin-bottom: 15px !important;
  color: #ffffff !important;
}

.footer-contact p:last-child {
  margin-bottom: 0 !important;
}

.footer-section a,
.footer-inner a {
  color: #39b54a !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  border-bottom: 1px solid rgba(255,255,255,0.5) !important;
  text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.8) !important;
}

.footer-section a:hover,
.footer-inner a:hover {
  opacity: 0.8 !important;
  transition: opacity 0.3s ease !important;
}

.footer-copy {
  margin-top: 30px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(255,255,255,0.2) !important;
  font-size: 0.9rem !important;
  opacity: 0.9 !important;
  color: #ffffff !important;
}

/* Override any Cassiopeia module chrome */
.moduletable:has(.footer-section),
.custom:has(.footer-section) {
  background: #0e2a55 !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Mobile-specific adjustments */
@media (max-width: 768px) {
  .footer-section,
  div.footer-section,
  .moduletable.footer-section,
  .custom.footer-section {
    padding: 30px 15px 25px !important;
  }
  
  .footer-inner {
    padding: 0 10px !important;
  }
  
  .footer-inner h3,
  .footer-section h3 {
    font-size: 1.4rem !important;
    margin-bottom: 20px !important;
  }
  
  .footer-contact {
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
  }
  
  .footer-copy {
    font-size: 0.85rem !important;
    margin-top: 25px !important;
    padding-top: 15px !important;
  }
}

/* Extra small devices */
@media (max-width: 480px) {
  .footer-section,
  div.footer-section,
  .moduletable.footer-section,
  .custom.footer-section {
    padding: 25px 10px 20px !important;
  }
  
  .footer-inner h3,
  .footer-section h3 {
    font-size: 1.2rem !important;
    margin-bottom: 15px !important;
  }
  
  .footer-contact {
    font-size: 0.9rem !important;
  }
}
