*{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-ms-box-sizing: border-box;
	-o-box-sizing: border-box;
	box-sizing: border-box;
}

body{
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 1em;
	font-weight: 500;
	width: 100%;
  	min-width: 100%;
  	margin: 0px;
	padding: 0px;
	letter-spacing: 0.05em;
}

li{
	list-style: none;
}

h1,h2,h3,h4,h5,dl,ul,p,dt,dd,li{
  margin: 0;
  padding: 0;
  color: #000;
  line-height: 2;
}

figure{
	margin: 0;
}


a{
	outline: none;
	color: #000;
}



img {
	margin: 0px;
	padding: 0px;
	border: 0;
	vertical-align: bottom;
	width: 100%;
	height: auto;
}


html{
	height: 100%;
}

#wrapper {
	width: 100%;
	overflow: hidden;
}
.bg-wrap {
	position: relative;
	width: 100%;
	overflow-y: scroll;
	overflow-x: hidden;
	background-image: url("../img/teaser-pc-bg.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
	height: 100vh;
}

.ta_c{
	text-align: center;
}

.ta_r{
	text-align: right;
}

.mt_10{
	margin-top: 10px;
}

.mt_20{
	margin-top: 20px;
}

.mt_30{
	margin-top: 30px;
}

.mt_50{
	margin-top: 50px;
}

.mt_70{
	margin-top: 70px;
}

.mt_80{
	margin-top: 80px;
}

.mt_100{
	margin-top: 100px;
}

.mt_150{
	margin-top: 150px;
}

.mt_200{
	margin-top: 200px;
}

.mb_20{
	margin-bottom: 20px;
}

.mb_30{
	margin-bottom: 30px;
}

.mb_50{
	margin-bottom: 50px;
}

.mb_100{
	margin-bottom: 50px;
}
.mb_1l{
	margin-bottom: 1em;
}
.mr_10{
	margin-right: 10px;
}

.mr_20{
	margin-right: 20px;
}

.mr_30{
	margin-right: 30px;
}

.mr_50{
	margin-right: 50px;
}

.mr_100{
	margin-right: 100px;
}

.mr_200{
	margin-right: 200px;
}

.mr_250{
	margin-right: 250px;
}

.mr_280{
	margin-right: 280px;
}

.ml_10{
	margin-left: 10px;
}

.ml_20{
	margin-left: 20px;
}

.ml_30{
	margin-left: 30px;
}

.ml_50{
	margin-left: 50px;
}

.ml_60{
	margin-left: 60px;
}

.ml_100{
	margin-left: 100px;
}

.ml_150{
	margin-left: 100px;
}

.ml_210{
	margin-left: 210px;
}

.ml_300{
	margin-left: 300px;
}

.pt_20{
	padding-top: 20px;
}

.pt_30{
	padding-top: 30px;
}

.pt_50{
	padding-top: 50px;
}

.pt_100{
	padding-top: 100px;
}

.pt_200{
	padding-top: 200px;
}

.pb_20{
	padding-bottom: 20px;
}

.pb_50{
	padding-bottom: 50px;
}

.pb_100{
	padding-bottom: 100px;
}

.pl_20{
	padding-left: 20px;
}

.txt_box{
	padding: 0 15px;
}

.lh-1{
	line-height: 1.5;
}

.big{
	font-size: 1.6em;
	font-weight: bold;
}

.big2{
	font-size: 1.2em;
	margin-bottom:10px;
}
.big3{
	font-size: 1.4em;
}
.bld{
	font-weight: 800;
}
.small{
	font-size: 0.7em;
}

.small2{
	font-size: 0.8em;
}
.mdl {
	font-size: 0.9em;
}


.mb_10{
	padding-bottom: 10px;
}
.mb_30 {
	margin-bottom: 30px;
}
.mb_40 {
	margin-bottom: 40px;
}

.w-860{
	width: 860px;
	margin: 0 auto;
}

.flex1{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
}

.flex2{
    display:flex;
    flex-wrap:wrap;
    margin: auto;
	align-items: center;
	justify-content: flex-start;
}

.flex3{
    display:flex;
	justify-content: space-around;
    flex-wrap:wrap;
}

.flex4{
    display:flex;
    flex-wrap:wrap;
	justify-content: flex-start;
}

.flex5{
    display:flex;
    flex-wrap:wrap;
	justify-content: flex-end;
}

.flex6{
    display:flex;
    flex-wrap:wrap;
	justify-content: center;
}
.flex7 {
    display: flex;
    flex-wrap: wrap;
    margin: auto;
    align-items: center;
    justify-content: space-between;
}


.spbr {
		display: none;
	}

.r-parts{
    position: relative;
    align-self: center;
	font-family: "Zen Old Mincho", serif;
	letter-spacing: 0.15em;
}

.contact-btn a {
    background: #000;
    position: relative;
    display: flex;
    justify-content: space-around;
    align-items: center;
    margin: 0 auto;
    width: 220px;
	height: 50px;
    color: #fff;
    transition: 0.3s ease-in-out;
    font-weight: 500;
    z-index:0;
	border: 1px solid #000;
	border-radius: 9999px;
	font-size: 1.2em;
}
.contact-btn a:before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0;
    display: block;
    background: #fff;
    transition: .3s;
    left:0;
	border-radius: 9999px;
}
.contact-btn a:hover {
    color: #000;
}
.contact-btn a:hover:before {
    width: 100%;
    z-index: -1;
}

/*以下個別*/

.cont-box{
	max-width: 1200px;
	width: 90%;
	margin: 0 auto;
}

.cont-box2{
	max-width: 800px;
	width: 90%;
	margin: 0 auto;
}

.cont-box3 {
    max-width: 880px;
    width: 90%;
    margin: 0 auto;
}
.cont-box4 {
    max-width: 1040px;
    width: 90%;
    margin: 0 auto;
}
.cont-box5 {
    max-width: 700px;
    width: 90%;
    margin: 0 auto;
}
.mb2p{
	margin-bottom: 2%;
}
.mb3p{
	margin-bottom: 3%;
}
.mb5p{
	margin-bottom: 5%;
}
.mb10p{
	margin-bottom: 10%;
}
.mb15p{
	margin-bottom: 15%;
}
.mt2p{
	margin-top: 2%;
}
.mt3p{
	margin-top: 3%;
}
.mt5p{
	margin-top: 5%;
}
.mt10p{
	margin-top: 10%;
}
.mt15p{
	margin-top: 15%;
}

header{
    max-width: 1100px;
	width: 90%;
    height: 80px;
    margin: 0 auto;
	padding: 25px 0;
    position: relative;
}

header a{
	text-decoration: none;
}
.kv-teaser{
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	position: relative;
}
.kv-teaser-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	flex-direction: row-reverse;
	width: 100%
}
.teaser-img-inner {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	align-items: center;
	width: 67%;
}
.teaser-copy1 {
	width: 14%;
	max-width: 159px;
}
.teaser-copy2 {
	width: 19%;
	max-width: 227px;
	position: relative;
    z-index: 1;
}

.teaser-img-inner img:nth-child(1) {
	display: none;
}
.teaser-img-inner img:nth-child(2) {
	max-width: 786px;
	position: relative;
	z-index: 1;
	animation-delay: 4s;
	animation-name: size;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	animation-duration: 0.2s;
}
@keyframes size{
  /*0% { transform: scale(1); }
  50% { transform: scale(1.2); }
  100% { transform: scale(1); }*/
	
    0% {transform: translate(0px, 0px) rotateZ(0deg)}
    15% {transform: translate(2px, 2px) rotateZ(2deg)}
    25% {transform: translate(0px, 2px) rotateZ(0deg)}
    35% {transform: translate(2px, 0px) rotateZ(-2deg)}
    45% {transform: translate(0px, 0px) rotateZ(0deg)}
    55% {transform: translate(0px, 0px) rotateZ(0deg)}
    65% {transform: translate(2px, 2px) rotateZ(2deg)}
    75% {transform: translate(0px, 2px) rotateZ(0deg)}
    85% {transform: translate(2px, 0px) rotateZ(-2deg)}
    100% {transform: translate(0px, 0px) rotateZ(0deg)}
}
.teaser-img-inner img:nth-child(3) {
	max-width: 559px;
	width: 80%;
	margin-top: -8%;
	opacity: 0;
	animation-delay: 2.5s;
	animation-name: fadein3;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
	animation-duration: 1s;
}
.fadein {
	opacity: 0;
	animation-delay: 0.5s;
	animation-name: fadein;
	animation-duration: 1.5s;
	animation-timing-function: ease-out;
	animation-fill-mode: forwards;
}
@keyframes fadein {
  0% {
     opacity: 0;
  }
  100% {
     opacity: 1;
  }
}
.fadein2 {
  opacity: 0;
  animation-name: fadein;
  animation-duration: 1.5s;
  animation-delay: 1.5s;
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}
@keyframes fadein {
  0% {
     opacity: 0;
  }
  100% {
     opacity: 1;
  }
}
@keyframes fadein3 {
  0% {
     opacity: 0;
	  transform: translateX(-20px);
  }
  100% {
     opacity: 1;
	  transform: translateX(0px);
  }
}
.teaser-credit {
	max-width: 1100px;
	width: 90%;
	margin: 0 auto;
}
.teaser-credit p {
	color: #fff;
	font-size: clamp(0.625rem, 0.34rem + 0.45vw, 0.875rem);
}
footer {
	padding: 0 0 10px;
}
footer address {	
	font-family: 'Noto Sans JP', sans-serif;
	color: #fff;
	font-size: clamp(0.625rem, 0.482rem + 0.22vw, 0.75rem);
	text-align: center;
	font-style: normal;
}

footer a{
	text-decoration: none;
	color: #fff;
}

.top{
	padding: 0 0 30px;
}

.pc-header{
	width: 100%;
	height: 80px;
    padding: 0 20px;
    position: relative;
    background: #fff;
	display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
}

header h1 {
	line-height: 1;
}
.header-logo img{
	width: 84px;
    height: auto;
}

.header-logo a{
    transition: 0.3s ease-in-out all;
	opacity: 1;
	display:block;
}
.header-logo a:hover{
	opacity: 0.6;
}
.sp-header{
	display: none;
}
.pc-bl {
  display: block;
}

.pc-nn{
  display: none;
}
.sp-contact-btn{
	display: none;
}
.pi-1 {
	position: absolute;
	max-width: 134px;
	/*top: 2vw;
	left: 40vw;*/
	top: calc(7% - 20px);
	left: calc(50% - 150px);
	width: 10%;
}
.pi-2 {
	position: absolute;
    max-width: 109px;
	top: calc(12% - 20px);
	left: calc(50% - 420px);
    width: 10%;
}
.pi-3 {
	position: absolute;
    max-width: 120px;
	top: calc(25% - 20px);
	left: calc(50% - 490px);
    width: 10%;
    z-index: 0;
}

.pi-4 {
	position: absolute;
    max-width: 85px;
	top: calc(32% - 20px);
	left: calc(50% - 360px);
    width: 10%;
}
.pi-5 {
	position: absolute;
    max-width: 100px;
	top: calc(50vh - -6vw);
    left: calc(50% - 170px);
    width: 10%;
}
.pi-6 {
	position: absolute;
    max-width: 130px;
	top: calc(50vh - -13vw);
    left: calc(50% - 290px);
    width: 10%;
}

@media screen and (max-width:768px){
	.teaser-copy1,.teaser-copy2{
		display: none;
	}
	.teaser-img-inner {
		width: 100%;
		margin: 0 auto;
	}
	.r-parts{
		display: none;
	}
	header {
    width: 100%;
    padding: 3% 3%;
    position: relative;
	}
	.header-logo img {
    width: 18%;
	}
	#wrapper {
}
	.bg-wrap{
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100%;
    background-image: url("../img/teaser-sp-bg.webp");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    height: auto;
	}
	.teaser-img-inner img:nth-child(1) {
	width: 35%;
	display: block;
	margin-top: -8%;
	position: relative;
    z-index: 1;
	}
	.teaser-img-inner img:nth-child(2) {
		margin-top: -12%;
		width: 100%;
	}
	.teaser-img-inner img:nth-child(3) {
		margin-top: -8%;
		width: 80%;
	}
	.teaser-credit {
		flex: 1;
		margin-bottom: 2%;
	}
	footer {
    margin: 1% 0 5%;
}
	.sp-bl{
		display: block;
	}

	.sp-nn{
		display: none!important;
	}
	.main-visual {
		display: none;
	}
	.main-visual2 {
		display: grid;
		place-content: center;
		height: 60vh;
	}
	.main-visual2 img {
		width:90%;
		margin: 0 auto;
	}
	.sp-contact-btn{
		display: block;
	}
	.sp-contact-btn a {
		background: #fff;
		text-decoration: none;
		position: relative;
		display: flex;
		justify-content: space-around;
		align-items: center;
		margin: 0 auto;
		width: 50%;
		height: 50px;
		color: #000;
		transition: 0.3s ease-in-out;
		font-weight: 500;
		z-index:0;
		border-radius: 9999px;
		font-size: 1.2em;
		font-family: "Zen Old Mincho", serif;
	}
	
	.si-1 {
	position: absolute;
	top: calc(26% - 20px);
    left: calc(50% - 0px);
	width: 13%;
	}
	.si-2 {
	position: absolute;
	top: calc(35% - 20px);
    left: calc(50% - 120px);
    width: 12%;
	}
	.si-3 {
	position: absolute;
	top: calc(37% - 20px);
    left: calc(50% - 200px);
    width: 18%;
    z-index: 0;
	}
	.si-4 {
	position: absolute;
	top: calc(44% - 20px);
    right: calc(50% - 190px);
    width: 13%;
	}
	.si-5 {
	position: absolute;
	bottom: 28vh;
    left: calc(50% - 170px);
    width: 10%;
	}
	.si-6 {
	position: absolute;
	bottom: 23vh;
    right: calc(50% - 220px);
    width: 19%;
	}
	.header-logo a:hover,header a:hover{
		opacity: 1;
	}
	
}