/*
 * KU_LIBRARY_REUSABLE_COMPONENT_FOUNDATION
 *
 * Reusable frontend primitives for future KU Library-managed content.
 * All rules are intentionally scoped beneath
 * .ku-library-component-system so existing frozen pages remain untouched.
 */

.ku-library-component-system {
    color: var(--ku-library-text);
}

.ku-library-component-system *,
.ku-library-component-system *::before,
.ku-library-component-system *::after {
    box-sizing: border-box;
}

.ku-library-component-system .ku-component-section {
    margin-block: clamp(2rem, 4vw, 4rem);
}

.ku-library-component-system .ku-component-content {
    width: min(100%, 900px);
    margin-inline: auto;
}

.ku-library-component-system .ku-component-heading {
    margin: 0 0 .75rem;
    color: var(--ku-library-primary);
    font-size: clamp(1.5rem, 1.25rem + .9vw, 2.25rem);
    line-height: 1.25;
    font-weight: 700;
    letter-spacing: -.015em;
}

.ku-library-component-system .ku-component-intro {
    max-width: 760px;
    margin: 0 0 1.5rem;
    color: var(--ku-library-text-muted);
    font-size: 1rem;
    line-height: 1.7;
}

.ku-library-component-system .ku-component-grid {
    display: grid;
    grid-template-columns: repeat(
        auto-fit,
        minmax(min(100%, 250px), 1fr)
    );
    gap: 1.5rem;
}

.ku-library-component-system .ku-component-card {
    padding: 1.75rem;
    background: var(--ku-library-white);
    border: 1px solid var(--ku-library-border);
    border-radius: var(--ku-library-radius-medium);
    box-shadow: var(--ku-library-shadow-small);
}

.ku-library-component-system .ku-component-card__title {
    margin: 0 0 .65rem;
    color: var(--ku-library-primary);
    font-size: 1.25rem;
    line-height: 1.35;
    font-weight: 700;
}

.ku-library-component-system .ku-component-card__text {
    margin: 0;
    color: var(--ku-library-text-muted);
    line-height: 1.7;
}

.ku-library-component-system .ku-component-card__text + .ku-component-card__action {
    margin-top: 1rem;
}

.ku-library-component-system .ku-component-card__action,
.ku-library-component-system .ku-component-link {
    color: var(--ku-library-link);
    font-weight: 600;
    text-decoration-thickness: 1px;
    text-underline-offset: .18em;
}

.ku-library-component-system .ku-component-card__action:hover,
.ku-library-component-system .ku-component-card__action:focus-visible,
.ku-library-component-system .ku-component-link:hover,
.ku-library-component-system .ku-component-link:focus-visible {
    color: var(--ku-library-link-hover);
}

.ku-library-component-system .ku-component-callout {
    padding: 1.5rem 1.75rem;
    background: var(--ku-library-surface);
    border: 1px solid var(--ku-library-border);
    border-left: 4px solid var(--ku-library-primary);
    border-radius: var(--ku-library-radius-small);
}

.ku-library-component-system .ku-component-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: .7rem 1.15rem;
    color: var(--ku-library-white);
    background: var(--ku-library-primary);
    border: 1px solid var(--ku-library-primary);
    border-radius: var(--ku-library-radius-small);
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    transition:
        background-color var(--ku-library-motion-fast)
        var(--ku-library-motion-easing),
        border-color var(--ku-library-motion-fast)
        var(--ku-library-motion-easing),
        box-shadow var(--ku-library-motion-fast)
        var(--ku-library-motion-easing);
}

.ku-library-component-system .ku-component-button:hover,
.ku-library-component-system .ku-component-button:focus-visible {
    color: var(--ku-library-white);
    background: var(--ku-library-primary-dark);
    border-color: var(--ku-library-primary-dark);
}

.ku-library-component-system :focus-visible {
    outline: 3px solid var(--ku-library-focus);
    outline-offset: 3px;
}

@media (max-width: 767px) {
    .ku-library-component-system .ku-component-section {
        margin-block: 2rem;
    }

    .ku-library-component-system .ku-component-grid {
        gap: 1rem;
    }

    .ku-library-component-system .ku-component-card {
        padding: 1.4rem;
    }
}


/* ==========================================================
   KU_LIBRARY_APPROVED_COMPONENT_PARITY

   Reusable equivalents of the approved KU Library semantic
   component systems.

   These rules are intentionally scoped beneath
   .ku-library-component-system.

   Existing frozen pages remain governed by style.css and are
   therefore unaffected by this reusable parity layer.
   ========================================================== */

.ku-library-component-system .ku-campus-directory {
margin: 0;
}

.ku-library-component-system .ku-campus-directory__intro {
max-width: 820px;
    margin: 0 0 34px;
}

.ku-library-component-system .ku-campus-directory__intro p {
margin: 0;
    color: #5B6B7C;
    font-size: 17px;
    line-height: 1.75;
}

.ku-library-component-system .ku-campus-directory__grid {
display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.ku-library-component-system .ku-campus-card {
display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 28px 28px 26px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.07);
}

.ku-library-component-system .ku-campus-card h2 {
margin: 0 0 14px;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-campus-card h2 a {
color: #00437E;
    text-decoration: none;
}

.ku-library-component-system .ku-campus-card h2 a:hover, .ku-library-component-system .ku-campus-card h2 a:focus {
color: #006DBB;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ku-library-component-system .ku-campus-card__summary {
flex: 1;
    margin: 0 0 18px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-campus-card__contact {
margin: 0 0 20px;
    padding-top: 15px;
    border-top: 1px solid #EEF4F8;
    color: #5B6B7C;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-campus-card__contact strong {
color: #1F2937;
    font-weight: 600;
}

.ku-library-component-system .ku-campus-card__contact a {
color: #006DBB;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ku-library-component-system .ku-campus-card__contact--muted {
font-style: italic;
}

.ku-library-component-system .ku-campus-card__action {
margin: auto 0 0;
}

.ku-library-component-system .ku-campus-card__action a {
display: inline-flex;
    align-items: center;
    gap: 7px;
    color: #00437E;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;
    text-decoration: none;
}

.ku-library-component-system .ku-campus-card__action a::after {
content: "\2192";
    line-height: 1;
    transition: transform 180ms ease;
}

.ku-library-component-system .ku-campus-card__action a:hover, .ku-library-component-system .ku-campus-card__action a:focus {
color: #006DBB;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ku-library-component-system .ku-campus-card__action a:hover::after, .ku-library-component-system .ku-campus-card__action a:focus::after {
transform: translateX(3px);
}

.ku-library-component-system .ku-campus-card a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-campus-directory__grid > .ku-campus-card:last-child:nth-child(odd) {
grid-column: 1 / -1;
    width: calc((100% - 24px) / 2);
    justify-self: center;
}

.ku-library-component-system .ku-il-page {
color: #1F2937;
}

.ku-library-component-system .ku-il-intro {
max-width: 900px;
    margin: 0 0 46px;
    padding: 30px 32px;
    background: #F7F9FC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-il-intro h2, .ku-library-component-system .ku-il-section > h2 {
margin: 0;
    color: #00437E;
    font-weight: 600;
}

.ku-library-component-system .ku-il-intro h2 {
margin-bottom: 12px;
    font-size: 26px;
    line-height: 1.3;
}

.ku-library-component-system .ku-il-intro p {
margin: 0;
    color: #5B6B7C;
    font-size: 16px;
    line-height: 1.75;
}

.ku-library-component-system .ku-il-section {
margin-bottom: 52px;
}

.ku-library-component-system .ku-il-section:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-il-section > h2 {
margin-bottom: 24px;
    padding-bottom: 12px;
    border-bottom: 1px solid #D9E2EC;
    font-size: 24px;
    line-height: 1.3;
}

.ku-library-component-system .ku-il-resource-grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.ku-library-component-system .ku-il-reference-grid, .ku-library-component-system .ku-il-schedule-grid {
display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ku-library-component-system .ku-il-resource-card, .ku-library-component-system .ku-il-reference-card, .ku-library-component-system .ku-il-schedule-card {
min-width: 0;
    padding: 25px 24px 23px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.07);
}

.ku-library-component-system .ku-il-resource-card, .ku-library-component-system .ku-il-reference-card {
display: flex;
    flex-direction: column;
}

.ku-library-component-system .ku-il-resource-card {
border-top: 4px solid #00437E;
}

.ku-library-component-system .ku-il-reference-card {
border-top: 4px solid #006DBB;
}

.ku-library-component-system .ku-il-schedule-card {
border-top: 4px solid #0283DF;
    background: #F7F9FC;
}

.ku-library-component-system .ku-il-page h3 {
margin: 0 0 12px;
    color: #003673;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 600;
}

.ku-library-component-system .ku-il-resource-card p, .ku-library-component-system .ku-il-reference-card p, .ku-library-component-system .ku-il-schedule-card p {
margin-top: 0;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.65;
}

.ku-library-component-system .ku-il-resource-card > p:not(.ku-il-resource-card__action), .ku-library-component-system .ku-il-reference-card > p:not(.ku-il-reference-card__action) {
flex: 1;
    margin-bottom: 20px;
}

.ku-library-component-system .ku-il-resource-card__action, .ku-library-component-system .ku-il-reference-card__action {
margin: auto 0 0;
}

.ku-library-component-system .ku-il-reference-card__links {
display: flex;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-top: auto;
}

.ku-library-component-system .ku-il-resource-card a, .ku-library-component-system .ku-il-reference-card a {
color: #006DBB;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-il-resource-card a:hover, .ku-library-component-system .ku-il-resource-card a:focus, .ku-library-component-system .ku-il-reference-card a:hover, .ku-library-component-system .ku-il-reference-card a:focus {
color: #00437E;
}

.ku-library-component-system .ku-il-page a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-il-schedule-card h3 {
margin-bottom: 16px;
}

.ku-library-component-system .ku-il-schedule-card p {
margin-bottom: 5px;
}

.ku-library-component-system .ku-il-schedule-card p:last-child {
margin-bottom: 0;
    color: #1F2937;
    font-size: 17px;
    font-weight: 600;
}

.ku-library-component-system .ku-il-schedule-card strong {
color: #00437E;
    font-weight: 600;
}

.ku-library-component-system .ku-about-overview__grid {
display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    align-items: start;
}

.ku-library-component-system .ku-about-card {
min-width: 0;
    padding: 27px 28px 26px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.07);
}

.ku-library-component-system .ku-about-card:nth-child(3) {
grid-column: 1 / -1;
}

.ku-library-component-system .ku-about-card h2 {
margin: 0 0 15px;
    color: #00437E;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-about-card p {
margin: 0 0 16px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.72;
}

.ku-library-component-system .ku-about-card p:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-about-card ul {
margin: 0 0 16px;
    padding-left: 1.25rem;
}

.ku-library-component-system .ku-about-card > ul:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-about-card li {
margin-bottom: 8px;
    padding-left: 3px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.65;
}

.ku-library-component-system .ku-about-card li:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-about-card ul ul {
margin-top: 8px;
    margin-bottom: 0;
}

.ku-library-component-system .ku-about-card strong {
color: #003673;
    font-weight: 600;
}

.ku-library-component-system .ku-about-card:nth-child(3) > ul {
columns: 2;
    column-gap: 42px;
}

.ku-library-component-system .ku-about-card:nth-child(3) > ul > li {
break-inside: avoid;
}

.ku-library-component-system .ku-staff-directory {
color: #1F2937;
}

.ku-library-component-system .ku-staff-leadership, .ku-library-component-system .ku-staff-senior {
margin-bottom: 52px;
}

.ku-library-component-system .ku-staff-senior {
margin-bottom: 0;
}

.ku-library-component-system .ku-staff-leadership > h2, .ku-library-component-system .ku-staff-senior > h2 {
margin: 0 0 24px;
    padding-bottom: 12px;
    color: #00437E;
    border-bottom: 1px solid #D9E2EC;
    font-size: 24px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-staff-chief {
display: flex;
    align-items: center;
    gap: 28px;
    margin-bottom: 24px;
    padding: 28px 30px;
    background: #F7F9FC;
    border: 1px solid #D9E2EC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-staff-chief__portrait {
flex: 0 0 105px;
}

.ku-library-component-system .ku-staff-chief__portrait img {
display: block;
    width: 105px;
    height: 125px;
    max-width: 105px;
    object-fit: cover;
    border-radius: 6px;
}

.ku-library-component-system .ku-staff-chief__content {
min-width: 0;
}

.ku-library-component-system .ku-staff-role {
margin: 0 0 6px;
    color: #006DBB;
    font-size: 13px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-staff-chief h3 {
margin: 0 0 14px;
    color: #003673;
    font-size: 25px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-staff-contact {
margin: 0;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-staff-contact strong {
color: #1F2937;
    font-weight: 600;
}

.ku-library-component-system .ku-staff-contact a {
color: #006DBB;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ku-library-component-system .ku-staff-deputies {
display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.ku-library-component-system .ku-staff-senior__grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ku-library-component-system .ku-staff-person-card {
min-width: 0;
    padding: 23px 24px 22px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.06);
}

.ku-library-component-system .ku-staff-deputies .ku-staff-person-card {
border-top-color: #006DBB;
}

.ku-library-component-system .ku-staff-person-card h3 {
margin: 0 0 9px;
    color: #003673;
    font-size: 18px;
    line-height: 1.35;
    font-weight: 600;
}

.ku-library-component-system .ku-staff-person-card p {
margin: 0;
    color: #5B6B7C;
    font-size: 14px;
    line-height: 1.6;
}

.ku-library-component-system .ku-staff-person-card .ku-staff-role {
margin-bottom: 7px;
    color: #006DBB;
    font-size: 12px;
}

.ku-library-component-system .ku-staff-directory a:hover, .ku-library-component-system .ku-staff-directory a:focus {
color: #00437E;
}

.ku-library-component-system .ku-staff-directory a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-policy-library__intro {
max-width: 860px;
    margin: 0 0 34px;
}

.ku-library-component-system .ku-policy-library__intro p {
margin: 0;
    color: #5B6B7C;
    font-size: 17px;
    line-height: 1.75;
}

.ku-library-component-system .ku-policy-library__grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.ku-library-component-system .ku-policy-card {
display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 26px 25px 24px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.07);
}

.ku-library-component-system .ku-policy-card__type {
margin: 0 0 9px;
    color: #006DBB;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-policy-card h2 {
margin: 0 0 13px;
    color: #003673;
    font-size: 21px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-policy-card > p:not(.ku-policy-card__type):not(.ku-policy-card__action) {
flex: 1;
    margin: 0 0 20px;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.65;
}

.ku-library-component-system .ku-policy-card__action {
margin: auto 0 0;
}

.ku-library-component-system .ku-policy-card__action a {
color: #006DBB;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-policy-card__action a:hover, .ku-library-component-system .ku-policy-card__action a:focus {
color: #00437E;
}

.ku-library-component-system .ku-policy-card__action a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-library-history {
max-width: 920px;
}

.ku-library-component-system .ku-library-history__intro {
margin-bottom: 30px;
    padding: 27px 30px;
    background: #F7F9FC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-library-history__intro p {
margin: 0;
    color: #1F2937;
    font-size: 17px;
    line-height: 1.75;
}

.ku-library-component-system .ku-library-history__quote {
margin: 0 0 30px;
    padding: 26px 30px;
    background: #EEF4F8;
    border: 0;
    border-radius: 10px;
}

.ku-library-component-system .ku-library-history__quote p {
margin: 0 0 12px;
    color: #003673;
    font-size: 18px;
    line-height: 1.7;
    font-style: italic;
}

.ku-library-component-system .ku-library-history__quote cite {
display: block;
    color: #5B6B7C;
    font-size: 14px;
    line-height: 1.5;
    font-style: normal;
    font-weight: 600;
}

.ku-library-component-system .ku-library-history__document {
margin-bottom: 28px;
    padding: 28px 30px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.07);
}

.ku-library-component-system .ku-library-history__type {
margin: 0 0 8px;
    color: #006DBB;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-library-history__document h2 {
margin: 0 0 14px;
    color: #003673;
    font-size: 23px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-library-history__document > p:not(.ku-library-history__type):not(.ku-library-history__action) {
margin: 0 0 20px;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-library-history__action {
margin: 0;
}

.ku-library-component-system .ku-library-history__action a {
color: #006DBB;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-library-history__action a:hover, .ku-library-component-system .ku-library-history__action a:focus {
color: #00437E;
}

.ku-library-component-system .ku-library-history__action a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-library-history__closing {
margin: 0;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-library-history__quote::before, .ku-library-component-system .ku-library-history__quote::after, .ku-library-component-system .ku-library-history__quote p::before, .ku-library-component-system .ku-library-history__quote p::after {
content: none !important;
    display: none !important;
}

.ku-library-component-system .ku-departments-directory__intro {
max-width: 880px;
    margin: 0 0 34px;
}

.ku-library-component-system .ku-departments-directory__intro p {
margin: 0;
    color: #5B6B7C;
    font-size: 17px;
    line-height: 1.75;
}

.ku-library-component-system .ku-departments-directory__section {
margin-bottom: 38px;
}

.ku-library-component-system .ku-departments-directory__section > h2, .ku-library-component-system .ku-departments-directory__services > h2 {
margin: 0 0 20px;
    color: #003673;
    font-size: 24px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-departments-directory__grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.ku-library-component-system .ku-departments-directory__grid--secondary {
grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ku-library-component-system .ku-department-card {
min-width: 0;
    padding: 23px 22px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.06);
}

.ku-library-component-system .ku-department-card__location {
margin: 0 0 9px;
    color: #006DBB;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-department-card h3 {
margin: 0;
    font-size: 18px;
    line-height: 1.45;
    font-weight: 600;
}

.ku-library-component-system .ku-department-card h3 a {
color: #003673;
    text-decoration: none;
    overflow-wrap: anywhere;
}

.ku-library-component-system .ku-department-card h3 a:hover, .ku-library-component-system .ku-department-card h3 a:focus {
color: #006DBB;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ku-library-component-system .ku-department-card h3 a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 4px;
}

.ku-library-component-system .ku-departments-directory__services {
max-width: 880px;
    padding: 27px 30px;
    background: #F7F9FC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-departments-directory__services > p {
margin: 0 0 15px;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-departments-directory__services ul {
margin: 0;
    padding-left: 21px;
}

.ku-library-component-system .ku-departments-directory__services li {
margin-bottom: 7px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.65;
}

.ku-library-component-system .ku-departments-directory__services li:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-rules-document {
max-width: 920px;
}

.ku-library-component-system .ku-rules-section {
margin: 0 0 34px;
    padding: 0 0 32px;
    border-bottom: 1px solid #D9E2EC;
}

.ku-library-component-system .ku-rules-section:last-child {
margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.ku-library-component-system .ku-rules-section > h2 {
margin: 0 0 15px;
    color: #003673;
    font-size: 21px;
    line-height: 1.35;
    font-weight: 600;
    letter-spacing: 0.015em;
}

.ku-library-component-system .ku-rules-section > p {
margin: 0 0 16px;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.75;
}

.ku-library-component-system .ku-rules-section > ol {
margin: 0;
    padding-left: 27px;
}

.ku-library-component-system .ku-rules-section > ol > li {
margin: 0 0 11px;
    padding-left: 5px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.72;
}

.ku-library-component-system .ku-rules-section > ol > li:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-rules-section > ol > li::marker {
color: #006DBB;
    font-weight: 600;
}

.ku-library-component-system .ku-rules-section strong, .ku-library-component-system .ku-rules-section em {
color: inherit;
}

.ku-library-component-system .ku-rules-section--wireless {
margin-top: 6px;
    padding: 28px 30px 30px;
    background: #F7F9FC;
    border: 1px solid #D9E2EC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-rules-section--wireless > h2 {
margin-bottom: 18px;
    font-size: 20px;
    line-height: 1.4;
    text-transform: none;
}

.ku-library-component-system .ku-library-services {
max-width: 100%;
}

.ku-library-component-system .ku-library-services__section {
max-width: 920px;
    margin: 0 0 38px;
    padding: 28px 30px;
    background: #F7F9FC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-library-services__section > h2, .ku-library-component-system .ku-library-services__resources > h2 {
margin: 0 0 15px;
    color: #003673;
    font-size: 24px;
    line-height: 1.3;
    font-weight: 600;
}

.ku-library-component-system .ku-library-services__section > p {
margin: 0 0 9px;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-library-services__section > h3 {
margin: 25px 0 14px;
    color: #003673;
    font-size: 18px;
    line-height: 1.4;
    font-weight: 600;
}

.ku-library-component-system .ku-library-services__section > ul {
margin: 0;
    padding-left: 22px;
}

.ku-library-component-system .ku-library-services__section > ul > li {
margin: 0 0 9px;
    color: #1F2937;
    font-size: 15px;
    line-height: 1.68;
}

.ku-library-component-system .ku-library-services__section > ul > li:last-child {
margin-bottom: 0;
}

.ku-library-component-system .ku-library-services__section > ul > li::marker {
color: #006DBB;
}

.ku-library-component-system .ku-library-services__grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 40px;
}

.ku-library-component-system .ku-service-card {
min-width: 0;
    padding: 25px 24px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-top: 4px solid #00437E;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.06);
}

.ku-library-component-system .ku-service-card h2 {
margin: 0 0 13px;
    color: #003673;
    font-size: 19px;
    line-height: 1.4;
    font-weight: 600;
}

.ku-library-component-system .ku-service-card p {
margin: 0;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.7;
}

.ku-library-component-system .ku-library-services__resources {
margin-bottom: 40px;
}

.ku-library-component-system .ku-library-services__resource-grid {
display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.ku-library-component-system .ku-service-resource {
display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 118px;
    padding: 21px 22px;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0, 54, 115, 0.05);
    text-decoration: none;
}

.ku-library-component-system .ku-service-resource__type {
display: block;
    margin-bottom: 9px;
    color: #006DBB;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-service-resource strong {
color: #003673;
    font-size: 17px;
    line-height: 1.45;
    font-weight: 600;
}

.ku-library-component-system .ku-service-resource:hover, .ku-library-component-system .ku-service-resource:focus {
border-color: #006DBB;
    text-decoration: none;
}

.ku-library-component-system .ku-service-resource:hover strong, .ku-library-component-system .ku-service-resource:focus strong {
color: #006DBB;
}

.ku-library-component-system .ku-service-resource:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

.ku-library-component-system .ku-library-services__charter {
display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    padding: 26px 30px;
    background: #EEF4F8;
    border: 1px solid #D9E2EC;
    border-left: 4px solid #00437E;
    border-radius: 0 10px 10px 0;
}

.ku-library-component-system .ku-library-services__charter-type {
margin: 0 0 7px;
    color: #006DBB;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ku-library-component-system .ku-library-services__charter h2 {
margin: 0 0 8px;
    color: #003673;
    font-size: 21px;
    line-height: 1.35;
    font-weight: 600;
}

.ku-library-component-system .ku-library-services__charter > div > p:last-child {
margin: 0;
    color: #5B6B7C;
    font-size: 15px;
    line-height: 1.65;
}

.ku-library-component-system .ku-library-services__charter-action {
flex: 0 0 auto;
    margin: 0;
}

.ku-library-component-system .ku-library-services__charter-action a {
display: inline-block;
    color: #006DBB;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ku-library-component-system .ku-library-services__charter-action a:hover, .ku-library-component-system .ku-library-services__charter-action a:focus {
color: #00437E;
}

.ku-library-component-system .ku-library-services__charter-action a:focus-visible {
outline: 3px solid #0283DF;
    outline-offset: 3px;
}

@media (max-width: 991px) {

    .ku-library-component-system .ku-il-resource-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ku-library-component-system .ku-staff-senior__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ku-library-component-system .ku-policy-library__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ku-library-component-system .ku-departments-directory__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ku-library-component-system .ku-library-services__grid, .ku-library-component-system .ku-library-services__resource-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 767px) {

    .ku-library-component-system .ku-campus-directory__intro {
    margin-bottom: 26px;
    }

    .ku-library-component-system .ku-campus-directory__intro p {
    font-size: 16px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-campus-directory__grid {
    grid-template-columns: 1fr;
            gap: 18px;
    }

    .ku-library-component-system .ku-campus-card {
    padding: 22px 20px 21px;
    }

    .ku-library-component-system .ku-campus-card h2 {
    font-size: 20px;
    }

    .ku-library-component-system .ku-campus-directory__grid > .ku-campus-card:last-child:nth-child(odd) {
    grid-column: auto;
            width: 100%;
            justify-self: stretch;
    }

    .ku-library-component-system .ku-il-intro {
    margin-bottom: 36px;
            padding: 24px 20px;
    }

    .ku-library-component-system .ku-il-intro h2 {
    font-size: 22px;
    }

    .ku-library-component-system .ku-il-intro p {
    font-size: 15px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-il-section {
    margin-bottom: 40px;
    }

    .ku-library-component-system .ku-il-section > h2 {
    margin-bottom: 18px;
            font-size: 21px;
    }

    .ku-library-component-system .ku-il-resource-grid, .ku-library-component-system .ku-il-reference-grid, .ku-library-component-system .ku-il-schedule-grid {
    grid-template-columns: 1fr;
            gap: 18px;
    }

    .ku-library-component-system .ku-il-resource-card, .ku-library-component-system .ku-il-reference-card, .ku-library-component-system .ku-il-schedule-card {
    padding: 21px 19px 20px;
    }

    .ku-library-component-system .ku-il-page h3 {
    font-size: 19px;
    }

    .ku-library-component-system .ku-about-overview__grid {
    grid-template-columns: 1fr;
            gap: 18px;
    }

    .ku-library-component-system .ku-about-card, .ku-library-component-system .ku-about-card:nth-child(3) {
    grid-column: auto;
    }

    .ku-library-component-system .ku-about-card {
    padding: 22px 20px 21px;
    }

    .ku-library-component-system .ku-about-card h2 {
    margin-bottom: 13px;
            font-size: 20px;
    }

    .ku-library-component-system .ku-about-card p, .ku-library-component-system .ku-about-card li {
    font-size: 15px;
            line-height: 1.68;
    }

    .ku-library-component-system .ku-about-card:nth-child(3) > ul {
    columns: 1;
    }

    .ku-library-component-system .ku-staff-leadership, .ku-library-component-system .ku-staff-senior {
    margin-bottom: 40px;
    }

    .ku-library-component-system .ku-staff-senior {
    margin-bottom: 0;
    }

    .ku-library-component-system .ku-staff-leadership > h2, .ku-library-component-system .ku-staff-senior > h2 {
    margin-bottom: 18px;
            font-size: 21px;
    }

    .ku-library-component-system .ku-staff-chief {
    align-items: flex-start;
            gap: 18px;
            margin-bottom: 18px;
            padding: 22px 20px;
    }

    .ku-library-component-system .ku-staff-chief h3 {
    font-size: 21px;
    }

    .ku-library-component-system .ku-staff-contact {
    font-size: 14px;
    }

    .ku-library-component-system .ku-staff-deputies, .ku-library-component-system .ku-staff-senior__grid {
    grid-template-columns: 1fr;
            gap: 16px;
    }

    .ku-library-component-system .ku-staff-person-card {
    padding: 20px 19px 19px;
    }

    .ku-library-component-system .ku-policy-library__intro {
    margin-bottom: 26px;
    }

    .ku-library-component-system .ku-policy-library__intro p {
    font-size: 16px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-policy-library__grid {
    grid-template-columns: 1fr;
            gap: 18px;
    }

    .ku-library-component-system .ku-policy-card {
    padding: 22px 20px 21px;
    }

    .ku-library-component-system .ku-policy-card h2 {
    font-size: 20px;
    }

    .ku-library-component-system .ku-library-history__intro, .ku-library-component-system .ku-library-history__quote, .ku-library-component-system .ku-library-history__document {
    padding: 22px 20px;
    }

    .ku-library-component-system .ku-library-history__intro, .ku-library-component-system .ku-library-history__quote {
    margin-bottom: 22px;
    }

    .ku-library-component-system .ku-library-history__document {
    margin-bottom: 22px;
    }

    .ku-library-component-system .ku-library-history__intro p {
    font-size: 16px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-library-history__quote p {
    font-size: 16px;
            line-height: 1.68;
    }

    .ku-library-component-system .ku-library-history__document h2 {
    font-size: 20px;
    }

    .ku-library-component-system .ku-departments-directory__intro {
    margin-bottom: 28px;
    }

    .ku-library-component-system .ku-departments-directory__intro p {
    font-size: 16px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-departments-directory__section {
    margin-bottom: 32px;
    }

    .ku-library-component-system .ku-departments-directory__section > h2, .ku-library-component-system .ku-departments-directory__services > h2 {
    margin-bottom: 17px;
            font-size: 22px;
    }

    .ku-library-component-system .ku-departments-directory__grid, .ku-library-component-system .ku-departments-directory__grid--secondary {
    grid-template-columns: 1fr;
            gap: 17px;
    }

    .ku-library-component-system .ku-department-card {
    padding: 21px 20px;
    }

    .ku-library-component-system .ku-department-card h3 {
    font-size: 18px;
    }

    .ku-library-component-system .ku-departments-directory__services {
    padding: 22px 20px;
    }

    .ku-library-component-system .ku-rules-section {
    margin-bottom: 28px;
            padding-bottom: 26px;
    }

    .ku-library-component-system .ku-rules-section > h2 {
    margin-bottom: 13px;
            font-size: 19px;
            line-height: 1.4;
    }

    .ku-library-component-system .ku-rules-section > p {
    font-size: 15px;
            line-height: 1.7;
    }

    .ku-library-component-system .ku-rules-section > ol {
    padding-left: 24px;
    }

    .ku-library-component-system .ku-rules-section > ol > li {
    margin-bottom: 10px;
            padding-left: 3px;
            font-size: 15px;
            line-height: 1.68;
    }

    .ku-library-component-system .ku-rules-section--wireless {
    padding: 22px 20px 24px;
    }

    .ku-library-component-system .ku-rules-section--wireless > h2 {
    font-size: 18px;
    }

    .ku-library-component-system .ku-library-services__section {
    margin-bottom: 32px;
            padding: 22px 20px;
    }

    .ku-library-component-system .ku-library-services__section > h2, .ku-library-component-system .ku-library-services__resources > h2 {
    font-size: 22px;
    }

    .ku-library-component-system .ku-library-services__grid, .ku-library-component-system .ku-library-services__resource-grid {
    grid-template-columns: 1fr;
            gap: 17px;
    }

    .ku-library-component-system .ku-library-services__grid, .ku-library-component-system .ku-library-services__resources {
    margin-bottom: 32px;
    }

    .ku-library-component-system .ku-service-card, .ku-library-component-system .ku-service-resource {
    padding: 21px 20px;
    }

    .ku-library-component-system .ku-service-resource {
    min-height: 0;
    }

    .ku-library-component-system .ku-library-services__charter {
    display: block;
            padding: 22px 20px;
    }

    .ku-library-component-system .ku-library-services__charter-action {
    margin-top: 18px;
    }

    .ku-library-component-system .ku-library-services__charter h2 {
    font-size: 20px;
    }

}

@media (max-width: 420px) {

    .ku-library-component-system .ku-staff-chief {
    display: block;
    }

    .ku-library-component-system .ku-staff-chief__portrait {
    margin-bottom: 16px;
    }

}

/* KU_LIBRARY_PHASE3_NATIVE_COMPONENTS
 * Native Gutenberg FAQ, Gallery and responsive Table systems.
 * Additive only: these rules require the KU component-system wrapper
 * and do not alter the frozen legacy production implementations.
 */

/* ---------------------------------------------------------
 * Native FAQ / core/details
 * --------------------------------------------------------- */

.ku-library-component-system .ku-native-faq {
    margin: 48px 0 56px;
}

.ku-library-component-system .ku-native-faq .wp-block-details {
    margin: 0;
    overflow: hidden;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.08);
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
+ .wp-block-details {
    margin-top: 14px;
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
> summary {
    position: relative;
    display: block;
    margin: 0;
    padding: 18px 56px 18px 20px;
    color: #003673;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.45;
    cursor: pointer;
    list-style: none;
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
> summary::-webkit-details-marker {
    display: none;
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
> summary::after {
    position: absolute;
    top: 50%;
    right: 20px;
    width: 28px;
    height: 28px;
    color: #006DBB;
    font-size: 22px;
    font-weight: 400;
    line-height: 26px;
    text-align: center;
    content: "+";
    transform: translateY(-50%);
}

.ku-library-component-system
.ku-native-faq
.wp-block-details[open]
> summary {
    border-bottom: 1px solid #D9E2EC;
}

.ku-library-component-system
.ku-native-faq
.wp-block-details[open]
> summary::after {
    content: "−";
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
> summary:hover {
    color: #00437E;
    background: #F7F9FC;
}

.ku-library-component-system
.ku-native-faq
.wp-block-details
> summary:focus-visible {
    outline: 3px solid #0283DF;
    outline-offset: -3px;
}

.ku-library-component-system .ku-native-faq__answer {
    padding: 18px 20px 20px;
}

.ku-library-component-system
.ku-native-faq__answer
> p,
.ku-library-component-system
.ku-native-faq__answer
> ol,
.ku-library-component-system
.ku-native-faq__answer
> ul {
    margin-top: 0;
    margin-bottom: 10px;
}

.ku-library-component-system
.ku-native-faq__answer
> :last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------
 * Native Gallery / core/gallery + core/image
 * --------------------------------------------------------- */

.ku-library-component-system .ku-native-gallery {
    margin: 48px 0 56px;
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid.wp-block-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image {
    display: flex;
    flex-direction: column;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    overflow: hidden;
    background: #fff;
    border: 1px solid #D9E2EC;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 54, 115, 0.08);
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
> a {
    display: block;
    width: 100%;
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
img {
    display: block;
    width: 100%;
    max-width: none;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    transition: transform 180ms ease;
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
> a:hover
img,
.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
> a:focus
img {
    transform: scale(1.025);
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
figcaption {
    position: static;
    flex: 1;
    width: auto;
    max-height: none;
    margin: 0;
    padding: 16px 18px 18px;
    overflow: visible;
    color: #1F2937;
    background: none;
    font-size: 14px;
    line-height: 1.55;
    text-align: left;
}

.ku-library-component-system
.ku-native-gallery
.ku-gallery-grid
.wp-block-image
> a:focus-visible {
    outline: 3px solid #0283DF;
    outline-offset: -3px;
}


/* ---------------------------------------------------------
 * Native responsive Table / core/table
 * --------------------------------------------------------- */

.ku-library-component-system .ku-responsive-table {
    max-width: 100%;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table {
    max-width: 100%;
    margin-right: 0;
    margin-left: 0;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table
table {
    width: 100%;
    border-collapse: collapse;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table
th,
.ku-library-component-system
.ku-responsive-table
.wp-block-table
td {
    box-sizing: border-box;
    padding: 10px 12px;
    vertical-align: top;
    border: 1px solid #D9E2EC;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table
th {
    color: #003673;
    background: #EEF4F8;
    font-weight: 700;
    text-align: left;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table
ul,
.ku-library-component-system
.ku-responsive-table
.wp-block-table
ol {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 20px;
}

.ku-library-component-system
.ku-responsive-table
.wp-block-table
a {
    overflow-wrap: anywhere;
    word-break: normal;
}


/* ---------------------------------------------------------
 * Phase 3 responsive behavior
 * --------------------------------------------------------- */

@media (max-width: 991px) {

    .ku-library-component-system
    .ku-native-gallery
    .ku-gallery-grid.wp-block-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }

    .ku-library-component-system .ku-native-gallery {
        margin: 40px 0 48px;
    }
}

@media (max-width: 767px) {

    .ku-library-component-system .ku-native-faq {
        margin: 0 0 40px;
    }

    .ku-library-component-system
    .ku-native-faq
    .wp-block-details
    > summary {
        padding: 16px 48px 16px 16px;
    }

    .ku-library-component-system
    .ku-native-faq
    .wp-block-details
    > summary::after {
        right: 14px;
    }

    .ku-library-component-system .ku-native-faq__answer {
        padding: 16px 16px 18px;
    }

    .ku-library-component-system .ku-native-gallery {
        margin: 0 0 40px;
    }

    .ku-library-component-system
    .ku-native-gallery
    .ku-gallery-grid.wp-block-gallery {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .ku-library-component-system
    .ku-native-gallery
    .ku-gallery-grid
    .wp-block-image
    figcaption {
        padding: 14px 16px 16px;
    }

    .ku-library-component-system .ku-responsive-table {
        width: 100%;
        max-width: 100%;
        overflow-x: visible;
    }

    .ku-library-component-system
    .ku-responsive-table
    .wp-block-table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-inline: contain;
    }

    .ku-library-component-system
    .ku-responsive-table
    .wp-block-table
    table {
        width: 100%;
        min-width: 720px;
        table-layout: auto;
    }
}

