.sr-only {
  position: absolute; width: 1px; height: 1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;
}

.breadcrumb { padding-block: 1.4rem; font-size: 0.8rem; opacity: 0.65; }
.breadcrumb ol { display: flex; gap: 0.5rem; list-style: none; }
.breadcrumb li:not(:last-child)::after { content: "/"; margin-left: 0.5rem; opacity: 0.5; }

.product-view {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  padding-block: 2rem 4rem;
}

.product-gallery-main {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--ink-800);
  border: 1px solid var(--line);
  aspect-ratio: 1/1;
}
.product-gallery-main img { width: 100%; height: 100%; object-fit: cover; }

.product-gallery-thumbs { display: flex; gap: 0.8rem; margin-top: 0.8rem; }
.thumb {
  width: 72px; height: 72px; border-radius: 6px; overflow: hidden;
  border: 1px solid var(--line); background: none; cursor: pointer; padding: 0;
}
.thumb.active { border-color: var(--gold); }
.thumb img { width: 100%; height: 100%; object-fit: cover; }

.product-info h1 { font-size: clamp(1.8rem, 3vw, 2.4rem); margin: 0.5rem 0 0.8rem; }

.product-rating { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 1rem; }
.rating-badge {
  display: inline-flex; align-items: center; gap: 0.3rem;
  background: #3F8C3F; color: #fff; font-family: var(--font-mono); font-size: 0.85rem; font-weight: 600;
  padding: 0.28rem 0.6rem; border-radius: 5px; line-height: 1;
}
.rating-badge svg { fill: #fff; }
.rating-count-link { font-size: 0.85rem; opacity: 0.75; }
.rating-count-link:hover { opacity: 1; color: var(--gold); }
.product-rating-empty { font-size: 0.85rem; opacity: 0.7; margin-bottom: 1rem; }
.product-rating-empty a { color: var(--gold); }

.product-price { font-family: var(--font-mono); font-size: 1.8rem; margin-bottom: 0.2rem; display: flex; align-items: baseline; gap: 0.7rem; flex-wrap: wrap; }
.product-price-old { font-size: 1.05rem; opacity: 0.5; text-decoration: line-through; }
.product-price-off { font-size: 0.95rem; color: #3F8C3F; font-weight: 600; }
.product-tax-note { font-size: 0.78rem; opacity: 0.55; margin-bottom: 1.4rem; }

.product-desc { opacity: 0.8; margin-bottom: 1.6rem; max-width: 48ch; }

.product-highlights { margin-bottom: 1.6rem; padding: 1.1rem 1.3rem; background: var(--ink-800); border: 1px solid var(--line); border-radius: var(--radius); }
.product-highlights h2 { font-family: var(--font-mono); font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.05em; opacity: 0.7; margin-bottom: 0.7rem; font-weight: 500; }
.product-highlights ul { padding-left: 1.1rem; }
.product-highlights li { font-size: 0.9rem; opacity: 0.85; margin-bottom: 0.35rem; }

.product-description-block, .product-specs-block { margin-top: 2.2rem; padding-top: 1.8rem; border-top: 1px solid var(--line); }
.product-description-block h2, .product-specs-block h2 { font-size: 1.15rem; margin-bottom: 0.9rem; font-family: var(--font-display); }
.product-description-block p { opacity: 0.82; line-height: 1.7; }

.specs-table { width: 100%; border-collapse: collapse; }
.specs-table th, .specs-table td { text-align: left; padding: 0.6rem 0.4rem; font-size: 0.88rem; border-bottom: 1px solid var(--line); }
.specs-table th { width: 38%; opacity: 0.6; font-weight: 500; }
.specs-table td { opacity: 0.9; }
.specs-table tr:last-child th, .specs-table tr:last-child td { border-bottom: none; }

.pack-select { display: flex; gap: 0.7rem; flex-wrap: wrap; margin-bottom: 1.6rem; }
.pack-option {
  font-family: var(--font-mono); font-size: 0.78rem;
  padding: 0.7rem 1.1rem; border-radius: 8px;
  border: 1px solid var(--line); background: var(--ink-800); color: var(--paper);
  cursor: pointer; transition: border-color 0.2s ease;
}
.pack-option.active, .pack-option:hover { border-color: var(--rose); color: var(--rose); }

.product-cta-row { display: flex; gap: 0.8rem; align-items: center; flex-wrap: wrap; }
.qty-input {
  width: 64px; padding: 0.85rem 0.6rem; text-align: center;
  background: var(--ink-800); border: 1px solid var(--line); color: var(--paper);
  border-radius: 8px; font-family: var(--font-mono);
}
.btn-lg { padding: 0.95rem 1.8rem; }

.accordion { border-top: 1px solid var(--line); padding-block: 1rem; }
.accordion summary {
  cursor: pointer; font-family: var(--font-mono); font-size: 0.85rem;
  letter-spacing: 0.03em; text-transform: uppercase;
}
.accordion p { margin-top: 0.8rem; opacity: 0.75; font-size: 0.92rem; }

@media (max-width: 860px) {
  .product-view { grid-template-columns: 1fr; }
}

/* ---------- Ratings & Reviews (Flipkart-style) ---------- */
.rating-summary-panel {
  display: grid; grid-template-columns: 220px 1fr; gap: 2.5rem; align-items: center;
  margin-top: 1.6rem; padding: 1.6rem; background: var(--ink-800); border: 1px solid var(--line); border-radius: var(--radius);
}
.rating-summary-score { text-align: center; border-right: 1px solid var(--line); padding-right: 1.5rem; }
.rating-summary-number { font-family: var(--font-display); font-size: 2.6rem; font-weight: 700; line-height: 1; }
.rating-summary-number span { font-size: 1.2rem; opacity: 0.5; font-weight: 400; }
.rating-summary-stars { color: var(--gold); letter-spacing: 2px; margin: 0.5rem 0; font-size: 1.1rem; }
.rating-summary-count { font-size: 0.78rem; opacity: 0.65; }

.rating-bar-row { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.55rem; }
.rating-bar-label { width: 32px; font-family: var(--font-mono); font-size: 0.78rem; opacity: 0.75; flex-shrink: 0; }
.rating-bar-track { flex: 1; height: 7px; border-radius: 999px; background: rgba(30,18,22,0.08); overflow: hidden; }
.rating-bar-fill { display: block; height: 100%; background: linear-gradient(90deg, var(--gold), var(--rose)); border-radius: 999px; }
.rating-bar-count { width: 28px; text-align: right; font-family: var(--font-mono); font-size: 0.78rem; opacity: 0.6; flex-shrink: 0; }

.review-list { display: flex; flex-direction: column; gap: 1.4rem; margin-top: 1.8rem; }
.review-card { padding-bottom: 1.4rem; border-bottom: 1px solid var(--line); }
.review-card:last-child { border-bottom: none; }
.review-card-head { display: flex; align-items: center; gap: 0.7rem; margin-bottom: 0.6rem; flex-wrap: wrap; }
.review-star-badge {
  display: inline-flex; align-items: center; gap: 0.25rem;
  background: #3F8C3F; color: #fff; font-family: var(--font-mono); font-size: 0.78rem; font-weight: 600;
  padding: 0.2rem 0.5rem; border-radius: 4px;
}
.review-star-badge svg { fill: #fff; }
.review-reviewer { font-size: 0.88rem; font-weight: 600; }
.review-verified { font-size: 0.72rem; font-family: var(--font-mono); color: var(--gold); border: 1px solid var(--gold); border-radius: 999px; padding: 0.1rem 0.5rem; }
.review-text { font-size: 0.92rem; opacity: 0.85; line-height: 1.6; margin-bottom: 0.5rem; }
.review-date { font-size: 0.75rem; opacity: 0.5; }

@media (max-width: 640px) {
  .rating-summary-panel { grid-template-columns: 1fr; }
  .rating-summary-score { border-right: none; border-bottom: 1px solid var(--line); padding-right: 0; padding-bottom: 1.2rem; margin-bottom: 0.4rem; }
}
