.review-section{padding:var(--space-xl);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.review-title{color:var(--primary);font-size:1.75rem;font-weight:600;margin-bottom:var(--space-xl);text-align:center}.leave-review-section{background:var(--background);border-radius:var(--radius-md);padding:var(--space-lg);margin-bottom:var(--space-xl)}.leave-review-title{color:var(--primary);font-size:1.25rem;font-weight:500;margin-bottom:var(--space-md)}.leave-review-form{display:flex;flex-direction:column;gap:var(--space-md)}.comment-container,.rating-container{display:flex;flex-direction:column;gap:var(--space-xs)}.comment-container label,.rating-container label{color:var(--text);font-weight:500;font-size:.95rem}.rating-stars{padding:var(--space-xs) 0}textarea{width:100%;padding:var(--space-md);border:1px solid var(--muted);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-primary);font-size:1rem;resize:vertical;min-height:120px;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px rgba(119,81,68,.1)}.submit-review-btn{background:var(--primary);color:var(--surface);border:none;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-weight:500;cursor:pointer;transition:all var(--transition-normal)}.submit-review-btn:hover:not(:disabled){background:var(--primary-light);transform:translateY(-2px)}.submit-review-btn:disabled{background:var(--muted);cursor:not-allowed}.reviews-list{margin-top:var(--space-xl);display:flex;flex-direction:column;gap:var(--space-lg)}.review-item{padding:var(--space-lg);background:var(--background);border-radius:var(--radius-md);border:1px solid var(--muted)}.review-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.reviewer-name{font-weight:500;color:var(--primary)}.review-comment{color:var(--text);line-height:1.6;margin:var(--space-sm) 0}.review-date{display:block;font-size:.875rem;color:var(--text-light);margin-top:var(--space-sm)}.login-prompt{text-align:center;padding:var(--space-lg);background:var(--background);border-radius:var(--radius-md);color:var(--text-light)}@media (max-width:768px){.review-section{padding:var(--space-lg)}.review-title{font-size:1.5rem}.review-header{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}}.product-container{padding:var(--space-xl) 0;max-width:1200px;margin:0 auto}.product-content{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md);margin-bottom:var(--space-2xl)}.loading-container{min-height:60vh;display:flex;align-items:center;justify-content:center}.loader{width:48px;height:48px;border-top:4px solid var(--muted);border:4px solid var(--muted);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.product-image-container{position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);box-shadow:var(--shadow-md)}.product-image{width:100%;height:auto;border-radius:var(--radius-lg);object-fit:cover;opacity:0;transition:opacity .3s ease}.product-image.loaded{opacity:1}.product-details{padding:var(--space-lg)}.product-title{font-size:2rem;color:var(--text);margin-bottom:var(--space-md)}.product-description{color:var(--text-light);line-height:1.6;margin-bottom:var(--space-lg)}.product-meta{display:grid;grid-gap:var(--space-md);gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md);background:var(--surface-alt);border-radius:var(--radius-md)}.meta-item{display:flex;justify-content:space-between;align-items:center}.meta-label{color:var(--text-light);font-weight:500}.meta-value{font-weight:600}.meta-value.price{color:var(--primary);font-size:1.25rem}.meta-value.low-stock{color:var(--error)}.meta-value.occasions,.meta-value.relations{display:flex;flex-wrap:wrap;gap:var(--space-xs);color:var(--text);font-size:.9rem;font-style:italic}.quantity-section{margin:var(--space-lg) 0}.quantity-controls{display:flex;align-items:center;gap:var(--space-md);margin-top:var(--space-sm)}.quantity-btn{padding:var(--space-sm) var(--space-md);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;transition:all .2s ease}.quantity-btn:hover:not(:disabled){background:var(--surface-alt)}.quantity-btn:disabled{opacity:.5;cursor:not-allowed}.quantity-value{font-size:1.1rem;font-weight:500;min-width:40px;text-align:center}.add-to-cart-button{width:100%;padding:var(--space-md);border:none;border-radius:var(--radius-md);background:var(--primary);color:var(--surface);font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;justify-content:center;align-items:center;gap:var(--space-sm)}.add-to-cart-button:hover:not(:disabled){background:var(--primary-dark)}.add-to-cart-button:disabled{opacity:.7;cursor:not-allowed}.button-content{display:flex;align-items:center;justify-content:center;gap:var(--space-sm)}.spinner{width:20px;height:20px;border:2px solid var(--surface);border-top:2px solid transparent;border-radius:50%;animation:spin 1s linear infinite}.notification{position:fixed;bottom:20px;right:20px;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-weight:500;z-index:1000}.notification.success{background:var(--success);color:var(--surface)}.notification.error{background:var(--error);color:var(--surface)}.reviews-section{margin-top:var(--space-xl);padding-top:var(--space-xl);border-top:1px solid var(--border)}@media (max-width:768px){.product-container{padding:var(--space-md)}.product-title{font-size:1.5rem}.variant-options{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.quantity-controls{justify-content:center}}.product-image-skeleton{aspect-ratio:1;border-radius:var(--radius-lg);width:100%!important;height:auto!important}.mb-4{margin-bottom:var(--space-lg)}.mb-2{margin-bottom:var(--space-md)}.variant-selection{margin:var(--space-lg) 0}.variant-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));grid-gap:var(--space-sm);gap:var(--space-sm);margin-top:var(--space-sm)}.variant-option{padding:var(--space-md);border:2px solid var(--border);border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all .2s ease;background:var(--surface)}.variant-option.selected{background:var(--primary-light)}.variant-option.selected,.variant-option:hover:not(.out-of-stock){border-color:var(--primary)}.variant-option.out-of-stock{opacity:.6;cursor:not-allowed;background:var(--surface-alt)}.sold-out{font-size:.75rem;color:var(--error);display:block;margin-top:.25rem}@media (max-width:768px){.variant-options{gap:.5rem}.variant-option{padding:.5rem .75rem;font-size:.9rem}}