@charset "UTF-8";

/************************
　Reset css
************************/

*,*::before,*::after { box-sizing: border-box;}
body,h1,h2,h3,h4,p,figure,blockquote,ul,li,dl,dd { margin: 0; padding: 0;}
ul[role="list"],ol[role="list"], li { list-style: none;}
html:focus-within { scroll-behavior: smooth;}
body {
  min-height: 100vh;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  line-height: 1.6;
  letter-spacing: 0.1em;
  color: #333;
  text-rendering: optimizeSpeed;
}
h1,h2,h3,h4 { font-weight: 500;}
a { color: #333; text-decoration: none;}
img,picture { max-width: 100%; display: block;}
input,button,textarea,select { font: inherit;}

@media (prefers-reduced-motion: reduce) {
  html:focus-within { scroll-behavior: auto;  }
  *,*::before,*::after {
    -webkit-animation-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    -webkit-animation-iteration-count: 1 !important;
    animation-iteration-count: 1 !important;
    -webkit-transition-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/************************
　Module css
************************/

.dpfx { display: flex;}
.sp {display: none;}
.ff_EB { font-family: 'EB Garamond', serif;}
.ff400 { font-weight: 400;}
.ff500 { font-weight: 500;}
.ff600 { font-weight: 600;}
.fwbd { font-weight: bold;}
.triangle:after {
  display: inline-block;
  content:"";
  width: 12px;
  height: 12px;
  border-top: 3px double #000;
  border-right: 3px double #000;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
  margin-left: 10px;
}

@media screen and (max-width: 600px) {
  .pc { display: none;}
  .sp { display: block;}
  .triangle:after {
    width: 10px;
    height: 10px;
    margin-left: 5px;
  }
}

/************************
　style css
************************/

/*---- Global Menu ----*/

.gmenu {
  z-index: 20;
  position: fixed;
}
.gmenu_wrap {
  display: flex;
  width:920px;
  margin: 0 auto;
}
.logo {
  z-index: 100;
  position: fixed;
  top: 2em;
  left: 2em;
}
.logo a {
  display: block;
  width: 112px;
  height: 40px;
  color: transparent;
  background: url(../images/common/logo_black.svg) no-repeat;
}
.g-open .logo a {
  background: url(../images/common/logo_white.svg) no-repeat;
}
#g-toggle {
  z-index: 50;
  position: fixed;
  top: 2em;
  right: 2em;
  height: 2em;
  cursor: pointer;
}
#g-toggle > div {
  position: relative;
  width: 36px;
}
#g-toggle span {
  display: block;
  position: absolute;
  width: 100%;
  height: 1px;
  left: 0;
  background: #333;
  -webkit-transition: transform 0.4s ease-in-out, top 0.4s ease;
  transition: transform 0.4s ease-in-out, top 0.4s ease;
}
#home #g-toggle span, .g-open #g-toggle span { background: #fff;}
#g-toggle span:nth-child(1) {top: 0;}
#g-toggle span:nth-child(2) {top: 14px;}
#g-toggle span:nth-child(3) {top: 28px;}
#g-toggle:hover span:nth-child(1) {top: 4px;}
#g-toggle:hover span:nth-child(3) {top: 23px;}

#home .g-open #g-toggle span {background: #fff;}
.g-open #g-toggle span:nth-child(1) {
  top: 15px;
  -webkit-transform: rotate(40deg);
  transform: rotate(40deg);
}
.g-open #g-toggle span:nth-child(2) {
  top: 15px;
  width: 0;
  left: 50%;
}
.g-open #g-toggle span:nth-child(3) {
  top: 15px;
  -webkit-transform: rotate(-40deg);
  transform: rotate(-40deg);
}
#container {z-index: 30;}
#g-nav {
  z-index: 40;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  justify-content: center;
  background: #666666;
  color: #fff;
  opacity: 0;
  visibility: hidden;
  -webkit-transition: opacity 0.4s ease, visibility 0.3s ease;
  transition: opacity 0.4s ease, visibility 0.3s ease;
}
#g-nav nav {
  display: flex;
  width: 78%;
}
#g-nav ul {
  width: 50%;
  height: 50vh;
  margin: auto;
}
#g-nav ul.nav_left {
  display: inline-flex;
  align-items: end;
}
#g-nav ul.nav_left li {
  margin-right: 20px;
}
#g-nav ul.nav_right li {
  padding-left: 40%;
}
#g-nav ul li {
  text-align: left;
  font-size: 17px;
  line-height: 48px;
  opacity: 0;
  -webkit-transform: translateX(200px);
  transform: translateX(200px);
  -webkit-transition: transform 0.4s ease, opacity 0.4s ease;
  transition: transform 0.4s ease, opacity 0.4s ease;
}
#g-nav ul li:nth-child(2) {-webkit-transition-delay: 0.1s;transition-delay: 0.1s;}
#g-nav ul li:nth-child(3) {-webkit-transition-delay: 0.2s;transition-delay: 0.2s;}
#g-nav ul li:nth-child(4) {-webkit-transition-delay: 0.3s;transition-delay: 0.3s;}
#g-nav ul li:nth-child(5) {-webkit-transition-delay: 0.4s;transition-delay: 0.4s;}
#g-nav ul li:nth-child(6) {-webkit-transition-delay: 0.5s;transition-delay: 0.5s;}
#g-nav ul li:nth-child(7) {-webkit-transition-delay: 0.6s;transition-delay: 0.6s;}
#g-nav ul li:nth-child(8) {-webkit-transition-delay: 0.8s;transition-delay: 0.8s;}
#g-nav a {
  display: block;
  color: #fff;
  -webkit-transition: color 0.4s ease;
  transition: color 0.4s ease;
}
#g-nav a:hover {color: #999;}
#g-nav a:hover img {
  opacity: 0.6;
  -webkit-transition: 0.3s ease;
  transition: 0.3s ease;
}
/* open */
.g-open {overflow: hidden;}
.g-open #g-nav {
  visibility: visible;
  opacity: 1;
}
.g-open #g-nav li {
  opacity: 1;
  -webkit-transform: translateX(0);
  transform: translateX(0);
  -webkit-transition: transform 0.6s ease, opacity 0.2s ease;
  transition: transform 0.6s ease, opacity 0.2s ease;
}

@media screen and (max-width: 600px) {
  .logo {
    width: 24%;
    top: 4%;
    left: 4%;
  }
  .logo a { width: 100%;}
  #g-toggle {
    right: 1em;
  }
  #g-nav nav, #g-nav ul {
    display: block;
    width: 100%;
  }
  #g-nav nav {
    padding-top: 18vh;
    padding-left: 2em;
  }
  #g-nav ul {
    height: auto;
  }
  #g-nav ul.nav_left {
    justify-content: left;
  }
  #g-nav ul.nav_right {
     padding-top: 5vh;
  }
  #g-nav ul.nav_right li {
    padding: 0;
  }
}

/*---- Contact button ----*/

.btn_contact {
  z-index: 1;
  position: relative;
  overflow: hidden;
  width: 100%;
  text-align: center;
  background: #000;
  border-color: #000;
  border-top: 2px solid #000;
  border-bottom: 2px solid #000;
  -webkit-transition: color 0.4s ease-in-out;
  transition: color 0.4s ease-in-out;
}
.btn_contact a {
  display: block;
  font-size: 25px;
  color: #fff;
  padding: 30px 0;
}
.btn_contact a:hover, .btn_contact a:focus {
  color: #000;
}
.btn_contact:after {
  z-index: -1;
  content: "";
  position: absolute;
  display: block;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 100%;
  background: #fff;
  -webkit-transition: width 0.4s ease-in-out;
  transition: width 0.4s ease-in-out;
}
.btn_contact:hover {
  color: #fff;
}
.btn_contact:hover:after {
  width: 110%;
}

@media screen and (max-width: 600px) {
  .btn_contact a {
    font-size: 18px;
  }
}

/*---- To top ----*/

#toTop{
  width: 50px;
  height: 50px;
  position: fixed;
  right: 2%;
  bottom: 4%;
  border-radius: 50%;
  background-color: rgba(46,41,48,0.8);
}
#toTop a{
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}
#toTop a::before{
  content: '';
  width: 16px;
  height: 16px;
  border-top: solid 2px #fff;
  border-right: solid 2px #fff;
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: absolute;
  top: 50%;
  left: 17px;
  margin-top: -4px;
}

/*---- Footer ----*/

footer {
  width: 100%;
  text-align: center;
  background: #fff;
  padding: 70px 0;
}
footer ul {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
}
footer ul li { margin: 0 20px;}
footer a:hover, footer a:hover img {
  -webkit-transition: 0.4s;
  transition: 0.4s;
  opacity: 0.5;
}
.footer_row2 {
  display: flex;
  justify-content: center;
  max-width: 1000px;
  margin: 0 auto;
}
.footer_row2 a {
  display: inline-block;
  margin: 30px 50px;
}

.copyright {
  font-family: '游明朝','Yu Mincho',YuMincho,'Hiragino Mincho Pro',serif;
  font-size: 12px;
  color: #333;
}
.copyright span {
  margin-right: 1em;
}

@media screen and (max-width: 600px) {
  footer {
    padding: 25px 4% 30px;
  }
  .footer_row2 a {
    width: 50%;
    font-size: 12px;
    line-height: 1.4;
    text-align: center;
    margin: 30px 0;
  }
  .copyright {
    line-height: 2;
  }
  .copyright span {
    display: block;
    margin-right: 0;
  }
}

/*---- Text animation ----*/

.slidein {
  font-size: 28px;
  font-weight: 600;
  -webkit-animation: SlideIn 0.8s ease-out 0.1s 1 normal backwards;
  animation: SlideIn 0.8s ease-out 0.1s 1 normal backwards;
}
@-webkit-keyframes SlideIn {
  0% {
    opacity: 0;
    -webkit-transform: translateX(-200px);
    transform: translateX(-200px);
  }
  100% {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes SlideIn {
  0% {
    opacity: 0;
    transform: translateX(-200px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

.slidein2 {
  -webkit-animation: fadeIn2 0.8s ease-out 0.4s 1 normal backwards;
  animation: fadeIn2 0.8s ease-out 0.4s 1 normal backwards;
}
@-webkit-keyframes fadeIn2 {
  from {
    opacity: 0;
    -webkit-transform: translateX(-200px);
    transform: translateX(-200px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
}
@keyframes fadeIn2 {
  from {
    opacity: 0;
    transform: translateX(-200px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@media screen and (max-width: 600px) {
  h1.slidein {
    font-size: 21px;
  }
}

