/* =========================================================
   SITE 113 — レスポンシブ
   調整順: カラム減少 → 縦積み → 余白 → 写真比率 → 折畳み → 表カード化 → 見出し
   文字は縮めない（本文16px / 注記14px を全幅で維持）
   ========================================================= */

/* ---------- 1280px 未満: ヘッダーの電話ブロックを畳む ---------- */
@media (max-width: 1279px) {
  .hdr__tel { display: none; }
  .cast-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .plan-grid, .term-grid, .event-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-grid, .menu-grid--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- 1080px 未満: ドロワー＋固定CTAへ切替（主要導線を欠かさない） ---------- */
@media (max-width: 1079px) {
  .hdr__nav { display: none; }
  .hdr__menu { display: inline-flex; }
  .hdr__acts { margin-left: auto; }
  body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
  .ctabar { display: block; }
}

/* ---------- 1023px 以下 ---------- */
@media (max-width: 1023px) {
  :root { --gutter: 18px; }
  .section { padding-block: var(--sp-7); }
  .ftr { margin-top: var(--sp-8); }

  .cast-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ftr__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cast-detail { grid-template-columns: minmax(0, 280px) minmax(0, 1fr); }
  .concept-hero { grid-template-columns: minmax(0, 1fr); }
  .access-grid { grid-template-columns: minmax(0, 1fr); }
  .access-side { position: static; }
  .event-detail { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- 900px 以下: 2カラムを1カラムへ ---------- */
@media (max-width: 900px) {
  .hero__panel { margin-top: -48px; }
  .hero__panel .container { padding: var(--sp-4); }
  .hero__facts { grid-template-columns: minmax(0, 1fr); }
  .access-top { grid-template-columns: minmax(0, 1fr); }
  .endcta__in { flex-direction: column; align-items: flex-start; }
}

/* ---------- 767px 以下: 完全1カラム / 表をカード化 ---------- */
@media (max-width: 767px) {
  .section { padding-block: var(--sp-6); }
  .page-head { padding-block: var(--sp-5) var(--sp-4); }

  .cast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .menu-grid, .menu-grid--compact { grid-template-columns: minmax(0, 1fr); }
  .plan-grid, .term-grid, .term-grid--compact, .event-grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .news-item { grid-template-columns: minmax(0, 1fr); gap: var(--sp-3); }
  .news-item .ph { max-width: 220px; }

  .cast-detail { grid-template-columns: minmax(0, 1fr); }
  .cast-detail__media .ph { max-width: 280px; margin-inline: auto; }

  .form__summary div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .fact-list, .access-top__facts { grid-template-columns: minmax(0, 1fr); }
  .fact-list dd, .access-top__facts dd { margin-bottom: 4px; }

  /* 表 → カード化（thead は隠し、td の data-label を見出しにする） */
  .table-wrap { overflow: visible; border: 0; background: transparent; border-radius: 0; }
  .table { min-width: 0; display: block; }
  .table thead {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .table tbody { display: block; }
  .table tr {
    display: block;
    background: var(--c-surface);
    border: 1px solid var(--c-line);
    border-radius: var(--r);
    margin-bottom: var(--sp-3);
    padding: 4px 0;
  }
  .table tr:last-child { margin-bottom: 0; }
  .table td {
    display: grid;
    grid-template-columns: 7.5rem minmax(0, 1fr);
    gap: var(--sp-3);
    border-bottom: 1px dashed var(--c-line);
    padding: 10px 14px;
  }
  .table tr td:last-child { border-bottom: 0; }
  .table td::before { content: attr(data-label); font-weight: 700; color: var(--c-accent2-strong); }
  .table td.num { text-align: left; white-space: normal; }

  .ftr { padding-block: var(--sp-6) var(--sp-4); }
  .ftr__grid { grid-template-columns: minmax(0, 1fr); gap: var(--sp-5); }
  .ftr__bottom { flex-direction: column; align-items: flex-start; }
}

/* ---------- 479px 以下: 390px を正 ---------- */
@media (max-width: 479px) {
  :root { --gutter: 16px; }
  .hdr__in { gap: var(--sp-2); padding-inline: var(--gutter); min-height: 64px; }
  .hdr__brand-name { font-size: 1.2rem; }
  .hdr__brand-sub { display: none; }
  .hdr__cta-full { display: none; }
  .hdr__cta-short { display: inline; }
  .hdr__menu-text { display: none; }
  .hdr__menu { padding: 8px; justify-content: center; }
  .hdr__acts .btn--sm { padding: 8px 14px; }

  .cast-grid, .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-list__item .ph { width: 44px; height: 44px; }

  .hero__panel { margin-top: -36px; }
  .hero__title { font-size: 1.6rem; }

  .modal__panel { padding: var(--sp-4); }
  .lightbox__panel { width: 94vw; }
  .lightbox__btn { padding: 0 12px; }

  .plan-card__price .num { font-size: 1.5rem; }
  .table td { grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--sp-2); padding: 10px 12px; }
}

/* ---------- 359px 以下の保険（横スクロールを出さない） ---------- */
@media (max-width: 359px) {
  .cast-grid, .gallery-grid { grid-template-columns: minmax(0, 1fr); }
  .table td { grid-template-columns: minmax(0, 1fr); gap: 2px; }
}

/* ---------- 大画面 ---------- */
@media (min-width: 1440px) {
  :root { --gutter: 24px; }
}
