/* Scoped to the reusable project layout; existing showcases retain their styles. */
.ksc-project-hero {
    position: relative;
    isolation: isolate;
    min-height: 300px;
    padding: 120px 24px 55px;
    display: grid;
    place-items: center;
    background: #341a4b;
    color: #fff;
}
.ksc-project-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 55%);
    z-index: -1;
}
.ksc-project-hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 22%;
    z-index: -2;
}
.ksc-project-hero h1 { max-width: 1200px; margin: 0; text-align: center; color: #fff; font-weight: 700; }
.ksc-project-hero,
.ksc-project-layout .ksc-project-intro,
.ksc-project-layout .ksc-project-gallery,
.ksc-project-layout .ksc-project-story,
.ksc-project-layout .ksc-project-cta {
    border-bottom: 5px solid;
    border-image: linear-gradient(to right, #2876bc 50%, #62bb46 50%) 1;
}
.ksc-project-layout { font-size: 20px; line-height: 1.5; color: #101011; }
.ksc-project-layout > * { margin: 0; }
.ksc-project-layout h2 { font-size: 24px; font-weight: 700; margin: 0 0 10px; }
.ksc-project-layout p { margin: 0 0 24px; }
.ksc-project-layout .ksc-project-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
    gap: 36px;
    align-items: center;
    padding: 48px max(24px, calc((100% - 1120px) / 2));
}
.ksc-project-layout .wp-block-column { min-width: 0; }
.ksc-project-layout figure { margin: 0; }
.ksc-project-layout img { display: block; width: 100%; height: auto; }
.ksc-project-facts p { margin: 0; }
.ksc-project-layout .ksc-project-gallery { padding: 30px max(24px, calc((100% - 1000px) / 2)); }
.ksc-project-gallery h2 { text-align: center; margin-bottom: 22px; }
.ksc-project-layout .ksc-project-gallery-images {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px;
    margin: 0;
}
.ksc-project-gallery-images img { aspect-ratio: 16 / 9; object-fit: cover; }
.ksc-project-layout .ksc-project-story,
.ksc-project-layout .ksc-project-faq { padding: 40px max(24px, calc((100% - 1000px) / 2)); }
.ksc-project-story h2:not(:first-child) { margin-top: 28px; }
.ksc-project-layout ul { padding-left: 24px; margin-bottom: 24px; list-style: disc; }
.ksc-project-layout a { color: #205f98; text-decoration: underline; }
.ksc-project-layout a:focus-visible { outline: 3px solid #2876bc; outline-offset: 5px; }
.ksc-project-layout .ksc-project-cta { padding: 12px 24px 48px; text-align: center; }
.ksc-project-cta .wp-block-buttons { display: flex; justify-content: center; margin-top: 22px; }
.ksc-project-cta a.wp-block-button__link {
    display: inline-block;
    background: #347c24;
    color: #fff;
    padding: 10px 24px;
    border-radius: 6px;
    font-weight: 700;
    text-decoration: none;
}
.ksc-project-cta a.wp-block-button__link:hover { background: #245a19; }
@media (max-width: 767px) {
    .ksc-project-hero { padding-top: 130px; }
    .ksc-project-hero h1 { font-size: 30px; }
    .ksc-project-layout .ksc-project-intro { grid-template-columns: 1fr; gap: 24px; padding-top: 30px; padding-bottom: 30px; }
    .ksc-project-layout .ksc-project-gallery-images { grid-template-columns: 1fr; gap: 24px; }
    .ksc-project-layout { font-size: 18px; }
}
