/* All variables live on each instance; no theme or Elementor selectors. */
.ksd-directory {
    --ksd-padding: var(--ksd-padding-desktop, 32px);
    --ksd-column-gap: var(--ksd-column-gap-desktop, 32px);
    --ksd-row-gap: var(--ksd-row-gap-desktop, 32px);
    --ksd-content-gap: var(--ksd-content-gap-desktop, 12px);
    --ksd-bio-gap: var(--ksd-bio-gap-desktop, 24px);
    --ksd-button-y: var(--ksd-button-y-desktop, 12px);
    --ksd-button-x: var(--ksd-button-x-desktop, 20px);
    --ksd-button-gap: var(--ksd-button-gap-desktop, 12px);
    --ksd-accordion-padding: var(--ksd-accordion-padding-desktop, 12px);
    display: grid;
    grid-template-columns: repeat(var(--ksd-columns-desktop, 4), minmax(0, 1fr));
    gap: var(--ksd-row-gap) var(--ksd-column-gap);
    font-family: var(--e-global-typography-text-font-family, inherit);
    font-weight: var(--e-global-typography-text-font-weight, inherit);
}
.ksd-directory, .ksd-directory * { box-sizing: border-box; }
.ksd-directory .ksd-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--ksd-card-bg, #fff);
    border: 1px solid var(--ksd-card-border, #e5e5e5);
    border-radius: var(--ksd-radius, 12px);
    overflow: hidden;
    box-shadow: var(--ksd-shadow, none);
}
.ksd-directory.ksd-layout-horizontal .ksd-card { flex-direction: row; }
.ksd-directory.ksd-layout-horizontal .ksd-photo { flex: 0 0 var(--ksd-headshot-width, 40%); }
.ksd-directory .ksd-photo { min-width: 0; }
.ksd-directory .ksd-photo img {
    display: block;
    width: 100%;
    height: 400px;
    max-height: none;
    max-width: 100%;
    object-fit: cover;
}
.ksd-directory .ksd-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: var(--ksd-content-gap);
    min-width: 0;
    padding: var(--ksd-padding);
    overflow-wrap: anywhere;
}
.ksd-directory .ksd-content > * { margin: 0; }
.ksd-directory .ksd-name a { color: inherit; font: inherit; }
.ksd-directory .ksd-field-label { font-weight: bold; }
.ksd-directory .ksd-bio { margin-block: var(--ksd-bio-gap); }
.ksd-directory .ksd-bio > :first-child { margin-top: 0; }
.ksd-directory .ksd-bio > :last-child { margin-bottom: 0; }
.ksd-directory .ksd-contact { display: flex; flex-wrap: wrap; gap: var(--ksd-button-gap); }
.ksd-directory .ksd-button {
    display: inline-block;
    padding: var(--ksd-button-y) var(--ksd-button-x);
    margin-inline-end: var(--ksd-button-gap);
    background: var(--ksd-button-bg, #1c7972);
    border: 1px solid transparent;
    border-radius: 6px;
    text-align: center;
    text-decoration: none;
}
.ksd-directory .ksd-button:hover, .ksd-directory .ksd-button:focus-visible {
    background: var(--ksd-button-hover-bg, #145a55);
    color: var(--ksd-button-hover-color, #fff);
}
.ksd-directory .ksd-accordion {
    border: 1px solid var(--ksd-accordion-border, #d5d5d5);
    border-radius: 4px;
}
.ksd-directory .ksd-accordion > summary {
    cursor: pointer;
    padding: var(--ksd-accordion-padding);
    background: var(--ksd-accordion-bg, #f5f5f5);
    list-style: revert;
}
.ksd-directory .ksd-accordion > summary:hover {
    background: var(--ksd-accordion-hover-bg, #e8e8e8);
    color: var(--ksd-accordion-hover-color, inherit);
}
.ksd-directory .ksd-accordion[open] > summary {
    background: var(--ksd-accordion-active-bg, #e8e8e8);
    color: var(--ksd-accordion-active-color, inherit);
}
.ksd-directory .ksd-accordion .ksd-bio { padding-inline: var(--ksd-accordion-padding); }
.ksd-directory .ksd-close-label { display: none; }
.ksd-directory .ksd-accordion[open] .ksd-open-label { display: none; }
.ksd-directory .ksd-accordion[open] .ksd-close-label { display: inline; }
.ksd-directory a:focus-visible, .ksd-directory summary:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.ksd-directory .ksd-empty { grid-column: 1 / -1; }
.ksd-directory.ksd-profile { display: block; }

.ksd-directory .ksd-name {
    font-family: var(--ksd-name-family, var(--e-global-typography-primary-font-family, inherit));
    font-size: var(--ksd-name-size, inherit);
    font-weight: var(--ksd-name-weight, var(--e-global-typography-primary-font-weight, inherit));
    line-height: var(--ksd-name-line, inherit);
    letter-spacing: var(--ksd-name-letter, inherit);
    text-transform: var(--ksd-name-transform, inherit);
    color: var(--ksd-name-color, inherit);
}

.ksd-directory .ksd-position {
    font-family: var(--ksd-position-family, inherit);
    font-size: var(--ksd-position-size, inherit);
    font-weight: var(--ksd-position-weight, inherit);
    line-height: var(--ksd-position-line, inherit);
    letter-spacing: var(--ksd-position-letter, inherit);
    text-transform: var(--ksd-position-transform, inherit);
    color: var(--ksd-position-color, inherit);
}

.ksd-directory .ksd-team {
    font-family: var(--ksd-team-family, inherit);
    font-size: var(--ksd-team-size, inherit);
    font-weight: var(--ksd-team-weight, inherit);
    line-height: var(--ksd-team-line, inherit);
    letter-spacing: var(--ksd-team-letter, inherit);
    text-transform: var(--ksd-team-transform, inherit);
    color: var(--ksd-team-color, inherit);
}

.ksd-directory .ksd-bio {
    font-family: var(--ksd-bio-family, inherit);
    font-size: var(--ksd-bio-size, inherit);
    font-weight: var(--ksd-bio-weight, inherit);
    line-height: var(--ksd-bio-line, inherit);
    letter-spacing: var(--ksd-bio-letter, inherit);
    text-transform: var(--ksd-bio-transform, inherit);
    color: var(--ksd-bio-color, inherit);
}
.ksd-directory .ksd-bio :where(p, li) { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; }

.ksd-directory .ksd-custom {
    font-family: var(--ksd-custom-family, inherit);
    font-size: var(--ksd-custom-size, inherit);
    font-weight: var(--ksd-custom-weight, inherit);
    line-height: var(--ksd-custom-line, inherit);
    letter-spacing: var(--ksd-custom-letter, inherit);
    text-transform: var(--ksd-custom-transform, inherit);
    color: var(--ksd-custom-color, inherit);
}

.ksd-directory .ksd-button {
    font-family: var(--ksd-button-family, inherit);
    font-size: var(--ksd-button-size, inherit);
    font-weight: var(--ksd-button-weight, inherit);
    line-height: var(--ksd-button-line, inherit);
    letter-spacing: var(--ksd-button-letter, inherit);
    text-transform: var(--ksd-button-transform, inherit);
    color: var(--ksd-button-color, #fff);
}

.ksd-directory .ksd-accordion > summary {
    font-family: var(--ksd-accordion-family, inherit);
    font-size: var(--ksd-accordion-size, inherit);
    font-weight: var(--ksd-accordion-weight, inherit);
    line-height: var(--ksd-accordion-line, inherit);
    letter-spacing: var(--ksd-accordion-letter, inherit);
    text-transform: var(--ksd-accordion-transform, inherit);
    color: var(--ksd-accordion-color, inherit);
}

@media (max-width: 1024px) {
    .ksd-directory {
        --ksd-padding: var(--ksd-padding-tablet);
        --ksd-column-gap: var(--ksd-column-gap-tablet);
        --ksd-row-gap: var(--ksd-row-gap-tablet);
        --ksd-content-gap: var(--ksd-content-gap-tablet);
        --ksd-bio-gap: var(--ksd-bio-gap-tablet);
        --ksd-button-y: var(--ksd-button-y-tablet);
        --ksd-button-x: var(--ksd-button-x-tablet);
        --ksd-button-gap: var(--ksd-button-gap-tablet);
        --ksd-accordion-padding: var(--ksd-accordion-padding-tablet);
        grid-template-columns: repeat(var(--ksd-columns-tablet, 1), minmax(0, 1fr));
    }
    .ksd-directory.ksd-layout-horizontal .ksd-card { flex-direction: column; }
    .ksd-directory.ksd-layout-horizontal .ksd-photo { flex: none; }
}

@media (max-width: 767px) {
    .ksd-directory {
        --ksd-padding: var(--ksd-padding-mobile);
        --ksd-column-gap: var(--ksd-column-gap-mobile);
        --ksd-row-gap: var(--ksd-row-gap-mobile);
        --ksd-content-gap: var(--ksd-content-gap-mobile);
        --ksd-bio-gap: var(--ksd-bio-gap-mobile);
        --ksd-button-y: var(--ksd-button-y-mobile);
        --ksd-button-x: var(--ksd-button-x-mobile);
        --ksd-button-gap: var(--ksd-button-gap-mobile);
        --ksd-accordion-padding: var(--ksd-accordion-padding-mobile);
        grid-template-columns: repeat(var(--ksd-columns-mobile, 1), minmax(0, 1fr));
    }
}

/* Horizontal-only dimensions; vertical grid retains its original image rule. */
.ksd-directory.ksd-layout-horizontal .ksd-photo img { height: var(--ksd-headshot-height, 300px); }
.ksd-directory.ksd-layout-horizontal .ksd-content { justify-content: center; }
