@charset "UTF-8";
/*============================
general
============================*/

html {
	font-family: "Shippori Mincho", serif;
	font-size: 62.5%;
	line-height: 1.6;
	color: #333333;
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
}

body a {
	color: #333333;
	text-decoration: none;
}

body {
	margin: 0;
	padding: 0;
	position: relative;
	overflow-x: hidden;
}

.font_gar {
	font-family: "Cormorant Garamond", serif;
}

.font_goudy {
	font-family: "Sorts Mill Goudy", serif;
}

.font_goth {
	font-family: "Noto Sans JP", sans-serif;
}

body * {
	position: relative;
	text-align: justify;
	box-sizing: border-box;
}

body .pc_only {
	display: block;
}

body .sp_only {
	display: none;
}

:root {
	--color-light-blue: #f0f6fb;
	--color-blue: #001e75;
	--color-middle-blue: #1362cc;
}

body a {
	transition: all ease 0.2s;
}

body a:hover {
	/* opacity: 0.8; */
	filter: brightness(1.1)
}

body img {
	width: 100%;
	height: auto;
	margin: 0;
	display: block;
	line-height: 0;
	font-size: 0;
}

ul,
dl,
ol {
	list-style: none;
	padding: 0;
	margin: 0;
}

h1,
h2,
h3,
h4,
p,
li,
dd,
dt {
	margin: 0;
	padding: 0;
}

picture,
figure {
	line-height: 0;
	font-size: 0;
	margin: 0;
	padding: 0;
}

/*============================
#site_header
============================*/
#site_header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	padding: min(calc(20/1720*100%), 20px) min(calc(38/1720*100%), 38px);
	background: rgba(5, 39, 108, 0.5);
}

#site_header .sec_inner {
	position: relative;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	width: calc(1720/1920*100%);
	margin: 0 auto;
}

#site_header .sec_inner .header_logo {
	width: min(calc(100/1720*100vw), 100px);
	margin-right: calc(130/1720*100%);
}

#site_header .sec_inner .hamburger-menu {
	display: none;
}

#site_header .sec_inner nav {
	width: 75%;
}

#site_header .sec_inner .header_nav {
	display: flex;
	justify-content: flex-start;
	padding-bottom: min(calc(10/1720*100%), 10px);
}

#site_header .sec_inner .header_nav li {
	margin-right: 5%;
}

#site_header .sec_inner .header_nav a {
	text-decoration: none;
	font-size: min(calc(20/1720*100vw), 20px);
	color: #FFF;
}

#site_header .header_fixBtn {
	position: absolute;
	right: 0;
	top: 0;
	margin: 0;
}

/*============================
#site_common
============================*/
#kv {
	height: 938px;
	width: 100%;
}

#kv .kv_wrap {
	height: 938px;
	width: 100%;
}

#kv h1 {
	display: inline-block;
	z-index: 3;
	font-size: 150px;
	color: #FFF;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.05em;
}

.sub_page #kv {
	background-size: cover;
	background-position: center center;
}

.sub_page #kv .kv_wrap {
	max-width: 1720px;
	margin: 0 auto;
	display: flex;
	flex-wrap: wrap;
	align-content: flex-start;
	justify-content: flex-end;
	flex-direction: column;
}

.sub_page #kv h1 {
	color: #525252;
	position: relative;
	line-height: 0.9;
	display: inline;
}

.sub_page #kv h2 {
	font-size: 30px;
	font-weight: 500;
	color: #525252;
	display: inline;
	text-align: right;
}

.sub_page #kv p {
	display: inline;
}

#kv p {
	display: inline-block;
	z-index: 3;
	font-size: 20px;
	color: #FFF;
	letter-spacing: 0.25em;
}

.sub_page #kv p {
	color: #525252;
	position: relative;
}

.inner {
	max-width: 1720px;
	margin: 0 auto;
}

main .cont_head {
	font-size: 90px;
	font-weight: normal;
	letter-spacing: 9.5px;
	line-height: 1;
	margin: 0 auto .5em;
	color: #30467d;
	text-align: center;
}

main .cont_sub {
	font-size: 32px;
	line-height: 1;
	letter-spacing: 0.15em;
	margin: 0;
	color: #30467d;
	text-align: center;
}

/*============================
#site_footer
============================*/
#site_footer {
	margin-top: -10%;
	z-index: 2;
	background-image: url(/assets/img/common/footer-bg_pc.png);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
	color: #FFF;
	padding-bottom: min(calc(50/1720*100%), 50px);
}

#site_footer a {
	color: #FFF;
}

#site_footer .footer_inner {
	max-width: 1000px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	padding: min(calc(190/1720*100%), 190px) 0 min(calc(30/1720*100%), 30px);
}

#site_footer .footer_main .footer_logo {
	width: min(calc(350/1720*100vw), 350px);
	margin-bottom: min(calc(30/1720*100vw), 30px);
}

#site_footer .footer_main .footer_address {
	font-size: min(calc(16/1720*100vw), 16px);
	line-height: 162.5%;
	margin-bottom: min(calc(30/1720*100vw), 30px);
}

#site_footer .footer_main .footer_list {
	font-size: min(calc(16/1720*100vw), 16px);
	letter-spacing: 0.2em;
	line-height: 150%;
}

#site_footer .footer_main .footer_list li {
	margin-bottom: min(calc(45/1720*100vw), 45px);
}

#site_footer .footer_main .footer_list a {
	text-decoration: none;
	font-size: min(calc(30/1720*100vw), 30px);
}

#site_footer .footer_main .footer_list li dl {
	display: flex;
}

#site_footer .footer_navi.pc_only {
	width: calc(350/1720*100%);
}

#site_footer .footer_navi.pc_only .nav-list {
	font-size: min(calc(18/1720*100vw), 18px);
	letter-spacing: 0.2em;
	font-weight: 200;
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: space-between;
}

#site_footer .footer_navi.pc_only .nav-list li {
	margin-bottom: .7em;
}

#site_footer .footer_navi.pc_only .nav-list li a:before {
	content: "";
	display: block;
	width: min(calc(45/1720*100vw), 45px);
	height: 1px;
	background-color: #FFF;
	position: absolute;
	top: 50%;
	left: -3.5em;
}

#site_footer .copy {
	font-size: min(calc(16/1720*100vw), 16px);
	text-align: center;
	line-height: 1;
	letter-spacing: 0.2em;
	margin-top: 120px;
}

#site_footer .btn_top {
	font-size: 0;
}

/*============================
Liquid
============================*/

@media (max-width:1720px) {
	/*============================
	#site_header
	============================*/
	#site_header .sec_inner .header_nav a {
		text-decoration: none;
		font-size: min(calc(16/1720*100vw), 16px);
	}

	#site_header .header_fixBtn {
		width: calc(187/1720*100%);
	}

	/*============================
	#site_common
	============================*/
	#kv {
		height: min(calc(938/1720*100vw), 938px);
	}

	#kv .kv_wrap {
		height: min(calc(938/1720*100vw), 938px);
	}

	main #kv h1 {
		font-size: min(calc(150/1720*100vw), 150px);
	}

	#kv h1 {
		font-size: min(calc(140/1720*100vw), 140px);
	}

	.sub_page #kv .kv_wrap {
		max-width: 1720px;
		padding: 0 0 calc(90/1720*100%) calc(90/1720*100%);
	}

	.sub_page #kv h2 {
		font-size: min(calc(30/1720*100vw), 30px);
	}

	#kv p {
		display: inline-block;
		z-index: 3;
		font-size: min(calc(20/1720*100vw), 20px);
		color: #FFF;
	}

	main .cont_head {
		font-size: min(calc(90/1720*100vw), 95px);
		letter-spacing: min(calc(9.5/1720*100vw), 9.5px);
		color: #30467d;
		margin-bottom: 0.5em;
	}

	main .cont_sub {
		font-size: min(calc(32/1720*100vw), 32px);
		color: #30467d;
	}

	#site_footer .footer_inner {
		padding-left: 3%;
	}
}

/*============================
Smartphone
============================*/
@media (max-width:1000px) {
	body .pc_only {
		display: none;
	}

	body .sp_only {
		display: block;
	}

	/*============================
	#site_header
	============================*/
	#site_header {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 10;
		width: 100%;
		padding: 15px 0;
	}

	#site_header .sec_inner {
		position: relative;
		display: flex;
		justify-content: space-between;
		width: 100%;
		height: 60px;
		padding: 0 min(calc(50/750*100%), 50px);
	}

	#site_header .sec_inner .header_logo {
		width: 80px;
		margin: 0;
	}

	@media (max-width:600px) {
		#site_header {
			padding: 10px 0;
		}

		#site_header .sec_inner .header_logo {
			width: 50px;
		}

		#site_header .sec_inner {
			position: relative;
			display: flex;
			justify-content: space-between;
			width: 100%;
			height: 40px;
			padding: 0 min(calc(50/750*100%), 50px);
		}
	}

	#site_header .sec_inner .hamburger-menu {
		display: block;
		margin-right: 0;
	}

	#site_header .sec_inner nav {
		position: fixed;
		width: calc(450/750*100%);
		height: 100vh;
		min-height: 1000px;
		background: #30467d;
		transition: all ease 0.3s;
		top: 0;
		z-index: 100;
		right: -100%;
	}

	#site_header .sec_inner nav.open {
		right: -1px;
	}

	#site_header .sec_inner .header_nav {
		display: block;
		padding-top: calc(270/400*100%);
		padding-left: calc(110/400*100%);
		justify-content: space-between;
		padding-bottom: min(calc(10/1720*100%), 10px);
	}

	#site_header .sec_inner .header_nav li {
		margin-bottom: 2vh;
	}

	#site_header .sec_inner .header_nav a {
		display: inline-block;
		text-decoration: none;
		font-size: min(calc(26/750*100vw), 26px);
		letter-spacing: 0.2em;
		white-space: nowrap;
	}

	#site_header .sec_inner .header_nav a:before {
		content: "";
		display: block;
		width: min(calc(22/750*100vw), 22px);
		height: 2px;
		background-color: #FFF;
		position: absolute;
		top: 50%;
		left: -2em;
	}

	#site_header .sec_inner .header_nav a span.sp_only {
		text-decoration: none;
		font-size: min(calc(40/750*100vw), 40px);
		display: inline-block;
		margin-right: 5%;
	}

	#site_header .sec_inner .header_nav a span.sp_only span {
		font-size: min(calc(22/750*100vw), 22px);
		margin-left: 7%;
	}

	#site_header .sec_inner .header_nav a span.sp_only.small {
		font-size: min(calc(22/750*100vw), 22px);
		margin-right: 0;
	}

	#site_header .sec_inner .header_nav a.link_active {
		text-decoration: none;
		font-size: min(calc(18/1720*100vw), 18px);
	}

	#site_header .header_fixBtn {
		width: calc(210/400*100%);
		position: absolute;
		right: auto;
		left: 0;
		top: 0;
		margin: 0;
	}

	/* ハンバーガーメニューの基本スタイル */
	#site_header .hamburger-menu {
		display: block;
		position: relative;
		width: 50px;
		height: 40px;
		background: transparent;
		border: none;
		cursor: pointer;
		outline: none;
		z-index: 10000;
	}

	#site_header .hamburger-menu span,
	#site_header .hamburger-menu span::before,
	#site_header .hamburger-menu span::after {
		display: block;
		position: absolute;
		height: 2px;
		/* 線の高さ */
		width: 100%;
		/* 線の幅 */
		background-color: #FFF;
		/* 線の色 */
		transition: all 0.3s ease-in-out;
		opacity: 1;
	}

	#site_header .hamburger-menu span {
		top: 50%;
		transform: translateY(-50%);
		/* 中心線の位置調整 */
	}

	#site_header .hamburger-menu span::before,
	#site_header .hamburger-menu span::after {
		content: '';
		width: 100%;
	}

	#site_header .hamburger-menu span::before {
		top: -10px;
	}

	#site_header .hamburger-menu span::after {
		top: 10px;
	}

	/* アクティブ時のクロス表示 */
	#site_header .hamburger-menu.active span {
		background: transparent;
	}

	#site_header .hamburger-menu.active span::before,
	#site_header .hamburger-menu.active span::after {
		top: 0;
		/* トップの位置を中心に揃える */
		transform-origin: 50%;
		/* 回転の中心を中央に設定 */
		background-color: #FFF;
	}

	#site_header .hamburger-menu.active span::before {
		transform: rotate(30deg);
	}

	#site_header .hamburger-menu.active span::after {
		transform: rotate(-30deg);
	}

	/*============================
	#site_common
	============================*/
	#kv {
		height: 100vw;
		width: 100%;
	}

	#kv .kv_wrap {
		height: 100vw;
		width: 100%;
		padding: 0 0 calc(60/750*100%) calc(32/750*100%);
	}

	main #kv h1 {
		display: inline-block;
		z-index: 3;
		font-size: min(calc(105.6/750*100vw), 105.6px);
		color: #FFF;
		font-weight: 500;
		letter-spacing: 0.02em;
	}

	main #kv p {
		font-size: min(calc(22/750*100vw), 22px);
		line-height: calc(36/22);
		letter-spacing: 0.05em;
	}

	main.sub_page #kv {
		background-size: cover;
		background-position: center center;
		height: min(calc(720/750*100vw), 720px);
	}

	.sub_page #kv .kv_wrap {
		max-width: 100%;
		height: min(calc(720/750*100vw), 720px);
		padding-left: min(calc(40/750*100vw), 40px);
	}

	.sub_page #kv h1 {
		color: #525252;
		position: relative;
		line-height: 1;
		font-weight: 400;
		font-size: min(calc(100/750*100vw), 100px);
	}

	.sub_page #kv h2 {
		font-size: min(calc(24/750*100vw), 24px);
		font-weight: 500;
		color: #525252;
		display: inline;
		text-align: right;
	}

	.sub_page #kv p {
		display: inline;
	}

	#kv p {
		display: inline-block;
		z-index: 3;
		font-size: min(calc(36/750*100vw), 36px);
		color: #FFF;
	}

	.sub_page #kv p {
		color: #525252;
		position: relative;
	}

	main .cont_head {
		font-size: min(calc(100/750*100vw), 100px);
		letter-spacing: min(calc(4/750*100vw), 4px);
		margin-bottom: 0.2em;
	}

	main .cont_sub {
		font-size: min(calc(26/750*100vw), 26px);
		font-weight: 500;
		margin: 0;
	}

	/*============================
	#site_footer
	============================*/
	#site_footer {
		background-image: url(/assets/img/common/footer-bg_sp.png);
		padding: min(calc(220/750*100vw), 220px) 0 min(calc(160/750*100vw), 160px) min(calc(30/750*100vw), 30px);
	}

	#site_footer .footer_inner {
		width: 100%;
		margin: 0 auto;
		padding: 0;
		display: flex;
		justify-content: space-between;
	}

	#site_footer .footer_main .footer_logo {
		width: min(calc(481/750*100vw), 481px);
		margin-bottom: min(calc(50/750*100vw), 50px);
	}

	#site_footer .footer_main .footer_address {
		font-size: min(calc(24/750*100vw), 24px);
		margin-bottom: min(calc(95/750*100vw), 95px);
		line-height: calc(46/24);
	}

	#site_footer .footer_main .footer_list {
		font-size: min(calc(28/750*100vw), 28px);
	}

	#site_footer .footer_main .footer_list li {
		font-size: min(calc(24/750*100vw), 24px);
		margin-bottom: min(calc(60/750*100vw), 60px);
	}

	#site_footer .footer_main .footer_list a {
		text-decoration: none;
		font-size: min(calc(46/750*100vw), 46px);
	}

	#site_footer .footer_main .footer_list li dl {
		display: flex;
		font-size: min(calc(24/750*100vw), 24px);
		letter-spacing: 0.15em;
	}

	#site_footer .copy {
		font-size: min(calc(22/750*100vw), 22px);
		text-align: left;
		line-height: 166%;
		margin-top: min(calc(100/750*100vw), 100px);
	}

	#site_footer .btn_top {
		position: fixed;
		bottom: 5%;
		right: 5%;
		font-size: 0;
		line-height: 0;
		width: calc(106/750*100vw);
		height: calc(106/750*100vw);
		background-image: url(/assets/img/common/btn_top.svg);
		background-repeat: no-repeat;
		border-radius: 50%;
		background-position: center center;
		background-color: #FFF;
		background-size: 30%;
		visibility: hidden;
		z-index: 10;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	#site_footer .btn_top a {
		display: block;
		width: 100%;
		height: 100%;
	}

	/* 表示クラス */
	#site_footer .btn_top.visible {
		opacity: 1;
		visibility: visible;
	}

}

/* ---------------------------------------------
アニメーション
--------------------------------------------- */
/* アニメーション共通 */
.io {
	transition: all 1s ease;
}

.io_slideShow {
	overflow: hidden;
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.io_slideShow.is_active {
	-webkit-animation: slideShow .8s ease-in-out forwards;
	animation: slideShow .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow {
	0% {
		-webkit-clip-path: inset(0 0 100% 0);
		clip-path: inset(0 0 100% 0);
	}

	100% {
		-webkit-clip-path: inset(0);
		clip-path: inset(0);
	}
}

@keyframes slideShow {
	0% {
		-webkit-clip-path: inset(0 0 100% 0);
		clip-path: inset(0 0 100% 0);
	}

	100% {
		-webkit-clip-path: inset(0);
		clip-path: inset(0);
	}
}

.io_slideShow_ver {
	overflow: hidden;
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.io_slideShow_ver.is_active {
	-webkit-animation: slideShow_ver .8s ease-in-out forwards;
	animation: slideShow_ver .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow_ver {
	0% {
		/* 上端を100%クリップして画面外（非表示）にする */
		-webkit-clip-path: inset(0 0 100% 0);
		clip-path: inset(0 0 100% 0);
	}

	100% {
		/* 全方向のクリップを解除して完全表示 */
		-webkit-clip-path: inset(0 0 0 0);
		clip-path: inset(0 0 0 0);
	}
}

.io_slideShow_ver_down {
	overflow: hidden;
	-webkit-clip-path: inset(0 0 100% 0);
	clip-path: inset(0 0 100% 0);
}

.io_slideShow_ver_down.is_active {
	-webkit-animation: slideShow_ver_down .8s ease-in-out forwards;
	animation: slideShow_ver_down .8s ease-in-out forwards;
}

@-webkit-keyframes slideShow_ver_down {
	0% {
		/* 上端を100%クリップして画面外（非表示）にする */
		-webkit-clip-path: inset(0 0 100% 0);
		clip-path: inset(0 0 100% 0);
	}

	100% {
		/* 全方向のクリップを解除して完全表示 */
		-webkit-clip-path: inset(0 0 0 0);
		clip-path: inset(0 0 0 0);
	}
}

/* fade-in
-------------------- */
.io_fadeIn {
	opacity: 0;
	transition-delay: .5s !important;
}

.io_fadeIn.is_active {
	opacity: 1;
}

/* fade-up
-------------------- */
.io_fadeUIn {
	opacity: 0;
}

.io_fadeUp.is_active {
	opacity: 1;
}

/* fade-down
-------------------- */
.io_fadeDown {
	opacity: 0;
	-webkit-transform: translateY(-20px);
	transform: translateY(-20px);
}

.io_fadeDown.is_active {
	opacity: 1;
	-webkit-transform: translateY(0);
	transform: translateY(0);
}

/* -----------------------------------------
ディレイ
----------------------------------------- */
.anime-delay-100 {
	-webkit-animation-delay: 0.1s !important;
	animation-delay: 0.1s !important;
	transition-delay: 0.1s !important;
}

.anime-delay-200 {
	-webkit-animation-delay: 0.2s !important;
	animation-delay: 0.2s !important;
	transition-delay: 0.2s !important;
}

.anime-delay-300 {
	-webkit-animation-delay: 0.3s !important;
	animation-delay: 0.3s !important;
	transition-delay: 0.3s !important;
}

.anime-delay-400 {
	-webkit-animation-delay: 0.4s !important;
	animation-delay: 0.4s !important;
	transition-delay: 0.4s !important;
}

.anime-delay-500 {
	-webkit-animation-delay: 0.5s !important;
	animation-delay: 0.5s !important;
	transition-delay: 0.5s !important;
}

.anime-delay-600 {
	-webkit-animation-delay: 0.6s !important;
	animation-delay: 0.6s !important;
	transition-delay: 0.6s !important;
}

.anime-delay-700 {
	-webkit-animation-delay: 0.7s !important;
	animation-delay: 0.7s !important;
	transition-delay: 0.7s !important;
}

.anime-delay-800 {
	-webkit-animation-delay: 0.8s !important;
	animation-delay: 0.8s !important;
	transition-delay: 0.8s !important;
}

.anime-delay-900 {
	-webkit-animation-delay: 0.9s !important;
	animation-delay: 0.9s !important;
	transition-delay: 0.9s !important;
}

.anime-delay-1000 {
	-webkit-animation-delay: 1s !important;
	animation-delay: 1s !important;
	transition-delay: 1s !important;
}

.anime-delay-1100 {
	-webkit-animation-delay: 1.1s !important;
	animation-delay: 1.1s !important;
	transition-delay: 1.1s !important;
}

.anime-delay-1200 {
	-webkit-animation-delay: 1.2s !important;
	animation-delay: 1.2s !important;
	transition-delay: 1.2s !important;
}

.anime-delay-1300 {
	-webkit-animation-delay: 1.3s !important;
	animation-delay: 1.3s !important;
	transition-delay: 1.3s !important;
}

.anime-delay-1400 {
	-webkit-animation-delay: 1.4s !important;
	animation-delay: 1.4s !important;
	transition-delay: 1.4s !important;
}

.anime-delay-1500 {
	-webkit-animation-delay: 1.5s !important;
	animation-delay: 1.5s !important;
	transition-delay: 1.5s !important;
}

.anime-delay-1600 {
	-webkit-animation-delay: 1.6s !important;
	animation-delay: 1.6s !important;
	transition-delay: 1.6s !important;
}

.anime-delay-1700 {
	-webkit-animation-delay: 1.7s !important;
	animation-delay: 1.7s !important;
	transition-delay: 1.7s !important;
}

.anime-delay-1800 {
	-webkit-animation-delay: 1.8s !important;
	animation-delay: 1.8s !important;
	transition-delay: 1.8s !important;
}

.anime-delay-1900 {
	-webkit-animation-delay: 1.9s !important;
	animation-delay: 1.9s !important;
	transition-delay: 1.9s !important;
}

.anime-delay-2000 {
	-webkit-animation-delay: 2s !important;
	animation-delay: 2s !important;
	transition-delay: 2s !important;
}

.anime-delay-2100 {
	-webkit-animation-delay: 2.1s !important;
	animation-delay: 2.1s !important;
	transition-delay: 2.1s !important;
}

.anime-delay-2200 {
	-webkit-animation-delay: 2.2s !important;
	animation-delay: 2.2s !important;
	transition-delay: 2.2s !important;
}