/* The former H2 inherits the kit's 38px line height; preserve its exact box. */
.elementor-element-7c19e8b h1.elementor-heading-title {
  line-height: 38px;
}

.vml-site-heading {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Share buttons include both div and anchor elements; align their boxes. */
.elementor-widget-share-buttons .elementor-grid-item {
  vertical-align: top;
}

/* Internship slide captions retain Elementor's timing, but travel one tenth
   of the original fadeInUp distance (100% of their own height). */
@keyframes vml-internship-fade-in-up {
  from { opacity: 0; transform: translate3d(0, 10%, 0); }
  to { opacity: 1; transform: none; }
}
body:is(.page-id-2024, .page-id-2438) .elementor-element-4af848e .swiper-slide-contents.animated.fadeInUp {
  animation-name: vml-internship-fade-in-up;
}

/* Define both directions on the resting element; never alter carousel timing. */
header .lang-item a:hover,
header .lang-item a:focus-visible {
  border-color: currentColor;
}

/* Make each About service tile use its existing Elementor popup link. */
/* Empty, hidden Leadership heading left an 80px band above Our Network. */
body.page-id-2121:not(.elementor-editor-active) .elementor-element-850f447 {
  display: none;
}

body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap > .elementor-widget-heading > .elementor-widget-container {
  border-right-color: transparent !important;
}
body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]):has(+ .elementor-column > .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"])::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 85px;
  background: #f8f8f8;
  pointer-events: none;
}
body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap {
  position: relative;
  transition: opacity .1s linear;
}
body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap:hover,
body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap:focus-within {
  opacity: .4;
}
body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap > .elementor-widget-image {
  position: static;
}
body.page-id-2121 .elementor-column > .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  cursor: pointer;
}

body :is(a, button, input[type="submit"], input[type="button"], .elementor-button, .elementor-icon, .elementor-menu-toggle),
body .elementor-item::before,
body .elementor-item::after {
  transition: color .1s linear, background-color .1s linear, border-color .1s linear,
    opacity .1s linear, box-shadow .1s linear, transform .1s linear !important;
  transition-delay: 0s !important;
}

/* Unlimited Elements cards reveal their overlay by changing height. */
body [data-widget_type^="ucaddon_"] :is(.img-overlay, .single-img, .image, .text) {
  transition: color .1s linear, background-color .1s linear, border-color .1s linear,
    opacity .1s linear, box-shadow .1s linear, transform .1s linear, height .1s linear !important;
  transition-delay: 0s !important;
}

/* Japanese and English home news cards: fade the panel, then reveal its caption. */
body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img .img-overlay {
  height: 100% !important;
  opacity: 0 !important;
  transition: opacity .2s linear !important;
  transition-delay: 0s !important;
}
body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img .img-overlay .text {
  opacity: 0;
  translate: 0 10px;
  transition: opacity .2s linear, translate .2s linear !important;
  transition-delay: 0s !important;
}
body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img:is(:hover, :focus-within) .img-overlay {
  opacity: 1 !important;
}
body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img:is(:hover, :focus-within) .img-overlay .text {
  opacity: 1;
  translate: 0 0;
  transition-delay: .2s !important;
}

/* Work cards originally toggled display, which cannot interpolate. Keep the
   overlay rendered and fade it instead; retain the existing mobile caption. */
body [id^="uc_image_hover_overlay_elementor_"] .img-overlay {
  display: block !important;
  opacity: 0;
}
body [id^="uc_image_hover_overlay_elementor_"].single-img:hover .img-overlay,
body [id^="uc_image_hover_overlay_elementor_"].single-img:focus-within .img-overlay {
  opacity: 1;
}
@media only screen and (max-width: 600px) {
  body [id^="uc_image_hover_overlay_elementor_"] .img-overlay {
    opacity: 1;
  }
}

body :is(.elementor-widget-image a img, .elementor-widget-image-box img, .elementor-post__thumbnail img) {
  transition: opacity .1s linear, filter .1s linear, transform .1s linear !important;
}

/* Keep News thumbnails fixed while Elementor classifies loaded images. */
body:is(.page-id-1340, .page-id-2365) .elementor-posts-container.elementor-has-item-ratio .elementor-post__thumbnail img {
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.01);
  transition: opacity .1s linear, filter .1s linear !important;
}

@media (prefers-reduced-motion: reduce) {
  body.page-id-2121 .elementor-column:has(> .elementor-widget-wrap > .elementor-widget-image a[aria-haspopup="dialog"]) > .elementor-widget-wrap {
    transition: none;
  }
  body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img .img-overlay,
  body:is(.page-id-1175, .page-id-2200) [id^="uc_news_image_overlay_elementor_"].single-img .img-overlay .text {
    transition: none !important;
  }
  body :is(a, button, input[type="submit"], input[type="button"], .elementor-button, .elementor-icon, .elementor-menu-toggle),
  body .elementor-item::before,
  body .elementor-item::after,
  body [data-widget_type^="ucaddon_"] :is(.img-overlay, .single-img, .image, .text),
  body :is(.elementor-widget-image a img, .elementor-widget-image-box img, .elementor-post__thumbnail img) {
    transition: none !important;
  }
}
