/**************************************
						構造・共通
**************************************/
#wrap {
	width: 100%;
	overflow: hidden;
}

.container2 {
	display: block;
	max-width: 1060px;
	width: 100%;
	margin: 0 auto;
}

/**************************************
							ヘッダー全体
**************************************/
.header {
	width: 100%;
	background-color: #fff;
	/* ヘッダー下の線は不要 */
	border-bottom: none;
}

/* --- コンテナ幅設定 (1260px) --- */
.header__inner {
	max-width: 1260px;
	margin: 0 auto;
	display: flex;
	height: 100px;
	/* 全体の高さ */
}

/* --- 左側エリア（説明文・ロゴ・ナビ） --- */
.header__left {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding-right: 20px;
}

/* 上段：説明文とサブナビ */
.header__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding-top: 12px;
}

.header__description {
	font-size: 11px;
	color: #000;
	letter-spacing: 0.05em;
	display: block;
}

.header__subnav {
	display: flex;
	gap: 25px;
}

.header__subnav a {
	position: relative;
	padding-left: 14px;
	font-size: 13px;
	font-weight: 700;
	display: flex;
	align-items: center;
}

/* サブナビの青い三角形 */
.header__subnav a::before {
	content: "";
	position: absolute;
	left: 0;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
	border-left: 6px solid #1c529b;
}

/* 下段：ロゴとメインナビ（下揃えに配置） */
.header__bottom {
	flex: 1;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	/* 下にくっつける */
}

.header__logo {
	/* ロゴが下につきすぎる場合はpaddingで調整 */
	padding-bottom: 12px;
}

.header__logo .logo-img {
	display: block;
	height: 36px;
	width: auto;
}

/* メインナビ */
.header__nav {
	/* ナビエリアの高さを設定 */
	height: 60px;
}

.header__nav ul {
	display: flex;
	height: 100%;
}

.header__nav li {
	position: relative;
	height: 100%;
	display: flex;
	align-items: center;
	/* 文字を垂直中央に配置 */
}

/* メインナビの左側の青い縦線 */
.header__nav li::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	/* 下端にくっつける */
	height: 100%;
	/* 線の長さ */
	width: 1px;
	background-color: #3071b9;
}

.header__nav a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 0 45px;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.1em;
}

.header__nav a:hover {
	color: #3b7cbd;
}

/* --- 右側（お問い合わせ・LINEボタン） --- */
.header__right {
	display: flex;
	width: 260px;
	/* 130px * 2 */
}

.btn {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 130px;
	height: 100%;
	color: #fff;
}

.btn:hover {
	opacity: 0.85;
}

/* アイコン画像サイズ */
.btn__icon-img {
	width: auto;
	height: 35px;
	margin-bottom: 5px;
}

.btn__icon-img--line {
	width: 44px;
}

.btn__text {
	font-size: 11px;
	font-weight: 700;
	margin-top: 10px;
	display: block;
	line-height: 1;
}

/* 各ボタンの背景色 */
.btn--contact {
	background-color: #3071b9;
	margin-right: 5px;
}

.btn--line {
	background-color: #389d38;
}

#mainvisual img {
	display: block;
	width: 100%;
}


.container {
	max-width: 1260px;
	margin: 0 auto;
	padding: 0 20px;
}

.section-title {
	color: #337ab7;
	font-size: 2.5rem;
	margin-bottom: 20px;
	font-family: "athelas", serif;
}

.section-title span {
	display: block;
	font-size: 1rem;
	color: #333;
}

.img-placeholder {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.recruit .img-placeholder {
	position: relative;
	z-index: 99;
}

/* RECRUIT */
.recruit {
	padding: 60px 0;
	position: relative;
}

.recruit-wrapper {
	display: flex;
	align-items: flex-start;
}

.recruit-content {
	width: 55%;
	z-index: 2;
}

.recruit-card {
	background: #ffffd4;
	padding: 40px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.recruit-card h3 {
	font-size: 24px;
	color: #333;
	font-weight: bold;
	margin-bottom: 20px;
}

.recruit-links {
	display: flex;
	gap: 30px;
	margin-top: 30px;
}

.btn-group {
	background: #337ab7;
	padding: 15px;
	width: 250px;
}

.btn-group .label {
	display: block;
	margin-bottom: 10px;
}

.btn-group .label a {
	display: block;
	background: #fff;
	color: #3071b9;
	text-decoration: none;
	padding: 8px 15px;
	margin-bottom: 10px;
	font-size: 20px;
	text-align: left;
	border-radius: 20px;
	font-weight: bold;
	position: relative;
	text-align: center;
}

.btn-group .label a:after {
	content: url("../images/btn-group-arw.svg");
	display: inline-block;
	padding-left: 10px;
	line-height: 1;
}

p.btn-group-text {
	display: block;
	color: #fff;
	text-align: center;
	line-height: 2;
	font-size: 18px;
	font-weight: bold;
}

.btn-white {
	display: block;
	background: #fff;
	color: #337ab7;
	text-decoration: none;
	padding: 8px 15px;
	margin-bottom: 5px;
	text-align: left;
	border-radius: 4px;
	font-weight: bold;
	position: relative;
}

.btn-white:after {
	content: url("../images/common/btn-group_arw.svg");
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 20px;
}



.line-area {
	width: calc(100% - 280px);
}

.line-area p {
	font-size: 14px;
	line-height: 1.6;
}

.line-btn {
	display: block;
	text-align: right;
	margin-top: 20px;
}

.line-btn:hover {
	opacity: 0.7;
}

.line-btn img {
	width: 80px;
}

.recruit-image {
	width: 50%;
	margin-left: -5%;
	margin-top: 0;
}

/**************************************
	     				お知らせ
	**************************************/
.news {
	padding: 80px 0;
	background-color: #f7f7f7;
}

.news-flex-container {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	/* 左右の高さを揃える */
}

/* --- 左側エリア --- */
.news-left {
	width: 25%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	/* 上にタイトル、下に移転ボタン */
}

.section-title-en {
	font-size: 64px;
	font-weight: bold;
	color: #337ab7;
	line-height: 1;
	margin: 0;
}

.section-title-jp {
	font-size: 24px;
	color: #333;
	margin: 10px 0 0 0;
}

/* 一覧ボタン */
.btn-news-list {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	background-color: #337ab7;
	color: #fff;
	text-decoration: none;
	width: 180px;
	padding: 12px 15px;
	border-radius: 25px;
	font-size: 14px;
	transition: opacity 0.3s;
}

.btn-news-list:hover {
	opacity: 0.8;
}

.icon-arrow {
	background-color: #fff;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	position: relative;
}

/* ボタン内の矢印 ＞ */
.icon-arrow::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 40%;
	width: 5px;
	height: 5px;
	border-top: 2px solid #337ab7;
	border-right: 2px solid #337ab7;
	transform: translateY(-50%) rotate(45deg);
}

/* --- 右側エリア（リスト） --- */
.news-right {
	width: 70%;
}

/* --- NEWS セクション (dl/dt/dd版) --- */
.news-list-container dl {
	margin: 0;
	padding: 0;
	border-top: 1px dashed #707070;
}

/* dtとddをセットで横並びにする（PC時） */
.news-list-container dt,
.news-list-container dd {
	border-bottom: 1px dashed #707070;
	padding: 20px 10px;
	margin: 0;
}

.news-list-container dl {
	display: grid;
	grid-template-columns: auto 1fr;
	/* 左に日付、右に内容 */
}

/* 日付のスタイル */
.news-list-container dt {
	font-weight: 700;
	font-size: 16px;
	color: #333;
	white-space: nowrap;
	padding-right: 30px;
}

.news-list-container dt::before {
	content: "";
	display: inline-block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 4px 0 4px 6px;
	border-color: transparent transparent transparent #337ab7;
	margin-right: 10px;
	flex-shrink: 0;
}

/* 内容のスタイル */
.news-list-container dd {
	padding-left: 0;
}

.news-list-container dd a {
	/*	display: flex;*/
	align-items: center;
	text-decoration: none;
	color: #004488;
	/* デザインに合わせた濃い青 */
	font-size: 16px;
	transition: opacity 0.2s;
}

.news-list-container dd a:hover {
	opacity: 0.7;
}

/* テキストが長い場合の三点リーダー表示（必要に応じて） */
.news-list-container dd a {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* --- レスポンシブ調整 (760px以下) --- */
@media (max-width: 760px) {
	.news-list-container dl {
		display: block;
		/* グリッド解除 */
	}

	.news-list-container dt {
		border-bottom: none;
		/* 日付の下の線は消す */
		padding: 15px 10px 5px;
		/* 下の余白を詰める */
		font-size: 14px;
	}

	.news-list-container dd {
		padding: 0 10px 15px;
		/* 日付とセットに見えるよう調整 */
		font-size: 15px;
	}

	.news-list-container dd a {
		font-size: 15px;
		white-space: normal;
		/* スマホでは折り返しを許可 */
		line-height: 1.5;
	}

	.news-list-container dd a::before {
		margin-top: 2px;
		align-self: flex-start;
		/* 複数行になっても矢印を上に固定 */
	}
}

/* SERVICE */
.service {
	background-color: #ffffd4;
	/* デザインの薄い黄色 */
	padding: 50px 0;
}

.service-flex-container {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

/* --- 左側エリア --- */
.service-left {
	width: 35%;
}

.service-description {
	margin-top: 40px;
}

.service-description p {
	font-size: 20px;
	font-weight: bold;
	line-height: 1.8;
	color: #333;
}

/* --- 右側カードエリア --- */
.service-right {
	width: 60%;
	display: flex;
	gap: 20px;
}

.service-card {
	flex: 1;
	position: relative;
	/* オーバーレイの基準点 */
	overflow: hidden;
}

.service-img {
	width: 100%;
	aspect-ratio: 1 / 1.1;
	/* デザインに近い縦横比 */
	background: #ccc;
}

.service-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ボタンの背景にある薄い白の帯 */
.service-overlay {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	background-color: rgba(255, 255, 255, 0.6);
	/* 半透明の白 */
	padding: 20px 0;
	/* 上下の余白 */
	display: flex;
	justify-content: center;
	align-items: center;
}

/* 青いボタン本体 */
.service-btn {
	width: 85%;
	/* 帯の中で少し小さく配置 */
	background-color: #337ab7;
	color: #fff;
	text-decoration: none;
	padding: 12px 15px;
	font-weight: bold;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: background-color 0.3s;
}

.service-btn:hover {
	background-color: #286090;
}

/* ボタン内の矢印アイコン */
.btn-icon {
	width: 20px;
	height: 20px;
	background-color: #fff;
	border-radius: 50%;
	position: relative;
}

.btn-icon::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 40%;
	width: 5px;
	height: 5px;
	border-top: 2px solid #337ab7;
	border-right: 2px solid #337ab7;
	transform: translateY(-50%) rotate(45deg);
}

.contact {
	/* 背景画像の設定 */
	background: url('../images/common/contact_bg.png') no-repeat center 5px;
	background-size: cover;
	padding: 80px 0;
	text-align: center;
	color: #fff;
}

.contact-inner h2 {
	color: #fff;
	margin-bottom: 60px;
}

.contact-inner h2 span {
	color: #fff;
	letter-spacing: 0.1em;
}

/* 中央のネイビー半透明帯 */
.contact-info-container {
	background-color: rgba(0, 30, 100, 0.7);
	/* ネイビーの半透明 */
	padding: 20px;
	max-width: 800px;
	margin: 0 auto;
}

.contact-info-content {
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 40px;
}

/* 電話・FAXエリア */
.contact-tel-fax {
	text-align: left;
}

.contact-tel-fax p {
	font-size: 36px;
	font-weight: bold;
	margin: 0;
	line-height: 1.2;
	text-shadow:
		1px 1px 0 #000,
		-1px 1px 0 #000,
		1px -1px 0 #000,
		-1px -1px 0 #000;
}

.contact-tel-fax .tel {
	border-bottom: 1px solid #fff;
	padding-bottom: 5px;
	margin-bottom: 5px;
	text-shadow:
		1px 1px 0 #000,
		-1px 1px 0 #000,
		1px -1px 0 #000,
		-1px -1px 0 #000;
}

/* メールボタン */
.contact-mail {
	max-width: 385px;
	width: 100%;
}

.btn-mail {
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: #fff;
	background-color: #337ab7;
	border: 1px solid #fff;
	/* 白い枠線 */
	padding: 45px 0;
	font-size: 20px;
	font-weight: bold;
	transition: background-color 0.3s;
}

.btn-mail:hover {
	background-color: #286090;
}

.icon-mail {
	display: inline-block;
	width: 30px;
	margin-right: 15px;
}

.icon-mail img {
	width: 100%;
	height: auto;
	vertical-align: middle;
}

.googlemap {
	display: block;
	width: 100%;
}

.googlemap iframe {
	width: 100%;
}



.footer {
	padding-top: 45px;
	background-color: #fff;
	color: #333;
	font-size: 14px;
}

.footer-upper {
	max-width: 1160px;
	display: flex;
	justify-content: space-between;
	padding-bottom: 40px;
}

/* --- 左側：会社情報 --- */
.footer-info {
	width: 35%;
}

.footer-logo {
	display: block;
	margin: 0 0 20px 0;
}

.footer-address {
	font-style: normal;
	line-height: 1.8;
	margin-bottom: 15px;
}

.footer-address span {
	font-family: "bokutoh-rera", sans-serif;
	font-weight: 400;
	font-style: normal;
	font-size: 14px;
}

.footer-sub-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	border-top: 1px dashed #000000;
	padding-top: 10px;
}

.footer-sub-links a {
	text-decoration: none;
	color: #333;
	display: flex;
	align-items: center;
}

/* 青い矢印アイコン（共通） */
.footer-sub-links a::before,
.footer-nav ul li a::before {
	content: '>';
	color: #337ab7;
	font-weight: bold;
	margin-right: 8px;
	font-size: 12px;
}

/* --- 右側：ナビゲーション --- */
.footer-nav {
	width: 60%;
	display: flex;
	justify-content: space-between;
}

.nav-group p {
	font-size: 16px;
	font-weight: bold;
	border-bottom: 1px dashed #000000;
	padding-bottom: 8px;
	margin-bottom: 15px;
	width: 100%;
}

.nav-group ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.nav-group ul li {
	margin-bottom: 8px;
}

.nav-group ul li a {
	text-decoration: none;
	color: #333;
	display: flex;
	align-items: center;
}

.nav-group ul li a:hover {
	opacity: 0.8;
}

/* 会社案内など2列にする部分 */
.nav-group ul.col-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 20px;
}

/* --- コピーライト --- */
.footer-bottom {
	background-color: #007bff;
	/* デザインに合わせた鮮やかな青 */
	color: #fff;
	text-align: center;
	padding: 15px 0;
}

.footer-bottom p {
	margin: 0;
	font-size: 13px;
	font-weight: bold;
}

.f_contact {
	display: block;
	margin-bottom: 15px !important;
	font-weight: bold;
	border-bottom: none !important;
	padding-bottom: 0;
}

.f_contact a {
	display: flex;
	align-items: center;
	font-size: 16px;
	color: #000;
	line-height: 1;
}

.f_contact a:hover {
	opacity: 0.8;
}

.f_contact a:before {
	content: url("/images/common/f_contact.svg");
	margin-right: 10px;
}

.f_line {
	display: block;
	font-size: 16px;
	font-weight: bold;
	border-bottom: none !important;
	padding-bottom: 0;
	margin-bottom: 0;
	width: 100%;
}

.f_line:hover {
	opacity: 0.8;
}

.f_line a {
	display: flex;
	align-items: center;
	font-size: 16px;
	color: #000;
	line-height: 1;
}

.f_line a:before {
	content: url("/images/common/f_line.svg");
	margin-right: 10px;
}


/**************************************
						次階層
**************************************/
.next_header {
	display: block;
	width: 100%;
	height: 152px;
	position: relative;
	background: #d8d8d8;
}

.next_header h1 {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-family: "fot-rodin-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
	text-align: center;
	line-height: 1;
	font-size: 34px;
}

.next_header h1 span {
	display: block;
	font-size: 21px;
	margin-top: 15px;
	font-family: "georgia", sans-serif;
	font-weight: 700;
	font-style: normal;
	line-height: 1;
}

.next_menu {
	display: block;
	width: 100%;
	background-color: #007aff;
}

.next_menu ul {
	display: flex;
	justify-content: center;
	max-width: 920px;
	margin: 0 auto;
}

.next_menu ul li {
	border-right: 1px solid #fff;
}

.next_menu ul li:first-child {
	border-left: 1px solid #fff;
}

.next_menu ul li a {
	display: block;
	padding: 16px;
	color: #fff;
	font-size: 16px;
	text-align: center;
	transition: all 0.7s ease;
}

.contact_text {
	display: block;
	font-size: 18px;
	color: #fff;
	background-color: #007aff;
	padding: 15px;
	text-align: center;
}


p.lead_center {
	display: block;
	color: #fff;
	font-size: 18px;
	text-align: center;
	line-height: 1.8;
}

/**************************************
						事業内容
**************************************/
/* #business_header {
	background: url("../images/common/dummy_header.jpg") no-repeat;
	background-size: cover;
	background-position: center center;
} */

#business_menu li {
	width: calc(100% /2);
}

.next_menu ul li a.active {
	background-color: #004d93;
}

.next_menu ul li a:hover {
	background-color: #004d93;
}

#next {
	background-color: #ffffd4;
	padding: 40px 20px;
}

#next section {
	margin-bottom: 40px;
}

#next section:last-child {
	margin-bottom: 0;
}

#next h2 {
	display: block;
	font-size: 28px !important;
	font-weight: 600;
	color: #004471;
	margin-bottom: 15px;
}

#next h2 span {
	color: #004471 !important;
	font-size: 14px !important;
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

#main_img {
	display: block;
	width: 100%;
	border-top: 10px solid #004471;
	margin-top: 15px;
}

.next_inner {
	display: block;
	width: 100%;
	padding: 35px;
	background-color: #004471;
}

.next_inner_white {
	border-top: 10px solid #004471;
	display: block;
	width: 100%;
	padding: 35px;
	background-color: #ffffff;
}

#newsdetail.next_inner_white {
	padding: 10px;
}

.next_inner h3 {
	display: block;
	text-align: center;
	color: #fff;
	font-size: 30px;
	margin-bottom: 15px;
	line-height: 1;
	font-family: "fot-rodin-pron", sans-serif;
}

.photo_box {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	gap: 20px;
	margin-top: 20px;
	margin-bottom: 40px;
}

.photo_box .photo_col {
	width: calc(100% / 2 - 20px);
	background: #3071b9;
	padding: 30px;
	box-sizing: border-box;
}

.photo_box .photo_col:nth-child(even) {
	margin-right: 0;
}

.photo_box .photo_col p.title {
	display: block;
	font-size: 21px;
	color: #fff;
	margin-top: 10px;
	margin-bottom: 15px;
	line-height: 1;
}

.photo_box .photo_col p.description {
	display: block;
	font-size: 15px;
	color: #fff;
	line-height: 1.8;
}

.btn_style1 {
	display: block;
	width: 100%;
}

.btn_style1 a {
	display: block;
	padding: 20px;
	background: #fff;
	font-size: 24px;
	color: #000;
	text-align: center;
	line-height: 1;
	position: relative;
}

.btn_style1 a:after {
	content: url("../images/common/arw_right.svg");
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 20px;
}

/**************************************
						会社案内
**************************************/
#company_menu li {
	width: calc(100% /3);
}

#company_bg_header {
	background-color: #ffffd4;
}

.philosophy-section {
	width: 100%;
	/* 画像を背景として設定 */
	background-image: url("/company/images/company_header.png");
	/* ここを実際の画像パスに変更 */
	background-repeat: no-repeat;
	background-position: center top;
	/* 画像の上端を基準にする */
	background-size: cover;
	margin-top: 0;
	padding-top: 80px;
	padding-bottom: 22%;
	text-align: center;
}

.about_header .philosophy-section {
	padding-bottom: 12%;
}

.philosophy-title {
	font-size: 32px;
	font-weight: bold;
	color: #004098;
	margin-bottom: 50px;
	letter-spacing: 0.1em;
}

.philosophy-list {
	max-width: 920px;
	list-style: none;
	text-align: left;
	color: #000;
	/* 文字色（黒） */
	font-size: 18px;
	line-height: 2;
	width: fit-content;
	margin-left: auto;
	margin-right: auto;
}

.philosophy-list li {
	position: relative;
	padding-left: 2.5em;
	text-align: left;
}

.philosophy-list li::before {
	content: "一、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

.philosophy-list2 li {
	padding-left: 4em;
}

.philosophy-list2 li:nth-child(1)::before {
	content: "その壱、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

.philosophy-list2 li:nth-child(2)::before {
	content: "その弐、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

.philosophy-list2 li:nth-child(3)::before {
	content: "その参、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

.philosophy-list2 li:nth-child(4)::before {
	content: "その四、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

.philosophy-list2 li:nth-child(5)::before {
	content: "その五、";
	position: absolute;
	left: 0;
	font-weight: bold;
}

h2.next_border {
	padding: 10px 0;
	line-height: 1;
	margin-bottom: 0 !important;
	border-bottom: 10px solid #004471;
}


.greeting_box {
	display: flex;
	width: 100%;
	margin-bottom: 100px;
}

.greeting_ph {
	width: 35%;
	margin-right: 3%;
}

.greeting_text {
	width: 62%;
	padding-top: 15px;
}

.greeting_text p {
	display: block;
	font-size: 15px;
	line-height: 1.8;
	font-family: "toppan-bunkyu-mincho-pr6n", serif;
	font-weight: 600;
	font-style: normal;
}

.greeting_text p.name {
	display: block;
	margin-top: 40px;
	font-size: 18px;
	text-align: right;
	font-family: 'Noto Serif JP', sans-serif;
}

.greeting_text p.name span {
	font-size: 26px;
}


.history_section {
	display: block;
	width: 100%;
	background: #ffffff;
	border-radius: 20px;
	padding: 20px;
}

#next h2.border2 {
	display: block;
	font-size: 21px !important;
	color: #004d93;
	padding: 10px 0;
	line-height: 1;
	margin-bottom: 5px;
	border-bottom: 2px solid #004d93;
}

/* テーブルのスタイル */
.history-table {
	width: 100%;
	border-collapse: collapse;
	/* 枠線を一本にする */
	border: 1px solid #333;
	font-size: 14px;
	line-height: 1.6;
	background-color: #fff;
	min-width: 600px;
	/* 極端に潰れないように */
}

/* セルの共通設定 */
.history-table th,
.history-table td {
	border: 1px solid #333;
	padding: 12px 15px;
	vertical-align: middle;
	text-align: left;
	font-weight: 500;
}

/* 1列目（年）の幅固定 */
.history-table th {
	width: 15%;
	white-space: nowrap;
}

/* 3列目（内容）のスタイル */
.history-table td:nth-child(3) {
	width: auto;
}

.history-table span.small_txt {
	display: block;
	margin-left: 5em;
	font-size: 13px;
	margin-top: 3px;
}

/* 箇条書き部分の強調（太字） */
.history-table strong {
	font-weight: bold;
}

.about_box {
	display: flex;
	width: 100%;
	margin-bottom: 100px;
}

.about_ph {
	width: 35%;
}

.about_text {
	width: 62%;
	padding-top: 45px;
	margin-right: 3%;
}

.about_text p {
	display: block;
	font-size: 15px;
	line-height: 2.2;
	font-family: "toppan-bunkyu-mincho-pr6n", serif;
	font-weight: 600;
}

.sikaku_box {
	display: flex;
	gap: 20px;
	margin-top: 10px;
}

.sikaku_col {
	width: calc(100% / 4 - 10px);
}

.sikaku_box table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid #000;
}

.sikaku_box table th {
	background: #727272;
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	width: 80%;
	color: #fff;
	padding: 5px;
	text-align: center;
	font-size: 13px;
}

.sikaku_box table th:last-child {
	border-right: 0;
	width: 20%;
}


.sikaku_box table td {
	border-right: 1px solid #000;
	border-bottom: 1px solid #000;
	padding: 5px;
	font-size: 13px;
}

.sikaku_box table td:last-child {
	border-right: 0;
	text-align: center;
}

.sikaku_col_long {
	width: 50%;
}

.sikaku_col_long_inner {
	display: flex;
	gap: 20px;
}

.col_long_sec {
	width: 50%;
}


/**************************************
						会社概要
**************************************/
.about_header .philosophy-section {
	width: 100%;
	background-image: url("/company/images/company_about_header.png");
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
}

.dl_btn {
	display: block;
	max-width: 760px;
	margin: 40px auto 0 auto;
}

.dl_btn a {
	display: block;
	padding: 30px 20px;
	background-color: #004d93;
	position: relative;
	line-height: 1;
	color: #fff;
	font-size: 24px;
	text-align: center;
}

.dl_btn a:after {
	content: url("/images/common/dl_btn.svg");
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 40px;
}

.dl_btn a:hover {
	opacity: 0.7;
}

.googlemap {
	display: block;
}

.googlemap iframe {
	width: 100%;
	border: none !important;
	vertical-align: bottom;
}

.access_section {
	display: block;
	background: #fff;
	padding: 15px 20px;
	line-height: 1;
}

.access_section p {
	display: block;
	font-size: 15px;
	line-height: 2;
}



.number_table {
	max-width: 620px;
	padding: 15px;
	margin: 20px auto 0 auto;
	border: 1px solid #000;
	background: #fff;
}

.number_table p.title {
	display: block;
	text-align: center;
	font-size: 22px;
	margin-bottom: 15px;
}

.number_table table {
	border: 1px solid #000;
	background: #fff;
	border-collapse: collapse;
}

.number_table th {
	width: 38%;
	border-right: 1px solid #000;
	font-size: 19px;
	border-bottom: 1px solid #000;
	padding: 10px;
	font-weight: 500;
}

.number_table td {
	width: 62%;
	font-size: 16px;
	border-bottom: 1px solid #000;
	padding: 10px;
	text-align: center;
	font-weight: 500;
}

.number_table td span {
	font-size: 24px;
}

.number_table td span.large {
	font-size: 28px;
}



/**************************************
						事業実績
**************************************/
.achivements_title {
	position: relative;
	margin-bottom: 55px;
}

.achivements_title #next h2 {
	margin-bottom: 30px;
}

.achivements_title p {
	display: block;
	line-height: 1.8;
	font-size: 16px;
}

.achivements_title:after {
	content: url("/company/achievements/images/img01.png");
	position: absolute;
	right: 10px;
	top: 0;
}

.indent2 {
	margin-left: 2em;
}

.black {
	color: #000000 !important;
}

.list_box {
	display: flex;
	flex-wrap: wrap;
	/* 折り返しを許可（レスポンシブ対応しやすくするため） */
	/* justify-content: space-between; */
	padding: 0 2em;
	/* 全体の左右に2文字分の余白 */
}

.list_col {
	width: 25%;
	/* 4列均等配置 */
	box-sizing: border-box;
	/* パディングを含めた幅計算 */
}

.list_box p {
	margin: 0 0 15px 0;
	padding: 0;
	font-size: 14px;
	width: calc(100% / 3);
}

/* （補足）スマホ表示などで列が狭くなりすぎる場合のレスポンシブ設定 */
@media screen and (max-width: 760px) {
	.list_col {
		width: 50%;
		/* タブレット等では2列 */
	}
}

@media screen and (max-width: 480px) {
	.list_col {
		width: 100%;
	}
}

/**************************************
						LINE公式
**************************************/
.line_text {
	display: block;
	font-size: 18px;
	color: #fff;
	background-color: #007aff;
	padding: 15px;
	text-align: center;
}

.line_copy {
	display: block;
	font-size: 18px;
	line-height: 2;
	margin-bottom: 30px;
	text-align: center;
}

.line_box {
	display: block;
	width: 100%;
	padding: 30px;
	background-color: #04b900;
	border-top: 10px solid #004471;
}

.line_box p.line_title {
	display: block;
	max-width: 70%;
	margin: 0 auto 20px auto;
	background: #fff;
	font-size: 21px;
	padding: 15px;
	border-radius: 30px;
	text-align: center;
}

.line_box p.text {
	display: block;
	color: #fff;
	text-align: center;
	font-size: 18px;
	margin-bottom: 30px;
}

.line-registration-container {
	display: flex;
	align-items: stretch;
	margin: 0 auto;
	text-align: center;
	gap: 20px;
}

.registration-item {
	flex: 1;
	padding: 10px;
	background: #fff;
	padding: 15px;
	border-radius: 15px;
}

/* オレンジのタイトル部分 */
.balloon-title {
	background-color: #FF5500;
	/* オレンジ色 */
	color: #fff;
	font-weight: bold;
	padding: 12px 10px;
	border-radius: 10px;
	position: relative;
	margin-bottom: 25px;
	/* 矢印のスペース確保 */
	font-size: 1.1rem;
}

/* 下矢印（三角形） */
.balloon-title::after {
	content: "";
	position: absolute;
	top: 100%;
	/* 親要素の底辺に配置 */
	left: 50%;
	transform: translateX(-50%);
	border-left: 12px solid transparent;
	border-right: 12px solid transparent;
	border-top: 12px solid #FF5500;
	/* タイトルと同じ色 */
}

/* テキスト説明部分 */
.description {
	font-size: 18px;
	line-height: 1.6;
	font-weight: 500;
	margin-bottom: 15px;
}

/* 各画像サイズ調整 */

.line_tomodati {
	display: block;
	margin-top: 60px;
}

.line_id {
	display: block;
	margin-top: 50px;
}

.action-area img {
	max-width: 100%;
	height: auto;
}

.qr-img {
	width: 140px;
}

.search-img {
	width: 240px;
}


/**************************************
						採用情報
**************************************/
.recruit_section {
	display: block;
	box-sizing: border-box;
	background: #fff;
	padding: 15px 70px 65px 15px;
	margin-bottom: 50px;
}

.recruit_box {
	display: flex;
	margin-bottom: 30px;
}

.recruit_left {
	flex: 0 0 300px;
	margin-right: 30px;
}

.recruit_right {
	flex: 1;
}

.recruit_box2 {
	display: flex;
	margin-bottom: 30px;
}

.recruit_left2 {
	flex: 1;
	margin-right: 30px;
}

.recruit_right2 {
	flex: 0 0 300px;
}


.recruit_section p {
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	line-height: 1.4;
}

.recruit_section p.copy {
	color: #004471;
	line-height: 1.2;
}

.recruit_section p.large {
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
	color: #004471;
	display: block;
	margin-bottom: 20px;
	font-size: 21px;
	line-height: 1;
}

.recruit_section p.lead_title {
	display: block;
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
	font-size: 40px;
	color: #000000;
	line-height: 1;
	margin-bottom: 25px;
}

.recruit_section p.lead_title2 {
	display: block;
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
	color: #000;
	font-size: 28px;
}

p.lead_title3 {
	display: block;
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
	color: #004471;
	font-size: 26px;
	line-height: 1.6;
}

.recruit_section p.lead_title span.small {
	font-size: 34px;
}


.recruit_section p.lead_title span.color {
	color: #ff0000;
}

.recruit_section p.keibi {
	display: flex;
	gap: 20px;
	align-items: center;
	font-size: 21px;
	color: #000;
	font-family: "fot-rodin-pron", sans-serif;
	font-style: normal;
	font-weight: 600;
	line-height: 1;
}

.recruit_section p.keibi span {
	color: #004471;
	font-size: 46px;
	font-family: "hiragino-kaku-gothic-pron", sans-serif;
	font-weight: 600;
	font-style: normal;
}

.wages {
	display: block;
	padding: 30px;
	background-color: #fff200;
	border-radius: 20px;
	margin-top: 15px;
}

.wages p {
	display: block;
	color: #004471;
	font-family: "fot-seurat-pron", sans-serif;
	text-align: right;
	font-size: 24px;
	line-height: 1;
	padding: 10px 0;
	border-bottom: 2px dotted #000;
	line-height: 1.3;
}

.wages p:last-child {
	border: none;
}

.wages p span {
	font-family: "houschka-rounded", sans-serif;
	font-weight: 700;
	font-style: normal;
	font-size: 36px;
	line-height: 1;
}

.label {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	flex-wrap: wrap;
}

.label li {
	white-space: nowrap;
	border: 2px solid #ff0303;
	border-radius: 10px;
	font-size: 24px;
	text-align: center;
	padding: 10px 20px;
	line-height: 1;
}

.recruit_img {
	margin-top: -30px;
}

.recruit_section table {
	width: 100%;
	border-collapse: collapse;
	border-top-right-radius: 1px dashed #727272;
}


.recruit_section table th {
	border-right: 1px dashed #727272;
	border-bottom: 1px dashed #727272;
	padding: 10px;
	font-size: 16px;
	width: 20%;
	font-weight: 500;
	text-align: left;
	line-height: 1.8;
	vertical-align: top;
}

.recruit_section table td {
	border-bottom: 1px dashed #727272;
	padding: 10px 10px 10px 55px;
	font-size: 16px;
	width: 80%;
	font-weight: 500;
	text-align: left;
	line-height: 1.8;
	vertical-align: top;
}


.recruit_section table td p.recruit_tel {
	font-family: "trebuchet-ms", sans-serif;
	font-weight: 700;
	font-style: normal;
	font-size: 30px;
	margin-top: 30px;
}

.recruit_section table td p.recruit_tel span {
	font-family: "fot-seurat-pron", sans-serif;
	margin-left: 15px;
	font-size: 21px;
}

.recruit_section table td p.recruit_entry_btn {
	display: inline-block;
	margin: 20px 0;
}

.recruit_section table td p.recruit_entry_btn a {
	display: block;
	background-color: #3071b9;
	color: #fff;
	font-size: 24px;
	padding: 17px;
	line-height: 1;
}

.recruit_section table td p.recruit_entry_btn a:before {
	content: url("/images/common/recruit_mail.svg");
	display: inline-block;
	margin-right: 15px;
	vertical-align: middle;
	line-height: 1;
}

.recruit_section table td p.recruit_line {
	display: block;
}

.recruit_section table td p.recruit_line a {
	display: block;
	color: #000;
	font-size: 24px;
	line-height: 1;
}

.recruit_section table td p.recruit_line a:before {
	content: url("/images/common/recruit_line.svg");
	display: inline-block;
	margin-right: 15px;
	vertical-align: middle;
	line-height: 1;
}

/**************************************
			プライバシーポリシーポリシー
**************************************/
.privacy_center {
	display: block;
	text-align: center;
	font-size: 18px;
	margin: 30px 0;
	line-height: 1.8;
}

.privacy_policy h3 {
	display: block;
	font-size: 21px;
	border-bottom: 2px solid #004471;
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	margin-bottom: 15px;
}

.privacy_policy p {
	display: block;
	font-family: "fot-seurat-pron", sans-serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.8;
}

.privacy_section {
	display: block;
	margin-bottom: 30px;
}

ul.disc {
	list-style-type: disc;
	margin-left: 1.5em;
}

ul.disc li {
	list-style-type: disc;
}

.right {
	text-align: right !important;
}

/*********************************************
	システム共通
*********************************************/
/* ページナビゲーション
----------------------------------------*/

.pagenavi {
	text-align: right;
	padding: 8px;
	font-size: 100%;
	margin: 10px 0;
}

.pagenavi ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pagenavi ul li {
	display: inline;
	line-height: 1em;
	margin: 0 5px 0 0;
	padding: 0;
}

.pagenavi ul li.cur,
.pagenavi ul li a {
	padding: 6px 7px;
}

.pagenavi ul li a {
	background: #005091;
	color: #FFF;
	text-decoration: none;
}

.pagenavi ul li a:hover,
.pagenavi ul li.cur {
	background-color: #FF8040;
	color: #FFF;
}


.newicon {
	padding: 3px 10px;
	background-color: #FF6060;
	border-radius: 10px;
	color: #FFF;
}