/* SR-112 / SR-115 / SR-158.2 — premium contact top bar
 * Default: WCAG AA ink on #f8f8f8
 * Home hero: light continuous scrim (not grey plate) + optional scroll-up sticky
 */
.sr-topbar {
  --sr-topbar-bg: #f8f8f8;
  --sr-topbar-line: #0c7a7b;
  --sr-topbar-ink: #3d4650;
  --sr-topbar-ink-hover: #0c7a7b;
  --sr-topbar-h: 2.55rem;
  --sr-header-h: 5.1rem; /* ~81px Astra primary bar */
  /* Light hero chrome — more transparent than 5.1.9 grey plate; WCAG via text-shadow */
  --sr-chrome-scrim: linear-gradient(
    180deg,
    rgba(10, 16, 20, 0.28) 0%,
    rgba(10, 16, 20, 0.18) 42%,
    rgba(10, 16, 20, 0.08) 72%,
    rgba(10, 16, 20, 0) 100%
  );
  background: var(--sr-topbar-bg);
  border-top: 2px solid var(--sr-topbar-line);
  color: var(--sr-topbar-ink);
  font-size: 13px;
  line-height: 1.2;
  position: relative;
  z-index: 50;
  box-shadow: none !important;
}

.sr-topbar__inner {
  max-width: min(100%, 1200px);
  margin: 0 auto;
  padding: 0.55rem 1.25rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  box-sizing: border-box;
}

.sr-topbar__contact {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.35rem 1.75rem;
  min-width: 0;
}

.sr-topbar__item {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: var(--sr-topbar-ink) !important;
  text-decoration: none !important;
  font-weight: 500;
}

.sr-topbar__item:hover,
.sr-topbar__item:focus-visible {
  color: var(--sr-topbar-ink-hover) !important;
}

.sr-topbar__ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  border: 1px solid currentColor;
  flex-shrink: 0;
  opacity: 0.9;
}

.sr-topbar__social {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-left: auto;
}

.sr-topbar__social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #ececec;
  color: #3d4650 !important;
  text-decoration: none !important;
  transition: background 0.15s ease, color 0.15s ease;
}

.sr-topbar__social-link:hover,
.sr-topbar__social-link:focus-visible {
  background: #36d2d3;
  color: #0f1114 !important;
}

body.sr-has-topbar .ast-above-header,
body.sr-has-topbar .ast-above-header-bar,
body.sr-has-topbar #ast-desktop-header .ast-above-header-wrap {
  display: none !important;
}

/*
 * SR-158.1 — unified homepage hero chrome
 * Problem: transparent topbar + SR-154 charcoal gradient on nav = hard seam.
 * Fix: one continuous ::before scrim spanning topbar+nav; both bars transparent.
 */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 45;
  overflow: visible;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border-top-color: transparent;
  border-bottom: 0;
  box-shadow: none;
  color: #ffffff;
  --sr-topbar-ink: #ffffff;
  --sr-topbar-ink-hover: #36d2d3;
}

/* Single shared scrim behind contact strip + primary nav (no stacked bands) */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: calc(var(--sr-topbar-h, 2.55rem) + var(--sr-header-h, 5.1rem));
  background: var(--sr-chrome-scrim);
  z-index: -1;
  pointer-events: none;
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__inner {
  position: relative;
  z-index: 1;
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__item,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__text {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85), 0 0 12px rgba(0, 0, 0, 0.35);
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__ico {
  border-color: rgba(255, 255, 255, 0.9);
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__social-link {
  background: rgba(255, 255, 255, 0.16);
  color: #ffffff !important;
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__social-link:hover,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .sr-topbar__social-link:focus-visible {
  background: #36d2d3;
  color: #0f1114 !important;
}

/* Kill child-theme charcoal gradient on nav — share the topbar ::before scrim */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead.site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-primary-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-main-header-wrap,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #ast-desktop-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #ast-mobile-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-mobile-header-wrap {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

/* Outermost masthead under topbar; nested absolute bars stay top:0 (no stacked offset) */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead.site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead {
  top: var(--sr-topbar-h, 2.55rem);
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead .main-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead .ast-primary-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead .ast-main-header-wrap,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead #ast-desktop-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead #ast-mobile-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #masthead .ast-mobile-header-wrap {
  top: 0;
}

/* White WCAG nav + logo on shared scrim (reinforce child SR-154) */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-menu > .menu-item > .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-builder-menu-1 .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-header-navigation .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .site-title a {
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.85), 0 0 12px rgba(0, 0, 0, 0.35);
  font-weight: 700 !important;
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-menu > .menu-item > .menu-link:hover,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-menu > .menu-item > .menu-link:focus-visible,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-builder-menu-1 .menu-link:hover,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-menu > .menu-item.current-menu-item > .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .main-header-menu > .menu-item.current-menu-ancestor > .menu-link {
  color: #ffffff !important;
  box-shadow: inset 0 -2px 0 #36d2d3;
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .site-branding img,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .custom-logo-link img,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-site-identity .custom-logo-link img {
  -webkit-filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55));
  filter: brightness(0) invert(1) drop-shadow(0 1px 2px rgba(0, 0, 0, 0.55));
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-mobile-menu-trigger-minimal,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .menu-toggle,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-button-toggle,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) .ast-mobile-svg,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay:not(.sr-header-solid) #ast-mobile-header svg {
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke: #ffffff !important;
}

/*
 * Solid on scroll-up sticky: MAIN MENU HEADER ONLY.
 * .sr-topbar stays absolute at document top (scrolls away) — never fixed/pinned.
 */
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .sr-topbar {
  position: absolute !important;
  top: 0 !important;
  left: 0;
  right: 0;
  z-index: 45;
  overflow: visible;
  background: transparent !important;
  background-color: transparent !important;
  border-top-color: transparent;
  box-shadow: none;
  transform: none !important;
  pointer-events: auto;
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .sr-topbar::before {
  display: none;
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .main-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-primary-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-main-header-wrap,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid #masthead,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid #ast-desktop-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid #ast-mobile-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-mobile-header-wrap,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.ast-main-header-nav-open .site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.ast-main-header-nav-open .main-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.ast-main-header-nav-open .ast-primary-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.ast-main-header-nav-open #masthead,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.ast-main-header-nav-open #ast-mobile-header {
  top: 0 !important; /* header alone — not under topbar */
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}

html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .main-header-menu > .menu-item > .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-builder-menu-1 .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-header-navigation .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .site-title a {
  color: #1a1c20 !important;
  text-shadow: none !important;
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .main-header-menu > .menu-item.current-menu-item > .menu-link,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .main-header-menu > .menu-item > .menu-link:hover {
  color: #1a5a64 !important;
  box-shadow: inset 0 -2px 0 #36d2d3;
}
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .site-branding img,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .custom-logo-link img {
  filter: none;
  -webkit-filter: none;
}

/*
 * Scroll-up sticky: hide MAIN HEADER only on scroll-down (topbar never pinned).
 */
html body.home.sr-has-hero.sr-header-sticky-up #masthead,
html body.home.sr-has-hero.sr-header-sticky-up .ast-primary-header-bar,
html body.home.sr-has-hero.sr-header-sticky-up .ast-main-header-wrap,
html body.home.sr-has-hero.sr-header-sticky-up #ast-desktop-header,
html body.home.sr-has-hero.sr-header-sticky-up #ast-mobile-header {
  transition: transform 0.28s ease, background-color 0.22s ease, box-shadow 0.22s ease;
}

html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden #masthead,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden .site-header,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden .main-header-bar,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden .ast-primary-header-bar,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden .ast-main-header-wrap,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden #ast-desktop-header,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden #ast-mobile-header,
html body.home.sr-has-hero.sr-header-sticky-up.sr-header-hidden .ast-mobile-header-wrap {
  transform: translateY(calc(-1 * (var(--sr-header-h, 5.1rem) + 0.5rem))) !important;
  pointer-events: none;
}

/*
 * Kill header / topbar drop shadows (child + sticky/solid + mobile).
 * Keep menu-link inset underlines — those are not bar shadows.
 */
html body .site-header,
html body .main-header-bar,
html body .ast-primary-header-bar,
html body .ast-main-header-wrap,
html body #masthead,
html body .sr-topbar,
html body.home.sr-has-hero .site-header,
html body.home.sr-has-hero .main-header-bar,
html body.home.sr-has-hero .ast-primary-header-bar,
html body.home.sr-has-hero .ast-main-header-wrap,
html body.home.sr-has-hero #masthead,
html body.home.sr-has-hero .sr-topbar,
html body.home.sr-has-hero.sr-header-solid .site-header,
html body.home.sr-has-hero.sr-header-solid .main-header-bar,
html body.home.sr-has-hero.sr-header-solid .ast-primary-header-bar,
html body.home.sr-has-hero.sr-header-solid .ast-main-header-wrap,
html body.home.sr-has-hero.sr-header-solid #masthead,
html body.home.sr-has-hero.sr-header-solid .sr-topbar,
html body.home.sr-has-hero.sr-header-sticky-up .site-header,
html body.home.sr-has-hero.sr-header-sticky-up .main-header-bar,
html body.home.sr-has-hero.sr-header-sticky-up .ast-primary-header-bar,
html body.home.sr-has-hero.sr-header-sticky-up .ast-main-header-wrap,
html body.home.sr-has-hero.sr-header-sticky-up #masthead,
html body.home.sr-has-hero.sr-header-sticky-up .sr-topbar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .site-header,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .main-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-primary-header-bar,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .ast-main-header-wrap,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid #masthead,
html body.home.sr-has-hero.sr-has-topbar.sr-topbar-home-overlay.sr-header-solid .sr-topbar {
  box-shadow: none !important;
}

@media (max-width: 921px) {
  html body.sr-has-hero .site-header,
  html body.sr-has-hero .main-header-bar,
  html body.sr-has-hero .ast-primary-header-bar,
  html body.sr-has-hero .ast-main-header-wrap,
  html body.sr-has-hero #masthead,
  html body.sr-has-hero .ast-mobile-header-wrap,
  html body.sr-has-hero #ast-mobile-header,
  html body.sr-has-hero .sr-topbar {
    box-shadow: none !important;
  }
}

/*
 * Desktop primary nav — restore 16px (child had 13px/12.5px shrink).
 * Equal+ specificity to #ast-desktop-header … rules; loads after child.
 */
@media (min-width: 922px) {
  #ast-desktop-header .main-header-menu > .menu-item > .menu-link,
  #ast-desktop-header .ast-builder-menu-1 .menu-link {
    font-size: 16px !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
    padding-top: 0.55rem !important;
    padding-bottom: 0.55rem !important;
    height: auto !important;
    line-height: 1.25 !important;
    white-space: nowrap !important;
    font-weight: 700;
  }
}

@media (max-width: 921px) {
  .sr-topbar {
    --sr-header-h: 4.25rem;
  }
}

@media (max-width: 640px) {
  .sr-topbar {
    --sr-topbar-h: 2.75rem;
    --sr-header-h: 4rem;
  }
  .sr-topbar__inner {
    padding: 0.45rem 0.85rem;
    gap: 0.65rem;
  }
  .sr-topbar__contact {
    gap: 0.65rem 1rem;
  }
  .sr-topbar__text {
    font-size: 12px;
  }
  .sr-topbar__social-link {
    width: 26px;
    height: 26px;
  }
}

/* SR-170: kill leftover The7/sakkara-speed #main spacer under transparent home header */
body.home.sr-topbar-home-overlay #main.site-main,
body.home.sr-has-home-hero #main.site-main,
body.home.sr-topbar-home-overlay .site-main {
  padding-top: 0 !important;
}
