@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

:root {
	--main_color: #11376b;
	--sub_color: #30a6d9;
	--ac_color: #ffdf5a;
	--bg_color: #e4f4fd;
	--theme_grad: linear-gradient(to right, #f7b515, #30a6d9, #11376b);
	--bg_grad: linear-gradient(#FFF 20%, #e4f4fd 20%);
	--font_ja: "Noto Sans JP", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", sans-serif;
	--font_en: "Roboto", sans-serif;
	--font_color: #000;
}

html {
	overflow-y: scroll;
	font-size: 62.5%;
	scroll-behavior: smooth;
}

body {
	font: 300 2rem/1.8 var(--font_ja);
	color: var(--font_color);
	letter-spacing: 2px;
	font-feature-settings: "palt";
}

a {
	color: var(--sub_color);
	text-decoration: none;
	transition: 0.2s ease-in-out;
}
a:hover {
	color: var(--main_color);
	border-bottom: 3px solid var(--ac_color);
}

a img {
	border-style: none;
	outline: none;
	transition: 0.2s ease-in-out;
}

p {
	margin-bottom: 30px;
}

h1,h2,h3,h4,h5 {
	font-feature-settings: "palt";
}

/* ▼------- Header -------▼ */
header {
	width: 90%;
	height: 80px;
	margin: 50px 5%;
	box-sizing: border-box;
	position: fixed;
	z-index: 9999;
	background-color: rgba(242,242,242,0.90);
	border-radius: 40px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	align-content: center;
}

	header .site_title {
		width: 14%;
		max-width: 244px;
		margin: 0 0 0 40px;
		line-height: 100%;
	}

		header .site_title img {
			width: 100%;
		}

	header .gnav {
		width: 86%;
	}

	header .gnav .gnav_wrap {
		width: 100%;
		display: flex;
		justify-content: flex-end;
		align-items: center;
	}

	header .gnav ul {
		display: flex;
		justify-content: space-between;
		align-content: center;
		align-items: center;
	}

		header .gnav li {
			padding: 0 18px;
			display: flex;
			align-items: center;
		}

			header .gnav li a {
				height: 80px;
				display: flex;
				align-items: center;
				text-align: center;
				white-space: nowrap;
				color: var(--main_color);
				font-weight: 500;
				position: relative;
				border-bottom: none;
				box-sizing: border-box
			}

			header .gnav li a:after {
				position: absolute;
				left: 0;
				content: '';
				width: 100%;
				height: 5px;
				background: var(--sub_color);
				bottom: 0px;
				transform: scale(0, 1);
				transform-origin: right top;
				transition: transform 0.5s;
			}

			header .gnav li a:hover:after {
				transform: scale(1, 1);
				transform-origin: left top;
			}

			header .gnav li a.current {
				border-bottom: 5px solid var(--sub_color);
				padding: 5px 0 0 0;
			}

				header .gnav li a.current:after {
					position: inherit;
					background: none;
				}

	header .gnav .contact {
		width: 18%;
		min-width: 260px;
		height: 80px;
		display: flex;
		margin-left: 20px;
	}

		header .gnav .contact a {
			width: 100%;
			display: flex;
			align-items: center;
			background: url("../img/btn_icon.svg") right 25px center no-repeat var(--sub_color);
			background-size: 40px;
			border-radius: 40px;
			color: #FFF;
			font-weight: 500;
			border-bottom: none;
			padding-left: 35px;
		}

		header .gnav .contact a:hover {
			background: url("../img/btn_icon_hover.svg") right 25px center no-repeat var(--ac_color);
			background-size: 40px;
			color: var(--main_color);
		}

	#nav_toggle{
		display: none;
	}

/* ▼------- Main -------▼ */
main {
	width: 100%;
	padding: 180px 0 0 0;
}

/* ▼------- Contact -------▼ */
#contact {
	width: 100%;
	margin: 0 auto;
}

#contact_b {
	width: 100%;
	margin: 0 auto;
	background: var(--bg_color);
}

	#contact .wrap,
	#contact_b .wrap {
		width: 100%;
		max-width: 1100px;
		margin: 0 auto;
		padding: 80px 0;
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
	}

	#contact .wrap .contact_header,
	#contact_b .wrap .contact_header {
		width: 33%;
	}

	#contact .wrap h3,
	#contact_b .wrap h3 {
		width: 100%;
		font: 300 5.4rem/1 var(--font_en);
		letter-spacing: 0;
		white-space: nowrap;
		animation: AnimationTitle 5s ease infinite;
		background: var(--theme_grad);
		background-size: 200% 100%;
		background-clip: text;
		color: transparent;
	}

		@keyframes AnimationTitle {
			0% {background-position: 0% 50%}
			50% {background-position: 100% 50%}
			100% {background-position: 0% 50%}
		}

	#contact .wrap .sub_jp,
	#contact_b .wrap .sub_jp {
		width: 100%;
		font: 400 2.6rem/1 var(--font_jp);
		white-space: nowrap;
		color: var(--main_color);
	}

	#contact .wrap .contact_box,
	#contact_b .wrap .contact_box {
		width: 65%;
	}

		#contact .wrap .contact_box p,
		#contact_b .wrap .contact_box p {
			margin-bottom: 30px;
		}

/* ▼------- Footer -------▼ */
#footer {
	width: 100%;
	margin: 0 auto;
	background: var(--main_color);
	border-radius: 80px 80px 0 0;
	color: #FFF;
}

	#footer .wrap {
		width: 100%;
		max-width: 1100px;
		margin: 0 auto;
		padding: 100px 0 120px 0;
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
	}

		#footer .cr_wrap {
			width: 50%;
		}

		#footer .f_logo {
			width: 60%;
			margin: 15px;
		}

			#footer .f_logo img {
				width: 100%;
			}

		#footer .address {
			white-space: nowrap;
		}

			#footer .address span {
				display: block;
				font-size: 1.4rem;
			}

		#footer .f_nav {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			margin: 20px 0 50px 0;
		}

			#footer .f_nav li {
				margin-bottom: 15px;
			}

				#footer .f_nav li a {
					color: #FFF;
					letter-spacing: 2px;
				}

		#footer .cr {
			font-size: 1.4rem;
			text-align: right;
		}

/* ▼------- Page Top -------▼ */
#page_top,
#f_contact {
	position: fixed;
	right: 4%;
	width: 100px;
	height: 100px;
}

#page_top {
	bottom: 2.5%;
	z-index: 998;
}

#f_contact {
	bottom: calc( 4% + 100px );
	z-index: 999;
}

	#page_top a,
	#f_contact a {
		width: 100%;
		height: 100%;
		box-sizing: border-box;
		padding-bottom: 10px;
		border-radius: 50%;
		text-decoration: none;
		margin-top: 18px;
		text-align: center;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-content: center;
		align-items: center;
		box-shadow: 0 0 15px #6c96ad;
		letter-spacing: 0;
	}

	#page_top a {
		background: var(--main_color);
		color: #FFF;
		font: 400 14px/1.2 var(--font_en);
	}

	#f_contact a {
		background: rgba(255,255,255,0.8);
		color: var(--main_color);
		font: 600 12px/1.2 var(--font_ja);
	}

		#page_top a i {
			width: 100%;
			display: block;
			margin: 0 0 10px 0;
			font-size: 20px;
			font-size: 2rem;
		}

		#page_top a span {
			width: 100%;
			display: block;
		}

		#f_contact a span {
			width: 30%;
			display: block;
			margin-bottom: 5px;
		}

			#f_contact a span img {
				width: 100%;
			}

	#page_top a:hover {
		background: var(--sub_color);
		border: none;
	}

	#f_contact a:hover {
		background: var(--ac_color);
		color: var(--main_color);
		border: none;
	}

/* ▼------- Link -------▼ */
.link_btn,
.link_btn_d {
	display: flex;
	justify-content: flex-end;
}

.link_btn_c,
.link_btn_dc {
	display: flex;
	justify-content: center;
}

.link_btn a,
.link_btn_d a,
.link_btn_c a,
.link_btn_dc a {
	display: flex;
	align-items: center;
	padding: 10px 60px 12px 30px;
	box-sizing: border-box;
	border: none;
	color: #FFF;
	height: 56px;
	border-radius: 28px;
	white-space: nowrap;
}

.link_btn a,
.link_btn_c a {
	background: url("../img/btn_icon.svg") right 25px center no-repeat var(--sub_color);
	background-size: 20px;

}

.link_btn_d a,
.link_btn_dc a {
	background: url("../img/btn_icon.svg") right 25px center no-repeat #2f4772;
	background-size: 20px;
}

.link_btn a:hover,
.link_btn_d a:hover,
.link_btn_c a:hover,
.link_btn_dc a:hover {
	color: var(--main_color);
	background: url("../img/btn_icon_hover.svg") right 25px center no-repeat var(--ac_color);
	background-size: 20px;
}

/* ▼------- flame -------▼ */
#bg_mc {
	width: 100%;
	margin: 0 auto;
	background: var(--main_color);
	color: #FFF;
	padding: 30px 0;
}

#bg_sc {
	width: 100%;
	margin: 0 auto;
	background: var(--sub_color);
}

#bg_pc {
	width: 100%;
	margin: 0 auto;
	background: var(--bg_color);
}

.wrap {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 70px 0 80px 0;
	box-sizing: border-box;
}

.con_wrap {
	width: 100%;
	margin: 0 0 50px 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
}

.inner {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 70px 0 80px 0;
	box-sizing: border-box;
}

.inner_w {
	width: 100%;
	margin: 0 auto;
	padding: 70px 0 80px 0;
	box-sizing: border-box;
}

.inner_p {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 0 120px 0;
	box-sizing: border-box;
}

.con_box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 30px;
}

	.con_box_img {
		margin: 0 30px;
		min-width: 370px;
	}

		.con_box_img img {
			width: 100%;
		}

	.con_box_txt {
		display: flex;
		flex-direction: column;
	}

		.con_box_txt .con_box_header {
			width: 100%;
			margin-bottom: 30px;
			font: 400 3rem/1.5 var(--font_ja);
			letter-spacing: 2px;
			white-space: nowrap;
			font-feature-settings: "palt";
			color: var(--main_color);
		}






/* ▼------- Contents Title -------▼ */
.cat_ttl {
	width: 100%;
	margin: 0 0 50px 0;
	text-align: center;
	color: #333;
}

	.cat_ttl span {
		font-size: 40px;
		font-size: 4rem;
		line-height: 120%;
		border-bottom: 3px solid #e95513;
		display: inline;
		letter-spacing: 2px;
		font-weight: bold;
}

.con_ttl,
.con_ttl_w {
	width: 100%;
	margin-bottom: 40px;
	padding: 0 5% 35px 5%;
	box-sizing: border-box;
	font: 400 3.8rem/1.2 var(--font_ja);
	letter-spacing: 1px;
	white-space: nowrap;
	font-feature-settings: "palt";
	text-align: center;
	position: relative;
}

.con_ttl_w {
	color: #FFF;
}

.con_ttl {
	animation: AnimationTitle 5s ease infinite;
	background: var(--theme_grad);
	background-size: 200% 100%;
	background-clip: text;
	color: transparent;
}

	@keyframes AnimationTitle {
		0% { background-position: 0% 50%;}
		50% { background-position: 100% 50%;}
		100% { background-position: 0% 50%;}
	}


	.con_ttl:after,
	.con_ttl_w:after {
		position: absolute;
		border-bottom: 1px solid #999;
		top: 100%;
		left: 50%;
		transform: translateX(-50%);
		width: 50px;
		content: '';
	}

.con_sub_ttl,
.con_sub_ttl_w {
	width: 100%;
	margin: 0 0 30px 0;
	font: 400 2.8rem/1.2 var(--font_ja);
	text-align: center;
}

.con_sub_ttl {
	color: var(--main_color);
}

.con_sub_ttl_w {
	color: #FFF;
}





/* ▼------- Pege Title -------▼ */
#ttl_image {
	width: 100%;
	position: relative;
}

#ttl_image_w {
	width: 100%;
	position: relative;
	border-bottom: 1px solid #CCC;
	padding: 100px 0 80px 0;
}

.page_ttl,
.page_ttl_en {
	width: 65%;
	padding: 0 5% 30px 5%;
	box-sizing: border-box;
	animation: AnimationTitle 5s ease infinite;
	background: var(--theme_grad);
	background-size: 200% 100%;
	background-clip: text;
	color: transparent;
	white-space: nowrap;
}

.page_ttl {
	font: 400 4.8rem/1.2 var(--font_ja);
	letter-spacing: 1px;
	font-feature-settings: "palt";
}

.page_ttl_en {
	font: 300 5.6rem/1.2 var(--font_en);
	letter-spacing: 0;
	font-feature-settings: "palt";
}

	.page_ttl span,
	.page_ttl_en span {
		display: block;
		white-space: nowrap;
		color: #333;
		background: none;
		font: 300 2.8rem/1.2 var(--font_en);
	}

	.page_ttl span {
		margin-top: 10px;
	}

	.page_ttl_en span {
		margin-top: 5px;
	}

	@keyframes AnimationTitle {
		0% { background-position: 0% 50%;}
		50% { background-position: 100% 50%;}
		100% { background-position: 0% 50%;}
	}

.page_lead {
	padding: 40px 5% 45px 5%;
	font: 300 2rem/1.5 var(--font_ja);
	color: #000;
	letter-spacing: 1px;
	background: #e4f4fd;
}

	.page_lead .page_lead_inner {
		width: 65%;
	}

		.page_lead .page_lead_inner p,
		.page_lead .page_lead_inner ul {
			margin-bottom: 10px;
		}

			.page_lead .page_lead_inner li {
				padding-left: 1em;
				text-indent: -1em;
				color: var(--main_color);
				font-weight: bold;
			}

			.page_lead .page_lead_inner li:before {
				content: '\f058';
				font-family: 'Font Awesome 6 Free';
				font-weight: 900;
				padding: 0 7px 0 0;
				color: var(--sub_color);
			}

.cat_img {
	position: absolute;
	top: 0;
	right: 0;
	width: 35%;
	max-width: 670px;

}

	.cat_img img {
		width: 100%;
	}

.cat_jump {
	position: absolute;
	top: 200px;
	right: 5%;
	width: 150px;
	height: 150px
}

	.cat_jump img {
		width: 100%;
	}




/* ▼------- Common Style -------▼ */
.normal_img img {
	width: 100%;
}

.normal_table {
	width: 100%;
	border-spacing: 10px;
}

	.normal_table th {
		background: var(--bg_color);
		color: var(--main_color);
		text-align: center;
		font-weight: bold;
		vertical-align: middle;
		padding: 10px;
		margin-right: 10px !important;
		white-space: nowrap;
	}

	.normal_table td {
		padding: 10px 0;
	}








.img_half {
	width: 50%;
}

	.img_half img {
		width: 100%;
	}

.txt_half {
	width: 46%;
}

.box_80 {
	width: 80%;
	margin-left: 10%;
	margin-right: 10%;
}

.em_line {
	background: linear-gradient(transparent 60%, #ffdf5a 60%);
	color: var(--main_color);
	font-weight: bold;
}

.em_yellow {
	color: #ffdf5a;
	font-weight: bold;
}

.em_blue {
	color: var(--main_color);
	font-weight: bold;
}

.alc {
	text-align: center;
}

.alr {
	text-align: right;
}

.txt_w {
	color: #FFF;
}

.txt_big {
	font-size: 2.8rem;
}

.color_red {
	color: #c1272d;
}




.mp_tab_p {
	text-align: left:
}


.pc_tab_only {
	display: inherit;
}

.sp_only {
	display: none;
}

.tab_only {
	display: none;
}

.sp_tab_only {
	display: none;
}

.mrgn_b10 {
	margin-bottom: 10px !important;
}

.mrgn_b0 {
	margin-bottom: 0px !important;
}

.mrgn_b100 {
	margin-bottom: 100px !important;
}

.mrgn_b50 {
	margin-bottom: 50px !important;
}


/* ▼------- slider -------▼ */
.slick-prev {
	left: -2%;
	z-index: 99;
}

.slick-next {
	right: -2%;
	z-index: 100;
}

.slick-prev,
.slick-next {
	width: 40px;
	height: 40px;
}

.slick-prev:before,
.slick-next:before {
	font-size: 40px;
}

.slick-slide {
	margin-right: 1vw !important;
	margin-left: 1vw !important;
}

.slick-track {
	display: flex;
}

.slick-slide {
	height: auto !important;
}

