/* Shared minimum type sizes for public pages. Selectors stay page-specific. */
.ihv2-kicker,
.ihv2-progress,
.ihv2-progress span,
.ihv2-drawing-hero__caption,
.ihv2-drawing-hero__caption span,
.ihv2-bridge-strip__brand span,
.ihv2-bridge-strip__brand b,
.ihv2-project figcaption,
.ihv2-project figcaption span,
.ihv2-project figcaption a,
.ihv2-method__legend,
.ihv2-method__legend span,
.ihv2-method__legend b,
.ihv2-digital__bar,
.ihv2-digital__bar span,
.ihv2-digital__callout,
.ihv2-learning__drawing > div > span,
.ihv2-bridge-hero__info small,
.ihv2-bridge-hero__select > span,
.ihv2-cta small {
  font-size: 14px !important;
  line-height: 1.35 !important;
}

.ihv2-direction-grid > a > span,
.ihv2-project__tabs button > span,
.ihv2-method__tabs button > span,
.ihv2-services summary > span {
  font-size: 24px !important;
  line-height: 1 !important;
}

.ihv2-project__tabs,
.ihv2-method__tabs {
  flex-wrap: wrap;
}

.ihv2-project__tabs button,
.ihv2-method__tabs button {
  min-width: 0;
  white-space: normal;
}

.ipv2 .ipv2-kicker,
.ipv2 figcaption,
.ipv2 .ipv2-modal label,
.ipv2 .white-rounded-block-wrapper label {
  font-size: 14px !important;
  line-height: 1.4 !important;
}

.ipv2 .ipv2-workflow li > span {
  font-size: 32px !important;
  line-height: 1 !important;
}

.ipv2 .site-section-number {
  display: inline-block;
  margin-right: 8px;
  font-size: 24px !important;
  line-height: 1 !important;
  vertical-align: baseline;
}

@media (max-width: 760px) {
  .ipv2 .ipv2-facts dd {
    font-size: 14px !important;
    line-height: 1.4 !important;
  }
}

body:has(.bxexp) .brand-sub,
body:has(.bxexp) .eyebrow,
body:has(.bxexp) .visual-top,
body:has(.bxexp) .visual-bottom,
body:has(.bxexp) .window-bar,
body:has(.bxexp) .mini-label,
body:has(.bxexp) .constructor-tags span,
body:has(.bxexp) .counter-note,
body:has(.bxexp) .demo-stage-label,
body:has(.bxexp) .demo-footnote,
body:has(.bxexp) .return-home,
body:has(.bxexp) .video-file-link,
body:has(.bxexp) .demo-tabs button,
body:has(.bxexp) .video-fullscreen,
body:has(.bxexp) .video-credit,
body:has(.bxexp) .bxexp__kicker,
body:has(.bxexp) .bxexp__status,
body:has(.bxexp) .bxexp__range-row label,
body:has(.bxexp) .bxexp__chip,
body:has(.bxexp) .bxexp__lab-gallery small,
body:has(.bxexp) .bxexp__tab-label--short {
  font-size: 14px !important;
  line-height: 1.35 !important;
}

body:has(.bxexp) .bxexp__tab-index {
  font-size: 24px !important;
  line-height: 1 !important;
}

body:has(.bxexp) .demo-tabs,
body:has(.bxexp) .constructor-tags,
body:has(.bxexp) .bxexp__tabs {
  flex-wrap: wrap;
}

body:has(.bxexp) .demo-tabs button,
body:has(.bxexp) .bxexp__tab {
  min-width: 0;
  white-space: normal;
}

.bridges-catalog__kicker,
.bridges-product-card__eyebrow {
  font-size: 14px !important;
  line-height: 1.35 !important;
}

body:has(.site-header .site-nav) .eyebrow,
body:has(.site-header .site-nav) .site-nav a,
body:has(.site-header .site-nav) .summary-card,
body:has(.site-header .site-nav) .tree-project,
body:has(.site-header .site-nav) .tree-count {
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body:has(.site-header .site-nav) .summary-card strong {
  font-size: 1.5rem !important;
}

body:has(.site-header .site-nav) .project-number {
  font-size: 24px !important;
  line-height: 1 !important;
}

@media (max-width: 680px) {
  .ihv2-digital__bar,
  .ihv2-method__legend,
  .ihv2-bridge-strip__brand {
    flex-wrap: wrap;
  }

  body:has(.bxexp) .window-bar,
  body:has(.bxexp) .bxexp__range-row label {
    flex-wrap: wrap;
    gap: 6px 12px;
  }

  body:has(.flex-header) #form-os-about-us,
  body:has(.flex-header) #form-os-about-us .square-block-with-bg,
  body:has(.flex-header) #form-os-about-us .white-rounded-block,
  body:has(.flex-header) #form-os-about-us .white-rounded-block-wrapper,
  body:has(.flex-header) #form-os-about-us form,
  body:has(.flex-header) #form-os-about-us .flexy-block,
  body:has(.flex-header) #form-os-about-us label,
  body:has(.flex-header) #form-os-about-us input,
  body:has(.flex-header) #form-os-about-us textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body:has(.flex-header) #form-os-about-us .square-block-with-bg {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  body:has(.flex-header) #form-os-about-us .white-rounded-block {
    padding-right: 18px !important;
    padding-left: 18px !important;
  }

  body:has(.flex-header) #form-os-about-us .white-rounded-block-wrapper {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  body:has(.flex-header) #form-os-about-us form,
  body:has(.flex-header) #form-os-about-us .flexy-block {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body:has(.flex-header) .about-block-wrapper h2 {
    font-size: 42px !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere;
  }

  body:has(.flex-header) footer .footer-container,
  body:has(.flex-header) footer .footer-column,
  body:has(.flex-header) footer .footer-column-menu,
  body:has(.flex-header) footer nav.f_nav {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body:has(.flex-header) footer nav.f_nav {
    flex-wrap: wrap !important;
  }

  body:has(.flex-header) footer nav.f_nav > div {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body:has(.flex-header) header .menu,
  body:has(.flex-header) header .menu ul,
  body:has(.flex-header) header .menu li,
  body:has(.flex-header) header .menu .has-children,
  body:has(.flex-header) header .menu .sub-lvl {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body:has(.flex-header) header .menu a {
    max-width: 100%;
    box-sizing: border-box;
    font-size: clamp(18px, 5.5vw, 24px) !important;
    overflow-wrap: anywhere;
  }
}
