@charset 'utf-8';

/*PC用CSS(ipad mini 7.9インチ対応)*/
@media only screen and (min-width: 768px) {
	.pc_none{
		display: none!important;
	}
}
/*SP用CSS(ipad mini 7.9インチ未対応)*/
@media only screen and (max-width: 767px) {
	.sp_none{
		display: none!important;
	}
}

/* タップ時のハイライト（青/グレーの背景がリンク・ボタン領域に出る現象）をサイト全体で無効化 */
* {
	-webkit-tap-highlight-color: transparent;
}


/*リキッドの場合に使用*/
@media only screen and (min-width: 768px){
/*	768px-1280px 画面幅1280px閲覧で1px=0.1rem可変*/
	html{
/*			font-size: 0.782vw;*/
		}
}
@media only screen and (max-width: 767px){
/*	-767px 画面幅375px閲覧で1px=0.1rem可変*/
	html{
/*			font-size: 2.67vw;*/
		}
}
@media only screen and (max-width: 374px){
/*	-374px 画面幅374pxで1px=0.1rem固定*/
	html{
/*			font-size: 62.5%;*/
		}
}
@media only screen and (min-width: 1280px){
/*	1280px- 画面幅1280pxで1px=0.1rem固定*/
	html{
/*		font-size: 62.5%;*/
	}
}

/*Googleフォントここから*/
body{
	-webkit-text-size-adjust: 100%; /*ios横向き文字の拡大防止*/
	text-size-adjust: 100%; /*ios横向き文字の拡大防止*/
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-style: normal;
	font-weight: 400;
	color: #000000;
	letter-spacing: calc((0/1000)*1em);
	/*text-decoration-thickness: 1px;
	text-decoration-line: underline;
	text-decoration-color: #000000;
	text-decoration-style: solid;
	text-underline-offset: 3px;
	text-decoration-skip-ink: none;*/
}
html.active,
body.active{
	overflow: hidden!important;
}

.thin{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 100;
}
.elight{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 200;
}
.light{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 300;
}
.regular{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 400;
}
.mid{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 500;
}
.sbold{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 600;
}
.bold{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 700;
}
.ebold{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 800;
}
.black{
	font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 900;
}

.g_elight{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 200;
}
.g_light{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 300;
}
.g_regular{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 400;
}
.g_mid{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 500;
}
.g_sbold{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 600;
}
.g_bold{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 700;
}
.g_ebold{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 800;
}
.g_black{
	font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'YuMincho', 'Yu Mincho', serif;
	font-optical-sizing: auto;
	font-style: normal;
	font-weight: 900;
}
/*英語見出し用(Baskervville) ※Google Fontsは単一400のため600は擬似ボールドで近似*/
.baskervville{
	font-family: 'Baskervville', serif;
	font-style: normal;
	font-weight: 600;
}
/*Googleフォントここまで*/
*{
	box-sizing: border-box;
}

.svg > svg{
	width: 100%;
	min-width: initial;
	height: 100%;
	min-height: initial;
	display: block;
	position: absolute;
	top: 0;
	bottom: auto;
	left: 0;
	right: auto;
	margin: auto;
}
.iframe > iframe{
	width: 100%;
	min-width: initial;
	height: 100%;
	min-height: initial;
	display: block;
	position: absolute;
	top: 0;
	bottom: auto;
	left: 0;
	right: auto;
	margin: auto;
}
::-webkit-scrollbar{
	display: none;
}
::scrollbar{
	display: none;
}
::before,
::after{
	box-sizing: border-box;
}

body,
main,
header,
footer{
	min-width: 1280px;
}
@media only screen and (max-width: 767px){
	body,
	main,
	header,
	footer{
		min-width: 320px;
	}
}

body{
	width: 100%;
	height: auto;
	display: block;
	margin: 0 auto;
	position: relative;
}

main{
	width: 100%;
	height: auto;
	padding-top: 80px;
	margin: 0 auto;
	display: block;
	position: relative;
}
@media only screen and (max-width: 767px) {
	main{
		padding-top: 60px;
	}
}

/*headerここから*/
header{
	width: 100%;
	height: 80px;
	display: block;
	position: fixed;
	top: 0;
	bottom: auto;
	left: 0;
	right: 0;
	z-index: 100;
	background-color: transparent;
	transition: background-color .35s ease, box-shadow .35s ease;
}
header .header01{
	width: 100%;
	height: 100%;
	margin: 0 auto;
	display: flex;
	justify-content: flex-end;
	align-items: stretch;
}
header .header01_logo{
	width: auto;
	height: auto;
	margin: auto auto auto 0;
	padding: 0 0 0 24px;
	display: flex;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity .35s ease;
}
header .header01_logo a{
	width: 100%;
	height: auto;
	display: block;
}
header .header01_logo img{
	width: 190px;
	height: auto;
	display: block;
}
/* PCではsp用ロゴを非表示（pc用のみ表示＝上下中央に） */
header .header01_logo img.header01_logo_sp{
	display: none;
}
header .header01_nav{
	height: 100%;
	margin: 0 54px 0 0;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}
header .header01_nav > ul{
	height: 100%;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 51px;
}
header .header01_nav > ul > li{
	width: auto;
	height: auto;
	display: block;
}
header .header01_nav > ul > li > a{
	font-size: 15px;
	line-height: 1;
	color: #ffffff;
	display: block;
	transition: color .35s ease;
}
/*現在表示中のページ（下線なし）*/
header .header01_nav > ul > li > a.is-current{
	text-decoration: none;
}
/*ホバー：下線（白ヘッダー時は色も変更）*/
header .header01_nav > ul > li > a:hover{
	text-decoration: underline;
	text-underline-offset: 6px;
	text-decoration-thickness: 1px;
}
/*アコーディオン（会社概要／採用情報）ホバーで展開*/
header .header01_nav > ul > li.header01_has_child{
	height: 100%;
	display: flex;
	align-items: center;
	position: relative;
}
header .header01_sub{
	width: 200px;
	height: auto;
	max-height: 0;
	display: block;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
	opacity: 0;
	border-radius: 0 0 8px 8px;
	background-color: #f2f4fa;
	box-shadow: 0px 8px 16px -6px rgba(0,0,0,0.18);
	transition: max-height .35s ease, opacity .35s ease;
	z-index: 10;
}
header .header01_has_child:hover .header01_sub{
	max-height: 56px;
	opacity: 1;
}
header .header01_sub > li{
	width: 100%;
	height: auto;
	display: block;
}
header .header01_sub > li > a{
	width: 100%;
	height: 56px;
	padding: 0 22px;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 14px;
	line-height: 1;
	color: #0e2155 !important;
	white-space: nowrap;
	transition: background-color .25s ease;
}
header .header01_sub > li > a:hover{
	background-color: #e6eaf6;
}
header .header01_contact{
	width: 170px;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 0 0 0 20px;
	background-color: #151f46;
	font-size: 15px;
	line-height: 1;
	color: #ffffff;
}
/*ハンバーガーボタンはSP専用（PCでは非表示）*/
header .header01_toggle{
	display: none;
}
/*nav内の「お問い合わせ」項目はSP専用（PCは装飾ボタン.header01_contactを使うため非表示）*/
header .header01_nav > ul > li.header01_nav_contact_sp{
	display: none;
}
/*スクロールでヒーローを超えた時／下層ページ＝白背景に反転*/
header.is-fixed,
body:not(.page-top) header{
	background-color: #fafafa;
	box-shadow: 0px 3px 12px -4px rgba(0,0,0,0.15);
}
header.is-fixed .header01_logo,
body:not(.page-top) header .header01_logo{
	opacity: 1;
	visibility: visible;
}
/*白ヘッダー：非アクティブは #000 */
header.is-fixed .header01_nav > ul > li > a,
body:not(.page-top) header .header01_nav > ul > li > a{
	color: #000000;
}
/*白ヘッダー：アクティブ（現在ページ）は紺 */
header.is-fixed .header01_nav > ul > li > a.is-current,
body:not(.page-top) header .header01_nav > ul > li > a.is-current{
	color: #0e2155;
}
/*白ヘッダー：ホバーで紺（＋下線は共通ルール） */
header.is-fixed .header01_nav > ul > li > a:hover,
body:not(.page-top) header .header01_nav > ul > li > a:hover{
	color: #0e2155;
}
/*headerここまで*/

/*footerここから*/
/*CTA*/
.cta{
	width: 100%;
	height: auto;
	margin: 0 auto;
	padding: 78px 0 71px;
	background-color: #151f46;
	display: block;
}
.cta_inner{
	width: 1280px;
	height: auto;
	margin: 0 auto;
	display: block;
	text-align: center;
}
.cta_ttl{
	font-size: 32px;
	line-height: 1;
	letter-spacing: 0.04em;
	color: #ffffff;
}
.cta_text{
	margin-top: 24px;
	font-size: 16px;
	line-height: 1;
	color: #B6BBCE;
}
/*CTA本文のSP専用改行（PCでは無効）*/
.cta_text_brsp{ display: none; }
.cta_btn{
	width: 277px;
	height: 59px;
	margin: 40px auto 0;
	display: flex;
	justify-content: center;
	align-items: center;
	border-radius: 30px;
	background-color: #ffffff;
	font-size: 18px;
	line-height: 1;
	color: #151f46;
}
/*footer*/
footer{
	width: 100%;
	height: auto;
	margin: 0 auto;
	background-color: #fafafa;
	display: block;
}
footer .footer01{
	width: 94%;
	height: auto;
	padding: 38px 0 16px;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
footer .footer01_01{
	width: auto;
	height: auto;
	display: block;
}
footer .footer01_logo{
	width: 234px;
	height: auto;
	display: block;
}
footer .footer01_logo img{
	width: 100%;
	height: auto;
	display: block;
}
footer .footer01_address{
	width: auto;
	height: auto;
	margin: 20px 0 0;
	font-size: 15px;
	line-height: 25px;
	color: #333333;
	display: block;
}
footer .footer01_02{
	width: auto;
	height: auto;
	margin-top: 13px;
	display: flex;
	justify-content: flex-end;
	align-items: flex-end;
	flex-direction: column;
}
footer .footer01_nav > ul{
	width: auto;
	height: auto;
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 40px;
}
footer .footer01_nav > ul > li > a{
	font-size: 15px;
	line-height: 1;
	color: #333333;
	display: block;
}
footer .footer01_privacy{
	margin: 32px 0 0;
	font-size: 11px;
	line-height: 1;
	color: #333333;
	display: block;
}
footer .footer02{
	width: 100%;
	height: auto;
	margin: 0 auto;
	padding: 5px 0;
	background-color: #151f46;
	display: block;
}
footer .footer02_copy{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 10px;
	line-height: 1;
	color: #ffffff;
	display: block;
	text-align: center;
}
/*footerここまで*/

/*btn-topここから*/
.btn-top{
	width: 50px;
	height: 50px;
	display: flex;
	justify-content: center;
	align-items: center;
	position: fixed;
	top: auto;
	bottom: 0;
	left: auto;
	right: 20px;
	margin: auto;
	z-index: 10;
	cursor: pointer;
}
.btn-top::before{
	content: '';
	width: 50%;
	height: 40%;
	margin: 0;
	clip-path: polygon(0 100%, 50% 0, 100% 100%);
	background-color: #104EA3;
	display: block;
}
@media only screen and (max-width: 767px) {
	.btn-top {
		right: 0;
	}
}
/*btn-topここまで*/

/*includeここから*/

/*.eyecatch_incここから*/
.eyecatch_inc.top{
	width: 100%;
	min-width: 1280px;
	height: auto;
	margin: 0 auto;
	display: block;
	position: relative;
}
@media only screen and (max-width: 767px) {
	.eyecatch_inc.top{
		min-width: 320px;
	}
}
.eyecatch_inc.top .eyecatch_inc01{
	width: 1180px;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 1;
}
@media only screen and (max-width: 767px) {
	.eyecatch_inc.top .eyecatch_inc01{
		width: 90%;
		max-width: 320px;
	}
}
.eyecatch_inc.top .eyecatch_inc01 .text01{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 20px;
	line-height: 30px;
	display: block;
}
.eyecatch_inc.top .eyecatch_inc02{
	width: 100%;
	height: auto;
	margin: 0 auto;
	position: relative;
	z-index: 0;
}
.eyecatch_inc.top .swiper.is-disabled .swiper-wrapper{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
}
.eyecatch_inc.top .eyecatch_inc02 .swiper-wrapper .eyecatch_inc02_01{
	width: 100%;
	height: calc(100vh - 74px);
	height: calc(var(--vh_2, 1vh) * 100 - 74px);
	min-height: 500px;
	display: block;
	position: relative;
}
@media only screen and (max-width: 767px){
	.eyecatch_inc.top .eyecatch_inc02 .swiper-wrapper .eyecatch_inc02_01{
		min-height: initial;
	}
}
/* フェードインズームの場合 */
/*.swiper-slideに<div class="slide-img"></div>を子要素として追加*/
/*デフォルトのスピードはswiperのスピードに合わせる*/
/*アクティブのスピードはswiperのスピード+オートプレイに合わせる*/
/*.eyecatch_inc.top .eyecatch_inc02 .swiper-wrapper .eyecatch_inc02_01{
	overflow: hidden;
}
.eyecatch_inc.top .eyecatch_inc02 .swiper-wrapper .eyecatch_inc02_01 .slide-img{
	width: 100%;
	height: 100%;
	margin: 0;
	display: block;
	transition: opacity 1.0s ease-in-out;
}
.eyecatch_inc.top .eyecatch_inc02 .swiper-wrapper .eyecatch_inc02_01.swiper-slide-active .slide-img{
	animation: zoomOut 2.0s ease-out forwards;
}
@keyframes zoomOut {
	0% {
		transform: scale(1.1);
	}
	100% {
		transform: scale(1.0);
	}
}*/
.eyecatch_inc.top .swiper-button-prev,
.eyecatch_inc.top .swiper-button-next{
	width: 18px;
	height: 33px;
	top: 0;
	bottom: 0;
	margin: auto;
	z-index: 10;
	transition: all .5s;
}
.eyecatch_inc.top .swiper-button-prev{
	left: 30px;
	right: auto;
}
.eyecatch_inc.top .swiper-button-next{
	left: auto;
	right: 30px;
}
@media only screen and (max-width: 767px){
	.eyecatch_inc.top .swiper-button-prev{
		left: 10px;
	}
	.eyecatch_inc.top .swiper-button-next{
		right: 10px;
	}
}
.eyecatch_inc.top .swiper-button-prev::before,
.eyecatch_inc.top .swiper-button-next::before{
	content: '';
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	display: block;
	opacity: 1;
}
.eyecatch_inc.top .swiper-button-prev::before{
	background-image: url(../img/slick/arrow01.png);
}
.eyecatch_inc.top .swiper-button-next::before{
	background-image: url(../img/slick/arrow02.png);
}
.eyecatch_inc.top .swiper-button-prev > svg,
.eyecatch_inc.top .swiper-button-next > svg{
	display: none;
}
.eyecatch_inc.top .swiper-pagination{
	width: 200px;
	height: auto;
	margin: 20px auto 0;
	position: static;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}
.eyecatch_inc.top .swiper-pagination .swiper-pagination-bullet{
	width: 8px;
	height: 8px;
	margin: 4px 4px 0 !important;
	display: block;
	border-radius: 50%;
	background-color: #abbcca;
	opacity: 1;
}
.eyecatch_inc.top .swiper-pagination .swiper-pagination-bullet:nth-of-type(-n+12){
	margin-top: 0 !important;
}
.eyecatch_inc.top .swiper-pagination .swiper-pagination-bullet-active{
	background-color: #19496f;
}
.eyecatch_inc.short{
	width: 100%;
	height: 422px;
	position: relative;
}
@media only screen and (max-width: 767px) {
	.eyecatch_inc.short{
		height: 205px;
	}
}
.eyecatch_inc.short .eyecatch_inc01{
	width: 980px;
	height: auto;
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	z-index: 1;
}
@media only screen and (max-width: 767px) {
	.eyecatch_inc.short .eyecatch_inc01{
		width: 90%;
		max-width: 320px;
	}
}
.eyecatch_inc.short .eyecatch_inc01 .text01{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 20px;
	line-height: 30px;
	display: block;
}
.eyecatch_inc.short .eyecatch_inc02{
	width: 100%;
	height: 100%;
	margin: 0 auto;
}
.eyecatch_inc.short .eyecatch_inc02 .eye_img{
	width: 100%;
	height: 100%;
	margin: 0 auto;
	display: block;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: bottom center;
}
.eyecatch_inc.short .eyecatch_inc02 .eye_img{
	background-color:#104EA3;
}
/*.eyecatch_incここまで*/

/*.pan_incここから*/
.pankuzu_inc{
	width: 100%;
	height: auto;
}
.pankuzu_inc .pankuzu_inc_inner{
	width: 1180px;
	height: auto;
	margin: 0 auto;
	font-size: 0;
	line-height: 0;
	display: block;
}
@media only screen and (max-width: 767px) {
	.pankuzu_inc .pankuzu_inc_inner{
		width: 90%;
		max-width: 320px;
	}
}
.pankuzu_inc .pankuzu_inc_inner > a{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 16px;
	line-height: 26px;
	display: inline;
}
@media only screen and (max-width: 767px) {
	.pankuzu_inc .pankuzu_inc_inner > a{
		font-size: 12px;
		line-height: 22px;
	}
}
.pankuzu_inc .pankuzu_inc_inner > span{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 16px;
	line-height: 26px;
	display: inline;
}
@media only screen and (max-width: 767px) {
	.pankuzu_inc .pankuzu_inc_inner > span{
		font-size: 12px;
		line-height: 22px;
	}
}
.pankuzu_inc .pankuzu_inc_inner > p{
	width: auto;
	height: auto;
	margin: 0;
	font-size: 16px;
	line-height: 26px;
	display: inline;
}
@media only screen and (max-width: 767px) {
	.pankuzu_inc .pankuzu_inc_inner > p{
		font-size: 12px;
		line-height: 22px;
	}
}
/*.pan_incここまで*/

/*.paginationここから*/
.wp-pagenavi {
	width: 1180px;
	height: auto;
	margin: calc(-30px / 2) 0;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
}
@media only screen and (max-width: 767px) {
	.wp-pagenavi {
		width: 100%;
		max-width: 320px;
	}
}
.wp-pagenavi span{
	width: 37px;
	height: 37px;
	font-size: 13px;
	line-height: 37px;
	font-weight: 700;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: calc(30px / 2);
	border: 1px solid #cccccc;
}
@media only screen and (max-width: 767px) {
	.wp-pagenavi span{
		margin: calc(30px / 2) calc(15px / 2);
	}
}
.wp-pagenavi a{
	width: 37px;
	height: 37px;
	font-size: 13px;
	line-height: 37px;
	font-weight: 700;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: calc(30px / 2);
	border: 1px solid #DDDDDD;
}
@media only screen and (max-width: 767px) {
	.wp-pagenavi a{
		margin: calc(30px / 2) calc(15px / 2);
	}
}
.wp-pagenavi .current{
	width: 37px;
	height: 37px;
	font-size: 13px;
	line-height: 37px;
	font-weight: 700;
	display: flex;
	justify-content: center;
	align-items: center;
	margin: calc(30px / 2);
	border: 1px solid #E9EAEF;
	background-color: #E9EAEF;
}
@media only screen and (max-width: 767px) {
	.wp-pagenavi .current{
		margin: calc(30px / 2) calc(15px / 2);
	}
}
.wp-pagenavi .previouspostslink{
	border: 0;
	font-size: 0;
	line-height: 0;
}
.wp-pagenavi .previouspostslink::before{
	content: '';
	width: 6px;
	height: 6px;
	margin: 0 -3px 0 0;
	border-top: 1px solid #262626;
	border-left: 1px solid #262626;
	display: block;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	flex-shrink: 0;
}
.wp-pagenavi .nextpostslink{
	border: 0;
	font-size: 0;
	line-height: 0;
}
.wp-pagenavi .nextpostslink::before{
	content: '';
	width: 6px;
	height: 6px;
	margin: 0 0 0 -3px;
	border-bottom: 1px solid #262626;
	border-right: 1px solid #262626;
	display: block;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	flex-shrink: 0;
}
.wp-pagenavi .pages,
.wp-pagenavi .first,
.wp-pagenavi .last,
.wp-pagenavi .extend{
	display: none;
}
/*.paginationここまで*/

/*includeここまで*/

/*=== 共通: ボタン矢印・枠線ボタンホバー（TOP・下層共通） ===*/
.arrow{
	width: 8px;
	height: 8px;
	border-top: 1.5px solid #0e2155;
	border-right: 1.5px solid #0e2155;
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 24px;
	margin: auto;
	transform: rotate(45deg);
	transition: border-color .35s ease;
}
.strength_block_btn,
.recruit_btn,
.company_btn,
.company_intro_btn,
.recruit_page_btn,
.contact_submit,
.thanks_btn,
.blog_back_btn{
	background-color: transparent;
	transition: background-color .35s ease, color .35s ease;
}
@media only screen and (min-width: 768px){
	.strength_block_btn:hover,
	.recruit_btn:hover,
	.company_btn:hover,
	.company_intro_btn:hover,
	.recruit_page_btn:hover,
	.contact_submit:hover,
	.thanks_btn:hover,
	.blog_back_btn:hover{
		background-color: #0e2155;
		color: #ffffff;
	}
	.strength_block_btn:hover .arrow,
	.recruit_btn:hover .arrow,
	.company_btn:hover .arrow,
	.company_intro_btn:hover .arrow,
	.recruit_page_btn:hover .arrow,
	.contact_submit:hover .arrow,
	.thanks_btn:hover .arrow,
	.blog_back_btn:hover .arrow{
		border-color: #ffffff;
	}
}

/*=== 共通: RECRUIT ブロック（inc/recruit_inc.php・TOP/会社概要 等） ===*/
.recruit{
	width: 100%;
	height: auto;
	padding: 124px 0 99px;
	background-color: #fafafa;
	display: block;
}
.recruit_head{
	width: 100%;
	height: auto;
	text-align: center;
}
.recruit_en{
	margin-left: -14px;
	font-size: 16px;
	line-height: 1;
	letter-spacing: 0.13em;
	color: #0e2155;
}
.recruit_ttl{
	margin-top: 28px;
	font-size: 32px;
	line-height: 1;
	letter-spacing: 0.05em;
	color: #0f0f0f;
}
.recruit_body{
	width: 1280px;
	height: auto;
	margin: 58px auto 0;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
.recruit_txt{
	width: 575px;
	height: auto;
	margin: 67px 0 0;
	display: block;
	flex-shrink: 0;
}
.recruit_lead{
	font-size: 24px;
	line-height: 1.5;
	letter-spacing: 0.05em;
	color: #0f0f0f;
}
.recruit_desc{
	margin-top: 26px;
	font-size: 15px;
	line-height: 32px;
	letter-spacing: 0.05em;
	color: #5a5959;
}
.recruit_btns{
	width: 100%;
	height: auto;
	margin: 36px 0 0;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	gap: 20px;
}
.recruit_btn{
	width: 220px;
	height: 58px;
	margin: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	border: 1px solid #0e2155;
	border-radius: 29px;
	font-size: 15px;
	line-height: 1;
	color: #0e2155;
	position: relative;
}
/* 文字数が多く矢印に重なるボタンは幅を広げる（SPの.recruit_btn指定にも勝つよう2クラスで指定） */
.recruit_btns .recruit_btn--wide{
	width: 280px;
}
.recruit_img{
	width: 640px;
	height: auto;
	display: block;
	flex-shrink: 0;
}
.recruit_img img{
	width: 640px;
	height: auto;
	border-radius: 12px;
	display: block;
}
.recruit_slider{
	width: 100%;
	height: auto;
	margin: 70px auto 0;
	display: block;
	overflow: hidden;
}
.recruit_slider_track{
	width: max-content;
	height: auto;
	margin: 0;
	display: flex;
	justify-content: flex-start;
	align-items: center;
	animation: recruitFlow 25s linear infinite;
}
.recruit_slider_track li{
	width: 347px;
	height: auto;
	margin: 0 20px 0 0;
	display: block;
	flex-shrink: 0;
}
.recruit_slider_track img{
	width: 347px;
	height: 307px;
	object-fit: cover;
	display: block;
	border-radius: 12px;
}
@keyframes recruitFlow{
	from{
		transform: translateX(0);
	}
	to{
		transform: translateX(-33.3333%);
	}
}

/* ============================================================
   SP（〜767px）: 共通ヘッダー＋ハンバーガーメニュー
   ============================================================ */
@media only screen and (max-width: 767px){
	/*== ヘッダーバー ==*/
	header{
		height: 60px;
	}
	header .header01{
		justify-content: space-between;
		align-items: center;
		padding: 0 20px;
		position: relative;
		z-index: 100;
	}
	/* ロゴは常時表示（PCの scroll 表示制御は無効化） */
	header .header01_logo{
		opacity: 1;
		visibility: visible;
		margin: 0;
		padding: 0;
		position: relative;
		z-index: 100;
	}
	header .header01_logo img{
		width: 150px;
		height: auto;
	}
	header .header01_logo img.header01_logo_pc{ display: none; }
	header .header01_logo img.header01_logo_sp{ display: block; }
	/* PCナビ・お問い合わせボタンは非表示（メニュー内へ） */
	header .header01_contact{ display: none; }
	/* nav内の「お問い合わせ」項目はSPメニューで表示 */
	header .header01_nav > ul > li.header01_nav_contact_sp{ display: block; }

	/*== ハンバーガーボタン ==*/
	header .header01_toggle{
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 8px;
		width: 45px;
		height: 30px;
		padding: 0;
		border: none;
		background: none;
		position: relative;
		z-index: 100;
		cursor: pointer;
	}
	.header01_toggle_bar{
		display: block;
		width: 45px;
		height: 2px;
		background-color: #ffffff;
		transition: transform .3s ease, width .3s ease, opacity .3s ease, background-color .3s ease;
	}
	/* 展開時の×はデザイン実測26×26に合わせる（線長 26×√2 ≒ 37px） */
	.header01_toggle.is-active .header01_toggle_bar{ width: 37px; }
	.header01_toggle.is-active .header01_toggle_bar:nth-child(1){ transform: translateY(5px) rotate(45deg); }
	.header01_toggle.is-active .header01_toggle_bar:nth-child(2){ transform: translateY(-5px) rotate(-45deg); }

	/*== メニューオーバーレイ ==*/
	header .header01_nav{
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		height: 100vh;
		height: 100dvh;
		margin: 0;
		padding: 0;
		display: block;
		background-color: #0f1a40;
		overflow-y: auto;
		z-index: 90;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity .3s ease, visibility .3s ease;
	}
	header .header01_nav.is-open{
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	header .header01_nav > ul{
		display: block;
		height: auto;
		gap: 0;
		padding: 90px 27px 40px;
	}
	header .header01_nav > ul > li{
		display: block;
		margin: 0;
	}
	header .header01_nav > ul > li > a{
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 38px 4px 12px 8px;
		border-bottom: 1px solid #25324a;
		font-size: 14px;
		line-height: 1;
		letter-spacing: 0.04em;
		font-weight: 500;
		color: #ffffff;
	}
	/* 下層ページはヘッダーリンク色(#0e2155)が効くため、メニュー内は白に上書き */
	body:not(.page-top) header .header01_nav > ul > li > a{
		color: #ffffff;
	}
	/* 現在表示中のページも同様（PC用の紺#0e2155のままだと濃紺オーバーレイに沈んで読めない） */
	body:not(.page-top) header .header01_nav > ul > li > a.is-current,
	header.is-fixed .header01_nav > ul > li > a.is-current{
		color: #ffffff;
	}
	/* タップ時の四角いハイライトを消す（リンク領域が透過して見える現象の対策） */
	header .header01_nav a,
	.header01_toggle{
		-webkit-tap-highlight-color: transparent;
		tap-highlight-color: transparent;
	}
	header .header01_nav a:active,
	header .header01_nav a:focus{
		background-color: transparent;
	}
	/* 右向きシェブロン */
	header .header01_nav > ul li > a::after{
		content: '';
		width: 7px;
		height: 7px;
		border-top: 1.5px solid #ffffff;
		border-right: 1.5px solid #ffffff;
		transform: rotate(45deg);
		flex-shrink: 0;
		margin-left: 12px;
	}
	header .header01_nav > ul > li > a.is-current > span,
	header .header01_nav > ul > li > a.is-current{
		text-decoration: none;
	}
	/* 子持ち項目（会社概要／採用情報）：サブは常時表示・インデント。親は下線なし、サブ下端に線 */
	header .header01_nav > ul > li.header01_has_child{
		display: block;
		height: auto;
		margin: 0;
		position: static;
	}
	header .header01_nav > ul > li.header01_has_child > a{
		padding-bottom: 0;
		border-bottom: none;
	}
	header .header01_sub{
		position: static;
		transform: none;
		width: auto;
		max-height: none;
		opacity: 1;
		overflow: visible;
		border-radius: 0;
		background: none;
		box-shadow: none;
	}
	header .header01_sub > li{
		display: block;
		margin: 0;
	}
	header .header01_sub > li > a{
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding: 18px 4px 12px 21px;
		border-bottom: 1px solid #25324a;
		font-size: 14px;
		line-height: 1;
		letter-spacing: 0.04em;
		color: #ffffff !important;
	}
	header .header01_sub > li > a:hover{ background: none; }

	/*== ヘッダー白背景時（下層／スクロール時）は濃色ロゴ・濃色バー ==*/
	body:not(.page-top) header .header01_logo img.header01_logo_pc,
	header.is-fixed .header01_logo img.header01_logo_pc{ display: block; }
	body:not(.page-top) header .header01_logo img.header01_logo_sp,
	header.is-fixed .header01_logo img.header01_logo_sp{ display: none; }
	body:not(.page-top) header .header01_toggle_bar,
	header.is-fixed .header01_toggle_bar{ background-color: #0e2155; }

	/*== メニュー展開中はヘッダーバーを白ロゴ・白バーに固定（濃紺オーバーレイ上） ==*/
	body.menu-open header{ background-color: transparent; box-shadow: none; }
	body.menu-open header .header01_logo img.header01_logo_pc{ display: none; }
	body.menu-open header .header01_logo img.header01_logo_sp{ display: block; }
	body.menu-open header .header01_toggle_bar{ background-color: #ffffff; }

	/* メニュー展開中はフローティング要素を隠す */
	body.menu-open .mv_recruit,
	body.menu-open .mv_logo,
	body.menu-open .mv_pagination,
	body.menu-open .mv_catch,
	body.menu-open .mv_catch_sp,
	body.menu-open .btn-top{ display: none; }

	/*== 背面スクロールロック ==*/
	html.menu-open,
	body.menu-open{ overflow: hidden; }
}


/* ============================================================
   SP（〜767px） 共通: RECRUIT / CTA / footer
   ============================================================ */
@media only screen and (max-width: 767px){
	/* ---- RECRUIT ブロック ---- */
	.recruit{ padding: 76px 0 54px; }
	.recruit_head{ padding: 0 27px; }
	.recruit_en{ font-size: 16px; letter-spacing: 0.1em; }
	.recruit_ttl{ margin-top: 20px; font-size: 25px; line-height: 1.4; }
	.recruit_body{
		width: 100%;
		margin-top: 28px;
		padding: 0 27px;
		flex-direction: column;
		align-items: stretch;
	}
	.recruit_txt{ width: 100%; margin: 0; text-align: center; }
	.recruit_lead{ font-size: 20px; line-height: 1.6; text-align: center; }
	.recruit_desc{ margin-top: 18px; font-size: 15px; line-height: 30px; text-align: left; }
	.recruit_btns{ margin-top: 34px; flex-direction: column; align-items: center; gap: 19px; }
	.recruit_btn{ width: 220px; }
	.recruit_img{ width: 100%; margin-top: 41px; }
	.recruit_img img{ width: 100%; height: auto; aspect-ratio: 320 / 225; border-radius: 6px; }
	.recruit_slider{ margin-top: 41px; }
	.recruit_slider_track li{ width: 150px; margin: 0 12px 0 0; border-radius: 20px; }
	.recruit_slider_track img{ width: 150px; height: 136px; border-radius: 12px; }

	/* ---- CTA ---- */
	.cta{ padding: 50px 27px 52px; }
	.cta_inner{ width: 100%; }
	.cta_ttl{ font-size: 22px; line-height: 1.4; letter-spacing: 0; }
	.cta_text{ margin-top: 16px; font-size: 14px; line-height: 1.8; }
	.cta_text_brsp{ display: inline; }
	.cta_btn{ width: 260px; height: 56px; margin-top: 28px; font-size: 16px; }

	/* ---- footer ---- */
	footer .footer01{
		width: 100%;
		padding: 50px 27px 40px;
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
		text-align: center;
	}
	footer .footer01_01{ text-align: center; }
	footer .footer01_logo{ width: 234px; margin: 0 auto; }
	footer .footer01_address{ margin-top: 22px; font-size: 15px; line-height: 26px; }
	footer .footer01_02{ margin-top: 30px; align-items: center; }
	footer .footer01_nav{ display: none; }
	footer .footer01_privacy{ margin-top: 0; font-size: 12px; }
	footer .footer02{ padding: 8px 0; }
}
