.voucher-banner,.voucher-confetti{border-radius:6px}.voucher-design-section{margin:20px 0;padding:18px;border:1px solid var(--border);border-radius:6px}.voucher-template-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0;max-height:480px;overflow:auto;padding:4px}.voucher-template-gallery button{background:var(--surface);color:var(--text);padding:5px;border:2px solid transparent;border-radius:5px;text-align:left}.voucher-template-gallery button[aria-pressed="true"]{border-color:var(--primary)}.voucher-template-gallery img,.voucher-blank-thumb{width:100%;aspect-ratio:2;object-fit:cover;border-radius:3px}.voucher-template-gallery button>span:last-child{display:block;padding:6px 3px;font-size:12px}.voucher-blank-thumb{display:grid;place-items:center;background:#fff;border:1px dashed var(--border);font-size:28px;color:var(--muted)}
.voucher-design-dialog{width:min(1240px,calc(100vw - 24px));max-width:none;padding:24px;border-radius:6px}.voucher-designer-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:start}.voucher-designer-grid aside{padding:15px;background:var(--surface);border:1px solid var(--border);border-radius:6px}.design-properties{display:grid;grid-template-columns:1fr 1fr;gap:10px}.design-properties label{font-size:12px;min-width:0}.design-properties input,.design-properties select{width:100%;min-width:0;padding:8px}.design-properties input[type=color]{height:38px;padding:4px}.design-checks{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.design-checks label{display:flex;flex-direction:row;align-items:center;gap:5px;font-size:12px;margin:0}.design-checks input{width:16px;height:16px;margin:0}.voucher-design-dialog .actions{position:sticky;bottom:-24px;background:var(--background);padding:16px 0;margin-top:15px;z-index:6}
.voucher-art{position:relative;container-type:inline-size;aspect-ratio:1200 / var(--art-height);isolation:isolate;overflow:hidden;color:var(--text)}.voucher-art-image,.voucher-art-veil{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.voucher-art-veil{z-index:-1}.voucher-art-element{position:absolute;font-size:calc(var(--element-size) / 12 * 1cqw);line-height:1.18;white-space:pre-line;overflow-wrap:anywhere;margin:0;padding:0;border:0;display:flex;flex-direction:column;justify-content:center}.voucher-art-element:not(.voucher-art-button){display:block;align-content:center}.voucher-art-button{border-radius:4px;cursor:pointer;align-items:center;line-height:1.15;padding:3px}.voucher-art-element[data-design-element=code]{user-select:all;letter-spacing:.035em}.voucher-art-editor{border:1px solid var(--border)}.voucher-art-editor .voucher-art-element{cursor:move;touch-action:none;outline:1px dashed #7a254533;outline-offset:2px;overflow:hidden}.voucher-art-editor .voucher-art-element.selected{outline:2px solid var(--primary);z-index:3}.voucher-art-footer{background:var(--background);padding:16px 28px}.voucher-art-footer details{margin:0!important;padding:12px 0 0!important}.voucher-art-footer [data-copy-status]:empty{display:none}.voucher-art-footer p{margin-bottom:0}.voucher-design-preview-label{background:var(--accent);color:var(--accentText);padding:8px 50px 8px 16px;font-size:12px}.voucher-designed-dialog .voucher-banner::before{display:none}.voucher-designed-dialog .voucher-close{z-index:5}.voucher-designed-dialog .voucher-confetti{z-index:2}.voucher-designed-dialog .voucher-confetti.behind{z-index:-1}.voucher-art-flow{aspect-ratio:auto;padding:40px 24px 26px;display:flex;flex-direction:column;gap:16px}.voucher-art-flow .voucher-art-element{position:static!important;min-height:0;font-size:clamp(14px,calc(var(--element-size)*.55px),34px);flex-shrink:0}.voucher-art-flow .voucher-art-button{min-height:44px;max-width:320px;align-self:center;padding:10px 16px}.voucher-art-flow [data-design-element=copy]{max-width:140px}
@media(max-width:900px){.voucher-template-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.voucher-designer-grid{grid-template-columns:1fr}.voucher-designer-grid aside{width:100%}.design-properties{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.voucher-design-section{padding:12px}.voucher-template-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.voucher-design-dialog{padding:16px}.voucher-design-dialog .actions{bottom:-16px}.design-properties{grid-template-columns:1fr 1fr}.voucher-art:not(.voucher-art-editor){aspect-ratio:auto;padding:40px 22px 26px;display:flex;flex-direction:column;gap:16px}.voucher-art:not(.voucher-art-editor) .voucher-art-element{position:static!important;min-height:0;font-size:clamp(14px,calc(var(--element-size)*.55px),32px);flex-shrink:0}.voucher-art:not(.voucher-art-editor) .voucher-art-button{min-height:44px;max-width:320px;align-self:center;padding:10px 16px}.voucher-art:not(.voucher-art-editor) [data-design-element=copy]{max-width:140px}.voucher-art-footer{padding:14px 20px}}
@media(prefers-reduced-motion:reduce){.voucher-confetti{display:none}}

/* The editor and shop share one 1200px canvas, scaled as a whole. */
.voucher-art,.voucher-art:not(.voucher-art-editor){display:block;aspect-ratio:1200 / var(--art-height);padding:0;border:0;container-type:inline-size}
.voucher-art-canvas{position:absolute;left:0;top:0;width:1200px;transform-origin:top left;isolation:isolate;overflow:hidden}
.voucher-art .voucher-art-element,.voucher-art:not(.voucher-art-editor) .voucher-art-element{position:absolute!important;font-size:calc(var(--element-size)*1px);min-height:0;max-width:none;flex-shrink:1;overflow:hidden;letter-spacing:normal}
.voucher-art .voucher-art-button,.voucher-art:not(.voucher-art-editor) .voucher-art-button{padding:3px;min-height:0;max-width:none}
.voucher-art-footer:has([data-copy-status]:empty){display:none}
.product-detail-copy>h2{margin:0 0 8px}.product-detail-subtitle{margin:0 0 18px}
.product-quantity-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.product-quantity-row .quantity{margin-bottom:0}
.product-promotion-link{color:var(--primary);background:transparent;padding:8px 0;font-size:.82rem;font-weight:600;animation:product-promotion-glow 2.8s ease-in-out infinite;text-underline-offset:4px}.product-promotion-link:hover{text-decoration:underline}
@keyframes product-promotion-glow{0%,100%{opacity:1}50%{opacity:.68}}
@media(prefers-reduced-motion:reduce){.product-promotion-link{animation:none}}
