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

/* frontPage */

/*タイトル*/
.el_title {
	font-size: 1.75rem;
}
@media screen and (max-width:480px){
	.el_title {
		font-size:1.6rem;
	}
}

/* .bl_topImage */
.bl_topImage {
	position: relative;;
	display: flex;
	text-align: center;
	justify-content: center;
	align-items: center;
	width: 100%;
	aspect-ratio:2.5 / 1;
	max-height: 742px;
	background-color: #dfdfdf;
}
/*テキストボックス*/
.bl_topImage .bl_textBox {
	z-index: 10;
}
.bl_topImage .bl_textBox h2 {
	font-family: "Montserrat", "Noto Sans JP", sans-serif;
	font-size: 50px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.1em;
	margin-bottom: 10px;
	color: #FFF;
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
}
.bl_topImage .bl_textBox em {
	font-family: "Montserrat", "Noto Sans JP", sans-serif;
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	font-style: italic;
	color: #FFF;
	text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
	padding: 0 25px;
}
@media screen and (max-width:670px){
	.bl_topImage {
		aspect-ratio:2 / 1;
	}
	.bl_topImage .bl_textBox h2 {
		font-size:clamp(36px,7vw,50px);
	}
}
@media screen and (max-width:480px){
	.bl_topImage {
		height: calc(100vh - 65px);
		max-height:inherit;
		aspect-ratio:auto
	}
	.bl_topImage .bl_textBox {
		width:calc(100% - 60px);
		text-align: left;
		padding: 0;
		margin: 0 25px 0 35px;
	}
	.bl_topImage .bl_textBox h2 {
		font-size: 10vw;
	}
	.bl_topImage .bl_textBox em {
		padding-left: 0;
	}
}
/*--スライド start*/
.bl_topImage .img-frame{
	position: absolute;
	z-index: 0;
	top:0;
	left: 0;
	right: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	margin: 0 auto;
}
.bl_topImage .img-01,
.bl_topImage .img-02,
.bl_topImage .img-03,
.bl_topImage .img-04
{
	position: absolute;
	top:0;
	left:0;
	right: 0;
	width: 100%;
	height: 100%;
	background-size: cover;
	background-repeat: no-repeat;
	background-position: center;
	margin: 0 auto;
}
.bl_topImage .img-01{
	background-image: url("../../images/frontPage/topimage1.jpg");
	/*継続時間(s)は合計*/
	animation: slide-animation-01 26s infinite;
}
.bl_topImage .img-02{
	background-image: url("../../images/frontPage/topimage2.jpg");
	/*継続時間(s)は合計*/
	animation: slide-animation-02 26s infinite;
}
.bl_topImage .img-03{
	background-image: url("../../images/frontPage/topimage3.jpg");
	/*継続時間(s)は合計*/
	animation: slide-animation-03 26s infinite;
}
.bl_topImage .img-04{
	background-image: url("../../images/frontPage/topimage4.jpg");
	/*継続時間(s)は合計*/
	animation: slide-animation-04 26s infinite;
}
/*--3つの場合 継続時間:36s
◆0-◆30>40  90>100
30>◆40-◆60>70 100
60>◆70-◆90>100
--
@keyframes slide-animation-01 {
 0% {opacity: 1; transform: scale(1.0);}
 30% {opacity: 1;}
 40% {opacity: 0; transform: scale(1.15);}
 90% {opacity: 0}
100% {opacity: 1; transform: scale(1.0);}
}
@keyframes slide-animation-02 {
 0% {opacity: 0;}
 30% {opacity: 0; transform: scale(1.1);}
 40% {opacity: 1;}
 60% {opacity: 1;}
 70% {opacity: 0; transform: scale(1.0);}
100% {opacity: 0;}
}
@keyframes slide-animation-03 {
 0% {opacity: 0;}
 60% {opacity: 0; transform: scale(1.0);}
 70% {opacity: 1;}
 90% {opacity: 1;}
100% {opacity: 0; transform: scale(1.1);}
}
--*/
/*--4つの場合
- タイムライン *は分割基準値
0 -100％表示時間- 20 > *25  95 > 100
0  20> *25 ◆◆100％表示時間◆◆◆ 45 > *50  100
0  45> *50 ◆◆100％表示時間◆◆ 70 > *75  100
0  70 > *75 ◆◆100％表示時間◆◆ 95 > *100
--*/
@keyframes slide-animation-01 {
 0% {opacity: 1; transform: scale(1.0);}
 20% {opacity: 1;}
 25% {opacity: 0; transform: scale(1.08);}
 95% {opacity: 0}
100% {opacity: 1; transform: scale(1.0);}
}
@keyframes slide-animation-02 {
 0% {opacity: 0;}
 20% {opacity: 0; transform: scale(1.1);}
 25% {opacity: 1;}
 45% {opacity: 1;}
 50% {opacity: 0; transform: scale(1.0);}
100% {opacity: 0;}
}
@keyframes slide-animation-03 {
 0% {opacity: 0;}
 45% {opacity: 0; transform: scale(1.0);}
 50% {opacity: 1;}
 70% {opacity: 1;}
75% {opacity: 0; transform: scale(1.1);}
100% {opacity: 0;}
}
@keyframes slide-animation-04 {
 0% {opacity: 0;}
 70% {opacity: 0; transform: scale(1.1);}
 75% {opacity: 1;}
 95% {opacity: 1;}
100% {opacity: 0; transform: scale(1.0);}
}
/*--スライド end*/



/* .bl_aboutus */
.bl_aboutus {
	display: block;
	text-align: center;
	margin: 120px auto 100px;
}
/*段落内改行はこのページ独自設定。字数が変わった時には適宜調整 */
.bl_aboutus .bl_text br.uni_narrow-hide {
	display: block;
}
@media screen and (max-width:740px){
	.bl_aboutus .bl_text br.uni_narrow-hide {
		display: none;
	}
}


/* .bl_separateImage */
.bl_separateImage {
	display: block;
	background-size: cover;
	background-image: url("../../images/frontPage/separateImage.jpg");
	width: 100%;
	height: min(18vw,234px);
}


/* .bl_services */
.bl_services {
	display: block;
	text-align: center;
	margin: 120px auto 100px;
}
.bl_services .bl_card ul {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 60px auto 0;
	max-width: 1600px;
	justify-content: center;
}
.bl_services .bl_card li {
	text-align: center;
	position: relative;
	width: 360px;
	margin: 0 min(2vw,26px);
}
.bl_services .bl_card .num {
	position: relative;
	background-color: var(--theme-color);
	color:#FFF;
	font-family: "Montserrat", "Noto Sans JP", sans-serif;
	font-weight: 700;
	font-size: 16px;
	width: 48px;
	height: 48px;
	border-radius: 24px;
	line-height: 48px;
	text-align: center;
	margin: auto;
	z-index: 10;
}
.bl_services .bl_card .image {
	text-align: center;
	margin-top: -24px;
}
.bl_services .bl_card .image img {
	margin: auto;
	margin-bottom: 38px;
}
.bl_services .bl_card .title h3 {
	text-align: left;
	font-size: 1.0625rem;
	line-height: 1.4;
	color:#464646;
}
.bl_services .bl_card .title::after {
	content: "";
	display: block;
	margin: 18px 0 18px 0;
	height: 3px;
	width: 62px;
	background-color: var(--theme-color);
}
.bl_services .bl_card .text {
	text-align: left;
	font-size: 0.8125rem;
	line-height: 1.8;
}
@media screen and (max-width:760px) {
	.bl_services .bl_card ul {
		flex-wrap: wrap;
	}
	.bl_services .bl_card li {
		width: 40%;
	}
	.bl_services .bl_card .image img {
		margin-bottom: 1em;
	}
}
@media screen and (max-width:540px) {
	.bl_services .bl_card li {
		width: 90%;
		max-width:360px;
	}
}
@media screen and (max-width:480px) {
	.bl_services .bl_card .title h3 {
		font-size: 0.9375rem;
	}
}


/* .bl_point */
.bl_point {
	display: block;
	background-color: var(--theme-color);
	color:#FFF;
	overflow: hidden;
}
/**/
.bl_point .el_title_s {
	margin-top: 92px;
	color:#FFF;
}
.bl_point .el_title_s::after {
	background-color: #FFF;
}
.bl_point .bl_card {
	display: block;
	margin-top:25px;
	margin-bottom: 60px;
	text-align: center;
}
.bl_point .bl_card ul {	
	display: flex;
	list-style: none;
	width: 94%;
	max-width:1200px; 
	padding: 0;
	margin: 60px auto 0;
	justify-content: center;
}
.bl_point .bl_card li {
	width: 33.33%;
	margin: 0 min(2vw,50px);
	padding: 0;
}
.bl_point .bl_card .pic {
	margin-bottom: 1.3rem;
	display: flex;
	justify-content: center;
	align-items: center;
}
.bl_point .bl_card .pic img {
	text-align: center;
	height: 77px;
	width: auto;
	margin: auto;
}
.bl_point .bl_card .tag {
	display: inline-block;
	font-size: 14px;
	line-height: 1;
	font-weight: bold;
	background-color: #FFF;
	color:var(--theme-color);
	border-radius: 2px;
	padding: 0.6em 1em;
	margin-bottom: 1.6rem;
}
.bl_point .bl_card .title {
	font-size: 18px;
	font-weight: bold;
	line-height: 1.4;
	margin-bottom: 1.1rem;
}
.bl_point .bl_card .text {
	font-size:14px;
	line-height: 1.6;
}
@media screen and (max-width:600px){
	.bl_point .bl_card ul {
		display: block;
	}
	.bl_point .bl_card ul li {
		width: 100%;
		margin-bottom: 3em;
	}
	.bl_point .bl_card .title {
		margin-bottom: 0.4rem;
	}
}


/* .bl_profile */
.bl_profile {
	display: block;
	margin-bottom: 40px;
}
.bl_profile .el_title {
	margin-top: 120px;
}
/* --.bl_profile_1 */
.bl_profile .bl_profile_1 {
	display: block;
	max-width: 1050px;
	margin: 0 auto 120px;
	padding: 0 25px;
	overflow: hidden;
}
.bl_profile .bl_profile_1 .bl_image {
	float: left;
	width: 320px;
}
.bl_profile .bl_profile_1 .bl_textBox {
	float: right;
	width: calc(99% - 320px);
}
@media screen and (max-width:1000px){
	.bl_profile .bl_profile_1 .bl_image {
		width: 240px;
	}
	.bl_profile .bl_profile_1 .bl_textBox {
		width: calc(99% - 240px);
	}
}
@media screen and (max-width:770px){
	.bl_profile .bl_profile_1 .bl_image {
		float: none;
		display: block;
		width: 100%;
		text-align: center;
		margin-bottom: 20px;
	}
	.bl_profile .bl_profile_1 .bl_image img {
		width: 190px;
		margin: auto;
	}
	.bl_profile .bl_profile_1 .bl_textBox {
		width: auto;
		text-align: center;
	}
	.bl_profile .bl_profile_1 .bl_textBox .text {
		text-align: justify;
	}
}

.bl_profile .bl_profile_1 .bl_textBox h3 {
	font-size: 27px;
	letter-spacing: 0.15em;
	line-height: 1.2;
	margin-bottom: 0.6em;
}
@media screen and (max-width:480px){
	.bl_profile .bl_profile_1 .bl_textBox h3 {
		font-size: 19px;
	}
	.bl_profile .bl_profile_1 .bl_textBox h3 > * {
		margin-left: 0.5em;
		margin-right: 0.5em;
	}
}
.bl_profile .bl_profile_1 .bl_textBox h3 {
	font-family: "Montserrat", "Noto Sans JP", sans-serif;
	font-size: 1rem;
	display: block;
}
.bl_profile .bl_profile_1 .bl_textBox h3 strong {
	display: block;
	font-size: 28px;
	line-height: 1;
	margin-bottom: 0;
}
.bl_profile .bl_profile_1 .bl_textBox em {
	display: block;
	font-style: normal;
	font-weight: bold;
	margin-bottom: 2em;
	letter-spacing: 0.1em;
}
/*-- lang en --*/
:lang(en) .bl_profile .bl_profile_1 .bl_textBox em {
	letter-spacing: 0;
}
/*-- --*/
.bl_profile .bl_profile_1 .bl_textBox .text p {
	font-weight: 0.875rem;
	line-height: 2em;
	margin-bottom: 2em;
}
/*--スライダ start*/
/*外枠と設定*/
.bl_profile .bl_slider {
	display: block;
	width: 100%;
	height:auto;
	background-color: #ccc;
	z-index: 2;
}
.bl_profile .bl_slider li {
	padding: 0;
	list-style: none;
}
/*----スライダ動作部分 start*/
/* 親要素の設定 */
.gallery {
	width: 100%;
	overflow: hidden; /* 子要素がはみ出さないようにする */
}
/* スライダー部分の設定 */
.gallery_slide {
	display: flex; /* 横並びにする */
	width: 100%; /* 横幅いっぱいにする */
	animation: slide 36s linear infinite; /* アニメーションの設定 */
	margin:0;
	padding: 0;
}
/* 各アイテムの設定 */
.gallery_slide li {
	flex: 0 0 25%; /* 1つの画像が全体の4分の1の幅を取る */
	width: 100%; /* 幅を指定 */
	max-height: 220px;
}
.gallery_slide li img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* アニメーション（スライド） */
@keyframes slide {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-100%); /* 1周分の移動 */
  }
}
/*----スライダ動作部分 end*/
/*--スライダ end*/


/*テーブル*/
.bl_profile .bl_table_wrap {
	display: block;
	margin: 35px 25px 0;
	overflow: hidden;
}
.bl_profile .bl_table {
	display: block;
	overflow: hidden;
	margin: 35px auto 35px;
	max-width: 1050px;
}
.bl_profile .bl_table + hr {
	display: block;
	overflow: hidden;
	border-top: 1px solid #a3a3a3;
	clear: both;
	max-width: 1050px;
	margin: 0 auto;
}
.bl_profile .bl_table ul {
	list-style: none;
	padding: 0;
}
.bl_profile .bl_table .bl_table_head {
	width:13.5em;
	float: left;
	clear: both;
}
.bl_profile .bl_table .bl_table_head h3 {
	color:var(--theme-color);
	font-size: 1.125rem;
	line-height: 1.2;
	margin-bottom: 1.2em;
	margin-top: 0.1em;
}
.bl_profile .bl_table .bl_table_head .el_linkBox {
	display: inline-block;
	border-radius: 3px;
	font-size:12px;
	font-weight: bold;
	background-color: var(--theme-color);
}
.bl_profile .bl_table .bl_table_head .el_linkBox a {
	display: inline-block;
	text-decoration: none;
	color:#FFF;
	position: relative;
	width: 100%;
	height: 100%;
	padding: 0.75em 1em 0.75em 2em;
}
.bl_profile .bl_table .bl_table_head .el_linkBox a::before {
	content: "";
    position: absolute;
    top: 50%;   /* 縦軸をセンタリングする */ 
    left: 1em;
    transform: translateY(-50%);   /* 縦軸をセンタリングする */  
    border: 4px solid transparent;
    border-left: 6px solid #FFF; 
}
.bl_profile .bl_table .bl_table_data {
	width:calc((100% - 13.5em - 25px)/2);
	float: left;
	box-sizing: border-box;
}
.bl_profile .bl_table > *:nth-child(2) {
	margin-right: 25px;
}
.bl_profile .bl_table .bl_table_data li {
	padding-left: 1em;
	margin-bottom: 0.7em;
	line-height: 1.8;
	font-size:1rem;
}
.bl_profile .bl_table .bl_table_data li::before {
	content:"⚫︎";
	color:var(--theme-color);
	margin-left: -1em;
}
.bl_profile .bl_table .bl_table_data h4 {
	color:var(--theme-color);
	font-weight: bold;
	margin-bottom: 1em;
}
@media screen and (max-width:1000px){
	.bl_profile .bl_table .bl_table_head {
		display: block;
		width: 100%;
		margin-bottom: 2em;
	}
	.bl_profile .bl_table .bl_table_head h3 {
		float: left;
	}
	.bl_profile .bl_table .bl_table_head .el_linkBox {
		float: right;
	}
	.bl_profile .bl_table .bl_table_data {
		width:calc((100% - 35px)/2)
	}
	.bl_profile .bl_table > *:nth-child(2) {
		margin-right: 35px;
	}
}
@media screen and (max-width:480px){
	.bl_profile .bl_table .bl_table_data {
		width:100%;
	}
}


/* .bl_overview */
.bl_overview {
	display: block;
	position: relative;
	clear: both;
	overflow: hidden;
	margin-bottom: 50px;
}
.bl_overview .bl_bnrImage {
	display: block;
	position: absolute;
	top:0;
	z-index: 1;
	background-color: #CCC;
	height: 286px;
	width: 100%;
	background-image: url("../../images/frontPage/overview_bg.jpg");
	background-size: cover;
}
.bl_overview .inner {
	position: relative;
	z-index: 10;
}
.bl_overview .el_title {
	display: block;
	margin-top: 90px;
	color:#FFF;
}
/*テーブル*/
.bl_overview .bl_table {
	display: block;
	background-color: #FFF;
	margin: 0 auto 0px;
	width: 100%;
	max-width: 924px;
	overflow: hidden;
	font-size: 1rem;
}
.bl_overview .bl_table table {
	max-width: 620px;
	margin: 80px auto 0;
	border-collapse: collapse;
}
.bl_overview .bl_table table th,
.bl_overview .bl_table table td {
	border-bottom: solid #C6C6C6 1px;
	text-align: left;
	letter-spacing: 0.1em;
	padding:1.5em 1em;
}
.bl_overview .bl_table table th {
	font-weight: bold;
	width: 5em;
}
.bl_overview .bl_table table tr:last-child th,
.bl_overview .bl_table table tr:last-child td {
	border: none;
}
.bl_overview .bl_table table tr:last-child td {
	line-height: 2.4;
}
/*テーブルtd内にリストがある場合 (EN)*/
.bl_table li {
	line-height: 1.5;
	margin-bottom: 0.5em;
}
@media screen and (max-width:900px){
	.bl_overview .bl_table table {
		margin: 20px auto 0;
		width: calc(100% - 50px);
	}
}
@media screen and (max-width:480px){
	.bl_overview .bl_table table th {
		white-space: nowrap;
		width:auto;
	}
}