/**
 * Product Page Styles
 * Single product - Styles spécifiques NON WooCommerce
 * (Styles WooCommerce dans woocommerce.css)
 *
 * @package TacticHall
 */

/* ==========================================================================
   Single Product Page
   Note: Utilise .grid-2-xl + .items-start + .sticky-top-sm de base.css
   ========================================================================== */

/* ==========================================================================
   Informations produit - Composants spécifiques
   ========================================================================== */

.product-info {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-md);
}

.product-info__header {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-sm);
	padding-bottom: var(--spacing-md);
	border-bottom: 2px solid var(--color-border);
}

/* Badges catégories - Utilise .badge de global.css */
.product-categories {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-xs);
}

.product-category-badge {
	/* Étend .badge de global.css */
	padding: 0.375rem 0.875rem;
	background: var(--color-white);
	color: var(--color-black);
	text-decoration: none;
	transition: all var(--transition-base);
}

.product-category-badge:hover {
	background: var(--color-black);
	color: var(--color-white);
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

/* Description courte */
.product-short-description {
	font-size: 1rem;
	line-height: 1.6;
	color: var(--color-gunmetal);
}

.product-short-description p {
	margin-bottom: var(--spacing-sm);
}

.product-short-description p:last-child {
	margin-bottom: 0;
}

/* ==========================================================================
   Attributs produit (Calibre, Permis, etc.)
   ========================================================================== */

.product-attributes {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--spacing-sm);
	padding: var(--spacing-md);
	background: var(--color-smoke);
	border: 2px solid var(--color-border);
}

.product-attribute {
	/* Utilise .flex-col dans le template pour éviter duplication */
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

.product-attribute__label {
	/* Étend .text-label de base.css */
	color: var(--color-steel);
}

.product-attribute__value {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--color-black);
}

.product-attribute__value--badge {
	/* Étend .badge--black de global.css */
	width: fit-content;
}

/* Message légal permis */
.product-legal-notice {
	padding: var(--spacing-sm);
	background: #fff3cd;
	border: 1px solid #ffc107;
	border-left: 4px solid #ffc107;
	font-size: 0.875rem;
	line-height: 1.6;
	color: #856404;
	margin-top: var(--spacing-md);
}

.product-legal-notice strong {
	font-weight: 700;
}

/* ==========================================================================
   Métadonnées produit (SKU, Marque, Catégories)
   ========================================================================== */

.product-meta {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-md);
	padding: var(--spacing-lg);
	background: var(--color-smoke);
	border: var(--border-primary);
	margin-top: var(--spacing-lg);
}

.product-meta__item {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-xs);
}

.product-meta__label {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-steel);
}

.product-meta__label--block {
	display: block;
	margin-bottom: var(--spacing-xs);
}

.product-meta__value {
	font-size: 0.9375rem;
	color: var(--color-black);
	line-height: 1.5;
}

.product-meta__link {
	color: var(--color-black);
	text-decoration: underline;
	transition: color var(--transition-base);
}

.product-meta__link:hover {
	color: var(--color-gunmetal);
}

/* Marque produit - Card avec logo */
.product-meta__item--brand {
	padding-top: var(--spacing-xs);
	border-top: 1px solid var(--color-border);
}

.product-brand-card {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border: var(--border-primary);
	background: var(--color-white);
	text-decoration: none;
	transition: all var(--transition-base);
	border-radius: 0;
}

.product-brand-card:hover {
	background: var(--color-black);
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.product-brand-card__image {
	width: 48px;
	height: 48px;
	object-fit: contain;
	filter: grayscale(100%);
	opacity: 0.8;
	transition: all var(--transition-base);
}

.product-brand-card:hover .product-brand-card__image {
	filter: grayscale(0%) invert(1);
	opacity: 1;
}

.product-brand-card__name {
	font-size: 0.9375rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--color-black);
	transition: color var(--transition-base);
}

.product-brand-card:hover .product-brand-card__name {
	color: var(--color-white);
}

/* ==========================================================================
   Produits liés
   ========================================================================== */

.related-products-section {
	padding: var(--spacing-2xl) 0;
	background: var(--color-smoke);
	border-top: var(--border-primary);
}

.related-products-section .section-title {
	margin-bottom: var(--spacing-xl);
	text-align: center;
}

.related-products-section .products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--grid-gap);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

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

	.related-products-section .products {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 768px) {
	.product-meta {
		padding: var(--spacing-md);
	}

	.product-brand-card {
		width: 100%;
		justify-content: center;
	}

	.related-products-section .products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 480px) {
	.product-attributes {
		padding: var(--spacing-sm);
	}

	.product-meta {
		padding: var(--spacing-sm);
		gap: var(--spacing-sm);
	}

	.product-brand-card__image {
		width: 40px;
		height: 40px;
	}

	.related-products-section .products {
		grid-template-columns: 1fr;
	}
}
