/* =====================================================================
   Product details page
   ===================================================================== */

.product-page { padding-bottom: 3rem; }
.product-page .breadcrumb { justify-content: flex-start; margin-bottom: 1.5rem; }

/* Gallery */
.product-gallery { position: sticky; top: 110px; }
.gallery-main { position: relative; border-radius: var(--radius); overflow: hidden; background: var(--cream); aspect-ratio: 1 / 1; border: 1px solid var(--line); cursor: zoom-in; }
.gallery-main img { width: 100%; height: 100%; object-fit: cover; transition: opacity .3s, transform .2s ease-out; transform-origin: center; }
.gallery-main.zooming img { transform: scale(1.8); }
.gallery-main img.fade-out { opacity: 0; }
.gallery-main .badge-sale { position: absolute; top: 1rem; left: 1rem; z-index: 2; }
.gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--dark-brown); box-shadow: var(--shadow-sm); opacity: 0; transition: opacity .25s; }
.gallery-nav.prev { left: 1rem; }
.gallery-nav.next { right: 1rem; }
.gallery-main:hover .gallery-nav, .gallery-nav:focus-visible { opacity: 1; }
.gallery-nav:hover { background: var(--primary-gold); color: var(--white); }
.gallery-thumbs { display: flex; gap: .75rem; margin-top: .9rem; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: thin; }
.gallery-thumbs .thumb { flex: 0 0 84px; height: 84px; border-radius: var(--radius-sm); overflow: hidden; border: 2px solid transparent; padding: 0; background: var(--cream); opacity: .7; transition: all .2s; }
.gallery-thumbs .thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-thumbs .thumb.active, .gallery-thumbs .thumb:hover { border-color: var(--primary-gold); opacity: 1; }

/* Info */
.product-name { font-size: clamp(2rem, 3.4vw, 2.8rem); margin-bottom: .6rem; }
.product-meta { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; align-items: center; font-size: .88rem; color: var(--muted); margin-bottom: 1.2rem; }
.stock-badge { display: inline-flex; align-items: center; gap: .35rem; font-weight: 500; }
.stock-badge i { font-size: .5rem; }
.stock-in { color: #067647; }
.stock-low { color: #B54708; }
.stock-out { color: #B42318; }

.product-price.large { align-items: center; padding: 1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-bottom: 1.2rem; }
.product-price.large .price-now { font-size: 1.9rem; color: var(--primary-gold); font-weight: 600; letter-spacing: .01em; }
.product-price.large .price-was { font-size: 1.1rem; }
.price-save { background: #DCFAE6; color: #067647; font-size: .78rem; font-weight: 600; padding: .25rem .65rem; border-radius: 999px; }
.product-short { font-size: 1.02rem; color: var(--brown-soft); }

.quick-specs { list-style: none; padding: 0; margin: 0 0 1.4rem; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .75rem; }
.quick-specs li { display: grid; grid-template-columns: auto 1fr; column-gap: .7rem; align-items: center; background: var(--cream); border-radius: var(--radius-sm); padding: .7rem .9rem; }
.quick-specs i { grid-row: span 2; color: var(--primary-gold); font-size: 1.3rem; }
.quick-specs span { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.quick-specs strong { font-weight: 500; font-size: .92rem; }

.qty-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 1.2rem; }
.cta-stack { display: grid; gap: .75rem; margin-bottom: 1.2rem; }
.cta-main { font-size: 1.1rem; padding: 1rem 2rem; text-transform: uppercase; letter-spacing: .08em; }
.btn-outline-gold.active i { color: #FFD1CC; }

.product-accordion { margin-top: 1.6rem; }
.product-accordion .accordion-item { border: 0; border-bottom: 1px solid var(--line); background: transparent; }
.product-accordion .accordion-button { font-family: var(--font-display); font-size: 1.3rem; font-weight: 600; color: var(--dark-brown); background: transparent; padding: 1.1rem 0; box-shadow: none; }
.product-accordion .accordion-button:not(.collapsed) { color: var(--primary-gold); }
.product-accordion .accordion-button:focus { box-shadow: none; }
.product-accordion .accordion-body { padding: 0 0 1.3rem; color: var(--brown-soft); }
.spec-table th { width: 38%; font-weight: 500; color: var(--muted); background: transparent; }
.spec-table td, .spec-table th { border-color: var(--line); padding: .6rem .25rem; }

/* Sticky mobile CTA */
.mobile-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1045; background: var(--white); border-top: 1px solid var(--line); box-shadow: 0 -8px 24px rgba(52, 17, 0, .08); padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.mobile-cta > div { min-width: 0; }
.mobile-cta strong { color: var(--primary-gold); font-size: 1.1rem; }
