/* === GB Works: Header height = logo height (v55) ===
   styles.css sets min-heights and nav-inner padding; we must override those directly.
*/
header.nav{
  min-height: unset !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

header.nav .nav-inner{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  align-items: center !important;
}

/* Keep the very-large logo size you approved */
header.nav .site-logo{
  height: 200px !important;
  width: auto !important;
  max-height: none !important;
  max-width: none !important;
  background: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  display: block !important;
}

/* Scroll state: still tidy */
header.nav.is-scrolled{
  min-height: unset !important;
}
header.nav.is-scrolled .nav-inner{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
header.nav.is-scrolled .site-logo{
  height: 155px !important;
}

/* Tablet */
@media (max-width: 1024px){
  header.nav .site-logo{ height: 150px !important; }
  header.nav.is-scrolled .site-logo{ height: 125px !important; }
}

/* Mobile */
@media (max-width: 768px){
  header.nav .site-logo{ height: 120px !important; }
  header.nav.is-scrolled .site-logo{ height: 105px !important; }
}

/* === GB Works: Center logo vertically in header (v56) === */
header.nav,
header.nav .nav-inner{
  display: flex !important;
  align-items: center !important;
}

header.nav{
  justify-content: space-between !important;
}

header.nav .site-logo,
header.nav .logo,
header.nav .brand,
header.nav .navbar-brand{
  display: flex !important;
  align-items: center !important;
}

/* === GB Works: Add subtle white margin around header content (v57) === */
header.nav,
header.nav .nav-inner{
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* === GB Works: Lower & centre header navigation (v58) === */
header.nav{
  align-items: flex-start !important;
}

header.nav .nav-inner{
  align-items: flex-start !important;
}

/* Push nav buttons slightly lower within header */
header.nav nav,
header.nav .nav,
header.nav .navigation,
header.nav .menu{
  margin-top: 28px !important;
  align-self: center !important;
}

/* Keep CTA aligned with nav */
header.nav .cta,
header.nav .btn,
header.nav .button{
  margin-top: 28px !important;
}

/* Responsive tuning */
@media (max-width: 1024px){
  header.nav nav,
  header.nav .nav,
  header.nav .navigation,
  header.nav .menu,
  header.nav .cta{
    margin-top: 18px !important;
  }
}

@media (max-width: 768px){
  header.nav{
    align-items: center !important;
  }
  header.nav nav,
  header.nav .nav,
  header.nav .navigation,
  header.nav .menu,
  header.nav .cta{
    margin-top: 10px !important;
  }
}

/* === GB Works: Position nav links lower within header (v59) ===
   Goal: keep logo vertically centred, but drop the menu + CTA to the lower band of the white header.
*/
header.nav .nav-inner{
  align-items: stretch !important;   /* allow independent vertical alignment per item */
}

/* Keep logo centred */
header.nav .brand{
  align-self: center !important;
}

/* Drop menu + contact toward the bottom edge */
header.nav .menu,
header.nav .nav-contact-wrap{
  align-self: flex-end !important;
  padding-bottom: 0 !important;
}

/* Ensure menu items stay vertically centred within their own row */
header.nav .menu{ align-items: center !important; }

/* Responsive tuning */
@media (max-width: 1024px){
  header.nav .menu,
  header.nav .nav-contact-wrap{ padding-bottom: 8px !important; }
}

@media (max-width: 768px){
  /* On mobile, keep everything centred to avoid crowding */
  header.nav .nav-inner{ align-items: center !important; }
  header.nav .menu,
  header.nav .nav-contact-wrap{ align-self: center !important; padding-bottom: 0 !important; }
}

/* === GB Works: Header layout update (v60) ===
   - Remove tagline under logo (handled in HTML)
   - Phone/email top-right corner
   - Nav buttons lower and centered
*/

/* Ensure the header area can position items */
header.nav .nav-inner{
  position: relative !important;
  align-items: center !important;
  flex-wrap: wrap !important;
}

/* Contact block: top-right */
header.nav .nav-contact-wrap{
  position: absolute !important;
  top: 6px !important;
  right: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: center !important;
}

/* Navigation: lower band and centered */
header.nav .menu{
  width: 100% !important;
  display: flex !important;
  justify-content: center !important;
  align-self: flex-end !important;
  padding-top: 0 !important;
  padding-bottom: 10px !important;
}

/* Keep CTA aligned with menu if CTA lives inside menu as a button */
header.nav .menu .btn,
header.nav .menu .button,
header.nav .menu a.btn{
  align-self: center !important;
}

/* If CTA is outside menu, pull it into the same lower line */
header.nav .cta{
  align-self: flex-end !important;
  margin-left: 12px !important;
  margin-bottom: 10px !important;
}

/* Tablet adjustments */
@media (max-width: 1024px){
  header.nav .nav-contact-wrap{
    top: 6px !important;
  }
  header.nav .menu{
    padding-bottom: 8px !important;
  }
  header.nav .cta{
    margin-bottom: 8px !important;
  }
}

/* Mobile: keep layout simple; contact sits above, menu centered below */
@media (max-width: 768px){
  header.nav .nav-inner{
    padding-top: 36px !important; /* room for absolute contact */
  }
  header.nav .nav-contact-wrap{
    top: 6px !important;
    right: 0 !important;
    left: 0 !important;
    justify-content: flex-end !important;
    padding-right: 10px !important;
  }
  header.nav .menu{
    justify-content: center !important;
    padding-bottom: 8px !important;
  }
}

/* === GB Works: Force contact details to TOP RIGHT corner (v61) === */
header.nav{
  position: relative !important;
}

header.nav .nav-contact-wrap{
  position: absolute !important;
  top: 10px !important;
  right: 12px !important;
  left: auto !important;
  width: auto !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  text-align: right !important;
  gap: 14px !important;
}

header.nav .nav-contact-wrap a{
  white-space: nowrap !important;
}

@media (max-width: 768px){
  header.nav .nav-contact-wrap{
    top: 8px !important;
    right: 10px !important;
  }
}

/* === GB Works: Extend orange underline across header + right-align nav (v62) === */

/* Ensure header is positioning context */
header.nav{ position: relative !important; }

/* Set logo height variables to match existing logo rules (desktop/tablet/mobile) */
header.nav{ --logoH: 200px; --lineRatio: 0.5732; --lineTop: calc(var(--logoH) * var(--lineRatio)); }
header.nav.is-scrolled{ --logoH: 155px; }

@media (max-width: 1024px){
  header.nav{ --logoH: 150px; }
  header.nav.is-scrolled{ --logoH: 125px; }
}
@media (max-width: 768px){
  header.nav{ --logoH: 120px; }
  header.nav.is-scrolled{ --logoH: 105px; }
}

/* Orange rule that continues the underline across the full header width */

/* Keep content above the rule */
header.nav .nav-inner{ position: relative !important; z-index: 1 !important; }

/* Layout: logo left, nav right, sitting ABOVE the orange line */
header.nav .nav-inner{
  display: flex !important;
  align-items: stretch !important;
  gap: 14px !important;
}

/* Menu row on the right */
header.nav .menu{
  width: auto !important;
  margin-left: auto !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-self: flex-end !important;
  padding-bottom: 0 !important;
}

/* Ensure CTA stays with menu on the right (if separate wrapper exists) */
header.nav .cta{
  margin-left: 12px !important;
  align-self: flex-end !important;
  padding-bottom: 10px !important;
}

/* Tablet/Mobile tuning */
@media (max-width: 1024px){
  header.nav .menu, header.nav .cta{ padding-bottom: 8px !important; }
}
@media (max-width: 768px){
  /* Mobile: keep menu readable */
  header.nav .menu, header.nav .cta{ padding-bottom: 8px !important; }
}

/* === GB Works: Single orange rule replaces logo underline (v63) === */

/* Hide the orange underline built into the logo image */
header.nav img[src*="logo"]{
  padding-bottom: 0 !important;
}

/* If logo underline is a pseudo or element, hide common cases */
header.nav .logo-underline,
header.nav .underline,
header.nav .brand-underline{
  display: none !important;
}

/* Header context */
header.nav{
  position: relative !important;
}

/* One continuous orange rule across header ONLY */

/* Keep content above the line */
header.nav .nav-inner{
  position: relative !important;
  z-index: 2 !important;
}

/* === GB Works: Orange divider between header and main (v66) === */

/* Remove any existing header underline */

/* Clean orange divider at bottom of header */
header.nav{
  border-bottom: 3px solid rgb(243, 122, 41) !important;
}

/* === GB Works: Hard-left logo, hard-right navigation (v67) === */

/* Make header a full-width flex container */
header.nav{
  display: flex !important;
}

/* Inner wrapper: push ends apart */
header.nav .nav-inner{
  display: flex !important;
  justify-content: space-between !important;
  width: 100% !important;
}

/* Logo: lock hard left */
header.nav .brand,
header.nav .logo,
header.nav .navbar-brand{
  margin-left: 0 !important;
  margin-right: auto !important;
  justify-content: flex-start !important;
}

/* Nav + buttons: lock hard right */
header.nav nav,
header.nav .menu,
header.nav .navigation,
header.nav .cta{
  margin-left: auto !important;
  margin-right: 0 !important;
  justify-content: flex-end !important;
}

/* === GB Works: Second orange divider above header (v68) === */

/* Top divider */
header.nav{
  border-top: 3px solid rgb(243, 122, 41) !important;
}

/* === GB Works: Fix button scale interaction (v70) === */
/* Prevent global button scaling */
header.nav button,
header.nav .menu a,
header.nav .menu button{
  transform: none !important;
}

/* Apply hover/active effect ONLY to Request a Quote */
header.nav .btn-quote,
header.nav .request-quote,
header.nav a[href*="quote"],
header.nav a.quote{
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

header.nav .btn-quote:hover,
header.nav .request-quote:hover,
header.nav a[href*="quote"]:hover{
  transform: scale(1.05) !important;
}

header.nav .btn-quote:active,
header.nav .request-quote:active,
header.nav a[href*="quote"]:active{
  transform: scale(1.02) !important;
}

/* === GB Works: Remove nav button layout-shift; animate CTA only (v71) === */

/* Baseline: keep ALL nav links dimensionally stable */
header.nav .menu a{
  transform: none !important;
  letter-spacing: normal !important;
  text-shadow: none !important;
  transition: background .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease, transform .15s ease !important;
}

/* Secondary nav links: no movement or letter-spacing changes on hover/active */
header.nav .menu a:not(.cta):hover,
header.nav .menu a:not(.cta):active,
header.nav .menu a:not(.cta):focus{
  transform: none !important;
  letter-spacing: normal !important;
}

/* CTA only (Request a quote) */
header.nav .menu a.cta,
header.nav a[href*="quote"].cta,
header.nav a[href*="quote"]{
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease !important;
}

header.nav .menu a.cta:hover,
header.nav a[href*="quote"]:hover{
  transform: scale(1.04) !important;
}

header.nav .menu a.cta:active,
header.nav a[href*="quote"]:active{
  transform: scale(1.02) !important;
}

/* === GB Works: Align CTA vertical centerline with other nav buttons (v72) === */

/* Ensure all nav links share identical vertical alignment */
header.nav .menu a{
  display: inline-flex !important;
  align-items: center !important;
  line-height: 1 !important;
  height: 44px !important;   /* base height for all buttons */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Match CTA exactly to others */
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  height: 44px !important;
  align-items: center !important;
}

/* Prevent vertical offset during transform */
header.nav .menu a.cta:hover,
header.nav .menu a.cta:active{
  transform-origin: center center !important;
}

/* === GB Works: HARD align nav + CTA baselines (v73) === */

/* Lock nav container alignment */
header.nav .menu{
  display: flex !important;
  align-items: center !important;
}

/* Hard normalize ALL nav links */
header.nav .menu a{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 48px !important;
  line-height: 48px !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

/* Remove any CTA-specific vertical differences */
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  line-height: 48px !important;
  height: 48px !important;
}

/* Prevent layout shift on interaction */
header.nav .menu a *{
  line-height: inherit !important;
}

/* === GB Works: CTA visual centerline match (v74) ===
   The CTA looked misaligned due to always-on shadow and differing visual weight.
   Make baseline appearance consistent; keep CTA color.
*/

/* Remove always-on shadow from CTA to match other buttons' visual center */
header.nav .menu a.cta{
  box-shadow: none !important;
}

/* Give all buttons the same resting shadow (very subtle) OR none.
   Here: none, and add subtle shadow on hover for CTA only. */
header.nav .menu a.cta:hover{
  box-shadow: 0 10px 22px rgba(11,27,43,.10) !important; /* match other hover shadow */
}

/* Ensure the CTA underline pseudo element (if any) doesn't create perceived offset */
header.nav .menu a.cta::after{
  bottom: 7px !important;
}

/* Keep heights unified (in case base CSS re-applies) */
header.nav .menu a,
header.nav .menu a.cta{
  height: 48px !important;
  line-height: 48px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
}

/* === GB Works: Make 'Request a Quote' a pill CTA (v75) === */
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  border-radius: 999px !important;
  padding: 0 22px !important;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: #2d6f74 !important; /* brand green */
  color: #ffffff !important;
  font-weight: 600 !important;
  letter-spacing: .3px !important;

  box-shadow: none !important;
  text-decoration: none !important;
  border: 1px solid rgba(0,0,0,0) !important;
}

header.nav .menu a.cta:hover,
header.nav a[href*="quote"]:hover{
  background: #245c60 !important;
  box-shadow: 0 8px 18px rgba(11,27,43,.18) !important;
}

header.nav .menu a.cta:active,
header.nav a[href*="quote"]:active{
  background: #1f4e52 !important;
}

/* === GB Works: Rebuild Request a Quote as matching nav button (v76) === */

/* Remove special CTA appearance completely */
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  border-radius: 6px !important;
  background: transparent !important;
  color: var(--teal-dark, #08303a) !important;
  font-weight: 600 !important;
  letter-spacing: .4px !important;
  box-shadow: none !important;
}

/* Make CTA behave IDENTICALLY to other nav buttons */
header.nav .menu a{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 44px !important;
  padding: 0 16px !important;
  line-height: 44px !important;
  transition: background .15s ease, box-shadow .15s ease, color .15s ease !important;
}

/* Hover/active identical to others */
header.nav .menu a:hover{
  background: var(--teal-soft-hover, rgba(45,111,116,.12)) !important;
}

header.nav .menu a:active{
  background: var(--teal-soft-active, rgba(45,111,116,.18)) !important;
}

/* === GB Works: Force text baseline alignment across all nav buttons (v77) === */

/* Lock identical typography for ALL header nav links */
header.nav .menu a{
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .4px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 44px !important;
}

/* Explicitly remove any text-level offsets */
header.nav .menu a span,
header.nav .menu a strong{
  line-height: 1 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Ensure Request a Quote uses EXACT same text rules */
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: .4px !important;
}

/* === GB Works: Optical baseline tweak for 'Request a quote' (v78) ===
   Due to descenders (q) it can appear lower. Nudge CTA text up by 1px.
*/
header.nav .menu a.cta,
header.nav a[href*="quote"]{
  position: relative !important;
  top: -1px !important;
}

/* If CTA contains inner spans, nudge those instead/as well */
header.nav .menu a.cta span,
header.nav a[href*="quote"] span{
  position: relative !important;
  top: -1px !important;
}

/* === GB Works: Make 'Request a quote' IDENTICAL to other nav buttons (v79 FINAL) === */

/* Remove any CTA-only tweaks */
header.nav .menu a.cta,
header.nav a[href*="quote"],
header.nav .menu a.cta:hover,
header.nav a[href*="quote"]:hover,
header.nav .menu a.cta:active,
header.nav a[href*="quote"]:active{
  all: unset;
}

/* Re-apply SAME base nav styles to ALL buttons equally */
header.nav .menu a{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  height: 44px;
  padding: 0 16px;

  font-size: 14px;
  font-weight: 600;
  line-height: 44px;
  letter-spacing: .4px;

  color: var(--teal-dark, #08303a);
  text-decoration: none;

  border-radius: 6px;
  background: transparent;

  transition: background .15s ease, color .15s ease;
}

/* Unified hover state */
header.nav .menu a:hover{
  background: rgba(45,111,116,.12);
}

/* === GB Works: Remove nav reflow on click/active (v80) ===
   Some base styles change letter-spacing on hover/active causing width changes and other buttons to shift.
*/

/* Lock letter-spacing and prevent width-changing effects on interaction */
header.nav .menu a:hover,
header.nav .menu a:active,
header.nav .menu a:focus,
header.nav .menu a:focus-visible{
  letter-spacing: .4px !important;
  transform: none !important;
}

/* Ensure active state does not add border widths/padding that can change size */
header.nav .menu a,
header.nav .menu a:hover,
header.nav .menu a:active{
  box-sizing: border-box !important;
  border-width: 1px !important;
  padding: 0 16px !important;
}

/* Keep the underline pseudo animation from affecting layout perception */
header.nav .menu a::after{
  transform: none !important;
  opacity: 0 !important;
}

/* === GB Works: HARD stop nav item width changes & flex reflow (v81) === */

/* Make menu layout stable */
header.nav .menu{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* Lock each nav link to its own intrinsic width and prevent reflow */
header.nav .menu a{
  flex: 0 0 auto !important;
  width: max-content !important;
  white-space: nowrap !important;

  font-weight: 600 !important;
  letter-spacing: .4px !important;
  text-shadow: none !important;

  transform: none !important;
}

/* Ensure NO interaction state changes typography or size */
header.nav .menu a:hover,
header.nav .menu a:active,
header.nav .menu a:focus,
header.nav .menu a:focus-visible,
header.nav .menu a[aria-current="page"],
header.nav .menu a.active{
  font-weight: 600 !important;
  letter-spacing: .4px !important;
  text-shadow: none !important;
  transform: none !important;

  padding: 0 16px !important;
  border-width: 1px !important;
  box-sizing: border-box !important;
}

/* Prevent any pseudo elements from causing perceived resizing */
header.nav .menu a::before,
header.nav .menu a::after{
  transform: none !important;
  opacity: 0 !important;
  transition: none !important;
}

/* === GB Works: Stop width-changing hover/active effects on nav (v82) ===
   Root cause: styles.css increases letter-spacing on hover/active, causing reflow.
*/

/* Override the base hover/active rules with higher specificity */
header.nav .nav-inner .menu a,
header.nav .nav-inner .menu a:visited{
  letter-spacing: .25px !important;
  transform: none !important;
  text-shadow: none !important;
  transition: background .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease !important; /* exclude letter-spacing */
}

header.nav .nav-inner .menu a:hover,
header.nav .nav-inner .menu a:active,
header.nav .nav-inner .menu a:focus,
header.nav .nav-inner .menu a:focus-visible{
  letter-spacing: .25px !important; /* lock */
  transform: none !important;       /* no translateY */
  text-shadow: none !important;
}

/* Disable underline animation pseudo element (can make others look like they change) */
header.nav .nav-inner .menu a::after,
header.nav .nav-inner .menu a::before{
  content: none !important;
}

/* === GB Works: Ensure Request a Quote behaves like other nav items (v84) === */
/* Neutralise any remaining .menu .cta rule from styles.css */
header.nav .menu .cta{
  margin-left: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: inherit !important;
  padding: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* === GB Works: Stronger CTA outline + darker fill (v85) === */

/* Re-introduce emphasis for Request a Quote without layout change */
header.nav .menu a[href*="quote"]{
  border: 2px solid #1f4e52 !important;   /* darker teal */
  background: #2d6f74 !important;        /* darker than other buttons */
  color: #ffffff !important;

  padding: 0 16px !important;
  height: 44px !important;
  line-height: 44px !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
}

/* Hover / active stay visual-only */
header.nav .menu a[href*="quote"]:hover{
  background: #1f4e52 !important;
}

header.nav .menu a[href*="quote"]:active{
  background: #183f42 !important;
}

/* === GB Works: Stronger CTA outline + darker fill (v86) ===
   Target the actual Request a Quote link (href="contact.html") so it applies reliably.
*/
header.nav .menu a[href="contact.html"]{
  border: 2px solid #1f4e52 !important;
  background: #2d6f74 !important;
  color: #ffffff !important;

  padding: 0 16px !important;
  height: 44px !important;
  line-height: 44px !important;
  border-radius: 6px !important;
  box-sizing: border-box !important;
  text-decoration: none !important;
}

header.nav .menu a[href="contact.html"]:hover{
  background: #1f4e52 !important;
}

header.nav .menu a[href="contact.html"]:active{
  background: #183f42 !important;
}

/* === GB Works: Shift header buttons slightly left (v87) === */

/* Move entire menu block left without affecting layout */
header.nav .menu{
  margin-right: 18px !important; /* subtle left shift */
}

/* Keep contact top-right unchanged */

/* === GB Works: Shift header buttons further left (v88) === */
header.nav .menu{
  margin-right: 28px !important; /* increased shift */
}

/* === GB Works: Header contact buttons (phone + email) (v89) === */

header.nav .nav-contact{
  display: flex !important;
  gap: 10px !important;
  align-items: center !important;
}

/* Button shell */
header.nav .nav-contact-link.contact-btn{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;

  height: 40px !important;
  padding: 0 14px 0 10px !important;

  border: 1px solid rgba(45,111,116,.35) !important;
  border-radius: 999px !important;
  background: rgba(45,111,116,.06) !important;

  color: #08303a !important;
  font-weight: 600 !important;
  letter-spacing: .2px !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, color .15s ease !important;
}

/* Icon circle */
header.nav .nav-contact-link .contact-icon{
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: rgb(243, 122, 41) !important; /* brand orange */
  box-shadow: 0 8px 18px rgba(11,27,43,.12) !important;
}

header.nav .nav-contact-link .contact-icon .ci{
  width: 16px !important;
  height: 16px !important;
  fill: #ffffff !important;
}

/* Text */
header.nav .nav-contact-link .contact-text{
  line-height: 1 !important;
}

/* Hover */
header.nav .nav-contact-link.contact-btn:hover{
  background: rgba(45,111,116,.10) !important;
  border-color: rgba(45,111,116,.55) !important;
  box-shadow: 0 10px 22px rgba(11,27,43,.10) !important;
}

/* Hide old kicker labels inside these links if any remain */
header.nav .nav-contact-link.contact-btn .contact-kicker{
  display: none !important;
}

/* Mobile: stack buttons in the existing block */
@media (max-width: 768px){
  header.nav .nav-contact{
    gap: 8px !important;
  }
  header.nav .nav-contact-link.contact-btn{
    height: 38px !important;
  }
}

/* === Header contact buttons: match nav buttons exactly (v90) === */

header.nav .nav-contact-link.contact-btn{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;

  height: 44px !important;
  padding: 0 16px !important;

  border-radius: 6px !important;
  background: transparent !important;
  border: 1px solid rgba(45,111,116,.35) !important;

  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .4px !important;
  line-height: 44px !important;

  color: #08303a !important;
  text-decoration: none !important;
  box-shadow: none !important;

  transition: background .15s ease, border-color .15s ease !important;
}

/* Icon styling consistent with buttons */
header.nav .nav-contact-link .contact-icon{
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: rgb(243, 122, 41) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

header.nav .nav-contact-link .contact-icon svg{
  width: 12px !important;
  height: 12px !important;
  fill: #ffffff !important;
}

/* Hover behaviour matches nav buttons */
header.nav .nav-contact-link.contact-btn:hover{
  background: rgba(45,111,116,.12) !important;
  border-color: rgba(45,111,116,.55) !important;
}

/* === GB Works: Remove white gap above header (v92) === */

/* Remove any body/top padding or margin */
html, body{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Remove top spacing from header wrappers */
header.nav{
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Remove spacing from any top bar/announcement remnants */
.top-bar,
.header-top,
.site-top{
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* === GB Works: Remove TOPBAR strip above header (v93) === */
.topbar{
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* === GB Works: Contact buttons match nav buttons + phone display fix (v94) === */

/* Contact buttons: same design language as nav buttons */
header.nav .nav-contact-link.contact-btn{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;

  height: 44px !important;
  padding: 0 16px !important;

  border-radius: 6px !important;
  background: transparent !important;
  border: 1px solid rgba(45,111,116,.35) !important;

  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: .4px !important;
  line-height: 44px !important;

  color: #08303a !important;
  text-decoration: none !important;
  box-shadow: none !important;

  transition: background .15s ease, color .15s ease, border-color .15s ease !important;
}

/* Hover/active identical behaviour */
header.nav .nav-contact-link.contact-btn:hover{
  background: rgba(45,111,116,.12) !important;
  border-color: rgba(45,111,116,.55) !important;
}

header.nav .nav-contact-link.contact-btn:active{
  background: rgba(45,111,116,.18) !important;
  border-color: rgba(45,111,116,.55) !important;
}

/* Icon accent remains subtle and consistent */
header.nav .nav-contact-link .contact-icon{
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: rgb(243, 122, 41) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

header.nav .nav-contact-link .contact-icon svg{
  width: 12px !important;
  height: 12px !important;
  fill: #ffffff !important;
}

/* === GB Works: Top frame strip + sticky header (v95) === */

/* 6–8px top frame in body background */
html::before{
  content: "" !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 8px !important;
  background: var(--page-bg, #f6f7f8) !important; /* matches body/main background */
  z-index: 10000 !important;
  pointer-events: none !important;
}

/* Sticky header (always visible) */
header.nav{
  position: sticky !important;
  top: 8px !important;          /* sits just under the top frame strip */
  z-index: 9999 !important;
}

/* Keep divider lines visible while sticky */
header.nav{
  border-top: 3px solid rgb(243, 122, 41) !important;
  border-bottom: 3px solid rgb(243, 122, 41) !important;
}

/* On scroll, make orange divider(s) thinner */
header.nav.is-scrolled{
  border-top-width: 1px !important;
  border-bottom-width: 1px !important;
}

/* Ensure contact buttons stay clickable and do not resize */
header.nav .nav-contact-link.contact-btn,
header.nav .nav-contact-link.contact-btn:hover,
header.nav .nav-contact-link.contact-btn:active,
header.nav .nav-contact-link.contact-btn:focus,
header.nav .nav-contact-link.contact-btn:focus-visible{
  transform: none !important;
  letter-spacing: .4px !important;
}

/* Prevent any global hover/active effects from changing size */
header.nav .nav-contact-link.contact-btn,
header.nav .menu a{
  box-sizing: border-box !important;
}

/* === GB Works: Increase top frame strip height (v96) === */

/* Increase top body-colour frame */
html::before{
  height: 14px !important; /* increased from 8px */
}

/* Adjust sticky header offset to match */
header.nav{
  top: 14px !important;
}

/* === GB Works: Double top frame strip height (v97) === */

/* Double the body-colour frame height */
html::before{
  height: 28px !important; /* doubled from 14px */
}

/* Keep sticky header aligned below the frame */
header.nav{
  top: 28px !important;
}

/* === GB Works: Premium contact pills with full details (v98) === */

header.nav .nav-contact{
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
}

/* Pill button (matches header rhythm, more interesting) */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;

  height: 44px !important;
  padding: 0 16px 0 44px !important; /* left space for overlapping icon */
  border-radius: 999px !important;

  background: rgba(45,111,116,.08) !important;
  border: 1px solid rgba(45,111,116,.45) !important;

  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: .2px !important;
  line-height: 44px !important;

  color: #08303a !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  box-sizing: border-box !important;
  transform: none !important; /* no scaling ever */
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease !important;
}

/* Overlapping icon badge */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: rgb(243, 122, 41) !important; /* brand orange */
  box-shadow: none !important;
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 14px !important;
  height: 14px !important;
  fill: #ffffff !important;
}

/* Text alignment */
header.nav .nav-contact-link.contact-btn .contact-text{
  line-height: 1 !important;
}

/* Hover/active: match nav behaviour (visual only, no size change) */
header.nav .nav-contact-link.contact-btn:hover{
  background: rgba(45,111,116,.12) !important;
  border-color: rgba(45,111,116,.60) !important;
  box-shadow: 0 10px 22px rgba(11,27,43,.10) !important;
}
header.nav .nav-contact-link.contact-btn:active{
  background: rgba(45,111,116,.16) !important;
  border-color: rgba(45,111,116,.60) !important;
  box-shadow: none !important;
}

/* Mobile: allow wrap if needed */
@media (max-width: 768px){
  header.nav .nav-contact{
    gap: 10px !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
  }
}

/* === GB Works: Two-line contact pills (label + detail) (v99) === */

header.nav .nav-contact{
  display: flex !important;
  gap: 12px !important;
  align-items: center !important;
}

/* Base pill */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 56px !important;              /* allows two lines */
  padding: 0 16px 0 54px !important;    /* space for icon badge */
  border-radius: 999px !important;

  background: rgba(45,111,116,.08) !important;
  border: 1px solid rgba(45,111,116,.45) !important;

  color: #08303a !important;
  text-decoration: none !important;
  white-space: nowrap !important;

  box-sizing: border-box !important;
  transform: none !important;
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease !important;
}

/* Icon badge (default: orange) */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 10px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 34px !important;
  height: 34px !important;
  border-radius: 999px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  background: rgb(243, 122, 41) !important; /* brand orange */
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 16px !important;
  height: 16px !important;
  fill: #ffffff !important;
}

/* Copy block */
header.nav .nav-contact-link.contact-btn .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 3px !important;
  line-height: 1 !important;
}

header.nav .nav-contact-link.contact-btn .contact-label{
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .6px !important;
  text-transform: uppercase !important;
  color: #2d6f74 !important; /* brand green */
}

header.nav .nav-contact-link.contact-btn .contact-detail{
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: .2px !important;
  color: #08303a !important;
}

/* Email variant: green badge, orange label */
header.nav .nav-contact-link.contact-email .contact-icon{
  background: #2d6f74 !important; /* brand green */
}
header.nav .nav-contact-link.contact-email .contact-label{
  color: rgb(243, 122, 41) !important; /* brand orange */
}

/* Hover/active: match other buttons, no resizing */
header.nav .nav-contact-link.contact-btn:hover{
  background: rgba(45,111,116,.12) !important;
  border-color: rgba(45,111,116,.60) !important;
  box-shadow: 0 10px 22px rgba(11,27,43,.10) !important;
}
header.nav .nav-contact-link.contact-btn:active{
  background: rgba(45,111,116,.16) !important;
  border-color: rgba(45,111,116,.60) !important;
  box-shadow: none !important;
}

/* Mobile: allow wrap */
@media (max-width: 768px){
  header.nav .nav-contact{ flex-wrap: wrap !important; justify-content: flex-end !important; }
  header.nav .nav-contact-link.contact-btn{ height: 54px !important; }
}

/* === GB Works: Call-to-action style contact buttons inspired by sample (v100) === */

/* CTA bar style */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 46px !important;
  padding: 0 18px 0 58px !important;
  border-radius: 28px !important;

  background: linear-gradient(135deg, #2d6f74 0%, #1f4e52 100%) !important;
  border: none !important;

  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: .6px !important;
  text-transform: uppercase !important;

  box-shadow: 0 8px 18px rgba(0,0,0,.18) !important;
  transform: none !important;
  transition: background .15s ease, box-shadow .15s ease !important;
}

/* Icon disk overlapping */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;

  background: radial-gradient(circle at 30% 30%, #f7a24c, #f37a29) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 18px !important;
  height: 18px !important;
  fill: #ffffff !important;
}

/* Copy stacked */
header.nav .nav-contact-link.contact-btn .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
header.nav .nav-contact-link.contact-btn .contact-label{
  font-size: 11px !important;
  opacity: .9 !important;
}
header.nav .nav-contact-link.contact-btn .contact-detail{
  font-size: 14px !important;
  letter-spacing: .8px !important;
}

/* Hover */
header.nav .nav-contact-link.contact-btn:hover{
  box-shadow: 0 10px 22px rgba(0,0,0,.24) !important;
}

/* === GB Works: Apply CTA style consistently to BOTH contact buttons (v101) === */

/* Ensure both phone and email use identical CTA visual system */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 46px !important;
  padding: 0 18px 0 58px !important;
  border-radius: 28px !important;

  background: linear-gradient(135deg, #2d6f74 0%, #1f4e52 100%) !important;
  border: none !important;

  color: #ffffff !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;

  box-shadow: 0 8px 18px rgba(0,0,0,.18) !important;
  transform: none !important;
  transition: box-shadow .15s ease, filter .15s ease !important;
}

/* Icon disk overlapping */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;

  background: radial-gradient(circle at 30% 30%, #f7a24c, #f37a29) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 18px !important;
  height: 18px !important;
  fill: #ffffff !important;
}

/* Copy stacked */
header.nav .nav-contact-link.contact-btn .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  line-height: 1 !important;
}

/* Label and detail */
header.nav .nav-contact-link.contact-btn .contact-label{
  font-size: 11px !important;
  opacity: .9 !important;
  letter-spacing: .8px !important;
}
header.nav .nav-contact-link.contact-btn .contact-detail{
  font-size: 14px !important;
  letter-spacing: .8px !important;
}

/* Hover/active without resizing */
header.nav .nav-contact-link.contact-btn:hover{
  box-shadow: 0 10px 22px rgba(0,0,0,.24) !important;
  filter: brightness(1.02) !important;
}
header.nav .nav-contact-link.contact-btn:active{
  box-shadow: 0 6px 14px rgba(0,0,0,.20) !important;
  filter: brightness(.98) !important;
}

/* === GB Works: Button design matched to reference image style (v102) === */

/* Reference-style CTA capsule */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 48px !important;
  padding: 0 22px 0 62px !important;
  border-radius: 999px !important;

  background: #1f4e52 !important; /* solid teal (no gradient) */
  border: none !important;

  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(0,0,0,.25) !important;
  transform: none !important;
}

/* Icon: double-ring disc like reference */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;

  background: #1f4e52 !important;
  border: 4px solid #f37a29 !important;   /* orange outer ring */
  outline: 3px solid #ffcd32 !important; /* yellow highlight ring */

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 18px !important;
  height: 18px !important;
  fill: #ffffff !important;
}

/* Text hierarchy EXACT like sample */
header.nav .nav-contact-link.contact-btn .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 0 !important;
  line-height: 1.05 !important;
}

header.nav .nav-contact-link.contact-btn .contact-label{
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .5px !important;
  text-transform: uppercase !important;
  opacity: .9 !important;
}

header.nav .nav-contact-link.contact-btn .contact-detail{
  font-size: 15px !important;
  font-weight: 800 !important;
  letter-spacing: .6px !important;
}

/* Hover/active: depth only */
header.nav .nav-contact-link.contact-btn:hover{
  box-shadow: 0 10px 24px rgba(0,0,0,.32) !important;
}
header.nav .nav-contact-link.contact-btn:active{
  box-shadow: 0 6px 14px rgba(0,0,0,.22) !important;
}

/* === GB Works: EXACT reference-style CTA buttons (v103) === */

/* Capsule body matching reference */
header.nav .nav-contact-link.contact-btn{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 50px !important;
  padding: 0 26px 0 70px !important;
  border-radius: 999px !important;

  background: #1f4e52 !important;
  border: none !important;

  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: .6px !important;
  box-shadow: 0 6px 14px rgba(0,0,0,.25) !important;

  transform: none !important;
}

/* Icon disc with thick yellow/orange ring */
header.nav .nav-contact-link.contact-btn .contact-icon{
  position: absolute !important;
  left: 4px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;

  background: #1f4e52 !important;
  border: 5px solid #ffcc33 !important;
  outline: 3px solid #f37a29 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

header.nav .nav-contact-link.contact-btn .contact-icon svg{
  width: 20px !important;
  height: 20px !important;
  fill: #ffffff !important;
}

/* Text EXACT like reference */
header.nav .nav-contact-link.contact-btn .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
  line-height: 1 !important;
}

header.nav .nav-contact-link.contact-btn .contact-label{
  font-size: 12px !important;
  font-weight: 700 !important;
  opacity: .85 !important;
}

header.nav .nav-contact-link.contact-btn .contact-detail{
  font-size: 15px !important;
  font-weight: 900 !important;
  letter-spacing: .6px !important;
}

/* Hover – no resize */
header.nav .nav-contact-link.contact-btn:hover{
  filter: brightness(1.05) !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.3) !important;
}

/* === GB Works: Match 'Call us now' kicker exactly like reference (v104) === */

/* Kicker above button */
header.nav .cta-kicker{
  display: block !important;
  text-align: center !important;
  margin-bottom: 4px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #ffcc33 !important;
  position: relative !important;
}

/* Decorative lines left/right of kicker */
header.nav .cta-kicker::before,
header.nav .cta-kicker::after{
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  width: 18px !important;
  height: 2px !important;
  background: #ffcc33 !important;
}
header.nav .cta-kicker::before{ left: -22px !important; }
header.nav .cta-kicker::after{ right: -22px !important; }

/* Group kicker + button neatly */
header.nav .nav-contact-link.contact-phone{
  margin-top: 0 !important;
}

/* === GB Works: Speech-bubble CTA button (based on reference image) v105 === */

/* Speech-bubble CTA */
header.nav .nav-contact-link.contact-phone{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;

  height: 52px !important;
  padding: 0 22px 0 68px !important;
  border-radius: 28px !important;

  background: linear-gradient(135deg, #f37a29 0%, #e85d04 100%) !important;
  color: #ffffff !important;

  font-weight: 900 !important;
  letter-spacing: .6px !important;
  text-decoration: none !important;

  box-shadow: 0 10px 22px rgba(0,0,0,.28) !important;
  transform: none !important;
}

/* Speech tail */
header.nav .nav-contact-link.contact-phone::before{
  content: "" !important;
  position: absolute !important;
  left: 28px !important;
  bottom: -8px !important;
  width: 16px !important;
  height: 16px !important;
  background: #e85d04 !important;
  transform: rotate(45deg) !important;
  border-radius: 2px !important;
}

/* Call icon bubble */
header.nav .nav-contact-link.contact-phone .contact-icon{
  position: absolute !important;
  left: -6px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;

  width: 50px !important;
  height: 50px !important;
  border-radius: 50% !important;

  background: #f37a29 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  box-shadow: 0 8px 18px rgba(0,0,0,.28) !important;
}

header.nav .nav-contact-link.contact-phone .contact-icon svg{
  width: 22px !important;
  height: 22px !important;
  fill: #ffffff !important;
}

/* Text hierarchy */
header.nav .nav-contact-link.contact-phone .contact-copy{
  display: flex !important;
  flex-direction: column !important;
  line-height: 1 !important;
}

header.nav .nav-contact-link.contact-phone .contact-label{
  font-size: 12px !important;
  font-weight: 800 !important;
  opacity: .95 !important;
}

header.nav .nav-contact-link.contact-phone .contact-detail{
  font-size: 16px !important;
  font-weight: 900 !important;
  letter-spacing: .8px !important;
}

/* Hover: depth only */
header.nav .nav-contact-link.contact-phone:hover{
  box-shadow: 0 12px 26px rgba(0,0,0,.34) !important;
}

/* Keep email calmer (no speech bubble) */
header.nav .nav-contact-link.contact-email{
  box-shadow: none !important;
  background: rgba(45,111,116,.1) !important;
  border: 1px solid rgba(45,111,116,.4) !important;
  color: #08303a !important;
}


/* Header contact image buttons (Call / Email) */
.nav-contact-images{
  display:flex;
  align-items:center;
  gap:12px;
}
.contact-image-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:0;
}
.contact-image{
  display:block;
  width:auto;
  height:46px;
  max-width:100%;
}

/* Mobile menu contact image buttons */
.mobile-contact-images{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:14px 0 6px;
}
.mobile-contact-images .contact-image{
  height:48px;
}

/* Ensure no legacy pill/button styling affects images */
.nav-contact-wrap .contact-btn,
.nav-contact-wrap .nav-contact-link,
.mobile-contact .contact-kicker{
  display:none !important;
}

@media (max-width: 720px){
  .nav-contact-images{ gap:10px; }
  .contact-image{ height:40px; }
}


/* === Header Contact Image Buttons (Call / Email) === */
/* Force legacy styles off */
.nav-contact-wrap, .nav-contact-images, .mobile-contact-images {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.nav-contact-wrap::before, .nav-contact-wrap::after,
.nav-contact-images::before, .nav-contact-images::after,
.mobile-contact-images::before, .mobile-contact-images::after {
  content: none !important;
}

/* Layout + size */
.nav-contact-images, .mobile-contact-images {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
}

.contact-image-link {
  display: inline-flex !important;
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
}

.contact-image {
  display: block !important;
  height: 64px !important;
  width: auto !important;
  max-width: none !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 980px) {
  .contact-image { height: 56px !important; }
}
@media (max-width: 520px) {
  .contact-image { height: 50px !important; }
  .nav-contact-images, .mobile-contact-images { gap: 10px !important; }
}

/* === v112: FORCE header contact IMAGE buttons (size + remove lines/background) === */
.nav-contact-wrap,
.nav-contact-images,
.mobile-contact-images{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.nav-contact-images .contact-image-link,
.mobile-contact-images .contact-image-link{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.nav-contact-images .contact-image,
.mobile-contact-images .contact-image{
  display: block !important;
  height: 64px !important;   /* desktop base */
  width: auto !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 900px){
  .nav-contact-images .contact-image,
  .mobile-contact-images .contact-image{
    height: 58px !important;
  }
}

@media (max-width: 520px){
  .nav-contact-images .contact-image,
  .mobile-contact-images .contact-image{
    height: 54px !important;
  }
}

/* === v113: ensure new image buttons layout in header + mobile menu === */
.nav-contact-images, .mobile-contact-images{
  display: inline-flex !important;
  gap: 10px !important;
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
}
.mobile-contact-images{
  padding: 10px 14px !important;
}


/* v115 – make header Call & Email image buttons LARGE and dominant */
.nav-contact-images img,
.mobile-contact-images img,
.header-contact img {
  height: 78px !important;
  width: auto !important;
}

@media (max-width: 900px) {
  .nav-contact-images img,
  .mobile-contact-images img,
  .header-contact img {
    height: 66px !important;
  }
}

@media (max-width: 520px) {
  .nav-contact-images img,
  .mobile-contact-images img,
  .header-contact img {
    height: 60px !important;
  }
}

/* v118 – remove divider lines + enforce big contact button images */
.nav-contact-wrap, .nav-contact-images, .mobile-contact-images, .header-contact{
  border:0 !important; background:transparent !important; box-shadow:none !important;
}
.nav-contact-wrap *, .nav-contact-images *, .mobile-contact-images *, .header-contact *{
  border:0 !important; outline:0 !important; box-shadow:none !important; background:transparent !important;
}
.nav-contact-wrap::before, .nav-contact-wrap::after,
.nav-contact-images::before, .nav-contact-images::after,
.mobile-contact-images::before, .mobile-contact-images::after{
  content:none !important; display:none !important;
}
.nav-contact-images img, .mobile-contact-images img, .header-contact img{
  height:96px !important; width:auto !important; max-height:none !important; max-width:none !important;
}
@media (max-width:900px){
  .nav-contact-images img, .mobile-contact-images img, .header-contact img{ height:78px !important; }
}
@media (max-width:520px){
  .nav-contact-images img, .mobile-contact-images img, .header-contact img{ height:70px !important; }
}

/* v119 – allow header contact images to grow; override any old !important rules */
.nav-contact-images, .mobile-contact-images, .nav-contact-wrap, .header-contact{
  max-height:none !important;
  height:auto !important;
  overflow:visible !important;
  align-items:center !important;
  gap:12px !important;
}
.nav-contact-images img, .mobile-contact-images img, .header-contact img{
  height:120px !important;
  width:auto !important;
  max-height:none !important;
}
@media (max-width:900px){
  .nav-contact-images img, .mobile-contact-images img, .header-contact img{ height:92px !important; }
}
@media (max-width:520px){
  .nav-contact-images img, .mobile-contact-images img, .header-contact img{ height:82px !important; }
}

/* v120 – match perceived text size by slightly scaling EMAIL button (image text is baked-in) */
.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] {
  height: 120px !important;
  width: auto !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] {
  height: 132px !important;
  width: auto !important;
}

@media (max-width: 900px) {
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height: 92px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height: 102px !important; }
}
@media (max-width: 520px) {
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height: 82px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:45px !important; }
}

/* v121 – Larger Call/Email image buttons + align higher in header */
.nav-contact-images,
.mobile-contact-images,
.header-contact{
  align-items: flex-start !important;
}

/* Nudge the whole contact image group upwards */
.nav-contact-images,
.mobile-contact-images{
  position: relative !important;
  top: -10px !important;
}

.nav-contact-images img[data-btn="call"],
.mobile-contact-images img[data-btn="call"]{
  height: 138px !important;
  width: auto !important;
}
.nav-contact-images img[data-btn="email"],
.mobile-contact-images img[data-btn="email"]{
  height: 152px !important;
  width: auto !important;
}

@media (max-width: 900px){
  .nav-contact-images, .mobile-contact-images{ top: -8px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height: 104px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height: 114px !important; }
}

@media (max-width: 520px){
  .nav-contact-images, .mobile-contact-images{ top: -6px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height: 92px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height: 100px !important; }
}

/* v122 – EXTRA large contact buttons pushed higher */
.nav-contact-images, .mobile-contact-images {
  position: relative !important;
  top: -16px !important;
}

.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"]{
  height:168px !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"]{
  height:186px !important;
}

@media (max-width:900px){
  .nav-contact-images, .mobile-contact-images { top: -12px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:126px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:138px !important; }
}

@media (max-width:520px){
  .nav-contact-images, .mobile-contact-images { top: -10px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:108px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:120px !important; }
}

/* v124 – cropped buttons sized correctly (large but not overpowering) */
.nav-contact-images, .mobile-contact-images {
  position: relative !important;
  top: -8px !important;
}

.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"]{
  height:124px !important;
  width:auto !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"]{
  height:136px !important;
  width:auto !important;
}

@media (max-width:900px){
  .nav-contact-images, .mobile-contact-images { top: -6px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:96px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:106px !important; }
}

@media (max-width:520px){
  .nav-contact-images, .mobile-contact-images { top: -4px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:84px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:92px !important; }
}

/* v125 – reduced, balanced contact button sizing */
.nav-contact-images, .mobile-contact-images {
  position: relative !important;
  top: -6px !important;
}

.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"]{
  height:104px !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"]{
  height:114px !important;
}

@media (max-width:900px){
  .nav-contact-images, .mobile-contact-images { top: -4px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:82px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:45px !important; }
}

@media (max-width:520px){
  .nav-contact-images, .mobile-contact-images { top: -2px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:72px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:78px !important; }
}

/* v126 – size matched to main nav button text */
.nav-contact-images, .mobile-contact-images {
  position: relative !important;
  top: -4px !important;
}

.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"]{
  height:84px !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"]{
  height:92px !important;
}

@media (max-width:900px){
  .nav-contact-images, .mobile-contact-images { top: -2px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:70px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:76px !important; }
}

@media (max-width:520px){
  .nav-contact-images, .mobile-contact-images { top: -0px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:64px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:68px !important; }
}

/* v127 – subtle contact buttons that don't compete with main header */
.nav-contact-images, .mobile-contact-images {
  position: relative !important;
  top: -2px !important;
}

.nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"]{
  height:76px !important;
}
.nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"]{
  height:82px !important;
}

@media (max-width:900px){
  .nav-contact-images, .mobile-contact-images { top: -1px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:64px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:68px !important; }
}

@media (max-width:520px){
  .nav-contact-images, .mobile-contact-images { top: -0px !important; }
  .nav-contact-images img[data-btn="call"], .mobile-contact-images img[data-btn="call"] { height:58px !important; }
  .nav-contact-images img[data-btn="email"], .mobile-contact-images img[data-btn="email"] { height:62px !important; }
}

/* v129 – icon-only contact buttons */
.nav-contact-images img, .mobile-contact-images img {
  height: 44px !important;
  width: auto !important;
}
@media (max-width: 520px){
  .nav-contact-images img, .mobile-contact-images img { height: 40px !important; }
}

/* v130 – CSS Call & Email buttons (replace image buttons) */
:root{
  --gb-green: #1fa89a;
  --gb-green-dark: #178a7f;
}

.header-cta{
  display:flex;
  gap:10px;
  align-items:center;
}

.gb-cta{
  display:inline-flex;
  align-items:center;
  gap:12px;
  height:44px;
  padding:0 18px 0 6px;
  border:2px solid var(--gb-green);
  border-radius:26px;
  background:transparent;
  color:var(--gb-green);
  text-decoration:none;
  font-weight:500;
  letter-spacing:0.2px;
  white-space:nowrap;
}

.gb-cta-icon{
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--gb-green);
  border-radius:50%;
  font-size:14px;
}

.gb-cta:hover{
  background:rgba(31,168,154,0.08);
  border-color:var(--gb-green-dark);
}
.gb-cta:hover .gb-cta-icon{
  border-color:var(--gb-green-dark);
  color:var(--gb-green-dark);
}

@media (max-width:520px){
  .gb-cta{ height:40px; }
  .gb-cta-icon{ width:30px; height:30px; }
}

/* v131 – CTA relocated (original slot), slightly lower, larger icon glyphs */
.header-cta{
  margin-top: 6px; /* nudge lower */
}

.gb-cta{
  height: 44px;
}

.gb-cta-icon{
  width: 34px;
  height: 34px;
  font-size: 18px; /* bigger phone/envelope */
  font-weight: 600;
  line-height: 1;
}

@media (max-width:520px){
  .header-cta{ margin-top: 4px; }
  .gb-cta-icon{ width: 32px; height: 32px; font-size: 17px; }
}

/* v132 – larger icons, black text, outline on text only */
.gb-cta{
  border: none !important;            /* remove pill outline */
  padding-left: 6px;
  padding-right: 14px;
}

.gb-cta-icon{
  width: 38px;
  height: 38px;
  font-size: 20px;                     /* larger icon */
  border: 2px solid var(--gb-green);   /* icon keeps green circle */
}

.gb-cta span{
  color: #111;                         /* black text */
  border: 1.5px solid var(--gb-green); /* outline ONLY around text */
  border-radius: 16px;
  padding: 6px 12px;
  line-height: 1;
}

.gb-cta:hover span{
  background: rgba(31,168,154,0.06);
}

@media (max-width:520px){
  .gb-cta-icon{
    width: 34px;
    height: 34px;
    font-size: 18px;
  }
  .gb-cta span{
    padding: 5px 10px;
    font-size: 14px;
  }
}

/* v133 – larger icons in GB orange (to match WORKS) */
:root{
  --gb-orange: #f28c28;
}

.gb-cta-icon{
  width: 44px;
  height: 44px;
  font-size: 24px;               /* noticeably larger icon */
  border: 2px solid var(--gb-orange);
  color: var(--gb-orange);
}

@media (max-width:520px){
  .gb-cta-icon{
    width: 40px;
    height: 40px;
    font-size: 22px;
  }
}

/* v134 – force orange + larger icon circles */
.gb-cta-icon{
  width:44px !important;
  height:44px !important;
  font-size:24px !important;
  border:2px solid #f28c28 !important;
  color:#f28c28 !important;
}
@media (max-width:520px){
  .gb-cta-icon{
    width:40px !important;
    height:40px !important;
    font-size:22px !important;
  }
}

/* v135 – icon only (no border), large and orange */
.gb-cta-icon{
  border:none !important;
  color:#f28c28 !important;
  width:44px !important;
  height:44px !important;
  font-size:24px !important;
}
@media (max-width:520px){
  .gb-cta-icon{
    width:40px !important;
    height:40px !important;
    font-size:22px !important;
  }
}

/* v136 – larger orange icons, tighter gap, more modern text */
.gb-cta{
  gap: 8px !important;
}
.gb-cta-icon{
  width: 48px !important;
  height: 48px !important;
  font-size: 30px !important;
  color: #f28c28 !important;
  border: none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.gb-cta span{
  color:#111 !important;
  font-weight:600 !important;
  letter-spacing:0.2px !important;
  font-size:14px !important;
}
@media (max-width:520px){
  .gb-cta{ gap: 7px !important; }
  .gb-cta-icon{ width:44px !important; height:44px !important; font-size:28px !important; }
  .gb-cta span{ font-size:13px !important; }
}

/* v137 – FORCE large orange icons close to text */
.gb-cta{
  gap:6px !important;
}
.gb-cta-icon{
  color:#f28c28 !important;
  width:56px !important;
  height:56px !important;
  font-size:34px !important;
  border:none !important;
}

/* v138 – MAX icon size, MIN gap */
.gb-cta{
  gap:4px !important;
}
.gb-cta-icon{
  width:64px !important;
  height:64px !important;
  font-size:40px !important;
  color:#f28c28 !important;
  border:none !important;
}

/* v139 – SVG icons (extra large, cannot be overridden) */
.gb-cta-icon-svg svg{
  width:68px !important;
  height:68px !important;
  flex:0 0 auto;
}

/* v141 – enforce BIG SVG icons + tiny version stamp for verification */
.gb-cta-icon-svg svg{
  width:45px !important;
  height:45px !important;
}

.site-version-stamp{
  font-size:10px;
  opacity:0.35;
  margin-top:8px;
}

/* v142 – icon sits immediately next to text */
.gb-cta{
  gap:4px !important;
}
.gb-cta-icon-svg{
  margin-right:2px !important;
}

/* v143 – icon embedded inside text pill */
.gb-inline-icon svg{
  width:45px !important;
  height:45px !important;
  flex:0 0 auto;
}
.site-version-stamp{
  font-size:10px;
  opacity:0.35;
  margin-top:8px;
}

/* v144 – strong underlined contact text (brand green) */
.gb-inline-icon + span,
.gb-cta span{
  font-weight:700;
  color:#0e3f3a !important;
}

.gb-cta span{
  padding-bottom:4px;
  border-bottom:4px solid #0e3f3a;
  border-radius:0 0 6px 6px;
}

/* v145 – FORCE underline + version stamp */
.site-version-stamp{
  font-size:10px;
  opacity:0.35;
  margin-top:8px;
}

/* Header contact underline – seamless touch at icon, shrinks slowly on hover (v152) */
:root{
  --gb-green-dark-logo: #0e3f3a;
}

.gb-cta{
  border: 0 !important;
  background: transparent !important;
  padding: 0 !important;
  height: auto !important;
  text-decoration: none !important;
}

.gb-contact-text{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0 !important;

  color: var(--gb-green-dark-logo) !important;
  font-weight: 750 !important;
  letter-spacing: 0.25px !important;
  font-size: 14.5px !important;
  line-height: 1.1 !important;
}

.gb-inline-icon svg{
  width: 45px !important;
  height: 45px !important;
  flex: 0 0 auto !important;
}

/* Underline lives on the label so its length = text only.
   We extend it slightly left (-8px) so it touches the icon edge seamlessly. */
.gb-contact-label{
  position: relative !important;
  display: inline-block !important;
  padding-left: 8px !important;    /* breathing space between icon and text */
  padding-bottom: 0 !important;
  white-space: nowrap !important;
}

.gb-contact-label::after{
  content: "" !important;
  position: absolute !important;
  left: -8px !important;  /* reaches into the breathing space to touch icon */
  right: 0 !important;
  bottom: -1px !important;
  height: 2px !important;
  background: var(--gb-green-dark-logo) !important;
  border-radius: 4px !important;

  transform: scaleX(1) !important;
  transform-origin: center !important;   /* shrinks inward from both ends */
  transition: transform .9s ease !important; /* slower shrink */
  will-change: transform;
}

.gb-cta:hover .gb-contact-label::after,
.gb-cta:focus-visible .gb-contact-label::after{
  transform: scaleX(0) !important;
}

@media (max-width: 520px){
  .gb-contact-text{ font-size: 13.5px !important; }
  .gb-inline-icon svg{ width: 40px !important; height: 40px !important; }
  .gb-contact-label{ padding-left: 7px !important; }
  .gb-contact-label::after{ left: -7px !important; }
}


/* === GB Works: Brand interaction lock (Option B) (v153) ===
/* Green leads UI; orange is an accent on intent (hover). Timings aligned to contact underline motion. */
:root{
  --gb-orange-brand: #f28c28;
}

/* NAV BUTTONS: green default, orange accent on hover */
header.nav .menu a{
  transition: background .9s ease, border-color .9s ease, box-shadow .9s ease, color .9s ease,
              text-shadow .9s ease, letter-spacing .9s ease, transform .3s ease !important;
}
header.nav .menu a:hover{
  border-color: rgba(242,140,40,.55) !important; /* orange accent */
  box-shadow: 0 10px 22px rgba(11,27,43,.08), 0 10px 22px rgba(242,140,40,.10) !important;
  text-shadow: 0 1px 0 rgba(242,140,40,.22) !important;
}
header.nav .menu a:active{
  border-color: rgba(242,140,40,.35) !important; /* restrained on press */
  box-shadow: 0 8px 16px rgba(11,27,43,.08) !important;
  transform: translateY(0) !important;
}

/* CONTACT UNDERLINE: green default, orange on hover while shrinking */
.gb-contact-label::after{
  transition: transform .9s ease, background-color .25s ease !important;
}
.gb-cta:hover .gb-contact-label::after,
.gb-cta:focus-visible .gb-contact-label::after{
  background: var(--gb-orange-brand) !important;
  transform: scaleX(0) !important;
}


/* === Header: logo can grow horizontally + button border thickens on hover (scoped, safe) === */

header .logo, header .brand, .header .logo, .header .brand, .site-header .logo, .site-header .brand {
  max-width: 380px !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

header .logo img, header .brand img, .site-logo, img.site-logo {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
}

@media (min-width: 1024px) {
  header .logo img, header .brand img, .site-logo, img.site-logo {
    max-width: 360px !important;
  }
}

.menu a:not(.cta) {
  border-width: 1px !important;
  transition: border-width .25s ease, box-shadow .25s ease, transform .25s ease !important;
}
.menu a:not(.cta):hover {
  border-width: 3px !important;
}



/* === TARGETED LOGO SIZE V2 (width-based so it can’t get smaller) === */
/* Exact structure: header.nav a.brand > img.site-logo */
header.nav a.brand{ grid-column: 1; grid-row: 1 / span 2; align-self: end !important; }

header.nav a.brand img.site-logo{
  width: 460px !important;   /* bigger footprint */
  height: auto !important;   /* preserve aspect ratio */
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* Let the header accommodate the larger logo without clipping */
header.nav, header.nav .nav-inner{
  min-height: 170px !important;
  overflow: visible !important;
}

/* Tablet */
@media (max-width: 1023px){
  header.nav a.brand img.site-logo{ width: 380px !important; }
  header.nav, header.nav .nav-inner{ min-height: 140px !important; }
}

/* Mobile */
@media (max-width: 640px){
  header.nav a.brand img.site-logo{ width: 260px !important; }
  header.nav, header.nav .nav-inner{ min-height: 110px !important; }
}


