html,
body {
  overflow-x: hidden;
}

#wrap {
  position: relative;
  overflow: hidden;
	padding-top: 0;
}
@media screen and (max-width: 910px) {
}
@media screen and (max-width: 680px) {
}
/* --------------------------------------------------- */
#mainvisual {
	width: 100%;
	height: 1000px;
	max-height: 100vh;
	position: relative;
	background: url("../images/common/back01.jpg") center;
	background-size: 400px;
	z-index: 0;
	margin-top: 70px;
	margin-bottom: 20vh;
}
#mainvisual .mv-ttl {
  position: absolute;
  width: 150px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;

  opacity: 0;
  animation: mvFade 1.2s ease forwards;
  animation-delay: 0.3s;
}
@keyframes mvFade {
  from {
    opacity: 0;
    transform: translate(-50%, -48%);
  }
  to {
    opacity: 1;
    transform: translate(-50%, -50%);
  }
}
#mainvisual .img1 {
	width: 716px;
	height: 3236px;
	position: absolute;
	top: 0;
	left: 3%;
	z-index: 0;
}
#mainvisual .img1 .obi1,
#mainvisual .img1 .obi3 {
	display: block;
	width: 237px;
	height: 120vh;
	background: url("../images/common/img01.png") repeat-y left top;
	background-size: 237px;
}
#mainvisual .img1 .obi2 {
	width: 716px;
}
#mainvisual .img1 .obi3 {
	height: 100vh;
	margin: 0 -1px 0 auto;
}
#mainvisual .img2 {
	position: absolute;
	z-index: 0;
	width: 620px;
	top: 0;
	right: -150px;
	display: none;
}

@media screen and (max-width: 1150px) {
	#mainvisual {
        margin-top: 50px;
    }
	#mainvisual .img1 {
        left: -10%;
    }
}
@media screen and (max-width: 680px) {
	#mainvisual {
        height: 600px;
		max-height: none;
		min-height: 100vh;
        margin-top: 50px;
        margin-bottom: 10vh;
    }
	#mainvisual .mv-ttl {
        width: 100px;
    }
	#mainvisual .img1 {
        width: 330px;
        height: 2500px;
        left: -14%;
    }
    #mainvisual .img1 .obi1,
    #mainvisual .img1 .obi3 {
        display: block;
        width: 109px;
        height: 80vh;
        background-size: 109px;
    }
    #mainvisual .img1 .obi2 {
        width: 330px;
    }
    #mainvisual .img1 .obi3 {
        height: 600px;
    }
}
/* --------------------------------------------------- */
#sec01 {
	position: relative;
	z-index: 2;
	max-width: 660px;
	width: 80%;
	margin: 0 auto 150px;
}
#sec01 p {
	margin-bottom: 50px;
	background: url("../images/common/back03.jpg") center;
	background-size: 400px;
}
@media screen and (max-width: 1150px) {
	#sec01 {
		width: 80%;
		margin: 0 8% 100px auto;
	}
}
@media screen and (max-width: 980px) {
}
@media screen and (max-width: 680px) {
	#sec01 {
		width: 85%;
		margin: 0 8% 60px auto;
	}
	#sec01 p {
		padding: 0px;
		margin-bottom: 30px;
	}
}
/* --------------------------------------------------- */
#sec02 {
	position: relative;
	z-index: 2;
	width: 100%;
	margin: 0 auto;
}
#sec02 .inner {
	max-width: 1500px;
	width: 100%;
	margin: 0 auto 200px;
	position: relative;
	z-index: 1;
}
#sec02 .ph1 {
	max-width: 1300px;
	width: 90%;
	margin: 0 0 100px auto;
}
#sec02 .ph-set {
	max-width: 1150px;
	width: 90%;
	margin: 0 auto;
	position: relative;
}
#sec02 .ph2 {
	width: 55%;
	margin-bottom: 4%;
}
#sec02 .ph3 {
	width: 30%;
	position: absolute;
	top: 0;
	left: 59%;
}
#sec02 .ph4 {
	width: 40%;
	position: absolute;
	top: 28%;
	left: 59%;
}
#sec02 .ph5 {
	width: 33%;
	margin: 0 auto 0 22%;
}
#sec02 .aos-up[data-aos="fade-up"]:not(.aos-animate) {
  transform: translate3d(0, 120px, 0);
}

#sec02 .ph-set > div[data-aos] {
  transition-delay: 0s; /* リセット */
}
#sec02 .ph-set > div:nth-child(1)[data-aos].aos-animate {
  transition-delay: 0.1s;
}
#sec02 .ph-set > div:nth-child(2)[data-aos].aos-animate {
  transition-delay: 0.35s;
}
#sec02 .ph-set > div:nth-child(3)[data-aos].aos-animate {
  transition-delay: 0.2s;
}
#sec02 .ph-set > div:nth-child(4)[data-aos].aos-animate {
  transition-delay: 0.5s;
}

#sec02 .flip {
  display: block;
}
#sec02 .flip img {
  display: block;
  width: 100%;
}


#sec02 .img1 {
	width: 716px;
	height: auto;
	position: absolute;
	top: 50%;
	bottom: -150px;
	left: 3%;
	z-index: 0;
}
#sec02 .img1 .obi {
	display: block;
	width: 237px;
	height: 100%;
	background: url("../images/common/img01.png") repeat-y left top;
	background-size: 237px;
	margin: 0 -1px 0 auto;
}
@media screen and (max-width: 1150px) {
	#sec02 .img1 {
        left: -10%;
    }
}
@media screen and (max-width: 980px) {
	#sec02 .inner {
        margin: 0 auto 150px;
    }
	#sec02 .ph1 {
        width: 95%;
        margin: 0 0 60px auto;
    }
}
@media screen and (max-width: 680px) {
	#sec02 .ph1 {
        width: 97%;
        margin: 0 0 20px auto;
    }
	#sec02 .inner {
        margin: 0 auto 100px;
    }
	#sec02 .img1 {
        width: 330px;
        height: auto;
		top: 0;
		bottom: -80px;
        left: -14%;
    }
    #sec02 .img1 .obi {
        width: 109px;
        height: 100%;
        background-size: 109px;
    }
}
/* --------------------------------------------------- */
#sec03 {
	position: relative;
	z-index: 2;
}
#sec03 .icon {
	width: 50px;
	margin: 0 auto 30px;
}
#sec03 .instagram {
	max-width: 1500px;
	width: 100%;
	margin: 0 auto;
}
@media screen and (max-width: 980px) {
}
@media screen and (max-width: 680px) {
	#sec03 .icon {
        width: 30px;
        margin: 0 auto 20px;
    }
}
/* --------------------------------------------------- */
#sec04 {
	position: relative;
	z-index: 2;
}
#sec04 .img1 {
	width: 1196px;
	height: 3236px;
	position: absolute;
	top: 0;
	left: 3%;
	z-index: 0;
	padding-left: 480px;
}
#sec04 .img1 .obi1 {
	width: 716px;
}
#sec04 .img1 .obi2 {
	display: block;
	width: 237px;
	height: 40vh;
	background: url("../images/common/img01.png") repeat-y left top;
	background-size: 237px;
	margin: 0 0 0 auto;
}
#sec04 .inner {
	position: relative;
	z-index: 1;
	max-width: 1500px;
	width: 90%;
	margin: 0 auto;
	padding: 200px 0;
}
#sec04 .block {
	max-width: 1100px;
	width: 100%;
	margin: 0 auto;
	background-color: rgba(255,255,255,.8);
	padding: 40px;
	border: #fff 1px solid;
	border-radius: 4px;
}
#sec04 .block dl {
	width: 100%;
	display: table;
	margin: 3px 0;
	border-bottom: rgba(0,0,0,.05) 1px solid;
	border-right: rgba(0,0,0,.05) 1px solid;
}
#sec04 .block dt,
#sec04 .block dd {
	display: table-cell;
	vertical-align: top;
	padding: 15px 20px;
	line-height: 1.6;
}
#sec04 .block dt {
	text-align: center;
	background-color: rgba(239,227,191,.8);
	width: 200px;
	vertical-align: middle;
	padding: 15px 0px;
}
#sec04 .block dd {
	background-color: rgba(255,255,255,.8);
}
@media screen and (max-width: 1150px) {
	#sec04 .img1 {
        left: -10%;
    }
}
@media screen and (max-width: 980px) {
	#sec04 .inner {
        padding: 150px 0;
    }
	#sec04 .block dt {
		width: 170px;
	}
}
@media screen and (max-width: 680px) {
	#sec04 .img1 {
        width: 551px;
        height: auto;
        left: -14%;
		padding-left: 221px;
    }
	#sec04 .img1 .obi1 {
		width: 330px;
	}
    #sec04 .img1 .obi2 {
        display: block;
        width: 109px;
        height: 450px;
        background-size: 109px;
    }
	#sec04 .inner {
        padding: 60px 0;
    }
	#sec04 .block {
        padding: 10px;
		background-color: rgba(255,255,255,.5);
    }
	#sec04 .block dl,
	#sec04 .block dt,
	#sec04 .block dd {
		display: block;
		width: 100%;
	}
	#sec04 .block dt {
		padding: 8px 15px;
		text-align: left;
	}
	#sec04 .block dd {
	}
}
/* --------------------------------------------------- */
#sec05 {
	position: relative;
	z-index: 2;
	width: 100%;
	background: url("../images/common/back01.jpg") center;
	background-size: 400px;
	border-top: #DC012B 6px solid;
	border-bottom: #2A295C 6px solid;
	padding: 100px 0;
}
#sec05 .inner {
	position: relative;
	z-index: 1;
	max-width: 1500px;
	width: 90%;
	margin: 0 auto;
}
#sec05 .inner .block {
	display: flex;
}
#sec05 .inner .block a.box {
	display: block;
	width: 30%;
	margin-right: 5%;
	margin-bottom: 3%;
}
#sec05 .inner .block a.box:last-child {
	margin-right: 0;
}
#sec05 .inner a.box .ph {
	display: block;
	position: relative;
	padding-top: 90%;
	margin-bottom: 18px;
	overflow: hidden;
}
#sec05 .inner .block a.box .ph img {
	position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    object-fit: cover;
	transition: transform 0.3s ease-in;
}
#sec05 .inner .block a.box:hover .ph img {
	transform: scale(1.1);
}
#sec05 .inner a.box .ttl {
	font-size: 1.1em;
	line-height: 1.6;
	margin-bottom: 5px;
	font-weight: 600;
	padding: 0;
}
#sec05 .inner a.box p {
	font-size: .8em;
	letter-spacing: 1px;
	padding: 0;
	
	overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
@media screen and (max-width: 980px) {
	#sec05 .inner a.box .ttl {
		font-size: 1em;
	}
	#sec05 .inner a.box p {
	}
}
@media screen and (max-width: 680px) {
	#sec05 {
        border-top: #DC012B 3px solid;
        border-bottom: #2A295C 3px solid;
        padding: 40px 0;
    }
	#sec05 .inner .block {
		flex-wrap: wrap;
	}
	#sec05 .inner .block a.box {
        width: 47.5%;
        margin-right: 5%;
		margin-bottom: 30px;
    }
	#sec05 .inner .block a.box:nth-child(2n) {
        margin-right: 0;
    }
}
@media screen and (max-width: 540px) {
	#sec05 .inner .block {
		display: block;
	}
	#sec05 .inner .block a.box {
        width: 100%;
        margin-right: 0;
		margin-bottom: 25px;
    }
	#sec05 .inner a.box .ph {
        padding-top: 75%;
    }
}
/* --------------------------------------------------- */
#sec06 {
	position: relative;
	z-index: 2;
	max-width: 1500px;
	width: 90%;
	margin: 0 auto;
}
#sec06 .obi {
	display: block;
	width: 850px;
	position: absolute;
	top: 50%;
	right: 58%;
	transform: translate(0%, -50%);
}
#sec06 .obi img.pc {
}
#sec06 .obi img.sp {
	display: none;
}
#sec06 .block {
	max-width: 700px;
	width: 100%;
	height: 750px;
	margin: 0 0 0 auto;
	position: relative;
	
	display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
#sec06 .block p {
	background: url("../images/common/back03.jpg") center;
	background-size: 400px;
	margin-bottom: 20px;
}
@media screen and (max-width: 980px) {
}
@media screen and (max-width: 680px) {
	#sec06 .obi {
        width: 400px;
    }
	#sec06 .obi img.pc {
		display: none;
    }
    #sec06 .obi img.sp {
        display: block;
    }
	#sec06 .block {
		height: auto;
		padding: 50px 0 20px;
	}
}
/* --------------------------------------------------- */

/* --------------------------------------------------- */

/* --------------------------------------------------- */


