:root{
  --brand-red:#d90429; /* energetic red */
  --brand-red-dark:#b00322;
  --brand-black:#0b0b0b;
  --brand-white:#ffffff;
  --gray-100:#f6f7f9;
  --shadow-lg:0 10px 30px rgba(0,0,0,.12);
  --shadow-sm:0 6px 18px rgba(0,0,0,.08);
}

/* Container width aids */
.container{ max-width: 1140px; }

/* Topbar */
.site-header .topbar{
  background: var(--brand-red);
  color: var(--brand-white);
  font-size: 0.95rem;
}
.site-header .topbar .contact-link{
  color: var(--brand-white);
  text-decoration: none;
  opacity:.9;
}
.site-header .topbar .contact-link:hover{ opacity:1; color: var(--brand-white); }
.site-header .topbar .tagline{
  color: var(--brand-white);
  opacity:.85;
}

/* Navbar */
.site-header .mainnav{
  background: var(--brand-white);
  border-bottom: 1px solid #eee;
  transition: all .25s ease;
  /* Remove vertical padding so logo touches the navbar bounds */
  --bs-navbar-padding-y: 0;
}
.site-header .brand-logo{
  height: 90px; /* increase to fill lower header */
  width: auto;
  display: block; /* remove inline-gap below image */
  margin-top: 2px; /* 2px space above the logo */
}
.site-header .navbar-brand{ padding-top:0; padding-bottom:0; }
.site-header .brand-text .brand-name{
  font-weight: 800;
  letter-spacing:.2px;
  color: var(--brand-black);
}
.site-header .brand-text .brand-sub{
  color:#61656a;
}

/* Nav links */
.site-header .nav-link{
  font-weight:600;
  color:#2b2f36;
  position:relative;
}
.site-header .nav-link:hover,
.site-header .nav-link:focus{ color: var(--brand-red); }
.site-header .nav-link.active{ color: var(--brand-red); }
.site-header .nav-link::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-6px; height:2px; width:0%; margin:auto;
  background: var(--brand-red);
  transition: width .2s ease;
}
.site-header .nav-link:hover::after,
.site-header .nav-link.active::after{ width: 60%; }

/* CTA */
.btn-cta{
  background: var(--brand-red);
  color: var(--brand-white);
  border:none;
  font-weight:700;
  padding:.6rem 1rem;
  border-radius: .5rem;
  box-shadow: var(--shadow-sm);
}
.btn-cta:hover{ background: var(--brand-red-dark); color: var(--brand-white); box-shadow: var(--shadow-lg); }

/* Solid black email button, no hover change */
.btn-email{
  background:#000000;
  color:#ffffff;
  border:none;
  font-weight:600;
}
.btn-email:focus,
.btn-email:active,
.btn-email:hover{
  background:#000000;
  color:#ffffff;
  box-shadow:none;
}

/* Sticky states */
.is-sticky .mainnav{
  position: sticky; top:0; z-index:1030;
  box-shadow: var(--shadow-sm);
  border-bottom-color: transparent;
}
.is-scrolled .mainnav{ box-shadow: var(--shadow-lg); }
.is-scrolled .brand-logo{ height:90px; }

/* Navbar toggler contrast on light bg */
.navbar-toggler{ border-color: rgba(0,0,0,.1); }
.navbar-toggler:focus{ box-shadow: 0 0 0 .2rem rgba(217,4,41,.25); }

/* Utility: full red band section if needed */
.section-red{ background: var(--brand-red); color: var(--brand-white); }

/* Responsive tweaks */
@media (max-width: 991.98px){
  .site-header .nav-link{ padding-top:.75rem; padding-bottom:.75rem; }
  .header-cta{ display:none !important; }
}
@media (max-width: 575.98px){
  .site-header .brand-text .brand-sub{ display:none; }
  .site-header .brand-logo{ height:64px; }
}
