.facility-pin {--pin-size: 34px;position: relative;width: var(--pin-size);height: var(--pin-size);display: flex;align-items: flex-start;justify-content: center;cursor: pointer;transition: width 0.18s ease, height 0.18s ease}
.facility-pin::before {content: "";position: absolute;inset: 0;background: var(--cat, var(--mode-facility));border: 2px solid #fff;border-radius: 50% 50% 50% 0;transform: rotate(-45deg);box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3);box-sizing: border-box}
.facility-pin .fo-ic {position: relative;z-index: 1;width: 16px;height: 16px;margin-top: 7px;color: #fff}
.facility-pin.is-current {--pin-size: 44px}
.facility-pin.is-current .fo-ic {width: 21px;height: 21px;margin-top: 9px}
.facility-pin.is-sample::before {border-style: dashed}
.facility-pin-sample,
.facility-info-sample,
.facility-card-sample {border: 1px dashed #94a3b8;border-radius: 999px;color: var(--color-text-secondary);font-weight: 700;white-space: nowrap}
.facility-pin-sample {position: absolute;top: -20px;left: 50%;transform: translateX(-50%);z-index: 2;padding: 1px 6px;background: #fff;font-size: 9.5px;line-height: 1.5;pointer-events: none}
.facility-info .marker-info-content {min-width: 0}
.facility-info-tags {display: flex;align-items: center;flex-wrap: wrap;gap: 6px;padding-right: 36px;margin-bottom: 6px}
.facility-info-sample {padding: 1px 8px;font-size: 10.5px}
.facility-info-name {margin-bottom: 8px}
.facility-info-name a {color: var(--color-text-primary);font-size: 0.95em;font-weight: 700;line-height: 1.4;text-decoration: none;overflow-wrap: anywhere}
.facility-info-name a:hover {color: var(--mode-facility)}
.facility-info-meta {display: flex;align-items: center;flex-wrap: wrap;gap: 8px;margin-top: 8px;font-size: 0.75em;color: var(--color-text-muted)}
.facility-info-support {cursor: pointer;font-family: inherit;padding: 3px 9px}
.facility-info-support:hover {border-color: var(--pc, var(--mode-facility))}
.facility-info-support:focus-visible {outline: 2px solid var(--mode-facility);outline-offset: 2px}
.facility-info-actions {display: flex;margin-top: 12px}
.facility-info-detail-link {flex: 1;display: flex;align-items: center;justify-content: center;padding: 10px;border-radius: 10px;background: var(--mode-facility);color: #fff;font-size: 0.85em;font-weight: 600;text-decoration: none;box-sizing: border-box;transition: background 0.2s ease}
.facility-info-detail-link:hover {background: var(--mode-facility-dark)}
.facility-strip [hidden] {display: none !important}
.facility-strip-count .fo-ic {width: 14px;height: 14px;margin-right: 4px;vertical-align: -2px;color: var(--mode-facility)}
.facility-chips {display: flex;gap: 6px;overflow-x: auto;scrollbar-width: none;padding: 2px 16px 8px;pointer-events: auto;-webkit-overflow-scrolling: touch}
.facility-chips::-webkit-scrollbar {display: none}
.facility-chip {flex: none;display: inline-flex;align-items: center;gap: 5px;padding: 6px 12px;border: 0;border-radius: 999px;background: #fff;color: var(--color-text-primary);font-family: inherit;font-size: 12.5px;font-weight: 600;white-space: nowrap;box-shadow: var(--shadow-sm);cursor: pointer;transition: background 0.2s ease, color 0.2s ease}
.facility-chip .fo-ic {width: 14px;height: 14px;color: var(--cat, var(--mode-facility))}
.facility-chip.is-on {background: var(--mode-facility);color: #fff}
.facility-chip.is-on .fo-ic {color: #fff}
.facility-chip:focus-visible,
.facility-card-link:focus-visible,
.facility-card-locate:focus-visible {outline: 2px solid var(--mode-facility);outline-offset: 2px}
.facility-strip-empty {margin: 0;padding: 10px 16px 12px;font-size: 0.8rem;color: var(--color-text-muted);pointer-events: auto}
.facility-card {position: relative;flex: none;width: 250px;max-width: 78vw;border: 2px solid transparent;border-radius: var(--radius-md);background: #fff;box-shadow: var(--shadow-md);scroll-snap-align: start;box-sizing: border-box}
.facility-card.is-current {border-color: var(--mode-facility)}
.facility-card-link {display: flex;align-items: center;gap: 10px;padding: 8px;border-radius: inherit;color: inherit;text-decoration: none}
.facility-card-locate {position: absolute;top: 6px;right: 6px;display: inline-flex;align-items: center;gap: 3px;min-height: 24px;padding: 3px 8px;border: 1px solid color-mix(in srgb, var(--mode-facility) 45%, #fff);border-radius: 999px;background: #fff;color: var(--mode-facility);font-family: inherit;font-size: 10.5px;font-weight: 700;line-height: 1;cursor: pointer}
.facility-card-locate::before {content: "";position: absolute;inset: -8px -6px}
.facility-card-locate .fo-ic {width: 12px;height: 12px}
.facility-card-locate:hover {background: color-mix(in srgb, var(--mode-facility) 10%, #fff)}
.facility-card-photo {position: relative;flex: none;width: 72px;height: 72px;border-radius: 10px;overflow: hidden;display: flex;align-items: center;justify-content: center;background: color-mix(in srgb, var(--cat, var(--mode-facility)) 14%, #fff);color: var(--cat, var(--mode-facility))}
.facility-card-photo .fo-ic {width: 26px;height: 26px}
.facility-card-photo img {position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover}
.facility-card-sample {position: absolute;bottom: 4px;left: 50%;transform: translateX(-50%);z-index: 1;padding: 1px 6px;background: #fff;font-size: 9.5px;line-height: 1.4}
.facility-card-body {flex: 1;min-width: 0;display: flex;flex-direction: column;align-items: flex-start;gap: 2px}
.facility-card-category {display: flex;align-items: center;min-height: 26px;max-width: calc(100% - 88px);font-size: 10.5px;font-weight: 700;color: var(--color-text-muted);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}
.facility-card-name {max-width: 100%;font-size: 13.5px;font-weight: 700;color: var(--color-text-primary);overflow: hidden;text-overflow: ellipsis;white-space: nowrap}
.facility-card-meta {font-size: 11.5px;color: var(--color-text-muted)}
body.facility-strip-visible .home-chat {display: none}
@media (prefers-reduced-motion: reduce) {.facility-pin,
.facility-chip {transition: none}}