.public-facilities-page { background: #f7f5f2; color: var(--ink); }
.public-shell { max-width: 1180px; margin: 0 auto; padding: 38px 28px 60px; }
.public-title { margin-bottom: 24px; }
.public-title h1 { margin: 0 0 10px; font: 400 42px/1.12 var(--serif); color: #44303c; }
.public-title p:not(.eyebrow) { margin: 0; color: #6a6066; }
.public-search { margin-bottom: 20px; padding: 18px; border: 1px solid #e4dcda; border-radius: 12px; background: #fffefd; }
.public-search label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; color: #42383f; }
.public-search input { min-height: 44px; border: 1px solid #d8cdce; border-radius: 8px; padding: 10px 12px; }
.public-result-count { margin: 12px 0 0; color: #756770; font-size: 13px; }
.public-facility-list { display: grid; gap: 14px; }
.public-facility-card { display: grid; grid-template-columns: 180px minmax(0,1fr); gap: 18px; padding: 16px; border: 1px solid #e4dcda; border-radius: 12px; background: #fffefd; }
.public-facility-card img { width: 180px; height: 140px; object-fit: cover; border-radius: 8px; background: #f4ecef; }
.public-facility-card h2 { margin: 0 0 7px; font: 400 26px/1.2 var(--serif); color: #44303c; }
.public-facility-card p { margin: 0 0 10px; color: #6f5f66; font-size: 13px; line-height: 1.6; }
.public-chip-row { display: flex; flex-wrap: wrap; gap: 7px; margin: 10px 0 13px; }
.public-chip-row span { padding: 5px 9px; border-radius: 15px; background: #f7e9ed; color: #684d59; font-size: 11px; font-weight: 700; }
.public-pagination { display: flex; align-items: center; justify-content: center; gap: 14px; margin-top: 22px; color: #5f5058; font-size: 13px; font-weight: 700; }
.public-pagination[hidden] { display: none; }
.public-pagination button { min-height: 40px; border: 1px solid #cf1f35; border-radius: 999px; padding: 8px 16px; background: #fffefd; color: #b80f25; font: inherit; cursor: pointer; }
.public-pagination button:disabled { border-color: #e2d8da; color: #9b8c93; cursor: not-allowed; }
.public-profile { overflow: hidden; border: 1px solid #e4dcda; border-radius: 16px; background: #fffefd; }
.public-profile-hero { min-height: 340px; display: grid; align-items: end; padding: 34px; color: #fff; background: linear-gradient(0deg,#160d12e6,#160d1240),var(--hero-image, url('findingcare.jpg')) center/cover; }
.public-profile-hero h1 { max-width: 850px; margin: 0; font: 400 46px/1.1 var(--serif); }
.public-profile-hero p { margin: 0 0 11px; color: #f1e8eb; }
.public-profile-body { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(280px,.8fr); gap: 30px; padding: 30px; }
.public-profile-body article>p { color: #514850; line-height: 1.75; }
.public-profile-gallery { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; margin-top: 20px; }
.public-profile-gallery figure { margin: 0; }
.public-profile-gallery img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: 8px; }
.public-profile-gallery figcaption { margin-top: 6px; color: #756770; font-size: 12px; line-height: 1.45; }
.public-detail-list { display: grid; gap: 10px; margin: 0; }
.public-detail-list div { display: grid; grid-template-columns: 132px minmax(0,1fr); gap: 12px; font-size: 13px; line-height: 1.55; }
.public-detail-list dt { color: #8d7884; }
.public-detail-list dd { margin: 0; color: #4f424d; }
.public-empty { padding: 28px; border: 1px solid #e4dcda; border-radius: 12px; background: #fffefd; color: #6f5f66; text-align: center; }
@media (max-width: 760px) {
 .public-shell { padding: 28px 18px 48px; }
 .public-title h1 { font-size: 34px; }
 .public-facility-card,
 .public-profile-body { grid-template-columns: 1fr; }
 .public-facility-card img { width: 100%; height: auto; aspect-ratio: 4/3; }
 .public-profile-gallery { grid-template-columns: 1fr 1fr; }
 .public-detail-list div { grid-template-columns: 1fr; gap: 2px; }
}
