.k6-hall-directory-tools{
  display:grid;
  grid-template-columns:minmax(280px,1fr) 180px 170px auto;
  gap:10px;
  align-items:end;
  margin:0 0 12px;
  padding:12px;
  border:1px solid #dde5ee;
  border-radius:11px;
  background:#f8fafc;
}
.k6-hall-directory-search{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:0 13px;
  border:1px solid #cbd5e1;
  border-radius:9px;
  background:#fff;
}
.k6-hall-directory-search i{color:#64748b}
.k6-hall-directory-search input{
  width:100%;min-width:0;border:0;outline:0;background:transparent;
  color:#0f172a;font-size:13px;
}
.k6-hall-directory-select{display:flex;flex-direction:column;gap:5px}
.k6-hall-directory-select>span{color:#475569;font-size:10px;font-weight:900}
.k6-hall-directory-select select{
  width:100%;min-height:44px;padding:0 34px 0 11px;
  border:1px solid #cbd5e1;border-radius:9px;background:#fff;
  color:#0f172a;font-size:12px;font-weight:700;
}
.k6-hall-directory-reset{
  min-height:44px;padding:0 13px;border:1px solid #cbd5e1;
  border-radius:9px;background:#fff;color:#334155;
  font-size:11px;font-weight:900;cursor:pointer;
}
.k6-hall-directory-reset:hover{border-color:#94a3b8;background:#f1f5f9}
.k6-hall-load-more-wrap{display:flex;justify-content:center;margin-top:16px}
.k6-hall-load-more{
  min-width:220px;min-height:44px;padding:0 20px;
  border:1px solid #0f766e;border-radius:9px;background:#fff;
  color:#0f766e;font-size:12px;font-weight:900;cursor:pointer;
}
.k6-hall-load-more:hover{background:#f0fdfa}
.k6-hall-load-more[hidden]{display:none!important}
.k6-hall-directory-ready .mm-hall-card[hidden]{display:none!important}
.mm-hall-result-count{white-space:nowrap}
@media(max-width:980px){
  .k6-hall-directory-tools{grid-template-columns:minmax(0,1fr) minmax(140px,.5fr)}
  .k6-hall-directory-search{grid-column:1/-1}
}
@media(max-width:640px){
  .k6-hall-directory-tools{grid-template-columns:1fr;padding:10px}
  .k6-hall-directory-search{grid-column:auto}
  .k6-hall-directory-reset{width:100%}
}


/* =========================================================
   v1.10.5 画像未登録ホールのカード
========================================================= */
.mm-hall-card__topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
}
.mm-hall-card__topline .mm-hall-card__area{
  min-width:0;
}
.mm-hall-card__attention-inline{
  display:inline-flex;
  min-height:24px;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  padding:3px 8px;
  border-radius:999px;
  background:#ef4444;
  color:#fff;
  font-size:9px;
  font-weight:900;
  line-height:1;
}
.mm-hall-card.no-image .mm-hall-card__body{
  border-top:0;
}


/* =========================================================
   v1.10.14 一覧カードの開催日表示
========================================================= */
.mm-hall-card__upcoming-meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin:0 0 7px;
}
.mm-hall-card__upcoming-date{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:#475569;
  font-size:10px;
  font-weight:900;
  line-height:1.3;
  white-space:nowrap;
}
.mm-hall-card__upcoming-date i{
  color:#7c3aed;
  font-size:10px;
}
.mm-hall-card__upcoming-meta>span{
  margin:0!important;
}

/* v1.10.19 イベント解説リンク */
.k6-hall-event-guide-link{display:inline-flex;flex-wrap:wrap;align-items:center;gap:7px;color:#0f766e;font-weight:900;text-decoration:none}
.k6-hall-event-guide-link:hover{color:#115e59;text-decoration:underline;text-underline-offset:3px}
.k6-hall-event-guide-link>span{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;background:#ccfbf1;color:#0f766e;font-size:11px;line-height:1;white-space:nowrap}
.mm-hall-card__guide-mark{display:inline-flex;align-items:center;min-height:21px;margin-left:6px;padding:2px 7px;border-radius:999px;background:#ccfbf1;color:#0f766e;font-size:10px;font-weight:900;vertical-align:middle}
.mm-hall-upcoming-card__hall-link{color:inherit;text-decoration:none}
.mm-hall-upcoming-card__hall-link:hover{color:#0f766e;text-decoration:underline;text-underline-offset:3px}
.mm-hall-upcoming-card__more{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:#0f766e;font-size:12px;font-weight:900;text-decoration:none;white-space:nowrap}


/* =========================================================
   v1.10.24 近日カードのスマホ見切れ修正
========================================================= */
.mm-hall-upcoming-card,
.mm-hall-upcoming-card__body{min-width:0;box-sizing:border-box}
.mm-hall-upcoming-card__body h3,
.mm-hall-upcoming-card__body p,
.mm-hall-upcoming-card__body .k6-hall-event-guide-link{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:break-word}
@media(max-width:640px){
  .mm-hall-upcoming-list{overflow:visible!important}
  .mm-hall-upcoming-card{
    display:grid!important;
    grid-template-columns:62px minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    padding:10px!important;
    overflow:hidden!important;
  }
  .mm-hall-upcoming-card__date{grid-column:1;grid-row:1/3;width:62px!important;min-width:62px!important}
  .mm-hall-upcoming-card__body{grid-column:2;grid-row:1;width:100%!important;min-width:0!important}
  .mm-hall-upcoming-card__body .k6-hall-event-guide-link{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:5px!important;width:100%!important}
  .mm-hall-upcoming-card__more{
    grid-column:2;
    grid-row:2;
    justify-self:start;
    margin:2px 0 0!important;
    padding:4px 0;
    white-space:normal!important;
  }
}

/* =========================================================
   v1.10.25 近日カードの店舗リンクをカード内へ固定
========================================================= */
.mm-hall-upcoming-card{
  display:grid!important;
  grid-template-columns:68px minmax(0,1fr)!important;
  align-items:start!important;
  gap:12px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.mm-hall-upcoming-card__date{
  grid-column:1!important;
  grid-row:1!important;
}
.mm-hall-upcoming-card__body{
  grid-column:2!important;
  grid-row:1!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
}
.mm-hall-upcoming-card__actions{
  display:flex;
  justify-content:flex-end;
  width:100%;
  max-width:100%;
  margin-top:8px;
  box-sizing:border-box;
}
.mm-hall-upcoming-card__more{
  max-width:100%;
  margin-left:0!important;
  padding:3px 0;
  box-sizing:border-box;
}
@media(max-width:640px){
  .mm-hall-upcoming-card{
    grid-template-columns:62px minmax(0,1fr)!important;
    gap:10px!important;
  }
  .mm-hall-upcoming-card__actions{
    justify-content:flex-start;
    margin-top:6px;
  }
  .mm-hall-upcoming-card__more{
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:auto!important;
    margin:0!important;
  }
}


/* =========================================================
   v1.10.28 近日イベントの来店人物リンク
========================================================= */
.k6-hall-performer-links--directory{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  width:100%;
  min-width:0;
  margin-top:7px;
}
.k6-hall-performer-links--directory>span{
  color:#64748b;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}
.k6-hall-performer-links--directory>a{
  display:inline-flex;
  align-items:center;
  gap:5px;
  max-width:100%;
  padding:5px 9px;
  border:1px solid #b9e9df;
  border-radius:999px;
  background:#f0fdfa;
  color:#0f766e;
  font-size:11px;
  font-weight:900;
  line-height:1.25;
  text-decoration:none;
  overflow-wrap:anywhere;
}
.k6-hall-performer-links--directory>a:hover{
  border-color:#0f766e;
  background:#ccfbf1;
  color:#115e59;
}
.k6-hall-performer-links--directory>a i{font-size:9px}
@media(max-width:640px){
  .k6-hall-performer-links--directory{align-items:flex-start}
  .k6-hall-performer-links--directory>span{width:100%}
  .k6-hall-performer-links--directory>a{white-space:normal}
}


/* =========================================================
   v1.12.2 カード画像の高さ暴走を止める

   店舗画像が縦長・巨大な場合、画像だけでカードの高さを
   使い切ってしまい、店舗名や地域が見えない空カードになっていた。
   比率を固定し、はみ出しはトリミングして表示する。
========================================================= */
.mm-hall-card__image{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#f1f5f9;
  flex:0 0 auto;
}
.mm-hall-card__image img{
  display:block;
  width:100%;
  height:100%;
  max-height:100%;
  object-fit:cover;
  object-position:center;
}
.mm-hall-card{
  overflow:hidden;
}
.mm-hall-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
}
.mm-hall-card__body{
  flex:1 1 auto;
  min-height:0;
}


/* =========================================================
   v1.12.3 カード内容が画像に隠れるのを確実に防ぐ

   テーマ側で .mm-hall-card__image が絶対配置になっている場合、
   画像がカード全面を覆い、店舗名や地域がその下に隠れる。
   前版の指定では打ち消せなかったため、詳細度を上げて上書きする。
========================================================= */
.mm-hall-grid .mm-hall-card{
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__link{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  z-index:1;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__image{
  position:relative !important;
  inset:auto !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#f1f5f9;
  flex:0 0 auto;
  z-index:1;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__image img{
  position:relative !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-height:100% !important;
  object-fit:cover;
  object-position:center;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__body{
  position:relative !important;
  z-index:2;
  flex:1 1 auto;
  min-height:0;
}


/* =========================================================
   v1.12.4 画像枠が本文を押し出さないようにする

   画像が読み込めない・空白の場合でも枠だけが場所を取り、
   その分だけ本文が下へ押されて「店舗情報を見る」が
   カード外へはみ出して切れていた。

   ・本文は縮まない（flex:0 0 auto）
   ・画像は余白が足りなければ縮む（flex:0 1 auto）
   これで本文が切れることが無くなる。
========================================================= */
.mm-hall-grid .mm-hall-card .mm-hall-card__image{
  aspect-ratio:auto !important;
  height:auto !important;
  max-height:180px !important;
  min-height:0 !important;
  flex:0 1 auto !important;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__image img{
  height:auto !important;
  max-height:180px !important;
  object-fit:cover;
}
.mm-hall-grid .mm-hall-card .mm-hall-card__body{
  flex:0 0 auto !important;
  min-height:0;
}
/* 画像が読み込めなかったカードは画像枠ごと消す（JSが付与） */
.mm-hall-grid .mm-hall-card.k6-image-failed .mm-hall-card__image{
  display:none !important;
}


/* =========================================================
   v1.22.8 ホールトップ: 選択済み地域UI
   archiveでは hall-directory.css のみ読み込むため、
   選択地域UIのスタイルもこのファイルに置く。
========================================================= */
body.mm-body--hall-index .k6-hall-scope{
  margin:0 0 16px;
}
body.mm-body--hall-index .k6-hall-scope.is-selected{
  padding:14px 16px;
  border:1px solid #dbe4ec;
  border-radius:14px;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.025);
}
body.mm-body--hall-index .k6-hall-scope__current{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
}
body.mm-body--hall-index .k6-hall-scope__current>div:first-child{
  display:grid;
  gap:4px;
  min-width:0;
}
body.mm-body--hall-index .k6-hall-scope__eyebrow{
  display:block;
  margin:0;
  color:#0f766e;
  font-size:10px;
  font-weight:900;
  line-height:1.2;
  letter-spacing:.14em;
}
body.mm-body--hall-index .k6-hall-scope__mainline{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  min-width:0;
}
body.mm-body--hall-index .k6-hall-scope__mainline strong{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin:0;
  color:#0f172a;
  font-size:18px;
  font-weight:900;
  line-height:1.25;
}
body.mm-body--hall-index .k6-hall-scope__mainline strong i{
  color:#0f766e;
  font-size:14px;
}
body.mm-body--hall-index .k6-hall-scope__count{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  background:#f0fdfa;
  color:#0f766e;
  font-size:11px;
  font-weight:900;
  line-height:1;
  white-space:nowrap;
}
body.mm-body--hall-index .k6-hall-scope__current small{
  display:block;
  margin:0;
  color:#64748b;
  font-size:11px;
  line-height:1.45;
}
body.mm-body--hall-index .k6-hall-scope__change{
  position:relative;
  min-width:116px;
}
body.mm-body--hall-index .k6-hall-scope__change>summary{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:40px;
  padding:8px 12px;
  border:1px solid #cbd5e1;
  border-radius:9px;
  background:#f8fafc;
  color:#334155;
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  list-style:none;
  cursor:pointer;
  user-select:none;
}
body.mm-body--hall-index .k6-hall-scope__change>summary::after{
  content:'›';
  display:inline-block;
  color:#64748b;
  font-size:17px;
  line-height:1;
  transform:rotate(90deg);
  transition:transform .18s ease;
}
body.mm-body--hall-index .k6-hall-scope__change[open]>summary::after{
  transform:rotate(-90deg);
}
body.mm-body--hall-index .k6-hall-scope__change>summary::-webkit-details-marker{
  display:none;
}
body.mm-body--hall-index .k6-hall-scope__change>summary:hover{
  border-color:#94a3b8;
  background:#f1f5f9;
}
body.mm-body--hall-index .k6-hall-scope__change[open]{
  grid-column:1/-1;
  width:100%;
}
body.mm-body--hall-index .k6-hall-scope__change[open]>summary{
  width:max-content;
  margin-left:auto;
}
body.mm-body--hall-index .k6-hall-scope__change[open] .k6-hall-scope__picker{
  margin-top:12px;
}
body.mm-body--hall-index .k6-hall-scope.is-unset{
  padding:16px;
  border:1px solid #dbe4ec;
  border-radius:14px;
  background:#fff;
}
body.mm-body--hall-index .k6-hall-scope__head{
  margin-bottom:12px;
}
body.mm-body--hall-index .k6-hall-scope__head p{
  margin:5px 0 0;
  color:#64748b;
  font-size:13px;
}
@media(max-width:700px){
  body.mm-body--hall-index .k6-hall-scope.is-selected{
    padding:12px;
  }
  body.mm-body--hall-index .k6-hall-scope__current{
    grid-template-columns:minmax(0,1fr) auto;
    gap:10px;
  }
  body.mm-body--hall-index .k6-hall-scope__mainline strong{
    font-size:17px;
  }
  body.mm-body--hall-index .k6-hall-scope__current small{
    grid-column:1/-1;
  }
  body.mm-body--hall-index .k6-hall-scope__change{
    min-width:96px;
  }
  body.mm-body--hall-index .k6-hall-scope__change>summary{
    min-height:38px;
    padding:7px 9px;
    font-size:10px;
  }
}
@media(max-width:420px){
  body.mm-body--hall-index .k6-hall-scope__current{
    grid-template-columns:1fr;
  }
  body.mm-body--hall-index .k6-hall-scope__change{
    width:100%;
  }
  body.mm-body--hall-index .k6-hall-scope__change>summary,
  body.mm-body--hall-index .k6-hall-scope__change[open]>summary{
    width:100%;
    margin:0;
  }
}

/* Production perf: JS初期化前に全店舗カードを一瞬レイアウトしない。 */
html.k6-js body:not(.k6-hall-directory-ready) #featured-halls .mm-hall-grid > .mm-hall-card:nth-child(n+13){display:none!important}
