/* IVORY HERITAGE (SITE 55) — responsive.css
   縦積み・カラム削減で対応（文字は縮小しない）。360/390/430/768/1024/1280/1440/1920 を確認。 */

/* ===== <= 1200px : ease grid spans ===== */
@media (max-width: 1200px) {
  .hero__title { grid-column: 1 / 11; }
  .hero__copy { grid-column: 1 / 9; }
}

/* ===== <= 1024px : tablet ===== */
@media (max-width: 1024px) {
  .sec-indicator { display: none; }
  .greeting__portrait { grid-column: 1 / 5; }
  .greeting__body { grid-column: 5 / 13; }
  .space__stage { grid-column: 1 / 8; }
  .space__tabs { grid-column: 8 / -1; }
  .system__intro { grid-column: 1 / 5; }
  .system__panel { grid-column: 5 / -1; }
  .private__fig { grid-column: 1 / 7; }
  .private__body { grid-column: 7 / -1; }
  .access__map { grid-column: 1 / 6; }
  .access__info { grid-column: 6 / -1; }
  .recruit__body { grid-column: 1 / 7; }
  .recruit__points { grid-column: 7 / -1; }
}

/* ===== <= 900px : switch to hamburger ===== */
@media (max-width: 900px) {
  .nav-desktop { display: none; }
  .hamburger { display: inline-flex; }
  .cast__grid { gap: clamp(1.5rem, 4vw, 2.5rem); }
}

/* ===== <= 768px : mobile ===== */
@media (max-width: 768px) {
  :root { --header-h: 62px; }
  body { padding-bottom: calc(var(--cta-h) + env(safe-area-inset-bottom, 0px)); }
  .cta-bar { display: block; }

  .hero { min-height: auto; padding-top: calc(var(--header-h) + 1.5rem); }
  .hero__bg { inset: 0; }
  .hero__title, .hero__copy, .hero__actions { grid-column: 1 / -1; }
  .hero__actions .btn { flex: 1 1 100%; justify-content: center; }

  /* すべての多カラム段組みを縦積みへ */
  .greeting__portrait, .greeting__body,
  .space__lead, .space__stage, .space__tabs,
  .phil__lead,
  .system__intro, .system__panel,
  .private__fig, .private__body,
  .access__map, .access__info,
  .recruit__body, .recruit__points { grid-column: 1 / -1; }

  .greeting__portrait { max-width: 340px; }
  .phil__list { grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
  .cast__grid { grid-template-columns: minmax(0, 1fr); }
  .cast-card { grid-template-columns: 128px 1fr; align-items: start; gap: 1rem 1.25rem; }
  .cast-card__fig { grid-row: span 3; }
  .space__tabs { flex-direction: row; flex-wrap: wrap; margin-top: 1.25rem; }
  .space__tab { flex: 1 1 8rem; }

  /* 表はカード風に：ニュース・アクセスの2カラム見出しを縦へ */
  .news-item { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
  .news-item__meta { flex-direction: row; align-items: center; gap: 0.75rem; }
  .access__dl > div { grid-template-columns: 5.5rem 1fr; }

  .footer__grid { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
}

/* ===== <= 480px : compact ===== */
@media (max-width: 480px) {
  .cast-card { grid-template-columns: minmax(0, 1fr); }
  .cast-card__fig { grid-row: auto; max-width: 240px; }
  .price-row { grid-template-columns: minmax(0, 1fr); }
  .price-row__price { justify-self: start; }
  .greeting__portrait { max-width: 100%; }
}

/* ===== >= 1600px : luxury whitespace ===== */
@media (min-width: 1600px) { :root { --section-y: clamp(6rem, 8vw, 9.5rem); } }

/* ===== 下層ページ responsive（V5-3） ===== */
@media (max-width: 1024px) {
  .castlist-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cd-media { grid-column: 1 / 6; }
  .cd-info { grid-column: 6 / -1; }
  .nd-article { grid-column: 1 / 10; }
  .accp-left { grid-column: 1 / 6; }
  .accp-right { grid-column: 6 / -1; }
  .rc-hero-fig { grid-column: 1 / 5; }
  .rc-hero-body { grid-column: 5 / -1; }
}
@media (max-width: 768px) {
  .castlist-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cd-media, .cd-info, .nd-article,
  .accp-left, .accp-right,
  .rc-hero-fig, .rc-hero-body,
  .sys-groups, .sys-side { grid-column: 1 / -1; }
  .sys-groups, .sys-side { grid-template-columns: minmax(0, 1fr); }
  .rc-hero-fig { max-width: 320px; }
  .sched-rows { grid-template-columns: minmax(0, 1fr); }
  .nd-related { grid-template-columns: minmax(0, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rc-who { grid-template-columns: minmax(0, 1fr); }
  .form { grid-template-columns: minmax(0, 1fr); }
  .access__dl-row { grid-template-columns: 8rem 1fr; }
  .cd-pager .nm { font-size: 1rem; }
  .lb__nav { width: 48px; height: 48px; font-size: 2rem; }
  .lb__prev { left: 0.35rem; } .lb__next { right: 0.35rem; }
}
@media (max-width: 480px) {
  .castlist-grid { grid-template-columns: minmax(0, 1fr); }
  .castl-card { flex-direction: row; align-items: center; gap: 1rem; }
  .castl-card__fig { width: 120px; flex: none; }
  .gallery-grid { grid-template-columns: minmax(0, 1fr); }
  .cd-subs { grid-template-columns: minmax(0, 1fr); }
  .flow-step { grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
  .access__dl-row { grid-template-columns: minmax(0, 1fr); }
}
