/* 清花祭2026 v570: メインストリート露店・画像付き詳細 */
.festival-map-svg #shop-marker-overlay {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease;
}
.festival-map-svg.is-food-mode #shop-marker-overlay {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}
.festival-map-svg .shop-map-marker { cursor:pointer; outline:none; }
.festival-map-svg .shop-map-marker-hit {
  fill:#fffefa;
  fill-opacity:.97;
  stroke:#446f9b;
  stroke-width:1.35;
  vector-effect:non-scaling-stroke;
}
.festival-map-svg .shop-map-marker-number {
  fill:#234f7d;
  font-family:"Montserrat","Zen Kaku Gothic New",sans-serif;
  font-weight:900;
  dominant-baseline:middle;
  text-anchor:middle;
  pointer-events:none;
}
@media (hover:hover) and (pointer:fine) {
  .festival-map-svg .shop-map-marker:hover .shop-map-marker-hit { fill:#f2faf5; stroke:#3d8064; }
}
.festival-map-svg .shop-map-marker:focus-visible .shop-map-marker-hit,
.festival-map-svg .shop-map-marker.is-selected .shop-map-marker-hit {
  fill:#eef8f2;
  stroke:#3d8064;
  stroke-width:1.9;
}
.festival-map-svg .shop-map-marker.is-selected .shop-map-marker-number { fill:#275f47; }

/* 団体選択中は独立した『メインストリート』の行を作らない。
   団体番号・団体名が説明枠の見出しとなり、画像と同じ段の右側に置く。 */
.festival-map-info-card.is-shop-info > .festival-map-card-head { display:none !important; }
.festival-shop-detail[hidden],
.festival-shop-detail-sales[hidden],
.festival-shop-detail-description[hidden],
.festival-shop-detail-number[hidden],
.festival-shop-detail-hq-icon[hidden],
.festival-shop-detail-image[hidden] { display:none !important; }
.festival-shop-detail {
  margin-top:16px;
  color:var(--muted);
  min-width:0;
}
.festival-shop-detail-summary {
  display:grid;
  grid-template-columns:minmax(70px,32%) minmax(0,1fr);
  gap:12px;
  align-items:start;
  min-width:0;
}
.festival-shop-detail-image {
  aspect-ratio:1/1;
  width:100%;
  overflow:hidden;
  background:#eef4ef;
  border:1px solid rgba(40,96,78,.12);
  border-radius:10px;
}
.festival-shop-detail-image img {
  width:100%;height:100%;display:block;object-fit:cover;
}
.festival-shop-detail-image.is-missing { background:#eef4ef; }
.festival-shop-detail-facts { min-width:0; }
.festival-shop-detail-heading {
  margin:0;
  display:flex;
  flex-wrap:nowrap;
  white-space:nowrap;
  align-items:baseline;
  column-gap:.4em;
  row-gap:2px;
  color:var(--ink);
  font-size:var(--shop-heading-size,20px);
  font-weight:800;
  line-height:1.3;
}
.festival-shop-detail-number,
.festival-shop-detail-name {
  font:inherit;
  font-weight:800;
  min-width:0;
  white-space:nowrap;
}
.festival-shop-detail-name { white-space:nowrap; overflow-wrap:normal; }
.festival-shop-detail-sales,
.festival-shop-detail-description {
  margin:0;
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}
.festival-shop-detail-sales {
  margin-top:7px;
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
}
.festival-shop-detail-sales-chunk { white-space:nowrap; }
.festival-shop-detail-description {
  margin-top:12px;
  white-space:pre-line;
  overflow-wrap:anywhere;
}
/* 本部だけは既存の会場マップと同じ見出し・本文クラスを使用する。 */
body.mode-live .day-map-screen .festival-map-info-card.is-headquarters-info .festival-map-info-title {
  display:flex !important;
  align-items:center;
  gap:.4em;
}
body.mode-live .day-map-screen .festival-map-info-card.is-headquarters-info .festival-map-headquarters-icon {
  display:block !important;
  flex:0 0 auto;
  width:1.12em !important;
  height:1.12em !important;
  max-width:none;
  max-height:none;
  object-fit:contain;
}
/* 古いモバイル用二行制限を解除し、本部の文章を途中で切らない。 */
body.mode-live .day-map-screen .festival-map-info-card.is-headquarters-info .festival-map-info-text {
  display:block !important;
  -webkit-line-clamp:unset !important;
  line-clamp:unset !important;
  max-height:none !important;
  overflow:visible !important;
  overflow-wrap:anywhere;
}
@media (max-width:900px) {
  .festival-shop-detail { margin-top:0; }
  .festival-shop-detail-summary {
    grid-template-columns:minmax(48px,31%) minmax(0,1fr);
    gap:8px;
  }
  .festival-shop-detail-sales { margin-top:4px; }
  .festival-shop-detail-description { margin-top:8px; }
}
@media (max-width:420px) {
  .festival-shop-detail-summary { grid-template-columns:minmax(43px,30%) minmax(0,1fr); gap:6px; }
}

/* v589: キッチンカー11台（最大8枠、日付で表示切替）の北側仮配置 */
.festival-map-svg #kitchen-car-marker-overlay {
  opacity:0; visibility:hidden; pointer-events:none;
}
.festival-map-svg.is-food-mode #kitchen-car-marker-overlay {
  opacity:1; visibility:visible; pointer-events:auto;
}
.festival-map-svg .kitchen-car-marker {cursor:pointer;outline:none;}
.festival-map-svg .kitchen-car-marker-hit {
  fill:#fff8ec; stroke:#ba7839; stroke-width:1.6;
  vector-effect:non-scaling-stroke;
}
.festival-map-svg .kitchen-car-marker-number {
  fill:#915522; font-family:"Montserrat","Zen Kaku Gothic New",sans-serif;
  font-weight:900;dominant-baseline:middle;text-anchor:middle;pointer-events:none;
}
.festival-map-svg .kitchen-car-marker:hover .kitchen-car-marker-hit,
.festival-map-svg .kitchen-car-marker:focus-visible .kitchen-car-marker-hit {fill:#ffeacb;}
body.mode-live .festival-map-svg.is-food-mode .kitchen-car-marker.is-selected .kitchen-car-marker-hit {
  fill:#fff8ec !important;stroke:#c72b39 !important;stroke-width:2.2 !important;
  animation:kiyokasai-selected-outline-blink 1.8s ease-in-out infinite !important;
}
@media (prefers-reduced-motion:reduce) {
  body.mode-live .festival-map-svg.is-food-mode .kitchen-car-marker.is-selected .kitchen-car-marker-hit {
    animation:none !important;stroke-opacity:1 !important;
  }
}
/* メインストリートの説明枠右下に、一覧リンクと日付切替を横並びにする。 */
.festival-kitchen-day-switch[hidden] { display:none !important; }
body.mode-live .day-map-screen .festival-map-info-card.has-kitchen-day-switch {
  padding-bottom:66px !important;
}
body.mode-live .day-map-screen .festival-map-info-card.has-kitchen-day-switch > .festival-map-shops-link:not([hidden]) {
  left:12px;
  right:130px;
  max-width:none;
  min-width:0;
  margin:0;
  text-align:center;
  white-space:normal;
}
body.mode-live .day-map-screen .festival-map-info-card > .festival-kitchen-day-switch {
  position:absolute;
  right:12px;
  bottom:9px;
  z-index:3;
  display:flex;
  align-items:center;
  gap:2px;
  padding:3px;
  background:#fffefa;
  border:1px solid #b9cabe;
  border-radius:10px;
  white-space:nowrap;
}
body.mode-live .day-map-screen .festival-kitchen-day-switch button {
  font-family:inherit;
  padding:7px 6px;
  background:transparent;
  border:0;
  border-radius:7px;
  color:#3e6655;
  font-size:clamp(10px,1.05vw,12px);
  font-weight:800;
  line-height:1.3;
  cursor:pointer;
}
body.mode-live .day-map-screen .festival-kitchen-day-switch button.is-active {
  background:#b77740;
  color:#fff;
}
body.mode-live .day-map-screen .festival-kitchen-day-switch button:focus-visible {
  outline:2px solid #326a55;
  outline-offset:1px;
}
@media(max-width:720px) {
  body.mode-live .day-map-screen .festival-map-info-card.has-kitchen-day-switch {
    padding-bottom:64px !important;
  }
  body.mode-live .day-map-screen .festival-map-info-card.has-kitchen-day-switch > .festival-map-shops-link:not([hidden]) {
    left:9px;
    right:120px;
    font-size:clamp(10px,2.65vw,12px);
    padding:6px 5px;
  }
  body.mode-live .day-map-screen .festival-map-info-card > .festival-kitchen-day-switch {
    right:9px;
  }
  body.mode-live .day-map-screen .festival-kitchen-day-switch button {
    padding:7px 5px;
    font-size:10px;
  }
}
.festival-shop-detail-image.is-missing.is-kitchen-image {
  display:flex;align-items:center;justify-content:center;background:#fff3e2;
}
.festival-shop-detail-image.is-missing.is-kitchen-image img {display:none;}
.festival-shop-detail-image.is-missing.is-kitchen-image::after {
  content:'🚚';font-size:clamp(24px,4vw,45px);line-height:1;
}
