@charset "utf-8";
/*------------------------------------------------------------
	トープページ
------------------------------------------------------------*/
#main a p:after {
	width: 100%;
	height: 100%;
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	z-index: 10;
}

#main .bigPhoto {
	width: 73.2%;
	overflow: hidden;
}

#main .bigPhotoR {
	float: right;
}

#main .bigPhoto img {
	width: 100%;
	transition: opacity .8s ease;
	-moz-transition: opacity .8s ease;
	-webkit-transition: opacity .8s ease;
}

#main .bigPhoto:hover img {
	opacity: .7;
}

#main .indexTxt {
	margin-top: 38px;
	display: block;
	font-size: 11px;
	font-weight: bold;
	font-family: Meiryo, "メイリオ", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", sans-serif;
	letter-spacing: 2px;
}

#main .indexTxt span {
	margin-right: 19px;
	font-size: 15px;
	font-weight: normal;
	font-style: italic;
	font-family: 'Crimson Text', serif;
	letter-spacing: 0.9px;
}

#main .indexTxt01 {
	margin-right: 30px;
	position: absolute;
	right: 100%;
	bottom: 5px;
	text-align: right;
	vertical-align: bottom;
	width: 20px;
	height: 200px;
	writing-mode: tb-rl;
	-webkit-writing-mode: vertical-rl;
	direction: ltr;
	letter-spacing: 1px;
}

#main .indexTxt01 span {
	margin: 0 0 19px;
}

#main .sec01 {
	height: 100vh;
	text-align: center;
	background-color: #fff;
	position: relative;
}

#main .sec01:before {
	background: #000;
	left: 50%;
	position: absolute;
	top: calc(100% - 33px);
	width: 1px;
	height: 0;
	content: "";
  transition: height .8s ease 1.8s;
}

.loaded #main .sec01:before {
  height: 33px;
}

#main .sec01 h2 {
  	margin-top: -35px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	-moz-transform: translate(-50%,-50%);
	-ms-transform: translate(-50%,-50%);
	-o-transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
  opacity: 0;
  visibility: hidden;
}

#main .sec01 h2 svg {
	transform: scale(.5);
  transform-origin: center bottom;
}

#svg-animation .st0{
  fill:none;
  stroke:#FFFFFF;
  stroke-width:20;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-miterlimit:10;
  stroke-dasharray: 1500;
  stroke-dashoffset:1500;
}

#svg-animation{
  max-width: 100%;
  height: auto;
}

#main .sec01 h2 span {
	margin-top: 28px;
	display: block;
	font-weight: normal;
	font-size: 16px;
	font-family: 'Crimson Text', serif;
	letter-spacing: 1.5px;
}

#main .sec02 {
	margin-bottom: 200px;
	text-align: center;
	position: relative;
}

#main .sec02 .fixImg {
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100vh;
  background: url(../img/index/sec02_bg.jpg) no-repeat center center;
  background-size: cover;
  transition: opacity 1s ease;
}

#main .sec02 .topBox {
  position: relative;
  z-index: 1;
  padding-top: calc(50vh - 101px);
}

#main .sec02 .topBox h2 {
	margin-bottom: 77px;
  opacity: 0;
  transition: opacity 0s ease;
}

#main .sec02 .topBox h2 svg {
  width: 32.5%;
  fill: #fff;
  transition: fill .5s ease;
}

#main .sec02 .topBox h2 .indexTxt {
	margin: 0 25px 51px 0;
	color: #fff;
  transition: color .5s ease;
}

#main .sec02 .topBox h2 .indexTxt span {
	margin: -3px 16px 0 0;
	vertical-align: middle;
	display: inline-block;
}

#main .sec02 .topBox .bd {
  opacity: 0;
  transition: opacity .8s ease;
}

#main .sec02 .topBox p {
	margin: 0 auto 70px;
	max-width: 45.02%;
	font-size: 15px;
	font-weight: 600;
	font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "HGS明朝E", "メイリオ", Meiryo, "Noto Serif JP", serif;
	line-height: 3;
	text-align: left;
	letter-spacing: 2px;
}

#main .sec02 .topBox .textImg {
	margin: 0 auto;
	max-width: 45.02%;
	text-align: left;
}

#main .sec02 .topBox .textImg img {
	width: 90.24%;
}

#main .sec02.show .topBox h2 {
  opacity: 1;
  transition: opacity .8s ease .5s;
}

#main .sec02.showText .fixImg {
  opacity: 0;
}

#main .sec02.showText .topBox h2 .indexTxt {
  color: #000;
}

#main .sec02.showText .topBox h2 svg {
  fill: #000;
}

#main .sec02.showText .topBox .bd {
  opacity: 1;
}

#main .sec03 {
	margin-bottom: 200px;
	position: relative;
}

#main .sec08 .textBox,
#main .sec03 .textBox {
	margin-top: 8px;
	position: absolute;
	top: 50%;
	left: 9.5%;
	width: 28.3%;
	transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
}

#main .textBox embed {
	width: 100%;
}

#main .sec04 {
	margin-bottom: 200px;
	position: relative;
}

#main .sec04 .photo {
	width: 73.2%;
	overflow: hidden;
}

#main .sec04 .textBox {
	position: absolute;
	bottom: 12%;
	right: 10.25%;
	width: 9.5%;
}

#main .sec05 {
	margin-bottom: 200px;
	position: relative;
}

#main .sec05 .textBox {
	position: absolute;
	left: 17%;
	bottom: -0.7%;
	width: 5.85%;
}

#main .sec05 .textBox embed {
	width: 100%;
}

#main .sec05 .txt {
	bottom: 3px;
}

#main .sec06 {
	margin: 0 auto 201px;
	width: 73.15%;
	position: relative;
}

#main .sec06 .bigPhoto {
	width: 100%;
}

#main .sec06 .textBox {
	color: #fff;
}

#main .sec06 .textBox {
	margin-top: 7px;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40%;
	transform: translate(-50%,-50%);
	-moz-transform: translate(-50%,-50%);
	-ms-transform: translate(-50%,-50%);
	-o-transform: translate(-50%,-50%);
	-webkit-transform: translate(-50%,-50%);
}

#main .sec06 a .bigPhoto img {
	width: 100%;
	transition: all 1.6s ease 0s;
	-moz-transition: all 1.6s ease 0s;
	-webkit-transition: all 1.6s ease 0s;
}

#main .sec07 {
	margin-bottom: 200px;
	position: relative;
}

#main .sec07 .textBox {
	position: absolute;
	left: 17%;
	bottom: -1%;
	width: 5.72%;
}

#main .sec07 .textBox embed {
	padding-bottom: 77px;
}

#main .sec08 {
	margin-bottom: 200px;
	position: relative;
}

#main .sec08 .textBox {
	margin-top: -18px;
	left: auto;
	right: 4.2%;
	width: 32%;
}

#main .sec09 {
	position: relative;
	height: 100vh;
}

#main .sec09 .fixImg {
  position: absolute;
  z-index: 1;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 0s ease;
	overflow: hidden;
}

#main .sec09 .fixImg .sub {
	position: absolute;
	top: 0;
	left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/index/sec09_photo.jpg) no-repeat center center;
  background-size: cover;
	transition: all 1.6s ease 0s;
	-moz-transition: all 1.6s ease 0s;
	-webkit-transition: all 1.6s ease 0s;
}

#main .sec09 a {
	display: block;
	height: 100%;
	width: 100%;
	position:relative;
  z-index: 1;
  opacity: 0;
  transition: opacity 0s ease;
}

#main .sec09 p {
	position: absolute;
	top: 50%;
	left: 0;
	right: 0;
	z-index: 1;
	text-align: center;
	transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
  transition: opacity .6s ease;
}

#main .sec09 p .indexTxt {
	margin-top: -72px;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	text-align: center;
	color: #fff;
}

#main .sec09 p embed {
	width: 29%;
}

#main {
	position: relative;
}

#main:before {
	background: #000;
	left: 50%;
	position: absolute;
	bottom: -50px;
	width: 1px;
	height: 50px;
	content: "";
}

#main .sec09.show .fixImg {
  opacity: 1;
  transition: opacity .8s ease;
}

#main .sec09.show a {
  opacity: 1;
  transition: opacity .8s ease .8s;
}

.secBox {
	width: 100%;
	height: 100%;
  transition: opacity .6s ease;
}

.secBox:hover {
	opacity: .8;
}

#gFooter .fBg {
	display: block;
}

#gHeader h1,
#gHeader .menu,
#main .sec01 h2 span {
  opacity: 0;
  transition: opacity ease .8s;
}

#gHeader h1,
#gHeader .menu {
  transition: top .6s ease, opacity ease .8s;
}

#main .sec01 h2 span {
  transition-delay: 2.3s;
}

.loaded #gHeader h1,
.loaded #gHeader .menu,
.loaded #main .sec01 h2 span {
  opacity: 1;
}

#gFooter .fNavi li a {
	border-bottom: none;
}

.target .bigPhoto {
  opacity: 0;
  transition: opacity .8s ease-out;
}

.target .textBox p {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity .8s ease-out 0s, transform .6s ease-out 0s;
}

.target.visible .bigPhoto {
  opacity: 1;
}

.target.visible .textBox p {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .8s ease-out .5s, transform .6s ease-out .5s;
}

.target.visible .textBox p > span {
	display: block;
}


@media all and (min-width: 0) and (max-width: 767px) {
	#main a {
		display: block;
	}

	#main .bigPhoto {
		width: 88%;
		float: none !important;
	}

	#main .bigPhotoR {
		text-align: right;
		width: 100%;
	}

	#main .bigPhotoR img.sp {
		display: inline-block !important;
		width: 88%;
	}

	#main .sec06 a:hover .bigPhoto img,
	#main .bigPhoto a:hover img {
		transform: none;
	}

	#main .bigPhoto:hover img {
		transform: none;
	}

	#main .indexTxt {
		margin-top: 27px;
		font-size: 10px;
		letter-spacing: 1px;
	}

	#main .indexTxt span {
		margin-right: 10px;
		font-size: 13px;
		letter-spacing: 0px;
	}

	#main .indexTxt01 {
		margin: 25px 0 0;
		position: static;
		text-align: left;
		width: auto;
		height: auto;
		writing-mode: lr-tb;
		-webkit-writing-mode: horizontal-tb;
		letter-spacing: 1px;
	}

	#main .sec01 {
		height: 100vh;
	}

  #main .sec01:before {
    top: calc(100% - 40px);
  }

  .loaded #main .sec01:before {
    height: 40px;
  }

  #main .sec01 h2 {
    margin-top: 0;
    width: 219px;
		opacity: 1;
  }

	#main .sec01 h2 svg {
		transform: none;
	}

	#main .sec01 h2 span {
		margin-top: 24px;
		font-size: 14px;
		letter-spacing: 1.3px;
	}

	#main .sec02 {
		margin-bottom: 75px;
	}

  #main .sec02 .fixImg {
    background-image: url(../img/index/sp_sec02_bg.jpg);
  }

	#main .sec02 .topBox h2 {
		margin-bottom: 65px;
	}

  #main .sec02 .topBox h2 svg {
    margin: 0 auto;
    width: 59.5%;
  }

	#main .sec02 .topBox h2 .indexTxt {
		margin: 0 0 42px 0;
		letter-spacing: 2px;
	}

	#main .sec02 .topBox h2 .indexTxt span {
		margin: 0 16px 0 0;
		letter-spacing: 1.2px;
	}

	#main .sec02 .topBox p {
		margin: 0 6% 45px;
		max-width: inherit;
		font-size: 12px;
		line-height: 3.75;
		letter-spacing: 1.5px;
	}

	#main .sec02 .topBox .textImg {
		margin: 0 6% 0 5.5%;
		max-width: inherit;
	}

	#main .sec02 .topBox .textImg img {
		width: 99%;
	}

	#main .sec03 {
		margin-bottom: 68px;
	}

	#main .sec03 .bigPhoto {
		margin-bottom: 23px;
	}

	#main .sec08 .textBox,
	#main .sec03 .textBox {
		margin: 0 0 0 12%;
		position: static;
		width: auto;
		transform: translate(0,0);
		-moz-transform: translate(0,0);
		-webkit-transform: translate(0,0);
		-ms-transform: translate(0,0);
		-o-transform: translate(0,0);
	}

	#main .sec03 .textBox embed {
		width: 77.87%;
	}

	#main .sec04 {
		margin-bottom: 68px;
	}

	#main .sec04 .bigPhoto {
		margin-bottom: 22px;
	}

	#main .sec04 .textBox {
		margin-left: 12%;
		position: static;
		width: auto;
	}

	#main .sec04 .textBox embed {
		width: 90.5%;
	}

	#main .sec05 {
		margin-bottom: 70px;
	}

	#main .sec05 .bigPhoto {
		margin-bottom: 22px;
	}

	#main .sec05 .textBox {
		margin: 0 0 0 12%;
		position: static;
		width: auto;
	}

	#main .sec05 .textBox embed {
		width: 96.5%;
	}

	#main .sec06 {
		margin-bottom: 68px;
		width: 100%;
	}

	#main .sec06 .bigPhoto {
		margin-bottom: 23px;
	}

	#main .sec06 .textBox {
		margin: 0 0 0 12%;
		position: static;
		width: auto;
		color: #000;
		transform: translate(0,0);
		-moz-transform: translate(0,0);
		-webkit-transform: translate(0,0);
		-ms-transform: translate(0,0);
		-o-transform: translate(0,0);
		top: auto;
		left: auto;
	}

	#main .sec06 .textBox embed {
		width: 80.5%;
	}

	#main .sec07 {
		margin-bottom: 68px;
	}

	#main .sec07 .textBox {
		margin: 0 0 0 12%;
		position: static;
		width: auto;
	}

	#main .sec07 .bigPhoto {
		margin-bottom: 23px;
	}

	#main .sec07 .textBox embed {
		padding-bottom: 0;
		width: 87.6%;
	}

	#main .sec08 {
		margin-bottom: 95px;
	}

	#main .sec08 .bigPhoto {
		margin-bottom: 23px;
	}

	#main .sec08 .textBox {
		margin-top: 0;
		width: auto;
	}

	#main .sec08 .textBox embed {
		width: 87.5%;
	}

	#main .sec09  {
		height: 100vh;
	}

  #main .sec09 .fixImg .sub {
    background-image: url(../img/index/sp_sec09_photo.jpg);
  }

	#main .sec09.show:hover .fixImg .sub {
		transform: none;
	}

	#main .sec09 p {
		margin-top: -20px;
	}

	#main .sec09 p > span {
		display: block;
	}

	#main .sec09 p .indexTxt {
		margin-top: -64px;
		letter-spacing: 2px;
	}

	#main .sec09 p .indexTxt span {
		margin-right: 15px;
		font-size: 15px;
	}

	#main .sec09 p embed {
		margin: 0 auto;
		width: 58.5%;
	}

	#main .sec09:before {
		display: none;
	}

	#main .sec09 a:hover p,
	#main .sec09 a:hover p embed {
		opacity: 1;
	}
	
	.secBox:hover {
		opacity: 1;
	}

	.iphone5 #main .sec02 .topBox p {
		letter-spacing: -.3px;
	}

}


@media screen and (min-width: 768px) and (max-width: 1100px){
	  #main .sec09 .fixImg .sub {
    background-image: url(../img/index/tab_sec09_photo.jpg);
  }
	}
