/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

:root {
	--color-base: #333333;
	--color-D-blue: #28529d;
	--color-M-blue: #478bd0;
	--color-ML-blue:#c8dcf1;
	--color-L-blue: #eaf1fa;
	--color-yellow: #fcd919;
	/* --en-font: "Montserrat", serif; */
	--fontsize-35: min(35px,max(24px,3.5vw));
	--fontsize-35-LH: min(42px,max(29px,4.2vw));
}

.font_roboto{
	font-family: "Roboto", sans-serif;
  font-optical-sizing: auto;
	font-weight: 500;
}

/*
横幅
1600~			:PC
1000~1600	:PC
375~1000	:スマホ
	 ~375		:スマホ
*/
html,.font_sizebase{font-size:min(17px,max(14px,1.6vw));}
html *{
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	word-break: break-all;
}
body{
	margin: 0px;
	padding: 0px;
	font-size:100%;
	font-family: "Noto Sans JP",'游ゴシック', YuGothic, 'ヒラギノ角ゴ Pro', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, sans-serif;
	/* font-family: 'Zen Maru Gothic', sans-serif; */
	font-weight: 500;
	line-height:normal;
}
body *{line-height: calc(1em * 30 / 17);}
body,.col_base{color:var(--color-base);}
body > div[align=center]{
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}
h1,h2,h3,h4,h5,h6,p,form,hr{
	margin: 0;
	padding: 0;
}
span{display: inline-block;}
a{color:inherit;text-decoration:none;}
a:hover{
	/* color:#FF0; */
	/* text-decoration: underline; */
}
a.bright:hover img{filter: brightness(110%);}
a:not(.bright):hover img{opacity:0.5;}
a.ov_white{transition: opacity 0.3s ease;}
a.ov_white:hover{opacity:0.8;}
a img{border:none;}
ul,li{
	margin: 0px;
	padding: 0px;
	list-style-type: none;
}
ul:after,
ul::after{clear:both;}
hr{
	/* border-top:solid 1px rgba(0,0,0,0.25); */
	border-top:solid 1px #C8C8C8;
	border-bottom:none;
	border-left:none;
	border-right:none;
	margin:1em auto;
	padding:0;
}
hr.dashline{
	border-top:dashed 1px rgba(0,0,0,0.5);
	margin:3em auto;
}
img,svg{max-width:100%;display:block;}
img{min-width:10px;object-fit: cover;}
img[src*=".svg"],svg{width: 100%;}
img[src*=".svg"]{object-fit: contain;}
.anchor{
	position:absolute;
	top:-100px;
	left:0;
}
/*
@media screen and (max-width: 999px) {
	.anchor{top:-92px;}
}
*/

/* ----- */

main{overflow: hidden;}

.logo_catch{
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.logo_catch hr{
	flex-grow: 1;
	margin: 0;	
}
.logo_catch div{
	margin: 0 0.5em;
	line-height: 1em;
}

.btn_site{width:645px;}
.btn_news{width:222px;}
@media screen and (max-width: 999px) {
	.btn_site{width:297px;}
	.btn_news{width:160px;}
}

img[src*="icon-plus"]{
	width: min(24px,max(15px,2.4vw));
	min-width: 15px;
}
.subt_plus,
.subt_plus > *{
	gap: 0 var(--fontsize-35);
	display: flex;
	justify-content: center;
	align-items: center;
}
.subt_plus h2,
.subt_plus h2 *{line-height: var(--fontsize-35-LH);}
.subt_plus h2{
	font-size: var(--fontsize-35);
	font-weight: 700;	
	color: var(--color-M-blue);
}


footer{
	background-color: var(--color-D-blue);
	color:#FFF;
	padding-top: min(45px,max(35px,4.5vw));
	padding-bottom: 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
footer .logo{
	gap: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
footer .logo img[src*="logo."]{width:284px;}
footer .logo img[src*="logo-en."]{width:102px;}
footer .logo .logo_catch{
	width:100%;
	font-size: 9px;
}
footer .logo .logo_catch hr{border-color:#FFF;}
footer .bnr{
	margin: 40px auto;
	gap:25px;
	display: flex;
	justify-content: center;
	align-items: center;
}
footer .bnr a{
	display: flex;
	justify-content: center;
	align-items: center;
	height:45px;
	border-radius: 90px;
	background-color: #FFF;
	overflow: hidden;
}
footer .bnr a img{
	height:100%;
	background-color: #FFF;
}
footer .copy{
	font-size: min(10px,max(9px,1vw));
}
@media screen and (max-width: 999px) {
	footer .logo{width: 250px;}
	footer .bnr{
		margin-top: 30px;
		width: 217px;
		gap: 16px;
		flex-direction: column;
	}
	footer .bnr a{
		width:100%;
		height:36px;		
	}
	footer .bnr a img{}
}


/* 横幅下限 */
body > div[align=center],
header,
footer{min-width:375px;}
body > div[align=center]{overflow-x: hidden;}


/* ----- */

.pc_vanish{}
.sp_vanish{}
.im_vanish{display:none!important;}
.pc_br_del{}
.sp_br_del{}
.vanish_branch{}
.vanish_branch_onoff{}
@media screen and (min-width: 1000px) {
	.pc_vanish,
	.pc_br_del br,
	.pc_div_del div,
	.vanish_branch img[src*="-sp."],
	.vanish_branch_onoff img[src*="-sp."]{display:none!important;}
}
@media screen and (max-width: 999px) {
	.sp_vanish,
	.sp_br_del br,
	.sp_div_del div,
	.vanish_branch img[src*="-pc."],
	.vanish_branch_onoff img:not([src*="-sp."]){display:none!important;}
}
.v_hidden{visibility:hidden;}

.W100per{width:100%;}
.Wbase{
	width:100%;
	max-width:1000px;
	margin: 0 auto;
}
.Wbase.W1200{max-width:1200px;}
.Wbase.W1600{max-width:1600px;}
@media screen and (max-width: 999px) {
}

.pos_rel{position: relative;}

.flex_center{
	display: flex;
	justify-content: center;
	align-items: center;
}

.style_br{white-space: pre-wrap;}


body,body *,.borderbox,.borderbox *{
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

/* 印刷用CSS */
/*
@media print{
  印刷用CSSの定義を指定する
}
※印刷時は
「@media screen and (min-width: 1000px)」
「@media screen and (max-width: 999px)」内のスタイルは効かなくなる
*/
@media print{
	body > div .H_head,
	.pc_vanish{
		display:none!important;
	}
	header{position:relative;}
}