/**
 * Mimi Orgasmic — pages WooCommerce : boutique, fiche produit, compte client,
 * messages, formulaires et tableaux. Chargée uniquement sur les pages WooCommerce.
 *
 * Sommaire
 *  1. Messages
 *  2. Boutique et catégories
 *  3. Fiche produit
 *  4. Avis
 *  5. Formulaires WooCommerce
 *  6. Tableaux et panier classique
 *  7. Mon compte
 */

/* ==========================================================================
   1. Messages
   ========================================================================== */

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.25rem;
	margin: 0 0 1.75rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--mo-line);
	border-left: 3px solid var(--mo-link);
	border-radius: var(--mo-radius-s);
	background: var(--mo-surface);
	color: var(--mo-text);
	font-size: 0.9375rem;
	list-style: none;
}

.woocommerce-message {
	border-left-color: var(--mo-success);
}

.woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	border-left-color: var(--mo-error);
}

.woocommerce-error li {
	margin: 0;
}

.woocommerce-message .button,
.woocommerce-info .button {
	order: 2;
	min-height: 40px;
	margin-left: auto;
	padding: 0.55rem 1rem;
	font-size: 0.6875rem;
}

.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button),
.woocommerce-error a {
	color: var(--mo-link);
}

/* ==========================================================================
   2. Boutique et catégories
   ========================================================================== */

.mo-shop {
	padding-top: 1.5rem;
	padding-bottom: var(--mo-section-space);
}

.woocommerce-products-header {
	padding: clamp(1.5rem, 1rem + 2vw, 3rem) 0 clamp(1.5rem, 1rem + 1.5vw, 2.25rem);
	text-align: center;
}

.woocommerce-products-header__title {
	margin: 0;
	font-size: clamp(2.25rem, 1.6rem + 2.6vw, 3.5rem);
}

.woocommerce-products-header .term-description,
.woocommerce-products-header .page-description {
	max-width: 42rem;
	margin: 1rem auto 0;
	color: var(--mo-muted);
}

.woocommerce-products-header .mo-chips__list {
	justify-content: center;
}

@media (max-width: 767px) {

	.woocommerce-products-header .mo-chips__list {
		justify-content: flex-start;
	}
}

/* Barre d'outils : filtres, résultats, tri. */
.mo-shop-toolbar {
	display: flex;
	position: relative;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
	margin-bottom: 2rem;
	padding: 0.75rem 0;
	border-top: 1px solid var(--mo-line);
	border-bottom: 1px solid var(--mo-line);
}

.mo-shop-toolbar .woocommerce-result-count {
	margin: 0 auto 0 0;
	color: var(--mo-muted);
	font-size: 0.8125rem;
}

.mo-shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.mo-shop-toolbar .woocommerce-ordering select {
	width: auto;
	min-width: 210px;
	min-height: 44px;
	border-color: transparent;
	background-color: transparent;
	font-size: 0.875rem;
	font-weight: 600;
}

.mo-shop-toolbar .woocommerce-ordering select:hover {
	border-color: var(--mo-line);
}

@media (max-width: 599px) {

	.mo-shop-toolbar {
		flex-wrap: nowrap;
	}

	.mo-shop-toolbar .woocommerce-result-count {
		display: none;
	}

	.mo-shop-toolbar .woocommerce-ordering {
		flex: 1 1 auto;
		min-width: 0;
	}

	.mo-shop-toolbar .woocommerce-ordering select {
		width: 100%;
		min-width: 0;
		text-align: right;
		text-align-last: right;
	}
}

.mo-filters > summary {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-height: 44px;
	padding: 0.5rem 1.1rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-pill);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	list-style: none;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.mo-filters > summary::-webkit-details-marker {
	display: none;
}

.mo-filters > summary:hover,
.mo-filters[open] > summary {
	border-color: var(--mo-text);
}

.mo-filters__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: var(--mo-radius-pill);
	background: var(--mo-accent);
	color: var(--mo-on-accent);
	font-size: 0.6875rem;
}

.mo-filters__panel {
	display: grid;
	position: absolute;
	z-index: 20;
	top: calc(100% + 0.5rem);
	right: 0;
	left: 0;
	gap: 1.75rem;
	padding: 1.5rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
	background: var(--mo-surface-2);
	box-shadow: var(--mo-shadow-overlay);
}

@media (min-width: 768px) {

	.mo-filters__panel {
		right: auto;
		width: min(720px, 100%);
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

.mo-filters__title,
.mo-widget__title {
	display: block;
	margin: 0 0 0.85rem;
	color: var(--mo-muted);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.mo-filters__cats,
.mo-filters__cats ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.mo-filters__cats ul {
	margin: 0.25rem 0 0.5rem 0.9rem;
}

.mo-filters__cats a {
	display: inline-block;
	padding: 0.35rem 0;
	color: var(--mo-text);
	font-size: 0.9375rem;
	text-decoration: none;
}

.mo-filters__cats a:hover,
.mo-filters__cats .current-cat > a {
	color: var(--mo-link);
}

.mo-price-filter__fields {
	display: grid;
	gap: 0.75rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mo-price-filter__fields label span {
	display: block;
	color: var(--mo-muted);
	font-size: 0.75rem;
	font-weight: 600;
}

.mo-price-filter__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
	margin-top: 1rem;
}

.mo-filters .woocommerce-product-search {
	flex-direction: column;
}

/* Résultats vides. */
.woocommerce-no-products-found .woocommerce-info {
	justify-content: center;
	border-left-width: 1px;
	text-align: center;
}

/* Pagination (styles partagés dans main.css). */
.woocommerce-pagination {
	margin-top: 3.5rem;
}

/* ==========================================================================
   3. Fiche produit
   ========================================================================== */

.single-product .mo-shop {
	padding-top: 1rem;
}

.single-product .mo-breadcrumb {
	margin-bottom: 1.25rem;
}

.single-product div.product {
	display: grid;
	gap: 2rem;
	grid-template-columns: minmax(0, 1fr);
}

.single-product div.product > * {
	min-width: 0;
}

@media (min-width: 900px) {

	.single-product div.product {
		column-gap: clamp(2.5rem, 1rem + 4vw, 5rem);
		grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
		align-items: start;
	}

	.single-product div.product > :not(.woocommerce-product-gallery):not(.summary) {
		grid-column: 1 / -1;
	}

	.single-product div.product > .summary {
		position: sticky;
		top: calc(var(--mo-header-h) + 1.5rem);
	}
}

/* Galerie : défilement natif (scroll-snap), vignettes ajoutées par product.js. */
.woocommerce-product-gallery {
	position: relative;
	margin: 0;
	opacity: 1 !important; /* WooCommerce masque la galerie jusqu'à l'exécution de son script : on l'affiche immédiatement (LCP). */
}

.woocommerce-product-gallery__wrapper {
	display: flex;
	position: relative;
	margin: 0;
	overflow-x: auto;
	border-radius: var(--mo-radius-m);
	background: var(--mo-well);
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	isolation: isolate;
	overscroll-behavior-x: contain;
}

.woocommerce-product-gallery__wrapper::-webkit-scrollbar {
	display: none;
}

.woocommerce-product-gallery__image,
.woocommerce-product-gallery__image--placeholder {
	flex: 0 0 100%;
	aspect-ratio: 4 / 5;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

.woocommerce-product-gallery__image > a,
.woocommerce-product-gallery__image--placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.woocommerce-product-gallery__image img,
.woocommerce-product-gallery__image--placeholder img {
	width: 100%;
	height: 100%;
	padding: 7%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.mo-well-dark .woocommerce-product-gallery__image img {
	padding: 0;
	object-fit: cover;
	mix-blend-mode: normal;
}

.woocommerce-product-gallery__image video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.woocommerce-product-gallery__trigger {
	display: inline-flex;
	position: absolute;
	z-index: 3;
	top: 1rem;
	right: 1rem;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: var(--mo-radius-pill);
	background: rgba(18, 13, 16, 0.72);
	color: transparent;
	font-size: 0;
	text-decoration: none;
}

.woocommerce-product-gallery__trigger::before {
	content: "";
	width: 20px;
	height: 20px;
	background: #f5eee8;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cpath d='m20.5 20.5-4.2-4.2M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7.5'/%3E%3Cpath d='m20.5 20.5-4.2-4.2M11 8v6M8 11h6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.woocommerce-product-gallery__trigger img,
.woocommerce-product-gallery__trigger span {
	display: none;
}

.mo-gallery__counter {
	position: absolute;
	z-index: 3;
	right: 1rem;
	bottom: 1rem;
	margin: 0;
	padding: 0.35rem 0.7rem;
	border-radius: var(--mo-radius-pill);
	background: rgba(18, 13, 16, 0.72);
	color: #f5eee8;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.mo-gallery__arrow {
	display: none;
	position: absolute;
	z-index: 3;
	top: 50%;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	transform: translateY(-50%);
	border: 0;
	border-radius: var(--mo-radius-pill);
	background: rgba(18, 13, 16, 0.72);
	color: #f5eee8;
	cursor: pointer;
}

.mo-gallery__arrow--prev {
	left: 1rem;
}

.mo-gallery__arrow--next {
	right: 1rem;
}

.mo-gallery__arrow:disabled {
	opacity: 0;
	pointer-events: none;
}

.mo-gallery__thumbs {
	display: none;
	gap: 0.6rem;
	margin-top: 0.75rem;
	overflow-x: auto;
	scrollbar-width: thin;
}

.mo-gallery__thumb {
	flex: 0 0 72px;
	width: 72px;
	height: 72px;
	padding: 4px;
	overflow: hidden;
	border: 1px solid transparent;
	border-radius: var(--mo-radius-s);
	background: var(--mo-well);
	cursor: pointer;
	isolation: isolate;
}

.mo-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.mo-well-dark .mo-gallery__thumb img {
	object-fit: cover;
	mix-blend-mode: normal;
}

.mo-gallery__thumb {
	opacity: 0.55;
	transition: opacity 0.2s ease;
}

.mo-gallery__thumb:hover {
	opacity: 0.85;
}

.mo-gallery__thumb[aria-current="true"] {
	outline: 1px solid var(--mo-text);
	outline-offset: 3px;
	opacity: 1;
}

@media (min-width: 900px) {

	.mo-gallery--ready .mo-gallery__arrow,
	.mo-gallery--ready .mo-gallery__thumbs {
		display: flex;
	}

	.mo-gallery--ready .mo-gallery__counter {
		display: none;
	}
}

/* Résumé. */
.summary.entry-summary {
	padding-bottom: 1rem;
}

.mo-product__category {
	margin-bottom: 0.75rem;
}

.product_title {
	margin: 0 0 0.85rem;
	font-size: clamp(2rem, 1.5rem + 1.6vw, 2.75rem);
	line-height: 1.08;
}

.summary .woocommerce-product-rating {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 0.75rem;
	margin-bottom: 1rem;
	font-size: 0.8125rem;
}

.summary .woocommerce-review-link {
	color: var(--mo-muted);
}

.summary > .price {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.75rem;
	margin: 0 0.75rem 1.25rem 0;
	color: var(--mo-text);
	font-size: 1.5rem;
	font-weight: 700;
	vertical-align: middle;
}

.summary > .price del {
	font-size: 1.1rem;
}

.mo-product__discount {
	margin-bottom: 1.25rem;
	vertical-align: middle;
}

.woocommerce-product-details__short-description {
	margin-bottom: 1.5rem;
	color: var(--mo-muted);
	font-size: 1rem;
	line-height: 1.7;
}

.summary .stock {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 1rem;
	font-size: 0.875rem;
	font-weight: 600;
}

.summary .stock::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: var(--mo-radius-pill);
	background: currentColor;
}

.stock.in-stock {
	color: var(--mo-success);
}

.stock.out-of-stock {
	color: var(--mo-error);
}

.stock.available-on-backorder {
	color: var(--mo-gold);
}

/* Formulaire d'ajout au panier. */
form.cart {
	margin: 0 0 1.75rem;
}

form.cart:not(.variations_form),
.woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

form.cart .single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 56px;
	font-size: 0.875rem;
}

form.cart .single_add_to_cart_button.disabled {
	opacity: 0.5;
}

/* Quantité (− / + ajoutés par theme.js). */
.quantity {
	display: inline-flex;
	align-items: center;
}

.quantity .qty {
	width: 4.25rem;
	min-height: 56px;
	padding: 0.5rem;
	text-align: center;
	-moz-appearance: textfield;
}

.quantity .qty::-webkit-outer-spin-button,
.quantity .qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.mo-qty {
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-pill);
	background: var(--mo-surface);
}

.mo-qty .qty {
	width: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

.mo-qty .qty:focus {
	box-shadow: none;
}

.mo-qty:focus-within {
	border-color: var(--mo-link);
}

.mo-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: var(--mo-radius-pill);
	background: transparent;
	color: var(--mo-text);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.mo-qty__btn:hover {
	background: color-mix(in srgb, var(--mo-text) 8%, transparent);
}

/* Variations. */
table.variations {
	display: block;
	margin: 0 0 1.25rem;
	border: 0;
}

table.variations tbody,
table.variations tr {
	display: block;
}

table.variations tr + tr {
	margin-top: 1.25rem;
}

table.variations th,
table.variations td {
	display: block;
	padding: 0;
	border: 0;
}

table.variations th.label {
	margin-bottom: 0.6rem;
	color: var(--mo-text);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
}

table.variations th label {
	margin: 0;
	font-size: inherit;
	font-weight: 700;
}

table.variations select {
	max-width: 420px;
}

.reset_variations {
	display: inline-block;
	margin-top: 0.6rem;
	color: var(--mo-muted);
	font-size: 0.8125rem;
}

/* WooCommerce masque le lien « Effacer » sans libérer sa place. */
.reset_variations[style*="hidden"] {
	display: none;
}

.woocommerce-variation {
	margin-bottom: 1rem;
}

.woocommerce-variation-price .price {
	font-size: 1.25rem;
	font-weight: 700;
}

/* Pastilles de variations (amélioration progressive du <select> natif). */
.mo-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.mo-pill {
	position: relative;
}

.mo-pill input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}

.mo-pill span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	min-height: 44px;
	padding: 0.5rem 1.1rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-pill);
	font-size: 0.875rem;
	font-weight: 600;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.mo-pill input:hover + span {
	border-color: var(--mo-text);
}

.mo-pill input:checked + span {
	border-color: var(--mo-text);
	background: var(--mo-text);
	color: var(--mo-bg);
}

.mo-pill input:focus-visible + span {
	box-shadow: var(--mo-focus);
}

.mo-pill input:disabled + span {
	cursor: not-allowed;
	opacity: 0.35;
	text-decoration: line-through;
}

.mo-pills-enhanced select {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	opacity: 0;
}

/* Réassurance et méta sous le bouton. */
.summary .mo-reassurance--compact {
	padding: 1.25rem 0;
	border-top: 1px solid var(--mo-line);
	border-bottom: 1px solid var(--mo-line);
}

.product_meta {
	display: grid;
	gap: 0.35rem;
	margin-top: 1.25rem;
	color: var(--mo-muted);
	font-size: 0.8125rem;
}

.product_meta a {
	color: var(--mo-muted);
}

.woocommerce-product-attributes {
	margin: 0;
}

.woocommerce-product-attributes th {
	width: 38%;
}

/* Rubriques (accordéons) et avis. */
.mo-product-details {
	width: 100%;
	max-width: 860px;
	margin: clamp(1.5rem, 1rem + 2vw, 3rem) auto 0;
}

.mo-accordion {
	border-bottom: 1px solid var(--mo-line);
}

.mo-accordion:first-child {
	border-top: 1px solid var(--mo-line);
}

.mo-accordion__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.35rem 0;
	font-family: var(--mo-font-title);
	font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
	list-style: none;
	cursor: pointer;
}

.mo-accordion__summary::-webkit-details-marker {
	display: none;
}

.mo-accordion__icon {
	position: relative;
	flex-shrink: 0;
	width: 16px;
	height: 16px;
}

.mo-accordion__icon::before,
.mo-accordion__icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	width: 16px;
	height: 1px;
	background: currentColor;
	transition: transform 0.25s var(--mo-ease);
}

.mo-accordion__icon::after {
	transform: rotate(90deg);
}

.mo-accordion[open] .mo-accordion__icon::after {
	transform: rotate(0);
}

.mo-accordion__content {
	padding-bottom: 1.75rem;
	color: var(--mo-muted);
}

.mo-accordion__content > *:first-child {
	margin-top: 0;
}

.mo-accordion__content strong {
	color: var(--mo-text);
}

/* Produits associés, montée en gamme. */
.related.products,
.upsells.products,
.cross-sells {
	margin-top: var(--mo-section-space);
}

.related.products > h2,
.upsells.products > h2,
.cross-sells > h2 {
	margin-bottom: 2rem;
	font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.5rem);
	text-align: center;
}

/* Peu de produits associés : rangée centrée plutôt qu'alignée à gauche. */
@media (min-width: 768px) {

	.related.products ul.products,
	.upsells.products ul.products,
	.cross-sells ul.products {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
	}

	.related.products ul.products li.product,
	.upsells.products ul.products li.product,
	.cross-sells ul.products li.product {
		flex: 0 0 calc(33.333% - 1rem);
	}
}

@media (min-width: 1100px) {

	.related.products ul.products li.product,
	.upsells.products ul.products li.product {
		flex-basis: calc(25% - 1.125rem);
	}
}

@media (max-width: 767px) {

	.related.products ul.products,
	.upsells.products ul.products,
	.cross-sells ul.products {
		display: flex;
		gap: 1rem;
		margin-right: calc(var(--mo-gutter) * -1);
		margin-left: calc(var(--mo-gutter) * -1);
		padding: 0 var(--mo-gutter);
		overflow-x: auto;
		scroll-padding: 0 var(--mo-gutter);
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.related.products ul.products li.product,
	.upsells.products ul.products li.product,
	.cross-sells ul.products li.product {
		flex: 0 0 62%;
		scroll-snap-align: start;
	}
}

/* Barre d'achat fixe. */
.mo-sticky-atc {
	position: fixed;
	z-index: 40;
	right: 0;
	bottom: 0;
	left: 0;
	visibility: hidden;
	padding: 0.75rem 0 calc(0.75rem + env(safe-area-inset-bottom));
	transform: translateY(110%);
	border-top: 1px solid var(--mo-line);
	background: color-mix(in srgb, var(--mo-surface-2) 94%, transparent);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	transition: transform 0.3s var(--mo-ease), visibility 0.3s;
}

.mo-sticky-atc.is-visible {
	visibility: visible;
	transform: none;
}

.mo-sticky-atc__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.mo-sticky-atc__product {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
}

.mo-sticky-atc__image {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	padding: 3px;
	border-radius: var(--mo-radius-s);
	background: var(--mo-well);
	object-fit: contain;
}

.mo-sticky-atc__text {
	min-width: 0;
}

.mo-sticky-atc__title {
	margin: 0;
	overflow: hidden;
	font-size: 0.875rem;
	font-weight: 600;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mo-sticky-atc__price {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 700;
}

.mo-sticky-atc__price del {
	color: var(--mo-muted);
	font-weight: 400;
}

.mo-sticky-atc__button {
	flex-shrink: 0;
	min-height: 48px;
}

@media (max-width: 479px) {

	.mo-sticky-atc__image {
		display: none;
	}
}

body.mo-has-sticky-atc .mo-footer {
	padding-bottom: 5rem;
}

/* ==========================================================================
   4. Avis
   ========================================================================== */

.mo-product-reviews {
	margin-top: clamp(2rem, 1.5rem + 2vw, 3.5rem);
}

.woocommerce-Reviews-title,
#reply-title {
	font-size: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
}

#reviews .commentlist {
	margin: 1.5rem 0 2.5rem;
	padding: 0;
	list-style: none;
}

#reviews .commentlist li {
	padding: 1.5rem 0;
	border-bottom: 1px solid var(--mo-line);
}

#reviews .comment_container {
	display: flex;
	gap: 1rem;
}

#reviews .comment_container .avatar {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: var(--mo-radius-pill);
}

#reviews .comment-text {
	flex: 1;
}

#reviews .comment-text .star-rating {
	margin-bottom: 0.5rem;
}

#reviews .meta {
	margin-bottom: 0.5rem;
	color: var(--mo-muted);
	font-size: 0.8125rem;
}

#reviews .woocommerce-review__author {
	color: var(--mo-text);
	font-size: 0.9375rem;
}

#reviews .woocommerce-review__verified {
	color: var(--mo-success);
	font-style: normal;
}

#reviews .description p {
	margin-bottom: 0.5rem;
}

#review_form_wrapper {
	padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
	background: var(--mo-surface);
}

#review_form .comment-form-rating label,
#review_form .comment-form label {
	display: block;
}

/* Sélection de la note (générée par WooCommerce). */
p.stars {
	display: inline-flex;
	margin: 0.25rem 0 1rem;
}

p.stars span {
	display: inline-flex;
	gap: 0.15rem;
}

p.stars a {
	position: relative;
	width: 32px;
	height: 32px;
	overflow: hidden;
	color: transparent;
	text-indent: -999em;
}

p.stars a::before {
	content: "";
	position: absolute;
	inset: 4px;
	background: var(--mo-line);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.94 6.1 6.56.95-4.75 4.63 1.12 6.53L12 17.6l-5.87 3.11 1.12-6.53L2.5 9.55l6.56-.95z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.94 6.1 6.56.95-4.75 4.63 1.12 6.53L12 17.6l-5.87 3.11 1.12-6.53L2.5 9.55l6.56-.95z'/%3E%3C/svg%3E") center / contain no-repeat;
}

p.stars:hover a::before,
p.stars.selected a::before {
	background: var(--mo-gold);
}

p.stars:hover a:hover ~ a::before,
p.stars.selected a.active ~ a::before {
	background: var(--mo-line);
}

p.stars:hover a:hover::before,
p.stars.selected:hover a:hover::before {
	background: var(--mo-gold);
}

/* ==========================================================================
   5. Formulaires WooCommerce
   ========================================================================== */

.form-row {
	margin: 0 0 1.1rem;
}

.form-row label {
	display: block;
}

.form-row .required {
	color: var(--mo-accent);
	text-decoration: none;
}

.form-row .optional {
	color: var(--mo-muted);
	font-weight: 400;
}

.form-row.woocommerce-invalid input,
.form-row.woocommerce-invalid select {
	border-color: var(--mo-error);
}

.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.25rem;
	font-weight: 400;
}

.woocommerce-password-strength {
	margin-top: 0.5rem;
	padding: 0.4rem 0.75rem;
	border-radius: var(--mo-radius-s);
	font-size: 0.8125rem;
	font-weight: 600;
}

.woocommerce-password-strength.strong {
	background: color-mix(in srgb, var(--mo-success) 18%, transparent);
}

.woocommerce-password-strength.short,
.woocommerce-password-strength.bad {
	background: color-mix(in srgb, var(--mo-error) 18%, transparent);
}

.woocommerce-password-hint {
	display: block;
	margin-top: 0.4rem;
	color: var(--mo-muted);
	font-size: 0.8125rem;
}

.password-input {
	display: flex;
	position: relative;
}

.show-password-input {
	position: absolute;
	top: 50%;
	right: 0.5rem;
	width: 36px;
	height: 36px;
	transform: translateY(-50%);
	border: 0;
	background: transparent;
	color: var(--mo-muted);
	cursor: pointer;
}

.show-password-input::before {
	content: "";
	display: block;
	width: 20px;
	height: 20px;
	margin: auto;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.06 12.35a1 1 0 0 1 0-.7 10.75 10.75 0 0 1 19.88 0 1 1 0 0 1 0 .7 10.75 10.75 0 0 1-19.88 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.06 12.35a1 1 0 0 1 0-.7 10.75 10.75 0 0 1 19.88 0 1 1 0 0 1 0 .7 10.75 10.75 0 0 1-19.88 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat;
}

.show-password-input.display-password::before {
	opacity: 0.5;
}

/* Listes déroulantes enrichies (selectWoo). */
.select2-container .select2-selection--single {
	height: 48px;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-s);
	background: var(--mo-surface);
}

.select2-container .select2-selection--single .select2-selection__rendered {
	padding-left: 1rem;
	color: var(--mo-text);
	line-height: 46px;
}

.select2-container .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

.select2-dropdown {
	border-color: var(--mo-line);
	background: var(--mo-surface-2);
	color: var(--mo-text);
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--mo-accent);
	color: var(--mo-on-accent);
}

.select2-search--dropdown .select2-search__field {
	border-color: var(--mo-line);
	background: var(--mo-surface);
	color: var(--mo-text);
}

/* ==========================================================================
   6. Tableaux et panier classique
   ========================================================================== */

.shop_table {
	width: 100%;
	margin-bottom: 2rem;
	border-collapse: collapse;
}

.shop_table th,
.shop_table td {
	padding: 1rem 0.5rem;
}

.shop_table .product-thumbnail a {
	display: inline-block;
	border-radius: var(--mo-radius-s);
	background: var(--mo-well);
	isolation: isolate;
}

.shop_table .product-thumbnail img {
	width: 72px;
	padding: 4px;
	mix-blend-mode: multiply;
}

.shop_table .product-remove a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: var(--mo-radius-pill);
	color: var(--mo-muted);
	font-size: 1.25rem;
	text-decoration: none;
}

.shop_table .product-remove a:hover {
	background: color-mix(in srgb, var(--mo-text) 8%, transparent);
	color: var(--mo-text);
}

.shop_table .product-name a {
	color: var(--mo-text);
	font-weight: 600;
	text-decoration: none;
}

.shop_table td.actions {
	padding-top: 1.5rem;
}

.shop_table .coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1rem;
}

.shop_table .coupon .input-text {
	width: auto;
	flex: 1 1 200px;
}

/* Tableaux responsives (comportement de woocommerce-smallscreen, réécrit). */
@media (max-width: 767px) {

	.shop_table_responsive thead {
		display: none;
	}

	.shop_table_responsive tr {
		display: block;
		padding: 0.75rem 0;
		border-bottom: 1px solid var(--mo-line);
	}

	.shop_table_responsive td {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		padding: 0.45rem 0;
		border: 0;
		text-align: right;
	}

	.shop_table_responsive td::before {
		content: attr(data-title);
		color: var(--mo-muted);
		font-size: 0.75rem;
		font-weight: 700;
		letter-spacing: 0.1em;
		text-align: left;
		text-transform: uppercase;
	}

	.shop_table_responsive td.product-remove::before,
	.shop_table_responsive td.product-thumbnail::before,
	.shop_table_responsive td.actions::before {
		display: none;
	}

	.shop_table_responsive td.actions {
		display: block;
		text-align: left;
	}
}

.cart-collaterals {
	display: grid;
	gap: 2.5rem;
}

.cart_totals {
	padding: clamp(1.25rem, 1rem + 1.5vw, 2rem);
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
	background: var(--mo-surface);
}

.cart_totals h2 {
	font-size: 1.75rem;
}

.wc-proceed-to-checkout .checkout-button {
	width: 100%;
	min-height: 56px;
}

.woocommerce-shipping-methods {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* ==========================================================================
   7. Mon compte
   ========================================================================== */

.woocommerce-account .mo-woo-page > .woocommerce {
	display: grid;
	gap: 2rem;
}

@media (min-width: 900px) {

	.woocommerce-account.logged-in .mo-woo-page > .woocommerce {
		grid-template-columns: 240px minmax(0, 1fr);
		gap: 3.5rem;
		align-items: start;
	}
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	gap: 0.5rem;
	margin: 0;
	padding: 0 0 0.5rem;
	overflow-x: auto;
	list-style: none;
	scrollbar-width: none;
}

.woocommerce-MyAccount-navigation a {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 0.5rem 1rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-pill);
	color: var(--mo-text);
	font-size: 0.875rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}

.woocommerce-MyAccount-navigation .is-active a {
	border-color: var(--mo-text);
	background: var(--mo-text);
	color: var(--mo-bg);
}

@media (min-width: 900px) {

	.woocommerce-MyAccount-navigation ul {
		flex-direction: column;
		gap: 0;
		overflow: visible;
		border-left: 1px solid var(--mo-line);
	}

	.woocommerce-MyAccount-navigation a {
		width: 100%;
		margin-left: -1px;
		padding: 0.7rem 1.25rem;
		border: 0;
		border-left: 1px solid transparent;
		border-radius: 0;
		color: var(--mo-muted);
	}

	.woocommerce-MyAccount-navigation a:hover {
		color: var(--mo-text);
	}

	.woocommerce-MyAccount-navigation .is-active a {
		border-left-color: var(--mo-accent);
		background: transparent;
		color: var(--mo-text);
	}
}

.woocommerce-MyAccount-content > p:first-child {
	color: var(--mo-muted);
}

.woocommerce-MyAccount-content mark {
	background: none;
	color: var(--mo-text);
	font-weight: 700;
}

/* Connexion / inscription. */
.u-columns.col2-set {
	display: grid;
	gap: 2rem;
}

@media (min-width: 900px) {

	.u-columns.col2-set {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-ResetPassword,
.woocommerce-EditAccountForm,
.woocommerce-address-fields {
	padding: clamp(1.25rem, 1rem + 1.5vw, 2.25rem);
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
	background: var(--mo-surface);
}

.woocommerce-form-login .button,
.woocommerce-form-register .button {
	width: 100%;
	margin-top: 0.5rem;
}

.woocommerce-form-login__rememberme {
	display: flex;
	margin-bottom: 0.5rem;
}

.lost_password a {
	color: var(--mo-muted);
	font-size: 0.875rem;
}

.woocommerce-Addresses {
	display: grid;
	gap: 1.5rem;
}

@media (min-width: 768px) {

	.woocommerce-Addresses {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.woocommerce-Address {
	padding: 1.5rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
}

.woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem;
}

.woocommerce-Address-title h2 {
	font-size: 1.375rem;
}

.woocommerce-Address address {
	color: var(--mo-muted);
	font-style: normal;
	line-height: 1.7;
}

.woocommerce-orders-table .button,
.woocommerce-MyAccount-downloads .button {
	min-height: 36px;
	margin: 0.15rem;
	padding: 0.4rem 0.85rem;
	font-size: 0.6875rem;
}

.woocommerce-order-details,
.woocommerce-customer-details {
	margin-top: 2.5rem;
}

.woocommerce-customer-details address {
	padding: 1.25rem;
	border: 1px solid var(--mo-line);
	border-radius: var(--mo-radius-m);
	font-style: normal;
	line-height: 1.7;
}
