/* =========================================================================
   Maison KN — feuille de style principale
   Palette et typographies : charte Baije Studio (mai 2023)
   ========================================================================= */

/* --- 1. Polices --------------------------------------------------------- */

@font-face {
	font-family: 'Miyanih';
	src: url('../fonts/miyanih.woff2') format('woff2'),
	     url('../fonts/miyanih.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Miyanih';
	src: url('../fonts/miyanih-italic.woff2') format('woff2'),
	     url('../fonts/miyanih-italic.woff') format('woff');
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: 'Zudime';
	src: url('../fonts/zudime.woff2') format('woff2'),
	     url('../fonts/zudime.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* Petit Formal Script : substitut lisible de Zudime, à l'essai.
   Plus dessinée que Parisienne, plus fine que Dancing Script.
   Les autres candidates restent disponibles dans assets/fonts. */
@font-face {
	font-family: 'Petit Formal Script';
	src: url('../fonts/petitformal-latin.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122,
		U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Petit Formal Script';
	src: url('../fonts/petitformal-latin-ext.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
		U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
		U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
		U+A720-A7FF;
}

@font-face {
	font-family: 'Dancing Script';
	src: url('../fonts/dancingscript-latin.woff2') format('woff2');
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Parisienne';
	src: url('../fonts/parisienne-latin.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* --- 2. Tokens ---------------------------------------------------------- */

:root {
	/* Palette de la charte */
	--kn-noir: #171717;
	--kn-marron: #604e42;
	--kn-beige-03: #d8c9b9;
	--kn-beige-04: #dad3c8;
	--kn-beige-05: #ede9dc;
	--kn-blanc: #ffffff;

	/* Rôles */
	--kn-bg: var(--kn-beige-05);
	--kn-bg-alt: var(--kn-beige-04);
	--kn-bg-accent: var(--kn-beige-03);
	--kn-bg-dark: var(--kn-marron);
	--kn-text: var(--kn-noir);
	--kn-text-soft: var(--kn-marron);
	--kn-text-invert: var(--kn-beige-05);
	--kn-line: rgb(96 78 66 / 0.18);
	--kn-line-strong: rgb(96 78 66 / 0.4);

	/* Typographie */
	--kn-font-title: 'Miyanih', Didot, 'Playfair Display', Georgia, serif;
	--kn-font-body: 'Jost', 'Century Gothic', Futura, 'Avenir Next', system-ui, sans-serif;
	--kn-font-accent: 'Petit Formal Script', 'Parisienne', 'Zudime', 'Miyanih', cursive;
	--kn-tracking: 0.14em;

	/* Rythme */
	--kn-gouttiere: clamp(1.25rem, 4vw, 3.5rem);
	--kn-section: clamp(4rem, 9vw, 8rem);
	--kn-max: 1360px;

	--kn-transition: 320ms cubic-bezier(0.22, 0.61, 0.36, 1);

	/* Hauteur cumulée du bandeau d'annonce et de l'en-tête.
	   Mesurée au chargement par theme.js ; cette valeur sert de repli. */
	--kn-entete-h: 118px;
}

/* --- 3. Base ------------------------------------------------------------ */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background-color: var(--kn-bg);
	color: var(--kn-text);
	font-family: var(--kn-font-body);
	font-size: 1.0625rem;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Texture papier.
   Posée en fond des surfaces beiges plutôt qu'en voile au-dessus de la page :
   elle ne salit donc jamais les photos, ce qui permet un grain bien plus
   présent. Trois intensités, réglables dans Personnaliser › Apparence. */
:root {
	--kn-grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='p'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='5' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='discrete' tableValues='1'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.008 0.6' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='linear' slope='0.6'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23p)'/%3E%3Crect width='220' height='220' filter='url(%23f)'/%3E%3C/svg%3E");
	--kn-grain-taille: 220px 220px;
	--kn-grain-force: 0.22;
}

.mkn-texture-papier {
	--kn-grain-force: 0.22;
}

.mkn-texture-subtile {
	--kn-grain-force: 0.07;
}

.mkn-texture-aucune {
	--kn-grain-force: 0;
}

/* Chaque surface beige porte son propre grain, en pseudo-élément pour que
   l'opacité s'applique à la texture seule et non au contenu. */
body::before,
.mkn-hero__texte::before,
.mkn-histoire::before,
.mkn-footer::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: var(--kn-grain-force);
	background-image: var(--kn-grain);
	background-size: var(--kn-grain-taille);
	mix-blend-mode: multiply;
}

/* Le grain accompagne la page au lieu d'être figé à l'écran. Pour une trame
   aléatoire le rendu est identique, mais le navigateur n'a plus à recomposer
   un calque plein écran en mode fusion à chaque image de défilement. */
body {
	position: relative;
}

.mkn-hero__texte,
.mkn-histoire,
.mkn-footer {
	position: relative;
}

.mkn-hero__texte > *,
.mkn-histoire > *,
.mkn-footer > * {
	position: relative;
	z-index: 1;
}

body > * {
	position: relative;
	z-index: 1;
}

/* Sur fond sombre, le grain doit éclaircir et non assombrir. */
.mkn-footer::before {
	mix-blend-mode: screen;
	opacity: calc(var(--kn-grain-force) * 0.6);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

h1, h2, h3, h4 {
	font-family: var(--kn-font-title);
	font-weight: 400;
	line-height: 1.12;
	letter-spacing: -0.005em;
	margin: 0;
}

p {
	margin: 0 0 1.2em;
}

ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

::selection {
	background: var(--kn-marron);
	color: var(--kn-beige-05);
}

:focus-visible {
	outline: 1px solid var(--kn-marron);
	outline-offset: 3px;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* Le slider de produits déborde volontairement de son conteneur ; sans cette
   coupe, la largeur de sa piste se propage et fait défiler la page entière.
   `clip` plutôt que `hidden` : ne crée pas de conteneur de défilement et
   laisse donc l'en-tête collant fonctionner. */
.mkn-main {
	overflow-x: clip;
}

.mkn-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	padding: 0.75rem 1.25rem;
}

.mkn-skip:focus {
	left: 0;
}

/* --- 4. Éléments transverses -------------------------------------------- */

.mkn-titre {
	font-size: clamp(2rem, 4vw, 3rem);
}

.mkn-sous-titre {
	color: var(--kn-text-soft);
	font-size: 1rem;
	max-width: 46ch;
	margin-inline: auto;
}

.mkn-surtitre {
	font-family: var(--kn-font-accent);
	font-weight: 400;
	font-size: clamp(1.5rem, 2.6vw, 2rem);
	line-height: 1.2;
	color: var(--kn-text);
	margin: 0 0 0.4em;
}

.mkn-img {
	width: 100%;
}

.mkn-img--couvre {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mkn-section-entete {
	text-align: center;
	max-width: 62ch;
	margin: 0 auto clamp(2.5rem, 5vw, 4rem);
}

.mkn-lien-souligne {
	border-bottom: 1px solid var(--kn-line-strong);
	padding-bottom: 2px;
	transition: border-color var(--kn-transition);
}

.mkn-lien-souligne:hover {
	border-color: currentColor;
}

/* Boutons */

.mkn-bouton {
	display: inline-block;
	padding: 1.05rem 2.6rem;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	border: 1px solid var(--kn-noir);
	transition: background-color var(--kn-transition), color var(--kn-transition);
}

.mkn-bouton:hover,
.mkn-bouton:focus-visible {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
	color: var(--kn-beige-05);
}

.mkn-bouton--contour {
	background: transparent;
	color: var(--kn-noir);
	border-color: var(--kn-line-strong);
}

.mkn-bouton--contour:hover,
.mkn-bouton--contour:focus-visible {
	background: var(--kn-noir);
	border-color: var(--kn-noir);
	color: var(--kn-beige-05);
}

/* --- 5. Bandeau d'annonce ----------------------------------------------- */

.mkn-annonce {
	background: var(--kn-marron);
	color: var(--kn-text-invert);
	text-align: center;
}

.mkn-annonce__texte {
	margin: 0;
	padding: 0.7rem 1rem;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
}

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

.mkn-header {
	position: sticky;
	top: 0;
	z-index: 40;
	background: var(--kn-bg);
	border-bottom: 1px solid var(--kn-line);
}

.mkn-header__inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 1.1rem var(--kn-gouttiere);
}

.mkn-header__logo {
	justify-self: center;
}

.mkn-header__logo img,
.mkn-logo img,
.custom-logo {
	width: clamp(140px, 18vw, 210px);
	height: auto;
}

.mkn-header__actions {
	display: flex;
	justify-self: end;
	align-items: center;
	gap: clamp(0.75rem, 2vw, 1.5rem);
}

.mkn-action {
	display: inline-flex;
	position: relative;
	align-items: center;
	color: var(--kn-noir);
	transition: color var(--kn-transition);
}

.mkn-action:hover {
	color: var(--kn-marron);
}

.mkn-action svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.mkn-action__compte {
	position: absolute;
	right: -8px;
	bottom: -4px;
	font-size: 0.625rem;
	letter-spacing: 0;
	background: var(--kn-bg);
	padding: 0 2px;
}

/* Navigation */

.mkn-nav__list {
	display: flex;
	align-items: center;
	gap: clamp(1rem, 2.4vw, 2.25rem);
}

.mkn-nav__link,
.mkn-nav__list > li > a {
	display: inline-block;
	padding: 0.6rem 0;
	font-size: 0.72rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	position: relative;
}

.mkn-nav__link::after,
.mkn-nav__list > li > a::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0.35rem;
	width: 0;
	height: 1px;
	background: currentColor;
	transition: width var(--kn-transition);
}

.mkn-nav__list > li:hover > a::after,
.mkn-nav__list > li:focus-within > a::after {
	width: 100%;
}

/* Sous-menu déroulant, dans l'esprit des références fournies. */
.mkn-nav__item,
.mkn-nav__list > li {
	position: relative;
}

.mkn-subnav,
.mkn-nav__list .sub-menu {
	position: absolute;
	top: 100%;
	left: -1.5rem;
	min-width: 260px;
	padding: 1.5rem;
	background: var(--kn-bg);
	border: 1px solid var(--kn-line);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity var(--kn-transition), transform var(--kn-transition), visibility var(--kn-transition);
}

.mkn-nav__list > li:hover > .mkn-subnav,
.mkn-nav__list > li:focus-within > .mkn-subnav,
.mkn-nav__list > li:hover > .sub-menu,
.mkn-nav__list > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mkn-subnav__link,
.mkn-nav__list .sub-menu a {
	display: block;
	padding: 0.45rem 0;
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
	text-transform: none;
	color: var(--kn-text-soft);
	transition: color var(--kn-transition);
}

.mkn-subnav__link:hover,
.mkn-nav__list .sub-menu a:hover {
	color: var(--kn-noir);
}

/* Panneau de recherche, déplié sous l'en-tête */
.mkn-recherche {
	border-top: 1px solid var(--kn-line);
	background: var(--kn-bg);
}

.mkn-recherche__form {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 1rem var(--kn-gouttiere);
}

.mkn-recherche__icone {
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: var(--kn-text-soft);
	stroke-width: 1.2;
	stroke-linecap: round;
}

.mkn-recherche__champ {
	flex: 1 1 auto;
	min-width: 0;
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--kn-line-strong);
	padding: 0.6rem 0;
	font-family: var(--kn-font-body);
	font-size: 1rem;
	color: var(--kn-text);
}

.mkn-recherche__champ::placeholder {
	color: var(--kn-text-soft);
	opacity: 0.7;
}

.mkn-recherche__champ:focus {
	outline: none;
	border-bottom-color: var(--kn-noir);
}

.mkn-recherche__champ::-webkit-search-cancel-button {
	display: none;
}

.mkn-recherche__envoi {
	flex: 0 0 auto;
	appearance: none;
	padding: 0.7rem 1.6rem;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	border: 1px solid var(--kn-noir);
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--kn-transition), border-color var(--kn-transition);
}

.mkn-recherche__envoi:hover {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
}

.mkn-recherche__fermer {
	flex: 0 0 auto;
	appearance: none;
	background: none;
	border: 0;
	padding: 0.25rem 0.4rem;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--kn-text-soft);
	cursor: pointer;
	transition: color var(--kn-transition);
}

.mkn-recherche__fermer:hover {
	color: var(--kn-noir);
}

.mkn-action--recherche {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

@media (max-width: 600px) {
	.mkn-recherche__envoi {
		display: none;
	}
}

/* Burger et tiroir mobile */

.mkn-burger {
	display: none;
	appearance: none;
	background: none;
	border: 0;
	padding: 0.5rem;
	cursor: pointer;
	color: var(--kn-noir);
}

.mkn-burger__traits,
.mkn-burger__traits::before,
.mkn-burger__traits::after {
	display: block;
	width: 22px;
	height: 1px;
	background: currentColor;
	transition: transform var(--kn-transition);
}

.mkn-burger__traits::before,
.mkn-burger__traits::after {
	content: '';
	position: relative;
}

.mkn-burger__traits::before {
	top: -7px;
}

.mkn-burger__traits::after {
	top: 6px;
}

.mkn-drawer {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: rgb(23 23 23 / 0.35);
}

.mkn-drawer__panneau {
	width: min(88vw, 380px);
	height: 100%;
	padding: 2rem 1.75rem;
	background: var(--kn-bg);
	overflow-y: auto;
	animation: mkn-slide var(--kn-transition);
}

@keyframes mkn-slide {
	from { transform: translateX(-100%); }
	to { transform: translateX(0); }
}

.mkn-drawer .mkn-nav__list {
	display: block;
}

.mkn-drawer .mkn-nav__list > li {
	border-bottom: 1px solid var(--kn-line);
}

.mkn-drawer .mkn-subnav,
.mkn-drawer .sub-menu {
	position: static;
	opacity: 1;
	visibility: visible;
	transform: none;
	border: 0;
	padding: 0 0 1rem 0.75rem;
	min-width: 0;
}

.mkn-drawer__fermer {
	appearance: none;
	background: none;
	border: 0;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	margin-bottom: 1.5rem;
	color: var(--kn-noir);
}

.mkn-drawer__contact {
	margin-top: 2rem;
	font-size: 0.8125rem;
	color: var(--kn-text-soft);
}

/* --- 7. Hero ------------------------------------------------------------ */

.mkn-hero {
	display: grid;
	grid-template-columns: 1fr 1.05fr;
	align-items: stretch;
	min-height: min(86vh, 820px);
}

/* Variante affinée : titre resserré sur deux ou trois lignes, moins de vide
   au-dessus. Repasser en « Version d'origine » dans le personnalisateur
   désactive tout ce bloc. */
/* Bandeau d'annonce + en-tête + hero occupent exactement une hauteur d'écran.
   `svh` évite que la barre d'adresse mobile fasse déborder le bloc ; la ligne
   `vh` reste comme repli pour les navigateurs qui l'ignorent. */
.mkn-hero-affinee .mkn-hero {
	min-height: calc(100vh - var(--kn-entete-h));
	min-height: calc(100svh - var(--kn-entete-h));
}

/* Sans cela, la photo portrait impose sa hauteur naturelle à toute la
   rangée — près de 1000 px — et creuse un vide au-dessus du titre. */
.mkn-hero-affinee .mkn-hero__visuel {
	position: relative;
}

.mkn-hero-affinee .mkn-hero__visuel picture,
.mkn-hero-affinee .mkn-hero__visuel img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mkn-hero-affinee .mkn-hero__texte {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 5vw, 4.5rem);
}

.mkn-hero-affinee .mkn-hero__titre {
	font-size: clamp(2.25rem, 4vw, 3.5rem);
	line-height: 1.1;
	letter-spacing: -0.015em;
	max-width: 16ch;
	text-wrap: balance;
	margin-bottom: 0.45em;
}

.mkn-hero-affinee .mkn-hero__sous-titre {
	font-size: clamp(1.15rem, 1.6vw, 1.5rem);
	margin-bottom: 2rem;
}

.mkn-hero__texte {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(3rem, 7vw, 6rem) clamp(1.5rem, 6vw, 5.5rem);
}

.mkn-hero__titre {
	font-size: clamp(2.75rem, 5.4vw, 4.5rem);
	line-height: 1.05;
	max-width: 12ch;
	margin-bottom: 0.5em;
}

/* Signature du hero : Miyanih italique plutôt que Zudime, illisible à cette
   taille. Zudime reste réservée aux sur-titres décoratifs. */
.mkn-hero__sous-titre {
	font-family: var(--kn-font-title);
	font-style: italic;
	font-size: clamp(1.35rem, 2vw, 1.75rem);
	line-height: 1.3;
	color: var(--kn-text-soft);
	margin-bottom: 2.5rem;
}

.mkn-hero__texte .mkn-bouton {
	align-self: flex-start;
}

.mkn-hero__visuel {
	position: relative;
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-hero__visuel picture,
.mkn-hero__visuel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Hero pleine largeur : la photo éditoriale occupe tout l'écran, le texte
   se pose dessus. Variante « Deux colonnes » et « Version d'origine »
   restent disponibles dans le personnalisateur. */
.mkn-hero-plein .mkn-hero {
	display: block;
	position: relative;
	min-height: 0;
	/* Plafond : sur un très grand écran, un hero de 1500 px de haut noierait
	   la photo et repousserait toute la page. */
	height: calc(100vh - var(--kn-entete-h));
	height: min(calc(100svh - var(--kn-entete-h)), 920px);
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-hero-plein .mkn-hero__visuel {
	position: absolute;
	inset: 0;
	aspect-ratio: auto;
	order: 0;
}

.mkn-hero-plein .mkn-hero__visuel picture,
.mkn-hero-plein .mkn-hero__visuel img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 48%;
}

/* Voile dégradé : garantit la lisibilité du texte quelle que soit la photo. */
.mkn-hero-plein .mkn-hero__visuel::after {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(to right, rgb(23 23 23 / 0.5) 0%, rgb(23 23 23 / 0.22) 38%, transparent 62%),
		linear-gradient(to top, rgb(23 23 23 / 0.38) 0%, transparent 45%);
	pointer-events: none;
}

.mkn-hero-plein .mkn-hero__texte {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 2;
	display: block;
	/* Largeur en pixels et non en « ch » : l'unité ch se calcule sur la police
	   du bloc (Jost, 17 px), ce qui donnait une colonne bien trop étroite et
	   cassait le titre en trois lignes. */
	max-width: min(720px, 62%);
	padding: clamp(2rem, 5vw, 4.5rem) clamp(1.5rem, 5vw, 4.5rem);
	color: var(--kn-beige-05);
	background: none;
}

.mkn-hero-plein .mkn-hero__texte::before {
	content: none;
}

.mkn-hero-plein .mkn-hero__titre {
	color: var(--kn-beige-05);
	font-size: clamp(2rem, 3.4vw, 3.25rem);
	line-height: 1.1;
	max-width: none;
	text-wrap: balance;
	text-shadow: 0 1px 24px rgb(23 23 23 / 0.35);
	margin-bottom: 0.4em;
}

.mkn-hero-plein .mkn-hero__sous-titre {
	color: var(--kn-beige-05);
	opacity: 0.95;
	font-family: var(--kn-font-title);
	font-style: italic;
	font-size: clamp(1.05rem, 1.5vw, 1.4rem);
	margin-bottom: 1.75rem;
	text-shadow: 0 1px 18px rgb(23 23 23 / 0.35);
}

.mkn-hero-plein .mkn-hero__texte .mkn-bouton {
	white-space: nowrap;
	width: auto;
	background: var(--kn-beige-05);
	border-color: var(--kn-beige-05);
	color: var(--kn-noir);
}

.mkn-hero-plein .mkn-hero__texte .mkn-bouton:hover {
	background: transparent;
	color: var(--kn-beige-05);
}

@media (max-width: 900px) {
	.mkn-hero-plein .mkn-hero {
		height: calc(100svh - var(--kn-entete-h));
		min-height: 460px;
	}

	.mkn-hero-plein .mkn-hero__texte {
		max-width: none;
	}
}

/* Grand visuel en tête de la section collection */
.mkn-collection__visuel {
	position: relative;
	margin: 0 0 clamp(1rem, 2vw, 1.75rem);
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-collection__visuel picture,
.mkn-collection__visuel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
}

.mkn-collection__legende {
	position: absolute;
	left: clamp(1rem, 2.5vw, 2rem);
	bottom: clamp(1rem, 2.5vw, 2rem);
	padding: 0.7rem 1.4rem;
	background: rgb(237 233 220 / 0.94);
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-noir);
}

@media (max-width: 780px) {
	.mkn-collection__visuel {
		aspect-ratio: 4 / 5;
	}
}

/* --- 8. Collection ------------------------------------------------------ */

.mkn-collection {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-grille {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(0.75rem, 1.6vw, 1.5rem);
}

.mkn-carte__lien {
	display: block;
	position: relative;
}

.mkn-carte__visuel {
	display: block;
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: var(--kn-bg-alt);
}

.mkn-carte__visuel picture,
.mkn-carte__visuel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 900ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.mkn-carte__lien:hover .mkn-carte__visuel img,
.mkn-carte__lien:focus-visible .mkn-carte__visuel img {
	transform: scale(1.03);
}

/* Voile discret : garantit la lisibilité du bouton quelle que soit la photo. */
.mkn-carte__voile {
	position: absolute;
	inset: auto 0 0 0;
	height: 45%;
	background: linear-gradient(to top, rgb(23 23 23 / 0.28), transparent);
	pointer-events: none;
}

.mkn-carte__bouton {
	position: absolute;
	left: 50%;
	bottom: clamp(1rem, 1.8vw, 1.5rem);
	transform: translateX(-50%);
	display: inline-block;
	width: calc(100% - 2.5rem);
	max-width: 210px;
	padding: 0.8rem 1rem;
	background: var(--kn-bg);
	color: var(--kn-noir);
	font-size: 0.6875rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
	white-space: nowrap;
	transition: background-color var(--kn-transition), color var(--kn-transition);
}

.mkn-carte__lien:hover .mkn-carte__bouton,
.mkn-carte__lien:focus-visible .mkn-carte__bouton {
	background: var(--kn-noir);
	color: var(--kn-beige-05);
}

/* --- 8 bis. Slider de produits ------------------------------------------ */

.mkn-produits {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 0 var(--kn-gouttiere) var(--kn-section);
}

.mkn-produits__entete {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

.mkn-produits__titres .mkn-surtitre {
	margin-bottom: 0.15em;
}

.mkn-produits__outils {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	padding-bottom: 0.35rem;
}

.mkn-produits__tout {
	font-size: 0.72rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	white-space: nowrap;
}

.mkn-slider__fleches {
	display: flex;
	gap: 0.5rem;
}

.mkn-slider__fleche {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	background: transparent;
	border: 1px solid var(--kn-line-strong);
	color: var(--kn-noir);
	cursor: pointer;
	transition: background-color var(--kn-transition), color var(--kn-transition), opacity var(--kn-transition);
}

.mkn-slider__fleche svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.mkn-slider__fleche:hover:not([disabled]) {
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	border-color: var(--kn-noir);
}

.mkn-slider__fleche[disabled] {
	opacity: 0.3;
	cursor: default;
}

/* Piste défilante : quatre produits visibles sur grand écran. */
.mkn-slider__piste {
	--mkn-visible: 2;
	--mkn-gap: clamp(0.75rem, 1.6vw, 1.5rem);
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--mkn-visible) - 1) * var(--mkn-gap)) / var(--mkn-visible));
	gap: var(--mkn-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-ms-overflow-style: none;
	overscroll-behavior-x: contain;
	padding-bottom: 0.25rem;
}

.mkn-slider__piste::-webkit-scrollbar {
	display: none;
}

.mkn-produit {
	scroll-snap-align: start;
}

.mkn-produit__media {
	position: relative;
	overflow: hidden;
}

.mkn-produit__visuel {
	display: block;
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--kn-bg-alt);
}

/* Les visuels sont empilés ; seul le courant est visible. */
.mkn-produit__vue {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	visibility: hidden;
	transition: opacity 400ms ease, transform 700ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.mkn-produit__vue.est-active {
	opacity: 1;
	visibility: visible;
}

.mkn-produit__media:hover .mkn-produit__vue.est-active {
	transform: scale(1.03);
}

/* Flèches de galerie, révélées au survol. */
.mkn-produit__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	appearance: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	background: none;
	border: 0;
	color: var(--kn-noir);
	cursor: pointer;
	opacity: 0;
	transition: opacity var(--kn-transition);
}

.mkn-produit__nav svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
	filter: drop-shadow(0 0 2px rgb(237 233 220 / 0.9));
}

.mkn-produit__nav--prec {
	left: 0.35rem;
}

.mkn-produit__nav--suiv {
	right: 0.35rem;
}

.mkn-produit__media:hover .mkn-produit__nav,
.mkn-produit__media:focus-within .mkn-produit__nav {
	opacity: 1;
}

/* Bandeau des tailles : monte depuis le bas au survol. */
.mkn-produit__tailles {
	position: absolute;
	inset: auto 0 0 0;
	z-index: 3;
	padding: 0.9rem 0.75rem;
	background: rgb(237 233 220 / 0.97);
	transform: translateY(100%);
	opacity: 0;
	transition: transform var(--kn-transition), opacity var(--kn-transition);
}

.mkn-produit__media:hover .mkn-produit__tailles,
.mkn-produit__media:focus-within .mkn-produit__tailles {
	transform: translateY(0);
	opacity: 1;
}

.mkn-tailles {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.35rem clamp(0.6rem, 1.8vw, 1.6rem);
}

.mkn-taille {
	display: inline-block;
	padding: 0.15rem 0.2rem;
	font-size: 0.8125rem;
	font-weight: 500;
	letter-spacing: 0.06em;
	line-height: 1.2;
	color: var(--kn-noir);
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

a.mkn-taille:hover,
a.mkn-taille:focus-visible {
	border-color: var(--kn-noir);
}

.mkn-taille--epuisee {
	color: var(--kn-text-soft);
	opacity: 0.55;
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}

/* Sans survol possible, le bandeau reste affiché. */
@media (hover: none) {
	.mkn-produit__tailles {
		position: static;
		transform: none;
		opacity: 1;
		background: none;
		padding: 0.75rem 0 0;
	}

	.mkn-produit__nav {
		opacity: 1;
	}
}

.mkn-produit__vide {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--kn-bg-accent);
}

.mkn-produit__promo {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	padding: 0.3rem 0.7rem;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	font-size: 0.5625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
}

.mkn-produit__infos {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 1.1rem;
}

.mkn-produit__tag {
	font-size: 0.5625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin: 0 0 0.35rem;
}

.mkn-produit__nom {
	font-family: var(--kn-font-body);
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0.02em;
	margin: 0 0 0.3rem;
}

.mkn-produit__nom a {
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.mkn-produit__nom a:hover {
	border-color: var(--kn-line-strong);
}

.mkn-produit__prix {
	font-size: 0.9375rem;
	margin: 0;
	color: var(--kn-text);
}

.mkn-produit__prix del {
	color: var(--kn-text-soft);
	opacity: 0.7;
	margin-right: 0.4em;
}

.mkn-produit__prix ins {
	text-decoration: none;
}

.mkn-produit__coeur {
	appearance: none;
	flex: 0 0 auto;
	background: none;
	border: 0;
	padding: 0.15rem;
	cursor: pointer;
	color: var(--kn-noir);
	line-height: 0;
}

.mkn-produit__coeur svg {
	width: 18px;
	height: 18px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.2;
	stroke-linejoin: round;
	transition: fill var(--kn-transition), color var(--kn-transition);
}

.mkn-produit__coeur[aria-pressed="true"] svg {
	fill: var(--kn-noir);
}

.mkn-produit__coeur:hover {
	color: var(--kn-marron);
}

@media (max-width: 780px) {
	.mkn-slider__piste {
		--mkn-visible: 1.15;
	}

	.mkn-produits__entete {
		flex-direction: column;
		align-items: flex-start;
	}

	.mkn-slider__fleches {
		display: none;
	}
}

/* --- 8 ter. Boutique ----------------------------------------------------- */

.mkn-boutique {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-boutique__entete {
	margin-bottom: clamp(2rem, 4vw, 3.25rem);
}

.mkn-boutique__compte {
	margin: 1rem 0 0;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

/* Quatre produits par ligne, mêmes cartes que sur la page d'accueil. */
.mkn-grille-produits {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(2rem, 3.5vw, 3.25rem) clamp(0.75rem, 1.6vw, 1.5rem);
}

.mkn-pagination {
	margin-top: clamp(3rem, 5vw, 4.5rem);
	text-align: center;
}

.mkn-pagination .page-numbers {
	display: inline-block;
	padding: 0.5rem 0.85rem;
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.mkn-pagination .page-numbers:hover,
.mkn-pagination .page-numbers.current {
	border-color: var(--kn-line-strong);
}

.mkn-vide {
	text-align: center;
	color: var(--kn-text-soft);
}

@media (max-width: 1200px) {
	.mkn-grille-produits {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 780px) {
	.mkn-grille-produits {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 520px) {
	.mkn-grille-produits {
		grid-template-columns: 1fr;
	}
}

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

.mkn-fiche {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: clamp(1.5rem, 4vw, 4rem);
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: clamp(2rem, 4vw, 3.5rem) var(--kn-gouttiere) var(--kn-section);
}

.mkn-fiche__visuels {
	display: grid;
	gap: clamp(0.5rem, 1vw, 1rem);
}

.mkn-fiche__visuel {
	width: 100%;
	height: auto;
	background: var(--kn-bg-alt);
}

.mkn-fiche__infos {
	position: relative;
}

.mkn-fiche__panneau {
	position: sticky;
	top: calc(var(--kn-entete-h) + 2rem);
	max-width: 44ch;
	padding-top: clamp(0.5rem, 2vw, 2rem);
}

.mkn-fiche__categorie {
	font-size: 0.625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin-bottom: 1rem;
}

.mkn-fiche__categorie a {
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.mkn-fiche__categorie a:hover {
	border-color: var(--kn-line-strong);
}

.mkn-fiche__titre {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	line-height: 1.15;
	margin-bottom: 0.5rem;
}

.mkn-fiche__prix {
	font-size: 1.0625rem;
	letter-spacing: 0.02em;
	margin-bottom: 1.5rem;
}

.mkn-fiche__promo {
	display: inline-block;
	margin-left: 0.6rem;
	padding: 0.25rem 0.6rem;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	font-size: 0.5625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	vertical-align: middle;
}

/* Fil d'Ariane de WooCommerce */
.woocommerce-breadcrumb {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 1.5rem var(--kn-gouttiere) 0;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce-breadcrumb a {
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.woocommerce-breadcrumb a:hover {
	border-color: var(--kn-line-strong);
}

.mkn-fiche__prix del {
	color: var(--kn-text-soft);
	opacity: 0.7;
	margin-right: 0.5em;
}

.mkn-fiche__prix ins {
	text-decoration: none;
}

.mkn-fiche__resume {
	color: var(--kn-text-soft);
	margin-bottom: 2rem;
}

.mkn-fiche__resume p:last-child {
	margin-bottom: 0;
}

/* Le menu déroulant natif des variations est remplacé par les pastilles. */
.mkn-fiche .variations,
.mkn-fiche .reset_variations,
.mkn-fiche .quantity,
.mkn-fiche .woocommerce-variation-price,
.mkn-fiche .woocommerce-variation-description {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.mkn-choix {
	margin-bottom: 1.75rem;
}

.mkn-choix__entete {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 0.75rem;
}

.mkn-choix__titre,
.mkn-choix__aide {
	margin: 0;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
}

.mkn-choix__aide {
	color: var(--kn-text-soft);
}

.mkn-choix__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.mkn-pastille {
	appearance: none;
	min-width: 52px;
	padding: 0.7rem 0.9rem;
	background: transparent;
	border: 1px solid var(--kn-line-strong);
	color: var(--kn-noir);
	font-family: var(--kn-font-body);
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	line-height: 1;
	cursor: pointer;
	transition: background-color var(--kn-transition), color var(--kn-transition), border-color var(--kn-transition);
}

.mkn-pastille:hover:not([disabled]) {
	border-color: var(--kn-noir);
}

.mkn-pastille.est-choisie {
	background: var(--kn-noir);
	border-color: var(--kn-noir);
	color: var(--kn-beige-05);
}

.mkn-repli__corps--liste p {
	white-space: pre-line;
}

.mkn-pastille--epuisee,
.mkn-pastille.est-indisponible,
.mkn-pastille[disabled] {
	color: var(--kn-text-soft);
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

/* Boutons d'achat : ajout au panier en plein, achat direct en contour. */
.mkn-fiche .single_add_to_cart_button,
.mkn-fiche .mkn-bouton--acheter {
	display: block;
	width: 100%;
	margin: 0 0 0.75rem;
	padding: 1.05rem 2rem;
	font-family: var(--kn-font-body);
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	text-align: center;
	cursor: pointer;
	border: 1px solid var(--kn-noir);
	transition: background-color var(--kn-transition), color var(--kn-transition), opacity var(--kn-transition);
}

.mkn-fiche .single_add_to_cart_button {
	appearance: none;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
}

.mkn-fiche .single_add_to_cart_button:hover:not(.disabled) {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
}

.mkn-fiche .mkn-bouton--acheter {
	background: transparent;
	color: var(--kn-noir);
	border-color: var(--kn-line-strong);
}

.mkn-fiche .mkn-bouton--acheter:hover:not(.est-bloque) {
	background: var(--kn-noir);
	border-color: var(--kn-noir);
	color: var(--kn-beige-05);
}

.mkn-fiche .single_add_to_cart_button.disabled,
.mkn-fiche .mkn-bouton--acheter.est-bloque,
.mkn-fiche .mkn-bouton--acheter[disabled] {
	opacity: 0.35;
	cursor: not-allowed;
}

.mkn-fiche__mention {
	margin: 0.9rem 0 0;
	font-size: 0.6875rem;
	letter-spacing: 0.04em;
	color: var(--kn-text-soft);
	text-align: center;
}

.mkn-fiche .stock.out-of-stock {
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

/* Produits associés, sous la fiche */
.mkn-associes {
	grid-column: 1 / -1;
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) 0 0;
	width: 100%;
}

.mkn-associes .mkn-section-entete {
	margin-bottom: clamp(1.75rem, 3vw, 2.5rem);
}

/* Replis d'information */
.mkn-fiche__details {
	margin-top: 2.5rem;
	border-top: 1px solid var(--kn-line);
}

.mkn-repli {
	border-bottom: 1px solid var(--kn-line);
}

.mkn-repli__titre {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.1rem 0;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	cursor: pointer;
	list-style: none;
}

.mkn-repli__titre::-webkit-details-marker {
	display: none;
}

.mkn-repli__titre::after {
	content: '+';
	font-size: 1rem;
	line-height: 1;
	color: var(--kn-text-soft);
}

.mkn-repli[open] .mkn-repli__titre::after {
	content: '–';
}

.mkn-repli__corps {
	padding-bottom: 1.25rem;
	font-size: 0.9375rem;
	color: var(--kn-text-soft);
}

.mkn-repli__corps p:last-child {
	margin-bottom: 0;
}

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

@media (max-width: 900px) {
	.mkn-fiche {
		grid-template-columns: 1fr;
	}

	.mkn-fiche__visuels {
		grid-auto-flow: column;
		grid-auto-columns: 88%;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.mkn-fiche__visuels::-webkit-scrollbar {
		display: none;
	}

	.mkn-fiche__visuel {
		scroll-snap-align: start;
	}

	.mkn-fiche__panneau {
		position: static;
		max-width: none;
	}
}

/* --- 8 quinquies. Page À propos ------------------------------------------ */

.mkn-apropos {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) var(--kn-gouttiere) var(--kn-section);
}

.mkn-apropos__entete {
	text-align: center;
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

/* Les ancres doivent s'arrêter sous l'en-tête collant. */
.mkn-apropos [id] {
	scroll-margin-top: calc(var(--kn-entete-h) + 2rem);
}

/* Sommaire interne */
.mkn-ancres {
	position: sticky;
	top: var(--kn-entete-h);
	z-index: 20;
	background: var(--kn-bg);
	border-top: 1px solid var(--kn-line);
	border-bottom: 1px solid var(--kn-line);
	margin-bottom: clamp(3rem, 6vw, 5rem);
}

.mkn-ancres__liste {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem clamp(1rem, 3vw, 2.5rem);
	padding: 1rem 0;
}

.mkn-ancres__lien {
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	border-bottom: 1px solid transparent;
	padding-bottom: 3px;
	transition: color var(--kn-transition), border-color var(--kn-transition);
}

.mkn-ancres__lien:hover,
.mkn-ancres__lien.est-active {
	color: var(--kn-noir);
	border-color: var(--kn-noir);
}

/* Blocs texte + image */
.mkn-bloc {
	display: grid;
	grid-template-columns: 0.85fr 1fr;
	align-items: start;
	gap: clamp(2rem, 5vw, 4.5rem);
	margin-bottom: clamp(4rem, 8vw, 7rem);
}

.mkn-bloc--image-droite {
	grid-template-columns: 1fr 0.85fr;
}

.mkn-bloc__visuel {
	position: sticky;
	top: calc(var(--kn-entete-h) + 5rem);
}

.mkn-bloc__visuel img {
	width: 100%;
	height: auto;
	background: var(--kn-bg-alt);
}

.mkn-bloc__titre {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	margin-bottom: 1.25rem;
}

.mkn-bloc__texte p {
	color: var(--kn-text-soft);
	max-width: 60ch;
}

.mkn-citation {
	margin: 2rem 0 0;
	padding-left: 1.25rem;
	border-left: 1px solid var(--kn-line-strong);
	font-family: var(--kn-font-title);
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.4;
	color: var(--kn-text);
}

/* FAQ */
.mkn-faq {
	padding: clamp(3rem, 6vw, 5rem) 0;
	border-top: 1px solid var(--kn-line);
}

.mkn-faq__liste {
	max-width: 760px;
	margin: 0 auto;
	border-top: 1px solid var(--kn-line);
}

.mkn-faq .mkn-repli__titre {
	padding: 1.4rem 0;
	font-size: 0.8125rem;
	letter-spacing: 0.06em;
	text-transform: none;
}

.mkn-faq .mkn-repli__corps {
	max-width: 60ch;
}

/* Mentions légales */
.mkn-legal {
	max-width: 760px;
	margin: 0 auto;
	padding: clamp(2.5rem, 5vw, 4rem) 0 0;
	border-top: 1px solid var(--kn-line);
}

.mkn-legal__titre {
	font-size: clamp(1.35rem, 2.2vw, 1.75rem);
	margin-bottom: 1.25rem;
}

.mkn-legal__corps {
	font-size: 0.9375rem;
	color: var(--kn-text-soft);
}

.mkn-legal__attente {
	padding: 1rem 1.25rem;
	background: var(--kn-bg-alt);
	font-size: 0.875rem;
}

@media (max-width: 900px) {
	.mkn-bloc,
	.mkn-bloc--image-droite {
		grid-template-columns: 1fr;
	}

	.mkn-bloc--image-droite .mkn-bloc__visuel {
		order: -1;
	}

	.mkn-bloc__visuel {
		position: static;
	}

	.mkn-ancres__liste {
		justify-content: flex-start;
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		padding-inline: var(--kn-gouttiere);
		margin-inline: calc(var(--kn-gouttiere) * -1);
	}

	.mkn-ancres__liste::-webkit-scrollbar {
		display: none;
	}

	.mkn-ancres__lien {
		white-space: nowrap;
	}
}

/* Lookbook : rythme alterné, une grande photo puis trois petites, deux
   grandes puis trois petites. Aucun prix, aucun panier — c'est un espace
   éditorial, pas une seconde boutique. */
.mkn-lookbook {
	--mkn-lb-gap: clamp(0.5rem, 1.2vw, 1.25rem);
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4rem) var(--kn-gouttiere) 0;
	display: grid;
	gap: clamp(1rem, 2.5vw, 2.5rem);
}

.mkn-lookbook__rangee {
	display: grid;
	gap: var(--mkn-lb-gap);
}

/* Une seule photo : elle respire, au format naturel, un peu en retrait. */
.mkn-lookbook__rangee--solo {
	grid-template-columns: 1fr;
	justify-items: center;
}

.mkn-lookbook__rangee--solo .mkn-lookbook__image {
	width: min(100%, 74%);
	height: auto;
	aspect-ratio: auto;
}

.mkn-lookbook__rangee--duo {
	grid-template-columns: repeat(2, 1fr);
}

.mkn-lookbook__rangee--trio {
	grid-template-columns: repeat(3, 1fr);
}

.mkn-lookbook__image {
	width: 100%;
	height: 100%;
	display: block;
	object-fit: cover;
	background: var(--kn-bg-alt);
}

.mkn-lookbook__rangee--duo .mkn-lookbook__image,
.mkn-lookbook__rangee--trio .mkn-lookbook__image {
	aspect-ratio: 3 / 4;
}

/* Texte éditorial, au-dessus du lookbook */
.mkn-campagne__texte {
	max-width: 62ch;
	margin: 0 auto;
	padding: 0 var(--kn-gouttiere);
	text-align: center;
	color: var(--kn-text-soft);
}

.mkn-campagne__texte p {
	margin-bottom: 1.4em;
}

.mkn-campagne__cta {
	margin: clamp(3rem, 6vw, 5rem) 0 0;
	padding: 0 var(--kn-gouttiere) var(--kn-section);
	text-align: center;
}

@media (max-width: 780px) {
	.mkn-lookbook__rangee--solo .mkn-lookbook__image {
		width: 100%;
	}

	.mkn-lookbook__rangee--trio {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Une photo seule sur la dernière ligne d'un trio prend toute la largeur. */
	.mkn-lookbook__rangee--trio .mkn-lookbook__image:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		aspect-ratio: 4 / 5;
	}
}

/* --- 8 sexies. Campagnes -------------------------------------------------- */

.mkn-campagne__couverture {
	margin: 0;
	max-height: min(78vh, 760px);
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-campagne__image {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.mkn-campagne__entete {
	max-width: 640px;
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) var(--kn-gouttiere) clamp(2rem, 4vw, 3rem);
	text-align: center;
}

.mkn-campagne__sous-titre {
	margin: 1rem 0 0;
	font-family: var(--kn-font-title);
	font-style: italic;
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
	line-height: 1.35;
	color: var(--kn-text-soft);
}

/* Corps éditorial : texte en colonne étroite, visuels au large. */
.mkn-campagne__corps {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 0 var(--kn-gouttiere);
}

.mkn-campagne__corps > * {
	max-width: 62ch;
	margin-inline: auto;
	color: var(--kn-text-soft);
}

.mkn-campagne__corps > p {
	margin-bottom: 1.5em;
}

.mkn-campagne__corps h2,
.mkn-campagne__corps h3 {
	color: var(--kn-text);
	margin: 2.5em auto 0.75em;
}

.mkn-campagne__corps figure,
.mkn-campagne__corps .wp-block-image,
.mkn-campagne__corps .wp-block-gallery,
.mkn-campagne__corps .wp-block-columns {
	max-width: none;
	margin-block: clamp(2.5rem, 5vw, 4rem);
}

.mkn-campagne__corps img {
	width: 100%;
	height: auto;
	display: block;
	background: var(--kn-bg-alt);
}

.mkn-campagne__corps figcaption {
	margin-top: 0.75rem;
	font-size: 0.6875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--kn-text-soft);
	text-align: center;
}

.mkn-campagne__corps .wp-block-gallery {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(0.5rem, 1.2vw, 1rem);
}

.mkn-campagne__corps .wp-block-gallery figure {
	margin: 0;
}

.mkn-campagne__cta {
	margin: 0;
	padding: clamp(3rem, 6vw, 5rem) var(--kn-gouttiere) var(--kn-section);
	text-align: center;
}

/* Liste des campagnes */
.mkn-campagnes {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-campagnes__liste {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.mkn-campagnes__visuel {
	display: block;
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-campagnes__visuel img {
	transition: transform 900ms cubic-bezier(0.22, 0.61, 0.36, 1);
}

.mkn-campagnes__lien:hover .mkn-campagnes__visuel img {
	transform: scale(1.03);
}

.mkn-campagnes__texte {
	display: block;
	padding-top: 1.1rem;
}

.mkn-campagnes__titre {
	display: block;
	font-family: var(--kn-font-title);
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	line-height: 1.2;
}

.mkn-campagnes__legende {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.875rem;
	color: var(--kn-text-soft);
}

@media (max-width: 780px) {
	.mkn-campagnes__liste {
		grid-template-columns: 1fr;
	}

	.mkn-campagne__corps .wp-block-gallery {
		grid-template-columns: 1fr;
	}
}

/* --- 8 septies. Compte client & formulaires WooCommerce ------------------ */

/* La page compte a besoin de plus de large que la colonne de lecture. */
.woocommerce-account .mkn-contenu,
.woocommerce-cart .mkn-contenu,
.woocommerce-checkout .mkn-contenu {
	max-width: none;
}

/* Messages WooCommerce, utilisés aussi sur le panier et la commande. */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
	list-style: none;
	margin: 0 0 1.75rem;
	padding: 1rem 1.25rem;
	background: var(--kn-bg-alt);
	border-left: 2px solid var(--kn-marron);
	font-size: 0.9375rem;
}

.woocommerce-error {
	border-left-color: var(--kn-noir);
}

.woocommerce-error li {
	margin: 0;
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	margin-left: 1rem;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	border-bottom: 1px solid var(--kn-line-strong);
}

/* Connexion */
.mkn-compte-connexion {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
	max-width: 900px;
	margin: 0 auto;
	align-items: start;
}

.mkn-carte-compte {
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid var(--kn-line);
}

.mkn-carte-compte--note {
	background: var(--kn-bg-alt);
	border-color: transparent;
	color: var(--kn-text-soft);
}

.mkn-carte-compte__titre {
	font-size: 1.25rem;
	margin-bottom: 1.5rem;
}

.mkn-carte-compte__actions {
	margin: 1.5rem 0 0;
}

/* Formulaires */
.mkn-champ,
.woocommerce-form-row,
.form-row {
	display: block;
	margin-bottom: 1.25rem;
}

.mkn-champ label,
.woocommerce-form-row label,
.form-row label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.mkn-input,
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select {
	width: 100%;
	appearance: none;
	padding: 0.85rem 1rem;
	background: var(--kn-bg);
	border: 1px solid var(--kn-line-strong);
	border-radius: 0;
	font-family: var(--kn-font-body);
	font-size: 0.9375rem;
	color: var(--kn-text);
}

.mkn-input:focus,
.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
	outline: none;
	border-color: var(--kn-noir);
}

.mkn-formulaire__ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1.5rem;
	font-size: 0.8125rem;
}

.mkn-case {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	cursor: pointer;
}

.mkn-case__input {
	width: 15px;
	height: 15px;
	accent-color: var(--kn-noir);
}

.mkn-formulaire .mkn-bouton,
.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button,
.woocommerce-EditAccountForm button {
	appearance: none;
	cursor: pointer;
	font-family: var(--kn-font-body);
}

.woocommerce-account .woocommerce-Button,
.woocommerce-account button.button,
.woocommerce-EditAccountForm button {
	display: inline-block;
	padding: 1rem 2.5rem;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	border: 1px solid var(--kn-noir);
	font-size: 0.72rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	transition: background-color var(--kn-transition), border-color var(--kn-transition);
}

.woocommerce-account .woocommerce-Button:hover,
.woocommerce-account button.button:hover {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
}

/* Espace connecté */
.woocommerce-account .woocommerce-MyAccount-navigation + .woocommerce-MyAccount-content,
.woocommerce-MyAccount-content {
	min-width: 0;
}

.woocommerce-account .woocommerce {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}

.woocommerce-account.woocommerce-no-js .woocommerce,
.woocommerce-account:not(.logged-in) .woocommerce {
	display: block;
}

.mkn-compte-nav__salut {
	font-family: var(--kn-font-title);
	font-size: 1.25rem;
	margin-bottom: 1.25rem;
}

.mkn-compte-nav__liste {
	border-top: 1px solid var(--kn-line);
}

.mkn-compte-nav__item {
	border-bottom: 1px solid var(--kn-line);
}

.mkn-compte-nav__lien {
	display: block;
	padding: 0.85rem 0;
	font-size: 0.72rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	transition: color var(--kn-transition);
}

.mkn-compte-nav__lien:hover,
.mkn-compte-nav__item.is-active .mkn-compte-nav__lien {
	color: var(--kn-noir);
}

.mkn-compte-accueil__intro {
	color: var(--kn-text-soft);
	max-width: 60ch;
}

.mkn-compte-bloc {
	margin: 2rem 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--kn-line);
}

.mkn-compte-bloc__titre {
	font-size: 0.6875rem;
	font-family: var(--kn-font-body);
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin-bottom: 1rem;
}

.mkn-compte-bloc__ligne {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 2rem;
	margin-bottom: 1rem;
	font-size: 0.9375rem;
}

.mkn-compte-accueil__aide {
	font-size: 0.875rem;
	color: var(--kn-text-soft);
}

/* Tableaux : commandes, adresses */
.woocommerce table.shop_table,
.woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 1rem 0.75rem;
	text-align: left;
	border-bottom: 1px solid var(--kn-line);
}

.woocommerce table.shop_table th {
	font-family: var(--kn-font-body);
	font-size: 0.625rem;
	font-weight: 400;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce .woocommerce-Address {
	margin-bottom: 2rem;
}

.woocommerce .woocommerce-Address-title h3 {
	font-size: 1.125rem;
	margin-bottom: 0.75rem;
}

.woocommerce address {
	font-style: normal;
	color: var(--kn-text-soft);
	line-height: 1.7;
}

@media (max-width: 780px) {
	.mkn-compte-connexion {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
	}
}

/* --- 8 octies. Contact ---------------------------------------------------- */

.mkn-contact {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-contact__grille {
	display: grid;
	grid-template-columns: 0.8fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	max-width: 1050px;
	margin: 0 auto;
}

.mkn-contact__bloc {
	padding-bottom: 1.5rem;
	margin-bottom: 1.5rem;
	border-bottom: 1px solid var(--kn-line);
}

.mkn-contact__bloc:last-child {
	border-bottom: 0;
	margin-bottom: 0;
}

.mkn-contact__bloc p {
	margin-bottom: 0.5rem;
	color: var(--kn-text-soft);
	font-size: 0.9375rem;
}

.mkn-contact__soustitre {
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin-bottom: 0.75rem;
}

.mkn-contact__formulaire {
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid var(--kn-line);
}

.mkn-contact__intro {
	color: var(--kn-text-soft);
	font-size: 0.9375rem;
	margin-bottom: 1.75rem;
}

.mkn-contact__formulaire .mkn-bouton {
	width: 100%;
	appearance: none;
	cursor: pointer;
	font-family: var(--kn-font-body);
}

.mkn-contact textarea.mkn-input {
	resize: vertical;
	min-height: 140px;
	line-height: 1.6;
}

/* Champ leurre : masqué sans display:none, que les robots détectent. */
.mkn-piege {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.mkn-alerte {
	padding: 0.9rem 1.15rem;
	margin-bottom: 1.5rem;
	font-size: 0.9375rem;
	border-left: 2px solid var(--kn-marron);
	background: var(--kn-bg-alt);
}

.mkn-alerte--erreur {
	border-left-color: var(--kn-noir);
}

/* Bulle de conversation */
.mkn-bulle {
	position: fixed;
	right: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	border-radius: 50%;
	background: var(--kn-noir);
	color: var(--kn-beige-05);
	box-shadow: 0 2px 12px rgb(23 23 23 / 0.18);
	transition: background-color var(--kn-transition), transform var(--kn-transition);
}

.mkn-bulle:hover {
	background: var(--kn-marron);
	transform: translateY(-2px);
}

.mkn-bulle svg {
	width: 26px;
	height: 26px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

@media (max-width: 780px) {
	.mkn-contact__grille {
		grid-template-columns: 1fr;
	}
}

/* --- 8 quinquies. Panier, commande, compte ------------------------------- */

/* Ces pages ont besoin de toute la largeur, pas de la colonne de lecture. */
.woocommerce-checkout .mkn-contenu,
.woocommerce-cart .mkn-contenu,
.woocommerce-account .mkn-contenu {
	max-width: none;
}

/* Messages WooCommerce */
.woocommerce-info,
.woocommerce-message,
.woocommerce-error,
.woocommerce-notice {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	background: var(--kn-bg-alt);
	border-left: 2px solid var(--kn-marron);
	font-size: 0.875rem;
}

.woocommerce-error {
	border-left-color: #8a3b2a;
}

.woocommerce-info a,
.woocommerce-message a,
.woocommerce-error a {
	border-bottom: 1px solid var(--kn-line-strong);
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	border-bottom: 1px solid var(--kn-line-strong);
}

/* Formulaires WooCommerce */
.woocommerce form .form-row {
	display: block;
	margin: 0 0 1.1rem;
	padding: 0;
}

.woocommerce form .form-row label,
.mkn-champ label {
	display: block;
	margin-bottom: 0.4rem;
	font-size: 0.625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce form .form-row .required {
	color: var(--kn-marron);
	text-decoration: none;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.mkn-input,
.select2-container--default .select2-selection--single {
	width: 100%;
	padding: 0.85rem 1rem;
	background: rgb(255 255 255 / 0.35);
	border: 1px solid var(--kn-line-strong);
	border-radius: 0;
	color: var(--kn-text);
	font-family: var(--kn-font-body);
	font-size: 0.9375rem;
	line-height: 1.4;
	transition: border-color var(--kn-transition), background-color var(--kn-transition);
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.mkn-input:focus {
	outline: none;
	border-color: var(--kn-noir);
	background: rgb(255 255 255 / 0.6);
}

.woocommerce form .form-row textarea {
	min-height: 110px;
	resize: vertical;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
	width: 100%;
}

/* Le sélecteur de wilaya utilise select2 : on l'aligne sur les autres champs. */
.select2-container--default .select2-selection--single {
	height: auto;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0;
	line-height: 1.4;
	color: var(--kn-text);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 50%;
	right: 0.85rem;
	transform: translateY(-50%);
}

.select2-dropdown {
	border-color: var(--kn-line-strong);
	border-radius: 0;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--kn-marron);
}

/* Panier */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: 1.35fr 0.65fr;
	align-items: start;
	gap: clamp(2rem, 4vw, 4rem);
}

.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart form.woocommerce-cart-form {
	grid-column: 1;
}

.woocommerce-cart .cart-collaterals {
	grid-column: 2;
	width: 100%;
	float: none;
}

.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100%;
	float: none;
	position: sticky;
	top: calc(var(--kn-entete-h) + 1.5rem);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: var(--kn-bg-alt);
}

.woocommerce-cart .cart_totals h2 {
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin: 0 0 1.25rem;
}

.woocommerce-cart table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
	padding: 1rem 0.75rem 1rem 0;
	text-align: left;
	border-bottom: 1px solid var(--kn-line);
	vertical-align: middle;
}

.woocommerce-cart table.shop_table thead th {
	font-family: var(--kn-font-body);
	font-weight: 400;
	font-size: 0.625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce-cart table.shop_table .product-thumbnail {
	width: 96px;
	padding-right: 1rem;
}

.woocommerce-cart table.shop_table .product-thumbnail img {
	width: 96px;
	height: 128px;
	object-fit: cover;
	background: var(--kn-bg-alt);
}

.woocommerce-cart table.shop_table .product-name a {
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.woocommerce-cart table.shop_table .product-name a:hover {
	border-color: var(--kn-line-strong);
}

.woocommerce-cart table.shop_table .variation {
	margin: 0.35rem 0 0;
	font-size: 0.75rem;
	color: var(--kn-text-soft);
}

.woocommerce-cart table.shop_table .variation dt,
.woocommerce-cart table.shop_table .variation dd {
	display: inline;
	margin: 0;
}

.woocommerce-cart table.shop_table .product-subtotal,
.woocommerce-cart .cart_totals td {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-cart .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--kn-text-soft);
	transition: color var(--kn-transition);
}

.woocommerce-cart .product-remove a.remove:hover {
	color: var(--kn-noir);
}

.woocommerce-cart .quantity input.qty {
	width: 68px;
	padding: 0.55rem 0.5rem;
	text-align: center;
	background: rgb(255 255 255 / 0.35);
	border: 1px solid var(--kn-line-strong);
	border-radius: 0;
	font-family: var(--kn-font-body);
	font-size: 0.875rem;
}

.woocommerce-cart td.actions {
	padding: 1.5rem 0 0;
	border-bottom: 0;
}

.woocommerce-cart td.actions .coupon {
	display: inline-grid;
	grid-template-columns: minmax(0, 220px) auto;
	gap: 0.5rem;
	float: none;
	margin-bottom: 1rem;
}

.woocommerce-cart td.actions .coupon input.input-text {
	width: 100%;
	padding: 0.75rem 0.9rem;
	background: rgb(255 255 255 / 0.35);
	border: 1px solid var(--kn-line-strong);
	font-size: 0.875rem;
}

.woocommerce-cart td.actions .button,
.woocommerce-cart td.actions .coupon .button {
	width: auto;
	padding: 0.75rem 1.5rem;
	white-space: nowrap;
}

.woocommerce-cart td.actions > .button {
	float: right;
	background: transparent;
	border-color: var(--kn-line-strong);
	color: var(--kn-noir);
}

.woocommerce-cart td.actions > .button:hover:not(:disabled) {
	background: var(--kn-noir);
	color: var(--kn-beige-05);
}

.woocommerce-cart .cart_totals table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.25rem;
	font-size: 0.9375rem;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--kn-line);
	text-align: left;
	font-weight: 400;
}

.woocommerce-cart .cart_totals th {
	font-family: var(--kn-font-body);
	font-size: 0.625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	border-bottom: 0;
	padding-top: 1rem;
	font-size: 1.0625rem;
}

.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: block;
	width: 100%;
	margin: 0;
	padding: 1.05rem 2rem;
	background: var(--kn-noir);
	border: 1px solid var(--kn-noir);
	color: var(--kn-beige-05);
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	text-align: center;
	transition: background-color var(--kn-transition), border-color var(--kn-transition);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
}

/* Panier vide */
.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop {
	text-align: center;
}

.woocommerce-cart .cart-empty {
	font-family: var(--kn-font-title);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	margin: clamp(2rem, 5vw, 4rem) 0 1.5rem;
	padding: 0;
	background: none;
	border: 0;
}

.woocommerce-cart .return-to-shop {
	margin-bottom: clamp(3rem, 6vw, 5rem);
}

.woocommerce-cart .return-to-shop a.button {
	display: inline-block;
	width: auto;
	padding: 1.05rem 2.6rem;
}

.woocommerce-cart .cross-sells {
	grid-column: 1 / -1;
	width: 100%;
	float: none;
	margin-top: clamp(2rem, 4vw, 3rem);
}

@media (max-width: 900px) {
	.woocommerce-cart .woocommerce {
		grid-template-columns: 1fr;
	}

	.woocommerce-cart form.woocommerce-cart-form,
	.woocommerce-cart .cart-collaterals {
		grid-column: 1;
	}

	.woocommerce-cart .cart-collaterals .cart_totals {
		position: static;
	}

	.woocommerce-cart table.shop_table thead {
		display: none;
	}

	.woocommerce-cart table.shop_table,
	.woocommerce-cart table.shop_table tbody,
	.woocommerce-cart table.shop_table tr,
	.woocommerce-cart table.shop_table td {
		display: block;
		width: 100%;
	}

	.woocommerce-cart table.shop_table tr.cart_item {
		display: grid;
		grid-template-columns: 96px 1fr auto;
		gap: 0.25rem 1rem;
		align-items: center;
		padding: 1rem 0;
		border-bottom: 1px solid var(--kn-line);
	}

	.woocommerce-cart table.shop_table tr.cart_item td {
		border-bottom: 0;
		padding: 0;
		text-align: left !important;
	}

	/* WooCommerce injecte « Produit : », « Quantité : » devant chaque cellule
	   via ::before ; inutile ici, la grille suffit à lire la ligne. */
	.woocommerce-cart table.shop_table.shop_table_responsive tr.cart_item td::before {
		display: none;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-thumbnail {
		display: block;
		grid-row: 1 / span 3;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-name {
		grid-column: 2;
		grid-row: 1;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-quantity {
		grid-column: 2;
		grid-row: 2;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-subtotal {
		grid-column: 2 / -1;
		grid-row: 3;
		text-align: left !important;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-remove {
		grid-column: 3;
		grid-row: 1;
		text-align: right;
	}

	.woocommerce-cart table.shop_table tr.cart_item .product-price {
		display: none;
	}

	.woocommerce-cart td.actions {
		text-align: left !important;
	}

	.woocommerce-cart td.actions .coupon {
		display: block;
		width: 100%;
		max-width: none;
		margin-bottom: 0.75rem;
	}

	.woocommerce-cart td.actions .coupon input.input-text {
		display: block;
		width: 100%;
		margin-bottom: 0.5rem;
	}

	/* WooCommerce force l'alignement à droite dans les cellules en mobile. */
	.woocommerce-cart td.actions .coupon button.button {
		display: block;
		width: 100% !important;
		margin: 0;
		text-align: center;
	}

	.woocommerce-cart td.actions .coupon .button,
	.woocommerce-cart td.actions > .button {
		width: 100%;
		min-width: 0;
		padding-inline: 1rem;
		white-space: normal;
	}

	.woocommerce-cart td.actions .coupon input.input-text {
		min-width: 0;
	}

	.woocommerce-cart td.actions > .button {
		float: none;
		width: 100%;
	}
}

/* Mise en page de la commande */
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: start;
	gap: clamp(2rem, 4vw, 4.5rem);
}

/* Placement explicite : sans cela le récapitulatif tombe sous le formulaire
   au lieu de se caler en haut de la seconde colonne. */
.woocommerce-checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.woocommerce-checkout #order_review_heading {
	grid-column: 2;
	grid-row: 1;
}

.woocommerce-checkout #order_review {
	grid-column: 2;
	grid-row: 2;
}

/* Attention : #customer_details EST l'élément .col2-set, pas son parent.
   WooCommerce y fait flotter facturation et livraison côte à côte, ce qui
   donnait une troisième colonne parasite. */
.woocommerce-checkout #customer_details.col2-set,
.woocommerce-checkout #customer_details > .col-1,
.woocommerce-checkout #customer_details > .col-2 {
	width: 100%;
	float: none;
	margin: 0;
}

.woocommerce-checkout #customer_details > .col-2:not(:empty) {
	margin-top: 2.25rem;
}

.woocommerce-checkout #customer_details::after {
	content: '';
	display: block;
	clear: both;
}

.woocommerce-checkout #order_review_heading {
	margin: 0 0 1.25rem;
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce-checkout #order_review {
	position: sticky;
	top: calc(var(--kn-entete-h) + 1.5rem);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: var(--kn-bg-alt);
}

.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3 {
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	font-weight: 400;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid var(--kn-line);
}

.woocommerce-shipping-fields,
.woocommerce-additional-fields {
	margin-top: 2.25rem;
}

.woocommerce-shipping-fields h3 label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	color: inherit;
	cursor: pointer;
}

/* Récapitulatif */
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
	font-size: 0.9375rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 0.75rem 0;
	text-align: left;
	border-bottom: 1px solid var(--kn-line);
	vertical-align: top;
}

.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout-review-order-table th:last-child {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-checkout-review-order-table thead th {
	font-family: var(--kn-font-body);
	font-weight: 400;
	font-size: 0.625rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	color: var(--kn-text-soft);
}

.woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout-review-order-table .order-total th {
	border-bottom: 0;
	padding-top: 1rem;
	font-size: 1.0625rem;
}

.woocommerce-checkout-review-order-table .product-name {
	padding-right: 1rem;
}

.woocommerce-checkout-review-order-table .variation {
	margin: 0.25rem 0 0;
	font-size: 0.75rem;
	color: var(--kn-text-soft);
}

.woocommerce-checkout-review-order-table .variation dt,
.woocommerce-checkout-review-order-table .variation dd {
	display: inline;
	margin: 0;
}

.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--kn-text-soft);
}

#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: right;
}

#shipping_method li {
	margin-bottom: 0.35rem;
}

/* Paiement */
.woocommerce-checkout #payment {
	background: transparent;
}

.woocommerce-checkout #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--kn-line);
}

.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 0.5rem;
}

.woocommerce-checkout #payment ul.payment_methods label {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.8125rem;
	letter-spacing: 0.04em;
	text-transform: none;
	color: var(--kn-text);
	cursor: pointer;
}

.woocommerce-checkout #payment .payment_box {
	margin: 0.5rem 0 0;
	padding: 0.85rem 1rem;
	background: rgb(255 255 255 / 0.4);
	font-size: 0.875rem;
	color: var(--kn-text-soft);
}

.woocommerce-checkout #payment .payment_box p:last-child {
	margin-bottom: 0;
}

.woocommerce-privacy-policy-text {
	font-size: 0.8125rem;
	color: var(--kn-text-soft);
}

.woocommerce-checkout #place_order,
.woocommerce .button.alt,
.woocommerce button.button {
	appearance: none;
	display: block;
	width: 100%;
	padding: 1.05rem 2rem;
	background: var(--kn-noir);
	border: 1px solid var(--kn-noir);
	border-radius: 0;
	color: var(--kn-beige-05);
	font-family: var(--kn-font-body);
	font-size: 0.75rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var(--kn-transition), border-color var(--kn-transition);
}

.woocommerce-checkout #place_order:hover,
.woocommerce .button.alt:hover,
.woocommerce button.button:hover {
	background: var(--kn-marron);
	border-color: var(--kn-marron);
}

/* Case à cocher au style de la maison */
.woocommerce form .form-row input[type="checkbox"],
.mkn-case__input,
.woocommerce-checkout #payment input[type="radio"] {
	width: auto;
	accent-color: var(--kn-marron);
}

/* Formulaire de code promo */
.woocommerce-form-coupon-toggle .woocommerce-info {
	background: transparent;
	border-left: 0;
	padding-left: 0;
	font-size: 0.8125rem;
}

.checkout_coupon.woocommerce-form-coupon {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.75rem;
	align-items: end;
	margin-bottom: 2rem;
	padding: 1.25rem;
	background: var(--kn-bg-alt);
}

.checkout_coupon.woocommerce-form-coupon p {
	margin: 0;
}

.checkout_coupon.woocommerce-form-coupon button {
	width: auto;
	white-space: nowrap;
}

@media (max-width: 900px) {
	.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
	}

	/* Le placement explicite des rangées doit être annulé, sinon le formulaire
	   et le récapitulatif se superposent dans la colonne unique. */
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.woocommerce-checkout #order_review {
		position: static;
	}
}

@media (min-width: 601px) {
	.woocommerce form .form-row-first,
	.woocommerce form .form-row-last {
		width: calc(50% - 0.5rem);
		display: inline-block;
	}

	.woocommerce form .form-row-first {
		margin-right: 0.9rem;
	}
}

/* --- 9. Histoire de la marque ------------------------------------------- */

.mkn-histoire {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: center;
	gap: clamp(2rem, 5vw, 5rem);
	background: var(--kn-bg-alt);
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-histoire__visuel {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	justify-self: end;
	width: min(100%, 560px);
}

.mkn-histoire__visuel picture,
.mkn-histoire__visuel img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mkn-histoire__texte {
	max-width: 46ch;
}

.mkn-histoire__paragraphe {
	color: var(--kn-text-soft);
	margin-bottom: 2rem;
}

/* --- 10. Instagram ------------------------------------------------------ */

.mkn-instagram {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
	text-align: center;
}

.mkn-instagram__grille {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: clamp(0.5rem, 1.2vw, 1rem);
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.mkn-instagram__item {
	aspect-ratio: 1;
	overflow: hidden;
	background: var(--kn-bg-alt);
}

.mkn-instagram__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: opacity var(--kn-transition);
}

.mkn-instagram__item a:hover img {
	opacity: 0.82;
}

.mkn-instagram__cta {
	margin: 0;
}

/* --- 11. Pied de page --------------------------------------------------- */

.mkn-footer {
	background: var(--kn-bg-dark);
	color: var(--kn-text-invert);
}

.mkn-footer__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1.2fr;
	gap: clamp(2rem, 4vw, 4rem);
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: clamp(3rem, 6vw, 5rem) var(--kn-gouttiere);
}

.mkn-footer__logo {
	width: 200px;
	margin-bottom: 1.25rem;
}

.mkn-footer__baseline {
	font-family: var(--kn-font-title);
	font-style: italic;
	font-size: 1.25rem;
	line-height: 1.3;
	opacity: 0.92;
}

.mkn-footer__titre {
	font-family: var(--kn-font-body);
	font-size: 0.6875rem;
	letter-spacing: var(--kn-tracking);
	text-transform: uppercase;
	margin-bottom: 1.25rem;
	opacity: 0.75;
}

.mkn-footer__liste li {
	margin-bottom: 0.6rem;
}

.mkn-footer__liste a,
.mkn-footer__texte a {
	font-size: 0.875rem;
	border-bottom: 1px solid transparent;
	transition: border-color var(--kn-transition);
}

.mkn-footer__liste a:hover,
.mkn-footer__texte a:hover {
	border-color: currentColor;
}

.mkn-footer__texte {
	font-size: 0.875rem;
	margin-bottom: 0.6rem;
	opacity: 0.92;
}

.mkn-footer__bas {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 2rem;
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: 1.25rem var(--kn-gouttiere) 2rem;
	border-top: 1px solid rgb(237 233 220 / 0.18);
	font-size: 0.6875rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.8;
}

.mkn-footer__bas p {
	margin: 0;
}

/* --- 12. Gabarits secondaires ------------------------------------------- */

.mkn-page {
	max-width: var(--kn-max);
	margin: 0 auto;
	padding: var(--kn-section) var(--kn-gouttiere);
}

.mkn-page--centree {
	text-align: center;
	max-width: 640px;
}

.mkn-404__picto {
	width: 96px;
	margin: 0 auto 2rem;
	opacity: 0.5;
}

.mkn-contenu {
	max-width: 68ch;
	margin: 0 auto;
}

.mkn-contenu h2,
.mkn-contenu h3 {
	margin: 2.25em 0 0.6em;
}

.mkn-liste-articles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: clamp(1.5rem, 3vw, 2.5rem);
}

.mkn-article__visuel {
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	margin-bottom: 1rem;
	background: var(--kn-bg-alt);
}

.mkn-article__titre {
	font-size: 1.25rem;
	margin-bottom: 0.4rem;
}

.mkn-article__extrait {
	color: var(--kn-text-soft);
	font-size: 0.9375rem;
}

/* --- 13. Adaptatif ------------------------------------------------------ */

@media (max-width: 1024px) {
	.mkn-grille {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 520px) {
	.mkn-grille {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.mkn-burger {
		display: block;
		justify-self: start;
	}

	.mkn-nav {
		display: none;
	}

	.mkn-hero,
	.mkn-hero-affinee .mkn-hero {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.mkn-hero__visuel {
		aspect-ratio: 4 / 5;
		order: -1;
	}

	.mkn-hero__titre {
		max-width: none;
	}

	.mkn-histoire {
		grid-template-columns: 1fr;
	}

	.mkn-histoire__visuel {
		justify-self: stretch;
		width: 100%;
	}

	.mkn-footer__inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.mkn-instagram__grille {
		grid-template-columns: repeat(2, 1fr);
	}

	.mkn-footer__inner {
		grid-template-columns: 1fr;
	}

	.mkn-bouton {
		width: 100%;
		text-align: center;
	}

	.mkn-hero__texte .mkn-bouton {
		align-self: stretch;
	}
}

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

/* --- 14. États pilotés par le script ------------------------------------ */

.mkn-header.est-defile {
	box-shadow: 0 1px 0 var(--kn-line);
}

.mkn-nav__item.est-ouvert > .mkn-subnav,
.menu-item-has-children.est-ouvert > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
