/* ==================================================
   JOHN MULHOLLAND — SUBPAGES
   Press / Public Record Page
================================================== */


/* ==================================================
   01. PRESS PAGE PALETTE
   Newspaper / classic Hollywood tone.
   Images remain in color.
================================================== */

.pressRecordPage {
    --press-paper: #eeeae2;
    --press-paper-deep: #e2ded5;
    --press-ink: #202020;
    --press-muted: #62605b;
    --press-soft: rgba(32,32,32,0.52);
    --press-line: rgba(32,32,32,0.16);
    --press-line-strong: rgba(32,32,32,0.26);
    --press-accent: #77736a;
    --press-accent-soft: rgba(119,115,106,0.55);
    --press-dark: #151515;

    background: var(--press-paper);
    color: var(--press-ink);
}

.pressRecordPage img {
    filter: none;
}


/* ==================================================
   02. SHARED SUBPAGE WIDTH
================================================== */

.pressSubpageWide {
    width: 100%;
    max-width: 1340px;
    margin: 0 auto;
    padding-left: 34px;
    padding-right: 34px;
}

.pressRecordPage .sectionKicker {
    color: var(--press-muted);
}


/* ==================================================
   03. COMPACT IMAGE HERO
================================================== */

.pressSubpageHero {
    position: relative;
    background: var(--press-paper);
    padding-top: 76px;
}

.pressSubpageHeroImage {
    position: relative;
    min-height: 360px;
    display: flex;
    align-items: center;
    background-size: cover;
    background-position: center center;
    overflow: hidden;
    border-bottom: 1px solid var(--press-line);
}


.pressSubpageHeroContent {
    position: relative;
    z-index: 2;
    max-width: 600px;
    padding: 62px 0 58px;
}

.pressSubpageHeroContent .sectionKicker {
    margin: 0 0 20px;
    text-align: left;
    color: rgba(255,255,255,0.66);
}

.pressSubpageHeroContent h1 {
    margin: 0 0 18px;
    font-family: var(--serif);
    font-size: 40px;
    line-height: 1.06;
    font-weight: 400;
    letter-spacing: 0.1px;
    color: rgba(255,255,255,0.96);
}

.pressSubpageHeroContent p {
    margin: 0 !important;
    max-width: 520px !important;
    font-size: 15px !important;
    line-height: 1.7 !important;
    color: rgba(255,255,255,0.72) !important;
}

.pressSubpageHeroContent::after {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    margin-top: 24px;
    background: rgba(255,255,255,0.52);
}


/* ==================================================
   04. EDITORIAL VIDEO FEATURE
================================================== */

.editorialVideoFeature {
    position: relative;
    padding: 34px 0 38px;
    background: var(--press-paper);
    color: var(--press-ink);
}

.editorialVideoHeader {
    max-width: 820px;
    margin: 0 auto 30px;
    text-align: center;
}

.editorialVideoHeader .sectionKicker {
    color: var(--press-muted);
}

.editorialVideoHeader h2 {
    margin: 0 0 14px;
    font-family: var(--serif);
    font-size: 36px;
    line-height: 1.1;
    font-weight: 400;
    letter-spacing: 0.1px;
    color: rgba(32,32,32,0.88);
}

.editorialVideoHeader p {
    max-width: 660px !important;
    margin: 0 auto !important;
    font-size: 14px !important;
    line-height: 1.72 !important;
    color: var(--press-soft) !important;
}

.editorialVideoHeader::after {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    margin: 24px auto 0;
    background: var(--press-accent-soft);
}

.editorialVideoLayout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 26px;
    align-items: start;
}

.editorialVideoMain {
    min-width: 0;
    border: 1px solid var(--press-line-strong);
    background: rgba(238,234,226,0.76);
    box-shadow: 0 16px 42px rgba(0,0,0,0.08);
}

.archiveVideoFrame {
    position: relative;
    overflow: hidden;
    background: #000000;
}

.archiveVideoPlayer {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #000000;
}

.archiveVideoPlayButton {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 20;
    width: 72px;
    height: 72px;
    padding: 0;
    border: 1px solid rgba(255,255,255,0.28);
    border-radius: 50%;
    background: rgba(20,20,20,0.62);
    box-shadow: 0 10px 28px rgba(0,0,0,0.25);
    transform: translate(-50%, -50%);
    cursor: pointer;
    opacity: 1;
    visibility: visible;
    transition:
        opacity 0.22s ease,
        visibility 0.22s ease,
        transform 0.22s ease,
        background 0.22s ease;
}

.archiveVideoPlayButton span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    display: block;
    border-top: 12px solid transparent;
    border-bottom: 12px solid transparent;
    border-left: 19px solid rgba(255,255,255,0.94);
    transform: translate(-38%, -50%);
}

.archiveVideoPlayButton:hover {
    background: rgba(20,20,20,0.74);
}

.archiveVideoPlayButton:active {
    transform: translate(-50%, -50%) scale(0.96);
}

.archiveVideoFrame.is-playing .archiveVideoPlayButton {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.editorialVideoCaption {
    padding: 22px 26px 24px;
    border-top: 1px solid var(--press-line);
}

.videoNowMeta {
    margin: 0 0 8px !important;
    max-width: none !important;
    font-family: var(--sans);
    font-size: 8.5px !important;
    line-height: 1.5 !important;
    font-weight: 600;
    letter-spacing: 2.7px;
    text-transform: uppercase;
    color: var(--press-muted) !important;
}

.editorialVideoCaption h3 {
    margin: 0 0 8px;
    font-family: var(--serif);
    font-size: 26px;
    line-height: 1.18;
    font-weight: 400;
    color: rgba(32,32,32,0.90);
}

.editorialVideoCaption p {
    margin: 0 !important;
    max-width: 720px !important;
    font-size: 13.5px !important;
    line-height: 1.65 !important;
    color: var(--press-soft) !important;
}


/* ==================================================
   05. VIDEO PLAYLIST
================================================== */

.editorialVideoPlaylist {
    display: flex;
    flex-direction: column;
    max-height: 617px;
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--press-line-strong);
    background: rgba(238,234,226,0.76);
    box-shadow: 0 16px 42px rgba(0,0,0,0.06);
}

.playlistHeader {
    position: sticky;
    top: 0;
    z-index: 2;
    padding: 20px 22px 17px;
    border-bottom: 1px solid var(--press-line);
    background: rgba(238,234,226,0.96);
    backdrop-filter: blur(4px);
}

.playlistHeader p {
    margin: 0 0 7px !important;
    max-width: none !important;
    font-family: var(--sans);
    font-size: 9px !important;
    line-height: 1.4 !important;
    font-weight: 600;
    letter-spacing: 2.8px;
    text-transform: uppercase;
    color: var(--press-muted) !important;
}

.playlistHeader span {
    display: block;
    font-family: var(--serif);
    font-size: 23px;
    line-height: 1.18;
    font-weight: 400;
    color: rgba(32,32,32,0.86);
}

.videoPlaylistItem {
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    align-items: center;
    padding: 14px 22px;
    border: 0;
    border-bottom: 1px solid var(--press-line);
    background: transparent;
    text-align: left;
    color: inherit;
    cursor: pointer;
    transition:
        background 0.22s ease,
        padding-left 0.22s ease;
}

.videoPlaylistItem:hover,
.videoPlaylistItem.is-active {
    background: rgba(32,32,32,0.055);
    padding-left: 28px;
}

.videoPlaylistItem span {
    display: block;
    font-family: var(--serif);
    font-size: 24px;
    line-height: 1;
    color: rgba(32,32,32,0.58);
}

.videoPlaylistText {
    min-width: 0;
}

.videoPlaylistItem strong {
    display: block;
    margin: 0 0 4px;
    font-family: var(--sans);
    font-size: 10px;
    line-height: 1.25;
    font-weight: 600;
    letter-spacing: 2.6px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.78);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.videoPlaylistItem em {
    display: block;
    margin: 0;
    font-family: var(--sans);
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.35;
    text-transform: none;
    letter-spacing: 0;
    color: rgba(32,32,32,0.54);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.editorialVideoPlaylist::-webkit-scrollbar {
    width: 8px;
}

.editorialVideoPlaylist::-webkit-scrollbar-track {
    background: rgba(32,32,32,0.05);
}

.editorialVideoPlaylist::-webkit-scrollbar-thumb {
    background: rgba(32,32,32,0.24);
}

.editorialVideoPlaylist::-webkit-scrollbar-thumb:hover {
    background: rgba(32,32,32,0.34);
}


/* ==================================================
   VIDEO FEATURE RESPONSIVE
================================================== */

@media (max-width: 1199px) {
    .editorialVideoLayout {
        grid-template-columns: minmax(0, 1fr) 340px;
        gap: 22px;
    }

    .editorialVideoPlaylist {
        max-height: 520px;
    }
}

@media (max-width: 991px) {
    .editorialVideoLayout {
        grid-template-columns: 1fr;
    }

    .editorialVideoPlaylist {
        max-height: 390px;
    }
}

@media (max-width: 767px) {
    .editorialVideoFeature {
        padding: 34px 0 40px;
    }

    .editorialVideoHeader h2 {
        font-size: 31px;
    }

    .editorialVideoCaption {
        padding: 20px 20px 22px;
    }

    .editorialVideoCaption h3 {
        font-size: 24px;
    }

    .playlistHeader {
        padding: 20px 18px 16px;
    }

    .videoPlaylistItem {
        grid-template-columns: 34px minmax(0, 1fr);
        gap: 12px;
        padding: 14px 18px;
    }

    .videoPlaylistItem:hover,
    .videoPlaylistItem.is-active {
        padding-left: 18px;
    }

    .videoPlaylistItem span {
        font-size: 21px;
    }

    .videoPlaylistItem strong,
    .videoPlaylistItem em {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
}
/* ==================================================
   06. CONTAINED QUOTE BAND
================================================== */

.containedQuoteSection {
    padding: 8px 0 0;
    background: var(--press-paper);
}

.subpageQuoteBand {
    position: relative;
    min-height: 250px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #111111;
    overflow: hidden;
    color: #ffffff;
    border: 1px solid var(--press-line-strong);
}

.subpageQuoteBand .jarallax-img {
    position: absolute;
    object-fit: cover !important;
    width: 100%;
    height: 100%;
    z-index: -100;
}

.subpageQuoteOverlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(
            rgba(10,10,10,0.42),
            rgba(10,10,10,0.56)
        );
    z-index: 1;
}

.subpageQuoteInner {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 34px 42px;
}

.subpagePullQuote {
    max-width: 980px;
    margin: 0 auto;
    padding: 0;
    border: none;
    text-align: center;
}

.subpagePullQuote p {
    margin: 0 auto !important;
    max-width: 900px !important;
    font-family: var(--serif);
    font-size: 25px !important;
    line-height: 1.10 !important;
    font-style: italic;
    font-weight: 400;
    color: rgba(255,255,255,0.92) !important;
}

.subpagePullQuote footer {
    margin-top: 13px;
    font-family: var(--sans);
    font-size: 13px;
    line-height: 1.5;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.52);
}

.subpagePullQuote footer::before {
    content: "— ";
}
.subpageQuoteBand .jarallax-img {
    object-position: 50% 10% !important;
}

/* ==================================================
   PRESS CONTACT VISUAL — IMAGES THAT MOVE STRUCTURE
   Desktop mosaic + mobile full-modal-image gallery.
================================================== */

.pressImagesMoveSection {
    padding: 8px 0 48px;
    background: var(--press-paper);
}

.pressImagesMoveGrid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
    gap: 26px;
    align-items: start;
    position: relative;
    overflow: visible;
    max-width: 1240px;
    margin: 0 auto;
}

.pressImagesMoveLeftColumn,
.pressImagesMoveRightColumn {
    position: relative;
    min-width: 0;
    overflow: visible;
}

.pressImagesMoveRightColumn {
    border-left: 1px solid rgba(0,0,0,0.16);
    padding-left: 18px;
    z-index: 20;
}

.pressImagesMoveEditorialField {
    position: relative;
    width: 100%;
    aspect-ratio: 760 / 660;
    min-height: 560px;
    overflow: visible;
}

.pressImagesMoveVisualField {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    z-index: 2;
}


/* Quote tile */

.pressImagesMoveArticle {
    position: absolute;
    top: 0;
    left: 0;
    width: 43.4%;
    height: 45.5%;
    z-index: 10;
}

.pressImagesMoveQuoteBox {
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 22px 24px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(146,105,56,0.34);
    background: rgba(248,242,234,0.92);
    overflow: hidden;
}

.pressImagesMoveQuoteBox::before {
    box-sizing: border-box;
}

.pressImagesMoveQuoteOrnament,
.pressImagesMoveOrnament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.pressImagesMoveQuoteOrnament {
    margin: 0 0 10px;
}

.pressImagesMoveQuoteOrnament span,
.pressImagesMoveOrnament span {
    display: block;
    width: 34px;
    height: 1px;
    background: rgba(146,105,56,0.58);
}

.pressImagesMoveQuoteOrnament i,
.pressImagesMoveOrnament i {
    display: block;
    font-style: normal;
    font-size: 16px;
    line-height: 1;
    color: rgba(146,105,56,0.86);
}

.pressImagesMoveQuote {
    max-width: 100%;
    margin: 0 !important;
    font-family: Garamond, "Adobe Garamond Pro", "EB Garamond", Georgia, serif;
    font-size: clamp(15px, 1.65vw, 24px) !important;
    line-height: 1.10 !important;
    font-weight: 400;
    font-style: italic;
    color: rgba(0,0,0,0.82) !important;
    text-align: center;
}

.pressImagesMoveAttribution {
    display: block;
    margin-top: 10px;
    font-family: "Raleway", sans-serif;
    font-size: 8px;
    line-height: 1.4;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: rgba(0,0,0,0.52);
    text-align: center;
}


/* Desktop mosaic tiles */

.pressImagesMovePhoto {
    position: absolute;
    display: block;
    margin: 0;
    overflow: hidden;
    background: #ddd3c5;
    border: 0;
    box-shadow: none;
    z-index: 3;
}

.pressImagesMovePhoto a,
.pressImagesMovePhoto img {
    display: block;
    width: 100%;
    height: 100%;
}

.pressImagesMovePhoto img {
    object-fit: cover;
    transition: filter 0.35s ease, opacity 0.35s ease;
}

.pressImagesMovePhoto,
.pressImagesMovePhoto:hover,
.pressImagesMovePhoto img,
.pressImagesMovePhoto:hover img {
    transform: none !important;
}

.pressImagesMovePhoto:hover img {
    filter: saturate(0.90) brightness(0.95);
    opacity: 0.98;
}

/* Exact placement pattern */
.pressImagesMovePhotoTop {
    top: 0;
    left: 45.4%;
    width: 54.6%;
    height: 45.5%;
}

.pressImagesMovePhotoPortrait {
    top: 47.7%;
    left: 0;
    width: 23.7%;
    height: 50.8%;
}

.pressImagesMovePhotoSmall {
    top: 47.7%;
    left: 25.7%;
    width: 28.3%;
    height: 22.0%;
}

.pressImagesMovePhotoMedium {
    top: 47.7%;
    left: 55.9%;
    width: 44.1%;
    height: 22.0%;
}

.pressImagesMovePhotoLowSmall {
    top: 72.0%;
    left: 25.7%;
    width: 19.1%;
    height: 26.5%;
}

.pressImagesMovePhotoWide {
    top: 72.0%;
    left: 46.7%;
    width: 53.3%;
    height: 26.5%;
}

.pressImagesMovePhotoTop img,
.pressImagesMovePhotoPortrait img {
    object-position: center top;
}

.pressImagesMovePhotoSmall img,
.pressImagesMovePhotoMedium img,
.pressImagesMovePhotoLowSmall img,
.pressImagesMovePhotoWide img {
    object-position: center center;
}


/* Mobile full modal image gallery — hidden on desktop */

.pressMobileModalGallery {
    display: none;
}


/* Contact form panel */

.pressImagesMoveFormPanel {
    position: relative;
    min-height: 650px;
    padding: 0;
    border: 1px solid rgba(146,105,56,0.34);
    background: #f8f2ea;
    z-index: 30;
}

.pressImagesMoveFormPanel::before {
    content: "";
    position: absolute;
    top: 8px;
    right: 8px;
    bottom: 8px;
    left: 8px;
    border: 1px solid rgba(146,105,56,0.17);
    pointer-events: none;
}

.pressImagesMoveContactIntro {
    position: relative;
    z-index: 2;
    padding: 26px 28px 8px;
}

.pressImagesMoveOrnament {
    gap: 14px;
    margin: 0 0 14px;
}

.pressImagesMoveOrnament span {
    width: 50px;
}

.pressImagesMoveContactIntro h3 {
    margin: 0 0 8px;
    font-family: Garamond, "Adobe Garamond Pro", "EB Garamond", Georgia, serif;
    font-size: 30px;
    line-height: 0.96;
    font-weight: 400;
    color: rgba(0,0,0,0.88);
}

.pressImagesMoveContactIntro p {
    margin: 0 !important;
    max-width: none !important;
    font-family: Garamond, "Adobe Garamond Pro", "EB Garamond", Georgia, serif;
    font-size: 15px !important;
    line-height: 1.45 !important;
    font-weight: 400;
    color: rgba(0,0,0,0.65) !important;
}

.pressImagesMoveThirdPartyForm {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.pressImagesMoveThirdPartyForm iframe,
.pressImagesMoveThirdPartyForm form,
.pressImagesMoveThirdPartyForm > div,
.pressImagesMoveThirdPartyForm .leform-inline {
    width: 100% !important;
    max-width: 100% !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.pressImagesMoveBottomRule {
    clear: both;
    height: 1px;
    margin: 24px 15px 0;
    background: rgba(0,0,0,0.14);
}


/* Lightbox interaction */

.mosaicLightbox,
.archiveThumbItem {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    color: inherit;
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.mosaicLightbox::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background:
        linear-gradient(
            to top,
            rgba(0,0,0,0.28),
            rgba(0,0,0,0.02) 52%
        );
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none !important;
}

.mosaicLightbox::after,
.archiveThumbItem::after {
    content: "\f00e";
    font-family: FontAwesome;
    position: absolute;
    right: 14px;
    bottom: 12px;
    z-index: 4;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.42);
    border-radius: 50%;
    background: rgba(0,0,0,0.28);
    color: rgba(255,255,255,0.78);
    font-size: 12px;
    opacity: 0;
    transform: translateY(6px);
    transition:
        opacity 0.25s ease,
        transform 0.25s ease,
        background 0.25s ease;
    pointer-events: none !important;
}

.mosaicLightbox:hover::before {
    opacity: 1;
}

.mosaicLightbox:hover::after,
.archiveThumbItem:hover::after {
    opacity: 1;
    transform: translateY(0);
    background: rgba(0,0,0,0.52);
}

.mosaicLightbox img,
.archiveThumbItem img {
    transition:
        transform 0.45s ease,
        filter 0.45s ease;
}

.mosaicLightbox:hover img,
.archiveThumbItem:hover img {
    transform: scale(1.045);
    filter: saturate(0.98) contrast(1.04) brightness(0.92);
}


/* Medium width tightening — desktop mosaic remains intact */

@media (min-width: 768px) and (max-width: 1100px) {

    .pressImagesMoveQuoteBox {
        padding: 16px 16px 14px;
    }

    .pressImagesMoveQuote {
        font-size: clamp(13px, 1.65vw, 19px) !important;
        line-height: 1.08 !important;
    }

    .pressImagesMoveQuoteOrnament {
        margin-bottom: 7px;
        gap: 8px;
    }

    .pressImagesMoveQuoteOrnament span {
        width: 24px;
    }

    .pressImagesMoveAttribution {
        margin-top: 8px;
        font-size: 7.5px;
        letter-spacing: 2px;
    }
}


/* Mobile: quote + full modal images; desktop mosaic hidden */

@media (max-width: 900px) {

    .pressImagesMoveGrid {
        display: block !important;
    }

    .pressImagesMoveLeftColumn,
    .pressImagesMoveRightColumn {
        width: 100% !important;
        overflow: visible !important;
    }

    .pressImagesMoveEditorialField {
        position: relative !important;
        display: block !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: auto !important;
        overflow: visible !important;
    }

    .pressImagesMoveArticle {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
        height: auto !important;
        margin: 0 0 22px !important;
        z-index: 20 !important;
    }

    .pressImagesMoveQuoteBox {
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        padding: 28px 24px 26px !important;
        background: #f8f2ea !important;
        overflow: hidden !important;
    }

    .pressImagesMoveQuote {
        font-size: 24px !important;
        line-height: 1.16 !important;
        text-align: center !important;
    }

    .pressImagesMoveAttribution {
        text-align: center !important;
    }

    .pressImagesMoveVisualField {
        display: none !important;
    }

    .pressMobileModalGallery {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 14px;
        width: 100%;
        margin: 0;
    }

    .pressMobileModalGallery a {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9;
        overflow: hidden;
        background: #151515;
        border: 1px solid rgba(32,32,32,0.16);
    }

    .pressMobileModalGallery img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .pressImagesMoveRightColumn {
        border-left: 0 !important;
        padding-left: 0 !important;
        margin-top: 28px !important;
    }

    .pressImagesMoveFormPanel {
        min-height: 0;
    }
}


@media (max-width: 480px) {

    .pressImagesMoveQuoteBox {
        padding: 22px 20px 21px !important;
    }

    .pressImagesMoveQuote {
        font-size: 21px !important;
        line-height: 1.14 !important;
    }

    .pressImagesMoveQuoteOrnament span {
        width: 28px;
    }
}

/* ==================================================
   08. LIGHTBOX INTERACTION
================================================== */

.mosaicLightbox,
.archiveThumbItem {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    color: inherit;
}

.mosaicLightbox::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    background:
        linear-gradient(
            to top,
            rgba(0,0,0,0.28),
            rgba(0,0,0,0.02) 52%
        );
    opacity: 0;
    transition: opacity 0.3s ease;
}

.mosaicLightbox::after,
.archiveThumbItem::after {
    content: "\f00e";
    font-family: FontAwesome;
    position: absolute;
    right: 14px;
    bottom: 12px;
    z-index: 4;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,0.42);
    border-radius: 50%;
    background: rgba(0,0,0,0.28);
    color: rgba(255,255,255,0.78);
    font-size: 12px;
    opacity: 0;
    transform: translateY(6px);
    transition:
        opacity 0.25s ease,
        transform 0.25s ease,
        background 0.25s ease;
}

.mosaicLightbox:hover::before {
    opacity: 1;
}

.mosaicLightbox:hover::after,
.archiveThumbItem:hover::after {
    opacity: 1;
    transform: translateY(0);
    background: rgba(0,0,0,0.52);
}

.mosaicLightbox img,
.archiveThumbItem img {
    transition:
        transform 0.45s ease,
        filter 0.45s ease;
}

.mosaicLightbox:hover img,
.archiveThumbItem:hover img {
    transform: scale(1.045);
    filter: saturate(0.98) contrast(1.04) brightness(0.92);
}
/* Allow mobile taps to pass cleanly through visual overlays */

.mosaicLightbox::before,
.mosaicLightbox::after,
.archiveThumbItem::after {
    pointer-events: none;
}
/* Mobile tap safety for mosaic/lightbox links */

.mosaicLightbox,
.archiveThumbItem {
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.mosaicLightbox::before,
.mosaicLightbox::after,
.archiveThumbItem::before,
.archiveThumbItem::after {
    pointer-events: none !important;
}

/* ==================================================
   09. MAGNIFIC POPUP POLISH
================================================== */

.pressMfpGallery.mfp-bg {
    background: #0f0f0f;
    opacity: 0.94;
}

.pressMfpGallery .mfp-figure::after {
    box-shadow: 0 24px 80px rgba(0,0,0,0.62);
}

.pressMfpGallery .mfp-title {
    padding-top: 10px;
    font-family: var(--sans);
    font-size: 10px;
    line-height: 1.6;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: rgba(255,255,255,0.66);
}

.pressMfpGallery .mfp-counter {
    font-family: var(--sans);
    font-size: 10px;
    letter-spacing: 1.8px;
    color: rgba(255,255,255,0.46);
}

.pressMfpGallery .mfp-close {
    color: rgba(255,255,255,0.72);
    opacity: 1;
}

.pressMfpGallery .mfp-arrow {
    opacity: 0.72;
}




/* ==================================================
   MAGNIFIC POPUP — CONSTRAINED IMAGE SIZE
================================================== */

.pressMfpGallery .mfp-content,
.pressMfpGallery .mfp-figure {
    max-width: 960px;
}

.pressMfpGallery .mfp-img {
    max-width: 960px !important;
    max-height: 72vh !important;
    width: auto !important;
    height: auto !important;
    padding: 34px 0 42px !important;
    object-fit: contain;
}

.pressMfpGallery .mfp-bottom-bar {
    margin-top: -34px;
}


/* ==================================================
   10. ARCHIVE HEADER
================================================== */

.pressCompactArchiveSection {
    padding: 52px 0 1px;
    background: var(--press-paper);
}

.pressArchiveHeader {
    max-width: 860px;
    margin: 0 auto 44px;
    text-align: center;
}

.pressArchiveHeader .sectionKicker {
    margin-bottom: 20px;
    color: var(--press-muted);
}

.pressArchiveHeader h2 {
    margin: 16 0 16px;
    font-family: var(--serif);
    font-size: 28px;
    line-height: 1.12;
    font-weight: 400;
    letter-spacing: 0.1px;
    color: rgba(32,32,32,0.88);
}

.pressArchiveHeader p {
    max-width: 720px !important;
    margin: 0 auto !important;
    font-size: 14.5px !important;
    line-height: 1.76 !important;
    color: var(--press-soft) !important;
}

.pressArchiveHeader::after {
    content: "";
    display: block;
    width: 64px;
    height: 1px;
    margin: 26px auto 0;
    background: var(--press-accent-soft);
}


/* ==================================================
   11. COMPACT ARCHIVE LISTS
================================================== */

.pressCompactArchiveGrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 64px;
    align-items: start;
}

.compactArchiveHeading {
    margin: 0 0 16px !important;
    max-width: none !important;
    font-family: var(--sans);
    font-size: 10px !important;
    line-height: 1.4 !important;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.58) !important;
}

.compactArchiveList {
    border-top: 1px solid var(--press-line);
}

.compactArchiveItem {
    position: relative;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) 18px;
    gap: 22px;
    align-items: start;
    padding: 12px 0;
    border-bottom: 1px solid var(--press-line);
    color: inherit;
    transition:
        padding-left 0.22s ease,
        color 0.22s ease;
}

.compactArchiveItem:hover {
    padding-left: 7px;
    color: var(--press-ink);
}

.compactArchiveItem span {
    display: block;
    font-family: var(--sans);
    font-size: 9px;
    line-height: 1.45;
    font-weight: 600;
    letter-spacing: 2.2px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.74);
}

.compactArchiveItem em {
    display: block;
    font-style: normal;
    font-size: 12.5px;
    line-height: 1.45;
    color: rgba(32,32,32,0.62);
}

.compactArchiveItem b {
    display: block;
    font-family: var(--serif);
    font-size: 18px;
    line-height: 1;
    font-weight: 400;
    color: rgba(32,32,32,0.50);
    text-align: right;
}

.compactArchiveMore {
    display: inline-block;
    margin-top: 22px;
    font-family: var(--sans);
    font-size: 9.5px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 2.6px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.64);
}

.compactArchiveMore::after {
    content: " →";
}

.compactArchiveMore:hover {
    color: var(--press-ink);
}


/* ==================================================
   12. ARCHIVE SIDE FEATURE WITH INLINE THUMBS
================================================== */

.archiveSideStack {
    margin-top: 34px;
}

.archiveSideFeature {
    padding: 30px 32px 32px;
    border: 1px solid var(--press-line-strong);
    background:
        linear-gradient(
            180deg,
            rgba(32,32,32,0.045),
            rgba(32,32,32,0.018)
        );
}

.archiveSideKicker {
    margin: 0 0 14px !important;
    max-width: none !important;
    font-family: var(--sans);
    font-size: 9px !important;
    line-height: 1.4 !important;
    font-weight: 600;
    letter-spacing: 2.8px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.50) !important;
}

.archiveSideFeature h3 {
    margin: 0 0 18px;
    font-family: var(--serif);
    font-size: 28px;
    line-height: 1.16;
    font-weight: 400;
    color: rgba(32,32,32,0.86);
}

.archiveInlineThumbs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 7px;
    margin: 2px 0 0;
}

.archiveInlineThumbs .archiveThumbItem {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    background: #171717;
    border: 1px solid var(--press-line-strong);
}

.archiveThumbItem::after {
    right: 8px;
    bottom: 8px;
    width: 23px;
    height: 23px;
    font-size: 9px;
}

.archiveThumbItem img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.96) contrast(1.02) brightness(0.96);
}

.archiveSideFeature p {
    margin: 22px 0 0 !important;
    max-width: none !important;
    font-size: 13.5px !important;
    line-height: 1.72 !important;
    color: rgba(32,32,32,0.56) !important;
}

.archiveSideLink {
    display: inline-block;
    margin-top: 22px;
    font-family: var(--sans);
    font-size: 9.5px;
    line-height: 1.4;
    font-weight: 600;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.64);
}

.archiveSideLink::after {
    content: " →";
}

.archiveSideLink:hover {
    color: var(--press-ink);
}


/* ==================================================
   13. SCROLL FADE / INWARD PULL
================================================== */

.pressRevealItem {
    opacity: 1;
    transform: translate3d(0,0,0);
}

.pressMotionReady .pressRevealItem {
    opacity: 0;
    transition:
        opacity 0.9s ease,
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.pressMotionReady .pullFromLeft {
    transform: translate3d(-34px, 20px, 0);
}

.pressMotionReady .pullFromRight {
    transform: translate3d(34px, 20px, 0);
}

.pressMotionReady .pullFromCenter {
    transform: translate3d(0, 24px, 0) scale(0.985);
}

.pressMotionReady .pressRevealItem.pressInView {
    opacity: 1;
    transform: translate3d(0,0,0) scale(1);
}

.pressRevealItem:nth-child(2) {
    transition-delay: 0.08s;
}

.pressRevealItem:nth-child(3) {
    transition-delay: 0.14s;
}

.pressRevealItem:nth-child(4) {
    transition-delay: 0.2s;
}
/* Quote panel — boxed to balance contact form */

.pressImagesMoveArticle {
    position: absolute;
    top: 0;
    left: 0;
    width: 43.4%;
    z-index: 10;
}

.pressImagesMoveQuoteBox {
    position: relative;
    padding: 27px 30px 30px;
    border: 1px solid rgba(146,105,56,0.34);
    background: rgba(248,242,234,0.88);
}

.pressImagesMoveQuoteBox::before {
    content: "";
    position: absolute;
    top: 8px;
    right: 8px;
    bottom: 8px;
    left: 8px;
    border: 1px solid rgba(146,105,56,0.17);
    pointer-events: none;
}

.pressImagesMoveQuoteOrnament {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 8px 0 13px;
    color: rgba(146,105,56,0.78);
}

.pressImagesMoveQuoteOrnament span {
    display: block;
    width: 48px;
    height: 1px;
    background: rgba(146,105,56,0.58);
}

.pressImagesMoveQuoteOrnament i {
    display: block;
    font-style: normal;
    font-size: 15px;
    line-height: 1;
}

.pressImagesMoveQuote {
    position: relative;
    z-index: 2;
    max-width: 100%;
    margin: 0 !important;
    font-family: Garamond, "Adobe Garamond Pro", "EB Garamond", Georgia, serif;
    font-size: clamp(19px, 1.85vw, 21px) !important;
    line-height: 1.17 !important;
    font-weight: 400;
    font-style: italic;
    letter-spacing: -0.012em;
    color: rgba(32,32,32,0.82) !important;
    text-align: center;
}

.pressImagesMoveAttribution {
    position: relative;
    z-index: 2;
    display: block;
    margin-top: 20px;
    padding-left: 1px;
    font-family: "Raleway", Arial, sans-serif;
    font-size: 9.5px;
    line-height: 1.4;
    font-weight: 500;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: rgba(32,32,32,0.48);
    text-align: center;
}

.pressImagesMoveAttribution::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 1px;
    height: 1px;
    background: rgba(32,32,32,0.34);
}


/* Isolated fade for archive heading only */
.archiveHeaderFade {
    opacity: 0;
    transform: translateY(26px) scale(0.985);
    transition:
        opacity 0.9s ease,
        transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: opacity, transform;
}

.archiveHeaderFade.archiveHeaderInView {
    opacity: 1;
    transform: translateY(0) scale(1);
}

@media (prefers-reduced-motion: reduce) {
    .pressRevealItem,
    .pressMotionReady .pressRevealItem,
    .pressMotionReady .pressRevealItem.pressInView,
    .archiveHeaderFade,
    .archiveHeaderFade.archiveHeaderInView {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}


/* ==================================================
   14. RESPONSIVE
================================================== */

@media (max-width: 1199px) {
    .pressSubpageWide {
        max-width: 1160px;
    }

    .editorialVideoLayout {
        grid-template-columns: minmax(0, 1fr) 340px;
        gap: 22px;
    }

    .compactArchiveItem {
        grid-template-columns: 160px minmax(0, 1fr) 18px;
        gap: 18px;
    }
}

@media (max-width: 991px) {
    .pressSubpageWide {
        max-width: 760px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .pressSubpageHeroImage {
        min-height: 340px;
    }

    .pressSubpageHeroContent {
        max-width: 560px;
    }

    .editorialVideoLayout,
    .pressCompactArchiveGrid {
        grid-template-columns: 1fr;
    }

    .editorialVideoPlaylist {
        max-height: 390px;
    }

    .pressImagesMoveGrid {
        grid-template-columns: 1fr;
    }

    .pressImagesMoveRightColumn {
        border-left: 0;
        padding-left: 0;
    }

    .pressImagesMoveEditorialField {
        min-height: 540px;
    }

    .pressImagesMoveFormPanel {
        min-height: 0;
    }

    .compactArchiveItem {
        grid-template-columns: 1fr 18px;
        gap: 12px;
        padding: 14px 0;
    }

    .compactArchiveItem span {
        grid-column: 1 / -1;
        margin-bottom: -4px;
    }

    .compactArchiveItem em {
        grid-column: 1;
    }

    .compactArchiveItem b {
        grid-column: 2;
        grid-row: 2;
    }

    .archiveSideStack {
        margin-top: 28px;
    }

    .archiveSideFeature {
        padding: 26px 24px 28px;
    }

    .archiveSideFeature h3 {
        font-size: 25px;
    }

    .archiveInlineThumbs {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .archiveInlineThumbs .archiveThumbItem {
        aspect-ratio: 16 / 9;
    }
}





.pressEndSeparator {
    width: 100%;
    margin: 26px 0 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
}

.pressEndSeparator span {
    display: block;
    height: 1px;
    flex: 1;
    background: rgba(32,32,32,0.18);
}

.pressEndSeparator i {
    flex: 0 0 auto;
    font-size: 11px;
    color: rgba(146,105,56,0.68);
}
html {
    overflow-y: scroll;
}
body.mfp-no-shift {
    overflow-y: scroll !important;
    padding-right: 0 !important;
}

.mfp-wrap {
    overflow-x: hidden !important;
}

.mfp-bg {
    overflow: hidden !important;
}

/* ==================================================
   MOBILE LIGHTBOX HARDENING — ADDED FIX
================================================== */

.mosaicLightbox,
.archiveThumbItem,
.pressImagesMovePhoto a,
.archiveInlineThumbs a {
    cursor: pointer;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

.mosaicLightbox::before,
.mosaicLightbox::after,
.archiveThumbItem::before,
.archiveThumbItem::after,
.pressImagesMovePhoto::before,
.pressImagesMovePhoto::after {
    pointer-events: none !important;
}

.mfp-wrap,
.mfp-bg {
    z-index: 99999 !important;
}

@media (max-width: 767px) {
    .pressMfpGallery .mfp-content,
    .pressMfpGallery .mfp-figure {
        max-width: 96vw !important;
    }

    .pressMfpGallery .mfp-img {
        max-width: 96vw !important;
        max-height: 78vh !important;
        padding: 28px 0 38px !important;
    }
}

/* ==================================================
   PRESS PAGE NAV — FADED BACKGROUND ON LOAD + SCROLL
   CSS-only. No JS dependency.
================================================== */

body.pressRecordPage .siteHeader .siteNav,
body.pressRecordPage .siteHeader .navbar-default.siteNav {
    background-color: rgba(15,15,15,0.34) !important;
    background-image:
        linear-gradient(
            to bottom,
            rgba(15,15,15,0.52) 0%,
            rgba(15,15,15,0.34) 62%,
            rgba(15,15,15,0.22) 100%
        ) !important;
    background-repeat: repeat-x !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

/* ==================================================
   PRESS HERO / NAV LOAD STATE
   Faded fixed nav, full hero behind it, text below fade.
================================================== */

body.pressRecordPage .siteHeader .siteNav,
body.pressRecordPage .siteHeader .navbar-default.siteNav {
    background-color: rgba(15,15,15,0.34) !important;
    background-image:
        linear-gradient(
            to bottom,
            rgba(15,15,15,0.52) 0%,
            rgba(15,15,15,0.34) 62%,
            rgba(15,15,15,0.22) 100%
        ) !important;
    background-repeat: repeat-x !important;
    border-color: transparent !important;
    box-shadow: none !important;
}

body.pressRecordPage .pressSubpageHero {
    padding-top: 0 !important;
}

body.pressRecordPage .pressSubpageHeroImage {
    background-position: center 18% !important;
}

body.pressRecordPage .pressSubpageHeroContent {
    padding-top: 132px !important;
}jo

/* ==================================================
   PRESS MOTION OVERRIDE — ABOUT RZ SYSTEM ACTIVE
   Press page now uses reveal-motion.css/js with rz-load/rz-reveal.
   These rules prevent legacy pressReveal/archiveHeaderFade rules
   from hiding or transforming content if any old classes remain.
================================================== */

body.pressRecordPage .pressRevealItem,
body.pressRecordPage .pressMotionReady .pressRevealItem,
body.pressRecordPage .pressMotionReady .pressRevealItem.pressInView,
body.pressRecordPage .archiveHeaderFade,
body.pressRecordPage .archiveHeaderFade.archiveHeaderInView {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto !important;
}

/* ==================================================
   MOBILE WIDTH CONTAINMENT — PRESS PAGE
   Fixes mobile horizontal overflow caused by
   width: 100% + left/right padding on .pressSubpageWide.
   ================================================== */

.pressSubpageWide {
    box-sizing: border-box;
}

@media (max-width: 767px) {

    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .pressSubpageWide {
        width: 100%;
        max-width: 100%;
        padding-left: 24px;
        padding-right: 24px;
        box-sizing: border-box;
    }

    .editorialVideoHeader,
    .editorialVideoHeader h2,
    .editorialVideoHeader p,
    .editorialVideoCaption,
    .editorialVideoCaption h3,
    .editorialVideoCaption p {
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .editorialVideoHeader h2 {
        font-size: 29px;
        line-height: 1.14;
        overflow-wrap: normal;
    }

    .editorialVideoLayout,
    .editorialVideoMain,
    .editorialVideoPlaylist,
    .archiveVideoFrame,
    .archiveVideoPlayer {
        max-width: 100%;
        box-sizing: border-box;
    }
}

@media (max-width: 420px) {

    .pressSubpageWide {
        padding-left: 20px;
        padding-right: 20px;
    }

    .editorialVideoHeader h2 {
        font-size: 28px;
    }
}

