@charset "utf-8";
/*----------------------------------------------
	見出し
---------------------------------------------*/
/*  .c_ttl_type01
------------------------------------- */
.c_ttl_type01,
.is-style-c_ttl_type01 {
	padding: 80px 0;
	font-size: 48px;
	font-weight: bold;
	font-family: var(--f_hiragino_marugo);
	color: var(--c_black);
}
.c_ttl_type01 span,
.is-style-c_ttl_type01 span {
	display: block;
	font-size: 24px;
	font-weight: normal;
	color: var(--c_main);
}

/*  .c_ttl_type02
------------------------------------- */
.c_ttl_type02,
.is-style-c_ttl_type02 {
	margin-bottom: 50px;
	font-size: 40px;
	font-family: var(--f_hiragino_marugo);
}
.c_ttl_type02 span {
	display: block;
	font-size: 24px;
	font-weight: normal;
	color: var(--c_main);
}
body:not(.top) .c_ttl_type02,
body:not(.top) .is-style-c_ttl_type02 {
	margin-bottom: 30px;
	padding: 8px 0;
	border-top: 3px dotted var(--c_main);
	border-bottom: 3px dotted var(--c_main);
	color: var(--c_main);
	font-size: 36px;
	font-family: inherit;
	font-weight: bold;
}

/*  .c_ttl_type03
------------------------------------- */
.c_ttl_type03 {
	margin-bottom: 20px;
	color: var(--c_main);
	font-size: 32px;
	font-weight: normal;
	font-family: var(--f_hiragino_marugo);
}
body:not(.top) .c_ttl_type03,
body:not(.top) .is-style-c_ttl_type03 {
	margin-bottom: 20px;
	padding: 7px 0 7px 16px;
	border-left: 8px solid var(--c_main);
	background: #ECF9F5;
	color: var(--c_black);
	font-size: 26px;
	font-weight: bold;
	font-family: inherit;
}

/*  .c_ttl_type04
------------------------------------- */
body:not(.top) .c_ttl_type04,
body:not(.top) .is-style-c_ttl_type04 {
	position: relative;
	margin-left: 1.3em;
	margin-bottom: 10px;
	font-size: 20px;
	font-family: var(--f_hiragino_marugo);
}
body:not(.top) .c_ttl_type04::before,
body:not(.top) .is-style-c_ttl_type04::before {
	content: "";
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	left: -1.3em;
	width: 18px;
	height: 18px;
	background-image: url(../images/icon_ttl04.png);
	background-size: 100%;
}


/*----------------------------------------------
	ボタン
---------------------------------------------*/
/*  .c_btn_type01
------------------------------------- */
.c_btn_type01 a,
.is-style-c_btn_type01 a {
	position: relative;
	display: block;
	width: 330px;
	padding: 25px 60px;
	text-align: center;
	border: 2px solid var(--c_main);
	border-radius: 100px;
	color: var(--c_main);
	font-size: 18px;
	transition: .2s;
}
.c_btn_type01 a:hover,
.is-style-c_btn_type01 a:hover {
	background: var(--c_main);
	color: var(--c_white);
}
.c_btn_type01 a:before,
.is-style-c_btn_type01 a::before {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	right: 25px;
	translate: 0 -50%;
	width: 0;
	height: 0;
	border: 7px solid transparent;
	border-left: 7px solid var(--c_main);
}
.c_btn_type01 a:hover:before,
.is-style-c_btn_type01 a:hover::before {
	border-left: 7px solid var(--c_white);
}

.is_about_sec02 .c_btn_type01 {
	text-align: -webkit-right;
}
.is_about_sec02 .c_btn_type01 a {
	width: 430px;
}


/*----------------------------------------------
	セクション
---------------------------------------------*/
/*  .c_section
------------------------------------- */
.c_section {
	margin-bottom: 50px;
}
.c_section:has(.is_news) {
	position: relative;
	display: flex;
	gap: 80px;
	margin-top: 50px;
	margin-bottom: 100px;
	padding: 100px;
	background: var(--c_sub);
}
.c_section:has(.is_news)::before {
	content: "";
	position: absolute;
	top: -310px;
	right: -180px;
	width: 480px;
	height: 570px;
	background: url(../images/bg_circle02.png);
	background-size: cover;
}
.c_section:has(.is_news)::after {
	content: "";
	position: absolute;
	right: -219px;
	z-index: -1;
	width: 650px;
	height: 650px;
	background: url(../images/bg_triangle01.png);
	background-repeat: no-repeat;
	background-size: 100%;
	bottom: -270px;
}
.c_section.is_about {
	position: relative;
	margin-bottom: 150px;
	padding: 100px 0;
	background: var(--c_sub);
}
.c_section.is_gallery {
	position: relative;
	margin-bottom: 100px;
}

/* news & event */
.is_news {
	flex: 1;
}
.is_news dl,
.is_news ul {
	margin-bottom: 50px;
}
.is_news dl dd,
.is_news ul li {
	margin-top: 16px;
	margin-bottom: 30px;
	padding-bottom: 30px;
	border-bottom: 1px dotted #ccc;
}
.is_event {
	flex: 1;
}

/* about */
.is_about .is_about_sec01,
.is_about .is_about_sec02 {
	display: flex;
	gap: 60px;
}
.is_about .is_about_sec01 {
	margin-bottom: 100px;
}
.is_about .is_about_sec02 {
	justify-content: flex-end;
}
.is_about .is_about_txt01 {
	width: 620px;
	flex-shrink: 0;
}
.is_about .is_about_txt02 {
	width: 750px;
	flex-shrink: 0;
}
.is_about .is_about_txt01 p {
	line-height: 2;
}
.is_about .is_about_txt02 p {
	margin-bottom: 50px;
	line-height: 2;
}
.is_about .is_about_img01 {
	width: 900px;
	height: 550px;
	overflow: hidden;
	flex-shrink: 0;
	border-radius: 15px 0 0 15px;
}
.is_about .is_about_img02 {
	width: 750px;
	height: 500px;
	overflow: hidden;
	flex-shrink: 0;
	border-radius: 0 15px 15px 0;
}
.is_about .is_about_img01 img {
	width: 100%;
}

/* gallery */
.is_gallery .is_gallery_txt {
	position: relative;
	width: 400px;
	margin-right: 60px;
	flex-shrink: 0;
	line-height: 2;
}
.is_gallery .is_gallery_txt::before {
	content: "";
	position: absolute;
	top: -350px;
	left: -570px;
	z-index: -1;
	width: 560px;
	height: 560px;
	background: url(../images/bg_triangle02.png);
	background-size: 100%;
	background-repeat: no-repeat;
}
.is_gallery .is_gallery_slide {
	width: 1100px;
	overflow: hidden;
	flex-shrink: 0;
}
.is_gallery .is_gallery_slide li {
	height: 700px;
	overflow: hidden;
}
.is_gallery .is_gallery_slide img {
	width: 1100px;
	border-radius: 15px 0 0 15px;
}
.is_gallery .gallery_slide_btn {
	position: absolute;
	top: 450px;
}
.is_gallery button.prev,
.is_gallery button.next {
	position: relative;
	width: 60px;
	height: 60px;
	border-radius: 100%;
	background: var(--c_main);
	border: 1px solid var(--c_main);
	transition: .2s;
}
.is_gallery button.prev {
	margin-right: 70px;	
}
.is_gallery button.prev:before,
.is_gallery button.next:before {
	display: block;
	content: "";
	position: absolute;
	top: 50%;
	translate: 50% -50%;
	width: 0;
	height: 0;
	border: 11px solid transparent;
}
.is_gallery button.prev:before {
	right: 65%;
	border-right: 15px solid var(--c_white);
}
.is_gallery button.next:before {
	right: 35%;
	border-left: 15px solid var(--c_white);
}
.is_gallery button.prev:hover { background: var(--c_white); }
.is_gallery button.next:hover { background: var(--c_white); }
.is_gallery button.prev:hover:before { border-right: 15px solid var(--c_main); }
.is_gallery button.next:hover:before { border-left: 15px solid var(--c_main); }


/*----------------------------------------------
	リスト
---------------------------------------------*/
/*  .c_list_type01
------------------------------------- */
.c_list_type01 li {
	padding-left: calc(var(--li_circle_object) + var(--li_circle_margin));
	text-indent: calc(var(--li_circle_object) * -1 + var(--li_circle_margin) * -1);
}
.c_list_type01 li::before {
	content: "";
	display: inline-block;
	width: var(--li_circle_object);
	height: var(--li_circle_object);
	margin: 0 var(--li_circle_margin) 2px 0;
	border-radius: 50%;
	background-color: var(--c_black);
}

/*リスト改行位置計算用 数値を変更する際はここ*/
:root {
	--li_circle_object: 7px;
	--li_circle_margin: 5px;
}

/*  .c_list_type02
------------------------------------- */
.c_list_type02 {
	counter-reset: li_count;
}
.c_list_type02 li {
	padding-left: calc(1em + var(--li_ol_margin));
	text-indent: calc(1em * -1 + var(--li_ol_margin) * -1);
}
.c_list_type02 li::before {
	counter-increment: li_count;
  content: counter(li_count)"."; 
	margin: 0 var(--li_ol_margin) 2px 0;
  color: var(--c_black);
	font-weight: bold;
}

/*リスト改行位置計算用 数値を変更する際はここ */
:root {
	--li_ol_margin: 5px;
}

/*----------------------------------------------
	テーブル
---------------------------------------------*/
/*  .c_table_type01
------------------------------------- */
.c_table_type01 {
	width: 100%;
	text-align: left;
	background: var(--c_white);
}
.c_table_type01 thead {
	background: #ccc;
}
.c_table_type01 tbody th {
	background: #eee;
}
.c_table_type01 th,
.c_table_type01 td {
	padding: 15px;
	border-collapse: collapse;
  border: 1px solid #bbb;
}


/*----------------------------------------------
	.c_wrap
---------------------------------------------*/
.c_wrap {
	width: 100%;
	max-width: 1720px;
	margin: auto;
	padding: var(--wrap);
}
.c_wrap2 {
	width: 100%;
	max-width: 1200px;
	margin: auto;
	padding: var(--wrap);
}