.product-page-main{max-width:var(--container-xl);padding:0 var(--space-6) var(--space-16);margin:0 auto}.product-breadcrumb{padding:var(--space-6) 0 var(--space-8)}.product-breadcrumb-link{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);transition:color var(--transition);font-weight:500;text-decoration:none;display:inline-flex}.product-breadcrumb-link:hover{color:var(--color-text)}.product-page-layout{gap:var(--space-12);grid-template-columns:1fr 1fr;align-items:start;display:grid}.product-page-image-col{top:var(--space-6);position:sticky}.product-page-image-wrap{aspect-ratio:1;border-radius:var(--radius-xl);background:var(--color-bg-subtle);border:1px solid var(--color-border);width:100%;position:relative;overflow:hidden}.product-page-image{object-fit:cover;width:100%;height:100%;display:block}.product-page-image-placeholder{width:100%;height:100%;color:var(--color-border);justify-content:center;align-items:center;display:flex}.product-page-badges{top:var(--space-4);left:var(--space-4);gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.badge-alcohol{font-family:var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--color-warning);background:color-mix(in srgb, var(--color-warning) 15%, white);padding:3px var(--space-3);border-radius:var(--radius-full);font-size:11px;font-weight:600;display:inline-block}.product-page-info-col{gap:var(--space-5);flex-direction:column;display:flex}.product-page-type{letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 10%, transparent);padding:3px var(--space-3);border-radius:var(--radius-full);font-size:12px;font-weight:500;display:inline-block}.product-page-title{font-family:var(--font-heading);color:var(--color-text);font-size:clamp(24px,3vw,36px);font-weight:600;line-height:1.2}.product-page-price-row{align-items:baseline;gap:var(--space-3);display:flex}.product-page-price{font-family:var(--font-heading);color:var(--color-text);font-size:32px;font-weight:600}.product-page-vat{font-size:var(--text-sm);color:var(--color-text-muted)}.product-page-desc{gap:var(--space-2);padding:var(--space-4) var(--space-5);background:var(--color-bg-subtle);border-radius:var(--radius-lg);border-left:3px solid var(--color-primary);flex-direction:column;display:flex}.product-page-desc p{font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.65}.product-page-desc p:empty{display:none}.product-page-section{gap:var(--space-3);flex-direction:column;display:flex}.product-page-section-title{align-items:center;gap:var(--space-2);font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;display:flex}.product-page-options{gap:var(--space-3);flex-direction:column;display:flex}.product-page-option{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.product-page-option.is-unavailable{opacity:.5}.option-row{align-items:center;gap:var(--space-3);display:flex}.option-qty{font-size:var(--text-sm);color:var(--color-text-muted);background:var(--color-bg-subtle);padding:2px var(--space-3);border-radius:var(--radius-full);flex-shrink:0;font-weight:500}.option-price{font-family:var(--font-heading);font-size:var(--text-xl);color:var(--color-text);flex:1;font-weight:600}.option-avail{color:var(--color-success);font-size:12px;font-weight:500}.product-page-locker{align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-border);flex-wrap:wrap;display:flex}.locker-num{font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg-subtle);padding:3px var(--space-3);border-radius:var(--radius-full);font-weight:500}.locker-expiry{align-items:center;gap:var(--space-1);color:var(--color-text-muted);font-size:12px;display:inline-flex}.locker-expiry.is-soon{color:var(--color-warning);font-weight:500}.locker-discount{color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 10%, transparent);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:12px;font-weight:500}.product-page-cta{align-items:center;gap:var(--space-4);padding-top:var(--space-2);flex-wrap:wrap;display:flex}.product-page-avail{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.product-page-cart-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--padding-btn-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;transition:background var(--transition), transform var(--transition);border:none;flex:1;min-width:200px;font-weight:500;display:flex}.product-page-cart-btn:hover:not(:disabled){background:var(--color-primary-hover);transform:translateY(-1px)}.product-page-cart-btn.is-added{background:var(--color-success)}.product-page-cart-btn:disabled{opacity:.4;cursor:not-allowed}@media (max-width:768px){.product-page-layout{gap:var(--space-8);grid-template-columns:1fr}.product-page-image-col{position:static}.product-page-image-wrap{aspect-ratio:4/3}}@media (max-width:640px){.product-page-main{padding:0 var(--space-4) var(--space-12)}.product-page-cart-btn{min-width:unset}}.mix-components{margin-top:var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.mix-components-title{align-items:center;gap:var(--space-2);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600;display:flex}.mix-components-grid{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(80px,1fr));display:grid}.mix-component-item{align-items:center;gap:var(--space-2);text-align:center;flex-direction:column;display:flex}.mix-component-img{border-radius:var(--radius-md);object-fit:cover;border:1px solid var(--color-border);width:72px;height:72px}.mix-component-placeholder{border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);width:72px;height:72px;color:var(--color-border);justify-content:center;align-items:center;display:flex}.mix-component-name{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:80px;font-size:11px;line-height:1.3;display:-webkit-box;overflow:hidden}.mix-detail-list{gap:var(--space-3);flex-direction:column;display:flex}.mix-detail-item{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex}.mix-detail-img{border-radius:var(--radius-md);object-fit:cover;border:1px solid var(--color-border);flex-shrink:0;width:52px;height:52px}.mix-detail-placeholder{border-radius:var(--radius-md);background:var(--color-bg-subtle);border:1px solid var(--color-border);width:52px;height:52px;color:var(--color-border);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mix-detail-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mix-detail-name{font-size:var(--text-sm);color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.mix-detail-desc{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.product-page-fav-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);border:1.5px solid var(--color-border);background:var(--color-bg);color:var(--color-text-muted);font-family:var(--font-sans);font-size:var(--text-base);cursor:pointer;transition:border-color var(--transition), color var(--transition), background var(--transition), transform var(--transition);font-weight:500;display:flex}.product-page-fav-btn:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 6%, transparent);transform:translateY(-1px)}.product-page-fav-btn.is-fav{border-color:var(--color-accent);color:var(--color-accent);background:color-mix(in srgb, var(--color-accent) 8%, transparent)}.product-page-fav-btn:disabled{opacity:.5;cursor:not-allowed}.product-reviews{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--color-border);gap:var(--space-6);flex-direction:column;display:flex}.reviews-title{font-family:var(--font-heading);color:var(--color-text);font-size:clamp(20px,2.5vw,26px);font-weight:600}.reviews-summary{align-items:center;gap:var(--space-8);padding:var(--space-6);background:var(--color-bg-subtle);border-radius:var(--radius-xl);display:flex}.reviews-summary-score{align-items:center;gap:var(--space-2);flex-direction:column;min-width:100px;display:flex}.reviews-average{font-family:var(--font-heading);color:var(--color-text);font-size:3rem;font-weight:700;line-height:1}.reviews-count{font-size:var(--text-sm);color:var(--color-text-muted)}.reviews-distribution{gap:var(--space-2);flex-direction:column;flex:1;display:flex}.rating-bar{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:12px;display:flex}.rating-bar-label{text-align:right;width:10px}.rating-bar-star{color:#f59e0b;flex-shrink:0}.rating-bar-track{background:var(--color-border);border-radius:999px;flex:1;height:6px;overflow:hidden}.rating-bar-fill{background:#f59e0b;border-radius:999px;height:100%;transition:width .4s}.rating-bar-count{width:20px}.stars{align-items:center;gap:2px;display:flex}.star{cursor:default;color:#d1d5db;background:0 0;border:none;padding:0;line-height:1;transition:color .1s,transform .1s}.star.is-active{color:#f59e0b}.star.is-interactive{cursor:pointer}.star.is-interactive:hover,.star.is-interactive:focus-visible{color:#f59e0b;outline:none;transform:scale(1.2)}.reviews-cta{align-items:center;display:flex}.reviews-my-review{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-subtle);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500;display:flex}.reviews-edit-btn,.reviews-delete-btn{cursor:pointer;border-radius:var(--radius-md);transition:background var(--transition), color var(--transition);background:0 0;border:none;align-items:center;gap:4px;padding:4px 8px;font-size:12px;font-weight:600;display:flex}.reviews-edit-btn{color:var(--color-primary)}.reviews-edit-btn:hover{background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.reviews-delete-btn{color:var(--color-error)}.reviews-delete-btn:hover{background:color-mix(in srgb, var(--color-error) 10%, transparent)}.reviews-login-hint{font-size:var(--text-sm);color:var(--color-text-muted)}.reviews-login-hint a{color:var(--color-primary);font-weight:500;text-decoration:none}.reviews-form{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.reviews-form-title{font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-text);font-weight:600}.reviews-form-rating{gap:var(--space-2);flex-direction:column;display:flex}.reviews-form-rating label,.reviews-form-field label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.reviews-form-field{gap:var(--space-1);flex-direction:column;display:flex;position:relative}.reviews-form-field textarea{padding:var(--space-3) var(--space-4);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);resize:vertical;transition:border-color var(--transition), box-shadow var(--transition);outline:none}.reviews-form-field textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 12%, transparent)}.reviews-form-chars{color:var(--color-text-muted);text-align:right;font-size:11px}.reviews-form-error{font-size:var(--text-sm);color:var(--color-error);padding:var(--space-2) var(--space-3);background:color-mix(in srgb, var(--color-error) 8%, transparent);border-radius:var(--radius-md)}.reviews-form-actions{gap:var(--space-3);justify-content:flex-end;display:flex}.reviews-empty{align-items:center;gap:var(--space-3);padding:var(--space-10);color:var(--color-text-muted);text-align:center;flex-direction:column;display:flex}.reviews-list{gap:var(--space-4);flex-direction:column;list-style:none;display:flex}.review-item{padding:var(--space-5);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:var(--space-3);transition:box-shadow var(--transition);flex-direction:column;display:flex}.review-item.is-mine{border-color:color-mix(in srgb, var(--color-primary) 30%, transparent);background:color-mix(in srgb, var(--color-primary) 3%, var(--color-bg))}.review-header{align-items:center;gap:var(--space-3);display:flex}.review-avatar{color:var(--color-primary);flex-shrink:0}.review-meta{flex-direction:column;flex:1;gap:2px;display:flex}.review-author{font-size:var(--text-sm);color:var(--color-text);align-items:center;gap:var(--space-2);font-weight:600;display:flex}.review-mine-badge{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.review-date{color:var(--color-text-muted);font-size:12px}.review-comment{font-size:var(--text-sm);color:var(--color-text-muted);padding-left:calc(32px + var(--space-3));line-height:1.7}.reviews-skeleton{border-radius:var(--radius-xl);background:linear-gradient(90deg, var(--color-border) 25%, var(--color-bg-subtle) 50%, var(--color-border) 75%);background-size:800px 100%;height:200px;animation:1.4s linear infinite shimmer}@media (max-width:600px){.reviews-summary{align-items:flex-start;gap:var(--space-4);flex-direction:column}.reviews-my-review{flex-wrap:wrap}}
