/* =========================================================
   SITE 114 — pages.css（トップ・下層固有）
   ========================================================= */

/* index: TODAY SUMMARY → DATE TABS → CAST → EVENT → MENU → SYSTEM → CONCEPT → NEWS → ACCESS */
#main { padding-top: calc(var(--h-header) + 1px); }
body[data-page="index"] #main { padding-top: var(--h-header); }
body:not([data-page="index"]) .hero { margin-top: var(--h-header); }

.today-strip { padding-block: var(--sp-5); }

/* CAST 詳細 */
.castdetail { display: grid; grid-template-columns: 320px 1fr; gap: var(--sp-6); align-items: start; }
.castdetail__media { aspect-ratio: 3 / 4; min-width: 0; border-radius: var(--r); overflow: hidden; background: var(--c-bg-alt); }
.castdetail__media img { width: 100%; height: 100%; object-fit: cover; }
.castdetail__name { font-size: var(--fs-h1); }
.castdetail__role { color: var(--c-ink-muted); font-size: var(--fs-body-lg); margin-bottom: var(--sp-3); }
.castdetail__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: var(--sp-4); }
.castdetail__items { display: grid; grid-template-columns: auto 1fr; gap: 6px var(--sp-4); font-size: var(--fs-note); margin-block: var(--sp-4); }
.castdetail__items dt { color: var(--c-ink-muted); }
.castdetail__items dd { font-weight: 700; }
.castdetail__week { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; margin-top: var(--sp-3); }
.castdetail__weekday { text-align: center; border: 1px solid var(--c-line); border-radius: var(--r-sm); padding: 6px 2px; font-size: 12px; }
.castdetail__weekday.is-off { color: var(--c-ink-muted); background: var(--c-bg-alt); }

/* CAST 一覧ページ（絞り込み） */
.castpage__count { font-size: var(--fs-note); color: var(--c-ink-muted); margin-bottom: var(--sp-3); }

/* イベント詳細 */
.eventdetail__media { aspect-ratio: 16 / 9; min-width: 0; border-radius: var(--r); overflow: hidden; background: var(--c-bg-alt); margin-bottom: var(--sp-5); }
.eventdetail__media img { width: 100%; height: 100%; object-fit: cover; }
.eventdetail__meta { display: flex; flex-wrap: wrap; gap: var(--sp-3) var(--sp-5); margin-bottom: var(--sp-4); font-size: var(--fs-note); }
.eventdetail__body p { margin-bottom: var(--sp-3); }
.eventdetail__cast { display: flex; flex-wrap: wrap; gap: var(--sp-3); margin-top: var(--sp-3); }
.eventdetail__castitem { display: flex; align-items: center; gap: 8px; border: 1px solid var(--c-line); border-radius: 999px; padding: 4px 12px 4px 4px; text-decoration: none; color: inherit; }
.eventdetail__castitem img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }

/* News */
.newslist { display: flex; flex-direction: column; }
.newsitem { display: grid; grid-template-columns: 96px 1fr; gap: var(--sp-4); padding-block: var(--sp-4); border-bottom: 1px solid var(--c-line); text-decoration: none; color: inherit; }
.newsitem__media { aspect-ratio: 4/3; min-width: 0; border-radius: var(--r-sm); overflow: hidden; background: var(--c-bg-alt); }
.newsitem__media img { width: 100%; height: 100%; object-fit: cover; }
.newsitem__date { font-size: var(--fs-note); color: var(--c-ink-muted); font-weight: 700; }
.newsitem__cat { font-size: 12px; font-weight: 700; color: var(--c-accent-strong); }
.newsitem__title { font-weight: 700; margin-top: 2px; }

/* ギャラリーカテゴリ */
.gallerytabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: var(--sp-5); }

/* アクセス */
.accessgrid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-6); }
.accessmap { aspect-ratio: 4/3; min-width: 0; border-radius: var(--r); overflow: hidden; background: var(--c-bg-alt); }
.accessmap img { width: 100%; height: 100%; object-fit: cover; }
.accessinfo dl { display: grid; grid-template-columns: auto 1fr; gap: 10px var(--sp-4); font-size: var(--fs-body); }
.accessinfo dt { color: var(--c-ink-muted); }
.accessinfo dd { font-weight: 700; }
.routelist { display: flex; flex-direction: column; gap: var(--sp-3); margin-top: var(--sp-4); }
.routelist li { display: flex; gap: var(--sp-3); }
.routelist__num { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--c-accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: var(--fs-note); }

/* 求人 */
.rolecard { border: 1px solid var(--c-line); border-radius: var(--r); padding: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-2); }
.rolecard__name { font-size: 1.1rem; font-weight: 800; }
.rolecard__wage { font-weight: 800; color: var(--c-accent-strong); }
.rolecard__items { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.rolecard__items li { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: var(--c-bg-alt); font-weight: 700; }
.flowlist { display: flex; flex-direction: column; gap: var(--sp-4); counter-reset: flow; }
.flowitem { display: flex; gap: var(--sp-4); }
.flowitem__num { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--c-charcoal); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 800; }
.flowitem__title { font-weight: 800; margin-bottom: 2px; }

/* コンセプト */
.termcards { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-4); }
.termcard { border: 1px solid var(--c-line); border-radius: var(--r); padding: var(--sp-4); background: #fff; }
.termcard__term { font-weight: 800; margin-bottom: 4px; }
.termcard__reading { font-size: 12px; color: var(--c-ink-muted); margin-left: 6px; font-weight: 400; }

/* プライバシー */
.legal h2 { font-size: 1.15rem; margin-top: var(--sp-6); margin-bottom: var(--sp-2); }
.legal p, .legal li { color: var(--c-ink-muted); margin-bottom: var(--sp-2); }
.legal ul { list-style: disc; padding-left: 1.4em; }
.legal ul li::marker { color: var(--c-accent); }

/* URL 状態バッジ（共有可能なことを示す小さな案内） */
.statehint { font-size: var(--fs-note); color: var(--c-ink-muted); margin-bottom: var(--sp-4); }
