/* reset */
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td{margin:0;padding:0;}
address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;}
ul{list-style:none;}
table{border-collapse:collapse;border-spacing:0;}
caption,th{text-align:left;}
q:before,q:after{content:'';}
object,embed{vertical-align:top;}
legend{display:none;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
img,abbr,acronym,fieldset{border:0;}

body{
	font: 14px/1.9;
	font-family:  'Noto Serif JP', 'Noto Serif', 'Sawarabi Mincho', serif;
	font-weight: 300;
	-webkit-text-size-adjust:100%;
	overflow-x: hidden;
	color: #fff;
	background: #000;
	src: url(//fonts.gstatic.com/ea/sawarabimincho/v1/SawarabiMincho-Regular.eot);
	src: url(//fonts.gstatic.com/ea/sawarabimincho/v1/SawarabiMincho-Regular.eot?#iefix) format('embedded-opentype'),
			 url(//fonts.gstatic.com/ea/sawarabimincho/v1/SawarabiMincho-Regular.woff2) format('woff2'),
			 url(//fonts.gstatic.com/ea/sawarabimincho/v1/SawarabiMincho-Regular.woff) format('woff'),
			 url(//fonts.gstatic.com/ea/sawarabimincho/v1/SawarabiMincho-Regular.ttf) format('truetype');
}

a{
	color: #0066ff;
	text-decoration: none;
}

a:hover, .active{
  text-decoration: underline;
}

a:active, a:focus,input:active, input:focus{outline:0;}


/* ヘッダー
------------------------------------------------------------*/
#header{
	position: relative;
  overflow:hidden;
  width:100%;
  height:640px;
}

#mainImg{
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 640px;
}

#mainImg img{
	position: absolute;
	max-width: 100%;
	width: 100%;
	height: 100%;
	align-items: center;
	justify-content: center;
	text-align: center;
	object-fit: cover;
}

#slogan{
	position: absolute;
  top: 50%;
	width: 100%;
	-webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
	color: #fff;
	line-height: 1.2;
	text-align: center;
}

#slogan img{
	max-width: 50%;
	width: 50%;
	height: 50%;
	align-items: center;
	justify-content: center;
	text-align: center;
	object-fit: cover;
}

#slogan h1{
	font-size: 80px;
	margin-bottom: 20px;
	font-weight:normal;
}

#slogan h2{
	font-size: 20px;
	font-weight:normal;
}

#profile li{
	  margin: 0 auto;
}

/* フッター
------------------------------------------------------------*/
#footer{
	clear: both;
	padding: 50px 10px 10px 0;
	text-align: center;
	font-size: 12px;
}



/* ポップアップ関連
------------------------------------------------------------*/
/* ==========================
  初期設定
========================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}
img {
  width: 100%;
}

/* ==========================
  モーダル（ポップアップ）
========================== */
.js_modalBtnWrap {
  width: 300px;
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
}
.js_modalWrap {
  opacity: 0;
  z-index: -1;
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
	color: #000;
}
.js_modalWrap.active {
  animation: modalOpen 0.3s ease forwards;
}
.js_modalWrap.active2 {
  animation: modalClose 0.3s ease forwards;
}
.js_modalBG {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}
.js_modalContInner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  width: 720px;
  max-width: 100%;
  background-color: #fff;
	color: #000;
	font-size: 80%;
  max-height: 600px;
  padding: 40px;
}

.js_modalCont {
  overflow-y: scroll;
  max-height: 520px;
}
.js_modalCont > * + * {
  margin-top: 10px;
}
.js_modalContInner > .js_modalClose + * {
  margin-top: 0;
}
.js_modalClose {
  display: block;
  position: absolute;
  top: 10.5px;
  right: 10.5px;
  width: 20px;
  height: 20px;
  overflow: hidden;
  cursor: pointer;
  z-index: 1001;
	color: #000;
}
.js_modalClose::before,
.js_modalClose::after {
  content: "";
  background-color: #222;
  position: absolute;
  top: -5px;
  right: 10px;
  width: 1px;
  height: 30px;
}
.js_modalClose::before {
  transform: rotate(45deg);
}
.js_modalClose::after {
  transform: rotate(-45deg);
}

@keyframes modalOpen {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    z-index: 1000;
  }
}
@keyframes modalClose {
  0% {
    opacity: 1;
    z-index: 1000;
  }
  100% {
    opacity: 0;
  }
}

/* ==========================
  コンテンツの中身
========================== */
.ly_inner {
  width: 100%;
  max-width: 1080px;
  margin: 100px auto;
  padding: 40px;
  background-color: #ccc;
}
.ly_inner h2 {
  font-size: 150%;
  font-weight: bold;
  margin-bottom: 30px;
}
.md_textblock > * + * {
  margin-top: 10px;
}
.md_textblock > * + .js_modalBtnWrap {
  margin-top: 20px;
}

/* PC幅に適用 */
@media (min-width: 768px) {
  .hp_sp {
    display: none !important;
  }
}
/* スマホ幅に適用 */
@media (max-width: 767px) {
  .hp_pc {
    display: none !important;
  }
  .js_modalContInner {
    max-height: 400px;
    padding: 20px;
  }
  .js_modalCont {
    max-height: 360px;
  }
  .js_modalClose {
    top: -30px;
  }
  .js_modalClose::before,
  .js_modalClose::after {
    background-color: #fff;
  }
}



/* 共通
------------------------------------------------------------*/

img{
	width: 100%;
	height: auto;
}

section{clear:both;}

section h2{
	font-size: 22px;
	font-weight:normal;
	text-align: center;
	padding-top: 16px;
	padding-bottom: 16px;
}

.inner{
	width: 100%;
	margin: 0 auto;
	padding-bottom: 50px;
}

.inner p{
	text-align: center;
}

.col2 li{
	display: inline-block;
	width: 100%;
  margin: 20px 0 20px 0;
}

.col2 h1{
	margin-top: 25%;
}

.instcm {
	text-align: center;
	margin:auto;
	padding-bottom: 44px;
}

.instcm img{
	padding-top: 20px;
	padding-bottom: : 20px;
	width: 128px;
}

.fadeInUp {
	opacity : 0;
	transform: translateY(20px);
	transition: 1.5s;
}

#mainImg .fadeInUp {
	opacity : 0;
	transform: translateX(180px);
	transition: 3.5s;
}


/* topMassage
------------------------------------------------------------*/
#topMassageR {
	margin-bottom: 32px;
}

#topMassageR h2{
	font-size: 3em;
}

#topMassageR p{
	font-size: 1em;
}

.greeting{
	text-align: center;
	width: 60%;
	margin: 0 auto;
	padding-bottom: 40px;
}

.greetingR{
	text-align: left;
	width: 100%;
	margin: 0 auto;
	padding-bottom: 40px;
	font-size: 1.8em;
}

.greetingR h3{
	margin-bottom: 64px;
	font-size: 1.2em;
	color: white;
	text-align: center;
}

.greetingR a {
	margin-top: 64px;
	margin-bottom: 64px;
	color: white;
	text-decoration: underline;
	font-size: 0.8em;
}

.greetingR a:hover{
  color: #25ceff;
}

.greetingR p{
	margin: 0.5em 2.5em;
}

/* commitment
------------------------------------------------------------*/
.bg-video-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 75vh;
  background: url("../images/back01.jpg") no-repeat center center/cover;
}
video {
  min-width: 100%;
  min-height: 100vh;
  z-index: 1;
}
.overlay {
  width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  background-image: linear-gradient(45deg, rgba(0,0,0,.3) 50%, rgba(0,0,0,.7) 50%);
  background-size: 3px 3px;
  z-index: 2;
}

/* service
------------------------------------------------------------*/
#service header{
	position: relative;
	overflow:hidden;
	width:100%;
	border-top: solid #fff 1px;
}

.work{
	position: relative;
}

.work h3{
	position: absolute;
	top: 20%;
  left: 50%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  margin:0;
  padding:0;
  font-size: 2em;
}

.workR h2{
	position: absolute;
	top: 10%;
  left: 50%;
  -ms-transform: translate(-50%,-50%);
  -webkit-transform: translate(-50%,-50%);
  transform: translate(-50%,-50%);
  margin:0;
  padding:0;
	font-weight: bold;
  font-size: 3em;
}

.work img{
	max-width: 100%;
	width: 100%;
	height: 100%;
	justify-content: center;
}

.work p{
 	position: absolute;
	top: 60%;
	left: 50%;
	-ms-transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	margin:0;
	padding:0;
	font-size: 1em;
}

.workR p{
	text-align: left;
 	position: absolute;
	top: 50%;
	left: 50%;
	-ms-transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
	transform: translate(-50%,-50%);
	font-size: 1.75em;
}

/* client
------------------------------------------------------------*/
#client{
	background-color:#fff;
	color: #fff;
	padding-bottom: 20px;
	background-image: url("../images/clientbk.jpg")
}

#client header{
	position: relative;
	overflow:hidden;
	width:100%;
	border-top: solid #fff 1px;
}

.custom ul{
	border-top: solid #fff 1px;
	border-bottom: solid #fff 1px;
	padding-left: 15px;
}

.clientUl{
	display: flex;
	align-items: center;
	flex-direction: column;
}

/* contact
------------------------------------------------------------*/
#contact{
	background: url(../images/bgSec04.jpg) no-repeat 100% 100% fixed;
	background-size: cover;
	-webkit-background-size: cover;
	color: #000;
}

.btn {
  text-align: center;
	padding-top: 40px;
}

.btn-border {
  display: inline-block;
  max-width: 180px;
  text-align: left;
  border: 2px solid #000;
  font-size: 16px;
  color: #000;
  text-decoration: none;
  font-weight: bold;
  padding: 8px 16px;
  border-radius: 4px;
  transition: .4s;
}

.btn-border:hover {
  background-color: #000;
  border-color: #FFF;
  color: #FFF;
}

.btn2 {
  text-align: center;
	padding-top: 40px;
}

.btn2 a{
  text-align: center;
	font-size: 2em;
}

.btn-border2 {
  display: inline-block;
  max-width: 720px;
  text-align: left;
  border: 2px solid #FFF;
  font-size: 16px;
  color: #FFF;
  text-decoration: none;
  font-weight: bold;
  padding: 8px 16px;
  border-radius: 4px;
  transition: .4s;
}

.btn-border2:hover {
  background-color: #FFF;
  border-color: #000;
  color: #000;
}

/* profile
------------------------------------------------------------*/
#profile dl{
	line-height: 1.2;
}

#profile dt{
	clear: left;
	float: left;
	display: block;
	width: 30%;
	margin-right: 10%;
	margin-bottom: 8px;
	text-align: right;
	line-height: 1.6em;
}

#profile dd{
	width: 60%;
	float: left;
	text-align: left;
	margin-bottom: 15px;
	line-height: 1.6em;
}

#profile header{
	display: none;
}

/*---STARTハンバーガーメニュー---*/
/*　ハンバーガーボタン　*/
.logo {
  display : block;
  position: fixed;
  z-index : 3;
  left : 13px;
  top   : 12px;
  width : 68px;
  height: 68px;
  cursor: pointer;
  text-align: center;
}

/*---STARTハンバーガーメニュー---*/
/*　ハンバーガーボタン　*/
.hamburger {
  display : block;
  position: fixed;
  z-index : 3;
  right : 13px;
  top   : 12px;
  width : 42px;
  height: 42px;
  cursor: pointer;
  text-align: center;
}
.hamburger span {
  display : block;
  position: absolute;
  width   : 30px;
  height  : 4px ;
  left    : 6px;
  background : #fff;
  -webkit-transition: 0.3s ease-in-out;
  -moz-transition   : 0.3s ease-in-out;
  transition        : 0.3s ease-in-out;
}
.hamburger span:nth-child(1) {
  top: 10px;
}
.hamburger span:nth-child(2) {
  top: 20px;
}
.hamburger span:nth-child(3) {
  top: 30px;
}

/* ナビ開いてる時のボタン */
.hamburger.active {
  -webkit-transition: all 0.3s ease-in-out;
  -o-transition     : all 0.3s ease-in-out;
  transition        : all 0.3s ease-in-out;
  -webkit-transition-delay: 0.6s;
  -o-transition-delay     : 0.6s;
  transition-delay        : 0.6s;
  -webkit-transform: rotate(45deg);
  -ms-transform    : rotate(45deg);
  -o-transform     : rotate(45deg);
  transform        : rotate(45deg);
}
.hamburger.active span:nth-child(2){
  width: 0px;
}
.hamburger.active span:nth-child(1),
.hamburger.active span:nth-child(3){
  -webkit-transition-delay: 0.3s;
  -o-transition-delay: 0.3s;
  transition-delay: 0.3s;
}
.hamburger.active span:nth-child(1){
  -webkit-transform: translateY(4px);
  -ms-transform    : translateY(4px);
  -o-transform     : translateY(4px);
  transform        : translateY(4px);
}

.hamburger.active span:nth-child(3){
  -webkit-transform: translateY(-16px) rotate(90deg);
  -ms-transform: translateY(-16px) rotate(90deg);
  -o-transform : translateY(-16px) rotate(90deg);
  transform    : translateY(-16px) rotate(90deg);
}


nav.globalMenuSp {
  position: fixed;
  z-index : 2;
  top  : 0;
  left : 0;
  color: #000;
  background: #fff;
  text-align: center;
  transform: translateY(-100%);
  transition: all 0.9s;
  width: 100%;
}

nav.globalMenuSp ul {
  background: #111;
  margin: 0 auto;
  padding: 0;
  width: 100%;
}

nav.globalMenuSp ul li {
  list-style-type: none;
  padding: 0;
  width: 100%;
}
nav.globalMenuSp ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
nav.globalMenuSp ul li:hover{
  background :#000;
}

nav.globalMenuSp ul li a {
  display: block;
  color: #fff;
  padding: 1em 0;
  text-decoration :none;
}

/* このクラスを、jQueryで付与・削除する */
nav.globalMenuSp.active {
  transform: translateY(0%);
}
/*---ENDハンバーガーメニュー---*/

/* RESPONSIVE 設定
------------------------------------------------------------*/

@media only screen and (min-width: 1200px){
	.inner{
		width: 1024px;
		padding-bottom: 120px;
	}
	section h2{
		padding: 20px 0 20px;
	}
}

@media only screen and (min-width: 800px){
	body{
		font-size:14px;
	}

	/* profile
	-----------------*/
	#profile{
		padding-top: 8px;
	}

  #footer{
		padding: 30px 10px 10px 0;
	}

	.work img{
		max-height: 25em;
	}

}

@media only screen and (min-width: 641px){
	.col2 li{
		width: 40%;
		padding: 0 3%;
		vertical-align: top;
	}

}

@media only screen and (min-width:1px) and (max-width: 500px){

	#header{
		position: relative;
	  overflow:hidden;
	  width:100%;
	  height:480px;
	}

	#mainImg{
		position: relative;
		overflow: hidden;
		width: 100%;
		height: 480px;
	}

		#slogan h1{
			font-size: 31px;
		}

		#slogan h2{
			font-size: 16px;
		}

	.greeting{
		font-size: 0.8em;
	}

	.greetingR{
		font-size: 1.2em;
	}

	.work h3{
		position: absolute;
		top: 17.5%;
		left: 50%;
		text-align: center;
		width: 100%;
		transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
		font-weight: bold;
		font-size: 1.5em;
	}

	.workR h2{
		position: absolute;
		top: 10%;
		left: 50%;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		padding:0 10px;
		font-weight: bold;
		font-size: 1.5em;
	}

	.work img{
		max-width: 100%;
		width: 100%;
		height: 100%;
		justify-content: center;
	}

	.work p{
		position: absolute;
		top: 62.5%;
		left: 50%;
		width: 80%;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		font-size: 0.75em;
	}

	.workR p{
		position: absolute;
		text-align: left;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		font-size: 0.75em;
	}

	.workR img{
		height: 380px;
		justify-content: center;
	}

	.clientUl li{
		font-size: 0.8em;
	}

	.inner p{
		font-size: 0.8em;
	}

	.bg-video-wrap {
	  position: relative;
	  overflow: hidden;
	  width: 100%;
	  height: 30vh;
	  background: url("../images/back01.jpg") no-repeat center center/cover;
	}

	#topMassageR h2{
		font-size: 1.5em;
	}

	.col2 h1{
		margin-top: 5%;
	}

}

@media only screen and (min-width:501px) and (max-width: 800px){

	#slogan h1{
		font-size: 31px;
	}

	#slogan h2{
		font-size: 16px;
	}

	.work h3{
		position: absolute;
		top: 20%;
	  left: 50%;
	  -ms-transform: translate(-50%,-50%);
	  -webkit-transform: translate(-50%,-50%);
	  transform: translate(-50%,-50%);
	  padding:0 10px;
		font-weight: bold;
	  font-size: 1.5em;
	}

	.work p{
		position: absolute;
		top: 60%;
		left: 50%;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		font-size: 1em;
	}

	.workR h2{
		position: absolute;
		top: 10%;
	  left: 50%;
	  -ms-transform: translate(-50%,-50%);
	  -webkit-transform: translate(-50%,-50%);
	  transform: translate(-50%,-50%);
	  padding:0 10px;
		font-weight: bold;
	  font-size: 2em;
	}

	.work img{
		max-width: 100%;
		width: 100%;
		height: 100%;
		justify-content: center;
	}

	.workR p{
	 	position: absolute;
		text-align: left;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		font-size: 1em;
	}
}

@media only screen and (min-width:800px) and (max-width: 1198px){
	.workR p{
		position: absolute;
		top: 50%;
		left: 50%;
		-ms-transform: translate(-50%,-50%);
		-webkit-transform: translate(-50%,-50%);
		transform: translate(-50%,-50%);
		font-size: 1.25em;
	}
}

@media only screen and (max-width: 1199px){
	section h2{
		padding: 20px 0 20px 0;
	}
	#topMassage h2{
		padding: 70px 0 20px;
	}
	#topMassageR h2{
		padding: 70px 0 20px;
	}
}
