/* TRANSCAN v2.3 - animated horizontal button selectors */
.tvcrp-box{border:1px solid #e7e7e7;border-radius:14px;padding:20px;margin:0 0 22px;background:#fff;box-shadow:0 8px 28px rgba(0,0,0,.035);overflow:hidden}.tvcrp-box h4{margin:0 0 16px;font-size:18px}.tvcrp-note{padding:10px 13px;background:#f7f7f7;border-radius:8px}.tvcrp-grid{display:flex;flex-direction:column;gap:20px}.tvcrp-field{width:100%}.tvcrp-field>label{display:block;font-weight:700;margin:0 0 10px}.tvcrp-field>label span{color:#c00}.tvcrp-buttons{display:flex!important;flex-direction:row!important;align-items:stretch!important;flex-wrap:wrap!important;gap:10px!important;width:100%}
/* Keep native radio functionality but make the circle completely invisible */
.tvcrp-buttons input.tvcrp-radio,.tvcrp-radio{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;appearance:none!important;-webkit-appearance:none!important;pointer-events:none!important}
.tvcrp-option{position:relative;display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:0 0 auto!important;min-width:78px;min-height:44px;margin:0!important;padding:10px 17px!important;border:1.5px solid #dedede!important;border-radius:9px!important;background:#fff!important;color:#222!important;cursor:pointer!important;font-weight:650!important;line-height:1.15!important;text-align:center;box-sizing:border-box!important;box-shadow:0 2px 7px rgba(0,0,0,.035);transform:translateY(0) scale(1);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,border-color .22s ease,background .22s ease,color .22s ease!important;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden}.tvcrp-option:before{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transform:scale(.35);border-radius:inherit;transition:transform .28s ease,opacity .28s ease;pointer-events:none}.tvcrp-option:hover{border-color:#6a4bbc!important;transform:translateY(-2px);box-shadow:0 7px 18px rgba(0,0,0,.09)}.tvcrp-option:active{transform:translateY(0) scale(.97)}.tvcrp-option.is-selected,.tvcrp-radio:checked+.tvcrp-option{background:#3b237b!important;border-color:#3b237b!important;color:#fff!important;box-shadow:0 7px 18px rgba(59,35,123,.22);transform:translateY(-1px)}.tvcrp-option.is-selected:before,.tvcrp-radio:checked+.tvcrp-option:before{opacity:.06;transform:scale(1)}.tvcrp-radio:focus-visible+.tvcrp-option{outline:3px solid rgba(59,35,123,.22)!important;outline-offset:2px}.tvcrp-price{margin-top:20px;padding-top:16px;border-top:1px solid #eee;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tvcrp-price small{font-weight:600}.tvcrp-price strong{font-size:22px}.tvcrp-status{font-size:12px;opacity:.7;width:100%}.tvcrp-box.loading{opacity:.72;transition:opacity .2s ease}
@media(max-width:600px){.tvcrp-box{padding:16px}.tvcrp-buttons{gap:8px!important}.tvcrp-option{min-width:66px;min-height:42px;padding:9px 13px!important;font-size:13px!important}}
@media(prefers-reduced-motion:reduce){.tvcrp-option,.tvcrp-option:before{transition:none!important}}

/* v2.4 artwork upload */
.tvcrp-artwork{margin-top:20px;padding-top:18px;border-top:1px solid rgba(0,0,0,.08)}
.tvcrp-upload-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.tvcrp-upload>label:first-child{display:block;font-weight:600;margin:0 0 9px}.tvcrp-upload>label:first-child span{color:#e11d48}
.tvcrp-file-button{display:flex!important;align-items:center;justify-content:center;min-height:46px;padding:10px 15px;border:1px dashed #8d76c5;border-radius:9px;background:#faf8ff;color:#4c2f91;font-weight:700!important;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.tvcrp-file-button:hover{transform:translateY(-2px);box-shadow:0 7px 18px rgba(76,47,145,.13);background:#f4efff;border-color:#4c2f91}
.tvcrp-file-button input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}
.tvcrp-file-name{display:block;margin-top:7px;color:#8a8a8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:600px){.tvcrp-upload-pair{grid-template-columns:1fr}}

/* v2.5 matrix-only choices + animated color swatches */
.tvcrp-option.tvcrp-unavailable{display:none!important}
.tvcrp-color-option{min-width:auto!important;padding:9px 14px!important;gap:8px!important}
.tvcrp-color-dot{display:inline-block;width:16px;height:16px;border-radius:50%;flex:0 0 16px;border:2px solid rgba(0,0,0,.08);box-shadow:inset 0 1px 2px rgba(255,255,255,.65),0 1px 4px rgba(0,0,0,.14);transition:transform .22s ease,box-shadow .22s ease}
.tvcrp-color-option[data-color*="Golden"] .tvcrp-color-dot,.tvcrp-color-option[data-color*="Gold"] .tvcrp-color-dot{background:linear-gradient(135deg,#f7dc72,#c99b20)}
.tvcrp-color-option[data-color*="Silver"] .tvcrp-color-dot{background:linear-gradient(135deg,#f5f5f5,#b9bec5)}
.tvcrp-color-option:hover .tvcrp-color-dot{transform:scale(1.15) rotate(8deg);box-shadow:0 0 0 4px rgba(59,35,123,.08),0 2px 7px rgba(0,0,0,.18)}
.tvcrp-color-option.is-selected .tvcrp-color-dot,.tvcrp-radio:checked+.tvcrp-color-option .tvcrp-color-dot{transform:scale(1.08);border-color:rgba(255,255,255,.75);box-shadow:0 0 0 3px rgba(255,255,255,.16),0 2px 7px rgba(0,0,0,.22)}

/* v2.6 product-editable color variation images */
.tvcrp-color-option{gap:8px!important}
.tvcrp-color-image{display:inline-flex;width:58px;height:58px;flex:0 0 58px;border-radius:6px;overflow:hidden;border:1px solid rgba(0,0,0,.12);background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.12);vertical-align:middle;transition:transform .22s ease,box-shadow .22s ease}
.tvcrp-color-image img{display:block;width:100%;height:100%;object-fit:cover}
.tvcrp-color-option:hover .tvcrp-color-image{transform:scale(1.08) rotate(1deg);box-shadow:0 3px 9px rgba(0,0,0,.18)}
.tvcrp-color-option.is-selected .tvcrp-color-image,.tvcrp-radio:checked+.tvcrp-color-option .tvcrp-color-image{border-color:rgba(255,255,255,.7);box-shadow:0 0 0 2px rgba(255,255,255,.12),0 3px 9px rgba(0,0,0,.2)}
@media(max-width:600px){.tvcrp-color-image{width:48px;height:48px;flex-basis:48px}.tvcrp-color-option{padding:8px 11px!important}}
