@charset "utf-8";


/*Google Fontsの読み込み
---------------------------------------------------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=LINE+Seed+JP:wght@400;700&display=swap');

/*Font Awesomeの読み込み
---------------------------------------------------------------------------*/
@import url("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css");

/*lightbox.cssの読み込み
---------------------------------------------------------------------------*/
@import url(https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.10.0/css/lightbox.css);


/*opa1のキーフレーム設定
---------------------------------------------------------------------------*/
@keyframes opa1 {
	0% {opacity: 0;}
	100% {opacity: 1;}
}


/*animation1のキーフレーム設定（開閉ブロックのアニメーションに使用）
---------------------------------------------------------------------------*/
@keyframes animation1 {
	0% {left: -200px;}
	100% {left: 0px;}
}



/*全体の設定
---------------------------------------------------------------------------*/
body * {box-sizing: border-box;}
html,body {
	height: 100%;
	font-size: 13px;	/*基準となるフォントサイズ。*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	html, body {
		font-size: 14px;	/*基準となるフォントサイズ。*/
	}

	}/*追加指定ここまで*/

body {
	font-family: "LINE Seed JP", "ヒラギノ角ゴ Pro W3", Meiryo, "メイリオ", "Osaka", "MS PGothic", "ＭＳ Ｐゴシック", sans-serif;	/*フォント種類（ゴシック）*/
	font-weight: 300;
	font-optical-sizing: auto;
	letter-spacing: 0.1rem;
	text-indent: 0.1rem;
	-webkit-text-size-adjust: none;
	margin: 0;padding: 0;
	line-height: 2;		/*行間*/
	background: #A9B0B0;		/*背景色*/
	color: #fff;			/*文字色*/
}

/*リセット*/
figure {margin: 0;}
dd {margin: 0;}
nav,ul,li {margin: 0;padding: 0;}
nav ul {list-style: none;}
h1 {font-weight: 800;}
h2,h3,h4 {font-weight: 400;}

/*table全般の設定*/
table {border-collapse:collapse;}

/*画像全般の設定*/
img {border: none;max-width: 100%;height: auto;vertical-align: middle;}

/*videoタグ*/
video {max-width: 100%;}

/*iframeタグ*/
iframe {width: 100%;}

/*他*/
input {font-size: 1rem;}
strong {font-weight: 500;}


/*リンクテキスト全般の設定
---------------------------------------------------------------------------*/
a {
	color: #fff;	/*文字色*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
}

/*マウスオン時*/
a:hover {
	text-decoration: none;
}


/*header（ロゴとメニューが入ったブロック）
---------------------------------------------------------------------------*/
header {
	width: 250px;		/*幅*/
	padding: 0 2vw;		/*ヘッダー内の余白。上下、左右への順番。*/
	margin-top: 5vw;	/*ヘッダーの上に空けるスペース*/
	text-align: center;	/*テキストをセンタリング*/
}

/*ロゴ*/
header #logo img {display: block;}
header #logo {
	padding: 0;margin: 0;
}

/*ロゴ下の小文字*/
header #logo span {
	display: block;
	font-size: 0.7rem;	/*文字サイズを70%に*/
}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	header {
		position: fixed;	/*スクロールしても動かないようにする設定*/
		left: 0px;
		top: 0px;
	}

	}/*追加指定ここまで*/


/*mainブロック（右側のsectionを囲むブロック）
---------------------------------------------------------------------------*/

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	main {
		margin-left: 250px;	/*headerのwidthに合わせる*/
	}

	}/*追加指定ここまで*/


/*main内のh2*/
main h2 {
	font-size: 1.5rem;		/*文字サイズ。1.5倍。*/
	font-weight: normal;	/*デフォルトの太字を標準に*/
	line-height: 1.5;		/*行間*/
	display: inline-block;	/*文字の幅にブロック幅を合わせる。これがないと画面幅いっぱいになって、下の右寄せ指定が離れすぎてしまう。*/
	text-align: right;		/*テキストを右寄せ。上でinline-blockを指定したので、画面の右側ではなく、装飾文字と合わせた幅内で右に揃う。*/
}

/*大きな装飾文字*/
.hosoku {
	font-family: "Hiragino Sans", cursive;	/*冒頭で読み込んでいるGoogle Fontsの指定*/
	font-weight: 600;
	font-size: 2em;	/*文字サイズ。３倍。*/
	display: block;
	opacity: 0.7;	/*透明度。50%色が出た状態。*/
}

.blur {
	display: block;
	font-size: 1.2rem;	/*文字サイズを70%に*/
}

/*main内のh3*/
main h3 {
	font-size: 1.5rem;	/*文字サイズを1.5倍*/
	font-weight: 600;
}



/*メニューブロック初期設定
---------------------------------------------------------------------------*/
/*メニューをデフォルトで非表示*/
#menubar {display: none;}

/*上で非表示にしたメニューを表示させる為の設定*/
.large-screen #menubar {display: block;}
.small-screen #menubar.display-block {display: block;}

/*3本バーをデフォルトで非表示*/
#menubar_hdr.display-none {display: none;}


/*メニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
#menubar ul {
	margin: 0.5rem 0;	/*メニューブロックの外側に空けるスペース*/
  position: relative;
  display: inline-block;
}

/*メニュー一個あたり*/
#menubar nav a {
	text-decoration: none;display: block;
	background: rgba(2,24,123,0.9);	/*背景色。0,0,0は黒のことで0.5は色が50%出た状態。*/
	border: 0;	/*枠線の幅、線種、色。255,255,255は白のことで0.3は色が30%出た状態。*/
	color: #fff;		/*文字色*/
	padding: 0.5rem;	/*余白*/
	margin: 0.5rem 0;	/*メニューの外側に空けるスペース。上下、左右。*/
	border-radius: 5px;	/*角を丸くする指定*/
}

/*マウスオン次*/
#menubar nav a:hover {
	background: rgba(2,24,123,0.7);	/*背景色。透明度を変更して濃くします。*/
	border: 1px solid rgba(255,255,255,0.9);	/*枠線。透明度を変更して濃くします。*/
}



.accordion-menu {
  width: 100%;
  max-width: 250px;
	margin: 0;	/*メニューブロックの外側に空けるスペース*/
  position: relative;
  display: inline-block;
}
.accordion-menu li.open .dropdownlink {
  color: #fff;
  .fa-chevron-down {
    transform: rotate(180deg);
  }
}
.accordion-menu li:last-child .dropdownlink {
  border-bottom: 0;
}

.dropdownlink {
  cursor: pointer;
	text-decoration: none;
	display: block;
	background: rgba(2,24,123,0.9);	/*背景色。0,0,0は黒のことで0.5は色が50%出た状態。*/
	border: 0;	/*枠線の幅、線種、色。255,255,255は白のことで0.3は色が30%出た状態。*/
	color: #fff;		/*文字色*/
	padding: 0.5rem;	/*余白*/
	margin: 0.5rem 0;	/*メニューの外側に空けるスペース。上下、左右。*/
	border-radius: 5px;	/*角を丸くする指定*/
  position: relative;
  transition: all 0.4s ease-out;
  i {
    position: absolute;
    top: 17px;
    left: 16px;
  }
  .fa-chevron-down {
    right: 12px;
    left: auto;
  }
}



.submenuItems {
  display: none;
  width: 100%;
  max-width: 350px;
	margin: 0;	/*メニューの外側に空けるスペース。上下、左右。*/
  li {
    border-bottom: 0;
  }
}

.submenuItems a {
    display: block;
    color: #fff;
    padding: 12px 12px 45px;
    transition: all 0.4s ease-out;
}

.submenuItems a:hover {
    color: #fff;
}





/*900px以下画面でのメニュー
---------------------------------------------------------------------------*/
/*メニューブロック全体*/
.small-screen #menubar.display-block {
	position: fixed;overflow: auto;z-index: 100;
	left: 0px;top: 0px;
	width: 100%;
	height: 100%;
	padding-top: 80px;
	background: rgba(2,24,123,0.8);		/*背景色*/
	animation: animation1 0.2s both;	/*animation1を実行する。0.2sは0.2秒の事。*/
}
.small-screen #menubar ul {
	margin: 3rem;	/*メニューブロックの外側に空けるスペース*/
}


/*３本バー（ハンバーガー）アイコン設定
---------------------------------------------------------------------------*/
/*３本バーを囲むブロック*/
#menubar_hdr {
	animation: opa1 0s 0.2s both;
	position: fixed;z-index: 101;
	cursor: pointer;
	right: 30px;			/*右からの配置場所指定*/
	top: 30px;				/*上からの配置場所指定*/
	padding: 16px 14px;		/*上下、左右への余白*/
	width: 46px;			/*幅（３本バーが出ている場合の幅になります）*/
	height: 46px;			/*高さ*/
	display: flex;					/*flexボックスを使う指定*/
	flex-direction: column;			/*子要素（３本バー）部分。flexはデフォルトで横並びになるので、それを縦並びに変更。*/
	justify-content: space-between;	/*並びかたの種類の指定*/
	background: #0000FC;	/*背景色*/
}

/*バー１本あたりの設定*/
#menubar_hdr span {
	display: block;
	transition: 0.3s;	/*アニメーションにかける時間。0.3秒。*/
	border-top: 1.5px solid #fff;	/*線の幅、線種、色*/
}

/*×印が出ている状態の設定。※１本目および２本目のバーの共通設定。*/
#menubar_hdr.ham span:nth-of-type(1),
#menubar_hdr.ham span:nth-of-type(3) {
	transform-origin: center center;	/*変形の起点。センターに。*/
	width: 20px;						/*バーの幅*/
}

/*×印が出ている状態の設定。※１本目のバー。*/
#menubar_hdr.ham span:nth-of-type(1){
	transform: rotate(45deg) translate(3.8px, 5px);	/*回転45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※３本目のバー。*/
#menubar_hdr.ham span:nth-of-type(3){
	transform: rotate(-45deg) translate(3.8px, -5px);	/*回転-45°と、X軸Y軸への移動距離の指定*/
}

/*×印が出ている状態の設定。※２本目のバー。*/
#menubar_hdr.ham span:nth-of-type(2){
	display: none;	/*２本目は使わないので非表示にする*/
}


/*メニュー内にあるソーシャルメディアのアイコン
---------------------------------------------------------------------------*/
ul.icons {
	list-style: none;
	margin: 0;padding: 0;
	display: flex;
	justify-content: center;
}
ul.icons li {
	margin-right: 10px;	/*アイコン同士の余白*/
}
ul.icons i {
	font-size: 20px;	/*Font Awesomeのアイコンサイズ*/
}

/*ファーストビュー
---------------------------------------------------------------------------*/
/*ブロック全体*/
#fv {
    width: 100%;
}

	/*画面420px以上の追加指定*/
	@media screen and (min-width:420px) {

	#fv {
		padding-top: 60%;	/*アスペクト比16:9（9÷16=0.5624）*/
	}

	}/*追加指定ここまで*/

#fv > div {
	position: absolute;
	top: 55px;	/*header分を確保*/
	left: 10px;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	
}
	/*画面420px以上の追加指定*/
	@media screen and (min-width:420px) {

	#fv > div {
	align-items: center;
		justify-content: center;
	}

	}/*追加指定ここまで*/

/*テキストのブロック*/
#fv p {margin: 15px;}


#fv .title {
	font-size: 24px;	/*文字サイズ。*/
	font-weight: 800;	/*太字に*/
	line-height: 1.4;	/*行間*/
	text-align: center;	/*テキストをセンタリング*/
}
#fv .text {
	font-size: 16px;	/*文字サイズ。*/
	font-weight: 800;	/*太字に*/
	line-height: 1.2;	/*行間*/
	text-align: center;	/*テキストをセンタリング*/
}
#fv .text2 {
	font-size: 12px;	/*文字サイズ。*/
	font-weight: 600;	/*太字に*/
	line-height: 1.2;	/*行間*/
	text-align: center;	/*テキストをセンタリング*/
}

	/*画面420px以上の追加指定*/
	@media screen and (min-width:420px) {

#fv .title {
		text-align: center;	/*テキストをセンタリング*/
		font-size: 3.3vw;	/*文字サイズ。*/
}
	#fv .text {
		text-align: center;	/*テキストをセンタリング*/
		font-size: 2.4vw;	/*文字サイズ。*/
	}

	#fv .text2 {
		text-align: center;	/*テキストをセンタリング*/
		font-size: 1.6vw;	/*文字サイズ。*/
	}

	}/*追加指定ここまで*/


/*ボタン*/
#fv .btn {
	font-size: 0.8rem;	/*文字サイズ*/
	font-weight: 600;	/*少し太字に*/
	margin-top: 6vw;	/*上のテキストとボタンの間のスペース。*/
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;   /* ← はみ出し防止 */
	gap: 0.8rem;	/*ボタン同士の余白*/
    display: flex;
    justify-content: center;
    gap: 1rem;
}
#fv .btn a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border-radius: 12px;
    height: 56px;  /* スマホなら少し小さめでもOK */
    box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14),
                0 6px 10px -2px rgba(0,0,0,0.14),
                0 1px 5px 0 rgba(0,0,0,0.2);
    transition: 0.2s ease-in-out;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;          /* ← 重要 */
    padding: 0 1rem;      /* ← 横余白 */
    box-sizing: border-box;
    width: auto;   /* ← PCでは自動幅 */
    padding: 0 2rem;
}

/*マウスオン時*/
#fv .btn a:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

	/*画面420px以上の追加指定*/
	@media screen and (min-width:420px) {

	/*ボタン*/
	#fv .btn {
	font-size: clamp(14px, 1.2vw, 18px);	/*文字サイズ*/
	flex-direction: row; 
	}
	
	#fv .btn a {
		margin: 0;
		padding: 0.6rem 3rem;	/*ボタン内の余白。上下、左右へ。1rem=1文字分です。*/
	}
	}/*追加指定ここまで*/

@media screen and (max-width: 768px) {

  #fv .btn {
    flex-direction: column;
    gap: 0.8rem;
  }

  #fv .btn a {
        width: 100%;
    padding: 0.9rem;
    margin: 0;
  }


	}/*追加指定ここまで*/


/*1つ目のボタン（電話）の追加設定*/
#fv .btn a:nth-of-type(1) {
    background-color: #fff;
    border: 3px solid #0246A7;
	color: #0246A7;	/*文字色。*/
}

/*2つ目のボタン（資料請求）への追加設定*/
#fv .btn a:nth-of-type(2) {
    background-color: #fb0509;
    border: 3px solid #fb0509;
    color: #fff;
}

/*ボタン内のアイコン*/
#fv .btn i {
    font-size: 1.2rem;   /* ← こちらに変更 */
    margin-right: 0.6rem;}

#fv .btn a i,
#fv .btn a svg {
    flex-shrink: 0;       /* ← アイコンが潰れない */
    margin-right: 0.5rem; /* 文字との余白 */
}

/*btn2
---------------------------------------------------------------------------*/
a.btn2-parts {
	display: inline-block;text-decoration: none;
	letter-spacing: 0.1em;	/*文字間隔を少しだけ広くとる*/
	border-radius: 16px;		/*角を丸くする指定*/
	padding: 0.3rem 2rem;	/*上下、左右へのボタン内の余白*/
	box-shadow: 1px 2px 3px rgba(0,0,0,0.2);	/*ボックスの影。右へ、下へ、ぼかし幅。0,0,0は黒の事で0.2は色が20%出た状態。*/
	transition: 0.3s;	/*hoverまでにかける時間。0.3秒。*/
	background: #FB0509;	/*背景色*/
	color: #fff;		/*文字色*/
}

/*アイコン*/
a.btn2-parts i {
	padding-left: 1em;	/*アイコンとテキストの間の余白*/
}

/*マウスオン時*/
a:hover.btn2-parts {
	transform: scale(1.03);		/*103%に拡大する*/
}

/*section
---------------------------------------------------------------------------*/
/*フェード設定*/
.section::before {
	opacity: 0; /* 初期状態では非表示 */
	transition: opacity 1s; /* 1秒かけてフェードイン/フェードアウト */
}
.section.active::before {
	opacity: 1; /* フェードイン状態 */
}
.section.inactive::before {
	opacity: 0; /* フェードアウト状態 */
}

/*section要素*/
section {
	padding: 0 5vw;	/*ボックス内の余白。上下、左右への順番。*/
}

/*section0ブロックの設定*/
#section0 {
    min-height: 75dvh;
    padding: 4vw 5vw;
    position: relative;   /* ← これはOK（将来保険） */
}
/*section1ブロックの設定*/
#section1 {
	min-height: calc(40dvh - 50px);	/*最低の高さ。100dvhは画面の高さ100%のこと。50pxは下のmarginの値。*/
	margin-bottom: 50px;	/*ボックスの下に空けるスペース*/
	padding: 20px 10px 20px 3vw;			/*ボックス内の余白*/

}

/*3つのsectionブロックの共通設定*/
#section2,#section3,#section4,#section5,#section6 ,#section8 ,#section9 {
	min-height: calc(50dvh - 50px);	/*最低の高さ。100dvhは画面の高さ100%のこと。50pxは下のmarginの値。*/
	margin-bottom: 50px;	/*ボックスの下に空けるスペース*/
	padding: 20px 10px 20px 3vw;			/*ボックス内の余白*/
}

#section7 {
	min-height: calc(50dvh - 50px);	/*最低の高さ。100dvhは画面の高さ100%のこと。50pxは下のmarginの値。*/
	margin: 20px 0px 50px 0;	/*ボックスの下に空けるスペース*/
	padding: 20px 0 20px 3vw;			/*ボックス内の余白*/
}

/* セクション内の中身を中央に寄せる（右の余白の偏り解消） */
#section2 > *, #section3 > *, #section4 > *, #section5 > *, #section6 > *, #section7 > *, #section8 > *, #section9 > *{
  margin-left: auto;
  margin-right: auto;
}
	/*画面幅600px以下の追加指定*/
@media screen and (max-width: 600px) {
  #section0 {
    min-height: 70dvh;
  }

#section2,#section3,#section4,#section5,#section6 #section7 #section8 #section9{
	margin: 20px 0 30px 0;	/*ボックスの下に空けるスペース*/
}

}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

	#section0,#section1,#section2,#section3,#section4,#section5,#section6,#section7 ,#section8 ,#section9 {
		border-radius: 3vw;	/*角丸の指定。左上、右上、右下、左下への順番。*/
	}

#section7 {
	min-height: calc(50dvh - 50px);	/*最低の高さ。100dvhは画面の高さ100%のこと。50pxは下のmarginの値。*/
	margin: 50px 10px 50px 0;	/*ボックスの下に空けるスペース*/
	padding: 20px 10px 20px 3vw;			/*ボックス内の余白*/
}

	}/*追加指定ここまで*/

/*box1
---------------------------------------------------------------------------*/
.box1 {
	background: rgba(255,255,255,0.4);	/*背景色。255,255,255は白の事で、0.4は色が40%出た状態。*/
	padding: 20px 30px;					/*上下、左右へのボックス内の余白*/
	border: 1px solid #fff;				/*枠線の幅、線種、色*/
	border-radius: 5px;					/*角を丸くする指定*/
}



/*「お知らせ」ブロック
---------------------------------------------------------------------------*/
/*お知らせブロック*/
#new {
  margin:0;
  padding: 5px 20px;
  margin-bottom: 30px;
  display: grid;
  grid-template-columns: 13em 1fr; /* ←日付+カテゴリが入る幅にする */
  column-gap: .6em;
  row-gap: .25em;
}

/*日付(dt)、記事(dd)共通設定*/
#new dt,
#new dd {
	padding: 1px 0;
  margin: 0;
}


/*日付(dt)設定*/
#new dt {
	display:flex;
  align-items:center;
  gap:.5em;
  min-width: 0;
}

/*記事(dd)設定*/
#new dd {
	min-width: 0;          /* 長文のときのはみ出し防止 */
  line-height: 1.5;   /* ← デフォルトより少し締める */
}

#new .list {
	color: #005fa0;	/*文字色*/
}


/* スマホ：縦積み */
@media (max-width:600px){
  #new{
    grid-template-columns: 1fr;
  }
  #new dt{
    justify-content: flex-start;
  }
}/*追加指定ここまで*/

.new dt span {
  display:inline-block;
  padding: 0 .6em;
  line-height: 1.8;
  border-radius: 3px;
  background: rgba(255,255,255,.8);
  color:#333;
  white-space: nowrap;
  font-size:0.75rem;      /* 少し小さく */
  flex: 0 0 auto;        /* 変に縮まない */
}

@media (max-width:600px){

  #new{
    display:block;
  }

  #new dt{
    width:100%;
    display:block;
  }

  #new dd{
    width:100%;
    margin-left:0;
  }

  #new dt span{
    display:inline-block;
    margin-left:0.5em;
  }
}

/*背景画像を置く為の設定*/
#section0::before,#section1::before,#section2::before,#section3::before,#section4::before,#section5::before,#section6::before,#section7::before ,#section8::before ,#section9::before {
	content: '';
	position: fixed;z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
/*section0の設定*/
#section0 {
	background-color: rgba(20,120,180,0.7);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #fff;	/*文字色*/
}
#section0::before {
	background: url('../images/section1.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}


/*section0の設定*/
#section0 {
	background-color: transparent !important;
	color: #fff;	/*文字色*/
	text-align: center;	/*テキストをセンタリング*/
}
/*section1の設定*/
#section1 {
	background-color: rgba(20,120,180,0.7);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #fff;	/*文字色*/
}
#section1::before {
	background: url('../images/section1.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}

/*section2の設定*/
#section2 {
	background-color: rgba(255,255,255,0.8);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #383838;	/*文字色*/
}


/*section3の設定*/
#section3 {
	background: rgba(2,24,123,0.8);	/*背景色。0,0,0は黒のことで0.5は色が50%出た状態。*/
	color: #fff;	/*文字色*/
}


/*section4の設定*/
#section4 {
	color: #02187b;	/*文字色*/
}
#section4::before {
	background: #a9b0b0 ;	/*section4だけは背景画像ではなく、単に背景色だけ指定しました。*/
}

/*section5の求人設定*/
#section5 {
	background-color: rgba(235,245,255,1);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #005fa0;	/*文字色*/
}

/*section6の設定*/
#section6 {
	background-color: rgba(255,255,255,0.8);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #02187B;	/*文字色*/
}

/*section7の業務詳細設定*/
#section7 {
	background-color: rgba(255,255,255,0.8);	/*背景色。３つ目までの数字はrgbでの色指定。最後の小数点は透明度。*/
	color: #005fa0;	/*文字色*/
}

/*section8の設定*/
#section8 {
	color:#2C2AB6;	/*文字色*/
}
#section8::before {
	background: url('../images/section8.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}

/*section9の設定*/
#section9 {
	color:#2C2AB6;	/*文字色*/
}
#section9::before {
	background: url('../images/section9.jpg') no-repeat center center / cover;	/*背景画像の読み込み*/
}


/*背景色を入れない場合（画像だけを表示したい場合）*/
.no-bgcolor {background-color: transparent !important;}


/*フッター設定
---------------------------------------------------------------------------*/
footer small {font-size: 100%;}
footer {
	font-size: 0.8rem;
	text-align: center;		/*内容をセンタリング*/
	padding-bottom: 1rem;
}

/*リンクテキスト*/
footer a {color: inherit;text-decoration: none;}


/*テーブル
---------------------------------------------------------------------------*/
/*テーブル１行目に入った見出し部分（※caption）*/
.ta1-parts caption {
	font-weight: bold;		/*太字に*/
	padding: 0.2rem 1rem;	/*ボックス内の余白*/
	margin-bottom: 15px;	/*下に空けるスペース*/
	border-radius: 5px;		/*角を丸くする指定*/
	background: #555;		/*背景色*/
	color: #fff;			/*文字色*/
}

/*テーブルブロック設定*/
.ta1-parts {
	table-layout: fixed;
	border-top: 1px solid #999;	/*テーブルの一番上の線。幅、線種、色。*/
	width: 100%;
	margin-bottom: 2rem;		/*テーブルの下に空けるスペース。２文字分。*/
	background: #fff;		/*テーブル全体の背景色*/
	color: #555;			/*テーブル全体の文字色*/
}

/*tr（１行分）タグ設定*/
.ta1-parts tr {
	border-bottom: 1px solid #999;	/*テーブルの下線。幅、線種、色。*/
}

/*th（左側）、td（右側）の共通設定*/
.ta1-parts th, .ta1-parts td {
	padding: 1rem;		/*ボックス内の余白*/
	word-break: break-all;	/*英語などのテキストを改行で自動的に折り返す設定。これがないと、テーブルを突き抜けて表示される場合があります。*/
}

/*th（左側）のみの設定*/
.ta1-parts th {
	width: 20%;			/*幅*/
	text-align: left;	/*左よせにする*/
	background: #eee;	/*背景色*/
}

/* レスポンシブ対応 */
@media screen and (max-width: 768px) {
  .ta1-parts th, .ta1-parts td  {
    display: block;
  }
.ta1-parts th {
	width: auto;			/*幅*/
}
}

/*Google Map用
---------------------------------------------------------------------------*/
.iframe-box1-parts {
	width: 100%;
	height: 0;
	padding-top: 56.25% !important;	/*マップの高さを増やしたい場合は、ここの数値を上げてみて下さい。*/
	position: relative;
	overflow: hidden;
}
.iframe-box1-parts iframe {
	position: absolute;
	left: 0px;
	top: 0px;
	width: 100%;
	height: 100%;
}
/*フッター
---------------------------------------------------------------------------*/
#access-parts * {margin: 0;padding: 0;}
#access-parts ul {list-style: none;}

/*ブロック全体*/
#access-parts {

	color: #555;		/*文字色*/
	padding: var(--content-space);	/*フッター内の余白。css冒頭のcontent-spaceを読み込みます。*/
	line-height: 2.0;		/*行間*/
}

/*ロゴやSNSアイコンが入ったブロック*/
#access-parts div.access-1-parts {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 1rem;	/*このブロック内のボックス同士の間に空ける余白。１文字分。*/
}

/*メニューブロック*/
#access-parts div.access-2-parts {
    flex: 1;
}

	/*画面700px以上の追加指定*/
	@media screen and (min-width:700px) {
	#access-parts {
		display: flex;
		gap: 2rem;		/*ロゴのブロックとメニューのブロックとの間の余白。2文字分。*/
	}

	/*ロゴやSNSアイコンが入ったブロック*/
	#access-parts div.access-1-parts {
		text-align: left;
		width: 40%;	/*幅。40%。*/
	}

	/*メニューブロック*/
	#access-parts div.access-2-parts {
		/*margin-bottom: 0;	下の余白をなくす*/
	}

	}/*追加指定ここまで*/


/*Copyright部分*/
#access-parts small {
	display: block;
	text-align: right;
	margin-top: 2rem;
}
/*list-grid7
---------------------------------------------------------------------------*/
.list-grid7-parts .list-parts * {margin: 0;padding: 0;}

/*ブロック全体を囲むブロック*/
.list-grid7-parts {
	padding-top: 20px;	/*画像が少し上にずれるので適当に余白を確保*/
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

/* グリッド内のはみ出し対策（これが効くことが多い） */
.list-grid7-parts,
.list-grid7-parts .list-parts{
  min-width: 0;
}

/*ボックス１個あたり*/
.list-grid7-parts .list-parts {
    display: grid;
	position: relative;
	border-radius: 5px;		/*角を少しだけ丸く*/
	background: #fafafa;	/*背景色*/
	color: #555;			/*文字色*/
	border: 1px solid #ccc;	/*枠線の幅、線種、色*/
	padding: 2rem;			/*ボックス内の余白。２文字分。*/
	margin-bottom: 2rem;	/*ボックスの下に空けるスペース。2文字分。*/
  width: 100%;
  justify-items: stretch;   /* ← 中身を伸ばす */
}

.list-grid7-parts .list-parts > *{
  width: 100%;
}


/*ボックス内のh4見出し*/
.list-grid7-parts .list-parts h4 {
	text-align: center;		/*テキストをセンタリング*/
    font-weight: 700;
	margin-bottom: 0.5rem;	/*下に0.5文字分の余白を空ける*/
}

/*ボックス内のp要素*/
.list-grid7-parts .list-parts p {
	font-size: 0.85rem;	/*文字サイズを85%に*/

}

.list-grid7-parts a,
.list-grid7-parts .btn-parts{
  width: 100% !important;
  max-width: none !important;
  display: block !important;
}

/*ボックス内のfigure画像*/
.list-grid7-parts .list-parts figure {
	margin: 0 auto;
	width: 100px;			/*画像サイズ*/
	margin-top: -40px;		/*本来の場所より上にずらす*/
	margin-bottom: 1rem;	/*画像の下に空けるスペース*/
	border-radius: 50%;		/*円形にする*/
	overflow: hidden;
	background: #0246A7;	/*背景色。画像に透過部分がある場合に見えます。*/
}

/*ボックス内のfigure画像（※アスペクト比を1:1にした場合）*/
.list-grid7-parts.square .list-parts figure {
	aspect-ratio: 1 / 1;	/*幅に対して高さを同じにする*/
}
.list-grid7-parts.square .list-parts figure img {
	width: 100%;
	height: 100%;
	object-fit: cover;			/*コンテナいっぱいにカバー、余分な部分はカット*/
	object-position: center;	/*中央部分を表示*/
}

.list-grid7-parts img{ max-width:100%; height:auto; }

/* グリッド内のカードは列幅いっぱいに広げる */
.list-grid7-parts .list-parts{
  width: 100%;
  max-width: none;
  transition: 0.2s;
  justify-self: stretch;
}
.list-grid7-parts{
  justify-content: stretch;
  justify-items: stretch;
}

.list-grid7-parts .list-parts:hover{
  transform: translateY(-3px);
}

/* 親（p.btn-parts）で中央寄せ */
.list-grid7-parts .btn-parts{
  text-align: center;
}

/*ボタン
---------------------------------------------------------------------------*/
.list-grid7-parts .btn-parts a {
	display: inline-flex !important;   /* block対策 */
	text-decoration: none;
	font-size: clamp(0.95rem, 1.1vw, 1.05rem);/* 文字も少しだけ可変に */
	text-align: center;		/*テキストをセンタリング*/
	background: #0246A7;		/*背景色*/
	color: #fff;			/*文字色*/
	padding: 10px 24px;
    margin: 0 auto;                   /* 念のため */
	margin-top: 0.5rem;		/*ボタンの上に空けるスペース*/
  width: auto !important;            /* 100%対策 */
  text-align: center;
  box-sizing: border-box;
  white-space: nowrap;      /* 「詳しくみる」を折り返さない */
  align-items: center;
  justify-content: center;
  justify-self: center !important; /* gridの伸び対策 */
  border-radius: 10px;
  box-shadow: 0px 5px 15px -5px rgba(0,0,0,0.8);
}


.list-grid7-parts .btn-parts a::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  right: 10px;
  width: 9px;
  height: 9px;
  margin: auto;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: rotate(45deg);
  box-sizing: border-box;
}


@media (max-width: 980px){
  .list-grid7-parts .list-parts{
    padding: 1.5rem;
  }
}
@media (max-width: 600px){
  .list-grid7-parts .list-parts{
    padding: 1.2rem;
  }
}

.list-grid7-parts .btn-parts a{ position: relative; }
.list-grid7-parts .btn-parts a::after{
  /* ... */
}

/* これだけでOK：入るだけ並ぶ（狭ければ3列/2列に自動で落ちる） */
.list-grid7-parts{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem;
}

.list-grid7-parts .list-parts{
  padding: 1.5rem; /* 2rem → 1.5rem */
}

@media screen and (min-width: 1100px){
  .list-grid7-parts{
    grid-template-columns: repeat(4, 1fr);
  }
}


/* グリッドの「直下の子」を必ず列いっぱいに広げる */
.list-grid7-parts > *{
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
}

/* その中の白カードも列いっぱい */
.list-grid7-parts .list-parts{
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box;
}

/* ついでに親グリッドの中央寄せを潰す（もし入ってたら） */
.list-grid7-parts{
  justify-content: stretch;
  justify-items: stretch;
}



/* cta_03 求人　業務詳細*/
.cta03_tb.readmore {
    max-width: 100%;
    margin: 0 auto;
  flex: 1 1 auto;
  min-width: 0;  /* flexで折り返し計算が暴れるのを防ぐ */
}
.cta03_tb {
    margin-bottom: 1.8em;
    display: table;
    min-height: 47px;
    width: 100%;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

/* CTA幅だけ整える */
.cta03_tb{
  max-width: 980px;
  margin: 0 auto 1.8em;
}


/* 赤ボタン折り返し防止だけ入れる */
.cta03_tb.readmore a{
  white-space: nowrap;
}

@media (max-width: 900px){
  .cta03_tb,
  .cta03_tb.readmore{
    display: block;
    text-align: center;
  }

  .cta03_tb.readmore > p,
  .cta03_tb.readmore > .list-3,
  .cta03_tb.readmore .cta03img{
    width: 90%;
text-align: left;
  }

  .cta03_tb.readmore .list-3{
    margin: 0 auto 20px;
    max-width: 600px;
  }
}

/* 中途半端な幅帯での横ズレ止め（CTAの赤ボタンを確実に中央へ） */
@media screen and (max-width: 900px){
  .cta03_tb.readmore{
    text-align: center;          /* 親も念押し */
  }

  .cta03_tb.readmore .cta03img{
    text-align: center;          /* ここも念押し */
  }

  .cta03_tb.readmore a{
    display: block;              /* ← inline-block より安定 */
    width: fit-content;          /* 中身の幅にする */
    max-width: 100%;
    margin: 10px auto 0;         /* ← これで確実に中央 */
    white-space: nowrap;         /* 折り返し防止 */
  }

  .cta03_tb.readmore .cta03img a{
    display:block;
    width: fit-content;
    margin: 10px auto 0;
    white-space: nowrap;
  }

 .cta03_tb.readmore p {
    display: block;
    text-align: left;
  }

}



.cta03_tb.readmore .cta03img {
  flex: 0 0 52%;   /* ← ここで左の幅を固定しやすい */
  width: auto;     /* 既存の 40%/50% を無効化 */
    text-align: center;
    font-size: 17px;
}


.cta03img {
    display: table-cell;
    vertical-align: middle;
}
.cta03_tb.readmore img {
    width: 100%;
    padding: 3%;
}

.cta03_tb.readmore .cta03img > *{
  margin-left: auto;
  margin-right: auto;
}

.cta03_tb.readmore .cta03img {
	width:  30%;
    text-align: center !important;
    font-size: 16px;
}
.cta03img {
    display: table-cell;
    vertical-align: middle;
}
.cta03_tb.readmore .bl {
    display: inline-block;
    position: relative;
    padding: 15px 20px;
    color: #005fa0;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}
.cta03_tb.readmore .bl:before {
    left: 0;
    -webkit-transform: rotate(50deg);
    transform: rotate(50deg);
}

.cta03_tb.readmore .bl:after {
    right: 0;
    -webkit-transform: rotate(-50deg);
    transform: rotate(-50deg);
}
.cta03_tb.readmore .bl:before, .cta03_tb.readmore .bl:after {
    display: inline-block;
    position: absolute;
    top: 50%;
    width: 18px;
    height: 2px;
    border-radius: 3px;
    background-color: #005fa0;
    content: "";
    margin: auto -5px;
}

.cta03_tb.readmore p {
	margin: 0 20px 0 0;
	line-height: 1.6;
}

.cta03_tb.readmore .mottobtn .readmorebtn{
    padding-bottom: 2em;
}
.cta03_tb.readmore a {
    display: inline-block;
    font-weight: 700;
    background-color: #fb0509;
    border: 3px solid #fb0509;
    color: #fff;
    padding: 0.5em 1em 2em;
    border-radius: 5px;
    text-decoration: none;
    transition: .2s;
    white-space: nowrap; 
}
.cta03_tb.readmore a:hover {
    border: none;
}


@media screen and (max-width: 600px){
.cta03_tb.readmore .cta03img, .cta03_tb.readmore {
    width: 90%;
    display: block;
}
.cta03_tb.readmore .mottobtn .readmorebtn{
    padding-bottom: 1.5em;
}
}

@media screen and (max-width: 600px){

    .cta03_tb.readmore {
        display: block; /* table解除 */
        text-align: center;
    }

    .cta03_tb.readmore p{
        display: block; /* table解除 */
        text-align: left;
    }

    .cta03_tb.readmore .cta03img {
        display: block;
        width: 100%;
  text-align: center !important;
    }

    .cta03_tb.readmore a {
        display: inline-block;
        margin: 10px auto 0;
    }
}



@media (max-width: 1100px){
  .cta03_tb.readmore .cta03img{
    flex-basis: 58%;  /* 左を少し広げたいなら↑、狭めたいなら↓ */
    /* flex-basis: 48%; */
  }

  .cta03_tb.readmore a{
    padding: 0.45em 1.2em; /* ボタンを少しスリムに */
  }

  .cta03_tb.readmore .bl{
    font-size: clamp(12px, 1.1vw, 15px); /* 右の見出しが折れすぎるの防止 */
  }
}

/* スマホ横〜タブレット帯：CTAを1カラムにして余白をなくす */
@media screen and (max-width: 780px){
  .cta03_tb{
    display: block;
  }
  .cta03img{
    display: block;
    width: 100%;
  }
  .cta03_tb.readmore .cta03img{
    width: 100%; /* ← 40%指定を打ち消す */
  text-align: center !important;
  }
  .cta03_tb.readmore a{
    margin: 10px auto 0;
  }
}



/*CTA 赤ボタンを強制センター（最後に置く） */
.cta03_tb.readmore .cta03img{
  text-align: center !important;
}

.cta03_tb.readmore .cta03img a{
  display: block !important;     /* ← これが肝 */
  width: fit-content !important;
  max-width: 100%;
  margin: 10px auto !important; /* ← 確実に中央 */
  float: none !important;
  white-space: nowrap;
}

/* 「お気軽にお問い合わせください」を確実に中央へ */
.cta03_tb.readmore .cta03img{
  text-align: center !important;
}

.cta03_tb.readmore .bl{
  display: inline-block; /* 念押し */
}


/* 赤いCTAボタンを画面サイズで可変に（最後に置く） */
.cta03_tb.readmore .cta03img a{
  display: inline-flex;            /* 中身のセンターが安定 */
  align-items: center;
  justify-content: center;

  font-size: clamp(14px, 1.3vw, 18px);
  padding: clamp(10px, 1.0vw, 14px) clamp(14px, 2.0vw, 26px);

  white-space: nowrap;             /* 折り返し防止 */
  max-width: 100%;
}

/* 900px以下は中央寄せを強制（横ズレ防止） */
@media (max-width: 900px){
  .cta03_tb.readmore .cta03img a{
    margin: 10px auto 0;
    width: fit-content;
  }
}
@media (max-width: 900px) and (orientation: landscape){
  .cta03_tb.readmore .cta03img a{
    font-size: 14px;
    padding: 9px 14px;
  }
}

/*チェック付きリスト要素*/
.list-3 {
    list-style-type: none;
    padding: 1em;
    border: 2px solid #2589d0;
	margin: 0 20px 0 0;
}

.list-3 li {
    display: flex;
    align-items: center;
    gap: 0 5px;
    padding: .3em;
}

.list-3 li::before {
    display: inline-block;
    width: 10px;
    height: 5px;
    border-bottom: 2px solid #2589d0;
    border-left: 2px solid #2589d0;
    transform: rotate(-45deg) translateY(-1.5px);
    content: '';
}

/* CTA_05 */

.cta05-cvset {
    padding: 20px 0 0;
}

.cta05-cvset .cta05-inner {
    background-color: rgba(255,255,255,1);
    border-radius: 10px;					/*角を丸くする指定*/
    padding: 10px 0 20px;
    position: relative;
    width: 100%;
    height: 100%;
    max-width: 1280px;
    margin-left: auto;
    margin-right: auto;
}

.cta05-cvset .cta05-inner ul {
    list-style:none;
    margin-top: 20px;
    padding-inline-start:0;
    border: none;
    padding: 0;
}

.cta05-cvset-title {
    position: relative;
    font-size: 1.8em;
    line-height: 0.6em;
    font-weight: 800;
    font-style: normal;
    letter-spacing: .1em;
    position: absolute;
    top: -10px;
    left: 0;
    text-align: center;
    width: 100%;
}
.cta05-cvset-title .deco {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    font-size: 20px;
    color: #fff;
    white-space: nowrap;
    padding-bottom: 8px;
    margin-bottom: 16px;
}

.cta05-cvset-title .deco:before, .cta05-cvset-title .deco:after {
    display: inline-block;
    position: absolute;
    top: 20%;
    width: 28px;
    height: 2px;
    border-radius: 3px;
    background-color: #fff;
    content: "";
    margin: auto -35px;
}
.cta05-cvset-title .deco:before {
    left: 0;
    -webkit-transform: rotate(50deg);
    transform: rotate(50deg);
}

.cta05-cvset-title .deco:after {
    right: 0;
    -webkit-transform: rotate(-50deg);
    transform: rotate(-50deg);
}

.cta05-cvset-list {
    display: flex;
    width: 100%;
    max-width: 780px;
    justify-content: space-between;
    margin: 0 auto;
}
.cta05-cvset-list li {
    max-width: 360px;
    width: 100%;
    margin: 0 5px;
}
.cta05-cvset-list img {
    width:100%;
    text-align:center;
}
.cta05-button.dwl, .cta05-button.etm {
    background-color: #fff;
    border: 3px solid #fb0509;
    color: #fb0509;
}
.cta05-button.dwl, .cta05-button.dmo, .cta05-button.etm {
    height: 96px;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.4em;
    text-align: center;
    flex-direction: column;
    white-space: nowrap;
    text-decoration: none;
}
.cta05-button.dmo {
    background-color: #fb0509;
    border: 3px solid #fb0509;
    color: #fff;
}
.cta05-button {
    position: relative;
    display: flex;
    width: 100%;
    height: 72px;
    text-align: center;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border-radius: 12px;
	margin-bottom: 10px;	/*ボタン同士の隙間*/
    box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 6px 10px -2px rgba(0,0,0,0.14), 0 1px 5px 0 rgba(0,0,0,0.2);
    transition: 0.2s ease-in-out;
}
.cta05-button.free::after {

    position: absolute;
    display: block;
    top: -17px;
    right: 8px;
    width: 80px;
    height: 30px;
    font-size: 16px;
    font-weight: bold;
    line-height: 32px;
    text-align: center;
    background-color: #FF0000;
    color: #fff;
    border-radius: 16px;
}
.cta05-button.dwl:hover {
    background-color: #fff;
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.15), 0 0 5px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}


.cta05-button.dmo:hover, .cta05-button.etm:hover {
    background-color: #fb0509;
    box-shadow: 0 15px 30px -5px rgba(0, 0, 0, 0.15), 0 0 5px rgba(0, 0, 0, 0.1);
    transform: translateY(-4px);
}
.cta05-button.dwl small, .cta05-button.dmo small, .cta05-button.etm small {
    display: block;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2em;
    letter-spacing: 0;
    margin-bottom: 4px;
    white-space: nowrap;
}

@media screen and (max-width: 768px){
.cta05-cvset .cta05-inner {
    padding: 40px 20px 32px;
}
.cta05-cvset-list {
    flex-direction: column;
    align-items: center;
    padding-bottom: 16px;
}
.cta05-button.dwl small, .cta05-button.dmo small, .cta05-button.etm small {
    font-size: 12px;
}
}

/*インラインフレーム
---------------------------------------------------------------------------*/
.inlineframe	{
	background-color:#FFFFFF;
	height:200px;
	border: 1px solid #000;
	padding: 1rem;
	overflow:auto;
	overflow-y:scroll;
	overflow-x:hidden;
	font-size: 0.8rem;	/*文字サイズ*/
}

@media screen and (min-width: 769px) {
  .inlineframe dt {
    padding-left: 0.6em;
    font-weight: bold;
    line-height: 1.2em;
    border-left: 4px solid #0246A7;
	font-size: 0.8rem;	/*文字サイズ*/
  }

  .inlineframe dd {
    padding: 0.5em 0 1.8em 0;
	font-size: 0.8rem;	/*文字サイズ*/
  }
}


/*PAGE TOP（↑）設定
---------------------------------------------------------------------------*/
.pagetop-show {display: block;}

/*ボタンの設定*/
.pagetop a {
	display: block;text-decoration: none;text-align: center;z-index: 99;
	animation: opa1 0.2s 0.2s both;	/*一瞬ボタンが出ちゃうのを隠す為の応急措置*/
	position: fixed;	/*スクロールに追従しない(固定で表示)為の設定*/
	right: 20px;		/*右からの配置場所指定*/
	bottom: 20px;		/*下からの配置場所指定*/
	color: #fff;		/*文字色*/
	font-size: 1.5rem;	/*文字サイズ*/
	background: rgba(0,0,0,0.2);	/*背景色。0,0,0は黒の事で0.2は色が20%出た状態。*/
	width: 60px;		/*幅*/
	line-height: 60px;	/*高さ*/
	border-radius: 50%;	/*円形にする*/
}

/*その他
---------------------------------------------------------------------------*/
.clearfix::after {content: "";display: block;clear: both;}
.l {text-align: left !important;}
.c {text-align: center !important;}
.r {text-align: right !important;}
.ws {width: 95%;display: block;}
.wl {width: 95%;display: block;}
.red {color: #fb0509;font-weight: bold;text-align: center !important;}/*文字色*/
.mb0 {margin-bottom: 0px !important;}
.mb30 {margin-bottom: 30px !important;}
.look {display: inline-block;padding: 0px 10px;background: #000;border: 1px solid #fff;border-radius: 3px;margin: 5px 0; word-break: break-all;}
.small {font-size: 0.75em;}
.large {font-size: 2em; letter-spacing: 0.1em;}
.color-check, .color-check a {color: #ffcf0d;}
.pc {display: none;}
.dn {display: none !important;}
.block {display: block !important;}
.list {color: #005fa0;	/*文字色*/}

	/*画面幅900px以上の追加指定*/
	@media screen and (min-width:900px) {

		.ws {width: 48%;display: inline;}
		.sh {display: none;}
		.pc {display: block;}

	}/*画面幅900px以上の追加指定ここまで*/
