/*
 * PRIXALIO — fiche produit (chargée uniquement sur les produits).
 */

.px-product { padding-top: var(--wp--preset--spacing--30); }
.px-product > .px-breadcrumbs { margin-bottom: var(--wp--preset--spacing--30); }

/* ---------- Haut de fiche : galerie + zone d'achat ---------- */
.px-product__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
	margin-top: var(--wp--preset--spacing--30) !important;
}
@media (min-width: 960px) {
	.px-product__top { grid-template-columns: minmax(0, 1.12fr) minmax(22rem, 0.88fr); gap: var(--wp--preset--spacing--60); }
	.px-product__buy { position: sticky; top: 1rem; }
}

.px-product__media,
.px-product__buy {
	background: var(--wp--preset--color--surface);
	border-radius: var(--px-radius);
	box-shadow: 0 0 0 1px var(--px-border);
	margin: 0 !important;
}
.px-product__media { padding: var(--wp--preset--spacing--40); }
.px-product__buy { padding: var(--wp--preset--spacing--50); }
.px-product__buy > * { margin-block: 0; }
.px-product__buy > * + * { margin-block-start: var(--wp--preset--spacing--40); }

/* Galerie : image principale carrée et entière, vignettes alignées */
.px-product .wc-block-product-gallery { gap: 0.75rem; }
.px-product .wc-block-product-gallery-large-image { border-radius: var(--px-radius-sm); overflow: hidden; background: var(--wp--preset--color--surface); }
.px-product .wc-block-product-gallery-large-image img,
.px-product .wc-block-product-gallery-large-image__image {
	aspect-ratio: 1;
	width: 100%;
	height: auto;
	object-fit: contain;
}
.px-product .wc-block-product-gallery-thumbnails__thumbnail img { border-radius: var(--px-radius-sm); aspect-ratio: 1; object-fit: cover; }
.px-product .wc-block-product-gallery-thumbnails__thumbnail { border-radius: var(--px-radius-sm); }
.px-product .wc-block-product-gallery-large-image-next-previous button {
	background: var(--wp--preset--color--surface);
	border-radius: 50%;
	width: 2.75rem;
	height: 2.75rem;
	box-shadow: var(--wp--preset--shadow--card);
	color: var(--wp--preset--color--contrast);
}
.px-product .px-badge .wc-block-components-product-sale-badge,
.px-product .wc-block-product-gallery-large-image .wc-block-components-product-sale-badge {
	top: 0.75rem;
	left: 0.75rem;
	font-size: 0.9375rem;
	padding: 0.3rem 0.6rem;
}

/* Zone d'achat */
.px-product__brand { font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.75rem !important; }
.px-product__brand a { color: var(--wp--preset--color--muted); text-decoration: none; }
.px-product__title {
	font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem) !important;
	line-height: 1.2;
	font-weight: 700;
	overflow-wrap: anywhere;
}
.px-product__meta { gap: 0.5rem 1rem; align-items: center; margin-top: 0.5rem !important; }
.px-product__meta .wc-block-components-product-rating { margin: 0; }
.px-product__meta .wc-block-components-product-rating__link { color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.px-product__sku { color: var(--wp--preset--color--muted); margin: 0; }

.px-pricebox {
	padding: var(--wp--preset--spacing--40);
	border-radius: var(--px-radius-sm);
	background: var(--wp--preset--color--base);
}
.px-pricebox > * { margin: 0; }
.px-pricebox > * + * { margin-top: 0.6rem; }
.px-pricebox__price {
	font-size: clamp(1.875rem, 1.5rem + 1.5vw, 2.5rem) !important;
	line-height: 1.05;
	font-variant-numeric: lining-nums proportional-nums;
	letter-spacing: -0.02em;
}
.px-pricebox__price ins { text-decoration: none; color: var(--wp--preset--color--primary-strong); }
.px-pricebox__price del {
	font-family: var(--wp--preset--font-family--system);
	font-size: 1rem;
	font-weight: 500;
	color: var(--wp--preset--color--muted);
	margin-inline-end: 0.5rem;
	letter-spacing: 0;
}

.px-product__summary { color: var(--wp--preset--color--contrast); }
.px-product__summary ul { padding-inline-start: 1.2rem; margin: 0; }
.px-product__summary li + li { margin-top: 0.25rem; }
.px-product__summary p { margin: 0; }

/* Formulaire d'ajout au panier (bloc WooCommerce natif) */
.px-product__cart { scroll-margin-top: 1rem; }
.px-product__cart .wp-block-woocommerce-add-to-cart-with-options-variation-selector-attribute-name {
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
}
.px-product__cart .wc-block-product-filter-chips__items { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.px-product__cart .wc-block-product-filter-chips__item {
	min-height: 2.75rem;
	padding: 0.4rem 1rem;
	border-radius: var(--px-radius-sm);
	border: 1.5px solid #B8B8B8;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	cursor: pointer;
	transition: border-color var(--px-ease), background-color var(--px-ease);
}
.px-product__cart .wc-block-product-filter-chips__item:hover { border-color: var(--wp--preset--color--contrast); }
.px-product__cart .wc-block-product-filter-chips__item[aria-checked="true"] {
	border-color: var(--wp--preset--color--primary-strong);
	background: var(--wp--preset--color--accent-soft);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--primary-strong);
}
.px-product__cart .wc-block-product-filter-chips__item[aria-disabled="true"],
.px-product__cart .wc-block-product-filter-chips__item:disabled {
	color: var(--wp--preset--color--muted);
	border-style: dashed;
	text-decoration: line-through;
}
.px-product__cart .wc-block-components-product-stock-indicator { font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.px-product__cart .wc-block-components-product-stock-indicator--in-stock { color: var(--wp--preset--color--success); }
.px-product__cart .wc-block-components-product-stock-indicator--out-of-stock { color: var(--wp--preset--color--primary-strong); }
.px-product__cart .wc-block-add-to-cart-with-options-quantity-selector,
.px-product__cart .wc-block-components-quantity-selector {
	border-radius: var(--px-radius-sm);
	min-height: 3rem;
}
.px-product__cart .is-layout-flex { gap: 0.75rem; align-items: stretch; flex-wrap: nowrap; }
.px-product__cart .wp-block-woocommerce-product-button,
.px-product__cart .wc-block-components-product-button { flex: 1; margin: 0; }
.px-product__cart .wc-block-components-product-button__button,
.px-product__cart button[type="submit"] {
	width: 100%;
	min-height: 3rem;
	font-size: 1.0625rem;
	font-weight: 800;
	border-radius: var(--px-radius-sm);
	background: var(--wp--preset--color--primary-strong);
	color: var(--wp--preset--color--surface);
}
.px-product__cart .wc-block-components-product-button__button:hover:not([disabled]):not(.disabled) { background: var(--wp--preset--color--primary-deep); }
.px-product__cart .wc-block-components-product-button__button.disabled,
.px-product__cart .wc-block-components-product-button__button[disabled],
.px-product__cart .wc-block-components-product-button__button[aria-disabled="true"] { opacity: 1; background: var(--wp--preset--color--border); color: var(--wp--preset--color--muted); cursor: not-allowed; }
.px-product__cart .wp-block-woocommerce-add-to-cart-with-options-variation-description:not([hidden]) {
	padding: 0.6rem 0.8rem;
	background: var(--wp--preset--color--base);
	border-radius: var(--px-radius-sm);
	font-size: var(--wp--preset--font-size--small);
}

/* Livraison par pays */
.px-ship {
	border: 1px solid var(--px-border);
	border-radius: var(--px-radius-sm);
	padding: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
}
.px-ship__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
.px-ship__title { display: inline-flex; align-items: center; gap: 0.4rem; margin: 0; font-weight: 700; font-size: var(--wp--preset--font-size--medium); }
.px-ship__country { display: inline-flex; align-items: center; gap: 0.5rem; }
.px-ship__country select { min-height: 2.5rem; padding: 0.25rem 2rem 0.25rem 0.6rem; font-size: 1rem; }
.px-ship__methods { list-style: none; margin: 0.75rem 0 0; padding: 0; }
.px-ship__methods li { display: flex; justify-content: space-between; gap: 1rem; padding-block: 0.45rem; border-top: 1px solid var(--px-border); }
.px-ship__cost { font-weight: 700; text-align: end; white-space: nowrap; }
.px-ship__note { margin: 0.5rem 0 0; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--x-small); }

/* Garanties */
.px-assurances { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.px-assurances li { position: relative; padding-inline-start: 1.6rem; color: var(--wp--preset--color--muted); }
.px-assurances li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1.05rem;
	height: 1.05rem;
	border-radius: 50%;
	background: var(--wp--preset--color--success) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6L20.1 8.4 18.7 7z'/%3E%3C/svg%3E") center / 80% no-repeat;
}
.px-assurances strong { color: var(--wp--preset--color--contrast); }
.px-product__terms { color: var(--wp--preset--color--muted); }
.px-product__terms a { color: var(--wp--preset--color--muted); }

/* ---------- Sections d'information ---------- */
.px-product__details {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	align-items: start;
}
@media (min-width: 960px) {
	.px-product__details:has(> .px-panel + .px-panel) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
}
.px-panel {
	background: var(--wp--preset--color--surface);
	border-radius: var(--px-radius);
	box-shadow: 0 0 0 1px var(--px-border);
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	margin-block: 0 !important;
	scroll-margin-top: 1rem;
}
@media (max-width: 600px) { .px-panel { padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40); } }
.px-panel__title,
.px-panel .wp-block-woocommerce-product-reviews-title {
	font-size: var(--wp--preset--font-size--x-large) !important;
	margin: 0 0 var(--wp--preset--spacing--40) !important;
}
.px-panel .wp-block-woocommerce-product-description h3 { font-size: var(--wp--preset--font-size--large); margin-top: 1.5em; }
.px-panel .wp-block-woocommerce-product-description > *:first-child { margin-top: 0; }
.px-panel .wp-block-woocommerce-product-description img { border-radius: var(--px-radius-sm); }

/* Caractéristiques : tableau lisible, rayé */
.px-specs table,
.px-panel .wp-block-woocommerce-product-specifications table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	font-size: var(--wp--preset--font-size--small);
}
.px-panel .wp-block-woocommerce-product-specifications :is(th, td) {
	border: 0;
	border-bottom: 1px solid var(--px-border);
	padding: 0.65rem 0.5rem;
	text-align: start;
	vertical-align: top;
}
.px-panel .wp-block-woocommerce-product-specifications th { width: 42%; font-weight: 600; color: var(--wp--preset--color--muted); }
.px-panel .wp-block-woocommerce-product-specifications tr:last-child :is(th, td) { border-bottom: 0; }
.px-panel .wp-block-woocommerce-product-specifications p { margin: 0; }

/* Avis */
.px-reviews .wp-block-woocommerce-product-review-template { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.px-review { padding-block: var(--wp--preset--spacing--40); border-top: 1px solid var(--px-border); }
.px-review > * { margin: 0 !important; }
.px-review > * + * { margin-top: 0.35rem !important; }
.px-review__head { align-items: center; }
.px-review .wp-block-woocommerce-product-review-author-name { font-weight: 700; }
.px-review .wp-block-woocommerce-product-review-date a { color: var(--wp--preset--color--muted); text-decoration: none; }
.px-reviews .comment-respond { margin-top: var(--wp--preset--spacing--50); padding-top: var(--wp--preset--spacing--50); border-top: 1px solid var(--px-border); }
.px-reviews .comment-reply-title { font-family: var(--wp--preset--font-family--display); font-size: var(--wp--preset--font-size--large); font-weight: 700; }
.px-reviews .comment-form { display: grid; gap: 0.75rem; max-width: 42rem; }
.px-reviews .comment-form :is(input[type="text"], input[type="email"], textarea) { width: 100%; box-sizing: border-box; padding: 0.65rem 0.75rem; font-size: 1rem; }
.px-reviews .comment-form label { display: block; font-weight: 600; font-size: var(--wp--preset--font-size--small); margin-bottom: 0.25rem; }
.px-reviews .comment-form p { margin: 0; }
.px-reviews .comment-form .comment-form-cookies-consent { display: flex; gap: 0.5rem; align-items: flex-start; }
.px-reviews .comment-form .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.px-reviews .stars a, .px-reviews .stars span { color: var(--wp--preset--color--accent-ink); }

/* Sections produits associés */
.px-product .px-collection { margin-top: var(--wp--preset--spacing--50); }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.px-product__media { padding: 0; box-shadow: none; background: transparent; }
	.px-product .wc-block-product-gallery-large-image { border-radius: var(--px-radius); box-shadow: 0 0 0 1px var(--px-border); }
	.px-product__buy { padding: var(--wp--preset--spacing--40); }
	.px-ship__country select { max-width: 11rem; }
	body.single-product { padding-bottom: 5rem; } /* place pour la barre d'achat */

	.px-buybar {
		display: flex;
		position: fixed;
		inset-inline: 0;
		bottom: 0;
		z-index: 90;
		align-items: center;
		gap: 0.75rem;
		padding: 0.6rem 1rem calc(0.6rem + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--surface);
		box-shadow: 0 -6px 20px rgba(25, 25, 25, 0.14);
		transform: translateY(110%);
		visibility: hidden;
		transition: transform 200ms ease, visibility 0s linear 200ms;
	}
	.px-buybar.is-visible { transform: none; visibility: visible; transition: transform 200ms ease; }
	.px-buybar__info { min-width: 0; flex: 1; }
	.px-buybar__title { margin: 0; font-size: 0.8125rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--wp--preset--color--muted); }
	.px-buybar__price {
		font-family: var(--wp--preset--font-family--display);
		font-weight: 800;
		font-size: 1.125rem;
		line-height: 1.2;
		font-variant-numeric: tabular-nums;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.px-buybar__price del { display: none; }
	.px-buybar__price ins { text-decoration: none; color: var(--wp--preset--color--primary-strong); }
	.px-buybar__btn {
		flex: none;
		min-height: 3rem;
		padding-inline: 1.1rem;
		border-radius: var(--px-radius-sm);
		background: var(--wp--preset--color--primary-strong);
		color: var(--wp--preset--color--surface);
		font-weight: 800;
		font-size: 0.9375rem;
		border: 0;
		cursor: pointer;
	}
}
