/*
 * Menu System 45.3
 * Canonical one-row desktop header, persistent alignment and restored topbar.
 */
:root{
  --esi-menu-justify:center;
  --esi-topbar-justify:flex-end;
  --esi-topbar-gap:16px;
  --esi-topbar-font-size:13px;
  --esi-topbar-font-weight:400;
  --esi-topbar-min-height:38px;
  --esi-header-min-height:80px;
}

/* Independent institutional topbar. */
.esi-site-topbar{
  position:relative;
  z-index:1002;
  width:100%;
  color:var(--esi-color-topbar-text,var(--esi-on-primary-dark,#fff));
  background:var(--esi-color-topbar-background,var(--esi-primary-dark,#123d30));
  border-bottom:1px solid color-mix(in srgb,currentColor 15%,transparent);
}
.esi-site-topbar-inner{
  display:grid;
  grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:clamp(10px,1.6vw,var(--esi-topbar-gap));
  min-height:var(--esi-topbar-min-height);
}
.esi-topbar-information,.esi-topbar-tools{
  display:flex;
  align-items:center;
  min-width:0;
  gap:clamp(8px,1vw,var(--esi-topbar-gap));
}
.esi-topbar-information{justify-content:flex-start}
.esi-topbar-tools{justify-content:flex-end}
.esi-topbar-message,.esi-topbar-phone,.esi-topbar-extra{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:var(--esi-topbar-min-height);
  color:inherit;
  font-size:var(--esi-topbar-font-size);
  font-weight:var(--esi-topbar-font-weight);
  line-height:1.25;
  text-decoration:none;
  white-space:nowrap;
}
.esi-topbar-extra{
  flex:0 0 auto;
  max-width:min(24ch,24vw);
  padding-inline:clamp(6px,.65vw,10px);
  border-inline-start:1px solid color-mix(in srgb,currentColor 24%,transparent);
  overflow:hidden;
  text-overflow:ellipsis;
}
.esi-topbar-extra span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.esi-topbar-extra[href]{text-decoration:none}
.esi-topbar-navigation{
  display:flex;
  align-items:center;
  justify-content:var(--esi-topbar-justify);
  width:100%;
  min-width:0;
}
.esi-topbar-navigation-empty{min-height:1px}
.esi-topbar-menu{
  display:flex;
  align-items:center;
  justify-content:inherit;
  flex-wrap:nowrap;
  gap:var(--esi-topbar-gap);
  width:auto;
  max-width:100%;
  margin:0;
  padding:0;
  list-style:none;
}
.esi-topbar-menu>li{position:relative;flex:0 0 auto;margin:0}
.esi-topbar-menu>li.menu-item-has-children{display:flex;align-items:center}
.esi-topbar-menu>li>a{
  display:flex;
  align-items:center;
  min-height:var(--esi-topbar-min-height);
  padding:4px 2px;
  color:inherit;
  font-size:var(--esi-topbar-font-size);
  font-weight:var(--esi-topbar-font-weight);
  line-height:1.25;
  text-decoration:none;
  white-space:nowrap;
}
.esi-topbar-menu>li>a:hover,.esi-topbar-menu>li>a:focus-visible,.esi-topbar-phone:hover,.esi-topbar-phone:focus-visible,.esi-topbar-extra[href]:hover,.esi-topbar-extra[href]:focus-visible{
  color:var(--esi-color-topbar-hover-text,#fff);
  background:var(--esi-color-topbar-hover-background,var(--esi-primary));
  outline:2px solid currentColor;
  outline-offset:2px;
}
.esi-topbar-menu>.current-menu-item>a,.esi-topbar-menu>.current-menu-ancestor>a{
  color:var(--esi-color-topbar-active-text,#fff);
  background:var(--esi-color-topbar-active-background,var(--esi-primary));
  font-weight:var(--esi-topbar-font-weight);
}
.esi-topbar-menu .sub-menu{
  display:none;
  position:absolute;
  inset:100% 0 auto auto;
  z-index:1010;
  min-width:220px;
  max-width:min(22rem,calc(100vw - 32px));
  margin:0;
  padding:8px;
  list-style:none;
  color:var(--esi-color-menu-dropdown-text,var(--esi-text));
  background:var(--esi-color-menu-dropdown-background,var(--esi-surface));
  border:1px solid var(--esi-color-border,rgba(0,0,0,.14));
  border-radius:12px;
  box-shadow:0 16px 36px rgba(0,0,0,.16);
}
.esi-topbar-menu li:hover>.sub-menu,.esi-topbar-menu li:focus-within>.sub-menu,.esi-topbar-menu li.is-submenu-open>.sub-menu{display:grid}
.esi-topbar-menu .sub-menu a{display:block;padding:10px 12px;color:inherit;font-size:.95em;font-weight:400;text-decoration:none;white-space:normal}
.esi-topbar-menu .sub-menu a:hover,.esi-topbar-menu .sub-menu a:focus-visible{background:var(--esi-color-menu-hover-background,var(--esi-primary-light))}
.esi-topbar-navigation .esi-submenu-toggle{width:30px;height:30px;border:0;background:transparent;color:inherit}
.esi-topbar-tools .esi-social-links{display:flex;align-items:center;gap:6px;margin:0}
.esi-topbar-tools .esi-social-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid color-mix(in srgb,currentColor 28%,transparent);
  border-radius:999px;
  color:inherit;
  text-decoration:none;
}
.esi-topbar-search-toggle,.esi-visual-topbar .esi-topbar-builder-search-trigger{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 34px;
  width:34px;
  min-width:34px;
  height:34px;
  min-height:34px;
  padding:0;
  border:1px solid color-mix(in srgb,currentColor 28%,transparent);
  border-radius:999px;
  color:inherit;
  background:transparent;
  font-size:0;
  line-height:1;
  cursor:pointer;
}
.esi-topbar-search-toggle .esi-search-icon,.esi-visual-topbar .esi-topbar-builder-search-trigger .esi-search-icon{
  width:18px;
  height:18px;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
.esi-topbar-search-toggle:hover,.esi-topbar-search-toggle:focus-visible,
.esi-visual-topbar .esi-topbar-builder-search-trigger:hover,.esi-visual-topbar .esi-topbar-builder-search-trigger:focus-visible{
  background:color-mix(in srgb,currentColor 12%,transparent);
}

/* Canonical main header: logo | primary menu | portal action. */
.esi-site-header{min-height:var(--esi-header-min-height)}
.esi-header-row{min-height:var(--esi-header-min-height)}
.esi-canonical-header-row,.esi-visual-header>.esi-shell>.esi-builder-grid-header{
  width:100%;
  min-width:0;
}
.esi-canonical-header-brand,.esi-header-brand{
  display:flex;
  align-items:center;
  min-width:0;
  max-width:min(var(--esi-logo-max,220px),22vw);
}
.esi-canonical-header-brand img,.esi-header-brand img{display:block;max-width:100%;height:auto}
.esi-navigation-source{min-width:0}
.esi-navigation-source-mobile{display:none}
.esi-primary-navigation{
  display:flex;
  align-items:center;
  justify-content:var(--esi-menu-justify);
  min-width:0;
  max-width:100%;
  width:100%;
  flex:1 1 auto;
}
.esi-primary-navigation .esi-menu{max-width:100%;margin:0;padding:0;list-style:none}
.esi-primary-navigation .esi-menu>li.menu-item-has-children{display:flex;align-items:center;position:relative}
.esi-primary-navigation .esi-menu>li>.esi-submenu-toggle{flex:0 0 30px;width:30px;height:30px;margin-inline-start:-4px;border:0;background:transparent;color:inherit}
.esi-primary-navigation .esi-menu>li>a,.esi-primary-navigation .current-menu-item>a,.esi-primary-navigation .current-menu-ancestor>a{font-weight:var(--esi-menu-font-weight,400)}
.esi-canonical-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:max-content;
}
.esi-canonical-portal,.esi-header-portal,.esi-minimal-portal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:9px 16px;
  border-radius:var(--esi-button-radius,12px);
  background:var(--esi-color-button-background,var(--esi-primary));
  color:var(--esi-color-button-text,var(--esi-on-primary,#fff));
  font-weight:600;
  line-height:1.2;
  text-decoration:none;
  white-space:nowrap;
}
.esi-header-context-strip{border-top:1px solid var(--esi-color-border,rgba(0,0,0,.1));border-bottom:1px solid var(--esi-color-border,rgba(0,0,0,.1))}
.esi-header-context-strip>.esi-shell{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;overflow-x:auto;scrollbar-width:thin}
.esi-header-context-strip a{white-space:nowrap}

/* Persistent alignment on the public site. The class is refreshed live in the Customizer. */
#site-header.esi-menu-align-left{--esi-menu-justify:flex-start}
#site-header.esi-menu-align-center{--esi-menu-justify:center}
#site-header.esi-menu-align-right{--esi-menu-justify:flex-end}
#site-header .esi-navigation-source-desktop,#site-header .esi-menu-desktop{justify-content:var(--esi-menu-justify)}

@media (min-width:1181px){
  .esi-canonical-header-row{
    display:grid;
    grid-template-columns:minmax(88px,auto) minmax(0,1fr) auto;
    align-items:center;
    gap:clamp(12px,1.5vw,28px);
  }
  .esi-canonical-header-brand{grid-column:1;grid-row:1;justify-self:start}
  .esi-canonical-header-row>.esi-primary-navigation{grid-column:2;grid-row:1;justify-self:stretch}
  .esi-canonical-header-actions{grid-column:3;grid-row:1;justify-self:end}
  .esi-navigation-source-desktop{display:flex;width:100%;min-width:0;justify-content:var(--esi-menu-justify)}
  .esi-navigation-source-mobile{display:none}
  .esi-primary-navigation .esi-menu-desktop{
    display:flex;
    align-items:center;
    justify-content:var(--esi-menu-justify);
    flex-wrap:nowrap;
    gap:clamp(4px,.7vw,var(--esi-menu-gap,18px));
    width:auto;
    max-width:100%;
    min-width:0;
  }
  .esi-primary-navigation .esi-menu-desktop>li{flex:0 0 auto;min-width:0}
  .esi-primary-navigation .esi-menu-desktop>li>a{
    min-height:var(--esi-menu-height,52px);
    padding-inline:clamp(5px,.5vw,10px);
    font-size:clamp(12px,calc(.48vw + 7px),var(--esi-menu-font-size,15px));
    line-height:1.2;
    white-space:nowrap;
  }
  .esi-menu-toggle{display:none}
  .esi-primary-menu-hidden-desktop .esi-primary-navigation,.esi-primary-menu-hidden-desktop .esi-menu-toggle{display:none}
  .esi-topbar-hidden-desktop .esi-site-topbar,.esi-site-topbar.esi-hide-desktop{display:none}

  /* Builder headers are normalized to the same three-part desktop row. */
  .esi-visual-header>.esi-shell>.esi-builder-grid-header{
    display:grid;
    grid-template-columns:minmax(88px,auto) minmax(0,1fr) auto;
    align-items:center;
    gap:clamp(12px,1.5vw,28px);
  }
  .esi-visual-header .esi-builder-item-logo{display:flex;grid-column:1;grid-row:1;justify-self:start}
  .esi-visual-header .esi-builder-item-site_identity{display:none}
  .esi-visual-header .esi-builder-item-primary_menu{display:flex;grid-column:2;grid-row:1;justify-self:stretch;width:100%;min-width:0}
  .esi-visual-header .esi-builder-navigation-primary{display:flex;width:100%;justify-content:var(--esi-menu-justify);min-width:0}
  .esi-visual-header .esi-builder-navigation-primary>.esi-menu{display:flex;align-items:center;justify-content:var(--esi-menu-justify);flex-wrap:nowrap;width:auto;max-width:100%}
  .esi-visual-header .esi-builder-item-portal{display:flex;grid-column:3;grid-row:1;justify-self:end}
  .esi-visual-header .esi-builder-item-search,.esi-visual-header .esi-builder-item-social,.esi-visual-header .esi-builder-item-mobile_toggle{display:none}
}

@media (min-width:641px) and (max-width:1180px){
  .esi-topbar-hidden-tablet .esi-site-topbar,.esi-site-topbar.esi-hide-tablet{display:none}
  .esi-primary-menu-hidden-tablet .esi-primary-navigation,.esi-primary-menu-hidden-tablet .esi-menu-toggle{display:none}
}

@media (max-width:1180px){
  .esi-site-topbar-inner{grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding-block:4px}
  .esi-topbar-information{grid-column:1;flex-wrap:wrap}
  .esi-topbar-navigation{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow-x:auto}
  .esi-topbar-tools{grid-column:2;grid-row:1}
  .esi-topbar-menu{justify-content:flex-start;max-width:none}

  .esi-canonical-header-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
  }
  .esi-canonical-header-brand{grid-column:1;grid-row:1;justify-self:start;max-width:min(var(--esi-logo-max,220px),56vw)}
  .esi-canonical-header-actions{grid-column:2;grid-row:1;justify-self:end}
  .esi-canonical-portal{min-height:42px;padding-inline:12px;font-size:.92rem}
  .esi-menu-toggle{display:inline-flex}
  .esi-navigation-source-desktop{display:none}
  .esi-site-header.is-menu-open .esi-navigation-source-mobile{display:block;width:100%}
  .esi-site-header.is-menu-open .esi-menu-mobile{display:grid;width:100%;gap:.25rem}
  .esi-site-header.is-menu-open .esi-primary-navigation{justify-content:flex-start}
  .esi-primary-navigation{
    position:fixed;
    inset:0 0 0 auto;
    z-index:1200;
    width:min(var(--esi-mobile-panel,92vw),430px);
    height:100dvh;
    padding:96px 24px 34px;
    background:var(--esi-surface,#fff);
    overflow-y:auto;
    overflow-x:hidden;
    transform:translateX(105%);
    visibility:hidden;
    box-shadow:-18px 0 45px rgba(10,24,18,.2);
    transition:transform .24s ease,visibility .24s ease;
  }
  .esi-site-header.is-menu-open .esi-primary-navigation{transform:none;visibility:visible}
  .esi-site-header.is-menu-open .esi-menu-mobile>li{border-bottom:1px solid var(--esi-color-border,rgba(0,0,0,.14))}
  .esi-site-header.is-menu-open .esi-menu-mobile>li>a{min-height:50px;white-space:normal}
  .esi-site-header.is-menu-open .sub-menu{position:static;display:none;min-width:0;border:0;box-shadow:none}
  .esi-site-header.is-menu-open li.is-submenu-open>.sub-menu{display:grid}
  .esi-header-context-strip>.esi-shell{justify-content:flex-start;padding-inline:14px}

  .esi-visual-header>.esi-shell>.esi-builder-grid-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
  .esi-visual-header .esi-builder-item-logo{display:flex;grid-column:1;grid-row:1;justify-self:start}
  .esi-visual-header .esi-builder-item-portal{display:flex;grid-column:2;grid-row:1;justify-self:end}
  .esi-visual-header .esi-builder-item-mobile_toggle{display:flex;grid-column:2;grid-row:1;justify-self:end;margin-inline-start:10px}
  .esi-visual-header .esi-builder-item-primary_menu,.esi-visual-header .esi-builder-item-site_identity,.esi-visual-header .esi-builder-item-search,.esi-visual-header .esi-builder-item-social{display:none}
}

@media (max-width:640px){
  .esi-topbar-hidden-mobile .esi-site-topbar,.esi-site-topbar.esi-hide-mobile{display:none}
  .esi-primary-menu-hidden-mobile .esi-primary-navigation,.esi-primary-menu-hidden-mobile .esi-menu-toggle{display:none}
  .esi-site-topbar-inner{display:flex;flex-wrap:wrap;padding:5px 14px}
  .esi-topbar-information{width:100%;justify-content:center}
  .esi-topbar-message,.esi-topbar-phone,.esi-topbar-extra{min-height:34px;white-space:normal;text-align:center}
  .esi-topbar-navigation{order:3;width:100%;overflow-x:auto}
  .esi-topbar-menu{width:max-content;min-width:100%;justify-content:center;gap:4px max(10px,var(--esi-topbar-gap))}
  .esi-topbar-menu>li>a{min-height:40px;font-size:max(12px,var(--esi-topbar-font-size))}
  .esi-topbar-tools{width:100%;justify-content:center}
  .esi-canonical-portal{max-width:42vw;white-space:normal;text-align:center;font-size:.84rem}
}

/* If real labels still cannot fit, the accessible drawer is used instead of wrapping. */
.esi-site-header.esi-navigation-overflow .esi-menu-toggle{display:inline-flex}
.esi-site-header.esi-navigation-overflow .esi-canonical-header-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.esi-site-header.esi-navigation-overflow .esi-canonical-header-brand{grid-column:1;grid-row:1}
.esi-site-header.esi-navigation-overflow .esi-canonical-header-actions{grid-column:2;grid-row:1}
.esi-site-header.esi-navigation-overflow #esi-primary-navigation{display:none}
.esi-site-header.esi-navigation-overflow.is-menu-open #esi-primary-navigation{
  display:block;
  position:fixed;
  inset:0 0 0 auto;
  z-index:1200;
  width:min(var(--esi-mobile-panel,92vw),430px);
  height:100dvh;
  padding:96px 24px 34px;
  background:var(--esi-surface,#fff);
  overflow-y:auto;
  overflow-x:hidden;
  box-shadow:-18px 0 45px rgba(10,24,18,.2)
}
.esi-site-header.esi-navigation-overflow.is-menu-open .esi-navigation-source-desktop{display:none}
.esi-site-header.esi-navigation-overflow.is-menu-open .esi-navigation-source-mobile{display:block;width:100%}
.esi-site-header.esi-navigation-overflow.is-menu-open .esi-menu-mobile{display:grid;width:100%;gap:.25rem}

@media (prefers-reduced-motion:reduce){
  .esi-topbar-menu .sub-menu,.esi-primary-navigation{transition:none}
}
