@charset "UTF-8";
/*
	##### MFR #####
	assets/css/style_sp.css
*/


.main-menu-pc,
.footer-menu-pc {
  display: none;
}
.main-body {
  position: relative;
  background-color: #fff;
  padding-top: calc(158 / 750 * 100vw);
}

:target {
  scroll-margin-top: calc(160 / 750 * 100vw);
}

/*------------------------------------
HEADER
--------------------------------------*/

.header {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100dvw;
  height: calc(158 / 750 * 100vw);
  z-index: 999;

  & .header-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
    background-color: #fff;
  }
}
.header-ttl-set {
  display: flex;
  flex-direction: column;
  margin-left: calc(25 / 750 * 100vw);

  & .header-logo {
    line-height: 1;
    width: calc(278 / 750 * 100vw);

    & a {
      display: block;
      width: 100%;
      height: 100%;
    }
    & img {
      width: 100%;
      height: auto;
    }
  }
  & .en {
    font-size: calc(22 / 750 *100vw);
    font-weight: 700;
    margin-top: calc(5 / 750 * 100vw)
  }
}
.header-bttn-set {
  display: flex;
  align-items: center;
  width: calc(315 / 750 * 100vw);
  padding-right: calc(25 / 750 * 100vw);

  & .entry-bttn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: calc(174 / 750 * 100vw);
    height: calc(62 / 750 * 100vw);
    font-size: calc(26 / 750 * 100vw);
    font-weight: 700;
    line-height: 1;
    color: #fff;
    background-color: var(--color-3);
    border-radius: calc(5 / 750 * 100vw);
    text-decoration: none;
    margin-right: calc(32 / 750 * 100vw);
  }
}
.hamburger {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: calc(84 / 750 * 100vw);
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;

  & .bar-set {
    display: block;
    width: calc(84 / 750 * 100vw);
    height: calc(32 / 750 * 100vw);
    position: relative;

    & .bar {
      position: absolute;
      display: block;
      width: 100%;
      height: calc(4 / 750 * 100vw);
      background-color: #000;
      transition: all .3s
    }
  }
  &::after {
    content: 'Menu';
    display: inline-block;
    font-size: calc(24 / 750 * 100vw);
    font-weight: 700;
    line-height: .9;
    color: #000;
    margin-top: calc(10 / 750 * 100vw);
  }
}
.hamburger .bar.upper {
  top: 0;
}
.hamburger .bar.middle {
  top: 50%;
  margin-top: calc(-2 / 750 * 100vw)
}
.hamburger .bar.bottom {
  width: 60%;
  bottom: 0;
}
.open .hamburger .bar.upper {
  top: 50%;
  transform: translateY(-1px) rotate(20deg)
}
.open .hamburger .bar.middle {
  width: 0;
  opacity: 0
}
.open .hamburger .bar.bottom {
  width: 100%;
  bottom: 50%;
  transform: translateY(1px) rotate(-20deg)
}
.open .hamburger::after {
  content: 'Close';
}



/* MENU (and left side menu for PC) */

.main-menu-sp {
  visibility: hidden;
  opacity: 0;
  transition: .5s ease
}
.open .main-menu-sp {
  visibility: visible;
  opacity: 1
}
.main-menu-sp {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100dvw;
  height: 100dvh;
  padding: calc(190 / 750 * 100vw) 0 calc(115 / 750 * 100vw);
  z-index: 998;
  overflow: auto;
  background-color: #fff;
  font-feature-settings: "palt";
}

.nav-menu-list {
  display: block;
  width: 100%;

  & > li {
    display: block;
    width: 100%;
    padding: 0 calc(28 / 750 * 100vw) 0 calc(76 / 750 * 100vw);

    & + & {
      border-top: solid calc(2 / 750 * 100vw) #e5e5e5;
    }

    & > a,
    & .no-link {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      min-height: calc(156 / 750 * 100vw);
      text-decoration: none;
    }
    & .icon {
      display: flex;
      justify-content: center;
      align-items: center;
      width: calc(100 / 750 * 100vw);
      height: calc(100 / 750 * 100vw);
      position: relative;
  
      &::after {
        content: '+';
        font-size: calc(58 / 750 * 100vw);
        font-weight: 400;
        line-height: 1;
        translate: 0 -.1em;
        rotate: 0;
        transition: rotate .3s ease
      }
    }
    & .is-open .icon::after {
      rotate: 1turn;
      content: '−'
    }
  }
  & .ttl-set {
    flex-basis: 65%;
    text-decoration: none;

    & .en {
      font-size: calc(48 / 750 * 100vw);
      font-weight: 700;
    }
    & .jp {
      display: block;
      font-size: calc(24 / 750 * 100vw);
      color: rgba(0, 0, 0, .4);
      margin-top: calc(20 / 750 * 100vw);
    }
  }
  .sub-menu {
    display: none;
    padding-bottom: 1.25em;

    & li {
      padding: .5em 0 .75em;

      & a {
        display: inline-block;
        font-size: calc(30 / 750 * 100vw);
        font-weight: 500;
        line-height: 1.5;
        text-decoration: none;
        padding-left: 1em;
        position: relative;

        &::before {
          content: '●';
          font-size: 50%;
          vertical-align: middle;
          margin-right: 1em;
          color: var(--color-1);
          position: absolute;
          left: .3em;
          top: .9em
        }
      }
    }
    & .sub {
      font-size: 85%;
      font-weight: 400;
    }
  }
}

.nav-entry-bttn-area {
  padding: 0 calc(35 / 750 * 100vw);
  margin: calc(80 / 750 * 100vw) auto 0;
}






/*------------------------------------
CONTENS
--------------------------------------*/

.dark-side {
  background-color: var(--color-3);
  background-image: radial-gradient(closest-side, rgba(0, 61, 148, 1) 50%, transparent 0);
  background-size: calc(8 / 750 * 100vw) calc(8 / 750 * 100vw);
}
.dots-section {
  background-color: rgba(var(--rgb-3), .1);
  background-image: radial-gradient(closest-side, #fff 50%, transparent 0);
  background-size: calc(8 / 750 * 100vw) calc(8 / 750 * 100vw);
}



.contents-page-ttl-set {
  margin: calc(18 / 750 * 100vw) 0 calc(55 / 750 * 100vw) calc(50 / 750 * 100vw);
  display: flex;
  flex-direction: column-reverse;

  & .en {
    font-weight: 700;
    font-size: calc(66 / 750 * 100vw);
    margin-bottom: calc(10 / 750 * 100vw)
  }
  & .jp {
    font-weight: 500;
    font-size: calc(24 / 750 * 100vw);
  }
}

.sub-page-ttl {
  display: block;
  font-feature-settings: "palt";
  font-weight: 700;
  font-size: calc(40 / 750 * 100vw);
  line-height: 1.55;
  letter-spacing: .04em;
  color: #000;
  padding-left: 1em;
  margin: 0 0 calc(70 / 750 * 100vw) calc(50 / 750 * 100vw);
  position: relative;

  &::before {
    content: '';
    display: block;
    width: calc(6 / 750 * 100vw);
    height: 85%;
    background-color: var(--color-3);
    position: absolute;
    top: 50%;
    left: 0;
    translate: 0 -50%;
  }
}



.fv-area {
  display: block;
  width: calc(700 / 750 * 100vw);
  margin: 0 auto;
}
.fv {
  width: 100%;
  border-radius: calc(20 /750 * 100vw);
  overflow: hidden;
  position: relative;

  & .img-box {
    position: relative;

    &::before,
    &::after {
      content: '';
      display: block;
      width: 100%;
      height: 100%;
      overflow: hidden;
      position: absolute;
      top: 0;
      left: 0;
    }
    &::before {
      background-image: radial-gradient(closest-side, rgba(0, 61, 148, 1) 52%, transparent 0);
      background-repeat: repeat;
      background-size: calc(8 / 750 * 100vw) calc(8 / 750 * 100vw);
      mix-blend-mode: soft-light;
      opacity: .6
    }
  }
}


.sec {
  display: block;
  width: 100%;
  padding: 0 calc(25 / 750 * 100vw) calc(100 / 750 * 100vw);
}
.corner-ttl {
  font-weight: 700;
  line-height: 1;
  color: currentColor;

  &::before {
    display: inline-block;
    content: '●';
    font-size: 50%;
    translate: 0 -.35em;
    margin-right: 1em;
    color: var(--color-2)
  }
}

.txt {
  font-feature-settings: "palt";
  font-size: calc(26 / 750 * 100vw);
  line-height: 2.230769230769231;
  text-align: justify;
}

.lead {
  padding: calc(90 / 750 * 100vw) calc(25 / 750 * 100vw);
}

.sec-lead {
  margin: calc(70 / 750 * 100vw) calc(25 / 750 * 100vw);
}



.other-links-area {
  display: block;
  margin: 0 calc(25 / 750 * 100vw) calc(160 / 750 * 100vw);

  & .sec-ttl {
    font-weight: 700;
    font-size: calc(44 / 750 * 100vw);
    text-align: center;
    margin-bottom: calc(70 / 750 * 100vw);

    &::before,
    &::after {
      content: '';
      display: inline-block;
      width: calc(28 / 750 * 100vw);
      height: calc(2 / 750 * 100vw);
      background-color: rgba(0, 0, 0, .3);
      vertical-align: middle;
    }
    & .en {
      margin: 0 .64em;
    }
  }
  & .bnnr-bttn {
    width: 100%;
    height: calc(390 / 750 * 100vw);
    border-radius: calc(20 / 750 * 100vw);
    overflow: hidden;
    position: relative;

    & .img-box {
      position: relative;

      &::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        height: 100%;
        background-color: rgba(0, 12, 31, .7);
      }
    }
    & a {
      position: absolute;
      top: 0;
      left: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      height: 100%;
      padding: 0 calc(50 / 750 * 100vw);
      color: #fff;
      text-decoration: none;

      &::after {
        content: '';
        display: block;
        width: calc(60 / 750 * 100vw);
        height: calc(60 / 750 * 100vw);
        background-image: url(../images/arrw-other-bttn.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100%;
      }
      & .bnnr-ttl {
        font-feature-settings: "palt";
        font-weight: 700;
        font-size: calc(40 / 750 * 100vw);
        line-height: 1.5;
      }
    }
  }
}




/*------------------------------------
FOOTER
--------------------------------------*/

.footer {
  display: block;
  width: 100%;
  position: relative;
}
.footer-menu {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  width: 100%;
  padding: calc(80 / 750 * 100vw) calc(35 / 750 * 100vw) calc(190 / 750 * 100vw);
  background-color: #0d131f;
  background-image: radial-gradient(closest-side, #162238 50%, transparent 0);
  background-size: calc(8 / 750 * 100vw) calc(8 / 750 * 100vw);

  & .back2top {
    display: inline-block;
    margin-bottom: calc(70 / 750 * 100vw);

    & a {
      display: inline-flex;
      flex-direction: column-reverse;
      align-items: center;
      font-size: calc(26 / 750 * 100vw);
      line-height: .9;
      vertical-align: middle;
      color: var(--color-1);
      text-decoration: none;

      &::after {
        content: '';
        display: inline-block;
        width: calc(50 / 750 * 100vw);
        height: calc(50 / 750 * 100vw);
        background-image: url(../images/arrw-page-top.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100%;
        vertical-align: middle;
        margin-bottom: calc(25 / 1400 * 100vw);
      }
    }
  }
}

.nav-entry-bttn,
.footer-entry-bttn {
  display: block;
  width: 100%;
  height: calc(276 / 750 * 100vw);
  border-radius: calc(10 / 750 * 100vw);
  overflow: hidden;
  position: relative;

  &::after {
    content: '';
    display: block;
    width: calc(50 / 750 * 100vw);
    height: calc(50 / 750 * 100vw);
    background-image: url(../images/arrw-menu-bttn.svg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
    position: absolute;
    top: 50%;
    right: calc(50 / 750 * 100vw);
    translate: 0 -50%;
  }
  & .img-box {
    width: 100%;
    height: 100%;
    position: relative;

    &::after {
      content: '';
      display: block;
      width: 100%;
      height: 100%;
      background-color: rgba(1, 52, 122, .7);
      position: absolute;
      top: 0;
      left: 0;
    }
  }
  & a {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    text-decoration: none;
    color: #fff;

    & .en {
      display: inline-block;
      font-size: calc(60 / 750 * 100vw);
      font-weight: 700;
      line-height: .9;
      padding-bottom: calc(20 / 750 * 100vw);
      border-bottom: calc(4 / 750 * 100vw) solid #fff;
    }
    & .jp {
      font-feature-settings: "palt";
      font-size: calc(24 / 750 * 100vw);
      font-weight: 600;
      margin-top: .85em;
    }
  }
}


.copyright-area .related-links {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: calc(126 / 750 * 100vw);
  border-top: calc(2 / 750 * 100vw) solid rgba(255, 255, 255, .3);
  margin-top: calc(-126 / 750 * 100vw);

  & li {
    font-size: calc(22 / 750 * 100vw);
    font-weight: 600;

    & + & {
      margin-left: calc(40 / 750 * 100vw);
    }

    &::after {
      content: '';
      display: inline-block;
      width: 1em;
      height: 1em;
      background: url(../images/ico-popup.svg) no-repeat center / contain;
      vertical-align: middle;
      margin-left: calc(10 / 750 * 100vw);
    }

    & a {
      display: inline-block;
      text-decoration: none;
      line-height: 1.2;
      color: #757575;
    }
  }
}
.copyright {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: calc(126 / 750 * 100vw);
  font-size: calc(22 / 750 * 100vw)
}

