.product-container { max-width: 1200px; margin: 0 auto; padding: 2rem 1.5rem; font-family: system-ui, -apple-system, sans-serif; } /* Breadcrumbs */ .breadcrumb { font-size: 0.85rem; margin-bottom: 2.5rem; color: #8c8c8c; } .crumb-link { cursor: pointer; transition: color 0.2s; } .crumb-link:hover { color: #111; } .crumb-separator { margin: 0 0.5rem; } .crumb-current { color: #111; font-weight: 500; } /* Two-Column Grid Layout Structure */ .product-layout { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 4rem; } @media (max-width: 992px) { .product-layout { grid-template-columns: 1fr; gap: 2.5rem; } } /* Left Section: Visual Images/Thumbnails Layout */ .gallery-section { display: flex; flex-direction: column; gap: 1rem; } .main-image-wrapper { position: relative; background-color: #f9f9f9; border-radius: 8px; padding: 3rem; display: flex; justify-content: center; align-items: center; min-height: 480px; } .main-image { max-height: 450px; object-fit: contain; mix-blend-mode: multiply; } /* Format Badges Overlay Styles */ .format-badges { position: absolute; top: 1rem; left: 1rem; display: flex; flex-wrap: wrap; gap: 0.5rem; } .badge { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; padding: 0.35rem 0.75rem; border-radius: 100px; font-weight: 600; border: 1px solid transparent; } .badge-physical { background-color: #111; color: #fff; } .badge-ebook { background-color: #fff; color: #111; border-color: #e5e5e5; } .badge-online { background-color: #f0fdf4; color: #166534; border-color: #bbf7d0; } /* Thumbnails container */ .thumbnail-grid { display: flex; gap: 1rem; } .thumbnail-wrapper { width: 80px; height: 80px; border: 1px solid #e5e5e5; border-radius: 6px; padding: 0.5rem; cursor: pointer; background: #f9f9f9; transition: all 0.2s ease; } .thumbnail-wrapper:hover, .thumbnail-wrapper.active { border-color: #111; } .thumbnail-wrapper img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; } /* Right Section: Core Text Typography Controls */ .details-section { display: flex; flex-direction: column; } .meta-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.75rem; } .author-name { font-size: 1.1rem; color: #666; } /* Dynamic Stars C# rendering mapping */ .rating-stars { display: flex; align-items: center; gap: 0.2rem; } .star { color: #e5e5e5; font-size: 1.1rem; } .star.filled { color: #111; /* Solid black stars fits your clean aesthetic perfectly */ } .rating-text { font-size: 0.85rem; color: #666; margin-left: 0.4rem; } .product-title { font-size: 2.5rem; font-family: 'Playfair Display', serif, Georgia; /* Fits the luxury typography tone */ font-weight: 400; line-height: 1.2; margin-bottom: 1rem; color: #111; } .product-price { font-size: 1.5rem; font-weight: 500; margin-bottom: 2rem; color: #111; } /* Standard E-commerce Action Bar Block */ .purchase-actions { display: flex; gap: 1rem; margin-bottom: 2.5rem; } .quantity-picker { display: flex; align-items: center; border: 1px solid #e5e5e5; border-radius: 100px; padding: 0.25rem 0.5rem; } .qty-btn { background: none; border: none; width: 36px; height: 36px; font-size: 1.2rem; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s; } .qty-btn:hover { background-color: #f5f5f5; } .qty-val { min-width: 30px; text-align: center; font-weight: 500; } .btn-add-to-cart { flex-grow: 1; background-color: #111; color: #fff; border: none; border-radius: 100px; font-weight: 500; letter-spacing: 0.02em; cursor: pointer; transition: background-color 0.2s; } .btn-add-to-cart:hover { background-color: #2a2a2a; } .divider { border: 0; border-top: 1px solid #eee; margin-bottom: 2rem; } /* General Layout Text and Cross-Selling */ .info-block { margin-bottom: 2rem; } .info-block h3 { font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; color: #8c8c8c; margin-bottom: 0.75rem; } .description-text, .author-bio { font-size: 0.95rem; line-height: 1.6; color: #444; } .author-bio-card { background-color: #fafafa; padding: 1.5rem; border-radius: 8px; border: 1px solid #f0f0f0; } .btn-text-link { background: none; border: none; padding: 0; margin-top: 1rem; font-weight: 600; font-size: 0.9rem; color: #111; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; } .btn-text-link:hover { color: #444; }