/* =====================================================================
   GLOBAL STYLES
   ===================================================================== */

/* ---------------------------------------------------------------------
   Link appearance
   - Default: no underline
   - Hover/Focus: underline
   --------------------------------------------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");


body a,
body a:visited {
  text-decoration: none !important;
}

body a:hover,
body a:focus {
  text-decoration: underline !important;
}


/* ---------------------------------------------------------------------
   Typography
   --------------------------------------------------------------------- */
/* body, h1, h2, h3, h4, h5, h6 {
  font-family:
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI Variable",
    "Segoe UI",
    Roboto,
    Helvetica,
    Arial,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji",
    "Segoe UI Symbol";
} */
body,
h1, h2, h3, h4, h5, h6,
button,
input,
select,
textarea {
  font-family: "Inter", sans-serif !important;
}

/* =====================================================================
   HEADER (DESKTOP) — LAYOUT & SPACING
   ===================================================================== */

/* ---------------------------------------------------------------------
   Left brand block spacing
   --------------------------------------------------------------------- */
.branding-curved {
  margin-right: clamp(12px, 2vw, 32px) !important;
  margin-left: clamp(12px, 2vw, 32px) !important;
}

/* ---------------------------------------------------------------------
   Right button group spacing / alignment
   --------------------------------------------------------------------- */
.ime-right-bleed {
  margin-left: clamp(24px, 2vw, 40px) !important;
  margin-right: 0 !important;
  margin-left: auto !important;
}

/* ---------------------------------------------------------------------
   Header row container layout
   --------------------------------------------------------------------- */
.nav-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0 !important;
}

.nav-header .uagb-container-inner-blocks-wrap {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  width: 100% !important;
  max-width: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

/* ---------------------------------------------------------------------
   Main navigation list (desktop): single row, controlled horizontal spacing
   --------------------------------------------------------------------- */
.nav-header .wp-block-navigation__container {
  display: flex !important;
  flex-wrap: nowrap !important; /* prevent wrapping */
  gap: clamp(0.8rem, 1.5vw, 1.5rem) !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

.nav-header .wp-block-navigation__container > li,
.nav-header .wp-block-navigation__container a {
  white-space: nowrap !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin: 0 !important;
  line-height: inherit !important;
}

/* Submenu chevron spacing next to label */
.nav-header .wp-block-navigation__submenu-icon {
  margin-left: 0.3em !important;
}

/* Neutralize theme-level block gap side effects in navigation */
.nav-header .wp-block-navigation {
  --wp--style--block-gap: 0 !important;
}

/* =====================================================================
   DESKTOP DROPDOWN (SUBMENU) — APPEARANCE & STACKING
   ===================================================================== */

/* ---------------------------------------------------------------------
   Base submenu container styling
   NOTE: Kept as-is; later rules further override z-index/position.
   --------------------------------------------------------------------- */
.nav-header .wp-block-navigation__submenu-container {
  font-size: 0.05em !important;
  line-height: 1.5 !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}

/* Submenu links */
.nav-header .wp-block-navigation__submenu-container a {
  display: block !important;
  padding: 0.5rem 1rem !important;
  white-space: nowrap !important;
  font-weight: 500 !important;
}

/* Submenu hover state */
.nav-header .wp-block-navigation__submenu-container a:hover {
  background-color: rgba(0, 0, 0, 0.05) !important;
  color: #00549F !important;
}

/* Ensure submenu is above nearby header elements */
.nav-header .wp-block-navigation__submenu-container {
  z-index: 2000 !important;
}

/* Desktop hamburger open button appearance (when visible by breakpoint rules) */
.wp-block-navigation__responsive-container-open {
  margin-left: auto !important;
  align-self: center !important;
  background: #00549F !important;
  color: #ffffff !important;
  fill: #ffffff !important;
  stroke-width: 1px !important;
  stroke: #ffffff !important;
  flex-shrink: 0 !important;
}

/* ---------------------------------------------------------------------
   Submenu stacking / overlap fixes (kept later to preserve override order)
   --------------------------------------------------------------------- */
.nav-header .wp-block-navigation__submenu-container {
  font-size: 0.05em !important;
  line-height: 1.5 !important;
  padding-top: 0.25rem !important;
  padding-bottom: 0.25rem !important;
  border-radius: 4px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;

  z-index: 10000 !important; /* raised for overlap safety */
}

/* Establish stacking context for the right-side button group */
.ime-right-bleed {
  z-index: 9999 !important;
  position: relative;
}

/* Ensure navigation items can be positioning anchors */
.nav-header .wp-block-navigation__container > .wp-block-navigation-item {
  position: relative;
}

/* =====================================================================
   MOBILE NAV (HAMBURGER) — INTERACTION / SUBMENU TOGGLE BEHAVIOR
   ===================================================================== */

/* Always show submenu toggle icon elements (desktop + mobile) */
.wp-block-navigation__submenu-icon,
.wp-block-navigation-submenu__toggle {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* =====================================================================
   MOBILE SOCIAL ICONS IN NAV LIST (OVERLAY ONLY)
   ===================================================================== */

/* Hide icon items on desktop */
@media (min-width: 768px) {
  .nav-icon-research,
  .nav-icon-wiki,
  .nav-icon-linkedin,
  .nav-icon-ins {
    display: none !important;
  }
}

/* =====================================================================
   FOOTER — OVAL LOGO + LAYOUT
   ===================================================================== */

.ime-footer {
  position: relative;
  overflow: visible;
  padding-right: clamp(120px, 18vw, 260px);
}

.ime-footer .footer-logo {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;

  aspect-ratio: 3 / 2;
  width: clamp(150px, 35vw, 210px);
  padding: clamp(10px, 1.3vw, 16px) clamp(18px, 2.2vw, 26px);

  border-top-left-radius: 999px;
  border-bottom-left-radius: 999px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.ime-footer .footer-logo img {
  max-width: 90% !important;
  max-height: 45% !important;
  height: auto;
  width: auto;
  display: block;
  object-fit: contain;
}

.ime-footer .footer-social {
  margin-right: clamp(180px, 24vw, 420px);
  padding-right: clamp(12px, 2vw, 24px);
}

.ime-footer .social-column {
  margin-right: clamp(180px, 24vw, 420px);
  padding-right: clamp(12px, 2vw, 24px);
}

/* Center imprint block across all breakpoints (with mobile override below) */
.imprint {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  flex-wrap: nowrap !important;
  white-space: nowrap !important;
}

/* =====================================================================
   HEADER COVER — LOGO CAPSULE + S-SHAPE TRANSITION
   ===================================================================== */

.wp-block-cover.header-cover {
  position: relative !important;
  overflow: hidden !important;

  --logo-w: clamp(220px, 19vw, 360px);
  --cap-extra: clamp(60px, 6vw, 120px);
  --cap-pad-x: clamp(10px, 1.2vw, 18px);
  --cap-pad-y: clamp(8px, 1.1vw, 16px);

  --cap-w: calc(var(--logo-w) + var(--cap-extra));
  --cap-h: clamp(100px, 15vw, 200px);
  --radius: clamp(50px, 9vw, 200px);
  --bar-h: clamp(22px, 3vw, 42px);
  --gap-b: 0px;

  --cap-bg: rgba(192, 192, 192, 0.58);
  --bar-bg: rgba(192, 192, 192, 0.40);
  --corner-bg: var(--cap-bg);
}

.wp-block-cover.header-cover > .wp-block-cover__inner-container {
  position: static !important;
}

.wp-block-cover.header-cover .header-logo {
  position: absolute !important;
  right: 5px !important;
  bottom: 5px !important;
  width: var(--logo-w) !important;
  padding: var(--cap-pad-y) var(--cap-pad-x) !important;
  z-index: 5 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  box-sizing: content-box !important;
  overflow: visible !important;
}

/* NOTE: Selector preserved exactly (even if it appears unusual) */
p-block-cover.header-cover .header-logo  {
  position: absolute;
  z-index: 98;
  bottom: 0;
  right: 0;
  height: 100px;
  display: flex !important;
  align-items: center;
  justify-content: flex-end;
}

.header-logo img {
  display: block !important;
  max-width: 100% !important;
  height: auto !important;
}

/* Shared variables for bar + corner cut */
.wp-block-cover.header-cover {
  --bar-h: clamp(22px, 3vw, 42px);
  --corner-d: clamp(42px, 6vw, 105px);
  --bg-color: rgba(200, 200, 200, 0.60);
}

/* Corner cut block above bottom bar */
.wp-block-cover.header-cover::before {
  content: "";
  position: absolute;
  width: var(--corner-d);
  height: var(--corner-d);
  right: calc(var(--logo-w) + (2 * var(--cap-pad-x)) + 5px);
  bottom: var(--bar-h);
  background: radial-gradient(
    circle at 0 0,
    transparent 0 calc(76% - 0.5px),
    var(--bg-color) calc(50% + 0.5px)
  );
  pointer-events: none;
  z-index: 4;
}

/* Bottom bar ending at the left edge of the logo capsule */
.wp-block-cover.header-cover::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  right: calc(var(--logo-w) + (2 * var(--cap-pad-x)) + 5px);
  height: var(--bar-h);
  background: var(--bg-color);
  pointer-events: none;
  z-index: 3;
}

/* Logo capsule backing */
.wp-block-cover.header-cover .header-logo::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  top: 0;
  width: 110%;
  height: 110%;
  background: var(--bg-color);
  pointer-events: none;
  box-sizing: border-box;
  border-top-left-radius: 25%;
}

.header-st {
  position: absolute;
  z-index: 100;
  width: 100%;
}

/* =====================================================================
   MAIN CONTENT — FLUID RESPONSIVE SYSTEM (EXCLUDING HEADER COVER)
   ===================================================================== */

@media (max-width: 1200px) {
  html {
    font-size: clamp(14px, 2vw, 16px);
  }

  .main-content,
  .entry-content,
  .wp-block-post-content {
    width: 100% !important;
    max-width: min(95%, 1200px) !important;
    padding: 0 clamp(10px, 2vw, 20px) !important;
    margin: 0 auto !important;
    box-sizing: border-box !important;
  }

  body {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  .wp-site-blocks {
    width: 100% !important;
    overflow-x: hidden !important;
  }

  .uag-hide-mob,
  .uag-hide-tab {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
}

@media (min-width: 1600px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    max-width: 1400px !important;
  }
}

@media (min-width: 1200px) and (max-width: 1599px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    max-width: 1200px !important;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    padding: 0 clamp(15px, 3vw, 25px) !important;
  }
}

@media (min-width: 600px) and (max-width: 767px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    padding: 0 clamp(12px, 2.5vw, 20px) !important;
  }
}

@media (min-width: 480px) and (max-width: 599px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    padding: 0 clamp(10px, 2vw, 16px) !important;
  }
}

@media (min-width: 360px) and (max-width: 479px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    padding: 0 8px !important;
  }
}

@media (max-width: 359px) {
  .main-content,
  .entry-content,
  .wp-block-post-content {
    padding: 0 6px !important;
  }
}

/* Smooth transition for fluid layout changes */
.main-content,
.entry-content,
.wp-block-post-content {
  transition: all 0.3s ease-in-out;
}

/* =====================================================================
   HEADER COVER IMAGE — RESPONSIVE
   ===================================================================== */

.wp-block-cover.header-cover .wp-block-cover__background,
.wp-block-cover.header-cover .wp-block-cover__image-background {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
}

.wp-block-cover.header-cover.has-background-dim {
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}

/* =====================================================================
   NAV — RIGHT-SIDE BUTTON GROUP (NON-COLLAPSING)
   ===================================================================== */

.navigation,
.ime-right-bleed {
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}

/* Disable Spectra/UAGB auto-hide on tablet/mobile for this block */
.ime-right-bleed.uag-hide-tab,
.ime-right-bleed.uag-hide-mob {
  display: flex !important;
}

/* =====================================================================
   MOBILE NAV — EXTRA BUTTON GROUP INSIDE OVERLAY
   ===================================================================== */

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

/* =====================================================================
   HEADER NAV STRIP + S-TRANSITION BELOW HEADER NAV
   ===================================================================== */

.nav-header,
.nav-header .wp-block-navigation,
.nav-header .wp-block-navigation__responsive-container,
.nav-header .wp-block-navigation__responsive-container-content {
  background: transparent !important;
  background-color: transparent !important;
}

.nav-header {
  position: relative;
  overflow: visible;
  isolation: isolate;
  align-items: stretch !important;

  --brand-gap: clamp(12px, 2vw, 32px);
  --nav-strip-h: clamp(18px, 2.6vw, 30px);
  --plate-bg: rgba(235, 235, 235, 0.8);
  --nav-strip-bg: rgba(235, 235, 235, 0.8);

  --corner-d: clamp(42px, 6vw, 105px);
  --plate-extend-bottom: clamp(20px, 3.6vw, 64px);
  --cut-r: calc(var(--plate-extend-bottom) / 2);
}

.branding-curved {
  position: relative;
  --plate-right-x: 100%;
}

.branding-curved::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: calc(-1 * var(--plate-extend-bottom));
  left: calc(-1 * var(--brand-gap));
  width: calc(100% + var(--brand-gap));
  background: var(--plate-bg);
  pointer-events: none;
  z-index: -1;
  border-top-right-radius: 0;
  --plate-right-x: 100%;
  border-bottom-right-radius: var(--cut-r);
}

.branding-curved::after {
  content: "";
  position: absolute;

  left: var(--plate-right-x);
  right: calc(-1 * var(--brand-gap));
  top: 0;
  bottom: calc(-1 * (var(--plate-extend-bottom) * 0.6));
  background-color: var(--nav-strip-bg);

  --blue-cut-r: calc(var(--plate-extend-bottom) * 0.6);
  -webkit-mask-image: radial-gradient(
    circle at 100% 100%,
    transparent 0 var(--blue-cut-r),
    #000 var(--blue-cut-r)
  );
  mask-image: radial-gradient(
    circle at 100% 100%,
    transparent 0 var(--blue-cut-r),
    #000 var(--blue-cut-r)
  );

  background-repeat: no-repeat;
  pointer-events: none;
  z-index: 2;
}

.navigation {
  position: relative;
  z-index: 0;
  align-self: stretch !important;
  display: flex !important;
  align-items: center !important;
}

.navigation::before {
  content: "";
  position: absolute;
  left: 0;
  right: calc(-1 * (100vw - 100%));
  top: 0;
  bottom: 0;
  background: rgba(235, 235, 235, 0.8);
  pointer-events: none;
  z-index: -1;
}


/* =====================================================================
   MEDIA QUERIES
   ===================================================================== */

/* ---------------------------------------------------------------------
   >= 769px: Desktop navigation visible; hamburger controls hidden
   --------------------------------------------------------------------- */
@media (min-width: 769px) {
  .nav-header nav.wp-block-navigation > .wp-block-navigation__container {
    display: flex !important;
  }

  .nav-header .ime-right-bleed {
    display: flex !important;
  }

  .nav-header .wp-block-navigation__responsive-container-open,
  .nav-header .wp-block-navigation__responsive-container-close {
    display: none !important;
  }

  /* Desktop submenu positioning adjustments */
  .nav-header .wp-block-navigation__container {
    position: relative;
  }

  .nav-header .wp-block-navigation__submenu-container {
    position: absolute !important;
    top: 100% !important;
    left: auto !important;
    right: auto !important;
    min-width: 180px !important;
    max-width: 300px !important;
    white-space: nowrap !important;
  }

  .nav-header .wp-block-navigation__container > .wp-block-navigation-item:last-child
    .wp-block-navigation__submenu-container,
  .nav-header .wp-block-navigation__container > .wp-block-navigation-item:nth-last-child(2)
    .wp-block-navigation__submenu-container {
    left: auto !important;
    right: 0 !important;
  }
}

/* ---------------------------------------------------------------------
   <= 768px: Hide desktop nav + right button group; show hamburger open
   --------------------------------------------------------------------- */
@media (max-width: 768px) {
  .nav-header nav.wp-block-navigation > .wp-block-navigation__container {
    display: none !important;
  }

  .nav-header .ime-right-bleed {
    display: none !important;
  }

  .nav-header .wp-block-navigation__responsive-container-open {
    display: inline-flex !important;
    align-self: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
    display: flex !important;
  }

  /* Overlay container alignment when open */
  .wp-block-navigation__responsive-container.is-menu-open {
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }

  /* Keep label + toggle on the same line for items with children */
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item.has-child > .wp-block-navigation-item__content {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item.has-child {
    position: relative !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item.has-child .wp-block-navigation-submenu__toggle {
    display: inline-flex !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
    cursor: pointer;
  }

  /* Submenu toggle indicator (collapsed) */
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item.has-child .wp-block-navigation-submenu__toggle::after {
    content: "▼";
    font-size: 0.75em;
    line-height: 1;
    display: inline-block;
    transform: translateY(1px);
  }

  /* Submenu toggle indicator (expanded) */
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item.has-child
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]::after {
    content: "▲";
  }

  /* Submenu visibility (collapsed) */
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-submenu__toggle[aria-expanded="false"]
    + .wp-block-navigation__submenu-container {
    display: none !important;
  }

  /* Submenu visibility (expanded) + overlay positioning */
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    + .wp-block-navigation__submenu-container {
    display: block !important;
    background: #ffffff !important;

    position: absolute !important;
    top: calc(100% + 0.75rem) !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    right: auto !important;
    z-index: 50 !important;

    width: auto !important;
    max-width: calc(100vw - var(--ime-blue-strip) - 32px) !important;
    padding: 1rem 1.8rem !important;
    margin: 0 !important;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
  }

  /* Overlay typography scale */
  .wp-block-navigation__responsive-container.is-menu-open,
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    font-size: 16px !important;
    line-height: 1.6 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open a,
  .wp-block-navigation__responsive-container.is-menu-open button {
    font-size: 16px !important;
  }
}

/* ---------------------------------------------------------------------
   <= 700px: Imprint stack vertically
   --------------------------------------------------------------------- */
@media (max-width: 700px) {
  .imprint {
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 0.75rem !important;
    align-items: center !important;
  }

  .imprint > * {
    white-space: normal !important;
    text-align: center !important;
  }
}

/* ---------------------------------------------------------------------
   <= 768px: General content typography + media + tables + form elements
   (Excluding header cover)
   --------------------------------------------------------------------- */
@media (max-width: 768px) {
  body {
    font-size: 14px;
    line-height: 1.5;
  }

  h1 {
    font-size: clamp(1.5rem, 5vw, 2rem) !important;
  }

  h2 {
    font-size: clamp(1.3rem, 4vw, 1.7rem) !important;
  }

  h3 {
    font-size: clamp(1.1rem, 3.5vw, 1.4rem) !important;
  }

  p, li, div {
    font-size: inherit;
    line-height: 1.5;
  }

  img, video, iframe {
    max-width: 100% !important;
    height: auto !important;
  }

  .wp-block-image,
  .wp-block-gallery {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  table:not(.ime-p-table):not(.ime-pager-table) {
    font-size: 14px;
    display: block;
    overflow-x: hidden;
    white-space: nowrap;
  }

  table:not(.ime-p-table):not(.ime-pager-table) th,
  table:not(.ime-p-table):not(.ime-pager-table) td {
    padding: 8px 6px;
  }

  input, textarea, select {
    font-size: 16px !important;
    max-width: 100% !important;
  }

  .wp-block-search,
  .wp-block-form {
    width: 100% !important;
  }
}

/* ---------------------------------------------------------------------
   <= 1200px: Footer responsive spacing
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .ime-footer {
    padding-right: clamp(140px, 40vw, 220px);
  }

  .ime-footer .footer-logo {
    width: clamp(140px, 40vw, 220px);
    min-height: 80px;
  }

  .ime-footer .footer-social,
  .ime-footer .social-column {
    margin-right: clamp(140px, 40vw, 220px);
    padding-right: clamp(8px, 2vw, 16px);
  }
}

@media (max-width: 768px) {
  .footer_address,
  .footer_mid,
  .footer_social {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
    margin-bottom: 0.75rem !important;
  }

  .ime-footer .wp-block-columns,
  .ime-footer .uagb-columns__wrap {
    flex-wrap: wrap !important;
  }
}

/* ---------------------------------------------------------------------
   <= 1200px: Header cover background image adjustments
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .wp-block-cover.header-cover {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }

  .wp-block-cover.header-cover img.wp-block-cover__image-background {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
  }
}

@media (max-width: 768px) {
  .wp-block-cover.header-cover {
    background-attachment: scroll !important;
  }

  .wp-block-cover.header-cover img.wp-block-cover__image-background {
    object-position: center top !important;
  }

  .wp-block-cover.header-cover.has-background-dim {
    background-attachment: scroll !important;
    background-position: center top !important;
  }
}

@media (max-width: 480px) {
  .wp-block-cover.header-cover {
    background-size: cover !important;
    background-position: center top !important;
  }

  .wp-block-cover.header-cover img.wp-block-cover__image-background {
    min-height: 100% !important;
    min-width: 100% !important;
  }
}

/* ---------------------------------------------------------------------
   <= 1200px: Mobile overlay background (top white bar + lower gray/blue)
   NOTE: Multiple blocks preserved in the same relative order.
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    background: #ffffff !important;
    --ime-blue-strip: min(32vw, 120px);
    z-index: 9999 !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 96px;
    bottom: -40vh;
    background: linear-gradient(
      to right,
      #ececec 0 calc(100% - var(--ime-blue-strip)),
      #00549f calc(100% - var(--ime-blue-strip)) 100%
    );
    pointer-events: none;
    z-index: 0;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    position: relative;
    z-index: 1;
    background: transparent !important;
    width: 100%;
    min-height: calc(100vh - 96px);
    padding-top: 96px;
    box-sizing: border-box;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;

    padding-left: 0;
    padding-right: var(--ime-blue-strip);
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    align-items: center;
    gap: 0.9rem;
    padding: 0;
    box-sizing: border-box;

    max-width: min(340px, calc(100vw - var(--ime-blue-strip) - 48px));
    margin: 0 auto;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__submenu-container {
    background: #ffffff !important;
    position: relative !important;
    width: 100%;
    max-width: 100%;
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    padding: 0.75rem 1.25rem;
    border-radius: 14px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
    box-sizing: border-box;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-submenu__toggle[aria-expanded="false"]
    + .wp-block-navigation__submenu-container {
    display: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-submenu__toggle[aria-expanded="true"]
    + .wp-block-navigation__submenu-container {
    display: block !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  .wp-block-navigation__responsive-container.is-menu-open
    button.wp-block-navigation__responsive-container-close {
    position: fixed !important;
    top: 16px;
    right: 16px;
    z-index: 11000;
    background: #00549F !important;
    color: #ffffff !important;
    fill: #ffffff !important;
    stroke: #ffffff !important;
    stroke-width: 1.5px !important;
  }
}

/* ---------------------------------------------------------------------
   <= 1200px: Overlay top white bar lock + corrected lower background
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .wp-block-navigation__responsive-container.is-menu-open {
    background: #ffffff !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    --ime-blue-strip: min(32vw, 120px);
  }

  .wp-block-navigation__responsive-container.is-menu-open::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 96px !important;
    bottom: 0 !important;

    background: linear-gradient(
      to right,
      #ececec 0 calc(100% - var(--ime-blue-strip)),
      #00549f calc(100% - var(--ime-blue-strip)) 100%
    ) !important;

    z-index: 0 !important;
    pointer-events: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open::after {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 96px !important;

    background: #ffffff !important;

    z-index: 1 !important;
    pointer-events: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    position: relative !important;
    z-index: 2 !important;

    background: transparent !important;
    width: 100% !important;
    min-height: calc(100vh - 96px) !important;
    padding-top: 96px !important;
    padding-right: var(--ime-blue-strip) !important;

    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  .wp-block-navigation__responsive-container.is-menu-open
    button.wp-block-navigation__responsive-container-close {
    z-index: 3 !important;
  }
}

/* ---------------------------------------------------------------------
   <= 1200px: Overlay right-side fixed social icons on blue strip
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .wp-block-navigation__responsive-container.is-menu-open {
    animation: ime-mobile-menu-fade 0.25s ease-out;
  }

  @keyframes ime-mobile-menu-fade {
    from {
      opacity: 0;
      transform: translateY(-6px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .nav-icon-research,
  .nav-icon-wiki,
  .nav-icon-linkedin,
  .nav-icon-ins {
    display: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-research,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-wiki,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-linkedin,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-ins {
    display: block !important;
    position: fixed;
    right: calc((var(--ime-blue-strip) - 46px) / 2);
    z-index: 10001;
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-research {
    top: 50%;
    transform: translateY(-96px);
  }
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-wiki {
    top: 50%;
    transform: translateY(-32px);
  }
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-linkedin {
    top: 50%;
    transform: translateY(32px);
  }
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-ins {
    top: 50%;
    transform: translateY(96px);
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-research > a,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-wiki > a,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-linkedin > a,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-ins > a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px;
    height: 46px;
    background: #00549f;
    border-radius: 50%;
    margin: 0;
    padding: 0 !important;
    font-size: 0 !important;
    color: #ffffff !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-research > a::before,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-wiki > a::before,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-linkedin > a::before,
  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-ins > a::before {
    content: "";
    display: inline-block;
    width: 24px;
    height: 24px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-research > a::before {
    background-image: url("https://upload.wikimedia.org/wikipedia/commons/5/5e/ResearchGate_icon_SVG.svg");
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-wiki > a::before {
    background-image: url("https://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png");
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-linkedin > a::before {
    background-image: url("https://upload.wikimedia.org/wikipedia/commons/c/ca/LinkedIn_logo_initials.png");
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-icon-ins > a::before {
    background-image: url("https://upload.wikimedia.org/wikipedia/commons/e/e7/Instagram_logo_2016.svg");
  }
}

/* ---------------------------------------------------------------------
   Overlay / header visibility adjustments when modal is open
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  html.has-modal-open .nav-header,
  body.has-modal-open .nav-header {
    /* Intentionally not setting display to preserve overlay behavior */
  }
  html.has-modal-open .nav-header .branding-curved,
  body.has-modal-open .nav-header .branding-curved,
  html.has-modal-open .nav-header .ime-right-bleed,
  body.has-modal-open .nav-header .ime-right-bleed {
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html.has-modal-open .branding-curved::before,
  body.has-modal-open .branding-curved::before,
  html.has-modal-open .branding-curved::after,
  body.has-modal-open .branding-curved::after,
  html.has-modal-open .navigation::before,
  body.has-modal-open .navigation::before {
    content: none !important;
  }

  html.has-modal-open .nav-header nav.wp-block-navigation > .wp-block-navigation__container,
  body.has-modal-open .nav-header nav.wp-block-navigation > .wp-block-navigation__container {
    display: none !important;
  }

  html.has-modal-open .wp-block-navigation__responsive-container.is-menu-open,
  body.has-modal-open .wp-block-navigation__responsive-container.is-menu-open {
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  body.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-close,
  html.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    button.wp-block-navigation__responsive-container-close,
  body.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    button.wp-block-navigation__responsive-container-close {
    visibility: visible !important;
    pointer-events: auto !important;
    display: inline-flex !important;
  }
}

/* ---------------------------------------------------------------------
   Overlay stacking fix (stacking context / isolation adjustments)
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  html.has-modal-open .nav-header,
  body.has-modal-open .nav-header {
    isolation: auto !important;
    position: relative !important;
    z-index: 2147483647 !important;
  }

  html.has-modal-open .wp-block-navigation__responsive-container.is-menu-open,
  body.has-modal-open .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    z-index: 2147483647 !important;
    overflow: hidden !important;
  }

  html.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content,
  body.has-modal-open .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    max-height: 100vh !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  html.has-modal-open,
  body.has-modal-open {
    overflow: hidden !important;
    height: 100% !important;
  }
}

/* ---------------------------------------------------------------------
   Mobile overlay extra button group display
   --------------------------------------------------------------------- */
@media (max-width: 1200px) {
  .wp-block-navigation__responsive-container.is-menu-open .nav-mobile-buttons {
    display: flex !important;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 1.5rem;
    align-items: flex-start;
  }

  .wp-block-navigation__responsive-container.is-menu-open .nav-mobile-buttons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    text-decoration: none;
  }
}
