.v2-product-page { background:#fff; color:#333; padding-bottom:48px; }
.v2-product-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; padding:12px 0 36px; }
.v2-product-gallery { min-width:0; }
#v2-product-large-link { display:flex; justify-content:center; align-items:center; height:460px; padding:28px; border:1px solid #dedede; border-radius:10px; }
#v2-product-large { width:100%; height:100%; object-fit:contain; }
.v2-product-gallery>p { color:#606873; font-size:12px; text-align:center; line-height:1.6; }
.v2-product-thumbnails { display:flex; flex-wrap:wrap; gap:10px; }
.v2-product-thumbnails a { display:block; width:72px; height:72px; padding:8px; border:1px solid #606873; border-radius:6px; }
.v2-product-thumbnails a[aria-current] { border:3px solid #f78400; }
.v2-product-thumbnails img { width:100%; height:100%; object-fit:contain; }
.v2-product-reference { font-size:12px; color:#606873; }
.v2-product-purchase h1 { margin:10px 0 14px; font-size:clamp(23px,2.4vw,31px); line-height:1.4; overflow-wrap:anywhere; }
.v2-product-rating-link { display:inline-flex; align-items:center; min-height:44px; color:#333; border-radius:4px; }
.v2-rating-stars { display:inline-flex; gap:3px; vertical-align:middle; }
.v2-rating-star { position:relative; display:block; width:22px; height:22px; }
.v2-rating-star svg { display:block; width:22px; height:22px; fill:#fff; stroke:#606873; stroke-width:1.2; }
.v2-rating-fill { position:absolute; inset:0 auto 0 0; overflow:hidden; }
.v2-rating-fill svg { fill:#f78400; }
.v2-review-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.v2-rating-choice { border:0; padding:0; margin:0; }
.v2-rating-choice legend { margin-bottom:8px; font-size:13px; }
.v2-rating-options { display:flex; width:max-content; position:relative; }
.v2-product-page .v2-rating-options input { position:absolute; left:0; top:0; width:1px; height:1px; min-height:0; padding:0; opacity:0; pointer-events:none; }
.v2-rating-options label { display:flex; align-items:center; justify-content:center; width:44px; height:44px; cursor:pointer; border-radius:4px; }
.v2-rating-options svg { width:28px; height:28px; fill:#fff; stroke:#606873; stroke-width:1.2; }
.v2-rating-options input:checked+label svg,.v2-rating-options label:has(~ input:checked) svg { fill:#f78400; }
.v2-rating-options input:focus-visible+label { outline:3px solid #333; outline-offset:1px; }
.v2-product-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:14px; margin-top:24px; }
.v2-product-price strong { font-size:30px; }
.v2-product-price del { font-size:16px; color:#606873; }
.v2-product-stock { padding-left:10px; border-left:3px solid #f78400; font-size:13px; }
.v2-product-rich { font-size:14px; line-height:1.8; overflow-wrap:anywhere; overflow-x:auto; }
.v2-product-rich :is(h2,h3,h4,h5,h6) { font-size:17px; line-height:1.5; margin:20px 0 10px; }
.v2-product-rich ul,.v2-product-rich ol { padding-left:22px; }
.v2-product-rich table { border-collapse:collapse; width:100%; }
.v2-product-rich td,.v2-product-rich th { padding:10px; border:1px solid #dedede; text-align:left; }
.v2-product-short { margin:22px 0; }
.v2-product-options { display:flex; flex-wrap:wrap; gap:12px; }
.v2-product-page label { display:grid; gap:8px; font-size:13px; }
.v2-product-page :is(input,select,textarea) { min-height:44px; max-width:100%; border:1px solid #606873; border-radius:5px; padding:10px; color:#333; background:#fff; font:inherit; }
.v2-product-buy { display:flex; align-items:end; gap:14px; margin-top:18px; }
.v2-product-buy input { width:90px; }
.v2-product-buy button { flex:1; min-height:48px; font-size:14px; cursor:pointer; }
.v2-product-buy button:disabled { background:#f2f3f3; border-color:#606873; cursor:default; }
.v2-product-submit-status { min-height:20px; font-size:13px; }
.v2-product-company { display:grid; gap:12px; padding:20px; border-radius:8px; background:#f2f3f3; font-size:13px; }
.v2-product-company a,.v2-product-reviews a { color:#333; text-decoration:underline; text-underline-offset:3px; }
.v2-product-message { padding:18px; margin-bottom:20px; border:1px solid #606873; border-left:4px solid #f78400; background:#f2f3f3; border-radius:6px; font-size:14px; line-height:1.7; }
.v2-product-message a { margin-left:10px; color:inherit; text-decoration:underline; font-weight:700; }
.v2-product-message.is-success { border-color:#24713d; background:#edf8f0; color:#205e34; }
.v2-product-details { padding:24px; background:#f2f3f3; border-radius:10px; }
.v2-product-details details { padding:4px 18px; background:#fff; border:1px solid #dedede; border-radius:6px; margin-bottom:10px; }
.v2-product-details summary { cursor:pointer; padding:16px 0; font-size:16px; font-weight:700; }
.v2-product-details .v2-product-rich,.v2-product-reviews { padding:0 0 18px; }
.v2-product-reviews { font-size:14px; line-height:1.7; }
.v2-product-reviews article { padding:16px 0; border-bottom:1px solid #dedede; }
.v2-product-reviews form { display:grid; gap:14px; max-width:600px; margin-top:20px; }
.v2-product-related { padding-top:30px; }
.v2-product-related h2 { font-size:23px; margin-bottom:20px; }
.v2-product-page :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #333; outline-offset:3px; }
@media(max-width:760px) {
    .v2-product-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
    #v2-product-large-link { height:310px; padding:20px; }
    .v2-product-price strong { font-size:26px; }
    .v2-product-details { padding:10px; }
    .v2-product-page :is(input,select,textarea) { font-size:16px; }
    .v2-product-buy { gap:10px; }
    .v2-product-buy input { width:70px; }
    .v2-product-buy button { font-size:13px; padding:10px 8px; }
}
