/* Thème Joaillerie — styles complémentaires à theme.json. */

body {
	--jw-accent: var(--wp--preset--color--primary);
}
/* Couleur du produit : body d'une fiche produit, ou bloc « Produit mis en avant ». */
.jw-color-yellow {
	--jw-accent: var(--wp--preset--color--secondary);
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 1px solid var(--wp--preset--color--neutral-500);
	outline-offset: 2px;
}

/* En-tête */
.jw-header {
	padding-inline: max(
		var(--wp--style--root--padding-left),
		calc((100% - var(--wp--style--global--wide-size)) / 2)
	);
	background: var(--wp--preset--color--page);
}
.jw-header__side {
	flex: 1 1 0;
	gap: clamp(0.5rem, 1vw, 1rem);
}
.jw-header__side--end {
	justify-content: flex-end;
}
.jw-header__brand {
	flex: none;
	gap: 0.25rem;
}
.jw-header__logo,
.jw-header__logo a {
	display: block;
	margin: 0;
}
.jw-header__logo img {
	display: block;
	width: clamp(4rem, 5vw, 6rem);
	height: auto;
}
.jw-header .jw-header__side svg {
	width: clamp(1.5rem, 2.08vw, 2.5rem);
	height: clamp(1.5rem, 2.08vw, 2.5rem);
}
/* Chevron du sous-menu : discret, à la taille du texte et non des icônes. */
.jw-header .jw-header__side .wp-block-navigation__submenu-icon {
	align-self: center;
	width: auto;
	height: auto;
	margin-left: 0.375rem;
	padding: 0;
}
.jw-header .jw-header__side .wp-block-navigation__submenu-icon svg {
	width: 0.625rem;
	height: 0.625rem;
	stroke: currentcolor;
	transition: transform 0.2s;
}
.jw-header__menu .wp-block-navigation-submenu:hover .wp-block-navigation__submenu-icon svg,
.jw-header__menu .wp-block-navigation-submenu__toggle[aria-expanded='true'] svg {
	transform: rotate(180deg);
}
.jw-header .wp-block-search__button {
	align-items: center;
	padding: 0;
	border: 0;
	background: none;
}
.jw-header
	:where(
		.wp-block-search__button,
		.wc-block-customer-account__link,
		.wc-block-mini-cart__button,
		.wc-block-cart-link
	) {
	color: color-mix(in srgb, var(--wp--preset--color--primary) 50%, transparent);
	transition: color 0.2s;
}
.jw-header
	:where(
		.wp-block-search__button,
		.wc-block-customer-account__link,
		.wc-block-mini-cart__button,
		.wc-block-cart-link
	):hover {
	color: var(--wp--preset--color--primary);
}
/* Icônes de droite : sans le padding de WooCommerce, pour que l'écart visible
   entre langue, compte et panier soit celui du gap du groupe. Le lien du panier remplace
   le mini-panier sur la page de commande (parts/checkout-header.html). */
.jw-header :is(.wc-block-customer-account__link, .wc-block-mini-cart__button, .wc-block-cart-link) {
	padding: 0;
}
/* Navigation : liens visibles dans l'en-tête, menu plein écran sous 600px.
   WordPress force les liens à hériter : la couleur se pose sur le bloc et sur l'élément survolé. */
.jw-header__menu {
	color: color-mix(in srgb, var(--wp--preset--color--primary) 50%, transparent);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 400;
}
.jw-header__menu .wp-block-navigation__container {
	gap: clamp(1rem, 2vw, 2rem);
}
.jw-header__menu .wp-block-navigation-item {
	transition: color 0.2s;
}
.jw-header__menu .wp-block-navigation-item:hover,
.jw-header__menu .current-menu-item,
.jw-header__menu .wp-block-navigation__responsive-container-open {
	color: var(--wp--preset--color--primary);
}
/* Liste déroulante des catégories sous « Boutique ». */
.jw-header__menu .wp-block-navigation__submenu-container {
	padding: 0.5rem 0;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.375rem;
	box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 8%);
	color: color-mix(in srgb, var(--wp--preset--color--primary) 50%, transparent);
}
.jw-header__menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.5rem 1.25rem;
}
.jw-header__menu .is-menu-open .wp-block-navigation__submenu-container {
	padding: 1rem 0 0;
	border: 0;
	box-shadow: none;
	gap: 1rem;
}
.jw-header__menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item {
	font-family: inherit;
	font-size: var(--wp--preset--font-size--label);
}
.jw-header__menu
	.is-menu-open
	.wp-block-navigation__submenu-container
	.wp-block-navigation-item__content {
	padding: 0;
}
.jw-header__menu .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.5rem var(--wp--style--root--padding-left);
}
.jw-header__menu .is-menu-open .wp-block-navigation__container {
	gap: 1.5rem;
}
.jw-header__menu .is-menu-open .wp-block-navigation-item {
	font-family: var(--wp--preset--font-family--title);
	font-size: var(--wp--preset--font-size--section-title);
}
/* Une bannière pleine largeur en tête de page se colle à l'en-tête,
   sans l'espacement que WordPress met entre les blocs racine. La bannière peut être
   un bloc racine, ou le premier bloc d'un ou deux conteneurs (main, contenu de la page) :
   un modèle modifié dans l'éditeur de site n'a pas toujours la structure du thème. */
.wp-site-blocks
	> :is(
		.wp-block-cover.alignfull,
		:has(> .wp-block-cover.alignfull:first-child),
		:has(> :first-child > .wp-block-cover.alignfull:first-child)
	) {
	margin-block-start: 0;
}

/* Une bannière pleine largeur garde la même marge latérale que le reste du site. */
.wp-block-cover.alignfull {
	padding-inline: var(--wp--style--root--padding-left);
}

/* Héros : texte aligné sur la colonne large, même avec une position de contenu choisie
   (WordPress réduit alors le conteneur à la largeur du texte). */
.wp-block-cover.jw-hero--high .wp-block-cover__inner-container,
.wp-block-cover.jw-hero--high.has-custom-content-position.has-custom-content-position
	.wp-block-cover__inner-container {
	width: 100%;
	max-width: var(--wp--style--global--wide-size);
	margin-inline: auto;
}
/* Héros : sous-titre rapproché du titre. */
.wp-block-cover.jw-hero--high .wp-block-heading + p {
	margin-block-start: 0.5rem;
}
/* Position du contenu « à droite » : le texte et le bouton s'alignent à droite de la colonne. */
.wp-block-cover.jw-hero--high:is(
		.is-position-top-right,
		.is-position-center-right,
		.is-position-bottom-right
	)
	.wp-block-cover__inner-container {
	text-align: right;
}
.wp-block-cover.jw-hero--high:is(
		.is-position-top-right,
		.is-position-center-right,
		.is-position-bottom-right
	)
	.wp-block-buttons {
	justify-content: flex-end;
}

/* Pied de page */
.jw-footer {
	padding-block: 1.5rem;
	border-top: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--neutral-500);
	font-size: var(--wp--preset--font-size--small);
}
.jw-footer p {
	margin: 0;
}
.jw-footer__meta {
	gap: 1rem;
}
.jw-footer__nav a {
	color: var(--wp--preset--color--contrast);
}

/* Boutique */
.jw-shop-toolbar {
	gap: 1rem;
	margin-bottom: 2rem;
}
/* Recherche (boutique, page introuvable, en-tête une fois dépliée) : champ et bouton dans un même
   cadre, arrondi comme les cartes produit (cadre 1.5rem, contenu 1rem). */
:is(.jw-search, .jw-header__search:not(.wp-block-search__searchfield-hidden))
	.wp-block-search__inside-wrapper {
	padding: 0.25rem;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 1.5rem;
	background: var(--wp--preset--color--page);
}
:is(.jw-search, .jw-header__search) .wp-block-search__input {
	padding-inline: 1rem 0.5rem;
	border: 0;
	background: transparent;
}
:is(.jw-search, .jw-header__search) .wp-block-search__input:focus-visible {
	outline: 0;
}
/* Sans la croix d'effacement du navigateur, étrangère à la charte. */
:is(.jw-search, .jw-header__search) .wp-block-search__input::-webkit-search-cancel-button {
	appearance: none;
}
/* Champ actif : un seul trait, le cadre qui s'épaissit (pas de contour en plus autour). */
:is(.jw-search, .jw-header__search) .wp-block-search__inside-wrapper:focus-within {
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--primary);
}
.jw-search .wp-block-search__button,
.jw-header .jw-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__button {
	margin: 0;
	padding: 0.5rem 1rem;
	border-radius: 1.25rem;
}
/* Dans l'en-tête, le bouton déplié reprend le fond du bouton de la boutique. */
.jw-header .jw-header__search:not(.wp-block-search__searchfield-hidden) .wp-block-search__button {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
}
.jw-header
	.jw-header__search:not(.wp-block-search__searchfield-hidden)
	.wp-block-search__button:hover {
	background: var(--wp--preset--color--primary-darkest);
}
.jw-header .jw-header__side .jw-header__search:not(.wp-block-search__searchfield-hidden) svg {
	width: 1.5rem;
	height: 1.5rem;
}
.wc-block-product-template .wc-block-product {
	list-style: none;
}

/* Fiche produit */
/* Fiche produit : le fond décoratif de la carte reste derrière le contenu, sans déborder de la fiche. */
.jw-product {
	isolation: isolate;
	overflow: clip;
}
.jw-back-link a {
	color: var(--wp--preset--color--neutral-500);
	text-decoration: none;
}
.jw-back-link a:hover {
	color: var(--wp--preset--color--primary);
}
/* Fiche réduite à ~2/3 de la maquette, comme la vitrine et le catalogue. */
.jw-product__columns {
	max-width: 52rem;
	margin-inline: auto;
	padding-block: 2rem;
}
@media (min-width: 782px) {
	.jw-product__columns {
		gap: 6rem;
	}
	.wp-block-columns.jw-product__columns > .wp-block-column:first-child {
		flex: 0 1 23rem;
	}
}
.jw-product__summary {
	display: flex;
	flex-direction: column;
	/* Le bas du bouton s'aligne sur le bas de l'image (bordure + marge intérieure de la carte). */
	padding-bottom: 1rem;
}
.jw-product__summary > * {
	margin-block: 0;
}
.jw-product__title {
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.05;
}
/* Produit mis en avant : le titre (h2) mène à la fiche, sans style de lien. */
.jw-product__title a {
	color: inherit;
	text-decoration: none;
}
.jw-product__summary .jw-material {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--medium);
}
.jw-product__title,
.jw-product__price,
.jw-product__price .amount {
	color: var(--jw-accent);
}
.jw-product__description {
	margin-top: 2rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 500;
	line-height: 1.2;
}
.jw-product__description > :first-child {
	margin-top: 0;
}
.jw-product__stock {
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
}
.jw-product__price {
	margin-top: auto;
	padding-top: 1.5rem;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
}
.jw-product .wc-block-add-to-cart-form {
	margin-top: 0.75rem;
}
.jw-product .jw-product__summary .wc-block-add-to-cart-form form.cart {
	margin-block: 0;
}
/* La disponibilité est déjà affichée par le bloc jw-product__stock. */
.jw-product .wc-block-add-to-cart-form .stock {
	display: none;
}
.jw-product .wc-block-add-to-cart-form form.cart:not(.variations_form) .quantity,
.jw-product .wc-block-add-to-cart-form .single_variation_wrap .quantity {
	display: none;
}
.jw-product .wc-block-add-to-cart-form .single_add_to_cart_button {
	margin: 0;
	padding: 0.375rem 1.25rem;
	border: 1px solid var(--jw-accent);
	border-radius: 999px;
	background: var(--jw-accent);
	color: var(--wp--preset--color--base);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	line-height: 1.4;
}
.jw-product .wc-block-add-to-cart-form .single_add_to_cart_button:hover {
	background: var(--wp--preset--color--page);
	color: var(--jw-accent);
}
.jw-product .jw-card--gallery {
	--jw-border: 4px;
	border-radius: 2.5rem;
}
.jw-product .jw-card--gallery .jw-card__frame {
	padding: 0.75rem;
}
.jw-product .jw-card--gallery img.jw-card__image {
	border-radius: 2rem;
}
/* Pin de la fiche produit, deux fois plus petit : sur mobile, centré au même point du coin ;
   au-delà, au même écart du coin. */
.jw-product .jw-card--gallery .jw-card__pin {
	top: -0.875rem;
	left: -0.375rem;
	width: 1.25rem;
}
@media (min-width: 768px) {
	.jw-product .jw-card--gallery .jw-card__pin {
		top: -1.25rem;
		left: -1.25rem;
		width: 1rem;
	}
}
/* Produits connexes : ventes incitatives du produit, à défaut produits de la même catégorie. */
.jw-related:not(:has(.wc-block-product)),
.jw-related--upsells:has(.wc-block-product) ~ .jw-related--category {
	display: none;
}
/* La carte survolée s'allonge sous sa place (bouton sur une ou deux lignes) : sans cette marge,
   .jw-product la couperait au ras du pied de page. */
@media (min-width: 768px) {
	.jw-related {
		padding-bottom: 3rem;
	}
}
.jw-related > .wp-block-heading {
	font-size: var(--wp--preset--font-size--x-large);
}

/* Vitrine et produits connexes */
/* Padding plutôt que marge en bas : WordPress annule la marge du dernier bloc,
   et la carte survolée doit pouvoir s'agrandir sans recouvrir le pied de page. */
.jw-showcase {
	margin-block-start: 6.875rem;
	padding-bottom: 6.875rem;
}
.jw-showcase__intro {
	font-weight: 500;
}
/* Sous-titre rapproché du titre, comme dans le héros. */
.jw-showcase > .wp-block-heading + p {
	margin-block-start: 0.5rem;
}
:is(.jw-showcase, .jw-related) .jw-card__pin {
	display: none;
}
.jw-showcase__products {
	margin-block-start: 4.0625rem;
}
/* Vitrine, produits connexes et catalogue (boutique, catégories, recherche) : jusqu'à six cartes par
   ligne (une ligne sur un écran 16/9), et moins sous ~9.5rem par carte (deux sur
   mobile). Le minimum calculé empêche une septième colonne. */
.jw-catalog__products .wc-block-product-template,
.jw-showcase__products .wc-block-product-template,
.jw-related .wc-block-product-template {
	--jw-gap: clamp(1rem, 1.7vw, 2rem);
	display: grid;
	grid-template-columns: repeat(
		auto-fill,
		minmax(max(min(100%, 9.5rem), (100% - 5 * var(--jw-gap)) / 6), 1fr)
	);
	gap: 3rem var(--jw-gap);
	margin-top: 0;
}
/* Vitrine : cartes plus espacées (+50 %), au prix de leur largeur. Une seule ligne de six cartes
   (deux sur mobile) qui défile : flèches sur les côtés (Showcase.php, showcase.js), glisser au doigt.
   Moins de cartes que la largeur : centrées (« safe » : jamais coupées à gauche en débordant). */
.jw-showcase__products .wc-block-product-template {
	--jw-gap: clamp(1.5rem, 2.55vw, 3rem);
	--jw-card-width: max(min(100%, 9.5rem), (100% - 5 * var(--jw-gap)) / 6);
	/* Marge de défilement : la carte survolée s'allonge vers le bas (bouton) sans être coupée. */
	--jw-overflow: 4rem;
	/* Et sur les côtés : bordures et pastilles des cartes en bout de ligne. */
	--jw-overflow-inline: 0.5rem;
	grid-template-columns: none;
	grid-auto-columns: var(--jw-card-width);
	grid-auto-flow: column;
	justify-content: safe center;
	padding: 0.25rem var(--jw-overflow-inline) var(--jw-overflow);
	margin: -0.25rem calc(-1 * var(--jw-overflow-inline)) calc(-1 * var(--jw-overflow));
	scroll-padding-inline: var(--jw-overflow-inline);
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.jw-showcase__products .wc-block-product-template::-webkit-scrollbar {
	display: none;
}
.jw-showcase__products .wc-block-product-template > * {
	scroll-snap-align: start;
}
@media (max-width: 599px) {
	.jw-showcase__products .wc-block-product-template {
		--jw-card-width: calc((100% - var(--jw-gap)) / 2);
	}
}
/* flow-root : la marge négative de la ligne réduit bien la hauteur de la collection,
   les flèches se centrent sur les cartes. */
.jw-showcase__products {
	position: relative;
	display: flow-root;
}
/* Flèches posées sur les bords de la ligne, à hauteur des images ; masquées sans débordement. */
.jw-showcase__nav {
	position: absolute;
	top: 40%;
	z-index: 4;
	display: none;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	padding: 0 0 0.2em;
	border: 1.5px solid var(--wp--preset--color--primary);
	border-radius: 50%;
	background: var(--wp--preset--color--page);
	color: var(--wp--preset--color--primary);
	font-size: 2rem;
	line-height: 1;
	cursor: pointer;
	transform: translate(-50%, -50%);
	transition:
		opacity 0.3s,
		background-color 0.2s,
		color 0.2s;
}
.jw-showcase__products.is-scrollable .jw-showcase__nav {
	display: flex;
}
.jw-showcase__nav--prev {
	left: 0;
}
.jw-showcase__nav--next {
	right: 0;
	transform: translate(50%, -50%);
}
.jw-showcase__nav:hover,
.jw-showcase__nav:focus-visible {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--page);
}
.jw-showcase__nav:disabled {
	opacity: 0;
	pointer-events: none;
}
/* Mobile : flèches plus petites, dans la ligne, pour ne pas déborder de l'écran. */
@media (max-width: 767px) {
	.jw-showcase__nav {
		width: 2.25rem;
		height: 2.25rem;
		font-size: 1.5rem;
	}
	.jw-showcase__nav--prev {
		left: 0.25rem;
		transform: translateY(-50%);
	}
	.jw-showcase__nav--next {
		right: 0.25rem;
		transform: translateY(-50%);
	}
}
/* Catalogue (boutique, catégories, recherche) : cartes 20 % plus étroites, toujours six par ligne.
   L'écart reprend la largeur perdue : (100 % - 5 × écart) / 6 devient 80 % de la largeur d'origine. */
.jw-catalog__products .wc-block-product-template {
	--jw-gap: calc(4% + 0.8 * clamp(1rem, 1.7vw, 2rem));
}
/* Catalogue, recherche et vitrine : toutes les cartes en vert, quelle que soit la couleur de
   l'article (y compris une recherche sans « post_type=product », rendue par le modèle index). */
:is(.jw-catalog__products, body.search, .jw-showcase) .jw-card {
	--jw-accent: var(--wp--preset--color--primary);
}
/* Catalogue : titre puis prix l'un sous l'autre, le prix sur une seule ligne. */
.jw-catalog__products .jw-card__row {
	container-type: inline-size;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.125rem;
}
.jw-catalog__products .jw-card__price {
	margin: 0;
	font-size: min(0.9375rem, 10cqi);
	white-space: nowrap;
}

.jw-related .wc-block-product-template {
	margin-top: 1.5rem;
}
/* Cartes d'une même ligne à la même hauteur, quelle que soit la longueur du texte. */
.jw-showcase__products :is(.wc-block-product, .wp-block-joaillerie-product-card),
.jw-related :is(.wc-block-product, .wp-block-joaillerie-product-card) {
	display: flex;
	flex: 1;
	flex-direction: column;
}
:is(.jw-showcase, .jw-related) .jw-card--showcase {
	flex: 1;
	border-radius: 2rem;
}
:is(.jw-showcase, .jw-related) .jw-card__frame {
	padding: 0.75rem;
}
:is(.jw-showcase, .jw-related) .jw-card img.jw-card__image {
	border-radius: 1.5rem;
}
:is(.jw-showcase, .jw-related) .jw-card__link {
	container-type: inline-size;
	margin: 0 clamp(0.5rem, 1vw, 1rem);
	padding-bottom: 1rem;
}
:is(.jw-showcase, .jw-related) .jw-card__link .jw-card__title {
	font-size: clamp(1.125rem, 1.4vw, 1.625rem);
}
:is(.jw-showcase, .jw-related) .jw-card__material {
	font-size: var(--wp--preset--font-size--small);
}
.jw-showcase .jw-card__material {
	color: var(--jw-accent);
}
/* Zone du bouton au survol : la hauteur du bouton et un petit espace sous lui. */
:is(.jw-showcase, .jw-related) .jw-card {
	--jw-actions-space: 1.125rem;
}
:is(.jw-showcase, .jw-related) .jw-card__button {
	padding: 0.25rem 0.875rem;
	font-size: var(--wp--preset--font-size--small);
}
:is(.jw-showcase, .jw-related) .jw-card__link .jw-card__price {
	margin-top: 0.5rem;
	white-space: nowrap;
	/* Une fourchette « 150,00 € - 165,00 € » fait ~9,5em : elle tient dans la carte. */
	font-size: min(clamp(1rem, 1.1vw, 1.25rem), 10cqi);
}
.jw-catalog__products .wc-block-product,
.jw-showcase__products .wc-block-product,
.jw-related .wc-block-product {
	width: auto;
	max-width: none;
	margin: 0;
}

/* Grille de trois */
@media (min-width: 768px) {
	.jw-three-grid .wc-block-product-template {
		display: grid;
		grid-template-columns: repeat(6, 1fr);
		grid-template-rows: repeat(2, auto);
		gap: 1rem;
	}
	.jw-three-grid .wc-block-product-template > :first-child {
		grid-column: span 4;
		grid-row: span 2;
	}
	.jw-three-grid .wc-block-product-template > :not(:first-child) {
		grid-column: span 2;
	}
}

/* Panier, commande, mini-panier */
:where(.wc-block-cart, .wc-block-checkout, .wc-block-mini-cart__drawer) {
	font-family: var(--wp--preset--font-family--content);
}
/* Sous-titres des étapes de la commande (h2, police de titre par défaut) : comme
   « Résumé de la commande », dans la police du texte. */
.wc-block-checkout .wc-block-components-checkout-step__title {
	font-family: var(--wp--preset--font-family--content);
	font-weight: 500;
}
.wc-block-mini-cart__drawer.wc-block-components-drawer {
	background: var(--wp--preset--color--page);
}
.wc-block-components-button:not(.is-link) {
	border-radius: 0.375rem;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font-weight: 600;
}
.wc-block-components-button:not(.is-link):hover {
	background: var(--wp--preset--color--primary-darkest);
}
/* Panier : noms de produits sans soulignement, un peu plus gras (WooCommerce : 500, sur
   table.wc-block-cart-items .wc-block-cart-items__row). */
.wc-block-cart
	table.wc-block-cart-items
	.wc-block-cart-items__row
	.wc-block-components-product-name {
	font-weight: 600;
	text-decoration: none;
}
/* Panier : sélecteur de quantité aussi gras que les noms, icône de suppression un cran plus petite. */
.wc-block-cart
	:is(
		.wc-block-components-quantity-selector__input,
		.wc-block-components-quantity-selector__button
	) {
	font-weight: 600;
}
/* Mise à l'échelle plutôt que 20px : l'icône garde sa boîte de 24px, centrée sur le sélecteur
   (et l'affichage du bouton, masqué par WooCommerce sur écran étroit, n'est pas touché). */
.wc-block-cart .wc-block-cart-item__remove-link svg {
	transform: scale(0.8333);
}
/* Panier et mini-panier : boutons arrondis comme « Ajouter au panier ». */
:is(.wc-block-cart, .wc-block-mini-cart__drawer) .wc-block-components-button:not(.is-link) {
	border-radius: 999px;
}
:where(
	.wc-block-components-text-input input,
	.wc-blocks-components-select__select,
	.wc-block-components-textarea
) {
	border-color: var(--wp--preset--color--border) !important;
	border-radius: 0.375rem !important;
}
/* Champs sur le fond de page, comme ceux du formulaire de contact. WooCommerce les met en blanc,
   y compris au focus, avec des sélecteurs bien plus précis : !important, comme pour la bordure. */
:is(
	.wc-block-components-text-input input,
	.wc-blocks-components-select__container,
	.wc-block-components-textarea
) {
	background-color: var(--wp--preset--color--page) !important;
}
/* Champ actif : un seul trait, la bordure qui passe en vert (WooCommerce l'épaissit déjà),
   sans le contour décalé des autres éléments. */
:is(
	.wc-block-components-text-input input,
	.wc-blocks-components-select__select,
	.wc-block-components-textarea
):focus {
	outline: 0;
	border-color: var(--wp--preset--color--primary) !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-product-price {
	color: var(--wp--preset--color--primary);
}
/* Pastille du panier : chiffre blanc sur fond vert. Le script du mini-panier pose ses couleurs
   en style inline (fond = couleur du texte, texte = couleur du fond) : !important les remplace. */
.wc-block-mini-cart__badge {
	background: var(--wp--preset--color--primary) !important;
	color: #fff !important;
}

/* Formulaire de contact : champs encadrés et arrondis comme la recherche de la boutique,
   bouton plein comme « Ajouter au panier ». */
.wpcf7-form label {
	display: block;
}
.wpcf7-form :is(input:not([type='submit'], [type='hidden']), textarea) {
	box-sizing: border-box;
	width: 100%;
	margin-top: 0.375rem;
	padding: 0.75rem 1.25rem;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 1.5rem;
	background: var(--wp--preset--color--page);
	color: var(--wp--preset--color--neutral-850);
	font: inherit;
}
.wpcf7-form textarea {
	min-height: 10rem;
	resize: vertical;
}
.wpcf7-form :is(input, textarea):focus-visible {
	outline: 1px solid var(--wp--preset--color--neutral-500);
	outline-offset: 2px;
}
.wpcf7-form .wpcf7-submit {
	padding: 0.5rem 1.5rem;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 999px;
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--base);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition:
		background 0.2s,
		color 0.2s;
}
.wpcf7-form .wpcf7-submit:hover {
	background: var(--wp--preset--color--page);
	color: var(--wp--preset--color--primary);
}

/* Inscription : cases de consentement alignées sur leur libellé */
.woocommerce-form-register .woocommerce-form__label-for-checkbox {
	display: flex;
	gap: 0.5rem;
	align-items: baseline;
	line-height: 1.4;
}

/* Mon compte : colonne de liens, comme AccountNav du site d'origine */
.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-account .woocommerce-MyAccount-navigation li,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active {
	margin: 0;
	padding: 0;
	border: 0;
}
.woocommerce-MyAccount-navigation a {
	color: color-mix(in srgb, var(--wp--preset--color--primary) 50%, transparent);
	text-decoration: none;
}
.woocommerce-MyAccount-navigation a:hover,
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	color: var(--wp--preset--color--primary);
	text-decoration: none;
}

/* Notices */
.wc-block-components-notice-banner {
	border-radius: 0.5rem;
}

/* Page « Bientôt disponible » de WooCommerce : polices du site au lieu de Cardo et Inter
   (classes de police de WordPress en !important, d'où le !important). */
.wp-block-woocommerce-coming-soon .has-cardo-font-family {
	font-family: var(--wp--preset--font-family--title) !important;
}
.wp-block-woocommerce-coming-soon .has-inter-font-family {
	font-family: var(--wp--preset--font-family--content) !important;
}
