/* WedHues Studio client galleries */

.single-wh_gallery .wh-header {
    background: linear-gradient(180deg, rgba(13, 13, 13, .86), rgba(13, 13, 13, .18));
}

.wh-gallery-cover {
    min-height: 92vh;
    display: grid;
    place-items: end start;
    position: relative;
    isolation: isolate;
    padding: clamp(7rem, 14vh, 10rem) max(6vw, 1.25rem) clamp(3rem, 8vh, 5rem);
    background:
        linear-gradient(120deg, rgba(13, 13, 13, .78), rgba(42, 31, 26, .35) 46%, rgba(13, 13, 13, .72)),
        var(--wh-gallery-cover, linear-gradient(135deg, #0d0d0d, #2a1f1a));
    background-size: cover;
    background-position: center;
    color: #fff;
}

.wh-gallery-cover::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 26vh;
    background: linear-gradient(180deg, transparent, var(--wh-ivory, #FAF7F2));
    z-index: -1;
}

.wh-gallery-cover__shade {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 22% 72%, rgba(196, 101, 74, .26), transparent 34%);
    z-index: -1;
    pointer-events: none;
}

.wh-gallery-cover__content {
    width: min(760px, 100%);
}

.wh-gallery-kicker {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    color: var(--wh-gold, #B8924A);
    font-size: .75rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    font-weight: 700;
}

.wh-gallery-kicker::before {
    content: "";
    width: 44px;
    height: 1px;
    background: currentColor;
}

.wh-gallery-cover h1 {
    max-width: 12ch;
    margin: .7rem 0 .5rem;
    color: #fff;
    font-family: var(--wh-font-display, "Cormorant Garamond", serif);
    font-weight: 300;
    font-size: clamp(3.5rem, 10vw, 8rem);
    line-height: .86;
    letter-spacing: 0;
    text-wrap: balance;
}

.wh-gallery-cover__meta {
    max-width: 680px;
    margin: 0 0 1.7rem;
    color: rgba(250, 247, 242, .86);
    font-size: clamp(1rem, 2vw, 1.25rem);
}

.wh-gallery-auth {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    align-items: end;
    width: min(760px, 100%);
    padding: .85rem;
    border: 1px solid rgba(250, 247, 242, .28);
    background: rgba(13, 13, 13, .36);
    backdrop-filter: blur(18px);
}

.wh-gallery-auth label,
.wh-gallery-visitor label {
    display: grid;
    gap: .25rem;
    color: rgba(250, 247, 242, .72);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 700;
}

.wh-gallery-auth input,
.wh-gallery-visitor input,
.wh-gallery-actions select,
.wh-gallery-selection-panel textarea {
    min-height: 44px;
    width: 100%;
    border: 1px solid rgba(139, 125, 107, .38);
    border-radius: 6px;
    background: rgba(250, 247, 242, .92);
    color: var(--wh-charcoal, #1C1C1C);
    padding: .7rem .85rem;
    font: inherit;
}

.wh-gallery-auth__message {
    grid-column: 1 / -1;
    margin: 0;
    min-height: 1.2em;
    color: rgba(250, 247, 242, .82);
}

.wh-gallery-auth--message {
    display: block;
    color: #fff;
}

.wh-client-gallery {
    background: var(--wh-ivory, #FAF7F2);
    padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(4rem, 8vw, 7rem);
}

.wh-gallery-toolbar {
    display: grid;
    grid-template-columns: minmax(180px, .7fr) minmax(260px, 1fr) minmax(300px, 1.2fr);
    gap: 1rem;
    align-items: end;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid rgba(139, 125, 107, .28);
}

.wh-gallery-toolbar__summary h2 {
    margin: .3rem 0 0;
    font-family: var(--wh-font-display, "Cormorant Garamond", serif);
    font-weight: 300;
    font-size: clamp(2rem, 4vw, 3.6rem);
    line-height: 1;
    color: var(--wh-charcoal, #1C1C1C);
}

.wh-gallery-visitor {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .65rem;
}

.wh-gallery-visitor label {
    color: var(--wh-stone, #8B7D6B);
}

.wh-gallery-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: .55rem;
}

.wh-gallery-actions .wh-btn {
    min-height: 44px;
    padding-inline: 1rem;
}

.wh-gallery-actions select {
    width: auto;
    min-width: 150px;
    background: #fff;
}

.wh-gallery-chips {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    padding: 1rem 0 1.35rem;
    scrollbar-width: thin;
}

.wh-gallery-chip {
    flex: 0 0 auto;
    border: 1px solid rgba(139, 125, 107, .34);
    border-radius: 999px;
    background: #fff;
    color: var(--wh-charcoal, #1C1C1C);
    padding: .6rem .9rem;
    font-size: .85rem;
    line-height: 1;
    cursor: pointer;
}

.wh-gallery-chip.is-active {
    border-color: var(--wh-gold, #B8924A);
    background: var(--wh-charcoal, #1C1C1C);
    color: #fff;
}

.wh-gallery-progress {
    display: grid;
    gap: .4rem;
    margin: 0 0 1rem;
    color: var(--wh-stone, #8B7D6B);
}

.wh-gallery-progress[hidden] {
    display: none;
}

.wh-gallery-progress progress {
    width: 100%;
    height: 7px;
    accent-color: var(--wh-terracotta, #C4654A);
}

.wh-gallery-selection-panel {
    display: grid;
    grid-template-columns: auto auto minmax(180px, 1fr) auto;
    gap: .75rem;
    align-items: center;
    margin-bottom: 1.2rem;
    padding: .85rem;
    border: 1px solid rgba(184, 146, 74, .36);
    background: #fff;
}

.wh-gallery-selection-panel[hidden] {
    display: none;
}

.wh-gallery-selection-panel strong {
    color: var(--wh-charcoal, #1C1C1C);
}

.wh-gallery-selection-panel span,
.wh-gallery-selection-panel p {
    color: var(--wh-stone, #8B7D6B);
}

.wh-gallery-selection-panel p {
    margin: 0;
}

.wh-gallery-grid {
    column-count: 4;
    column-gap: .85rem;
}

.wh-gallery-item {
    break-inside: avoid;
    position: relative;
    margin: 0 0 .85rem;
    overflow: hidden;
    border-radius: 8px;
    background: #e8d5c8;
    cursor: zoom-in;
}

.wh-gallery-item[hidden] {
    display: none;
}

.wh-gallery-item img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform .45s ease, filter .45s ease;
}

.wh-gallery-item:hover img {
    transform: scale(1.035);
    filter: saturate(1.03) contrast(1.03);
}

.wh-gallery-item figcaption {
    position: absolute;
    inset: auto .45rem .45rem .45rem;
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    align-items: center;
    padding: .45rem .55rem;
    border-radius: 6px;
    background: rgba(13, 13, 13, .62);
    color: #fff;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .25s ease, transform .25s ease;
}

.wh-gallery-item:hover figcaption,
.wh-gallery-item:focus-within figcaption,
.wh-client-gallery.is-selecting .wh-gallery-item figcaption {
    opacity: 1;
    transform: translateY(0);
}

.wh-gallery-item figcaption > span:first-child {
    font-size: .75rem;
    color: rgba(250, 247, 242, .86);
}

.wh-gallery-item__tools {
    display: inline-flex;
    gap: .35rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.wh-gallery-icon,
.wh-gallery-select-label {
    border: 0;
    border-radius: 999px;
    background: rgba(250, 247, 242, .92);
    color: var(--wh-charcoal, #1C1C1C);
    padding: .32rem .5rem;
    font-size: .72rem;
    line-height: 1;
    cursor: pointer;
}

.wh-gallery-icon[aria-pressed="true"],
.wh-gallery-item.is-selected .wh-gallery-select-label,
.wh-gallery-item.is-face-match .wh-gallery-icon[data-wh-favorite] {
    background: var(--wh-gold, #B8924A);
    color: #fff;
}

.wh-gallery-item.is-face-match {
    outline: 2px solid var(--wh-gold, #B8924A);
    outline-offset: -2px;
}

.wh-gallery-select-label {
    display: none;
    align-items: center;
    gap: .25rem;
}

.wh-client-gallery.is-selecting .wh-gallery-select-label {
    display: inline-flex;
}

.wh-gallery-empty {
    padding: 3rem 0;
    color: var(--wh-stone, #8B7D6B);
}

.wh-gallery-slideshow {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    grid-template-columns: minmax(48px, 1fr) minmax(0, 78vw) minmax(48px, 1fr);
    grid-template-rows: 1fr auto;
    gap: 1rem;
    align-items: center;
    justify-items: center;
    padding: 1rem;
    background: rgba(13, 13, 13, .94);
    color: #fff;
}

.wh-gallery-slideshow[hidden] {
    display: none;
}

.wh-gallery-slideshow img {
    grid-column: 2;
    max-width: 100%;
    max-height: 82vh;
    object-fit: contain;
    opacity: 1;
    transition: opacity .24s ease;
}

.wh-gallery-slideshow.is-changing img {
    opacity: .18;
}

.wh-gallery-slideshow p {
    grid-column: 2;
    margin: 0;
    color: rgba(250, 247, 242, .74);
    text-align: center;
}

.wh-gallery-slideshow button {
    border: 1px solid rgba(250, 247, 242, .28);
    border-radius: 999px;
    background: rgba(250, 247, 242, .08);
    color: #fff;
    padding: .7rem 1rem;
    cursor: pointer;
}

.wh-gallery-slideshow__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
}

.wh-gallery-slideshow__prev {
    grid-column: 1;
}

.wh-gallery-slideshow__next {
    grid-column: 3;
}

body.wh-gallery-slideshow-open {
    overflow: hidden;
}

.wh-face-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(13, 13, 13, .72);
    color: var(--wh-charcoal, #1C1C1C);
}

.wh-face-modal[hidden] {
    display: none;
}

.wh-face-modal__panel {
    position: relative;
    width: min(760px, 100%);
    max-height: min(86vh, 860px);
    overflow-y: auto;
    padding: clamp(1.2rem, 4vw, 2rem);
    border: 1px solid rgba(184, 146, 74, .34);
    border-radius: 8px;
    background: var(--wh-ivory, #FAF7F2);
    box-shadow: 0 24px 70px rgba(0, 0, 0, .3);
}

.wh-face-modal__close {
    position: absolute;
    top: .8rem;
    right: .8rem;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(139, 125, 107, .35);
    border-radius: 50%;
    background: #fff;
    color: var(--wh-charcoal, #1C1C1C);
    cursor: pointer;
}

.wh-face-modal h3 {
    margin: .35rem 0 .65rem;
    font-family: var(--wh-font-display, "Cormorant Garamond", serif);
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 300;
    line-height: .95;
}

.wh-face-modal__copy,
.wh-face-fallback,
.wh-face-status {
    color: var(--wh-stone, #8B7D6B);
}

.wh-face-consent {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    margin: 1rem 0;
    padding: .85rem;
    border: 1px solid rgba(184, 146, 74, .32);
    background: #fff;
}

.wh-face-identity {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-bottom: 1rem;
}

.wh-face-identity label {
    display: grid;
    gap: .25rem;
    color: var(--wh-stone, #8B7D6B);
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .12em;
    font-weight: 700;
}

.wh-face-identity input {
    min-height: 44px;
    border: 1px solid rgba(139, 125, 107, .38);
    border-radius: 6px;
    background: #fff;
    color: var(--wh-charcoal, #1C1C1C);
    padding: .7rem .85rem;
    font: inherit;
}

.wh-face-camera {
    display: grid;
    place-items: center;
    min-height: 220px;
    margin: 1rem 0;
    border: 1px dashed rgba(139, 125, 107, .38);
    border-radius: 8px;
    background: #fff;
    overflow: hidden;
}

.wh-face-camera video,
.wh-face-camera img {
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    background: #111;
}

.wh-face-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
    align-items: center;
}

.wh-face-upload {
    position: relative;
    overflow: hidden;
}

.wh-face-upload input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.wh-face-status {
    min-height: 1.35em;
    margin: 1rem 0 .3rem;
    font-weight: 600;
}

body.wh-face-modal-open {
    overflow: hidden;
}

.wh-face-admin__progress {
    display: grid;
    gap: .35rem;
    margin: .8rem 0;
}

.wh-face-admin__progress[hidden] {
    display: none;
}

.wh-face-admin__progress progress {
    width: 100%;
    height: 7px;
    accent-color: var(--wh-terracotta, #C4654A);
}

.wh-face-admin__qr {
    display: grid;
    place-items: center;
    margin: .8rem 0;
    padding: .6rem;
    background: #fff;
    border: 1px solid #e4ded6;
}

.wh-face-admin__qr svg {
    max-width: 100%;
    height: auto;
}

@media (max-width: 1100px) {
    .wh-gallery-toolbar {
        grid-template-columns: 1fr;
    }

    .wh-gallery-actions {
        justify-content: flex-start;
    }

    .wh-gallery-grid {
        column-count: 3;
    }
}

@media (max-width: 760px) {
    .wh-gallery-cover {
        min-height: 86vh;
        padding-inline: 1rem;
    }

    .wh-gallery-auth,
    .wh-gallery-visitor,
    .wh-gallery-selection-panel,
    .wh-face-identity {
        grid-template-columns: 1fr;
    }

    .wh-gallery-grid {
        column-count: 2;
        column-gap: .55rem;
    }

    .wh-gallery-item {
        margin-bottom: .55rem;
    }

    .wh-gallery-item figcaption {
        position: static;
        opacity: 1;
        transform: none;
        border-radius: 0;
        background: var(--wh-charcoal, #1C1C1C);
        flex-wrap: wrap;
    }

    .wh-gallery-actions .wh-btn,
    .wh-gallery-actions select {
        flex: 1 1 150px;
    }

    .wh-gallery-slideshow {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1fr auto auto;
    }

    .wh-gallery-slideshow img,
    .wh-gallery-slideshow p {
        grid-column: 1 / -1;
    }

    .wh-gallery-slideshow__prev,
    .wh-gallery-slideshow__next {
        grid-column: auto;
        grid-row: 3;
    }
}

@media (max-width: 460px) {
    .wh-gallery-grid {
        column-count: 1;
    }

    .wh-gallery-cover h1 {
        font-size: clamp(3rem, 18vw, 4.8rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .wh-gallery-item img,
    .wh-gallery-item figcaption,
    .wh-gallery-slideshow img {
        transition: none;
    }
}

/* ═══════════════════════════════════════════════════════════════
   WedHues Gallery Studio v5.4 — natural ratios + black/white mode
   Loaded after main.css so these rules intentionally override the
   legacy square-crop gallery.
   ═══════════════════════════════════════════════════════════════ */
.wh-gallery-cover--compact {
    min-height: clamp(300px, 42vh, 470px);
    padding-top: calc(var(--wh-header-height, 72px) + 2.25rem);
    padding-bottom: 2.5rem;
}
.wh-gallery-cover--compact::after { display: none; }
.wh-gallery-cover--compact h1 { font-size: clamp(2.8rem, 7vw, 6rem); }
.wh-gallery-cover--compact .wh-gallery-cover__content { width: min(900px, 100%); }
.wh-gallery-cover--compact .wh-btn { display: none; }

.wh-client-gallery {
    --wh-gallery-bg: #050505;
    --wh-gallery-surface: #111;
    --wh-gallery-surface-2: #181818;
    --wh-gallery-text: #f8f4ed;
    --wh-gallery-muted: #aaa39a;
    --wh-gallery-line: rgba(255,255,255,.16);
    width: 100%;
    max-width: none;
    background: var(--wh-gallery-bg);
    color: var(--wh-gallery-text);
    padding: clamp(1.6rem, 4vw, 4rem) 0 clamp(5rem, 8vw, 8rem);
}
.wh-client-gallery.is-theme-white {
    --wh-gallery-bg: #fff;
    --wh-gallery-surface: #f6f3ee;
    --wh-gallery-surface-2: #fff;
    --wh-gallery-text: #171513;
    --wh-gallery-muted: #6f675f;
    --wh-gallery-line: rgba(23,21,19,.16);
}
.wh-client-gallery > .wh-container {
    width: min(100% - clamp(1rem, 3vw, 3rem), 1800px);
    max-width: 1800px;
}
.wh-client-gallery .wh-gallery-toolbar {
    color: var(--wh-gallery-text);
    border-color: var(--wh-gallery-line);
}
.wh-client-gallery .wh-gallery-toolbar__summary h2,
.wh-client-gallery .wh-gallery-selection-panel strong { color: var(--wh-gallery-text); }
.wh-client-gallery .wh-gallery-visitor label,
.wh-client-gallery .wh-gallery-progress,
.wh-client-gallery .wh-gallery-selection-panel span,
.wh-client-gallery .wh-gallery-selection-panel p,
.wh-client-gallery .wh-gallery-empty { color: var(--wh-gallery-muted); }
.wh-client-gallery .wh-gallery-auth input,
.wh-client-gallery .wh-gallery-visitor input,
.wh-client-gallery .wh-gallery-actions select,
.wh-client-gallery .wh-gallery-selection-panel textarea,
.wh-client-gallery .wh-gallery-chip,
.wh-client-gallery .wh-gallery-selection-panel {
    border-color: var(--wh-gallery-line);
    background: var(--wh-gallery-surface-2);
    color: var(--wh-gallery-text);
}
.wh-client-gallery .wh-gallery-chip.is-active {
    border-color: var(--wh-gold, #b8924a);
    background: var(--wh-gallery-text);
    color: var(--wh-gallery-bg);
}
.wh-client-gallery .wh-btn--outline {
    border-color: var(--wh-gallery-line);
    color: var(--wh-gallery-text);
    background: transparent;
}
.wh-client-gallery .wh-btn--outline:hover,
.wh-client-gallery .wh-btn--outline:focus-visible {
    border-color: var(--wh-gold, #b8924a);
    background: var(--wh-gallery-text);
    color: var(--wh-gallery-bg);
}
.wh-client-gallery .wh-gallery-grid {
    column-count: 4;
    column-gap: clamp(.45rem, .9vw, .95rem);
}
.wh-client-gallery .wh-gallery-item {
    margin: 0 0 clamp(.45rem, .9vw, .95rem);
    border-radius: 2px;
    background: var(--wh-gallery-surface);
    box-shadow: 0 1px 0 rgba(255,255,255,.04);
}
.wh-client-gallery .wh-gallery-item img {
    display: block;
    width: 100%;
    height: auto !important;
    max-height: none;
    object-fit: contain !important;
    aspect-ratio: auto !important;
}
.wh-client-gallery .wh-gallery-item figcaption { background: rgba(0,0,0,.76); }
.wh-client-gallery.is-theme-white .wh-gallery-item figcaption { background: rgba(15,13,11,.78); }

/* Wedding Story: full-bleed editorial gallery, immediately below hero by default. */
.wh-story-gallery-studio {
    --wh-story-bg: #050505;
    --wh-story-text: #f8f4ed;
    --wh-story-muted: #aaa39a;
    width: 100%;
    max-width: none;
    overflow: hidden;
    background: var(--wh-story-bg);
    color: var(--wh-story-text);
    padding: clamp(2.2rem, 5vw, 5.5rem) clamp(.45rem, 1.2vw, 1.25rem) clamp(3.5rem, 7vw, 7rem);
}
.wh-story-gallery-studio.is-theme-white {
    --wh-story-bg: #fff;
    --wh-story-text: #171513;
    --wh-story-muted: #6f675f;
}
.wh-story-gallery-studio__header {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1.5rem;
    width: min(100% - 1rem, 1800px);
    margin: 0 auto clamp(1.6rem, 3vw, 3rem);
    padding-inline: clamp(.25rem, 1vw, 1rem);
}
.wh-story-gallery-studio__header h2 {
    margin: .35rem 0 0;
    color: var(--wh-story-text);
    font-family: var(--ff-display, "Cormorant Garamond", serif);
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 300;
    line-height: .95;
}
.wh-story-gallery-studio__header p {
    max-width: 360px;
    margin: 0;
    color: var(--wh-story-muted);
    line-height: 1.55;
}
.wh-story-gallery-studio .wh-story-gallery {
    display: block !important;
    width: min(100%, 1900px);
    margin: 0 auto !important;
    column-count: 4;
    column-gap: clamp(.45rem, .9vw, 1rem);
}
.wh-story-gallery-studio .wh-story-gallery__item {
    display: block;
    break-inside: avoid;
    position: relative;
    width: 100%;
    margin: 0 0 clamp(.45rem, .9vw, 1rem);
    overflow: hidden;
    border: 0;
    border-radius: 2px;
    background: #111;
    aspect-ratio: auto !important;
    cursor: zoom-in;
}
.wh-story-gallery-studio .wh-story-gallery__item img {
    display: block;
    width: 100%;
    height: auto !important;
    max-height: none;
    object-fit: contain !important;
    aspect-ratio: auto !important;
    transition: transform .45s ease, filter .45s ease;
}
.wh-story-gallery-studio .wh-story-gallery__item:hover img {
    transform: scale(1.018);
    filter: brightness(1.025) contrast(1.015);
}
.wh-story-narrative { background: var(--wh-ivory, #faf7f2); }
.wh-story-copy .wh-page-content { width: 100%; max-width: 760px; }
.wh-story-cta { background: var(--wh-midnight, #171717); color: #fff; }
.wh-story-cta h2 { color: #fff; }

/* True full-screen viewer for both client and public story galleries. */
.wh-lightbox {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100000 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    padding: max(.5rem, env(safe-area-inset-top)) max(.5rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left)) !important;
    background: #000 !important;
}
.wh-lightbox__stage {
    width: 100% !important;
    max-width: none !important;
    height: calc(100dvh - 116px) !important;
}
.wh-lightbox__img {
    max-width: calc(100vw - 1rem) !important;
    max-height: calc(100dvh - 126px) !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}
.wh-lightbox__caption {
    position: fixed;
    left: 50%;
    bottom: max(58px, calc(env(safe-area-inset-bottom) + 50px));
    transform: translateX(-50%);
    z-index: 2;
    max-width: min(80vw, 800px);
    color: rgba(255,255,255,.82);
    font-size: .9rem;
    pointer-events: none;
}
.wh-lightbox__filmstrip {
    position: fixed;
    left: 50%;
    bottom: max(6px, env(safe-area-inset-bottom));
    transform: translateX(-50%);
    z-index: 3;
    width: min(88vw, 1100px);
    margin: 0;
    padding: 4px 0;
}

@media (max-width: 1180px) {
    .wh-client-gallery .wh-gallery-grid,
    .wh-story-gallery-studio .wh-story-gallery { column-count: 3; }
}
@media (max-width: 760px) {
    .wh-gallery-cover--compact {
        min-height: 32vh;
        padding: calc(var(--wh-header-height, 68px) + 1.6rem) 1rem 1.5rem;
    }
    .wh-gallery-cover--compact h1 { font-size: clamp(2.5rem, 13vw, 4rem); }
    .wh-client-gallery > .wh-container { width: calc(100% - .9rem); }
    .wh-client-gallery .wh-gallery-grid,
    .wh-story-gallery-studio .wh-story-gallery {
        column-count: var(--wh-gallery-mobile-cols, var(--wh-story-mobile-cols, 2)) !important;
        column-gap: .42rem;
    }
    .wh-story-gallery-studio { padding-inline: .42rem; }
    .wh-story-gallery-studio__header {
        display: block;
        width: 100%;
        padding-inline: .45rem;
    }
    .wh-story-gallery-studio__header p { margin-top: .75rem; }
    .wh-client-gallery .wh-gallery-item,
    .wh-story-gallery-studio .wh-story-gallery__item { margin-bottom: .42rem; }
    .wh-client-gallery .wh-gallery-item figcaption {
        position: absolute;
        inset: auto .25rem .25rem;
        opacity: 0;
        transform: translateY(6px);
        border-radius: 4px;
        padding: .35rem;
    }
    .wh-client-gallery.is-selecting .wh-gallery-item figcaption,
    .wh-client-gallery .wh-gallery-item:focus-within figcaption {
        opacity: 1;
        transform: none;
    }
    .wh-lightbox__stage { height: calc(100dvh - 82px) !important; }
    .wh-lightbox__img { max-height: calc(100dvh - 92px) !important; }
    .wh-lightbox__filmstrip { display: none; }
    .wh-lightbox__caption { bottom: max(12px, env(safe-area-inset-bottom)); font-size: .78rem; }
    .wh-lightbox__prev,
    .wh-lightbox__next { bottom: 22px !important; }
}

/* v7.0.2 audited alternate gallery layout. This creates balanced responsive
   rows while preserving each photograph's natural dimensions and avoiding
   forced thumbnail crops. */
.wh-client-gallery.is-layout-justified .wh-gallery-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    align-items: start;
    gap: clamp(.55rem, 1vw, 1rem);
    column-count: initial;
}
.wh-client-gallery.is-layout-justified .wh-gallery-item {
    width: 100%;
    margin: 0;
}
.wh-client-gallery.is-layout-justified .wh-gallery-item img {
    width: 100%;
    height: auto !important;
    object-fit: contain !important;
}
.wh-gallery-search {
    min-width: min(100%, 260px);
}
.wh-gallery-search label,
.wh-gallery-search span {
    display: block;
}
.wh-gallery-search input {
    width: 100%;
    min-height: 44px;
}

/* ═══════════════════════════════════════════════════════════════
   WedHues Studio v7.0.5 — reliable access, centred cover and
   album-selection usability. These final rules intentionally
   override legacy gallery declarations above.
   ═══════════════════════════════════════════════════════════════ */
.single-wh_gallery .wh-gallery-cover {
    --wh-gallery-cover-x: 50%;
    --wh-gallery-cover-y: 50%;
    --wh-gallery-cover-zoom: 1;
    --wh-gallery-cover-overlay: .58;
    min-height: calc(100svh - var(--wh-header-height, 72px));
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: clamp(5.5rem, 10vh, 8rem) max(1rem, 4vw) clamp(2.5rem, 6vh, 5rem);
    text-align: center;
    background: linear-gradient(135deg, #0d0d0d, #2a1f1a);
}
.single-wh_gallery .wh-gallery-cover::after { display: none; }
.single-wh_gallery .wh-gallery-cover__image {
    position: absolute;
    inset: 0;
    z-index: -3;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--wh-gallery-cover-x) var(--wh-gallery-cover-y);
    transform: scale(var(--wh-gallery-cover-zoom));
    transform-origin: var(--wh-gallery-cover-x) var(--wh-gallery-cover-y);
    pointer-events: none;
}
.single-wh_gallery .wh-gallery-cover__shade {
    z-index: -2;
    background:
        radial-gradient(circle at 50% 58%, rgba(100, 54, 41, .2), transparent 42%),
        rgba(10, 8, 7, var(--wh-gallery-cover-overlay));
}
.single-wh_gallery .wh-gallery-cover__content {
    position: relative;
    z-index: 1;
    display: grid;
    justify-items: center;
    width: min(680px, 100%);
    margin: auto;
}
.single-wh_gallery .wh-gallery-cover h1 {
    max-width: 10ch;
    margin: .7rem auto 1.1rem;
    font-size: clamp(3.6rem, 8.8vw, 7.7rem);
    line-height: .82;
}
.single-wh_gallery .wh-gallery-cover__meta { margin-inline: auto; }
.single-wh_gallery .wh-gallery-kicker { justify-content: center; }
.single-wh_gallery .wh-gallery-auth {
    display: grid;
    grid-template-columns: 1fr;
    gap: .9rem;
    align-items: stretch;
    width: min(560px, 100%);
    margin: .35rem auto 0;
    padding: clamp(1rem, 2.5vw, 1.35rem);
    border: 1px solid rgba(250,247,242,.3);
    border-radius: 4px;
    background: rgba(13,13,13,.58);
    box-shadow: 0 18px 54px rgba(0,0,0,.24);
    backdrop-filter: blur(18px);
    text-align: left;
}
.single-wh_gallery .wh-gallery-auth__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
}
.single-wh_gallery .wh-gallery-auth__credential:only-child,
.single-wh_gallery .wh-gallery-auth__credential { grid-column: 1 / -1; }
.single-wh_gallery .wh-gallery-auth label { min-width: 0; }
.single-wh_gallery .wh-gallery-password-field {
    position: relative;
    display: block;
}
.single-wh_gallery .wh-gallery-password-field input { padding-right: 4.4rem; }
.single-wh_gallery .wh-gallery-password-toggle {
    position: absolute;
    top: 50%;
    right: .4rem;
    min-width: 3.4rem;
    min-height: 34px;
    border: 0;
    border-radius: 3px;
    background: #211b18;
    color: #fff;
    transform: translateY(-50%);
    font: inherit;
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
}
.single-wh_gallery .wh-gallery-consent {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .6rem;
    align-items: start;
    color: rgba(250,247,242,.84);
    font-size: .78rem;
    line-height: 1.45;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
}
.single-wh_gallery .wh-gallery-consent input { width: 18px; min-height: 18px; margin-top: .1rem; }
.single-wh_gallery .wh-gallery-auth__submit {
    width: 100%;
    min-height: 48px;
    justify-content: center;
}
.single-wh_gallery .wh-gallery-auth__submit:disabled { opacity: .68; cursor: wait; }
.single-wh_gallery .wh-gallery-auth__message {
    margin: 0;
    min-height: 1.4em;
    text-align: center;
    font-size: .86rem;
}
.single-wh_gallery .wh-gallery-auth__message.is-error { color: #ffd5ce; }
.single-wh_gallery .wh-gallery-auth__message.is-success { color: #d8f6dc; }
.single-wh_gallery .wh-gallery-auth__noscript { margin: 0; color: rgba(255,255,255,.75); font-size: .78rem; text-align:center; }
.single-wh_gallery .wh-gallery-cover--compact {
    min-height: clamp(310px, 42svh, 500px);
    padding-top: calc(var(--wh-header-height, 72px) + 1.5rem);
    padding-bottom: 2rem;
}
.single-wh_gallery .wh-gallery-cover--compact h1 { margin-bottom: .6rem; }
.single-wh_gallery .wh-gallery-cover--compact .wh-btn { display: inline-flex; }

.single-wh_gallery .wh-gallery-photo-open {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: inherit;
    background: transparent;
    color: inherit;
    cursor: zoom-in;
    overflow: hidden;
}
.single-wh_gallery .wh-gallery-photo-open:focus-visible {
    outline: 3px solid var(--wh-gold, #b8924a);
    outline-offset: -3px;
}
.single-wh_gallery .wh-gallery-photo-open img { pointer-events: none; }

.single-wh_gallery .wh-gallery-selection-panel {
    grid-template-columns: minmax(190px, .75fr) minmax(260px, 1.3fr);
    gap: 1rem 1.25rem;
    align-items: start;
    padding: clamp(1rem, 2vw, 1.4rem);
    border-radius: 4px;
    background: var(--wh-gallery-surface-2, #fff);
}
.single-wh_gallery .wh-gallery-selection-panel__summary { display:grid; gap:.25rem; }
.single-wh_gallery .wh-gallery-selection-panel__summary small { color: var(--wh-gallery-muted, #777); }
.single-wh_gallery .wh-gallery-selection-notes-label { display:grid; gap:.35rem; color:var(--wh-gallery-text); font-weight:600; }
.single-wh_gallery .wh-gallery-selection-panel .wh-gallery-consent,
.single-wh_gallery .wh-gallery-selection-panel__actions { grid-column: 1 / -1; }
.single-wh_gallery .wh-gallery-selection-panel .wh-gallery-consent { color: var(--wh-gallery-muted, #777); }
.single-wh_gallery .wh-gallery-selection-panel__actions { display:flex; flex-wrap:wrap; gap:.75rem; align-items:center; }
.single-wh_gallery .wh-gallery-selection-panel__actions [role="status"] { min-height:1.3em; color:var(--wh-gallery-muted); }
.single-wh_gallery .wh-gallery-selection-panel__actions [role="status"].is-error { color:#c43d2f; }
.single-wh_gallery .wh-gallery-selection-panel__actions [role="status"].is-success { color:#2f7d43; }
.single-wh_gallery .wh-gallery-item.is-selected { outline: 3px solid var(--wh-gold, #b8924a); outline-offset: -3px; }
.single-wh_gallery .wh-gallery-item.is-favorite::after {
    content: "♥";
    position: absolute;
    top: .55rem;
    right: .55rem;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(20,16,14,.78);
    color: #fff;
    font-size: 1rem;
    pointer-events: none;
}
.single-wh_gallery .wh-gallery-actions .wh-btn,
.single-wh_gallery .wh-gallery-chip,
.single-wh_gallery .wh-gallery-bg-toggle button,
.single-wh_gallery .wh-gallery-password-toggle {
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .18s ease;
}
.single-wh_gallery button:focus-visible,
.single-wh_gallery a:focus-visible,
.single-wh_gallery input:focus-visible,
.single-wh_gallery textarea:focus-visible,
.single-wh_gallery select:focus-visible {
    outline: 3px solid var(--wh-gold, #b8924a);
    outline-offset: 2px;
}

@media (max-width: 760px) {
    .single-wh_gallery .wh-gallery-cover {
        min-height: calc(100svh - var(--wh-header-height, 68px));
        padding: calc(var(--wh-header-height, 68px) + 1.5rem) .9rem max(1.5rem, env(safe-area-inset-bottom));
    }
    .single-wh_gallery .wh-gallery-cover h1 { font-size: clamp(3.2rem, 16vw, 5.2rem); }
    .single-wh_gallery .wh-gallery-auth__fields { grid-template-columns: 1fr; }
    .single-wh_gallery .wh-gallery-auth__credential { grid-column: auto; }
    .single-wh_gallery .wh-gallery-selection-panel { grid-template-columns: 1fr; }
    .single-wh_gallery .wh-gallery-selection-panel .wh-gallery-consent,
    .single-wh_gallery .wh-gallery-selection-panel__actions { grid-column: auto; }
    .single-wh_gallery .wh-gallery-selection-panel__actions .wh-btn { width:100%; justify-content:center; }
    .single-wh_gallery .wh-gallery-item figcaption { font-size:.78rem; }
}

@media (max-width: 430px) {
    .single-wh_gallery .wh-gallery-cover h1 { font-size: clamp(2.9rem, 15vw, 4.35rem); }
    .single-wh_gallery .wh-gallery-auth { padding:.9rem; }
}

/* v7.0.5 full-screen pan and zoom controls. */
.single-wh_gallery .wh-lightbox__stage,
.single-portfolio .wh-lightbox__stage {
    position: relative;
    overflow: hidden;
    touch-action: none;
    cursor: default;
}
.single-wh_gallery .wh-lightbox__img,
.single-portfolio .wh-lightbox__img {
    transform-origin: center center;
    will-change: transform;
    transition: transform .16s ease-out;
    cursor: zoom-in;
    -webkit-user-drag: none;
    user-select: none;
}
.single-wh_gallery .wh-lightbox.is-zoomed .wh-lightbox__img,
.single-portfolio .wh-lightbox.is-zoomed .wh-lightbox__img { cursor: grab; }
.single-wh_gallery .wh-lightbox.is-dragging .wh-lightbox__img,
.single-portfolio .wh-lightbox.is-dragging .wh-lightbox__img {
    cursor: grabbing;
    transition: none;
}
.wh-lightbox__zoom-controls {
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(82px, calc(env(safe-area-inset-right) + 70px));
    z-index: 4;
    display: inline-flex;
    align-items: stretch;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 999px;
    background: rgba(15,15,15,.72);
    box-shadow: 0 8px 28px rgba(0,0,0,.28);
    backdrop-filter: blur(12px);
}
.wh-lightbox__zoom-controls button {
    min-width: 44px;
    min-height: 44px;
    padding: 0 .75rem;
    border: 0;
    border-right: 1px solid rgba(255,255,255,.18);
    background: transparent;
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.wh-lightbox__zoom-controls button:last-child { border-right: 0; }
.wh-lightbox__zoom-controls button:hover,
.wh-lightbox__zoom-controls button:focus-visible { background: rgba(255,255,255,.16); }
.wh-lightbox__zoom-controls button:disabled { opacity: .4; cursor: default; }
.wh-lightbox__zoom-reset { min-width: 66px !important; font-size: .78rem !important; }
.wh-lightbox__gesture-hint {
    position: absolute;
    left: 50%;
    top: 14px;
    z-index: 2;
    transform: translateX(-50%);
    padding: .42rem .7rem;
    border-radius: 999px;
    background: rgba(0,0,0,.56);
    color: rgba(255,255,255,.8);
    font-size: .72rem;
    line-height: 1.2;
    pointer-events: none;
    opacity: .82;
    transition: opacity .2s ease;
}
.wh-lightbox.is-zoomed .wh-lightbox__gesture-hint { opacity: 0; }

.single-wh_gallery .wh-gallery-bg-toggle {
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(25,20,17,.18);
    border-radius: 4px;
    box-shadow: 0 12px 34px rgba(0,0,0,.18);
}
.single-wh_gallery .wh-gallery-floating-action {
    min-height: 44px;
    border-right: 1px solid rgba(25,20,17,.12) !important;
    background: #fff !important;
    color: #211b18 !important;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
}
.single-wh_gallery .wh-gallery-floating-action:last-child { border-right: 0 !important; }
.single-wh_gallery .wh-gallery-floating-action:hover,
.single-wh_gallery .wh-gallery-floating-action:focus-visible,
.single-wh_gallery .wh-gallery-floating-action[aria-pressed="true"] {
    background: #211b18 !important;
    color: #fff !important;
}

@media (max-width: 760px) {
    .wh-lightbox__zoom-controls {
        top: max(12px, env(safe-area-inset-top));
        right: max(64px, calc(env(safe-area-inset-right) + 58px));
    }
    .wh-lightbox__zoom-controls button { min-width: 39px; min-height: 40px; padding-inline: .55rem; }
    .wh-lightbox__zoom-reset { min-width: 58px !important; }
    .wh-lightbox__gesture-hint { top: 58px; width: max-content; max-width: 84vw; }
    .single-wh_gallery .wh-gallery-bg-toggle {
        right: .55rem;
        bottom: max(.55rem, env(safe-area-inset-bottom));
        max-width: calc(100vw - 1.1rem);
    }
    .single-wh_gallery .wh-gallery-floating-action { min-height: 42px; padding-inline: .65rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    .single-wh_gallery .wh-lightbox__img,
    .single-portfolio .wh-lightbox__img { transition: none; }
}
.wh-lightbox__photo-actions {
    position: fixed;
    left: 50%;
    bottom: max(62px, calc(env(safe-area-inset-bottom) + 54px));
    z-index: 4;
    display: flex;
    gap: .5rem;
    transform: translateX(-50%);
}
.wh-lightbox__photo-actions[hidden] { display: none !important; }
.wh-lightbox__photo-actions button {
    min-height: 42px;
    padding: .6rem .9rem;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 3px;
    background: rgba(15,15,15,.78);
    color: #fff;
    font: inherit;
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    backdrop-filter: blur(10px);
}
.wh-lightbox__photo-actions button:hover,
.wh-lightbox__photo-actions button:focus-visible,
.wh-lightbox__photo-actions button[aria-pressed="true"] {
    border-color: var(--wh-gold, #b8924a);
    background: var(--wh-gold, #b8924a);
    color: #18120f;
}
.single-wh_gallery .wh-lightbox__caption { bottom: max(112px, calc(env(safe-area-inset-bottom) + 104px)); }
@media (max-width: 760px) {
    .wh-lightbox__photo-actions {
        bottom: max(12px, env(safe-area-inset-bottom));
        width: calc(100% - 1rem);
        justify-content: center;
    }
    .wh-lightbox__photo-actions button { flex: 1 1 0; max-width: 190px; }
    .single-wh_gallery .wh-lightbox__caption { bottom: max(64px, calc(env(safe-area-inset-bottom) + 56px)); }
}
@media (max-width: 760px) {
    .single-wh_gallery .wh-lightbox__prev,
    .single-wh_gallery .wh-lightbox__next {
        top: 50% !important;
        bottom: auto !important;
        transform: translateY(-50%) !important;
        width: 42px;
        height: 42px;
    }
    .single-wh_gallery .wh-lightbox__prev { left: 8px; }
    .single-wh_gallery .wh-lightbox__next { right: 8px; }
}
.single-wh_gallery .wh-gallery-toast {
    position: fixed;
    left: 50%;
    bottom: max(1rem, env(safe-area-inset-bottom));
    z-index: 100100;
    max-width: min(90vw, 520px);
    transform: translateX(-50%);
    padding: .75rem 1rem;
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 4px;
    background: #211b18;
    color: #fff;
    box-shadow: 0 12px 36px rgba(0,0,0,.28);
    font-size: .86rem;
}
.single-wh_gallery .wh-gallery-toast.is-error { background: #7a2c25; }
.single-wh_gallery .wh-gallery-toast[hidden] { display: none !important; }

/* v7.0.6 — clear gallery command bar and album-selection workflow */
.wh-client-gallery .wh-container{width:min(1480px,calc(100% - 48px));margin-inline:auto}
.wh-gallery-head{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(360px,1.3fr);gap:clamp(28px,6vw,100px);align-items:end;padding:clamp(64px,8vw,112px) 0 34px;border-bottom:1px solid var(--wh-gallery-border,rgba(255,255,255,.16))}
.wh-gallery-head__summary{max-width:560px}.wh-gallery-head__summary h2{margin:.18em 0 .15em;font-size:clamp(42px,6vw,82px);line-height:.92;font-weight:400}.wh-gallery-head__summary p{max-width:520px;margin:0;opacity:.72;font-size:15px;line-height:1.65}.wh-gallery-search{align-self:center}.wh-gallery-search label{display:grid;gap:8px}.wh-gallery-search label>span,.wh-gallery-commandbar label>span,.wh-gallery-selection-fields label>span,.wh-gallery-selection-notes-label>span{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.76}.wh-gallery-search input{width:100%;min-height:50px;padding:0 16px;border:1px solid var(--wh-gallery-border,rgba(255,255,255,.22));border-radius:2px;background:var(--wh-gallery-field,#fff);color:#15110f;font-size:16px}
.wh-gallery-commandbar{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;border-bottom:1px solid var(--wh-gallery-border,rgba(255,255,255,.16))}.wh-gallery-commandbar__primary,.wh-gallery-commandbar__downloads{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.wh-gallery-commandbar__downloads{justify-content:flex-end}.wh-gallery-commandbar label{display:grid;gap:6px}.wh-gallery-commandbar select,.wh-gallery-commandbar input{min-height:44px;padding:0 12px;border:1px solid var(--wh-gallery-border,rgba(255,255,255,.22));border-radius:2px;background:transparent;color:inherit}.is-theme-black .wh-gallery-commandbar select option{color:#15110f}.wh-gallery-download-pin-wrap input{width:120px}
.wh-gallery-selection-guide{display:flex;justify-content:space-between;align-items:center;gap:28px;margin:34px 0 22px;padding:24px 26px;border:1px solid rgba(184,146,74,.48);background:linear-gradient(110deg,rgba(184,146,74,.14),rgba(184,146,74,.04))}.wh-gallery-selection-guide>div{max-width:850px}.wh-gallery-selection-guide__eyebrow{display:block;margin-bottom:7px;color:#c6a15a;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.wh-gallery-selection-guide strong{display:block;font:400 clamp(23px,2.3vw,34px)/1.08 Georgia,serif}.wh-gallery-selection-guide p{margin:8px 0 0;opacity:.78;line-height:1.6}.wh-gallery-selection-guide.is-locked{border-color:rgba(255,255,255,.2);background:rgba(255,255,255,.04)}
.wh-gallery-chips{display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0 0 32px}.wh-gallery-chip{min-height:40px;padding:0 16px;border-radius:999px}.wh-gallery-chip.is-active{box-shadow:0 0 0 2px rgba(184,146,74,.32)}
.wh-gallery-selection-panel{margin:0 0 38px;padding:clamp(22px,4vw,42px);border:1px solid rgba(184,146,74,.55);background:var(--wh-gallery-panel,rgba(255,255,255,.055));box-shadow:0 24px 70px rgba(0,0,0,.15)}.wh-gallery-selection-panel__header{display:flex;justify-content:space-between;gap:30px;align-items:start;padding-bottom:22px;border-bottom:1px solid var(--wh-gallery-border,rgba(255,255,255,.16))}.wh-gallery-selection-panel__header h3{margin:3px 0 8px;font:400 clamp(30px,4vw,52px)/1 Georgia,serif}.wh-gallery-selection-panel__header p{max-width:720px;margin:0;opacity:.75;line-height:1.6}.wh-gallery-selection-meter{display:grid;min-width:150px;padding:15px 18px;border:1px solid rgba(184,146,74,.45);text-align:center}.wh-gallery-selection-meter strong{font:400 30px/1 Georgia,serif}.wh-gallery-selection-meter span{margin-top:5px;font-size:12px;opacity:.72}.wh-gallery-selection-deadline,[data-wh-selection-submitted]{display:block;margin:18px 0 0;padding:12px 14px;border-left:3px solid #b8924a;background:rgba(184,146,74,.1)}.wh-gallery-selection-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:24px}.wh-gallery-selection-fields label,.wh-gallery-selection-notes-label{display:grid;gap:8px}.wh-gallery-selection-fields input,.wh-gallery-selection-notes{width:100%;border:1px solid var(--wh-gallery-border,rgba(255,255,255,.22));border-radius:2px;background:var(--wh-gallery-field,#fff);color:#15110f}.wh-gallery-selection-fields input{min-height:48px;padding:0 14px}.wh-gallery-selection-notes{padding:13px 14px;resize:vertical}.wh-gallery-selection-notes-label{margin-top:18px}.wh-gallery-selection-panel .wh-gallery-consent{display:flex;gap:10px;align-items:flex-start;margin:20px 0}.wh-gallery-selection-panel .wh-gallery-consent input{flex:0 0 auto;margin-top:4px}.wh-gallery-selection-panel__actions{display:flex;flex-wrap:wrap;gap:11px;align-items:center}.wh-gallery-selection-panel__actions [role=status]{flex-basis:100%;min-height:1.5em}.wh-gallery-selection-panel__actions [role=status].is-success{color:#6fcf97}.wh-gallery-selection-panel__actions [role=status].is-error{color:#ff8c8c}
.wh-gallery-grid{align-items:start}.wh-gallery-item{position:relative;isolation:isolate}.wh-gallery-photo-open{display:block;width:100%;cursor:zoom-in}.wh-gallery-item img{display:block;width:100%;height:auto}.wh-gallery-select-photo{position:absolute;z-index:4;top:12px;right:12px;display:none;align-items:center;gap:8px;min-height:42px;padding:7px 12px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(12,10,9,.82);color:#fff;font:600 12px/1 inherit;box-shadow:0 8px 24px rgba(0,0,0,.22);backdrop-filter:blur(8px);cursor:pointer}.wh-gallery-select-photo span{display:grid;place-items:center;width:23px;height:23px;border:1px solid currentColor;border-radius:50%;font-size:13px}.wh-gallery-select-photo[aria-pressed=true]{border-color:#c6a15a;background:#b8924a;color:#130f0d}.wh-gallery-select-photo[aria-pressed=true] span{background:#130f0d;color:#fff}.wh-client-gallery.is-selecting .wh-gallery-select-photo,.wh-gallery-item.is-selected .wh-gallery-select-photo{display:flex}.wh-client-gallery.is-selecting .wh-gallery-photo-open{cursor:pointer}.wh-client-gallery.is-selecting .wh-gallery-item{outline:1px solid rgba(184,146,74,.35);outline-offset:4px}.wh-gallery-item.is-selected{outline:3px solid #c6a15a!important;outline-offset:4px}.wh-gallery-item.is-selected:after{content:'Selected for album';position:absolute;z-index:3;left:12px;top:12px;padding:7px 10px;border-radius:999px;background:#f7f1e4;color:#1a1411;font-size:11px;font-weight:700;letter-spacing:.04em}.wh-gallery-item figcaption{display:flex!important;justify-content:space-between;gap:12px;opacity:1!important;visibility:visible!important;position:static!important;padding:11px 2px 20px;background:transparent!important}.wh-gallery-item__tools{display:flex;gap:8px}.wh-gallery-icon{min-height:34px;padding:4px 10px;border:1px solid var(--wh-gallery-border,rgba(255,255,255,.2));border-radius:999px;background:transparent;color:inherit}.wh-gallery-icon[aria-pressed=true]{border-color:#b8924a;color:#c6a15a}
.wh-gallery-selection-dock{position:fixed;z-index:9991;left:50%;bottom:22px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:min(760px,calc(100% - 28px));padding:12px;border:1px solid rgba(198,161,90,.7);border-radius:4px;background:rgba(17,14,12,.96);color:#fff;box-shadow:0 20px 70px rgba(0,0,0,.45);backdrop-filter:blur(14px)}.wh-gallery-selection-dock[hidden]{display:none}.wh-gallery-selection-dock>div{display:grid;margin-right:auto;padding-left:8px}.wh-gallery-selection-dock>div strong{font-size:16px}.wh-gallery-selection-dock>div span{font-size:12px;opacity:.72}.wh-gallery-toast{position:fixed;z-index:10002;left:50%;top:90px;transform:translateX(-50%);width:min(520px,calc(100% - 30px));padding:13px 18px;border:1px solid rgba(198,161,90,.65);background:#f7f1e4;color:#181210;text-align:center;box-shadow:0 14px 45px rgba(0,0,0,.28)}.wh-gallery-toast.is-error{border-color:#b42318;background:#fff0ed;color:#7a271a}
.is-theme-white{--wh-gallery-border:rgba(20,16,14,.17);--wh-gallery-panel:rgba(20,16,14,.035);--wh-gallery-field:#fff}.is-theme-black{--wh-gallery-field:#fff}
@media(max-width:1024px){.wh-gallery-head{grid-template-columns:1fr;gap:26px}.wh-gallery-commandbar{align-items:stretch;flex-direction:column}.wh-gallery-commandbar__downloads{justify-content:flex-start}.wh-gallery-selection-guide{align-items:flex-start}.wh-gallery-selection-panel__header{flex-direction:column}.wh-gallery-selection-meter{min-width:220px;text-align:left}}
@media(max-width:680px){.wh-client-gallery .wh-container{width:min(100% - 28px,1480px)}.wh-gallery-head{padding:50px 0 25px}.wh-gallery-head__summary h2{font-size:48px}.wh-gallery-commandbar__primary,.wh-gallery-commandbar__downloads{display:grid;grid-template-columns:1fr 1fr;width:100%}.wh-gallery-commandbar label,.wh-gallery-commandbar .wh-btn{width:100%}.wh-gallery-commandbar__downloads label:first-child{grid-column:1/-1}.wh-gallery-selection-guide{align-items:stretch;flex-direction:column;padding:20px}.wh-gallery-selection-guide .wh-btn{width:100%}.wh-gallery-selection-fields{grid-template-columns:1fr}.wh-gallery-selection-panel{padding:21px 16px}.wh-gallery-selection-panel__actions{display:grid}.wh-gallery-selection-panel__actions .wh-btn{width:100%}.wh-gallery-selection-dock{bottom:10px;display:grid;grid-template-columns:1fr 1fr}.wh-gallery-selection-dock>div{grid-column:1/-1;margin:0}.wh-gallery-selection-dock .wh-btn{width:100%;padding-inline:8px}.wh-gallery-select-photo{display:flex;top:8px;right:8px;min-height:38px;padding:5px 9px}.wh-gallery-select-photo b{display:none}.wh-gallery-item.is-selected:after{left:8px;top:8px;font-size:9px}.wh-gallery-item figcaption{align-items:flex-start;flex-direction:column}.wh-gallery-item__tools{width:100%}.wh-gallery-icon{flex:1}.wh-gallery-bg-toggle{bottom:116px!important}}

/* v7.0.6 compatibility reset for the legacy compact selection form. */
.wh-client-gallery .wh-gallery-selection-panel{display:block;grid-template-columns:none;color:inherit}
.wh-client-gallery .wh-gallery-selection-panel[hidden]{display:none!important}
.wh-client-gallery .wh-gallery-selection-panel strong,
.wh-client-gallery .wh-gallery-selection-panel p,
.wh-client-gallery .wh-gallery-selection-panel span{color:inherit}
.wh-client-gallery.is-theme-black .wh-gallery-selection-panel{color:#f7f3ec}
.wh-client-gallery.is-theme-white .wh-gallery-selection-panel{color:#211b17}
.wh-client-gallery .wh-gallery-selection-panel input,
.wh-client-gallery .wh-gallery-selection-panel textarea{color:#15110f}
.wh-client-gallery .wh-gallery-selection-panel__actions [role="status"].is-success{color:#2f9e62}
.wh-client-gallery .wh-gallery-selection-panel__actions [role="status"].is-error{color:#d94b4b}

/* ═══════════════════════════════════════════════════════════════
   WedHues Studio v7.0.6 — final gallery workflow, story layout,
   accessible theme switch and simplified Find My Photos.
   ═══════════════════════════════════════════════════════════════ */
.wh-client-gallery.is-user-light,
.wh-client-gallery.is-theme-white {
    --wh-gallery-bg:#fbf8f3;
    --wh-gallery-text:#211b17;
    --wh-gallery-muted:#746a61;
    --wh-gallery-border:rgba(33,27,23,.17);
    --wh-gallery-panel:#fff;
    --wh-gallery-field:#fff;
    background:#fbf8f3!important;
    color:#211b17!important;
}
.wh-client-gallery.is-user-dark,
.wh-client-gallery.is-theme-black {
    --wh-gallery-bg:#0e0e0e;
    --wh-gallery-text:#f6f1e9;
    --wh-gallery-muted:#aaa198;
    --wh-gallery-border:rgba(255,255,255,.17);
    --wh-gallery-panel:rgba(255,255,255,.055);
    --wh-gallery-field:#fff;
    background:#0e0e0e!important;
    color:#f6f1e9!important;
}
.wh-story-gallery-studio.is-user-light {--wh-story-bg:#fff;--wh-story-text:#171513;--wh-story-muted:#6f675f}
.wh-story-gallery-studio.is-user-dark {--wh-story-bg:#050505;--wh-story-text:#f8f4ed;--wh-story-muted:#aaa39a}

.wh-story-gallery-studio__toolbar{display:flex;justify-content:flex-end;align-items:center;gap:10px;width:min(100% - 1rem,1800px);margin:0 auto 1rem;padding-inline:clamp(.25rem,1vw,1rem);color:var(--wh-story-muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.wh-gallery-display-controls{position:fixed;z-index:9990;right:max(14px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid rgba(184,146,74,.42);border-radius:999px;background:rgba(20,17,15,.9);color:#fff;box-shadow:0 14px 45px rgba(0,0,0,.3);backdrop-filter:blur(16px)}
.wh-theme-switch{display:inline-flex;align-items:center;gap:7px;min-height:36px;cursor:pointer;user-select:none}
.wh-theme-switch input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.wh-theme-switch__track{position:relative;width:48px;height:26px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:#171411;transition:.2s ease}
.wh-theme-switch__track i{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#f7f2ea;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:transform .2s ease}
.wh-theme-switch input:checked+.wh-theme-switch__track{border-color:#b8924a;background:#eee6d8}
.wh-theme-switch input:checked+.wh-theme-switch__track i{transform:translateX(22px);background:#1e1916}
.wh-theme-switch input:focus-visible+.wh-theme-switch__track{outline:3px solid #d5ad62;outline-offset:3px}
.wh-theme-switch__icon{display:grid;place-items:center;width:20px;height:20px;color:currentColor}
.wh-theme-switch__icon svg,.wh-gallery-copy-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wh-gallery-copy-link{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 9px;border:0;border-left:1px solid rgba(255,255,255,.22);background:transparent;color:inherit;font:600 12px/1 inherit;cursor:pointer}

.wh-client-gallery .wh-gallery-head{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(320px,1.28fr);gap:clamp(24px,5vw,80px);align-items:end;padding:clamp(52px,7vw,92px) 0 28px}
.wh-client-gallery .wh-gallery-head__summary h2{margin:.3rem 0 .8rem;font:300 clamp(48px,6vw,82px)/.9 var(--ff-display,"Cormorant Garamond",Georgia,serif);color:inherit}
.wh-client-gallery .wh-gallery-head__summary p{max-width:560px;color:var(--wh-gallery-muted);line-height:1.65}
.wh-client-gallery .wh-gallery-commandbar{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-bottom:28px;padding:18px;border:1px solid var(--wh-gallery-border);border-radius:4px;background:var(--wh-gallery-panel);box-shadow:0 18px 45px rgba(0,0,0,.08)}
.wh-client-gallery .wh-gallery-commandbar__primary,.wh-client-gallery .wh-gallery-commandbar__downloads{align-items:center}
.wh-client-gallery .wh-gallery-selection-guide{border-radius:4px}
.wh-client-gallery .wh-gallery-chip{font-size:13px}

/* Same editorial rhythm as Wedding Stories, with the full uncropped file in lightbox. */
.wh-client-gallery.is-layout-story-grid .wh-gallery-grid{display:block!important;column-count:4;column-gap:clamp(.45rem,.9vw,1rem)}
.wh-client-gallery.is-layout-story-grid .wh-gallery-item{display:block;break-inside:avoid;width:100%;margin:0 0 clamp(.45rem,.9vw,1rem);overflow:visible}
.wh-client-gallery.is-layout-story-grid .wh-gallery-photo-open,.wh-client-gallery.is-layout-story-grid .wh-gallery-photo-open img{width:100%}
.wh-client-gallery.is-layout-story-grid .wh-gallery-photo-open img{height:auto!important;object-fit:contain!important}

.wh-client-gallery.is-selecting .wh-gallery-item{cursor:pointer}
.wh-client-gallery.is-selecting .wh-gallery-photo-open:after{content:'Tap to select';position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:2;padding:7px 12px;border-radius:999px;background:rgba(12,10,9,.82);color:#fff;font-size:11px;font-weight:700;white-space:nowrap;pointer-events:none}
.wh-client-gallery .wh-gallery-selection-dock strong,.wh-client-gallery .wh-gallery-selection-dock span{color:#fff}
.wh-client-gallery[data-selection-locked="1"] .wh-gallery-selection-guide strong:after{content:' Final list received by WedHues.'}

/* Find My Photos: no blank black box before the visitor chooses an image. */
.wh-face-modal{padding:clamp(10px,3vw,28px)}
.wh-face-modal__panel{width:min(920px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:clamp(24px,5vw,56px);border-radius:14px;background:#fbf8f3;color:#271d18;box-shadow:0 28px 90px rgba(0,0,0,.38)}
.wh-face-modal__panel h3{max-width:15ch;margin:.6rem 0 1rem;font-size:clamp(40px,6vw,72px);line-height:.92}
.wh-face-modal__copy{max-width:760px;font-size:17px;line-height:1.65}
.wh-face-consent{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;margin:22px 0;padding:16px;border:1px solid #ddcfbc;background:#fff;font-size:15px;line-height:1.55}
.wh-face-consent input{width:20px;height:20px;margin-top:2px}
.wh-face-methods{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}
.wh-face-method{display:grid;grid-template-columns:54px 1fr;grid-template-rows:auto auto;gap:2px 14px;align-items:center;min-height:92px;padding:16px;border:1px solid #cbb996;border-radius:8px;background:#fff;color:#2a211c;text-align:left;cursor:pointer;transition:.2s ease}
.wh-face-method:hover,.wh-face-method:focus-within{border-color:#9b732f;box-shadow:0 0 0 3px rgba(184,146,74,.16)}
.wh-face-method__icon{grid-row:1/3;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:#f1e6d4;color:#70501f}
.wh-face-method__icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.wh-face-method strong{font-size:17px}.wh-face-method small{color:#776b61}.wh-face-upload input{position:absolute;width:1px;height:1px;opacity:0}
.wh-face-dropzone{position:relative;display:grid;place-items:center;min-height:260px;overflow:hidden;border:2px dashed #cbb996;border-radius:10px;background:#f7f0e6;cursor:pointer;transition:.2s ease}
.wh-face-dropzone.is-dragging{border-color:#9b732f;background:#efe0c8;transform:scale(.995)}
.wh-face-dropzone.has-camera,.wh-face-dropzone.has-image{border-style:solid;background:#111;cursor:default}
.wh-face-dropzone__placeholder{display:grid;justify-items:center;gap:7px;padding:28px;color:#6f6258;text-align:center}
.wh-face-dropzone__placeholder svg{width:54px;height:54px;fill:none;stroke:#9b732f;stroke-width:1.5;stroke-linejoin:round}
.wh-face-dropzone__placeholder strong{font-size:20px;color:#342820}.wh-face-dropzone video,.wh-face-dropzone img{display:block;width:100%;max-height:480px;object-fit:contain;background:#111}.wh-face-dropzone video[hidden],.wh-face-dropzone img[hidden],.wh-face-dropzone__placeholder[hidden]{display:none}
.wh-face-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:18px}.wh-face-actions .wh-btn--primary{min-width:250px}.wh-face-status{min-height:1.6em;margin:14px 0 4px;font-weight:650;color:#644719}.wh-face-fallback{margin:0;color:#75695e;font-size:13px;line-height:1.5}
.wh-face-modal__close{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:24px}

@media(max-width:1180px){.wh-client-gallery.is-layout-story-grid .wh-gallery-grid{column-count:3}}
@media(max-width:760px){
 .wh-gallery-display-controls{right:10px;bottom:max(10px,env(safe-area-inset-bottom));padding:7px 8px}.wh-gallery-copy-link span{display:none}
 .wh-story-gallery-studio__toolbar{justify-content:space-between}
 .wh-client-gallery .wh-gallery-head{grid-template-columns:1fr;padding-top:48px}.wh-client-gallery .wh-gallery-commandbar{grid-template-columns:1fr;padding:14px}.wh-client-gallery .wh-gallery-commandbar__primary,.wh-client-gallery .wh-gallery-commandbar__downloads{display:grid;grid-template-columns:1fr 1fr}.wh-client-gallery .wh-gallery-commandbar .wh-btn{min-height:48px}
 .wh-client-gallery.is-layout-story-grid .wh-gallery-grid{column-count:var(--wh-gallery-mobile-cols,2);column-gap:.44rem}.wh-client-gallery.is-layout-story-grid .wh-gallery-item{margin-bottom:.44rem}
 .wh-face-modal__panel{padding:26px 18px}.wh-face-methods{grid-template-columns:1fr}.wh-face-dropzone{min-height:220px}.wh-face-actions{display:grid}.wh-face-actions .wh-btn{width:100%}.wh-face-modal__panel h3{font-size:44px}
}
@media(max-width:390px){.wh-client-gallery .wh-gallery-commandbar__primary,.wh-client-gallery .wh-gallery-commandbar__downloads{grid-template-columns:1fr}.wh-face-modal__panel h3{font-size:38px}}
.wh-face-open{display:inline-flex!important;align-items:center;gap:8px}.wh-face-open svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ═══════════════════════════════════════════════════════════════
   WedHues Studio v7.0.8 — measured editorial masonry.
   The unenhanced fallback remains natural-ratio CSS columns. Once
   gallery.js is ready, every photograph gets an exact grid row span,
   eliminating equal-row stretching and page-sized black gaps.
   ═══════════════════════════════════════════════════════════════ */
.wh-client-gallery > .wh-container {
  width: min(1680px,calc(100% - clamp(2rem,5vw,6rem)));
  max-width: 1680px;
}
.wh-client-gallery .wh-gallery-head {
  grid-template-columns: minmax(260px,.78fr) minmax(360px,1.22fr);
  gap: clamp(2rem,6vw,7rem);
  padding: clamp(3.5rem,6vw,6.5rem) 0 2rem;
}
.wh-client-gallery .wh-gallery-search { width: min(100%,680px); justify-self: end; }
.wh-client-gallery .wh-gallery-commandbar {
  margin-bottom: 1.35rem;
  padding: 1rem 0;
  border-width: 1px 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.wh-client-gallery .wh-gallery-selection-guide {
  margin: 1.5rem 0 1rem;
  padding: clamp(1.1rem,2vw,1.65rem);
  box-shadow: none;
}
.wh-client-gallery .wh-gallery-chips { padding-bottom: clamp(1.25rem,2.5vw,2.25rem); }

.wh-client-gallery.has-enhanced-masonry .wh-gallery-grid {
  display: grid !important;
  grid-template-columns: repeat(4,minmax(0,1fr));
  grid-auto-flow: row dense;
  grid-auto-rows: 4px;
  align-items: start;
  gap: clamp(8px,.8vw,14px);
  column-count: initial !important;
}
.wh-client-gallery.has-enhanced-masonry .wh-gallery-item {
  width: 100%;
  min-width: 0;
  height: auto;
  margin: 0 !important;
  align-self: start;
  break-inside: auto;
  overflow: visible;
  border-radius: 2px;
  background: transparent;
  box-shadow: none;
}
.wh-client-gallery.has-enhanced-masonry .wh-gallery-photo-open {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 2px;
  background: var(--wh-gallery-surface,#111);
}
.wh-client-gallery.has-enhanced-masonry .wh-gallery-photo-open img {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
}

.wh-client-gallery .wh-gallery-item figcaption {
  position: absolute !important;
  inset: auto 8px 8px !important;
  z-index: 3;
  display: flex !important;
  align-items: center;
  padding: 8px !important;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px !important;
  background: rgba(12,10,9,.82) !important;
  color: #fff;
  opacity: 0 !important;
  visibility: visible !important;
  transform: translateY(7px);
  transition: opacity .22s ease,transform .22s ease;
  backdrop-filter: blur(10px);
}
.wh-client-gallery .wh-gallery-item:hover figcaption,
.wh-client-gallery .wh-gallery-item:focus-within figcaption {
  opacity: 1 !important;
  transform: translateY(0);
}
.wh-client-gallery .wh-gallery-item figcaption > span:first-child {
  overflow: hidden;
  max-width: 42%;
  color: rgba(255,255,255,.82);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.wh-client-gallery .wh-gallery-item__tools { margin-left: auto; }
.wh-client-gallery .wh-gallery-icon {
  min-height: 32px;
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.1);
  color: #fff;
}
.wh-client-gallery .wh-gallery-icon[aria-pressed=true] {
  border-color: #d1a95d;
  background: #d1a95d;
  color: #17110e;
}
.wh-client-gallery .wh-gallery-item.is-selected:after { display: none !important; }
.wh-client-gallery .wh-gallery-select-photo { display: none; }
.wh-client-gallery.is-selecting .wh-gallery-select-photo,
.wh-client-gallery .wh-gallery-item.is-selected .wh-gallery-select-photo { display: inline-flex; }
.wh-client-gallery.is-selecting .wh-gallery-photo-open:after { display: none; }

.wh-gallery-display-controls {
  transition: opacity .2s ease,transform .2s ease;
}
.wh-client-gallery .wh-gallery-display-controls {
  position: static;
  width: max-content;
  max-width: 100%;
  margin: -1rem 0 1rem auto;
  transform: none;
}
.wh-gallery-display-controls.is-near-footer {
  opacity: 0;
  transform: translateY(14px);
  pointer-events: none;
}
.wh-gallery-selection-dock { transition: opacity .2s ease,transform .2s ease; }
.wh-gallery-selection-dock.is-near-footer {
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%,14px);
}

@media(max-width:1180px) {
  .wh-client-gallery.has-enhanced-masonry .wh-gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media(max-width:760px) {
  .wh-client-gallery > .wh-container { width: calc(100% - 1rem); }
  .wh-client-gallery .wh-gallery-head {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding: 2.75rem .25rem 1.5rem;
  }
  .wh-client-gallery .wh-gallery-head__summary h2 { font-size: clamp(2.65rem,13vw,4.25rem); }
  .wh-client-gallery .wh-gallery-search { width: 100%; justify-self: stretch; }
  .wh-client-gallery .wh-gallery-commandbar { padding: .85rem .25rem; }
  .wh-client-gallery .wh-gallery-commandbar__primary,
  .wh-client-gallery .wh-gallery-commandbar__downloads { gap: .55rem; }
  .wh-client-gallery .wh-gallery-selection-guide { margin-inline: .25rem; }
  .wh-client-gallery .wh-gallery-chips { margin-inline: .25rem; flex-wrap: nowrap; overflow-x: auto; }
  .wh-client-gallery.has-enhanced-masonry .wh-gallery-grid {
    grid-template-columns: repeat(var(--wh-gallery-mobile-cols,2),minmax(0,1fr));
    gap: 7px;
  }
  .wh-client-gallery .wh-gallery-item figcaption {
    inset: auto 5px 5px !important;
    padding: 5px !important;
  }
  .wh-client-gallery .wh-gallery-item figcaption > span:first-child { display: none; }
  .wh-client-gallery .wh-gallery-item__tools { width: 100%; gap: 4px; }
  .wh-client-gallery .wh-gallery-icon {
    flex: 1 1 0;
    min-width: 0;
    min-height: 30px;
    padding: 3px 5px;
    font-size: 9px;
  }
  .wh-client-gallery .wh-gallery-select-photo {
    top: 7px;
    right: 7px;
    min-width: 38px;
    min-height: 38px;
    padding: 5px;
  }
  .wh-client-gallery .wh-gallery-select-photo b { display: none; }
  .wh-client-gallery .wh-gallery-select-photo span { width: 26px; height: 26px; }
  .wh-client-gallery .wh-gallery-display-controls { margin: 0 .25rem .85rem auto; }
}

@media(hover:none) {
  .wh-client-gallery .wh-gallery-item figcaption { opacity: 1 !important; transform: none; }
}

@media(max-width:390px) {
  .wh-client-gallery .wh-gallery-commandbar__primary,
  .wh-client-gallery .wh-gallery-commandbar__downloads { grid-template-columns: 1fr; }
  .wh-client-gallery .wh-gallery-selection-guide { padding: 1rem; }
}

@media(max-width:480px) {
  .wh-client-gallery .wh-gallery-selection-dock {
    width: calc(100% - 16px);
    grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr);
    gap: 6px;
    padding: 8px;
  }
  .wh-client-gallery .wh-gallery-selection-dock > div {
    display: flex;
    grid-column: 1 / -1;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    padding: 0 3px 5px;
  }
  .wh-client-gallery .wh-gallery-selection-dock > div span { text-align: right; }
  .wh-client-gallery .wh-gallery-selection-dock .wh-btn {
    min-width: 0 !important;
    min-height: 48px;
    padding: 7px 4px;
    font-size: 10.5px;
    line-height: 1.2;
    white-space: normal !important;
  }
}

@media(max-width:360px) {
  .wh-client-gallery.has-enhanced-masonry .wh-gallery-grid { grid-template-columns: 1fr; }
}

@media print {
  .wh-gallery-display-controls,
  .wh-gallery-selection-dock,
  .wh-gallery-toast { display: none !important; }
  .wh-client-gallery.has-enhanced-masonry .wh-gallery-grid { display: block !important; }
  .wh-client-gallery.has-enhanced-masonry .wh-gallery-item {
    grid-row-end: auto !important;
    margin-bottom: 12px !important;
    break-inside: avoid-page;
  }
  .wh-client-gallery .wh-gallery-item figcaption { display: none !important; }
}

/* v7.0.9 — desktop action alignment and guest-safe selection surface. */
@media (min-width: 1025px) {
  .wh-client-gallery .wh-gallery-commandbar {
    grid-template-columns: minmax(0,1fr) auto;
    align-items: end;
  }
  .wh-client-gallery .wh-gallery-commandbar__primary,
  .wh-client-gallery .wh-gallery-commandbar__downloads { align-items: end; }
  .wh-client-gallery .wh-gallery-commandbar__downloads {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: max-content;
    justify-content: end;
  }
  .wh-client-gallery .wh-gallery-commandbar select,
  .wh-client-gallery .wh-gallery-commandbar .wh-btn { min-height: 48px; }
}
.wh-client-gallery[data-selection-authorized="0"] .wh-gallery-select-photo,
.wh-client-gallery[data-selection-authorized="0"] .wh-gallery-selection-dock,
.wh-client-gallery[data-selection-authorized="0"] .wh-lightbox__select { display: none !important; }

/* v7.0.10 — authoritative, accessible gallery theme states.
   These selectors deliberately key off the visitor's active preference so a
   server-rendered default or a later compatibility stylesheet cannot leave
   light surfaces with dark-mode text. Photo overlays, the theme control and
   lightbox remain dark by design because they sit directly over images. */
.wh-client-gallery.is-user-light {
  --wh-gallery-bg: #fbf8f3;
  --wh-gallery-surface: #f1ece4;
  --wh-gallery-surface-2: #fff;
  --wh-gallery-text: #211b17;
  --wh-gallery-muted: #655d56;
  --wh-gallery-line: rgba(33,27,23,.22);
  --wh-gallery-border: rgba(33,27,23,.22);
  --wh-gallery-panel: #fff;
  --wh-gallery-field: #fff;
  background: var(--wh-gallery-bg) !important;
  color: var(--wh-gallery-text) !important;
  color-scheme: light;
}
.wh-client-gallery.is-user-dark {
  --wh-gallery-bg: #0e0e0e;
  --wh-gallery-surface: #151515;
  --wh-gallery-surface-2: #181818;
  --wh-gallery-text: #f6f1e9;
  --wh-gallery-muted: #aaa198;
  --wh-gallery-line: rgba(255,255,255,.17);
  --wh-gallery-border: rgba(255,255,255,.17);
  --wh-gallery-panel: rgba(255,255,255,.055);
  --wh-gallery-field: #fff;
  background: var(--wh-gallery-bg) !important;
  color: var(--wh-gallery-text) !important;
  color-scheme: dark;
}
.wh-client-gallery.is-user-light .wh-gallery-head__summary p,
.wh-client-gallery.is-user-light .wh-gallery-progress,
.wh-client-gallery.is-user-light .wh-gallery-empty {
  color: var(--wh-gallery-muted) !important;
  opacity: 1;
}
.wh-client-gallery.is-user-light .wh-gallery-kicker,
.wh-client-gallery.is-user-light .wh-gallery-selection-guide__eyebrow {
  color: #866124;
}
.wh-client-gallery.is-user-light .wh-gallery-search label > span,
.wh-client-gallery.is-user-light .wh-gallery-commandbar label > span,
.wh-client-gallery.is-user-light .wh-gallery-selection-fields label > span,
.wh-client-gallery.is-user-light .wh-gallery-selection-notes-label > span {
  color: #4f4842;
  opacity: 1;
}
.wh-client-gallery.is-user-light .wh-gallery-commandbar .wh-btn--outline {
  border-color: rgba(33,27,23,.42) !important;
  background: transparent !important;
  color: #211b17 !important;
}
.wh-client-gallery.is-user-light .wh-gallery-commandbar .wh-btn--outline:hover,
.wh-client-gallery.is-user-light .wh-gallery-commandbar .wh-btn--outline:focus-visible {
  border-color: #211b17 !important;
  background: #211b17 !important;
  color: #fff !important;
}
.wh-client-gallery.is-user-light .wh-gallery-commandbar select,
.wh-client-gallery.is-user-light .wh-gallery-commandbar input,
.wh-client-gallery.is-user-light .wh-gallery-search input {
  border-color: rgba(33,27,23,.28);
  background: #fff;
  color: #211b17;
}
.wh-client-gallery.is-user-light .wh-gallery-chip {
  border-color: rgba(33,27,23,.32);
  background: #fff;
  color: #211b17;
}
.wh-client-gallery.is-user-light .wh-gallery-chip:hover,
.wh-client-gallery.is-user-light .wh-gallery-chip:focus-visible {
  border-color: #866124;
  background: #f3ecdf;
  color: #211b17;
}
.wh-client-gallery.is-user-light .wh-gallery-chip.is-active {
  border-color: #866124;
  background: #211b17;
  color: #fff;
}
.wh-client-gallery.is-user-light .wh-gallery-selection-guide.is-locked {
  border-color: rgba(33,27,23,.2);
  background: rgba(33,27,23,.035);
}
.wh-client-gallery.is-user-light .wh-gallery-selection-panel,
.wh-client-gallery.is-user-light .wh-gallery-selection-panel strong,
.wh-client-gallery.is-user-light .wh-gallery-selection-panel p,
.wh-client-gallery.is-user-light .wh-gallery-selection-panel span,
.wh-client-gallery.is-user-light .wh-gallery-selection-panel label {
  color: #211b17;
}
.wh-client-gallery.is-user-light .wh-gallery-selection-panel__header p,
.wh-client-gallery.is-user-light .wh-gallery-selection-meter span,
.wh-client-gallery.is-user-light .wh-gallery-selection-panel .wh-gallery-consent {
  color: #655d56;
  opacity: 1;
}
.wh-client-gallery.is-user-dark .wh-gallery-commandbar .wh-btn--outline {
  border-color: rgba(255,255,255,.28);
  color: #f6f1e9;
}
.wh-client-gallery.is-user-dark .wh-gallery-commandbar select,
.wh-client-gallery.is-user-dark .wh-gallery-commandbar input {
  border-color: rgba(255,255,255,.22);
  color: #f6f1e9;
}
.wh-client-gallery.is-user-dark .wh-gallery-commandbar select option {
  background: #fff;
  color: #15110f;
}
