@media (max-width: 1023px) {
  #main_header .menu_wrapper {
    position: fixed;
    top: 110px;
    bottom: 0;
    height: auto;
    overflow: hidden;
  }
  #main_header .menu_wrapper > nav {
    height: 100%;
    overflow-y: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  #main_header .menu_wrapper > nav::-webkit-scrollbar {
    display: none;
  }
  body:has(#main_header.showing_nav) {
    overflow: hidden;
  }

  .page-id-8202 .wp-block-cover .wp-block-cover__background {
    height: 250px;
  }

  .wp-block-cover:first-of-type h2 {
    font-size: 1.5rem !important;
  }
}

/* Responsive typography — mobile first.
   Selectors target plain tag, inline style, and WP block-editor preset classes
   (.has-*-font-size) which carry !important from global-styles-inline-css. */
h1,
h1[style*="font-size"],
h1[class*="-font-size"],
.wp-block-cover h1 {
  font-size: 2rem !important;
  line-height: 1.15;
}
h2,
h2[style*="font-size"],
h2[class*="-font-size"] {
  font-size: 1.5rem !important;
  line-height: 1.2;
}
h3,
h3[style*="font-size"],
h3[class*="-font-size"] {
  font-size: 1.25rem !important;
  line-height: 1.25;
}
h4,
h4[style*="font-size"],
h4[class*="-font-size"] {
  font-size: 1.125rem !important;
}
h5,
h5[style*="font-size"],
h5[class*="-font-size"] {
  font-size: 1rem !important;
}

@media (min-width: 640px) {
  h1,
  h1[style*="font-size"],
  h1[class*="-font-size"],
  .wp-block-cover:first-of-type h1 {
    font-size: 2.5rem !important;
  }
  h2,
  h2[style*="font-size"],
  h2[class*="-font-size"] {
    font-size: 2rem !important;
  }
  h3,
  h3[style*="font-size"],
  h3[class*="-font-size"] {
    font-size: 1.5rem !important;
  }
  h4,
  h4[style*="font-size"],
  h4[class*="-font-size"] {
    font-size: 1.25rem !important;
  }
  h5,
  h5[style*="font-size"],
  h5[class*="-font-size"] {
    font-size: 1.125rem !important;
  }
}

@media (min-width: 1024px) {
  h1,
  h1[style*="font-size"],
  h1[class*="-font-size"] {
    font-size: 4rem !important;
  }
  h2,
  h2[style*="font-size"],
  h2[class*="-font-size"] {
    font-size: 3rem !important;
  }
  h3,
  h3[style*="font-size"],
  h3[class*="-font-size"] {
    font-size: 2.25rem !important;
  }
  h4,
  h4[style*="font-size"],
  h4[class*="-font-size"] {
    font-size: 1.75rem !important;
  }
  h5,
  h5[style*="font-size"],
  h5[class*="-font-size"] {
    font-size: 1.375rem !important;
  }
}

/* An h2 immediately following an h1 acts as a sub-heading — keep it small at
   every breakpoint. Outside the media queries above: `h1 + h2` (0,0,2) and its
   variants (0,1,2) outrank the plain h2 typography rules (0,0,1)/(0,1,1), so it
   wins regardless of viewport or source order. */
h1 + h2,
h1 + h2[style*="font-size"],
h1 + h2[class*="-font-size"] {
  font-size: 1.5rem !important;
}

/* Force spacer height to 0 — overrides inline style="height: ..." */
.wp-block-spacer,
.wp-block-spacer[style*="height"] {
  height: 0 !important;
}

/* Default vertical padding on outermost columns row (not nested) — mobile first.
   Applied only on .wp-block-columns (the row) — NOT .wp-block-column too — to avoid compounding
   padding across the row + its inner column. */
.wp-block-columns:not(.wp-block-columns .wp-block-columns) {
  padding-top: 30px !important;
  padding-bottom: 30px !important;
}
@media (min-width: 1024px) {
  .wp-block-columns:not(.wp-block-columns .wp-block-columns) {
    padding-top: 80px !important;
    padding-bottom: 80px !important;
  }
}

/* Hide empty columns entirely */
.wp-block-column:not(:has(*)) {
  display: none !important;
}

/* In flex column rows with >1 column, drop the inner paddings on mobile (where columns stack)
   — gap already provides spacing between stacked columns */
@media (max-width: 781px) {
  .wp-block-columns.is-layout-flex:has(.wp-block-column + .wp-block-column)
    > .wp-block-column:first-child {
    padding-top: 0 !important;
  }
  .wp-block-columns.is-layout-flex:has(.wp-block-column + .wp-block-column)
    > .wp-block-column:not(:first-child) {
    padding-bottom: 0 !important;
  }
  .t-quote * {
    font-size: 1rem !important;
  }
  .homepage section.proven-impact .stat {
    font-size: 40px !important;
  }
}

/* Outermost columns row behaves as a centered container.
   Full-bleed pattern: element stays full-width (so background-color fills the viewport),
   but inner content is constrained to 1280px via horizontal padding.
   Skip elements that already have .grid-container — it provides its own max-width/centering,
   and stacking our padding on top would over-constrain (50% is parent-width, not element-width). */
.wp-block-columns:not(.wp-block-columns .wp-block-columns):not(
    .grid-container
  ) {
  padding-left: max(20px, calc(50% - 640px)) !important;
  padding-right: max(20px, calc(50% - 640px)) !important;
}

/* Strip horizontal padding from .wp-block-column and from any nested .wp-block-columns.
   Only the outermost .wp-block-columns (row) carries container padding — columns inside
   stay at zero so we never compound (e.g. ciso.css adds `padding: 0 30px` to columns under 991px). */
.wp-block-columns > .wp-block-column,
.wp-block-columns .wp-block-columns {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* For .wp-block-navigation with a single menu item, skip the responsive hamburger UI on mobile
   and render the item inline — no overlay button, no close button. */
@media (max-width: 1023px) {
  .wp-block-navigation:has(.wp-block-navigation__container > li:only-child)
    .wp-block-navigation__responsive-container {
    display: block !important;
    position: absolute !important;
  }
  .wp-block-navigation:has(.wp-block-navigation__container > li:only-child)
    .wp-block-navigation__responsive-container-open,
  .wp-block-navigation:has(.wp-block-navigation__container > li:only-child)
    .wp-block-navigation__responsive-container-close {
    display: none !important;
  }
  .wp-block-navigation:has(.wp-block-navigation__container > li:only-child)
    .wp-block-navigation__responsive-container {
    position: relative !important;
  }

  .logo img {
    height: 110px !important;
  }
  .wp-block-heading:has(~ .organic-block) {
    margin-top: 40px !important;
    margin-bottom: 20px !important;
  }

  #h-additionally {
    margin-top: 40px !important;
  }
}

#h-industry-leader-in-strategy-and-risk {
  margin-top: 30px;
}

section.testimonials.py-medium {
  padding-top: 0 !important;
}

section.platforms .row:first-of-type,
section.services .container.my-5 {
  margin-bottom: 0 !important;
}

.wp-block-heading:has(~ .organic-block) {
  margin-top: 80px;
  margin-bottom: 40px;
}

/* Tighten vertical padding on a slim CTA/utility bar — a columns row with a
   background that holds a single link, either a wp-block-navigation or a plain
   <a class="ek-link">. Specificity (0,3,1) beats the default 30px/80px row
   padding rule (0,3,0), so it wins regardless of source order; !important is
   still needed because that rule also uses !important. */
.wp-block-columns.has-background:has(nav.wp-block-navigation, a.ek-link) {
  padding-top: 15px !important;
  padding-bottom: 15px !important;
}

#h-additionally {
  margin-top: 80px;
}

.wp-container-core-columns-is-layout-9d6595d7 p{
  margin-bottom: 0 !important;
}