@charset "UTF-8";
/* ============================================================
   actor.css（2026リニューアル・段階3）
   俳優の個人ページ（Templates/actor.dwt）と、俳優一覧（profile.html）の部品
   ※ base.css / frame.css の後に読み込む
============================================================ */

/* ---------- 個人ページの入れ物 ---------- */
.ac-page { display: block; max-width: 1040px; margin: 0 auto; padding: 22px 28px 56px; }
/* reset.css が要素ごとに Yuゴシックを指定しているので、本文の中は共通のゴシック（--bz-font）にそろえる。字間も詰める */
.ac-page, .ac-index { font-family: var(--bz-font); letter-spacing: .02em; }
.ac-page *, .ac-index * { font-family: inherit; }
.ac-page p { margin: 0; text-align: left; letter-spacing: 0; }
a.ac-back:link, a.ac-back:visited { display: inline-block; margin-bottom: 18px; font-size: 12.5px; font-weight: 500; letter-spacing: 0; color: var(--bz-ink); }
a.ac-back:hover { text-decoration: underline; opacity: 1; }

/* 2列：左に名前・写真・ボイス・プロフィール、右に出演作品と舞台写真 */
.ac-profile { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 52px; align-items: start; }
/* 左の列が画面に収まるときだけ残す（is-fixed はテンプレートのスクリプトが付ける） */
@media screen and (min-width: 901px) { .ac-side.is-fixed { position: sticky; top: 20px; } }

/* 名前・ふりがな */
.ac-name { margin: 0; font-size: 40px; font-weight: 900; line-height: 1.15; letter-spacing: .02em; color: var(--bz-ink); text-align: left; }
.ac-kana { display: block; margin-top: 8px; font-size: 13px; font-weight: 500; line-height: 1.5; letter-spacing: .2em; color: var(--bz-sub); }

/* メイン写真：元の大きさより引き伸ばさない */
.ac-page .ac-photo { margin-top: 20px; }
.ac-photo img { display: block; width: auto; max-width: 100%; height: auto; }

/* ボイス */
.ac-voice { margin-top: 18px; }
.ac-page .ac-voice__label { font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.ac-voice audio { display: block; width: 100%; max-width: 300px; height: 36px; margin-top: 6px; }

/* プロフィールの表 */
.ac-spec { margin: 20px 0 0; font-size: 14px; line-height: 1.6; }
.ac-spec > div { display: grid; grid-template-columns: 5.5em minmax(0, 1fr); gap: 12px; padding: 3px 0; }
.ac-spec dt { padding-top: 2px; font-size: 11.5px; font-weight: 700; color: var(--bz-sub); }
.ac-spec dd { margin: 0; }
.ac-page .ac-note { margin-top: 8px; font-size: 13px; line-height: 1.7; }

/* 見出し（下に罫線） */
.ac-h { margin: 44px 0 12px; padding: 0 0 6px; border-bottom: 1.5px solid var(--bz-ink); font-size: 18px; font-weight: 900; line-height: 1.4; letter-spacing: 0; color: var(--bz-ink); text-align: left; }
.ac-works > .ac-h { margin-top: 8px; }

/* 出演作品のリスト */
.ac-group + .ac-group { margin-top: 16px; }
.ac-page .ac-sub { margin-bottom: 6px; font-size: 13px; font-weight: 700; color: var(--bz-sub); }
.ac-list { margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.7; }
.ac-list li { padding: 3px 0; list-style: none; }
.ac-list b { display: inline-block; min-width: 4.6em; font-weight: 700; text-indent: 0; }
/* 年号がある行は、折り返しても年号の右でそろえる（ぶら下げインデント。中に <a> などを足しても崩れない） */
.ac-list li:has(> b:first-child) { padding-left: 4.6em; text-indent: -4.6em; }

/* 舞台写真：切らずに段組みで並べる */
.ac-gallery { columns: 3 150px; column-gap: 16px; }
.ac-gallery figure { break-inside: avoid; margin: 0 0 16px; }
.ac-gallery img { display: block; width: auto; max-width: 100%; height: auto; }
.ac-gallery figcaption { margin-top: 6px; font-size: 12.5px; line-height: 1.5; }

/* 出演作品（すべて）：押すと開く */
.ac-all { margin-top: 44px; }
.ac-all summary {
  display: flex; justify-content: space-between; align-items: center; padding: 14px 16px;
  background: var(--bz-paper); font-size: 15px; font-weight: 700; cursor: pointer; list-style: none;
}
.ac-all summary::-webkit-details-marker { display: none; }
.ac-all summary::after { content: "＋"; }
.ac-all[open] summary::after { content: "－"; }
.ac-all summary:focus-visible { outline: 2px solid var(--bz-ink); outline-offset: 2px; }
/* 開閉の見出し（h2）は、ふつうの見出しの罫線と余白を打ち消す */
.ac-all .ac-all__title { margin: 0; padding: 0; border: 0; font-size: 15px; font-weight: 700; }
.ac-all > .ac-group:first-of-type { margin-top: 14px; }

/* ---------- 俳優一覧（profile.html） ---------- */
.ac-index + .ac-index { margin-top: 44px; }
/* PC：男女の列を左右に並べる（スマホでは上下） */
@media screen and (min-width: 901px) {
  .ac-index-wrap { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 36px; align-items: start; }
  .ac-index + .ac-index { margin-top: 0; }
}
.bz-main .ac-index__title { margin: 0 0 16px; padding: 0 0 6px; border-bottom: 1.5px solid var(--bz-ink); font-size: 22px; font-weight: 900; letter-spacing: .04em; color: var(--bz-ink); text-align: left; }
.ac-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); gap: 22px 16px; margin: 0; padding: 0; list-style: none; }
.ac-cards li { margin: 0; list-style: none; }
a.ac-card:link, a.ac-card:visited { display: block; color: var(--bz-ink); }
.bz-main .ac-card img { display: block; width: auto; max-width: 100%; height: auto; }
.ac-card span { display: block; margin-top: 6px; font-size: 13px; font-weight: 700; line-height: 1.4; letter-spacing: 0; }
a.ac-card:hover { opacity: 1; }
a.ac-card:hover span { text-decoration: underline; }

/* ============================================================
   900px以下：タブレット・スマホ（1列）
============================================================ */
@media screen and (max-width: 900px) {
  .ac-page { padding: 16px 16px 40px; }
  .ac-profile { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .ac-name { font-size: 34px; }
  .ac-photo img { max-width: min(100%, 260px); }
  .ac-works > .ac-h { margin-top: 40px; }
  .ac-gallery { columns: 2; column-gap: 10px; }
  .ac-list { font-size: 14.5px; }
  .ac-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 10px; }
}
