/**
 * Afoomart Single Product & Product Detail Stylesheet
 *
 * Implements:
 * - 2-Column Responsive Layout (Gallery + Summary)
 * - Desktop Vertical Thumbnail Rail + High-Res Stage
 * - Hover Zoom Magnifier & Zoom Result Flyout
 * - Fullscreen Lightbox Modal Viewer
 * - Mobile Touch-Swipe Carousel & Dot Indicators
 * - Variation Swatches (Color buttons, storage/size pills)
 * - Price & Savings Hierarchy (Naira formatting)
 * - Quantity, Add to Cart & Buy Now Action Controls
 * - Delivery Estimator Card with Location Selector
 * - Marketplace Verified Seller Card
 * - Product Details Tabs & Specifications Table
 * - Review Histogram Breakdown & Verified Reviews Stream
 * - Similar & Recently Viewed Recommendation Grids
 * - Mobile Sticky Bottom Purchase Bar (< 768px)
 *
 * @package Afoomart
 */

/* ==========================================================================
   1. MAIN SHOWCASE LAYOUT
   ========================================================================== */

.af-single-product-page-container {
	padding-top: var(--space-4);
	padding-bottom: var(--space-12);
	background-color: var(--color-bg-body, #f8fafc);
}

.af-single-product-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: var(--space-8);
	align-items: start;
	background: #ffffff;
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: var(--radius-lg, 12px);
	padding: var(--space-6);
	box-shadow: var(--shadow-sm, 0 1px 3px rgba(0, 0, 0, 0.05));
}

.af-single-gallery-col {
	position: sticky;
	top: calc(var(--header-height, 80px) + var(--space-4));
}

.af-single-summary-col {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

/* ==========================================================================
   2. PRODUCT IMAGE GALLERY
   ========================================================================== */

.af-product-gallery {
	position: relative;
	width: 100%;
}

.af-gallery-badges {
	position: absolute;
	top: var(--space-3);
	left: var(--space-3);
	z-index: 10;
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	pointer-events: none;
}

.af-gallery-discount {
	font-weight: 700;
	font-size: 0.75rem;
	padding: 3px 8px;
	border-radius: var(--radius-sm, 4px);
}

.af-gallery-inner {
	display: flex;
	gap: var(--space-4);
	align-items: stretch;
}

/* Vertical Thumbnail Rail (Desktop) */
.af-gallery-thumbnails-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-2);
	width: 76px;
	flex-shrink: 0;
}

.af-gallery-thumb-nav {
	width: 100%;
	height: 24px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #f1f5f9;
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: var(--radius-sm, 4px);
	color: var(--color-text-muted, #64748b);
	cursor: pointer;
	transition: all 0.2s ease;
}

.af-gallery-thumb-nav:hover:not(:disabled) {
	background: var(--color-primary-navy, #113F6D);
	color: #ffffff;
	border-color: var(--color-primary-navy, #113F6D);
}

.af-gallery-thumb-nav:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.af-gallery-thumbnails-scroll {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	max-height: 480px;
	overflow-y: auto;
	scrollbar-width: thin;
	padding: 2px;
}

.af-gallery-thumbnails-scroll::-webkit-scrollbar {
	width: 4px;
}

.af-gallery-thumbnails-scroll::-webkit-scrollbar-thumb {
	background: #cbd5e1;
	border-radius: 4px;
}

.af-gallery-thumb-btn {
	width: 72px;
	height: 72px;
	padding: 4px;
	border: 2px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	background: #ffffff;
	cursor: pointer;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
	flex-shrink: 0;
}

.af-gallery-thumb-btn img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.af-gallery-thumb-btn:hover {
	border-color: #94a3b8;
}

.af-gallery-thumb-btn.is-active,
.af-gallery-thumb-btn[aria-selected="true"] {
	border-color: var(--color-primary-navy, #113F6D);
	box-shadow: 0 0 0 2px rgba(17, 63, 109, 0.2);
}

/* Main Image Stage */
.af-gallery-main-stage {
	position: relative;
	flex: 1;
	min-width: 0;
	background: #ffffff;
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: var(--radius-lg, 12px);
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
}

.af-gallery-main-img-box {
	position: relative;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: crosshair;
}

.af-gallery-main-img-box img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	transition: opacity 0.2s ease;
}

/* Zoom Lens (Desktop Hover) */
.af-zoom-lens {
	position: absolute;
	width: 160px;
	height: 160px;
	border: 2px solid var(--color-primary-navy, #113F6D);
	background: rgba(17, 63, 109, 0.15);
	pointer-events: none;
	display: none;
	border-radius: var(--radius-sm, 4px);
	z-index: 20;
}

/* Zoom Result Flyout Box */
.af-zoom-result {
	position: fixed;
	top: 140px;
	left: 55%;
	width: 520px;
	height: 520px;
	border: 1px solid var(--color-border, #e2e8f0);
	background-color: #ffffff;
	background-repeat: no-repeat;
	box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
	border-radius: var(--radius-lg, 12px);
	z-index: 9999;
	display: none;
	pointer-events: none;
}

/* Controls Overlay: Counter & Fullscreen Trigger */
.af-gallery-stage-controls {
	position: absolute;
	bottom: var(--space-3);
	right: var(--space-3);
	display: flex;
	align-items: center;
	gap: var(--space-2);
	z-index: 10;
}

.af-gallery-counter {
	background: rgba(15, 23, 42, 0.7);
	color: #ffffff;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
	backdrop-filter: blur(4px);
}

.af-gallery-fullscreen-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.9);
	color: var(--color-text-main, #0f172a);
	border: 1px solid var(--color-border, #e2e8f0);
	padding: 6px 12px;
	border-radius: 20px;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	box-shadow: var(--shadow-sm);
	backdrop-filter: blur(4px);
	transition: all 0.2s ease;
}

.af-gallery-fullscreen-btn:hover {
	background: var(--color-primary-navy, #113F6D);
	color: #ffffff;
	border-color: var(--color-primary-navy, #113F6D);
}

/* Stage Swipe Arrows (< 768px) */
.af-gallery-stage-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 36px;
	height: 36px;
	background: rgba(255, 255, 255, 0.9);
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-text-main);
	cursor: pointer;
	z-index: 10;
	box-shadow: var(--shadow-sm);
	transition: all 0.2s ease;
}

.af-stage-prev { left: var(--space-2); }
.af-stage-next { right: var(--space-2); }

.af-gallery-stage-arrow:hover {
	background: var(--color-primary-navy, #113F6D);
	color: #ffffff;
}

.af-gallery-mobile-dots {
	display: none;
	justify-content: center;
	gap: 6px;
	margin-top: var(--space-3);
}

.af-gallery-mobile-dots .af-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #cbd5e1;
	transition: all 0.2s ease;
}

.af-gallery-mobile-dots .af-dot.is-active {
	background: var(--color-primary-navy, #113F6D);
	width: 20px;
	border-radius: 4px;
}

/* ==========================================================================
   3. FULLSCREEN LIGHTBOX MODAL
   ========================================================================== */

.af-lightbox-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
}

.af-lightbox-modal[hidden] {
	display: none;
}

.af-lightbox-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.92);
	backdrop-filter: blur(10px);
}

.af-lightbox-container {
	position: relative;
	z-index: 1;
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: var(--space-4);
	color: #ffffff;
}

.af-lightbox-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--space-2) var(--space-4);
}

.af-lightbox-title {
	font-size: 1.125rem;
	font-weight: 600;
	max-width: 60%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.af-lightbox-counter {
	font-size: 0.875rem;
	background: rgba(255, 255, 255, 0.15);
	padding: 4px 12px;
	border-radius: 12px;
}

.af-lightbox-close {
	background: rgba(255, 255, 255, 0.15);
	border: none;
	color: #ffffff;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background 0.2s ease;
}

.af-lightbox-close:hover {
	background: rgba(239, 68, 68, 0.8);
}

.af-lightbox-view {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 var(--space-4);
	position: relative;
}

.af-lightbox-img-wrap {
	flex: 1;
	height: 70vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.af-lightbox-img-wrap img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	user-select: none;
}

.af-lightbox-nav {
	background: rgba(255, 255, 255, 0.15);
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #ffffff;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.2s ease;
	backdrop-filter: blur(4px);
}

.af-lightbox-nav:hover {
	background: rgba(255, 255, 255, 0.3);
	transform: scale(1.05);
}

.af-lightbox-thumbs {
	display: flex;
	justify-content: center;
	gap: var(--space-2);
	overflow-x: auto;
	padding: var(--space-3) 0;
}

.af-lb-thumb-btn {
	width: 54px;
	height: 54px;
	border-radius: var(--radius-sm, 4px);
	border: 2px solid transparent;
	background: rgba(255, 255, 255, 0.1);
	padding: 2px;
	cursor: pointer;
	overflow: hidden;
}

.af-lb-thumb-btn img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.af-lb-thumb-btn.is-active {
	border-color: #ffffff;
	box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

/* ==========================================================================
   4. PRODUCT SUMMARY & COMMERCE ACTIONS
   ========================================================================== */

.af-summary-header-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-size: 0.8125rem;
	color: var(--color-text-muted, #64748b);
}

.af-summary-categories a {
	color: var(--color-primary-navy, #113F6D);
	font-weight: 600;
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.75rem;
}

.af-summary-categories a:hover {
	text-decoration: underline;
}

.af-summary-sku {
	background: #f1f5f9;
	padding: 2px 8px;
	border-radius: 4px;
	font-size: 0.75rem;
}

.af-single-product-title {
	font-size: 1.75rem;
	line-height: 1.3;
	font-weight: 700;
	color: var(--color-text-main, #0f172a);
	margin: 0;
}

.af-summary-rating-row {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.af-rating-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #fffbeb;
	border: 1px solid #fef3c7;
	padding: 2px 8px;
	border-radius: 12px;
}

.af-rating-stars {
	display: flex;
	color: #f59e0b;
	font-size: 0.875rem;
}

.af-rating-stars .af-star-empty {
	color: #cbd5e1;
}

.af-rating-score {
	font-weight: 700;
	font-size: 0.8125rem;
	color: #92400e;
}

.af-summary-review-link,
.af-summary-write-review-link {
	font-size: 0.8125rem;
	color: var(--color-text-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.af-summary-review-link:hover,
.af-summary-write-review-link:hover {
	color: var(--color-primary-navy, #113F6D);
	text-decoration: underline;
}

.af-summary-divider {
	border: none;
	border-top: 1px solid #e2e8f0;
	margin: var(--space-1) 0;
}

/* Price Box */
.af-summary-price-box {
	background: #f8fafc;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4);
	border: 1px solid #edf2f7;
}

.af-price-display {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--space-3);
}

.af-current-price,
.af-summary-price-main .woocommerce-Price-amount {
	font-size: 2rem;
	font-weight: 800;
	color: var(--color-primary-navy, #113F6D);
}

.af-regular-price del,
.af-summary-price-main del .woocommerce-Price-amount {
	font-size: 1.125rem;
	color: #94a3b8;
	text-decoration: line-through;
	font-weight: 500;
}

.af-discount-tag {
	font-size: 0.8125rem;
	font-weight: 700;
	padding: 3px 8px;
}

.af-savings-notice {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: var(--space-2);
	font-size: 0.8125rem;
	font-weight: 600;
	color: #15803d;
}

.af-summary-short-desc {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: #475569;
}

/* Variations Form & Swatches */
.af-single-variation-form {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.af-variation-group {
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.af-var-group-header {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: 0.875rem;
}

.af-var-label {
	font-weight: 700;
	color: var(--color-text-main);
}

.af-var-selected-val {
	color: var(--color-primary-navy, #113F6D);
	font-weight: 600;
}

.af-var-options-row {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

.af-var-swatch-btn {
	cursor: pointer;
	border: 1px solid var(--color-border, #e2e8f0);
	background: #ffffff;
	transition: all 0.2s ease;
	user-select: none;
}

.af-var-swatch-btn.af-swatch-pill {
	padding: 6px 14px;
	border-radius: var(--radius-md, 8px);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-text-main);
}

.af-var-swatch-btn.af-swatch-pill:hover {
	border-color: #94a3b8;
	background: #f8fafc;
}

.af-var-swatch-btn.af-swatch-pill.is-selected {
	background: var(--color-primary-navy, #113F6D);
	color: #ffffff;
	border-color: var(--color-primary-navy, #113F6D);
	box-shadow: 0 2px 4px rgba(17, 63, 109, 0.2);
}

.af-var-swatch-btn.af-swatch-color {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 12px;
	border-radius: 20px;
	font-size: 0.8125rem;
	font-weight: 600;
}

.af-color-dot {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.15);
	flex-shrink: 0;
}

.af-var-swatch-btn.af-swatch-color.is-selected {
	border-color: var(--color-primary-navy, #113F6D);
	box-shadow: 0 0 0 2px rgba(17, 63, 109, 0.25);
	background: #f1f5f9;
}

/* Purchase Action Row */
.af-purchase-row {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex-wrap: wrap;
}

.af-qty-control-box {
	flex-shrink: 0;
}

.af-cta-buttons-box {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	flex: 1;
	min-width: 280px;
}

.af-add-to-cart-btn {
	flex: 1.2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
}

.af-buy-now-btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--space-2);
	background: var(--color-accent-red, #DE2C27);
	border-color: var(--color-accent-red, #DE2C27);
	color: #ffffff;
}

.af-buy-now-btn:hover {
	background: #c1201c;
	border-color: #c1201c;
	color: #ffffff;
}

.af-wishlist-toggle-btn {
	width: 48px;
	height: 48px;
	border-radius: var(--radius-md, 8px);
	border: 1px solid var(--color-border, #e2e8f0);
	background: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--color-text-muted);
	transition: all 0.2s ease;
	flex-shrink: 0;
}

.af-wishlist-toggle-btn:hover {
	color: var(--color-accent-red, #DE2C27);
	border-color: var(--color-accent-red, #DE2C27);
	background: #fff5f5;
}

.af-wishlist-toggle-btn.is-active {
	color: #ffffff;
	background: var(--color-accent-red, #DE2C27);
	border-color: var(--color-accent-red, #DE2C27);
}

/* Out of Stock Card */
.af-out-of-stock-card {
	background: #fff1f2;
	border: 1px solid #fecdd3;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
}

.af-oos-msg {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	color: #be123c;
	font-weight: 700;
	font-size: 0.9375rem;
}

.af-oos-sub {
	font-size: 0.8125rem;
	color: #881337;
	margin: 0;
}

/* Delivery & Shipping Estimator Card */
.af-delivery-card {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.af-delivery-card-header {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.af-delivery-card-icon {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: #e2e8f0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--color-primary-navy, #113F6D);
	flex-shrink: 0;
}

.af-delivery-card-title-group {
	display: flex;
	flex-direction: column;
}

.af-delivery-card-title {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--color-text-main);
}

.af-delivery-card-sub {
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

.af-delivery-dest-selector {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: 0.8125rem;
}

.af-dest-label {
	font-weight: 600;
	color: var(--color-text-muted);
	white-space: nowrap;
}

.af-dest-select-wrap {
	flex: 1;
}

.af-dest-select {
	width: 100%;
	padding: 6px 10px;
	border-radius: var(--radius-sm, 4px);
	border: 1px solid var(--color-border, #e2e8f0);
	background: #ffffff;
	font-size: 0.8125rem;
	color: var(--color-text-main);
	cursor: pointer;
}

.af-delivery-estimate-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--space-2);
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-sm, 4px);
	padding: var(--space-2) var(--space-3);
}

.af-est-item {
	display: flex;
	flex-direction: column;
}

.af-est-label {
	font-size: 0.6875rem;
	color: var(--color-text-muted);
	text-transform: uppercase;
}

.af-est-val {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--color-primary-navy, #113F6D);
}

.af-delivery-features-list {
	display: flex;
	flex-direction: column;
	gap: 6px;
	font-size: 0.75rem;
	color: #475569;
}

.af-del-feat-item {
	display: flex;
	align-items: center;
	gap: 6px;
}

.af-del-feat-item svg {
	color: #16a34a;
	flex-shrink: 0;
}

/* Marketplace Seller Card */
.af-seller-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.af-seller-card-top {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.af-seller-avatar {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #e0f2fe;
	color: #0369a1;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.af-seller-meta {
	flex: 1;
	min-width: 0;
}

.af-seller-name-row {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.af-seller-name {
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--color-text-main);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.af-badge-verified {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	background: #dcfce7;
	color: #15803d;
	font-size: 0.6875rem;
	font-weight: 700;
	padding: 2px 6px;
	border-radius: 10px;
}

.af-seller-rating-sub {
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

.af-seller-score {
	color: #d97706;
	font-weight: 700;
}

.af-seller-stats-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-2);
	background: #f8fafc;
	border-radius: var(--radius-sm, 4px);
	padding: var(--space-2);
	text-align: center;
}

.af-stat-box {
	display: flex;
	flex-direction: column;
}

.af-stat-val {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--color-primary-navy, #113F6D);
}

.af-stat-label {
	font-size: 0.6875rem;
	color: var(--color-text-muted);
}

/* Social Share & Trust */
.af-summary-footer-meta {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
}

.af-share-row {
	display: flex;
	align-items: center;
	gap: var(--space-3);
	font-size: 0.8125rem;
	color: var(--color-text-muted);
}

.af-share-buttons {
	display: flex;
	align-items: center;
	gap: 6px;
}

.af-share-btn {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 1px solid #e2e8f0;
	background: #ffffff;
	color: #64748b;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s ease;
}

.af-share-wa:hover { background: #25d366; color: #ffffff; border-color: #25d366; }
.af-share-fb:hover { background: #1877f2; color: #ffffff; border-color: #1877f2; }
.af-share-x:hover  { background: #000000; color: #ffffff; border-color: #000000; }
.af-share-native:hover,
.af-share-copy:hover { background: var(--color-primary-navy, #113F6D); color: #ffffff; border-color: var(--color-primary-navy, #113F6D); }

.af-summary-trust-strip {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--space-2);
	padding: var(--space-2) 0;
}

.af-trust-item {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.75rem;
	font-weight: 600;
	color: #475569;
}

.af-trust-item svg {
	color: var(--color-primary-navy, #113F6D);
	flex-shrink: 0;
}

/* ==========================================================================
   5. PRODUCT DETAILS TABS & SPECIFICATIONS
   ========================================================================== */

.af-product-tabs-wrapper {
	background: #ffffff;
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: var(--radius-lg, 12px);
	overflow: hidden;
	box-shadow: var(--shadow-sm);
}

.af-tabs-nav-bar {
	display: flex;
	background: #f8fafc;
	border-bottom: 1px solid #e2e8f0;
	overflow-x: auto;
}

.af-tab-trigger {
	padding: var(--space-4) var(--space-6);
	background: transparent;
	border: none;
	border-bottom: 3px solid transparent;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-text-muted);
	cursor: pointer;
	white-space: nowrap;
	transition: all 0.2s ease;
}

.af-tab-trigger:hover {
	color: var(--color-primary-navy, #113F6D);
}

.af-tab-trigger.is-active,
.af-tab-trigger[aria-selected="true"] {
	color: var(--color-primary-navy, #113F6D);
	border-bottom-color: var(--color-primary-navy, #113F6D);
	background: #ffffff;
}

.af-tab-content-panel {
	padding: var(--space-6);
}

.af-tab-content-panel[hidden] {
	display: none;
}

.af-rich-text-content {
	font-size: 0.9375rem;
	line-height: 1.7;
	color: #334155;
}

.af-rich-text-content h3 {
	margin-top: 1.5rem;
	margin-bottom: 0.75rem;
}

/* Specifications Table */
.af-specs-table-wrapper {
	max-width: 800px;
}

.af-specs-title {
	font-size: 1.125rem;
	font-weight: 700;
	margin-bottom: var(--space-4);
}

.af-specs-table {
	width: 100%;
	border-collapse: collapse;
}

.af-specs-table tr {
	border-bottom: 1px solid #e2e8f0;
}

.af-specs-table tr:nth-child(even) {
	background: #f8fafc;
}

.af-specs-table th,
.af-specs-table td {
	padding: 10px 16px;
	font-size: 0.875rem;
}

.af-specs-table th {
	text-align: left;
	font-weight: 600;
	color: #475569;
	width: 35%;
}

.af-specs-table td {
	color: var(--color-text-main);
}

/* Customer Reviews Grid */
.af-reviews-section-grid {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: var(--space-8);
	align-items: start;
}

.af-reviews-summary-card {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-5);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.af-reviews-summary-title {
	font-size: 1rem;
	font-weight: 700;
	margin: 0;
}

.af-score-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 4px;
}

.af-big-score {
	font-size: 3rem;
	font-weight: 800;
	color: var(--color-primary-navy, #113F6D);
	line-height: 1;
}

.af-score-count {
	font-size: 0.75rem;
	color: var(--color-text-muted);
}

.af-rating-histogram {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.af-histogram-row {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: 0.75rem;
}

.af-hist-label {
	width: 32px;
	font-weight: 600;
	color: #64748b;
}

.af-hist-bar-track {
	flex: 1;
	height: 8px;
	background: #e2e8f0;
	border-radius: 4px;
	overflow: hidden;
}

.af-hist-bar-fill {
	height: 100%;
	background: #f59e0b;
	border-radius: 4px;
	transition: width 0.4s ease;
}

.af-hist-count {
	width: 24px;
	text-align: right;
	color: #94a3b8;
}

.af-reviews-stream-col {
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}

.af-reviews-list-heading {
	font-size: 1.125rem;
	font-weight: 700;
	margin: 0 0 var(--space-3) 0;
}

.af-review-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-4);
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	margin-bottom: var(--space-3);
}

.af-review-card-header {
	display: flex;
	align-items: center;
	gap: var(--space-3);
}

.af-reviewer-avatar {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--color-primary-navy, #113F6D);
	color: #ffffff;
	font-weight: 700;
	font-size: 0.875rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.af-reviewer-meta {
	display: flex;
	flex-direction: column;
}

.af-reviewer-name-row {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

.af-reviewer-name {
	font-weight: 700;
	font-size: 0.875rem;
}

.af-review-rating-row {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	font-size: 0.75rem;
}

.af-review-date {
	color: var(--color-text-muted);
}

.af-review-body {
	font-size: 0.875rem;
	line-height: 1.6;
	color: #334155;
}

.af-no-reviews-box {
	text-align: center;
	padding: var(--space-8);
	background: #f8fafc;
	border-radius: var(--radius-md, 8px);
	color: var(--color-text-muted);
}

.af-no-reviews-box h5 {
	margin: var(--space-2) 0;
	color: var(--color-text-main);
	font-size: 1rem;
}

.af-review-form-card {
	background: #f8fafc;
	border: 1px solid #e2e8f0;
	border-radius: var(--radius-md, 8px);
	padding: var(--space-5);
}

.af-form-title {
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: var(--space-3);
}

/* ==========================================================================
   6. RECOMMENDATIONS GRID (SIMILAR & RECENTLY VIEWED)
   ========================================================================== */

.af-single-recommendations {
	background: #ffffff;
	border: 1px solid var(--color-border, #e2e8f0);
	border-radius: var(--radius-lg, 12px);
	padding: var(--space-6);
	box-shadow: var(--shadow-sm);
}

.af-recommendations-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--space-4);
}

/* ==========================================================================
   7. MOBILE STICKY ACTION BAR (< 768px)
   ========================================================================== */

.af-mobile-action-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--color-border, #e2e8f0);
	padding: var(--space-2) var(--space-4);
	box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.08);
}

.af-mobile-bar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	max-width: 600px;
	margin: 0 auto;
	gap: var(--space-3);
}

.af-mobile-bar-price {
	display: flex;
	flex-direction: column;
}

.af-mobile-bar-label {
	font-size: 0.6875rem;
	color: var(--color-text-muted);
}

.af-mobile-bar-val,
.af-mobile-bar-val .woocommerce-Price-amount {
	font-size: 1.125rem;
	font-weight: 800;
	color: var(--color-primary-navy, #113F6D);
}

.af-mobile-bar-actions {
	display: flex;
	align-items: center;
	gap: var(--space-2);
}

/* ==========================================================================
   8. RESPONSIVE BREAKPOINTS
   ========================================================================== */

@media (max-width: 1024px) {
	.af-single-product-top {
		grid-template-columns: 1fr;
		gap: var(--space-6);
		padding: var(--space-4);
	}

	.af-single-gallery-col {
		position: static;
	}

	.af-reviews-section-grid {
		grid-template-columns: 1fr;
		gap: var(--space-6);
	}

	.af-recommendations-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.af-gallery-inner {
		flex-direction: column;
	}

	.af-gallery-thumbnails-wrapper {
		display: none; /* Mobile uses swipe and dots */
	}

	.af-gallery-mobile-dots {
		display: flex;
	}

	.af-zoom-lens,
	.af-zoom-result {
		display: none !important; /* Disable hover lens on touch */
	}

	.af-mobile-action-bar {
		display: block;
	}

	.af-recommendations-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-2);
	}

	.af-single-product-top {
		border-radius: 0;
		border-left: none;
		border-right: none;
	}

	.af-single-product-page-container {
		padding-bottom: 72px; /* clearance for sticky action bar */
	}
}

@media (max-width: 480px) {
	.af-single-product-title {
		font-size: 1.35rem;
	}

	.af-current-price,
	.af-summary-price-main .woocommerce-Price-amount {
		font-size: 1.625rem;
	}

	.af-purchase-row {
		flex-direction: column;
		align-items: stretch;
	}

	.af-qty-control-box {
		width: 100%;
	}

	.af-cta-buttons-box {
		width: 100%;
	}

	.af-summary-trust-strip {
		grid-template-columns: 1fr;
		gap: 6px;
	}
}
