/* Marwest LLC enterprise navigation layer */

/* Keep the custom menu above the hero without changing the source theme's
   header container, margins, or clipped navigation-panel design. */
.mw-custom-nav-wrap {
  position: relative;
  z-index: 9999;
}

/* Keep the existing header available while visitors move through long pages.
   The source theme positions this header absolutely, which lets it disappear
   as soon as the hero scrolls away. Fixed keeps the original hero placement
   and pins the same menu at the top during scrolling. */
#cg-header.txa_sticky_header {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 10000 !important;
}


/* ── Hide original nav items until JS replaces them (prevents flash of old nav) ── */
ul#main-nav > li {
  visibility: hidden;
}
ul#main-nav.mw-nav-ready > li {
  visibility: visible;
}

/* Keep all six top-level items on a single row */
@media (min-width: 992px) {
  ul#main-nav.mw-nav-ready {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center;
  }
  ul#main-nav.mw-nav-ready > li {
    white-space: nowrap;
  }
  ul#main-nav.mw-nav-ready > li > a {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  ul#main-nav.mw-nav-ready > li {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

#preloader {
  display: none !important;
}

.mw-nav-enterprise-nav {
  display: flex !important;
  position: static !important;
  align-items: center;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.mw-nav-enterprise-nav > li {
  position: static !important;
  margin: 0 18px !important;
  padding: 0 !important;
  list-style: none !important;
  display: flex !important;
  align-items: center !important;
  align-self: stretch !important;
}

.mw-nav-enterprise-nav > li > a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px;
  padding: 12px 0 22px !important;
  white-space: nowrap;
  text-decoration: none !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  position: relative;
}

.mw-nav-enterprise-nav > li > a[aria-expanded="true"] {
  color: var(--cg-pr-c3) !important;
}

.mw-nav-enterprise-nav > li > a[data-menu-trigger]::after {
  content: "⌄";
  top: auto !important;
  left: auto !important;
  right: auto !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 0 2px !important;
  position: relative !important;
  background: none !important;
  border: 0 !important;
  font-size: 16px;
  line-height: 1;
  transition: transform 180ms ease, color 180ms ease;
  display: inline-block;
}

.mw-nav-enterprise-nav > li > a[data-menu-trigger][aria-expanded="true"]::after {
  transform: rotate(180deg);
  color: var(--cg-pr-c3);
}

.mw-nav-enterprise-nav .mw-nav-mega-menu {
  position: absolute !important;
  z-index: 100 !important;
  top: calc(100% - 2px) !important;
  left: 0 !important;
  right: 0 !important;
  display: grid !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  margin: 0 20px !important;
  padding: 0 !important;
  overflow: hidden;
  background: #fff !important;
  border-top: 3px solid var(--cg-pr-c3);
  box-shadow: 0 24px 55px rgba(3, 37, 50, 0.18);
  transform: translateY(10px);
  transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
}

/* The source theme's header is a positioned stacking context. Keep the
   enterprise panels inside that context, but never let the legacy dropdown
   rules clip or move them. */
.cg-header-section .cg-header-navigation,
.cg-header-section .cg-header-navigation .main-navigation,
.cg-header-section,
.cg-header-section .cg-header-content {
  overflow: visible !important;
}

.cg-header-section .mw-nav-enterprise-nav .mw-nav-mega-menu {
  top: 100% !important;
  bottom: auto !important;
  visibility: hidden !important;
}

/* ── CSS :hover (primary open mechanism on desktop) ─────────────────────────
 * CSS :hover on a <li> stays active while the pointer is over ANY descendant,
 * including position:absolute children (the mega-menu panel). This means
 * there is no gap problem: moving the pointer from the trigger text into the
 * panel below keeps :hover on the <li> continuously active.
 * The JS still handles keyboard, click/touch, and aria-expanded state.
 * ─────────────────────────────────────────────────────────────────────────── */
@media (min-width: 992px) {
  .cg-header-section .mw-nav-enterprise-nav > li.has-enterprise-menu:hover > .mw-nav-mega-menu {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(0) !important;
  }
}

.cg-header-section .mw-nav-enterprise-nav > li.is-open > .mw-nav-mega-menu {
  visibility: visible !important;
}

/* ── Hover bridge: transparent strip covers the gap so mouse can move from
       trigger into dropdown without closing the menu ── */
.mw-nav-enterprise-nav > li.has-enterprise-menu > a[data-menu-trigger]::before {
  content: "";
  position: absolute;
  bottom: -8px;
  left: -20px;
  right: -20px;
  height: 12px;
  background: transparent;
  display: block !important;
}

.mw-nav-enterprise-nav > li.is-open > .mw-nav-mega-menu {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.mw-nav-mega-menu {
  grid-template-columns: 205px repeat(3, minmax(145px, 1fr)) 225px;
  gap: 0;
}

.mw-nav-mega-intro {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 290px;
  padding: 30px 24px;
  color: #fff;
  background: var(--cg-pr-c1);
}

.mw-nav-mega-intro h3,
.mw-nav-mega-feature h3 {
  margin: 0 0 8px;
  color: inherit;
  font-family: var(--cg-heading);
  font-size: 18px;
  line-height: 1.15;
}

.mw-nav-mega-intro p,
.mw-nav-mega-feature p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--cg-body-font);
  font-size: 13px;
  line-height: 1.55;
}

.mw-nav-mega-intro-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #fff !important;
  font-family: var(--cg-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  text-transform: uppercase;
}

.mw-nav-mega-intro-link::after {
  content: "→";
  color: var(--cg-pr-c3);
  font-size: 17px;
}

.mw-nav-mega-column {
  min-width: 0;
  padding: 26px 18px 22px;
  border-right: 1px solid #edf0f1;
  background: #fff;
}

.mw-nav-mega-column h4 {
  margin: 0 0 13px;
  color: var(--cg-pr-c1);
  font-family: var(--cg-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.mw-nav-mega-column ul,
.mw-nav-portal-menu ul {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.mw-nav-mega-column li,
.mw-nav-portal-menu li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.mw-nav-mega-column a,
.mw-nav-portal-menu a {
  display: flex !important;
  align-items: center;
  gap: 7px;
  padding: 5px 0 !important;
  color: #667177 !important;
  font-family: var(--cg-body-font);
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  transition: color 160ms ease, transform 160ms ease;
}

.mw-nav-mega-column a::before,
.mw-nav-portal-menu a::before {
  content: "›";
  color: var(--cg-pr-c3);
  font-size: 16px;
  opacity: 0;
  transform: translateX(-4px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.mw-nav-mega-column a:hover,
.mw-nav-portal-menu a:hover,
.mw-nav-mega-column a:focus-visible,
.mw-nav-portal-menu a:focus-visible {
  color: var(--cg-pr-c3) !important;
  transform: translateX(2px);
}

.mw-nav-mega-column a:hover::before,
.mw-nav-mega-column a:focus-visible::before,
.mw-nav-portal-menu a:hover::before,
.mw-nav-portal-menu a:focus-visible::before {
  opacity: 1;
  transform: translateX(0);
}

.mw-nav-mega-feature {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 290px;
  padding: 0 20px 22px;
  color: #fff;
  background-position: center;
  background-size: cover;
  isolation: isolate;
  position: relative;
}

.mw-nav-mega-feature::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(3, 37, 50, 0.08) 15%, rgba(3, 37, 50, 0.92) 100%);
}

.mw-nav-mega-feature h3,
.mw-nav-mega-feature p,
.mw-nav-mega-feature a {
  position: relative;
}

.mw-nav-mega-feature a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 15px;
  color: #fff !important;
  font-family: var(--cg-heading);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  text-transform: uppercase;
}

.mw-nav-mega-feature a::after {
  content: "↗";
  color: var(--cg-pr-c3);
  font-size: 15px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PORTAL NAV ITEM
   ─────────────────────────────────────────────────────────────────────────
   The portal dropdown uses position:fixed and is positioned via JS
   (getBoundingClientRect) so it always opens directly under the button,
   completely immune to parent CSS positioning context.
   ═══════════════════════════════════════════════════════════════════════════ */

.mw-nav-portal-item {
  display: inline-flex !important;
  align-items: center !important;
  margin-left: 12px !important;
}

/* ── Homepage quote-form dropdowns ─────────────────────────────────────────
 * The theme sets background-color:transparent on selects. The native <select>
 * is invisible on most OS unless given an explicit background. We force a
 * dark-tinted fill that is always visible and style <option> elements for the
 * open dropdown list. */
.cg-quote1-form select,
.cg-quote1-form .qt-select-option select {
  background-color: rgba(3, 37, 50, 0.75) !important;
  color: #fff !important;
  -webkit-appearance: none !important;
     -moz-appearance: none !important;
          appearance: none !important;
}
.cg-quote1-form select option {
  background-color: #032532 !important;
  color: #fff !important;
}
.cg-quote1-form select:focus {
  background-color: rgba(3, 37, 50, 0.95) !important;
  outline: none !important;
  border-color: rgba(14, 182, 189, 0.6) !important;
}

/* ── Portal button ──────────────────────────────────────────────────────── */
.mw-nav-portal-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  position: relative !important;
  gap: 0 !important;
  height: 34px !important;
  /* Extra right padding reserves space for the absolute-positioned caret
     so the text remains optically centred: left pad 12px, right pad 24px
     (12px base + 6px caret + 6px breathing room). */
  padding: 0 24px 0 12px !important;
  line-height: 1 !important;
  background: var(--cg-pr-c1, #032532) !important;
  color: #fff !important;
  font-family: var(--cg-heading, inherit) !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 4px !important;
  transition: background 160ms ease, box-shadow 160ms ease, transform 160ms ease !important;
  white-space: nowrap !important;
  box-shadow: 0 2px 6px rgba(3,37,50,0.28), inset 0 1px 0 rgba(255,255,255,0.07) !important;
  cursor: pointer !important;
}

/*
 * ROOT CAUSE FIX — vertical text alignment
 * .mw-nav-enterprise-nav > li > a (specificity 0,2,1) sets padding: 12px 0 22px
 * which beats .mw-nav-portal-btn (0,1,0) and pushes text off-centre.
 * This selector matches at 0,2,1 — same specificity, but declared later so it
 * wins — and resets the padding to zero so flexbox align-items:center takes
 * sole responsibility for vertical centering.
 */
.mw-nav-enterprise-nav > li > a.mw-nav-portal-btn {
  padding: 0 24px 0 12px !important;
  line-height: 1 !important;
}

.mw-nav-portal-btn::before {
  display: none !important;
}

.mw-nav-portal-btn::after {
  content: "" !important;
  /* Absolute so it never shifts the text out of centre */
  position: absolute !important;
  right: 9px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 3px solid transparent !important;
  border-right: 3px solid transparent !important;
  border-top: 4px solid rgba(255,255,255,0.65) !important;
  transition: transform 160ms ease, border-top-color 160ms ease !important;
}

.mw-nav-portal-btn:hover,
.mw-nav-portal-btn:focus-visible,
.mw-nav-portal-item.is-open > .mw-nav-portal-btn {
  background: #0a3547 !important;
  color: #fff !important;
  box-shadow: 0 4px 14px rgba(3,37,50,0.38), inset 0 1px 0 rgba(255,255,255,0.1) !important;
  text-decoration: none !important;
  transform: translateY(-1px) !important;
}

.mw-nav-portal-item.is-open > .mw-nav-portal-btn::after,
.mw-nav-portal-item:hover > .mw-nav-portal-btn::after {
  /* Keep vertical centering while adding rotation */
  transform: translateY(-50%) rotate(180deg) !important;
  border-top-color: var(--cg-pr-c3, #0eb6bd) !important;
}

/* ── Portal dropdown — position:fixed, placed by JS ────────────────────────
   JS sets style.top / style.left via getBoundingClientRect() so the dropdown
   always appears directly under the Portal button regardless of any parent
   CSS positioning context or stacking context. */
.mw-nav-portal-menu {
  position: fixed !important;
  z-index: 9999 !important;
  width: 248px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  border-top: 3px solid var(--cg-pr-c3, #0eb6bd) !important;
  border-radius: 0 0 8px 8px !important;
  box-shadow: 0 16px 48px rgba(3,37,50,0.18), 0 2px 8px rgba(3,37,50,0.08) !important;
  /* Hidden by default */
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(6px) !important;
  transition: opacity 170ms ease, transform 170ms ease, visibility 170ms ease !important;
}

.mw-nav-portal-item.is-open > .mw-nav-portal-menu {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
}

/* ── Dropdown header strip ──────────────────────────────────────────────── */
.mw-nav-portal-header {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 18px 9px !important;
  background: #f4f8f9 !important;
  border-bottom: 1px solid #dde8ea !important;
}

.mw-nav-portal-header-dot {
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: var(--cg-pr-c3, #0eb6bd) !important;
  flex-shrink: 0 !important;
  box-shadow: 0 0 0 2px rgba(14,182,189,0.25) !important;
}

.mw-nav-portal-header-label {
  font-size: 9px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--cg-pr-c1, #032532) !important;
  font-family: var(--cg-heading, inherit) !important;
}

/* ── Links — same styles as mega-menu columns ───────────────────────────────
   The shared rules at .mw-nav-mega-column a / .mw-nav-portal-menu a already
   provide colour, font, and hover transition. We only set container geometry. */
.mw-nav-portal-menu .mw-nav-mega-column {
  padding: 8px 18px 10px !important;
  border: none !important;
  background: transparent !important;
  min-height: 0 !important;
}

/* ── Admin Area link — separated at bottom ──────────────────────────────── */
.mw-nav-portal-admin-link {
  border-top: 1px solid #e2ecee !important;
  margin-top: 4px !important;
  padding-top: 4px !important;
}

.mw-nav-portal-admin-link a {
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #9aadb5 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
}

.mw-nav-portal-admin-link a:hover,
.mw-nav-portal-admin-link a:focus-visible {
  color: var(--cg-pr-c1, #032532) !important;
}

/* ── Auth / CTA button ──────────────────────────────── */
.mw-nav-auth-links {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  margin-left: 14px;
  vertical-align: middle;
}

.mw-nav-auth-btn {
  display: inline-flex !important;
  align-items: center;
  padding: 5px 14px !important;
  font-family: var(--cg-heading, inherit);
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em;
  text-decoration: none !important;
  border-radius: 3px;
  transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
  line-height: 1.4;
}

.mw-nav-auth-register {
  color: var(--cg-pr-c1, #032532) !important;
  background: var(--cg-pr-c3, #0eb6bd) !important;
  border: 1px solid var(--cg-pr-c3, #0eb6bd);
}

.mw-nav-auth-register:hover {
  background: #0aa4ab !important;
  border-color: #0aa4ab;
}

.mw-nav-mobile-only {
  display: none !important;
}

@media (max-width: 1199px) and (min-width: 992px) {
  .mw-nav-enterprise-nav > li {
    margin: 0 10px !important;
  }

  .mw-nav-enterprise-nav > li > a {
    font-size: 14px !important;
  }

  .mw-nav-mega-menu {
    margin: 0 10px !important;
    grid-template-columns: 160px repeat(3, minmax(125px, 1fr)) 175px;
  }

  .mw-nav-mega-column {
    padding-left: 12px;
    padding-right: 12px;
  }

  .mw-nav-mega-column a,
  .mw-nav-portal-menu a {
    font-size: 13px !important;
  }
}

@media (max-width: 991px) {
  /* On mobile, show nav items normally */
  ul#main-nav > li {
    display: block !important;
  }

  .mw-nav-enterprise-nav {
    display: block !important;
    padding: 18px 0 40px !important;
  }

  .mw-nav-enterprise-nav > li {
    margin: 0 !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.11);
    display: block !important;
    align-self: auto !important;
  }

  .mw-nav-enterprise-nav > li > a {
    display: flex !important;
    padding: 14px 0 !important;
    color: #fff !important;
    font-size: 17px !important;
  }

  .mw-nav-enterprise-nav > li > a::before,
  .mw-nav-enterprise-nav > li > a::after {
    display: none !important;
  }

  .mw-nav-enterprise-nav > li > a[data-menu-trigger]::after {
    display: block !important;
    position: absolute !important;
    top: 14px !important;
    right: 6px !important;
    color: var(--cg-pr-c2);
    font-size: 19px;
    margin: 0 !important;
  }

  .mw-nav-enterprise-nav .mw-nav-mega-menu {
    position: static !important;
    display: none !important;
    grid-template-columns: 1fr;
    max-width: none;
    margin: 0 !important;
    border: 0;
    box-shadow: none;
    transform: none;
    visibility: visible;
    opacity: 1;
    background: transparent !important;
  }

  .mw-nav-enterprise-nav > li.is-open > .mw-nav-mega-menu {
    display: block !important;
  }

  /* Portal dropdown on mobile: static flow, shown/hidden by is-open */
  .mw-nav-portal-menu {
    position: static !important;
    display: none !important;
    width: auto !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    transform: none !important;
  }

  .mw-nav-portal-item.is-open > .mw-nav-portal-menu {
    display: block !important;
  }

  .mw-nav-mega-intro,
  .mw-nav-mega-feature {
    display: none;
  }

  .mw-nav-mega-column,
  .mw-nav-portal-menu .mw-nav-mega-column {
    padding: 10px 0 12px 12px;
    border: 0;
    background: transparent;
  }

  .mw-nav-mega-column h4 {
    margin: 0 0 6px;
    color: var(--cg-pr-c2);
    font-size: 11px;
  }

  .mw-nav-mega-column a,
  .mw-nav-portal-menu a {
    padding: 5px 0 !important;
    color: rgba(255, 255, 255, 0.75) !important;
    font-size: 14px !important;
  }

  /* Portal button — reset to plain nav link on mobile */
  .mw-nav-portal-btn {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 14px 0 !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    color: #fff !important;
    transform: none !important;
  }

  .mw-nav-portal-btn:hover,
  .mw-nav-portal-item.is-open > .mw-nav-portal-btn {
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  /* Portal header strip — suppress on mobile (dark bg, no contrast) */
  .mw-nav-portal-header {
    display: none !important;
  }

  .mw-nav-auth-links {
    display: none !important;
  }

  .mw-nav-mobile-only {
    display: block !important;
  }
}

@media (min-width: 992px) {
  .mobile-main-navigation .mw-nav-enterprise-nav {
    display: none !important;
  }
}

/* ── Marwest LLC logo sizing ─────────────────────────────────────── */
.brand-logo {
  max-width: 160px !important;
  width: 160px !important;
  flex-shrink: 0;
}

.brand-logo img,
.brand-logo img.logo_site-size {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain;
}

.sidebar-info-contents .content-inner .logo img.logo_site-size,
.sidebar-info-contents .content-inner .logo img {
  max-width: 140px !important;
  width: 100% !important;
  height: auto !important;
}

footer img.logo_site-size,
.cg-ftr2-widget img.logo_site-size {
  max-width: 140px !important;
  width: 100% !important;
  height: auto !important;
}

img.logo_site-m-size {
  max-width: 120px !important;
  width: 100% !important;
  height: auto !important;
}

@media (max-width: 991px) {
  .brand-logo {
    max-width: 120px !important;
    width: 120px !important;
  }
}

@media (max-width: 575px) {
  .brand-logo {
    max-width: 100px !important;
    width: 100px !important;
  }
}

/* =========================================================
   MW-* shared layout classes (used by about/*, services/*, etc.)
   ========================================================= */

/* Section tones */
.elementor-section.mw-sec-grey { background: #f5f7fb; }
.elementor-section.mw-sec-dark { background: #032532; }
.elementor-section.mw-sec-dark .cg-sec-title h2,
.elementor-section.mw-sec-dark .sec_title { color: #fff !important; }
.elementor-section.mw-sec-dark .subtitle { color: #0eb6bd !important; }
.elementor-section.mw-sec-dark .elementor-gt-desc { color: rgba(255,255,255,.78); }

/* Feature cards — 3-col grid */
.mw-cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 28px; max-width: 1200px; margin: 0 auto; }
.mw-feat-card { background: #fff; border-radius: 16px; padding: 40px 32px; border: 1px solid #e8edf2; border-bottom: 4px solid #0eb6bd; transition: transform .3s ease, box-shadow .3s ease; position: relative; overflow: hidden; }
.mw-feat-card::before { content: ''; position: absolute; top: 0; right: 0; width: 120px; height: 120px; background: radial-gradient(circle, rgba(14,182,189,.06) 0%, transparent 70%); border-radius: 0 16px 0 0; pointer-events: none; }
.mw-feat-card:hover { transform: translateY(-8px); box-shadow: 0 24px 64px rgba(3,37,50,.12); }
.mw-feat-card-icon { width: 68px; height: 68px; background: linear-gradient(135deg, #eef9fa, #d4f3f5); border-radius: 14px; display: flex; align-items: center; justify-content: center; margin-bottom: 24px; color: #0eb6bd; font-size: 28px; }
.mw-feat-card h4 { color: #032532; font-size: 18px; margin: 0 0 12px; font-family: var(--cg-heading, 'Space Grotesk', sans-serif); font-weight: 700; line-height: 1.3; }
.mw-feat-card p { color: #6B7280; line-height: 1.75; margin: 0; font-size: 15px; }
.mw-card-link { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; color: #0eb6bd; font-weight: 700; font-size: 14px; text-decoration: none; }
.mw-card-link:hover { color: #032532; }

/* Feature cards — 4-col grid */
.mw-cards-grid4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 22px; max-width: 1200px; margin: 0 auto; }
.mw-feat-card4 { background: #fff; border-radius: 14px; padding: 32px 24px; border: 1px solid #e8edf2; border-top: 3px solid #0eb6bd; transition: transform .3s, box-shadow .3s; overflow: hidden; }
.mw-feat-card4:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(3,37,50,.1); }
.mw-feat-card4-icon { width: 56px; height: 56px; background: linear-gradient(135deg, #eef9fa, #d4f3f5); border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; color: #0eb6bd; font-size: 24px; }
.mw-feat-card4 h4 { color: #032532; font-size: 16px; margin: 0 0 10px; font-family: var(--cg-heading, 'Space Grotesk', sans-serif); font-weight: 700; }
.mw-feat-card4 p { color: #6B7280; line-height: 1.7; margin: 0; font-size: 14px; }

/* Stats strip */
.mw-stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0; max-width: 1200px; margin: 0 auto; }
.mw-stat-cell { text-align: center; padding: 56px 20px; border-right: 1px solid rgba(255,255,255,.1); position: relative; }
.mw-stat-cell:last-child { border-right: none; }
.mw-stat-num { font-size: clamp(2.2rem, 3.5vw, 3rem); font-weight: 800; color: #0eb6bd; font-family: var(--cg-heading, 'Space Grotesk', sans-serif); line-height: 1; margin-bottom: 10px; display: block; }
.mw-stat-label { color: rgba(255,255,255,.75); font-size: 12px; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600; line-height: 1.4; display: block; }
.mw-stats-light .mw-stat-cell { border-right: 1px solid rgba(3,37,50,.1); }
.mw-stats-light .mw-stat-cell:last-child { border-right: none; }
.mw-stats-light .mw-stat-num { color: #032532; }
.mw-stats-light .mw-stat-label { color: #6B7280; }

/* Image + text row */
.mw-imgtext-row { display: flex; gap: 72px; align-items: center; max-width: 1200px; margin: 0 auto; flex-wrap: wrap; }
.mw-imgtext-img { flex: 1; min-width: 300px; }
.mw-imgtext-img img { width: 100%; border-radius: 20px; object-fit: cover; max-height: 460px; display: block; box-shadow: 0 24px 64px rgba(3,37,50,.14); }
.mw-imgtext-text { flex: 1; min-width: 300px; }
.mw-imgtext-text .cg-sec-title { text-align: left; margin-bottom: 24px; }
.mw-imgtext-text p { color: #6B7280; line-height: 1.85; font-size: 16px; margin: 0 0 24px; }
@media (max-width: 992px) { .mw-imgtext-row { gap: 48px; } }
@media (max-width: 768px) { .mw-imgtext-row { flex-direction: column !important; gap: 32px; } }

/* CTA banner */
.mw-cta-wrap { max-width: 1100px; margin: 0 auto; background: linear-gradient(135deg, #032532 0%, #0a3d4f 50%, #032532 100%); border-radius: 20px; padding: 72px 60px; text-align: center; position: relative; overflow: hidden; }
.mw-cta-wrap::before { content: ''; position: absolute; top: -80px; right: -80px; width: 320px; height: 320px; background: radial-gradient(circle, rgba(14,182,189,.18) 0%, transparent 70%); pointer-events: none; }
.mw-cta-wrap::after { content: ''; position: absolute; bottom: -60px; left: -60px; width: 240px; height: 240px; background: radial-gradient(circle, rgba(14,182,189,.1) 0%, transparent 70%); pointer-events: none; }
.mw-cta-wrap .cg-sec-title h2,
.mw-cta-wrap .sec_title { color: #fff !important; position: relative; z-index: 1; }
.mw-cta-wrap .mw-cta-desc { color: rgba(255,255,255,.82); line-height: 1.8; max-width: 700px; margin: 0 auto 36px; font-size: 1.05rem; position: relative; z-index: 1; }
.mw-cta-wrap .cg-btn-1 { position: relative; z-index: 1; }
@media (max-width: 768px) { .mw-cta-wrap { padding: 48px 28px; } }

/* ═══════════════════════════════════════════════════════════════════════════
   INTERNAL PAGE ENTERPRISE POLISH
   Scoped strictly to .body-bg-1 and #cg-hero2 so the homepage is NEVER
   affected. All rules below use these scoping selectors.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Internal hero: clear the fixed header + improve image height ─────────── */
#cg-hero2.cg-hero2-sec .cg-hero2-img.cg-breadcurmb-img {
  min-height: 380px;
}
#cg-hero2.cg-hero2-sec .cg-hero2-img img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  object-position: center 35%;
  display: block;
}
@media (max-width: 768px) {
  #cg-hero2.cg-hero2-sec .cg-hero2-img img {
    height: 240px;
  }
}

/* ── Breadcrumb styling ───────────────────────────────────────────────────── */
.cg-breadcurmb-text .breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
}
.cg-breadcurmb-text .breadcrumb-list .item {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.2px;
  color: rgba(3,37,50,.75);
}
.cg-breadcurmb-text .breadcrumb-list .item a {
  color: #032532;
  text-decoration: none;
  transition: color 160ms;
}
.cg-breadcurmb-text .breadcrumb-list .item a:hover { color: #0eb6bd; }
.cg-breadcurmb-text .breadcrumb-list .item + .item::before {
  content: '›';
  margin-right: 8px;
  color: rgba(3,37,50,.4);
  font-size: 15px;
}
.cg-breadcurmb-text h1.hero_title {
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  line-height: 1.15;
  font-weight: 800;
  color: #032532;
  margin: 0;
  letter-spacing: -.5px;
}

/* ── Internal page section vertical rhythm ───────────────────────────────── */
.body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed {
  padding-top: 90px;
  padding-bottom: 90px;
}
.body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed:first-of-type {
  padding-top: 100px;
}
@media (max-width: 991px) {
  .body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}
@media (max-width: 767px) {
  .body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed {
    padding-top: 48px;
    padding-bottom: 48px;
  }
}

/* ── Section title refinements (internal pages only) ─────────────────────── */
.body-bg-1 .cg-sec-title[style*="text-align:center"] {
  max-width: 780px;
  margin-left: auto;
  margin-right: auto;
}
.body-bg-1 .cg-sec-title .subtitle.cg-sub-tilte {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #0eb6bd;
  display: inline-block;
  margin-bottom: 12px;
}
.body-bg-1 .cg-sec-title h2.sec_title {
  font-size: clamp(1.75rem, 3vw, 2.4rem);
  line-height: 1.2;
  color: #032532;
  margin: 0;
}
.body-bg-1 .mw-sec-dark .cg-sec-title h2.sec_title {
  color: #fff !important;
}

/* ── Who We Are: improve image/text balance ──────────────────────────────── */
.body-bg-1 .mw-imgtext-row {
  gap: 64px;
  align-items: flex-start;
}
.body-bg-1 .mw-imgtext-img {
  flex: 0 0 46%;
  max-width: 46%;
}
.body-bg-1 .mw-imgtext-img img {
  max-height: 520px;
  height: 100%;
  min-height: 360px;
  object-fit: cover;
}
.body-bg-1 .mw-imgtext-text {
  flex: 1;
  padding-top: 8px;
}
.body-bg-1 .mw-imgtext-text h3.sec_title {
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  line-height: 1.3;
  margin-bottom: 20px;
  color: #032532;
}
.body-bg-1 .mw-imgtext-text p {
  font-size: 15.5px;
  line-height: 1.85;
  color: #4B5563;
  margin-bottom: 18px;
}
/* Credential pills inside Who We Are */
.body-bg-1 .mw-imgtext-text [style*="fa-circle-check"] {
  flex-shrink: 0;
}
@media (max-width: 991px) {
  .body-bg-1 .mw-imgtext-img,
  .body-bg-1 .mw-imgtext-text { flex: 1 1 100%; max-width: 100%; }
  .body-bg-1 .mw-imgtext-img img { max-height: 340px; }
}

/* ── Stats strip dark section: add inner padding ─────────────────────────── */
.body-bg-1 .mw-sec-dark .mw-stats-row {
  max-width: 1100px;
}
.body-bg-1 .mw-stat-cell {
  padding: 48px 16px;
}

/* ── Credentials grid: tighten on mobile ─────────────────────────────────── */
@media (max-width: 767px) {
  .body-bg-1 [style*="grid-template-columns:repeat(auto-fit,minmax(300px"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── CTA section: generous bottom breathing room ─────────────────────────── */
.body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed:last-of-type {
  padding-bottom: 110px;
}
.body-bg-1 .mw-cta-wrap {
  padding: 80px 64px;
}
@media (max-width: 768px) {
  .body-bg-1 .mw-cta-wrap { padding: 52px 28px; }
}

/* ── Feat cards: consistent min-height on large grids ────────────────────── */
.body-bg-1 .mw-feat-card {
  display: flex;
  flex-direction: column;
}
.body-bg-1 .mw-feat-card p {
  flex: 1;
}


/* ── Normalize inner hero content padding across all internal pages ───────── */
/* The original pt-90 on cg-hero2-content creates a 240px combined gap when
   the section already has pt-150. Cap it to a consistent value. */
#cg-hero2.cg-hero2-sec .cg-hero2-content[class*="pt-"] {
  padding-top: 44px !important;
}


/* ═══════════════════════════════════════════════════════════════════════════
   CARD GRID & INNER CONTENT BOTTOM MARGINS
   Ensures card grids, process steps, and stats rows never sit flush against
   the section's bottom padding edge.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Card grids */
.body-bg-1 .mw-cards-grid,
.body-bg-1 .mw-cards-grid4 {
  margin-bottom: 8px;
}

/* Process steps / pipeline strips */
.body-bg-1 [style*="grid-template-columns:repeat(auto-fit,minmax(180px"] {
  margin-bottom: 8px;
}

/* Stats row */
.body-bg-1 .mw-stats-row {
  margin-bottom: 0;
}

/* Credentials / trade-lane grid */
.body-bg-1 [style*="grid-template-columns:repeat(auto-fit,minmax(280px"] ,
.body-bg-1 [style*="grid-template-columns:repeat(auto-fit,minmax(300px"] {
  margin-bottom: 8px;
}

/* Mission/Vision/Values grid */
.body-bg-1 [style*="grid-template-columns:repeat(auto-fit,minmax(300px,1fr)"] {
  margin-bottom: 8px;
}

/* Remove the double bottom padding on the CTA section so it sits correctly */
.body-bg-1 .elementor-section.elementor-top-section.elementor-section-boxed:last-of-type {
  padding-bottom: 80px;
}

/* Services card grid (within service pages) */
.body-bg-1 .cg-service-grid,
.body-bg-1 .service-card-row {
  margin-bottom: 8px;
}


/* ── Nav hover: move the animated line below the text (was cutting through it) ── */
.cg-header-section:is(.header_style_one) .cg-header-navigation .main-navigation li a:after {
  top: auto !important;
  bottom: -4px !important;
  background-color: var(--cg-pr-c3, #0eb6bd) !important;
}
