.staff-hero { padding: 3rem 0; }
.staff-back { color: rgba(255,255,255,.8); text-decoration: none; font-size: .9rem; }
.staff-back:hover { color: #fff; }
.staff-hero h1 { font-size: clamp(2.15rem, 5vw, 3.75rem); font-weight: 900; letter-spacing: -.04em; }
.staff-hero p { max-width: 650px; margin: 1rem 0 0; color: rgba(255,255,255,.8); line-height: 1.75; }
.staff-directory { padding: 2.5rem 0 5rem; }
.staff-filters { display: flex; flex-wrap: wrap; gap: .65rem; margin-bottom: 2.5rem; }
.staff-filter { padding: .75rem 1.15rem; border: 1px solid #ccd7e2; border-radius: 2rem; background: #fff; text-decoration: none; font-weight: 700; font-size: .95rem; }
.staff-filter.active { color: #fff; background: var(--ilfop-navy); border-color: var(--ilfop-navy); }
.staff-filter:hover { border-color: var(--ilfop-blue); }
.staff-card { display: flex; align-items: flex-start; gap: 1rem; height: 100%; padding: 1.35rem; border: 1px solid #dee5ec; border-radius: 1rem; background: #fff; box-shadow: 0 .4rem 1.5rem rgba(9,43,76,.04); }
.staff-photo { flex: 0 0 88px; width: 88px; height: 104px; border-radius: .65rem; object-fit: cover; object-position: center top; background: var(--ilfop-light-blue); }
.staff-initials { display: grid; place-items: center; color: var(--ilfop-blue); font-weight: 800; font-size: 1.65rem; }
.staff-details { flex: 1; min-width: 0; }
.staff-name-row { display: flex; align-items: flex-start; gap: .35rem; }
.staff-name-row h3 { flex: 1; margin: .35rem 0 .6rem; color: var(--ilfop-navy); font-size: 1.12rem; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.staff-mail { flex: 0 0 40px; display: inline-grid; place-items: center; min-height: 40px; padding: .45rem; border: 1px solid #d5e4ef; border-radius: .65rem; background: var(--ilfop-light-blue); color: var(--ilfop-blue); }
.staff-mail:hover { background: var(--ilfop-blue); color: #fff; }
.staff-position { margin: 0 0 .65rem; line-height: 1.45; font-size: .9rem; }
.staff-office { margin: 0; color: var(--ilfop-muted); font-size: .85rem; }
.staff-since { margin: .3rem 0 0; color: var(--ilfop-muted); font-size: .78rem; }
.staff-photo-button { flex: 0 0 88px; border: 0; padding: 0; border-radius: .65rem; background: transparent; }
.staff-photo-button .staff-photo { display: block; }
.staff-photo-button .staff-initials { display: grid; }
.staff-name-button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; }
.staff-name-button:hover { color: var(--ilfop-blue); text-decoration: underline; text-underline-offset: .2em; }
.staff-bio-link { display: inline-block; padding: .6rem 0 .15rem; border: 0; background: transparent; color: var(--ilfop-blue); font-size: .85rem; font-weight: 700; text-align: left; }
.staff-bio-link:hover { text-decoration: underline; text-underline-offset: .2em; }
.staff-dialog { width: min(580px, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); margin: auto; padding: 1.75rem; border: 0; border-radius: 1.25rem; color: var(--ilfop-ink); box-shadow: 0 1.5rem 5rem rgba(0,0,0,.3); }
.staff-dialog::backdrop { background: rgba(4,22,40,.65); }
.staff-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.staff-dialog-heading h2 { margin: 0; color: var(--ilfop-navy); font-weight: 800; font-size: 1.65rem; }
.staff-dialog-close { border: 0; background: #eef3f7; border-radius: 50%; min-width: 40px; min-height: 40px; color: var(--ilfop-navy); font-size: 1.6rem; line-height: 1; }
.staff-dialog .btn-primary { background: var(--ilfop-blue); border-color: var(--ilfop-blue); }
.staff-dialog textarea { resize: vertical; }
.staff-bio-dialog { width: min(720px, calc(100% - 2rem)); }
.staff-bio-profile { display: flex; align-items: center; gap: 1.5rem; margin-bottom: 1.75rem; }
.staff-bio-photo { flex: 0 0 144px; width: 144px; height: 170px; object-fit: cover; object-position: center top; border-radius: .8rem; background: var(--ilfop-light-blue); }
.staff-bio-name { color: var(--ilfop-navy); font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 800; overflow-wrap: anywhere; }
.staff-bio-name:focus { outline: none; }
.staff-bio-text { margin-bottom: 1.75rem; line-height: 1.85; overflow-wrap: anywhere; }
body.staff-dialog-open { overflow: hidden; }
.staff-mail:focus-visible, .staff-filter:focus-visible, .staff-dialog-close:focus-visible, [data-bio-open]:focus-visible { outline: 3px solid var(--ilfop-gold); outline-offset: 3px; }
@media (max-width: 575.98px) {
    .staff-card { padding: 1rem; }
    .staff-hero { padding: 2.25rem 0; }
    .staff-filters { gap: .5rem; }
    .staff-filter { padding: .65rem .9rem; font-size: .85rem; }
    .staff-dialog { padding: 1.25rem; }
    .staff-bio-profile { align-items: flex-start; gap: 1rem; }
    .staff-bio-photo { flex-basis: 104px; width: 104px; height: 124px; }
}
