body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: "S THeiti TC", "Helvetica Neue", "Noto Sans TC", "Microsoft JhengHei", sans-serif;
}
header.lock .header-menu {
  padding: 16px 24px;
}
header.lock .header-logo {
  max-height: 60px;
}
header.lock nav {
  align-self: center;
  padding-top: 12px;
}
header .header-menu {
  padding: 28px 24px;
}
header .header-logo {
  max-height: 76px;
}
header nav {
  align-self: flex-end;
}
header .icon-close,
header[aria-expanded="true"] .icon-open {
  display: none;
}
header[aria-expanded="true"] .icon-close {
  display: inline;
}
nav a {
  display: flex;
  align-items: center;
  padding-bottom: 12px;
  color: #2a278e;
}
nav .menu {
  position: relative;
  display: grid;
  place-items: center;
}
nav .menu:hover > li > .submenu {
  display: block;
}
nav .submenu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 100%;
  padding-bottom: 0.5rem;
  background-color: rgba(255,255,255,0.867);
  box-shadow: 0 5px 0 0 #9c008a, 0 6px 0 0 #fff, 0 11px 0 0 #26278e, 0 2px 16px rgba(0,0,0,0.2);
}
nav .submenu.submenu-left {
  left: unset;
  right: 0;
}
nav .submenu > li {
  padding: 0 0.5rem;
}
nav .submenu > li:hover {
  background: #2a278e;
}
nav .submenu > li:hover > a {
  color: #fff;
}
nav .submenu > li a {
  min-height: 40px;
  padding: 0.5rem 1rem 0.5rem 0.5rem;
  color: #2a278e;
  font-size: 18px;
}
nav .submenu > li a span {
  padding: 0;
}
nav .has-submenu {
  position: relative;
}
nav .has-submenu:hover > .submenu {
  display: block;
}
nav .has-submenu .submenu {
  top: 0;
}
nav .has-submenu .submenu.submenu-left {
  left: unset;
  right: 100%;
}
nav .has-submenu .submenu.submenu-right {
  left: 100%;
}
