
/* ==========================================
   45 SOUTH — DYNAMIC PROJECT PAGE V1
   ========================================== */

.south-project-page {
    position: relative;
    z-index: 1;
    color: #f5f5f5;
}

.south-project-hero {
    position: relative;
    display: flex;
    align-items: flex-end;
    min-height: clamp(450px, 65vh, 760px);
    overflow: hidden;
    background:
        radial-gradient(ellipse at 75% 10%,
            #343b47 0%, transparent 55%),
        linear-gradient(180deg, #24272d, #151515);
}

.south-project-hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .45;
}

.south-project-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(18,18,18,.15),
        rgba(18,18,18,.5) 55%,
        #171717 100%
    );
}

.south-project-hero__content {
    position: relative;
    z-index: 1;
    width: min(1200px, 90%);
    margin: 0 auto;
    padding: 130px 0 85px;
}

.south-project-back {
    display: inline-block;
    margin-bottom: 55px;
    color: #c4c4c4;
    font-size: 10px;
    letter-spacing: .14em;
    text-decoration: none;
}

.south-project-eyebrow {
    margin: 0 0 18px;
    color: #aabbd3;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .17em;
}

.south-project-hero__logo {
    display: block;
    max-width: min(320px, 70%);
    max-height: 145px;
    width: auto;
    height: auto;
    object-fit: contain;
    margin: 0 0 30px;
}

.south-project-hero h1 {
    max-width: 950px;
    margin: 0 0 22px;
    font-size: clamp(44px, 7vw, 96px);
    font-weight: 500;
    line-height: 1.02;
    letter-spacing: -.055em;
}

.south-project-hero__summary {
    max-width: 650px;
    margin: 0;
    color: #ccc;
    font-size: clamp(15px, 1.6vw, 19px);
    line-height: 1.75;
}

/* Films grid */

.south-project-films {
    padding-top: 75px;
    padding-bottom: 110px;
}

.south-project-films__heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 25px;
    margin-bottom: 35px;
}

.south-project-films__heading h2 {
    margin: 0;
    font-size: clamp(28px, 3.5vw, 46px);
    font-weight: 500;
    letter-spacing: -.04em;
}

.south-project-count {
    color: #aaa;
    font-size: 11px;
    letter-spacing: .15em;
    white-space: nowrap;
}

.south-project-films__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
}

.south-project-film {
    display: block;
    color: inherit;
    text-decoration: none;
}

.south-project-film__image {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 5px;
    background: #303030;
}

.south-project-film__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.south-project-film:hover img {
    transform: scale(1.045);
}

.south-project-film__arrow {
    position: absolute;
    right: 20px;
    top: 18px;
    display: grid;
    place-items: center;
    width: 39px;
    height: 39px;
    border: 1px solid rgba(255,255,255,.5);
    border-radius: 50%;
    background: rgba(15,15,15,.4);
    backdrop-filter: blur(8px);
    color: white;
    font-size: 19px;
}

.south-project-film__info {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 19px 0;
}

.south-project-film__info h3 {
    margin: 0;
    font-size: 19px;
    font-weight: 500;
}

.south-project-film__info span {
    color: #b6cbe4;
    font-size: 10px;
    letter-spacing: .1em;
}

@media (max-width: 700px) {
    .south-project-hero {
        min-height: 550px;
    }

    .south-project-hero__content {
        padding: 110px 0 60px;
    }

    .south-project-films {
        padding-top: 45px;
        padding-bottom: 70px;
    }

    .south-project-films__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .south-project-film__image img {
        transition: none;
    }
}

/* 45SOUTH_PROJECT_DESIGN_V1 — overrides project-page.css defaults.
   Image is fully lit: only the lower fade overlays it. */
.south-project-hero {
    display: block;
    position: relative;
    isolation: isolate;
    min-height: 0;
    background: #171717;
}
.south-project-hero__image {
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 0;
    width: 100%;
    height: var(--south-project-image-height, 80svh);
    opacity: 1;
    object-fit: cover;
    object-position: center var(--south-project-image-y, 50%);
}
.south-project-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 1;
    width: 100%;
    height: var(--south-project-image-height, 80svh);
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        transparent var(--south-project-fade-start, 65%),
        #171717 100%
    );
}
.south-project-hero__content {
    position: relative;
    z-index: 2;
    width: min(1200px, 90%);
    min-height: var(--south-project-image-height, 80svh);
    padding-top: var(--south-project-content-start, 52svh);
    padding-bottom: clamp(65px, 9vw, 110px);
    box-sizing: border-box;
}
.south-project-hero__subtitle {
    margin: -3px 0 22px;
    color: #e2e5ea;
    font-size: clamp(14px, 1.7vw, 22px);
    line-height: 1.5;
    letter-spacing: .075em;
    font-weight: 400;
    text-shadow: 0 1px 10px rgba(0,0,0,.35);
}
.south-project-hero h1,
.south-project-hero__summary {
    text-shadow: 0 1px 12px rgba(0,0,0,.25);
}
@media (max-width: 700px) {
    .south-project-hero { min-height: 0; }
    .south-project-hero__content {
        padding-top: var(--south-project-content-start, 52svh);
        padding-bottom: 65px;
    }
}

/* 45SOUTH_PROJECT_TYPOGRAPHY_V3 */
.south-project-hero h1 {
    font-size: clamp(38px, 7vw, var(--south-project-title-max, 96px));
}
.south-project-hero__logo {
    max-width: min(90%, var(--south-project-logo-max, 320px));
}
.south-project-hero[data-copy-align="center"] .south-project-hero__content {
    text-align: center;
}
.south-project-hero[data-copy-align="center"] .south-project-hero__logo,
.south-project-hero[data-copy-align="center"] .south-project-hero__summary {
    margin-left: auto;
    margin-right: auto;
}

/* ==============================================================
   45SOUTH_PROJECT_WHITE_HERO_V4 — project pages only
   ==============================================================
   This overrides V1 and V3 without affecting any film or site header.
*/
.south-project-page {
    background: #ffffff;
    color: #191919;
}
.south-project-page .south-project-hero {
    position: relative;
    isolation: isolate;
    display: block;
    min-height: var(--south-project-image-height, 80svh);
    overflow: hidden;
    background: #ffffff;
}
.south-project-page .south-project-hero__image {
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: var(--south-project-image-height, 80svh);
    opacity: 1;
    object-fit: cover;
    object-position: center var(--south-project-image-y, 50%);
}
.south-project-page .south-project-hero::after {
    content: "";
    position: absolute;
    inset: 0 auto auto 0;
    z-index: 1;
    width: 100%;
    height: var(--south-project-image-height, 80svh);
    pointer-events: none;
    background: linear-gradient(
        to bottom,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,0) var(--south-project-fade-start, 65%),
        rgba(255,255,255,.78) 88%,
        #ffffff 100%
    );
}
.south-project-page .south-project-hero__content {
    position: relative;
    z-index: 2;
    width: min(1100px, 90%);
    min-height: var(--south-project-image-height, 80svh);
    margin-inline: auto;
    padding-top: var(--south-project-content-start, 52svh);
    padding-bottom: clamp(38px, 7vw, 85px);
    box-sizing: border-box;
    text-align: center;
}
.south-project-page .south-project-hero__sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
}
.south-project-page .south-project-hero__quote {
    max-width: 900px;
    padding: 0 12px;
    margin: 0 auto;
    border: 0;
    color: #202020;
    text-align: center;
    font-family: "Bradley Hand", "Segoe Print", "Lucida Handwriting", cursive;
    font-size: clamp(25px, 3.4vw, 49px);
    font-weight: 400;
    line-height: 1.38;
    letter-spacing: -.02em;
    text-shadow: 0 1px 8px rgba(255,255,255,.55);
}
.south-project-page .south-project-hero__quote p {
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    text-shadow: inherit;
}
.south-project-page .south-project-hero__quote::before {
    content: "“";
    display: block;
    margin-bottom: -10px;
    font-family: Georgia, serif;
    font-size: clamp(45px, 6vw, 82px);
    line-height: 1;
    color: #5b6470;
}
.south-project-page .south-project-hero__quote::after {
    content: "”";
    display: block;
    margin-top: -8px;
    font-family: Georgia, serif;
    font-size: clamp(45px, 6vw, 82px);
    line-height: 1;
    color: #5b6470;
}
.south-project-page .south-project-films {
    position: relative;
    background: #ffffff;
    color: #191919;
}
.south-project-page .south-project-films__heading h2,
.south-project-page .south-project-film__info h3 {
    color: #191919;
}
.south-project-page .south-project-eyebrow,
.south-project-page .south-project-count {
    color: #555e69;
}
.south-project-page .south-project-film__info span {
    color: #385d8b;
}
.south-project-page .south-project-film {
    color: #191919;
}
@media (max-width: 700px) {
    .south-project-page .south-project-hero__content {
        padding-bottom: 45px;
    }
    .south-project-page .south-project-hero__quote {
        font-size: clamp(22px, 6vw, 34px);
    }
}

/* ===============================================================
   45SOUTH_PROJECT_CITATION_V5 — understated editorial project quote
   Only project pages. Adjust the navy color below to your brand blue.
   =============================================================== */
.south-project-page .south-project-hero__quote {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 12px;
    color: #007db9;
    font-family: "Iowan Old Style", "Baskerville", "Palatino Linotype", "Book Antiqua", Georgia, serif;
    font-size: clamp(18px, 1.9vw, 28px);
    font-style: normal;
    font-weight: 400;
    line-height: 1.48;
    letter-spacing: 0.005em;
    text-align: center;
    text-shadow: none;
}
.south-project-page .south-project-hero__quote p {
    display: block;
    margin: 0;
    padding: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    text-shadow: none;
}
.south-project-page .south-project-hero__quote::before,
.south-project-page .south-project-hero__quote::after {
    content: none !important;
    display: none !important;
}
.south-project-page .south-project-hero__quote-mark {
    display: inline;
    position: static;
    color: inherit;
    font-family: Georgia, serif;
    font-size: 1.28em;
    line-height: 0;
    vertical-align: -0.05em;
    margin: 0 0.25em;
}
.south-project-page .south-project-hero__quote b,
.south-project-page .south-project-hero__quote strong {
    font-weight: 700;
}
.south-project-page .south-project-hero__quote i,
.south-project-page .south-project-hero__quote em {
    font-style: italic;
}
@media (max-width: 700px) {
    .south-project-page .south-project-hero__quote {
        font-size: clamp(17px, 4.2vw, 23px);
        line-height: 1.46;
    }
}
