.directory-hero {
  padding: clamp(64px, 8vw, 112px) 0 58px;
  background: radial-gradient(circle at 85% 20%, rgba(75, 186, 229, .22), transparent 34%), linear-gradient(135deg, #eef6ff, #f5fbfa);
  border-bottom: 1px solid #dfe8ef;
}
.directory-hero-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .65fr); gap: 64px; align-items: center; }
.directory-hero h1 { max-width: 900px; margin: 18px 0; font-size: clamp(2.4rem, 5vw, 4.8rem); line-height: .98; letter-spacing: -.045em; }
.directory-hero .lead { max-width: 820px; }
.directory-principles { padding: 28px; border: 1px solid rgba(68, 111, 151, .2); border-radius: 24px; background: rgba(255, 255, 255, .78); box-shadow: 0 22px 55px rgba(19, 54, 82, .08); }
.directory-principles strong { display: block; margin-bottom: 14px; font-size: 1.15rem; }
.directory-principles ul { margin: 0; padding-left: 20px; color: #506477; line-height: 1.9; }
.directory-section { padding: 52px 0 80px; background: #fff; }
.directory-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 30px; }
.directory-tabs { display: flex; gap: 8px; padding: 6px; border: 1px solid #d7e1eb; border-radius: 16px; background: #f5f8fb; }
.directory-tabs button { border: 0; border-radius: 11px; padding: 13px 18px; background: transparent; color: #43566a; font: inherit; font-weight: 700; cursor: pointer; }
.directory-tabs button.active { background: #142f4d; color: #fff; box-shadow: 0 6px 18px rgba(20, 47, 77, .18); }
.directory-tabs span { display: inline-flex; min-width: 24px; justify-content: center; margin-left: 5px; padding: 2px 6px; border-radius: 999px; background: rgba(255,255,255,.18); }
.directory-search { display: flex; align-items: center; gap: 10px; width: min(100%, 420px); padding: 0 16px; border: 1px solid #cdd9e5; border-radius: 14px; background: #fff; }
.directory-search:focus-within { border-color: #2f7df6; box-shadow: 0 0 0 3px rgba(47, 125, 246, .12); }
.directory-search input { width: 100%; padding: 15px 0; border: 0; outline: 0; background: transparent; font: inherit; }
.directory-status { margin: 25px 0; color: #617184; }
.directory-status:empty { display: none; }
.directory-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.directory-card { display: flex; flex-direction: column; min-height: 340px; padding: 26px; border: 1px solid #d8e2ec; border-radius: 22px; background: #fff; box-shadow: 0 18px 45px rgba(24, 53, 79, .08); }
.directory-card .kind { color: #157d74; font-size: .76rem; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.directory-card h2 { margin: 12px 0 5px; font-size: 1.45rem; line-height: 1.2; }
.directory-card .headline { min-height: 24px; color: #405870; font-weight: 650; }
.directory-card .summary { color: #5a6c7d; line-height: 1.55; }
.directory-card .location { margin: 10px 0; color: #263c51; font-weight: 650; }
.directory-chips { display: flex; flex-wrap: wrap; gap: 7px; margin: 6px 0 20px; }
.directory-chips span { padding: 6px 9px; border-radius: 999px; background: #edf4ff; color: #2b5f9f; font-size: .78rem; }
.directory-card .button { width: 100%; margin-top: auto; text-align: center; }
.directory-empty { grid-column: 1 / -1; padding: 70px 24px; border: 1px dashed #bccbd9; border-radius: 22px; background: #f8fbfd; text-align: center; }
.directory-empty strong { display: block; margin-bottom: 8px; font-size: 1.35rem; }
.directory-join { padding: 70px 0; background: #eef6ff; border-top: 1px solid #d9e6f1; }
.directory-join-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .7fr); gap: 50px; align-items: center; }
.directory-join h2 { margin: 10px 0; font-size: clamp(2rem, 4vw, 3.2rem); }
.directory-join-actions { display: grid; gap: 12px; }
.directory-join-actions .button { text-align: center; }

@media (max-width: 1000px) {
  .directory-hero-grid, .directory-join-grid { grid-template-columns: 1fr; gap: 30px; }
  .directory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .directory-toolbar { align-items: stretch; flex-direction: column; }
  .directory-tabs { display: grid; grid-template-columns: 1fr; }
  .directory-search { width: 100%; }
  .directory-grid { grid-template-columns: 1fr; }
  .directory-card { min-height: 0; }
  .site-header .main-nav { display: none; }
}
