body #mainContent,
body #mainFooter,
body #mainHeader {
  width: 100%;
}

/* メインヘッダー */
.mainHeader {
  position: sticky;
  z-index: 999;
  top: 0;
  left: 0;
  width: 100%;
  color: #000;
  font-size: 62.5%;
}

.admin-bar .mainHeader {
  top: 32px;
}

@media screen and (max-width: 782px) {
  .admin-bar .mainHeader {
    top: 46px;
  }
}

@media screen and (max-width: 1000px) {
  .mainHeader {
    position: fixed;
  }
}

.mainHeader__inner {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100px;
  transition: height 0.2s;
}

@media screen and (max-width: 1000px) {
  .mainHeader__inner {
    height: 64px;
  }
}

.mainHeader__logo {
  position: relative;
  z-index: 9999;
  margin-left: 30px;
  /* font-size: 28px; */
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
  display: flex;
}

@media screen and (max-width: 1000px) {
  .front-page .mainHeader__logo {
    position: absolute;
    top: 0;
    left: 0;
  }

  .admin-bar.front-page .mainHeader__logo {
    top: 32px;
  }
}

@media screen and (max-width: 782px) {
  .admin-bar.front-page .mainHeader__logo {
    top: 46px;
  }
}

.mainHeader__logo a {
  position: absolute;
  top: 30px;
  left: 0;
  /* width: 15em; */
  width: 150px;
}

@media screen and (max-width: 1000px) {
  .mainHeader__logo a {
    top: 24px;
    /* width: 8.491em; */
    width: 85px;
  }
}

.mainHeader__logo img {
  transition: width 0.2s;
  /* width: 15em; */
  width: 150px;
  display: block;
}

@media screen and (max-width: 1000px) {
  .mainHeader__logo img {
    /* width: 8.491em; */
    width: 85px;
  }
}

.mainHeader__nav {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-left: auto;
  height: 100%;
  padding-right: 42px;
  padding-left: 19em;
}

@media screen and (max-width: 1000px) {
  .mainHeader__nav {
    padding-right: 0;
    padding-left: 0;
  }
}

.mainHeader__navList {
  display: flex;
  height: 100%;
}

@media screen and (max-width: 1000px) {
  .mainHeader__navList {
    padding-right: 6.4em;
  }
}

.mainHeader__navList .menu-item,
.mainHeader__navListItem {
  font-family: var(--fontMontserrat);
  font-weight: bold;
  height: 100%;
  text-transform: uppercase;
  display: flex;
}

@media screen and (max-width: 1000px) {

  .mainHeader__navList .menu-item,
  .mainHeader__navListItem {
    display: none;
  }
}

.mainHeader__navList .menu-item .icon--line,
.mainHeader__navListItem .icon--line {
  display: inline-block;
  font-style: normal;
  vertical-align: middle;
  line-height: 0;
  margin-left: 5px;
}

.mainHeader__navList .menu-item a,
.mainHeader__navListItemLink {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100%;
  padding: 1em 18px;
  color: #000;
  font-size: 1.2em;
  letter-spacing: 0.04em;
  line-height: 2.5;
  text-decoration: none;
  transition: color 0.2s;
}

.mainHeader__navList .menu-item a span,
.mainHeader__navListItemLink span {
  white-space: nowrap;
}

body:not(.is__touchDevice) .mainHeader__navList .menu-item a:hover,
body:not(.is__touchDevice) .mainHeader__navListItemLink:hover {
  color: var(--colorRed);
}

.mainHeader__navList .menu-item.download a {
  padding: 0;
  margin: auto 0 auto 1.5em;
  /* height: 3.5em; */
  /* border-radius: 3.5em; */
  height: 35px;
  border-radius: 35px;
  background-color: #cd181f;
  color: #fff;
  line-height: 1;
  padding: 1.5em;
}

@media screen and (max-width: 1000px) {
  .mainHeader__navList .menu-item.download a {
    padding: 0.55em 1.2em;
    height: 2.4em;
    font-size: 1.1em;
  }
}

@media screen and (max-width: 1000px) {
  .mainHeader__navListItem--contact {
    display: block;
  }

  .mainHeader__navListItem--contact+.mainHeader__navListItem--contact a {
    padding-left: 0;
  }
}

@media screen and (max-width: 1000px) {
  .mainHeader__navListItemLinkSpBlockDisplay {
    display: block;
  }
}

.mainHeader__navList .current-menu-item a {
  color: var(--colorRed);
}

.mainHeader__navList .download {
  display: flex;
  transition: all 0.2s linear;
  cursor: pointer;
}

body:not(.is__touchDevice) .mainHeader__navList .download:hover a {
  opacity: 0.6;
  color: #fff;
}

.mainHeader__navList .menuButton {
  position: absolute;
  display: none;
  top: 0;
  right: 0;
}

@media screen and (max-width: 1000px) {
  .mainHeader__navList .menuButton {
    display: block;
  }
}

.mainHeader__navList .menuButton a {
  position: relative;
  /* width: 6.4em;
  height: 6.4em; */
  width: 64px;
  height: 64px;
  cursor: pointer;
}

.mainHeader__navList .menuButton a::before {
  content: "";
  position: absolute;
  left: 50%;
  /* top: calc(50% - 0.8em);
  width: 2.4em; */
  top: calc(50% - 8px);
  width: 24px;
  border-top: 2px solid #000;
  transform: translate(-50%, -50%);
  transition: opacity 0.2s linear;
}

.menuIsOpen .mainHeader__navList .menuButton a::before {
  opacity: 0;
}

.mainHeader__navList .menuButton span {
  color: transparent;
}

.mainHeader__navList .menuButton span::before {
  content: "";
  position: absolute;
  /* left: calc(50% - 2.4em / 2);
  width: 1.4em; */
  left: calc(50% - 12px);
  width: 14px;
  top: 50%;
  border-top: 2px solid #000;
  transform: translateY(-50%);
  transition: all 0.2s linear;
}

.mainHeader__navList .menuButton span::after {
  content: "";
  position: absolute;
  /* left: calc(50% - 2.4em / 2); */
  /* top: calc(50% + 0.8em); */
  /* width: 1.4em; */
  left: calc(50% - 12px);
  top: calc(50% + 8px);
  width: 14px;
  border-top: 2px solid #000;
  transform: translateY(-50%);
  transition: all 0.2s linear;
}

.menuIsOpen .mainHeader__navList .menuButton span::before {
  width: 2.4em;
  transform: translateY(-50%) rotate(-45deg);
}

.menuIsOpen .mainHeader__navList .menuButton span::after {
  width: 2.4em;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
}

.spGlobalNavi {
  display: none;
  font-size: 62.5%;
}

@media screen and (max-width: 1000px) {
  .spGlobalNavi {
    position: fixed;
    z-index: 99;
    top: 0;
    left: 0;
    display: block;
    opacity: 0;
    visibility: hidden;
    width: 100%;
    height: 100vh;
    background-color: #fff;
    transition: opacity 0.2s linear, visibility 0s 0.2s;
  }
}

.menuIsOpen .spGlobalNavi {
  transition: opacity 0.2s linear;
  opacity: 1;
  visibility: visible;
}

.spGlobalNavi .spGlobalNavi__mainHeadernav {
  overflow: auto;
}

.spGlobalNavi .mainHeader__navList {
  width: 89.33333%;
  margin: 0 auto;
  display: block;
  padding: 7.4em 0 100px;
}

.admin-bar .spGlobalNavi .mainHeader__navList {
  padding-top: calc(32px + 7.4em);
}

@media screen and (max-width: 782px) {
  .admin-bar .spGlobalNavi .mainHeader__navList {
    padding-top: calc(46px + 7.4em);
  }
}

.spGlobalNavi .menu-item {
  display: block;
  height: auto;
}

.spGlobalNavi .menu-item.menuTop+* a {
  border-top: none;
}

.spGlobalNavi .menu-item.menuTop a {
  color: transparent !important;
  position: relative;
  border-top: none;
}

.spGlobalNavi .menu-item.menuTop a::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 1em;
  height: 1em;
  background-image: url("../images/icon/icon__home.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  transform: translateY(-50%);
}

.spGlobalNavi .menu-item.menuTop a::after {
  content: "HOME";
  position: absolute;
  top: 50%;
  /* left: 2.5em; */
  left: 25px;
  transform: translateY(-50%);
  color: #2c2c2c;
}

.spGlobalNavi .menu-item.menuTop a span::before {
  display: none;
}

.spGlobalNavi .menu-item a {
  position: relative;
  color: #2c2c2c;
  display: block;
  height: auto;
  font-size: 2em;
  line-height: 1;
  /* padding: 2em 0; */
  padding: 20px 0;
  border-top: 1px solid #d8d8d8;
}

.spGlobalNavi .menu-item a[title]::after {
  content: attr(title);
  display: block;
  color: #999999;
  /* font-size: 1.2em; */
  font-size: 12px;
  letter-spacing: 0.08em;
  margin-top: 0.7em;
}

.spGlobalNavi .menu-item a span::before {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 2em;
  height: 2em;
  background-image: url("../images/icon/icon__link.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  transform: translateY(-50%);
}

.spGlobalNavi .menuButton,
.spGlobalNavi .download {
  display: none;
}

/* 多言語切替 */
.language-switcher-container {
  position: relative;
  display: inline-block;
}

.language-switcher-container:hover .language-switcher-dropdown {
  display: block;
}

.language-switcher-item {
  cursor: pointer;
  padding: 10px;
  /* font-size: 18px; */
  display: flex;
  align-items: center;
  justify-items: center;
}

.language-switcher-container {
  position: relative;
  display: inline-block;
  font-family: Arial, sans-serif;
  margin: auto;
}

.fa-angle-down {
  padding-left: 5px;
}

.language-switcher-dropdown {
  display: none;
  position: absolute;
  background-color: #333;
  width: 180px;
  padding: 10px;
  border-radius: 8px;
  top: 100%;
  left: 0;
  z-index: 1000;
}

a.disabled {
  pointer-events: none;
  color: grey !important;
  cursor: default;
  text-decoration: none;
}

.language-switcher-container:hover .language-switcher-dropdown {
  display: block;
}

.language-switcher-header {
  font-weight: bold;
  border-bottom: 1px solid #555;
  margin-bottom: 8px;
  padding-bottom: 4px;
  font-size: 14px;
}

.language-switcher-item--text {
  font-size: 1.2em;
  font-weight: bold;
}

.language-switcher-dropdown ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.language-switcher-dropdown li {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}

.language-switcher-dropdown li:last-child {
  margin-bottom: 0;
}

.flag-icon {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  display: inline-block;
}

.language-switcher-dropdown a {
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  display: block;
  padding: 5px;
  color: #333;
  text-decoration: none;
  font-size: 1.2em;
}

.language-switcher-dropdown a:hover {
  text-decoration: underline;
}

.flag-icon {
  width: 16px;
  height: 16px;
  margin-right: 8px;
  display: inline-block;
}

.sp,
.tb {
  display: none !important;
}

@media screen and (max-width: 767px) {
  .sp {
    display: block !important;
  }
}

@media screen and (max-width: 767px) {

  .pc,
  .tb,
  a.tb,
  br.tb,
  i.tb,
  img.tb,
  span.tb {
    display: none !important;
  }
}

.language-switcher-item--text {
  font-size: 1.2em;
  font-weight: bold;
}

.language-switcher-item i {
  cursor: pointer;
  /* font-size: 2em;
  color: black; */
  display: inline-block;
  width: 2em;
  height: 2em;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  vertical-align: middle;
}

.language-switcher-item .fa-angle-down {
  background-image: url("./angle-down-solid-full.svg");
}

.language-switcher-item .fa-globe {
  background-image: url("./globe-solid.svg");
}

.language-switcher-dropdown {
  display: none;
  position: absolute;
  background-color: white;
  box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
  padding: 10px;
  border-radius: 4px;
  min-width: 100px;
  z-index: 999;
}

.language-switcher-header {
  font-weight: bold;
  border-bottom: 1px solid #555;
  margin-bottom: 8px;
  padding-bottom: 4px;
  font-size: 14px;
}