.lv-teacher-directory { background: #f7f8f3; color: #294335; padding-bottom: 75px; }
.lv-directory-hero { background: radial-gradient(ellipse at 5% 100%, #e0ebdf, transparent 55%), #edf3ec; border-bottom: 1px solid #dfe8db; padding: 26px 0 42px; }
.lv-directory-breadcrumb { color: #6a7c6c; display: flex; font-size: 12px; gap: 12px; margin-bottom: 32px; }
.lv-directory-hero-grid { align-items: center; display: grid; gap: 60px; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); }
.lv-directory-eyebrow { color: #687e60; display: block; font-size: 12px; font-weight: 600; margin-bottom: 12px; }
.lv-directory-hero h1 { color: #224d39; font-size: clamp(27px, 3vw, 38px); line-height: 1.7; margin: 0 0 14px; }
.lv-directory-hero h1 span { position: relative; z-index: 0; }
.lv-directory-hero h1 span::after { background: #f0d27b; border-radius: 3px; bottom: 4px; content: ""; height: 9px; left: 0; position: absolute; right: 0; z-index: -1; }
.lv-directory-hero-grid > div > p { color: #6b7b68; font-size: 14px; line-height: 2; margin-bottom: 20px; }
.lv-directory-jump { align-items: center; background: #03594e; border-radius: 9px; color: #fff; display: inline-flex; font-size: 13px; gap: 24px; min-height: 46px; padding: 12px 20px; }
.lv-directory-jump:hover { background: #164d3d; color: #fff; }
.lv-directory-guide { background: #ffffffad; border: 1px solid #fff; border-radius: 16px; padding: 25px 28px; }
.lv-directory-portraits { display: flex; margin-bottom: 15px; padding-right: 8px; }
.lv-directory-portraits img { border: 3px solid #f7faf4; border-radius: 50%; height: 52px; margin-right: -8px; object-fit: cover; object-position: center 20%; width: 52px; }
.lv-directory-guide h2 { color: #365d40; font-size: 17px; line-height: 1.7; margin-bottom: 10px; }
.lv-directory-guide p { color: #73816c; font-size: 12px; line-height: 2; margin-bottom: 16px; }
.lv-directory-guide > span { align-items: center; border-top: 1px solid #e1e8da; color: #65805c; display: flex; font-size: 11px; gap: 8px; padding-top: 13px; }
.lv-directory-content { padding-top: 44px; scroll-margin-top: 105px; }
.lv-directory-section-head { align-items: center; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 26px; }
.lv-directory-section-head .lv-directory-eyebrow { margin-bottom: 8px; }
.lv-directory-section-head h2 { color: #294e38; font-size: 25px; margin: 0; }
.lv-directory-count { background: #edf2e8; border: 1px solid #dce5d4; border-radius: 24px; color: #66815e; font-size: 12px; padding: 7px 15px; }
.lv-directory-grid { display: grid; gap: 26px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lv-directory-card { background: #fff; border: 1px solid #e0e7d9; border-radius: 16px; display: flex; flex-direction: column; min-width: 0; overflow: hidden; transition: box-shadow .2s ease, transform .2s ease; }
.lv-directory-card:hover { box-shadow: 0 12px 30px #21432410; transform: translateY(-3px); }
.lv-directory-photo { background: #e6ecdf; border-radius: 10px; display: block; height: 285px; margin: 12px 12px 0; overflow: hidden; }
.lv-directory-photo img { display: block; height: 100%; object-fit: cover; object-position: center 22%; width: 100%; }
.lv-directory-card-content { display: flex; flex: 1; flex-direction: column; padding: 23px; }
.lv-directory-card-label { color: #6b8560; font-size: 11px; margin-bottom: 8px; }
.lv-directory-card h3 { color: #284e38; font-size: 23px; line-height: 1.6; margin-bottom: 8px; }
.lv-directory-card h3 a:hover { color: #038272; }
.lv-directory-specialty { color: #75826e; font-size: 13px; line-height: 1.9; margin-bottom: 18px; }
.lv-directory-levels { border-top: 1px solid #edf0e7; padding: 15px 0; }
.lv-directory-levels > span { color: #8a957f; display: block; font-size: 11px; margin-bottom: 8px; }
.lv-directory-levels > div { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.lv-directory-levels > div > span { background: #f1f5ec; border: 1px solid #e4ebdb; border-radius: 5px; color: #628254; font-size: 11px; line-height: 1.6; padding: 4px 8px; }
.lv-directory-facts { color: #7c8972; display: flex; flex-wrap: wrap; font-size: 12px; gap: 14px; padding-bottom: 17px; }
.lv-directory-facts span { align-items: center; display: flex; gap: 6px; }
.lv-directory-profile { align-items: center; background: #f3f7ef; border: 1px solid #e4ecd9; border-radius: 8px; color: #3d6945; display: flex; font-size: 13px; font-weight: 600; gap: 16px; justify-content: space-between; margin-top: auto; min-height: 46px; padding: 10px 15px; }
.lv-directory-profile:hover { background: #03594e; border-color: #03594e; color: #fff; }
.lv-directory-help { align-items: center; background: #fff; border: 1px solid #e0e7d9; border-radius: 14px; display: flex; gap: 20px; margin-top: 40px; padding: 25px 28px; }
.lv-directory-help-icon { align-items: center; background: #faf1ce; border-radius: 12px; color: #8e762f; display: inline-flex; flex-shrink: 0; font-size: 23px; height: 52px; justify-content: center; width: 52px; }
.lv-directory-help h2 { color: #3c5c3e; font-size: 17px; line-height: 1.8; margin-bottom: 5px; }
.lv-directory-help p { color: #7a8971; font-size: 12px; line-height: 1.9; margin: 0; }
.lv-directory-help > a { align-items: center; color: #03594e; display: flex; flex-shrink: 0; font-size: 12px; gap: 16px; margin-right: auto; min-height: 44px; }
.lv-directory-empty { background: #fff; border: 1px dashed #bdcdb2; border-radius: 15px; padding: 45px 20px; text-align: center; }
.lv-directory-empty > i { color: #799966; display: block; font-size: 32px; margin-bottom: 18px; }
.lv-directory-empty h3 { font-size: 20px; }
.lv-directory-empty p { color: #7b8971; font-size: 13px; }
.lv-directory-empty a { color: #03594e; text-decoration: underline; text-underline-offset: 4px; }
.lv-teacher-directory a:focus-visible { outline: 3px solid #b7952b; outline-offset: 4px; }
@media (max-width: 991px) {
    .lv-directory-hero-grid { gap: 24px; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
    .lv-directory-guide { padding: 20px; }
    .lv-directory-grid { gap: 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lv-directory-help { flex-wrap: wrap; }
}
@media (max-width: 767px) {
    .lv-directory-hero-grid { grid-template-columns: 1fr; }
    .lv-directory-hero { padding-bottom: 28px; }
    .lv-directory-breadcrumb { margin-bottom: 24px; }
    .lv-directory-guide { display: grid; gap: 0 16px; grid-template-columns: auto minmax(0, 1fr); }
    .lv-directory-portraits { grid-row: span 2; margin-bottom: 0; }
    .lv-directory-guide h2 { font-size: 15px; }
    .lv-directory-guide p { margin-bottom: 0; }
    .lv-directory-guide > span { display: none; }
    .lv-directory-content { padding-top: 32px; }
}
@media (max-width: 575px) {
    .lv-teacher-directory { padding-bottom: 40px; }
    .lv-directory-hero-grid > div > p { font-size: 13px; }
    .lv-directory-hero-grid > div > p br { display: none; }
    .lv-directory-guide { display: block; }
    .lv-directory-portraits { margin-bottom: 12px; }
    .lv-directory-grid { grid-template-columns: 1fr; }
    .lv-directory-photo { height: auto; aspect-ratio: 1.15; }
    .lv-directory-card-content { padding: 20px; }
    .lv-directory-section-head h2 { font-size: 23px; }
    .lv-directory-help { align-items: start; gap: 15px; padding: 23px 20px; }
    .lv-directory-help > div { flex: 1; }
    .lv-directory-help h2 { font-size: 15px; }
    .lv-directory-help > a { border-top: 1px solid #e7ecdf; justify-content: space-between; margin: 0; padding-top: 15px; width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .lv-directory-card { transition: none; } .lv-directory-card:hover { transform: none; } }
