@charset "utf-8";
/*
	Last Update: 2023/06/12
	Auther: yt
*/
/*===================================================================
	base layout
===================================================================*/
.wrapper2, .wrapper2-t { padding-top:40px; }
.wrapper2, .wrapper2-b { padding-bottom:40px; }
@media (max-width: 767px){
	.wrapper, .wrapper-t { padding-top:60px; }
	.wrapper, .wrapper-b { padding-bottom:60px; }
}
@media (min-width: 768px){
	.wrapper, .wrapper-t { padding-top:80px; }
	.wrapper, .wrapper-b { padding-bottom:80px; }
}

.center { max-width:1300px; }
.center2 { max-width:1000px; }
.center3 { max-width:800px; }
.center4 { max-width:600px; margin-left:auto; margin-right:auto; text-align:left; }
	@media (max-width:1340px){
		.center { padding-left:20px; padding-right:20px; }
	}
	@media (max-width: 1040px){
		.center2 { padding-left:20px; padding-right:20px; }
	}
	@media (max-width: 840px){
		.center3 { padding-left:20px; padding-right:20px; }
	}
	@media (max-width: 640px){
		.center4 { width:100%; padding-left:20px; padding-right:20px; }
	}

/*===================================================================
	color / font
===================================================================*/
:root {
	--c-color1:#2f66b8;
	--c-color1-o:#eef6ff;
	--c-color2:#44bde6;
	--c-color2-o:#e8f8ff;
	--c-color3:#FABE00;
	--c-color3-o:#FFF9B1;
	--c-color4:#0166B3;
	--c-color5:#dc143c;
}

.bg_color1 { background-color:var(--c-color1) !important; }
.bg_color2 { background-color:var(--c-color2) !important; }
.bg_color3 { background-color:var(--c-color3) !important; }
.bg_color4 { background-color:var(--c-color4) !important; }
.bg_color5 { background-color:var(--c-color5) !important; }

.bg_color1-o { background-color:var(--c-color1-o) !important; }
.bg_color2-o { background-color:var(--c-color2-o)!important; }
.bg_color3-o { background-color:var(--c-color3-o) !important; }

.c_black { color:#222 !important; }
.c_color1 { color:var(--c-color1) !important; }
.c_color2 { color:var(--c-color2) !important; }
.c_color3 { color:var(--c-color3) !important; }
.c_color4 { color:var(--c-color4) !important; }

.b_color1 { border:1px solid var(--c-color1) !important; }
.b_color2 { border:1px solid var(--c-color2) !important; }
.b_color3 { border:1px solid var(--c-color3) !important; }

.hl_1 .main.c_color1::before { background-color:var(--c-color1); }
.hl_1 .main.c_color2::before { background-color:var(--c-color2); }
.hl_1 .main.c_color3::before { background-color:var(--c-color3); }

.hl_2 .main.c_color1 { border-left-color:var(--c-color1); }
.hl_2 .main.c_color2 { border-left-color:var(--c-color2); }
.hl_2 .main.c_color3 { border-left-color:var(--c-color3); }

#flow .flow_wrap .flow_unit._arrow_c1::after { border-top-color:var(--c-color1)!important; }
#flow .flow_wrap .flow_unit._arrow_c2::after { border-top-color:var(--c-color2)!important; }
#flow .flow_wrap .flow_unit._arrow_c3::after { border-top-color:var(--c-color3)!important; }


/*===================================================================
	common class
===================================================================*/
.need:not(._no) { border:1px solid #ee2203; background:#ee2203; color:#fff; }
.important:not(._no) { border:1px solid #f58220; background:#f58220; color:#fff; }
.need._no { border:1px solid #ff3a5f; background-color:#fff; color:#ff3a5f; }
.error { background:#ffe1df; color:#ff453a; border:1px solid #ff453a; }

.list_pager ul li > * { border:1px solid #fff; width:40px; height:40px; display:inline-block; vertical-align:middle; line-height:18px; }
.list_pager ul li > a { text-decoration:none; background:#fff; color:#707070; }
.list_pager ul li > strong { color:#fff; font-weight:bold; background:#4995d1; border:1px solid #4995d1; }
body.pc .list_pager ul li > a:hover { background:#4995d1; color:#fff; }
/*
.tel_wrap { text-align:center; }
.tel_wrap .tel_unit { font-weight:bold; }
.tel_wrap .tel_unit .tel { display:inline-block; line-height:100%; }
.tel_wrap .tel_time { font-size:0.9em; }
	@media (max-width: 575px){
		.tel_wrap { margin-bottom:10px; }
		.tel_wrap .tel_unit .tel { font-size:2em; }
	}
	@media (min-width: 576px){
		.tel_wrap .tel_unit .tel { font-size:2.25em; }
	}

.vertical_unit { margin-bottom:30px; padding:15px; }
.vertical_unit .photo { text-align:center; }
	@media (max-width: 575px){
		.vertical_unit .photo { margin-bottom:10px; }
		.vertical_unit .text { padding:10px 0; }
	}
	@media (min-width: 576px) and (max-width: 767px){
		.vertical_unit [class^="col-sm-"] .photo { margin-bottom:10px; }
	}

.holizontal_text { position:relative; }
	@media (max-width: 991px){
		.holizontal_text { padding:30px 20px 50px; }
	}
	@media (min-width: 992px){
		.holizontal_text._left { padding:0 40px 0 20px; }
		.holizontal_text._right { padding:0 20px 0 40px; }
	}

.hv_change_unit { margin-bottom:30px; padding:15px; }
	@media (max-width: 575px){
		.hv_change_unit { display:flex; align-items:top; }
		.hv_change_unit > * { display:inline-block; }
		.hv_change_unit .photo { width:40%; }
		.hv_change_unit .text { width:60%; padding:0 0 0 15px; }
	}
	@media (min-width: 576px){
		.hv_change_unit .photo { margin-bottom:20px; }
	}

*/
.login_form .id_wrap,
.login_form .pass_wrap { position:relative; }
.login_form .id_wrap::before,
.login_form .pass_wrap::before { content:""; background:no-repeat center center / contain; display:block; position:absolute; top:50%; left:25px; transform:translate(-50%,-50%); pointer-events:none; }
.login_form .id_wrap::before { width:18px; height:18px; background-image:url(../image/icon/id.png); }
.login_form .pass_wrap::before { width:18px; height:18px; background-image:url(../image/icon/pass.png); }
.login_form input { padding-left:40px; padding-top:12px; padding-bottom:12px; background-repeat:no-repeat!important; background-position:center left 15px!important; background-size:auto 20px!important; }

.news_list { padding:20px; background:#fff; margin-bottom:5px; border-radius:5px; }
.news_list .unit { display:block; margin-bottom:10px; border-bottom:1px dashed #222; padding-bottom:10px; }
.news_list .unit > * { display:block; }
.news_list .unit .date { color:#888; }
.news_list .unit .news_title { font-weight:bold; font-size:1.1em; line-height:130%; }
.news_list .unit:hover .news_title { text-decoration:underline; }


	@media (max-width: 575px){
		.box_in { padding:20px 15px; }
	}
	@media (min-width: 576px){
		.box_in { padding:40px; }
	}

.small { font-size:0.8em; }
.large { font-size:1.25em; }
.x-large { font-size:1.5em; }

.indent { padding-left:1em; text-indent:-1em; display:inline-block; }

.underline { text-decoration:underline; }

.marker { background:linear-gradient(transparent 50%, #ffff66 50%); }
.notice { display:block; padding-left:1em; text-indent:-1em; font-size:.9em; }
.check { display:inline-block; padding-left:20px; background:url(../image/icon/check.svg) no-repeat left top calc((1em * 1.6 - 15px) / 2) / 15px auto; }

.file_link { padding-left:24px; background:url(../image/icon/file.png) no-repeat center left / auto 20px; }
.file_link._pdf { background-image:url(../image/icon/pdf.png); }
.file_link._zip { background-image:url(../image/icon/zip.png); }
.file_link._word { background-image:url(../image/icon/word.png); }
.file_link._excel { background-image:url(../image/icon/excel.png); }
.file_link._img { background-image:url(../image/icon/img.png); background-size:auto 18px; }

a.preview_link { text-decoration:underline; }
a.preview_link:hover { text-decoration:none; }

.ul_1 { list-style:none; }
.ul_1 > li { padding-left:1em; text-indent:-1em; }
.ul_1 > li::before { content:"・"; }

.ol_1 { list-style:none; counter-reset:ol_1; }
.ol_1 > li { counter-increment:ol_1; padding-left:2em; position:relative; }
.ol_1 > li::before { position:absolute; left:0; top:calc((1em * 1.6) / 2); transform:translateY(-50%); content:"("counter(ol_1)")"; }

.ol_2 { list-style:none; counter-reset:ol_2; }
.ol_2 > li { counter-increment:ol_2; padding-left:1.5em; position:relative; }
.ol_2 > li::before { position:absolute; left:0; top:calc((1em * 1.6) / 2); transform:translateY(-50%); content:counter(ol_2, katakana); }

.indent2 { text-indent:-2em; padding-left:2em; display:inline-block; }

.scroll-hint-icon { top:20px!important; }


/*===================================================================
	button
===================================================================*/
.button { font-family:inherit; line-height:1.2; }
.button._contact { border-radius:999px; width:400px; max-width:100%; font-weight:bold; }
.button._contact._type2 { border-radius:0; }
.button._check,
.button._send,
.button._back {
	border-radius: 999px;
	width: 250px;
	max-width: 100%;
	font-weight: bold;
	padding: 12px 0;
	border: none;
	line-height: 1.2;
	box-shadow: 0 8px 20px rgba(21, 73, 137, 0.2);
	transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
}
.button._check,
.button._send,
.button._contact {
	background: linear-gradient(135deg, #2f66b8 0%, #0166b3 50%, #44bde6 100%);
	color: #fff;
}
.button._check span,
.button._send span,
.button._contact span {
	color: #fff;
}
.button._back {
	background: linear-gradient(180deg, #a7aab1 0%, #8f929a 100%);
	color: #fff;
	box-shadow: 0 8px 16px rgba(70, 74, 82, 0.22);
}
.button._back span {
	color: #fff;
}
body.pc .button._check:hover,
body.pc .button._send:hover,
body.pc .button._contact:hover,
body.pc .button._back:hover {
	transform: translateY(-2px);
	filter: brightness(1.06);
	box-shadow: 0 14px 24px rgba(21, 73, 137, 0.25);
}
body.pc .button._back:hover {
	box-shadow: 0 12px 20px rgba(70, 74, 82, 0.26);
}
.button._check:active,
.button._send:active,
.button._contact:active,
.button._back:active {
	transform: translateY(0);
}
.button._check:focus-visible,
.button._send:focus-visible,
.button._contact:focus-visible,
.button._back:focus-visible {
	outline: 3px solid #4bb4de;
	outline-offset: 2px;
}
.button._zip { border-radius:30px; padding:11px 10px; border:none; font-size:0.9em; }
	@media (max-width: 575px){
		.button._contact { padding:15px; font-size:1.2em; }
	}
	@media (min-width: 576px){
		.button._contact { padding:20px; font-size:1.25em; }
	}
.button[disabled="disabled"] {
	background-color: #cccccc !important; /* グレー色 */
	cursor: not-allowed; /* カーソルを禁止マークに */
	opacity: 0.7; /* 少し透明に */
}

/* top-style common button */
.top_btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	min-width: 280px;
	padding: 14px 28px;
	font-weight: 700;
	font-size: 1.1rem;
	letter-spacing: 0.02em;
	text-decoration: none;
	color: #fff;
	background: linear-gradient(135deg, #2f66b8 0%, #0166b3 50%, #44bde6 100%);
	border: 0;
	border-radius: 999px;
	box-shadow: 0 10px 22px rgba(21, 73, 137, 0.24);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}
.top_btn:link,
.top_btn:visited,
.top_btn:hover,
.top_btn:active {
	color: #fff;
}
.top_btn:hover {
	filter: brightness(1.07);
	transform: translateY(-2px);
	box-shadow: 0 14px 26px rgba(21, 73, 137, 0.3);
}
.top_btn:active {
	transform: translateY(0);
	box-shadow: 0 8px 18px rgba(21, 73, 137, 0.22);
}
.top_btn:focus-visible {
	outline: 3px solid #4bb4de;
	outline-offset: 2px;
}
@media (max-width: 767px){
	.top_btn {
		width: 100%;
		min-width: 0;
		font-size: 1rem;
	}
}



/*===================================================================
	hl
===================================================================*/
.hl_1 { display:block; text-align:center; margin-bottom:40px; }
.hl_1 .main { padding-bottom:10px; position:relative; }
.hl_1 .main:before { content:""; width:80px; height:3px; position:absolute; display:block; left:50%; bottom:0; transform:translateX(-50%); background-color:#4995d1; }
.hl_1 .main.c_white:before { background:#fff; }
	@media (max-width: 575px){
		.hl_1 .main { font-size:1.75em; }
	}
	@media (min-width: 576px){
		.hl_1 .main { font-size:1.75em; }
	}

.hl_2 { display:block; margin-bottom:20px; }
.hl_2 .main { padding-left:10px; border-left:5px solid #4995d1; line-height:130%; }
.hl_3 { display:block; margin-bottom:10px; }
.hl_3 .main { font-weight:bold; line-height:130%; }
	@media (max-width: 575px){
		.hl_2 .main { font-size:1.25em; }
		.hl_3 .main { font-size:1.15em; }
	}
	@media (min-width: 576px){
		.hl_2 .main { font-size:1.5em; }
		.hl_3 .main { font-size:1.25em; }
	}


/*===================================================================
	table
===================================================================*/
.tbl_1 { background:#fff; width:100%; }
.tbl_1 tr > * { padding:10px 20px; border:1px solid #ccc; vertical-align:middle; }
.tbl_1 tr > th { font-weight:bold; }


/*===================================================================
	layout
===================================================================*/
.skip-link {
	position: absolute;
	top: -44px;
	left: 8px;
	z-index: 3000;
	padding: 8px 12px;
	color: #fff;
	background: #243b97;
	border-radius: 6px;
}

.skip-link:focus {
	top: 8px;
}

#base { padding-top:116px; }
#head { position:fixed; top:0; left:0; width:100%; z-index:2000; border-bottom:0; background:linear-gradient(90deg, #3f78bf 0%, #4b8ecb 55%, #58b5da 100%) !important; box-shadow:0 2px 12px rgba(31,78,137,0.14); }
#head a { color:#edf3fb; }
#head .head_wrap { width:100%; display:flex; flex-direction:column; }
#head .head_top { min-height:68px; display:flex; align-items:center; gap:16px; }
#head .site_logo { flex:1; min-width:0; }
#head .site_logo a { display:inline-block; font-size:1.3em; font-weight:700; line-height:1.35; }
#head .head_utility { display:flex; align-items:center; gap:10px; }
#head .head_utility > a { display:inline-flex; align-items:center; min-height:36px; padding:0 12px; border:1px solid rgba(237,243,251,0.45); border-radius:999px; font-size:0.92em; font-weight:700; }
#head .head_utility .head_apply { background:#eaf5ff; color:#1f4b93; border-color:#d6ecfb; }
#head .head_navi_wrap { border-top:1px solid rgba(237,243,251,0.22); }
#head_navi ul { display:flex; align-items:center; gap:8px; list-style:none; padding:8px 0 10px; }
#head_navi ul li a { display:block; padding:8px 14px; border-radius:999px; font-size:0.94em; font-weight:700; background:rgba(237,243,251,0.14); }
body.pc #head_navi ul li a:hover { background:rgba(237,243,251,0.26); text-decoration:none; }

#btn_open { width:50px; margin-left:auto; line-height:1px; display:none; }
#btn_open a { position:relative; display:inline-block; width:100%; height:50px; }
#btn_open a > span { position:absolute; right:10px; height:2px; background:#edf3fb; transition:all .3s; transform-origin:right center; }
#btn_open a > span.l1 { top:17px; width:28px; }
#btn_open a > span.l2 { top:25px; width:20px; }
#btn_open a > span.l3 { top:33px; width:28px; }
#base.open #btn_open a > span.l1 { top:16px; transform:rotate(-45deg); right:13px; }
#base.open #btn_open a > span.l2 { width:0; }
#base.open #btn_open a > span.l3 { top:33px; transform:rotate(45deg); right:13px; }

#foot { background:linear-gradient(180deg, #355f9f 0%, #2d4f86 100%) !important; border-top:4px solid #9ed8ea; padding-bottom:24px; }
#foot a { color:#edf3fb; }
#foot .footer_inner { display:grid; gap:18px; }
#foot .footer_block { padding:22px; border:1px solid rgba(237,243,251,0.22); border-radius:12px; background:rgba(237,243,251,0.07); }
#foot .footer_tag { display:inline-block; margin-bottom:12px; padding:3px 10px; border:1px solid rgba(237,243,251,0.65); border-radius:999px; font-size:0.85em; }
#foot .foot_logo { line-height:1.5; font-size:1.18em; }
#foot .footer_address { margin-top:12px; line-height:1.8; }
#foot .footer_heading { margin-bottom:8px; font-size:1.35em; }
#foot .footer_tel .tel { display:inline-block; padding-left:1.25em; font-size:2em; font-weight:bold; line-height:120%; background:url(../image/layout/foot_tel.png) no-repeat center left / auto 1em; }
#foot .footer_time { margin-top:8px; margin-bottom:12px; }
#foot .footer_mail { margin-bottom:14px; }
#foot .footer_btn .button { border:2px solid #d5e8f8; border-radius:8px; font-weight:bold; font-size:1.1em; padding:16px 0; width:100%; max-width:320px; color:#edf3fb; }
#foot .footer_bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; }
#foot .footer_policy { font-size:0.95em; }
#copyright { text-align:right; font-size:0.85em; }

@media (max-width: 991px){
	#base { padding-top:60px; }
	#head .head_wrap { min-height:60px; }
	#head .head_top { min-height:60px; gap:10px; }
	#head .site_logo a { font-size:1.08em; }
	#head .head_utility { display:none; }
	#btn_open { display:block; }
	#head .head_navi_wrap{ position:fixed; top:60px; right:0; width:100%; max-width:360px; background:#fff; height:calc(100vh - 60px); overflow-y:auto; overscroll-behavior:none; border-top:0; box-shadow:-10px 0 20px rgba(0,0,0,0.08); }
	#base:not(.open) #head .head_navi_wrap { display:none !important; }
	#head_navi ul { display:block; padding:0; }
	#head_navi ul li { border-bottom:1px solid #d8e3f5; }
	#head_navi ul li a { padding:15px 18px; border-radius:0; color:#1f4b93; background:transparent; }
	#menu_cover { position:fixed; top:0; left:0; width:100%; height:100vh; background:rgba(0,0,0,0.5); z-index:1999; }
	#foot .footer_inner { grid-template-columns:1fr; }
	#foot .footer_bottom { flex-direction:column; align-items:flex-start; }
	#copyright { text-align:left; }
}

@media (min-width: 992px){
	#head .head_navi_wrap { display:block !important; }
	#foot .footer_inner { grid-template-columns:1fr 1fr; }
}
