/* This stylesheet is loaded only by the 2027 directory. */
body:has(.people-directory) {
    --people-accent: #3a7292;
    --content-accent-color: var(--people-accent);
}

body:has(.people-directory) #header.accentColor,
body:has(.people-directory) #header .accentColor {
    background-color: var(--people-accent) !important;
    color: white !important;
}

body:has(.people-directory) #header .headerImageNormal.accentColor { display: none !important; }
body:has(.people-directory) #header .headerImageWhite.accentColor { display: block !important; }
body:has(.people-directory) #header #menu > ul > li > a { color: white !important; }
body:has(.people-directory) .top-background-fix { display: none; }

#page .people-directory {
    color: var(--code-color-heading);
    font-family: var(--code-font-ui);
    text-align: left;
}

#page .people-directory *,
#page .people-directory *::before,
#page .people-directory *::after { box-sizing: border-box; }

#page .people-directory [hidden] { display: none !important; }

#page .people-directory :is(h1, h2, p, ul) {
    padding: 0;
    margin: 0;
    text-align: left;
}

#page .people-container {
    max-width: var(--content-pattern-max-width, 1120px);
    margin-inline: auto;
    padding-inline: var(--content-pattern-gutter, 2rem);
}

#page .people-hero {
    padding-block: 3.5rem 4rem;
    background: #fff;
    color: var(--code-color-heading);
}

#page .people-eyebrow {
    margin-bottom: 1rem;
    color: var(--people-accent);
    font-size: .875rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

#page .people-hero h1 {
    color: var(--code-color-heading);
    font-family: var(--code-font-heading);
    font-size: var(--code-font-size-hero-title);
    font-weight: 700;
    line-height: var(--code-line-height-hero);
    letter-spacing: -.035em;
}

#page .people-lead {
    max-width: 43rem;
    margin-top: 1.5rem;
    color: #52616c;
    font-size: var(--code-font-size-lead);
    line-height: 1.5;
}

#page .people-content { padding-block: 2.5rem 4rem; }
#page .people-search label { display: block; margin-bottom: .65rem; font-size: 1rem; font-weight: 600; }
#page .people-search input {
    width: 100%;
    min-width: 0;
    min-height: 3.25rem;
    margin: 0;
    padding: .8rem 1rem;
    border: 1px solid #aebdc6;
    border-radius: 4px;
    background: #fff;
    color: var(--code-color-heading);
    font: inherit;
    font-size: 1rem;
}

#page .people-search-status { min-height: 1.5rem; margin-top: .5rem; color: #52616c; font-size: .875rem; }
#page .people-group { padding-block: 2.5rem; border-bottom: 1px solid #dce3e8; }
#page .people-group:last-of-type { border-bottom: 0; padding-bottom: 0; }
#page .people-directory h2 {
    font-family: var(--code-font-heading);
    font-size: var(--content-pattern-title-size, 2.25rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.025em;
}

#page .people-group-description { margin-top: .6rem; color: #52616c; font-size: 1.125rem; line-height: 1.6; }
#page .people-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.25rem 1.5rem;
    margin-top: 1.75rem;
    list-style: none;
}

#page .people-card { min-width: 0; margin: 0; padding: 0; list-style: none; }
#page .people-profile-link { display: block; height: 100%; color: inherit; text-decoration: none; border-radius: 6px; }
#page .people-portrait {
    display: grid;
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    border-radius: 6px;
    background: #e2edf2;
    color: #315d73;
}

#page .people-initials { align-self: center; justify-self: center; font-size: clamp(1.75rem, 5vw, 3.5rem); font-weight: 500; }
#page .people-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; border: 0; object-fit: cover; }
#page .people-name { display: block; margin-top: .85rem; font-size: 1.125rem; font-weight: 700; line-height: 1.4; overflow-wrap: anywhere; }
#page .people-title { display: block; margin-top: .25rem; color: #52616c; font-size: .9375rem; line-height: 1.5; overflow-wrap: anywhere; }
#page .people-profile-link:hover .people-name { text-decoration: underline; text-underline-offset: .2em; }
#page .people-search input:focus-visible { outline: 1px solid var(--people-accent); outline-offset: 1px; }
#page .people-profile-link:focus-visible { outline: none; }
#page .people-profile-link:focus-visible .people-portrait { outline: 1px solid var(--people-accent); outline-offset: 3px; }
#page .people-careers-link:focus-visible { outline: 3px solid var(--code-color-action); outline-offset: 4px; }
#page .people-empty { padding-block: 2rem; font-size: 1.125rem; line-height: 1.6; }

#page .people-grid.people-grid-compact {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 1.75rem 1rem;
}
#page .people-grid-compact .people-name { margin-top: .65rem; font-size: .9375rem; }
#page .people-grid-compact .people-title { font-size: .8125rem; }
#page .people-grid-compact .people-initials { font-size: clamp(1.25rem, 4vw, 2.5rem); }

#page .people-careers > .contentSectionFull { margin-block: 0; padding-block: 2.5rem; }
#page .people-careers .text { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
#page .people-careers p { margin-top: .6rem; font-size: 1.125rem; line-height: 1.5; }
#page .people-careers-link {
    flex-shrink: 0;
    padding: .9rem 1.25rem;
    border-radius: 4px;
    background: var(--code-color-action);
    color: #202124;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
}
#page .people-careers-link:hover { background: var(--code-color-action-hover); }

@media (max-width: 800px) {
    #page .people-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    #page .people-grid.people-grid-compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    #page .people-careers .text { flex-direction: column; align-items: flex-start; }
}

@media (max-width: 540px) {
    #page .people-directory { --content-pattern-gutter: 1.25rem; }
    #page .people-hero { padding-block: 2.5rem; }
    #page .people-hero h1 br { display: none; }
    #page .people-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1rem; }
    #page .people-grid.people-grid-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem .75rem; }
    #page .people-grid-compact .people-name { font-size: .875rem; }
    #page .people-name { font-size: 1rem; }
    #page .people-title { font-size: .875rem; }
}
