/* Shared header, based on the current top page. */
body .site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  max-width: none;
  height: 104px;
  margin: 0;
  padding: 0 4%;
  gap: 24px;
  border: 0;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
  backdrop-filter: none;
  font: 400 15px/1.5 "Zen Kaku Gothic New", sans-serif;
  color: #17345f;
}
body .site-header .brand {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0;
  text-decoration: none;
  transform: none;
}
body .site-header .brand-name {
  max-width: none;
  font: 500 20px/1.5 "Zen Kaku Gothic New", sans-serif;
  color: #17345f;
  letter-spacing: 0;
  white-space: nowrap;
}
body .site-header .brand-name__accent { color: #ef8aaa; }
body .site-header .global-nav {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: 28px;
  width: auto;
  margin: 0;
  padding: 0;
  font: 400 15px/1.5 "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0;
}
body .site-header .global-nav a {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin: 0;
  padding: 8px 0 10px;
  border: 0;
  color: #17345f;
  background: transparent;
  font: inherit;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
}
body .site-header .global-nav a::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 0;
  max-width: 100%;
  height: 3px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: #ef8aaa;
  transition: width 180ms ease;
}
body .site-header .global-nav a:hover::after,
body .site-header .global-nav .is-current::after { width: 70px; }
body .site-header .global-nav .nav-contact,
body .site-header .global-nav .nav-contact:visited,
body .site-header .global-nav .nav-contact:hover {
  min-height: 44px;
  padding: 12px 22px;
  border: 1px solid #ef8aaa;
  border-radius: 999px;
  color: #fff;
  background: #ef8aaa;
  box-shadow: none;
}
body .site-header .global-nav .nav-contact::after { display: none; }
@media (max-width: 1180px) {
  body .site-header { height: 88px; padding-inline: 24px; gap: 16px; }
  body .site-header .global-nav { gap: 18px; font-size: 14px; }
  body .site-header .global-nav .nav-contact { padding-inline: 16px; }
}
@media (max-width: 900px) {
  body .site-header { height: auto; flex-direction: column; padding-block: 20px; }
  body .site-header .global-nav { width: 100%; }
}
@media (max-width: 767px) {
  body .site-header .brand-name { font-size: 18px; }
  body .site-header .global-nav { justify-content: flex-start; gap: 14px; font-size: 13px; overflow-x: auto; }
}
