/*
 * ASPRI TOPICSページ専用スタイル
 * page-topics.php / page-kawamura-kasou.php 等で使用
 */

/* ============ TOPICS一覧ページ ============ */
.topics-page {
	background: var(--aspri-yellow);
	padding: 56px 24px 80px;
	min-height: 60vh;
}
.topics-page-title {
	font-family: "Anton", sans-serif;
	font-size: clamp(40px, 8vw, 76px);
	color: var(--aspri-ink);
	text-align: center;
	margin: 0 0 52px;
	letter-spacing: .03em;
}
.topics-list-grid {
	max-width: 1080px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	align-items: start;
}
.topics-list-card {
	display: block;
	text-decoration: none;
	color: var(--aspri-ink);
}
.topics-list-card:hover .topics-list-thumb { opacity: .82; }
.topics-list-thumb {
	width: 100%;
	display: block;
	box-shadow: 0 6px 20px rgba(0,0,0,.12);
	transition: opacity .2s;
}
.topics-list-body { padding-top: 20px; }
.topics-list-date { font-size: 13px; font-weight: 700; margin: 0 0 6px; }
.topics-list-name { font-size: 18px; font-weight: 900; line-height: 1.5; margin: 0 0 10px; }
.topics-list-divider { border: none; border-top: 1px solid rgba(0,0,0,.3); margin: 0 0 12px; }
.topics-list-desc { font-size: 13px; line-height: 1.8; margin: 0; }

/* ============ TOPICS詳細ページ ============ */
.article-page {
	max-width: 760px;
	margin: 0 auto;
	padding: 56px 24px 88px;
}
.article-back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--aspri-blue);
	text-decoration: none;
	margin-bottom: 40px;
	letter-spacing: .04em;
}
.article-back:hover { text-decoration: underline; }
.article-date {
	font-size: 13px;
	font-weight: 700;
	color: var(--aspri-sub);
	margin: 0 0 10px;
}
.article-title {
	font-size: clamp(22px, 3.5vw, 30px);
	font-weight: 900;
	line-height: 1.5;
	letter-spacing: .03em;
	margin: 0 0 32px;
}
.article-img {
	width: 100%;
	height: auto;
	display: block;
	box-shadow: 0 4px 20px rgba(0,0,0,.12);
	margin-bottom: 40px;
}
.article-body {
	font-size: 15px;
	line-height: 2.2;
	color: var(--aspri-ink);
	margin-bottom: 48px;
}
.article-body p { margin: 0 0 1.6em; }
.article-body p:last-child { margin-bottom: 0; }

/* イベントデータ */
.article-data {
	background: #f7f7f7;
	padding: 32px 36px;
	margin-bottom: 40px;
	font-size: 14px;
	line-height: 2;
}
.article-data-row {
	display: flex;
	gap: 12px;
	align-items: baseline;
	margin-bottom: 2px;
}
.article-data-label {
	flex-shrink: 0;
	font-weight: 700;
	min-width: 60px;
}
.article-data-sep {
	flex-shrink: 0;
	color: #aaa;
}
.article-data-hr {
	border: none;
	border-top: 1px solid #ddd;
	margin: 16px 0;
}
.article-option-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 14px;
	line-height: 2.2;
}
.article-course-list {
	list-style: none;
	padding: 0;
	margin: 0;
	font-size: 14px;
	line-height: 2.2;
}

/* PDFダウンロード */
.article-download {
	margin-bottom: 40px;
}
.article-download-label {
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 10px;
}
.article-download-link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: var(--aspri-blue);
	color: #fff !important;
	text-decoration: none;
	padding: 12px 28px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .05em;
	transition: opacity .2s;
}
.article-download-link:hover { opacity: .8; }

/* FAXサムネイル */
.article-fax-thumb {
	display: inline-block;
	text-decoration: none;
	text-align: center;
}
.article-fax-thumb img {
	display: block;
	max-width: 180px;
	height: auto;
	box-shadow: 0 3px 12px rgba(0,0,0,.15);
	transition: opacity .2s;
}
.article-fax-thumb:hover img { opacity: .8; }
.article-fax-thumb span {
	display: block;
	font-size: 11px;
	color: var(--aspri-sub);
	margin-top: 6px;
	letter-spacing: .04em;
}

/* お申込先 */
.article-apply {
	font-size: 13px;
	line-height: 2.2;
	color: var(--aspri-sub);
	border-top: 1px solid #ddd;
	padding-top: 28px;
}
.article-apply a { color: var(--aspri-blue); text-decoration: none; }
.article-apply a:hover { text-decoration: underline; }

/* ============ レスポンシブ ============ */
@media (max-width: 768px) {
	.topics-list-grid { grid-template-columns: 1fr; gap: 40px; }
	.article-data { padding: 24px 20px; }
	.article-data-row { flex-wrap: wrap; gap: 4px; }
}
