@charset "UTF-8";
/* ============================================================================
 * サポート・お問い合わせサイト 共通CSS（2026年7月 リニューアル）
 * 対象：TOPページ(index.tpl) / 手続きページ(question/*.tpl) /
 *       FastAnswer2 (knowledge.html / knowledgeList.html)
 * 前提：reset.css を先に読み込むこと
 * ========================================================================= */

/* --- 基本設定 --- */
* {
	box-sizing: border-box;
}
html {
	font-size: 16px;
	scroll-behavior: smooth;
}
/* 文字サイズ変更（ヘッダー「文字サイズ」ボタン）は common.js が
   html/body 等に font-size を直接指定して切り替える
   （コーポレートサイトと同一仕様・16px / 18px / 20px の3段階） */

body {
	font-family: 'Noto Sans JP', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
	color: #333333;
	background-color: #f4f6f9;
	font-size: 1rem;
	line-height: 1.6;
	word-wrap: break-word;
	position: relative;
	-webkit-text-size-adjust: 100%;
}
a {
	color: #005bac;
	text-decoration: none;
	cursor: pointer;
}
a:hover {
	text-decoration: underline;
}
h1, h2, h3, h4, h5, h6, th, strong, b {
	font-weight: bold;
}
ol, ul {
	list-style: none;
}
select {
	color: #333;
}
.container {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.pc_only { display: inline; }
.smp_only { display: none; }
@media screen and (max-width: 640px) {
	.pc_only { display: none; }
	.smp_only { display: inline; }
}

/* ============================================================================
 * ページ最上部の水色帯（既存サイトより移植 : my-parts/header-footer.html）
 * ========================================================================= */
.header_top_nav {
	height: 50px;
	color: #fff;
	background: #008BD8;
	z-index: 1001;
	position: relative;
}
.header_top_nav .inner {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: 100%;
	margin: 0 auto;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}
.header_top_nav .header_txt {
	font-size: 87.5%;
	font-weight: 500;
	margin-right: auto;
}
.header_top_nav .header_link {
	display: flex;
	height: 100%;
	flex-shrink: 0;
}
.header_top_nav .header_link li {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	flex-shrink: 0;
}
.header_top_nav .header_link li a {
	display: flex;
	align-items: center;
	color: #fff;
	font-weight: 700;
	padding: 0 30px;
	text-decoration: none;
	white-space: nowrap;
}
.header_top_nav .header_link li a:hover {
	opacity: 0.8;
}
.header_top_nav .header_link li img {
	width: 8px;
	margin: 0 15px 0 0;
}
.header_top_nav .header_link li:first-child { background: #1996DC; }
.header_top_nav .header_link li:nth-child(2) { background: #1590D4; }
.header_top_nav .header_link li:nth-child(3) { background: #0C86CA; }
.header_top_nav .header_link li:nth-child(4) { background: #007ABE; }
.header_top_nav .fontsize {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 40px;
	width: auto;
	border: none;
	flex-shrink: 0;
}
.header_top_nav .fontsize p {
	font-weight: 700;
	white-space: nowrap;
}
.header_top_nav .fontsize ul {
	display: flex;
}
.header_top_nav .fontsize ul li {
	display: flex;
	align-items: center;
	justify-content: center;
}
.header_top_nav .fontsize ul li button {
	display: flex;
	align-items: center;
	justify-content: center;
	appearance: none;
	-webkit-appearance: none;
	-webkit-tap-highlight-color: transparent;
	color: #000;
	background: #fff;
	width: 30px;
	height: 30px;
	padding: 0;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	/* 文字サイズ拡大時も帯の高さを崩さず、「A+」が折り返さないよう固定サイズとする */
	font-size: 14px;
	line-height: 1;
	font-weight: bold;
	white-space: nowrap;
	flex-shrink: 0;
}
/* クリック時・上下限到達時とも見た目は変えない
   （ブラウザ既定の :active の背景暗転／無効時のグレーアウトを打ち消す） */
.header_top_nav .fontsize ul li button:hover,
.header_top_nav .fontsize ul li button:focus,
.header_top_nav .fontsize ul li button:focus-visible,
.header_top_nav .fontsize ul li button:active,
.header_top_nav .fontsize ul li button:disabled,
.header_top_nav .fontsize ul li button[disabled] {
	color: #000;
	background: #fff;
	border: none;
	opacity: 1;
	outline: none;
	box-shadow: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}
.header_top_nav .fontsize ul li:first-child {
	margin: 0 6px 0 15px;
}
@media screen and (max-width: 640px) {
	.header_top_nav {
		display: none;
	}
}

/* ヘッダーの読み込みが完了するまでの表示崩れ防止
   （FastAnswer2側ページはAJAXでヘッダーを差し込むため。実寸に合わせること） */
#replaceHeader {
	height: 110px;	/* 水色帯50px ＋ グローバルナビ約60px */
}
@media screen and (max-width: 640px) {
	#replaceHeader {
		height: 58px;	/* 水色帯は非表示のため グローバルナビのみ */
	}
}

/* ============================================================================
 * グローバルメニュー
 * ========================================================================= */
.global-nav {
	background-color: #ffffff;
	border-bottom: 2px solid #005bac;
	position: sticky;
	top: 0;
	z-index: 1000;
	box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.global-nav-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.nav-logo {
	padding: 8px 30px 8px 0;
	flex-shrink: 0;
}
.nav-logo img {
	height: 44px;
	width: auto;
	display: block;
}
.global-nav-list {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
	flex: 1;
}
.global-nav-list li {
	flex: 1;
}
.global-nav-list li a {
	display: block;
	padding: 16px 8px;
	text-align: center;
	color: #333333;
	font-weight: bold;
	font-size: 1.13rem;
	transition: all 0.2s;
	white-space: nowrap;
}
.global-nav-list li a:hover {
	background-color: #005bac;
	color: #ffffff;
	text-decoration: none;
}

/* ============================================================================
 * パンくずリスト
 * ========================================================================= */
.breadcrumb {
	padding: 15px 0;
	font-size: 0.85rem;
	color: #666;
}
.breadcrumb a { color: #666; }
.breadcrumb a:hover { color: #005bac; }
.breadcrumb span { margin: 0 8px; color: #999; }

/* FastAnswer2側パンくず（既存クラス名のまま新デザイン化） */
.breadcrumbslist_area {
	width: 100%;
}
.breadcrumbslist {
	max-width: 1200px;
	margin: 0 auto;
	padding: 15px 20px;
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	font-size: 0.85rem;
	color: #666;
}
.breadcrumbslist li a { color: #666; }
.breadcrumbslist li a:hover { color: #005bac; }
.breadcrumbslist li:after {
	content: '＞';
	margin: 0 8px;
	color: #999;
}
.breadcrumbslist li:last-child:after {
	display: none;
}

/* ============================================================================
 * ページタイトル帯
 * ========================================================================= */
/* TOPページ用メインビジュアル */
.page-title-banner {
	background: linear-gradient(135deg, #005bac 0%, #003a70 100%);
	color: #ffffff;
	padding: 40px 0;
}
.page-title-banner h1 {
	font-size: 2rem;
	font-weight: bold;
	letter-spacing: 0.5px;
	text-align: left;
}
/* 下位階層ページタイトル帯 */
.page-header {
	background-color: #005bac;
	color: #ffffff;
	padding: 25px 0;
	margin-bottom: 30px;
}
.page-header h1 {
	font-size: 1.7rem;
	font-weight: bold;
	letter-spacing: 0.5px;
}

/* ============================================================================
 * TOPページ
 * ========================================================================= */
.news-section,
.fastpass-section,
.purpose-section,
.faq-section,
.contact-combined-section,
.accordion-item {
	scroll-margin-top: 85px;
}
.section-title {
	font-size: 1.5rem;
	font-weight: bold;
	margin-bottom: 25px;
	padding-left: 10px;
	border-left: 5px solid #005bac;
	text-align: left;
	color: #222222;
}
.sub-section-title {
	font-size: 1.25rem;
	font-weight: bold;
	color: #003a70;
	margin-bottom: 20px;
	padding-bottom: 8px;
	border-bottom: 2px solid #e2e8f0;
	text-align: left;
	display: flex;
	align-items: center;
}

/* インラインSVGピクトグラム用スタイル */
.title-icon {
	width: 1.6rem;
	height: 1.6rem;
	stroke: #005bac;
	margin-right: 12px;
	flex-shrink: 0;
}
.card-icon {
	width: 1.8rem;
	height: 1.8rem;
	stroke: #005bac;
	flex-shrink: 0;
}

/* --- ①お知らせ --- */
.news-section {
	background-color: #ffffff;
	padding: 50px 0 35px;
	border-bottom: 1px solid #e0e6ed;
}
.news-list { list-style: none; padding: 0; }
.news-item { display: flex; align-items: baseline; padding: 12px 0; border-bottom: 1px dashed #bbb; font-size: 0.95rem; }
.news-item:last-child { border-bottom: none; }
/* 文字サイズ拡大時も日付が折り返さないよう、幅は最小値で確保する */
.news-date { color: #777; font-weight: bold; font-family: Arial, sans-serif; margin-right: 20px; flex-shrink: 0; min-width: 90px; white-space: nowrap; }
.news-badge { font-size: 0.75rem; font-weight: bold; padding: 2px 8px; border-radius: 3px; margin-right: 15px; flex-shrink: 0; background-color: #e0e6ed; color: #444; }
.news-badge.maintenance { background-color: #f1c40f; color: #fff; }
.news-badge.important { background-color: #e74c3c; color: #fff; }
.news-badge.info { background-color: #3498db; color: #fff; }
.news-text { flex: 1; }
.news-text a,
.news-text a:visited,
.news-text a p { color: #005bac; }
.news-text a:hover,
.news-text a:hover p { color: #003a70; }
.news-text p { display: inline; }
.btn-news-more-wrap { text-align: center; margin-top: 15px; }
.btn-news-more { display: inline-block; color: #005bac; font-weight: bold; font-size: 0.9rem; }

/* --- ②各種お手続き --- */
.fastpass-section {
	background-color: #eef2f7;
	padding: 50px 0;
	border-bottom: 1px solid #e0e6ed;
}
.info-notice-bar { background-color: #fff4f4; border: 1px solid #ffcaca; border-left: 5px solid #e74c3c; padding: 15px 20px; border-radius: 4px; margin-bottom: 25px; color: #c0392b; font-size: 0.95rem; font-weight: bold; }
.fastpass-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.fastpass-card { background: #ffffff; padding: 18px 24px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); transition: transform 0.2s, box-shadow 0.2s; display: flex; flex-direction: column; justify-content: space-between; }
.fastpass-card:hover { transform: translateY(-4px); box-shadow: 0 8px 15px rgba(0,0,0,0.1); }
.card-header-row { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.fastpass-card h3 { font-size: 1.1rem; color: #003a70; font-weight: bold; }
.fastpass-card p { font-size: 0.85rem; color: #666; margin-bottom: 12px; line-height: 1.5; text-align: left; }

.btn-fast {
	display: inline-block;
	background-color: #ffffff;
	color: #005bac;
	border: 1px solid #005bac;
	padding: 7px 0;
	width: 170px;
	border-radius: 4px;
	font-weight: bold;
	font-size: 0.88rem;
	transition: all 0.2s;
	text-align: center;
	margin: 0 auto;
	flex-shrink: 0;
}
.btn-fast:hover { background-color: #003a70; border-color: #003a70; color: #ffffff; text-decoration: none; }

.dropdown-container {
	position: relative;
	width: 170px;
	margin: 0 auto;
}
.dropdown-container .btn-dropdown-toggle {
	width: 100%;
	margin: 0;
}
.dropdown-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	z-index: 100;
	background-color: #ffffff;
	border: 1px solid #005bac;
	border-radius: 4px;
	list-style: none;
	padding: 5px 0;
	margin-top: 5px;
	min-width: 280px;
	max-width: calc(100vw - 40px);
	box-shadow: 0 4px 15px rgba(0,0,0,0.15);
}
.dropdown-menu.show { display: block; }
.dropdown-menu li a { display: block; padding: 11px 18px; color: #333333; font-size: 0.88rem; font-weight: bold; text-align: left; border-bottom: 1px dashed #e2e8f0; transition: background-color 0.2s, color 0.2s; text-decoration: none; }
.dropdown-menu li:last-child a { border-bottom: none; }
.dropdown-menu li a:hover { background-color: #003a70; color: #ffffff; text-decoration: none; }

/* --- ③商品別サポート --- */
.purpose-section {
	padding: 50px 0;
	background-color: #ffffff;
	border-bottom: 1px solid #e0e6ed;
}
.tab-buttons { display: flex; gap: 5px; border-bottom: 3px solid #005bac; margin-bottom: 0; flex-wrap: wrap; }
.tab-button { padding: 12px 28px; font-size: 1rem; font-weight: bold; color: #475569; background-color: #e2e8f0; border: none; border-radius: 6px 6px 0 0; cursor: pointer; transition: all 0.2s ease; }
.tab-button:hover { background-color: #cbd5e1; }
.tab-button.active { background-color: #005bac; color: #ffffff; }
.tab-content { display: none; background: #ffffff; padding: 30px; border: 1px solid #cbd5e1; border-top: none; border-radius: 0 0 8px 8px; box-shadow: 0 4px 6px rgba(0,0,0,0.02); }
.tab-content.active { display: block; }
.text-support-list { list-style: none; }
.text-support-list > li { display: flex; justify-content: space-between; align-items: center; padding: 12px 15px; background: #f8f9fa; margin-bottom: 8px; border-radius: 4px; border: 1px solid #e2e8f0; }
.text-support-list .item-title { font-size: 0.95rem; color: #333; font-weight: bold; flex: 1; text-align: left; padding-right: 15px; }

.sub-links-inline { display: flex; gap: 8px; width: 300px; justify-content: flex-start; flex-shrink: 0; }
.sub-links-inline a { background: #ffffff; border: 1px solid #005bac; padding: 5px 16px; border-radius: 4px; font-size: 0.85rem; display: inline-block; color: #005bac; font-weight: bold; transition: all 0.2s; text-align: center; }
.sub-links-inline a:hover { background: #003a70; border-color: #003a70; color: #ffffff; text-decoration: none; }

.banner-group-box { margin-bottom: 25px; }
.banner-group-box:last-child { margin-bottom: 0; }
.banner-section-title { font-size: 0.9rem; font-weight: bold; color: #334155; margin-bottom: 12px; padding-left: 8px; border-left: 4px solid #2ecc71; line-height: 1.2; }

/* バナーボタン（既存ページ同様、ボタン内に画像＋ラベルを設置。6列固定・横長） */
.banner-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }
.banner-item {
	display: flex;
	width: 100%;
	background-color: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	overflow: hidden;
	text-decoration: none;
	transition: transform 0.2s, box-shadow 0.2s;
	flex-wrap: wrap;
    justify-content: space-evenly;	
}
.banner-item:hover {
	transform: scale(1.03);
	box-shadow: 0 4px 10px rgba(0,0,0,0.08);
	text-decoration: none;
}
.banner-item img {
	display: block;
	width: 100%;
}
.banner-item span {
	display: block;
	background-color: #f1f5f9;
	color: #334155;
	font-size: 0.78rem;
	font-weight: bold;
	text-align: center;
	line-height: 1.2;
	padding: 6px 8px;
	border-top: 1px solid #e2e8f0;
	transition: background-color 0.2s, color 0.2s;
	width: 100%;
}
.banner-item:hover span {
	background-color: #003a70;
	color: #ffffff;
	border-color: #003a70;
}

/* --- ④よくあるご質問（TOP） --- */
.faq-section {
	padding: 50px 0;
	background-color: #ffffff;
	border-bottom: 1px solid #e0e6ed;
}
.faq-block { background: #fff; padding: 10px 30px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); border: 1px solid #e2e8f0; }
.faq-block-subtitle { font-size: 1rem; font-weight: bold; color: #003a70; padding: 18px 0 0; }
.faq-list { list-style: none; padding: 0; }
.faq-section .faq-item { padding: 18px 0; border-bottom: 1px solid #eee; }
.faq-section .faq-item:last-child { border-bottom: none; }
.faq-q { font-weight: bold; font-size: 1rem; color: #005bac; display: flex; gap: 10px; margin-bottom: 6px; }
.faq-q a { color: #005bac; font-weight: bold; }
.faq-a { font-size: 0.9rem; color: #566573; padding-left: 28px; line-height: 1.5; }
.btn-faq-more { display: block; text-align: center; margin: 25px auto 10px; color: #005bac; font-weight: bold; font-size: 0.95rem; cursor: pointer; }

/* --- ⑤お問い合わせ（アコーディオン） --- */
.contact-combined-section {
	padding: 50px 0;
	background-color: #eef2f7;
	border-top: 1px solid #e0e6ed;
}
.contact-wrapper-form {
	background: #ffffff;
	padding: 35px;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.04);
	margin-bottom: 40px;
}
.form-intro {
	font-size: 1rem;
	color: #444;
	margin-bottom: 30px;
	background: #f0f4f8;
	padding: 15px 20px;
	border-radius: 6px;
	border-left: 4px solid #005bac;
}
.accordion-container { display: flex; flex-direction: column; gap: 15px; }
.accordion-item { border: 1px solid #ddd; border-radius: 6px; background: #fff; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.02); transition: border-color 0.2s; }
.accordion-item:hover { border-color: #005bac; }
.accordion-header { padding: 18px 20px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; background: #fff; user-select: none; transition: background 0.2s; }
.accordion-header:hover { background: #f8fafc; }
.header-left { display: flex; align-items: center; gap: 15px; }
.accordion-header h5 { font-size: 1.05rem; color: #222; font-weight: bold; }
.accordion-icon { font-size: 0.9rem; color: #888; transition: transform 0.2s; }
.accordion-icon::after { content: '▼'; }
.accordion-content { display: none; padding: 22px 25px; border-top: 1px solid #eee; background: #fafbfc; }
.contact-inner-links { list-style: none; padding-left: 0; margin-bottom: 0; }
.contact-inner-links li { font-size: 0.92rem; margin-bottom: 12px; position: relative; padding-left: 18px; line-height: 1.5; }
.contact-inner-links li:last-child { margin-bottom: 0; }
.contact-inner-links li::before { content: '●'; position: absolute; left: 0; color: #005bac; font-size: 0.6rem; top: 2px; font-family: "Helvetica Neue", Arial, sans-serif; }
.contact-inner-links li a { color: #005bac; font-weight: bold; text-decoration: none; }
.contact-inner-links li a:hover { text-decoration: underline; color: #003a70; }

.accordion-subtitle {
	font-size: 0.95rem;
	font-weight: bold;
	color: #222222;
	margin-top: 20px;
	margin-bottom: 10px;
	padding-left: 8px;
	border-left: 4px solid #005bac;
	line-height: 1.2;
}
.accordion-subtitle:first-of-type { margin-top: 0; }
.contact-inner-links + .accordion-subtitle { margin-top: 22px; }
.accordion-item.active { border-color: #005bac; box-shadow: 0 4px 10px rgba(0,58,112,0.06); }
.accordion-item.active .accordion-header { background: #f1f5f9; }
.accordion-item.active .accordion-icon { transform: rotate(180deg); color: #005bac; }
.accordion-item.active .accordion-content { display: block; }

/* ⑤-2 お電話によるお問い合わせ */
.tel-container {
	background: #ffffff;
	padding: 35px;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.04);
	text-align: left;
}
.tel-intro { font-size: 0.95rem; color: #333333; margin-bottom: 15px; line-height: 1.6; text-align: left; }
.tel-no-call-box { background-color: #fff4f4; border: 1px solid #ffcaca; border-left: 5px solid #e74c3c; border-radius: 4px; padding: 20px; margin-bottom: 25px; text-align: left; }
.tel-no-call-title { font-size: 0.95rem; color: #c0392b; font-weight: bold; margin-bottom: 12px; }
.tel-no-call-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 20px; list-style: none; padding-left: 0; font-size: 0.88rem; font-weight: bold; }
.tel-no-call-grid li { position: relative; padding-left: 14px; color: #444444; }
.tel-no-call-grid li::before { content: "・"; position: absolute; left: 0; color: #e74c3c; }
.tel-no-call-grid li a { color: #005bac; text-decoration: underline; font-weight: bold; }
.tel-no-call-grid li a:hover { color: #003a70; }
.tel-no-call-note { margin-top: 15px; padding-top: 12px; border-top: 1px dashed #ffcaca; font-size: 0.83rem; color: #666666; line-height: 1.5; }
.tel-no-call-note a { color: #005bac; text-decoration: underline; font-weight: bold; }

.tel-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 0.92rem; text-align: left; }
.tel-table tr { border-bottom: 1px solid #cbd5e1; }
.tel-table tr:first-child { border-top: 1px solid #cbd5e1; }
.tel-table td { padding: 12px 15px; vertical-align: middle; }
.tel-table .num-cell { width: 45px; font-weight: bold; color: #005bac; text-align: center; background-color: #f8fafc; border-right: 1px solid #cbd5e1; }
.tel-table .text-cell { color: #333333; font-weight: bold; }
.tel-notice { text-align: left; font-size: 0.85rem; color: #666666; margin-bottom: 25px; padding-left: 5px; line-height: 1.5; }

.tel-number-center-box {
	text-align: center;
	margin-top: 25px;
}
.tel-flex-container {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	text-align: left;
	max-width: 100%;
}
.tel-num-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}
.tel-icon {
	height: 34px;
	width: auto;
	display: block;
}
.tel-number {
	font-size: 2.2rem;
	font-weight: bold;
	color: #003a70;
	letter-spacing: 1px;
	line-height: 1;
	white-space: nowrap;
}
.tel-number a {
	color: #003a70;
	text-decoration: none;
}
.tel-info-right {
	font-size: 0.85rem;
	color: #666;
	line-height: 1.5;
}

/* ============================================================================
 * 下位階層 共通（手続きページ / FAQページ）
 * ========================================================================= */
.content-card {
	background-color: #ffffff;
	padding: 40px;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.03);
	margin-bottom: 50px;
}
.content-card .section-title {
	font-size: 1.3rem;
	color: #003a70;
	padding-left: 12px;
	border-left: 6px solid #005bac;
	margin-bottom: 20px;
	margin-top: 40px;
}
.content-card .section-title:first-child { margin-top: 0; }
.content-card h2.card-heading {
	font-size: 1.4rem;
	color: #003a70;
	border-bottom: 2px solid #e2e8f0;
	padding-bottom: 10px;
	margin-bottom: 25px;
	margin-top: 40px;
}
.content-card h2.card-heading:first-child { margin-top: 0; }
.text-body {
	font-size: 0.95rem;
	margin-bottom: 20px;
	color: #444;
}

/* ============================================================================
 * 手続きページ（クーポン再発行 / 著作権利用申請 / その他のお手続き）
 * ========================================================================= */
/* ステップUI */
.step-flow {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 30px 0;
}
.step-item {
	display: flex;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 20px;
}
.step-number {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 70px;
	height: 70px;
	background-color: #005bac;
	color: #ffffff;
	font-size: 1rem;
	font-weight: bold;
	font-family: Arial, sans-serif;
	border-radius: 50%;
	margin-right: 25px;
}
.step-content {
	flex: 1;
	min-width: 0;
}
.step-content h4 {
	font-size: 1.1rem;
	color: #003a70;
	margin-bottom: 8px;
	margin-top: 5px;
	font-weight: bold;
}
.step-content p {
	font-size: 0.95rem;
	color: #444;
	margin-bottom: 12px;
	line-height: 1.6;
}

/* ダウンロードリンク */
.download-links {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 15px;
}
.download-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background-color: #f1f5f9;
	color: #334155;
	border: 1px solid #cbd5e1;
	padding: 10px 15px;
	border-radius: 4px;
	font-size: 0.9rem;
	font-weight: bold;
	transition: all 0.2s;
}
.download-link:hover {
	background-color: #e2e8f0;
	border-color: #94a3b8;
	color: #0f172a;
	text-decoration: none;
}
.download-link::before {
	content: '📥';
	font-size: 1.1rem;
}

.btn-area {
	display: flex;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: 25px;
	padding-bottom: 35px;
	margin-bottom: 35px;
	border-bottom: 1px dashed #cbd5e1;
}
.btn-primary {
	display: inline-block;
	background-color: #ffffff;
	color: #005bac;
	border: 2px solid #005bac;
	font-size: 1rem;
	font-weight: bold;
	padding: 13px 30px;
	border-radius: 30px;
	box-shadow: 0 4px 6px rgba(0,91,172,0.03);
	transition: all 0.3s;
	text-align: center;
}
.btn-primary:hover {
	background-color: #003a70;
	border-color: #003a70;
	box-shadow: 0 6px 12px rgba(0,58,112,0.15);
	transform: translateY(-2px);
	text-decoration: none;
	color: #ffffff;
}
.btn-primary::after { content: ' ＞'; }

.additional-link-area {
	margin-top: 10px;
	margin-bottom: 25px;
}
.btn-sub-link {
	display: inline-block;
	background-color: #ffffff;
	color: #005bac;
	border: 1px solid #005bac;
	padding: 10px 24px;
	border-radius: 4px;
	font-size: 0.9rem;
	font-weight: bold;
	transition: all 0.2s;
	text-decoration: none;
}
.btn-sub-link:hover {
	background-color: #003a70;
	border-color: #003a70;
	color: #ffffff;
	text-decoration: none;
}

.note-box {
	background-color: #fff4f4;
	border: 1px solid #ffcaca;
	border-left: 4px solid #e74c3c;
	padding: 15px 20px;
	border-radius: 4px;
	font-size: 0.9rem;
	color: #c0392b;
	line-height: 1.6;
	margin-bottom: 30px;
}
.note-box a {
	color: #005bac;
	font-weight: bold;
	text-decoration: underline;
}
.note-box a:hover { color: #003a70; }

/* セクショングループボックス（著作権 / その他手続き） */
.copyright-group-box,
.procedure-group-box {
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	padding: 35px;
	margin-bottom: 40px;
	background-color: #ffffff;
}
.copyright-group-box:last-child,
.procedure-group-box:last-child {
	margin-bottom: 10px;
}
.copyright-group-box h2,
.procedure-group-box h2 {
	font-size: 1.4rem;
	color: #003a70;
	padding-left: 12px;
	border-left: 6px solid #005bac;
	margin-bottom: 25px;
	margin-top: 0;
	font-weight: bold;
}
.info-box {
	background-color: #fff4f4;
	border: 1px solid #ffcaca;
	border-left: 5px solid #e74c3c;
	padding: 20px;
	border-radius: 4px;
	font-size: 0.95rem;
	color: #c0392b;
	margin-bottom: 30px;
	line-height: 1.6;
	font-weight: bold;
}
/* ボックス内の通常リンク（ボタンは .btn-action 側の指定を優先させる） */
.info-box a:not(.btn-action) {
	color: #005bac;
	text-decoration: underline;
	font-weight: bold;
}
.info-box a:not(.btn-action):hover { color: #003a70; }

.item-block {
	margin-bottom: 30px;
	padding-left: 5px;
}
.item-block:last-child { margin-bottom: 0; }
.item-title {
	font-size: 1.05rem;
	font-weight: bold;
	color: #222222;
	margin-bottom: 10px;
	line-height: 1.5;
}
.item-text {
	font-size: 0.95rem;
	color: #444;
	margin-bottom: 15px;
	line-height: 1.6;
}
.btn-links-area {
	display: flex;
	gap: 15px;
	flex-wrap: wrap;
	margin-top: 10px;
}
.btn-action {
	display: inline-block;
	background-color: #ffffff;
	color: #005bac;
	border: 1px solid #005bac;
	font-size: 0.9rem;
	font-weight: bold;
	padding: 10px 24px;
	border-radius: 4px;
	transition: all 0.2s;
	text-align: center;
}
.btn-action:hover {
	background-color: #003a70;
	border-color: #003a70;
	text-decoration: none;
	color: #ffffff;
}
.btn-action.download {
	background-color: #f1f5f9;
	color: #334155;
	border: 1px solid #cbd5e1;
}
.btn-action.download:hover {
	background-color: #e2e8f0;
	border-color: #94a3b8;
	color: #0f172a;
}
.btn-action.download::before { content: '📥 '; }
.btn-action:not(.download)::after { content: ' ＞'; }

/* ============================================================================
 * よくあるご質問（FastAnswer2 : knowledgeList.html）
 * ========================================================================= */
.search-block { background-color: #eef2f7; padding: 30px; border-radius: 6px; margin-bottom: 40px; }
.search-form-group { margin-bottom: 20px; }
.search-form-group:last-child { margin-bottom: 0; }
.search-label { font-weight: bold; color: #003a70; margin-bottom: 10px; display: block; font-size: 1rem; }
.search-keyword-area { display: flex; }
.search-block .search_input_box { margin: 0 0 5px; }
/* common-custom.css の .area-search-form{display:flex} を打ち消し
   （flex化されるとキーワード入力欄が内容幅に縮むため） */
.search-block .area-search-form { display: block; }
.search-block input.search-keywords {
	appearance: none;
	flex: 1;
	width: 100%;
	height: 44px;
	padding: 0 15px;
	font-size: 1rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px 0 0 4px;
	outline: none;
	background: #fff;
}
.search-block input.search-keywords:focus { border-color: #005bac; }
.search-block .btn_search {
	height: 44px;
	background-color: #005bac;
	color: #fff;
	border: none;
	padding: 0 25px;
	font-weight: bold;
	font-size: 1rem;
	border-radius: 0 4px 4px 0;
	cursor: pointer;
	transition: background 0.2s;
	white-space: nowrap;
	flex-shrink: 0;
}
.search-block .btn_search:hover { background-color: #003a70; }
.search-block .faqid-search { display: flex; flex-wrap: wrap; max-width: 300px; margin-bottom: 0; }
.search-block .faqid-search .area-search-input { flex: 1; }
.search-block .faqid-search input.input-number {
	width: 100%;
	height: 44px;
	padding: 0 15px;
	font-size: 1rem;
	border: 1px solid #cbd5e1;
	border-radius: 4px 0 0 4px;
	outline: none;
	background: #fff;
	-moz-appearance: textfield;
}
.search-block .faqid-search input.input-number::-webkit-inner-spin-button,
.search-block .faqid-search input.input-number::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
#searchKnowledgeIdError { width: 100%; color: #e74c3c; font-size: 0.85rem; font-weight: bold; margin-top: 6px; }

/* 絞り込みキーワード（既存 .filter-workds を新デザイン化） */
.filter-workds { margin: 10px 0 5px; }
.filter-workds .cate { display: flex; flex-wrap: wrap; gap: 8px; }
.filter-workds .cate a {
	display: inline-block;
	padding: 5px 15px;
	border: 1px solid #cbd5e1;
	border-radius: 20px;
	font-size: 0.85rem;
	color: #555;
	background: #fff;
	cursor: pointer;
	user-select: none;
	text-decoration: none;
}
.filter-workds .cate a:hover { background: #e2e8f0; text-decoration: none; }

/* カテゴリから探す（3列グリッド・既存 .products_area / .product_box を新デザイン化） */
.products_area { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; }
.products_area .product_box { border: 1px solid #cbd5e1; border-radius: 6px; padding: 25px; background: #fff; transition: box-shadow 0.2s; }
.products_area .product_box:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.06); }
.products_area .product_box h4 { font-size: 1.15rem; color: #003a70; font-weight: bold; border-bottom: 2px solid #eef2f7; padding-bottom: 10px; margin-bottom: 15px; }
.products_area .product_box h4 a { color: #003a70; font-weight: bold; }
.products_area .product_box ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.products_area .product_box ul li a { display: block; font-size: 0.95rem; color: #005bac; font-weight: normal; padding: 0; background: none; border: none; }
.products_area .product_box ul li a:hover { text-decoration: underline; color: #003a70; }
.products_area .product_box ul li a::before { content: "・"; margin-right: 2px; color: #005bac; }

/* 検索結果ヘッダー */
.list-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid #eef2f7; padding-bottom: 10px; margin-bottom: 20px; gap: 15px; }
.result-count { font-weight: bold; color: #333; font-size: 1rem; flex: 1; }
.select-search-display { flex-shrink: 0; font-size: 0.9rem; color: #555; }
.sort-select,
.select-search-display select { padding: 6px 12px; border: 1px solid #cbd5e1; border-radius: 4px; font-size: 0.9rem; background: #fff; color: #333; cursor: pointer; }

/* 検索結果アコーディオンリスト */
.content-card .faq-list { list-style: none; padding: 0; }
.content-card .faq-item { padding: 25px 0; border-bottom: 1px solid #e2e8f0; }
.faq-question-block {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 15px;
}
.faq-item-title {
	font-size: 1.15rem;
	font-weight: bold;
	color: #005bac;
	line-height: 1.4;
	text-decoration: none;
	flex: 1;
}
.faq-item-title:hover {
	color: #003a70;
	text-decoration: underline;
}
.faq-accordion-btn {
	background: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	width: 26px;
	height: 26px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	font-weight: bold;
	color: #666;
	padding: 0;
	flex-shrink: 0;
	transition: all 0.2s;
	outline: none;
}
.faq-accordion-btn:hover {
	border-color: #005bac;
	color: #005bac;
	background-color: #f8fafc;
}
.faq-accordion-btn::after {
	content: '＋';
	line-height: 1;
}
.faq-item.active .faq-accordion-btn::after,
.faq-accordion-btn.opened::after {
	content: 'ー';
}
.faq-item.active .faq-accordion-btn,
.faq-accordion-btn.opened {
	border-color: #005bac;
	color: #005bac;
	background-color: #f1f5f9;
}

.faq-target-area { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; margin-bottom: 4px; }
.faq-target-label { font-size: 0.85rem; font-weight: bold; color: #555; margin-right: 4px; }
.faq-tag-badge { display: inline-block; background: #eef2f7; color: #003a70; font-size: 0.8rem; font-weight: bold; padding: 3px 10px; border-radius: 4px; }

/* アコーディオン内部（回答展開エリア） */
.faq-answer-expand-box {
	display: none;
	background: #fafbfc;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	padding: 22px 25px;
	margin-top: 15px;
}
.faq-answer-body {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.faq-a-badge {
	color: #e67e22;
	font-size: 1.6rem;
	font-family: Arial, sans-serif;
	font-weight: bold;
	line-height: 1.1;
}
.faq-answer-text {
	font-size: 0.95rem;
	color: #333;
	line-height: 1.7;
	flex: 1;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.faq-answer-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: 15px;
	padding-top: 12px;
	border-top: 1px dashed #e2e8f0;
	font-size: 0.85rem;
}
.faq-id-label { color: #888; }
.btn-read-more {
	color: #005bac;
	font-weight: bold;
	text-decoration: none;
}
.btn-read-more:hover {
	text-decoration: underline;
	color: #003a70;
}

/* ページネーション（既存 .lyt-pagination を新デザイン化） */
.lyt-pagination { display: flex; justify-content: center; align-items: center; gap: 5px; margin-top: 40px; }
.lyt-pagination li a,
.lyt-pagination li.current {
	display: inline-block;
	padding: 8px 12px;
	border-radius: 4px;
	color: #333;
	font-size: 0.9rem;
	text-decoration: none;
}
.lyt-pagination li a { border: 1px solid #cbd5e1; background: #fff; }
.lyt-pagination li a:hover { background: #005bac; color: #fff; border-color: #005bac; text-decoration: none; }
.lyt-pagination li.current { color: #005bac; font-weight: bold; }

/* ============================================================================
 * FAQ詳細（FastAnswer2 : knowledge.html）
 * ========================================================================= */
.faq-detail-header { border-bottom: 2px solid #005bac; padding-bottom: 20px; margin-bottom: 25px; }
.faq-detail-header .faq-target-area { margin-bottom: 15px; }
.faq-detail-header .faq-tag-badge { font-size: 0.85rem; padding: 4px 12px; }
.faq-title-wrap { display: flex; gap: 15px; align-items: flex-start; }
.icon-q { color: #005bac; font-size: 2rem; font-family: Arial, sans-serif; font-weight: bold; line-height: 1.1; }
.faq-title { font-size: 1.3rem; color: #222; font-weight: bold; line-height: 1.5; flex: 1; }
.faq-body-wrap { display: flex; gap: 15px; align-items: flex-start; background: #fafbfc; padding: 25px; border-radius: 6px; border: 1px solid #e2e8f0; margin-bottom: 15px; }
.icon-a { color: #e67e22; font-size: 2rem; font-family: Arial, sans-serif; font-weight: bold; line-height: 1.1; }
.faq-body { font-size: 1rem; color: #333; line-height: 1.8; flex: 1; min-width: 0; }
.faq-body img { max-width: 100%; height: auto; }
.faq-body table { border-collapse: collapse; }
.faq-body table th,
.faq-body table td { border: 1px solid #cbd5e1; padding: 6px 10px; }
.faq-body a { text-decoration: underline; }
.faq-id { text-align: right; font-size: 0.9rem; color: #888; margin-bottom: 40px; }

/* お困りごとは解決しましたか？（既存 .result_box / .answer_box を新デザイン化） */
.result_box {
	width: auto;
	margin: 0 0 10px;
	padding: 30px;
	text-align: center;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background-color: #fff;
}
.result_box h4 {
	font-size: 1.05rem;
	font-weight: bold;
	margin: 0 0 20px 0;
	color: #333;
}
.answer_box {
	display: flex;
	align-items: stretch;
	justify-content: center;
	gap: 15px;
	flex-wrap: wrap;
}
.answer_box a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	background-color: #fff;
	text-align: center;
	padding: 10px 20px;
	color: #444;
	font-weight: bold;
	font-size: 0.9rem;
	transition: all 0.2s;
}
.answer_box a:hover {
	background: #f0f4f8;
	border-color: #005bac;
	color: #005bac;
	text-decoration: none;
}

/* ============================================================================
 * お問い合わせフォーム（FastAnswer2 : form.html / formConfirm.html /
 *                        formComplete.html）
 * FA2のVueコンポーネントが出力するDOM構造に対して新デザインを適用する。
 * ========================================================================= */
.contact_page {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.contact_page .cnt_wrap {
	margin-bottom: 50px;
}
/* ページ見出し */
.contact_page .tit_blue {
	font-size: 1.5rem;
	font-weight: bold;
	color: #222222;
	margin: 30px 0 25px;
	padding-left: 10px;
	border-left: 5px solid #005bac;
}
/* 白カード */
.contact_page .cnts_box {
	background-color: #ffffff;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.03);
	padding: 40px;
	margin: 0 0 50px;
}
.contact_page h3 {
	width: 100%;
	font-size: 1.3rem;
	font-weight: bold;
	color: #003a70;
	margin-bottom: 20px;
	padding: 0 0 0 12px;
	border-left: 6px solid #005bac;
	position: relative;
	line-height: 1.4;
}
.contact_page h4 {
	font-size: 1.05rem;
	font-weight: bold;
	color: #222222;
	margin-bottom: 10px;
}

/* --- 進捗ステップ（入力 → 確認 → 完了） --- */
.progress_area {
	width: 100%;
	max-width: 720px;
	margin: 10px auto 40px;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.progress_area span {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #ffffff;
	color: #666666;
	font-weight: bold;
	font-size: 0.95rem;
	width: calc(100% / 3 - 24px);
	padding: 12px 10px;
}
.progress_area span.current {
	background-color: #005bac;
	border-color: #005bac;
	color: #ffffff;
}
.progress_area span:after {
	position: absolute;
	content: '';
	width: 0;
	height: 0;
	top: calc(50% - 8px);
	right: -20px;
	border-left: 9px solid #cbd5e1;
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
.progress_area span:last-child:after {
	display: none;
}

/* --- お知らせボックス --- */
.notice_wrap {
	padding: 20px;
	margin-bottom: 25px;
	background-color: #fff4f4;
	border: 1px solid #ffcaca;
	border-left: 5px solid #e74c3c;
	border-radius: 4px;
	color: #c0392b;
}
.notice_wrap h3 {
	padding: 0 0 10px 0;
	margin-bottom: 10px;
	border-left: none;
	border-bottom: 1px solid #ffcaca;
	color: #c0392b;
	font-size: 1.05rem;
}
.contact_page .contents-html {
	font-size: 0.95rem;
	color: #444;
	margin-bottom: 20px;
	line-height: 1.8;
}
.contact_page .form_guide {
	font-size: 1rem;
	margin-bottom: 20px;
}
.contact_page .txt_red {
	color: #e74c3c;
	font-weight: bold;
	margin-bottom: 15px;
}

/* --- 入力項目テーブル（dl/dt/dd） --- */
.contact_page .form_area dl {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: space-between;
	border-bottom: 1px solid #e2e8f0;
	margin-bottom: 30px;
}
.contact_page .form_area dl dt,
.contact_page .form_area dl dd {
	border-top: 1px solid #e2e8f0;
	box-sizing: border-box;
}
.contact_page .form_area dl dt {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 20px;
	margin: 0;
	width: 30%;
	background: #f8fafc;
	font-weight: bold;
	color: #222222;
	font-size: 0.95rem;
	position: relative;
}
.contact_page .form_area dl dt .form_dt_note {
	width: 100%;
	margin-top: 8px;
	font-size: 0.85rem;
	font-weight: normal;
	color: #666666;
}
.contact_page .form_area dl dd {
	display: flex;
	flex-direction: column;
	justify-content: center;	/* 見出し側と同じく内容を上下中央に置く */
	padding: 20px;
	width: 70%;
	font-size: 0.95rem;
	color: #333333;
}
.contact_page .form_area dl dd .note {
	display: block;
	margin-bottom: 8px;
	font-size: 0.85rem;
	color: #666666;
}

/* 必須／任意ラベル */
.req, .label-required {
	display: inline-flex;
	align-items: center;
	margin-left: 10px;
	padding: 2px 10px;
	border-radius: 3px;
	background-color: #e74c3c;
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: bold;
	flex-shrink: 0;
}
.label-optional {
	display: none;
}

/* --- 入力コントロール --- */
.contact_page input[type=text],
.contact_page input[type=tel],
.contact_page input[type=email],
.contact_page input[type=number],
.contact_page input[type=password],
.contact_page textarea,
.contact_page select {
	font-family: inherit;
	font-size: 1rem;
	color: #333333;
	background-color: #ffffff;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	padding: 10px 12px;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
	box-sizing: border-box;
	max-width: 100%;
}
.contact_page input[type=text]:focus,
.contact_page input[type=tel]:focus,
.contact_page input[type=email]:focus,
.contact_page input[type=number]:focus,
.contact_page textarea:focus,
.contact_page select:focus {
	border-color: #005bac;
	box-shadow: 0 0 0 3px rgba(0,91,172,0.1);
}
.contact_page input::placeholder,
.contact_page textarea::placeholder {
	color: #94a3b8;
}
.contact_page .form_area dl dd input[type=text],
.contact_page .form_area dl dd input[type=tel],
.contact_page .form_area dl dd input[type=email] {
	width: 100%;
	height: 48px;
}
.contact_page .form_area dl dd textarea {
	width: 100%;
	min-height: 10em;
	line-height: 1.6;
}
.contact_page select {
	appearance: none;
	-webkit-appearance: none;
	height: 48px;
	min-width: 200px;
	padding-right: 34px;
	cursor: pointer;
	background-image: linear-gradient(45deg, transparent 50%, #535353 50%), linear-gradient(135deg, #535353 50%, transparent 50%);
	background-position: calc(100% - 18px) 21px, calc(100% - 12px) 21px;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
}
/* セレクトのラッパー（矢印の二重表示を防ぎ、FAQ一覧用の指定を打ち消す） */
.contact_page .select_prefectures,
.contact_page .select-search-display {
	display: inline-flex;
	align-items: center;
	position: relative;
	font-size: inherit;
	color: inherit;
}
.contact_page .select_prefectures::after,
.contact_page .select-search-display::after {
	display: none;
}
.contact_page .select-search-display select {
	padding: 10px 34px 10px 12px;
	font-size: 1rem;
	background-color: #ffffff;
}

/* --- Vueコンポーネントの入力ラッパー --- */
/* 1項目分の外枠（全入力タイプ共通） */
.contact_page .area-contents {
	width: 100%;
}
.contact_page .contents-text {
	width: 100%;
}
/* 項目の補足説明（FA2管理画面で設定する追記テキスト） */
.contact_page .additionalText,
.contact_page .additionalLabel {
	font-size: 0.85rem;
	color: #666666;
	line-height: 1.6;
	margin-bottom: 6px;
}
.contact_page .additionalText:empty,
.contact_page .additionalLabel:empty {
	display: none;
}
.contact_page .additionalText a,
.contact_page .additionalLabel a {
	color: #005bac;
	text-decoration: underline;
}
.contact_page .additionalText ul,
.contact_page .additionalText ol {
	margin-left: 1.2em;
}
.contact_page .list-dsc li {
	list-style: disc;
	margin-left: 1.2em;
}
/* セレクト系のレイアウト枠 */
.contact_page .lyt-select-search {
	list-style: none;
	margin: 0;
	padding: 0;
}
.contact_page .area-search-display {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
}
.contact_page .area-search-display .txt-is-error {
	width: 100%;
}
/* テキストエリア（自由記述） */
.contact_page textarea.area-free-opinion {
	width: 100%;
	min-height: 10em;
	line-height: 1.6;
	resize: vertical;
}
/* 日付・時刻の分割セレクト（年／月／日／時：分） */
.contact_page .area-contents-date {
	width: 100%;
}
.contact_page .select-date,
.contact_page .select-date-hm {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}
.contact_page .select-date select,
.contact_page .select-date-hm select {
	min-width: 0;
}
.contact_page .list-frm-date {
	list-style: none;
	margin: 0;
	padding: 0;
}
/* 日付入力欄とカレンダーアイコンの上下位置を揃える
   （既定ではアイコンがベースライン揃えになり、入力欄の中心とズレるため） */
.contact_page .list-frm-date > li {
	display: flex !important;
	align-items: center !important;
	flex-wrap: nowrap;
	min-height: 0;
}
.contact_page .list-frm-date > li .flatpickr-wrapper {
	display: inline-flex;
	align-items: center;
	margin-right: 8px;	/* クリアボタンは幅0のため、余白は入力欄側に持たせる */
}
/* アイコンは入力欄（高さ48px）と同じ高さの枠に入れて上下中央に置く */
.contact_page .btn-calender {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	align-self: center;
	height: 48px;
	flex-shrink: 0;
	cursor: pointer;
}
.contact_page .btn-calender img[alt="calender"] {
	display: block;
	width: 32px !important;
	height: 32px !important;
	margin: 0;
}

/* ラジオ・チェックボックス */
.contact_page .input-radio,
.contact_page .input-checkbox {
	display: flex;
	align-items: center;
}
/* チェックボックス群（list-frm-check は list-frm-radio と同挙動） */
.contact_page .list-frm-check {
	list-style: none;
	margin: 0;
	padding: 0;
}
.contact_page .txt-check-item-label {
	display: flex;
	align-items: center;
	cursor: pointer;
}
.contact_page .txt-check-item {
	font-size: 0.95rem;
	line-height: 1.5;
}
/* 複数選択チェックボックス（FA2側のクラス名表記ゆれに対応） */
.contact_page .\31 2input-12check {
	width: 18px;
	height: 18px;
	margin-right: 6px;
	accent-color: #005bac;
	cursor: pointer;
	flex-shrink: 0;
}

/* 確認画面の表示専用テキスト */
.contact_page .txt-title {
	font-weight: bold;
	color: #222222;
}
.contact_page .txt-label {
	color: #666666;
	font-size: 0.9rem;
}
.contact_page .txt-value {
	color: #333333;
	white-space: pre-wrap;
	word-break: break-word;
}
.contact_page input[type=radio],
.contact_page input[type=checkbox] {
	width: 18px;
	height: 18px;
	margin-right: 6px;
	accent-color: #005bac;
	cursor: pointer;
	flex-shrink: 0;
}
.contact_page .list-frm-radio li,
.contact_page .list-frm-checkbox li {
	height: auto;
	min-height: 2.2em;
	display: flex;
	align-items: center;
	margin-bottom: 4px;
}
.contact_page ul.list-frm-radio.list-row-style,
.contact_page ul.list-frm-checkbox.list-row-style {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	gap: 4px 24px;
}
.contact_page ul.list-frm-radio.list-row-style li,
.contact_page ul.list-frm-checkbox.list-row-style li {
	margin-right: 0;
}
.contact_page .list-frm-radio label,
.contact_page .list-frm-checkbox label {
	cursor: pointer;
	display: flex;
	align-items: center;
}
/* 選択解除リンク */
.contact_page .deselect-radio {
	display: inline-block;
	margin-top: 6px;
	color: #005bac;
	text-decoration: underline;
	font-size: 0.9rem;
	cursor: pointer;
}
.contact_page .deselect-radio:hover {
	color: #003a70;
}

/* --- バリデーションエラー --- */
.txt-is-error,
.contact_page .help-block,
.contact_page .txt-error {
	display: block;
	color: #e74c3c;
	font-size: 0.9rem;
	font-weight: bold;
	margin-top: 6px;
}
.contact_page .is-error input[type=text],
.contact_page .is-error input[type=tel],
.contact_page .is-error input[type=email],
.contact_page .is-error textarea,
.contact_page .is-error select,
.contact_page input.is-error,
.contact_page textarea.is-error,
.contact_page select.is-error {
	border-color: #e74c3c;
	background-color: #fff8f8;
}

/* --- 説明テキストエリア --- */
.contact_page .text_area {
	margin: 30px 0;
	padding: 25px 30px;
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	font-size: 0.95rem;
	line-height: 1.8;
}
.contact_page .text_area p {
	margin: 0;
}

/* --- 同意エリア --- */
.contact_page .agree_area {
	margin: 30px 0;
	padding: 25px 30px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #ffffff;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.contact_page .agree_area p {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.8;
}
.txt-privacy-check {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}
.txt-privacy-check .input-check {
	margin-top: 0.25em;
}
.agreement-text {
	display: inline;
}
.form_area a {
	color: #005bac;
	text-decoration: underline;
}
.form_area a:hover {
	color: #003a70;
}

/* センシティブ項目の警告 */
.sensitiveAlertMessage {
	display: block;
	color: #c0392b;
	font-weight: bold;
	margin-bottom: 8px;
}
.sensitiveAlertOptions {
	color: #c0392b;
	font-size: 0.9rem;
	margin-bottom: 15px;
}
.box-contact {
	text-align: center;
}

/* --- 送信ボタン類 --- */
.contact_page .btn_area {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 20px;
	margin-top: 35px;
}
.contact_page .btn_area button,
.contact_page .btn_area a.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0 30px;
	min-width: 240px;
	height: 54px;
	border: 2px solid #005bac;
	border-radius: 27px;
	background-color: #005bac;
	color: #ffffff;
	font-size: 1.05rem;
	font-weight: bold;
	cursor: pointer;
	transition: all 0.2s;
}
.contact_page .btn_area button:hover,
.contact_page .btn_area a.btn:hover {
	background-color: #003a70;
	border-color: #003a70;
	color: #ffffff;
	text-decoration: none;
	opacity: 1;
}
/* 「戻る」など副次ボタン（type=button）は白地 */
.contact_page .btn_area button[type="button"] {
	background-color: #ffffff;
	color: #005bac;
}
.contact_page .btn_area button[type="button"]:hover {
	background-color: #003a70;
	border-color: #003a70;
	color: #ffffff;
}
/* 「内容を確認しました」未チェック時など非活性 */
.contact_page .btn_area button[disabled] {
	background-color: #cbd5e1;
	border-color: #cbd5e1;
	color: #ffffff;
	pointer-events: none;
	opacity: 1;
}
.contact_page .btn_area button.btn_reset,
.contact_page .btn_area a.btn.btn_reset,
.contact_page .btn_area a.btn.gray {
	background-color: #ffffff;
	border-color: #cbd5e1;
	color: #666666;
}
.contact_page .btn_area button.btn_reset:hover,
.contact_page .btn_area a.btn.gray:hover {
	background-color: #f0f4f8;
	border-color: #94a3b8;
	color: #333333;
}
/* 完了画面「TOPへ戻る」 */
.contact_page .btn_back {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 280px;
	height: 54px;
	margin: 35px auto 10px;
	border: 2px solid #005bac;
	border-radius: 27px;
	background: #ffffff;
	color: #005bac;
	font-size: 1.05rem;
	font-weight: bold;
	transition: all 0.2s;
}
.contact_page .btn_back:hover {
	background: #003a70;
	border-color: #003a70;
	color: #ffffff;
	text-decoration: none;
}

/* --- 添付ファイル（vue2Dropzone） ---
 * FA2は独自テンプレートでプレビューを描画する（サムネイル無し）。
 * ライブラリ既定の絶対配置・ホバー表示のままでは判読しづらいため、
 * ファイル1件＝1行のカードとして表示するよう上書きする。
 * dropzone.js が参照する data-dz-* 属性・状態クラスには手を加えないこと。 */
.contact_page img {
	width: unset;
}
.contact_page .dropzone {
	border: 2px dashed #cbd5e1;
	border-radius: 8px;
	background: #f8fafc;
	min-height: 0;
	padding: 20px;
}
.contact_page .dropzone:hover {
	background-color: #f1f5f9;
}
.contact_page .dropzone h3,
.contact_page .dropzone .dropzone-custom-title {
	border-left: none;
	padding-left: 0;
	margin-bottom: 6px;
	font-size: 1.05rem;
	font-weight: bold;
	color: #334155;
}
.contact_page .dropzone h3:before {
	content: unset;
}
.contact_page .dropzone .subtitle {
	font-size: 0.85rem;
	color: #666666;
	line-height: 1.5;
}
.contact_page .dropzone .dz-message {
	margin: 1.2em 0;
}
/* アップロード済みファイル1件分 */
.contact_page .dropzone .dz-preview {
	display: block;
	width: 100%;
	margin: 10px 0 0;
	min-height: 0;
}
.contact_page .dropzone .dz-preview .dz-details {
	position: static;
	opacity: 1;
	width: auto;
	max-width: none;
	min-width: 0;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px 12px;
	padding: 10px 14px;
	text-align: left;
	font-size: 0.9rem;
	line-height: 1.5;
	background: #ffffff;
	color: #333333;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
}
.contact_page .dropzone .dz-preview .txt-file-name {
	font-weight: bold;
	word-break: break-all;
}
/* アップロード進捗バー */
.contact_page .dropzone .dz-preview .dz-progress {
	position: static;
	margin: 0;
	width: 100px;
	height: 6px;
	border-radius: 3px;
	background: #e2e8f0;
	overflow: hidden;
	flex-shrink: 0;
}
.contact_page .dropzone .dz-preview .dz-progress .dz-upload {
	background: #005bac;
}
.contact_page .dropzone .dz-preview .txt-is-error {
	width: 100%;
	margin: 0;
}
/* 削除ボタン（既定はホバー時のみ表示・白文字のため常時表示に変更） */
.contact_page .dropzone .dz-preview .dz-remove {
	position: static;
	opacity: 1;
	display: inline-block;
	width: auto;
	margin: 8px 0 0;
	padding: 6px 16px;
	border: 1px solid #cbd5e1;
	border-radius: 4px;
	background: #ffffff;
	color: #334155;
	font-size: 0.85rem;
	font-weight: bold;
	letter-spacing: normal;
	text-transform: none;
	text-decoration: none;
}
.contact_page .dropzone .dz-preview .dz-remove:hover {
	background: #f0f4f8;
	border-color: #94a3b8;
	color: #0f172a;
	text-decoration: none;
}
.flatpickr-wrapper input {
	width: unset !important;
}
.flatpickr-input {
	display: none;
}
/* カレンダー本体の内部要素にはフォーム用の入力スタイルを適用しない
   （年入力・月セレクトが枠付きの入力欄として描画され、表示が崩れるため）
   フォーム側の指定より詳細度が高くなる組み合わせがあるため !important で固定する */
.flatpickr-calendar input,
.flatpickr-calendar select {
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 0 0 .5ch !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	background-image: none !important;
	box-shadow: none !important;
	outline: none !important;
	color: inherit !important;
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: 300 !important;
	line-height: 1.3 !important;
	vertical-align: initial !important;
}
/* 年月表示の行。box-sizing:border-box の影響で固定高34pxだと文字が見切れるため
   高さを可変にする */
.flatpickr-calendar .flatpickr-months .flatpickr-month,
.flatpickr-calendar .flatpickr-current-month,
.flatpickr-calendar .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-next-month {
	height: auto;
	min-height: 34px;
}
.flatpickr-calendar .flatpickr-current-month {
	padding: 6px 0 4px;
	line-height: 1.3;
}
.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
	line-height: 1.3;
}
.flatpickr-calendar input.cur-year {
	appearance: textfield;
	-webkit-appearance: textfield;
	-moz-appearance: textfield;
	cursor: text;
}
.flatpickr-calendar select.flatpickr-monthDropdown-months {
	appearance: menulist;
	-webkit-appearance: menulist;
	cursor: pointer;
}
/* 年の増減ボタンは flatpickr 既定の絶対配置を維持する */
.flatpickr-calendar .numInputWrapper span {
	padding: 0 4px 0 2px !important;
	border: 1px solid rgba(57,57,57,0.15) !important;
}

/* --- 確認画面 --- */
.contact_page .form_area dl dd .confirm-value {
	white-space: pre-wrap;
	word-break: break-all;
}

/* --- レスポンシブ --- */
@media (max-width: 768px) {
	.contact_page .cnts_box {
		padding: 20px 15px;
	}
	.progress_area {
		margin: 5px auto 25px;
	}
	.progress_area span {
		font-size: 0.85rem;
		padding: 10px 4px;
		width: calc(100% / 3 - 16px);
	}
	.progress_area span:after {
		right: -14px;
		border-left-width: 7px;
		border-top-width: 6px;
		border-bottom-width: 6px;
		top: calc(50% - 6px);
	}
	.contact_page .form_area dl dt,
	.contact_page .form_area dl dd {
		width: 100%;
	}
	.contact_page .form_area dl dt {
		padding: 12px 15px;
	}
	.contact_page .form_area dl dd {
		padding: 15px;
		border-top: none;
	}
	.contact_page .text_area,
	.contact_page .agree_area {
		padding: 20px 15px;
	}
	.contact_page select {
		min-width: 0;
		width: 100%;
	}
	.contact_page .btn_area {
		flex-direction: column;
		gap: 15px;
	}
	.contact_page .btn_area button,
	.contact_page .btn_area a.btn {
		width: 100%;
		min-width: 0;
	}
	.contact_page ul.list-frm-radio.list-row-style,
	.contact_page ul.list-frm-checkbox.list-row-style,
	.contact_page ul.list-frm-check.list-row-style {
		gap: 4px 16px;
	}
	/* 幅の狭い端末で横スクロールが出ないようにする */
	.contact_page .select-search-display,
	.contact_page .select_prefectures,
	.contact_page .area-search-display {
		max-width: 100%;
	}
	.contact_page .select-search-display select,
	.contact_page .select_prefectures select {
		width: 100%;
		min-width: 0;
	}
	.contact_page .select-date select,
	.contact_page .select-date-hm select {
		width: auto;
	}
	.contact_page input.p-postal-code {
		width: 10em !important;
		max-width: 100%;
	}
	.contact_page .form_area dl dt,
	.contact_page .form_area dl dd {
		word-break: break-word;
	}
	.contact_page .dropzone {
		padding: 15px;
	}
	.contact_page .dropzone .dz-preview .dz-details {
		padding: 10px;
	}
}

/* --- 狭い端末（スマートフォン縦）向けの微調整 --- */
@media (max-width: 480px) {
	.contact_page {
		padding: 0 10px;
	}
	.contact_page .cnts_box {
		padding: 15px 12px;
	}
	.contact_page .tit_blue {
		font-size: 1.25rem;
	}
	.contact_page h3 {
		font-size: 1.1rem;
	}
	.progress_area span {
		font-size: 0.8rem;
		padding: 9px 2px;
		width: calc(100% / 3 - 12px);
	}
	.progress_area span:after {
		right: -11px;
		border-left-width: 6px;
		border-top-width: 5px;
		border-bottom-width: 5px;
		top: calc(50% - 5px);
	}
	.contact_page .form_area dl dt,
	.contact_page .form_area dl dd {
		padding: 12px 10px;
	}
	.contact_page .text_area,
	.contact_page .agree_area {
		padding: 15px 12px;
	}
	.contact_page .btn_area button,
	.contact_page .btn_area a.btn,
	.contact_page .btn_back {
		height: 50px;
		font-size: 1rem;
		padding: 0 16px;
	}
	/* ラジオ・チェックボックスは1列に */
	.contact_page ul.list-frm-radio.list-row-style,
	.contact_page ul.list-frm-checkbox.list-row-style,
	.contact_page ul.list-frm-check.list-row-style {
		flex-direction: column;
		gap: 2px;
	}
	.contact_page .select-date,
	.contact_page .select-date-hm {
		gap: 4px;
	}
}

/* ============================================================================
 * 個人情報の取扱い同意ページ（privacy/_base.tpl）
 * ========================================================================= */
.agreement-body {
	background: #fafbfc;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	padding: 30px 35px;
	margin-bottom: 35px;
	font-size: 0.95rem;
	color: #444;
	line-height: 2;
}
.agreement-body h3 {
	font-size: 1.15rem;
	font-weight: bold;
	color: #003a70;
	padding-left: 10px;
	border-left: 5px solid #005bac;
	margin-bottom: 20px;
	line-height: 1.5;
}
.agreement-body h4 {
	font-size: 1rem;
	font-weight: bold;
	color: #222222;
	margin-top: 25px;
	margin-bottom: 10px;
	line-height: 1.5;
}
.agreement-body p {
	margin: 10px 0 30px;
	line-height: 2;
}
.agreement-body p:last-child {
	margin-bottom: 0;
}
.agreement-body a {
	color: #005bac;
	text-decoration: underline;
}
.agreement-btn-area {
	display: flex;
	justify-content: center;
	gap: 20px;
	flex-wrap: wrap;
	margin: 10px 0;
}
.btn-agreement {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 220px;
	padding: 13px 30px;
	border-radius: 30px;
	font-size: 1rem;
	font-weight: bold;
	text-align: center;
	transition: all 0.2s;
}
.btn-agreement.agree {
	background-color: #005bac;
	color: #ffffff;
	border: 2px solid #005bac;
	box-shadow: 0 4px 6px rgba(0,91,172,0.1);
}
.btn-agreement.agree:hover {
	background-color: #003a70;
	border-color: #003a70;
	color: #ffffff;
	text-decoration: none;
}
.btn-agreement.disagree {
	background-color: #ffffff;
	color: #666666;
	border: 2px solid #cbd5e1;
}
.btn-agreement.disagree:hover {
	background-color: #f0f4f8;
	border-color: #94a3b8;
	color: #333333;
	text-decoration: none;
}

/* ============================================================================
 * フッター（構成は既存サイト・配色はモックのダークトーンを採用）
 * ========================================================================= */
footer {
	background: #333333;
	color: #ffffff;
	width: 100%;
	margin-top: 60px;
	font-size: 0.9rem;
}
footer a {
	color: #cccccc;
}
footer a:hover {
	color: #ffffff;
	text-decoration: underline;
}
footer .footer_inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 50px 50px 90px;
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	box-sizing: border-box;
	position: relative;
}
/* ページTOPへ戻るボタン（ダークフッター用にCSS描画・画像は非表示） */
footer .footer_inner .pagetop {
	position: absolute;
	top: 50px;
	right: 50px;
	width: 48px;
	height: 48px;
	background: #005bac;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s;
	box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
footer .footer_inner .pagetop:hover {
	background: #1373cc;
	text-decoration: none;
}
footer .footer_inner .pagetop::before {
	content: '';
	width: 12px;
	height: 12px;
	border-top: 3px solid #ffffff;
	border-left: 3px solid #ffffff;
	transform: rotate(45deg) translate(2px, 2px);
}
footer .footer_inner .pagetop img {
	display: none;
}
footer .list_group {
	width: 350px;
	max-width: 100%;
	margin-right: 30px;
}
footer .list_group:nth-child(2) { width: 475px; }
footer .list_group:nth-child(3) { width: 450px; margin-right: 30px; }
footer .list_group:nth-child(4) { width: 400px; margin-right: 0; }
footer .sitemap { width: 260px; }
footer .link_list h3, footer .link_list h3 a {
	font-size: 1.125rem;
	font-weight: 600;
	margin-bottom: 15px;
	color: #ffffff;
}
footer .link_list h4, footer .link_list h4 a {
	font-size: 1.075rem;
	font-weight: 600;
	margin-bottom: 5px;
	margin-top: 10px;
	color: #ffffff;
}
footer .footer_qa_subitem { margin-left: 1em; }
footer .link_list ul {
	margin-top: 12px;
	padding-top: 0;
}
footer .link_list ul li {
	margin-top: 4px;
	margin-bottom: 4px;
	font-size: 0.95rem;
}
footer .link_list ul:nth-child(2) {
	margin: 0;
	padding: 0;
	border: none;
}
footer .footer_copright {
	position: absolute;
	bottom: 20px;
	right: 0;
	font-size: 0.75rem;
	color: #cccccc;
}
footer .footer_copright .certify {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 30px;
}
/* 認証マーク（Pマーク）
 * プライバシーマーク使用規約（JIP-PMK600）表示条件に基づく白窓表示。
 * 余白はマーク幅の1/4以上（4:1）を確保すること。枠線・マーク加工は禁止。
 * マーク高90px → 幅約93px → 必要余白 約23.2px 以上 → padding 24px */
footer .footer_copright .certify a {
	display: block;
	background: #ffffff;
	border-radius: 8px;
	padding: 24px;
	height: auto;
	margin-left: 20px;
}
footer .footer_copright .certify a img {
	height: 90px;
	width: auto;
	display: block;
}
footer .footer_link {
	width: 100%;
	margin: 30px auto 0;
	padding: 10px 0;
	background-color: #404040;
}
footer .footer_link_inner {
	max-width: 1280px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: flex-end;
}
footer .footer_link_inner a {
	display: flex;
	align-items: center;
	text-align: right;
	font-size: 87.5%;
	margin-left: 20px;
	margin-right: 20px;
}
footer .footer_link_inner a img {
	width: 6px;
	margin-right: 5px;
}
@media screen and (max-width: 640px) {
	footer {
		margin-top: 15vw;
	}
	footer .footer_inner {
		width: 100%;
		margin: 5vw auto 0;
		padding: 5vw 5vw 0;
		display: block;
	}
	footer .footer_inner .pagetop {
		width: 44px;
		height: 44px;
		top: 5vw;
		right: 5vw;
	}
	footer .list_group {
		width: 100%;
		margin-right: 5vw;
	}
	footer .sitemap {
		width: 100%;
		margin-top: 5vw;
	}
	footer .link_list h3 {
		font-size: 4.5vw;
		margin-bottom: 2vw;
		margin-top: 1em;
	}
	footer .link_list ul {
		margin-top: 3vw;
		padding-top: 2vw;
	}
	footer .link_list ul:nth-child(2) {
		margin: 0;
		padding: 0;
		border: none;
	}
	footer .footer_copright {
		position: static;
		font-size: 3vw;
		margin: 5vw 0 2vw;
	}
	footer .footer_copright .certify {
		display: flex;
		justify-content: center;
	}
	footer .footer_copright .certify a {
		height: auto;
		width: auto;
		margin: 5vw;
		/* マーク高18vw → 幅約18.5vw → 必要余白 約4.7vw 以上 */
		padding: 5vw;
	}
	footer .footer_copright .certify a img {
		height: 18vw;
		width: auto;
	}
	footer .footer_link_inner {
		margin: 0 auto;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}
	footer .footer_link_inner a {
		display: flex;
		align-items: center;
		text-align: center;
		font-size: 3.5vw;
		margin-left: 5vw;
		margin-right: 0;
	}
	footer .footer_link_inner a img {
		width: 1.5vw;
		margin-right: 1.25vw;
	}
	footer .list_group:nth-child(2) { width: unset; }
	footer .list_group:nth-child(3) { width: unset; margin-right: unset; }
	footer .list_group:nth-child(4) { width: unset; }
	
	.banner-item {
		display: flex;
	    flex-direction: column;
	    justify-content: space-between;
	}
	
	.banner-item img {
        margin: auto;
    }

	.banner-item span {
		display: flex;
		min-height:3.5em;
	    align-items: center;
	    justify-content: center;
	}

}

/* ============================================================================
 * レスポンシブ（共通）
 * ========================================================================= */
@media (max-width: 768px) {
	/* ナビはロゴと同じ1行に収め、入りきらない分は横スクロールで表示する */
	.global-nav-inner { justify-content: flex-start; }
	.nav-logo { padding: 8px 15px; }
	.nav-logo img { height: 32px; }
	.global-nav-list { overflow-x: auto; white-space: nowrap; -webkit-overflow-scrolling: touch; }
	.global-nav-list li { flex: none; }
	.global-nav-list li a { padding: 14px 15px; font-size: 0.9rem; }

	.news-section, .fastpass-section, .purpose-section, .faq-section, .contact-combined-section, .accordion-item {
		scroll-margin-top: 70px;
	}
	.fastpass-grid { grid-template-columns: 1fr; }
	.banner-grid { grid-template-columns: repeat(2, 1fr); }
	.text-support-list > li { flex-direction: column; align-items: flex-start; gap: 10px; }
	.sub-links-inline { width: 100%; }
	.contact-wrapper-form, .tel-container { padding: 20px 15px; }
	.tel-no-call-grid { grid-template-columns: 1fr; gap: 6px 0; }
	.news-item { flex-direction: column; align-items: flex-start; gap: 5px; }
	.news-date { width: auto; }
	.header-inner { flex-direction: column; gap: 10px; text-align: center; }
	.tel-flex-container {
		flex-direction: column;
		gap: 10px;
		text-align: center;
	}
	.tel-num-wrap { gap: 10px; }
	.tel-number { font-size: 1.8rem; }

	/* 下位階層 */
	.content-card { padding: 25px 15px; }
	.copyright-group-box, .procedure-group-box { padding: 20px 15px; margin-bottom: 30px; }
	.btn-links-area { flex-direction: column; gap: 10px; }
	.btn-action { width: 100%; display: block; }
	.step-item { flex-direction: column; padding: 15px; }
	.step-number { margin-right: 0; margin-bottom: 15px; width: 50px; height: 50px; font-size: 0.9rem; }
	.download-links { flex-direction: column; }
	.download-link { width: 100%; white-space: normal; }
	.btn-sub-link { width: 100%; display: block; }
	.btn-area { flex-direction: column; gap: 15px; }
	.btn-primary { width: 100%; display: block; }

	/* 個人情報同意ページ */
	.agreement-body { padding: 20px 15px; }
	.agreement-btn-area { flex-direction: column; gap: 15px; }
	.btn-agreement { width: 100%; min-width: 0; }

	/* FAQ */
	.products_area { grid-template-columns: 1fr; }
	.search-block { padding: 20px 15px; }
	.search-block .faqid-search { max-width: 100%; }
	.list-header { flex-direction: column; align-items: flex-start; gap: 10px; }
	.faq-answer-expand-box { padding: 15px; }
	.faq-title { font-size: 1.1rem; }
	.breadcrumbslist { padding: 15px; }
}
