/* --- Title style: default --- */
.title-style-default {
    /* add default-specific title overrides here */
}

/* --- Title style: alternate --- */
.title-style-alt article {
    /* add alternate title overrides here */
    margin-left: auto;
    margin-right: auto;
    margin-top: 1em;
    margin-bottom: 1.5em;
    text-align: center;
}

.title-style-alt h1.entry-title {
    margin-bottom: 0.5rem;
}

.title-style-alt .entry-content p {
    color: #3a3a3a;
    font-size: 1.3em;
}

.university-partners-grid {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    padding: 60px 0;
    position: relative;
}

.title-style-alt .university-partners-grid:before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    background: #f5f5f5;
}

#content.title-style-alt {
    overflow-x: hidden;
}

/* --- Layout: natural width, fixed horizontal gap (default) --- */
.layout-natural {
    row-gap: 20px;
    column-gap: 24px;
}

.layout-natural a {
    flex: 0 0 auto;
    max-width: 100%;
}

@media (min-width: 48em) {
    .layout-natural {
        column-gap: 40px;
    }
}

@media (min-width: 64em) {
    .layout-natural {
        column-gap: 60px;
    }
}

/* --- Layout: equal-width columns (legacy) --- */
.layout-equal {
    gap: 20px;
}

.layout-equal a {
    flex: 0 0 calc(50% - 20px);
    max-width: calc(50% - 20px);
}

@media (min-width: 48em) {
    .layout-equal a {
        flex: 0 0 calc(33.333% - 20px);
        max-width: calc(33.333% - 20px);
    }
}

@media (min-width: 64em) {
    .layout-equal a {
        flex: 0 0 calc(25% - 20px);
        max-width: calc(25% - 20px);
    }
}

.partner-logo {
    position: relative;
    display: inline-block;
    max-width: 100%;
}

.partner-logo img {
    display: block;
    max-width: 100%;
    height: auto;
}

.partner-logo .partner-logo-color {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
}

/* --- Effect: grayscale fade (default) --- */
.effect-fade .partner-logo-base {
    filter: grayscale(100%);
    transition: filter .4s ease-out;
}

.effect-fade a:hover .partner-logo-base,
.effect-fade a:focus .partner-logo-base {
    filter: grayscale(0);
}

.effect-fade .partner-logo-color {
    display: none;
}

/* --- Effect: circular color wipe --- */
.effect-circle-wipe .partner-logo-base {
    filter: grayscale(100%);
}

.effect-circle-wipe .partner-logo-color {
    clip-path: circle(0% at 50% 50%);
    -webkit-clip-path: circle(0% at 50% 50%);
    transition: clip-path .4s cubic-bezier(.5, 1, .89, 1),
                -webkit-clip-path .4s cubic-bezier(.5, 1, .89, 1);
}

.effect-circle-wipe a:hover .partner-logo-color,
.effect-circle-wipe a:focus .partner-logo-color {
    clip-path: circle(100% at 50% 50%);
    -webkit-clip-path: circle(100% at 50% 50%);
}