/* NOIR RIBBON — responsive.css : カラム削減→縦積み（文字は縮小しない） */

/* タブレット以下：3列→2列 */
@media (max-width: 1024px) {
  .cast-grid, .gallery-grid, .news-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .hero { grid-template-columns: 62% 38%; }
}

/* ===== モバイル（〜900px）：ドロワー化・縦積み・固定CTA ===== */
@media (max-width: 900px) {
  :root { --header-h: 62px; }
  .nav, .header__side .btn { display: none; }
  .hamburger { display: inline-flex; }

  /* HERO を縦型 4:5 に（写真上・コピー下） */
  .hero { grid-template-columns: minmax(0,1fr); min-height: auto; padding-top: var(--header-h); }
  .hero__media { aspect-ratio: 4/5; }
  .hero__media::after { background: linear-gradient(180deg, rgba(20,18,16,.25), transparent 45%, rgba(20,18,16,.85)); }
  .hero__copy { border-left: 0; border-top: 1px solid var(--line); padding: 2rem var(--gut) 2.4rem; }
  .hero__scroll { display: none; }

  /* 左右交互は縦積み（メディア先頭） */
  .split { grid-template-columns: minmax(0,1fr); gap: 1.6rem; }
  .split--flip .split__media { order: 0; }
  .access-grid { grid-template-columns: minmax(0,1fr); }
  .recruit-band__inner { grid-template-columns: minmax(0,1fr); gap: 1.4rem; }
  .footer__grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .footer__brand { grid-column: 1 / -1; }

  /* リボンは移動量を弱める（幅も細く） */
  :root { --ribbon-w: 34px; }

  /* 固定CTA 表示・本文末尾に余白 */
  .cta-bar { display: grid; }
  body { padding-bottom: var(--cta-h); }
  .footer { margin-bottom: 0; }
}

/* ===== スモール（〜600px） ===== */
@media (max-width: 600px) {
  .cast-grid, .gallery-grid, .news-list { grid-template-columns: minmax(0,1fr); }
  .today__list { grid-template-columns: minmax(0,1fr); }
  .cast-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } /* キャストは2列維持で華やかさ確保 */
  .rate__row { grid-template-columns: minmax(0,1fr); gap: .3rem; }
  .rate__row dd { color: var(--gold-soft); }
  .sched-row { grid-template-columns: 48px minmax(0,1fr) auto; gap: .7rem; }
  .footer__grid { grid-template-columns: minmax(0,1fr); }
  .footer__brand { grid-column: auto; }
  .access-dl > div { grid-template-columns: 6rem minmax(0,1fr); }
  .lightbox__nav--prev { left: 0; } .lightbox__nav--next { right: 0; }
  .lightbox__close { top: -3rem; }
}

@media (max-width: 400px) {
  .cast-grid { grid-template-columns: minmax(0,1fr); }
}

/* デスクトップ：ドロワーとCTAは隠す（保険） */
@media (min-width: 901px) {
  .drawer { display: none; }
  .cta-bar { display: none; }
}

/* ===== 下層ページ レスポンシブ（V5-3） ===== */
@media (max-width: 1024px) {
  .feature-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%,240px),1fr)); }
}
@media (max-width: 900px) {
  .detail { grid-template-columns: minmax(0,1fr); gap: 1.6rem; }
  .detail__prof > div { grid-template-columns: 6.5rem minmax(0,1fr); }
  .def-list > div { grid-template-columns: 7rem minmax(0,1fr); }
  .page-hero { padding-top: calc(var(--header-h) + 2rem); }
}
@media (max-width: 600px) {
  .detail__subs { grid-template-columns: 1fr; }
  .detail__pager { flex-direction: column; align-items: stretch; text-align: center; }
  .detail__pager a { padding: .8rem 0; border-bottom: 1px solid var(--line-soft); }
  .field--row { grid-template-columns: minmax(0,1fr); }
  .news-row__title { font-size: 1.08rem; }
  .def-list > div { grid-template-columns: minmax(0,1fr); gap: .2rem; }
  .detail__prof > div { grid-template-columns: minmax(0,1fr); gap: .2rem; }
}
