@charset "utf-8";

@import url("base.css");

/***************************************************************************
*
* COMMON STYLE
*
***************************************************************************/
html{
  font-size: 62.5%;
}

body {
  width: 100%;
  background-color: #FFFFFF;
  font-size: 1.6rem; /* 16px*/
  line-height: 1.5;
  color: #231815;
  font-family: "YuGothic", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

@font-face {
font-family: 'Montserrat';
  src: url('../fonts/Montserrat-Thin.ttf');
  font-weight: 100;
}

@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-Medium.ttf');
  font-weight: normal;
}

@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-SemiBold.ttf');
  font-weight: 500;
}

@font-face {
  font-family: 'Montserrat';
  src: url('../fonts/Montserrat-Bold.ttf');
  font-weight: bold;
}


.mincho{
  font-family: "游明朝体", "YuMincho", "游明朝", "Yu Mincho", "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN W3", HiraMinProN-W3, "ヒラギノ明朝 ProN", "Hiragino Mincho ProN", "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "HGS明朝E", "ＭＳ Ｐ明朝", "MS PMincho", serif;
}

.montse {
  font-family: 'Montserrat', sans-serif;
}

.gothic {
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro",Osaka, "メイリオ", Meiryo, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}

@media screen and (min-width: 845px){
  br._pc { display: block; }
  br._sp { display: none; }
  .hidden._pc { display: none !important; }
}

@media screen and (max-width: 843px){
  br._pc { display: none; }
  br._sp { display: block; }
  .hidden._sp { display: none !important; }
}


/*VALIDATE CONTACT*/
.error {
  display: block;
  font-size: 12px;
  color: red;
}

.scrollToTop{
  display: none;
}

.btn a{
  display: block;
  width: 245px;
  text-align: center;
  font-size: 17px;
  line-height: 1.2;
  height: 57px;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
}

.btn a span{
  color: #FFF;
  display: block;
  font-size: 11px;
}

/* HEADER */
.l-header {
  background: #fff;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 0 5px #dedede;
  z-index: 9999;
}

.l-header > div {
  display: flex;
  display: -webkit-flex;
  justify-content: space-between;
  align-items: center;
}

@media (min-width: 769px) {
  .l-header > div {
    height: 106px;
    padding: 30px 31px 30px 43px;
  }

  .logo {
    width: 30%;
    max-width: 308px;
  }

  .btn-contactUs {
    color: #0B318F;
    display: block;
    width: 160px;
    text-align: center;
    border: 1px solid #0B318F;
    border-radius: 25px;
    padding: 11px;
    letter-spacing: 1px;
    font-size: 15px;
    transition: all 0.3s ease;
  }

  .btn-contactUs:hover {
    background: #0B318F;
    color: #fff;
  }
}

@media (max-width: 768px) {
  .l-header > div {
    height: 48px;
    line-height: 48px;
    background: #fff;
  }

  .logo {
    width: 63%;
    height: 100%;
  }

  .logo a {
    display: inline-block;
    padding: 8px 10px;
    height: 48px;
  }

  .logo a img {
    height: 100%;
  }

  .btn-contactUs {
    width: 30%;
    color: #fff;
    background: #0B318F;
    font-weight: bold;
    display: block;
    height: 48px;
    position: relative;
    text-align: center;
    padding-right: 10px;
    font-size: 12px;
  }

  .btn-contactUs::after {
    content: url(../img/common/arrow_white.svg);
    position: absolute;
    top: 0;
    right: 10px;
    /* transform: translateY(-50%); */
    width: 10px;
    height: 4px;
    transition: all 200ms linear;
  }
}

.hamburger {
  position: relative;
  width: 48px;
  height: 48px;
  padding: 16.5px;
  cursor: pointer;
}

.hamburger-icon,
.hamburger-closer-icon {
  display: none;
}

.hamburger-icon.active,
.hamburger-closer-icon.active {
  display: inline-block;
}

.hamburger span {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #231815;
}

.hamburger,
.hamburger span {
  display: inline-block;
  transition: all .5s;
  box-sizing: border-box;
}

.hamburger span:nth-of-type(1) {
  top: 0;
}

.hamburger span:nth-of-type(2) {
  top: 50%;
  transform: translateY(-50%);
}

.hamburger span:nth-of-type(3) {
  bottom: 0;
}

.hamburger.active span:nth-of-type(1) {
  -webkit-transform: translateY(10px) rotate(-45deg);
  transform: translateY(13px) rotate(-45deg);
}
.hamburger.active span:nth-of-type(2) {
  opacity: 0;
}
.hamburger.active span:nth-of-type(3) {
  -webkit-transform: translateY(-15px) rotate(45deg);
  transform: translateY(-15px) rotate(45deg);
}


.nav-menu {
  display: none;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.8);
  width: 100%;
  z-index: 9999;
}

.nav-menu ul {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0 auto;
  width: 64%;
  font-size: 0;
}

.nav-menu ul li {
  position: relative;
  display: inline-block;
  padding: 12px;
  width: 45.83%;
  height: 110px;
  border-radius: 6px;
  color: #FFF;
  text-align: center;
  font-size: 1.5rem;
  font-weight: bold;
  overflow: hidden;
  line-height: 1.75;
}

.nav-menu ul li:not(:nth-child(2n)) {
  margin-right: 20px;
}

.nav-menu ul li:nth-child(-n+2) {
  margin-bottom: 20px;
}

.nav-menu ul li:nth-child(1) { background-color: #D6006C; }
.nav-menu ul li:nth-child(2) { background-color: #FFBA00; }
.nav-menu ul li:nth-child(3) { background-color: #00388D; }
.nav-menu ul li:nth-child(4) { background-color: #4CA223; }

.nav-menu ul li a {
  display: block;
  height: 100%;
  color: #FFF;
  text-decoration: none;
}

.nav-menu ul li span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
}

.contents section p {
  position: absolute;
  top: 50%;
  width: 30%;
  line-height: 1.4;
  font-size: 20px;
  color: #fff;
  text-shadow: 0 0 6px #666
}

.contents section:nth-child(odd) p {
  left: 10%
}

.contents section:nth-child(even) p {
  right: 10%
}


/* MAIN */
main {
  position: relative;
  background: transparent;
  overflow: hidden;
  margin: 106px auto 0;
  font-family: YuGothic;
}

/* CONTENT */
.areaContent {
  margin-top: 80px;
}

@media (max-width: 768px) {
  .areaContent {
    margin-top: 50px;
  }
}

/* FOOTER */
#footer {
  display: inline-block;
  width: 100%;
  height: 444px;
  background: #000;
}

#footer .footerLogo {
  margin-top: 76px;
  text-align: center;
}

#footer .footerMenu{
  text-align: center;
}

#footer .footerMenu ul {
  display: inline-block;
  margin-top: 38px;
  vertical-align: top;
  text-align: left;
}

#footer .footerMenu ul li {
  display: inline-block;
  margin-right: 34px;
}

#footer .footerMenu ul li:last-child {
  margin-right: 0;
}

#footer .footerMenu ul li a{
  color: #9B9B9B;
  font-size: 16px;
}

#copyright{
  color: #9FA0A0;
  font-size: 12px;
  text-align: center;
  margin-top: 10px;
}

.sp {
  display: none;
}


/*HOVER EFFECT*/
@media(min-width: 769px){
  .btn a {
    transition: all 300ms linear;
  }

  #footer .footerMenu ul li a {
    position: relative;
    display: inline-block;
  }

  #footer .footerMenu ul li a:after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 0;
    height: 1px;
    background: #9FA0A0;
    transition: all 200ms linear;
  }

  #footer .footerMenu ul li a:hover:after {
    width: 100%;
  }
}

/* STYLE MOBILE */
@media (max-width: 768px) {
  .btn a {
    font-size: 14px;
    letter-spacing: 2px;
  }

  .btn a span {
    font-size: 7px;
    letter-spacing: 1px;
    margin-top: 3px;
  }

  .scrollToTop {
    position: fixed;
    z-index: 9999;
    bottom: 6px;
    right: 6px;
    width: 45px;
    height: 45px;
  }

  #fixH {
    display: none;
  }

  #footer {
    height: auto;
    padding: 38px 0 56px;
    text-align: center;
  }

  #footer .footerLogo {
    width: 66.5%;
    margin: 0 auto;
  }

  #footer .footerMenu ul {
    margin-top: 22px;
  }

  #footer .footerMenu ul li a {
    font-size: 10px;
  }

  #copyright {
    font-size: 10px;
    margin-top: 5px;
  }
}

@media (max-width: 768px) {
  main {
    margin: 48px auto 0;
  }
}

@media(max-width: 736px) and (min-width: 667px) {
  #main{
    padding: 6% 0;
  }
}

/*IE FIX*/
@media all and (-ms-high-contrast:none)
{
  .btn a{
    padding-top: 5px;
  }
}

/* PARTS */
hr.colorfulLine {
  position: relative;
  border: none;
  height: 7px;
}

hr.colorfulLine::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  background-image: url('/img/svg/line_colorful.svg');
  background-repeat: no-repeat;
  background-size: 100%;
  width: 378px;
  height: 7px;
}

@media (max-width: 768px) {
  hr.colorfulLine::before {
    width: 75%;
  }
}

/* モーダル */
.modal {
  display: none;
  height: 100vh;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 9999;
}

.modal__bg {
  background: rgba(255, 255, 255, 0.8);
  height: 100vh;
  position: absolute;
  width: 100%;
}

.modal__content {
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%,-50%);
}

@media (min-width: 835px) {
  .modal__content > img {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
  }

  .modal__content > img.disable {
    opacity: 0.5;
    cursor: unset;
  }

  .modal__content > img.arrow_left {
    left: -50px;
  }

  .modal__content > img.arrow_right {
    right: -50px;
  }

  .modal__content > div {
    width: 100%;
    max-width: 700px;
    padding: 31px;
    background: #FFF;
    border-radius: 20px;
    box-shadow: 0px 3px 6px #00000029;
  }
}


@media (max-width: 834px) {
  .modal__content {
    left: 0;
    transform: translateY(-50%);
    width: 100%;
    padding: 0;
  }
}