.project-story-header {
    background: var(--navy);
    color: #fff;
    padding: 10rem 0 clamp(2.25rem, 5vw, 4rem);
}

.project-story-header h1 {
    max-width: 24ch;
    margin: .85rem 0 0;
    font: 600 clamp(2rem, 5vw, 4rem)/1.2 "Libre Baskerville", Georgia, serif;
    overflow-wrap: anywhere;
}

.project-story-back,
.project-story-sidebar a {
    text-decoration: underline;
    text-underline-offset: .2em;
}

.project-story-back { color: #fff; font-weight: 600; }
.project-story-back:hover { color: var(--gold); }

.project-story-layout {
    padding-block: clamp(2rem, 5vw, 4rem) clamp(3rem, 7vw, 6rem);
}

.story-columns { display: grid; grid-template-columns: minmax(0, 82rem); align-items: start; gap: clamp(2rem, 5vw, 5rem); }
.story-columns.has-story-sidebar { grid-template-columns: minmax(0, 2.15fr) minmax(15rem, 1fr); }
.story-main { min-width: 0; }
.project-story-intro { margin: 0 0 1.4rem; color: var(--navy); font-size: clamp(1.15rem, 2.5vw, 1.5rem); line-height: 1.55; }
.project-story-photo { margin: 0; }
.project-story-lead-photo { margin-bottom: 1.6rem; }
.project-story-photo img { display: block; width: 100%; height: auto; border-radius: .4rem; }
.project-story-photo figcaption { margin: .45rem 0 0; color: #4b5363; font-size: .9rem; }
.project-photo-open { display: block; position: relative; cursor: zoom-in; }
.project-photo-open:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.project-photo-expand { position: absolute; right: .75rem; bottom: .75rem; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid #fff9; border-radius: 50%; background: #0b1640cc; color: #fff; font-size: 1.25rem; }
.project-photo-open:hover .project-photo-expand { background: var(--navy); }

.project-story-copy { margin: 0; max-width: none; line-height: 1.7; overflow-wrap: anywhere; }
.project-story-copy > :first-child { margin-top: 0; }
.project-story-copy h2,
.project-story-gallery h2,
.project-story-sidebar h2 {
    color: var(--navy);
    font: 600 clamp(1.3rem, 2.6vw, 1.65rem)/1.35 "Libre Baskerville", Georgia, serif;
}

.project-story-copy h2 { margin: 1.5em 0 .5em; }
.project-story-copy li + li { margin-top: .35em; }
.project-story-copy table { border-collapse: collapse; width: 100%; }
.project-story-copy th,
.project-story-copy td { padding: .5rem; border: 1px solid #d6d5d0; vertical-align: top; }

.project-story-gallery { clear: both; margin-top: 2rem; border-top: 1px solid #d6d5d0; padding-top: 1rem; }
.project-story-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.project-story-photo-grid > figure:only-child { grid-column: 1 / -1; max-width: 32rem; }

.project-story-sidebar { padding: 1.15rem 0 0; border-top: 3px solid var(--navy); }
.project-story-sidebar section { padding: 0; }
.project-story-sidebar section + section { margin-top: 1.75rem; }
.project-story-sidebar h2 { margin: 0 0 .8rem; }
.project-story-sidebar p { margin: .65rem 0 0; }
.project-story-sidebar dl { margin: 0; }
.project-story-sidebar dl div { padding: .55rem 0; border-bottom: 1px solid #d6d5d0; }
.project-story-sidebar dt { font-weight: 700; color: var(--navy); }
.project-story-sidebar dd { margin: .15rem 0 0; overflow-wrap: anywhere; }
.project-story-sidebar a { color: var(--navy); }
.project-story-sidebar a:hover { color: #942721; }
.project-story-sidebar .project-story-download {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem 1rem;
    padding: .75rem 1rem;
    border: 1px solid #c3c8d2;
    border-radius: .4rem;
    background: #fff;
    text-decoration: none;
}
.project-story-download strong { text-decoration: underline; text-underline-offset: .2em; }
.project-story-download small { display: block; color: #4b5363; margin-top: .2em; }
.project-story-download:hover { border-color: currentColor; }
.project-story-jump { display: none; }

@media (max-width: 820px) {
    .project-story-header { padding-top: 6.5rem; }
    .story-columns.has-story-sidebar { grid-template-columns: minmax(0, 1fr); }
    .project-story-jump { display: inline-block; color: #fff; margin-top: .8rem; text-decoration: underline; }
}

@media (max-width: 480px) {
    .project-story-photo-grid { grid-template-columns: minmax(0, 1fr); }
}
