.single-project-template {
    overflow: hidden;
}

.single-project-template > *:not(:last-child) {
    margin-bottom: var(--s-40-60);
}

.single-project-template > * + * {
    margin-top: var(--s-40-60);
}

.single-project-template > * + * > * {
    padding-bottom: var(--s-40-60);
}

.single-project-template > * + *:has(+ .single-project-mid-image) > * {
    padding-bottom: 0;
    border-bottom: 0;
}

.single-project-template .single-project-header .container.after-border::after {
    display: none;
}

@media (min-width: 1024px) {
    .single-project-template .single-project-header .container.after-border::after {
        display: block;
    }
}

.single-project-template .single-project-header .content-layer {
    margin-top: var(--s-40-60);
    margin-bottom: var(--s-40-60);
}

.single-project-template .single-project-header .content-layer .title {
    padding-bottom: 20px;
    margin-bottom: 25px;
}

.single-project-template .single-project-header .content-layer .title::after {
    width: 100%;
    left: 0;
}

.single-project-template .single-project-header .content-layer .button {
    align-self: flex-end;
}

@media (min-width: 1024px) {

    .single-project-template .single-project-header .content-layer {
            padding-bottom: var(--s-40-60);
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            justify-content: space-between;
            gap: 30px;
    }

    .single-project-template .single-project-header .content-layer .title {
            border-bottom: none;
            padding-bottom: 0;
            margin-bottom: 0;
            max-width: 30ch;
    }

    .single-project-template .single-project-header .content-layer .title::after {
            display: none;
    }

    .single-project-template .single-project-header .content-layer .button {
        align-self: unset;
    }

}

.single-project-template .single-project-overview {
    gap: 30px;
    display: grid;
    align-items: center;
    grid-template-columns: 1fr;
}

.single-project-template .single-project-overview .overview-details {
    padding-top: 30px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    order: 2;
}

.single-project-template .single-project-overview .overview-details::before {
    top: 0;
    left: 0;
    width: 100%;
}

@media (min-width: 1024px) {
    .single-project-template .single-project-overview .overview-details::before {
        display: none;
    }
}

.single-project-template .single-project-overview .overview-description {
    order: 1;
}

.single-project-template .single-project-overview .overview-item {
    display: grid;
    align-items: flex-start;
    grid-template-columns: 1fr 1.5fr;
    gap: 30px;
}

@media (min-width: 1024px) {

    .single-project-template .single-project-overview {
        margin-top: 0;
        grid-template-columns: 1fr 3fr 2fr;
        padding-bottom: var(--s-40-60);
    }

    .single-project-template .single-project-overview .overview-description {
        order: 2;
    }

    .single-project-template .single-project-overview .overview-details {
        order: 1;
        border-top: none;
        padding-top: 0;
    }

}

.single-project-template .single-project-highlights {
    gap: 30px;
    display: grid;
    align-items: center;
    grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
    .single-project-template .single-project-highlights {
        grid-template-columns: 1fr 5fr;
    }
}

.single-project-template .single-project-highlights .highlights-details {
    row-gap: 45px;
    column-gap: 30px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
}

.single-project-template .single-project-highlights .highlight-item {
    gap: 30px;
    display: flex;
    flex-direction: column;
}

.single-project-template .single-project-mid-image {
    aspect-ratio: 16/9;
}

.single-project-template .single-project-mid-image > * {
    border: none;
    padding-bottom: 0;
}

@media (max-width: 767px) {
    .single-project-template .single-project-mid-image {
        padding-left: 20px;
        padding-right: 20px;
    }
}

.single-project-template .single-project-gallery .gallery-mosaic {
    gap: var(--s-20-30);
    display: grid;
    grid-template-rows: auto;
    grid-template-columns: repeat(6, 1fr);
}

.single-project-template .single-project-gallery .gallery-mosaic li {
    position: relative;
}

.single-project-template .single-project-gallery .gallery-mosaic > *:where(
    :nth-child(5n+1), :nth-child(5n+2),
    :nth-child(5n+3), :nth-child(5n+4)
) {
    grid-column: span 3;
    grid-row: span 1;
    aspect-ratio: 1/1;
}

.single-project-template .single-project-gallery .gallery-mosaic > *:where(:nth-child(5n+5)) {
    grid-column: span 6;
    grid-row: span 1;
    margin: 0 calc(50% - 50vw);
    aspect-ratio: 16/9;
}

@media (min-width: 767px) {

    .single-project-template .single-project-gallery .gallery-mosaic > * {
        margin: unset;
        aspect-ratio: unset;
        grid-column: span 3;
    }

    /* .single-project-template .single-project-gallery .gallery-mosaic > *:where(:nth-child(5n+1), :nth-child(5n+2)) {
        grid-column: span 3;
    }

    .single-project-template .single-project-gallery .gallery-mosaic > *:where(:only-child, :nth-child(5n+3)) {
        grid-column: span 6;
    }

    .single-project-template .single-project-gallery .gallery-mosaic > *:where(:nth-child(5n+4)) {
        grid-column: span 2;
    }

    .single-project-template .single-project-gallery .gallery-mosaic > *:where(:nth-child(5n+5)) {
        grid-column: span 4;
    } */

}

.single-project-template .single-project-units {
    gap: 30px;
    display: grid;
    align-items: center;
    grid-template-columns: 1fr;
    overflow-x: auto;
}

@media (min-width: 1024px) {
    .single-project-template .single-project-units {
        grid-template-columns: 1fr calc(var(--container-width) - 400px);
    }
}

.single-project-template .single-project-units .units-label {
    gap: 30;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
}

.single-project-template .single-project-units .units-label span {
    display: none;
}

@media (max-width: 1024px) {

    .single-project-template .single-project-units .units-label {
        width: calc(100vw - 60px);
        position: sticky;
        left: 0;
    }

    .single-project-template .single-project-units .units-label span {
        display: block;
    }

}

.single-project-template .single-project-units table {
    text-align: left;
    min-width: 1180px;
}

.single-project-template .single-project-units table th {
    padding-bottom: 20px;
    padding-right: 20px;
    min-width: 130px;
}

.single-project-template .single-project-units table td {
    padding-top: 20px;
    padding-right: 20px;
    min-width: 130px;
    max-width: 200px;
    vertical-align: baseline;
}

.single-project-template .single-project-units table td.longer {
    width: 550px;
    max-width: unset;
}

html:has(lightbox-component.lightbox-active) {
    overflow: hidden;
}