/* SITE 110 — レスポンシブ調整
   調整順: カラム減少 → 縦積み → 余白調整 → 写真比率 → 折畳み → 表カード化 → 最後に見出しサイズ
   文字サイズ縮小による解決は行わない（本文16px / 注記14pxを全幅で維持）。 */

/* ---- ヘッダーCTAは1024px以上のみ（SPは固定CTAバーが担当） ---- */
.header__cta { display: none; }
@media (min-width: 1024px) { .header__cta { display: inline-flex; } }

/* ---- 〜767px: 完全1カラム・表はカード化・個室カードは人数/料金/喫煙を常時表示のまま ---- */
@media (max-width: 767px) {
  .hero__media { aspect-ratio: 16 / 10; max-height: none; }
  .hero__actions .btn { flex: 1 1 100%; }
  .hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__fact dd { font-size: 1rem; }

  .table-wrap--collapse { display: none; }   /* PC表を隠し、カード表示に切替 */
  .price-cards--pc { display: none; }

  .site-footer__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .steps li { flex: 1 1 100%; }
  .lightbox__stage img { max-height: 56vh; }
}

@media (min-width: 768px) {
  .price-cards--sp { display: none; }        /* SPカードを隠し、PC表を表示 */
}

/* ---- 〜479px: 390pxを正 ---- */
@media (max-width: 479px) {
  .hero__facts { grid-template-columns: 1fr; }
  .grid--cast { gap: var(--sp-3); }
  .cast-card__body { padding: var(--sp-3); }
  .fieldset { padding: var(--sp-4); }
  .modal__panel { padding: var(--sp-4); }
  .brand__name { font-size: 1.0625rem; }
  .cta-bar a { font-size: var(--fs-note); }
  .lightbox { padding: var(--sp-3); }
  .lightbox__stage img { max-height: 50vh; }
  .room-spec { grid-template-columns: 1fr; }
  .room-spec dt { margin-top: 6px; }
}

/* ---- 480〜767px: 人物カードは2列を維持 ---- */
@media (min-width: 480px) and (max-width: 767px) {
  .grid--cast { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- 768〜1023px: 2カラム→1カラム、ヘッダーはドロワー ---- */
@media (min-width: 768px) and (max-width: 1023px) {
  .price-conditions,
  .reserve__grid,
  .access__grid,
  .room-detail,
  .cast-detail,
  .recruit__grid { grid-template-columns: 1fr; }
  .hero__actions .btn { flex: 1 1 46%; }
}

/* ---- 1024〜1279px: 列数を1段落とし、固定CTAは非表示（PC扱い） ---- */
@media (min-width: 1024px) and (max-width: 1279px) {
  .gnav__list { gap: 10px; }
  .event__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rooms__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---- 1440px以上: 最大幅で止める ---- */
@media (min-width: 1440px) {
  :root { --wrap: 1200px; }
  .hero__media { max-height: 480px; }
}

/* ---- 印刷 ---- */
@media print {
  .site-header, .cta-bar, .drawer, .backdrop, .modal, .lightbox, #kyabel-promo { display: none !important; }
  body { background: #fff; color: #000; padding-bottom: 0; }
}
