/* ==========================================================================
   Project Detail Page
   ========================================================================== */

/* Hero banner — full-width grey background */
.project-hero-banner {
    --header-nav-color: #fff;
    --header-nav-underline: rgba(255, 255, 255, 0.5);
    background: #d9d9d9;
    min-height: 400px;
}

/* Light background override (set by JS) */
.project-hero-banner.banner--light {
    --header-nav-color: #111;
    --header-nav-underline: rgba(17, 17, 17, 0.4);
}

.project-hero-banner .header {
    padding: 40px 0;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.project-hero-banner .header.header--visible {
    opacity: 1;
}

/* No-JS fallback */
.no-js .project-hero-banner .header {
    opacity: 1;
}

.project-hero-banner .nav a {
    color: var(--header-nav-color);
    text-decoration-color: var(--header-nav-underline);
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.project-hero-banner.banner--light .nav a {
    text-shadow: 0 1px 3px rgba(255, 255, 255, 0.5);
}

.project-hero-banner .nav a:hover {
    color: var(--color-accent);
    text-decoration: none;
}

.project-hero-banner .nav a.active {
    color: var(--color-accent);
    text-decoration: none;
}

/* Page layout */
.project-page {
    padding: 80px 0;
}

/* Title */
.project-title {
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: clamp(2.2rem, 5vw, 3.2rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin-bottom: 6px;
}

/* Location */
.project-location {
	font-size: .9rem;
    margin-bottom: 32px;
}

/* Lead paragraph */
.project-lede {
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: clamp(1.1rem, 2.5vw, 1.4rem);
    font-weight: 500;
    line-height: 1.5;
    max-width: 680px;
    margin-bottom: 32px;
}

/* Secondary lead paragraph — narrower, smaller */
.project-lede--secondary {
    font-family: 'DM Sans', 'Inter', sans-serif;
    font-size: clamp(0.85rem, 2vw, 1.1rem);
    font-weight: 500;
    line-height: 1.5;
    max-width: calc((4 / 8) * 100%);
    margin-bottom: 44px;
}

/* ==========================================================================
   Content Blocks — 8-col grid layouts
   ========================================================================== */
.project-block {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--grid-gutter);
    margin-bottom: 64px;
    align-items: start;
}

.project-block__placeholder {
    background: #d9d9d9;
    border-radius: 4px;
    width: 100%;
    min-height: 360px;
}

.project-block__copy {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
}

.project-block__copy p {
    margin-bottom: 12px;
}

.project-block__copy p:last-child {
    margin-bottom: 0;
}

/* Inline links in project page paragraphs */
.project-page p a {
    color: var(--color-accent);
    text-decoration: none;
}

.project-page p a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Image left (cols 1-6) + text right (cols 7-8) */
.project-block--img-text .project-block__media {
    grid-column: 1 / 7;
}

.project-block--img-text .project-block__copy {
    grid-column: 7 / 9;
    padding-top: 8px;
}

/* Image left 5-col variant (cols 1-6) */
.project-block--img-5col .project-block__media {
    grid-column: 1 / 6;
}

/* Text left (cols 1-2) + image right (cols 3-8) */
.project-block--text-img .project-block__copy {
    grid-column: 1 / 3;
    padding-top: 8px;
    text-align: right;
}

.project-block--text-img .project-block__media {
    grid-column: 3 / 9;
}

/* Full-width image block */
.project-block--full-width {
    margin-bottom: 64px;
}

.project-block--full-width img {
    width: 100%;
    display: block;
}

.project-block--full-width .project-block__caption {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--color-text);
    max-width: 600px;
    padding-top: 10px;
}

.project-block__credit {
    font-size: 0.75rem;
    line-height: 1.4;
    color: #999;
    padding-top: 8px;
}

/* Text left (cols 1-2) + two images (cols 3-5, 6-8) */
.project-block--text-2img .project-block__copy {
    grid-column: 1 / 3;
    padding-top: 8px;
    text-align: right;
}

.project-block--text-2img .project-block__media:nth-of-type(1) {
    grid-column: 3 / 6;
}

.project-block--text-2img .project-block__media:nth-of-type(2) {
    grid-column: 6 / 9;
}

/* ==========================================================================
   Partners
   ========================================================================== */
.project-partners {
    padding-top: 64px;
    margin-top: 64px;
    border-top: 1px solid var(--color-border);
}

.project-partners h2 {
    font-family: 'Inter', sans-serif;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: 24px;
}

.project-partners__links {
    display: flex;
    gap: 48px;
}

.project-partners__links a {
    font-size: 0.95rem;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.project-partners__links a:hover {
    color: var(--color-accent);
    text-decoration: none;
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 768px) {
    .project-hero-banner {
        min-height: 240px;
    }

    .project-page {
        padding: 48px 0;
    }

    .project-lede {
        font-size: 1.1rem;
        margin-bottom: 40px;
    }

    .project-block {
        display: flex;
        flex-direction: column;
        gap: 16px;
        margin-bottom: 40px;
    }

    .project-block__copy {
        text-align: left !important;
    }

    .project-block__placeholder {
        min-height: 240px;
    }

    .project-block--full-width {
        margin-bottom: 40px;
    }

    .project-partners__links {
        flex-direction: column;
        gap: 16px;
    }
}
