/* RWD Consulting — Bootstrap 5 Starter */
:root {
  --rwd-navy: #0d1b2a;
  --rwd-navy-2: #1b3a57;
  --rwd-ink: #0b1320;
  --rwd-slate: #5f6b7a;
  --rwd-line: rgba(13, 27, 42, 0.12);
  --rwd-accent: #e21b2c;
  /* Soft background palette (updated to a light tint of #872534) */
  --rwd-burgundy: #872534;
  --rwd-burgundy-rgb: 135, 37, 52;
  --rwd-soft: #f4ebed;
  --rwd-soft-hi: #f9f4f5;
  --rwd-soft-lo: #e7d3d6;
  --rwd-shadow: 0 12px 40px rgba(13, 27, 42, 0.1);

  /* Global navbar controls */
  --nav-bg: #ffffff;
  --nav-border-color: var(--rwd-line);
  --nav-link-color: var(--rwd-burgundy);
  --nav-link-hover-color: var(--rwd-ink);
  --nav-link-active-color: var(--rwd-ink);
  --nav-link-font-family: Arial, Helvetica, sans-serif;
  --nav-link-font-size: 1.1rem;
  --nav-link-font-weight: 600;
  --nav-link-letter-spacing: 0;
  --nav-link-padding-y: 0.5rem;
  --nav-link-padding-x: 0.5rem;
  --nav-dropdown-link-color: var(--rwd-ink);
  --nav-dropdown-hover-bg: rgba(var(--rwd-burgundy-rgb), 0.1);
  --nav-dropdown-active-bg: rgba(var(--rwd-burgundy-rgb), 0.14);
  --nav-focus-ring: rgba(var(--rwd-burgundy-rgb), 0.16);
  --nav-brand-logo-height: 80px;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family:
    system-ui,
    -apple-system,
    Segoe UI,
    Roboto,
    Helvetica,
    Arial,
    "Apple Color Emoji",
    "Segoe UI Emoji";
  color: var(--rwd-ink);
}
a {
  text-decoration: none;
}
.small-muted {
  color: var(--rwd-slate);
}

.navbar {
  background-color: var(--nav-bg);
  border-bottom: 1px solid var(--nav-border-color);
  backdrop-filter: blur(10px);
}
.navbar .btn {
  border-radius: 999px;
}
.navbar .navbar-brand,
.navbar .navbar-brand:hover,
.navbar .navbar-brand:focus {
  color: inherit;
}
.navbar .navbar-nav .nav-link,
.navbar .navbar-nav .dropdown-toggle {
  font-family: var(--nav-link-font-family);
  color: var(--nav-link-color);
  font-weight: var(--nav-link-font-weight);
  font-size: var(--nav-link-font-size);
  letter-spacing: var(--nav-link-letter-spacing);
  line-height: 1.2;
  padding: var(--nav-link-padding-y) var(--nav-link-padding-x);
  transition:
    color 0.12s ease,
    background-color 0.12s ease;
}
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .dropdown-toggle:hover,
.navbar .navbar-nav .dropdown-toggle:focus {
  color: var(--nav-link-hover-color);
}

/* Remove Bootstrap's default square focus/hover ring on dropdown toggles in the navbar */
.navbar .dropdown-toggle:focus,
.navbar .dropdown-toggle:focus-visible,
.navbar .navbar-nav .nav-link:focus-visible {
  outline: none;
  box-shadow: none;
}

.navbar .navbar-nav .nav-link,
.navbar .navbar-nav .nav-link:hover,
.navbar .navbar-nav .nav-link:focus,
.navbar .navbar-nav .dropdown-toggle,
.navbar .navbar-nav .dropdown-toggle:hover,
.navbar .navbar-nav .dropdown-toggle:focus {
  background: transparent;
}
.navbar .navbar-nav .nav-link.active,
.navbar .navbar-nav .dropdown-toggle.active,
.navbar .navbar-nav .show > .nav-link,
.navbar .navbar-nav .show > .dropdown-toggle {
  color: var(--nav-link-active-color);
  font-size: var(--nav-link-font-size);
  font-weight: var(--nav-link-font-weight);
  line-height: 1.2;
}

.navbar .dropdown-item.active,
.navbar .dropdown-item:active,
.navbar .mega-menu a.active,
.navbar .mega-menu a:active {
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
.brand-lockup img {
  height: var(--nav-brand-logo-height);
  width: auto;
}

.dropdown-mega {
  position: static;
}
.dropdown-menu.mega-menu {
  width: min(860px, calc(100vw - 2rem));
  border: 1px solid var(--rwd-line);
  border-radius: 18px;
  box-shadow: var(--rwd-shadow);
}
.mega-menu .mega-title {
  font-weight: 800;
  letter-spacing: 0.2px;
}
.mega-menu .list-unstyled a {
  display: block;
  padding: 0.38rem 0.25rem;
  border-radius: 10px;
  color: var(--nav-dropdown-link-color);
}
.mega-menu .list-unstyled a:hover,
.mega-menu .list-unstyled a:focus {
  background: var(--rwd-soft);
}
.mega-kicker {
  color: var(--rwd-slate);
  font-size: 0.9rem;
}

/* Dropdown hover states — soft burgundy pill highlight (mega menu + standard dropdowns) */
.mega-menu .list-unstyled a {
  padding: 0.5rem 0.65rem;
  border-radius: 12px;
  transition:
    background-color 0.12s ease,
    color 0.12s ease;
}
.mega-menu .list-unstyled a:hover,
.mega-menu .list-unstyled a:focus {
  background: var(--nav-dropdown-hover-bg);
  color: var(--nav-dropdown-link-color);
}
.mega-menu .list-unstyled a:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 0.18rem var(--nav-focus-ring);
}

.dropdown-menu .dropdown-item {
  /* Force full-width hit area + highlight (some templates add d-inline-flex) */
  display: block !important;
  width: 100%;
  border-radius: 12px;
  margin: 0.1rem 0;
  padding: 0.48rem 0.78rem;
  transition:
    background-color 0.12s ease,
    color 0.12s ease;
}

/* Standard (non-mega) dropdown menus: keep pill highlights evenly aligned */
.dropdown-menu:not(.mega-menu) {
  padding: 0.35rem;
}
.dropdown-menu:not(.mega-menu) .dropdown-item {
  margin: 0.1rem 0;
}
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus {
  background: var(--nav-dropdown-hover-bg);
  color: var(--nav-dropdown-link-color);
}
.dropdown-menu .dropdown-item.active,
.dropdown-menu .dropdown-item:active {
  background: var(--nav-dropdown-active-bg);
  color: var(--nav-dropdown-link-color);
}

.hero {
  background: radial-gradient(1000px 600px at 70% 10%, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0)), linear-gradient(135deg, var(--rwd-navy), var(--rwd-navy-2));
  color: #fff;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.hero .hero-card {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 22px;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.22);
}
.hero .lead {
  color: rgba(255, 255, 255, 0.88);
}
.hero .btn {
  border-radius: 999px;
  padding: 0.8rem 1.1rem;
}
.hero .btn-primary {
  background: var(--rwd-accent);
  border-color: var(--rwd-accent);
}
.hero .btn-outline-light {
  border-color: rgba(255, 255, 255, 0.55);
}
.hero .trust-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.hero .trust-pill {
  font-size: 0.9rem;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.18);
  padding: 0.35rem 0.6rem;
  border-radius: 999px;
}

.page-header {
  position: relative;
  overflow: hidden;
  background-color: var(--rwd-soft);
  background-image:
    radial-gradient(900px 320px at 15% 10%, var(--rwd-soft-hi), rgba(255, 255, 255, 0) 60%),
    radial-gradient(700px 260px at 85% 0%, rgba(var(--rwd-burgundy-rgb), 0.12), rgba(var(--rwd-burgundy-rgb), 0) 55%),
    linear-gradient(135deg, var(--rwd-soft-hi) 0%, var(--rwd-soft) 45%, var(--rwd-soft-lo) 100%);
  border-bottom: 1px solid var(--rwd-line);
}
.page-header:after {
  content: "";
  position: absolute;
  inset: -1px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.45), rgba(255, 255, 255, 0) 38%), linear-gradient(180deg, rgba(var(--rwd-burgundy-rgb), 0.1), rgba(var(--rwd-burgundy-rgb), 0) 58%);
  pointer-events: none;
}
.page-header > .container {
  position: relative;
  z-index: 1;
}

/* Taller service headers + video CTA */
.page-header--tall {
  padding: 4.5rem 0;
}
@media (min-width: 992px) {
  .page-header--tall {
    padding: 2.5rem 0;
  }
}

.header-media {
  width: 100%;
}
@media (min-width: 992px) {
  /*
    Keep the header video thumbnail consistently sized across pages.
    When the wrapper is width:auto (shrink-to-fit) and the <img> hasn’t
    loaded yet (or has a different intrinsic size), the flex item can end
    up different widths per page. This sets an explicit, responsive width.
  */
  .header-media {
    width: clamp(320px, 34vw, 560px);
    flex: 0 0 auto;
  }
  .header-video-thumb {
    max-width: 100%;
  }
}

.header-video-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1.05rem 1.15rem;
  border-radius: 18px;
  border: 1px solid rgba(var(--rwd-burgundy-rgb), 0.18);
  background: rgba(255, 255, 255, 0.62);
  color: var(--rwd-ink);
  box-shadow: 0 18px 60px rgba(13, 27, 42, 0.08);
  max-width: 460px;
  transform: translateY(0);
  transition:
    transform 0.14s ease,
    box-shadow 0.14s ease,
    background-color 0.14s ease;
}
.header-video-card:hover,
.header-video-card:focus {
  background: rgba(255, 255, 255, 0.72);
  color: var(--rwd-ink);
  transform: translateY(-1px);
  box-shadow: 0 22px 70px rgba(13, 27, 42, 0.1);
}
.header-video-card:focus-visible {
  outline: 0;
  box-shadow:
    0 0 0 0.22rem rgba(var(--rwd-burgundy-rgb), 0.18),
    0 22px 70px rgba(13, 27, 42, 0.1);
}

.header-video-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--rwd-burgundy-rgb), 0.14);
  color: var(--rwd-burgundy);
  border: 1px solid rgba(var(--rwd-burgundy-rgb), 0.18);
  font-size: 1.55rem;
  flex: 0 0 auto;
}

/* Header video thumbnail (service pages) */
.header-video-thumb {
  display: block;
  position: relative;
  width: 100%;
  max-width: 560px;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(var(--rwd-burgundy-rgb), 0.22);
  background: rgba(255, 255, 255, 7.35);
  box-shadow: 0 18px 60px rgba(13, 27, 42, 0.1);
  transform: translateY(0);
  transition:
    transform 0.14s ease,
    box-shadow 0.14s ease,
    filter 0.14s ease;
}
.header-video-thumb:hover,
.header-video-thumb:focus {
  transform: translateY(-1px);
  box-shadow: 0 22px 70px rgba(13, 27, 42, 0.12);
  filter: saturate(1.03) contrast(1.02);
}
.header-video-thumb:focus-visible {
  outline: 0;
  box-shadow:
    0 0 0 0.22rem rgba(var(--rwd-burgundy-rgb), 0.2),
    0 22px 70px rgba(13, 27, 42, 0.12);
}
.header-video-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.14), rgba(0, 0, 0, 0) 46%), linear-gradient(0deg, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0) 52%);
  pointer-events: none;
}
.header-video-thumb-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16/9;
  object-fit: cover;
}
.header-video-thumb-play {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 64px;
  height: 64px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.86);
  color: var(--rwd-burgundy);
  border: 1px solid rgba(var(--rwd-burgundy-rgb), 0.26);
  box-shadow: 0 14px 40px rgba(0, 0, 0, 0.22);
  font-size: 2rem;
}
.header-video-thumb:hover .header-video-thumb-play {
  background: rgba(255, 255, 255, 0.92);
}
@media (max-width: 575.98px) {
  .header-video-thumb {
    max-width: 100%;
  }
}

.section {
  padding: 72px 0;
}
.section-heading {
  font-weight: 900;
  letter-spacing: -0.2px;
}
.section-sub {
  color: var(--rwd-slate);
  max-width: 60ch;
}

.card {
  border: 1px solid var(--rwd-line);
  border-radius: 18px;
  overflow: hidden;
}
.card.card-hover {
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.card.card-hover:hover {
  transform: translateY(-3px);
  box-shadow: var(--rwd-shadow);
}

.feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--rwd-soft);
  color: var(--rwd-navy);
  border: 1px solid rgba(13, 27, 42, 0.1);
}

.cta-band {
  background-color: var(--rwd-soft);
  background-image: linear-gradient(135deg, var(--rwd-soft-hi) 0%, var(--rwd-soft) 55%, var(--rwd-soft-lo) 100%);
  border-top: 1px solid var(--rwd-line);
  border-bottom: 1px solid var(--rwd-line);
}
.cta-band .btn {
  border-radius: 999px;
}

footer {
  background: #0b1320;
  color: rgba(255, 255, 255, 0.88);
}
footer a {
  color: rgba(255, 255, 255, 0.88);
}
footer a:hover {
  color: #fff600;
}
.footer-mini {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.68);
}

.badge-soft {
  background: var(--rwd-soft);
  border: 1px solid rgba(13, 27, 42, 0.1);
  color: var(--rwd-ink);
  border-radius: 999px;
  padding: 0.4rem 0.7rem;
  font-weight: 600;
}

/* Buttons: swap the default black hover state to burgundy */
.btn-outline-dark {
  --bs-btn-hover-bg: var(--rwd-burgundy);
  --bs-btn-hover-border-color: var(--rwd-burgundy);
  --bs-btn-active-bg: var(--rwd-burgundy);
  --bs-btn-active-border-color: var(--rwd-burgundy);
  --bs-btn-focus-shadow-rgb: var(--rwd-burgundy-rgb);
}
.btn-dark {
  --bs-btn-hover-bg: var(--rwd-burgundy);
  --bs-btn-hover-border-color: var(--rwd-burgundy);
  --bs-btn-active-bg: var(--rwd-burgundy);
  --bs-btn-active-border-color: var(--rwd-burgundy);
  --bs-btn-focus-shadow-rgb: var(--rwd-burgundy-rgb);
}

/* All Services Text */
.all-services {
  font-size: 18px;
  font-weight: 700;
  color: #872534;
}

/* Core Services on Index Page */
.core-service-card {
  border: 2px solid #4c4c4c;
  background-color: #fff;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    background-color 0.18s ease;
}
.core-service-card:hover,
.core-service-card:focus-within {
  border-color: #731829;
  color: #731829;
  background-color: #f3f3f3;
}
.core-service-card:hover h3,
.core-service-card:hover p,
.core-service-card:hover span,
.core-service-card:hover .feature-icon,
.core-service-card:focus-within h3,
.core-service-card:focus-within p,
.core-service-card:focus-within span,
.core-service-card:focus-within .feature-icon {
  color: #731829;
}
.core-service-card:hover .small-muted,
.core-service-card:focus-within .small-muted {
  color: #731829;
}

/* Capability Cards */
.capability-card {
  border: 2px solid var(--rwd-line);
  background-color: #fff;
  transition:
    transform 0.18s ease,
    box-shadow 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease,
    background-color 0.18s ease;
}
.capability-card-top {
  display: flex;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 1.05rem 1.1rem 0.35rem;
}
.capability-pdf-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  flex: 0 0 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(var(--rwd-burgundy-rgb), 0.1);
  border: 1px solid rgba(var(--rwd-burgundy-rgb), 0.18);
  color: #731829;
  font-size: 1.5rem;
}
.capability-kicker {
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rwd-slate);
  margin-bottom: 0.35rem;
}
.capability-name {
  line-height: 1.25;
  min-height: 3.1rem;
}
.capability-card-body {
  padding-top: 0.35rem;
}
.capability-download {
  margin-top: 0.15rem;
}
.capability-card:hover,
.capability-card:focus-within {
  border-color: #731829;
  color: #731829;
  background-color: #f3f3f3;
}
.capability-card:hover h2,
.capability-card:hover p,
.capability-card:hover span,
.capability-card:hover .feature-icon,
.capability-card:hover .capability-kicker,
.capability-card:hover .capability-pdf-icon,
.capability-card:focus-within h2,
.capability-card:focus-within p,
.capability-card:focus-within span,
.capability-card:focus-within .feature-icon,
.capability-card:focus-within .capability-kicker,
.capability-card:focus-within .capability-pdf-icon {
  color: #731829;
}
.capability-card:hover .small-muted,
.capability-card:focus-within .small-muted {
  color: #731829;
}
.capability-card:hover .btn,
.capability-card:focus-within .btn {
  --bs-btn-bg: #731829;
  --bs-btn-border-color: #731829;
  --bs-btn-color: #fff;
}

/* Back to Top Button */
.back-to-top {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #731829;
  color: #ffffff;
  box-shadow: 0 14px 32px rgba(17, 24, 39, 0.22);
  cursor: pointer;
  z-index: 1080;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(14px) scale(0.94);
  transition:
    opacity 0.22s ease,
    visibility 0.22s ease,
    transform 0.22s ease,
    box-shadow 0.22s ease,
    background-color 0.22s ease;
}
.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.back-to-top:hover,
.back-to-top:focus-visible {
  background: #5e1321;
  color: #ffffff;
  box-shadow: 0 18px 38px rgba(17, 24, 39, 0.28);
  transform: translateY(-2px) scale(1.03);
}
.back-to-top:focus-visible {
  outline: 3px solid rgba(115, 24, 41, 0.22);
  outline-offset: 3px;
}
.back-to-top svg {
  width: 24px;
  height: 24px;
  fill: currentColor;
  transform: rotate(180deg);
}
@media (max-width: 575.98px) {
  .back-to-top {
    right: 1rem;
    bottom: 1rem;
    width: 52px;
    height: 52px;
  }
}
/* Awards Sub Text */
.awards {
  font-family: Arial, Helvetica, sans-serif;
  font-size: 20px;
}

/* Big contact us div on About */
.contact-us-about {
  background-color: #731829;
  color: #731829;
}

/* Make service links on the Service pages have an underline on hover state */
.services:hover a,
.services a:hover,
.services a:focus-visible {
  text-decoration: underline !important;
}

/* NAICS text */
.naics {
  font-size: 16px;
}

/* LI certs on index.html */

.cert-list li i {
  color: #731829 !important;
}

/* Nav Bar Font Size */

/* Oasis Contract List */
.contract-info-list {
  font-size: 16px !important;
}
