@charset "UTF-8";
/* CSS Document */
/***********************
	基本ベース
***********************/
a{
	text-decoration: none !important;
}
.display-pc{
	display: block;
}
.display-sm{
	display: none;
}
.br-sm{
	display: none;
}
.text-white{
	color: #fff !important;
}
.text-blue{
	color: #0051B2 !important;
}
.bg-blue{
	background-color: #0051B2 !important;
}
.text-dkblue{
	color: #01326D !important;
}
.bg-dkblue{
	background-color: #01326D !important;
}

/*** 見出し ***/
.home .catch{
	display: block;
	text-align: center;
	color: #01326D !important;
	font-size: 72px !important;
	margin: 0 !important;
	font-family: "Manrope", sans-serif !important;
	font-optical-sizing: auto;
	font-weight: 800;
	font-style: normal;
}
.home .desc{
	display: block;
	color: #000;
	text-align: center;
	font-size: 18px !important;
	font-weight: 600 !important;
	margin: -16px 0 0 0 !important;
}
/* Googleフォント */
.manrope{
  font-family: "Manrope", sans-serif;
  font-optical-sizing: auto;
  font-weight: 800;
  font-style: normal;
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	.align-left-sm{
		text-align: left !important;
	}
	.display-pc{
		display: none;
	}
	.display-sm{
		display: block;
	}
	.home .catch{
		font-size: 48px !important;
	}
	#cb_content_1{
		padding-bottom: 80px !important;
	}
	.br-sm{
		display: block;
	}
}
/*** 本文 ***/
.lead_wrap{
	max-width: 800px;
	margin: auto;
}
.lead{
	text-align: left;
}
/*** ボタン ***/
a.design_button {
    border-radius: 0 !important;
    min-width: 280px;
    height: 70px;
    line-height: 1.5;
    padding: 0 1.5em;
    text-align: center;
    position: relative;
    overflow: hidden;
    font-size: 16px;
    z-index: 1;
    color: #fff !important;
    border: 1px solid #0051B2 !important;
    background: #0051B2 !important;
    text-decoration: none;
	transition: transform 0.25s ease-out, box-shadow 0.25s ease-out !important;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    font-weight: 600;
    text-decoration: none !important;
}
.link_button a.design_button {
	transition: transform 0.25s ease-out, box-shadow 0.25s ease-out, border-radius 0.25s ease !important;
}
/*** ボタン hover ***/
.btn a{
	transition: transform 0.25s ease-out, box-shadow 0.25s ease-out;
}
a.design_button:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2) !important;
}
.link_button a.design_button:hover{
	border-radius: 1rem !important;
}
.cb_linkbox-inner a.design_button:hover {
	color: #0051B2 !important;
}
/*** ボタン hover btn ***/
.btn a:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2) !important;
}
/***********************
	TOP　ヘッダー
***********************/
/*** ヘッダーメニュー ***/
#header{
	position: fixed!important;
	top: 0;
	left: 0;
}
#header_slider_container{
	margin: 60px 0 0 0  !important;
}
#global_menu > ul > li.current-menu-parent > a, #global_menu ul li.current-menu-item > a, #global_menu > ul > li.active > a{
	color: #0051B2 !important;
}
#global_menu{
	margin-right: 0 !important;
}
#global_menu ul li a{
	font-weight: bold !important;
}
#global_menu > ul > li:last-child a{
	color: #fff !important;
	position: relative;
	z-index: 1;
}
#global_menu > ul > li:last-child{
	position: relative;
	overflow: hidden;
	display: inline-block;
	padding-left: 48px;
	padding-right: 48px;
}
body.home:not(.header_sticky_active) #global_menu > ul > li > ul {
    top: auto;
    bottom: -330px !important;
    transform: translate3d(0, -112px, 0);
}
/* 通常時グラデ */
#global_menu > ul > li:last-child::before{
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(180deg, rgba(0, 81, 178, 1), rgba(1, 50, 109, 1));
	padding-left: 32px;
	padding-right: 32px;
	transition: opacity 0.5s ease;
}
/* hover時（逆向きグラデ） */
#global_menu > ul > li:last-child::after{
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(180deg,  rgba(1, 50, 109, 1),rgba(0, 81, 178, 1));
	opacity: 0;
	transition: opacity 0.5s ease;
	z-index: 0;
}
/* hoverで切替 */
#global_menu > ul > li:last-child:hover::before{
	opacity: 0;
}
#global_menu > ul > li:last-child:hover::after{
	opacity: 1;
}
/**** マウスホバーで 下線を出す ***/
/* メニューリンク */
#global_menu > ul > li.menu-item > a {
  position: relative;
  display: inline-block;
  text-decoration: none;
}
/* 下線（初期は非表示） */
#global_menu > ul > li.menu-item > a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;           /* 文字との距離 */
  width: 100%;
  height: 4px;            /* 線の太さ */
  background: #0051B2;
  transform: scaleX(0);
  transform-origin: left; /* 左からにゅいん */
  transition: transform 0.25s ease;
}
/* ホバー時 */
#global_menu > ul > li.menu-item > a:hover::after,
#global_menu > ul > li.menu-item > a:focus-visible::after {
	transform: scaleX(1);
	transform-origin: center;
}

/* PC（1301px〜） */
@media screen and (min-width: 1301px) {
	#header_slider_container{
		margin-top: 120px !important;
	}
}
#header_slider_container.height_type2 {
	width: 100% !important;
	border-radius: 0 !important;
}
/*** hero タイトル ***/
.header_slider_content{
	bottom: 80px;
	padding: 0 60px !important;
}
.header_slider_content h2.catch {
	font-size: 100px !important;
	text-align: left ;
    line-height: 1.1 !important;
    position: relative;
    font-weight: bold !important;
	color: #fff !important;
	margin-bottom: 40px !important;
}
/* ミニPC（〜1100px） */
@media screen and (max-width: 1100px) {
	.header_slider_content h2.catch {
		font-size: 88px !important;
	}
}
.header_slider_content .catch + .desc {
    text-align: left;
	font-size: 28px !important;
    line-height: 1.7 !important;
	color: #fff !important;
}
/* タブレット（〜800px） */
@media screen and (max-width: 800px) {
	/*** hero タイトル ***/
	.header_slider_content{
		bottom: 60px !important;
	}
	.header_slider_content .catch + .desc {
		font-size: 16px !important;
	}
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	.header_slider_content h2.catch {
		font-size: 60px !important;
	}
	.header_slider_content{
		bottom: 24px;
		padding: 0 16px !important;
	}
}
/***********************
ドロワーメニュー
***********************/
#drawer_menu,
#mobile_menu a{
    background: #01326D !important;
}
#mobile_menu a:hover{
	background: #0051B2 !important;
}
/***********************
ABOUT　私たちについて
***********************/
#cb_content_img,
#cb_content_2{
	padding: 0 !important;
}
#cb_content_1{
	position: relative;
	overflow: visible; /* ←これが重要 */
}
#cb_content_1::before{
	content: "";
	inset: -200px !important; /* 上下左右に100pxはみ出す */
	position: absolute;
	inset: 0;
	background-image: url("../img/logo_symbol.png");
	background-repeat: no-repeat;
	background-position: left bottom;
	background-size: 700px auto;
	transform: translateY(20px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
#cb_content_about{
	max-width: 960px;
	margin: auto;
}
.cb_content_imgbox-wrap {
	display: flex;
}
#imgbox_left{
	background-image: url("../img/banner/top_b_01.jpg");
	background-position: center center;
	background-size: cover;
}
#imgbox_right{
	background-image: url("../img/banner/top_b_02.jpg");
	background-position: center center;
	background-size: cover;
}
.cb_content_imgbox {
	height: 500px;
	width: 50%;
	position: relative;
	overflow: hidden; /* スライド演出に必須 */
}
/* 暗幕（常時） */
.cb_content_imgbox::after{
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.4); /* 暗さ調整 */
	pointer-events: none;
}
/* ブルー背景（hover用） */
.cb_content_imgbox::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 81, 178, 0.5); /* ブルー */
  pointer-events: none;
  z-index: 2;

  /* 初期状態：左に隠す */
  transform: translateY(100%);
  transition: transform 0.4s ease;
}
/* hover時：横から覆う */
.cb_content_imgbox:hover::before {
  transform: translateY(0);
}
.cb_content_imgbox a{
	display: flex;
	justify-content: flex-start;; /* 横方向 */
	align-items: flex-end;     /* 縦方向 */
	margin: 0;
	width: 100%;
	height: 100%;
	text-decoration: none !important;
	z-index: 3;
	position: relative;
}
.cb_content_imgbox-inner{
	display: block;
	margin-left: 20px;
}
:is(.post_content, .post_content .tcdce-body) p.imgbox_lead{
	font-size: 28px !important;
	line-height: 1.4 !important;
	color: #fff;
	font-weight: 600;
	text-align: left;
	margin: 0 !important; 
}
h2.imgbox_catch{
	font-size: 18px !important;
	color: #fff;
	text-align: left !important;
	margin: 16px 0 0 0 !important;
}
/* タブレット（〜800px） */
@media screen and (max-width: 800px) {
	#cb_content_1{
		padding-bottom: 100px !important;
	}
	.cb_content_imgbox{
		height: 400px;
	}
	.imgbox_lead{
		font-size: 24px !important;
	}
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	.cb_content_imgbox-wrap{
		display: block;
	}
	.cb_content_imgbox {
		width: 100%;
		height: 320px;
	}
	#cb_content_1::before{
		inset: -200px !important; /* 上下左右に100pxはみ出す */
		background-size: 500px auto;
	}
}
/***********************
	NEWS
***********************/
#cb_content_3{
	padding-bottom: 250px !important;
	margin-bottom: -40px;
}
.cb_news_list{
	background-color: #F5FEFF;
	padding-top: 100px !important;
	padding-bottom: 200px !important;
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	#cb_content_3{
		padding-top: 80px !important;
		padding-bottom: 160px !important;
		margin-bottom: -40px;
	}
}
/***********************
	リンクボックス
***********************/
#cb_content_4,
#cb_content_6{
	padding-left: 0 !important;
	padding-right: 0 !important;
}
#cb_content_6{
	padding-bottom: 0 !important;
}
.cb_linkbox_area{
	width: 100%;
}
.cb_linkbox-wrap{
	display: flex
}
.cb_linkbox-wrap--reverse{
  flex-direction: row-reverse;
}
.cb_linkbox{
	display: flex;
	justify-content: center; /* 横方向 */
	align-items: center;     /* 縦方向 */
	position: relative;
	width: 50%;
	height: 500px;
	background-image: linear-gradient(180deg, rgba(0, 81, 178, 1), rgba(1, 50, 109, 1));
	padding: 48px;
}
.cb_linkbox-inner{
	max-width: 400px;
}
.linkbox_catch{
	color: #fff ;
	font-size: 24px !important;
	font-weight: bold !important;
	line-height: 1.4 !important;
}
.linkbox_dec{
	color: #fff;
	font-size: 16px !important;
	line-height: 1.8 !important;
}
.cb_linkbox .link_button{
	margin-top: 20px !important;
	text-align: left !important;
}
.cb_linkbox a.design_button {
	background: #fff !important;
	color: #0051B2 !important;
	font-size: 16px !important;
	border-radius: 72px !important;
}
#linkbox_copy_recruit,
#linkbox_copy_contact{
	position: relative;
}
#linkbox_copy_contact::before{
	content: "";
	width: 100%;
	height: 150px;
	position: absolute;
	left: 0;
	top: -145px;
	background-image: url("../img/CONTACT.svg");
	background-repeat: no-repeat;
	background-position: bottom;
}
#linkbox_copy_recruit::before{
	content: "";
	width: 100%;
	height: 150px;
	position: absolute;
	left: 0;
	top: -145px;
	background-image: url("../img/RECRUIT.svg");
	background-repeat: no-repeat;
	background-position: bottom;
}
#linkbox_img_recruit{
	background-image: url("../img/top/top_image_recruit.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
}
#linkbox_img_contact{
	background-image: url("../img/top/top_image_contact.jpg");
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
}
/* タブレット（〜800px） */
@media screen and (max-width: 800px) {
	.linkbox_dec{
		font-size: 15px !important;
	}
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	#cb_content_6{
		padding-bottom: 0 !important;
		margin-bottom: -40px !important;
	}
	.cb_linkbox-wrap{
		display: block;
	}
	.cb_linkbox{
		width: 100%;
		padding: 20px;
		height: 400px;
	}
	.cb_linkbox-inner{
		width: 100%;
	}
	h3.linkbox_catch{
		font-weight: bold !important;
		line-height: 1.4 !important;
	}
}
/***********************
	FACILITY　事業所紹介
***********************/
#cb_content_5{
	position: relative;
	overflow: visible; /* ←これが重要 */
	padding-bottom: 200px !important;
}
#cb_content_5::before{
	content: "";
	inset: -100px !important; /* 上下左右に100pxはみ出す */
	position: absolute;
	inset: 0;
	background-image: url("../img/logo_symbol.png");
	background-repeat: no-repeat;
	background-position: right bottom;
	background-size: 700px auto;
	transform: translateY(20px);
	transition: opacity 0.8s ease, transform 0.8s ease;
}
#cb_content_facility{
	text-align: center;
	max-width: 960px;
	margin: auto;
}
#cb_content_facility .lead{
	display: inline-block;
	line-height: 1.7 !important;
}
.facility_box{
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	justify-content: center; /* 横方向 */
	gap:24px;
}
.facility_box_item{
	width: 48%;
	border: solid 1px #01326D;
	padding: 24px;
	text-align: center;
}
.facility_box_item figure{
	margin-bottom: -16px;
}
.facility_box_area{
	background-color: #0051B2;
	color: #fff;
	display: inline-block;
	font-weight: 600;
	line-height: 1 !important;
	padding: 8px 24px;
	font-size: 16px !important;
	margin: 0 auto 20px !important;
}
.facility_box_name{;
	font-weight: 600 !important;
	margin: 0 !important;
	line-height: 1.4!important;
	font-size: 20px!important;
}
.facility_box_cate{
	font-size: 15px !important;
	margin-bottom: 0 !important;
}
/* タブレット（〜800px） */
@media screen and (max-width: 800px) {
	#cb_content_5{
		padding-bottom: 160px !important;
	}
}
/* タブレット（〜640px） */
@media screen and (max-width: 640px) {
	.facility_box_item{
		width: 100%;
	}
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	#cb_content_5{
		padding-bottom: 120px !important;
	}
	.facility_box{
		display: block;
	}
	.facility_box_item{
		width: 100%;
		margin-bottom: 16px;
	}
	#cb_content_5::before{
		inset: -100px !important; /* 上下左右に100pxはみ出す */
		background-size: 500px auto;
	}
}
/***********************
	Footer　
***********************/
/* フッターメニュー */
#footer_menu{
	padding: 40px 100px !important;
}
#footer_menu nav{
	border-bottom: 0px !important;
	padding: 0 !important;
}
#footer_nav1 ul{
	display: flex;
	flex-wrap: wrap;
	justify-content: center; /* 横方向 */
	align-items: center; 
}
#footer_nav1 li{
	width: 20%;
    margin-bottom: 25px !important;
	text-align: center;
    line-height: 1.5;
    font-size: 14px;
}
#footer_nav1 li a{
	font-weight: bold !important;
}
#footer_nav1 li a:hover{
	color: #0051B2 !important;
}
/* フッターロゴ */
#footer_logo{
	margin: 24px auto 0;
	width: 100%;
	text-align: center;
}
#footer_info_area{
	display: none;
}
#footer_bottom{
	background-color: #222;
	color: #fff;
	border: solid 0px;
}
#footer_cta_area{
	padding: 80px;
	background-image: linear-gradient(180deg, rgba(0, 81, 178, 1),rgba(1, 50, 109, 1));
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}
.footer_cta{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 48px;
	width: 100%;
	position: relative;
	z-index: 1;
}
.footer_cta_btn{
	background-color: #fff;
	border-radius: 16px;
	width: 50%;
	height: auto;
	max-width: 500px;
	transition: transform 0.3s ease, box-shadow 0.3s ease, border-radius 0.3s ease;
}
.footer_cta_btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
	border-radius: 4px;
}
.footer_cta_btn a{
	display: block;
	padding: 48px 20px;
	width: 100%;
	height: 100%;
}
.footer_cta_item{
	text-align: center;
}
.footer_cta_item-en{
	display: block;
	font-weight: bold;
	font-size: 42px;
	margin-bottom: 16px;
}
.footer_cta_item-jp{
	display: block;
	font-weight: bold !important;
	font-size: 16px;
}
#footer_logo img{
	width: 250px;
}
/** コピーライト **/
#copyright a{
	color: #fff !important;
}
/* タブレット（〜800px） */
@media screen and (max-width: 800px) {
	#footer_cta_area{
		padding: 80px 32px;
	}
}
/* 小タブレット（〜768px） */
@media screen and (max-width: 768px) {
	.footer_cta_btn{
		padding: 32px 32px;
		width: 100%;
		max-width: 100%;
	}
	.footer_cta{
		display: block;
	}
	.footer_cta_btn:first-child{
		margin-bottom: 24px;
	}
	#footer_cta_area{
		padding: 52px 32px;
	}
	#footer_nav1 li{
		width: 100%;
	}
}
/* モバイル（〜520px） */
@media screen and (max-width: 520px) {
	#footer_logo{
		margin-bottom: 1rem !important;;
	}
	#footer_cta_area{
		padding: 52px 32px;
	}
	#footer_nav1 li{
		width: 100%;
	}
	.footer_cta_btn{
		padding: 0;
	}
}
/*----------------------------
お問い合わせフォーム
----------------------------*/
.cf7-grid{
	display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px 24px;
}
.cf7-col--full {
    grid-column: 1 / -1;
}
.cf7-label{
	font-size: 16px;
	font-weight: bold;
	color: #464646;
}
span.req{
	color: #EA5514;
	font-size: 14px;
}
span.opt{
	color: #777777;
	font-size: 14px;
}
.wpcf7 .wpcf7-submit{
    background-color: #0051B2 !important;
	border-radius: 0;
	transition: border-radius 0.25s ease;
}
.cf7_lead{
	font-size: 15px !important;
	line-height: 1.2 !important;
	margin-bottom: 12px !important;
}
/*** ボタン hover 角丸 ***/
.wpcf7 .wpcf7-submit:hover {
	border-radius: 72px;
}
/* 小さめタブレット・大きめスマホ */
@media (max-width: 600px) {
	.cf7-grid{
		display: block;
	}
	.cf7-col{
		margin-bottom: 16px;
	}
	.cf7-col p{
		margin-bottom: 4px !important;
	}
}
/***********************
	お知らせ 一覧
***********************/
.archive #page_header .desc{
	font-size: 32px;
	font-weight: bold;
}
/* 小さめタブレット・大きめスマホ */
@media (max-width: 600px) {
	.archive #page_header .desc{
		font-size: 22px;
	}
}