        .cgp-gallery button { font: inherit; text-transform: none; letter-spacing: normal; }
        .cgp-gallery-wrapper { display: flex; gap: 20px; align-items: flex-start; }
        .cgp-gallery .cgp-large-image-container {
            position: relative; overflow: hidden; display: block; flex: 1 1 0; min-width: 0; max-width: 600px;
            padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; cursor: zoom-in;
        }
        .cgp-large-image { display: block; width: 100%; height: auto; }
        .cgp-hover-zoom { position: absolute; inset: 0; display: block; opacity: 0; pointer-events: none; background-repeat: no-repeat; background-color: #fff; }
        .cgp-hover-zoom.is-active { opacity: 1; }
        .cgp-thumbs-container {
            display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px;
            flex: 0 0 140px; width: 140px; max-width: 140px; align-items: start;
        }
        .cgp-gallery .cgp-thumb-item {
            display: block; width: 100%; padding: 0; border: 0; border-radius: 0;
            background: transparent; box-shadow: none; cursor: pointer;
        }
        .cgp-thumb { display: block; width: 100%; height: auto; transition: opacity .2s; }
        .cgp-thumb-item:hover .cgp-thumb { opacity: .8; }
        .cgp-thumb-item[aria-pressed="true"] { outline: 2px solid #d4af64; outline-offset: 2px; }
        .cgp-gallery button:focus-visible, .cgp-gallery a:focus-visible { outline: 3px solid #d4af64; outline-offset: 3px; }
        @media (max-width: 767px) {
            .cgp-gallery-wrapper { flex-direction: column; gap: 16px; }
            .cgp-gallery .cgp-large-image-container { flex: 0 1 auto; width: 100%; }
            .cgp-thumbs-container { flex: none; width: 100%; max-width: none; grid-template-columns: repeat(auto-fill, minmax(100px, 140px)); }
        }

/* Scope theme overrides to this lightbox. Page zoom stays available outside it. */
.cgp-lightbox { --pswp-bg: #141414; }
.cgp-lightbox .pswp__button { border: 0; border-radius: 0; padding: 0; box-shadow: none; background: transparent; }
.cgp-lightbox .pswp__button::before, .cgp-lightbox .pswp__button::after { display: none; }
.cgp-lightbox .pswp__button:focus-visible { outline: 2px solid #d4af64; outline-offset: -3px; }
.cgp-lightbox .pswp__top-bar { background: linear-gradient(rgba(0,0,0,.7), transparent); top: env(safe-area-inset-top, 0px); }
.cgp-lightbox .pswp__button--arrow { visibility: visible; }
.cgp-lightbox .pswp__button--arrow .pswp__icn { width: 44px; height: 44px; margin-top: -22px; }
.cgp-lightbox .pswp__button--arrow--next .pswp__icn { right: 8px; }
.cgp-lightbox .pswp__counter { font-family: sans-serif; }
@media (max-width: 767px) {
    .cgp-lightbox .pswp__button--arrow { width: 52px; height: 64px; margin-top: -32px; }
}

/* The existing photo link also handles taps on this touch-only indicator. */
.cgp-gallery .cgp-zoom-indicator { display: none; }
@media (hover: none) and (pointer: coarse) {
    .cgp-gallery .cgp-zoom-indicator {
        position: absolute;
        top: 12px;
        right: 12px;
        z-index: 2;
        display: grid;
        place-items: center;
        width: 44px;
        height: 44px;
        border-radius: 50%;
        color: #242424;
        background: rgba(255, 255, 255, .95);
        box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
        pointer-events: none;
    }
    .cgp-zoom-indicator svg { display: block; }
}

/* Video: last gallery item, its opening frame is the thumbnail. */
.cgp-gallery .cgp-large-image-container[hidden], .cgp-gallery .cgp-video-stage[hidden] { display: none; }
.cgp-video-stage { --cgp-video-max-height: 85vh; flex: 1 1 0; min-width: 0; max-width: 600px; }
/* The player has the video's own shape, so no frame shows around the picture. */
.cgp-main-video {
    display: block; width: min(100%, var(--cgp-video-max-height) * var(--cgp-video-w) / var(--cgp-video-h)); height: auto;
    margin: 0 auto; aspect-ratio: var(--cgp-video-w) / var(--cgp-video-h); object-fit: contain;
}
.cgp-gallery .cgp-thumb-item { position: relative; }
.cgp-thumb-video .cgp-thumb { object-fit: cover; background: #111; pointer-events: none; }
.cgp-play-badge {
    position: absolute; top: 50%; left: 50%; display: grid; place-items: center;
    width: 40px; height: 40px; margin: -20px 0 0 -20px; border-radius: 50%;
    color: #fff; background: rgba(0, 0, 0, .55); pointer-events: none;
}
.cgp-play-badge svg { display: block; margin-left: 3px; }
@media (max-width: 767px) {
    .cgp-video-stage { --cgp-video-max-height: 80vh; flex: 0 1 auto; width: 100%; max-width: none; }
}
.cgp-lightbox .cgp-pswp-video {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    box-sizing: border-box; padding: 72px 12px 20px;
}
.cgp-lightbox .cgp-pswp-video video { display: block; max-width: 100%; max-height: 100%; background: #000; }

/* The dress text sits in its own theme section; its top padding pushed it below the gallery's top edge. */
@media (min-width: 600px) {
    .single-us_portfolio .w-post-elm.post_content > .l-section:first-child { padding-top: 0; }
}
