@charset "UTF-8";
/* =========================================================
   FAQ セクション用スタイル
   - 既存デザイン（ブランドブルー #057baf / 明朝見出し / content-width 1064px）に準拠
   - アコーディオンは <details>/<summary> で実装（JS非依存・クロール可）
   ========================================================= */

#sec-faq {
	padding: 80px 0 90px;
	background-color: #f4f3e6;
}

#sec-faq .faq-list {
	max-width: 880px;
	margin: 0 auto;
}

/* カテゴリ見出し */
#sec-faq .faq-cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	max-width: 880px;
	margin: 44px auto 18px;
	padding: 0 0 10px 14px;
	border-bottom: 2px solid #057baf;
	border-left: 8px solid #057baf;
	line-height: 1.4;
}
#sec-faq .faq-cat:first-of-type { margin-top: 0; }
#sec-faq .faq-cat-label {
	margin: 0;
	font-size: 1.5rem;
	font-weight: bold;
	color: #057baf;
}

/* 「すべて開く / すべて閉じる」トグルボタン */
#sec-faq .faq-toggle-all {
	flex: none;
	margin: 0;
	padding: 7px 16px;
	font-size: 1.3rem;
	font-weight: normal;
	line-height: 1;
	color: #057baf;
	background-color: #fff;
	border: 1px solid #057baf;
	border-radius: 4px;
	cursor: pointer;
	white-space: nowrap;
	transition: background-color .2s, color .2s;
}
#sec-faq .faq-toggle-all:hover {
	background-color: #057baf;
	color: #fff;
}

/* 回答内の画像 */
#sec-faq .faq-img {
	margin-top: 18px !important;
}
#sec-faq .faq-img img {
	max-width: 80%;
	height: auto;
	border: 1px solid #e3e3e3;
	border-radius: 4px;
}

/* 制作メモ（画像差し込み予定などの注記。公開前に対応） */
#sec-faq .faq-imgnote {
	margin-top: 14px !important;
	padding: 8px 12px;
	font-size: .95rem;
	color: #8a6d00;
	background-color: #fff8e1;
	border: 1px dashed #d9b75a;
	border-radius: 4px;
}

/* パンくず（独立FAQページ用） */
#sec-faq .faq-breadcrumb {
	max-width: 880px;
	margin: 0 auto 28px;
	font-size: 1.3rem;
	color: #777;
}
#sec-faq .faq-breadcrumb a { color: #057baf; text-decoration: none; }
#sec-faq .faq-breadcrumb a:hover { text-decoration: underline; }
#sec-faq .faq-breadcrumb .sep { margin: 0 .6em; color: #b9b9b9; }

/* トップへ戻る導線（独立FAQページ用） */
#sec-faq .faq-back {
	max-width: 880px;
	margin: 36px auto 0;
	text-align: center;
}
#sec-faq .faq-back a {
	display: inline-block;
	padding: 12px 28px;
	font-size: 1.3rem;
	color: #057baf;
	border: 1px solid #057baf;
	border-radius: 4px;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
#sec-faq .faq-back a:hover { background-color: #057baf; color: #fff; }

/* 各Q&A（アコーディオン） */
#sec-faq .faq-item {
	background-color: #fff;
	border: 1px solid #d7e4ec;
	border-radius: 6px;
	margin-bottom: 16px;
	overflow: hidden;
}

/* 質問（クリックで開閉） */
#sec-faq .faq-q {
	position: relative;
	display: block;
	padding: 24px 74px 24px 74px;
	font-size: 1.7rem;
	font-weight: bold;
	line-height: 1.5;
	color: #04547a;
	cursor: pointer;
	list-style: none;
	-webkit-tap-highlight-color: transparent;
}
#sec-faq .faq-q::-webkit-details-marker { display: none; } /* Safari 既定マーカー除去 */

/* 行頭の「Q」 */
#sec-faq .faq-q::before {
	content: "Q";
	position: absolute;
	top: 50%;
	left: 20px;
	transform: translateY(-50%);
	width: 38px;
	height: 38px;
	line-height: 38px;
	text-align: center;
	font-family: Arial, sans-serif;
	font-size: 1.375rem;
	color: #fff;
	background-color: #057baf;
	border-radius: 50%;
}

/* 開閉アイコン（＋／－） */
#sec-faq .faq-q::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 28px;
	width: 22px;
	height: 22px;
	margin-top: -11px;
	background-image:
		linear-gradient(#057baf, #057baf),
		linear-gradient(#057baf, #057baf);
	background-position: center center;
	background-repeat: no-repeat;
	background-size: 22px 3px, 3px 22px;
	transition: background-size .2s ease;
}
#sec-faq .faq-item[open] .faq-q::after {
	background-size: 22px 3px, 0 0; /* 縦棒を消して ＋ → － */
}

/* 回答 */
#sec-faq .faq-a {
	padding: 4px 74px 28px;
	border-top: 1px dashed #cfe0ea;
}
#sec-faq .faq-a > * { margin-top: 18px; }
#sec-faq .faq-a > *:first-child { margin-top: 18px; }
#sec-faq .faq-a p {
	position: relative;
	padding-left: 0;
	font-size: 1.5rem;
	line-height: 1.9;
	color: #333;
}

/* スマートフォン */
@media screen and (max-width: 767px) {
	#sec-faq {
		padding: 50px 0 56px;
	}
	/* SPはビューポート640pxで描画されるため、サイト全体の流儀に合わせ文字を大きくする */
	#sec-faq .faq-cat-label { font-size: 2.8rem; }
	#sec-faq .faq-q {
		padding: 24px 60px 24px 70px;
		font-size: 2.4rem;
	}
	#sec-faq .faq-q::before {
		top: 50%;
		left: 14px;
		transform: translateY(-50%);
		width: 46px;
		height: 46px;
		line-height: 46px;
		font-size: 1.9rem;
	}
	#sec-faq .faq-q::after {
		right: 18px;
		width: 26px;
		height: 26px;
		margin-top: -13px;
		background-size: 26px 3px, 3px 26px;
	}
	#sec-faq .faq-item[open] .faq-q::after {
		background-size: 26px 3px, 0 0;
	}
	#sec-faq .faq-a {
		padding: 4px 28px 26px;
	}
	#sec-faq .faq-a p {
		font-size: 2rem;
	}
	#sec-faq .faq-img img { max-width: 100%; }
	/* フッターテキスト(SP=2rem)に合わせる */
	#sec-faq .faq-breadcrumb { font-size: 2rem; }
	#sec-faq .faq-toggle-all { font-size: 2rem; }
	#sec-faq .faq-back a { font-size: 2rem; }
}
