
            .cart-summary {
                position: fixed !important;
                top: 0 !important;
                right: 0 !important;
                bottom: 0 !important;
                left: 0 !important;
                width: 100vw !important;
                max-width: 100vw !important;
                height: 100vh !important;
                height: 100dvh !important;
                max-height: 100vh !important;
                max-height: 100dvh !important;
                overflow: hidden !important;
                background: #fff !important;
                border-radius: 0 !important;
                border: none !important;
                box-shadow: none !important;
                z-index: 1000002;
                opacity: 0;
                visibility: hidden;
                transform: translateY(100%);
                transition: all 0.3s cubic-bezier(.4,0,.2,1);
                padding: 0 !important;
                display: flex !important;
                flex-direction: column !important;
            }
            .cart-summary.visible {
                opacity: 1;
                visibility: visible;
                transform: translateY(0);
                height: 100vh !important;
                height: 100dvh !important;
                max-height: 100vh !important;
                max-height: 100dvh !important;
            }
            @media (min-width: 1024px) {
                .cart-summary {
                    left: auto !important;
                    width: 480px !important;
                    max-width: 480px !important;
                    height: 100vh !important;
                    height: 100dvh !important;
                    max-height: 100vh !important;
                    max-height: 100dvh !important;
                    border-radius: 0 !important;
                    border-left: 1px solid #e5e7eb !important;
                    box-shadow: -8px 0 30px rgba(15,23,42,0.12) !important;
                }
                .cart-summary.visible {
                    transform: translateX(0);
                }
            }
            body.cart-open {
                overflow: hidden !important;
                position: fixed;
                inset: 0;
                touch-action: none;
            }
            .cart-drag-handle {
                display: none;
            }
            .cart-drag-bar {
                display: none;
            }
            .cart-summary-shell {
                position: relative;
                flex: 1 1 0% !important;
                min-height: 0;
                overflow-y: auto;
                overflow-x: hidden;
                -webkit-overflow-scrolling: touch;
                overscroll-behavior: contain;
            }
            .cart-summary-header {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;
                padding: 0 16px;
                height: 56px;
                min-height: 56px;
                background: linear-gradient(to bottom, #fff 0%, #fafafa 100%);
                border-bottom: 1px solid #e5e7eb;
                box-shadow: 0 1px 3px rgba(0,0,0,0.04);
                flex-shrink: 0;
                z-index: 2;
            }
            .cart-summary-title {
                margin: 0;
                display: flex;
                align-items: center;
                gap: 6px;
                color: #111827;
                font-size: 18px;
                font-weight: 700;
                letter-spacing: -0.01em;
                white-space: nowrap;
                flex-shrink: 0;
            }
            .cart-summary-title i {
                display: none;
            }
            #cartHeaderCount {
                font-size: 13px;
                font-weight: 600;
                color: #fff;
                background: #111827;
                min-width: 22px;
                height: 22px;
                border-radius: 11px;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                padding: 0 6px;
                line-height: 1;
            }
            .cart-header-actions {
                display: flex;
                align-items: center;
                gap: 8px;
                margin-left: auto;
                flex-shrink: 0;
            }
            .cart-continue-link {
                border: 1px solid #e5e7eb;
                background: #fff;
                color: #374151;
                font-size: 12.5px;
                font-weight: 500;
                cursor: pointer;
                text-decoration: none;
                padding: 5px 12px;
                border-radius: 20px;
                transition: all 0.15s ease;
                white-space: nowrap;
            }
            .cart-continue-link:hover {
                background: #f3f4f6;
                border-color: #d1d5db;
                color: #111827;
            }
            .cart-clear-button {
                border: none;
                background: transparent;
                color: #6b7280;
                font-size: 13px;
                padding: 0;
                margin: 0;
                cursor: pointer;
                text-decoration: underline;
                text-underline-offset: 2px;
            }
            .cart-summary-close {
                font-size: 18px;
                line-height: 1;
                width: 32px;
                height: 32px;
                display: flex;
                align-items: center;
                justify-content: center;
                border-radius: 50%;
                background: #f3f4f6;
                color: #6b7280;
                cursor: pointer;
                transition: all 0.15s ease;
                flex-shrink: 0;
                border: 1px solid transparent;
                position: relative;
                z-index: 3;
                pointer-events: auto;
                user-select: none;
                -webkit-tap-highlight-color: rgba(0,0,0,0.1);
            }
            .cart-summary-close:hover {
                background: #e5e7eb;
                color: #111827;
                border-color: #d1d5db;
            }
            .cart-layout {
                display: flex;
                flex-direction: column;
                gap: 0;
                padding-bottom: 16px;
            }
            .cart-main-column {
                padding: 8px 16px 0;
            }
            .cart-summary-content {
                margin-bottom: 12px;
                max-height: none;
                overflow: visible;
                padding-right: 0;
            }
            .cart-summary-item {
                margin-bottom: 8px;
                border: 1px solid #e5e7eb;
                border-radius: 12px;
                background: #fff;
                padding: 10px;
            }
            .cart-item-row {
                display: flex;
                gap: 10px;
                align-items: flex-start;
            }
            .cart-item-thumbnail {
                width: 72px;
                height: 90px;
                object-fit: cover;
                border-radius: 8px;
                border: 1px solid #e5e7eb;
                flex-shrink: 0;
                -webkit-user-select: none;
                -moz-user-select: none;
                -ms-user-select: none;
                user-select: none;
                -webkit-touch-callout: none;
                -webkit-user-drag: none;
                pointer-events: none;
            }
            .cart-thumb-shield {
                position: relative;
                width: 72px;
                height: 90px;
                flex-shrink: 0;
                border-radius: 8px;
                overflow: hidden;
                background-size: cover;
                background-position: center;
                background-repeat: no-repeat;
                border: 1px solid #e5e7eb;
                -webkit-user-select: none;
                -moz-user-select: none;
                user-select: none;
                -webkit-touch-callout: none;
            }
            .cart-thumb-shield::after {
                content: '';
                position: absolute;
                inset: 0;
                z-index: 2;
                background: transparent;
            }
            .cart-item-info {
                flex: 1;
                min-width: 0;
            }
            .cart-item-main {
                display: flex;
                justify-content: space-between;
                align-items: flex-start;
                gap: 6px;
            }
            .cart-item-title {
                font-size: 14px;
                font-weight: 600;
                color: #111827;
                margin: 0;
                line-height: 1.2;
            }
            .cart-item-meta {
                margin: 2px 0 0;
                color: #6b7280;
                font-size: 11.5px;
                line-height: 1.3;
            }
            .cart-item-price {
                margin: 0;
                color: #111827;
                font-size: 16px;
                font-weight: 700;
                white-space: nowrap;
                line-height: 1.2;
            }
            .cart-item-price-old {
                color: #9ca3af;
                font-weight: 600;
                font-size: 13px;
                text-decoration: line-through;
                margin-right: 4px;
            }
            .cart-item-price-new {
                color: #16a34a;
                font-weight: 800;
            }
            .pill-price-old {
                color: #9ca3af;
                font-weight: 500;
                font-size: 9.5px;
                text-decoration: line-through;
                margin-right: 2px;
            }
            .cart-format-pill.active .pill-price-old {
                color: rgba(255,255,255,0.6);
            }
            .pill-price-new {
                font-weight: 800;
            }
            .cart-item-remove-inline {
                margin-top: 6px;
            }
            /* Full-width sections below the top row */
            .cart-item-extras {
                display: flex;
                flex-direction: column;
                gap: 6px;
                margin-top: 8px;
            }
            /* Format pills: 3 + 2 grid */
            .cart-format-pills {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                gap: 7px;
            }
            .cart-format-pill {
                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                padding: 9px 5px;
                border: 1.5px solid #e5e7eb;
                border-radius: 10px;
                background: #fff;
                cursor: pointer;
                box-shadow: 0 1px 2px rgba(16,24,40,0.06);
                -webkit-tap-highlight-color: transparent;
                transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease, background .12s ease;
            }
            .cart-format-pill:hover {
                border-color: #111827;
                box-shadow: 0 5px 12px rgba(16,24,40,0.14);
                transform: translateY(-1px);
            }
            .cart-format-pill:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(16,24,40,0.10); }
            .cart-format-pill.active {
                border-color: #111827;
                background: #111827;
                color: #fff;
                box-shadow: 0 5px 14px rgba(17,24,39,0.30);
            }
            /* "Selected" check badge — makes the chosen format unmistakable */
            .cart-format-pill.active::after {
                content: '✓';
                position: absolute;
                top: 4px;
                right: 5px;
                width: 14px;
                height: 14px;
                border-radius: 50%;
                background: #16a34a;
                color: #fff;
                font-size: 9px;
                font-weight: 800;
                line-height: 14px;
                text-align: center;
            }
            .cart-format-pill .pill-label {
                font-size: 10.5px;
                font-weight: 600;
                line-height: 1.2;
                white-space: nowrap;
            }
            .cart-format-pill .pill-price {
                font-size: 11px;
                font-weight: 700;
                line-height: 1.2;
                margin-top: 1px;
            }
            .cart-format-pill:not(.active) .pill-label { color: #374151; }
            .cart-format-pill:not(.active) .pill-price { color: #111827; }
            .cart-format-pill.active .pill-label { color: rgba(255,255,255,0.85); }
            .cart-format-pill.active .pill-price { color: #fff; }
            /* Bottom row: video + remove */
            .cart-item-bottom {
                display: flex;
                align-items: center;
                gap: 8px;
            }
            .video-upsell-toggle {
                display: flex;
                align-items: center;
                gap: 6px;
                cursor: pointer;
                transition: all 0.15s;
                padding: 5px 8px;
                border-radius: 8px;
                border: 1.5px solid rgba(139,92,246,0.4);
                background: #faf5ff;
                box-shadow: 0 1px 4px rgba(139,92,246,0.12);
                flex: 1;
                min-width: 0;
            }
            .video-upsell-toggle:hover {
                border-color: rgba(139,92,246,0.65);
                transform: translateY(-1px);
                box-shadow: 0 3px 10px rgba(139,92,246,0.22);
            }
            .video-upsell-toggle.active {
                background: #ede9fe;
                border-color: rgba(139,92,246,0.5);
            }
            .video-upsell-toggle .upsell-check {
                width: 16px;
                height: 16px;
                border-radius: 4px;
                border: 1.5px solid rgba(139,92,246,0.4);
                display: flex;
                align-items: center;
                justify-content: center;
                flex-shrink: 0;
                transition: all 0.15s;
                background: #fff;
            }
            .video-upsell-toggle.active .upsell-check {
                background: #8b5cf6;
                border-color: #8b5cf6;
            }
            .video-upsell-toggle .upsell-check i {
                font-size: 8px;
                color: white;
                opacity: 0;
            }
            .video-upsell-toggle.active .upsell-check i {
                opacity: 1;
            }
            .video-upsell-info {
                flex: 1;
                min-width: 0;
            }
            .video-upsell-info .upsell-title {
                font-size: 11px;
                font-weight: 600;
                color: #5b21b6;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            .video-upsell-info .upsell-desc {
                font-size: 10px;
                color: #7c3aed;
                opacity: 0.7;
                margin-top: 1px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            .video-upsell-price {
                font-size: 12px;
                font-weight: 700;
                color: #7c3aed;
                white-space: nowrap;
                flex-shrink: 0;
            }
            /* Opt-in CTA: "Bring It to Life" is OFF by default, so the pill is styled to
               invite the click. Inactive = filled, gently pulsing "Add motion"; active =
               calm confirmed "Added". */
            .video-upsell-cta-col {
                display: flex;
                flex-direction: column;
                align-items: flex-end;
                gap: 4px;
                flex-shrink: 0;
            }
            .upsell-cta-pill {
                display: inline-flex;
                align-items: center;
                gap: 4px;
                font-size: 11px;
                font-weight: 700;
                line-height: 1;
                padding: 5px 9px;
                border-radius: 999px;
                white-space: nowrap;
                background: linear-gradient(135deg,#8b5cf6,#7c3aed);
                color: #fff;
                box-shadow: 0 2px 6px rgba(124,58,237,0.35);
                animation: upsellCtaPulse 2.2s ease-in-out infinite;
            }
            .upsell-cta-pill i { font-size: 9px; }
            .video-upsell-toggle.active .upsell-cta-pill {
                background: #ecfdf5;
                color: #059669;
                box-shadow: none;
                animation: none;
            }
            @keyframes upsellCtaPulse {
                0%, 100% { box-shadow: 0 2px 6px rgba(124,58,237,0.30); }
                50% { box-shadow: 0 2px 13px rgba(124,58,237,0.55); }
            }
            @media (prefers-reduced-motion: reduce) {
                .upsell-cta-pill { animation: none; }
            }
            /* ── Living-portrait preview (watermarked Grok video shown in cart) ── */
            .upsell-video-preview {
                margin-top: 8px;
            }
            .upsell-preview-loading {
                display: flex;
                align-items: center;
                gap: 8px;
                font-size: 11px;
                font-weight: 600;
                color: #6d28d9;
                background: #faf5ff;
                border: 1px dashed rgba(139,92,246,0.4);
                border-radius: 8px;
                padding: 10px 12px;
            }
            .upsell-preview-spinner {
                width: 14px;
                height: 14px;
                border: 2px solid rgba(139,92,246,0.3);
                border-top-color: #7c3aed;
                border-radius: 50%;
                flex-shrink: 0;
                animation: upsellPreviewSpin 0.8s linear infinite;
            }
            @keyframes upsellPreviewSpin { to { transform: rotate(360deg); } }
            .upsell-preview-video-wrap {
                position: relative;
                width: 150px;
                max-width: 60%;
                border-radius: 10px;
                overflow: hidden;
                background: #1f1147;
                box-shadow: 0 4px 14px rgba(124,58,237,0.28);
            }
            /* Reuse the gallery grid's `.watermarked` (tiled "sample" overlay via
               ::before) so the video watermark matches the artwork thumbnails exactly. */
            .upsell-preview-video-wrap .watermarked { display: block; border-radius: 10px; }
            .upsell-preview-video-wrap video {
                width: 100%;
                height: auto;
                display: block;
            }
            .upsell-preview-caption {
                position: absolute;
                left: 0;
                right: 0;
                bottom: 0;
                font-size: 9px;
                font-weight: 600;
                line-height: 1.3;
                color: #fff;
                background: linear-gradient(transparent, rgba(0,0,0,0.72));
                padding: 14px 6px 5px;
                text-align: center;
            }
            .upsell-preview-caption i { margin-right: 3px; }
            .upsell-preview-error {
                font-size: 11px;
                color: #b91c1c;
                background: #fef2f2;
                border: 1px solid #fca5a5;
                border-radius: 8px;
                padding: 8px 10px;
            }
            .upsell-preview-error button {
                background: none;
                border: none;
                color: #7c3aed;
                font-weight: 700;
                cursor: pointer;
                text-decoration: underline;
                padding: 0;
            }
            /* After they've watched their own clip, make the "Add motion" pill pop. */
            .video-upsell-toggle.just-previewed {
                border-color: rgba(124,58,237,0.7);
                box-shadow: 0 0 0 3px rgba(124,58,237,0.14);
            }
            .video-upsell-toggle.just-previewed .upsell-cta-pill {
                animation: upsellCtaPop 0.9s ease-in-out 3;
            }
            @keyframes upsellCtaPop {
                0%, 100% { transform: scale(1); }
                50% { transform: scale(1.12); }
            }
            @media (prefers-reduced-motion: reduce) {
                .upsell-preview-spinner { animation-duration: 1.6s; }
                .video-upsell-toggle.just-previewed .upsell-cta-pill { animation: none; }
            }
            /* Grid "see it move" button — shown on a gallery card when its artwork
               already has a generated "Bring It to Life" video. Bottom-left: the top
               corners hold favorite/share/price-teaser and the enhance chip (bottom-
               right) is hidden in artworks-page-2.css, so this corner is clear. */
            /* Image wrapper is the positioning context for the video marker, so the
               marker sits ON the thumbnail and is never covered by the selected
               card's white details panel (z-index:20) below it. */
            .artwork-item .artwork-media { position: relative; }
            .artwork-animation-btn {
                position: absolute;
                bottom: 10px;
                left: 10px;
                z-index: 9;
                display: inline-flex;
                align-items: center;
                gap: 6px;
                padding: 5px 11px 5px 5px;
                background: linear-gradient(135deg, rgba(124,58,237,0.96), rgba(139,92,246,0.96));
                color: #fff;
                border: none;
                border-radius: 999px;
                font-size: 11px;
                font-weight: 800;
                letter-spacing: 0.3px;
                cursor: pointer;
                -webkit-backdrop-filter: blur(4px);
                backdrop-filter: blur(4px);
                box-shadow: 0 3px 10px rgba(124,58,237,0.45);
                transition: transform 0.15s, box-shadow 0.15s;
                animation: aabMarkerPulse 2.4s ease-in-out infinite;
            }
            .artwork-animation-btn .aab-play {
                width: 20px;
                height: 20px;
                border-radius: 50%;
                background: #fff;
                color: #7c3aed;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                font-size: 9px;
                flex-shrink: 0;
            }
            .artwork-animation-btn .aab-play i { margin-left: 1px; }
            .artwork-animation-btn .aab-label { padding-right: 2px; }
            .artwork-animation-btn:hover { transform: translateY(-1px); box-shadow: 0 5px 16px rgba(124,58,237,0.6); }
            @keyframes aabMarkerPulse {
                0%, 100% { box-shadow: 0 3px 10px rgba(124,58,237,0.40); }
                50% { box-shadow: 0 3px 16px rgba(124,58,237,0.66); }
            }
            @media (prefers-reduced-motion: reduce) {
                .artwork-animation-btn { animation: none; }
            }

            /* Watermarked animation modal (grid button + reused elsewhere). */
            .pg-anim-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; }
            .pg-anim-backdrop { position: absolute; inset: 0; background: rgba(8, 6, 20, 0.82); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
            .pg-anim-body {
                position: relative;
                z-index: 1;
                width: min(86vw, 360px);
                background: #140b2e;
                border-radius: 16px;
                overflow: hidden;
                box-shadow: 0 20px 60px rgba(0,0,0,0.5);
            }
            .pg-anim-body .watermarked { display: block; }
            .pg-anim-body video { width: 100%; height: auto; display: block; }
            .pg-anim-close {
                position: absolute;
                top: 8px;
                right: 8px;
                z-index: 3;
                width: 34px;
                height: 34px;
                border-radius: 50%;
                border: none;
                background: rgba(0,0,0,0.55);
                color: #fff;
                font-size: 20px;
                line-height: 1;
                cursor: pointer;
            }
            .pg-anim-caption {
                font-size: 12px;
                font-weight: 600;
                color: #e9d5ff;
                text-align: center;
                padding: 10px 12px 14px;
            }
            .pg-anim-caption i { margin-right: 4px; }
            .cart-item-remove-btn {
                display: inline-flex;
                align-items: center;
                gap: 5px;
                background: #fee2e2;
                color: #b91c1c;
                border: 1px solid #fca5a5;
                border-radius: 999px;
                padding: 6px 12px;
                font-size: 12px;
                font-weight: 700;
                letter-spacing: 0.2px;
                cursor: pointer;
                white-space: nowrap;
                flex-shrink: 0;
                min-height: 32px;
                transition: background 0.15s, transform 0.08s;
                -webkit-tap-highlight-color: transparent;
                font-family: inherit;
            }
            .cart-item-remove-btn i { font-size: 11px; }
            .cart-item-remove-btn:hover {
                background: #fecaca;
                color: #7f1d1d;
            }
            .cart-item-remove-btn:active { transform: scale(0.96); }
            /* Hide old elements */
            .cheaper-options-nudge { display: none !important; }
            .cart-item-actions { display: none !important; }
            .cart-edit-panel { display: none !important; }
            .cart-item-action-link { display: none; }
            .cart-edit-panel {
                margin-top: 10px;
                border-top: 1px solid #e5e7eb;
                padding-top: 10px;
                display: none;
            }
            .cart-edit-panel.open {
                display: block;
            }
            .cart-edit-option {
                width: 100%;
                display: flex;
                justify-content: space-between;
                align-items: center;
                border: 1px solid #e5e7eb;
                border-radius: 10px;
                background: #fff;
                padding: 9px 10px;
                margin-bottom: 8px;
                cursor: pointer;
                text-align: left;
            }
            .cart-edit-option.is-selected {
                border-color: #2563eb;
                background: #eff6ff;
            }
            .cart-edit-option-title {
                color: #111827;
                font-size: 13px;
                font-weight: 600;
            }
            .cart-edit-option-size {
                color: #374151;
                font-size: 11.5px;
                font-weight: 500;
                margin-top: 1px;
            }
            .cart-edit-option-meta {
                color: #9ca3af;
                font-size: 11px;
                margin-top: 1px;
            }
            .cart-edit-option-price {
                color: #111827;
                font-size: 13px;
                font-weight: 700;
                margin-left: 10px;
                white-space: nowrap;
            }
            .bundle-savings-strip {
                border: 1px solid #bbf7d0;
                background: #f0fdf4;
                color: #166534;
                border-radius: 12px;
                padding: 10px 12px;
                margin-bottom: 12px;
                overflow: hidden;
            }
            .bundle-progress {
                margin-top: 8px;
                height: 6px;
                border-radius: 8px;
                background: #dcfce7;
                overflow: hidden;
            }
            .bundle-progress-fill {
                height: 100%;
                width: 0%;
                border-radius: 8px;
                background: #22c55e;
                transition: width 0.3s ease;
            }
            .optional-upsell-block {
                border: 1px solid #e5e7eb;
                background: #f9fafb;
                border-radius: 12px;
                padding: 10px 12px;
                margin-bottom: 12px;
            }
            .coupon-disclosure-link {
                border: none;
                background: transparent;
                color: #1f2937;
                font-size: 13px;
                cursor: pointer;
                text-decoration: underline;
                text-underline-offset: 2px;
                margin-bottom: 8px;
                padding: 0;
            }
            .coupon-disclosure {
                display: none;
                margin-bottom: 12px;
            }
            .coupon-disclosure.open {
                display: block;
            }

            /* ═══════════════════════════════════════════════════════════════
               Promo Coupon Widget — 45OFF (always visible, opt-in)
               ═══════════════════════════════════════════════════════════════ */
            .promo-coupon-widget {
                background: linear-gradient(135deg, #fff7ed 0%, #ffe4cc 50%, #fecaca 100%);
                border: 2px dashed #dc2626;
                border-radius: 14px;
                padding: 22px 14px 12px;
                margin: 0 0 14px;
                position: relative;
                overflow: hidden;
            }
            .promo-coupon-flash-badge {
                position: absolute;
                top: -1px;
                left: -1px;
                background: linear-gradient(90deg, #dc2626, #ef4444);
                color: #ffffff;
                font-size: 10px;
                font-weight: 800;
                letter-spacing: 1px;
                padding: 4px 10px;
                border-radius: 0 0 10px 0;
                box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35);
                animation: promoFlashPulse 1.6s ease-in-out infinite;
            }
            @keyframes promoFlashPulse {
                0%, 100% { transform: scale(1);   box-shadow: 0 2px 6px rgba(220, 38, 38, 0.35); }
                50%      { transform: scale(1.05); box-shadow: 0 4px 12px rgba(220, 38, 38, 0.55); }
            }
            /* Applied state — clean, on-brand confirmation. Replaces the
               flash-sale red urgency with a soft mint card so the discount
               reads as a permanent benefit, not a panic-driven offer. */
            .promo-coupon-widget.is-applied {
                background: #f6fbf8;
                border: 1px solid #d3e8dc;
                border-radius: 12px;
                padding: 14px 16px 12px;
            }
            .promo-coupon-widget.is-applied .promo-coupon-flash-badge,
            .promo-coupon-widget.is-applied .promo-coupon-code-row,
            .promo-coupon-widget.is-applied .promo-coupon-deadline,
            .promo-coupon-widget.is-applied .promo-coupon-headline-pct {
                display: none;
            }
            .promo-coupon-widget.is-applied .promo-coupon-headline {
                font-size: 14px;
                font-weight: 600;
                color: #0f5e43;
                text-transform: none;
                letter-spacing: 0;
                justify-content: flex-start;
                gap: 8px;
                margin-bottom: 2px;
            }
            .promo-coupon-widget.is-applied .promo-coupon-headline::before {
                content: '✓';
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 18px;
                height: 18px;
                border-radius: 50%;
                background: #10b981;
                color: #ffffff;
                font-size: 11px;
                font-weight: 800;
                flex-shrink: 0;
                line-height: 1;
            }
            .promo-coupon-widget.is-applied .promo-coupon-sub {
                font-size: 12px;
                font-weight: 400;
                color: #4b6b5e;
                margin-bottom: 0;
                line-height: 1.4;
            }
            .promo-coupon-widget.is-applied .promo-coupon-cancel-btn {
                width: auto;
                background: transparent;
                border: none;
                color: #94a3b8;
                font-size: 11px;
                font-weight: 500;
                padding: 6px 0 0;
                margin-top: 4px;
                text-decoration: underline;
                text-underline-offset: 2px;
                letter-spacing: 0;
            }
            .promo-coupon-widget.is-applied .promo-coupon-cancel-btn:hover {
                color: #64748b;
                background: transparent;
                border-color: transparent;
            }
            .promo-coupon-headline {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;
                font-size: 14px;
                font-weight: 800;
                color: #7f1d1d;
                margin-bottom: 4px;
                text-transform: uppercase;
                letter-spacing: 0.4px;
            }
            /* Applied-state colors are now set in the consolidated block above
               (lines ~589-653). Old per-property overrides removed to avoid
               cascade conflicts. Default-state colors remain. */
            .promo-coupon-headline-pct {
                font-size: 18px;
                letter-spacing: 0.4px;
            }
            .promo-coupon-sub {
                font-size: 12px;
                color: #9a3412;
                margin-bottom: 10px;
                line-height: 1.35;
            }
            .promo-coupon-code-row {
                display: flex;
                align-items: stretch;
                gap: 8px;
                margin-bottom: 10px;
            }
            .promo-coupon-code {
                flex: 1;
                background: #ffffff;
                border: 1px dashed #dc2626;
                border-radius: 8px;
                padding: 10px 12px;
                font-family: 'SF Mono', Menlo, Consolas, monospace;
                font-size: 18px;
                font-weight: 800;
                letter-spacing: 2px;
                color: #7f1d1d;
                text-align: center;
                user-select: all;
            }
            .promo-coupon-copy-btn {
                background: #1f2937;
                color: #ffffff;
                border: none;
                border-radius: 8px;
                padding: 0 14px;
                font-size: 12px;
                font-weight: 700;
                letter-spacing: 0.4px;
                cursor: pointer;
                white-space: nowrap;
                transition: background 0.15s;
            }
            .promo-coupon-copy-btn:hover { background: #111827; }
            .promo-coupon-copy-btn.copied { background: #10b981; }
            .promo-coupon-apply-btn {
                width: 100%;
                background: linear-gradient(180deg, #ef4444 0%, #dc2626 50%, #b91c1c 100%);
                color: #ffffff;
                border: none;
                border-radius: 12px;
                padding: 16px 18px;
                font-size: 16px;
                font-weight: 800;
                letter-spacing: 0.5px;
                cursor: pointer;
                text-transform: uppercase;
                text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
                box-shadow:
                    0 1px 0 rgba(255, 255, 255, 0.35) inset,
                    0 -2px 0 rgba(0, 0, 0, 0.18) inset,
                    0 6px 14px rgba(220, 38, 38, 0.45),
                    0 2px 4px rgba(0, 0, 0, 0.15);
                transition: transform 0.08s ease, box-shadow 0.12s ease, filter 0.12s ease;
                position: relative;
            }
            .promo-coupon-apply-btn::after {
                content: " →";
                display: inline-block;
                margin-left: 6px;
                font-weight: 900;
                transition: transform 0.15s ease;
            }
            .promo-coupon-apply-btn:hover {
                filter: brightness(1.05);
                transform: translateY(-1px);
                box-shadow:
                    0 1px 0 rgba(255, 255, 255, 0.4) inset,
                    0 -2px 0 rgba(0, 0, 0, 0.18) inset,
                    0 9px 20px rgba(220, 38, 38, 0.55),
                    0 3px 6px rgba(0, 0, 0, 0.18);
            }
            .promo-coupon-apply-btn:hover::after { transform: translateX(3px); }
            .promo-coupon-apply-btn:active {
                transform: translateY(1px);
                box-shadow:
                    0 1px 0 rgba(255, 255, 255, 0.25) inset,
                    0 -1px 0 rgba(0, 0, 0, 0.18) inset,
                    0 2px 6px rgba(220, 38, 38, 0.35),
                    0 1px 2px rgba(0, 0, 0, 0.12);
            }
            .promo-coupon-apply-btn:focus-visible {
                outline: 3px solid rgba(220, 38, 38, 0.4);
                outline-offset: 2px;
            }
            .promo-coupon-cancel-btn {
                width: 100%;
                background: #ffffff;
                color: #b91c1c;
                border: 1px solid #fecaca;
                border-radius: 10px;
                padding: 10px;
                font-size: 13px;
                font-weight: 700;
                cursor: pointer;
                transition: background 0.12s;
            }
            .promo-coupon-cancel-btn:hover {
                background: #fef2f2;
                border-color: #fca5a5;
            }
            .promo-coupon-deadline {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 6px;
                font-size: 12px;
                font-weight: 800;
                color: #b91c1c;
                margin-top: 8px;
                padding-top: 8px;
                border-top: 1px solid rgba(220, 38, 38, 0.18);
                text-transform: uppercase;
                letter-spacing: 0.3px;
            }
            .promo-coupon-widget.is-applied .promo-coupon-deadline {
                color: #047857;
                border-top-color: rgba(16, 185, 129, 0.25);
                text-transform: none;
                letter-spacing: 0;
            }
            .promo-coupon-countdown {
                font-variant-numeric: tabular-nums;
                font-weight: 800;
            }
            .promo-coupon-status {
                display: none;
                font-size: 12px;
                margin-top: 8px;
                text-align: center;
                font-weight: 600;
            }
            .promo-coupon-status.error { display: block; color: #b91c1c; }
            .cart-product-guide {
                margin: 12px 0 8px;
                border-top: 1px solid #f3f4f6;
                padding-top: 10px;
            }
            .cart-guide-title {
                font-size: 12px;
                font-weight: 600;
                color: #9ca3af;
                text-transform: uppercase;
                letter-spacing: 0.6px;
                margin-bottom: 8px;
            }
            .cart-guide-detail {
                border: 1px solid #f3f4f6;
                border-radius: 10px;
                margin-bottom: 6px;
                overflow: hidden;
                background: #fafafa;
                transition: background 0.2s;
            }
            .cart-guide-detail[open] {
                background: #fff;
                border-color: #e5e7eb;
            }
            .cart-guide-summary {
                display: flex;
                align-items: center;
                gap: 6px;
                padding: 9px 12px;
                cursor: pointer;
                font-size: 13px;
                font-weight: 600;
                color: #1f2937;
                list-style: none;
            }
            .cart-guide-summary::-webkit-details-marker { display: none; }
            .cart-guide-summary::after {
                content: '›';
                margin-left: auto;
                font-size: 16px;
                color: #9ca3af;
                transition: transform 0.2s;
            }
            .cart-guide-detail[open] > .cart-guide-summary::after {
                transform: rotate(90deg);
            }
            .cart-guide-icon {
                font-size: 15px;
                flex-shrink: 0;
            }
            .cart-guide-badge {
                font-size: 9px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: 0.5px;
                background: linear-gradient(135deg, #1f2937, #374151);
                color: #fff;
                padding: 2px 6px;
                border-radius: 4px;
                line-height: 1.3;
            }
            .cart-guide-badge-instant {
                background: linear-gradient(135deg, #7c3aed, #6d28d9);
            }
            .cart-guide-body {
                padding: 0 12px 10px;
                font-size: 12px;
                color: #4b5563;
                line-height: 1.55;
            }
            .cart-guide-body p {
                margin: 0 0 6px;
            }
            .cart-guide-specs {
                display: flex;
                flex-wrap: wrap;
                gap: 4px;
                margin: 6px 0;
            }
            .cart-guide-specs span {
                background: #f3f4f6;
                color: #374151;
                font-size: 11px;
                font-weight: 500;
                padding: 3px 8px;
                border-radius: 5px;
            }
            .cart-guide-note {
                font-size: 11px;
                color: #9ca3af;
                margin: 4px 0 0;
                font-style: italic;
            }
            .cart-refund-policy {
                border-top: 1px solid #f3f4f6;
                padding: 8px 0 0;
                margin: 4px 0 0;
            }
            .cart-refund-summary {
                cursor: pointer;
                font-size: 11.5px;
                color: #9ca3af;
                font-weight: 500;
                list-style: none;
            }
            .cart-refund-summary::-webkit-details-marker { display: none; }
            .cart-refund-summary::before {
                content: '› ';
                font-size: 12px;
            }
            .cart-refund-policy[open] > .cart-refund-summary::before {
                content: '↓ ';
            }
            .cart-refund-body {
                margin-top: 8px;
                font-size: 12px;
                color: #6b7280;
                line-height: 1.5;
            }
            .cart-refund-body p {
                margin: 0 0 8px;
            }
            .cart-refund-note {
                color: #9ca3af;
                font-size: 11px;
                margin-top: 6px;
            }
            .cart-addon-row {
                display: flex;
                align-items: center;
                justify-content: space-between;
                gap: 8px;
                border: 1px solid #e5e7eb;
                border-radius: 10px;
                padding: 8px 10px;
                font-size: 12px;
                color: #374151;
                background: #fff;
            }
            .cart-summary-column {
                border-top: 1px solid #e5e7eb;
                padding: 12px 16px;
                background: #fff;
            }
            .order-summary-box {
                border: 1px solid #e5e7eb;
                border-radius: 12px;
                padding: 12px;
                background: #fff;
            }
            .order-summary-row {
                display: flex;
                justify-content: space-between;
                align-items: center;
                font-size: 14px;
                color: #374151;
                margin-bottom: 8px;
            }
            .order-summary-row.total {
                border-top: 1px solid #e5e7eb;
                margin-top: 10px;
                padding-top: 10px;
                margin-bottom: 10px;
                font-size: 18px;
                font-weight: 700;
                color: #111827;
            }
            .summary-savings-line {
                color: #15803d;
                font-size: 13px;
                margin-bottom: 8px;
                font-weight: 600;
            }
            .summary-breakdown-link {
                border: none;
                background: transparent;
                color: #374151;
                font-size: 12px;
                padding: 0;
                text-decoration: underline;
                text-underline-offset: 2px;
                cursor: pointer;
                margin-bottom: 8px;
            }
            .summary-breakdown {
                display: none;
                border-top: 1px solid #e5e7eb;
                margin-top: 8px;
                padding-top: 8px;
            }
            .summary-breakdown.open {
                display: block;
            }
            .cart-summary-button {
                margin-top: 10px;
                width: 100%;
                background: #111827;
                border: none;
                border-radius: 12px;
                color: #fff;
                padding: 14px 16px;
                font-size: 15px;
                font-weight: 700;
                cursor: pointer;
            }
            .cart-summary-button:disabled {
                opacity: 0.55;
                cursor: not-allowed;
            }
            .compact-trust-note {
                font-size: 12px;
                color: #6b7280;
                margin-top: 8px;
                text-align: center;
            }
            .cart-mobile-checkout-bar {
                flex-shrink: 0;
                z-index: 10;
                display: flex;
                align-items: center;
                gap: 12px;
                padding: 10px 16px;
                padding-bottom: max(10px, env(safe-area-inset-bottom, 10px));
                border-top: 1px solid #e5e7eb;
                background: #fff;
                box-shadow: 0 -4px 12px rgba(0,0,0,0.06);
            }
            .mobile-total-label {
                font-size: 11px;
                color: #6b7280;
                line-height: 1;
            }
            .mobile-total-value {
                font-size: 17px;
                color: #111827;
                font-weight: 700;
                line-height: 1.15;
            }
            .mobile-total-was {
                font-size: 10px;
                color: #9ca3af;
                text-decoration: line-through;
                margin-left: 3px;
                font-weight: 400;
            }
            .cart-savings-inline {
                margin: 12px 0 4px;
                display: flex;
                flex-direction: column;
                gap: 4px;
            }
            .cart-savings-breakdown {
                display: none !important;
            }
            .cart-savings-row {
                display: flex;
                justify-content: space-between;
                font-size: 12px;
                line-height: 1.4;
            }
            .cart-savings-fomo {
                color: #fff;
                font-weight: 700;
                background: linear-gradient(90deg, #16a34a, #15803d);
                padding: 7px 10px;
                border-radius: 8px;
                font-size: 13px;
                letter-spacing: 0.2px;
                flex-wrap: wrap;
            }
            .cart-savings-fomo span:last-child {
                font-size: 13.5px;
                font-weight: 800;
            }
            .cart-savings-volume {
                color: #16a34a;
                font-weight: 500;
            }
            .cart-savings-free-items-inline {
                display: flex;
                flex-direction: column;
                gap: 1px;
                margin-top: 4px;
                padding-top: 4px;
                border-top: 1px dashed #e5e7eb;
            }
            .cart-free-item {
                color: #6b7280;
                font-size: 11.5px;
                font-weight: 400;
            }
            .cart-free-tag {
                color: #16a34a;
                font-weight: 700;
                font-size: 11px;
                letter-spacing: 0.3px;
            }
            .cart-inline-payment-note {
                font-size: 11px;
                color: #9ca3af;
                text-align: center;
                margin-top: 6px;
            }
            .cart-checkout-cta {
                flex: 1;
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 6px;
                background: #111827;
                border: none;
                border-radius: 12px;
                color: #fff;
                padding: 13px 20px;
                font-size: 15px;
                font-weight: 700;
                cursor: pointer;
                white-space: nowrap;
            }
            .cart-checkout-cta:disabled {
                opacity: 0.55;
                cursor: not-allowed;
            }
            .cart-checkout-cta svg { flex-shrink: 0; }
            .mobile-total-block { flex-shrink: 0; }
            .cart-tip-trigger {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 15px;
                height: 15px;
                border-radius: 50%;
                background: #e5e7eb;
                color: #6b7280;
                font-size: 10px;
                font-weight: 700;
                cursor: pointer;
                vertical-align: middle;
                margin-left: 2px;
                line-height: 1;
                flex-shrink: 0;
            }
            .cart-tip-trigger:active {
                background: #d1d5db;
            }
            .cart-tip-bubble {
                display: none;
                background: #1f2937;
                color: #f9fafb;
                font-size: 12px;
                line-height: 1.45;
                padding: 10px 12px;
                border-radius: 8px;
                margin-top: 4px;
                grid-column: 1 / -1;
                position: relative;
            }
            .cart-tip-bubble.open {
                display: block;
            }
            .cart-tip-bubble::before {
                content: '';
                position: absolute;
                top: -5px;
                left: 20px;
                width: 10px;
                height: 10px;
                background: #1f2937;
                transform: rotate(45deg);
            }
            .cart-tip-close {
                position: absolute;
                top: 4px;
                right: 8px;
                color: #9ca3af;
                cursor: pointer;
                font-size: 16px;
                line-height: 1;
            }
            .cart-mobile-checkout-note {
                display: none;
            }
            .cart-edit-sheet {
                position: fixed;
                inset: auto 0 0;
                transform: translateY(100%);
                transition: transform 0.25s ease;
                z-index: 1000002;
                background: #fff;
                border-radius: 16px 16px 0 0;
                border-top: 1px solid #e5e7eb;
                box-shadow: 0 -14px 32px rgba(0, 0, 0, 0.18);
                padding: 12px 14px;
                max-height: 78vh;
                overflow-y: auto;
            }
            .cart-edit-sheet.open {
                transform: translateY(0);
            }
            .cart-edit-sheet-header {
                display: flex;
                justify-content: space-between;
                align-items: center;
                margin-bottom: 8px;
            }
            .cart-sheet-close {
                border: none;
                background: transparent;
                font-size: 24px;
                line-height: 1;
                cursor: pointer;
            }
            .cart-summary-overlay {
                position: fixed;
                inset: 0;
                background: rgba(0, 0, 0, 0.28);
                z-index: 1000001;
                opacity: 0;
                visibility: hidden;
                transition: all 0.2s ease;
            }
            .cart-summary.visible + .cart-summary-overlay {
                opacity: 1;
                visibility: visible;
            }
            .cart-summary-overlay.open {
                opacity: 1;
                visibility: visible;
            }
            .cart-summary-column {
                display: none;
            }
            .cart-item-actions .cart-item-edit {
                display: inline-block;
            }
            @media (max-width: 640px) {
                .cart-summary-header {
                    padding: 0 12px;
                    height: 50px;
                    min-height: 50px;
                    gap: 6px;
                }
                .cart-summary-title {
                    font-size: 15px;
                    gap: 5px;
                }
                #cartHeaderCount {
                    font-size: 11px;
                    min-width: 18px;
                    height: 18px;
                    border-radius: 9px;
                    padding: 0 5px;
                }
                .cart-urgency-timer {
                    font-size: 11px;
                    padding: 3px 7px;
                    gap: 3px;
                }
                .cart-urgency-timer .timer-icon {
                    font-size: 11px;
                }
                .cart-urgency-timer .timer-value {
                    font-size: 11.5px;
                }
                .cart-continue-link {
                    font-size: 11px;
                    padding: 4px 8px;
                }
                .cart-header-actions {
                    gap: 6px;
                }
                .cart-summary-close {
                    width: 28px;
                    height: 28px;
                    font-size: 16px;
                }
            }

            /* ════════════════════════════════════════════════════════════════
               CVR COMPACTION 2026-06-12 — tighten the top discount stack so
               cart items + checkout sit higher, and unify the savings colours
               into one coherent green "what you save" group (was mint+green+
               blue+green competing banners). CSS-only, no logic changes.
               ════════════════════════════════════════════════════════════════ */
            .promo-coupon-widget { margin-bottom: 10px; }
            .promo-coupon-widget.is-applied { padding: 11px 14px 9px; }

            /* The two dollar-savings bars: compact + unified green, paired tight */
            #cartFomoLineTop.cart-savings-fomo,
            #cartBundleLineTop.cart-savings-fomo {
                padding: 6px 11px !important;
                font-size: 12px !important;
                border-radius: 9px !important;
                margin-bottom: 6px !important;
            }
            #cartFomoLineTop.cart-savings-fomo span:last-child,
            #cartBundleLineTop.cart-savings-fomo span:last-child { font-size: 12.5px !important; }
            /* Bundle bar: drop the clashing blue for an on-brand teal-green */
            #cartBundleLineTop.cart-savings-fomo {
                background: linear-gradient(90deg, #10b981, #059669) !important;
            }

            .bundle-savings-strip { padding: 8px 12px; margin-bottom: 10px; }
            .bundle-progress { margin-top: 6px; }

            /* Tighter format pills so each cart item is shorter */
            .cart-format-pills { gap: 4px; }
            .cart-format-pill { padding: 5px 4px; border-radius: 7px; }
            .cart-format-pill .pill-label { font-size: 10px; }
            .cart-format-pill .pill-price { font-size: 10.5px; }

            /* ---- Stronger checkout bar: trust micro-row + confident green CTA ---- */
            .cart-mobile-checkout-bar {
                flex-direction: column !important;
                align-items: stretch !important;
                gap: 0 !important;
                padding-top: 0 !important;
            }
            .cart-checkout-main {
                display: flex;
                align-items: center;
                gap: 12px;
                padding: 9px 0 0;
            }
            .cart-checkout-trust {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 12px;
                flex-wrap: wrap;
                padding: 9px 0 0;
                font-size: 10.5px;
                font-weight: 600;
                color: #4b5563;
                line-height: 1;
            }
            .cart-checkout-trust span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
            .cart-checkout-cta {
                background: linear-gradient(135deg, #10b981, #059669) !important;
                box-shadow: 0 4px 14px rgba(5,150,105,0.34) !important;
                font-size: 15.5px !important;
                padding: 14px 18px !important;
            }
            .cart-checkout-cta:disabled { background: #9aa7b2 !important; box-shadow: none !important; }
            .mobile-total-value { font-size: 18px; }
            .mobile-total-was { font-size: 11px; }
            /* end CVR COMPACTION */

            /* ── "Bring It to Life" enhanced upsell copy ── */
            .video-upsell-toggle { align-items: flex-start; }
            .video-upsell-toggle .upsell-check { margin-top: 1px; }
            .video-upsell-info .upsell-title {
                display: flex;
                align-items: center;
                gap: 6px;
                flex-wrap: wrap;
            }
            .upsell-badge {
                display: inline-block;
                background: linear-gradient(135deg, #f59e0b, #ef4444);
                color: #fff;
                font-size: 8px;
                font-weight: 800;
                letter-spacing: 0.4px;
                padding: 2px 6px;
                border-radius: 999px;
                line-height: 1.2;
                text-transform: uppercase;
                flex-shrink: 0;
            }
            /* Let the marketing copy breathe across two lines instead of clipping */
            .video-upsell-toggle .video-upsell-info .upsell-desc {
                white-space: normal;
                overflow: visible;
                text-overflow: clip;
                line-height: 1.35;
                margin-top: 2px;
            }
            .upsell-preview-link {
                display: inline-flex;
                align-items: center;
                gap: 5px;
                margin-top: 6px;
                padding: 4px 9px;
                background: #fff;
                border: 1px solid rgba(139,92,246,0.45);
                border-radius: 999px;
                color: #6d28d9;
                font-size: 11px;
                font-weight: 700;
                cursor: pointer;
                -webkit-tap-highlight-color: transparent;
                transition: background .15s ease, border-color .15s ease, transform .12s ease;
            }
            .upsell-preview-link i { font-size: 11px; }
            .upsell-preview-link:hover {
                background: #f5f3ff;
                border-color: #8b5cf6;
                transform: translateY(-1px);
            }
            .upsell-preview-link:active { transform: translateY(0); }

            /* ── "See it in action" customer-video modal (lives above the cart) ── */
            body.vsm-lock { overflow: hidden !important; }
            .vsm-overlay {
                position: fixed;
                inset: 0;
                z-index: 2000000;
                display: flex;
                align-items: flex-end;
                justify-content: center;
                background: rgba(17,12,24,0.62);
                -webkit-backdrop-filter: blur(3px);
                backdrop-filter: blur(3px);
                opacity: 0;
                visibility: hidden;
                transition: opacity .26s ease, visibility .26s ease;
            }
            .vsm-overlay.visible { opacity: 1; visibility: visible; }
            .vsm-dialog {
                position: relative;
                width: 100%;
                max-width: 460px;
                height: 90vh;
                max-height: 90vh;
                background: #fff;
                border-radius: 20px 20px 0 0;
                display: flex;
                flex-direction: column;
                overflow: hidden;
                box-shadow: 0 -10px 40px rgba(0,0,0,0.35);
                transform: translateY(100%);
                transition: transform .3s cubic-bezier(0.22, 1, 0.36, 1);
            }
            .vsm-overlay.visible .vsm-dialog { transform: translateY(0); }
            .vsm-header {
                display: flex;
                align-items: center;
                gap: 10px;
                padding: 14px 16px;
                border-bottom: 1px solid #eee;
                background: linear-gradient(135deg, #faf5ff, #fff);
                flex-shrink: 0;
            }
            .vsm-head-text { flex: 1; min-width: 0; }
            .vsm-title {
                font-size: 16px;
                font-weight: 800;
                color: #4c1d95;
                display: flex;
                align-items: center;
                gap: 7px;
            }
            .vsm-sub {
                font-size: 11.5px;
                color: #6b7280;
                margin-top: 2px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            .vsm-close {
                flex-shrink: 0;
                width: 34px;
                height: 34px;
                border-radius: 50%;
                border: none;
                background: #f3f4f6;
                color: #374151;
                font-size: 15px;
                cursor: pointer;
                display: flex;
                align-items: center;
                justify-content: center;
                transition: background .15s ease;
            }
            .vsm-close:hover { background: #e5e7eb; }
            .vsm-body {
                position: relative;
                flex: 1;
                min-height: 0;
                background: #fff;
            }
            .vsm-iframe {
                width: 100%;
                height: 100%;
                border: 0;
                display: block;
                opacity: 0;
                transition: opacity .3s ease;
            }
            .vsm-iframe.loaded { opacity: 1; }
            .vsm-spinner {
                position: absolute;
                inset: 0;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 26px;
                color: #8b5cf6;
                pointer-events: none;
            }
            .vsm-footer {
                flex-shrink: 0;
                padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
                border-top: 1px solid #eee;
                background: #fff;
            }
            .vsm-cta {
                width: 100%;
                display: inline-flex;
                align-items: center;
                justify-content: center;
                gap: 8px;
                padding: 13px 18px;
                border: none;
                border-radius: 12px;
                background: linear-gradient(135deg, #8b5cf6, #7c3aed);
                color: #fff;
                font-size: 14.5px;
                font-weight: 800;
                cursor: pointer;
                box-shadow: 0 4px 14px rgba(124,58,237,0.32);
                transition: filter .15s ease, transform .12s ease;
            }
            .vsm-cta:hover { filter: brightness(1.05); transform: translateY(-1px); }
            .vsm-cta:active { transform: translateY(0); }
            /* Desktop: center the dialog as a card instead of a bottom sheet */
            @media (min-width: 700px) {
                .vsm-overlay { align-items: center; }
                .vsm-dialog {
                    height: 86vh;
                    max-height: 760px;
                    border-radius: 20px;
                    transform: translateY(16px) scale(0.97);
                    transition: transform .3s cubic-bezier(0.22, 1, 0.36, 1), opacity .26s ease;
                    opacity: 0;
                }
                .vsm-overlay.visible .vsm-dialog { transform: translateY(0) scale(1); opacity: 1; }
            }
        