/* LegalSports Firms Directory — AZUR Arbeitgeberprofile-inspired */

.lsn-firms-board { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
.lsn-firms-board.has-sidebar { grid-template-columns: 260px 1fr; }
@media (max-width: 860px) { .lsn-firms-board.has-sidebar { grid-template-columns: 1fr; } }

.lsn-firms-board__rail {
    background: #fff;
    border: 1px solid #e3e3e7;
    border-radius: 8px;
    padding: 1.25rem 1rem;
    align-self: start;
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
}
.lsn-firms-filter-form__title {
    margin: 0 0 1rem;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #707080;
}
.lsn-firms-filter {
    border: 0;
    border-top: 1px solid #ececf0;
    padding: 0.75rem 0;
    margin: 0;
}
.lsn-firms-filter:first-of-type { border-top: 0; }
.lsn-firms-filter legend { font-weight: 600; color: #15182a; margin-bottom: 0.4rem; font-size: 0.95rem; }
.lsn-firms-filter input[type=text],
.lsn-firms-filter select {
    width: 100%;
    padding: 0.45rem 0.6rem;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 0.9rem;
    box-sizing: border-box;
    margin-top: 0.4rem;
}
.lsn-firms-filter__opts { max-height: 220px; overflow-y: auto; }
.lsn-firms-filter__opts label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.88rem;
    color: #15182a;
    padding: 0.2rem 0;
}
.lsn-firms-filter-form__actions {
    margin-top: 1rem;
    display: flex;
    gap: 0.75rem;
    align-items: center;
}
.lsn-firms-filter-form__actions button {
    background: #c1183b;
    color: #fff;
    border: 0;
    padding: 0.55rem 1.1rem;
    border-radius: 4px;
    font-weight: 600;
    cursor: pointer;
}
.lsn-firms-filter-form__reset { color: #707080; font-size: 0.88rem; text-decoration: none; }

/* Main listing */
.lsn-firms-board__head { margin-bottom: 1.5rem; }
.lsn-firms-board__count { margin: 0; color: #555; font-size: 0.95rem; }
.lsn-firms-board__featured { margin-bottom: 2rem; }
.lsn-firms-board__group-head {
    margin: 1rem 0 0.75rem;
    font-size: 2rem;
    color: #c1183b;
    font-weight: 700;
    letter-spacing: -0.01em;
    border-bottom: 1px solid #e3e3e7;
    padding-bottom: 0.4rem;
}
.lsn-firms-rows { list-style: none; padding: 0; margin: 0; }
.lsn-firms-row {
    position: relative;
    border-bottom: 1px solid #ececf0;
}
.lsn-firms-row.is-featured { background: linear-gradient(180deg, #fff 0%, #fff 100%); }
.lsn-firms-row__ad {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: #15182a;
    color: #fff;
    font-size: 0.62rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 0.15rem 0.5rem;
    border-radius: 12px;
    z-index: 2;
}
.lsn-firms-row__link {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 1.25rem;
    padding: 1.25rem 0.5rem;
    text-decoration: none;
    color: inherit;
}
.lsn-firms-row:hover .lsn-firms-row__link { background: #fafafb; }
.lsn-firms-row__logo {
    width: 64px;
    height: 64px;
    background: #fafafb;
    border: 1px solid #ececf0;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.lsn-firms-row__logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.lsn-firms-row__letter { font-weight: 700; color: #15182a; font-size: 1.2rem; }
.lsn-firms-row__name { margin: 0 0 0.2rem; font-size: 1.15rem; color: #15182a; }
.lsn-firms-row__tagline { margin: 0 0 0.4rem; color: #444; font-style: italic; font-size: 0.92rem; }
.lsn-firms-row__practices { margin: 0 0 0.4rem; color: #707080; font-size: 0.85rem; }
.lsn-firms-row__meta { margin: 0; color: #555; font-size: 0.88rem; }
.lsn-firms-row__meta span + span::before { content: " · "; color: #ccc; padding: 0 0.2rem; }
.lsn-firms-row__openings { color: #c1183b; font-weight: 600; }

/* Existing single-firm profile styles (unchanged) */
.lsn-firm-profile {
    margin: 0 0 1.5rem;
    padding: 1.5rem 1.75rem;
    background: #fafafb;
    border: 1px solid #e3e3e7;
    border-radius: 8px;
}
.lsn-firm-profile__head { display: flex; align-items: center; gap: 1.25rem; margin-bottom: 1rem; }
.lsn-firm-profile__logo img { max-height: 80px; width: auto; }
.lsn-firm-profile__tagline { margin: 0; font-style: italic; color: #444; }
.lsn-firm-profile__facts { display: grid; grid-template-columns: max-content 1fr; column-gap: 1.25rem; row-gap: 0.35rem; margin: 0; }
.lsn-firm-profile__facts dt { font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.75rem; color: #555; }
.lsn-firm-profile__facts dd { margin: 0; }
.lsn-firm-profile__people, .lsn-firm-profile__creds { margin-top: 2rem; }
.lsn-firm-profile__people h3, .lsn-firm-profile__creds h3 { font-size: 1.05rem; margin-bottom: 0.5rem; }
.lsn-firm-profile__people ul { list-style: none; padding: 0; margin: 0; }
.lsn-firm-profile__people li { padding: 0.4rem 0; border-bottom: 1px solid #e3e3e7; }
.lsn-firm-profile__cta-row { margin-top: 2rem; display: flex; gap: 0.75rem; flex-wrap: wrap; }
.lsn-firm-profile__cta { display: inline-block; background: #c1183b; color: #fff !important; padding: 0.65rem 1.1rem; border-radius: 4px; font-weight: 600; text-decoration: none; }
.lsn-firm-profile__cta:hover { background: #9a1330; color: #fff; }
.lsn-firm-profile__cta--alt { background: #fff; color: #c1183b !important; border: 1px solid #c1183b; }
.lsn-firms-spotlight h2 { margin-bottom: 1rem; }
