/* KYABEL SITE 57 — responsive.css
   確認幅: 360 / 390 / 430 / 768 / 1024 / 1280 / 1440 / 1920。横スクロール禁止。
   縮小はカラム減→縦積み→余白→写真比率の順（文字を小さくしない）。 */

/* ワイド上限：余白を大きめに（和紙のゆとり） */
@media (min-width: 1440px) { :root { --wrap: 78rem; } }

/* タブレット以下：ナビをドロワーへ（8項目でPCナビが窮屈になる境界を回避） */
@media (max-width: 1024px) {
  .site-nav { display: none; }
  .site-head__toggle { display: flex; }
  .hero__inner { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .hero__media { order: -1; }
  .hero__vert { display: none; }
  .access-grid { grid-template-columns: minmax(0, 1fr); }
}

/* タブレット中位 */
@media (max-width: 900px) {
  .cast-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* モバイル：固定CTA・単カラム化・横スクロール対策 */
@media (max-width: 767px) {
  body { padding-bottom: var(--cta-h); }
  .cta-bar { display: block; }
  .page-top { bottom: calc(var(--cta-h) + 0.9rem); }

  .sec { padding-block: var(--sp-6); }
  .sec-head__vert { display: none; }

  .phil-pillars { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 1rem; }

  /* ROOM：縦積み・写真が先（重要情報＝写真を大きく） */
  .room-block, .room-block.is-right { grid-template-columns: minmax(0, 1fr); direction: ltr; gap: 1rem; }
  .room-blocks { gap: var(--sp-5); }

  .price-row { grid-template-columns: minmax(0, 1fr); gap: .2rem; }
  .price-row__desc { text-align: left; }
  /* 長い支払い方法の一行が縦1カラムで溢れるのを防ぐ（金額は改行点が無いので崩れない） */
  .price-row__amt { white-space: normal; overflow-wrap: anywhere; }

  .recruit-points { grid-template-columns: minmax(0, 1fr); }
  .reserve-form { grid-template-columns: minmax(0, 1fr); }
  .foot-grid { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; }
  .footer-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .season-tabs { gap: 0; }
  .season-tab { padding: .5rem .6rem; flex: 1; }

  .sched-row__link { flex-wrap: wrap; gap: .2rem .8rem; }
}

/* 小型スマホ */
@media (max-width: 430px) {
  .hero__title { font-size: clamp(2.1rem, 9vw, 2.7rem); }
  .cta-bar__ja { font-size: .9rem; }
  .access-info dl { grid-template-columns: minmax(0, 1fr); gap: .2rem 0; }
  .access-info dt { margin-top: .6rem; }
}

@media (max-width: 360px) {
  .cast-grid { grid-template-columns: minmax(0, 1fr); }
  .cta-bar__en { display: none; } /* 極小幅では日本語ラベルのみ（可読性優先） */
}

/* ===== 下層ページ レスポンシブ（V5-3） ===== */
@media (max-width: 900px) {
  .cast-full-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .cast-full-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem 1rem; }
  .cd { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
  .news-cards { grid-template-columns: minmax(0, 1fr); }
  .nd__related { grid-template-columns: minmax(0, 1fr); }
  .benefit-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .def-row { grid-template-columns: minmax(0, 1fr); gap: .1rem; }
  .def-row__term { color: var(--kin-deep); margin-top: .3rem; }
  .sched-tab { padding: .5rem 1rem; font-size: 1.05rem; }
  .week__day { width: 4rem; }
  .lightbox__prev { left: .2rem; }
  .lightbox__next { right: .2rem; }
  .lightbox__close { top: -2.6rem; }
  .chip-bar { gap: .5rem; }
}
@media (max-width: 430px) {
  .cast-full-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: minmax(0, 1fr); }
  .benefit-list { grid-template-columns: minmax(0, 1fr); }
  .cd__subs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 360px) {
  .cast-full-grid { grid-template-columns: minmax(0, 1fr); }
}
