.product-page{overflow-x:clip;background:#fff}
.product-container{padding:32px 0}
.product-breadcrumb{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:16px;color:#6b7280;font-size:14px}
.product-breadcrumb a:hover{color:#111;text-decoration:underline;text-underline-offset:3px}
.product-breadcrumb .current{overflow:hidden;color:#111;text-overflow:ellipsis;white-space:nowrap}
.product-detail-main{padding:0}
.product-detail-grid{display:grid;grid-template-columns:minmax(0,55fr) minmax(0,45fr);gap:40px;align-items:start}
.product-gallery{min-width:0}
.product-image-large{position:relative;overflow:hidden;cursor:zoom-in;border-radius:12px;background:#f3f4f6}
.product-image-large img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .45s ease}
.product-image-large:hover img{transform:scale(1.025)}
.product-zoom{position:absolute;top:12px;right:12px;z-index:2;display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;color:#111;background:rgba(255,255,255,.82);box-shadow:0 2px 8px rgba(0,0,0,.08);opacity:0;transition:opacity .2s}
.product-image-large:hover .product-zoom{opacity:1}
.product-thumbs{display:flex;gap:8px;overflow:auto;margin-top:12px;padding:0 0 3px}
.product-thumb{width:64px;height:64px;flex:0 0 64px;overflow:hidden;border:2px solid #e5e7eb;border-radius:8px;padding:0;background:#fff;transition:border-color .2s,box-shadow .2s}
.product-thumb:hover{border-color:#9ca3af}
.product-thumb.is-active{border-color:#111;box-shadow:0 0 0 1px #111}
.product-thumb img{width:100%;height:100%;object-fit:cover}
.product-summary{padding:0}
.product-brand{display:inline-flex;align-items:center;margin:0 0 8px;color:#6b7280;font-size:14px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.product-brand:hover{color:#111}
.product-summary h1{max-width:650px;margin:0 0 12px;color:#111;font-size:30px;font-weight:600;line-height:1.25}
.product-review-summary{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:#9ca3af;font-size:14px}
.product-stars{display:inline-flex;gap:2px}
.review-summary-link{padding:0;border:0;background:transparent;color:#6b7280;font-size:14px;text-decoration:underline;text-underline-offset:3px}
.review-summary-link:hover{color:#111}
.product-detail-price{display:flex;align-items:baseline;gap:8px;margin:0 0 4px}
.product-detail-price strong{color:#ef4444;font-size:36px;font-weight:700;line-height:1.2}
.product-detail-price del{color:#9ca3af;font-size:18px}
.product-save-badge{display:inline-block;margin-top:2px;margin-bottom:24px;padding:2px 8px;border-radius:4px;color:#ef4444;background:#fef2f2;font-size:12px;font-weight:600}
.product-option-group,.product-quantity-group{margin-top:24px}
.product-option-label{margin-bottom:12px;color:#111;font-size:14px;font-weight:600}
.product-options{display:flex;flex-wrap:wrap;gap:8px}
.product-option{cursor:pointer}
.product-option input{position:absolute;opacity:0;pointer-events:none}
.product-option span{display:inline-flex;min-height:42px;align-items:center;gap:7px;border:1px solid #d1d5db;border-radius:8px;padding:0 16px;color:#374151;background:#fff;font-size:14px;transition:border-color .2s,background-color .2s,color .2s,box-shadow .2s}
.product-option span small{color:#9ca3af;font-size:12px}
.product-option:hover span{border-color:#111}
.product-option input:checked+span{border-color:#111;color:#fff;background:#111;box-shadow:0 4px 10px rgba(0,0,0,.12)}
.product-option input:checked+span small{color:#d1d5db}
.quantity-control{display:flex;align-items:center;gap:12px}
.quantity-control button{width:40px;height:40px;border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111;font-size:19px;line-height:1}
.quantity-control button:hover{border-color:#111}
.quantity-control button:disabled{cursor:not-allowed;opacity:.45}
.quantity-control input{width:48px;height:40px;border:0;padding:0;outline:0;color:#111;background:#fff;text-align:center;font-size:18px}
.quantity-control input:focus{box-shadow:inset 0 0 0 1px #111}
.quantity-control>span{margin-left:0;color:#6b7280;font-size:14px}
.quantity-control>span b{color:#111;font-weight:500}
.product-actions{display:flex;gap:12px;margin:32px 0 0}
.product-actions .button{min-height:48px;flex:1;border-radius:999px;padding:0 20px;font-size:14px;font-weight:600;text-transform:uppercase}
.product-actions .button-dark{box-shadow:0 2px 5px rgba(0,0,0,.08)}
.button-outline{display:inline-flex;align-items:center;justify-content:center;border:2px solid #111;border-radius:999px;padding:0 20px;color:#111;background:#fff;font-size:14px;font-weight:600;transition:.2s}
.button-outline:hover{color:#fff;background:#111}
.form-message{min-height:20px;margin:8px 0;color:#9b7a21;font-size:13px}
.product-returns{display:flex;align-items:center;gap:12px;margin-top:24px;border-radius:12px;padding:16px;color:#4b5563;background:#f8f9fa;font-size:14px}
.product-returns svg{flex:none;color:#6b7280}
.product-trust{display:flex;flex-wrap:wrap;gap:14px;margin-top:16px;color:#6b7280;font-size:12px}
.product-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;color:#6b7280;font-size:12px}
.product-tags span{border-radius:4px;padding:4px 8px}
.tag-new{color:#2563eb;background:#eff6ff}.tag-hot{color:#c2410c;background:#fff7ed}.tag-recommend{color:#15803d;background:#f0fdf4}
.product-content-section{margin-top:64px}
.product-section-heading{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.product-section-heading>span{width:4px;height:24px;border-radius:4px;background:#111}
.product-section-heading h2{margin:0;color:#111;font-size:20px;font-weight:600;line-height:28px}
.product-section-heading h2 em{color:#9ca3af;font-size:16px;font-style:normal;font-weight:400}
.product-section-heading>a{margin-left:auto;color:#6b7280;font-size:14px}
.product-section-heading>a:hover{color:#111}
.product-details-panel{display:grid;grid-template-columns:minmax(0,1fr);gap:32px}
.product-description-long{color:#374151;font-size:16px;line-height:1.75;white-space:pre-line}
.product-description-long p{margin:0}
.product-specs{border-radius:12px;padding:24px;background:#f8f9fa}
.product-specs h3{margin:0 0 16px;color:#111;font-size:14px}
.product-specs dl{margin:0}.product-specs dl>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #e5e7eb;padding:10px 0;font-size:14px}.product-specs dl>div:last-child{border-bottom:0}.product-specs dt{color:#6b7280}.product-specs dd{margin:0;color:#111;font-weight:500;text-align:right}
.review-summary-box{display:flex;align-items:center;gap:24px;margin-bottom:32px;border-radius:12px;padding:24px;background:#f8f9fa}
.review-score{display:flex;min-width:110px;align-items:center;flex-direction:column;text-align:center}.review-score strong{color:#111;font-size:36px;line-height:1.1}.review-score small{margin-top:4px;color:#6b7280;font-size:14px}.review-stars{display:flex;align-items:center;gap:2px;margin-top:5px}
.review-bars{display:grid;width:100%;max-width:520px;gap:6px}.review-bars>div{display:flex;align-items:center;gap:9px;color:#6b7280;font-size:12px}.review-bars>div>span{width:9px}.review-bars i{height:10px;flex:1;overflow:hidden;border-radius:999px;background:#e5e7eb}.review-bars b{display:block;height:100%;border-radius:999px;background:#d4af37}.review-bars small{width:24px;color:#9ca3af;text-align:right}
.review-list{display:grid;gap:0}.review-row{padding:0 0 24px;margin-bottom:24px;border-bottom:1px solid #f0f1f2}.review-author{display:flex;align-items:center;gap:12px}.review-avatar{display:flex;width:36px;height:36px;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;color:#6b7280;background:#e5e7eb;font-size:13px;font-weight:600}.review-avatar img{width:100%;height:100%;object-fit:cover}.review-author strong{display:block;color:#111;font-size:14px;font-weight:500}.review-author .review-stars{margin-top:3px}.review-row p{margin:10px 0 0;color:#374151;font-size:14px;line-height:1.7}.review-empty{padding:40px 0;color:#9ca3af;font-size:14px;text-align:center}
.influencer-list{display:grid;gap:16px}.influencer-card{display:grid;grid-template-columns:192px minmax(0,1fr);overflow:hidden;border:1px solid #e5e7eb;border-radius:12px}.influencer-avatar{min-height:192px;background:#f3f4f6}.influencer-avatar img{width:100%;height:100%;object-fit:cover}.influencer-card>div:last-child{padding:20px}.influencer-meta{display:flex;align-items:center;gap:12px;margin-bottom:4px}.influencer-meta strong{color:#111;font-size:14px}.influencer-meta small{color:#9ca3af;font-size:12px}.influencer-card p{margin:12px 0 0;color:#374151;font-size:14px;line-height:1.7}
.product-related{margin-top:64px;padding-bottom:32px}.product-related .product-section-heading{margin-bottom:24px}.related-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:20px;row-gap:24px}.related-product{min-width:0}.related-product-image{overflow:hidden;aspect-ratio:1;margin-bottom:8px;border-radius:12px;background:#f3f4f6}.related-product-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.related-product:hover .related-product-image img{transform:scale(1.05)}.related-product-name{display:-webkit-box;min-height:38px;overflow:hidden;margin-bottom:4px;color:#374151;font-size:14px;line-height:19px;-webkit-box-orient:vertical;-webkit-line-clamp:2}.related-product>strong{color:#111;font-size:14px}
.image-lightbox{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.88);padding:28px}.image-lightbox[hidden]{display:none}.image-lightbox img{max-width:min(900px,90vw);max-height:85vh;border-radius:4px;object-fit:contain}.image-lightbox button{position:absolute;top:18px;right:18px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:27px;line-height:1}
@media (max-width:767px){.product-container{padding:24px 0}.product-breadcrumb{font-size:12px}.product-detail-grid{grid-template-columns:1fr;gap:28px}.product-image-large{border-radius:12px}.product-zoom{top:10px;right:10px;opacity:1}.product-thumb{width:64px;height:64px;flex-basis:64px}.product-summary h1{font-size:24px}.product-review-summary{margin-bottom:16px}.product-detail-price strong{font-size:30px}.product-detail-price del{font-size:16px}.product-option-group,.product-quantity-group{margin-top:22px}.product-actions{gap:8px;margin-top:28px}.product-actions .button,.button-outline{padding:0 12px;font-size:12px}.product-returns{padding:14px;font-size:13px}.product-trust{gap:9px;font-size:11px}.product-content-section{margin-top:48px}.product-section-heading{margin-bottom:20px}.product-section-heading h2{font-size:18px}.product-description-long{font-size:14px}.product-specs{padding:20px}.review-summary-box{align-items:flex-start;flex-direction:column;gap:22px;padding:20px}.review-score{width:100%}.review-bars{max-width:none}.review-row p{font-size:13px}.influencer-card{grid-template-columns:1fr}.influencer-avatar{height:190px;min-height:0}.influencer-card>div:last-child{padding:17px}.product-related{margin-top:48px}.related-product-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:12px;row-gap:24px}.related-product-name{font-size:13px;line-height:18px}}

/* Keep legacy shop.css rules from changing the Vue-matched SKU layout. */
.product-option-group.sku-list{display:block;margin:24px 0 0}
.product-option-group.sku-list>.product-options{display:flex;flex-wrap:wrap;gap:8px}
.product-option-group.sku-list .product-option{border:0;border-radius:0;padding:0;color:inherit;font-size:inherit}
.product-option-group.sku-list .product-option:focus-within span{border-color:#111;box-shadow:0 0 0 2px rgba(17,17,17,.14)}
.product-option-group.sku-list .product-option input:checked+span{border-color:#111;color:#fff;background:#111;box-shadow:0 4px 10px rgba(0,0,0,.12)}
.product-detail-grid>*{min-width:0}
.product-gallery,.product-summary{width:100%;max-width:100%}
.product-image-large{width:100%;max-width:100%}
.product-breadcrumb>*{min-width:0}
.product-breadcrumb .current{flex:1}
.product-description-long .muted-count{margin:0;color:#374151;font-size:16px;line-height:1.75;text-align:left}
.product-summary h1{width:100%;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.product-actions .button,.product-actions .button-outline{min-width:0}

/* Keep the quantity selector compact and consistent with the Vue storefront. */
.quantity-control{display:flex;min-height:40px;align-items:center;gap:12px}
.quantity-control button{display:inline-flex;width:40px;height:40px;flex:0 0 40px;align-items:center;justify-content:center;border:1px solid #d1d5db;border-radius:8px;padding:0;background:#fff;color:#111;font-size:18px;font-weight:400;line-height:1;transition:border-color .2s,background-color .2s,color .2s}
.quantity-control button:hover:not(:disabled){border-color:#111;background:#fafafa}
.quantity-control button:focus-visible{outline:2px solid #111;outline-offset:2px}
.quantity-control button:disabled{border-color:#e5e7eb;background:#f9fafb;color:#9ca3af;cursor:not-allowed;opacity:1}
.quantity-control input{width:48px;height:40px;flex:0 0 48px;border:0;border-radius:8px;padding:0;color:#111;background:#fff;text-align:center;font-size:18px;font-weight:500;line-height:40px;outline:0;appearance:textfield}
.quantity-control input::-webkit-outer-spin-button,.quantity-control input::-webkit-inner-spin-button{margin:0;appearance:none}
.quantity-control input:focus{box-shadow:inset 0 0 0 1px #111}
.quantity-control>span{display:inline-flex;min-width:max-content;align-items:baseline;margin-left:0;color:#6b7280;font-size:14px;line-height:20px;white-space:nowrap}
.quantity-control>span b{color:#111;font-weight:500}
@media (max-width:767px){.quantity-control{gap:10px}.quantity-control>span{font-size:13px}.quantity-control input{font-size:17px}}
