/* Savitas brand layer on top of Bootstrap 5.3 */
:root {
  --sv-navy: #00264f;
  --sv-slate: #4d6d9b;
  --sv-slate-dark: #3d5880;
  --sv-orange: #e38720;
  --sv-orange-dark: #c7721a;
  --sv-tint: #f3f6fa;

  --bs-link-color: #2f5487;
  --bs-link-color-rgb: 47, 84, 135;
  --bs-link-hover-color: var(--sv-navy);
  --bs-link-hover-color-rgb: 0, 38, 79;
  --bs-body-color: #1f2937;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body { background: #fff; }

h1, h2, h3, h4, h5 { color: var(--sv-navy); font-weight: 600; letter-spacing: -0.01em; }
h2 { margin-top: 2.25rem; margin-bottom: 0.9rem; font-size: 1.6rem; }
h3 { margin-top: 1.5rem; font-size: 1.25rem; }
.card h3, .card .h5 { margin-top: 0; }
main p, main li { line-height: 1.65; }
main ul:not(.list-group):not(.list-unstyled):not(.list-inline) { padding-left: 1.25rem; }
main ul:not(.list-group):not(.list-unstyled) > li + li { margin-top: 0.25rem; }

.skip-link { position: absolute; left: 1rem; top: 0.5rem; z-index: 1100; padding: 0.5rem 1rem; background: #fff; border-radius: 0.375rem; }

/* Header */
.tagline-bar { background: var(--sv-navy); color: #c9d4e3; font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.35rem 0; }
.tagline-bar .tagline { color: #fff; margin-left: auto; }
.site-nav { background: var(--sv-slate); padding-top: 0; padding-bottom: 0; }
.brand-logo { height: 52px; width: auto; display: block; }
.site-nav .nav-link { color: #fff; font-weight: 500; padding-top: 1rem; padding-bottom: 1rem; }
.site-nav .nav-link:hover, .site-nav .nav-link:focus-visible, .site-nav .nav-link.active, .site-nav .show > .nav-link { color: #fff; background: rgba(0, 0, 0, 0.14); }
@media (min-width: 992px) {
  .site-nav .nav-link { padding-left: 0.9rem; padding-right: 0.9rem; }
}
.site-nav .dropdown-menu { border: 0; border-radius: 0 0 0.5rem 0.5rem; box-shadow: 0 0.75rem 2rem rgba(0, 38, 79, 0.18); margin-top: 0; padding: 0.5rem 0; }
.site-nav .dropdown-item { padding: 0.4rem 1.1rem; font-size: 0.95rem; }
.site-nav .dropdown-item.active, .site-nav .dropdown-item:active { background: var(--sv-slate); color: #fff; }
.site-nav .dropdown-header { color: var(--sv-navy); font-weight: 700; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; padding: 0.6rem 1.1rem 0.3rem; }
.site-nav .dropdown-item.sub { padding-left: 2rem; font-size: 0.9rem; }

/* Mega menu: full container width on desktop, plain list on mobile */
@media (min-width: 992px) {
  .site-nav .dropdown-mega { position: static; }
  .site-nav .dropdown-mega > .dropdown-menu { left: 0.75rem; right: 0.75rem; padding: 1rem 0.5rem; }
  .mega-col + .mega-col { border-left: 1px solid #e5e9f0; }
}
@media (max-width: 991.98px) {
  .site-nav .navbar-collapse { padding-bottom: 1rem; }
  .site-nav .dropdown-menu { box-shadow: none; border-radius: 0.375rem; margin-bottom: 0.5rem; max-height: 70vh; overflow-y: auto; }
  .nav-cta { margin-top: 0.5rem; }
}

/* Breadcrumb */
.crumb-bar { background: var(--sv-tint); border-bottom: 1px solid #e5e9f0; }
.crumb-bar .breadcrumb { margin: 0; padding: 0.6rem 0; font-size: 0.875rem; --bs-breadcrumb-divider-color: #8a99ad; }

/* Page content */
main { padding-top: 2.5rem; }
.page-title { font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.6rem); margin-bottom: 0.75rem; }
.lead { color: #3b4a5e; max-width: 52rem; }
main .card { border-color: #e2e8f0; box-shadow: 0 1px 2px rgba(0, 38, 79, 0.04); }
main .card-title { color: var(--sv-navy); }
main .list-group-item-heading { font-weight: 600; margin-bottom: 0.25rem; }
main .list-group-item-text { margin-bottom: 0; }
main img { max-width: 100%; height: auto; }

.cta-band { margin: 3rem 0 0; padding: 2rem; border-radius: 0.75rem; background: linear-gradient(135deg, var(--sv-navy), var(--sv-slate)); color: #e8eef6; }
.cta-band h2, .cta-band .h4 { color: #fff; margin-top: 0; }
.cta-band p { max-width: 44rem; }

/* Buttons */
.btn-primary { --bs-btn-bg: var(--sv-slate); --bs-btn-border-color: var(--sv-slate); --bs-btn-hover-bg: var(--sv-navy); --bs-btn-hover-border-color: var(--sv-navy); --bs-btn-active-bg: var(--sv-navy); --bs-btn-active-border-color: var(--sv-navy); --bs-btn-focus-shadow-rgb: 77, 109, 155; }
.cta-band .btn-primary, .btn-accent { --bs-btn-color: #fff; --bs-btn-bg: var(--sv-orange); --bs-btn-border-color: var(--sv-orange); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--sv-orange-dark); --bs-btn-hover-border-color: var(--sv-orange-dark); --bs-btn-active-bg: var(--sv-orange-dark); --bs-btn-active-border-color: var(--sv-orange-dark); --bs-btn-focus-shadow-rgb: 227, 135, 32; font-weight: 600; }
.btn-outline-primary { --bs-btn-color: var(--sv-slate-dark); --bs-btn-border-color: var(--sv-slate); --bs-btn-hover-bg: var(--sv-slate); --bs-btn-hover-border-color: var(--sv-slate); --bs-btn-active-bg: var(--sv-navy); --bs-btn-active-border-color: var(--sv-navy); }

/* Home */
.hero { background: linear-gradient(120deg, var(--sv-navy) 0%, var(--sv-slate) 100%); color: #dbe4f0; padding: 4rem 0 3.5rem; margin-top: -2.5rem; margin-bottom: 3rem; }
.hero h1 { color: #fff; font-size: clamp(2rem, 1.3rem + 2.6vw, 3.1rem); max-width: 40rem; }
.hero .lead { color: #dbe4f0; }
.hero .eyebrow { color: var(--sv-orange); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8rem; }
.pillar .card-body { padding: 1.75rem; }
.pillar h2 { margin-top: 0; font-size: 1.35rem; }

/* Partners */
.partner-logo { display: flex; align-items: center; justify-content: center; height: 150px; padding: 1.5rem; }
.partner-logo img { max-height: 100px; max-width: 100%; object-fit: contain; }

/* Footer */
.site-footer { background: var(--sv-navy); color: #b9c6d8; font-size: 0.95rem; }
.site-footer a { color: #fff; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.site-footer address { color: #b9c6d8; }
.footer-logo { height: 39px; width: auto; border-radius: 4px; }
.footer-heading { color: #fff; font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; margin: 0 0 0.9rem; }
.footer-links li + li { margin-top: 0.4rem; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 0.85rem; }
