@charset "UTF-8";
/*------------------------------------------------------------
	common
------------------------------------------------------------*/
html {
  padding: 0;
  font-size: 62.5%; }

body {
  -webkit-text-size-adjust: 100%;
  font-size: 1.6rem;
  font-weight: 500;
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.5;
  color: #000;
  /*-webkit-transition: opacity 1.2s ease;
  -o-transition: opacity 1.2s ease;
  transition: opacity 1.2s ease;*/ }
body * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

img {
  vertical-align: middle;
  border: none;
  max-width: 100%; }

.sp { display: none; }
@media screen and (max-width: 768px) {
.pc { display: none; }
.sp { display: block; }
}

/*------------------------------------------------------------
	clearfix
------------------------------------------------------------*/
.clearfix:after {
  display: block;
  content: '';
  height: 0;
  clear: both; }


/*------------------------------------------------------------
  text style
------------------------------------------------------------*/
.fsSS { font-size: 1.2rem; }
.fwB { font-weight: bold; }

.cRed { color: #e12727; }
.cGray { color: #ccc; }

.ls00 { letter-spacing: 0; }
.ls01 { letter-spacing: 0.1em; }
.ls02 { letter-spacing: 0.2em; }

.lh13 { line-height: 1.3; }
.lh20 { line-height: 2; }

.tRight { text-align: right; }
.tLeft { text-align: left; }
.tCenter { text-align: center; }
.tJfy { text-align: justify; }
.tIndent { text-indent: 1em; }


/*------------------------------------------------------------
  headline
------------------------------------------------------------*/
h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1;
  margin: 0;
  padding: 0;
}


/*------------------------------------------------------------
  link & button
------------------------------------------------------------*/
a {
  color: inherit;
  text-decoration: none;
  word-wrap: break-word;      /* IE 5+ */ }


/*------------------------------------------------------------
	layout
------------------------------------------------------------*/
.rightBox { float: right; }
.leftBox { float: left; }

/* margin padding */
.m00 { margin: 0 !important; }
.m05 { margin: 5px !important; }
.m10 { margin: 10px !important; }
.m20 { margin: 20px !important; }
.m30 { margin: 30px !important; }
.m40 { margin: 40px !important; }
.m50 { margin: 50px !important; }
.m100 { margin: 100px !important; }

.mt00 { margin-top: 0 !important; }
.mt05 { margin-top: 5px !important; }
.mt10 { margin-top: 10px !important; }
.mt20 { margin-top: 20px !important; }
.mt30 { margin-top: 30px !important; }
.mt40 { margin-top: 40px !important; }
.mt50 { margin-top: 50px !important; }
.mt100 { margin-top: 100px !important; }
.mt150 { margin-top: 150px !important; }

.mb00 { margin-bottom: 0 !important; }
.mb05 { margin-bottom: 5px !important; }
.mb10 { margin-bottom: 10px !important; }
.mb20 { margin-bottom: 20px !important; }
.mb30 { margin-bottom: 30px !important; }
.mb40 { margin-bottom: 40px !important; }
.mb50 { margin-bottom: 50px !important; }
.mb100 { margin-bottom: 100px !important; }
.mb200 { margin-bottom: 200px !important; }

.mr00 { margin-right: 0 !important; }
.mr05 { margin-right: 5px !important; }
.mr10 { margin-right: 10px !important; }
.mr20 { margin-right: 20px !important; }
.mr30 { margin-right: 30px !important; }
.mr40 { margin-right: 40px !important; }
.mr50 { margin-right: 50px !important; }
.mr100 { margin-right: 100px !important; }

.ml00 { margin-left: 0 !important; }
.ml05 { margin-left: 5px !important; }
.ml10 { margin-left: 10px !important; }
.ml20 { margin-left: 20px !important; }
.ml30 { margin-left: 30px !important; }
.ml40 { margin-left: 40px !important; }
.ml50 { margin-left: 50px !important; }
.ml100 { margin-left: 100px !important; }

.p00 { padding: 0 !important; }
.p05 { padding: 5px !important; }
.p10 { padding: 10px !important; }
.p20 { padding: 20px !important; }
.p30 { padding: 30px !important; }
.p40 { padding: 40px !important; }
.p50 { padding: 50px !important; }
.p100 { padding: 100px !important; }

.pt00 { padding-top: 0 !important; }
.pt05 { padding-top: 5px !important; }
.pt10 { padding-top: 10px !important; }
.pt20 { padding-top: 20px !important; }
.pt30 { padding-top: 30px !important; }
.pt40 { padding-top: 40px !important; }
.pt50 { padding-top: 50px !important; }
.pt100 { padding-top: 100px !important; }

.pb00 { padding-bottom: 0 !important; }
.pb05 { padding-bottom: 5px !important; }
.pb10 { padding-bottom: 10px !important; }
.pb20 { padding-bottom: 20px !important; }
.pb30 { padding-bottom: 30px !important; }
.pb40 { padding-bottom: 40px !important; }
.pb50 { padding-bottom: 50px !important; }
.pb100 { padding-bottom: 100px !important; }

.pr00 { padding-right: 0 !important; }
.pr05 { padding-right: 5px !important; }
.pr10 { padding-right: 10px !important; }
.pr20 { padding-right: 20px !important; }
.pr30 { padding-right: 30px !important; }
.pr40 { padding-right: 40px !important; }
.pr50 { padding-right: 50px !important; }
.pr100 { padding-right: 100px !important; }

.pl00 { padding-left: 0 !important; }
.pl05 { padding-left: 5px !important; }
.pl10 { padding-left: 10px !important; }
.pl20 { padding-left: 20px !important; }
.pl30 { padding-left: 30px !important; }
.pl40 { padding-left: 40px !important; }
.pl50 { padding-left: 50px !important; }
.prl00 { padding-left: 100px !important; }


/*------------------------------------------------------------
	contents
------------------------------------------------------------*/
/* header */
#siteHead {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 17px 30px 0;
  height: 70px;
  background: #fff;
  background: rgba(255,255,255,0.9);
  transition: top 0.65s ease-in;
  -webkit-transition: top 0.65s ease-in;
  -moz-transition: top 0.65s ease-in;
  z-index: 999;
  border-bottom: 1px solid #bfbfbf;
  color: #000;
  text-decoration: none;
}
#siteHead .inner {
  width: 100%;
  margin: 0 auto;
  position: relative;
}
#siteHead .inner:after {
  content: "";
  clear: both;
  display: block;
}
#siteHead h1 {
  float: left;
}
#siteHead h1 a {
  line-height: 1;
}
#siteHead h1 img {
  height: 35px;
}

/* Toggle Button */
#navToggle {
  display: none;
}

/* globalNav */
#globalNav .sp_logo {
  display: none;
}
#globalNav ul {
  list-style: none;
  position: absolute;
  right: 0;
  bottom: 3px;
}
#globalNav ul li {
  float: left;
}
#globalNav ul li a {
  padding: 0;
  margin: 0 20px;
  position: relative;
  font-size: 1.5rem;
  font-weight: 400;
  font-family: 'Roboto';
  text-decoration: none;
  letter-spacing: 1px;
}
#globalNav ul li a::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  content: '';
  width: 100%;
  height: 2px;
  background: #000;
  transform: scale(0, 1);
  transform-origin: left top;
  transition: transform .3s;
}
#globalNav ul li a:hover::after {
  transform: scale(1, 1);
}
#globalNav .sns {
  display: none;
}

/* header SP */
@media screen and (max-width: 768px) {
#siteHead {
  padding: 0;
  border-bottom: none;
}
#siteHead h1 {
  padding: 20px 0 0 20px;
}
#siteHead h1 img {
  height: 25px;
}

/* Toggle Button */
#navToggle {
  display: block;
  position: absolute;
  right: 20px;
  top: 22px;
  width: 24px;
  height: 24px;
  cursor: pointer;
  z-index: 101;
}
#navToggle div {
  position: relative;
  width: 24px;
  height: 24px;
}
#navToggle span {
  display: block;
  position: absolute;
  height: 2px;
  width: 100%;
  background: #000;
  left: 0;
  -webkit-transition: .35s ease-in-out;
  -moz-transition: .35s ease-in-out;
  transition: .35s ease-in-out;
}
#navToggle span:nth-child(1) { top: 5px; }
#navToggle span:nth-child(2) { top: 11px; }
#navToggle span:nth-child(3) { bottom: 5px; }
.open #navToggle span:nth-child(1) {
  background: #fff;
  -webkit-transform: translateY(6px) rotate(-45deg);
  transform: translateY(6px) rotate(-45deg);
}
.open #navToggle span:nth-child(2) {
  width: 0;
  left: 50%;
}
.open #navToggle span:nth-child(3) {
  background: #fff;
  -webkit-transform: translateY(-6px) rotate(45deg);
  transform: translateY(-6px) rotate(45deg);
}

/* globalNav */
#globalNav {
  display: none;
  opacity: 0;
  position: absolute;
  top: 0;
  background: rgba(0,0,0,0.75);
  width: 100%;
  height: 100vh;
  -webkit-transition: .5s;
  -moz-transition: .5s;
  transition: .5s;
}
#globalNav .sp_logo {
  display: block;
  width: 100%;
  height: 70px;
  padding: 20px 0 0 20px;
  margin-bottom: 20px;
  line-height: 0;
}
#globalNav .sp_logo img {
  height: 25px;
}
#globalNav ul {
  list-style: none;
  position: static;
  right: 0;
  bottom: 0;
  font-size: 14px;
}
#globalNav ul li {
  float: none;
  line-height: 1.2em;
  position: static;
  padding: 0 30px;
}
#globalNav ul li a {
  width: 100%;
  display: block;
  color: #fff;
  font-size: 2.4rem;
  text-align: right;
  letter-spacing: 3px;
  -webkit-box-sizing: inherit;
  padding: 18px;
  margin: 0;
}
#globalNav ul li a::before {
  position: absolute;
  top: 11px;
  right: 0;
  content: '';
  width: 2px;
  height: 30px;
  background: #fff;
}
#globalNav ul li a::after {
  display: none;
}
#globalNav ul li a:hover::after {
  display: none;
}
.open #globalNav {
  display: block;
  opacity: 1;
  animation-duration: 0.5s;
  animation-name: fade-in;
  -moz-animation-duration: 0.5s;
  -moz-animation-name: fade-in;
  -webkit-animation-duration: 0.5s;
  -webkit-animation-name: fade-in;
}
@keyframes fade-in {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: block;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}
@-moz-keyframes fade-in {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: block;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}
@-webkit-keyframes fade-in {
  0% {
    display: none;
    opacity: 0;
  }
  1% {
    display: block;
    opacity: 0;
  }
  100% {
    display: block;
    opacity: 1;
  }
}

#globalNav .sns {
  display: block;
  width: 100%;
  text-align: right;
  padding: 30px 30px 0;
}
#globalNav .sns .snsIcon {
  display: inline-block;
  margin: 0 0 0 10px;
  line-height: 1;
}
#globalNav .sns a {
  color: #000;
  font-size: 20px;
  line-height: 1;
  text-align: center;
  padding-top: 3px;
  background: #eee;
  display: block;
  width: 30px;
  height: 30px;
}
}


/* main */
article {
  width: 100%;
  margin: 0;
  padding: 0;
}
.bg {
  background: #f8f8f0;
  margin-bottom: 40px;
  padding-top: 40px;
}

/* topView */
#topView {
  width: 100%;
  height: 100vh;
  position: relative;
}
#topView .inner {
  position: absolute;
  width: 100%;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  text-align: center;
}
#topView h2 {
  font-size: 7rem;
  font-weight: 900;
  margin-left: 1rem;
}
#topView p {
  font-size: 2.9rem;
  font-weight: 400;
  font-family: 'Roboto';
  letter-spacing: 2px;
  margin-top: 80px;
}
#topView .arrow::after{
  content: '';
  width: 64px;
  height: 64px;
  border: 0px;
  border-top: solid 2px #000;
  border-right: solid 2px #000;
  -ms-transform: rotate(135deg);
  -webkit-transform: rotate(135deg);
  transform: rotate(135deg);
  position: absolute;
  bottom: 30px;
  left: 50%;
  margin-left: -32px;
  animation-name: fadeIn;
  animation-duration: 2s;
  animation-timing-function: ease-out;
  animation-delay: 0.1s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}
@keyframes fadeIn {
  0% {opacity: 0}
  100% {opacity: 1}
}

/* content */
.content {
  width: 100%;
  max-width: 990px;
  margin: 0 auto;
  padding: 150px 20px 110px;
}
.content h2 {
  color: #293532;
  font-size: 3rem;
  font-family: 'Ropa Sans', sans-serif;
  font-weight: normal;
  line-height: 1;
  margin-bottom: 40px;
}
.content p {
  line-height: 3;
  margin-bottom: 2rem;
}
.content .catchcopy {
  font-size: 4.5rem;
  font-weight: 900;
  line-height: 1;
  margin-bottom: 40px;
}

.mainImg {
  margin: 20px 0 50px;
}
.moreImg img {
  border: 1px solid #eee;
  margin: 10px 0 30px;
}

.moreBtn {
  display: block;
  width: 100%;
  background: #fff;
  max-width: 500px;
  font-size: 2rem;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  margin: 50px auto 0;
  padding: 20px;
  border: 2px solid #000;
  transition: 0.2s linear;
  position: relative;
  z-index: 1;
}
.moreBtn::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background: #000;
  transform-origin: right top;
  transform: scale(0, 1);
  transition: transform .3s;
}
.moreBtn:hover {
  color: #fff;
}
.moreBtn:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

.companyInfo dt {
  color: #999;
  margin-bottom: 10px;
}
.companyInfo dd {
  margin-bottom: 30px;
  padding-left: 1em;
}

.contactForm dt {
  color: #999;
  margin-bottom: 10px;
}
.contactForm dd {
  margin-bottom: 30px;
  padding-left: 1em;
}

#gftp h2 {
  margin-bottom: 30px;
}
.harukiImg {
  float: left;
  margin-right: 15px;
}
.name {
  font-size: 12px;
  font-weight: bold;
  text-align: right;
}
.name img {
  width: 100px;
  margin-left: 10px;
  vertical-align: text-bottom;
}


/* recruit */
#recruit {
  margin-top: 100px;
}
.recruitInfo {
  margin-top: 50px;
}
.recruitInfo h3 {
  font-size: 2.4rem;
  font-weight: 700;
  border-bottom: 1px solid #bfbfbf;
  padding-bottom: 20px;
  margin-bottom: 20px;
}
.recruitInfo h4 {
  margin-bottom: 10px;
}
.recruitInfo p {
  line-height: 1.5;
  font-weight: 400;
  margin-bottom: 10px;
  padding-left: 1em;
}
.recruitInfo ul {
  font-weight: 400;
}
.recruitInfo ul li {
  list-style-type: none;
  margin-bottom: 10px;
  padding-left: 1em;
}
.recruitInfo .recruitInfo_box {
  margin-bottom: 30px;
}

/* footer */
footer#siteFoot {
  width: 100%;
  background: #000;
  padding: 50px;
  color: #fff;
}
footer#siteFoot .inner {
  width: 100%;
  max-width: 970px;
  margin: 0 auto;
  padding: 0;
  display: flex;
  flex-flow: row wrap;
}
footer#siteFoot ul {
  width: 200px;
}
footer#siteFoot ul li {
  list-style-type: none;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
}
footer#siteFoot .companyFoot {
  width: 200px;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 2;
}
footer#siteFoot dt {
  color: #999;
}

footer#siteFoot .sns {
  width: calc(100% - 400px);
  text-align: right;
}
footer#siteFoot .sns .snsIcon {
  display: inline-block;
  margin-left: 20px;
}
footer#siteFoot .sns a {
  color: #fff;
  font-size: 24px;
  line-height: 1;
}

#back {
  position: fixed;
  right: 50px;
  bottom: 30px;
  color: #999;
  font-size: 1.4rem;
  opacity: 0;
  -webkit-transition: opacity 1s ease;
  -o-transition: opacity 1s ease;
  transition: opacity 1s ease;
}
#back .arrow {
  position: relative;
  padding-top: 30px;
}
#back .arrow::before{
  content: '';
  width: 40px;
  height: 40px;
  border: 0px;
  border-top: solid 2px #999;
  border-right: solid 2px #999;
  -ms-transform: rotate(-45deg);
  -webkit-transform: rotate(-45deg);
  transform: rotate(-45deg);
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -20px;
}

.fadeIn {
  opacity: 0;
  -webkit-transition: 1s;
  -o-transition: 1s;
  transition: 1s;
}
.fadeIn.is-show {
  opacity: 1;
  transform: translateY(-40px);
}


@media screen and (max-width: 768px) {

#topView h2 {
  font-size: 3rem;
}
#topView p {
  font-size: 1.4rem;
  margin-top: 30px;
}
#topView .arrow::after{
  width: 40px;
  height: 40px;
  margin-left: -20px;
}
.content {
  padding: 50px 20px 10px;
}
.content h2 {
  font-size: 1.8rem;
  margin-bottom: 15px;
}
.content p {
  font-size: 1.4rem;
  line-height: 2;
  margin-bottom: 2rem;
}
.content .catchcopy {
  font-size: 2.4rem;
  margin-bottom: 20px;
  line-height: 1.5;
}
.moreImg img {
  margin: 10px 0 20px;
}
.moreBtn {
  font-size: 1.6rem;
  margin: 30px auto 0;
  padding: 20px;
}
.companyInfo dt {
  font-size: 1.4rem;
}
.companyInfo dd {
  font-size: 1.4rem;
  margin-bottom: 20px;
}
.contactForm dt {
  font-size: 1.4rem;
}
.contactForm dd {
  font-size: 1.4rem;
  margin-bottom: 20px;
}
.mainImg {
  margin: 20px 0 20px;
}
.harukiImg {
  width: 100px;
}
.name {
  font-size: 10px;
}
.recruitInfo h3 {
  font-size: 1.8rem;
  padding-bottom: 15px;
  margin-bottom: 10px;
}
.recruitInfo ul li {
  font-size: 1.4rem;
  margin-bottom: 10px;
}
footer#siteFoot {
  padding: 20px;
}
footer#siteFoot ul {
  width: 100px;
}
footer#siteFoot ul li {
  font-size: 1rem;
}
footer#siteFoot .companyFoot {
  font-size: 1rem;
}

footer#siteFoot .sns {
  width: calc(100% - 300px);
}
footer#siteFoot .sns .snsIcon {
  margin-left: 10px;
}
footer#siteFoot .sns a {
  font-size: 20px;
}

#back {
  right: 10px;
  bottom: 10px;
  font-size: 1rem;
}
#back .arrow {
  padding-top: 20px;
}
#back .arrow::before{
  content: '';
  width: 20px;
  height: 20px;
  left: 50%;
  margin-left: -10px;
}
}

#siteHead h1 img {height: 25px;}
@media screen and (max-width: 768px) {
#siteHead h1 img {height: 19px;}
#navToggle {top: 17px;}
#globalNav .sp_logo img {height: 19px;}       
}