@charset "UTF-8";

.recruitinfo-intro {
	padding: 50px 0;
	height: 400px;
}

.recruitinfo-intro h1 {
	color: #1F9884;
	font-size: 2.5rem;
	font-weight: 800;
}

.sub-head-en {
	font-weight: 600;
}

.recruitinfo-intro {
	background-image: url(../images/recruitinfo_top_v.jpg);
	background-position: bottom;
	background-repeat: no-repeat;
	background-size: cover;
	position: relative;
	z-index: -2;
	width: 100%;
}

.green-back {
	background-color: #D9F0EC;
	padding: 16vh 0;
}

.message-box h3 {
	font-size: 2rem;
	margin-bottom: 1rem;
}

.message-box p {
	margin-bottom: 20px;
}

.message-box h4 {
	font-size: 1.5rem;
	text-align: right;
}

.desired-characters {
	text-align: center;
	padding: 16vh 0;
}

.desired-characters h2 {
	font-size: 2em;
	margin-bottom: 60px;
	font-weight: bold;
	text-align: left;
}

.character-cards {
	display: flex;
	/* フレックスボックスを使用 */
	flex-wrap: wrap;
	/* 複数行に対応 */
	gap: 60px;
	/* カード間のスペース */
	margin: 0 auto;
	/* 中央配置 */
	justify-content: center;
	/* 中央揃え */
}

.card {
	background-color: white;
	border: 1px solid #ccc;
	padding: 40px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
	transition: transform 0.2s;
	/* ホバー時のアニメーション */
	text-align: left;
	/* テキストを左揃え */
	width: 30%;
	/* カードの幅を30%に設定 */
}

.card:hover {
	transform: scale(1.05);
	/* ホバー時の拡大効果 */
}

.card h3 {
	font-size: 1.5em;
	color: #1F9884;
	/* タイトルの色 */
	margin-bottom: 10px;
	font-weight: bold;
	/* 太字 */
	text-align: center;
	height: 3em;
	display: flex;
	justify-content: center;
	align-items: center;
}

.card p {
	font-size: 1em;
	color: #555;
	/* 説明文の色 */
}

/* デバイス幅が768px以下の時のスタイル */
@media (max-width: 768px) {
	.character-cards {
		justify-content: center;
		/* 中央揃えを維持 */
	}

	.card {
		width: 100%;
		/* 幅を100%にして全幅を使用 */
	}
}

.message-section {
	background-color: #bfe4e2;
	text-align: center;
	margin-top: 16vh;
}

.message-header {
	position: relative;
	top: -90px;
	display: flex;
	align-items: flex-end;
}

.message-main-title {
	font-size: 4rem;
	font-weight: bold;
	color: #bfe4e2;
	margin-right: 2rem;
}

.message-sub-title {
	font-size: 1.5rem;
	font-weight: bold;
	vertical-align: baseline;
}

.video-message {
	width: 80%;
	margin: 0 auto;
}

.video-wrapper {
	display: flex;
	justify-content: center;
	margin-bottom: 20px;
}

.video-container {
	position: relative;
	max-width: 100%;
	/* 親要素の幅に合わせる */
	width: 100%;
	/* 画像と動画のサイズを同じに保つ */
}

.video-container img {
	width: 100%;
	/* サムネイルと同じ幅 */
	height: auto;
	/* 高さは自動調整 */
	border-radius: 8px;
	transition: transform 0.5s ease;
}

#video-player {
	display: none;
	/* 初期状態では非表示 */
	width: 100%;
	/* サムネイルと同じ幅 */
	height: auto;
	/* 高さは自動調整 */
	border-radius: 8px;
}

.play-icon {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	font-size: 48px;
	color: rgba(0, 0, 0, 0.7);
	background: rgba(255, 255, 255, 0.8);
	padding: 10px 20px;
	border-radius: 50%;
	cursor: pointer;
}

.message-text {
	text-align: left;
	padding-bottom: 16vh;
}

.job-offer {
	padding: 40px;
	border-radius: 10px;
}

table {
	width: 80%;
	margin: 0 auto;
}

.job-offer-head,
.job-offer-head-b {
	display: flex;
	width: 80%;
	margin: 0 auto;
	margin-bottom: 20px;
	align-items: baseline;
}

.job-cate {
	background-color: #1F9884;
	color: #fff;
	font-size: 1rem;
	display: inline-block;
	padding: 5px 15px;
	justify-content: center;
}

.tag-new {
	background-color: #FAD325;
	/* タグの背景色 */
	padding: 5px 15px;
	border-radius: 20px;
	margin: 0 0 0 10px;
	/* タグ間のスペース */
}

.category-tags i {
	margin-left: 0.5rem;
}

.tag-career {
	background-color: #3190FF;
	/* タグの背景色 */
	color: white;
	/* タグの文字色 */
	padding: 5px 15px;
	border-radius: 20px;
	margin: 0 10px;
	/* タグ間のスペース */
}

.job-table {
	width: 100%;
	border-collapse: collapse;
	/* ボーダーの重なりを防ぐ */
	margin: 0 auto;
	/* 中央配置 */
}

.job-info-first {
	margin-bottom: 10vh;
}

.job-offer-head-b {
	margin-top: 10vh;
}

.job-table th,
.job-table td {
	padding: 15px;
	/* セル内のパディング */
	/* ボーダー */
	font-weight: 400;
}

th {
	width: 20%;
	/* thの横幅を20%に設定 */
	padding: 12px;
	text-align: left;
}

td {
	width: 80%;
	/* tdの横幅を80%に設定 */
	padding: 12px;
	text-align: left;
}

.job-table tr:nth-child(odd) {
	background-color: #ffffff;
	/* 奇数行の背景色 */
}

/* 一行に収めるためのスタイル */
.job-table tr {
	display: flex;
	/* フレックスボックスを使用 */
	justify-content: space-between;
	/* 各セルを左右に配置 */
}

.small {
	font-size: 0.8rem;
}

.attention {
	color: #FF3B00;
}

.onboarding-container {
	padding: 16vh 0;
}

.onboarding-container h2 {
	font-size: 2em;
	margin-bottom: 60px;
	font-weight: bold;
	text-align: left;
}

.onboarding-cate {
	background-color: #1F9884;
	color: #fff;
	font-weight: 400;
	font-size: 1.5rem;
	display: inline-block;
	padding: 5px 15px;
	justify-content: center;
	margin-bottom: 20px;
}

.application-process {
	display: flex;
	justify-content: space-between;
	margin-top: 20px;
}

.application-step {
	width: 22%;
	padding: 10px;
	position: relative;
	text-align: left;
}

.application-step h3 {
	margin-top: 0;
}

.application-step p {
	margin: 0;
}

/* 緑の点とボーダーのスタイリング */
.application-step::before {
	content: "";
	width: 15px;
	height: 15px;
	background-color: #1F9884;
	border-radius: 50%;
	position: absolute;
	top: -12px;
	left: 0%;
	transform: translateX(-50%);
	z-index: 3;
}

.application-step::after {
	content: "";
	width: 100%;
	height: 2px;
	background-color: #D8D8D8;
	position: absolute;
	top: -5px;
	left: 0;
}

/* 新卒採用セクションのスタイリング */
.new-graduate-section {
	margin-bottom: 40px;
}

/* キャリア採用セクションのスタイリング */
.career-section {
	margin-bottom: 40px;
}

.btn {
	display: inline-block;
	padding: 2rem 4rem;
	font-size: 2rem;
	text-align: center;
	text-decoration: none;
	margin: 0 30px 16vh 30px;
	border-radius: 20px;
	color: #fff;
	font-weight: 600;
	box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
	transition: background-color 0.3s, box-shadow 0.3s;
}

.btn-blue {
	background-color: #4D89A8;
}

.btn-blue:hover {
	background-color: #0056b3;
}

.btn-green {
	background-color: #1F9884;
}

.btn-green:hover {
	background-color: #218838;
}

.btn-wrap {
	display: flex;
	justify-content: center;
}