:root { color-scheme: light; }
body { background: #fafaf8; color: #27312b; min-height: 100vh; }
a { color: #176a57; }
a:hover { color: #104c40; }
.directory-header { background: #fff; border-bottom: 1px solid #e5e9e5; }
.directory-header-inner { align-items: center; display: flex; justify-content: center; min-height: 150px; padding: 1rem; position: relative; }
.directory-brand { display: inline-flex; }
.directory-brand img { display: block; height: auto; width: 210px; }
.directory-header-actions { align-items: center; background: #fff; border-bottom: 1px solid #e5e9e5; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; padding: .75rem 1rem; }
.directory-submit-link { background: #176a57; border-radius: 999px; color: #fff; font-size: .85rem; font-weight: 650; padding: .55rem .9rem; }
.directory-submit-link:hover, .directory-submit-link:focus-visible { background: #104c40; color: #fff; }
.directory-admin-link { color: #52615a; font-size: .92rem; font-weight: 600; }
.directory-admin-link span { margin-left: .2rem; }
.directory-hero { background: linear-gradient(180deg, #f1f7f3 0%, #fafaf8 100%); padding: 5rem 1rem 4rem; text-align: center; }
.directory-hero .container { max-width: 790px; }
.directory-hero .title { color: #173f34; letter-spacing: -.045em; margin: .35rem 0 1rem; }
.directory-eyebrow { color: #547365; font-size: .75rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.directory-intro { color: #53645a; font-size: 1.1rem; line-height: 1.65; margin: 0 auto 2rem; max-width: 610px; }
.directory-search { align-items: center; background: #fff; border: 1px solid #d7e1d9; border-radius: 999px; box-shadow: 0 7px 24px rgb(25 61 43 / 7%); display: flex; gap: .7rem; min-height: 60px; padding: .4rem 1.1rem; text-align: left; }
.directory-search-home { margin-left: auto; margin-right: auto; max-width: 650px; }
.directory-search-icon { color: #557366; font-size: 1.7rem; line-height: 1; }
.directory-search input { background: transparent; border: 0; color: #617268; flex: 1; font: inherit; min-width: 0; outline: 0; }
.directory-search input:disabled { -webkit-text-fill-color: #617268; opacity: 1; }
.directory-search input::placeholder { color: #7c8980; opacity: 1; }
.directory-search input:focus-visible { outline: 2px solid #176a57; outline-offset: 3px; border-radius: 3px; }
.directory-search-button { background: #176a57; border: 0; border-radius: 999px; color: #fff; cursor: pointer; font: inherit; font-weight: 650; padding: .6rem 1.1rem; white-space: nowrap; }
.directory-search-button:hover, .directory-search-button:focus-visible { background: #104c40; color: #fff; }
.directory-search-page { margin-bottom: 1.5rem; }
.directory-search-total { color: #53645a; font-weight: 600; margin: 1.3rem 0 1.5rem; }
.directory-search-result { border-bottom: 1px solid #e3e9e3; padding: 1rem 0 1.2rem; }
.directory-search-result .title { margin-bottom: .3rem; }
.directory-search-result p + p { margin-top: .35rem; }
.directory-search-meta { color: #718478; font-size: .72rem; line-height: 1.5; }
.directory-search-meta a { color: #506b59; text-decoration: underline; text-underline-offset: 2px; }
.directory-report-link { color: #7b897f; font-size: .66rem; line-height: 1.4; margin-top: .25rem; }
.directory-report-link a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.directory-report-link a:hover, .directory-report-link a:focus-visible { color: #9c3333; }
.directory-search-status { background: #eef4ef; border-radius: 999px; color: #496b56; font-size: .77rem; font-weight: 600; padding: .4rem .75rem; white-space: nowrap; }
.directory-search-help { color: #7b897f; font-size: .84rem; margin-top: .85rem; }
.directory-main { padding-top: 3.5rem; }
.directory-section-heading { align-items: end; display: flex; gap: 1rem; justify-content: space-between; margin-bottom: 1.6rem; }
.directory-section-heading .title { color: #273d32; margin: .35rem 0 0; }
.directory-section-note { color: #748076; font-size: .85rem; max-width: 270px; text-align: right; }
.directory-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.directory-category { background: #fff; border: 1px solid #e3e9e3; border-radius: 14px; padding: 1.5rem 1.6rem; }
.directory-category .title { margin-bottom: .6rem; }
.directory-category .title a { display: flex; justify-content: space-between; }
.directory-subcategories { display: flex; flex-wrap: wrap; gap: .4rem 1rem; margin-top: .8rem; }
.directory-subcategories a { color: #506b59; font-size: .92rem; }
.directory-count { color: #718478; font-size: .82em; font-weight: 500; white-space: nowrap; }
.directory-empty { background: #fff; border: 1px solid #e3e9e3; border-radius: 14px; padding: 2rem; }
.directory-content { max-width: 920px; }
.directory-content .breadcrumb { margin-bottom: 1.4rem; }
.directory-content > .title { color: #173f34; letter-spacing: -.03em; }
.directory-content article { border-bottom: 1px solid #e3e9e3; padding-bottom: 1.1rem; }
.directory-footer { border-top: 1px solid #e8ece8; color: #758278; font-size: .82rem; margin-top: 4rem; padding: 1.8rem 1rem; }
.directory-footer a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.directory-footer a:hover, .directory-footer a:focus-visible { color: #176a57; }
.directory-submit-page { max-width: 700px; }
.directory-report-page { max-width: 700px; }
.directory-submit-warning { background: #f1f7f3; border-left: 4px solid #176a57; line-height: 1.65; margin-bottom: 2rem; padding: 1rem 1.2rem; }
.directory-honeypot { height: 0; overflow: hidden; position: absolute; width: 0; }
.directory-city-picker { position: relative; }
.directory-city-choices { background: #fff; border: 1px solid #d7e1d9; border-radius: 8px; box-shadow: 0 8px 24px rgb(25 61 43 / 12%); max-height: 240px; overflow-y: auto; position: absolute; width: 100%; z-index: 2; }
.directory-city-choices[hidden] { display: none; }
.directory-city-option { background: #fff; border: 0; color: #27312b; cursor: pointer; display: block; font: inherit; padding: .65rem .85rem; text-align: left; width: 100%; }
.directory-city-option:hover, .directory-city-option:focus-visible { background: #eef4ef; outline: 2px solid #176a57; outline-offset: -2px; }
@media (max-width: 768px) { .directory-hero { padding: 3.8rem 1rem 3rem; } .directory-grid { grid-template-columns: 1fr; } .directory-section-heading { align-items: start; flex-direction: column; } .directory-section-note { text-align: left; } }
@media (max-width: 480px) { .directory-search { border-radius: 20px; flex-wrap: wrap; } .directory-search input { flex-basis: calc(100% - 3rem); } .directory-search-button { width: 100%; } .directory-header-actions { gap: .5rem; } .directory-submit-link { font-size: .72rem; padding: .5rem .6rem; } .directory-admin-link { font-size: .76rem; } .directory-hero .title { font-size: 2rem; } }
