@charset "UTF-8";

/*----------------------------------------
	- base
-----------------------------------------*/

/*=======================================
	base
=======================================*/
/* 幅 */
.w1360 {
	max-width: 1360px;
	width: 94%;
	margin: 0 auto;
}
@media screen and (max-width: 768px) {
	.w1360 {
		width: 100%;
	}
}

h3 {
	font-weight: 500;
}
h3.side_border {
	display: inline-block;
	font-size: 30px;
	font-weight: 400;
	padding-right: 147px;
	position: relative;
}
h3.side_border::after {
	content: '';
	position: absolute;
	width: 120px;
	height: 1px;
	background-color: #707070;
	top: calc(50% + 3px); right: 0;
	transform: translateY(-50%);
}

@media screen and (max-width: 1160px) {
	h3.side_border {
		font-size: calc((30 / 1160) * 100vw);
		
	}
}

@media screen and (max-width: 768px) {
	h3.side_border {
		font-size: 18px;
		padding-right: 134px;
	}
	h3.side_border::after {
		width: 124px;
	}
}


/*=======================================
	TOP特異的なheader調整
=======================================*/
.header {
	background-color: transparent;
	transition: all .3s ease;
}
.header .logo,
.header .tel_box {
	display: none;
	transition: all .3s ease;
}
.humberger__line {
	background-color: #fff;
}
.humberger__line:before,
.humberger__line:after {
	background-color: #fff;
}
.humberger.-active .humberger__line::before,
.humberger.-active .humberger__line::after {
	background-color: #000;
}

/* スクロール量が達した後 */
.header.change-color {
	background-color: #fff;
}
.header.change-color .logo {
	display: block;
}
.header.change-color .tel_box {
	display: flex;
}
.header.change-color .humberger__line {
	background-color: #000;
}
.header.change-color .humberger__line:before,
.header.change-color .humberger__line:after {
	background-color: #000;
}

@media screen and (max-width: 768px) {
	.header .icon_area {
		display: none;
	}
	.header.change-color .tel_box {
		display: none;
	}
	.header.change-color .icon_area {
		display: flex;
	}
}

/*=======================================
	swiper関連
=======================================*/
.swipe_container {
	position: relative;
}
.swiper-wrapper {
	height: auto;
}
.swipe_container .swiper-pagination {
	content: '';
	position: absolute;
	width: fit-content;
	height: 1px;
	bottom: 37px; right: 9.6vw; top: auto; left: auto;
	display: flex;
	align-items: center;
	gap: 0 5px;
	z-index: 2;
}
.swipe_container .swiper-pagination span {
	width: 30px; height: 1px;
	background-color: #fff;
	transition: all .3s ease;
	margin: 0;
	opacity: 1;
	border-radius: 0;
}
.swipe_container .swiper-pagination span.swiper-pagination-bullet-active {
	height: 3px;
}

@keyframes zoomUp {
  0% {
    transform: scale(1.15);
  }
  100% {
    transform: scale(1);
  }
}
.swiper-slide-active .swiper-img,
.swiper-slide-duplicate-active .swiper-img,
.swiper-slide-prev .swiper-img {
  animation: zoomUp 7s linear 0s normal both;
}
.swiper-slide img {
  height: auto;
  width: 100%;
}


@media screen and (max-width: 768px) {
	.swipe_container .swiper-pagination {
		bottom: 5.8666vw; right: 15px;
	}
}

/*=======================================
	mv_wrap
=======================================*/
#mv_wrap .contents {
	position: relative;
	color: #fff;
}
#mv_wrap .contents h2 {
	content: '';
	position: absolute;
	width: 77px;
	top: 4.86vw; left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}
#mv_wrap .contents p.frase {
	content: '';
	position: absolute;
	font-size: 28px;
	bottom: 6.11vw; left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}
#mv_wrap .contents .scroll_bar {
	content: '';
	position: absolute;
	bottom: -20px; left: 50%;
	transform: translateX(-50%);
	z-index: 2;
}
#mv_wrap .contents .scroll_bar p {
	font-size: 16px;
	margin-bottom: 10px;
}
#mv_wrap .contents .scroll_bar .move_bar {
	display: flex;
	justify-content: center;
}
#mv_wrap .contents .scroll_bar .move_bar span {
	display: block;
	width: 1px;
	height: 40px;
	background-color: #ccc;
	z-index: 2;
	position: relative;
	animation: scrollDown01 2s ease infinite;
}
@keyframes scrollDown01{
	0%{
			transform-origin: top;
			transform: scaleY(0);
	}
	45%{
			transform-origin: top;
			transform: scaleY(1);
	}
	55%{
			transform-origin: bottom;
			transform: scaleY(1);
	}
	100%{
			transform-origin: bottom;
			transform: scaleY(0);
	}
}

@media screen and (max-width: 768px) {
	#mv_wrap .contents h2 {
		top: 18.66vw;
	}
	#mv_wrap .contents p.frase {
		width: 82.5%;
		text-align: center;
		bottom: 20.8vw;
	}
	
}

/*=======================================
	intro_area
=======================================*/
.intro_area {
	padding: 130px 0 260px;
	background-color: #fff;
	position: relative;
}
.intro_area .contents {
	display: flex;
	justify-content: space-between;
	gap: 0 7.1%;
	align-items: center;
}
.intro_area .contents p {
	-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
	text-orientation: upright;
	font-size: 20px;
	letter-spacing: 0.2em;
	line-height: 2.4;
	padding-left: 180px;
	font-weight: 500;
}
.intro_area .contents .img {
	width: 56.25vw;
	max-width: 809px;
}
.intro_area .line {
	content: '';
	position: absolute;
	bottom: 86px; right: 0;
	width: 1083px;
}

@media screen and (max-width: 1160px) {
	.intro_area .contents p {
		font-size: calc((20 /1160 ) * 100vw);
		padding-left: 15.5vw;
	}
	.intro_area .line {
		width: 93.36vw;
	}
}

@media screen and (max-width: 768px) {
	.intro_area {
		padding: 75px 0 195px;
	}
	.intro_area .contents {
		flex-direction: column-reverse;
		gap: 24px 0;
	}
	.intro_area .contents p {
		padding: 0;
		font-size: 18px;
		line-height: 2.5;
	}
	.intro_area .contents .img {
		width: 95vw;
		position: relative;
		left: 50%;
		transform: translateX(-50%);
	}
	.intro_area .line {
		width: 92%;
		bottom: 50px;
	}
}

/*=======================================
	about_wrap
=======================================*/
#about_wrap .contents {
	padding-bottom: 234px;
}
#about_wrap .line_set {
	position: relative;
}
#about_wrap .contents .title_area {
	display: flex;
	align-items: center;
	gap: 0 9.6%;
}
#about_wrap .contents .title_area h3 {
	font-size: 36px;
	-ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
	text-orientation: upright;
	padding: 24px 0 60px 20px;
	position: relative;
	letter-spacing: 0.5rem;
	margin-left: 140px;
}
#about_wrap .contents .title_area h3::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 1px; height: 100%;
	background-color: #707070;
}
#about_wrap .contents .title_area p {
	font-size: 18px;
	letter-spacing: 0.02em;
	line-height: 2.3333;
	margin-bottom: 25px;
	font-weight: 300;
}
#about_wrap .contents .img_area {
	display: flex;
	gap: 0 8.2%;
	margin-bottom: 85px;
}
#about_wrap .contents .img_area .img {
	width: 100%;
}
#about_wrap .contents .img_area .img:first-child {
	margin-top: 98px;
}
#about_wrap .contents .img_area .img:last-child {
	margin-bottom: 98px;
}
#about_wrap .contents .tel_box {
	max-width: 800px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #B99C5C;
	margin: 0 auto;
}
#about_wrap .contents .tel_box dl {
	padding: 26px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
#about_wrap .contents .tel_box dl dt {
	font-size: 18px;
	margin-bottom: 16px;
}
#about_wrap .contents .tel_box dl dd.tel a {
	font-size: 40px;
}
#about_wrap .contents .line {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 895px;
}

@media screen and (max-width: 1160px) {
	#about_wrap .contents .title_area h3 {
		font-size: calc((36 / 1160) * 100vw);
		padding: 2vw 0 5vw 1.7vw;
	}
	#about_wrap .contents .title_area p {
		font-size: calc((18 / 1160) * 100vw);
	}
	#about_wrap .contents .line {
		width: 77.2vw;
	}
}

@media screen and (max-width: 768px) {
	#about_wrap .contents {
		padding-bottom: 160px;
	}
	#about_wrap .contents .title_area {
		gap: 0 27px;
		align-items: start
	}
	#about_wrap .contents .title_area h3 {
		margin: 0;
		padding: 20px 0 16px 12px;
		font-size: 30px;
	}
	#about_wrap .contents .title_area p {
		margin-top: 60px;
		width: 100%;
		font-size: 16px;
		line-height: 2.125;
		margin-bottom: 30px;
	}
	#about_wrap .contents .img_area {
		flex-direction: column;
		gap: 30px 0;
		margin-bottom: 26px;
	}
	#about_wrap .contents .img_area .img {
		width: 64.5vw;
	}
	#about_wrap .contents .img_area .img:first-child {
		margin-top: 0;
	}
	#about_wrap .contents .img_area .img:last-child {
		margin-bottom: 0;
		margin-left: auto;
	}
	#about_wrap .contents .tel_box dl {
		padding: 20px 0;
	}
	#about_wrap .contents .tel_box dl dt {
		font-size: 16px;
		margin-bottom: 12px;
	}
	#about_wrap .contents .tel_box dl dd.tel a {
		font-size: 29px;
	}
	#about_wrap .contents .line {
		width: 88vw;
		bottom: 44px;
	}
}


/*=======================================
	info_wrap
=======================================*/
#info_wrap .contents {
	margin-bottom: 122px;
}

#info_wrap .contents h3 {
	margin-bottom: 53px;
}

#info_wrap .contents .topic {
	display: flex;
	flex-direction: column;
	gap: 30px 0;
	margin-bottom: 42px;
}
#info_wrap .contents .topic dl {
	width: 100%;
	display: flex;
	gap: 0 6.6%;
	padding-bottom: 28px;
	border-bottom: 1px solid #B99C5C;
}
#info_wrap .contents .topic dl dt {
	padding-left: 8px;
}
#info_wrap .contents .topic dl dd a {
	padding-bottom: 1px;
	border-bottom: 1px solid #707070;
}
#info_wrap .btn {
	position: relative;
}
.arrow_line {
	width: 42px;
	position: absolute;
	content: '';
	top: calc(50% + 1px);
	right: 80px;
}
.arrow_line span {
	display: block;
}
.arrow_line span.line01 {
	width: 100%;
	height: 1px;
	background-color: #000;
	transition: all .3s ease;
}
.arrow_line span.line02 {
	position: absolute;
	top: 0;
	right: 0;
	transform-origin: right bottom;
	width: 8px;
	height: 1px;
	background-color: #000;
	transform: rotate(40deg);
	transition: all .3s ease;
}
@media (hover: hover) {
	#info_wrap .btn:hover .arrow_line span.line01 {
		background-color: #fff;
	}
	#info_wrap .btn:hover .arrow_line span.line02 {
		background-color: #fff;
	}
}

@media screen and (max-width: 768px) {
	#info_wrap .contents {
		margin-bottom: 115px;
	}
	#info_wrap .contents h3 {
		margin-bottom: 34px;
	}
	#info_wrap .contents .topic {
		gap: 26px 0;
		margin-bottom: 40px;
	}
	#info_wrap .contents .topic dl {
		padding-bottom: 22px;
	}
	.arrow_line {
		right: 55px;
	}
}

/*=======================================
	greet_wrap
=======================================*/
#greet_wrap .line_set {
	position: relative;
}
#greet_wrap .contents {
	padding: 227px 0 247px;
	display: flex;
	justify-content: center;
	gap: 0 11.6%;
}
#greet_wrap .contents .left h3 {
	font-size: 20px;
	margin-bottom: 57px;
}
#greet_wrap .contents .left p {
	font-weight: 300;
	line-height: 2.25;
}
#greet_wrap .contents .left p.wide {
	font-size: 36px;
	line-height: 1.888;
	margin-bottom: 28px;
	font-weight: 500;
}
#greet_wrap .contents .left p.close {
	text-align: end;
	line-height: 1.8;
	margin-top: 50px;
}
#greet_wrap .contents .right {
	width: 486px;
}

#greet_wrap .contents .line {
	content: '';
	position: absolute;
}
#greet_wrap .contents .line01 {
	width: 470px;
	top: 80px; left: 0;
}
#greet_wrap .contents .line02 {
	width: 895px;
	bottom: 136px; right: 0;
}

@media screen and (max-width: 1160px) {
	#greet_wrap .contents {
		gap: 0 8%;
	}
	#greet_wrap .contents .left p.wide {
		font-size: calc((36 / 1160) * 100vw);
	}
	#greet_wrap .contents .left p {
		font-size: calc((16 / 1160) * 100vw);
	}
	#greet_wrap .contents .right {
		width: 41.9vw;
	}
	#greet_wrap .contents .line02 {
		width: 77.15vw;
	}
}

@media screen and (max-width: 768px) {
	#greet_wrap .contents {
		padding: 115px 0 202px;
		flex-direction: column;
		align-items: center;
		gap: 30px 0;
	}
	#greet_wrap .contents .line01 {
		display: none;
	}
	#greet_wrap .contents .left h3 {
		margin-bottom: 32px;
	}
	#greet_wrap .contents .left p {
		font-size: 15px;
		line-height: 2;
	}
	#greet_wrap .contents .left p.wide {
		font-size: 29px;
		line-height: 1.72;
		margin-bottom: 16px;
	}
	#greet_wrap .contents .left p.close {
		margin-top: 30px;
	}
	#greet_wrap .contents .right {
		width: 78%;
	}
	#greet_wrap .contents .line02 {
		width: 86.666vw;
		bottom: 60px; right: 0;
	}
}

/*=======================================
	temple_area
=======================================*/
.temple_area {
	background-color: #5b5454;
	width: 100%;
	height: 400px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.temple_area .contents {
	max-width: 800px;
	width: 90%;
}
.temple_area .contents a {
	display: block;
	border: 1px solid #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 25px 0 35px;
	color: #fff;
	background-color: #b1221a;
}

@media screen and (max-width: 768px) {
	.temple_area {
		width: 100%;
		height: 250px;
	}
	.temple_area .contents a {
		padding: 26px 0 23px;
	}
	.temple_area .contents p {
		margin-bottom: 6px;
	}
}




