/* Shared header and responsive rules, loaded after each page stylesheet. */
#header {
  height: 88px;
  min-height: 88px;
  overflow: visible;
}
#header > .u-group-1 {
  position: absolute;
  top: 0;
  left: 0;
  width: 252px;
  height: 112px;
  min-height: 0;
  margin: 0;
  z-index: 2;
}
#header .u-group-1 > .u-container-layout-1 {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 14px 20px;
}
#header .u-image-1 {
  width: 100%;
  max-width: 212px;
  height: auto;
  aspect-ratio: 1548 / 550;
  margin: 0;
}
#header .u-menu-1 { position: absolute; top: 24px; left: 50%; transform: translateX(-50%); width: max-content; margin: 0; text-align: center; }
#header > .u-btn-1 { position: absolute; top: 16px; right: 32px; margin: 0; padding: 0; }
#header > .u-btn-2 { position: absolute; top: 48px; right: 32px; margin: 0; padding: 0; }
@media (min-width: 940px) and (max-width: 1399px) {
  #header > .u-btn { display: none !important; }
  #header .u-menu-1 { text-align: center; }
  #header .u-nav-1 { font-size: 1.25rem; }
}
@media (max-width: 939px) {
  #header { height: 72px !important; min-height: 72px !important; max-height: 72px; }
  #header > .u-group-1 { width: 190px; height: 88px; }
  #header .u-group-1 > .u-container-layout-1 { padding: 12px 16px; }
  #header .u-menu-1 { position: absolute; top: calc(50% - 22px); right: 16px; left: auto; transform: none; width: 44px; height: 44px; margin: 0; }
  #header .u-hamburger-link { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; box-sizing: border-box; padding: 10px; }
  #header .u-sidenav { width: 100vw; }
  #header .u-sidenav-overflow { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; min-height: 100dvh; }
  #header .u-popupmenu-items { width: 100%; margin: 0; text-align: center; }
  #header .u-menu-close { position: absolute; top: 20px; right: 20px; margin: 0; }
  #header > .u-btn { display: none !important; }
}
@media (max-width: 767px) {
  .u-body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  .u-body section .u-sheet { width: calc(100% - 32px); }
  .u-body section .u-text { max-width: 100%; overflow-wrap: anywhere; }
  /* The home hero needs enough space below the overlapping logo. */
  body:not(.kgb-content-page) #block-3 .u-sheet-1 { min-height: 390px; }
  .kgb-content-page .u-section-1 .u-sheet-1 { min-height: 220px; padding: 112px 0 32px; }
  .kgb-content-page .u-section-1 .u-text-1 {
    width: auto;
    font-size: clamp(1.65rem, 6.5vw, 2.5rem);
    line-height: 1.25;
    margin: 0;
  }
  .kgb-content-page .u-section-2 .u-sheet-1 { min-height: 0; padding: 32px 0; }
  .kgb-content-page .u-section-2 .u-text {
    width: 100%;
    margin: 20px 0 0;
    font-size: 1rem;
    line-height: 1.65;
  }
  .kgb-content-page .u-section-2 .u-text:first-child { margin-top: 0; }
  .u-footer .u-sheet-1 { width: calc(100% - 32px); min-height: 0; padding: 24px 0; }
  .u-footer .u-text-1 { width: auto; font-size: .6875rem; margin: 0; }
  .u-footer .u-text-2 { width: auto; font-size: .75rem; margin: 12px 0 0; }
  .u-back-to-top { width: 44px !important; height: 44px !important; padding: 10px !important; right: 12px !important; bottom: max(12px, env(safe-area-inset-bottom)) !important; }
}

/* Keep mobile service links consistent with the main menu. */
@media (max-width: 939px) {
  #header .u-nav-container-collapse .u-popupmenu-items,
  #header .u-nav-container-collapse .u-nav-popup .u-nav,
  #header .u-nav-container-collapse .u-nav-link {
    font-family: "Open Sans", sans-serif;
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.4;
  }
  #header .u-nav-container-collapse .u-nav-popup {
    padding-left: 0;
    text-align: center;
  }
  #header .u-nav-container-collapse .u-nav-item {
    display: block;
    width: 100%;
    text-align: center;
  }
  #header .u-nav-container-collapse .u-nav-link {
    position: relative;
    display: block;
    width: 100%;
    padding: 8px 30px;
    text-align: center;
  }
  #header .u-nav-container-collapse .u-nav-link:first-child:nth-last-child(2)::after {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
  }
}

/* Center the copyright independently of generated default text widths. */
#footer .u-text-2 {
  width: 100%;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
