/* ============================================================
   FV以下のセクション（子テーマ側で完結。親テーマに依存しない）
   ============================================================ */

.sacs-home-inner { max-width: 1280px; margin: 0 auto; padding: 0 24px; }

.sacs-home-h2 {
	margin: 0;
	font-size: 30px;
	line-height: 1.45;
	font-weight: 700;
	letter-spacing: .02em;
	text-align: left;
}

.sacs-home-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 28px;
}

.sacs-home-head a {
	color: var(--sacs-green, #125b43);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

/* ---- 私たちについて ---- */
/* 3カード。ファーストビュー（ヒーロー＋17色バー）の直下なので、
   セクション間の 84px より詰めて、下は既存の .sdgs-cards margin-bottom に任せる。 */
/* 会員種類と年会費（メインバナーの直下）。
   下の余白は .sacs-home-cards の 56px に任せる */
/*
 * 表は .sacs-plan-scroll の内側で横に流すが、
 * その中身の幅が祖先まで伝わって文書全体を広げてしまう。
 * ここで断ち切る。clip は overflow-y に影響しないので、
 * hidden と違って縦のはみ出しを巻き込まない。
 */
.sacs-home-plan {
	padding: 64px 0 0;
	overflow-x: clip;
}

.sacs-home-cards { padding: 56px 0 0; }

.sacs-home-about { padding: 84px 0; background: #fff; }

.sacs-home-about .sacs-home-inner {
	display: grid;
	grid-template-columns: minmax(0, 400px) 1fr;
	gap: 56px;
	align-items: center;
}

.sacs-home-about__lead p {
	margin: 18px 0 26px;
	font-size: 14.5px;
	line-height: 2;
	color: #5d6b64;
	text-align: left;
}

.sacs-home-stats { display: grid; grid-template-columns: repeat(3, 1fr); }

.sacs-home-stat { text-align: center; padding: 8px 16px; position: relative; }
.sacs-home-stat + .sacs-home-stat::before {
	content: ""; position: absolute; left: 0; top: 12%; height: 76%; width: 1px; background: var(--sacs-line, #dfe3da);
}
.sacs-home-stat .sacs-ico { display: block; color: var(--sacs-green-sub, #67a94b); margin: 0 auto 10px; }
.sacs-home-stat__label { display: block; font-size: 13px; color: #5d6b64; }
.sacs-home-stat__num { display: block; font-size: 42px; font-weight: 700; line-height: 1.25; }
.sacs-home-stat__num em { font-style: normal; font-size: 16px; font-weight: 600; margin-left: 5px; }
.sacs-home-stat__note { display: block; font-size: 11px; color: #9aa79f; }

/* 統計が1つも無いときは左カラムだけにする */
/* 統計もイラストも無いときだけ 1 カラムに戻す */
.sacs-home-about .sacs-home-inner:not(:has(.sacs-home-stats)):not(:has(.sacs-home-about__art)) {
	grid-template-columns: minmax(0, 760px);
}

/* 文章とイラストを左右に置く。イラストは少し大きめに取る */
.sacs-home-about .sacs-home-inner:has(.sacs-home-about__art) {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
}

.sacs-home-about__art img {
	display: block;
	width: 100%;
	height: auto;
}

@media screen and (max-width: 900px) {
	.sacs-home-about .sacs-home-inner:has(.sacs-home-about__art) {
		grid-template-columns: minmax(0, 1fr);
	}

	.sacs-home-about__art { order: -1; }
}

/* ---- 注目の講座・イベント ---- */
.sacs-home-featured { padding: 84px 0; background: var(--sacs-bg, #f7f8f3); }

/* 列数は表示件数に追従させる（固定表示が1〜2件のとき間延びさせない） */
.sacs-home-grid { display: grid; grid-template-columns: repeat(var(--sacs-cols, 3), minmax(0, 1fr)); gap: 24px; }

.sacs-home-card { margin: 0; }
.sacs-home-card > a {
	display: block; background: #fff; border: 1px solid var(--sacs-line, #dfe3da);
	border-radius: 6px; overflow: hidden; text-decoration: none; color: inherit;
	transition: border-color .2s, transform .2s, box-shadow .2s;
}
.sacs-home-card > a:hover {
	border-color: var(--sacs-green, #125b43); transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(23,35,30,.07);
}
.sacs-home-card__img {
	display: block; position: relative; aspect-ratio: 16 / 10;
	background: #e7ebe3; overflow: hidden;
}
.sacs-home-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* アイキャッチ未設定時の代替ロゴ。写真ではないので切り抜かず全体を見せる */
.sacs-home-card__img img.sacs-home-card__logo {
	object-fit: contain; background: #fff; padding: 15% 18%;
}
.sacs-home-card__cat {
	position: absolute; left: 12px; top: 12px; background: var(--sacs-green, #125b43);
	color: #fff; font-size: 11.5px; font-weight: 700; padding: 4px 11px; border-radius: 2px;
}
.sacs-home-card__body { display: block; padding: 18px 20px 22px; text-align: left; }
.sacs-home-card__body time { display: block; font-size: 12.5px; color: #5d6b64; margin-bottom: 6px; }
.sacs-home-card__body strong { display: block; font-size: 16.5px; line-height: 1.55; font-weight: 700; }
.sacs-home-card__body .sacs-arw { display: block; margin-top: 12px; color: var(--sacs-green-sub, #67a94b); }

/* ---- 最新のお知らせ ---- */
.sacs-home-news { padding: 84px 0; background: #fff; }

.sacs-home-list { background: #fff; border: 1px solid var(--sacs-line, #dfe3da); border-radius: 6px; }
.sacs-home-list > a {
	display: flex; align-items: center; gap: 18px; padding: 17px 22px;
	text-decoration: none; color: inherit;
	border-bottom: 1px solid var(--sacs-line, #dfe3da); transition: background-color .16s;
}
.sacs-home-list > a:last-child { border-bottom: 0; }
.sacs-home-list > a:hover { background: var(--sacs-bg, #f7f8f3); }
.sacs-home-list time { flex: 0 0 auto; font-size: 13px; color: #5d6b64; font-variant-numeric: tabular-nums; }
.sacs-home-tag {
	flex: 0 0 auto; min-width: 88px; text-align: center; font-size: 11.5px; font-weight: 700;
	color: #fff; background: var(--sacs-green-sub, #67a94b); padding: 4px 9px; border-radius: 2px;
}
.sacs-home-list__t { flex: 1 1 auto; font-size: 14.5px; line-height: 1.6; text-align: left; }
.sacs-home-list__arw { color: #5d6b64; font-size: 20px; line-height: 1; }

/* 親テーマがトップに出す本文枠は、中身が無ければ余白を作らない */
.home #content-main:empty { display: none; }
.home #content:has(#content-main:empty) { padding: 0; margin: 0; }

@media screen and (max-width: 900px) {
	.sacs-home-cards { padding-top: 32px; }
	.sacs-home-about,
	.sacs-home-featured,
	.sacs-home-news { padding: 54px 0; }

	.sacs-home-h2 { font-size: 24px; }
	.sacs-home-about .sacs-home-inner { grid-template-columns: 1fr; gap: 34px; }
	.sacs-home-grid { grid-template-columns: 1fr; }
	.sacs-home-stats { grid-template-columns: 1fr; }
	.sacs-home-stat + .sacs-home-stat::before { display: none; }
	.sacs-home-stat { border-top: 1px solid var(--sacs-line, #dfe3da); padding: 22px 16px; }

	.sacs-home-list > a { flex-wrap: wrap; gap: 8px 12px; }
	.sacs-home-list__t { flex: 1 0 100%; order: 3; }
	.sacs-home-list__arw { display: none; }
}
