@charset "UTF-8";
/* ****************************************************************************

cagra

******************************************************************************* */
.logo-header{
	padding-top:85px;
	background-image: url('../images/logo_bg.jpg');	
	background-size: cover;
	border-bottom:1px solid #ccc;
	margin-bottom:10px;
	font-family: 'Noto Serif JP';		
}
.logo-block {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
	max-width:960px;
	margin:0 auto;
	padding:50px 10px;
}

.logo {
  font-family: 'Georgia', serif;
  font-size: 48px;
  font-weight: normal;
  color: #333;
  margin: 0;
  position: relative;
  line-height: 1;
  width: 219px;
}

.logo .kana {
  display: block;
  font-size: 16px;
  color: #d66;
  margin-top: 10px;
  letter-spacing: 0.1em;
	text-align:center;
}

.logo-description {
  font-size: 20px;
  color: #333;
  line-height: 2;
	width: calc(100% - 260px);	
	text-align: center;
}
@media screen and (max-width: 880px) {
	.logo-description {
		font-size: 16px;
	}
}
@media screen and (max-width: 760px) {
	.logo {
		text-align:center;
		width: 100%;
	}
	.logo-description {
		width:100%;	
	}
}
@media screen and (max-width: 500px) {
	.logo-description {
		font-size: 14px;
		text-align:left;
	}
	.logo_devSmp{
		display:none;
	}
}

#main{
	font-family: 'Noto Serif JP';	
}

.mvArea{
	border-bottom:1px solid #ccc;
	padding-bottom:10px;
}
.mvImg{
	display:flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.mvImg-item{
	width:50%;
}
.mvImg-item img{width:100%;}

.textArea{
	border-bottom:1px solid #ccc;
	margin-bottom:10px;
}
.textArea .inner{
	max-width: 900px;
	text-align:center;
	padding:80px 20px;
	line-height:2.4;
}
@media screen and (max-width: 500px) {
	.textArea .inner{
		text-align:left;
		padding:0 20px;
	}
}

.sectop{
	margin-top:85px;
}
.mvMovie{
	position: relative;
	height:500px;
	overflow: hidden;
	background-image: url("/cagra/images/movie_bg.png");
}
@media screen and (min-width: 1200px) {
	.mvMovie{
		height:600px;
	}
}
@media screen and (min-width: 1500px) {
	.mvMovie{
		height:800px;
	}
}
@media screen and (min-width: 1700px) {
	.mvMovie{
		height:900px;
	}
}
.mvMovie video{
	position: relative;
	z-index: -1;
	margin-top:-50px;
	background-position: center bottom;
}
.mvMovie h1{
	position: absolute;
	top:75px;
	left:50%;
	margin-left:-110px;
}
.mvMovie h1 span{
	display: block;
	padding-top:5px;
	text-align: center;
	font-family: 'Noto Serif JP';
	color:#fff;	
}
.mvMovie .movie_txt{
	position:absolute;
	top:275px;
	width: 100%;
}
.mvMovie .movie_txt p{
	width:100%;
	padding:0 20px;
	font-size:22px;
	margin:0 auto;
	text-align:center;
	box-sizing: border-box;
	font-family: 'Noto Serif JP';
	color:#fff;
}
@media screen and (max-width: 1090px) {
	.mvMovie video{
		margin-top:0;
	}
}
@media screen and (max-width: 900px) {
	.mvMovie{
		height:400px;
	}
	.mvMovie .movie_txt{
		top:225px;
	}	
	.mvMovie .movie_txt p{
		font-size:18px;
	}
}
@media screen and (max-width: 724px) {
	.mvMovie video{
		width:auto;
		height:100%;
	}
	.mvMovie .movie_txt p{
		font-size:14px;
	}	
}




.photoList{
	padding:50px 0 !important;
	background-image: url('../images/list_bg.jpg');	
	background-size:cover;
}
.photoList ul{
	display:flex;
	justify-content: space-between;
	flex-wrap: wrap;
}
.photoList ul li{
	width:25%;
}

@media screen and (max-width: 500px) {
	.photoList{
		background-image: url('../images/list_bg_smp.jpg');	
	}
	.photoList ul li{
		width:50%;
	}	
}


.parallax-wrapper {
  position: relative; /* 背景を絶対配置するため */
  overflow: hidden;   /* はみ出し防止 */
}

.parallax-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(100% + 150px);
  background-size: cover;
  background-position: bottom center;
  z-index: -1;
  transform: translateY(0);
  transition: transform 0.1s linear;
}
.parallax-wrapper .content{
	padding:150px 20px;
}
.parallax-wrapper h2 {
	font-size:36px;
	font-size: 2em;
	margin-bottom: 20px;
	color:#333;
	text-align:center;
}

.parallax-wrapper p {
	max-width: 900px;
	margin: 0 auto 20px;
	line-height: 1.8;
	text-align:left;
	color:#333;
}
.parallax-wrapper .text_bg{
	position: absolute;
	top:0;
	right:0;
	opacity: 0.5;
}
.parallax-wrapper:nth-last-of-type(2) h2,
.parallax-wrapper:nth-last-of-type(2) p{color:#fff;}

@media screen and (max-width: 500px) {
	.parallax-wrapper .content {padding: 50px 20px !important;}
	.parallax-wrapper h2 {font-size:22px;}
	.parallax-bg {
		background-position: bottom left;
	}	
}
/* ---- */
.product-list {
	margin-top:50px;
  text-align: center;
  padding: 80px 20px;
	background-image: url('../images/list_bg.jpg');
	background-size: cover;
}

.product-list h2 {
  font-size: 36px;
  margin-bottom: 40px;
	color:#fff;
}

.product-cards {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 40px;
}

.product-card {
  background-color: #f9f9f9;
  width: 280px;
  text-align: left;
  position: relative;
  padding-bottom: 32px;
}

.product-card img {
  width: 100%;
  height: auto;
  display: block;
}

.product-card h3 {
  font-size: 30px;
  margin: 16px;
  color: #333;
	text-align: center;
}

.product-card ul {
  padding:0 20px;
}
.product-card ul li{
	text-decoration: none;
	color:#333;
	display: block;
	text-align: center;
}
.product-card .arrow {
  position: absolute;
  bottom: 8px;
  right: 16px;
  font-size: 20px;
  color: #999;
}

@media screen and (max-width: 500px) {
	.product-list h2 {
		font-size: 22px;
	}
	.product-list {
		margin-top:50px;
		text-align: center;
		padding: 80px 20px;
		background-image: url('../images/list_bg_smp.jpg');
		background-size: cover;
	}
}
/* ---- */

.contact-cta {
  padding: 80px 20px;
	text-align: center;
}

.contact-button {
  position: relative;
  display: inline-block;
  color: #fff;
  font-size: 18px;
  text-decoration: none;
  background-color: #000;
  padding: 30px 70px 30px 32px; /* 右側に矢印スペースを確保 */
  border: 1px solid #fff;
	margin:0 auto;
	background:#000;
}
/* 斜め線（矢印の先端） */
.contact-button::before {
  content: "";
  position: absolute;
  right:26px;
  top: 55%;
  width: 12px;
  height: 12px;
  border-top: 1px solid #efefef;
  transform: translateY(-50%) rotate(45deg);
	transition: transform 0.3s ease, width 0.3s ease;	
}
.contact-button::after {
  content: "";
  position: absolute;
  right: 24px;
  top: 55%;
  width: 32px;
  height: 1px;
  background-color: #efefef;
  transform: translateY(-50%);
	transition: transform 0.3s ease, width 0.3s ease;	
}

/* ホバーで矢印スライド */
.contact-button:hover::after {
  width: 42px;
  transform: translateY(-50%) translateX(10px);
}
.contact-button:hover::before {
  transform: translateY(-50%) translateX(10px) rotate(45deg);
}


.fadein {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

.fadein.show {
  opacity: 1;
  transform: translateY(0);
}