@charset "UTF-8";

/* ==================================================
	base
================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-padding-top: var(--header_height);
	/* ページ内リンクはスクロールして移動する */
	scroll-behavior: smooth;
}

/* 動きを減らす設定の閲覧者には、スクロールせずに移動する */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

body {
	padding-top: var(--header_height);
	background: var(--color_white);
	color: var(--color_navy);
	font-family: var(--font_gothic);
	font-size: var(--font_size_bs);
	font-weight: 500;
	line-height: var(--line_height_base);
	font-feature-settings: "palt";
}

body.is_menu_open {
	overflow: hidden;
}

a {
	color: inherit;
	text-decoration: none;
}

ul,
ol {
	list-style: none;
}

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

input,
button,
select,
textarea {
	color: inherit;
	font: inherit;
}

:focus-visible {
	outline: 2px solid var(--color_blue);
	outline-offset: 2px;
}


/* ==================================================
	layout
================================================== */
.inner {
	width: var(--content_width);
	max-width: var(--content_max_width);
	margin: 0 auto;
}

.section {
	padding: var(--section_space) 0;
}

.bg_sub {
	background: var(--bg_sub);
}


/* ==================================================
	section heading
================================================== */
.section_head {
	position: relative;
	text-align: center;
}

.section_en {
	position: absolute;
	top: -24px;
	left: 0;
	width: 100%;
	color: var(--color_gold_40);
	font-family: var(--font_en);
	font-size: 60px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
}

.bg_sub .section_en {
	color: var(--color_white);
}

.section_title {
	position: relative;
	font-size: var(--font_size_xxl);
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.04em;
	word-break: auto-phrase;
}

.section_lead {
	margin-top: 35px;
	font-size: 18px;
}

@media (max-width: 768px) {
	.section_en {
		top: -17px;
		font-size: 40px;
	}

	.section_lead {
		margin-top: 25px;
		font-size: var(--font_size_bs);
		text-align: left;
	}

	.section_lead br {
		display: none;
	}
}

@media (max-width: 576px) {
	.section_en {
		top: -15px;
		font-size: 34px;
	}
}


/* ==================================================
	button
================================================== */
.btn {
	display: inline-flex;
	position: relative;
	justify-content: center;
	align-items: center;
	gap: 10px;
	width: 300px;
	max-width: 100%;
	min-height: 50px;
	padding: 8px 40px;
	border: 1px solid var(--color_navy);
	border-radius: 999px;
	box-shadow: var(--shadow_base);
	background: var(--color_navy);
	color: var(--color_white);
	font-size: var(--font_size_bs);
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	transition: opacity 0.3s;
}

.btn:hover {
	opacity: 0.75;
}

.btn_gold {
	border-color: var(--color_gold);
	background: var(--color_gold);
}

.btn_outline {
	background: var(--color_white);
	color: var(--color_navy);
}

.btn_large {
	width: 400px;
	min-height: 64px;
	font-size: 18px;
}

.btn_arrow::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 26px;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

.btn:not(.btn_gold, .btn_outline).btn_arrow::after {
	border-color: var(--color_gold);
}

.btn_icon {
	position: absolute;
	top: 50%;
	right: 24px;
	width: 20px;
	transform: translateY(-50%);
}

.section_btn {
	margin-top: 60px;
	text-align: center;
}

/* 文中・カード内のテキストリンク（ゴールド・下線・右に「>」） */
.text_link {
	display: inline-block;
	position: relative;
	padding-right: 20px;
	color: var(--color_gold);
	font-weight: 700;
	text-decoration: underline;
	transition: opacity 0.3s;
}

.text_link::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 2px;
	width: 7px;
	height: 7px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

.text_link:hover {
	opacity: 0.75;
}

/* ボタンを横に並べる（狭い画面では縦並び） */
.btn_group {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 15px 20px;
}

@media (max-width: 768px) {
	.btn_large {
		width: 320px;
		min-height: 56px;
		font-size: var(--font_size_bs);
	}

	.section_btn {
		margin-top: 40px;
	}
}

@media (max-width: 576px) {
	.btn_group {
		flex-direction: column;
		align-items: center;
	}
}


/* ==================================================
	small parts（小見出し・ラベル・矢印リスト・画像の仮枠）
================================================== */
/* 左にゴールドの線が付いた小見出し */
.bar_title {
	position: relative;
	padding-left: 20px;
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.5;
}

.bar_title::before {
	content: "";
	position: absolute;
	top: 0.2em;
	left: 0;
	width: 5px;
	height: 1.1em;
	border-radius: 3px;
	background: var(--color_gold);
}

/* カテゴリなどの枠付きラベル */
.tag {
	display: inline-block;
	padding: 0 16px;
	border: 1px solid var(--color_gold);
	border-radius: 999px;
	color: var(--color_gold);
	font-size: var(--font_size_sm);
	font-weight: 500;
	line-height: 1.6;
	white-space: nowrap;
}

/* 受付中・終了などの状態ラベル */
.status_label {
	display: inline-block;
	padding: 0 16px;
	border-radius: 999px;
	background: var(--color_pink);
	color: var(--color_white);
	font-weight: 700;
	line-height: 1.5;
	white-space: nowrap;
}

.status_label_closed {
	background: var(--color_gray);
}

/* 先頭にゴールドの「>」が付いたリスト */
.arrow_list li {
	position: relative;
	padding-left: 22px;
}

.arrow_list li + li {
	margin-top: 8px;
}

.arrow_list li::before {
	content: "";
	position: absolute;
	top: 0.9em;
	left: 2px;
	width: 7px;
	height: 7px;
	border-top: 2px solid var(--color_gold);
	border-right: 2px solid var(--color_gold);
	transform: translateY(-50%) rotate(45deg);
}

.arrow_list a {
	text-decoration: underline;
	transition: opacity 0.3s;
}

.arrow_list a:hover {
	opacity: 0.75;
}

/* 画像支給までの仮枠（中に画像の内容を書いておく） */
.img_dummy {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 20px;
	border-radius: 16px;
	background: var(--color_gray_20);
	color: var(--color_gray);
	font-size: var(--font_size_sm);
	line-height: 1.6;
	text-align: center;
	aspect-ratio: 16 / 9;
}

/* 人物写真の仮枠（丸） */
.img_dummy_circle {
	padding: 10px;
	border-radius: 50%;
	font-size: var(--font_size_xs);
	aspect-ratio: 1;
}


/* ==================================================
	card
================================================== */
.card {
	border-radius: 20px;
	box-shadow: var(--shadow_base);
	background: var(--color_white);
}

/* カード全体をリンクにする */
.card_link {
	display: block;
	transition: opacity 0.3s;
}

.card_link:hover {
	opacity: 0.75;
}


/* ==================================================
	number card（カード上部に大きな番号が重なるカード）
================================================== */
.num_card_list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	margin-top: 90px;
}

.num_card {
	position: relative;
	padding: 48px 30px 28px;
}

.num_card_num {
	position: absolute;
	top: -38px;
	left: 50%;
	color: var(--color_gold);
	font-family: var(--font_en);
	font-size: 60px;
	font-weight: 600;
	line-height: 1;
	transform: translateX(-50%);
}

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

.num_card_title {
	margin-top: 20px;
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

.num_card_text {
	margin-top: 15px;
}

@media (max-width: 992px) {
	.num_card_list {
		grid-template-columns: minmax(0, 1fr);
		gap: 70px;
		max-width: 480px;
		margin: 80px auto 0;
	}
}

@media (max-width: 768px) {
	.num_card {
		padding: 40px 20px 25px;
	}

	.num_card_num {
		top: -30px;
		font-size: 48px;
	}
}


/* ==================================================
	reason card（Reason＋番号ラベル付きのカード）
================================================== */
.reason_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 85px 30px;
	margin-top: 120px;
}

.reason_item {
	position: relative;
	width: calc((100% - 60px) / 3);
	padding: 42px 30px 24px;
	text-align: center;
}

.reason_label {
	display: flex;
	position: absolute;
	top: -62px;
	left: 50%;
	flex-direction: column;
	align-items: center;
	color: var(--color_gold);
	font-family: var(--font_en);
	font-weight: 600;
	line-height: 1;
	transform: translateX(-50%);
}

.reason_label_en {
	font-size: 20px;
}

.reason_label_num {
	margin-top: 4px;
	font-size: 60px;
}

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

/* イラストの代わりに人物写真を置く場合
   丸くトリミングし、直径をイラスト（16:9）の高さに合わせて、ほかのカードと高さをそろえる */
.reason_img_photo {
	width: calc(100% * 941 / 1672);
	margin: 0 auto;
	border-radius: 50%;
	aspect-ratio: 1;
	object-fit: cover;
}

.reason_category {
	margin-top: 20px;
	color: var(--color_gold);
	font-weight: 700;
}

.reason_title {
	min-height: 3.2em;
	margin-top: 10px;
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.6;
}

.reason_text {
	margin-top: 15px;
}

@media (max-width: 1200px) {
	.reason_title {
		font-size: var(--font_size_md);
	}
}

@media (max-width: 992px) {
	.reason_list {
		flex-direction: column;
		align-items: center;
		gap: 85px;
	}

	.reason_item {
		width: 100%;
		max-width: 480px;
	}

	.reason_title {
		min-height: 0;
	}
}

@media (max-width: 768px) {
	.reason_list {
		gap: 70px;
		margin-top: 100px;
	}

	.reason_item {
		padding: 35px 20px 24px;
	}

	.reason_label {
		top: -52px;
	}

	.reason_label_en {
		font-size: var(--font_size_bs);
	}

	.reason_label_num {
		font-size: 48px;
	}
}


/* ==================================================
	step flow（矢印でつないだ流れ図）
	置き場所の幅に合わせて、広いときは横並び、狭いときは縦並びになる
================================================== */
.step_flow {
	container-type: inline-size;
}

.step_flow_list {
	display: grid;
	grid-auto-columns: minmax(0, 1fr);
	grid-auto-flow: column;
	gap: 36px;
}

.step_flow_item {
	display: flex;
	position: relative;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	min-height: 96px;
	padding: 15px 12px;
	border-radius: 12px;
	background: var(--color_gold_10);
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
}

.step_flow_item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -25px;
	width: 14px;
	height: 18px;
	background: var(--color_gold);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
	transform: translateY(-50%);
}

.step_flow_item_goal {
	background: var(--color_navy);
	color: var(--color_white);
}

.step_flow_note {
	display: block;
	margin-top: 4px;
	font-size: var(--font_size_xs);
	font-weight: 500;
}

@container (max-width: 1100px) {
	.step_flow_list {
		gap: 30px;
	}

	.step_flow_item {
		font-size: var(--font_size_sm);
	}

	.step_flow_item:not(:last-child)::after {
		right: -22px;
	}
}

@container (max-width: 760px) {
	.step_flow_list {
		grid-auto-flow: row;
	}

	.step_flow_item {
		min-height: 0;
		font-size: var(--font_size_bs);
	}

	.step_flow_item:not(:last-child)::after {
		top: auto;
		right: auto;
		bottom: -24px;
		left: 50%;
		width: 18px;
		height: 14px;
		clip-path: polygon(0 0, 100% 0, 50% 100%);
		transform: translateX(-50%);
	}
}


/* ==================================================
	inquiry mock（重なった用紙風の問い合わせ見本）
================================================== */
.inquiry_mock {
	position: relative;
	border-radius: 16px;
	box-shadow: var(--shadow_base), 8px 8px 0 var(--color_gray_20), 16px 16px 0 var(--color_gray_30);
	background: var(--color_white);
	font-size: var(--font_size_sm);
	line-height: 1.6;
}

.inquiry_mock_head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 5px 14px;
	padding: 16px 24px;
	border-bottom: 1px solid var(--color_gray_30);
}

.inquiry_mock_dots {
	width: 46px;
	height: 10px;
	background: radial-gradient(circle, var(--color_gray_40) 4px, transparent 5px) 0 0 / 16px 10px repeat-x;
}

.inquiry_mock_title {
	font-size: var(--font_size_bs);
	font-weight: 700;
}

.inquiry_mock_id {
	margin-left: 10px;
	color: var(--color_gray);
	font-size: var(--font_size_sm);
	font-weight: 500;
}

.inquiry_mock_route {
	margin-left: auto;
	color: var(--color_gold);
	font-size: var(--font_size_xs);
	font-weight: 700;
}

.inquiry_mock_data {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 20px;
	padding: 22px 24px;
}

.inquiry_mock_row_full {
	grid-column: 1 / -1;
}

.inquiry_mock_row dt {
	color: var(--color_gray);
	font-size: var(--font_size_xs);
}

.inquiry_mock_strong {
	font-size: var(--font_size_bs);
	font-weight: 700;
}

.inquiry_mock_foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	padding: 14px 24px;
	border-top: 1px solid var(--color_gray_30);
}

.inquiry_mock_date {
	color: var(--color_gray);
	font-size: var(--font_size_xs);
}

.inquiry_mock_tag {
	padding: 2px 12px;
	border-radius: 999px;
	background: var(--color_navy);
	color: var(--color_white);
	font-size: var(--font_size_xs);
	font-weight: 700;
}

@media (max-width: 992px) {
	.inquiry_mock {
		margin-right: 16px;
	}
}

@media (max-width: 576px) {
	.inquiry_mock_head,
	.inquiry_mock_data,
	.inquiry_mock_foot {
		padding-right: 16px;
		padding-left: 16px;
	}

	.inquiry_mock_data {
		grid-template-columns: minmax(0, 1fr);
	}

	.inquiry_mock_route {
		margin-left: 0;
	}
}


/* ==================================================
	voice card（掲載企業の声のカード）
================================================== */
.voice_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	margin-top: 60px;
}

.voice_img {
	display: block;
	width: 100%;
	border-radius: 16px;
	box-shadow: var(--shadow_base);
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

/* ロゴだけの小さい画像は白背景の中央に表示 */
.voice_img_logo {
	padding: 12% 0;
	background: var(--color_white);
	object-fit: contain;
}

.voice_category {
	margin-top: 20px;
	color: var(--color_gold);
	font-weight: 700;
	line-height: 1.5;
}

.voice_name {
	margin-top: 5px;
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.5;
}

.voice_text {
	margin-top: 10px;
}

@media (max-width: 992px) {
	.voice_list {
		gap: 24px;
	}

	.voice_name {
		font-size: var(--font_size_md);
	}
}

@media (max-width: 768px) {
	.voice_list {
		grid-template-columns: 1fr;
		gap: 40px;
		max-width: 480px;
		margin: 40px auto 0;
	}
}


/* ==================================================
	plan card（料金プランのカード）
================================================== */
.plan_list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 312px));
	justify-content: space-between;
	gap: 24px;
	margin-top: 70px;
}

.plan_item {
	display: flex;
	position: relative;
	flex-direction: column;
	padding-bottom: 40px;
	border: 2px solid transparent;
}

.plan_item_recommend {
	border-color: var(--color_gold);
}

.plan_badge {
	position: absolute;
	top: -26px;
	left: 50%;
	padding: 6px 22px;
	border-radius: 999px;
	background: var(--color_gold);
	color: var(--color_white);
	font-weight: 700;
	line-height: 1.6;
	white-space: nowrap;
	transform: translateX(-50%);
}

.plan_head {
	padding: 26px 20px 20px;
	text-align: center;
}

.plan_en {
	color: var(--color_navy_50);
	font-family: var(--font_en);
	font-weight: 600;
	line-height: 1.5;
}

.plan_item_recommend .plan_en {
	color: var(--color_gold);
}

.plan_name {
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.6;
}

.plan_target {
	min-height: 3.6em;
	margin-top: 15px;
	font-size: 15px;
}

.plan_fee {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: 6px;
	padding: 20px;
	background: var(--color_gray_10);
	font-weight: 700;
}

.plan_item_recommend .plan_fee {
	background: var(--color_gold_10);
}

.plan_fee_num {
	font-family: var(--font_num);
	font-size: var(--font_size_xxl);
	font-weight: 600;
	line-height: 1.3;
}

.plan_points {
	flex: 1;
	padding: 30px 30px 0;
}

/* カード下部のボタン（料金と掲載プランのページで使用） */
.plan_action {
	padding: 30px 30px 0;
	text-align: center;
}

.plan_action .btn {
	width: 100%;
}

.plan_points li {
	position: relative;
	padding-left: 16px;
	font-size: var(--font_size_bs);
	font-weight: 400;
}

/* 記事の本数などの数量は太字にする */
.plan_points strong {
	font-weight: 700;
}

.plan_points li::before {
	content: "";
	position: absolute;
	top: 0.65em;
	left: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--color_gold);
}

.plan_note {
	margin-top: 35px;
	font-size: var(--font_size_sm);
	font-weight: 700;
	text-align: center;
}

@media (max-width: 1200px) {
	.plan_target {
		font-size: var(--font_size_sm);
	}

	.plan_points {
		padding: 25px 20px 0;
	}
}

@media (max-width: 992px) {
	.plan_list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 50px 24px;
		max-width: 720px;
		margin: 60px auto 0;
	}
}

@media (max-width: 768px) {
	.plan_list {
		grid-template-columns: minmax(0, 1fr);
		max-width: 480px;
	}

	.plan_target {
		min-height: 0;
	}

	.plan_points {
		padding: 25px 25px 0;
	}

	.plan_note {
		text-align: left;
	}
}


/* ==================================================
	FAQ
================================================== */
.faq_list {
	max-width: 960px;
	margin: 50px auto 0;
	border-top: 1px solid var(--color_gray_40);
}

.faq_item {
	padding: 30px 0 25px;
	border-bottom: 1px solid var(--color_gray_40);
}

.faq_q,
.faq_a {
	position: relative;
	padding-left: 55px;
}

.faq_q::before,
.faq_a::before {
	display: flex;
	position: absolute;
	top: 0;
	left: 0;
	justify-content: center;
	align-items: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--color_gold);
	border-radius: 50%;
	font-family: var(--font_en);
	font-size: 22px;
	font-weight: 600;
	line-height: 1;
}

.faq_q {
	display: flex;
	align-items: center;
	min-height: 40px;
	font-size: var(--font_size_md);
	font-weight: 700;
	line-height: 1.6;
}

.faq_q::before {
	content: "Q";
	background: var(--color_gold);
	color: var(--color_white);
}

.faq_a {
	min-height: 40px;
	margin-top: 15px;
	padding-top: 6px;
}

.faq_a::before {
	content: "A";
	background: var(--color_white);
	color: var(--color_gold);
}

@media (max-width: 768px) {
	.faq_list {
		margin-top: 40px;
	}

	.faq_item {
		padding: 20px 0;
	}

	.faq_q,
	.faq_a {
		padding-left: 45px;
	}

	.faq_q::before,
	.faq_a::before {
		width: 32px;
		height: 32px;
		font-size: 18px;
	}

	.faq_q {
		min-height: 32px;
		font-size: var(--font_size_bs);
	}

	.faq_a {
		padding-top: 2px;
		font-size: var(--font_size_sm);
	}
}


/* ==================================================
	post card（コラム・ウェビナーのアーカイブなど、画像付きの記事カード）
================================================== */
.post_list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 50px 36px;
	margin-top: 60px;
}

.post_img {
	display: block;
	width: 100%;
	border-radius: 16px;
	box-shadow: var(--shadow_base);
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.post_meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 5px 10px;
	margin-top: 20px;
	color: var(--color_gray);
	font-size: var(--font_size_sm);
	font-weight: 700;
}

.post_date {
	color: var(--color_gray);
	font-size: var(--font_size_bs);
	font-weight: 600;
}

.post_title {
	margin-top: 15px;
	font-size: var(--font_size_md);
	font-weight: 700;
	line-height: 1.6;
}

.post_text {
	margin-top: 10px;
	font-size: var(--font_size_sm);
}

/* 記事を書いた人（顔アイコン＋名前／会社名）。コラムのカードでタイトルの下に置く */
.post_author {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-top: 12px;
	font-size: var(--font_size_sm);
	font-weight: 500;
	line-height: 1.5;
}

.post_author_img {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
	border: 1px solid var(--color_gray_30);
	border-radius: 50%;
	/* 透過のロゴでも見やすいよう、丸の中は白にする */
	background: var(--color_white);
	object-fit: cover;
}

.post_author_sep {
	margin: 0 8px;
}

/* 画像の仮枠をカードの画像の位置に置くとき（display: block で中央揃えが崩れないようにする） */
.post_img.img_dummy,
.voice_img.img_dummy {
	display: flex;
}

@media (max-width: 992px) {
	.post_list {
		gap: 40px 24px;
	}

	.post_date {
		font-size: var(--font_size_sm);
	}

	.post_title {
		font-size: var(--font_size_bs);
	}
}

@media (max-width: 768px) {
	.post_list {
		grid-template-columns: minmax(0, 1fr);
		gap: 40px;
		max-width: 480px;
		margin: 40px auto 0;
	}
}


/* ==================================================
	survey（調査結果の数字。トップ・代理店の方へ）
	背景（hikaku_bk.png）は各ページのCSSで指定する
================================================== */
.survey_list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
	margin-top: 50px;
	text-align: center;
}

.survey_num {
	color: var(--color_gold);
	font-family: var(--font_en);
	font-size: 72px;
	font-weight: 600;
	line-height: 1.1;
}

.survey_unit {
	font-size: 28px;
}

.survey_text {
	margin-top: 10px;
	font-size: 18px;
	font-weight: 700;
}

.survey_source {
	margin-top: 35px;
	font-size: var(--font_size_sm);
	font-weight: 400;
	text-align: center;
}

.survey_img {
	overflow: hidden;
	max-width: 1040px;
	margin: 55px auto 0;
	border-radius: 20px;
	box-shadow: var(--shadow_base);
	background: var(--color_white);
}

.survey_img img {
	display: block;
}

/* 出典の調査名（PR TIMES へのリンク） */
.survey_source a {
	text-decoration: underline;
	transition: opacity 0.3s;
}

.survey_source a:hover {
	opacity: 0.75;
}

/* 画像を2枚横並びにする場合（トップ・代理店の方へ） */
/* 2枚の高さがそろうよう、列の幅を各画像の縦横比（幅÷高さ）に合わせる
   左：1330×772（1.723）、右：1662×1626（1.022） */
.survey_imgs {
	display: grid;
	grid-template-columns: minmax(0, 1.723fr) minmax(0, 1.022fr);
	align-items: start;
	gap: 30px;
	max-width: 1200px;
	margin: 55px auto 0;
}

.survey_imgs .survey_img {
	max-width: none;
	margin: 0;
}

@media (max-width: 992px) {
	.survey_num {
		font-size: 56px;
	}

	.survey_unit {
		font-size: 22px;
	}

	.survey_text {
		font-size: var(--font_size_bs);
	}

	.survey_text br {
		display: none;
	}
}

@media (max-width: 768px) {
	.survey_list {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-top: 40px;
	}

	.survey_source {
		text-align: left;
	}

	.survey_img {
		margin-top: 40px;
		border-radius: 12px;
	}

	.survey_imgs {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		margin-top: 40px;
	}
}


/* ==================================================
	info table（左に項目名が並ぶ表。会社概要・ウェビナーの開催概要）
================================================== */
.info_table {
	width: 100%;
	border-top: 1px solid var(--color_gray_40);
}

.info_table th,
.info_table td {
	padding: 20px;
	border-bottom: 1px solid var(--color_gray_40);
	text-align: left;
	vertical-align: top;
}

.info_table th {
	width: 200px;
	font-weight: 700;
}

@media (max-width: 768px) {
	.info_table th,
	.info_table td {
		display: block;
		width: 100%;
		padding: 0 5px;
	}

	.info_table th {
		padding-top: 15px;
		border-bottom: 0;
	}

	.info_table td {
		padding-bottom: 15px;
		font-size: var(--font_size_sm);
	}
}


/* ==================================================
	filter（カテゴリの絞り込み。件数が増えるまでは表示のみ）
================================================== */
.filter_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
}

.filter_item {
	display: block;
	padding: 8px 22px;
	border: 1px solid var(--color_gray_50);
	border-radius: 999px;
	background: var(--color_white);
	font-size: var(--font_size_sm);
	font-weight: 700;
	line-height: 1.5;
}

.filter_item_current {
	border-color: var(--color_navy);
	background: var(--color_navy);
	color: var(--color_white);
}

@media (max-width: 576px) {
	.filter_list {
		gap: 8px;
	}

	.filter_item {
		padding: 6px 16px;
		font-size: var(--font_size_xs);
	}
}


/* ==================================================
	pagination（一覧のページ送り）
================================================== */
.pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 60px;
}

.pagination a,
.pagination span {
	display: flex;
	justify-content: center;
	align-items: center;
	min-width: 46px;
	height: 46px;
	padding: 0 16px;
	border: 1px solid var(--color_gray_50);
	border-radius: 999px;
	background: var(--color_white);
	font-family: var(--font_en);
	font-weight: 600;
	line-height: 1;
}

.pagination a {
	transition: border-color 0.3s, color 0.3s;
}

.pagination a:hover {
	border-color: var(--color_gold);
	color: var(--color_gold);
}

.pagination [aria-current="page"] {
	border-color: var(--color_navy);
	background: var(--color_navy);
	color: var(--color_white);
}

@media (max-width: 768px) {
	.pagination {
		margin-top: 40px;
	}
}


/* ==================================================
	side layout（本文＋右のサイドバー。992px以下は縦並び）
================================================== */
.side_layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 380px;
	align-items: start;
	gap: 60px;
}

@media (max-width: 1200px) {
	.side_layout {
		grid-template-columns: minmax(0, 1fr) 340px;
		gap: 40px;
	}
}

@media (max-width: 992px) {
	.side_layout {
		grid-template-columns: minmax(0, 1fr);
		gap: 60px;
	}
}


/* ==================================================
	article body（コラム・ニュース・掲載企業の声の本文）
================================================== */
.article_body > * + * {
	margin-top: 25px;
}

.article_body > h2 {
	margin-top: 70px;
}

.article_body > h2 + * {
	margin-top: 20px;
}

.article_body > p {
	line-height: 2;
}

.article_body img {
	display: block;
	border-radius: 12px;
}

@media (max-width: 768px) {
	.article_body > * + * {
		margin-top: 20px;
	}

	.article_body > h2 {
		margin-top: 50px;
	}

	.article_body > p {
		line-height: var(--line_height_base);
	}
}


/* ==================================================
	form（入力フォーム。送信処理は未実装）
================================================== */
.form_box {
	padding: 40px;
}

.form_box_title {
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.5;
}

.form_box_lead {
	margin-top: 5px;
	font-size: var(--font_size_sm);
}

.form_fields {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin-top: 25px;
}

.form_label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	line-height: 1.5;
}

.form_required {
	padding: 0 6px;
	border-radius: 4px;
	background: var(--color_red);
	color: var(--color_white);
	font-size: var(--font_size_xs);
	white-space: nowrap;
}

.form_input {
	display: block;
	width: 100%;
	height: 50px;
	margin-top: 8px;
	padding: 0 15px;
	border: 1px solid var(--color_gray_30);
	border-radius: 0;
	background: var(--color_gray_10);
	font-size: var(--font_size_bs);
	transition: border-color 0.3s, box-shadow 0.3s;
}

.form_input:focus-visible,
.form_choice input:focus-visible {
	outline: none;
	border-color: var(--color_gold_60);
	box-shadow: 0 0 8px color-mix(in srgb, var(--color_gold) 60%, transparent);
}

.form_input::placeholder {
	color: var(--color_gray);
}

.form_select {
	padding-right: 36px;
	background: var(--color_gray_10) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M0 0h12L6 10z' fill='%2300003E'/%3E%3C/svg%3E") right 12px center / 12px no-repeat;
	cursor: pointer;
	appearance: none;
}

.form_select:invalid {
	color: var(--color_navy_70);
}

.form_textarea {
	height: auto;
	min-height: 160px;
	padding: 12px 15px;
	line-height: 1.7;
	resize: vertical;
}

/* ラジオボタン・チェックボックスの選択肢 */
.form_group {
	border: 0;
}

.form_choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 20px;
	margin-top: 10px;
}

.form_choices_column {
	grid-template-columns: minmax(0, 1fr);
}

.form_choice {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	line-height: 1.6;
	cursor: pointer;
}

.form_choice input {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	margin: 0.2em 0 0;
	accent-color: var(--color_gold);
	cursor: pointer;
}

.form_submit {
	display: flex;
	width: 100%;
	max-width: 400px;
	margin: 30px auto 0;
	cursor: pointer;
}

.form_note {
	margin-top: 15px;
	font-size: var(--font_size_xs);
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

.form_note a {
	color: var(--color_blue);
	text-decoration: underline;
}

@media (max-width: 576px) {
	.form_box {
		padding: 30px 20px;
	}

	.form_choices {
		grid-template-columns: minmax(0, 1fr);
	}
}


/* ==================================================
	page title（第二階層のタイトル周り）
================================================== */
.page_title {
	position: relative;
	overflow: hidden;
	padding: 76px 0;
	background: var(--color_gold_10);
}

/* title_bk.png（480×600）は白背景の画像のため、乗算で背景色になじませる。右側の上下中央に置き、上下ははみ出た分を切る */
.page_title::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 4%;
	width: 480px;
	background: url("../images/title_bk.png") center / contain no-repeat;
	aspect-ratio: 480 / 600;
	transform: translateY(-50%);
	mix-blend-mode: multiply;
	pointer-events: none;
}

.page_title .inner {
	position: relative;
	z-index: 1;
}

.page_title_en {
	display: block;
	color: var(--color_gold);
	font-family: var(--font_en);
	font-size: 36px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.04em;
}

.page_title_main {
	margin-top: 5px;
	font-size: 56px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.04em;
}

.page_title_text {
	max-width: 800px;
	margin-top: 25px;
	line-height: 2;
}

/* タイトル下のボタン */
.page_title .btn_group {
	justify-content: flex-start;
	margin-top: 35px;
}

/* 詳細ページ（記事・事例など）：英字の代わりにカテゴリや日付を置き、長いタイトルに合わせて文字を小さくする */
.page_title_meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 15px;
	font-size: var(--font_size_sm);
	font-weight: 400;
}

/* カテゴリのラベルは太字のまま */
.page_title_meta .tag {
	font-weight: 700;
}

.page_title_detail .page_title_main {
	max-width: 960px;
	margin-top: 15px;
	font-size: var(--font_size_xxl);
	line-height: 1.5;
}

@media (max-width: 1200px) {
	.page_title::after {
		width: 400px;
	}
}

@media (max-width: 992px) {
	.page_title {
		padding: 70px 0;
	}

	.page_title::after {
		width: 320px;
	}

	.page_title_main {
		font-size: 44px;
	}
}

@media (max-width: 768px) {
	.page_title {
		padding: 50px 0;
	}

	.page_title::after {
		width: 240px;
	}

	.page_title_en {
		font-size: 24px;
	}

	.page_title_main {
		font-size: 34px;
	}

	.page_title_detail .page_title_main {
		font-size: var(--font_size_xl);
	}

	.page_title_text {
		margin-top: 15px;
		line-height: var(--line_height_base);
	}

	.page_title_text br {
		display: none;
	}

	.page_title .btn_group {
		margin-top: 25px;
	}
}

@media (max-width: 576px) {
	.page_title .btn_group {
		align-items: stretch;
	}
}


/* ==================================================
	breadcrumb
================================================== */
/* 下にも余白を取り、直後のセクションに背景があってもパンくずが接しないようにする */
.breadcrumb_list {
	display: flex;
	flex-wrap: wrap;
	padding: 35px 0;
	font-size: var(--font_size_sm);
	line-height: 1.6;
}

.breadcrumb_list li + li::before {
	content: ">";
	margin: 0 8px;
}

.breadcrumb_list a {
	color: var(--color_blue);
	transition: opacity 0.3s;
}

.breadcrumb_list a:hover {
	opacity: 0.75;
}

@media (max-width: 768px) {
	.breadcrumb_list {
		padding: 20px 0;
		font-size: var(--font_size_xs);
	}
}


/* ==================================================
	thanks（フォームの送信完了画面。資料ダウンロード・まとめてダウンロード・お問い合わせ・代理店・ウェビナー）
================================================== */
.thanks {
	padding: 30px 0 var(--section_space);
}

.thanks_body {
	display: flex;
	flex-direction: column;
	gap: 50px;
	max-width: 880px;
}

/* 完了アイコン・見出し・本文 */
.thanks_head {
	text-align: center;
}

.thanks_icon {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 64px;
	height: 64px;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--color_navy);
}

/* チェックマーク */
.thanks_icon::before {
	content: "";
	width: 20px;
	height: 10px;
	border-bottom: 3px solid var(--color_white);
	border-left: 3px solid var(--color_white);
	transform: translateY(-2px) rotate(-45deg);
}

.thanks_title {
	margin-top: 20px;
	font-size: var(--font_size_xl);
	font-weight: 700;
	line-height: 1.5;
}

.thanks_text {
	margin-top: 12px;
	color: var(--color_navy_80);
}

/* 小見出し（左にゴールドの線は bar_title） */
.thanks_sub_title {
	font-size: var(--font_size_md);
}

/* ダウンロードする資料（表紙＋タイトル＋ボタン） */
.thanks_doc {
	display: grid;
	grid-template-columns: 180px minmax(0, 1fr);
	align-items: center;
	gap: 30px;
	padding: 30px;
}

.thanks_doc_img {
	display: block;
	width: 100%;
	border-radius: 8px;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.thanks_doc_img.img_dummy {
	display: flex;
}

.thanks_doc_title {
	font-size: var(--font_size_lg);
	font-weight: 700;
	line-height: 1.5;
}

.thanks_doc_text {
	margin-top: 8px;
	font-size: var(--font_size_sm);
}

.thanks_doc_btn {
	margin-top: 20px;
}

/* 資料の一覧（名前＋ダウンロード） */
.thanks_file_list {
	margin-top: 15px;
	border-top: 1px solid var(--color_gray_30);
}

.thanks_file {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px 20px;
	padding: 15px 0;
	border-bottom: 1px solid var(--color_gray_30);
}

.thanks_file_name {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: color 0.3s;
}

.thanks_file_name:hover {
	color: var(--color_gold);
}

.thanks_file_btn {
	flex-shrink: 0;
	width: auto;
	min-height: 44px;
	padding: 6px 52px 6px 26px;
	box-shadow: none;
	font-size: var(--font_size_sm);
}

.thanks_file_btn .btn_icon {
	right: 22px;
	width: 16px;
}

/* 資料ごとの「PDFのみ」（まとめてダウンロード） */
.thanks_pdf_link {
	display: inline-flex;
	flex-shrink: 0;
	align-items: center;
	gap: 6px;
	font-size: var(--font_size_sm);
	font-weight: 700;
	transition: opacity 0.3s;
}

.thanks_pdf_link:hover {
	opacity: 0.75;
}

/* ZIPでまとめて保存（資料ダウンロードの複数件） */
.thanks_zip_note {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 15px 30px;
	margin-top: 15px;
	padding: 25px 30px;
	border-radius: 12px;
	background: var(--color_gold_10);
}

/* ZIPのボタンは文字が長いため幅を中身に合わせる */
.thanks_zip_note .btn,
.thanks_zip_btn {
	flex-shrink: 0;
	width: auto;
	padding-right: 64px;
}

/* ZIPでまとめて保存（まとめてダウンロード） */
.thanks_zip {
	overflow: hidden;
}

.thanks_zip_head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 20px;
	padding: 30px;
	background: var(--color_gold_10);
}

.thanks_zip_icon {
	display: flex;
	flex-shrink: 0;
	justify-content: center;
	align-items: center;
	width: 56px;
	height: 56px;
	border-radius: 10px;
	background: var(--color_white);
}

.thanks_zip_title {
	font-size: var(--font_size_md);
	font-weight: 700;
	line-height: 1.5;
}

.thanks_zip_meta {
	color: var(--color_gray);
	font-size: var(--font_size_sm);
}

.thanks_zip_btn {
	margin-left: auto;
}

.thanks_zip_body {
	padding: 25px 30px 10px;
}

.thanks_zip_label {
	font-size: var(--font_size_sm);
	font-weight: 700;
}

.thanks_zip_body .thanks_file_list {
	margin-top: 5px;
	border-top: 0;
}

.thanks_zip_body .thanks_file:last-child {
	border-bottom: 0;
}

.thanks_note {
	margin-top: 15px;
	color: var(--color_navy_80);
	font-size: var(--font_size_sm);
}

/* 次の行動の案内（資料を読んだあとに・ほかのウェビナー） */
.thanks_next {
	padding: 35px 40px;
	border-radius: 16px;
	background: var(--color_navy_10);
}

.thanks_next_title {
	font-size: var(--font_size_md);
	font-weight: 700;
	line-height: 1.5;
}

.thanks_next_text {
	margin-top: 10px;
}

.thanks_next .btn_group {
	justify-content: flex-start;
	margin-top: 20px;
}

.thanks_next .btn {
	width: auto;
	padding: 8px 32px;
}

/* 右の「>」と文字が重ならないよう右の余白を広げる */
.thanks_next .btn_arrow {
	padding-right: 56px;
}

/* ボタンを右に置く（ウェビナー） */
.thanks_next_row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px 30px;
}

.thanks_next_row .btn {
	flex-shrink: 0;
}

/* ページへのリンク（ご連絡までの間に） */
.thanks_link_list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
	margin-top: 15px;
}

.thanks_link_list a {
	display: block;
	position: relative;
	padding: 22px 50px 22px 24px;
	border: 1px solid var(--color_gray_30);
	border-radius: 12px;
	background: var(--color_white);
	font-weight: 700;
	transition: border-color 0.3s, color 0.3s;
}

.thanks_link_list a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 8px;
	height: 8px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
	transform: translateY(-50%) rotate(45deg);
}

.thanks_link_list a:hover {
	border-color: var(--color_gold);
	color: var(--color_gold);
}

/* 戻るリンク */
.thanks_back {
	text-align: center;
}

.thanks_back_link {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 4px;
	transition: opacity 0.3s;
}

.thanks_back_link:hover {
	opacity: 0.75;
}

@media (max-width: 768px) {
	.thanks {
		padding-top: 20px;
	}

	.thanks_body {
		gap: 40px;
	}

	.thanks_icon {
		width: 56px;
		height: 56px;
	}

	.thanks_text {
		font-size: var(--font_size_sm);
		text-align: left;
	}

	.thanks_text br {
		display: none;
	}

	.thanks_doc {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
		padding: 25px 20px;
	}

	.thanks_doc_img {
		max-width: 320px;
	}

	.thanks_doc_btn,
	.thanks_zip_note .btn,
	.thanks_zip_btn {
		width: 100%;
	}

	.thanks_zip_note {
		flex-direction: column;
		align-items: stretch;
		padding: 20px;
	}

	.thanks_zip_head {
		padding: 20px;
	}

	.thanks_zip_btn {
		margin-left: 0;
	}

	.thanks_zip_body {
		padding: 20px 20px 5px;
	}

	.thanks_next {
		padding: 25px 20px;
	}

	.thanks_next_row {
		flex-direction: column;
		align-items: flex-start;
	}

	.thanks_link_list {
		grid-template-columns: minmax(0, 1fr);
		gap: 10px;
	}

	.thanks_link_list a {
		padding: 18px 44px 18px 20px;
	}
}

/* 「ダウンロード」ボタンの行は折り返す。「PDFのみ」は短いので名前の横に置いたままにする */
@media (max-width: 576px) {
	.thanks_file:has(.thanks_file_btn) {
		flex-wrap: wrap;
	}

	.thanks_next .btn_group {
		align-items: stretch;
	}

	.thanks_next .btn {
		width: 100%;
	}
}


/* ==================================================
	header
================================================== */
.header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
	width: 100%;
	height: var(--header_height);
	box-shadow: var(--shadow_base);
	background: var(--color_white);
}

.header_inner {
	display: flex;
	align-items: center;
	gap: 30px;
	width: var(--content_width);
	max-width: 1440px;
	height: 100%;
	margin: 0 auto;
}

.header_logo {
	flex-shrink: 0;
	width: 190px;
	margin-right: auto;
}

.header_logo img {
	display: block;
}

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

.header_nav_list a {
	font-size: var(--font_size_bs);
	white-space: nowrap;
	transition: color 0.3s;
}

.header_nav_list a:hover,
.header_nav_list a[aria-current="page"] {
	color: var(--color_gold);
}

.header_btns {
	display: flex;
	gap: 10px;
}

.header_btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 158px;
	height: 50px;
	padding-bottom: 2px;
	border: 1px solid var(--color_navy);
	border-radius: 4px;
	background: var(--color_navy);
	color: var(--color_white);
	font-size: var(--font_size_bs);
	font-weight: 700;
	line-height: 1;
	transition: opacity 0.3s;
}

.header_btn:hover {
	opacity: 0.75;
}

.header_btn_outline {
	background: var(--color_white);
	color: var(--color_navy);
}

@media (max-width: 1400px) {
	.header_inner {
		gap: 24px;
	}

	.header_logo {
		width: 160px;
	}

	.header_nav_list {
		gap: 14px;
	}

	.header_nav_list a {
		font-size: var(--font_size_sm);
	}

	.header_btn {
		width: 120px;
	}
}

@media (max-width: 1200px) {
	.header_inner {
		gap: 14px;
	}

	.header_logo {
		width: 140px;
	}

	.header_nav_list {
		gap: 8px;
	}

	.header_nav_list a {
		font-size: 13px;
	}

	.header_btn {
		width: 100px;
		height: 44px;
		font-size: var(--font_size_sm);
	}
}

@media (max-width: 992px) {
	.header_nav,
	.header_btns {
		display: none;
	}
}

@media (max-width: 576px) {
	.header_logo {
		width: 150px;
	}
}


/* ==================================================
	menu button（992px以下）
================================================== */
.menu_btn {
	display: none;
	position: relative;
	width: 48px;
	height: 48px;
	margin-right: -6px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.menu_btn_line {
	position: absolute;
	left: 11px;
	width: 26px;
	height: 3px;
	border-radius: 2px;
	background: var(--color_navy);
	transition: transform 0.6s, opacity 0.6s;
}

.menu_btn_line:nth-child(1) {
	top: 14px;
}

.menu_btn_line:nth-child(2) {
	top: 23px;
}

.menu_btn_line:nth-child(3) {
	top: 32px;
}

.menu_btn[aria-expanded="true"] .menu_btn_line:nth-child(1) {
	transform: translateY(9px) rotate(-45deg);
}

.menu_btn[aria-expanded="true"] .menu_btn_line:nth-child(2) {
	opacity: 0;
}

.menu_btn[aria-expanded="true"] .menu_btn_line:nth-child(3) {
	transform: translateY(-9px) rotate(45deg);
}

@media (max-width: 992px) {
	.menu_btn {
		display: block;
	}
}


/* ==================================================
	sp menu（992px以下）
================================================== */
.sp_menu {
	position: fixed;
	top: var(--header_height);
	left: 0;
	z-index: 900;
	overflow-y: auto;
	width: 100%;
	height: calc(100dvh - var(--header_height));
	padding: 30px 20px 40px;
	background: var(--color_gray_20);
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.6s, visibility 0.6s;
}

.sp_menu.is_open {
	visibility: visible;
	opacity: 1;
}

.sp_menu_list,
.sp_menu_cta {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 0.6s, transform 0.6s;
}

.sp_menu.is_open .sp_menu_list,
.sp_menu.is_open .sp_menu_cta {
	opacity: 1;
	transform: translateY(0);
}

.sp_menu_list {
	display: flex;
	flex-direction: column;
	gap: 5px;
	max-width: 600px;
	margin: 0 auto;
}

.sp_menu_list a {
	display: block;
	position: relative;
	padding: 16px 50px 16px 20px;
	border-radius: 5px;
	background: var(--color_white);
	font-weight: 600;
}

.sp_menu_list a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 24px;
	width: 10px;
	height: 10px;
	border-top: 3px solid var(--color_gold);
	border-right: 3px solid var(--color_gold);
	transform: translateY(-50%) rotate(45deg);
}

.sp_menu_cta {
	display: flex;
	justify-content: center;
	gap: 10px;
	max-width: 600px;
	margin: 30px auto 0;
}

.sp_menu_cta .btn {
	flex: 1;
	min-height: 60px;
}

.sp_menu_sub {
	margin-top: 25px;
	font-size: var(--font_size_sm);
	text-align: center;
}

.sp_menu_sub a {
	text-decoration: underline;
}

@media (max-width: 576px) {
	.sp_menu {
		padding: 20px 15px 30px;
	}

	.sp_menu_list a {
		padding: 12px 45px 12px 15px;
	}

	.sp_menu_cta {
		flex-direction: column;
		margin-top: 20px;
	}
}


/* ==================================================
	cta
================================================== */
.cta {
	padding: calc(var(--section_space) + 25px) 0 var(--section_space);
	background: var(--color_gold_10);
}

/* 2枚のCTAカードを中央に並べる */
.cta_list {
	display: flex;
	justify-content: center;
	gap: 48px;
}

.cta_item {
	flex: 0 1 calc((100% - 48px * 2) / 3);
	/* 中のボタン（幅300px）に押し広げられないようにする */
	min-width: 0;
	padding: 0 40px 40px;
	text-align: center;
}

.cta_img {
	display: block;
	width: 270px;
	margin: -25px auto 0;
}

.cta_title {
	margin-top: 20px;
	font-size: 28px;
	font-weight: 700;
	line-height: 1.5;
}

.cta_text {
	margin-top: 15px;
	line-height: 1.6;
}

.cta_item .btn {
	margin-top: 35px;
}

/* TimeRex（日程調整）の埋め込み。中身は TimeRex が描画する */
.cta_timerex {
	margin-top: 60px;
}

@media (max-width: 1200px) {
	.cta_list {
		gap: 30px;
	}

	.cta_item {
		flex-basis: calc((100% - 30px * 2) / 3);
		padding: 0 25px 35px;
	}

	.cta_img {
		width: 220px;
	}

	.cta_title {
		font-size: var(--font_size_lg);
	}

	.cta_text br {
		display: none;
	}
}

@media (max-width: 992px) {
	.cta_list {
		flex-direction: column;
		gap: 60px;
		max-width: 480px;
		margin: 0 auto;
	}

	.cta_item {
		flex-basis: auto;
	}
}

@media (max-width: 576px) {
	.cta_item {
		padding: 0 20px 30px;
	}
}


/* ==================================================
	footer
================================================== */
.footer {
	padding: 80px 0 40px;
	background: var(--color_navy);
	color: var(--color_white);
}

.footer_inner {
	display: flex;
	justify-content: space-between;
	gap: 60px;
}

.footer_logo {
	display: block;
	width: 190px;
}

.footer_company {
	margin-top: 30px;
	font-weight: 700;
}

.footer_address {
	margin-top: 5px;
	font-style: normal;
	line-height: 1.5;
}

.footer_note {
	max-width: 500px;
	margin-top: 60px;
	font-size: 13px;
	line-height: 1.7;
}

.footer_nav {
	display: grid;
	grid-template-columns: repeat(3, 230px);
}

.footer_nav_list li + li {
	margin-top: 20px;
}

.footer_nav_list a {
	transition: color 0.3s;
}

.footer_nav_list a:hover {
	color: var(--color_gold_60);
}

.footer_copy {
	display: block;
	margin-top: 80px;
	font-family: var(--font_en);
	font-size: var(--font_size_sm);
	text-align: center;
}

@media (max-width: 1200px) {
	.footer_nav {
		grid-template-columns: repeat(3, 180px);
	}
}

@media (max-width: 992px) {
	.footer_inner {
		flex-direction: column;
		gap: 50px;
	}

	.footer_nav {
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
	}
}

@media (max-width: 576px) {
	.footer {
		padding-top: 60px;
	}

	.footer_note {
		margin-top: 30px;
	}

	.footer_nav {
		grid-template-columns: repeat(2, 1fr);
	}

	.footer_nav_list a {
		font-size: var(--font_size_sm);
	}

	.footer_copy {
		margin-top: 50px;
	}
}
