.product-detail{max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;padding:20px;overflow-x:hidden}.back-link{display:inline-block;margin-bottom:20px;color:#2563eb;text-decoration:none;font-weight:500}.back-link:hover{text-decoration:underline}.product-content{display:grid;grid-template-columns:1fr 1fr;grid-gap:40px;gap:40px;background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.1);box-sizing:border-box;width:100%;max-width:100%}.image-hero,.product-images{width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}.image-hero{position:relative;aspect-ratio:1/1;background:#f5f5f5;border-radius:8px;margin-bottom:12px}.image-hero img{position:absolute;top:0;left:0;width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;object-fit:cover;display:block}.image-hero .nav{position:absolute;top:50%;transform:translateY(-50%);background:hsla(0,0%,100%,.8);border:none;width:36px;height:36px;border-radius:18px;cursor:pointer;font-size:20px}.image-hero .nav.prev{left:10px}.image-hero .nav.next{right:10px}.thumb-strip{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;width:100%;max-width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.thumb-strip::-webkit-scrollbar{height:4px}.thumb-strip::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}.thumb{border:2px solid transparent;padding:0;border-radius:6px;background:transparent;cursor:pointer;aspect-ratio:1/1;flex-shrink:0}.thumb img{width:72px;height:72px;max-width:72px;object-fit:cover;border-radius:6px;display:block}.thumb.active{border-color:#2563eb}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:1000}.lightbox-content{position:relative;max-width:90vw;max-height:90vh}.lightbox-content img{max-width:90vw;max-height:90vh;object-fit:contain}.lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);background:hsla(0,0%,100%,.9);border:none;width:44px;height:44px;border-radius:22px;cursor:pointer;font-size:24px}.lightbox .nav.prev{left:-56px}.lightbox .nav.next{right:-56px}.lightbox .close{position:absolute;top:-56px;right:0;background:hsla(0,0%,100%,.9);border:none;width:44px;height:44px;border-radius:22px;cursor:pointer;font-size:24px}.no-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:#f5f5f5;color:#999;border-radius:8px}.product-details{width:100%;max-width:100%;box-sizing:border-box}.product-details h1{margin-top:0;color:#333;font-size:2rem;word-wrap:break-word;overflow-wrap:break-word}.price-section{margin:20px 0;width:100%;max-width:100%}.current-price{font-size:2rem;font-weight:700;color:#2563eb;margin-right:15px}.original-price{font-size:1.2rem;color:#999;text-decoration:line-through}.stock-status{margin:15px 0;width:100%;max-width:100%;word-wrap:break-word;overflow-wrap:break-word}.in-stock{color:#16a34a;font-weight:500}.out-of-stock{color:#dc2626;font-weight:500}.description{margin:30px 0;padding:20px;background:#f9fafb;border-radius:8px}.description h3{margin-top:0;color:#333}.description p{color:#666;line-height:1.6;word-wrap:break-word;overflow-wrap:break-word;max-width:100%}.product-info-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px;margin:20px 0}.info-item{padding:10px;background:#f9fafb;border-radius:4px}.product-options{margin:30px 0}.product-options h3{margin-bottom:20px;color:#333;font-size:1.125rem}.product-customizations{margin:30px 0;padding:20px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.product-customizations h3{margin-top:0;margin-bottom:20px;color:#333;font-size:1.125rem}.customization-field{margin-bottom:20px;width:100%;max-width:100%;box-sizing:border-box}.customization-field:last-child{margin-bottom:0}.customization-field label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:.9375rem}.customization-field .required-indicator{color:#dc2626;font-weight:600}.customization-help-text{margin:0 0 8px;font-size:.875rem;color:#6b7280;font-style:italic}.customization-field input[type=text],.customization-field textarea{width:100%;max-width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;color:#111827;background-color:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.customization-field input[type=text]:focus,.customization-field textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.customization-field input[type=text].error,.customization-field textarea.error{border-color:#dc2626;background-color:#fef2f2}.customization-field textarea{resize:vertical;min-height:100px}.char-count{display:block;margin-top:4px;font-size:.75rem;color:#6b7280;text-align:right}.customization-error{margin-top:8px;padding:8px 12px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:.875rem;display:flex;align-items:center;gap:6px}.customization-error:before{content:"⚠";font-size:1rem}.file-upload-container{margin-top:8px}.file-input{display:none}.file-drop-zone{border:2px dashed #d1d5db;border-radius:8px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s ease;background-color:#f9fafb;margin-bottom:16px}.file-drop-zone:hover{border-color:#2563eb;background-color:#eff6ff}.file-drop-zone.drag-over{border-color:#2563eb;background-color:#dbeafe;transform:scale(1.02)}.file-drop-zone.uploading{border-color:#9ca3af;background-color:#f3f4f6;cursor:wait;opacity:.7}.drop-zone-content{display:flex;flex-direction:column;align-items:center;gap:12px}.upload-icon{color:#6b7280;transition:color .3s ease}.file-drop-zone:hover .upload-icon{color:#2563eb}.drop-zone-text{margin:0;display:flex;flex-direction:column;gap:4px}.drop-zone-primary{font-size:16px;color:#374151;font-weight:500}.drop-zone-hint{font-size:14px;color:#6b7280;display:block;margin-top:4px}.file-preview{margin-top:12px;padding:12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;align-items:center}.preview-image{width:80px;height:80px;object-fit:cover;border-radius:6px;flex-shrink:0}.file-info{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:6px}.file-name{font-size:.875rem;color:#374151;font-weight:500;word-break:break-word}.uploading-indicator{font-size:.75rem;color:#2563eb;font-weight:500}.uploaded-indicator{font-size:.75rem;color:#16a34a;font-weight:500}.remove-file-btn{align-self:flex-start;padding:6px 12px;background-color:#fee;color:#dc2626;border:1px solid #fecaca;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.remove-file-btn:hover:not(:disabled){background-color:#fecaca}.remove-file-btn:disabled{opacity:.5;cursor:not-allowed}.file-size-hint{display:block;margin-top:6px;font-size:.75rem;color:#6b7280}.option-group{margin-bottom:20px;width:100%;max-width:100%;box-sizing:border-box}.option-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:.9375rem}.option-select{width:100%;max-width:100%;padding:12px 16px;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;color:#111827;background-color:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.option-select:hover{border-color:#d1d5db}.option-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.option-select.out-of-stock{background-color:#f3f4f6;border-color:#dc2626;color:#6b7280;cursor:not-allowed}.out-of-stock-message{margin-top:12px;padding:12px 16px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:.9375rem;font-weight:500;display:flex;align-items:center;gap:8px}.out-of-stock-message:before{content:"⚠";font-size:1.25rem}.add-to-cart{width:100%;padding:15px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:background .2s}.add-to-cart:hover{background:#1d4ed8}.error,.loading{text-align:center;padding:40px;font-size:1.2rem}.error{color:#dc2626}.purchase-row{display:flex;align-items:center;gap:12px;margin:12px 0;width:100%;max-width:100%;box-sizing:border-box}.purchase-row .add-to-cart{width:auto;padding:12px 16px}.quantity-selector{display:inline-flex;align-items:center;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;flex-shrink:0;max-width:100%}.quantity-selector button{width:40px;height:40px;background:#f3f4f6;border:none;color:#374151;font-size:20px;cursor:pointer}.quantity-selector button:hover:not(:disabled){background:#e5e7eb}.quantity-selector button:disabled{opacity:.5;cursor:not-allowed}.quantity-selector input{width:56px;height:40px;text-align:center;border:none;outline:none;font-size:1rem}.flying-image{position:fixed;left:var(--start-x);top:var(--start-y);z-index:9999;pointer-events:none;width:60px;height:60px;transform:translate(-50%,-50%);animation:flyToCart 1s cubic-bezier(.25,.46,.45,.94) forwards}.flying-image img{width:100%;height:100%;object-fit:contain;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.3)}@keyframes flyToCart{0%{left:var(--start-x);top:var(--start-y);transform:translate(-50%,-50%) scale(1);opacity:1}50%{opacity:1}to{left:var(--end-x);top:var(--end-y);transform:translate(-50%,-50%) scale(.2);opacity:0}}.add-to-cart.success-pulse{animation:successPulse .3s ease-out}@keyframes successPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@media (max-width:768px){.product-detail{padding:12px;overflow-x:hidden;width:100%;max-width:100vw}.product-customizations{margin:20px 0;padding:16px}.product-customizations h3{font-size:1rem}.customization-field{margin-bottom:16px}.customization-field input[type=text],.customization-field textarea{padding:10px 12px;font-size:.9375rem}.file-preview{flex-direction:column;align-items:flex-start}.preview-image{width:100%;height:auto;max-height:200px}.product-content{grid-template-columns:1fr;gap:24px;padding:16px;overflow:visible}.product-content,.product-images{width:100%;max-width:100%;box-sizing:border-box}.product-images{overflow:hidden}.image-hero{width:100%;max-width:100%;box-sizing:border-box}.product-details h1{font-size:1.5rem}.current-price{font-size:1.75rem}.original-price{font-size:1rem}.product-info-grid{grid-template-columns:1fr}.purchase-row{flex-direction:column;align-items:stretch;gap:0;margin:0 0 12px}.purchase-row .add-to-cart{width:100%;margin-top:30px}.quantity-selector{width:auto;align-self:center;flex-shrink:0;margin:12px 0}.lightbox .nav.prev{left:10px}.lightbox .nav.next{right:10px}.lightbox .close{top:10px;right:10px}}@media (max-width:480px){.product-detail{padding:8px;overflow-x:hidden;width:100%;max-width:100vw}.product-content{padding:12px;gap:20px;overflow:visible}.product-content,.product-images{width:100%;max-width:100%;box-sizing:border-box}.product-images{overflow:hidden}.image-hero{box-sizing:border-box}.image-hero,.product-details{width:100%;max-width:100%}.back-link{font-size:.9rem;margin-bottom:12px}.product-details h1{font-size:1.25rem}.current-price{font-size:1.5rem}.description{padding:16px;margin:20px 0}.description h3{font-size:1rem}.product-options{margin:20px 0 12px}.product-options h3{font-size:1rem}.option-select{padding:10px 12px;font-size:.9375rem}.add-to-cart{padding:12px;font-size:1rem}.quantity-selector button{width:36px;height:36px;font-size:18px}.quantity-selector input{width:48px;height:36px;font-size:.9375rem}.thumb img{width:60px;height:60px}}