/**
 * 予定カレンダー（sections/schedule.php）
 * PC＝2カラム（左：案内文／右：スケジュール）。SP＝縦積み。
 * 右カラムは高さ固定のスクロール領域（SimpleBar＝プライバシーポリシー／timeline と同体裁）。
 * 予定は3カラムの表（日付・曜日／時刻／内容）。色は内容先頭のマークに反映。
 * 罫線はスクロールバーのみ（表の区切り線・枠は無し）。
 */

.schedule-layout {
	display: grid;
	/* minmax(0,…) にしないと、右カラムの表の最小幅でトラックが膨らみ横はみ出しする */
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
	gap: var(--space-lg);
	align-items: start;
	/* 幅・左右余白は .module__inner（他セクションと共通）に委ねる */
}

/* 左：案内文（最上部に見出し）。本文 p と同じ仕様＝line-height 等は body を継承（独自の行間上書きはしない） */
/* 見出し：旧セクション見出しと同サイズ・同色。下線なし・左寄せ */
.schedule-title {
	font-size: 2.2em;
	font-weight: 700;
	line-height: 1.4;
	margin: 0 0 var(--space-md);
}
.schedule-intro p { margin: 0 0 1em; }
.schedule-intro :last-child { margin-bottom: 0; }

/* 左カラム下：カレンダー購読ボタン（.more の共通ボタン体裁を流用。列内では左寄せ・幅は文言なり）
   PC は右カラム（スケジュール枠）の下端にボタンを揃える：
   intro を行いっぱいに伸ばして flex 縦積みにし、margin-top:auto で押し下げる */
.schedule-intro {
	align-self: stretch;
	display: flex;
	flex-direction: column;
}
.schedule-subscribe {
	margin: auto 0 0;
	padding-top: var(--space-lg); /* 文章と近接しすぎない最低間隔 */
	text-align: left;
}
.schedule-subscribe a {
	width: auto;
	padding: .5em 1.5em;
}
/* ボタン内の外部リンクアイコンは出さない（属性セレクタ込みで詳細度を上げて打ち消す） */
.schedule-subscribe a[target="_blank"]::after {
	content: none;
}

/* 右：スクロール領域（罫線・枠なし。native スクロールバー非表示 → SimpleBar が描画）
   PC：枠の下端をボタン（＝行の下端）に揃えるため、パネルを行いっぱいに伸ばし、
   スクロール領域は absolute で敷く（予定表の全長がグリッド行の高さ計算に影響しないように）。
   枠は最低 --schedule-height、intro が高い場合はそれに追従して伸びる */
.schedule-panel {
	position: relative;
	align-self: stretch;
	min-height: var(--schedule-height, 300px);
}
/* SimpleBar 側の [data-simplebar]{position:relative} に負けないよう子結合子で詳細度を上げる */
.schedule-panel > .schedule-scroll {
	position: absolute;
	inset: 0;
}
.schedule-scroll {
	background: var(--color-white);
	overflow-y: auto;               /* SimpleBar 未初期化時のフォールバック */
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.schedule-scroll::-webkit-scrollbar { display: none; }

/* 3カラムの表（罫線なし） */
.schedule-table {
	width: 100%;
	border-collapse: collapse;
	/* テーマ共通の table スタイル（style.css: display:block / overflow-x:scroll / white-space:nowrap）を打ち消す */
	display: table;
	overflow: visible;
	white-space: normal;
}
.schedule-table th,
.schedule-table td {
	border: 0;                     /* 共通の table 罫線（contact.css）を無効化：罫線はスクロールバーのみ */
	padding: 2px 10px;
	vertical-align: top;            /* 上寄せ */
	text-align: left;              /* 左寄せ */
	color: var(--color-text);
	line-height: 1.6;
	background: transparent;
}
.schedule-table td:last-child { padding-right: 18px; } /* スクロールバー分の余白 */

/* 日付・曜日（1日1回・rowspan。年なし・同一行・折り返さない） */
.schedule-table__date {
	width: 1%;
	white-space: nowrap;
}
.schedule-date__md {
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.schedule-date__wday--w0 { color: var(--color-warning); } /* 日曜 */
.schedule-date__wday--w6 { color: var(--color-primary); } /* 土曜 */

/* 時刻（折り返さない） */
.schedule-table__time {
	width: 1%;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
}

/* 内容：色マークは ::before の ⬛（四角）。予定名＋（場所名）が複数行になったら
   2行目以降はぶら下げインデント（マーク分だけ字下げして本文の左に揃える） */
.schedule-content {
	display: block;
	padding-left: 1.3em;
	text-indent: -1.3em;
}
.schedule-content::before {
	content: "";
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-right: .5em;
	vertical-align: middle;
	background: var(--ev-color, var(--color-primary));
}
/* 説明欄 URL でリンク化したタイトル。既定のリンク色（a＝--color-primary）＋やや太字。hover下線は共通ルールに任せる */
.schedule-content__title--link {
	font-weight: 500;
}
/* 共通の外部リンクアイコン（style.css の a[target="_blank"]::after）はスケジュールでは出さない。
   2クラス重ねで詳細度を上げ、CSS 読込順に依存せず打ち消す */
.schedule-content__title.schedule-content__title--link::after {
	content: none;
}

@media (max-width: 768px) {
	.schedule-layout {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--space-md);
	}
	.schedule-title { font-size: 1.5em; }
	.schedule-date__md { font-size: 1.2em; } /* SP のみ日付を少し大きく */

	/* SP：下端揃えは行わず、ボタンは文章の直下に置く */
	.schedule-intro { display: block; }
	.schedule-subscribe {
		margin-top: var(--space-lg);
		padding-top: 0;
	}
	/* SP：枠は従来どおり固定高さの通常フロー（absolute 敷きは PC のみ）。
	   position は SimpleBar 既定の relative に戻す */
	.schedule-panel {
		position: static;
		align-self: auto;
		min-height: 0;
	}
	.schedule-panel > .schedule-scroll {
		position: relative;
		inset: auto;
		height: var(--schedule-height, 300px);
	}

	/* SP：日付・曜日は全幅の見出し行、時刻列・内容列は縦に整列（PC同様の2列） */
	.schedule-table,
	.schedule-table tbody { display: block; }
	.schedule-table tr {
		display: grid;
		grid-template-columns: 6.5em minmax(0, 1fr); /* 時刻列（固定幅で縦整列）｜内容列 */
		column-gap: 6px;
	}
	.schedule-table td {
		width: auto;
		padding: 3px 0;
	}
	.schedule-table__date {
		grid-column: 1 / -1;  /* 日付・曜日だけ全幅（イレギュラー） */
		padding-top: 10px;    /* 日ごとに区切りの余白 */
	}
	.schedule-table__content { min-width: 0; }
}
