.wrsvp-couple-photo-frame-wrap {
    width: 100%;
}

.wrsvp-couple-photo-frame {
    position: relative;
    display: inline-block;
    max-width: 100%;
    margin: 0;
    vertical-align: top;
}

.wrsvp-couple-photo-frame::before {
    content: "";
    display: block;
    width: 100%;
}

.wrsvp-ratio-square::before {
    padding-top: 100%;
}

.wrsvp-ratio-portrait-4-5::before {
    padding-top: 125%;
}

.wrsvp-ratio-portrait-3-4::before {
    padding-top: 133.3333%;
}

.wrsvp-ratio-portrait-2-3::before {
    padding-top: 150%;
}

.wrsvp-couple-photo-frame__media,
.wrsvp-couple-photo-frame__frame {
    position: absolute;
}

.wrsvp-couple-photo-frame__media {
    inset: 0;
    z-index: 1;
    display: block;
    overflow: hidden;
}

.wrsvp-has-photo-mask .wrsvp-couple-photo-frame__media {
    -webkit-mask-image: var(--wrsvp-mask-image);
    mask-image: var(--wrsvp-mask-image);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: var(--wrsvp-mask-size, contain);
    mask-size: var(--wrsvp-mask-size, contain);
    -webkit-mask-position: var(--wrsvp-mask-position, center center);
    mask-position: var(--wrsvp-mask-position, center center);
}

.wrsvp-couple-photo-frame__photo,
.wrsvp-couple-photo-frame__frame {
    width: 100%;
    height: 100%;
    display: block;
}

.wrsvp-couple-photo-frame__photo {
    object-fit: cover;
    transform-origin: center center;
}

.wrsvp-photo-fit-contain .wrsvp-couple-photo-frame__photo {
    object-fit: contain;
}

.wrsvp-couple-photo-frame__frame {
    inset: 0;
    z-index: 2;
    pointer-events: none;
    object-fit: contain;
}

.wrsvp-frame-fit-cover .wrsvp-couple-photo-frame__frame {
    object-fit: cover;
}

.wrsvp-frame-fit-fill .wrsvp-couple-photo-frame__frame {
    object-fit: fill;
}
