/* Global safety: no horizontal scroll */
*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  max-width: 100%;
  overflow-x: hidden;
}

body { background-color: #f8f9fa; }

/* Site-wide side padding */
.container, .container-fluid {
  padding-left: 1rem;
  padding-right: 1rem;
}
@media (min-width: 768px) {
  .container, .container-fluid {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* =========================
   NAVBAR LOGO SIZING
   ========================= */
.navbar-brand-icon{
  height: 86px !important;
  width: auto !important;
  display: block;
  object-fit: contain;
}
@media (max-width: 1199.98px){
  .navbar-brand-icon{ height: 78px !important; }
}
@media (max-width: 991.98px){
  .navbar-brand-icon{ height: 56px !important; }
}
@media (max-width: 575.98px){
  .navbar-brand-icon{ height: 52px !important; }
}

.navbar-brand-text { color: #0ea5e9; }

/* Normal nav links */
.navbar .nav-link {
  color: #212529;
  text-decoration: none;
}

/* Hover: blue + underline */
.navbar .nav-link:hover {
  color: #0d6efd;
  text-decoration: underline;
}

/* Active: blue, not underlined */
.navbar .nav-link.active {
  color: #0d6efd !important;
  font-weight: 600;
  text-decoration: none !important;
}

/* Active hover */
.navbar .nav-link.active:hover {
  text-decoration: underline;
}

/* =========================
   TIGHT NAVBAR HEIGHT
   ========================= */
.navbar{
  padding: 6px 0 !important;
  min-height: 0 !important;
}
.navbar-brand{
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
}
.navbar .container{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Buttons wrap nicely on small screens */
.btn { white-space: normal; }
.hero-cta .btn { width: 100%; }
@media (min-width: 576px) {
  .hero-cta .btn { width: auto; }
}

/* HERO SECTION */
.hero-section {
  position: relative;
  width: 100%;
  color: #f9fafb;

  /* IMPORTANT: use a variable so the template can swap images per microsite */
  background-image: var(--hero-image, none);
  background-size: cover;
  background-position: left center;
  background-repeat: no-repeat;

  background-color: rgba(0, 0, 0, 0.65);
  background-blend-mode: multiply;
}

.hero-overlay {
  position: relative;
  z-index: 1;
  padding-top: 3rem;
  padding-bottom: 3rem;
}

.hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(255, 255, 255, 0.02),
    rgba(255, 255, 255, 0.06),
    rgba(255, 255, 255, 0.12)
  );
  z-index: 0;
}

.hero-section a,
.hero-section h1,
.hero-section p,
.hero-section li { color: #f9fafb; }

.hero-section .btn-primary { color: #fff; }

.hero-section .btn-outline-light {
  color: #f9fafb;
  border-color: #f9fafb;
}
.hero-section .btn-outline-light:hover {
  background-color: #f9fafb;
  color: #0f172a;
}

.hero-section .btn-outline-success {
  color: #f9fafb;
  border-color: #f9fafb;
}
.hero-section .btn-outline-success:hover {
  background-color: #f9fafb;
  color: #198754;
}

.hero-section h1,
.hero-section p,
.hero-section li,
.hero-section .hero-cta .btn {
  text-shadow: 0 2px 5px rgba(0, 0, 0, 0.85);
}

/* Hero typography refinements */
.hero-title { font-size: clamp(2.4rem, 4vw, 3.1rem); }
.hero-bullets { font-size: 0.98rem; }
.hero-sponsor small { letter-spacing: 0.08em; }

@media (min-width: 992px) {
  .hero-overlay { padding-top: 3.75rem; padding-bottom: 3.75rem; }
}
@media (max-width: 767.98px) {
  .hero-overlay { padding-top: 2.25rem; padding-bottom: 2.5rem; }
}

/* Information Center link styles */
.information-center-links a,
.information-center-links a h3,
.information-center-links a .h6 {
  text-decoration: none;
  color: #0d6efd;
}
.information-center-links a:hover,
.information-center-links a:hover h3,
.information-center-links a:hover .h6 {
  text-decoration: underline;
}
.information-center-links a:visited,
.information-center-links a:visited h3,
.information-center-links a:visited .h6 {
  color: #551A8B !important;
  text-decoration: underline;
}
.information-center-links .text-muted.small { font-size: 0.95rem; }

/* Search container */
.search-card-inner {
  border-radius: 0.75rem;
  padding: 0.75rem;
  background: linear-gradient(135deg, #ffffff 0%, #f8fafc 40%, #eef2ff 100%);
  border: 1px solid #e2e8f0;
}

/* Featured block and sidebar sizing */
#featuredWrapper h3 { font-size: 0.95rem; letter-spacing: 0.08em; }
.featured-item-snippet { font-size: 0.95rem; }

.sidebar-card-body { font-size: 0.95rem; }
.sidebar-card-body ul { padding-left: 1.1rem; }

/* Sidebar card look */
.sidebar-card {
  border-radius: 1rem;
  border: 1px solid #e5e7eb;
  background-color: #ffffff;
}
.sidebar-card h3 { font-size: 1rem; margin-bottom: 0.35rem; }

@media (max-width: 575.98px) {
  #kbPagination { flex-wrap: wrap; row-gap: 0.25rem; }
  #kbPagination .page-link {
    padding-left: 0.4rem;
    padding-right: 0.4rem;
    font-size: 0.8rem;
  }
}

/* Normal visited links turn purple */
a:visited {
  color: #551A8B;
}

/* Buttons never inherit visited color */
a.btn:visited,
a.btn:visited *,
.btn:visited,
.btn:visited * {
  color: inherit !important;
}

/* Explicitly lock primary button text */
a.btn.btn-primary:visited,
a.btn.btn-primary:visited * {
  color: #fff !important;
}

/* Keep success buttons white after click / visit */
a.btn.btn-success,
a.btn.btn-success:visited,
a.btn.btn-success:focus,
a.btn.btn-success:hover,
a.btn.btn-success:active {
  color: #fff !important;
}

