/* レーシック検索ショートコード UI */

.lmap-search {
  max-width: 1100px;
  margin: 8px auto;
  font-family: -apple-system, "Hiragino Sans", "Noto Sans JP", sans-serif;
}

/* ===== 検索フォーム ===== */
.lmap-search-form {
  background: #fff;
  border-radius: 20px;
  padding: 14px 16px;
  box-shadow: 0 4px 24px rgba(0,0,0,.09);
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 10px;
}

/* キーワード検索 — ピル型 */
.lmap-q {
  width: 100%;
  padding: 13px 20px;
  border: 2px solid #e2e8f0;
  border-radius: 999px;
  font-size: 16px;
  font-family: inherit;
  background: #f7f8fc;
  box-sizing: border-box;
  -webkit-appearance: none;
  transition: border-color .2s, box-shadow .2s;
  color: #1a1d23;
}
.lmap-q::placeholder { color: #a0aec0; }
.lmap-q:focus {
  outline: none;
  border-color: #1d6fb8;
  box-shadow: 0 0 0 4px rgba(29,111,184,.10);
  background: #fff;
}

/* フィルター行 */
.lmap-sf-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lmap-sf-filters select {
  flex: 1 1 140px;
  padding: 10px 16px;
  border: 1.5px solid #e2e8f0;
  border-radius: 999px;
  background: #f7f8fc;
  font-size: 13px;
  font-family: inherit;
  color: #374151;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s;
}
.lmap-sf-filters select:focus {
  outline: none;
  border-color: #1d6fb8;
}

/* レーシック / ICL トグルピル */
.lmap-sf-types {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.lmap-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 20px;
  border: 1.5px solid #e2e8f0;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  font-family: inherit;
  background: #f7f8fc;
  color: #374151;
  cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
  user-select: none;
}
.lmap-type-pill:has(input:checked) {
  border-color: #1d6fb8;
  background: #e8f0fb;
  color: #1d6fb8;
}
.lmap-type-pill input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #1d6fb8;
  cursor: pointer;
}

/* 距離セレクト行 */
.lmap-sf-radius-row {
  display: flex;
}
.lmap-sf-radius-row .lmap-radius {
  flex: 1 1 auto;
  width: 100%;
  padding: 10px 16px;
  border: 1.5px solid #e2e8f0;
  border-radius: 999px;
  background: #f7f8fc;
  font-size: 13px;
  font-family: inherit;
  color: #374151;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s;
}
.lmap-sf-radius-row .lmap-radius:focus {
  outline: none;
  border-color: #1d6fb8;
}

/* 現在地から探す (独立行・100% 幅・オレンジ CTA) */
.lmap-sf-locate-row {
  display: flex;
}
.lmap-locate {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 12px 20px;
  border: 1.5px solid #ff6b35;
  border-radius: 999px;
  background: #ff6b35;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(255, 107, 53, .25);
  transition: background .15s, border-color .15s, box-shadow .15s, transform .05s;
}
.lmap-locate:hover {
  background: #ef5a22;
  border-color: #ef5a22;
  box-shadow: 0 4px 14px rgba(255, 107, 53, .35);
}
.lmap-locate:active {
  transform: translateY(1px);
}

/* ===== マップ ===== */
.lmap-map-wrap {
  margin-bottom: 10px;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
}

@media (min-width: 600px) {
  .lmap-map { height: 360px !important; }
}
@media (min-width: 1024px) {
  .lmap-map { height: 440px !important; }
}

/* ===== 件数メタ ===== */
.lmap-results-meta {
  font-size: 13px;
  color: #6b7280;
  padding: 4px 2px 6px;
  font-weight: 500;
}

/* ===== カード一覧 ===== */
.lmap-results-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
@media (min-width: 480px) {
  .lmap-results-list { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
  .lmap-results-list { grid-template-columns: repeat(3, 1fr); }
}

.lmap-results-list .lmap-card {
  border: 1.5px solid #e8eaf6;
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,.05);
  transition: box-shadow .15s, transform .15s;
}
.lmap-results-list .lmap-card:hover {
  box-shadow: 0 6px 24px rgba(29,111,184,.13);
  transform: translateY(-2px);
}
.lmap-results-list .lmap-card a {
  display: block;
  padding: 10px 12px;
  text-decoration: none;
  color: inherit;
}

/* 都道府県 — 左上・小さめ */
.lmap-card-pref {
  font-size: 11px;
  color: #9ca3af;
  font-weight: 500;
  margin-bottom: 2px;
  letter-spacing: .02em;
}

/* クリニック名 */
.lmap-card-name {
  font-size: 15px;
  font-weight: 700;
  color: #1a1d23;
  margin: 0 0 3px;
  line-height: 1.35;
}

/* 住所 */
.lmap-card-addr {
  font-size: 12px;
  color: #6b7280;
  margin: 0 0 6px;
  line-height: 1.4;
}

/* レーシック/ICL 対応インジケーター */
.lmap-card-si {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.lmap-card-si-item {
  font-size: 12px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  color: #6b7280;
}
.lmap-si-yes { color: #059669; }
.lmap-si-no  { color: #dc2626; }
.lmap-si-uk  { color: #9ca3af; }

/* 検索するボタン */
.lmap-sf-action-row {
  display: flex;
}
.lmap-search-btn {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 100%;
  padding: 12px 20px;
  border: 1.5px solid #1d6fb8;
  border-radius: 999px;
  background: #1d6fb8;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(29, 111, 184, .25);
  transition: background .15s, border-color .15s, box-shadow .15s, transform .05s;
}
.lmap-search-btn:hover {
  background: #1558a0;
  border-color: #1558a0;
  box-shadow: 0 4px 14px rgba(29, 111, 184, .35);
}
.lmap-search-btn:active {
  transform: translateY(1px);
}

/* または区切り線 */
.lmap-or-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #9ca3af;
  font-size: 13px;
}
.lmap-or-divider::before,
.lmap-or-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e2e8f0;
}

/* レビュー件数・レート */
.lmap-card-review {
  margin-top: 5px;
  font-size: 12px;
  font-weight: 700;
  color: #b45309;
}
.lmap-card-review-count {
  font-weight: 400;
  color: #6b7280;
}

/* q入力中のチェックボックスdisabled表示 */
.lmap-type-pill:has(input:disabled) {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}
