@charset "utf-8";


.box {
	padding: 40px;
	border: 1px solid #f1f1f1;
}
@media screen and (max-width: 680px) {
	.box {
		padding: 0;
		border: 0;
	}
}


/* ── ヒーロー ── */
.exam_hero {
	margin: auto 10px;
	max-width: 960px;
	text-align: center;
}
@media screen and (min-width: 981px) {
	.exam_hero { margin: 0 auto; }
}
.exam_hero img {
	width: 100%;
	height: auto;
	display: block;
}

/* ── セクション ── */
.exam_section {
	padding: 40px 0 0;
	line-height: 1.7;
}
.exam_section p {
	margin-bottom: 1.4em;
	font-size: 14px;
	font-size: 1.4rem;
}

/* ── リード文 ── */
.exam_lead {
	margin-bottom: 20px;
	font-size: 20px;
	font-size: 2rem;
	font-weight: bold;
	color: #005da3;
	text-align: center;
	line-height: 1.5;
}

/* ── セクション見出し ── */
.exam_heading {
	margin: 60px 0 30px;
	padding-bottom: 10px;
	border-bottom: 2px solid #005da3;
	font-size: 30px;
	font-size: 3rem;
	color: #005da3;
	line-height: 1.4;
	text-align: center;
}

.text_r {
	color: #c0392b;
}

/* ── 実施概要・説明会テーブル ── */
.exam_table {
	width: 100%;
	margin-bottom: 30px;
	background-color: #f7f7f7;
	line-height: 1.7;
}
.exam_table > tbody > tr > th,
.exam_table > tbody > tr > td {
	padding: 1.5em 2em;
	vertical-align: top;
	box-sizing: border-box;
}
.exam_table > tbody > tr + tr > th,
.exam_table > tbody > tr + tr > td {
	border-top: 1px solid #e5e5e5;
}
.exam_table > tbody > tr > th {
	width: 305px;
	background-color: #f1f1f1;
	text-align: center;
	font-weight: bold;
	color: #005da3;
}
.exam_table > tbody > tr > td {
	border-left: 5px solid #005da3;
	font-size: 14px;
	font-size: 1.4rem;
	vertical-align: middle;
}
.exam_table td p {
	margin: .5em 0 0;
	font-size: 80%;
}

/* ── 時間割テーブル ── */
.exam_schedule {
	width: 100%;
	margin: .8em 0 .4em;
	background: #fff;
}
.exam_schedule td {
	padding: .5em 1em;
	border: 1px solid #e5e5e5;
}

/* ── 申込ボタン ── */
.exam_apply {
	margin: 50px 0;
	text-align: center;
}
.exam_apply_btn {
	display: block;
	width: 60%;
	margin: 1em auto;
	padding: 20px;
	border-radius: 30px;
	box-sizing: border-box;
	color: #fff!important;
	line-height: 1.6;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	text-decoration: inherit;
	background: #20b2aa;
	box-shadow: 0 6px 0 #047c71, 0 12px 0 rgba(0,0,0,.2);
	transition: color .3s, background .3s, box-shadow .3s, transform 0.3s;
}
.exam_apply_btn:hover {
	background: #3cc4bd;
	box-shadow: 0 3px 0 #12978d, 0 6px 0 rgba(0,0,0,.2);
	transform: translateY(3px);
}
.exam_apply_btn:active {
	color: #ddd;
	background: #12978d;
	box-shadow: 0 0 0 #047c71, 0 0 0 rgba(0,0,0,.2);
	transform: translateY(6px);
	transition-duration: .1s;
}
.exam_deadline {
	margin-top: 20px;
	font-weight: bold;
	color: #c0392b;
}
.exam_section .exam_note,
.exam_section .exam_auto {
	font-size: 12px;
	font-size: 1.2rem;
}

/* ── 受付終了メッセージ ── */
.exam_section .exam_closed {
	margin: 50px 0;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	color: #c0392b;
	text-align: center;
}

/* ── 汎用 ── */
.text_center {
	text-align: center;
}

/* ── 会場名見出し ── */
.exam_venue_title {
	margin: 40px 0 10px;
	font-size: 20px;
	font-size: 2rem;
	font-weight: bold;
	/* color: #005da3; */
}

/* ── Googleマップ ── */
.exam_map {
	margin: 20px 0;
	text-align: center;
}
.exam_map iframe {
	max-width: 100%;
}

/* ── 重要注意ボックス ── */
.exam_warning {
	margin: 30px 0;
	padding: 1.5em 2em;
	background-color: #f7f7f7;
	border-left: 5px solid #005da3;
}
.exam_section .exam_warning_title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 1em;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	color: #005da3;
}
.exam_warning_title svg {
	flex-shrink: 0;
}
.exam_section .exam_warning p {
	margin-bottom: .8em;
}
.exam_section .exam_warning p:last-child {
	margin-bottom: 0;
}

/* ── よくある質問 ── */
.exam_faq_group {
	margin: 30px 0 15px;
	font-size: 16px;
	font-size: 1.6rem;
	font-weight: bold;
	color: #005da3;
	text-align: center;
}
.exam_faq {
	margin-bottom: 30px;
}
.page_faq__item {
	margin-bottom: 10px;
	border: 1px solid #e5e5e5;
	background: #f7f7f7;
}
.page_faq__question {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 1em 1.5em;
	background: #f1f1f1;
	border: none;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	font-size: 14px;
	font-size: 1.4rem;
	font-weight: bold;
	color: #333;
	transition: background .2s;
}
.page_faq__question:hover {
	background: #e5e5e5;
}
.page_faq__q_label {
	flex-shrink: 0;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: #005da3;
	color: #fff;
	font-weight: bold;
	display: flex;
	align-items: center;
	justify-content: center;
}
.page_faq__q_text {
	flex: 1;
	line-height: 1.5;
}
.page_faq__toggle_icon {
	flex-shrink: 0;
	color: #005da3;
	display: inline-flex;
	transition: transform .2s;
}
.page_faq__question[aria-expanded="true"] .page_faq__toggle_icon {
	transform: rotate(180deg);
}
.page_faq__answer {
	padding: 1em 1.5em 1em calc(1.5em + 28px + 14px);
	border-left: 5px solid #005da3;
}
.page_faq__answer.is_closed {
	display: none;
}
.exam_section .page_faq__a_text {
	margin: 0;
	line-height: 1.8;
}

/* ── スマホ ── */
@media screen and (max-width: 680px) {
	.exam_section {
		padding-top: 20px;
	}
	.exam_lead {
		font-size: 1.6rem;
	}
	.exam_venue_title {
		margin-top: 30px;
		font-size: 1.7rem;
	}
	.exam_heading {
		margin: 40px 0 20px;
		padding-bottom: 8px;
		font-size: 2rem;
	}
	.exam_table,
	.exam_table > tbody,
	.exam_table > tbody > tr,
	.exam_table > tbody > tr > th,
	.exam_table > tbody > tr > td {
		display: block;
		width: auto;
	}
	.exam_table {
		background: none;
	}
	.exam_table > tbody > tr {
		margin-bottom: 10px;
		border: 1px solid #e5e5e5;
	}
	.exam_table > tbody > tr > th,
	.exam_table > tbody > tr > td {
		padding: .5em 1em;
	}
	.exam_table > tbody > tr + tr > th,
	.exam_table > tbody > tr + tr > td {
		border-top: 0;
	}
	.exam_table > tbody > tr > th {
		border-bottom: 1px solid #005da3;
	}
	.exam_table > tbody > tr > td {
		border-left: 0;
		background-color: #f7f7f7;
		font-size: 1.3rem;
	}
	.exam_apply_btn {
		width: 100%;
	}
	.exam_warning {
		padding: 1em;
	}
	.page_faq__question {
		padding: .8em 1em;
		font-size: 1.3rem;
	}
	.page_faq__answer {
		padding: .8em 1em;
	}
}
