.directory-main { max-width: 1180px; margin: 0 auto; padding: 70px 28px 90px; }
.directory-main h1 { max-width: 850px; margin: 12px 0 18px; font-size: clamp(2.5rem, 5vw, 4.4rem); line-height: 1.06; letter-spacing: -.06em; }
.directory-intro { max-width: 760px; color: #536478; font-size: 1.08rem; line-height: 1.7; }
.directory-notice { max-width: 900px; margin: 34px 0; padding: 22px 25px; background: #eaf7fc; border: 1px solid #b6dfeb; border-radius: 16px; }
.directory-notice strong { color: #104965; }
.directory-notice p { margin: 8px 0 0; color: #486476; line-height: 1.6; }
.directory-search { display: grid; gap: 10px; max-width: 710px; margin-top: 40px; }
.directory-search label { font-size: .87rem; font-weight: 800; }
.directory-search > div { display: flex; gap: 10px; }
.directory-search input { flex: 1; min-width: 0; padding: 13px 15px; border: 1px solid #c9d6e3; border-radius: 12px; font: inherit; }
.directory-count { margin: 28px 0 18px; color: #5b6b7e; font-size: .87rem; }
.directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.directory-card { display: flex; flex-direction: column; min-height: 245px; padding: 23px; background: #fff; border: 1px solid #dce5ee; border-radius: 18px; box-shadow: 0 10px 28px rgba(7,17,31,.05); }
.directory-card small { color: #ba2b3b; font-size: .67rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.directory-card h2 { margin: 15px 0 9px; font-size: 1.28rem; overflow-wrap: anywhere; }
.directory-card p { flex: 1; margin: 0 0 16px; color: #526377; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.directory-card .directory-support { flex: 0; padding: 10px 12px; color: #25516b; background: #eaf7fc; border-radius: 10px; font-size: .88rem; }
.directory-card a { align-self: flex-start; overflow-wrap: anywhere; font-weight: 800; }
.directory-pages { display: flex; align-items: center; justify-content: center; gap: 18px; margin: 30px 0; }
.directory-pages span { color: #5b6b7e; font-size: .85rem; }
.directory-join { margin-top: 55px; padding: 34px; color: #fff; background: #07111f; border-radius: 22px; }
.directory-join h2 { margin: 0 0 10px; font-size: 1.55rem; }
.directory-join p { max-width: 680px; color: #c8d3df; line-height: 1.6; }
@media (max-width: 850px) { .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .directory-main { padding: 46px 18px 70px; } .directory-grid { grid-template-columns: 1fr; } .directory-search > div { flex-direction: column; } .directory-pages { gap: 8px; } }
