@charset "utf-8";

/*-------------------------------------------------------------------
　slider
-------------------------------------------------------------------*/
.swiper-wrapper .swiper-slide {
	width: 100%;
  height: 100vh;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  opacity: 0;
  overflow: hidden;
}

.sl01{
	background: url("../images/slider/sl01.jpg");
	position: relative;
}

.sl02{
	background: url("../images/slider/sl02.jpg");
	position: relative;
}

.sl03{
	background: url("../images/slider/sl03.jpg");
	position: relative;
}

.sl04{
	background: url("../images/slider/sl04.jpg");
	position: relative;
}

/*-- 黒透過背景 ------------------
.sl01::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.3);
}
----------------------------------*/

.catch-area {
  position: absolute;
  width: 100%;
  top: 50%;
  transform: translateY(-50%);
	text-shadow: 2px  2px 7px #3E3E3E,
            	-2px  2px 7px #3E3E3E,
             	 2px -2px 7px #3E3E3E,
            	-2px -2px 7px #3E3E3E;
}

.catch-title {
	font-size: 85px;
	font-weight: bold;
	color: #FFF;
	text-align: center;
	line-height: 1.5;
}

.catch-text {
  font-size: 55px;
	color: #FFF;
	line-height: 1.6;
	text-align: center;
}

.catch-text img{
	width: 450px;
}

.catch-text2 {
  font-size: 50px;
	font-weight: bold;
	color: #FFF;
	line-height: 1.5;
}

.catch-txc{
  font-size: 55px;
	font-weight: bold;
	color: #FFF;
	line-height: 1.6;
	text-align: center;
}

.catch-btn{
	position: absolute;
	width: 275px;
	right: 50px;
	bottom: 50px;
}

.catch-btn img{
	width: 100%;
	height: auto;
}

.catch-btn a:hover{opacity: 0.8;}

/* --------------------------------
  Top Lazy Load 遅延ロード用スタイル
-------------------------------- */
@keyframes fadeOut {
  from {
    opacity: 1;
  }
	
  to {
    display: none;
    opacity: 0;
    z-index: -1;
  }
}

#loader {
  background-color: #000;
  height: 100vh;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 10;
}

#loader.loaded {
  animation: fadeOut 0.5s forwards;
}

/* ---- pc 1500px ---------- */
@media only screen and (max-width:1500px){
.catch-title {
	font-size: 70px;
}
}

/* ---- 1200px ------------- */
@media only screen and (max-width:1200px){
.catch-area {
  position: absolute;
  width: 100%;
}

.catch-text img{
	width: 450px;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
.swiper-wrapper .swiper-slide {
  height: 600px;
}

.catch-text {font-size: 40px;}
.catch-text img{width: 350px;}

.catch-btn{
	width: 200px;
	right: 30px;
	bottom: 30px;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
.swiper-wrapper .swiper-slide {
  height: 500px;
}

.catch-text {font-size: 35px;}
.catch-text img{width: 280px;}
.catch-btn{display: none;}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.swiper-wrapper .swiper-slide {height: 400px;}

.catch-text {font-size: 25px;}
.catch-text img{width: 200px;}
}


/*-------------------------------------------------------------------
　title
-------------------------------------------------------------------*/
.mainTit{
	font-size: 35px;
	font-weight: bold;
	color: #24412B;
	margin-bottom: 25px;
	text-align: center;
	line-height: 1.5;
}

.tit_L{text-align: left;}
.tit_w{color: #FFF;}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
.tit_L{text-align: center;}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
.mainTit{
	font-size: 30px;
	line-height: 1.5;
	margin-bottom: 25px;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.mainTit{
	font-size: 25px;
	margin-bottom: 25px;
}
}


/*-------------------------------------------------------------------
　common
-------------------------------------------------------------------*/
.bg_wrap{
	width: 100%;
	padding: 150px 0;
	background: url("../images/green_bg.jpg") repeat top center / contain;
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
.bg_wrap{
	padding: 120px 0;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
.bg_wrap{
	padding: 100px 0;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
.bg_wrap{
	width: 100%;
	padding: 80px 0;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.bg_wrap{
	width: 100%;
	padding: 60px 0;
}
}


/*-------------------------------------------------------------------
　about
-------------------------------------------------------------------*/
#about_Box{
	width: 900px;
	margin: 0 auto;
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#about_Box{
	width: 90%;
	margin: 0 auto;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#about_Box{
	width: 85%;
	margin: 0 auto;
}
}


/*-------------------------------------------------------------------
　納骨堂のご案内　ossuary
-------------------------------------------------------------------*/
#ossuary_wrap{
	width: 100%;
	height: auto;
	background: url("../images/ossuary_bg.jpg") no-repeat top left / cover;
	padding: 150px 0;
}

#ossuary{
	width: 1300px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}

#ossuary_det{
	width: 50%;
	text-align: center;
	color: #FFF;
	position: relative;
	z-index: 1;
	padding: 100px 0 120px;
}

#ossuary_det::before{
	content: '';
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	background-color: rgba(0, 0, 0, 0.4);
	z-index: -1;
}

#ossuary_btn{
	width: 350px;
	border: 0px solid #FFF;
	margin: 40px auto 0;
}

#ossuary_btn a{
	display: block;
	text-align: center;
	color: #FFF;
	background: #24412B;
	padding: 10px 0;
	border: 1px solid #FFF;
	box-sizing: border-box;
}

#ossuary_btn a:hover{
	border: 1px solid #FFF;
	box-sizing: border-box;
	background: #305639;
}

/* ---- pc 1400px ---------- */
@media only screen and (max-width:1400px){
#ossuary{
	width: 90%;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#ossuary{
	justify-content: center;
}

#ossuary_det{
	width: 80%;
	padding: 100px 0 120px;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#ossuary_wrap{
	padding: 120px 0;
	background: url("../images/ossuary_bg480.jpg") no-repeat top center/ cover;
}

#ossuary_det{
	width: 85%;
	padding: 70px 0 90px;
}

#ossuary_btn{
	width: 250px;
	margin: 40px auto 0;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
#ossuary_wrap{
	padding: 80px 0;
	background: url("../images/ossuary_bg480.jpg") no-repeat top center/ cover;
}

#ossuary_det{
	width: 100%;
	text-align: left;
	padding: 40px 20px 60px;
}

#ossuary_btn{
	width: 85%;
	margin: 40px auto 0;
}
}


/*-------------------------------------------------------------------
　葬儀・法事　funeral
-------------------------------------------------------------------*/
#funeral{
	display: flex;
  justify-content: space-between;
	align-items: center;
	flex-direction: row-reverse;
  max-width: 1300px;
  margin: 0 auto;
}

.funeral_ph{width: 57%;}
.funeral_det{width: 38%;}

/*右側へ要素を広げる（2カラム）*/
.outside_right{
	flex: 1;
	margin-right: calc(50% - 50vw);
	margin-left: 5%;
}

#funeral_btn{
	width: 350px;
	margin: 40px 0 0;
}

#funeral_btn a{
	display: block;
	text-align: center;
	color: #FFF;
	background: #24412B;
	padding: 10px 0;
}

#funeral_btn a:hover{
	background: #305639;
}

/* ---- pc 1400px ---------- */
@media only screen and (max-width:1400px){
#funeral{
  max-width: 90%;
}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#funeral{
	align-items: flex-start;
	flex-direction: column;
  margin: 0 auto;
}

.funeral_ph{width: 100%; margin-bottom: 50px;}
.funeral_det{width: 100%;}

/*右側へ要素を広げる（2カラム）*/
.outside_right{
	flex: 1;
	margin-right: calc(50% - 50vw);
	margin-left: 0;
}

#funeral_btn{
	width: 350px;
	margin: 40px auto 0;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#funeral{
  max-width: 85%;
}

#funeral_btn{
	width: 250px;
	margin: 40px auto 0;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
.funeral_ph{width: 100%; margin-bottom: 40px;}

#funeral_btn{
	width: 80%;
	margin: 40px auto 0;
}
}


/*-------------------------------------------------------------------
　info banner
-------------------------------------------------------------------*/
#info_wrap{
	width: 1300px;
	margin: 150px auto;
	display: flex;
	justify-content: space-between;
}

.infoBox{
	width: 45%;
}

.info_ph{
	width: 100%;
	position: relative;
}

.info_caption{
	width: 65%;
	position: absolute;
	bottom:0px;
	left:17.5%;
	background: rgba(216, 217, 186, 1);
	padding: 5px 5px;
	font-size: 35px;
	font-weight: bold;
	text-align:center;
	color: #24412B;
}

.image_link{
  position:relative;
  display:block;
  height:auto;
}

.image_link img{
  display:block;
  width:100%;
}

.image_link:before{
  content:"";
  display:block;
  width:100%;
  height:100%;
  position:absolute;
  z-index:2;
  background:#24412B;
  opacity:0;
  transition:0.3s;
}

.image_link:hover:before{
  opacity:0.2;
}

/* ---- pc 1400px ---------- */
@media only screen and (max-width:1400px){
#info_wrap{
	width: 90%;
}
}

/* ---- pc 1200px ---------- */
@media only screen and (max-width:1200px){
#info_wrap{margin: 120px auto;}
}

/* ---- tablet ------------- */
@media only screen and (max-width:1024px){
#info_wrap{margin: 100px auto;}

.infoBox{
	width: 48%;
}

.info_caption{
	width: 70%;
	left:15%;
	padding: 0px 5px;
}
}

/* ---- sp 767 ------------- */
@media only screen and (max-width:767px){
#info_wrap{
	width: 85%;
	margin: 80px auto;
	flex-direction: column;
}

.infoBox{
	width: 100%;
	margin-bottom: 50px;
}

.infoBox:last-child{margin-bottom: 0;}

.info_caption{
	width: 70%;
	left:15%;
	padding: 0px 5px;
	font-size: 30px;
}
}

/* ---- sp 480 ------------- */
@media only screen and (max-width:480px){
#info_wrap{
	width: 85%;
	margin: 60px auto;
}

.infoBox{
	margin-bottom: 50px;
}

.info_caption{
	width: 70%;
	left:15%;
	padding: 0px 5px;
	font-size: 25px;
}
}
