.rjc-photos-v2 h1,
.rjc-photos-v2 h2,
.rjc-photos-v2 h3,
.rjc-album-v2 h1 {
    font-family: Georgia, serif;
}

.rjc-photos-v2__hero {
    padding: 3rem 0;
    color: #fff;
    background: var(--rjc-blue-deep);
}

.rjc-photos-v2__hero h1 {
    margin: .15rem 0;
    font-size: clamp(2.2rem, 4vw, 3.8rem);
}

.rjc-photos-v2__hero p:last-child {
    max-width: 58ch;
}

.rjc-photos-v2__authors,
.rjc-photos-v2__albums {
    padding: clamp(2.5rem, 6vw, 5rem) 0;
}

.rjc-photos-v2__authors h2,
.rjc-photos-v2__albums h2 {
    font-size: clamp(1.9rem, 3.4vw, 3.2rem);
}

.rjc-photos-v2__author-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 250px));
    gap: 1rem;
}

.rjc-photos-v2__author-grid article {
    background: var(--rjc-blue-deep);
}

.rjc-photos-v2__author-grid a {
    display: block;
    color: #fff;
    text-decoration: none;
}

.rjc-photos-v2__author-grid img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.rjc-photos-v2__author-grid .rjc-photographer--alain-karsenty img,
.rjc-photos-v2__person.rjc-photographer--alain-karsenty img {
    object-position: left center;
}

.rjc-photos-v2__author-grid div {
    padding: 1rem;
}

.rjc-photos-v2__author-grid h3 {
    margin: 0;
    font-size: 1.25rem;
}

.rjc-photos-v2__author-grid p {
    color: #d7deed;
    font-size: .82rem;
}

.rjc-photos-v2__author-grid strong,
.rjc-photos-v2__meta {
    color: var(--rjc-gold);
    font-size: .72rem;
    text-transform: uppercase;
}

.rjc-photos-v2__person {
    padding: 3rem 0;
    color: #fff;
    background: var(--rjc-blue-deep);
}

.rjc-photos-v2__person > .rjc-shell {
    display: grid;
    grid-template-columns: 180px minmax(0, 650px);
    align-items: center;
    gap: 2.5rem;
}

.rjc-photos-v2__person figure {
    margin: 0;
}

.rjc-photos-v2__person img {
    width: 180px;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.rjc-photos-v2__person h1 {
    margin: 0;
    font-size: clamp(2.1rem, 3.6vw, 3.3rem);
}

.rjc-photos-v2__filters {
    display: flex;
    align-items: end;
    gap: .7rem;
    margin: 1.5rem 0;
}

.rjc-photos-v2__filters label {
    display: grid;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
}

.rjc-photos-v2__filters input {
    min-height: 42px;
    padding: .5rem;
}

.rjc-photos-v2__filters button {
    min-height: 42px;
    color: #fff;
    background: var(--rjc-blue);
}

.rjc-photos-v2__count {
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
}

.rjc-photos-v2__album-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 220px));
    justify-content: start;
    gap: 1rem;
}

.rjc-photos-v2__album-grid article {
    min-width: 0;
    background: var(--rjc-blue-deep);
}

.rjc-photos-v2__album-grid a {
    display: block;
    color: #fff;
    text-decoration: none;
}

.rjc-photos-v2__album-grid img {
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.rjc-photos-v2__album-grid div {
    padding: .8rem;
}

.rjc-photos-v2__album-grid h3 {
    margin: 0;
    font-size: 1rem;
}

.rjc-photos-v2__album-grid p {
    margin: .35rem 0 0;
    color: #cbd4e8;
    font-size: .7rem;
}

.rjc-album-v2 > header {
    padding: 2.5rem 0;
}

.rjc-album-v2 h1 {
    max-width: 22ch;
    margin: .15rem 0;
    font-size: clamp(2rem, 3.5vw, 3.2rem);
}

.rjc-album-v2__viewer {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 42px;
    align-items: center;
    gap: .5rem;
    padding: 1rem;
    background: var(--rjc-blue-deep);
}

.rjc-album-v2__viewer > button {
    width: 42px;
    height: 60px;
    border: 1px solid #fff;
    color: #fff;
    background: transparent;
    font-size: 2rem;
}

.rjc-album-v2__rail {
    display: flex;
    align-items: center;
    gap: 1rem;
    overflow-x: auto;
    padding: 1rem;
    scroll-snap-type: x mandatory;
}

.rjc-album-v2__photo {
    display: grid;
    flex: 0 0 auto;
    width: auto;
    max-width: min(70vw, 720px);
    height: min(55vh, 520px);
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    scroll-snap-align: center;
}

.rjc-album-v2__photo img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: min(55vh, 520px);
    margin: auto;
    object-fit: contain;
}

.rjc-album-v2__help {
    text-align: center;
}

.rjc-album-v2__lightbox {
    width: min(94vw, 1200px);
    height: min(92vh, 900px);
    padding: 2.3rem 1rem 1rem;
    border: 0;
    background: #050b1d;
}

.rjc-album-v2__lightbox::backdrop {
    background: rgb(0 0 0 / 86%);
}

.rjc-album-v2__lightbox img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rjc-album-v2__lightbox button {
    position: absolute;
    top: .2rem;
    right: .7rem;
    border: 0;
    color: #fff;
    background: transparent;
    font-size: 2rem;
}

@media (max-width: 760px) {
    .rjc-photos-v2__album-grid {
        grid-template-columns: repeat(2, minmax(0, 200px));
    }

    .rjc-photos-v2__person > .rjc-shell {
        grid-template-columns: 120px 1fr;
        gap: 1.25rem;
    }

    .rjc-photos-v2__person img {
        width: 120px;
    }

    .rjc-photos-v2__filters {
        align-items: stretch;
        flex-direction: column;
    }

    .rjc-album-v2__viewer {
        grid-template-columns: 34px minmax(0, 1fr) 34px;
        padding-inline: .35rem;
    }

    .rjc-album-v2__viewer > button {
        width: 34px;
    }

    .rjc-album-v2__photo {
        max-width: 70vw;
        height: 48vh;
    }

    .rjc-album-v2__photo img {
        max-height: 48vh;
    }
}

@media (max-width: 460px) {
    .rjc-photos-v2__author-grid {
        grid-template-columns: minmax(0, 220px);
    }

    .rjc-photos-v2__person > .rjc-shell {
        grid-template-columns: 1fr;
    }

    .rjc-photos-v2__album-grid {
        gap: .65rem;
    }
}
