/*
 * LC Médical — product page, in the language of the home: white cards (16px radius, hairline + soft shadow), pill tabs and
 * a pill segmented switch (same as the header Particulier / Professionnel), Barlow navy titles, round icon discs.
 * Buttons never carry their own size here: .lc-btn--lg / the native lg rule in buttons.css give 56px.
 * Hierarchy inside the buy box never changes: price, stock, delivery
 * promise, quantity + the one filled action, one-click COD (a full-width secondary row), a question, trust.
 * Each fact is printed once: the price lives in the buy box (and in the sticky bar only while the buy box is out of
 * view), the stock line lives in the buy box.
 */

.lc-main--pdp {
	padding-block-end: var(--lc-section);
}

.lc-pdp {
	min-inline-size: 0;
}

/* ---------- Top: gallery | summary ---------- */
.lc-pdp__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--lc-s-5);
	margin-block-start: var(--lc-s-2);
}

@media (min-width: 1000px) {
	.lc-pdp__top {
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: var(--lc-s-6) var(--lc-gap);
		align-items: start;
	}

	/*
	 * The photo has its own size (column width, square at most, its height capped so the stage and one row of thumbnails
	 * fit under the sticky header) and never follows the height of the title + buy box column: that column renders after
	 * the photo, and a stage stretched to it jumped (CLS). No dead void either: the gallery stays in view while the buy
	 * box scrolls past.
	 * 264px = header (124) + 2 x 16 offset + a 72px thumbnail row + its 12px gap + slack; never below 440px.
	 */
	.lc-pdp__gallery {
		position: sticky;
		inset-block-start: calc(var(--lc-sticky-top) + var(--lc-s-4));
		grid-column: 1 / span 7;
		min-block-size: 0;
	}

	.lc-pdp__info {
		grid-column: 8 / span 5;
	}
}

.lc-pdp__info {
	display: grid;
	gap: var(--lc-s-4);
	min-inline-size: 0;
}

/* ---------- Gallery ---------- */
.lc-gallery {
	display: grid;
	grid-template-rows: minmax(0, 1fr) auto;
	gap: var(--lc-s-3);
}

.lc-gallery__stage {
	position: relative;
	margin: 0;
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--lc-paper);
	border: 1px solid var(--lc-line);
	border-radius: var(--lc-card-r);
	box-shadow: var(--lc-card-shadow);
}

@media (min-width: 1000px) {
	/* Full column width: without it the ratio would carry the height cap over to the width (a narrow square). */
	.lc-gallery__stage {
		inline-size: 100%;
		max-block-size: min(720px, max(440px, calc(100vh - 264px)));
	}

	/* The video tile (78px + its 12px margin) sits in the sticky column too: its height comes off the photo. */
	.lc-pdp__gallery:has(.lc-pdp__video) .lc-gallery__stage {
		max-block-size: min(720px, max(440px, calc(100vh - 354px)));
	}
}

.lc-gallery__img {
	position: absolute;
	inset: 0;
	display: block;
	inline-size: 100%;
	block-size: 100%;
	max-inline-size: none;
	object-fit: cover;
}

/* Stand-in and placeholder photos all sit the same way: contained on one paper ground. */
.lc-gallery__img.lc-standin {
	object-fit: contain;
	padding: 6%;
	background: var(--lc-paper-2, var(--lc-shelf-2));
}

.lc-gallery__img--placeholder {
	object-fit: cover;
}

.lc-gallery__badge {
	position: absolute;
	inset-block-start: var(--lc-s-3);
	inset-inline-start: var(--lc-s-3);
	z-index: 1;
}

.lc-gallery__badge--out .lc-label__paper {
	color: var(--lc-ink-muted);
}

.lc-gallery__zoom {
	position: absolute;
	inset-block-end: var(--lc-s-4);
	inset-inline-end: var(--lc-s-3);
	display: grid;
	place-items: center;
	inline-size: var(--lc-tap);
	block-size: var(--lc-tap);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--lc-paper);
	color: var(--lc-ink);
	box-shadow: 0 1px 2px rgb(20 36 107 / 0.2), 0 6px 14px -4px rgb(20 36 107 / 0.28);
	cursor: zoom-in;
	transition: background-color var(--lc-dur-fast) linear;
}

.lc-gallery__zoom:hover {
	background: var(--lc-blue-50);
}

.lc-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lc-s-2);
	margin: 0;
	padding: 0;
	list-style: none;
}

.lc-gallery__thumb {
	position: relative;
	display: block;
	inline-size: 72px;
	block-size: 72px;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--lc-line);
	border-radius: 12px;
	background: var(--lc-paper);
	cursor: pointer;
	opacity: 0.85;
	transition: opacity var(--lc-dur-fast) linear;
}

.lc-gallery__thumb img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.lc-gallery__thumb:hover {
	opacity: 1;
}

.lc-gallery__thumb[aria-current='true'] {
	opacity: 1;
	border-color: var(--lc-action);
	box-shadow: 0 0 0 1px var(--lc-action);
}

.lc-gallery__soon {
	inset-block-end: var(--lc-s-4);
	inset-inline-start: var(--lc-s-4);
	position: absolute;
	z-index: 1;
}

/* Video tile */
.lc-pdp__video {
	display: flex;
	align-items: center;
	gap: var(--lc-s-3);
	inline-size: 100%;
	margin-block-start: var(--lc-s-3);
	padding: var(--lc-s-3) var(--lc-s-4);
	border: 1px solid var(--lc-line);
	border-radius: 12px;
	background: var(--lc-paper);
	color: var(--lc-ink);
	text-align: start;
	box-shadow: var(--lc-card-shadow);
	cursor: pointer;
	transition: background-color var(--lc-dur-fast) linear;
}

.lc-pdp__video:hover {
	background: var(--lc-blue-50);
}

.lc-pdp__video-play {
	display: grid;
	place-items: center;
	flex: none;
	inline-size: 40px;
	block-size: 40px;
	border-radius: 50%;
	background: var(--lc-action);
	color: #fff;
}

.lc-pdp__video-text {
	display: grid;
	gap: 2px;
}

.lc-pdp__video-text strong {
	font-family: var(--lc-font-label);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.lc-pdp__video-text small {
	color: var(--lc-ink-muted);
}

/* ---------- Head ---------- */
.lc-pdp__head {
	display: grid;
	gap: var(--lc-s-2);
}

.lc-pdp__title {
	margin: 0;
	font-size: clamp(1.75rem, 1.3rem + 1.7vw, 2.75rem);
	line-height: 1.06;
	letter-spacing: -0.012em;
	color: var(--lc-navy-900);
	text-wrap: balance;
}

.lc-pdp__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--lc-s-4);
	margin: 0;
	font-size: var(--lc-fs-sm);
	color: var(--lc-ink-muted);
}

.lc-pdp__brand {
	font-weight: 700;
	color: var(--lc-ink);
}

.lc-pdp__sku {
	font-variant-numeric: tabular-nums;
}

.lc-pdp__rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em;
	margin: 0;
	font-size: var(--lc-fs-sm);
}

.lc-pdp__highlights {
	font-size: var(--lc-fs-base);
	line-height: 1.55;
	color: var(--lc-ink-2);
}

.lc-pdp__highlights > :first-child {
	margin-block-start: 0;
}

.lc-pdp__highlights > :last-child {
	margin-block-end: 0;
}

.lc-pdp__highlights ul {
	padding-inline-start: 1.15em;
}

.lc-pdp__note {
	display: flex;
	align-items: flex-start;
	gap: 0.6em;
	margin: 0;
	font-size: var(--lc-fs-sm);
	line-height: 1.45;
	color: var(--lc-ink-muted);
}

.lc-pdp__note--rx {
	padding: var(--lc-s-3);
	border-radius: 12px;
	background: var(--lc-warn-bg);
	color: var(--lc-warn);
}

.lc-pdp__note--rx .lc-icon {
	margin-block-start: 0.1em;
}

@media (max-width: 999.98px) {
	/* Title first, then the photo (4:3), then the buy box (price, stock, the way to order), then the highlights. */
	.lc-pdp__top {
		gap: var(--lc-s-4);
	}

	.lc-pdp__info {
		display: contents;
	}

	.lc-pdp__head {
		order: 1;
	}

	.lc-pdp__gallery {
		order: 2;
	}

	.lc-pdp__info > :not(.lc-pdp__head) {
		order: 4;
	}

	.lc-pdp__info > .lc-pdp__buy {
		order: 3;
	}

	.lc-pdp__top > .lc-pdp__info > * {
		min-inline-size: 0;
	}

	.lc-gallery__stage {
		aspect-ratio: 4 / 3;
	}

	.lc-pdp__title {
		font-size: clamp(1.625rem, 1.2rem + 1.8vw, 2.25rem);
	}
}

/* Product pages say their reassurances once, in the buy box: the footer proof band would repeat them. */
body.single-product .lc-footer__proof {
	display: none;
}

/* ---------- Buy box: a white card, same radius, hairline and shadow as the home cards ---------- */
.lc-buybox {
	padding: var(--lc-s-4) var(--lc-s-4) var(--lc-s-5);
	background: var(--lc-paper);
	border: 1px solid var(--lc-line);
	border-radius: var(--lc-card-r);
	box-shadow: var(--lc-card-shadow);
}

@media (min-width: 480px) {
	.lc-buybox {
		padding: var(--lc-s-5);
	}
}

.lc-buybox__panel {
	display: grid;
	gap: var(--lc-s-3);
}

.lc-buybox__panel[hidden] {
	display: none;
}

/* Acheter / Louer: the header's Particulier / Professionnel switch (pale-blue pill track, navy selected pill). */
.lc-seg {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px;
	margin-block-end: var(--lc-s-4);
	padding: 4px;
	background: var(--lc-blue-100);
	border-radius: var(--lc-r-pill);
	box-shadow: none;
}

.lc-seg__tab {
	display: grid;
	gap: 2px;
	align-content: center;
	justify-items: start;
	min-block-size: var(--lc-ctl-lg);
	padding: 0.45em 1.1em;
	border: 0;
	border-radius: var(--lc-r-pill);
	background: transparent;
	color: var(--lc-navy-800);
	text-align: start;
	cursor: pointer;
	transition: background-color var(--lc-dur-fast) linear, color var(--lc-dur-fast) linear;
}

.lc-seg__tab:hover {
	background: rgb(255 255 255 / 0.7);
}

.lc-seg__name {
	font-family: var(--lc-font-label);
	font-size: var(--lc-fs-base);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.1;
	text-transform: uppercase;
}

.lc-seg__sub {
	font-family: var(--lc-font-label);
	font-size: var(--lc-fs-base);
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.2;
	color: var(--lc-ink-2);
	font-variant-numeric: tabular-nums lining-nums;
}

@media (max-width: 479.98px) {
	.lc-seg__tab {
		padding-inline: 0.9em;
	}

	.lc-seg__name,
	.lc-seg__sub {
		font-size: var(--lc-fs-sm);
		text-wrap: balance;
	}
}

.lc-seg__sub .woocommerce-Price-currencySymbol {
	font-size: 0.85em;
	letter-spacing: 0;
}

.lc-seg__tab.is-active,
.lc-seg__tab.is-active:hover {
	background: var(--lc-navy-800);
	color: #fff;
}

.lc-seg__tab.is-active .lc-seg__sub {
	color: rgb(255 255 255 / 0.88);
}

/* Price */
.lc-pdp__price {
	font-family: var(--lc-font-label);
	font-size: clamp(2.125rem, 1.7rem + 1.7vw, 3rem);
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.005em;
	color: var(--lc-ink);
}

.lc-pdp__price .price {
	display: block;
	font: inherit;
	color: inherit;
}

.lc-pdp__price .sale-price {
	display: block;
}

.lc-pdp__tax {
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--lc-s-3);
	margin: calc(var(--lc-s-1) * -1) 0 0;
	font-size: var(--lc-fs-sm);
	color: var(--lc-ink-muted);
}

.lc-pdp__free {
	font-weight: 700;
	color: var(--lc-ok-deep);
}

/* Numerals in Barlow (no slashed zero) wherever an amount or a reference sits inside Atkinson text. */
.lc-num,
.lc-pdp__sku,
.lc-buybar__amount,
.lc-pdp__free .lc-num,
.lc-card__alt .lc-num,
.lc-rates .lc-num {
	font-family: var(--lc-font-label);
	font-variant-numeric: tabular-nums lining-nums;
}

.lc-pdp__sku {
	letter-spacing: 0.03em;
}

.lc-pdp__saving {
	margin: 0;
	font-size: var(--lc-fs-sm);
	font-weight: 700;
	color: var(--lc-ok-deep);
}

/* Facts: stock, delivery promise. Round icon discs like the home reassurance row (blue disc, white icon); stock is good news = green. */
.lc-pdp__facts {
	display: grid;
	gap: var(--lc-s-2);
	margin: var(--lc-s-1) 0 0;
	padding: 0;
	list-style: none;
}

.lc-pdp__facts > li {
	display: flex;
	align-items: center;
	gap: 0.75em;
	min-block-size: var(--lc-tap);
	font-size: var(--lc-fs-base);
	line-height: 1.35;
}

.lc-pdp__facts > li > .lc-icon {
	flex: none;
	box-sizing: content-box;
	inline-size: 18px;
	block-size: 18px;
	padding: 7px;
	border-radius: 50%;
	background: var(--lc-blue-600);
	color: #fff;
}

.lc-pdp__stock {
	font-weight: 700;
}

.lc-pdp__stock.is-in {
	color: var(--lc-ok-deep);
}

.lc-pdp__stock.is-in > .lc-icon {
	background: var(--lc-ok);
}

.lc-pdp__stock.is-confirm {
	color: var(--lc-ink);
}

.lc-pdp__stock.is-confirm > .lc-icon {
	background: var(--lc-blue-600);
}

/* Price on request: words, not a figure (no price list yet). */
.lc-pdp__price .lc-price-request {
	font: 700 clamp(1.5rem, 1.2rem + 1vw, 1.875rem) / 1.1 var(--lc-font-label);
	color: var(--lc-navy-900);
}

.lc-pdp__options {
	margin: 0 0 var(--lc-s-3);
	font-weight: 700;
	color: var(--lc-ink);
}

.lc-pdp__cart--request {
	display: grid;
	gap: var(--lc-s-3);
}

.lc-pdp__stock.is-backorder {
	color: var(--lc-warn);
}

.lc-pdp__stock.is-backorder > .lc-icon {
	background: var(--lc-warn);
}

.lc-pdp__stock.is-out {
	color: var(--lc-ink);
}

.lc-pdp__stock.is-out > .lc-icon {
	background: var(--lc-ink-muted);
}

.lc-pdp__eta > span {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 var(--lc-s-3);
}

.lc-pdp__city {
	display: inline-flex;
	align-items: center;
	min-block-size: var(--lc-tap);
	padding: 0.5em 0;
	border: 0;
	background: none;
	color: var(--lc-link);
	font: inherit;
	font-size: var(--lc-fs-sm);
	font-weight: 700;
	text-decoration-line: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.22em;
	cursor: pointer;
}

.lc-pdp__city:hover {
	color: var(--lc-link-hover);
}

.lc-pdp__sizeguide {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	justify-self: start;
	min-block-size: var(--lc-tap);
	padding: 0;
	border: 0;
	background: none;
	color: var(--lc-link);
	font: 700 var(--lc-fs-sm)/1.2 var(--lc-font-text);
	text-decoration-line: underline;
	text-underline-offset: 0.22em;
	cursor: pointer;
}

/* ---------- Add to cart form ---------- */
.lc-pdp__cart {
	margin-block-start: var(--lc-s-1);
}

.lc-pdp__cart form.cart {
	display: grid;
	gap: var(--lc-s-3);
	margin: 0;
}

/* Blocksy wraps the quantity and the buttons in .ct-cart-actions: that wrapper is the grid. */
.lc-pdp__cart .ct-cart-actions {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: stretch;
	gap: var(--lc-s-3);
	inline-size: 100%;
}

.lc-pdp__cart .lc-pdp__buynow,
.lc-pdp__cart .lc-quote-add {
	grid-column: 1 / -1;
}

/* The buy box prints the stock line itself. */
.lc-pdp__cart p.stock {
	display: none;
}

/* Add to cart is the lg primary of buttons.css (56px, 16px label): nothing about its size or colour is set here. */
.lc-pdp__cart .single_add_to_cart_button {
	white-space: nowrap;
}

/* Under 440px the stepper takes its own row so the lg label never wraps or overflows. */
@media (max-width: 439.98px) {
	.lc-pdp__cart .ct-cart-actions {
		grid-template-columns: minmax(0, 1fr);
	}

	.lc-pdp__cart .ct-cart-actions .quantity {
		justify-self: start;
	}
}

.lc-pdp__cart .single_add_to_cart_button.disabled,
.lc-pdp__cart .single_add_to_cart_button:disabled {
	background-color: var(--lc-shelf-3);
	color: var(--lc-ink-muted);
	box-shadow: none;
	cursor: not-allowed;
}

.lc-pdp__cart .single_add_to_cart_button.loading {
	color: transparent;
}

/* One-click COD: a full-width secondary lg row (class lc-btn--secondary lc-btn--lg in inc/pdp.php); only the one-line label is set here. */
.lc-pdp .lc-pdp__buynow.lc-btn {
	white-space: nowrap;
}

.lc-pdp__buynow-text {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 0.6em;
}

.lc-pdp__buynow-text small {
	font-family: var(--lc-font-text);
	font-size: var(--lc-fs-xs);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
	color: var(--lc-ink-muted);
}

@media (max-width: 479.98px) {
	.lc-pdp__buynow-text small {
		display: none;
	}
}

.lc-pdp__ask {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	min-block-size: var(--lc-tap);
	color: var(--lc-ok-deep);
	font-size: var(--lc-fs-sm);
	font-weight: 700;
	line-height: 1.3;
	text-align: center;
	text-decoration-line: underline;
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.22em;
}

.lc-pdp__ask:hover {
	color: var(--lc-ok);
}

.lc-pdp__ask .lc-icon {
	flex: none;
	inline-size: 1.25em;
	block-size: 1.25em;
}

/* Why the buttons are locked (variable products). */
.lc-pdp__pick {
	margin: 0;
	font-size: var(--lc-fs-sm);
	line-height: 1.4;
	color: var(--lc-ink-muted);
}

.lc-buybox.has-variation .lc-pdp__pick {
	display: none;
}

/* Variations */
.lc-pdp__cart table.variations {
	display: block;
	inline-size: 100%;
	margin: 0 0 var(--lc-s-1);
	border: 0;
}

.lc-pdp__cart table.variations :is(tbody, tr, th, td) {
	display: block;
	padding: 0;
	border: 0;
}

.lc-pdp__cart table.variations tr {
	margin-block-end: var(--lc-s-3);
}

.lc-pdp__cart table.variations th.label {
	margin-block-end: var(--lc-s-2);
}

.lc-pdp__cart table.variations label {
	font-family: var(--lc-font-label);
	font-size: var(--lc-fs-sm);
	font-weight: 700;
	letter-spacing: var(--lc-track-label);
	text-transform: uppercase;
}

.lc-pdp__cart .reset_variations {
	display: inline-block;
	margin-block-start: var(--lc-s-1);
	font-size: var(--lc-fs-sm);
	font-weight: 700;
}

.lc-vpills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--lc-s-2);
}

.lc-vpill {
	position: relative;
	display: block;
	cursor: pointer;
}

.lc-vpill input {
	position: absolute;
	inset: 0;
	inline-size: 100%;
	block-size: 100%;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}

.lc-vpill span {
	display: grid;
	place-items: center;
	min-inline-size: var(--lc-tap);
	min-block-size: var(--lc-tap);
	padding: 0 1em;
	border: 1.5px solid var(--lc-line-strong);
	border-radius: var(--lc-r-field);
	background: var(--lc-paper);
	color: var(--lc-ink);
	font: 700 var(--lc-fs-base)/1.1 var(--lc-font-text);
	transition: background-color var(--lc-dur-fast) linear, border-color var(--lc-dur-fast) linear, color var(--lc-dur-fast) linear;
}

.lc-vpill:hover span {
	border-color: var(--lc-ink);
}

.lc-vpill input:checked + span {
	border-color: var(--lc-action);
	background: var(--lc-action);
	color: #fff;
}

.lc-vpill input:focus-visible + span {
	outline: 3px solid var(--lc-focus);
	outline-offset: 3px;
}

.lc-vpill input:disabled + span {
	border-style: dashed;
	background: var(--lc-shelf-2);
	color: var(--lc-ink-muted);
	text-decoration: line-through;
}

.lc-vpill input:disabled {
	cursor: not-allowed;
}

/* The buy box prints the chosen variation's price at the top; the in-form copy would repeat it. */
.lc-pdp__cart .woocommerce-variation-price,
.lc-pdp__cart .woocommerce-variation-availability .in-stock {
	display: none;
}

/* The empty variation holder must not leave a gap between the pills and the quantity row. */
.lc-pdp__cart .single_variation {
	display: none;
}

.lc-pdp__cart .single_variation:has(.woocommerce-variation-description p, .woocommerce-variation-availability p) {
	display: block;
}

.lc-pdp__cart .single_variation_wrap {
	display: grid;
	gap: var(--lc-s-3);
}

.lc-pdp__cart .woocommerce-variation-description p,
.lc-pdp__cart .woocommerce-variation-availability p {
	margin: 0 0 var(--lc-s-2);
	font-size: var(--lc-fs-sm);
	color: var(--lc-ink-muted);
}

/* Rental panel (lc-core form, or the fallback rates). */
.lc-buybox__rent-title {
	margin: 0;
	font-size: var(--lc-fs-h4);
}

.lc-rates {
	inline-size: 100%;
	border-collapse: collapse;
}

.lc-rates :is(th, td) {
	padding: 0.7em 0;
	border-block-end: 1px solid var(--lc-line);
	font-size: var(--lc-fs-base);
	text-align: start;
}

.lc-rates th {
	font-weight: 400;
	color: var(--lc-ink-muted);
}

.lc-rates td {
	font-weight: 700;
	text-align: end;
}

/* Rental mode: the lc-core form takes the same button size, title colour and estimate band as the buy mode and /location/. */
.lc-buybox__panel--rent .lc-rental > .lc-btn {
	--_h: var(--lc-ctl-lg);
	--_fs: var(--lc-btn-lg-fs);
	--_ls: var(--lc-btn-lg-ls);
	--_px: var(--lc-btn-lg-px);
	--_py: var(--lc-btn-lg-py);

	inline-size: 100%;
}

.lc-buybox__panel--rent .lc-rental__title {
	color: var(--lc-navy-900);
}

body .lc-buybox__panel--rent .lc-rental__sim {
	background: var(--lc-blue-50);
	border-radius: var(--lc-ctl-r, var(--lc-r-field));
	font-variant-numeric: tabular-nums;
}

/* Assurances: plain sentence-case lines with small line icons. No frames. */
.lc-buybox__trust {
	margin-block-start: var(--lc-s-4);
	padding-block-start: var(--lc-s-4);
	border-block-start: 1px solid var(--lc-line);
}

.lc-assure__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--lc-s-3) var(--lc-s-4);
	margin: 0;
	padding: 0;
	list-style: none;
}

.lc-assure__list li {
	display: flex;
	align-items: center;
	gap: 0.7em;
	font-size: var(--lc-fs-sm);
	line-height: 1.35;
	color: var(--lc-ink-2);
}

/* Same disc language as the facts and the home reassurance row, in the soft variant (blue-700 on blue-100 = 4.78:1). */
.lc-assure__list .lc-icon {
	flex: none;
	box-sizing: content-box;
	inline-size: 16px;
	block-size: 16px;
	padding: 6px;
	border-radius: 50%;
	background: var(--lc-blue-100);
	color: var(--lc-blue-700);
}

@media (max-width: 479.98px) {
	.lc-assure__list {
		grid-template-columns: minmax(0, 1fr);
	}
}

.lc-assure__note {
	margin: var(--lc-s-3) 0 0;
	font-size: var(--lc-fs-xs);
	line-height: 1.5;
	color: var(--lc-ink-muted);
}

/* ---------- Tabs: the home's pill tabs (hairline pill, navy selected) ---------- */
.lc-tabs {
	margin-block-start: var(--lc-section);
}

.lc-tabs__list {
	display: flex;
	gap: var(--lc-s-2);
	padding-block: 4px;
	overflow-x: auto;
	scrollbar-width: none;
}

.lc-tabs__list::-webkit-scrollbar {
	display: none;
}

.lc-tabs:not(.is-enhanced) .lc-tabs__list {
	display: none;
}

.lc-tabs__tab {
	flex: none;
	min-block-size: var(--lc-tap);
	padding: 0 1.25em;
	border: 1.5px solid var(--lc-line-strong);
	border-radius: var(--lc-r-pill);
	background: var(--lc-paper);
	color: var(--lc-navy-800);
	font: 600 1.0625rem/1 var(--lc-font-label);
	cursor: pointer;
	transition: background-color var(--lc-dur-fast) linear, border-color var(--lc-dur-fast) linear, color var(--lc-dur-fast) linear;
}

.lc-tabs__tab:hover {
	border-color: var(--lc-action);
	background: var(--lc-blue-50);
}

.lc-tabs__tab[aria-selected='true'],
.lc-tabs__tab[aria-selected='true']:hover {
	border-color: var(--lc-navy-800);
	background: var(--lc-navy-800);
	color: #fff;
}

.lc-tabs__panel {
	padding-block: var(--lc-s-5) 0;
}

.lc-tabs__panel[hidden] {
	display: none;
}

.lc-tabs.is-enhanced .lc-tabs__h {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
}

.lc-tabs__h {
	margin: 0 0 var(--lc-s-4);
	font-size: var(--lc-fs-h4);
	color: var(--lc-navy-900);
}

.lc-tabs .lc-prose {
	font-size: 1.0625rem;
	line-height: 1.7;
	color: var(--lc-ink-2);
}

.lc-tabs .lc-prose > :first-child {
	margin-block-start: 0;
}

.lc-tabs .lc-prose li + li {
	margin-block-start: var(--lc-s-2);
}

/* Specifications: lettering on the left, value on the right, hairline rows. */
.lc-tabs table.woocommerce-product-attributes {
	inline-size: 100%;
	max-inline-size: 760px;
	border-collapse: collapse;
	border: 0;
}

.lc-tabs table.woocommerce-product-attributes :is(th, td) {
	padding: 0.95em 0;
	border: 0;
	border-block-end: 1px solid var(--lc-line);
	text-align: start;
	vertical-align: top;
	background: none;
}

.lc-tabs table.woocommerce-product-attributes th {
	inline-size: 38%;
	padding-inline-end: var(--lc-s-4);
	font-family: var(--lc-font-label);
	font-size: var(--lc-fs-sm);
	font-weight: 700;
	letter-spacing: var(--lc-track-label);
	text-transform: uppercase;
	color: var(--lc-ink-muted);
}

.lc-tabs table.woocommerce-product-attributes td p {
	margin: 0;
}

.lc-docs {
	display: grid;
	gap: var(--lc-s-1);
	margin: 0;
	padding: 0;
	list-style: none;
}

.lc-docs a {
	display: inline-flex;
	align-items: center;
	gap: 0.6em;
	min-block-size: var(--lc-tap);
	font-weight: 700;
}

/* Reviews (only shown when reviews are enabled): quiet defaults. */
.lc-reviews-wrap {
	max-inline-size: 68ch;
}

.lc-reviews-wrap :is(h2, h3).woocommerce-Reviews-title {
	font-size: var(--lc-fs-h4);
}

/* ---------- Complements, related ---------- */
.lc-pdp__together,
.lc-pdp__related {
	margin-block-start: var(--lc-section);
}

.lc-pdp__h2 {
	margin: 0 0 var(--lc-s-5);
	font-family: var(--lc-font-label);
	font-size: clamp(1.625rem, 1.3rem + 1.1vw, 2.25rem);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: 0;
	color: var(--lc-navy-900);
	text-wrap: balance;
}

/* Related and complements: the home's product row. A 4-up grid from 760px; a swipeable snap row (2.15 cards) below. */
@media (max-width: 759.98px) {
	.lc-pdp__together ul.products.lc-cards,
	.lc-pdp__related ul.products.lc-cards {
		display: flex;
		margin-inline: calc(var(--lc-gutter) * -1);
		padding: 12px var(--lc-gutter) 28px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-padding-inline: var(--lc-gutter);
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.lc-pdp__together ul.products.lc-cards::-webkit-scrollbar,
	.lc-pdp__related ul.products.lc-cards::-webkit-scrollbar {
		display: none;
	}

	.lc-pdp__together ul.products.lc-cards > li.lc-card,
	.lc-pdp__related ul.products.lc-cards > li.lc-card {
		flex: 0 0 calc((100% - 14px) / 2.15);
		scroll-snap-align: start;
	}
}

/* ---------- Mobile sticky buy bar: above the tab bar, never over it ---------- */
.lc-buybar {
	display: none;
}

@media (max-width: 999.98px) {
	:root {
		--lc-buybar-h: 76px;
	}

	.lc-buybar {
		position: fixed;
		inset-inline: 0;
		inset-block-end: calc(var(--lc-tabbar-h) + var(--lc-safe-bottom));
		z-index: 96;
		display: flex;
		align-items: center;
		gap: var(--lc-s-3);
		min-block-size: var(--lc-buybar-h);
		padding: var(--lc-s-2) var(--lc-gutter);
		background: var(--lc-paper);
		border-block-start: 1px solid var(--lc-line-strong);
		box-shadow: var(--lc-shadow-up);
		opacity: 0;
		visibility: hidden;
		transform: translate3d(0, 8px, 0);
		transition: opacity var(--lc-dur-med) var(--lc-ease-out), transform var(--lc-dur-med) var(--lc-ease-out), visibility 0s linear var(--lc-dur-med);
	}

	.lc-buybar.is-visible {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition-delay: 0s;
	}

	.lc-buybar__price {
		display: grid;
		flex: 1;
		min-inline-size: 0;
		gap: 2px;
	}

	.lc-buybar__amount {
		font-family: var(--lc-font-label);
		font-size: 1.5rem;
		font-weight: 700;
		line-height: 1;
	}

	.lc-buybar__amount .price {
		font: inherit;
	}

	.lc-buybar__price small {
		font-size: var(--lc-fs-xs);
		color: var(--lc-ink-muted);
	}

	.lc-buybar .lc-btn {
		flex: none;
		white-space: nowrap;
	}

	.lc-buybar__amount--request {
		font-size: 1.125rem;
		color: var(--lc-navy-900);
	}

	/* "Demander le prix" alone on phones; the WhatsApp icon and the accessible name carry "sur WhatsApp". */
	@media (max-width: 479.98px) {
		.lc-pdp__cta-more {
			display: none;
		}
	}

	html.lc-buybar-on body.lc-has-tabbar {
		padding-block-end: calc(var(--lc-tabbar-h) + var(--lc-safe-bottom) + var(--lc-buybar-h));
	}

	/* Focus Not Obscured (WCAG 2.4.11): keyboard focus scrolls clear of the tab bar and the buy bar. */
	html {
		scroll-padding-block-end: calc(var(--lc-tabbar-h) + var(--lc-safe-bottom) + var(--lc-s-4));
	}

	html.lc-buybar-on {
		scroll-padding-block-end: calc(var(--lc-tabbar-h) + var(--lc-buybar-h) + var(--lc-safe-bottom) + var(--lc-s-4));
	}
}

@media (max-width: 399.98px) {
	.lc-buybar .lc-btn {
		--_px: 1em;
		--_fs: var(--lc-btn-sm-fs);
		--_ls: var(--lc-btn-sm-ls);
	}
}

@media (prefers-reduced-motion: reduce) {
	.lc-buybar {
		transition-duration: 0.01ms;
	}
}
