/* SITE 105 — レスポンシブ
   調整順（MASTER §7）: カラム減少 → 縦積み → 余白 → 写真比率 → 折畳み → 表カード化 → 最後に見出し
   本文・料金・時刻・住所・フォームラベルは 16px、注記は 14px を下回らせない。
   ドロワー切替と固定CTA表示は同じ 1079px で切り替える（空白帯を作らない）。
   店舗切替ボタンは全幅で表示し続ける（SITE 105 の主目的の入口を消さない）。 */

/* 既定では短縮表示を隠す */
.brand__short { display: none; }
.store-switch__area { display: none; }
.compare-cards { display: none; }

/* ============ 1440px 以上 ============ */
@media (min-width: 1440px) {
  .container { padding-inline: var(--sp-6); }
}

/* ============ 1279px 以下: ナビ圧縮 ============ */
@media (max-width: 1279px) {
  .global-nav__list { gap: 10px; }
  .global-nav__link { font-size: 14px; }
  .header-actions .btn--tel { display: none; }

  .plan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero__grid { gap: var(--sp-5); }
  .def-list__row { grid-template-columns: 180px minmax(0, 1fr); }
}

/* ============ 1079px 以下: ドロワー・固定CTA（切替BPを一致させる） ============ */
@media (max-width: 1079px) {
  :root { --h-header: 64px; }

  /* 固定CTAの実高 = 項目の min-height（--h-cta）+ 上辺の 1px ボーダー。
     +1px しないと本文の末尾がCTAの下へ1pxもぐる。 */
  body { padding-bottom: calc(var(--h-cta) + 1px + env(safe-area-inset-bottom, 0px)); }

  .global-nav { display: none; }
  .drawer-toggle { display: flex; }
  .header-actions { margin-left: auto; }
  .mobile-cta { display: block; }
  .brand__sub { display: none; }

  .store-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-info { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .store-info__item:nth-child(3n) { border-right: 0; }
  .store-info__item:nth-child(-n+3) { border-bottom: 1px solid var(--c-line); }

  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .grid--4, .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid--2 { grid-template-columns: minmax(0, 1fr); }

  .staff-rows { grid-template-columns: minmax(0, 1fr); }
  .first-summary,
  .split,
  .access-layout,
  .person-detail,
  .mama-block { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }
  .mama-block__media { max-width: 260px; }
  .example-grid, .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .price-compare { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .shop-row { grid-template-columns: minmax(0, 1fr); }
  .shop-row__media img { aspect-ratio: 16 / 9; }
  .menu-grid { grid-template-columns: minmax(0, 1fr); }

  .section { padding-block: var(--sp-7); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ============ 767px 以下: 完全1カラム / 比較表をカードへ / ボトムシート化 ============ */
@media (max-width: 767px) {
  .container { padding-inline: var(--sp-4); }

  .store-switch__name { display: none; }
  .store-switch__area { display: block; font-size: 15px; font-weight: 700; white-space: nowrap; }

  .hero { padding-block: var(--sp-5) var(--sp-6); }
  .hero__actions .btn { flex: 1 1 100%; }
  .hero__stats { gap: var(--sp-3) var(--sp-5); }

  /* 店舗カードは 1列。写真より営業情報・料金を先に読ませる */
  .store-grid { grid-template-columns: minmax(0, 1fr); }
  .store-card__media { aspect-ratio: 21 / 9; }

  .store-info { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-info__item { border-right: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
  .store-info__item:nth-child(2n) { border-right: 0; }
  .store-info__item:last-child { border-bottom: 0; }

  /* 店舗選択モーダルをボトムシートへ（SITE 105 のモバイル要件） */
  .overlay--sheet { align-items: flex-end; padding: 0; }
  .overlay--sheet .modal {
    width: 100%;
    max-height: 88vh;
    border-left: 0; border-right: 0; border-bottom: 0;
    border-radius: var(--radius) var(--radius) 0 0;
  }
  .overlay--sheet .modal__foot { justify-content: stretch; }
  .store-sheet__item { grid-template-columns: minmax(0, 1fr); }
  .store-sheet__go .btn { width: 100%; }

  /* 比較表はカード化（横スクロールで文字を切らない） */
  .compare-wrap { display: none; }
  .compare-cards { display: grid; gap: var(--sp-4); }

  /* 人物カードは 2列を維持（MASTER §7: 情報量により2列可） */
  .grid--4, .grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
  .person-card__body { padding: var(--sp-3); gap: 6px; }

  .example-grid, .role-grid { grid-template-columns: minmax(0, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
  .plan-grid { grid-template-columns: minmax(0, 1fr); }
  .price-compare { grid-template-columns: minmax(0, 1fr); }
  .mama-block__media { max-width: 220px; }

  /* 定義リストの表をカード化 */
  .def-list__row { grid-template-columns: minmax(0, 1fr); }
  .def-list__key { border-right: 0; border-bottom: 1px solid var(--c-line); }
  .confirm-list__row { grid-template-columns: minmax(0, 1fr); }
  .confirm-list__key { border-bottom: 1px solid var(--c-line); }

  .update-item { grid-template-columns: minmax(0, 1fr); gap: 6px; padding-block: var(--sp-4); }
  .update-item__meta { display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; }
  .update-item__meta .media { width: 88px; flex: none; }

  .week-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .archive-bar { flex-direction: column; align-items: stretch; }
  .archive-bar .select { width: 100%; min-width: 0; }
  .archive-bar__count { margin-left: 0; }

  .section { padding-block: var(--sp-7); }
  .section-head { margin-bottom: var(--sp-4); }
  .footer-grid { grid-template-columns: minmax(0, 1fr); gap: var(--sp-6); }

  .cta-band { padding: var(--sp-5); }
  .cta-band__actions { width: 100%; }
  .cta-band__actions .btn { flex: 1 1 100%; }

  .modal__foot { justify-content: stretch; }
  .modal__foot .btn { flex: 1 1 140px; }

  .schedule-row { grid-template-columns: 52px minmax(0, 1fr); grid-template-areas: "thumb name" "thumb time"; gap: 4px var(--sp-3); }
  .schedule-row__thumb { grid-area: thumb; width: 52px; align-self: center; }
  .schedule-row__info { grid-area: name; }
  .schedule-row__time { grid-area: time; text-align: left; }

  .filter-bar { padding: var(--sp-3); }
  .sort-control { width: 100%; }
  .sort-control .select { flex: 1; min-width: 0; }

  .today-head__link { margin-left: 0; width: 100%; }
  .menu-grid { grid-template-columns: minmax(0, 1fr); }
  .menu-item { flex-direction: column; gap: 6px; }
  .menu-item__price { text-align: left; }
}

/* ============ 479px 以下: 390px を正 ============ */
@media (max-width: 479px) {
  .container { padding-inline: 14px; }
  .brand__name { display: none; }
  .brand__short { display: block; font-size: var(--fs-body); font-weight: 700; letter-spacing: 0.08em; white-space: nowrap; }

  /* 390pxではタグを2件までに抑える（続きは詳細ページで全件表示） */
  .person-card__tags li:nth-child(n+3),
  .staff-row__tags li:nth-child(n+3) { display: none; }

  .plan-card, .role-card, .example-card { padding: var(--sp-4); }
  .page-head { padding-block: var(--sp-6) var(--sp-5); }
  .mobile-cta__item { font-size: var(--fs-note); }
  .lightbox__bar { flex-wrap: wrap; }
  .week-strip { gap: 6px; }
  .week-strip__cell { padding: 10px 2px; }
  .staff-row { grid-template-columns: 76px minmax(0, 1fr); gap: var(--sp-3); padding: var(--sp-3); }
  .staff-row__thumb { width: 76px; }
  .store-info { grid-template-columns: minmax(0, 1fr); }
  .store-info__item { border-right: 0; }
  .cta-band { padding: var(--sp-4); }
}

/* ============ 360px 以下の保険（320pxでヘッダーを壊さない） ============ */
@media (max-width: 360px) {
  .container { padding-inline: 12px; }
  .site-header__inner { gap: var(--sp-2); }
  .store-switch { padding-inline: 9px; gap: 6px; }
  .week-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .first-price-card__num { font-size: 34px; }
  .hero__stat-value { font-size: var(--fs-h4); }
}
