/* ==========================================================================
   Hi'Ma Création 2026 — feuille de style principale
   Chargée APRÈS celle d'Astra. Organisation :
     1. Polices et variables      6. Accueil vitrine
     2. Bases                     7. Liste des créations (cartes)
     3. Boutons et champs         8. Fiche produit
     4. En-tête                   9. Panier, commande, compte, pages
     5. Pied de page             10. Animations et accessibilité
   ========================================================================== */

/* 1. Polices (hébergées dans le thème) et variables ------------------------ */

@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Fraunces";
	src: url("../fonts/fraunces-latin-wght-italic.woff2") format("woff2");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "DM Sans";
	src: url("../fonts/dm-sans-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 1000;
	font-style: normal;
	font-display: swap;
}

:root {
	/* Couleurs : le cuir de Charlotte (#704d34) entouré de tons naturels. */
	--hima-cuir: #704d34;
	--hima-cuir-fonce: #563a27;
	--hima-caramel: #b9824f;
	--hima-encre: #2b211b;
	--hima-texte: #4a3d35;
	--hima-doux: #7a6a5f;
	--hima-creme: #fbf7f2;
	--hima-lin: #efe5d8;
	--hima-lin-fonce: #e2d4c3;
	--hima-sauge: #7d8b6a;
	--hima-sauge-clair: #e5e9dc;
	--hima-blanc: #fff;

	/* Typographies. */
	--hima-titre: "Fraunces", Georgia, "Times New Roman", serif;
	--hima-texte-police: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

	/* Mise en page. */
	--hima-largeur: 1280px;
	--hima-marge: clamp(16px, 4vw, 40px);
	--hima-rayon: 18px;
	--hima-rayon-petit: 10px;
	--hima-ombre: 0 1px 2px rgba(43, 33, 27, .04), 0 8px 24px rgba(43, 33, 27, .06);
	--hima-ombre-forte: 0 2px 4px rgba(43, 33, 27, .05), 0 18px 40px rgba(43, 33, 27, .12);
	--hima-transition: .25s cubic-bezier(.2, .7, .2, 1);
	--hima-hauteur-entete: 72px;
}

/* 2. Bases ------------------------------------------------------------------ */

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--hima-hauteur-entete) + 16px);
}

body,
body.theme-astra,
body.ast-separate-container,
body.ast-plain-container,
body.ast-page-builder-template {
	background-color: var(--hima-creme);
	color: var(--hima-texte);
	font-family: var(--hima-texte-police);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

body.hima-sans-defilement {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
	font-family: var(--hima-titre);
	color: var(--hima-encre);
	font-weight: 500;
	letter-spacing: -.01em;
	font-optical-sizing: auto;
}

a {
	text-underline-offset: .2em;
	transition: color var(--hima-transition);
}

::selection {
	background: var(--hima-lin-fonce);
	color: var(--hima-encre);
}

:focus-visible {
	outline: 2px solid var(--hima-cuir);
	outline-offset: 3px;
	border-radius: 4px;
}

.hima-conteneur {
	width: min(100% - 2 * var(--hima-marge), var(--hima-largeur));
	margin-inline: auto;
}

/* Le contenu d'Astra s'aligne sur la même largeur que nos sections. */
.ast-container,
.woocommerce.archive .site-content > .ast-container,
.ast-woo-shop-archive .site-content > .ast-container {
	max-width: calc(var(--hima-largeur) + 2 * var(--hima-marge));
	padding-inline: var(--hima-marge);
}

/* Fond crème partout (Astra pose du blanc sur ses blocs de contenu). */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-separate-container .comments-area,
.ast-separate-container .ast-woocommerce-container,
.ast-plain-container .site-content,
.ast-separate-container #primary,
.ast-separate-container .site-main > .ast-row {
	background-color: transparent;
}

.hima-icone {
	width: 1.25em;
	height: 1.25em;
	flex: none;
}

.hima-surtitre {
	display: inline-flex;
	align-items: center;
	gap: .6em;
	margin: 0 0 .9rem;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--hima-cuir);
}
.hima-surtitre::before {
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
	opacity: .6;
}

.hima-section {
	padding-block: clamp(56px, 8vw, 104px);
}
.hima-section__entete {
	margin-bottom: clamp(28px, 4vw, 44px);
}
.hima-section__entete--ligne {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px;
}
.hima-section__titre {
	margin: 0;
	font-size: clamp(1.9rem, 1.3rem + 2.2vw, 2.9rem);
	line-height: 1.1;
}

.hima-lien-fleche {
	display: inline-flex;
	align-items: center;
	gap: .45em;
	font-weight: 600;
	color: var(--hima-cuir);
	text-decoration: none;
	white-space: nowrap;
}
.hima-lien-fleche .hima-icone {
	transition: transform var(--hima-transition);
}
.hima-lien-fleche:hover .hima-icone {
	transform: translateX(4px);
}

/* 3. Boutons et champs ------------------------------------------------------ */

.hima-bouton,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.wp-block-button__link,
.ast-button,
.button,
button.wpforms-submit,
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .55em;
	min-height: 48px;
	padding: .8em 1.6em;
	border: 1.5px solid var(--hima-cuir);
	border-radius: 999px;
	background: var(--hima-cuir);
	color: var(--hima-blanc);
	font-family: var(--hima-texte-police);
	font-size: .98rem;
	font-weight: 600;
	letter-spacing: .01em;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--hima-transition), border-color var(--hima-transition), color var(--hima-transition), transform var(--hima-transition), box-shadow var(--hima-transition);
}
.hima-bouton:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .single_add_to_cart_button:hover,
.wp-block-button__link:hover,
.button:hover,
button.wpforms-submit:hover,
.wc-block-components-button:not(.is-link):hover {
	background: var(--hima-cuir-fonce);
	border-color: var(--hima-cuir-fonce);
	color: var(--hima-blanc);
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(112, 77, 52, .22);
}
.hima-bouton .hima-icone {
	width: 1.1em;
	height: 1.1em;
	transition: transform var(--hima-transition);
}
.hima-bouton:hover .hima-icone {
	transform: translateX(3px);
}

.hima-bouton--contour {
	background: transparent;
	color: var(--hima-cuir);
}
.hima-bouton--contour:hover {
	background: var(--hima-cuir);
	color: var(--hima-blanc);
}

.hima-bouton--clair {
	background: var(--hima-blanc);
	border-color: var(--hima-blanc);
	color: var(--hima-cuir-fonce);
}
.hima-bouton--clair:hover {
	background: var(--hima-lin);
	border-color: var(--hima-lin);
	color: var(--hima-cuir-fonce);
}

.hima-bouton-icone {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--hima-encre);
	box-shadow: none;
	cursor: pointer;
	transition: background-color var(--hima-transition), color var(--hima-transition);
}
.hima-bouton-icone:hover,
.hima-bouton-icone:focus-visible {
	background: var(--hima-lin);
	color: var(--hima-cuir);
}
.hima-bouton-icone .hima-icone {
	width: 22px;
	height: 22px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="url"],
textarea,
select,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.wpforms-container input.wpforms-field-medium,
.wpforms-container textarea {
	border: 1.5px solid var(--hima-lin-fonce) !important;
	border-radius: var(--hima-rayon-petit) !important;
	background-color: var(--hima-blanc) !important;
	color: var(--hima-encre);
	font-family: var(--hima-texte-police);
	transition: border-color var(--hima-transition), box-shadow var(--hima-transition);
}
input:focus,
textarea:focus,
select:focus {
	border-color: var(--hima-cuir) !important;
	box-shadow: 0 0 0 4px rgba(112, 77, 52, .12) !important;
	outline: none;
}

/* 4. En-tête ---------------------------------------------------------------- */

.hima-annonce {
	background: var(--hima-cuir-fonce);
	color: var(--hima-lin);
	font-size: .82rem;
	letter-spacing: .02em;
}
.hima-annonce p {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	margin: 0 auto;
	padding-block: 9px;
	text-align: center;
}
.hima-annonce .hima-icone {
	width: 16px;
	height: 16px;
	color: var(--hima-caramel);
}
.hima-annonce__sep {
	opacity: .5;
}

.hima-entete {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(251, 247, 242, .92);
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	border-bottom: 1px solid transparent;
	transition: border-color var(--hima-transition), box-shadow var(--hima-transition);
}
.admin-bar .hima-entete {
	top: 32px;
}
.hima-entete.est-defile {
	border-color: var(--hima-lin);
	box-shadow: 0 6px 24px rgba(43, 33, 27, .06);
}

.hima-entete__barre {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 12px;
	min-height: var(--hima-hauteur-entete);
}

.hima-logo {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
}
.hima-logo__image {
	display: block;
	mix-blend-mode: multiply;
	width: auto;
	max-height: 52px;
	max-width: 170px;
	object-fit: contain;
}
.hima-logo__texte {
	font-family: var(--hima-titre);
	font-size: 1.5rem;
	color: var(--hima-encre);
}

/* Menu ordinateur. */
.hima-nav {
	justify-self: center;
}
.hima-nav__liste,
.hima-nav__liste .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hima-nav__liste {
	display: flex;
	align-items: center;
	gap: 4px;
}
.hima-nav__liste > li {
	position: relative;
}
.hima-nav__liste > li > a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	border-radius: 999px;
	color: var(--hima-encre);
	font-weight: 500;
	font-size: .98rem;
	text-decoration: none;
	transition: background-color var(--hima-transition), color var(--hima-transition);
}
.hima-nav__liste > li > a:hover,
.hima-nav__liste > li.current-menu-item:not(.menu-item-has-children) > a,
.hima-nav__liste > li:focus-within > a {
	background: var(--hima-lin);
	color: var(--hima-cuir);
}
.hima-nav__liste > .menu-item-has-children > a::after {
	content: "";
	width: 7px;
	height: 7px;
	margin-top: -3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: .7;
}
.hima-nav__liste .sub-menu {
	position: absolute;
	top: calc(100% + 8px);
	left: 50%;
	z-index: 10;
	display: grid;
	grid-template-columns: repeat(2, minmax(170px, 1fr));
	gap: 2px 8px;
	min-width: 380px;
	padding: 14px;
	border: 1px solid var(--hima-lin);
	border-radius: var(--hima-rayon);
	background: var(--hima-blanc);
	box-shadow: var(--hima-ombre-forte);
	opacity: 0;
	visibility: hidden;
	transform: translate(-50%, 6px);
	transition: opacity var(--hima-transition), transform var(--hima-transition), visibility var(--hima-transition);
}
/* Pont invisible : la souris peut descendre du lien au sous-menu sans le fermer. */
.hima-nav__liste .sub-menu::before {
	content: "";
	position: absolute;
	inset: -10px 0 auto;
	height: 10px;
}
.hima-nav__liste > li:hover > .sub-menu,
.hima-nav__liste > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translate(-50%, 0);
}
.hima-nav__liste .sub-menu a {
	display: block;
	padding: 9px 12px;
	border-radius: var(--hima-rayon-petit);
	color: var(--hima-texte);
	font-size: .95rem;
	text-decoration: none;
}
.hima-nav__liste .sub-menu a:hover {
	background: var(--hima-creme);
	color: var(--hima-cuir);
}

.hima-actions {
	display: flex;
	align-items: center;
	justify-self: end;
	gap: 2px;
}

.hima-panier__compte {
	position: absolute;
	top: 4px;
	right: 2px;
	display: grid;
	place-items: center;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--hima-cuir);
	color: var(--hima-blanc);
	font-size: .7rem;
	font-weight: 700;
	line-height: 1;
	transition: transform var(--hima-transition);
}
.hima-panier__compte.est-vide {
	transform: scale(0);
}

.hima-recherche {
	border-top: 1px solid var(--hima-lin);
	padding-block: 16px;
}
.hima-recherche form {
	display: flex;
	gap: 10px;
	max-width: 640px;
	margin-inline: auto;
}
.hima-recherche input[type="search"] {
	flex: 1;
	min-height: 48px;
	padding-inline: 18px;
	border-radius: 999px !important;
}
.hima-recherche button {
	border-radius: 999px;
}

.hima-burger {
	display: none;
}

/* Tiroir (menu mobile). */
.hima-tiroir {
	position: fixed;
	inset: 0;
	z-index: 1000;
}
.hima-tiroir[hidden] {
	display: none;
}
.hima-tiroir__voile {
	position: absolute;
	inset: 0;
	background: rgba(43, 33, 27, .45);
	opacity: 0;
	transition: opacity .3s ease;
}
.hima-tiroir__panneau {
	position: absolute;
	inset: 0 auto 0 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
	width: min(88vw, 380px);
	padding: 18px 22px 28px;
	overflow-y: auto;
	background: var(--hima-creme);
	box-shadow: var(--hima-ombre-forte);
	transform: translateX(-100%);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.hima-tiroir.est-ouvert .hima-tiroir__voile {
	opacity: 1;
}
.hima-tiroir.est-ouvert .hima-tiroir__panneau {
	transform: none;
}
.hima-tiroir__haut {
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.hima-logo--tiroir .hima-logo__image {
	max-height: 44px;
}
.hima-tiroir__liste,
.hima-tiroir__liste .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hima-tiroir__liste > li {
	position: relative;
	border-bottom: 1px solid var(--hima-lin);
}
.hima-tiroir__liste > li > a {
	display: block;
	padding: 16px 48px 16px 2px;
	color: var(--hima-encre);
	font-family: var(--hima-titre);
	font-size: 1.3rem;
	text-decoration: none;
}
.hima-tiroir__deplier {
	position: absolute;
	top: 8px;
	right: 0;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}
.hima-tiroir__deplier::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 9px;
	height: 9px;
	margin: -7px 0 0 -4px;
	border-right: 1.5px solid var(--hima-encre);
	border-bottom: 1.5px solid var(--hima-encre);
	transform: rotate(45deg);
	transition: transform var(--hima-transition);
}
.est-deplie > .hima-tiroir__deplier::after {
	transform: rotate(-135deg);
	margin-top: -2px;
}
.hima-tiroir__liste .sub-menu {
	display: none;
	padding: 0 0 12px 4px;
}
.hima-tiroir__liste .est-deplie > .sub-menu {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2px 12px;
}
.hima-tiroir__liste .sub-menu a {
	display: block;
	padding: 9px 0;
	color: var(--hima-texte);
	text-decoration: none;
}

/* 5. Pied de page ----------------------------------------------------------- */

.hima-pied {
	margin-top: 0;
	background: var(--hima-encre);
	color: rgba(239, 229, 216, .78);
	font-size: .95rem;
}
.hima-pied a {
	color: rgba(239, 229, 216, .9);
	text-decoration: none;
}
.hima-pied a:hover {
	color: var(--hima-blanc);
	text-decoration: underline;
}
.hima-pied__grille {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: 40px;
	padding-block: clamp(48px, 7vw, 80px);
}
.hima-pied__nom {
	margin: 0 0 12px;
	font-family: var(--hima-titre);
	font-size: 1.8rem;
	color: var(--hima-blanc);
}
.hima-pied__marque p:not(.hima-pied__nom) {
	max-width: 34ch;
	line-height: 1.6;
}
.hima-pied__titre {
	margin: 0 0 14px;
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--hima-caramel);
}
.hima-pied__colonne ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.hima-pied__colonne li {
	margin-bottom: 10px;
}
.hima-pied__contact li {
	display: flex;
	align-items: center;
	gap: 10px;
}
.hima-pied__contact .hima-icone {
	width: 18px;
	height: 18px;
	color: var(--hima-caramel);
}
.hima-pied__bas {
	border-top: 1px solid rgba(239, 229, 216, .12);
	font-size: .85rem;
}
.hima-pied__bas p {
	margin: 0 auto;
	padding-block: 20px;
}

.hima-reseaux {
	display: flex;
	gap: 8px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}
.hima-reseaux a {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(239, 229, 216, .25);
	border-radius: 50%;
	transition: background-color var(--hima-transition), border-color var(--hima-transition);
}
.hima-reseaux a:hover {
	background: var(--hima-cuir);
	border-color: var(--hima-cuir);
	text-decoration: none;
}
.hima-reseaux .hima-icone {
	width: 19px;
	height: 19px;
}
.hima-reseaux--tiroir {
	margin-top: auto;
}
.hima-reseaux--tiroir a {
	border-color: var(--hima-lin-fonce);
	color: var(--hima-cuir);
}
.hima-reseaux--tiroir a:hover {
	color: var(--hima-blanc);
}

/* 6. Accueil vitrine -------------------------------------------------------- */

/* Sur la vitrine, la grille des créations suit les sections : pas de grand vide au-dessus. */
.hima-vitrine .site-content > .ast-container {
	padding-top: 0;
}

/* Bannière. */
.hima-banniere {
	position: relative;
	overflow: hidden;
	padding-block: clamp(36px, 6vw, 80px) clamp(48px, 7vw, 96px);
	background:
		radial-gradient(1200px 500px at 85% -10%, rgba(185, 130, 79, .16), transparent 60%),
		radial-gradient(900px 500px at -10% 110%, rgba(125, 139, 106, .14), transparent 60%),
		var(--hima-creme);
}
.hima-banniere__grille {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	align-items: center;
	gap: clamp(32px, 5vw, 72px);
}
.hima-banniere__titre {
	margin: 0 0 22px;
	font-size: clamp(2.4rem, 1.5rem + 3vw, 3.9rem);
	font-weight: 400;
	line-height: 1.02;
	letter-spacing: -.025em;
}
.hima-banniere__titre em {
	font-style: italic;
	color: var(--hima-cuir);
}
.hima-banniere__intro {
	max-width: 46ch;
	margin: 0 0 32px;
	font-size: clamp(1.02rem, .95rem + .3vw, 1.15rem);
	line-height: 1.65;
}
.hima-banniere__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* Mosaïque de trois créations. */
.hima-banniere__mosaique {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 14px;
	aspect-ratio: 1.15 / 1;
}
.hima-mosaique--1,
.hima-mosaique--2 {
	grid-template-rows: 1fr;
}
.hima-mosaique__case {
	position: relative;
	overflow: hidden;
	border-radius: var(--hima-rayon);
	background: var(--hima-lin);
	box-shadow: var(--hima-ombre);
}
.hima-mosaique--3 .hima-mosaique__case:first-child {
	grid-row: span 2;
}
.hima-mosaique__case img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}
.hima-mosaique__case:hover img {
	transform: scale(1.04);
}
.hima-mosaique__etiquette {
	position: absolute;
	left: 12px;
	bottom: 12px;
	max-width: calc(100% - 24px);
	padding: 7px 13px;
	border-radius: 999px;
	background: rgba(251, 247, 242, .92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	color: var(--hima-encre);
	font-size: .82rem;
	font-weight: 600;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Atouts. */
.hima-atouts {
	border-block: 1px solid var(--hima-lin);
	background: var(--hima-blanc);
}
.hima-atouts__liste {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px 28px;
	margin-block: 0;
	padding: 26px 0;
	list-style: none;
}
.hima-atout {
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: .9rem;
	line-height: 1.45;
}
.hima-atout strong {
	display: block;
	color: var(--hima-encre);
	font-size: .98rem;
}
.hima-atout__icone {
	display: grid;
	place-items: center;
	flex: none;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--hima-creme);
	color: var(--hima-cuir);
}
.hima-atout__icone .hima-icone {
	width: 22px;
	height: 22px;
}

/* Catégories. */
.hima-categories__liste {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 26px 18px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.hima-categorie {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	text-align: center;
	text-decoration: none;
}
.hima-categorie__image {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	margin-bottom: 10px;
	overflow: hidden;
	border-radius: 50%;
	background: var(--hima-lin);
	box-shadow: 0 0 0 1px var(--hima-lin), 0 0 0 6px var(--hima-creme), 0 0 0 7px transparent;
	transition: box-shadow var(--hima-transition);
}
.hima-categorie__image img {
	display: block;
	max-width: 100%;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .6s cubic-bezier(.2, .7, .2, 1);
}
.hima-categorie:hover .hima-categorie__image {
	box-shadow: 0 0 0 1px var(--hima-lin), 0 0 0 6px var(--hima-creme), 0 0 0 7px var(--hima-cuir);
}
.hima-categorie:hover img {
	transform: scale(1.06);
}
.hima-categorie__nom {
	color: var(--hima-encre);
	font-family: var(--hima-titre);
	font-size: 1.08rem;
	line-height: 1.25;
}
.hima-categorie__nombre {
	color: var(--hima-doux);
	font-size: .82rem;
}

/* Nouveautés : fond blanc pour faire respirer les photos. */
.hima-nouveautes {
	background: var(--hima-blanc);
}

/* L'atelier. */
.hima-atelier__grille {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(32px, 6vw, 88px);
}
.hima-atelier__image {
	position: relative;
}
.hima-atelier__image::before {
	content: "";
	position: absolute;
	inset: 24px -24px -24px 24px;
	z-index: -1;
	border-radius: var(--hima-rayon);
	background: var(--hima-sauge-clair);
}
.hima-atelier__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--hima-rayon);
	box-shadow: var(--hima-ombre);
}
.hima-atelier__texte .hima-section__titre {
	margin-bottom: 20px;
}
.hima-atelier__texte p {
	max-width: 52ch;
	margin: 0 0 1em;
	line-height: 1.7;
}
.hima-atelier__points {
	display: grid;
	gap: 10px;
	margin: 22px 0 30px;
	padding: 0;
	list-style: none;
}
.hima-atelier__points li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--hima-encre);
	font-weight: 500;
}
.hima-atelier__points .hima-icone {
	color: var(--hima-sauge);
}

/* Instagram. */
.hima-instagram {
	padding-block: clamp(32px, 6vw, 72px);
}
.hima-instagram__boite {
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
	padding: clamp(24px, 4vw, 44px) clamp(24px, 5vw, 56px);
	border-radius: calc(var(--hima-rayon) * 1.4);
	background:
		radial-gradient(600px 300px at 100% 0%, rgba(185, 130, 79, .35), transparent 70%),
		var(--hima-cuir);
	color: var(--hima-lin);
}
.hima-instagram__boite h2 {
	margin: 0 0 6px;
	color: var(--hima-blanc);
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.1rem);
}
.hima-instagram__boite p {
	margin: 0;
}
.hima-instagram__icone {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: var(--hima-blanc);
}
.hima-instagram__icone .hima-icone {
	width: 30px;
	height: 30px;
}

/* 7. Liste des créations (cartes) ----------------------------------------- */

.hima-liste__entete {
	margin: clamp(40px, 6vw, 72px) 0 26px;
}
.hima-liste__entete .hima-section__titre {
	margin-bottom: 18px;
}

/* Pastilles de catégories : défilent horizontalement si elles débordent. */
.hima-pastilles {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	padding: 4px 0 10px;
	overflow-x: auto;
	scrollbar-width: none;
	scroll-snap-type: x proximity;
}
.hima-pastilles::-webkit-scrollbar {
	display: none;
}
.hima-pastille {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: none;
	padding: 9px 16px;
	border: 1.5px solid var(--hima-lin-fonce);
	border-radius: 999px;
	background: var(--hima-blanc);
	color: var(--hima-encre);
	font-size: .92rem;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	scroll-snap-align: start;
	transition: background-color var(--hima-transition), border-color var(--hima-transition), color var(--hima-transition);
}
.hima-pastille span {
	color: var(--hima-doux);
	font-size: .8rem;
}
.hima-pastille:hover {
	border-color: var(--hima-cuir);
	color: var(--hima-cuir);
}
.hima-pastille.est-active {
	border-color: var(--hima-cuir);
	background: var(--hima-cuir);
	color: var(--hima-blanc);
}
.hima-pastille.est-active span {
	color: rgba(255, 255, 255, .75);
}

/* Barre « tri + nombre de résultats ». */
.woocommerce .woocommerce-result-count {
	margin: 10px 0 24px;
	color: var(--hima-doux);
	font-size: .9rem;
}
.woocommerce .woocommerce-ordering {
	margin-bottom: 24px;
}
.woocommerce .woocommerce-ordering select {
	min-height: 42px;
	padding: 0 40px 0 16px;
	border-radius: 999px !important;
	font-size: .92rem;
}

/* Grille. */
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(28px, 3vw, 40px) clamp(14px, 2vw, 28px);
	margin: 0 0 40px;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
}
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	background: transparent;
	text-align: left;
}

/* Photo : carrée, coins arrondis, zoom doux, 2e photo au survol. */
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	position: relative;
	overflow: hidden;
	margin-bottom: 14px;
	border-radius: var(--hima-rayon);
	background: var(--hima-lin);
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a:first-child {
	position: relative;
	display: block;
	aspect-ratio: 1;
}
.woocommerce ul.products li.product .astra-shop-thumbnail-wrap img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	margin: 0 !important;
	object-fit: cover;
	border-radius: 0;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1), opacity .45s ease;
}
.woocommerce ul.products li.product .hima-survol {
	opacity: 0;
}
.woocommerce ul.products li.product:hover .astra-shop-thumbnail-wrap img {
	transform: scale(1.04);
}
.woocommerce ul.products li.product:hover .hima-survol {
	opacity: 1;
}

/* Bouton « ajouter » posé sur la photo (Astra « on-card button ») : rond, en bas à droite. */
.woocommerce ul.products li.product .ast-on-card-button:not(.ast-onsale-card) {
	position: absolute;
	top: auto !important;
	right: 12px !important;
	bottom: 12px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--hima-blanc);
	color: var(--hima-cuir);
	box-shadow: var(--hima-ombre);
	opacity: 0;
	transform: translateY(6px);
	transition: opacity var(--hima-transition), transform var(--hima-transition), background-color var(--hima-transition), color var(--hima-transition);
}
.woocommerce ul.products li.product:hover .ast-on-card-button:not(.ast-onsale-card),
.woocommerce ul.products li.product .ast-on-card-button:not(.ast-onsale-card):focus-visible {
	opacity: 1;
	transform: none;
}
.woocommerce ul.products li.product .ast-on-card-button:hover {
	background: var(--hima-cuir);
	color: var(--hima-blanc);
}
.woocommerce ul.products li.product .ast-on-card-button .ast-card-action-tooltip {
	display: none;
}
.woocommerce ul.products li.product .ast-on-card-button svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}
.woocommerce ul.products li.product .ast-on-card-button.added::after,
.woocommerce ul.products li.product .ast-on-card-button.loading::after {
	display: none;
}

/* Pastilles « Promo » et « Vendu ». */
.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,
.woocommerce ul.products li.product .ast-onsale-card {
	position: absolute;
	z-index: 2;
	display: inline-block;
	width: auto !important;
	height: auto !important;
	bottom: auto !important;
	opacity: 1 !important;
	transform: none !important;
	box-shadow: none !important;
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	min-width: 0;
	min-height: 0;
	margin: 0 !important;
	padding: 6px 12px !important;
	border-radius: 999px !important;
	background: var(--hima-sauge) !important;
	color: var(--hima-blanc) !important;
	font-size: .75rem !important;
	font-weight: 700;
	line-height: 1.2 !important;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.woocommerce ul.products li.product .ast-shop-product-out-of-stock {
	position: absolute;
	top: 12px;
	left: 12px;
	right: auto;
	bottom: auto;
	z-index: 2;
	width: auto;
	margin: 0;
	padding: 6px 12px;
	border-radius: 999px;
	background: var(--hima-encre);
	color: var(--hima-blanc);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: 1;
}
.woocommerce ul.products li.product.outofstock .ast-onsale-card {
	display: none !important;
}
.woocommerce ul.products li.product.outofstock .astra-shop-thumbnail-wrap img {
	filter: grayscale(.35);
	opacity: .78;
}

/* Texte de la carte. */
.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 0 2px;
}
.woocommerce ul.products li.product .ast-woo-product-category {
	margin: 0;
	color: var(--hima-doux);
	font-size: .74rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	opacity: 1;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0;
	padding: 0;
	color: var(--hima-encre);
	font-size: 1.08rem;
	font-weight: 500;
	line-height: 1.3;
}
.woocommerce ul.products li.product .ast-loop-product__link {
	text-decoration: none;
}
.woocommerce ul.products li.product .ast-loop-product__link:hover .woocommerce-loop-product__title {
	color: var(--hima-cuir);
}
.woocommerce ul.products li.product .price {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 2px 0 0;
	color: var(--hima-encre);
	font-size: 1rem;
	font-weight: 600;
}
.woocommerce ul.products li.product .price del {
	order: 2;
	color: var(--hima-doux);
	font-size: .88rem;
	font-weight: 400;
	opacity: 1;
}
.woocommerce ul.products li.product .price ins {
	color: var(--hima-cuir);
	text-decoration: none;
}
/* Le bouton texte sous la carte doublonne le bouton rond sur la photo : on le masque. */
.woocommerce ul.products li.product .astra-shop-summary-wrap .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap .added_to_cart {
	display: none;
}

/* Pagination. */
.woocommerce nav.woocommerce-pagination ul {
	display: inline-flex;
	gap: 6px;
	border: 0;
}
.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 10px;
	border: 1.5px solid var(--hima-lin-fonce);
	border-radius: 999px;
	background: var(--hima-blanc);
	color: var(--hima-encre);
	font-weight: 500;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current {
	border-color: var(--hima-cuir);
	background: var(--hima-cuir);
	color: var(--hima-blanc);
}

/* En-tête des pages de catégorie : titre, puis pastilles juste dessous. */
.tax-product_cat #primary,
.search #primary {
	margin-top: clamp(8px, 2vw, 24px) !important;
}
.woocommerce-products-header {
	margin: 0;
	padding-top: clamp(8px, 2vw, 20px);
}
.tax-product_cat .hima-liste__entete,
.search .hima-liste__entete {
	margin-top: 18px;
}
.woocommerce-products-header__title.page-title {
	margin: 0;
	font-size: clamp(2.2rem, 1.5rem + 2.6vw, 3.4rem);
	font-weight: 400;
}
.woocommerce .woocommerce-breadcrumb,
.ast-breadcrumbs-wrapper {
	color: var(--hima-doux);
	font-size: .85rem;
}
.woocommerce .woocommerce-breadcrumb a {
	color: var(--hima-doux);
	text-decoration: none;
}
.woocommerce .woocommerce-breadcrumb a:hover {
	color: var(--hima-cuir);
}

/* 8. Fiche produit ---------------------------------------------------------- */

.single-product .site-content > .ast-container {
	padding-top: clamp(16px, 3vw, 36px);
}
.single-product #primary,
.hima-vitrine #primary {
	margin-top: 0 !important;
}
.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	column-gap: clamp(28px, 5vw, 72px);
	align-items: start;
}
/* Tout ce qui suit la photo et la colonne d'achat (onglets, suggestions) occupe toute la largeur. */
.woocommerce div.product > * {
	grid-column: 1 / -1;
}
.woocommerce div.product div.images.woocommerce-product-gallery,
.woocommerce div.product div.summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}
.woocommerce div.product div.images.woocommerce-product-gallery {
	grid-column: 1;
	grid-row: 1;
}
/* Colonne d'achat : une carte blanche, dans le flux normal (jamais collante, jamais superposée). */
.woocommerce div.product div.summary {
	grid-column: 2;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	min-width: 0;
	padding: clamp(22px, 3vw, 36px);
	border: 1px solid var(--hima-lin);
	border-radius: calc(var(--hima-rayon) * 1.2);
	background: var(--hima-blanc);
}
.woocommerce div.product div.summary > * {
	max-width: 100%;
}
.woocommerce div.product .onsale {
	z-index: 3;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .flex-viewport {
	overflow: hidden;
	border-radius: var(--hima-rayon);
	background: var(--hima-lin);
}
.woocommerce div.product div.images .flex-control-thumbs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(84px, 1fr));
	gap: 10px;
	margin-top: 12px;
}
.woocommerce div.product div.images .flex-control-thumbs li {
	width: auto !important;
	margin: 0 !important;
}
.woocommerce div.product div.images .flex-control-thumbs img {
	border-radius: var(--hima-rayon-petit);
	opacity: .55;
	transition: opacity var(--hima-transition);
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover {
	opacity: 1;
}
.woocommerce div.product .product_title {
	margin: 4px 0 10px;
	font-size: clamp(1.9rem, 1.4rem + 1.8vw, 2.7rem);
	font-weight: 400;
	line-height: 1.1;
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 6px;
	color: var(--hima-encre);
	font-size: 1.5rem;
	font-weight: 600;
}
.woocommerce div.product p.price del {
	color: var(--hima-doux);
	font-size: 1.1rem;
	font-weight: 400;
}
.woocommerce div.product p.price ins {
	color: var(--hima-cuir);
	text-decoration: none;
}
.hima-unique {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 18px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--hima-sauge-clair);
	color: #4f5c40;
	font-size: .88rem;
	font-weight: 600;
}
.hima-unique .hima-icone {
	width: 16px;
	height: 16px;
}
/* Les descriptions courtes de Charlotte sont saisies en « titre 5 » : on les affiche comme du texte. */
.woocommerce-product-details__short-description,
.woocommerce-product-details__short-description h5 {
	margin: 0 0 22px;
	color: var(--hima-texte);
	font-family: var(--hima-texte-police);
	font-size: 1.02rem;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: 0;
}
.woocommerce div.product div.summary form.cart {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 12px;
	margin: 4px 0 14px;
}
.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1;
	min-width: 0;
	min-height: 54px;
	font-size: 1.02rem;
}
/* Sélecteur de quantité d'Astra (− 1 +) : une seule pilule. */
.woocommerce .quantity.buttons_added {
	display: inline-flex !important;
	align-items: center;
	height: 54px;
	margin: 0 !important;
	border: 1.5px solid var(--hima-lin-fonce);
	border-radius: 999px;
	background: var(--hima-blanc);
	overflow: hidden;
}
.woocommerce .quantity.buttons_added .minus,
.woocommerce .quantity.buttons_added .plus {
	display: grid;
	place-items: center;
	width: 44px;
	height: 100%;
	border: 0 !important;
	background: transparent !important;
	color: var(--hima-encre);
	font-size: 1.2rem;
	text-decoration: none;
}
.woocommerce .quantity.buttons_added .minus:hover,
.woocommerce .quantity.buttons_added .plus:hover {
	color: var(--hima-cuir);
}
.woocommerce .quantity.buttons_added .qty {
	width: 36px;
	min-height: 0;
	height: 100%;
	padding: 0;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-weight: 600;
	text-align: center;
	-moz-appearance: textfield;
}
.woocommerce .quantity.buttons_added .qty::-webkit-inner-spin-button,
.woocommerce .quantity.buttons_added .qty::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}
/* Pièce unique : un sélecteur de quantité est inutile quand il n'y en a qu'une. */
.woocommerce div.product.sold-individually form.cart .quantity,
.woocommerce div.product form.cart .quantity.hidden {
	display: none;
}
.woocommerce div.product .stock {
	color: var(--hima-sauge);
	font-weight: 600;
}
.woocommerce div.product .stock.out-of-stock {
	color: var(--hima-cuir);
}

.hima-rassurance {
	display: grid;
	gap: 12px;
	margin: 10px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--hima-lin);
	list-style: none;
	font-size: .93rem;
}
.hima-rassurance li {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--hima-texte);
}
.hima-rassurance .hima-icone {
	width: 20px;
	height: 20px;
	color: var(--hima-cuir);
}

/* Paiements express (Apple Pay / Google Pay de WooPayments, PayPal) : pleine largeur, sous le bouton. */
.woocommerce div.product div.summary .wcpay-express-checkout-wrapper,
.woocommerce div.product div.summary .ppc-button-wrapper {
	width: 100%;
	margin: 0 0 12px !important;
}
.woocommerce div.product div.summary .wcpay-express-checkout-wrapper iframe,
.woocommerce div.product div.summary .ppc-button-wrapper iframe {
	max-width: 100%;
}
/* Séparateur « ou » de WooPayments, s'il est affiché. */
.woocommerce div.product div.summary #wcpay-express-checkout-button-separator {
	margin: 8px 0 !important;
	color: var(--hima-doux);
	font-size: .85rem;
	text-align: center;
}

/* Onglets (description, avis). */
.woocommerce div.product .woocommerce-tabs {
	margin-top: clamp(40px, 6vw, 72px);
	padding: clamp(20px, 3vw, 36px);
	border-radius: calc(var(--hima-rayon) * 1.2);
	background: var(--hima-blanc);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 22px;
	padding: 0;
	border: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 999px;
	background: transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 9px 18px;
	border-radius: 999px;
	color: var(--hima-texte);
	font-weight: 500;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	background: var(--hima-cuir);
	color: var(--hima-blanc);
}
.woocommerce div.product .woocommerce-tabs .panel h2:first-child {
	display: none;
}
/* Descriptions de Charlotte saisies en « titre 5 » : affichées comme du texte, lisibles. */
.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 76ch;
	font-size: 1.02rem;
	line-height: 1.75;
}
.woocommerce div.product .woocommerce-tabs .panel :is(h4, h5, h6) {
	margin: 0 0 1em;
	color: var(--hima-texte);
	font-family: var(--hima-texte-police);
	font-size: inherit;
	font-weight: 400;
	line-height: inherit;
	letter-spacing: 0;
}
.woocommerce div.product .woocommerce-tabs .panel strong {
	color: var(--hima-encre);
	font-weight: 600;
}

/* Suggestions. */
.woocommerce .related.products,
.woocommerce .up-sells.products {
	margin-top: clamp(48px, 7vw, 88px);
}
.woocommerce .related.products > h2,
.woocommerce .up-sells.products > h2 {
	margin-bottom: 26px;
	font-size: clamp(1.7rem, 1.3rem + 1.5vw, 2.4rem);
}

/* Le bouton « haut de page » remonte au-dessus du bandeau d'achat (sinon il recouvre son bouton). */
.single-product #ast-scroll-top {
	bottom: 88px !important;
}

/* Bandeau d'achat collant d'Astra (en bas d'écran, quand le bouton n'est plus visible) : une ligne
   compacte — photo, nom, prix, bouton. Les paiements express et la réassurance n'y ont pas leur place. */
.ast-sticky-add-to-cart {
	border-top: 1px solid var(--hima-lin);
	background: rgba(255, 255, 255, .97) !important;
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 -8px 24px rgba(43, 33, 27, .08);
}
.ast-sticky-add-to-cart .wcpay-express-checkout-wrapper,
.ast-sticky-add-to-cart #wcpay-express-checkout-button-separator,
.ast-sticky-add-to-cart .ppc-button-wrapper,
.ast-sticky-add-to-cart .hima-rassurance {
	display: none !important;
}
.ast-sticky-add-to-cart .ast-sticky-add-to-cart-content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	min-height: 0;
	padding-block: 10px;
}
.ast-sticky-add-to-cart .ast-sticky-add-to-cart-title-wrap {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.ast-sticky-add-to-cart .ast-sticky-add-to-cart-title {
	overflow: hidden;
	color: var(--hima-encre);
	font-family: var(--hima-titre);
	font-size: 1.05rem;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.ast-sticky-add-to-cart img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: var(--hima-rayon-petit);
}
.ast-sticky-add-to-cart .ast-sticky-add-to-cart-action-wrap {
	display: flex;
	align-items: center;
	gap: 14px;
	flex: none;
}
.ast-sticky-add-to-cart .ast-sticky-add-to-cart-action-price {
	color: var(--hima-encre);
	font-weight: 600;
	white-space: nowrap;
}
.ast-sticky-add-to-cart form.cart {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
}
.ast-sticky-add-to-cart .quantity.buttons_added {
	height: 44px;
}
.ast-sticky-add-to-cart .single_add_to_cart_button {
	min-height: 44px !important;
	padding: .6em 1.3em !important;
	white-space: nowrap;
}

/* 9. Panier, commande, compte, pages -------------------------------------- */

.woocommerce-cart .site-content > .ast-container,
.woocommerce-checkout .site-content > .ast-container,
.woocommerce-account .site-content > .ast-container,
.page .site-content > .ast-container {
	padding-top: clamp(12px, 2vw, 28px);
	padding-bottom: clamp(48px, 6vw, 88px);
}
.page .entry-title {
	font-size: clamp(2rem, 1.5rem + 2vw, 3rem);
	font-weight: 400;
}
.wc-block-cart,
.wc-block-checkout,
.woocommerce-cart-form,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.woocommerce-MyAccount-content,
.woocommerce-MyAccount-navigation,
.woocommerce form.login,
.woocommerce form.register {
	border-radius: calc(var(--hima-rayon) * 1.2);
}
.wc-block-components-sidebar,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review {
	padding: clamp(18px, 3vw, 28px) !important;
	border: 1px solid var(--hima-lin);
	border-radius: calc(var(--hima-rayon) * 1.2);
	background: var(--hima-blanc);
}
.wc-block-components-product-name {
	font-family: var(--hima-titre);
	color: var(--hima-encre) !important;
	font-size: 1.05rem;
}
.wc-block-cart-item__image img,
.woocommerce-cart table.cart img {
	border-radius: var(--hima-rayon-petit);
}
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input {
	border-radius: var(--hima-rayon-petit) !important;
}
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.wc-block-components-notice-banner {
	border-radius: var(--hima-rayon-petit);
	border-top-color: var(--hima-cuir);
	background: var(--hima-blanc);
}
.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--hima-cuir);
}
.woocommerce-MyAccount-navigation ul {
	padding: 0;
	list-style: none;
}
.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	border-radius: var(--hima-rayon-petit);
	text-decoration: none;
}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover {
	background: var(--hima-lin);
	color: var(--hima-cuir);
}

/* Commande : le résumé a déjà son cadre, on n'en ajoute pas un second autour. */
.wc-block-checkout .wc-block-components-sidebar {
	padding: 0 !important;
	border: 0;
	background: transparent;
}
.wp-block-woocommerce-checkout-order-summary-block {
	border-color: var(--hima-lin) !important;
	border-radius: calc(var(--hima-rayon) * 1.2) !important;
	background: var(--hima-blanc);
}

/* Pages panier, commande, compte : l'espace du haut vient déjà du conteneur. */
.woocommerce-cart #primary,
.woocommerce-checkout #primary,
.woocommerce-account #primary,
.page #primary {
	margin-top: 0 !important;
}
/* Description courte (en « titre 5 ») reprise dans le panier : texte simple. */
.wc-block-components-product-metadata :is(h4, h5, h6),
.wc-block-components-product-details :is(h4, h5, h6) {
	margin: 0;
	color: var(--hima-doux);
	font-family: var(--hima-texte-police);
	font-size: .85rem;
	font-weight: 400;
	letter-spacing: 0;
}
/* Sélecteur de quantité du panier (blocs WooCommerce) : une pilule, sans cadre intérieur. */
.wc-block-components-quantity-selector {
	border-radius: 999px !important;
	border-color: var(--hima-lin-fonce) !important;
	background: var(--hima-blanc);
	overflow: hidden;
}
.wc-block-components-quantity-selector::after {
	display: none;
}
.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	font-weight: 600;
}

/* Formulaire de contact (WPForms) : ses variables de couleur, puis la carte. */
.wpforms-container,
div.wpforms-container-full {
	--wpforms-button-background-color: var(--hima-cuir);
	--wpforms-button-background-color-alt: var(--hima-cuir);
	--wpforms-button-border-radius: 999px;
	--wpforms-button-size-height: 50px;
	--wpforms-button-size-padding-h: 30px;
	--wpforms-field-border-radius: 10px;
	--wpforms-field-border-color: var(--hima-lin-fonce);
	--wpforms-field-size-input-height: 48px;
	--wpforms-label-color: var(--hima-encre);
	--wpforms-label-sublabel-color: var(--hima-doux);
	--wpforms-page-break-color: var(--hima-cuir);
}
.entry-content div.wpforms-container-full,
.wpforms-container {
	max-width: 680px;
	margin-inline: auto !important;
	padding: clamp(20px, 4vw, 40px);
	border: 1px solid var(--hima-lin);
	border-radius: calc(var(--hima-rayon) * 1.2);
	background: var(--hima-blanc);
}
.wpforms-container .wpforms-field-label {
	color: var(--hima-encre);
	font-weight: 600;
}
.wpforms-container input.wpforms-field-medium,
.wpforms-container textarea {
	max-width: 100% !important;
	min-height: 48px;
}

/* Bouton « remonter en haut ». */
#ast-scroll-top {
	border-radius: 50%;
	box-shadow: var(--hima-ombre);
}

/* 10. Réactivité ------------------------------------------------------------- */

@media (max-width: 1100px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.hima-atouts__liste {
		grid-template-columns: repeat(2, 1fr);
		gap: 18px 24px;
	}
	.hima-pied__grille {
		grid-template-columns: 1fr 1fr;
	}
}

/* Tablette et téléphone : menu dans le tiroir, panier et recherche toujours visibles. */
@media (max-width: 921px) {
	:root {
		--hima-hauteur-entete: 62px;
	}
	.hima-burger {
		display: inline-grid;
	}
	.hima-nav {
		display: none;
	}
	.hima-entete__barre {
		grid-template-columns: 1fr auto 1fr;
	}
	.hima-logo {
		justify-self: center;
	}
	.hima-logo__image {
		max-height: 44px;
		max-width: 140px;
	}
	.hima-actions__compte {
		display: none;
	}
	.hima-banniere__grille {
		grid-template-columns: 1fr;
	}
	.hima-banniere__mosaique {
		aspect-ratio: 1.3 / 1;
	}
	.hima-atelier__grille {
		grid-template-columns: 1fr;
	}
	.hima-atelier__image::before {
		inset: 14px -10px -14px 10px;
	}
	.hima-instagram__boite {
		grid-template-columns: 1fr;
		justify-items: start;
	}
	/* minmax(0, 1fr) et non 1fr : sinon la colonne s'élargit au contenu le plus large (boutons de
	   paiement, rangée d'onglets) et la page déborde de l'écran du téléphone. */
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
	}
	.woocommerce div.product div.images.woocommerce-product-gallery,
	.woocommerce div.product div.summary {
		grid-column: 1;
		grid-row: auto;
	}
	.woocommerce div.product div.summary {
		margin-top: 22px !important;
	}
}

@media (max-width: 782px) {
	.admin-bar .hima-entete {
		top: 46px;
	}
}

@media (max-width: 680px) {
	.hima-annonce {
		font-size: .76rem;
	}
	.hima-annonce__sep,
	.hima-annonce p span:last-child {
		display: none;
	}
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 26px 12px;
	}
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: .98rem;
	}
	/* Sur écran tactile pas de survol : le bouton rond reste visible. */
	.woocommerce ul.products li.product .ast-on-card-button:not(.ast-onsale-card) {
		opacity: 1;
		transform: none;
		width: 38px;
		height: 38px;
		right: 8px !important;
		bottom: 8px;
	}
	.hima-section__entete--ligne {
		align-items: flex-start;
		flex-direction: column;
	}
	.hima-pastilles {
		flex-wrap: nowrap;
		margin-inline: calc(-1 * var(--hima-marge));
		padding-inline: var(--hima-marge);
	}
	/* Les catégories défilent à l'horizontale au lieu d'empiler 13 vignettes. */
	.hima-categories__liste {
		display: flex;
		gap: 14px;
		margin-inline: calc(-1 * var(--hima-marge));
		padding: 4px var(--hima-marge) 8px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.hima-categories__liste::-webkit-scrollbar {
		display: none;
	}
	.hima-categories__liste > li {
		flex: 0 0 31%;
		/* Sans min-width: 0, la photo (600 px) imposerait sa largeur à la vignette. */
		min-width: 0;
		scroll-snap-align: start;
	}
	.hima-categorie__nom {
		font-size: .95rem;
	}
	/* Nouveautés : un carrousel qu'on fait glisser du doigt. */
	.hima-defilant ul.products {
		display: flex !important;
		gap: 12px;
		margin-inline: calc(-1 * var(--hima-marge));
		padding: 0 var(--hima-marge) 6px;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}
	.hima-defilant ul.products::-webkit-scrollbar {
		display: none;
	}
	.hima-defilant ul.products li.product {
		flex: 0 0 62%;
		min-width: 0;
		scroll-snap-align: start;
	}
	.hima-atouts__liste {
		grid-template-columns: 1fr 1fr;
		gap: 16px 14px;
		padding: 20px 0;
	}
	.hima-atout {
		flex-direction: column;
		align-items: flex-start;
		gap: 8px;
		font-size: .82rem;
	}
	.hima-atout__icone {
		width: 40px;
		height: 40px;
	}
	.hima-pied__grille {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.hima-banniere__actions .hima-bouton {
		flex: 1 1 auto;
	}
	.hima-mosaique__etiquette {
		display: none;
	}
	/* Bandeau d'achat du bas sur téléphone : photo, prix et bouton seulement.
	   (Sélecteur plus précis que « .woocommerce .quantity.buttons_added », qui affiche la pilule.) */
	.ast-sticky-add-to-cart .ast-sticky-add-to-cart-title,
	.ast-sticky-add-to-cart form.cart .quantity.buttons_added {
		display: none !important;
	}
	.ast-sticky-add-to-cart .ast-sticky-add-to-cart-action-wrap {
		flex: 1;
		justify-content: flex-end;
	}
	/* Quantité + bouton d'achat tiennent sur une ligne. */
	.woocommerce div.product div.summary form.cart .quantity.buttons_added {
		flex: none;
		height: 52px;
	}
	.woocommerce div.product div.summary form.cart .quantity.buttons_added .minus,
	.woocommerce div.product div.summary form.cart .quantity.buttons_added .plus {
		width: 34px;
	}
	.woocommerce div.product div.summary form.cart .quantity.buttons_added .qty {
		width: 26px;
	}
	.woocommerce div.product div.summary form.cart .single_add_to_cart_button {
		min-height: 52px;
		padding-inline: 1em;
		white-space: nowrap;
	}
	/* Onglets : une ligne qui défile du doigt plutôt qu'un empilement. */
	.woocommerce div.product .woocommerce-tabs ul.tabs {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
		display: none;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li {
		flex: none;
	}
	.woocommerce div.product .woocommerce-tabs ul.tabs li a {
		padding: 8px 14px;
		font-size: .92rem;
		white-space: nowrap;
	}
}

/* 11. Animations et accessibilité ----------------------------------------- */

/* Les blocs n'apparaissent en fondu que si le JavaScript a pu s'activer (sinon tout reste visible). */
.hima-animations .hima-apparition {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1);
}
.hima-animations .hima-apparition.est-visible {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
