/* Shared surfaces and controls for the Next.js pages and WordPress mirror. */
html,
body {
  background-color: var(--nvi-shell);
}

body {
  --wp--preset--color--white: var(--nvi-shell);
}

/* Keep ordinary calls to action in the same family as the brand guide. */
:is(
  .elementor-button,
  .fusion-button,
  .nvi-404__btn,
  .nvi-flyers__btn,
  .nvi-ethics__cta-btn,
  .nvi-detail__button,
  .split__btn,
  .stats__btn,
  .cta__btn,
  .crdr-promo__btn,
  .nvi-inline-cta,
  .nvi-contact-form__submit,
  .bash-map-export,
  .cal-btn,
  .uc_classic_carousel .uc_more_btn,
  .elementor-form button[type="submit"],
  .elementor-form input[type="submit"],
  .wpforms-submit
) {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0.7rem 20px !important;
  border-radius: 4px !important;
  font-family: var(--nvi-font-text) !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}

:is(
  .elementor-button,
  .fusion-button,
  .nvi-404__btn--primary,
  .nvi-flyers__btn:not(.nvi-flyers__btn--download),
  .nvi-ethics__cta-btn,
  .nvi-detail__button--primary,
  .split__btn,
  .cta__btn,
  .crdr-promo__btn,
  .nvi-inline-cta,
  .nvi-contact-form__submit,
  .bash-map-export,
  .uc_classic_carousel .uc_more_btn,
  .elementor-form button[type="submit"],
  .elementor-form input[type="submit"],
  .wpforms-submit
) {
  background: var(--nvi-primary) !important;
  border: 1px solid var(--nvi-primary) !important;
  color: var(--nvi-shell) !important;
}

:is(
  .elementor-button,
  .fusion-button,
  .nvi-404__btn--primary,
  .nvi-flyers__btn:not(.nvi-flyers__btn--download),
  .nvi-ethics__cta-btn,
  .nvi-detail__button--primary,
  .split__btn,
  .cta__btn,
  .crdr-promo__btn,
  .nvi-inline-cta,
  .nvi-contact-form__submit,
  .bash-map-export,
  .uc_classic_carousel .uc_more_btn,
  .elementor-form button[type="submit"],
  .elementor-form input[type="submit"],
  .wpforms-submit
):hover {
  background: var(--nvi-deep) !important;
  border-color: var(--nvi-deep) !important;
  color: var(--nvi-shell) !important;
}

:is(
  .nvi-404__btn--secondary,
  .nvi-flyers__btn--download,
  .nvi-detail__button--secondary
) {
  background: transparent !important;
  border: 1px solid currentColor !important;
  color: var(--nvi-primary) !important;
}

:is(
  .nvi-404__btn--secondary,
  .nvi-flyers__btn--download,
  .nvi-detail__button--secondary
):hover {
  background: var(--nvi-primary) !important;
  border-color: var(--nvi-primary) !important;
  color: var(--nvi-shell) !important;
}

/* Light buttons sit on NVI Blue and other dark callout panels. */
:is(.stats__btn, .cal-btn, .nvi-detail__hero .nvi-detail__button--secondary) {
  background: var(--nvi-shell) !important;
  border: 1px solid var(--nvi-shell) !important;
  color: var(--nvi-deep) !important;
}

:is(.stats__btn, .cal-btn, .nvi-detail__hero .nvi-detail__button--secondary):hover {
  background: var(--nvi-mist) !important;
  border-color: var(--nvi-mist) !important;
}

:is(
  .elementor-button,
  .fusion-button,
  .nvi-404__btn,
  .nvi-flyers__btn,
  .nvi-ethics__cta-btn,
  .nvi-detail__button,
  .split__btn,
  .stats__btn,
  .cta__btn,
  .crdr-promo__btn,
  .nvi-inline-cta,
  .nvi-contact-form__submit,
  .bash-map-export,
  .cal-btn,
  .uc_classic_carousel .uc_more_btn,
  .elementor-form button[type="submit"],
  .elementor-form input[type="submit"],
  .wpforms-submit
):focus-visible {
  outline: 2px solid var(--nvi-light) !important;
  outline-offset: 3px;
}

:is(.nvi-contact-form__submit, .bash-map-export):disabled {
  opacity: .6;
  cursor: not-allowed;
}

/* Brand typography and field treatments shared by both rendering paths. */
body {
  color: var(--nvi-navy);
  --e-global-color-secondary: var(--nvi-navy);
  --e-global-color-text: var(--nvi-navy);
}
.elementor-counter-number-prefix,
.elementor-counter-number-suffix {
  font-family: var(--nvi-font-display) !important;
}

.elementor-1011 :is(.elementor-element-9c996a5, .elementor-element-3b8e941) .elementor-button,
.elementor-section:has(> .elementor-background-overlay) .elementor-button,
.elementor-widget-wrap:has(> .elementor-background-overlay) .elementor-button {
  background: var(--nvi-shell) !important;
  border-color: var(--nvi-shell) !important;
  color: var(--nvi-primary) !important;
}
.elementor-1011 :is(.elementor-element-9c996a5, .elementor-element-3b8e941) .elementor-button:hover,
.elementor-section:has(> .elementor-background-overlay) .elementor-button:hover,
.elementor-widget-wrap:has(> .elementor-background-overlay) .elementor-button:hover {
  background: var(--nvi-mist) !important;
  border-color: var(--nvi-mist) !important;
  color: var(--nvi-deep) !important;
}
.nvi-field,
.nvi-contact-form__field input,
.nvi-contact-form__field textarea {
  border: 1.5px solid var(--nvi-rule) !important;
  color: var(--nvi-navy) !important;
  font-size: 16px !important;
  transition: border-color .2s, box-shadow .2s;
}
.nvi-field:focus,
.nvi-contact-form__field input:focus,
.nvi-contact-form__field textarea:focus {
  outline: none;
  border-color: var(--nvi-primary) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nvi-light) 25%, transparent) !important;
}

/* The Locations photo text is centered: fade Deep from the text area outward. */
.elementor-1305 :is(.elementor-element-78d5a88f, .elementor-element-66540754) > .elementor-background-overlay,
.elementor-1305 .elementor-element-42a275e0 > .elementor-widget-wrap > .elementor-background-overlay {
  background: linear-gradient(90deg, color-mix(in srgb, var(--nvi-deep) 20%, transparent), color-mix(in srgb, var(--nvi-deep) 80%, transparent) 50%, color-mix(in srgb, var(--nvi-deep) 20%, transparent)) !important;
  opacity: 1 !important;
}
.elementor-1305 :is(.elementor-element-78d5a88f, .elementor-element-66540754, .elementor-element-42a275e0) :is(.elementor-heading-title, .elementor-widget-text-editor) {
  color: var(--nvi-shell) !important;
}
.elementor-1305 .bdt-ep-accordion-title {
  background: var(--nvi-mist) !important;
  color: var(--nvi-navy) !important;
}
.elementor-1011 .uc_classic_carousel .uc_classic_carousel_container_holder,
.elementor-1011 .uc_classic_carousel .ue-carousel-item,
.elementor-1011 .uc_classic_carousel .uc_classic_carousel_placeholder img,
.elementor-1305 .elementor-element-7f2f741c > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-1305 .elementor-element-61d5fae8 > .elementor-widget-wrap,
.elementor-1305 .elementor-element-42a275e0 > .elementor-widget-wrap {
  border-radius: 8px !important;
  overflow: hidden;
}
#nvi-locations-map {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: hidden !important;
  isolation: isolate;
}
.elementor-1305 .elementor-column,
.elementor-1305 .elementor-widget-wrap,
.elementor-1305 .elementor-widget-container {
  min-width: 0;
}

/* Content links and imported Word copy follow the site typography. */
.elementor-widget-text-editor a, .elementor-widget-text-editor a span { color: var(--nvi-primary) !important; }
.elementor-widget-text-editor :is(span, div) { font-family: var(--nvi-font-text) !important; }
.benefit-card, .method-card, .service-card, .section-img, .elementor-327 .elementor-widget-image img { border-radius: 8px !important; overflow: hidden; }

/* Allow grid tracks to shrink to a phone viewport instead of their text's intrinsic width. */
.stats__layout > *, .stats__counters > * { min-width: 0; }
.stats__counters { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 767px) {
  /* Separate the stacked careers photo from the opportunities button. */
  .elementor-2083 .elementor-element-59db331 {
    margin-top: 32px !important;
  }
  .stats__layout { grid-template-columns: minmax(0, 1fr) !important; }
  .stats__counters { gap: 24px 16px !important; }
  .stat-card__number { font-size: clamp(18px, 5.3vw, 24px) !important; }
  .stat-card__label { line-height: 1.5 !important; overflow-wrap: anywhere; }
  .nvi-editorial .elementor-column > .elementor-widget-wrap {
    margin-inline: 0 !important;
    --e-column-margin-left: 0px;
    --e-column-margin-right: 0px;
    min-width: 0;
    max-width: 100%;
  }
  .nvi-editorial :is(.elementor-widget-text-editor, .elementor-heading-title) { overflow-wrap: anywhere; }
  .nvi-editorial .elementor-widget-text-editor :is(p, div, span) { text-indent: 0 !important; }
}
.elementor-327 .elementor-col-33 > .elementor-widget-wrap {
  border-radius: 8px !important;
  overflow: hidden;
}
