.pm-wrap { margin: 1.5em 0; }

/* 地図＋リストのレイアウト（地図の下にリストを縦積み） */
.pm-map-layout { display: block; }
.pm-map-layout #pm-map { width: 100%; height: var(--pm-h, 480px); border-radius: 8px; z-index: 0; }

/* リスト表示/非表示トグル */
.pm-list-toggle { display: inline-flex; align-items: center; gap: 6px; margin: 10px 0 0; padding: .5em 1em; border: 1px solid #cdd7e3; border-radius: 6px; background: #f4f8ff; color: #2c5aa0; font-size: .85rem; font-weight: 600; cursor: pointer; }
.pm-list-toggle:hover { background: #e7f1ff; }
.pm-list-toggle::before { content: "▾"; font-size: .8em; transition: transform .15s; }
.pm-list-toggle[aria-expanded="false"]::before { transform: rotate(-90deg); }

.pm-list { width: 100%; max-height: 340px; margin-top: 8px; overflow-y: auto; border: 1px solid #e3e3e3; border-radius: 8px; background: #fff; }
.pm-list.is-hidden { display: none; }

#pm-map { width: 100%; border-radius: 8px; z-index: 0; }

/* リスト項目 */
.pm-list__empty { padding: 1em; color: #888; font-size: .85rem; text-align: center; }
.pm-list__item { display: flex; gap: 10px; width: 100%; padding: 10px; border: 0; border-bottom: 1px solid #f0f0f0; background: none; text-align: left; cursor: pointer; align-items: center; }
.pm-list__item:hover { background: #f5f9ff; }
.pm-list__item--active { background: #e7f1ff; }
.pm-list__thumb { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; background: #eee; }
.pm-list__thumb--none { display: block; }
.pm-list__meta { display: flex; flex-direction: column; min-width: 0; line-height: 1.4; }
.pm-list__meta strong { font-size: .9rem; }
.pm-list__addr { font-size: .78rem; color: #555; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-list__date { font-size: .72rem; color: #999; }

.pm-popup { width: 220px; }
.pm-popup img { width: 100%; max-height: 200px; object-fit: cover; height: auto; display: block; border-radius: 4px 4px 0 0; }
.pm-popup__body { padding: 6px 2px 0; }
.pm-popup__body p { margin: 4px 0; font-size: 13px; }
.pm-popup__body small { color: #666; line-height: 1.5; }
/* Leaflet標準ポップアップの余白を詰めて写真を見やすく */
.leaflet-popup-content { margin: 10px; }
.leaflet-popup-content-wrapper { border-radius: 8px; }

.pm-form { margin-top: 1.5em; padding: 1.2em; border: 1px solid #e3e3e3; border-radius: 8px; background: #fafafa; }
.pm-form__title { margin: 0 0 .8em; font-size: 1.05rem; }
.pm-field { margin: 0 0 1em; }
.pm-field label { display: block; font-weight: 600; font-size: .9rem; margin-bottom: .3em; }
.pm-field input[type="text"],
.pm-field textarea { width: 100%; padding: .55em; border: 1px solid #ccc; border-radius: 4px; box-sizing: border-box; }
.pm-required { color: #c0392b; font-size: .75rem; font-weight: 400; }
.pm-optional { color: #888; font-size: .75rem; font-weight: 400; }
.pm-help { display: block; color: #888; font-size: .75rem; margin-top: .3em; }
.pm-submit { padding: .7em 2em; border: 0; border-radius: 4px; background: #2c7be5; color: #fff; font-weight: 700; cursor: pointer; }
.pm-submit:hover { background: #1a5fb4; }
.pm-note { font-size: .8rem; color: #888; margin: .5em 0 0; }
.pm-hp { position: absolute; left: -9999px; }

.pm-notice { padding: .8em 1em; border-radius: 6px; margin-bottom: 1em; font-size: .9rem; }
.pm-notice--success { background: #e8f5e9; border: 1px solid #a5d6a7; color: #1b5e20; }
.pm-notice--error { background: #fdecea; border: 1px solid #f5c6cb; color: #8b1a10; }
