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


.main-menu-sp .nav-entry-bttn-area,
.main-menu-sp .jp {
  display: none;
}
.main-body {
  width: 100dvw;
  position: relative;
  background-color: #fff;
  padding-top: calc(130 / 1400 * 100vw);
}

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

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

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

  & .header-inner {
    display: flex;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    background-color: #fff;
  }
}
.header-ttl-set {
  display: flex;
  align-items: center;

  & .header-logo {
    line-height: 1;
    margin-left: calc(41 / 1400 * 100vw);
    width: calc(226 / 1400 * 100vw);

    & a {
      display: block;
      width: 100%;
      height: 100%;
    }
    & img {
      width: 100%;
      height: auto;
    }
  }
  & .en {
    font-size: calc(15 / 1400 *100vw);
    font-weight: 700;
    margin-left: calc(25 / 1400 * 100vw)
  }
}
.header-bttn-set {
  display: flex;
  align-items: center;
  width: calc(276 / 1400 * 100vw);
  padding-right: calc(30 / 1400 * 100vw);

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

  & .bar-set {
    display: block;
    width: calc(66 / 1400 * 100vw);
    height: calc(24 / 1400 * 100vw);
    position: relative;

    & .bar {
      position: absolute;
      display: block;
      width: 100%;
      height: 3px;
      background-color: #000;
      transition: all .3s
    }
  }
  &::after {
    content: 'Menu';
    display: inline-block;
    font-size: calc(17 / 1400 * 100vw);
    font-weight: 700;
    line-height: calc(17 / 1400 * 100vw);
    color: #000;
    margin-top: calc(8 / 1400 * 100vw);
  }
}
.hamburger .bar.upper {
  top: 0;
}
.hamburger .bar.middle {
  top: 50%;
  margin-top: -1px
}
.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';
}

@media (hover) {
  .header-bttn-set .entry-bttn,
  .header-ttl-set .header-logo a img {
    opacity: 1;
    transition: opacity .3s ease;
  }
  .header-bttn-set .entry-bttn:hover,
  .header-ttl-set .header-logo a:hover img {
    opacity: .5
  }
}



/* Main MENU for PC (Hide on SP) */

.main-menu-pc {
  visibility: hidden;
  opacity: 0;
  transition: .5s ease
}
.open .main-menu-pc {
  visibility: visible;
  opacity: 1
}
.nav-banner-list {
  margin: 0 auto;

  & li {
    overflow: hidden;
    position: relative;
  }
  & .img-box {
    display: block;

    &::after {
      content: '';
      display: block;
      width: 100%;
      height: 100%;
      background-image: linear-gradient(rgba(var(--rgb-3), .122), rgba(var(--rgb-3), .61));
      position: absolute;
      left: 0;
      top: 0;
      mix-blend-mode: multiply;
    }
  }
  & a {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    text-decoration: none;

    & dl {
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      align-items: flex-start;
      width: 100%;
      height: 100%;

      & dt {
        display: inline-flex;
        justify-content: center;
        align-items: center;
        min-width: calc(75 / 1400 * 100vw);
        height: calc(25 / 1400 * 100vw);
        padding: 0 .75em;
        margin-top: calc(10 / 1400 * 100vw);
        margin-left: calc(10 / 1400 * 100vw);
        border-radius: 100px;
        background-color: #fff;
        font-size: calc(14 / 1400 * 100vw);
        font-weight: 700;
        color: #000;
      }
      & dd {
        padding: 0 0 calc(15 / 1400 * 100vw) calc(20 / 1400 * 100vw);
        font-size: calc(15 / 1400 * 100vw);
        font-weight: 700;
        line-height: 1.5333333333333334;
        color: #fff;

        & span {
          font-weight: 400;
          font-size: calc(10.5 / 1400 * 100vw);
        }
      }
    }
  }
}

.main-menu-pc {
  position: fixed;
  top: 0;
  left: 0;
  display: block;
  width: 100dvw;
  height: 100vh;
  padding-top: calc(160 / 1400 * 100vw);
  z-index: -1;
  overflow: auto;
  background-color: #fff;

  & .nav-banner-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: calc(10 / 1400 * 100vw);
    row-gap: calc(30 / 1400 * 100vw);
    width: calc(1200 / 1400 * 100vw);

    /* 並びの調整用 */
    &::before {
      content: '';
      display: block;
      width: 10px;
      margin-right: -10px;
    }
    & li {
      width: calc(191 / 1400 * 100vw);
      height: calc(166 / 1400 * 100vw);
      border-radius: calc(6 / 1400 * 100vw);
    }
  }

  & .back-to-top {
    display: block;
    width: calc(310 / 1400 * 100vw);
    height: calc(60 / 1400 * 100vw);
    margin: calc(73 / 1400 * 100vw) auto;

    & a {
      display: flex;
      justify-content: space-between;
      align-items: center;
      width: 100%;
      height: 100%;
      padding: 0 calc(30 / 1400 * 100vw);
      text-decoration: none;
      background-color: var(--color-3);
      border-radius: calc(5 / 1400 * 100vw);

      &::after {
        content: '';
        display: block;
        width: calc(24 / 1400 * 100vw);
        height: calc(24 / 1400 * 100vw);
        background-image: url(../images/arrw-menu-bttn.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100%;
      }

      & span {
        font-size: calc(16 / 1400 * 100vw);
        font-weight: 700;
        color: #fff;
      }
    }
  }
}
@media (hover) {
  .nav-banner-list li .img-box img {
    scale: 1;
    transition: scale .3s ease-in-out;
  }
  .nav-banner-list li:hover .img-box img {
    scale: 1.1;
  }
  .nav-banner-list li .img-box::after {
    opacity: 1;
    transition: opacity .3s ease;
  }
  .nav-banner-list li:hover .img-box::after {
    opacity: 0;
  }
  .main-menu-pc .back-to-top a {
    transition: background-color .3s ease;
  }
  .main-menu-pc .back-to-top a:hover {
    background-color: #016D96
  }
  .main-menu-pc .back-to-top a::after {
    transition: background-size .3s ease
  }
  .main-menu-pc .back-to-top a:hover::after {
    background-size: 25%
  }
}




/* LEFT SIDE MENU (and Main Menu for SP) */

.main-menu-sp {
  visibility: visible;
  opacity: 1;
  transition: .5s ease
}
.fading.main-menu-sp {
  visibility: hidden;
  opacity: 0;
}


.main-menu-sp {
  position: fixed;
  top: calc(140 / 1400 * 100vw);
  left: calc(20 / 1400 * 100vw);
  display: block;
  width: calc(205 / 1400 * 100vw);
  padding-left: calc(10 / 1400 * 100vw);
  height: calc(100dvh - calc(140 / 1400 * 100vw));
  z-index: 998;
  font-feature-settings: "palt";
  overflow: hidden;
  overflow-y: auto;
}
.nav-menu-list {
  display: block;
  width: calc(205 / 1400 * 100vw);
  height: auto;
  padding: calc(10 / 1400 * 100vw);
  position: relative;

  &::before {
    content: '';
    display: block;
    width: calc(190 / 1400 * 100vw);
    height: 100%;
    background-color: rgba(255, 255, 255, .35);
    border-radius: calc(10 / 1400 * 100vw);
    position: absolute;
    left: calc(-10 / 1400 * 100vw);
    top: 0;
    z-index: -1;
  }

  & > li {
    display: block;
    width: 100%;
    padding: calc(6 / 1400 * 100vw) 0;
    color: #000;

    & .inner {
      display: block;
      padding-right: calc(50 / 1400 * 100vw);
    }

    & > a,
    & .no-link {
      display: inline-flex;
      justify-content: space-between;
      align-items: center;
      height: calc(38 / 1400 * 100vw);
    }
    & > a {
      text-decoration: none;
    }
    & .no-link {
      width: 100%;
      cursor: pointer;
    }
    & a {
      color: #000;
    }
    & .icon {
      display: flex;
      justify-content: center;
      align-items: center;
      width: calc(30 / 1400 * 100vw);
      height: 100%;
      position: relative;
      cursor: pointer;

      &::after {
        content: '+';
        font-size: calc(20 / 1400 * 100vw);
        font-weight: 700;
        line-height: 1;
        color: var(--color-3);
        transform-origin: center center;
        rotate: 0;
        transition: rotate .3s ease
      }
    }
    & .is-open .icon::after {
      rotate: 1turn;
      content: '−'
    }
  }
  & .ttl-set {
    text-decoration: none;

    & .en {
      font-size: calc(20 / 1400 * 100vw);
      font-weight: 700;
      display: inline-block;
    }
  }
  .sub-menu {
    display: none;
    padding-bottom: 1em;

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

      &::before {
        content: '●';
        font-size: 50%;
        color: var(--color-3);
        position: absolute;
        left: .3em;
        top: .8em
      }
    }
    & li {
      padding-top: .5em;
    }
    & .sub {
      font-size: 85%;
      font-weight: 400;
    }
  }
}
@media (hover) {
  .main-menu-sp .nav-menu-list li a .en,
  .main-menu-sp .sub-menu a span {
    background-image: linear-gradient(#000, #000);
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-position: 100% 100%;
    transition: background-size .3s cubic-bezier(0.23, 1, 0.320, 1)
  }
  .main-menu-sp .nav-menu-list li a:hover .en,
  .main-menu-sp .sub-menu a:hover span {
    background-size: 100% 1px;
    background-position: 0 100%;
  }
}
.main-menu-sp a.current span {
  background-image: linear-gradient(#000, #000);
  background-repeat: no-repeat;
  background-size: 100% 1px;
  background-position: 0 100%;
}




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


.dark-side {
  background-color: var(--color-3);
  background-image: radial-gradient(closest-side, rgba(0, 61, 148, 1) 50%, transparent 0);
  background-size: 6px 6px;
}
.dots-section {
  background-color: rgba(var(--rgb-3), .1);
  background-image: radial-gradient(closest-side, #fff 50%, transparent 0);
  background-size: 6px 6px;
}


.contents-page-ttl-set {
  margin: calc(30 / 1400 * 100vw) 0 calc(70 / 1400 * 100vw) calc(235 / 1400 * 100vw);
  display: flex;
  flex-direction: column-reverse;

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

.sub-page-ttl {
  display: block;
  font-feature-settings: "palt";
  font-weight: 700;
  font-size: calc(26 / 1400 * 100vw);
  line-height: 1.6153846153846154;
  color: #000;
  padding-left: 1em;
  margin: calc(-20 / 1400 * 100vw) 0 calc(50 / 1400 * 100vw) calc(235 / 1400 * 100vw);
  position: relative;

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



.fv-area {
  display: block;
  width: calc(1165 / 1400 * 100vw);
  padding-right: calc(30 / 1400 * 100vw);
  margin-left: auto;
}
.fv {
  width: 100%;
  height: calc(432 / 1400 * 100vw);
  border-radius: calc(10 /1400 * 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(6 / 1400 * 100vw) calc(6 / 1400 * 100vw);
      mix-blend-mode: soft-light;
      opacity: .6
    }
  }
}


.sec {
  display: block;
  width: 100%;
  padding: 0 calc(139 / 1400 * 100vw) calc(100 / 1400 * 100vw) calc(235 / 1400 * 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(15 / 1400 * 100vw);
  line-height: 2.2666666666666666;
  text-align: justify;
}

.lead {
  display: block;
  width: 100%;
  padding-right: calc(109 / 1400 * 100vw);
  margin: calc(110 / 1400 * 100vw) 0 calc(90 / 1400 * 100vw);
}

.sec-lead {
  margin: calc(60 / 1400 * 100vw) auto;
}




.other-links-area {
  display: block;
  margin: 0 calc(30 / 1400 * 100vw) calc(130 / 1400 * 100vw) calc(235 / 1400 * 100vw);

  & .sec-ttl {
    display: flex;
    align-items: center;
    font-weight: 700;
    font-size: calc(36 / 1400 * 100vw);
    column-gap: calc(40 / 1400 * 100vw);
    margin-bottom: calc(45 / 1400 * 100vw);

    &::after {
      content: '';
      display: block;
      height: 1px;
      background-color: rgba(0, 0, 0, .3);
      flex: 1 1 auto;
    }
  }
  & .bnnr-bttn {
    height: calc(350 / 1400 * 100vw);
    border-radius: calc(10 / 1400 * 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(80 / 1400 * 100vw);
      color: #fff;
      text-decoration: none;

      &::after {
        content: '';
        display: block;
        width: calc(60 / 1400 * 100vw);
        height: calc(60 / 1400 * 100vw);
        background-image: url(../images/arrw-other-bttn.svg);
        background-repeat: no-repeat;
        background-position: center;
      }
      & .bnnr-ttl {
        font-feature-settings: "palt";
        font-weight: 700;
        font-size: calc(34 / 1400 * 100vw);
        line-height: 1.5;
      }
    }
  }
}
@media (hover) {
  .bnnr-bttn img {
    scale: 1;
    transition: scale .3s ease;
  }
  .bnnr-bttn:hover img {
    scale: 1.1;
    transition: scale .3s ease;
  }
  .bnnr-bttn a::after {
    background-size: 100%;
    transition: background-size .3s ease;
  }
  .bnnr-bttn a:hover::after {
    background-size: 25%;
  }
}



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

.footer {
  display: block;
  width: 100dvw;
  position: relative;
}
.footer-menu {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr calc(24 / 1400 * 100vw);
  width: 100%;
  min-height: calc(500 / 1400 * 100vw);
  padding: calc(90 / 1400 * 100vw) calc(80 / 1400 * 100vw) calc(53 / 1400 * 100vw);
  align-items: start;
  background-color: #0d131f;
  background-image: radial-gradient(closest-side, #162238 50%, transparent 0);
  background-size: 6px 6px;
  position: relative;

  & .back2top {
    display: inline-block;
    justify-self: end;
    padding-right: calc(20 / 1400 * 100vw);

    & a {
      font-size: calc(15 / 1400 * 100vw);
      vertical-align: middle;
      color: var(--color-1);
      text-decoration: none;

      &::after {
        content: '';
        display: inline-block;
        width: calc(24 / 1400 * 100vw);
        height: calc(24 / 1400 * 100vw);
        background-image: url(../images/arrw-page-top.svg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100%;
        vertical-align: middle;
        margin-left: calc(10 / 1400 * 100vw);
      }
    }
  }
}
.footer-navigation {
  display: flex;
  width: 100%;
  height: calc(280 / 1400 * 100vw);
  column-gap: calc(80 / 1400 * 100vw);

  & .footer-entry-bttn {
    display: block;
    flex: 0 0 calc(326 / 1400 * 100vw);
    height: calc(205 / 1400 * 100vw);
    border-radius: calc(10 / 1400 * 100vw);
    overflow: hidden;
    position: relative;

    &::after {
      content: '';
      display: block;
      width: calc(24 / 1400 * 100vw);
      height: calc(24 / 1400 * 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(40 / 1400 * 100vw);
      translate: 0 -50%;
    }
  }

  & .footer-menu-pc {
    display: grid;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: space-between;

    & .top,
    & .no-link {
      height: calc(85 / 1400 * 100vw)
    }
  }
}

.footer-entry-bttn .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;
  }
}
.footer-entry-bttn 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(33 / 1400 * 100vw);
    font-weight: 700;
    line-height: .9;
    padding-bottom: calc(8 / 1400 * 100vw);
    border-bottom: calc(2 / 1400 * 100vw) solid #fff;
  }
  & .jp {
    font-feature-settings: "palt";
    font-size: calc(13 / 1400 * 100vw);
    font-weight: 500;
    margin-top: 1em;
  }
}
.footer-menu-pc a,
.footer-menu-pc .no-link {
  text-decoration: none;

  & .en {
    display: inline-block;
    font-size: calc(26 / 1400 * 100vw);
    font-weight: 700;
    color: #fff;
    line-height: .9;
    margin-bottom: calc(9/ 1400 * 100vw);
    position: relative;
  }
  & .jp {
    font-feature-settings: "palt";
    font-size: calc(12 / 1400 * 100vw);
    font-weight: 500;
    line-height: 1.3333333333333333;
    color: rgba(255, 255, 255, .4);
  }
  & + dd .sub-menu {
    padding-bottom: 3em;

    & li + li {
      margin-top: 1.25em;
    }
    & a {
      display: inline-block;
      font-feature-settings: "palt";
      font-size: calc(13 / 1400 * 100vw);
      line-height: 1.7692307692307692;
      color: #fff;
      padding-left: 1em;
      position: relative;

      &::before {
        content: '●';
        font-size: 50%;
        color: var(--color-1);
        position: absolute;
        left: .2em;
        top: 1em
      }
    }
    & .sub {
      font-size: 80%;
      font-weight: 400;
    }
  }
}


@media (hover) {
  .footer-menu-pc a .en,
  .footer-menu-pc .sub-menu a span {
    background-image: linear-gradient(#fff, #fff);
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-position: 100% 100%;
    transition: background-size .3s cubic-bezier(0.23, 1, 0.320, 1)
  }
  .footer-menu-pc a:hover .en,
  .footer-menu-pc .sub-menu a:hover span {
    background-size: 100% 1px;
    background-position: 0 100%;
  }
  .footer-entry-bttn img {
    scale: 1;
    transition: scale .3s ease;
  }
  .footer-entry-bttn:hover img {
    scale: 1.1;
  }
  .footer-entry-bttn::after,
  .back2top a::after {
    transition: background-size .3s ease
  }
  .footer-entry-bttn:hover::after,
  .back2top a:hover::after {
    background-size: 25%
  }
}

.copyright-area {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: calc(76 / 1400 * 100vw);
  padding: 0 calc(70 / 1400 * 100vw);
  color: #757575;

  & .copyright {
    font-size: calc(11 / 1400 * 100vw);
    font-weight: 500;
  }
  
  & .related-links {
    display: inline-flex;

    & li {
      font-size: calc(11 / 1400 * 100vw);
      font-weight: 500;

      & + & {
        margin-left: calc(40 / 1400 * 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(8 / 1400 * 100vw);
      }

      & a {
        display: inline-block;
        text-decoration: none;
        line-height: 1.2;
      }
    }
  }
}
@media (hover) {
  .related-links a {
    background-image: linear-gradient(currentColor, currentColor);
    background-repeat: no-repeat;
    background-size: 0 1px;
    background-position: 100% 100%;
    transition: background-size .3s cubic-bezier(0.23, 1, 0.320, 1)
  }
  .related-links a:hover {
    background-size: 100% 1px;
    background-position: 0 100%;
  }
}

