@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@400;500;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@700&display=swap&text=%21%22%23%24%25%26%27%28%29%2A%2B%2C-.%2F0123456789%3A%3B%3C%3D%3E%3F%40%C2%A9ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5C%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B%7C%7D%7E'); /* URLエンコード→ !"#$%&'()*+,-./0123456789:;<=>?@©ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ */





:root {
	--color-normal: #333;
	--color-black: #000;
	--color-main: #0062ad;
	--color-main-rgb: 0, 98, 173;
	
	--color-green: #22b573;
	--color-green-rgb: 34, 181, 115;

	
	--transition: all 0.2s ease;
}


/*================================================
 *  一般・共通設定
 ================================================*/

html {
	font-size: 10px;
}

@media screen and (max-width: 1600px) {
	html {
		font-size: calc(100vw / 1600 * 10);
	}
}


body {
	color: #333;
	font-size: 1.6rem;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	text-align: justify;
	text-justify: inter-ideograph;
}

a,.linearAnime {
	color: inherit;
	text-decoration: none;
	transition: all 0.2s ease;
}
a.underline {
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}
a:hover {
	opacity: 0.7;
}
a.underline:hover {
	opacity: 1;
	text-decoration: none;
}
@media screen and (min-width:800.1px) {
	a[href^="tel"] {
		pointer-events: none;
	}
}

img,svg {
	vertical-align: bottom;
}

/*色*/
.color_main {
	color: #0062ad;
}
.color_normal {
	color: #333;
}
.color_black {
	color: #000;
}
.color_red {
	color: #c1272d;
}
.color_white {
	color: #fff;
}
.color_green {
	color: #22b573;
}


/*背景*/
.bg_main {
	background-color: #0062ad;
}
.bg_white {
	background-color: #fff;
}
.bg_green {
	background-color: #22b573;
}


/* position */
.relative{
	position: relative;
}
.absolute{
	position: absolute;
}

/* sp/pcの切替 */
.sp,.sp_inline {
	display: none;
}
.d_block {
	display: block;
}
.d_iblock {
	display: inline-block;
}

/*文字揃え*/
.ta-l {
	text-align: justify;
	text-justify: inter-ideograph;
}
.ta-r {
	text-align: right;
}
.ta-c {
	text-align: center;
}
.pcspText { /*PC：中央揃え・SP左揃え用*/
	text-align: center;
}

/*文字種類*/
.ff_zenmaru {
	font-family: "Zen Maru Gothic", sans-serif;
	font-weight: 400;
}
.ff_zenkaku {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 700;
}



/*文字太さ*/
.fontThin {
	font-weight: 100;
}
.fontExLight {
	font-weight: 200;
}
.fontLight {
	font-weight: 300;
}
.fontRegular {
	font-weight: 400;
}
.fontMedium {
	font-weight: 500;
}
.fontSemiBold {
	font-weight: 600;
}
.fontBold {
	font-weight: 700;
}
.fontExBold {
	font-weight: 800;
}
.fontBlack {
	font-weight: 900;
}

/*文字スタイル*/
.fs_italic {
	font-style: italic;
}

/*Text Crop*/
.textcrop::before,
.textcrop::after {
	content: '';
	display: block;
	height: 0;
	width: 0;
}
.textcrop::before {
	margin-bottom: -0.133em;
}
.textcrop::after {
	margin-top: -0.133em;
}

.textcrop_notosans {
	display: inline-block;
}
.textcrop_notosans::before {
	margin-bottom: -0.09em;
}
.textcrop_notosans::after {
	margin-top: 0;
}


/*text-box-trim*/
.txt_trim {
	text-box: trim-both text;
}
.txt_trim_alpha {
	text-box: trim-both cap alphabetic;
}







/*文字詰め*/
.ffs_palt {
	-webkit-font-feature-settings: 'palt' 1;
	font-feature-settings: 'palt' 1; /*プロポーショナルメトリクス*/
}
.ffs_halt {
	-webkit-font-feature-settings: 'halt' 1;
	font-feature-settings: 'halt' 1; /*字幅半角メトリクス*/
}
@media screen and (max-width: 800px) {
	.sp_ffs_palt {
		-webkit-font-feature-settings: 'palt' 1 !important;
		font-feature-settings: 'palt' 1 !important; /*プロポーショナルメトリクス*/
	}
	.sp_ffs_halt {
		-webkit-font-feature-settings: 'halt' 1 !important;
		font-feature-settings: 'halt' 1 !important; /*字幅半角メトリクス*/
	}
}


/*文字間隔*/
.ltsg05em {
	letter-spacing: 0.5em!important;
}
.ltsg05em_indent {
	display: inline-block;
	letter-spacing: 0.5em!important;
	text-indent: 0.5em!important;
}
.ltsg1em {
	letter-spacing: 1em!important;
}
.ltsg1em_indent {
	display: inline-block;
	letter-spacing: 1em!important;
	text-indent: 1em!important;
}

/*上付き文字*/
.sup {
	font-size: 60%;
	vertical-align: super;
}



/*幅*/
.wrap {
	max-width: 940px;
	margin: 0 auto;
	width: 100%;
}
.wrap_rem {
	margin: 0 auto;
	width: 94rem;
}
.wrap_wide_rem {
	margin: 0 auto;
	width: 110rem;
}



.maxw_100 {
	max-width: 100%;
	height: auto;
}
.wid100 {
	width: 100%;
	height: auto;
}


/*高さ*/
.h100vh {
	height: 100vh;
	height: calc((var(--vh, 1vh) * 100));
}
.minh100vh {
	min-height: 100vh;
	min-height: calc((var(--vh, 1vh) * 100));
}


/*lazysize*/
.lazyload,
.lazyload-parent img[data-src] {
	opacity: 0;
}


/*******object-fit*******/
[class*="object-fit"] {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	font-family: 'object-fit: cover; object-position: center center;';
}
.object-fit-ct {
	object-fit: contain;
	font-family: 'object-fit: contain; object-position: center center;';
}
.object-fit-p-tc {
	object-position: top center;
}
.object-fit-p-tr {
	object-position: top right;
}
.object-fit-p-tl {
	object-position: top left;
}
.object-fit-p-bc {
	object-position: bottom center;
}
.object-fit-p-br {
	object-position: bottom right;
}
.object-fit-p-bl {
	object-position: bottom left;
}
.object-fit-p-cl {
	object-position: center left;
}
.object-fit-p-cr {
	object-position: center right;
}


/*******flexbox*******/
[class*="flex_start"] {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
[class*="flex_end"] {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack: end;
	-webkit-justify-content: flex-end;
	justify-content: flex-end;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
[class*="flex_between"] {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	justify-content: space-between;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
[class*="flex_center"] {
	display: -webkit-box;
	display: -webkit-flex;
	display: flex;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	width: 100%;
	-webkit-flex-wrap: wrap;
	flex-wrap: wrap;
}
[class*="flex_inline"] {
	display: -webkit-inline-box;
	display: inline-flex;
}
.nowrap {
	-webkit-flex-wrap: nowrap;
	flex-wrap: nowrap;
}
.shrink0 {
	flex-shrink: 0;
}
.align_items_start {
	-webkit-box-align: start;
	-webkit-align-items: flex-start;
	align-items: flex-start;
}
.align_items_center {
	-webkit-box-align: center;
	-webkit-align-items: center;
	align-items: center;
}
.align_items_end {
	-webkit-box-align: end;
	-webkit-align-items: flex-end;
	align-items: flex-end;
}
.direction_column {
	-webkit-box-direction: normal;
	-webkit-flex-direction: column;
	flex-direction: column;
}
.row_reverse {
	-webkit-box-direction: reverse;
	-webkit-flex-direction: row-reverse;
	flex-direction: row-reverse;
}


/*================================================
 *  ホバー
 ================================================*/
.hover_opa:hover,
.hover_list_opa a:hover {
	opacity: 1;
}

/*色だけ*/
.hover_color_main:hover,
.hover_list_main a:hover,
.hover_list_main a.active {
	color: var(--color-main);
	opacity: 1;
}


/*currentColor系*/
.hover_current_bd {
	border: 2px solid;
	background-color: currentColor;
}
.hover_current_bd:hover {
	background-color: #fff;
}
.hover_current_bd:not(:hover) > * {
	color: #fff;
}
.hover_btn_bd_current {
	background-color: currentColor;
	border: 1px solid;
}


.hover_btn_bg_current {
	background-color: #fff;
	border: 1px solid;
}
.hover_btn_bg_current:hover,
.parent_link:hover .hover_btn_bg_current {
	background-color: currentColor;
	opacity: 1;
}
.hover_btn_bg_current:hover > * ,
.hover_btn_bg_current:hover::after,
.parent_link:hover .hover_btn_bg_current > *,
.parent_link:hover .hover_btn_bg_current::after {
	color: #fff;
}


.hover_btn_bd_current {
	background-color: currentColor;
	border: 1px solid;
}
.hover_btn_bd_current:hover,
.parent_link:hover .hover_btn_bd_current {
	background-color: #fff;
	opacity: 1;
}
.hover_btn_bd_current:not(:hover) > *,
.hover_btn_bd_current:not(:hover)::after,
.parent_link:hover .hover_btn_bd_current:not(:hover) > *,
.parent_link:hover .hover_btn_bd_current:not(:hover)::after {
	color: #fff;
}


/*白系*/
.hover_btn_bg_white {
	color: #fff;
	border: 1px solid;
}
.hover_btn_bg_white:hover,
.parent_link:hover .hover_btn_bg_white {
	background-color: #fff;
	opacity: 1;
}
.hover_btn_bg_white:hover > * ,
.hover_btn_bg_white:hover::after,
.parent_link:hover .hover_btn_bg_white > *,
.parent_link:hover .hover_btn_bg_white::after {
	color: var(--color-main);
}



/*******画像ホバー拡大*******/
.hover_img_scale,
.hover_thumb_scale .thumb,
.hover_thumb_parent .thumb {
	overflow: hidden;
}
.hover_img_scale img,
.hover_thumb_scale .thumb img,
.hover_thumb_parent .thumb img {
	transition: all 0.6s ease;
}
a:hover .hover_img_scale img,
.hover_thumb_scale a:hover .thumb img,
.hover_thumb_parent:hover .thumb img {
	transform: scale(1.05);
}
.hover_thumb_scale a:hover {
	opacity: 1;
}



/*================================================
 *  ヘッダー
 ================================================*/
header .inner {
	position: relative;
	height: 13rem;
	padding-right: 29.5rem;
}
header .inner .logo {
	margin-left: 3rem;
}
header .inner .logo img {
	width: 25.2rem;
}




/*******ナビゲーション*******/
header .inner nav {
	padding-right: 6rem;
}
header .inner nav ul {
	font-size: 2rem;
	font-weight: 500;
	gap: 0 2em;
}
header .inner nav ul li a {
	display: flex;
	align-items: center;
}
header .inner nav ul li a > span {
	font-size: 60%;
	margin-right: 1em;
}


/*================================================
 *  追従用ナビゲーション
 ================================================*/
#fixed_list {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 1000;
}
#fixed_list ul {
	border-radius: 0 0 0 1rem;
	height: 10rem;
	width: 29.5rem;
}
#fixed_list ul li {
	height: 100%;
}
#fixed_list ul li a {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
}
#fixed_list ul li a .inr .tel {
	display: flex;
	align-items: center;
}
#fixed_list ul li a .inr .tel [class*="icon-"] {
	font-size: 2.8rem;
	flex-shrink: 0;
	margin-right: 0.8rem;
}
#fixed_list ul li a .inr .tel .pc_num {
	font-size: 3.6rem;
	letter-spacing: 0.04em;
}
#fixed_list ul li a .inr .pc_time {
	display: block;
	font-size: 1.2rem;
	letter-spacing: 0.03em;
	text-align: right;
	margin: 0.9em -0.1em 0 0;
}






/*================================================
 *  コンテンツ
 ================================================*/
main {
	/*overflow: hidden;*/
	overflow-x: clip;
}


/*******見出し*******/


/*******箇条書きリスト*******/
.kome_list li,
.disc_list li,
.circle_list li,
.square_list li,
.indent_list li {
	list-style-position:inside;
	padding-left: 1em;
	text-indent: -1em;
}


.disc_flex_list > li {
	display: flex;
}


/*※箇条書き*/
.kome_list > li:before{
	display: inline;
	content: "\203b";
}
/*・箇条書き*/
.disc_list > li:before{
	display: inline;
	content: "\30fb";
}
.disc_flex_list > li:before {
	content: "\30fb";
	flex-shrink: 0;
}

/*●箇条書き*/
.circle_list > li:before{
	display: inline;
	content: "\25CF";
}
/*■箇条書き*/
.square_list > li:before{
	display: inline;
	content: "\25A0";
}
/*()数字*/
.number_list {
	counter-reset: cnt 0;
}
.number_list > li{
	padding-left: 2.16em;
	text-indent: -2.66em;
	list-style-type:none;
	list-style-position:inside;
	counter-increment: cnt;
}
.number_list > li:before{
	display: inline;
	content: "（" counter(cnt) "）";
}
/*数字.*/
.decimal_list {
	counter-reset: dcnt 0;
}
.decimal_list > li{
	padding-left: 1em;
	text-indent: -1em;
	list-style-type:none;
	list-style-position:inside;
	counter-increment: dcnt;
}
.decimal_list > li:before{
	display: inline;
	content: counter(dcnt) ".";
}


/*インデントflex版*/
.indentflex_list > li {
	display: flex;
}
.indentflex_list > li > span:first-child {
	flex-shrink: 0;
}






/*******無限ループ用*******/
.infinite_loop_slider {
	overflow: hidden;
	pointer-events: none;
}
.infinite_loop_slider .swiper-wrapper {
	-webkit-transition-timing-function: linear !important;
	transition-timing-function: linear !important;
}
.infinite_loop_slider .swiper-slide {
	height: auto !important;
}
.infinite_loop_slider .swiper-slide img {
	width: 100%!important;
}



/*================================================
 *  ページトップ
 ================================================*/
#pagetop {
	position: fixed;
	bottom: 5rem;
	right: 5rem;
	font-size: 6rem;
	width: 1em;
	height: 1em;
	background-color: currentColor;
	border: 2px solid;
	border-radius: 50%;
	cursor: pointer;
	transition: var(--transition);
	z-index: 500;
	opacity: 0;
	visibility: hidden;
}
#pagetop::before {
	position: absolute;
	content: '';
	top: 0.1em;
	bottom: 0;
	right: 0;
	left: 0;
	width: 0.25em;
	height: 0.25em;
	margin: auto;
	border-top: 2px solid #fff;
	border-left: 2px solid #fff;
	transform: rotate(45deg);
	transition: var(--transition);
}
#pagetop:hover {
	background-color: #fff;
}
#pagetop:hover::before {
	border-color: currentColor;
}






/*================================================
 *  フッター
 ================================================*/

footer {
	margin-top: 8rem;
}


/*******フッター用お問い合わせ*******/
footer #footer_contact_area {
	height: 70rem;
	padding-top: 8rem;
	overflow: hidden;
}
footer #footer_contact_area .img_bg {
	bottom: 0;
	left: 0;
	z-index: -1;
}


footer #footer_contact_area .title {
	font-size: 4.2rem;
	letter-spacing: 0.04em;
}

footer #footer_contact_area .tel_box {
	margin-top: 6rem;
	gap: 0 4rem;
}
footer #footer_contact_area .tel_box a {
	display: block;
	width: 61rem;
}




/*******フッター用インフォメーション*******/
footer #footer_info_area {
	padding-top: 10rem;
}
footer #footer_info_area .info_box {
	width: 64.5rem;
	margin: 0 auto;
}
footer #footer_info_area .info_box .img_logo {
	display: block;
	width: 32rem;
	margin: 0 auto 3rem;
}

footer #footer_info_area .bnr_recruit {
	margin: 7rem auto 0;
	width: 90.2rem;
}




/*******フッター最下部*******/
footer #footer_bottom_area {
	padding: 8rem 0;
	color: #505050;
}
footer #footer_bottom_area .link_list {
	font-size: 1.5rem;
	gap: 1em 2em;
}

footer #footer_bottom_area .copyright {
	
	font-size: 1.6rem;
	margin-top: 10rem;
}










/*================================================================================================
 *  スマートフォン向けデザイン
 ================================================================================================*/
@media screen and (max-width:800px) {

html,
body {
	font-size: 4vw;
}	

img {
	max-width: 100%;
}



/*文字揃え*/
.pcspText { /*PC：中央揃え・SP左揃え用*/
	text-align: justify;
	text-justify: inter-ideograph;
}

/* sp/pcの切替 */
.sp {
	display: block;
}
.sp_inline {
	display: inline;
}
.pc,.sp_none {
	display: none;
}

/*幅*/
.wrap,
.wrap_wide{
	max-width: inherit;
	width: 90vw;
}
.wrap_rem,
.wrap_wide_rem {
	width: 100%;
}
.wrap_sp {
	width: 90vw!important;
	margin-left: auto!important;
	margin-right: auto!important;
}
.wrap_sp_ss {
	width: 74vw!important;
	margin-left: auto!important;
	margin-right: auto!important;
}
.wrap_sp_small {
	width: 80vw!important;
	margin-left: auto!important;
	margin-right: auto!important;
}
.wrap_sp_medium {
	width: 86vw!important;
	margin-left: auto!important;
	margin-right: auto!important;
}


.sp_wid100 {
	width: 100%!important;
}



/*******flexbox*******/
.flex_start_spblock,
.flex_end_spblock,
.flex_between_spblock,
.flex_center_spblock,
.flex_inline_spblock {
	display: block;
}


/*================================================
 *  ヘッダー
 ================================================*/
header .inner {
	height: 19vw;
	padding-right: 0;
	-webkit-box-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
}
header .inner .logo {
	margin: 0;
}
header .inner .logo img {
	width: 37vw;
}





/*================================================
 *  追従用ナビゲーション
 ================================================*/
#fixed_list {
	position: sticky;
	top: auto;
	bottom: 0;
	width: 100%;
	padding-bottom: 2.6vw;
	opacity: 0;
	visibility: hidden;
}
#fixed_list ul {
	border-radius: 100vh;
	height: 16vw;
	width: 74vw;
	margin: 0 auto;
}
#fixed_list ul li a {
	justify-content: flex-start;
}
#fixed_list ul li a .inr .tel {
	padding-left: 5vw;
}
#fixed_list ul li a .inr .tel [class*="icon-"] {
	font-size: 5.6vw;
	margin-right: 2.5vw;
}
#fixed_list ul li a .inr .tel .sp_txt {
	font-size: 5vw;
	font-weight: 500;
	letter-spacing: 0.04em;
	margin-top: -0.1em;
}
#fixed_list ul li a .inr .pc_time {
	display: none;
}






/*================================================
 *  コンテンツ
 ================================================*/

/*******見出し*******/





/*================================================
 *  ページトップ
 ================================================*/
#pagetop {
	bottom: 22vw;
	right: 4vw;
	font-size: 12vw;
}







/*================================================
 *  フッター
 ================================================*/

footer {
	margin-top: 13vw;
}


/*******フッター用お問い合わせ*******/
footer #footer_contact_area {
	height: 89vw;
	padding-top: 12.5vw;
}


footer #footer_contact_area .title {
	font-size: 6.6vw;
}

footer #footer_contact_area .tel_box {
	margin-top: 7vw;
}
footer #footer_contact_area .tel_box a {
	width: 100%;
}
footer #footer_contact_area .tel_box a + a {
	margin-top: 4vw;
}



/*******フッター用インフォメーション*******/
footer #footer_info_area {
	padding-top: 13vw;
}
footer #footer_info_area .info_box {
	width: 77vw;
}
footer #footer_info_area .info_box .img_logo {
	width: 58vw;
	margin-bottom: 7vw;
}

footer #footer_info_area .bnr_recruit {
	margin-top: 12vw;
}




/*******フッター最下部*******/
footer #footer_bottom_area {
	padding: 16vw 0;
}
	
footer #footer_bottom_area .link_list {
	font-size: 3.3vw;
	display: block;
}
footer #footer_bottom_area .link_list li + li {
	margin-top: 1em;
}
footer #footer_bottom_area .copyright {
	font-size: 3.4vw;
	margin-top: 10vw;
}

















}