@charset "UTF-8";
/*-----------------
  jsOff 
-------------------------------*/
.jsOff {
  padding: 0 8px;
}

.jsOff__wrap {
  max-width: 980px;
  padding: 12px;
  margin: 8px auto;
  font-size: 13px;
  line-height: 1.4;
  border: solid 1px #ddd;
}
@media screen and (min-width: 768px) {
  .jsOff__wrap {
    font-size: 16px;
  }
}

/*-----------------
  webHeader 
-------------------------------*/
.webHeader {
  position: relative;
  z-index: 100;
  width: 100%;
  padding: 0 12px 0 16px;
  background-color: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.17);
}
.webHeader__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 60px;
}
.webHeader__right {
  display: flex;
  align-items: center;
}
.webHeader__logoImage {
  width: auto;
  min-width: 97px;
  height: 32px;
}
.webHeader__inner {
  width: 100%;
  max-width: 990px;
  height: 60px;
  margin: 0 auto;
}
.webHeader__primaryButton {
  text-align: center;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 32px;
  padding: 5px 7px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.2;
  color: #fff;
  background-color: #3895ff;
  border-radius: 8px;
}
.webHeader__secondaryButton {
  text-align: center;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 32px;
  padding: 5px 7px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.2;
  color: #3895ff;
  background-color: #fff;
  border: solid 1px #3895ff;
  border-radius: 8px;
}
@media screen and (max-width: 767.98px) {
  .webHeader__secondaryButton.spHide {
    display: none;
  }
  .webHeader__secondaryButton img {
    display: none;
  }
  .webHeader__primaryButton {
    margin-left: 8px;
  }
  .webHeader__secondaryButton {
    margin-left: 8px;
  }
}
@media screen and (min-width: 768px) {
  .webHeader__inner {
    width: 100%;
    max-width: 990px;
    height: 60px;
    margin: 0 auto;
  }
  .webHeader__logoImage {
    height: 36px;
  }
  .webHeader__primaryButton {
    min-width: 106px;
    min-height: 36px;
    margin-left: 12px;
  }
  .webHeader__secondaryButton {
    margin-left: 12px;
  }
  /* 既存CSSリセット */
  a.webHeader__primaryButton:hover,
  a.webHeader__secondaryButton:hover {
    opacity: 1;
  }
  .webHeader__primaryButton:active,
  .webHeader__secondaryButton:active {
    color: #3286e5;
    background-color: #f7f7f7;
    border-color: #3286e5;
  }
  .webHeader__buttonInner {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    line-height: 1;
  }
  @media (pointer: fine) {
    .webHeader__secondaryButton:hover {
      color: #3286e5;
      background-color: #f7f7f7;
      border-color: #3286e5;
    }
    .webHeader__secondaryButton:hover .webHeader__buttonInner {
      opacity: 0.7;
    }
  }
}

/*-----------------
  globalNavigation 
-------------------------------*/
@media screen and (max-width: 767.98px) {
  .globalNavigation {
    display: none;
  }
}
.globalNavigation__nav {
  position: relative;
  z-index: 1;
  width: 100%;
  background-color: #fff;
}
.globalNavigation__menuList {
  display: flex;
  align-items: center;
  justify-content: space-around;
  width: 100%;
  max-width: 990px;
  height: 72px;
  margin-right: auto;
  margin-left: auto;
  font-size: 14px;
  background-color: #fff;
}
.globalNavigation__menuItem {
  box-sizing: content-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
  cursor: pointer;
  border-right: 1px solid #ddd;
}
.globalNavigation__menuItem:last-child {
  border-right: 0;
}
.globalNavigation__menuItemInner {
  position: relative;
  width: 100%;
}
/* 水色下線 */
.globalNavigation__menuItemInner::before {
  position: absolute;
  right: 0;
  bottom: -18px;
  left: 0;
  width: calc(100% - 24px);
  height: 4px;
  margin: auto;
  content: "";
  background-color: #3895ff;
  outline: none;
  transition: transform 0.2s;
  transform: scale(0, 1);
}
.globalNavigation__menuItemInner.is-active::before,
.globalNavigation__menuItemInner:hover::before {
  transform: scale(1, 1);
}
/* サブメニューの吹き出し */
.globalNavigation__menuItemInner::after {
  position: absolute;
  right: 0;
  bottom: -44px;
  left: 0;
  display: block;
  width: 24px;
  height: 12px;
  margin: auto;
  cursor: default;
  visibility: hidden;
  content: "";
  background: url("/service/images/common/header/globalNavitionPolygon.svg") no-repeat center center/contain;
  outline: none;
  opacity: 0;
  transform: translateY(-16px);
}
.globalNavigation__menuItemInner.is-active::after {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s, visibility 0.3s, transform 0.4s;
  transform: translateY(0);
}
.globalNavigation__menuLink {
  position: relative;
  display: inline-block;
  width: 100%;
  padding: 8px 12px;
  color: inherit;
  white-space: nowrap;
}
.globalNavigation__menuLink:hover {
  opacity: 1 !important;
}
.globalNavigation__menuText {
  position: relative;
  display: block;
  font-weight: bold;
}
/*-----------------
  Backdrop
-------------------------------*/
/* header外に置きheaderよりz-indexを下げる */
.globalBackDropArea {
  position: relative;
  z-index: 99;
}
.globalBackDropArea__backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  visibility: hidden;
  background-color: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.15s linear 0s, visibility 0.15s linear 0s;
}
@media screen and (max-width: 767.98px) {
  .globalBackDropArea__backdrop {
    display: none;
  }
}
.globalBackDropArea__backdrop.is-show {
  visibility: visible;
  opacity: 1;
}
/*-----------------
  SubMenu
-------------------------------*/
.globalNavigation__subMenuClose {
  position: absolute;
  top: 16px;
  right: 16px;
  cursor: pointer;
  background-color: transparent;
  border: 0;
  box-shadow: none;
}
.globalNavigation__subMenuContent {
  position: absolute;
  top: calc(100% + 24px);
  right: 0;
  left: 0;
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  max-width: 920px;
  margin-right: auto;
  margin-left: auto;
  cursor: default;
  visibility: hidden;
  background-color: #fff;
  border-radius: 8px;
  opacity: 0;
  transform: translateY(-16px);
}
.globalNavigation__subMenuContent.is-show {
  visibility: visible;
  opacity: 1;
  transition: opacity 0.3s, visibility 0.3s, transform 0.4s;
  transform: translateY(0);
}
.globalNavigation__subMenuLeft {
  display: flex;
  align-items: center;
  width: 160px;
  padding: 0 16px;
  overflow: hidden;
  background-color: #f2faff;
  border-radius: 8px 0 0 8px;
}
.globalNavigation__subMenuRight {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: calc(100% - 160px);
  padding: 20px 32px;
  text-align: left;
}
.globalNavigation__subMenuList {
  display: flex;
  flex-wrap: wrap;
}
.globalNavigation__subMenuItem {
  width: 200px;
  margin-top: 12px;
  margin-right: 24px;
  margin-bottom: 12px;
}
.globalNavigation__subMenuItemWide {
  width: 100%;
  margin-top: 12px;
  margin-bottom: 12px;
}
.globalNavigation__subMenuLink {
  display: block;
  width: 100%;
  overflow: hidden;
  font-weight: bold;
  color: inherit;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.globalNavigation__subMenuLink:hover {
  opacity: 0.6;
}
.globalNavigation__subMenuCopy {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  font-weight: normal;
  color: #606060;
}
.globalNavigation__subMenuGoldOnlyHead,
.globalNavigation__subMenuColumnHead {
  display: flex;
  align-items: center;
  margin-top: 12px;
}
.globalNavigation__subMenuGoldOnlyIllust,
.globalNavigation__subMenuColumnIllust {
  display: flex;
  margin-right: 8px;
}
.globalNavigation__subMenuGoldOnlyTitle {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: bold;
  color: #756e5a;
}
.globalNavigation__subMenuGoldOnlyLine {
  width: 100%;
  height: 1px;
  margin-left: 24px;
  background-color: #dfd8c4;
}
.globalNavigation__subMenuColumnTitle {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: bold;
  color: #606060;
}
.globalNavigation__subMenuColumnLine {
  width: 100%;
  height: 1px;
  margin-left: 24px;
  background-color: #BABABA;
}

/*-----------------
  hamburger 
-------------------------------*/
@media screen and (min-width: 768px) {
  .hamburger {
    display: none;
  }
}
.hamburger {
  position: relative;
  width: 48px;
  height: 48px;
  padding: 0;
  margin-right: -12px;
  cursor: pointer;
  border: 0;
  box-shadow: none;
  appearance: none;
}
.hamburger__line {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 24px;
  height: 3px;
  margin: auto;
  background-color: #242323;
}
.hamburger__line::before,
.hamburger__line::after {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background-color: #242323;
}
.hamburger__line::before {
  top: -9px;
}
.hamburger__line::after {
  top: 9px;
}

/*-----------------
  hamburgerMenu 
-------------------------------*/
.hamburgerMenu {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 7000001;
  overflow: hidden;
  font-size: 14px;
  visibility: hidden;
  transition: visibility 0.3s linear;
}
.hamburgerMenu__inner {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  width: 300px;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  background-color: #fff;
  transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0s;
  transform: translateX(100%);
}
.hamburgerMenu__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 68px;
  padding-right: 16px;
  padding-left: 20px;
}
.hamburgerMenu__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: #606060;
  box-shadow: none;
  appearance: none;
}
.hamburgerMenu__backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100vw;
  height: 100vh;
  visibility: hidden;
  background-color: rgba(0, 0, 0, 0.6);
  opacity: 0;
  transition: opacity 0.1s linear 0s, visibility 0.1s linear 0s;
}
.hamburgerMenu__listLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px 16px 16px 24px;
  font-weight: bold;
  color: inherit;
}
/* 既存CSSリセット */
button.hamburgerMenu__listLink:hover {
  opacity: 1;
}
@media (pointer: fine) {
  .hamburgerMenu__listLink:hover {
    color: #909090;
  }
}
.hamburgerMenu__listLink:active,
.hamburgerMenu__listLink.is-open {
  color: #909090;
}
.hamburgerMenu__listLink.is-open > .hamburgerMenu__subMenuArrowIcon {
  transform: rotate(180deg);
}
.hamburgerMenu__subMenuArrowIcon {
  color: #bababa;
}
.hamburgerMenu__subMenuContent {
  height: 0;
  overflow: hidden;
  transition: height 0.2s linear;
}
.hamburgerMenu__subMenuLink {
  display: block;
  padding: 16px 20px 16px 48px;
  font-weight: bold;
  color: inherit;
}
/* 既存CSSリセット */
a.hamburgerMenu__subMenuLink:hover {
  opacity: 1;
}
.hamburgerMenu__subMenuLink:active {
  color: #909090;
}
@media (pointer: fine) {
  .hamburgerMenu__subMenuLink:hover {
    color: #909090;
  }
}
.hamburgerMenu__goldOnlyArea {
  padding: 16px 20px 16px 48px;
}
.hamburgerMenu__goldOnlyHead {
  display: flex;
  align-items: center;
}
.hamburgerMenu__goldOnlyIllust {
  display: flex;
}
.hamburgerMenu__goldOnlyTitle {
  margin-left: 8px;
  font-size: 12px;
  font-weight: bold;
  color: #756e5a;
}
.hamburgerMenu__goldOnlyList {
  margin-top: 8px;
  border: 1px solid #dfd8c4;
  border-radius: 8px;
}
.hamburgerMenu__goldOnlyLink {
  display: block;
  padding: 16px 24px;
  font-weight: bold;
  color: inherit;
}
.hamburgerMenu__bannerArea {
  margin: 20px;
  text-align: center;
}
a.hamburgerMenu__bannerLink:hover {
  opacity: 1;
}
.hamburgerMenu__login {
  padding: 24px;
  margin: 24px;
  text-align: center;
  border-top: 1px solid #ddd;
}
.hamburgerMenu__loginTitle {
  margin-bottom: 12px;
  font-size: 13px;
}
.hamburgerMenu__loginText {
  margin-top: 12px;
  font-size: 13px;
}
.hamburgerMenu__loginButton {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  min-height: 32px;
  padding: 5px 7px;
  font-size: 14px;
  font-weight: bold;
  line-height: 1.2;
  color: #3895ff;
  background-color: #fff;
  border: solid 1px #3895ff;
  border-radius: 8px;
}
/* 既存CSSリセット */
a.hamburgerMenu__loginButton:hover {
  opacity: 1;
}
.hamburgerMenu__loginButton:active {
  color: #3286e5;
  background-color: #f7f7f7;
  border-color: #3286e5;
}
.hamburgerMenu__loginButton:active .hamburgerMenu__loginButtonInner {
  opacity: 0.7;
}
@media (pointer: fine) {
  .hamburgerMenu__loginButton:hover {
    color: #3286e5;
    background-color: #f7f7f7;
    border-color: #3286e5;
  }
  .hamburgerMenu__loginButton:hover .hamburgerMenu__loginButtonInner {
    opacity: 0.7;
  }
}
/* is-open */
.hamburgerMenu.is-open {
  visibility: visible;
}
.hamburgerMenu.is-open .hamburgerMenu__inner {
  transform: translateX(0);
}
.hamburgerMenu.is-open .hamburgerMenu__backdrop {
  visibility: visible;
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .hamburgerMenu {
    display: none;
  }
}

/*-----------------
  Footer Navigation - SP 
-------------------------------*/
@media screen and (min-width: 768px) {
  .footerNavigation {
    display: none;
  }
}
.footerNavigation {
  padding-right: 24px;
  padding-left: 24px;
  border-top: 1px solid #eee;
  font-size: 14px;
}
.footerNavigation__listItem {
  border-bottom: 1px solid #eee;
}
.footerNavigation__listLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding-top: 16px;
  padding-bottom: 16px;
  font-weight: bold;
  color: inherit;
  text-align: left;
}
.footerNavigation__listItem:last-child {
  border-bottom: 0;
}
.footerNavigation__listItem.is-open {
  border-color: rgba(0, 0, 0, 0);
}
/* 既存CSSリセット */
button.footerNavigation__listLink:hover {
  opacity: 1;
}
.footerNavigation__listLink.is-open > .footerNavigation__subMenuArrowIcon {
  transform: rotate(180deg);
}
.footerNavigation__subMenuArrowIcon {
  flex-shrink: 0;
  color: #606060;
}
.footerNavigation__subMenuContent {
  height: 0;
  margin-right: -24px;
  margin-left: -24px;
  overflow: hidden;
  background-color: #f7f7f7;
  transition: height 0.2s linear;
}
.footerNavigation__subMenuLink {
  display: block;
  padding: 12px 24px 12px 36px;
  color: inherit;
}

/*-----------------
  webFooter
-------------------------------*/
.webFooter {
  background-color: #f0f2f5;
  border-top: 1px solid #eee;
  padding-right: 24px;
  padding-left: 24px;
}
.webFooter__bodyWrapper {
  padding-top: 48px;
  padding-bottom: 48px;
  color: #909090;
  line-height: 1.5;
  text-align: center;
  font-size: 12px;
}
.webFooter__list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 26px;
}
.webFooter__item {
  position: relative;
  padding-left: 20px;
}
.webFooter__item:nth-child(n + 2)::before {
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  margin: auto;
  content: "|";
  display: inline-flex;
  align-items: center;
}
.webFooter__item:first-child {
  padding-left: 0;
}
.webFooter__link {
  position: relative;
  display: inline-block;
  padding-top: 8px;
  padding-bottom: 8px;
  color: #909090;
}
.webFooter__link:hover {
  opacity: 1;
}
.webFooter__caution {
  margin-bottom: 24px;
}
.webFooter__cautionLink {
  color: #909090;
}
.webFooter__cautionLink:hover {
  opacity: 1;
}
.webFooter__companyLogo {
  display: block;
  text-align: center;
  margin-top: 24px;
}
.webFooter__companyLogo:hover {
  opacity: 1;
}
.webFooter__text {
  margin-top: 24px;
  font-size: 12px;
}
.webFooter__copyright {
  margin-top: 24px;
  font-size: 12px;
}
@media screen and (min-width: 768px) {
  .webFooter {
    padding-right: 12px;
    padding-left: 12px;
  }
  .webFooter__bodyWrapper {
    font-size: 14px;
  }
  .webFooter__caution {
    margin-bottom: 12px;
  }
  .webFooter__companyLogo {
    margin-top: 48px;
  }
  .webFooter__text {
    margin-top: 32px;
  }
  .webFooter__copyright {
    margin-top: 12px;
  }
}
