.sw-card-media{position:relative;display:block;width:100%;aspect-ratio:1;min-width:0;overflow:hidden;background:var(--preview-paper,var(--sw-paper,#fff))}
.sw-design-preview>.sw-card-media{position:relative;display:block;width:100%;height:100%;aspect-ratio:auto;min-width:0;overflow:hidden;border-radius:13px;background:var(--preview-paper)}
.sw-card-media>.sw-card-cover,.sw-card-media>.sw-card-alt,.sw-card-media>.sw-card-video{display:block;width:100%;height:100%;object-fit:contain;border-radius:inherit;margin:0}
.sw-card-media>.sw-card-alt,.sw-card-media>.sw-card-video{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .22s;background:var(--preview-paper)}
.sw-card-media.is-media-active>.sw-card-alt{opacity:1}
.sw-card-media.is-video-playing>.sw-card-video{opacity:1}
.sw-card-media>.sw-card-video::-webkit-media-controls{display:none!important}
.sw-card-media>.sw-card-video::-webkit-media-controls-start-playback-button{display:none!important}
.sw-design-preview:has(.sw-card-media.is-media-active) .sw-preview-hover{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.sw-card-media>.sw-card-alt,.sw-card-media>.sw-card-video{transition:none}}

.sw-design-preview{position:relative}
/* One 4:3 canvas for every product photo/video, independent of viewport height. */
:is(.sw-store,.sw-catalog) .sw-design-preview{height:auto;min-height:0;max-height:none;aspect-ratio:4/3;padding:0;display:block}
.sw-card-media{aspect-ratio:4/3}
.sw-design-preview>.sw-card-media{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:inherit}
.sw-card-media>.sw-card-cover,.sw-card-media>.sw-card-alt,.sw-card-media>.sw-card-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.sw-card-media>.sw-invitation-preview{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;border:0;border-radius:inherit}
.sw-card-media .sw-invitation-svg{width:100%;height:100%;max-height:none;object-fit:contain}
.sw-product-gallery .sw-product-main-image{position:relative;aspect-ratio:4/3;height:auto;min-height:0;max-height:none;padding:0;display:block}
.sw-product-main-image>img,.sw-product-main-image>.sw-invitation-preview{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;object-fit:contain}
.sw-product-main-image>.sw-invitation-preview{border:0;border-radius:inherit}
.sw-product-main-image .sw-invitation-svg{display:block;width:100%;height:100%;max-height:none;object-fit:contain}
.sw-product-thumbnails button{width:88px;height:auto;aspect-ratio:4/3;padding:0;position:relative;overflow:hidden}
.sw-product-thumbnails button>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

.sw-product-main-image>[data-sw-product-player],.sw-product-main-image>[data-sw-product-fallback]{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:contain;border-radius:inherit}
.sw-product-main-image>[data-sw-product-fallback]>.sw-invitation-preview{height:100%;border:0;margin:0}
.sw-product-main-image [hidden]{display:none!important}
.sw-product-main-image>[data-sw-product-player]::-webkit-media-controls{display:none!important}
.sw-product-thumbnails{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:10px;padding:3px 2px 10px;scrollbar-width:thin}
.sw-product-thumbnails button{flex:0 0 88px;cursor:pointer}
.sw-product-thumbnails button:focus-visible{outline:3px solid var(--sw-wine,#702c3b);outline-offset:2px}
.sw-product-video-icon{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#28202455;font-size:24px;text-shadow:0 1px 4px #0008}
.sw-product-video-label{position:absolute;bottom:3px;left:0;right:0;font-size:11px;color:white;text-shadow:0 1px 3px black}
.sw-product-video-error{position:absolute;inset:auto 12px 12px;margin:0;padding:10px;border-radius:8px;background:#fff;color:#492833;font-size:14px;text-align:center}

/* Assigned product video lives directly below the main photograph. */
.sw-product-video-preview{position:relative;max-width:520px;aspect-ratio:4/3;margin:16px auto 0;border:1px solid #77222b22;border-radius:28px;overflow:hidden;background:#fff8f0}
.sw-product-video-preview>video{display:block;width:100%;height:100%;object-fit:contain}
.sw-product-video-preview>video::-webkit-media-controls{display:none!important}
.sw-product-video-preview>video::-webkit-media-controls-start-playback-button{display:none!important}
.sw-product-video-play{position:absolute;inset:0;border:0;padding:16px;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#3a172222;color:#fff;cursor:pointer;font:600 14px/1.4 var(--sw-body);text-shadow:0 1px 4px #000}
.sw-product-video-play>span:first-child{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--sw-red,#ce1030);box-shadow:0 4px 0 var(--sw-dark,#77222b);font-size:22px;text-shadow:none}
.sw-product-video-play:focus-visible{outline:3px solid var(--sw-red);outline-offset:-5px}
.sw-product-video-preview.is-playing>.sw-product-video-play{opacity:0;pointer-events:none}
.sw-product-video-preview [hidden]{display:none!important}
@media(max-width:700px){.sw-product-video-preview{margin-top:12px;border-radius:23px}}

/* Phones and tablets play the assigned clip in the main photo frame. */
.sw-product-main-image>.sw-product-video-preview.is-on-main{position:absolute;inset:0;max-width:none;width:100%;height:100%;aspect-ratio:auto;margin:0;border:0;border-radius:inherit;z-index:1}
.sw-product-video-preview.is-on-main>video{opacity:0;pointer-events:none}
.sw-product-video-preview.is-on-main.is-playing>video{opacity:1}
/* Keep the actual photograph visible until the assigned clip has started. */
.sw-product-main-image>.sw-product-video-preview.is-on-main{background:transparent}
.sw-product-video-preview.is-on-main>.sw-product-video-play{inset:auto 12px 12px auto;width:auto;height:44px;min-height:44px;max-width:calc(100% - 24px);padding:8px 12px;display:flex;flex-direction:row;gap:7px;border:1px solid #77222b33;border-radius:50px;background:#fff9f2f5;color:var(--sw-red,#ce1030);font-size:12px;text-shadow:none;box-shadow:0 3px 10px #77222b14}
.sw-product-video-preview.is-on-main .sw-product-video-play>span:first-child{width:24px;height:24px;font-size:10px;box-shadow:none;color:#fff8f0}
.sw-product-video-preview.is-on-main .sw-product-video-error{bottom:64px;font-size:12px}
