/* ---------------------------------------------------------------
start COMMON CSS
--------------------------------------------------------------- */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Noto+Serif+JP:wght@200..900&family=Shippori+Mincho:wght@400;500;600;700&display=swap');

* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	width: 100%;
	margin: 0;
	padding: 0;
	color: #000;
	font-size: 15px;
	line-height: 1.8;
	font-weight: 400;
	font-family: 'Noto Sans JP', Meiryo, sans-serif;
}

body.font-load {
	opacity: 1;
}

.notoserif {
	font-family: "Noto Serif JP", serif;
}
.shipporimin {
	font-family: "Shippori Mincho", serif;
}

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
	display: block;
}

.clearfix:after {
	content: ".";
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
}

.clearfix {
	min-height: 1px;
}

* html .clearfix {
	height: 1px;
	/*\*/
	/*/
	height: auto;
	overflow: hidden;
	/**/
}

a {
	outline: none;
	color: #004eb1;
	text-decoration: none;
	-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
	cursor: pointer;
}
a.uline { text-decoration: underline; }
a:hover {
	text-decoration: none;
	cursor: pointer;
}
a.uline:hover { text-decoration: none; }

button {
	outline: none;
}

img {
	border: none;
	margin: 0;
	padding: 0;
	vertical-align: top;
	-ms-interpolation-mode: bicubic !important;
	-webkit-backface-visibility: hidden;
	-moz-backface-visibility: hidden;
	-ms-backface-visibility: hidden;
	backface-visibility: hidden;
}

p {
	margin: 0 0 15px 0;
	padding: 0;
}

ul {
	list-style: none;
}

table {
	border-collapse: collapse;
	border-spacing: 0px;
}

.aligncenter {
	text-align: center;
}

.alignright {
	text-align: right;
}

.alignjust {
	text-align: justify;
	text-justify: inter-ideograph;
	-ms-text-justify: inter-ideograph;
}

.mt5 { margin-top: 5px; }
.mt10 { margin-top: 10px; }
.mt15 { margin-top: 15px; }
.mt20 { margin-top: 20px; }
.mt25 { margin-top: 25px; }
.mt30 { margin-top: 30px; }
.mt35 { margin-top: 35px; }
.mt40 { margin-top: 40px; }
.mt45 { margin-top: 45px; }
.mt50 { margin-top: 50px; }
.mt55 { margin-top: 55px; }
.mt60 { margin-top: 60px; }
.mt65 { margin-top: 65px; }
.mb5 { margin-bottom: 5px; }
.mb10 { margin-bottom: 10px; }
.mb15 { margin-bottom: 15px; }
.mb20 { margin-bottom: 20px; }
.mb25 { margin-bottom: 25px; }
.mb30 { margin-bottom: 30px; }
.mb35 { margin-bottom: 35px; }
.mb40 { margin-bottom: 40px; }
.mb45 { margin-bottom: 45px; }
.mb50 { margin-bottom: 50px; }
.mb55 { margin-bottom: 55px; }
.mb60 { margin-bottom: 60px; }
.mb65 { margin-bottom: 65px; }

.fleft { float: left; }
.fright { float: right; }

.note { font-size: .7em; }
.red { color: #e60012; }

.under { text-decoration: underline; }

.iblock { display: inline-block; }

.indent1 {
	padding-left: 1em;
	text-indent: -1em;
}
.indent1 * { text-indent: 0; }

.w100 { width: 100%; }

.wrapper {
	width: 100%;
	overflow: hidden;
}

@media screen and (min-width: 701px) {
	.pc_none { display: none; }
}
@media screen and (max-width: 700px) {
	.sp_none { display: none; }
}

#wrapper {
	overflow: hidden;
}

/* --------------- header --------------- */

#header {
	width: 100%;
	margin: 0;
	padding: 0;
	transition: background .3s;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
}
#header::before {
	content: "";
	width: 100%;
	height: calc( 100% + 30px );
	margin: 0;
	padding: 0;
	background: linear-gradient( 180deg, rgba(0,0,0,0.4), rgba(0,0,0,0) );
	opacity: 0;
	transition: opacity .5s;
	position: absolute;
	top: 0;
	left: 0;
	z-index: -1;
}
#header.background::before { opacity: 1; }

.col_header {
	width: 100%;
	max-width: 1260px;
	margin: 0 auto;
	padding: 25px 1.5% 10px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	transition: all .3s;
	position: relative;
	z-index: 0;
}

@media screen and (min-width: 1001px) {
	#header.background .col_header { padding-top: 10px; }
}
@media screen and (max-width: 1000px) {
	.col_header {
		padding: 0 0 0 10px;
	}
}
.col_header .logo {
	width: 245px;
	margin: 0;
	padding: 0;
	filter: drop-shadow(0 0 2px rgba(31,42,103, 0.3));
}
@media screen and (min-width: 1001px) {
	.col_header .logo { transition: all .3s; }
	.col_header .logo:hover { filter: drop-shadow(0 0 3px rgba(255,255,255, 0.3)); }
}
@media screen and (max-width: 1000px) {
	.col_header .logo {
		width: 70%;
		max-width: 224px;
	}
}
.col_header .logo img {
	vertical-align: top;
}
.col_header #menubtn { display: none; }
@media screen and (max-width: 1000px) {
	.col_header #menubtn {
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		background-color: #fff;
		display: block;
		position: relative;
		z-index: 0;
	}
	.col_header #menubtn span {
		width: 20px;
		height: 3px;
		margin: 0;
		padding: 0;
		background-color: #1f2a67;
		display: inline-block;
		position: absolute;
		left: 12px;
	}
	#menubtn span:nth-child(1) { top: 13px; }
	#menubtn span:nth-child(2) { top: 21px; }
	#menubtn span:nth-child(3) { top: 29px; }
	
	#menubtn span:nth-of-type(1) {
		-webkit-animation: menu-bar01 .75s forwards;
		animation: menu-bar01 .75s forwards;
	}

	@-webkit-keyframes menu-bar01 {
		0% {
			-webkit-transform: translateY(8px) rotate(45deg);
		}
		50% {
			-webkit-transform: translateY(8px) rotate(0);
		}
		100% {
			-webkit-transform: translateY(0) rotate(0);
		}
	}

	@keyframes menu-bar01 {
		0% {
			transform: translateY(8px) rotate(45deg);
		}
		50% {
			transform: translateY(8px) rotate(0);
		}
		100% {
			transform: translateY(0) rotate(0);
		}
	}

	#menubtn span:nth-of-type(2) {
		transition: all .25s .25s;
		opacity: 1;
	}

	#menubtn span:nth-of-type(3) {
		-webkit-animation: menu-bar02 .75s forwards;
		animation: menu-bar02 .75s forwards;
	}
	@-webkit-keyframes menu-bar02 {
		0% {
			-webkit-transform: translateY(-8px) rotate(-45deg);
		}
		50% {
			-webkit-transform: translateY(-8px) rotate(0);
		}
		100% {
			-webkit-transform: translateY(0) rotate(0);
		}
	}
	@keyframes menu-bar02 {
		0% {
			transform: translateY(-8px) rotate(-45deg);
		}
		50% {
			transform: translateY(-8px) rotate(0);
		}
		100% {
			transform: translateY(0) rotate(0);
		}
	}
	.active #menubtn span:nth-of-type(1) {
		-webkit-animation: active-menu-bar01 .75s forwards;
		animation: active-menu-bar01 .75s forwards;
	}
	@-webkit-keyframes active-menu-bar01 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
		}
		50% {
			-webkit-transform: translateY(8px) rotate(0);
		}
		100% {
			-webkit-transform: translateY(8px) rotate(45deg);
		}
	}
	@keyframes active-menu-bar01 {
		0% {
			transform: translateY(0) rotate(0);
		}
		50% {
			transform: translateY(8px) rotate(0);
		}
		100% {
			transform: translateY(8px) rotate(45deg);
		}
	}
	.active #menubtn span:nth-of-type(2) {
		opacity: 0;
	}
	.active #menubtn span:nth-of-type(3) {
		-webkit-animation: active-menu-bar03 .75s forwards;
		animation: active-menu-bar03 .75s forwards;
	}
	@-webkit-keyframes active-menu-bar03 {
		0% {
			-webkit-transform: translateY(0) rotate(0);
		}
		50% {
			-webkit-transform: translateY(-8px) rotate(0);
		}
		100% {
			-webkit-transform: translateY(-8px) rotate(-45deg);
		}
	}
	@keyframes active-menu-bar03 {
		0% {
			transform: translateY(0) rotate(0);
		}
		50% {
			transform: translateY(-8px) rotate(0);
		}
		100% {
			transform: translateY(-8px) rotate(-45deg);
		}
	}	
}
.col_header .navi {
	margin: 0;
	padding: 0;
}
.col_header .navi .inner_navi {
	width: 100%;
	margin: 0;
	padding: 0;
	display: flex;
}
@media screen and (max-width: 1000px) {
	.col_header .navi {
		width: 100%;
		height: 100vh;
		display: none;
		background-color: rgba(0,0,0,0.7);
		position: absolute;
		top: 100%;
		right: 0;
	}
	.col_header .navi .inner_navi {
		max-width: 300px;
		margin: 0 0 0 auto;
		padding: 0 0 1px;
		background-color: rgba(255,255,255,0.9);
		display: block;
	}
}
.col_header .navi a {
	margin: 0;
	padding: 0.8em 1em;
	color: #fff;
	display: inline-block;
	position: relative;
	z-index: 0;
}
@media screen and (max-width: 1070px) {
	.col_header .navi a { padding: 0.8em; }
}
.col_header .navi a.contact {
	padding: 0.8em 2em;
	color: #1f2a67;
	border-radius: 2em;
	box-sizing: border-box;
	transition: color .3s;
	overflow: hidden;
	position: relative;
	z-index: 0;
}
@media screen and (max-width: 1070px) {
	.col_header .navi a.contact { padding: 0.8em 1em; }
}
.col_header .navi a.contact::before {
	content: "";
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: solid 3em #fff;
	border-radius: 2em;
	box-sizing: border-box;
	transition: all .3s;
	box-sizing: border-box;;
	transform: translate(-50%, -50%);
	transform-origin: center center;
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: -1;
}
@media screen and (min-width: 1001px) {
	.col_header .navi .closebtn { display: none; }
	.col_header .navi a {
		filter: drop-shadow(0 0 2px rgba(31,42,103, 0.3));
		transition: all .3s;
	}
	.col_header .navi a:not(.contact):hover {
		filter: drop-shadow(0 0 2px rgba(255,255,255, 0.3));
	}
	.col_header .navi a:not(.contact)::before {
		content: "";
		width: 0;
		height: 3px;
		margin: 0;
		padding: 0;
		background-color: #fff;
		transform: translateX(-50%);
		transition: all .3s;
		position: absolute;
		bottom: 4px;
		left: 50%;
	}
	.col_header .navi a:not(.contact):hover::before {
		width: calc( 100% - 0.4em );
	}
	.col_header .navi a.contact:hover { color: #fff; }
	#header.background .col_header .navi a.contact { background-color: #1f2a67; }
}
@media screen and (min-width: 701px) {
	.col_header .navi a.contact:hover::before { 
		border-width: 2px;
	}
}
@media screen and (max-width: 1000px) {
	.col_header .navi .closebtn {
		width: 30px;
		height: 30px;
		margin: 0;
		padding: 0;
		display: block;
		position: absolute;
		top: 30px;
		left: 15px;
	}
	.col_header .navi .closebtn::before,
	.col_header .navi .closebtn::after {
		content: "";
		width: 22px;
		height: 2px;
		margin: 0;
		padding: 0;
		background-color: #fff;
		position: absolute;
		top: 50%;
		left: 50%;
	}
	.col_header .navi .closebtn::before { transform: translate(-50%, -50%) rotate(45deg); }
	.col_header .navi .closebtn::after { transform: translate(-50%, -50%) rotate(-45deg); }
	.col_header .navi a {
		padding: 1.2em;
		color: #000;
		border-bottom: solid 1px #8b8b8b;
		display: block;
	}
	.col_header .navi a:not(.contact)::before {
		content: "";
		width: 10px;
		height: 10px;
		background-color: rgba(255,255,255,0);
		border-top: solid 1px #8b8b8b;
		border-right: solid 1px #8b8b8b;
		display: block;
		transform: rotate(45deg);
		position: absolute;
		top: calc( 50% - 5px );
		left: auto;
		right: 1em;
		bottom: auto;
	}
	.col_header .navi a.contact {
		width: calc( 100% - 24px );
		margin: 1.2em auto;
		color: #fff;
		text-align: center;
	}
	.col_header .navi a.contact:hover { color: #1f2a67; }
	.col_header .navi a.contact::before { border-color: #1f2a67; }
}

.col_header .lang {
	width: 150px;
	margin: 0;
	padding: 0;
	color: #fff;
	line-height: 1.2;
	text-align: center;
	position: absolute;
	top: 100%;
	right: 1.5%;
}
@media screen and (max-width: 1000px) {
	.col_header .lang {
		width: auto;
		text-align: right;
		top: calc( 100% + 5px );
		right: 5px;
	}
}
.col_header .lang span,
.col_header .lang a {
	margin: 0;
	padding: 0.2em 0.8em;
	color: #fff;
	font-size: 12px;
	filter: drop-shadow(0 0 2px rgba(31,42,103, 0.3));
	display: inline-block;
}
@media screen and (min-width: 1001px) {
	.col_header .lang a { transition: all .3s; }
	.col_header .lang a:hover {
		color: #1f2a67;
		font-weight: 600;
		filter: drop-shadow(0 0 3px rgba(255,255,255, 0.7));
	}
}


/* --------------- footer --------------- */

a#btn_scrltop {
	width: 82px;
	height: 82px;
	margin: 0;
	padding: 0;
	background-color: rgba(31,42,103,0);
	border-radius: 50%;
	box-sizing: border-box;
	display: block;
	overflow: hidden;
	transition: background .5s;
	position: fixed;
	right: 3%;
	bottom: 20px;
	z-index: 100;
}
@media screen and (max-width: 700px) {
	a#btn_scrltop {
		width: 50px;
		height: 50px;
		bottom: 10px;
	}
}
a#btn_scrltop:hover { background-color: rgba(31,42,103,0.7); }
a#btn_scrltop::before {
	content: "";
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	border: solid 50px rgba(173,173,174,0.58);
	border-radius: 50%;
	box-sizing: border-box;
	transform: translate(-50%, -50%);
	transition: border .5s;
	position: absolute;
	top: 50%;
	left: 50%;
}
a#btn_scrltop:hover::before {
	border-width: 2px;
	border-color: rgba(173,173,174,1);
}
a#btn_scrltop::after {
	content: "";
	width: 14px;
	height: 14px;
	margin: 0;
	padding: 0;
	border-top: solid 1px #fff;
	border-left: solid 1px #fff;
	transform: rotate(45deg);
	position: absolute;
	top: calc( 50% - 4px );
	left: calc( 50% - 7px );
}
@media screen and (max-width: 700px) {
	a#btn_scrltop::after {
		width: 10px;
		height: 10px;
		top: calc( 50% - 3px );
		left: calc( 50% - 5px );
	}
}
#footer {
	margin: 0;
	padding: 65px 0 32px;
	color: #fff;
	background-color: #000;
}
#footer a { color: #fff; }
.col_footer {
	width: 94%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 0;
	display: flex;
	justify-content: space-between;
}
@media screen and (max-width: 850px) {
	.col_footer { display: block; }
}
.col_footer .cont_l_footer {
	width: 325px;
	margin: 0;
	padding: 0;
}
@media screen and (max-width: 850px) {
	.col_footer .cont_l_footer {
		width: 100%;
		text-align: center;
	}
}
.col_footer .cont_l_footer .logo {
	margin: 0 0 22px;
	padding: 0;
	transition: all .5s;
	display: block;
}
@media screen and (max-width: 850px) {
	.col_footer .cont_l_footer .logo {
		width: 81.3vw;
		max-width: 400px;
		margin: 0 auto 3.8vw;
	}
}
.col_footer .cont_l_footer .logo:hover {
	filter: drop-shadow(0 0 3px rgba(255,255,255,1));
}
.col_footer .cont_l_footer .txt_address {
	margin: 0 0 42px;
	padding: 0;
}
@media screen and (max-width: 850px) {
	.col_footer .cont_l_footer .txt_address {
		margin: 0 0 22px;
	}
}
.col_footer .cont_l_footer .cont_sns {
	margin: 0 0 18px;
	padding: 0;
}
.col_footer .cont_l_footer .cont_sns a {
	width: 24px;
	margin: 0;
	padding: 0;
	transition: all .5s;
	display: block;
}
@media screen and (max-width: 850px) {
	.col_footer .cont_l_footer .cont_sns { margin: 0 0 22px; }
	.col_footer .cont_l_footer .cont_sns a { margin: 0 auto; }
}
.col_footer .cont_l_footer .cont_sns a:hover {
	filter: drop-shadow(0 0 3px rgba(255,255,255,1));
}
.col_footer .cont_l_footer a.btn_contact {
	width: 216px;
	margin: 0 0 38px;
	padding: 0.7em 0;
	font-weight: 500;
	color: #fff;
	border: solid 1px #fff;
	border-radius: 25px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.col_footer .cont_l_footer a.btn_contact .inner {
	width: 10em;
	height: 1.5em;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}
.col_footer .cont_l_footer a.btn_contact .inner .btntxt {
	line-height: 1.5;
	display: inline-block;
}
.col_footer .cont_l_footer a.btn_contact:hover .inner .btntxt { animation: btn-hover1 1s forwards; }
@keyframes btn-hover1 {
	0% { transform: translateY(100%); }
	100% { transform: translateY(0%); }
}
.col_footer .cont_l_footer a.btn_contact .arrow {
	width: 10px;
	height: 10px;
	margin: 0 0 0 8px;
	padding: 0;
	position: relative;
	z-index: 0;
}
.col_footer .cont_l_footer a.btn_contact .arrow::before {
	content: "";
	width: 100%;
	height: 3px;
	margin: 0;
	padding: 0;
	border-right: solid 1px #fff;
	border-bottom: solid 1px #fff;
	transform: skewX(45deg);
	transition: width .3s;
	position: absolute;
	top: calc( 50% - 2px );
	left: 0;
}
.col_footer .cont_l_footer a.btn_contact:hover .arrow::before { width: calc( 100% + 3px ); }

@media screen and (max-width: 850px) {
	.col_footer .cont_l_footer a.btn_contact {
		margin: 0 auto 25px;
	}
}
.col_footer .cont_l_footer a.link_privacy {
	margin: 0 0 8px;
	padding: 0;
	font-size: 12px;
	text-decoration: underline;
	display: inline-block;
}
.col_footer .cont_l_footer .txt_copyright {
	margin: 0;
	padding: 0;
	font-size: 12px;
}
.navi_footer {
	width: calc( 100% - 236px );
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: flex-end;
}
@media screen and (max-width: 850px) {
	.navi_footer { display: none; }
}
.navi_footer a:hover { text-decoration: underline; }
.navi_footer .list_navi {
	margin: 0;
	padding: 0 7% 0 0;
}
@media screen and (max-width: 950px) {
	.navi_footer .list_navi { padding: 0 4% 0 0; }
}
.navi_footer .list_navi:last-child {
	width: 98px;
	padding: 0 5px 0 0;
}
.navi_footer .list_navi dl {
	margin: 0 0 15px;
	padding: 0;
}
.navi_footer .list_navi dl dt {
	margin: 0 0 3px;
	padding: 0;
}
.navi_footer .list_navi dl dd {
	margin: 0 0 3px;
	padding: 0;
	font-size: 12px;
}
.navi_footer .list_navi a.single {
	margin: 0 0 15px;
	padding: 0;
	display: inline-block;
}


/* --------------- sub common --------------- */

.bg_pagettl {
	width: 100%;
	height: 360px;
	margin: 0;
	padding: 83px 0 0;
	box-sizing: border-box;
	background-size: cover;
	background-position: center center;
}
@media screen and (max-width: 1000px) {
	.bg_pagettl { padding: 44px 0 0; }
}
@media screen and (max-width: 850px) {
	.bg_pagettl {
		height: calc( 40.27vw + 44px );
		max-height: 280px;
	}
}
.col_pagettl {
	width: 100%;
	height: 100%;
	max-width: 1260px;
	margin: 0 auto;
	padding: 0 4%;
	color: #fff;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
@media screen and (max-width: 850px) {
	.col_pagettl {
		padding: 0 10px;
		align-items: center;
		text-align: center;
	}
	.col_pagettl br.pc { display: none; }
}
.col_pagettl .pagettl {
	margin: 0 0 0.15em;
	padding: 0;
	font-size: min(6.46vw, 42px);
	font-weight: 500;
	line-height: 1.3;
}
.col_pagettl .en_pagettl {
	margin: 0;
	padding: 0;
	font-size: min(3.45vw, 20px);
}
#breadcramb {
	width: 100%;
	max-width: 1260px;
	margin: 0 auto;
	padding: 28px 24px;
	font-size: 12px;
}
#breadcramb a {
	color: #000;
	text-decoration: underline;
}
#breadcramb a:hover { text-decoration: none; }
@media screen and (max-width: 700px) {
	#breadcramb { display: none; }
}

.dot {
	width: 38px;
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: space-between;
	transform: translateX(-50%);
	position: absolute;
	left: 50%;
	bottom: 0;
}
.dot span {
	width: 5px;
	height: 5px;
	margin: 0;
	padding: 0;
	background-color: #1f2a67;
	border-radius: 50%;
}












