#header.header-overlay { position: absolute; top: 0; left: 0; right: 0; z-index: 1030; background-color: transparent !important; box-shadow: none; }
#header.header-overlay .nav-link { color: rgba(255,255,255,.95) !important; }
#header.header-overlay .nav-link:hover { color: var(--bridgewell-accent) !important; }
#header.header-overlay .btn-apply { background-color: var(--bridgewell-accent); color: var(--bridgewell-primary); }
#header.header-overlay .navbar-brand-logo { filter: none; }
/* Ensure crisp logo sizing */
#header .navbar-brand-logo { height: 48px; width: auto; }

#header.header-fixed { position: fixed; top: 0; left: 0; right: 0; z-index: 1030; transition: background-color .2s ease; }
:root {
  --bs-primary: #0B1F33;
  --bs-primary-rgb: 11, 31, 51;
  --bs-secondary: #243B55;
  --bs-warning: #CBA135; /* used as accent gold */
  --bridgewell-primary: #0B1F33;
  --bridgewell-accent: #CBA135;
  --bridgewell-slate: #243B55;
  --bridgewell-bg: #F5F7FA;
  --bridgewell-text: #333333;
  --bridgewell-white: #FFFFFF;
  --bridgewell-ui-light: #E9EDF3; /* light grey for UI elements */
  --bridgewell-divider: #D9DEE6; /* soft neutral grey for dividers */
}

/* Typography & body */
body {
  color: var(--bridgewell-text);
}

.text-primary { color: var(--bridgewell-primary) !important; }
.bg-primary { background-color: var(--bridgewell-primary) !important; }
.btn-primary {
  background-color: var(--bridgewell-primary);
  border-color: var(--bridgewell-primary);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: #0b223a;
  border-color: #0b223a;
  box-shadow: 0 0 1.25rem rgba(203, 161, 53, 0.45) !important;
}

/* Accent gold utilities */
.text-accent { color: var(--bridgewell-accent) !important; }
.bg-accent { background-color: var(--bridgewell-accent) !important; }
.border-accent { border-color: var(--bridgewell-accent) !important; }

/* Links */
a { color: var(--bridgewell-primary); }
a:hover { color: var(--bridgewell-accent); }

/* Accessible focus ring */
:focus-visible { outline: 3px solid color-mix(in srgb, var(--bridgewell-accent) 65%, #fff); outline-offset: 2px; }
.btn:focus-visible, .form-control:focus-visible, .form-select:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--bridgewell-accent) 35%, transparent); }

/* Avoid layout shift on service card images */
.card-img-top { aspect-ratio: 16/9; object-fit: cover; }

/* Light header variant (used on light sections) */
.header-light .navbar-brand-logo { content: url('/assets/logos/bridgewell-logo-primary.svg'); }
.header-light .nav-link { color: var(--bridgewell-primary) !important; }
.header-light .nav-link:hover { color: var(--bridgewell-accent) !important; }

/* Header dark style */
.bg-brand-navy { background-color: var(--bridgewell-primary) !important; }
#header.navbar-dark .nav-link { color: rgba(255,255,255,.90); }
#header.navbar-dark .nav-link:hover, #header.navbar-dark .nav-link:focus { color: var(--bridgewell-accent); }
#header .btn-apply { background-color: var(--bridgewell-accent); color: var(--bridgewell-primary); border-color: var(--bridgewell-accent); }
#header .btn-apply:hover { background-color: #b58e2f; border-color: #b58e2f; color: var(--bridgewell-primary); }

/* Hero utilities */
.hero-gradient {
  background: linear-gradient(135deg, var(--bridgewell-primary), var(--bridgewell-slate));
}
.text-white-90 { color: rgba(255, 255, 255, 0.90) !important; }
.text-white-85 { color: rgba(255, 255, 255, 0.85) !important; }
.text-white-80 { color: rgba(255, 255, 255, 0.80) !important; }

/* Responsive hero typography */
.hero-title {
  font-size: 2rem;
  line-height: 1.2;
}
.hero-lead {
  font-size: 1rem;
}
/* Push hero content down slightly on small screens to clear the logo */
@media (max-width: 575.98px) {
  .hero-offset { padding-top: 3.5rem; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
  .hero-offset { padding-top: 4.25rem; }
}

/* mobile hero supporting block */
.mobile-hero-support { background-color: var(--bridgewell-primary); }

/* Hero background helper */
.hero-bg{position:absolute;inset:0;z-index:0;background-color:var(--bridgewell-primary)}
.hero-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 20%}
@media (max-width: 575.98px){
  /* On mobile, keep subject in frame while maintaining cover */
  .hero-bg img{object-fit:cover;object-position:70% 20%;}
}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,31,51,.6), rgba(11,31,51,.6));}

/* viewport helpers */
.vh-70{min-height:70vh}
@media (min-width: 768px){ .vh-md-80{ min-height:80vh } }

/* add breathing room above page titles on small/medium screens */
@media (max-width: 991.98px) {
  main#content h1:not(.hero-title) { margin-top: 1rem; }
}
@media (min-width: 576px) {
  .hero-title { font-size: 2.5rem; }
  .hero-lead { font-size: 1.125rem; }
}
@media (min-width: 992px) {
  .hero-title { font-size: 3rem; }
  .hero-lead { font-size: 1.25rem; }
}
.underline-accent {
  position: relative;
  display: inline-block; /* shrink to text width so underline sits under the first word area */
}
.underline-accent::after {
  content: "";
  position: absolute;
  left: 0; bottom: -0.3rem;
  width: 3rem; height: 3px;
  background: var(--bridgewell-accent);
}

/* Section backgrounds */
.section-light { background: var(--bridgewell-bg); }

/* Footer */
footer { background-color: var(--bridgewell-primary); }
footer, footer p, footer .link-light { color: rgba(255,255,255,0.85); }
footer a.link-light:hover { color: var(--bridgewell-accent) !important; }
footer .border-white-10 { border-color: rgba(255,255,255,0.2) !important; }

/* === Brand adjustments per brief === */
/* 1) Feature list ticks */
.list-checked.list-checked-soft-bg-primary .list-checked-item::before,
.list-checked .list-checked-item::before {
  background-color: var(--bridgewell-accent) !important; /* gold dot */
  color: var(--bridgewell-white) !important; /* white tick */
  border-color: var(--bridgewell-accent) !important;
  width: 1.25rem; height: 1.25rem; border-radius: 50% !important;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: .75rem; line-height: 1; box-shadow: none !important; background-image: none !important;
  content: "\2713" !important; /* fallback tick */
  font-weight: 700; font-family: inherit; text-indent: 0; transform: none;
}

/* larger tick variant support */
.list-checked.list-checked-lg .list-checked-item::before { width: 1.5rem; height: 1.5rem; font-size: .875rem; }

/* 2) Step numbers & connectors */
/* Always gold circles with white numerals */
.step .step-icon,
.step .step-icon.step-icon-soft-primary,
.step .step-icon.step-icon-primary,
.step .step-item .step-icon {
  background-color: var(--bridgewell-accent) !important;
  color: var(--bridgewell-white) !important;
}
/* step connector lines - cover variations */
.step .step-content-wrapper::before,
.step .step-content-wrapper::after,
.step .step-item:not(:last-child) .step-content-wrapper::after,
.step.step-centered .step-item:not(:last-child) .step-content-wrapper::after {
  background-color: var(--bridgewell-divider) !important;
  border-color: var(--bridgewell-divider) !important;
}

/* Feature icons below hero */
.feature-icon{
  width: 1.75rem; height: 1.75rem; min-width: 1.75rem; min-height: 1.75rem; border-radius: 50%;
  background-color: var(--bridgewell-accent); color: var(--bridgewell-white);
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  font-size: .9rem; line-height: 1;
}
.feature-icon i{line-height:1;}

/* 3) Mobile hamburger/off-canvas menu */
@media (max-width: 991.98px) {
  /* Keep header chrome transparent/brand when menu is closed */
  #header .navbar-absolute-top-scroller,
  #header .navbar-nav,
  #header .navbar-nav-wrap { background-color: transparent !important; }

  /* When menu is OPEN */
  #header .navbar-collapse.show,
  #header #navbarNavDropdown.show {
    background-color: var(--bridgewell-primary) !important; /* brand navy */
    padding: 0.75rem 1rem;
    box-shadow: none !important; border: 0 !important; background-image: none !important;
  }
  #header .navbar-collapse.show .nav-link,
  #header #navbarNavDropdown.show .nav-link { color: var(--bridgewell-white) !important; }
  #header .navbar-collapse.show .nav-link:hover,
  #header .navbar-collapse.show .nav-link:focus,
  #header #navbarNavDropdown.show .nav-link:hover,
  #header #navbarNavDropdown.show .nav-link:focus { color: var(--bridgewell-accent) !important; }
  #header .navbar-collapse.show .btn-apply,
  #header #navbarNavDropdown.show .btn-apply {
    background-color: var(--bridgewell-accent);
    color: var(--bridgewell-primary);
    width: 100%;
    margin-top: 0.5rem;
  }
}

/* ---- Minimal replacements for missing theme utilities ---- */
/* Content spacing (top/bottom) */
.content-space-1 { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.content-space-2 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.content-space-3 { padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 992px) {
  .content-space-t-lg-2 { padding-top: 2.5rem; }
  .content-space-b-lg-2 { padding-bottom: 2.5rem; }
  .content-space-t-lg-3 { padding-top: 4rem; }
  .content-space-b-lg-3 { padding-bottom: 4rem; }
}

/* Height helpers */
@media (min-width: 768px) { .vh-md-70 { min-height: 70vh; } }

/* Small helpers used in markup */
.text-cap { text-transform: uppercase; letter-spacing: .03em; font-size: .875rem; color: var(--bridgewell-primary); }
.card-transition { transition: transform .15s ease, box-shadow .15s ease; }
.card-transition:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,.06); }

/* Ensure hero supporting copy shows at md+ even if utilities missing */
.hero-support{ display: none; }
@media (min-width: 768px){ .hero-support{ display: block !important; color: rgba(255,255,255,.90); text-shadow: 0 1px 2px rgba(0,0,0,.25); } }

